faust-0.9.46/0000755000175000017500000000000011702130733012645 5ustar orlareyorlareyfaust-0.9.46/documentation/0000755000175000017500000000000011702130733015516 5ustar orlareyorlareyfaust-0.9.46/documentation/faust-den-haag-april-2006-v6.pdf0000644000175000017500000521450511702130733023034 0ustar orlareyorlarey%PDF-1.4 %äüöß 2 0 obj << /Length 3 0 R /Filter /FlateDecode >> stream xXۊ9 }oB*k`fw ?BH~\%0CږΑdW}W& Q14D~kA{;w YyW׿~Ro ]w.W_;e_s0 'SBn4hg{+G/L"MMa,Z,M'hxQ&"bS /Ż@{iȯc~$d̼Zk$⧘h_9, Pk6Ў--!A.,FiIEqX!ߨ{izR0P<҆XӅ`XrI#R!=j-hZdغXN$1imު,dU Yz9u GĉN ~憅Mυ+E"뺁̇eaJeCSV%p 6ls!YGÍf4Q:LE]mT F8Fyf8i t"{AzqlC@,J`ƛeJ^}Cs1gĉC 8J l/@֎ ԾqP,O?g B#}b^9I7>3e )Y(}|cg,Oװޢt%"mbh/$6&yyGQ'N'6Z0eDˋNDESN ; *O5< k! CN gϘ< F~8}jޘnNS(@_-? d\Ѡ\-fCo0ms8u'UΦeu,vDp gL^xIA0P?*/ce!; {yS_/bendstream endobj 3 0 obj 1115 endobj 5 0 obj << /Length 6 0 R /Filter /FlateDecode >> stream xVj1 }_s-YB!Koi@i K~eX3Md9+GG-^QcR!Rz :;lGW߇y9GE.۟U`Ӫ7u;u1I&&|lBD !!*P7-V$ 2UMq 9vwa4L,^/ȀBM J+1+bKRvsYBc},!{ⶫ #ATVJcjag%ܝcS?(CJmIV5S}lwNK_{;TIr/ BgRf%`]媸n 5UfMlGw mĉDݗz"U{KLBNp颽UJȏdKI G!\ ;ZZn[|Z8{d94]'Wĵ`kjyIeeb@E!fʜ𿧡q8y&()=]C:zIbm1@\ S[_2%)Nዬݾ/lV{ ` 0 z3y`GYK92![*%ɖVQ8z^cJ9Xިȗ-> stream x[ۮݶ}?= 4q18mRvrHI{ bkIp8Bme]~~m%."[^}w˿jZçnu[k>|O|~rk[nhނ7ʷ`8J/-[:-Z6||HD FeZ\/Br[rsbSܴ-NIۘu=AqKw c2*l$N5x_Z\L%qt9^oyq -,S]LBN;!v6`m%愽Q /YN娡M]qljϵ~ֶӕԑp^N=0QJA#{9XG^a}/=̻ J9o1]*!w-Q59f:t#XI+Y..Fy1zt͖a$l.("|g|k6 ~ j>i)XKK]m[I>7dfS]}ĢJR]a +G8w{xicUnlf}?Y{ |+gZkH0Fz~ޛ&"WZe5F#wյPd>x nXLFK7ӼֈoFFWUu;5qaZݹQEv-S]ìZ4:O9}HyJv]~=W YsOWCy^_fQ8$[ߖw/?_Eׇ/s8m9P2d Т0ŊD*>@x"D%^ DBY6E ]D'$eQ TZFdFAȴIJdٺ.,k|ב Xl }% i&QtYt!ٌxd }hDx5go]%"4P!MxoVBzVHꘊI6G_9O(p 8 5~Gmh;TKŴSM)Է䅌lĀdR F!7&=f RIGbKJKD̐'̬YD(fJF\Ns9@byJpU£!օ#Aߣ*nB/K@,_֮rO1' f /0 VԥƖE1l $lIT= 6*9243+?8k+s8+8'W*18U)mjQ)uԈ^ݿ_J X5|Uğ J=M f}xFWEDHiJIUc_#R}ߴP˶APUX=i "מ)9Z.#5v0WRҶ#ҒХB5s)!&m I^.i5 V{\AJbiC*(H'P#@גՈ'1;dWF(c a̴E(OdcȣW|Yd՘~P}AA,W1%YnrGܡ|L~t+!4Q@>-2l0NB8FF畦( v, f5, dKh[< rhILP6m-$CMLPږqtK+Jmz" ZT/ o5D;vhp= efAgD;P2'W֫2JqN8 G (Eh|)h1lb(Y__uu lD^0r(g \-4+ Kυʓ+ΡGNW 9H9[y\9ũGɈ"mPs]Qvsak`a*TCiSݷTWA0 k&̠ļMү|T(Z񔍆xo4":?th[p"yA֑EvAI0l7TS/m>ŵ:*ךk@Ht!m' 5YY^˸Z֢䣕"*B3*'ʀZuQe|CNYN%IBA+#,"! /1R_c%duʄ/Dkj(|%Ѻn 4 ېV4}aEYB'Ec)}"c<T,Z\ V{a+C &m[+AnF\] l;r4!9;a¡>%2te0;3g3lxm+I5#93ea9IBg ١ 3'VINL$%:" Ն@ T'Rh4dQI 66w(.#Bsw *x:[J UpU\",c &>А󚝈S638&=Cw/f^u(=v}aZXJzH\4Xv*׹WjA O:$m#UQE+U/C3df^)-3@hFendstream endobj 9 0 obj 3323 endobj 10 0 obj << /Type /XObject /Subtype /Form /BBox [ 380.6 350 597.3 410.5 ] /Length 57 /Filter /FlateDecode >> stream x303S0143Q243rs > endobj 12 0 obj << /Type /XObject /Subtype /Form /BBox [ 380.6 350 597.3 410.5 ] /Length 76 /Filter /FlateDecode >> stream x+T0P(b/C,^. =KcS=C\^.c =3(7G3143L-xP(drrr endstream endobj 13 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 14 0 obj << /Type /XObject /Subtype /Form /BBox [ 380.6 234.6 597.3 295.1 ] /Length 52 /Filter /FlateDecode >> stream x303S04U243srlc=s  V˥ endstream endobj 15 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 16 0 obj << /Type /XObject /Subtype /Form /BBox [ 380.6 234.6 597.3 295.1 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^. =K#c=s\^.c =3(7Gʳ4M-PUf(drrr]c endstream endobj 17 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 18 0 obj << /Type /XObject /Subtype /Form /BBox [ 380.6 119.2 597.3 179.7 ] /Length 54 /Filter /FlateDecode >> stream x303S04\zPnghgC *y2xҴxv@ endstream endobj 19 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 20 0 obj << /Type /XObject /Subtype /Form /BBox [ 380.6 119.2 597.3 179.7 ] /Length 74 /Filter /FlateDecode >> stream x+T0P(b/C,^. =KCCK=#\^.c =3(7G39 z> endobj 23 0 obj << /Length 24 0 R /Filter /FlateDecode >> stream xZێ}_` dԬ#JZțbM Xyue=;mH&ź"g]x|}zRjj ,_-/_{|x!˶H?cy!,ڬO.?ӿچUWVy'OG_*?ϯ^ٴhkM]:6izeްN7$x/&wnl`w&@(|̣e8!wo`o]3Eu< ^7e7LJRYsk-IoKXaja%-_ʖSIxK\04C. kݖrµR Pe4ʍ|LQb&>ƤNk?OkFJfH^O=P໑KƁ={9h0[۝&Ο02+|gp8/>CT h54Q%ov/iu3>9 #߲^q&5;;p|fK%){atȤÏ MڴX#,iKiiA&Y̫׈*ѣZYՊmf&QX̮VqЧ <չasVWjf8@i44 ~MƞZ7`)(X01 cư qdƕꛇr3SY[݇ln4z"= ͢j 0)gJOJL8LvW2sIGF-<,# jO?C^~WH.7H~96+%@`3%*h tÿ~1;J eŖ=ܐ祭z5=걙"/CQp&AAv^K=][']3MߌxMq\ufi=i_<։È=<Ӳ+cUy|(礱yihf>c]'ZuLVʯZx!pX'<*7mq@?Uu]ʧ y"8<^4ndiNElF[ \rw垼xձUlu n[{=T-HP3<~$?/jϨωarJTiZ"&PbR8)3HgT̄ LdG:DP(DrD㉢ɲ) B$ .L*udfLx}D^*gR|vR); _ed영2;mo)DĔ~x^׏p#cƱB:9TH|{Z%k*3/OJ34D6_f:jp~=Yg(@.̉|u~qppgx#Ŧ&-99 +XJWTs`0Gi#`*_i qyyځ~dNdv̂2{HF ÷hvHoB=E%nQ':p\1O,kw6* O8wbZGӯwF|O!Zdン9k Ohs~w4ޅN0;@O&90/cӺBoܔ=ׯ=^LӬ] 8hS-502"ڑFfB+a`dM!V='7bTGAJ)<$=Ѕd+;'! El]Qa&IHAL UF4ZA Ab).4<$TR*ژeX;uMȨpٳYYMU6% %bm L$Z U!!U  ,Ie$[ ޻fNUG@Nk=ݳ"-nǭC1aQ\R}s=L72=v_+pAUk,{jkcrEL,8eChJ"t=]q4X` ($N;I&~@ξG%yRo;z+^<ŗA{s .Y"t=-U̅NuμTK%)D|bۑ\c[> stream x3643T063W252ӳrs <#K#= U˕˥r' endstream endobj 26 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 27 0 obj << /Type /XObject /Subtype /Form /BBox [ 310.1 292.3 526.8 379.7 ] /Length 76 /Filter /FlateDecode >> stream x+T0P(b/C,^.C =S#K#=\^.cC=C(7G363L,xP(drrr endstream endobj 28 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 29 0 obj << /Type /XObject /Subtype /Form /BBox [ 310.2 198.8 526.9 259.3 ] /Length 55 /Filter /FlateDecode >> stream x3643R02\FfzPnghi$sJQyP\\ iZ\p$ endstream endobj 30 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 31 0 obj << /Type /XObject /Subtype /Form /BBox [ 310.2 198.8 526.9 259.3 ] /Length 75 /Filter /FlateDecode >> stream x+T0P(b/C,^.C =SCK = \^.cC=#(7G329 Ff@QTT%99 \\\ endstream endobj 32 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 33 0 obj << /Type /XObject /Subtype /Form /BBox [ 309.6 108.1 526.3 168.6 ] /Length 56 /Filter /FlateDecode >> stream x363S043U2523rs< =C Q˕˥q2$ endstream endobj 34 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 35 0 obj << /Type /XObject /Subtype /Form /BBox [ 309.6 108.1 526.3 168.6 ] /Length 75 /Filter /FlateDecode >> stream x+T0P(b/C,^.Cs=KC =C\^.cK=3(7G33Ly(drrrs endstream endobj 36 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 38 0 obj << /Length 39 0 R /Filter /FlateDecode >> stream xZK/2b݀Vrs, ?`;vX9$"6,wzWlLJ_6_/C R/oῗ`ۗ~|o)}Cۘ}FW^d )K_zǯ;OW\9U~Z_}ۢeKv~Owu03R5䊗myeUX6|ݒë _NEc-Nj2ϞMAŁ9p|82,8LQ3pNDMv~j ・@5svs2L--\Pz~$&'].q ! sI0-քQ"/vE3n<壆um5*u:f=i9'#ez*~toޣb2>ysC]QCibufWJ]ϖ\r-]Kpja\wc]Zv ֏s07-YXptarH6'׬XҞT 1;/lri}6G3{WF۴TC98< `tՅ5L|Xqr;NXWʮL݉ J[^'ai!7;soƆ:"gj qbB6k4lRwf嬪GUdH?y 8O5|gίSB?s?F~趏n:O{rsp!^?ЌƔQ)YLJi̩|\k3e^ݐek0>oJ-ld@rc ڴ4!| ,'dy̒td0ɖ5Ff ;hCW <E׉%sĹqr0HhQaM ^m}<үD4!U* F% odsns(FD*)d?ڙjg!HydJ6(Lh2Q N !awe)a;/)mK/$v[ڹP.'P/gdT &d1ӰuT:' ׳(Ubĩ $ꚲPt^JDR &vX>+iWʾ2d舗B%B")KH2[ܣ11R#F1ݷZ|Gr$]53"L5BQ^mM[ T5Ũv>d !bCC3H)P-PЉ-znoi]c]}/ z%u99%q9r餪9^\,$Ȃ](# KZ8ќs9 rԖRl=sOzR"sQuư\}\>\x\԰\\ !\'[\DՑ\a\}5j˹z 7# ]G;&w+MdL>G@&|݋]1E!$cޟRSE3z)AgR=F1ٶJqS@RD7y<DzDݞHѪ;? _n5`ti o89D]Pt&\.0v+:_msw=K# }HpcČs™n mMj],P2 vV[|H%|F"-fH#Ԯ f` WVh6,^q4F5Q`g3>TDX4H &x>J;t%|EmK.Е[>S<+xv ,ͬ8!J.C BJ1L"*1j!&>7Ϩ62ʣ!:'$NOu,tv(J)1)t; p4%Pҡ#;x+!b_ : QC "𸄛@ Ed8Ñ DM dbYCL,'j+3u<ëlt?Qd4]:bdE.&BN/!HJ8 Jq:<W6$4y9FU8r< 2i'Ǜ8g@p?reIj?Rn;[ `RqP:\gTUAjOf#.^j@kj\yjx1.Nj6kpݖᒮa^C{#  ΤQnf95{W QR2LLdAx4`K[ cx @0 -u8`[]zDr'- |(Y8>>1m}W>ٝ挶jO ͧ*Z a{.O WƐSz{yX ~-[N2\-}Y)Axr1{a;PȨ/T!Q 1ebQ?Db T_ Ԧ7\VO?v6Pq@x բv )@I1|Y$WhlHYGDaj/ǁv#>HH^Oex^Qu΢Dzɇ'O5N(ycBڏFu߾Pi(*2UkuH5lL M˕O 5Q]ťTuV5Xn.ְɽBCH86BO I;&49ͩ3uIU_GY)a<=H[ cx @ݘh  zendstream endobj 39 0 obj 3163 endobj 40 0 obj << /Type /XObject /Subtype /Form /BBox [ 310.1 287.8 526.8 347.3 ] /Length 57 /Filter /FlateDecode >> stream x3643T0613V252ӳrs <# s ` VʃRHo3 endstream endobj 41 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 42 0 obj << /Type /XObject /Subtype /Form /BBox [ 310.1 287.8 526.8 347.3 ] /Length 75 /Filter /FlateDecode >> stream x+T0P(b/C,^.C =S# s= \^.cC=C(7G3613L̀> endobj 44 0 obj << /Type /XObject /Subtype /Form /BBox [ 310.2 198.8 526.9 259.3 ] /Length 55 /Filter /FlateDecode >> stream x3643R02\FfzPnghi$sJQyP\\ iZ\p$ endstream endobj 45 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 46 0 obj << /Type /XObject /Subtype /Form /BBox [ 310.2 198.8 526.9 259.3 ] /Length 75 /Filter /FlateDecode >> stream x+T0P(b/C,^.C =SCK = \^.cC=#(7G329 Ff@QTT%99 \\\ endstream endobj 47 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 48 0 obj << /Type /XObject /Subtype /Form /BBox [ 309.6 108.1 526.3 168.6 ] /Length 56 /Filter /FlateDecode >> stream x363S043U2523rs< =C Q˕˥q2$ endstream endobj 49 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 50 0 obj << /Type /XObject /Subtype /Form /BBox [ 309.6 108.1 526.3 168.6 ] /Length 75 /Filter /FlateDecode >> stream x+T0P(b/C,^.Cs=KC =C\^.cK=3(7G33Ly(drrrs endstream endobj 51 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 53 0 obj << /Length 54 0 R /Filter /FlateDecode >> stream xɮ<ȈwF-rs$ q X9îhFxaEV^x]~~m?RB?~^/Ўp;]49%yl ,Jy 4}~$Yp7E7eY%Oť\3fgY'߷L[Z&wIЯG r?(].bm@5a4"yr@.2*q)6TK8o\=oQ4rbGT|B7Ntig2o~u5q!K/{-#Ҿ8wJ)w-MtlۇA}\.nt:P-s0u7;,[j'b93&Tr >fZڞL3@No% K=dZ*+y+G.ʌ9d'~wvϾ+vsMO`:P@#Z~e~p-|jt+quj)M-Z7ٚ[]LO~cb7$ή~+la2;@ɫ8L=]1͙T3*<uiv>SйC˺tSiRX\jZ77bpfw9oYwOdnUKmÞOS^~ӗYnc*)4f3P:&VcO B~0 ?~n j̲&RZnH`l]*Y}W,F^b^7{.ʱ{emDp 3o>g^']'|xv}qJG:|GtEK^ygVꝫOmၮe0uםއ٪uya-|M7{̝Lۿ'o)**  &>zBڻ(Gϡ?o# ѰU6ޡ3AB0 =- H2#1UH(j"DL`W=dV핡H1Crꄐ YL$h.3a'**@QȃrF%&R@lJ ({ln@2Ge_Q( 9b :5Q!<;ԝc7Q6b:1UKQ$T8aJM_6ךp^@iPWP2/acC*bX1la]aN0N$4<@b?IEN` .* >^D"v24?Q>@-XaP'jU9ǜ9)#DZ B@I2EAF5j; 0 d `bS %w\}!\̧do%VVLlV6A1OQrW yւwŘQv@w٬an )VS$x@J,PA.!)EByr0@˜gHʀk ęH= K4e*RE4TKF"1"i$[ _#Ց4q{&cEY̨(7'_xyClIjG(p&q4 J~xɮEPO4 *L;uc1<;m:- jjqNW8dۧBB IrK2)cs6㉕,FB&DճLI!IFڠjU?_%n42P4ȗD>ja b^yLIgcRɘ3xNԚp|_j"6\܁*!TAƜ7_rl~梇 p(Ȥh!PATʫMϮ?Kh% kG'dIV-Af0( #T]0G*HP ei äntY9hny"@ 3y?$ʀ.:$ՁVpvjB֠!1*ĕA֩o*HVuBLkO8Dx!UL2c@90yl^IDxI'͵2$'^Բ~ 0Wn7 ,Xl37 (ݫ l,V&P0BeXaHs XD5xhAXN2<{FPSx$`6 $ zF+ LVi!O@EʿHĭlJJi2rj~*,}j, |#=è*Ut>Zj#(s4d֡O aW!ج/a8al$iT?2q&"]$bJYRɗL#rU @%u=Ll\A>5yp!bC0ZUw+s:P"@87*umYZ=) i)jD579[qgTYLjEUTZmJp~gQI֟A2/zȌmD5q[ʄYJ ߚXhŒ J j`VQ+K8EkHZm‹AgmemDhIVI03J9DhT㠬aU F5d\(:@'ff_q=RP4r' W_4;TT"SqA+\RpSqI bL7̕ y"DMҭt3Lqq{U iZd s8\FpCDi +D߆nAS9.\3 I2*UyUyC-I3}ĝtA uh;܇{0+2m%ug]^%ZqZDY{=8PdgUABDZTtBLP 4GETM5J鑨[`Kr#Sp!IyI(WuG]J0!s\*ԥdae*Wp&Cd:>%zr_H2AJf`!L^zqBVi4*AFI0ګ>RM`3c c"` ;zu:uP$ jF~mfeN )Bd S4{ 8_ph_MpC'25 1N l*ՃXlyo8X"T]I?ɬ7|f4[FUr~H-KN>hrͩX`3BCU{X=d盙=o`z=;*X©r(MIO++h+D*Xqlj6M[Eڹm@F~x|l2=$l|='A;䇛.t 3'6(Q;E='4r&SiLuǓE=dm']> H{ TQ9zPN u1Rt pV!h'*D9amSH9L<q)Ԣ?w޸18Gfw<] T]ݏ"<: };4oh7˷V"(ꍄiH78$i${Zm?upVro ={?"=]!=1C8S!h]O_zۗoO/l Ma^h>/OdMƒ-k/d;OFfڦC SNty:5\s>RʃAqPz :3SDI SJ.AGvwYJ`YJ~e)u}RRc;.K)w4{҄1XT[WH#ZF¢C4צ .?Xj&ɡhr_@2%,4{zGx`yƒ}FmSJL3)ɂ]^RuAJZא ζU8]ohecUo矑l{ sUkQuYFgi9D h m:9 [M8^;%3;uB'J~}`Z'>u>)9> stream x3623W0653S23rs <#U˕˥t3 endstream endobj 56 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 57 0 obj << /Type /XObject /Subtype /Form /BBox [ 326.7 205.6 489.1 355.7 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.s=K#S=3\^.c#3=s(7G36L,, xP(drrr endstream endobj 58 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 60 0 obj << /Length 61 0 R /Filter /FlateDecode >> stream x[[%~φm`9^a&΃~TWCbuT*]_~^\|c%%/m7?մç!\k|x|pk'M`M1ZS&7Bo7{̟Ԕ&M:,\֥rK-_Nv42efapKCMwVi-Zn/cyl*KtQp7f9-yB}~nzq1Y?˟c{-06LJ\S u0| nضm ޢ@Bp)eTQ67U.`}Tx[yin[h9*_Flȥg|̚vP] fߵ}kWJ7(O8O>9br֒kK },,NuFyc*wv ~,b;y0;$R vXb˒!mȯ7$1lyrxKk)do\ngbZ[?6sBT.|[?ێgD8"4F"2$ R .*]"l~) r Q$@@@!6Ps4V*M$4=1zu{6 M=iUvĚ'tu,yOSMޚ` km\EJ&@0ͭkE>Le ~iwy-2\xvu^2S밢7ؤB X0S݌ϗfD} sg5 0!0Aj>aңVZL&{<~)6&֩MqiC=0QǽL;LnM3q-ow^*VA4ļ3G$䋍U^X2ҳ:1&pYYҰrWn-n-y44Ki7i$j'_,r<(y3'ٴ{xXOX-2B#54g&HN720ie=0ZsXBvdKJ> |vܜF_OGI=[y~E'҄nC0W9H{)@dv9?eBBumR~DXb5#)q:KwOܘhf3EwD{COfIcım@uDŽ "-d-#MIvZLcIg0(,x6KVv<1cFm RxDWen'뜻+ t\{p d߰|hxc<#֫QBWZ!B7gJd+Ϟi-!3%ѥRe  (ϿEkh<8H7,Kt( ܨ!SC+DxॖIPA}"&xBG'Эl*E۱\¢QVDIs(ɵ2ZBэ /k@7m|)tom oDV:"IAJ6Mjn%Rf+ãIxQ`)+tB GP2*2">1‘r Fiix:bSH23$YS DFVuQDE&ރ[CߟJW;߷^-G@ '#@" C aC7LmhxyD`!@EE08/T$ X/cYm ۓqNiIG L.&3Y>:48rNo=b.MZӌ*1Mvit$*@γSd:};742C|xd vdwOxnq;/ BUh=tj(gČYEe(]8v3^^'/iϷ`kG\ nz.i[wig&ژ<#;2`+L>g޹ cP>zj1* ٍPlRoytkj=w|`}S5;T<MC+K|]:.'->Mpb 7=ǷbtrW-L_OJ 6c7n=gendstream endobj 61 0 obj 3706 endobj 62 0 obj << /Type /XObject /Subtype /Form /BBox [ 361.8 364.9 481.8 422.7 ] /Length 55 /Filter /FlateDecode >> stream x363ԳP0123S203rs > endobj 64 0 obj << /Type /XObject /Subtype /Form /BBox [ 361.8 364.9 481.8 422.7 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.#C=sc3S\^.c3C= 0'G6123L,@Pyurx2xyyy endstream endobj 65 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 66 0 obj << /Type /XObject /Subtype /Form /BBox [ 140.1 207.6 260.1 265.4 ] /Length 52 /Filter /FlateDecode >> stream x3413T0233V22Cps<s=3  +K!M g& endstream endobj 67 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 68 0 obj << /Type /XObject /Subtype /Form /BBox [ 140.1 207.6 260.1 265.4 ] /Length 69 /Filter /FlateDecode >> stream x+T0P(b/C,^.#=C#s=3\^.C7G333̰ *QQ  endstream endobj 69 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 70 0 obj << /Type /XObject /Subtype /Form /BBox [ 197.9 127.4 317.9 185.2 ] /Length 56 /Filter /FlateDecode >> stream x34׳T003T264׳rs<#s= Q˕˥t; endstream endobj 71 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 72 0 obj << /Type /XObject /Subtype /Form /BBox [ 197.9 127.4 317.9 185.2 ] /Length 74 /Filter /FlateDecode >> stream x+T0P(b/C,^.#Ss= C#s=\^.CKs=K(7Gʳ03 JQy(drrrq endstream endobj 73 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 74 0 obj << /Type /XObject /Subtype /Form /BBox [ 573.8 208 693.8 265.8 ] /Length 50 /Filter /FlateDecode >> stream x357ֳP0233S2Dps<  Q˕˥<  endstream endobj 75 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 76 0 obj << /Type /XObject /Subtype /Form /BBox [ 573.8 208 693.8 265.8 ] /Length 71 /Filter /FlateDecode >> stream x+T0P(b/C,^.3cc=s# \^.Ssc= 0'G633,rerrr < endstream endobj 77 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 78 0 obj << /Type /XObject /Subtype /Form /BBox [ 287.2 55.2 407.2 113 ] /Length 52 /Filter /FlateDecode >> stream x303R044ҳT21@ps > endobj 80 0 obj << /Type /XObject /Subtype /Form /BBox [ 287.2 55.2 407.2 113 ] /Length 67 /Filter /FlateDecode >> stream x+T0P(b/C,^.cs=#SS ed(@8Fz@&Ő ^`^@^.P endstream endobj 81 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 82 0 obj << /Type /XObject /Subtype /Form /BBox [ 522.5 126.7 642.5 184.5 ] /Length 56 /Filter /FlateDecode >> stream x3523U003Q2312 (L3(EATrer)iro. endstream endobj 83 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 84 0 obj << /Type /XObject /Subtype /Form /BBox [ 522.5 126.7 642.5 184.5 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.S #=C#3=s\ HQ,LJrLJQy(drrr endstream endobj 85 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 86 0 obj << /Type /XObject /Subtype /Form /BBox [ 434.8 54.7 554.8 112.5 ] /Length 50 /Filter /FlateDecode >> stream x316ѳP0443Q25Eps <0`bRHQ> endstream endobj 87 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 88 0 obj << /Type /XObject /Subtype /Form /BBox [ 434.8 54.7 554.8 112.5 ] /Length 65 /Filter /FlateDecode >> stream x+T0P(b/C,^.K= S y9  gjɃ(D1$G!++ YZM endstream endobj 89 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 90 0 obj << /Type /XObject /Subtype /Form /BBox [ 573.8 278.8 693.8 336.6 ] /Length 53 /Filter /FlateDecode >> stream x357ֳP0663U2Dps <#s =K U˕˥{^ endstream endobj 91 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 92 0 obj << /Type /XObject /Subtype /Form /BBox [ 573.8 278.8 693.8 336.6 ] /Length 70 /Filter /FlateDecode >> stream x+T0P(b/C,^.3cc= #s =K\^.Ss7G3663,1yP(drrrI endstream endobj 93 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 94 0 obj << /Type /XObject /Subtype /Form /BBox [ 132.7 288.4 252.7 346.2 ] /Length 53 /Filter /FlateDecode >> stream x3463W0613T22Eps <# = U˕˥n endstream endobj 95 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 96 0 obj << /Type /XObject /Subtype /Form /BBox [ 132.7 288.4 252.7 346.2 ] /Length 68 /Filter /FlateDecode >> stream x+T0P(b/C,^.CK#=s# =\ QM <#SLT%99 \\\  endstream endobj 97 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 99 0 obj << /Length 100 0 R /Filter /FlateDecode >> stream x[n6}7Պw Xh@ۢH t_KJ")PXo]l6Ù3gCZi_&\#fh˾~ ?nF3~QVa73gI톷~H~IQ$H$rQ$" E;,gGTַDf"Eqk! QYHR TZ1NsYtxh,xɉhw$cP̼hsY-9dB,?T~W L4RbY$w>83dg,(>-5o4{O^LzF11r&HBbk$)ԄCP 1@6edjVO51$1oU;X;9fWMIu7koRK/U^OgGcݶ'!=^H%擀K1#cճ8MpAH[=h;3py׶s=rY$CIٖJC@ֺB+[3[[ 8(cOC(A%M"mGw0uH9)".wccsHq35PISØL"[k"9[Vj?M]R6Sr:f4ˬK"9 !D-:Lw6VO-x7΃><>IT~fȃqvvCXZ?,$wt`oSǰPxҪ,>:}njkY6#C>r,cI݃ 0/FhA$dE 4Z`cf<*AU,q$ov]=rn9 uMG0 4ѵ9" xZC8Tճ}-zY67Sw>}U1~-E<e&dճ/ESbS(>^?y5H4S%owE p1T-DeGd%p(\ ]KQl&2# Ǟi\3`Vڂ5I{ DŽʀV{`@#y)G.Ye/Y5;̪؃}ZQ30\ՠ!xCO)H#O1U˂ oKNr+A=I jDTYXY 5#`-BGWrlƪb/G_OsQXUjP(q z4L-iL!)v(= |d9mp 5xF.#Fc Wٵ(XQIڱBYSֺY/v>J*|Yޓ#I MfϦy{V[a0BoR2)al<'cF:aN c 7#Kl*ѡEžܧx.;ImULI4x_j\[(u]5Wd߹.gf;7)Fo%W̬6_ \ *O("}c'HZ\WJ\ w S/׳cvogdxz`tc̘WX#{|%oSn{͊.sHEұ܉{{O50y݅W\WU;1?iWmz@7f¸WS>}Ź,->6ǯzc6Uoz+\=Vendstream endobj 100 0 obj 1674 endobj 102 0 obj << /Length 103 0 R /Filter /FlateDecode >> stream x[n7}snw.m@i~ey+ڒ!f199s梕ԓݿO$7&$ޑܟ{ɞ|ky"[yO vgAvIAYĂH 2^ĥ, Y?|?׫+ k "u@"M’a(RM36W݈k6o3itxި6,Dp;o_9(j 9f~#C.ӌ5fK40+< MTFM9_|aJ(q MKI;I}T޺ 0g7USnK%:J<\MX9C.zQz$rU{ Z}Axfȼg>}y-~Rx*a5O@<TAS-PkJ)]{xHBhi@N_.6^/zĐ!Hֻ Ym )tas`r8^z@<$]OƵAΔuKt y@mTvhq,3B,9,$o&(G9vΣt Vpd;_D҅'?VAgӒ DH睋/:6_~#ӕrOuS~;ciN!139]3ܕrӉSV..u|yg҉r_'DD.FD l{[m;]k;-J|3`# s ߶0Ǧ7N9Xow:no|ob|A PϗD n@rWdc\/h}#y”)EDvv)æ'\7gb*K\|cG YS#> stream xVj1}_sF3,BKon ^%_ɫkK3g\$᯲QcR!0^wOv&^qǯaBuPǟ&-1G 9W:A@kfȕw|*+.N@~'!dKo2 i q q&ز-^de`[t% 1T%)~= ɹϬCY_IԐ=q̲ *y0F9?ܯo ԖS!L>=~/'#+4)UۡJ[mhR KQ"[O]TťU;,TԜ[k[g#}(zDK= ষUٽ%&gr=.%Ze 2JR,(dgQK]!Q.r,&B=Ң#qqE\SˣL*+u/ !(\gHv1 OCw(Y_53%)>Nᣭf(z]MxR4s̏#L*$ $m)7.N"Zendstream endobj 106 0 obj 682 endobj 108 0 obj << /Length 109 0 R /Filter /FlateDecode >> stream xVn0 }79 \-[~.uߟlR,YҠ}B_0 |xA6t^;=OGJ^6]C;lN?8=V1D ?ߡNQCpM J>ݯF,I@n/!/C+9\E+jXFAHyy)8-t2%8y]BKNEq2duer:fBl?ԉkΘF}cۨN n>ӼϠa 8;/:,Ư4M%ϽF΄)%Ȥخ.ͫ0A.~O/:?0c,+Qi=xx?YƈpC2p__l. y1u$*k.9^wY^-s7tM֞dJendstream endobj 109 0 obj 654 endobj 110 0 obj << /Type /XObject /Subtype /Image /Width 956 /Height 1055 /BitsPerComponent 8 /Length 111 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 112 0 R >> stream x t{roL2s23ys_OnwDZqq/86/fRKbA,X"a1@ o0 IHոF]U]S>>եVz?cܹ{<ɓ4h> ?O Ff#3@`df 023 Ff#3@`df 023 Ff#3"ܹsA_~_l.\'O\|yEE.--IMM__O~~%K;vk; ?_R\5k*++w)V,//+™իэ5ѣǶm&M$iѮ]]zuYEMamG}L+wUUU?񏋊|_zǎ={ ͛7ҥK/_lٲAw׮]6p@),,ߪU&M̞=[۷G)t6m»ԃN>mUْ{mWWW?5̓&M;+R }PYYYPPp ߫GC=3s@  @-"@ 2$ ЛD䙙@؎ bcZ_>a„/]gϞG7kUUU8p'?ݻ=z4p| #gZ[lٳGs'O&>Xjv}Z{ҦMM<33 L}f322"rPrMЛTWWggg}.f}W^-Zزeٳg{ٲe˽{Fn  p-駟}g&>3$3332Dogc z( 3A<3]FӧA;Zs\V9// 7ҴM6>|u'--u֏~ Y>`eff(92b"sΚ5Kwʔ);vٵw-Z())v۷e˖۷}۷9rbСCKKK @$3$dioFEEw}:hРÇk^ضmW^v8q"..w%UUUOٿG$h'13 df1.tU8w܄ |UVZ.ʚ~i"~i;v4tz389z3IQ*fbT_ Pu 7T]7T_' duol`Iy>z389z3IQ*f>F0T] 3kc=_`I>Ho0ћ3>3301@T_Gog#3@o 6J 7§(f8СCKCJJJFIf`:23P߹sTFos%7@BnQQQDf2 Hdf330@f$Rz38Hfk !&bfkћ Hdfg&>3Df<3HdfAb-7@o 7Gf63Df7\ A"3K>Ho0y$2䙙@XF 3k)-666֖-[={a A" G"3@G"3ӛ̒қ`;2䙙vD2z3Df8D8 Ff| ۑ%<@#ћd&7&bf 023fJqqqbbb}222Y@*k׮X؂Ň /3ߺu+66>sGp9"xs5h[VcsBBB^^H@f63Owנ֭[#ydf 3ӛ?z<23[%7Tl$3Y@*dfD$7GfND2ћ܉l"f8;Y@z3H ̒gf R!3p'"<23w" GfNdf1܉Lo ̒қ@*dfDf<3JƍbYvZ@f` "p2 :u$O>G JlA$3/2]P.l.Df6D@z3@f6D`2!f.flfTAf6 "3" Q>0-W^ 'رΊGpmÇ~4dfC$<@QGi߾}^lـ^xᅐܾ}/^;[RRҳg>} :@9~x֭j1BXy6m5M4g;v(n,Xe˖^~gӦMC>lz37ԩSUUl,)".]w]r%%%R"imڴ7oެYf͚V3lz3͘1#***55շ'>>~ܸqSNm߾ ű]tٴi/3:bq ǎܹѣmĕnIIɾsHZf.++zZf9{|gxk .V+---勾ڞ[n.V}^zIٚ??^l *VKDd˖-ϝ;'6D޽9gKv*~вe+vĉ:t&M"ZJѣg}Vl\~aÆs6bĈ2gΜiԨѴiƍExbZl~BϞ=E׶}2dOXƛ6mmOk 0@^rssgΜ ͛;aO=442!қdYD_63hⴎE%%%\QQf"}]̃jݻwYz:;-[iӦ:;G_SaÆi;ED׿k׮o/~ <3zfefx GE}e˖"9k"kK.> }qWިQ#kz-B[:vMԞXy-۴iSz_zU򒒒{Ηϻt_x=zh'шo{n0w`"D;v`2!f 2> ^zjX:ujM훷b{ƌ5i~Zh3{lqyJEL=z۶m;yd],XеkW['_~_}|g'NСHnj3hРP<|\\߯zʔ)Çd.q͚5[zo*@$ڵ?(BoB3g Dfc `jpC]tL@f6 @!D܆l3fz,Y <3zF7Af6 @!{3D3p 2]8Af 3lGolBl3fz,Y <3zF7Af6 @!fʗ_~yVv2bAf `Mܲep 2]Fo u̙WTTx r7Af6 @!fyΜ9'OXl3fz,YBf`)2!gf @W!3ˉ 8z3Л*df91 3ۅ vʊY92p 2]Fo?,=̮ӂQsf~r7Af6 @!f:(ۮS%gzL RdfC$7c7n~j"333o?dfӑ7Af6 @!fCf6fdfЛ.dfӑ!31vaMGf 8z3Лtdf̆H>Hoǒtdf̆Hy=~#!3p 2!f 720 3ۅ v!3z+**Bv2?df8.V7y2VZuanTPyyЛ 3Boz3=39$))̝;׬Є u{z3dfCBo?_MO[KJJnۇFf6D@z3=fpf\/ j( !3"yfD83W\[}W̻rǒ] 8z3ЛO?y;Y Ȇ@8.fJ 3~"3 Af 3'}ZBzRTS'Ӕq'3p 2!f 7#kBf6D@z3=f+))aSxx 32!gf @̬V0G7Af6 @!f̑cBo2sHdf8.V7C-8p 2!f 7C-}M 3:x+62&NXZZjgLYpM6;wdAf6D葙p̀c 7P@8L1v7PEfva@8Lf1̆Л( zdfC$7c#3"yf@8̆Л( zdfЛ( "3zdf0X fzdfCBof=2!қ1 葙 <3zFnΚ5k fQE!! ;v,gfЛ葙 7P)ݻ̙3vīCxIQŔ 葙 `5z3JT&!Ty17#3Boz3|KhqqU^e[nb Gf6D@z3=fٳAhk*&L+//d=Cf̆Hy=93s||yk*dfrЛ葙 7Ploh~~ok֬測b43ӛ*k53.f3ڛ_B>GS23Gf 3dP} %3Egz3Hۛ( Ty&0葙 | @O@u1hU23Gf6D葙Ef6* z3ٛ.z3̢3@@lz3Յӛ"f͢3 葙 `5z3Ef6*z3=2!f 7\fEg3g43fQ!3zdfC$<@\dfrЛ葙 7P7,<v7P*23Gf 3՜ћq;vٳwĶ޽{n}۷nz\Ƚ;w$#!3ESz3=2!f q@oFfffnrrrݫ2dk"j;Lk>o-zu۴iիW_Lo?2葙 | @O[)2sEf.,,w=bYd]ZZ[o^qLLLnn:uЧ}x3ʕ+Y#23Gf6D詞;ut֭GÌ+V|o.\o+}gϞΊegΜ9b寬4t0B޽gΜ)aڵk7ѷo__Ku?qτy(NCnAoGf6 @!f4iҤYfO=Yf=zΝ5ڶm3;;{ذavj޼zW^ꫯ=77n\ӦMsss -\{ғjũoF$OKfqFUUv7Pսo߾-6ğSL.]٩\g_|m[;wlxltNQw7{"SEHdf@lfޛѵkWmdu*qvW۶mC-ŋ&;ul_kLolBTM>}]ֳgO߄i{U}yD3fLbb3##C{ntttff"?狯2қםy\L -3 8gT1j(_ќP\\j*YRRvZS-sss㋊)Borrrvvϖog;u's - l䙙s@f}?|;$6"/yx 'L*3ӛ 3Bo{3d#Oo;V1!6ff1̆H>Ho 2󌄮Zfdf23`52!gf @l.284_)4h׮]O953ӛ 3Boz3%Oo~0'gȑ#iiiGA1v7P̜Ν;[&IfҎmĉ"k#G ƒdf0X s̚e˖D:>x_o2s?\!yBwqߊ?<|pUqk۾LÇMxv]]]ɑ-"yf331y6t,{35k}Nf@rdfЛ( {ћaF9433ɑGo:z3Bf&3f!3ˏ@jf8Ɗ+f7YLo$GfBͰ ,x<˖-0Y HlgzРAAֲ%''WjdfdfHy=2?s1tU7nXpYt۷yYLo$GfBXv￯9z({|{f;KfV(33ɑGow !3Af&3f!3ˏ@jfȉLo$GfB@h̏Q̀| @%KNd(23`2E$<@r"3?ְӓ%N']۷ "f 7!3 ^ \,?z39;wܶMEdfH,?fћ!'2Лɑ-Boz3Df 2E$7cɒ<<3zFȉ*f@rdfЛ( 9GIO< F4O$f!92Ngfٳgme#3 ɑ `5z3dVfsN}O&"f 7CNfef"қ)dk.>m۶$3"gf @O{8b?*f@rdfЛ(D Wxƍ~b6999//ڵkV 20ɑGo:5駟nP+###? +!92\oƶiF{O'3 f@rdfЛ(D m-//OIIH/ -" rKLfBdfHy=~#pz3 92Eho]̰3Y~f !3Crdf1XM az3 92Eho]\lg[adfHy=~#pz3 92EBo!dfX@H,?z3Af!92Fo!dfX Hlz3Лa -" rK"l33oD,R_z%F̰"f qOoƂ o+I? +0ɑGo:\ckǧ9kpn)Bfcz3TyBo$GfB֛Af| @O% Ff䙙S7 7#3[ @!͈jѢE~˗C23 $GfpɿiW!3Crdf1Xma"3 f@rdfЛ(ma"3p!2E$7Sn"3@-"yf 3ỳ7P{z3LAf7@df8#3ˏ@jfBf̀7P"қ)d <3zFHoǒl33o`;z3 92EBo`;f!928#3ˏ@jϟO5k,=쉉ϯdEfAf3fl33@717^df1`/2Ep 2E$7 xdfHyGfAf"3ˏ@{-Boc-" #3[D<2E'$ĥ'u9sGo+((X6]IvFf3ϗo?jTӧ7E83{<\r} "3[ >o 4ַuHf愄yyynݲ )2E$7T\Qwڶm!<<3k& zOȃlz3 xFf @rdf1$Gf<23ɑ-" Bf 92E$<@Bf 92EH,?z38c㑙Hlz3 xdf#3[D@z3H @rdfHyH @rdfЛ#3Y~fp<23ɑ #3"f@BŇ/^ܞCl߻wDl_;Horti֬kb%'LټyxA,/ ((_ބGL-"yf >~~99}͙3lfΜIf28UVy&̀k Zf./?֭[׏g˖dfF@Bf޿U&/͙3Alx=;@̶7Bf|yב#,{ -d̝[ṈmOefћl!If޸qґol<=$ R!3$Y?ӦMKNN޽{wuu323<23[؞cbbu7eۣo23f -l̚>ddd\xU3K 23[Hg̘QTT;LoOdS;bì IpUf6tѢN2іSZZ p!23SYYn߾m} ̶gfz3$Gf=3K>h7\liڴ|o>@ M'8޵k7,AfvXo=:aü3VUpf^v |df3d2sV֤Ǝ̜i 23\Zf25{ TGf=3;7Cok/'k@udwϺ*3K>h7@230$9''dee֐C% 8Ν;zJNRRo;11soV_=F,3;7̌ ffoWWWSgX>|µUUUBq#Gg@iVdМ9sF/5a7bDf$'o /qA7nO4w"**o߾111V\\ܤIݿ_oyu޽{ن nڴISv!v6lٲeM81c@̼j**++l$3:Ǐ930͛~„ Qd:{^Fƍ}l2tЭ[7C;l$u*3;7̌`XBd#F̞=_~ӦMܹsϞ=/--СCFF/3?|pwh"]tիWUUU^^Çk/EsHZf1XD~SΒB|K֭}g~튊KII Hl{f| ״="jg]X߾}նm˗Z^^޿<'͛7?x!N=W5kuֶmƍׯt;uVqSN7޷o3fLf{=߅Α#G.2:ׯ_`ݺu=G%.Vf yv~WaO=}V@df2s`"dWyR<-wﮫedf>}ԆD_]dfp=3ҫW/"$ܻw:sԩh hB:t6DrxbiiiZz|־k֬Y~bbMts}+n#{Sgϝ;wjl{f7T  M6%%%vZf~Why5EGEElٲNUEUUU&M|go߾b m{„ Νs`999裏222ܹs{+[ŋ.\nHl{f6dfߕCb5o޼>1d_Ry5oJ>=۷uEfc\VVֱcǪZⒾ?Rysqeee\"5k1[UƍnyaĈG0 ͠Arj<S"3GDСCz-}naA└=~<;ESN]vȟEEEbHoBƴ>`7o/Lf@lÆ .](03}Ƿ̣`WG 3ޛeq$3'@'IfΞ8q޽{ ?3Ϛ/spZжIsc&F 3?̞= o93Ï)S}۷o>}ڵka(zo8UTgmdf 370Ky"O!g͚իW/zumO\z;>7Orb'VX]oWYq1'gto_(`q OԹNf?2n,{v~#{ǎ+޽{zrf...>aܧ~m?scȐ!#Gׯ+qW^]]؛jf >3UCUѣF^^8uЧ#i=dضbSgLyi|S2I?H]9?g X$gmgv/4y{ާ˫0\'3:;1C䵟 3G u߿_NCll+Nz4mqBB>}!Cn0o|6Bf|fʕ+SSS/\ٌ)]mT^XemQڗƿ/ӿ>$<=GǗ=6|fɬ~N_f_RfGobg33g3}Jwҽ|&3;"If~f>IQsm9c↷{!So[x}Nr#Zkm盯<[u}Ʋw=/3ϴ7Sv/ZänosGkҘf2T8*Yƃ}܁=߈ӨgdsI4/vh|3[?NtwB]Ү;Nnͨwycʼn?}[={їC<|c5=:<ѯ8:;Wwq1-WQo{.Q oǿL:kL-Nװ폣N|2~U.3%3Ȋ̼aC7;sbq*.>,~r}2ћE|DƍSsƕOg>;2w~0w 4jDB~~E34A|?>Id7pcĕ˾X]d8o/_Z,z^J󟤚>R7UnܸqVf} #f(U9b߾}) %99y}6n8gm̒F7df̦#3Cold0ЛtdfUaJKKC^2?df\%4ڛЛ>>ȥvIIIm{/6}Eۣo2̀T؞Ǐ|;v$&&N6ɓߨ&3[ 0׮۾}>}Sj\ 1Л 7zM_]df91\ff23HBfL\23f dfCflz3df\̬w_l,]4+!39U 83/fil 23Шs\MDobJf޹sBE@M:Z֯ Y@`]ᛞ:)=5v c*w?z⅙@LضmV$!ƸsK q*4\Cf@ 03ɓyʢ70Y:{0 7ѶoĆ8=\Cf \QQ@YALg@Lddf> 2?f9#3䙙BfJoޥ'w&3둙fL$3[qg[nmڴ)Ef"r;ћ!3W dzn:{7,'z3 Bo?g?_WSL7॥srb̬z3ϼuֹsz<⚰_8r"3" Ȑ}g;j"!7o<77@`dfHy.!df#UfQ+3WUU= j:t 4Лb2s?2BCq'z3 2?dfS|'7^jU 02;1Лtdf#3+ 2*yaҤIiiid@`dfH>HoBFo?̚<7̬33% "e YݻBQp*f|fn紊?gX@-,}DoBf'~eE3] 0>wbR7ßgOէQٕdfWaO!f8݃ ҧg@'{ԄASNۖC.AoKB$<2z3+** 5,}J7N ``w=z?~K;ћ #ћNB*fGbO!f#G"3)D@z32z3 #ћҧ33% DGG'999K/!!a_ԩSMΈx<ǎy8\:9Gfq̙-[}Ñs܉ H ÔLoٝTaJff̬z3p-23dfH>HoBFoS23@`dfHy.!df`rB̀S1 D9ǝ̀T@8"NB*f`2B 3õ@" @8"̬33% @Qp*fp )Y<322A'''gʕvt,Y%?cSV72;1қQ^^~\pCŋdRR)p1DY!f@$If"@5ққNHz3PeA@BfJo`:U5fPeA@ p.SfөPeÀT̐*/fʂs1қNHfPeA@ YDPeA@3f df@NDқD* j<2z3 'U5fPeA@ p.f!'U523,0 rR% TY`.f!z3 'U^""@5f+-- U^"@ F@z32{{3Fݤְa^xDқD* j<2{3߿Vvvʕ+ڞ͛7ofYYYM3fL?ȑ#ڵK=bA&*3@ 83"Wڞ;JJJپ}.^yyvx('%%%,kdf TY`.z3 39s*++\ ̬4^Q垡7U@Hތ>qD֭/\ ;&:uC*/ʂz3Py_^pƍZfAuDPeA@3f dfIo,>3\BȬ͸|rේ]nҥvTY֘"@5flt9~yQ!3ʂsћ ?3fʂs1ۛz3Q%@ TYPCo*>̌ШIf"@5қ&0K$@ Fs !7^fʲ ,7 G{ D* EoBf/rЛD*  BoGHfPeA@ @~O?T-'FH23,~ L7@eӦM.tU^""@5gfKl'sIIɒ%K9.x>X...[˗CZÀ/^m۶^s *[~ѣG-'?~T7nY%23rNto{fR$@f^t~}Qb̜| Lfʳ[)>L]v5jqqq&Mo ŷ|۴is5ի yyy"6˽{@[$@fnRbb@`<˹♙} 7C|FģwܹƠHǎ8p!Cy?~<--G9s.]zyul nРʕ+8кuGJ Wd9;Y,#3̕g9oJ9,Yb\vmٲe"7n&!!aŊfuֺuDݷo}޾}>:lW_|6v20\y#7JqAfV:Yq,UR*r@`4B)P:}3`R/Y2EmRn!7&}3T1qfػuj޴>)23ti*o,ӽojT_H?VpfNs Oʥ@`4D33,ӽojad5ZLT, 2z硫*&ydoUbԙhdcܻSM23p)%z7J!3K,ɳbcf^dGݚ雡)33#=}rLb'O~wDk7^|9Ç'Nx.]:&+33s5efJ/Sc=drB{q ojJB f8YFݲe˚5kxEE2slln"6X֭'Kf֔;"}[GfH XF {̆+VP:iҤcǎSڌos{/}34e~<J?SΙ,2s$UKRo௞K334%}  o܊9Rp֙I2c8}32df 蛡)2cti5Ra/}3͛zjUjffj_ }3ksݻwGqkTy-gAfv/ QE9̀eX~87&''ȑ#SL1۲ܻw^zbgʋO\?>S,`-Z۹_~OJJ2҈#F֭[i?""2&7͛ ފdfǤxff_e0>}:_g0ٳgرF^^^qq1f6I=o J8p`͚5>WC}3V4ܹsDd x]0ͪ|/~W{6M_v'Pߗ_~9hР >aÆkNz=2щ9Pj}3-}3]3&tөf9Vӹj9ZB-[$%%%$$dffΜ؍2FXcbfYd<`9381kBRoۜ߿[QCaAAAYlg\2FH XƇn|u&EJIKK;x:^"lذECfֈ♙} 7#z7Ç||OZ:o0aW|||MFelllr|EWffhrFb\jmk*8iyF~^jؑ934Efv 9':7J!3˥ffzGJE4ZnfQٻq[33}34Efv 9:1Jo\I433PS3s'OhѢ5^.]&8bLf}3kY23&=3ox>쀗{NFFƑ#GdoŠ5@f2]>d#UXXh~If(37CSaf4SS-Cf,_ )ٗ`}3䲱o~<~8Y Mo}[gf(W7..Z[#F$TzLfFDI6 woBf+ A/^x<ӧO?s 3k雡)2cщ9PJfZjtf|ǡ 7#׈e˖'3듙 ogO:ٳ"3kǩGwOжon,%&&+666CfvY#o,oyR.͐e~UV˫Wcǎ۷OIjKfvY#gf%X' Y+x}.\x<)))ǵ"hpHed<)23ljfAfv 9':7J!3+oؐ>{'<">ٹQvv6}3܄LfʘDo,#30Mdf؎Ff.Maaa<.dfYdfN9̀eP9z7C23S<3/2f( D 7n@eH#32f@)dfe}3d!32B)PV#19׷yzx2s( 7lyo%e#3, )>ʲ5ʕ+g" ! )ٗ`}3q D 7nvڥӶmcǎ9L9H 33l22el=Tdf}323%K̰}3d 33n߾-q.@(Eƙs?+Uta'}ѢEμ5"z0P[2̈f0Μ5k,SwN>:@fLfH X] 9p@#3N>:@ YdfN̾˴awIOO_fݻw|t23&df23lG sCBf܄LfCBfF$7C23*c i ŸBf&3vAfe!3a;7i7C23"̰♙} i7C23&df23lG sCBf܄LfCBfF$7C23*c Bߌ Lf( !3Bf&3vo,oFḦfBf&3vgf%XFߌ7!3a;f23&df23TF (%z2;w,YRz-[X~t23"Ps!KN>=//򣓙 Lf("3̙3ӦM2dHQF?>nyY23S| }3`Y33;93}3d!3a;33,df&23o*zLdf23TF (23"Ps雑ӽ{MnZ,ܹ Lf("z Y23S| }3`Y@ YdfN̾ˢoF̰̀}3V60LdfMdfP 9$dfD}3d!3g梢R?Uщ9PJͰ@YyIq'n뿪df7PCf̼%wsE]=:XpRF-***..^+2FH XFߌ ͐ 3Vkٸsf!\Vdf(ٗ`}3BBf܄\Zf>{`RNfFb`H̀Kw?q|R7J!3̌Ho,df>={E'?p209P }3BBfF$0P2s9R̬;f 3}̲̰s23"̰♙} 7#$dfMdf؎p+vQg -[\r^[ @idfPv_ˣ! 1JѮoܹsM0P2~qN>m &f", ڵk'==]dfC9̀e܇Dyf޽{ɩ׭[_h )ٗ`v}3.Q .\4iϋ-z*f L̀[i:Gf.]tK23A ( HG YPsMfn@Y}3Bf/|2s4S| }3`}3! _8op,2stR<3/2fZdfdM+t)nms-jƎ5*˘1cdop+Zdfd[fW(+L D'f@)df@:fBfNf^_֯7SƉY ߩp`h23@(trf.>;b_ޭS9sto B̲Yw-Nx?*H Xv9sݻwaGFtRn<Y8tPnnù6F5]~; omk99lؿG͛7+7Mf2̙IJJ?~eJJJF~򓟬]4 7231ZQQʕ+=} Jl~IfFː&7P&33sao.CfGf: PsPao.CfGfFH BEfGfF Tdfdf?~n^}U+oFD^Ps#aÆ &M:s $2/b`)ݓ;H]ZF eׯ_ٳC+VF=Ks|R|fmZB$d1RXXh|9a„ÇyO~ W_w8k,FaF7n=͑Ks֭R, ٖDY6mڹsgiMKK[reժUY)v.x!3oD34h`.wj M6M* :v`͚5+Wn۶m-ڵk׽{wOHdf@eRgDflG 9rD* N9oVZ H9)\CflG fݑQzd , 3*c * 3o蛡&23R| }3sA6#3S<3a (/=dfv͐ o U*f" 9OzЃ( ݻO>Jdfvgfw 42ܔ{L2_;i#(+.K~~76SEQfP^ߜΙ,2s$4REY(g2"3ΠoFEQ*̬W 23 7(B93idfȥxfvbmW(P}3$"3SE9P 3G# }3BeoEQ|1p F(B݁ 蛡23EQo;!sLQedfȥxfv@(P}3$"3SE9PpwGDfEQs݁ ``FnC$] l~j4(}1"XwK$3[Ff\Ј3#:46np`n|lcfv{y{ʈ>Z53i?\,ʙq~+{˼kn}wlZeŗvWg'l]sd%Dbcƶ' K3w}Ͷ uDr1?qq?b> hѫuzX[z]ޕeNnR_6پd{u^޶%S7ָK?J20Kީk(ȾZ}eԁbkzܔ>mk[kW͸{nvv >3?9]=: H o̢.7W`niD1z|[?gQ(.̃]L+5]]MT]%(ϜmߌFoJ$[ouf{0qx&>"PGY7wFXHH?.2m =mޮS)"qJ/^9زޫץoV:1޲f;o.]gve@7ov7."jgrmԧOCzg/]/) >fHDf/eFrsfWeS5SĦIs"QVOؽllw_5GD}g2X:|x÷^̝1XŭŠXQU5{JzB;qN1HU5<iY-G i+"~ܑO/-RdB4E:}fϊU:mԤN}վ?[ȧ*WhWZzXZCq?g&oꏋMݼw睙 K{BHJ^%hdn4_{oݍbA;5q8Ķf)|Xf'3lqŬ,O~̙`>gxxm㚾[9ɭ\D0tdJVUϢԢEϙ]ݑQoy_~P\ K.vüag?!'}FBs\*ӿƶ\b*٨aոM7+=tz0m!SDuYƇ6O{ߘ}z#3zm(_5{ֵ7?b\+A$Gnƪ`9U|ꓬ.2F6٪ֈ>MK[EAI  ^| \g,J2H}F윗S$yo3o-, c3猵rA5Y)1ko] ҏOiaZ/-gb&Zx#vf'W7#أC>o~%7Y {ӮX\\\XXhmE:y1->e׵Dfk00Ң-3o]<\w$:6yF缯&3wh\m6ENR bڠw0>Y"OF-Nk朇wҵ_x>y`zu8ٔLhY9.6%hVmTqx~Nͪ|1u KT{Oll@33[@u?\7+wurTd>{?S3tk ͽ Nn\|woh^!-|*:1=ϟ/Imn]ekgߟ+zyw10xCa^Zj;nƵz:}3d<܁0dfE Dmf==1xbWLܥ{nO>%3O$^5{ghc|pmZ!q?52XCoBke"-nf’OME7xdySzy[MGa岳Fw-,i_*1Ə擙5|ݻ5Heoӡy9Gvzw_ >!VLdGެgZG> p4Ju>3/Wg G7fvjca\2Q}uϲd-+c֫xd^n [b |Z'n}a}ծZ6^-6O}3ٞѼy3 H o"}xP"gڴv7*?θo[W{yKW޿Rw!qrO_%,saܳ/H2C5hfֺqAbZ/D'h+oY4TS/< NĈ6kqRW+<,J:uz^}۽ӾbDx@uG,W},6~3 ɶW鼔=KZ:SG2E6mGD0SKZ]̟-xu|kU=2ջ+ :6Ү}\[Fvo=$&&-VXؙsx'Ұ-ҷ]xJ%V̇d%$m3%y>po7D\ ͆oֻ}sOP?.q3,Wiy?Ė>L"1*2*z3H7C"2Rp vj]5/_TmA0կ+p,<%G2/eDy_c>[h\N|xA\Pv%wGDfEQ:s 35idf( Efv23oFEQJdp!sLQe4HfAf\gfw (rH7C"23EQE wpw$@ToFAQ@1p F(B݁ 蛡23EQo;!sLQedfȥxfv@(P}3$"3SE9PpwGDfEQs݁ ``.8y@F(D43kYi}d̒QNf@ ܼyٳ^ƍ#7ܹs駟zّHS| }3]v[@nݺiZ6;zgWPP`aBf\gfw 8/=!j 8ݑQ oQ ` 23oBg!spLM^ s@A~E fݑQoA"35" 7f H fj>@ rK@.fH~Ay),,LFa)#P# }3,#0#J@5dfs@!}3̐K9Df\gfpHG$k7D@!dfE >23R| }3=23dS<3s{DF >"\ Bp !3C.f!s(۫V:pɓ'ӯ\"{D23R<3s9''7Mbb4ig+  }3233SK,\ٵk1z7nt?qİa,t oO8Н♙P#8==SNÆ 3F֭[7l n޼'cP۴;ڵnׯ_#Vӂ_f!@.f0Eoƭ[^w=z8v؉/_6G{ncolrwiރ&L(** ie1  \"=pرW;BDf>sLip "oo>05n866VUǓZzҾ\s!!35.ҙaÆ{0`A322Zj5l0scƌiِ֬!C?zΜ9+Wr15uTY;wBZ)}3x؁\`tߌgϞNaxƍ-[Ν;'pzzzrr1{m۶y׼b۵k'k 4lٲ?~^BZ)}3x؁\oP_jժe\QXXإKԭ[N:>#ׯ_oݺS[n5&u&Mjժ޽{ͻ7))r999!k8vtξsΞ={޽+2O 񥸥ѣGرc!]a 3؁k0НY)Xi$օ j@D~QoƸWΐUk ӊjt?@wo2_雑ꉽw~W[4X-O?ItxfTN #3gmSXp43ʒD^^^fffLLL.]ZMf#3C.33ov۶mӲe˜_*cǎ ۩]23r7)Ծ3gYQQQ3ҢEDr=sm(D}3Xx$NPp %)0[f<x$NPLv ʖEf H р <r)9@Ö%73_7vիW@0doFp5 0`3Vy]t*@"fDF @wK L̼97![>#3fߌ+_Oz8Q7N"3@77s @qgf:l웱xӧ_x o}3 pF| NOO:tĉHf(A @wK s֭mf'33\0aB֭6lۯ J0]||TsEEE'OiSggg{wP<339df|723>9df;(>wP<339df|703Cn޼i1˙y֭7\-?:`f˙y׮]qqqd椤$q~۽{/N:ccǎM8zԧ@fZ ڌ03322x2e}۶m xff 5ٱk3G Cf}3 39|XgΜ9rH.]>3p wBf؅"rf^|/"B[23.o(;S<339df|723>9df;(>wP<339df|723>9df;(>wP<339df|7x$֭x]vCf"TnݒS| }3 ♙9c@}3H Hxff of1D 07)gΜZ¼YhFaFaFqrdɒ%*܄ Ff#3@`df 023 Ff#3@`df 023 Ff#3@`df 0#3]"7o˗oذa2?#Gܸq  endstream endobj 111 0 obj 37156 endobj 112 0 obj << /Type /XObject /Subtype /Image /Width 956 /Height 1055 /BitsPerComponent 8 /Length 113 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xA 0AbPXF`Kڀ|)@B}Gۚw endstream endobj 113 0 obj 1023 endobj 115 0 obj << /Length 116 0 R /Filter /FlateDecode >> stream xWKoF /9OAgڛ&Emy4rO#ߏo@nAK7Xx>"Zhz<(5U'Bu(_WYTYZW+,UbRcH,iUV3p,*2&j]3mνFha)M'F*9am$] Y.tnYOwVfgрqswCIJ9!g?ǃPgt~ARv o=hZ# IߙoZJ@F@e9$7n)%sȒu؈jngz 9 Ҩ) C"* NAV}QE[uf y[`0hȀt9|d#όp_ Di2jG,y  endstream endobj 116 0 obj 1009 endobj 125 0 obj << /Type /XObject /Subtype /Image /Width 354 /Height 240 /BitsPerComponent 8 /Length 126 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 127 0 R >> stream xyTTWq=gzO93?91 vv&qIFD+n\@VP lFª"n$4FbT$#A jpC55/תWosT=K/K)))vqq9x ŋ9JZ TP `C% 6TP `C% 6TP `C% 6TP `C% 6TP `C% 6+qҥZQZNMMMzccMnܸA_v0&&~U8͙'Nz̙3t_-'}̼7o޽ۺ>,]xuBΕ8{ŋ_iӦUVV ǏW&L0eŒ1bĈ-[ɾ҃DEEEGGԤ?s---tajj*]H%##GgppphhΝ;~CJ NҢtVVV&-Ϥ%JQQu/^y˗/+o~'.^hIUUӏ=ZWW7gBΝ{w >LxxxУi!=x?z c]K+wa kD%ZT>IWi%7O+!)ww[nYofeew={ >ܷܹswE #GLJJ@غpŐJ zWW3111g.// ]]]鷇Y2dȐ ҅B0ݻ*;?J+Aez@O4{h{{=Ξ=k3ӧ:;;ABz@J%;v>&k`.:W?okkpBj=` ғwQ9G/@ =b 0%q8@6T0) ]jQĔ FoP *aJ;˿>m%|p0lJl>m}^ΕxӧOK^ %I]_ooYJ0*lR%6V{Gh%7=pp*6}_*a&4%G/Q 3A%L q*6TP `C%sJ0ziΝD%@E9$''[,m۶]zqBLhhO?}G%n&ޢn0z Ң"zkkkFF333?X̙3kM@%2W\nr{ƁPs OA(KAA(DJ硉 J+_> ZW Ӳ%āc :T s1J֝Zqs~m P 'd{"c>ڽs|C>xqk£4A(49gcW"cx'ꛤC>zc>M+A a&8V wfXocd+A SX%K:)tA(Ԇ9'a{"Ub˧_8o|uxiDPV P ob466({jSP*az'&Gvvرc a{Bǽ5yՙ926#ٞG&$$vkii)// ]doh^2KMMe `7v%"11Qti}pP (KA(9SR+JB4AA(J "T "H%B!^KDq*A (DJB0ADA(4Ki"`%B6TBhZ'Y P s!DJKԓ> ݕ 5{CqQY )koP 7Cؙ_Plekn#sp8g":::1?yA!0@G aCH aR;HZ cA"ԅP sC"P{PM2WT It8U+s"HO%ʤMȯ~ W }'miQ H Y-m|s9 =VSG$&}?=aJC!U⵱^ 54i#ϕ0TФCJ:s%Oqlih.ܤFUh Ggp[ޤvVFUBDF/2Ǝ^BTBD,bU”sWBD&bUBE^\ APn%= X01Q1bUBˌ:Mn+!P"?[nI7Q 9e{nxxK_tkdfT+++-K\\('N_nU[Q 9eغu+ݤ6lXqtuuUWWGGG(ȅJ;v,fΜ/EEEo 8^z_>aO,66Ak!7n8[H|链}[u2t?{nlѢE޶wҤI֛gٜ9s874tM_l2e>p7|zy&IW}ӦMt7LKK;<8zež}$gv!zSc 愄ǝ~!ػw|JDPMMMăCaMDIIbUB>ӓ?`=Pp  <q܃JBy"*0⡉ *Ky(OA%l - Uй'B$Bac"hPпO- Wxl״{8C 8G*Qxᝅ~#&6s^PDcfcy0):;P@q%2w}&V@Yݩ#GkZ (–Q(m_޴^ϫ{,o2k%Jq%zo^`\ RWFo,߫C%>Rt%hߜ8sDCP(oj̭ͨuLY PV #S>.Sա.UaoѨE ŕA)ʶ@,–P(DoӟCҭJQ *‹Uf?E%4\y(W"kׁ.?s ȸ UAÕ 3!J+#]'+קP 8˭^$TbƏvGgN9w̤|y\Jg4 }2?#8)/{FCwIXq%j|sQޓ?1h۽{7|Đ3g$''[,+W9jˤ'?,**4!!ԩS -P@ll,ݪUUUow&iiitE_|o= '4$$d/j{BootwwW)rϛcbbܞ{B3ɓ'r .QWW7Ɗӧ߿0""b3fЧ vZ~~>}$%%577y,A|N[֗# zx|kggϞm8WNq+A *!Q1DJH֧DPDDTx8 *z"h8*N^ -ADà o gF *a[% pJh"Z%0a`%pJh"Z%TK ܇ +u"*JY w(:$V qP q($V ^]hyV XT K1d˴S AyM/Թl#G:m%$MMMGP?j&=}%LU]]i8$mmm*N7)%D2.nRZ~U.<^0+P !@"la93A(DȔPh*9B H]L9a2aR;ZcB(D(9 @"X eGA(D8s"3[ZKJ 9rԑDpz-9i{, Sޠ:'O);QVߤG,hoo#jtT']\\|UϪB"TKi  ]zlwJ B%L@PHO&ocs~,Ds](䟎Z[D[ $s4F3"T8LFPQ $BS4uC%b(8qZHp0zehhh߾}r!"TCvb͚5M=***VXty[s};$C2mY/$q0=CQ___#/// `Æ Kg`%n:B-ٵk-kDP3Œ(Yn8 P *$lŝ;w7"q8(D-^OA(D~m}R 3TBJ^2oeБuq8!BH^:'CH%֤ovˀQ&-ӺHvP ec(WbMF(ҧ,Y‹)q83[B2 `*D"zh(Wbĩq9Eu@"ĂJ ŕuw0l_ ˩>n%}`/CظnݺV#tߚ51ߐQHn0z y(\kXRRR6|!{D xѣG7}~+1Ϗ&KZNspg0""bǎ7o}-^ŋG0%T0l`P @% q**)"T”P K`C%6T0ltKCFнՐKPh*a1*a q-n߾}PRF/ 6qn0z l)a0z latK`C%L sK`iiiߘcң ,,sIpp0Q % 6TP `C% 6TP `C% 6TP `C% 6TP `C% 6TP `C% 6TؤJTWW_MXXK/ pxZ y0 endstream endobj 126 0 obj 5754 endobj 127 0 obj << /Type /XObject /Subtype /Image /Width 354 /Height 240 /BitsPerComponent 8 /Length 128 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xQ @H#R%ڈ4N!T=- endstream endobj 128 0 obj 127 endobj 117 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 409.8 335.2 449.3 ] /Length 56 /Filter /FlateDecode >> stream x3433W013T2663rs<K= Q˕˥p( endstream endobj 118 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 119 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 409.8 335.2 449.3 ] /Length 75 /Filter /FlateDecode >> stream x+T0P(b/C,^.# =KK= \^.C3#=s(7G33My(drrr% endstream endobj 120 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 121 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 171.6 335.2 211.1 ] /Length 53 /Filter /FlateDecode >> stream x3433W024T2663sr lCsCt!X*.K!M  endstream endobj 122 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 123 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 171.6 335.2 211.1 ] /Length 72 /Filter /FlateDecode >> stream x+T0P(b/C,^.#KCsC=s\^.C3# Q lccS=#6L€^ ^`^@^.] endstream endobj 124 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 130 0 obj << /Length 131 0 R /Filter /FlateDecode >> stream x[ۮݶ}7pAzR|9 з4n[$}s%(m h$r8gqӛ_ܞcc)ָ=,f7}_޼&纬 Y^K=І]}j]f%ժt|鈃:/hlZ|H7!ְc65iʼaHA_tMl`w&L{qj|Yeh@1@o2v^3p^oYK ބgX%:kgB +<˗7'fr9-1?4!KlW nKcD9V)}g%Wn:cڞ$ǘ4/ھt2>]};@\|7>I;|=CvYWiv.ҜInJՐ;A(\fwJ#m̲OiraϷ9dfggwfK!qJ1&A2iDž)4AZ4Gİ妆$K$TO,3݋oW/1v$EW0mo>6?L4{LU4@D|{.O;բpPi@j2ٯ˷/?1.wo~rgZ}VY-ra%\yW,]B~^N(zKȧ7|z79{ځc4Ŗ=ܑ祭zS#t/DOl o1իPV<ȉ=xv7~ P:('Yf/~2؎\$9_:t̉VfVv;{9?CuVEIUX)M\Ҽriy·Qtp`1)_:IqFFeZE=n\ԩ3@/a6Ct>wfYvYm&]Pw1#ܻd>7~38u,6 &:@o|], P*{ :<N!_:ُܨT˚(ʤe2?ͩ() >hZXe"#juB,F+2g 11.A.Cȇ\yHuy{VUaZSJ )&z} FGdP=yQZ);Ƃ;sdA7]*.UdcבUY teV^*O+~Wlk#A =5b32?s 25 fZ%ȣyf ԗn)z0`Ё;a U \(ARV|m/ h0 VTQrqBX|Lȍ̞B0|X7VyD%e^dHJ<,DuMq\A 耎2S"B# mL tB8biL$Xe d[]$ DII! t$( ^4[3H3IfkRfl9M7ա4{1s/t(:t~@5$=:@ ufUuBR0dTGP$1:O"L2TGu|XtX^6kaD=ѭ6SZL%*%*CO2KʵQD,RҭZjɼՔfkH;{+-7͒6 JU'*{(oEiSDwf wplPGa36)0Q]hwD!起*Xr}Ǩedciim95ܩhHG{J[֖SӶzXb74-=3i\!)7SIncK[KN4a!f$F%YKN4y$j%%#ZKNӥ4)%Ϛ% H~&omibWҬN:֒ӃD[rz@u~:S7X>ܔB>ş{"O\d%dFpV=9|8ɽ+wR>Ep* i0_QlCp2S;KDp ;N~}Z>h9[}f7@طz8pY:V_8 l?.Z2g/rсl'>r#ø_-xW++gG|g8g뀸_P߃\(k#K1 ?p&<ݷ\(|6rI/o5VcJʙU5Q+nL8u"c/Ӊ؝{uJo]PAD%WY06QZtY(SYt+EIObiKU՚NHxVbPMΘ]".Đ]0d(q긂{fuyE-Tk  3>RȝMd>c>v`ur7&fwvn>W!͇!ޅ-Lql)] Jwoa5g %DA, mJ\⨜> r$8j~?ԃƺQagOVՠ0kWETa2K qYE}LLKLD]xI&Ht|/jV. 9YCr+MszCvCgxmlV?nW1h*hB?3C픉A$➠ Q2*( Ў{ uUendstream endobj 131 0 obj 3953 endobj 132 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 292.3 379.4 352.8 ] /Length 57 /Filter /FlateDecode >> stream x3433W065ҳP263rs <#K#= U˕˥s2 endstream endobj 133 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 134 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 292.3 379.4 352.8 ] /Length 74 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sC#K#=\^.C3#=s(7G365ҳ-xPȦ(drrrV-A endstream endobj 135 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 136 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 190.3 379.4 250.8 ] /Length 55 /Filter /FlateDecode >> stream x3433W025\z&Pnghig *y2xҴxp endstream endobj 137 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 138 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 190.3 379.4 250.8 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sCCK=c\^.C3#=s(7G3259 z&h> endobj 140 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 292.3 744.6 352.8 ] /Length 57 /Filter /FlateDecode >> stream x352׳T065ҳP2713rs <#K#= U˕˥vmC endstream endobj 141 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 142 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 292.3 744.6 352.8 ] /Length 76 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=##K#=\^.S#s=K(7G365ҳMLLxP(drrr endstream endobj 143 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 144 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 190.4 744.6 250.9 ] /Length 57 /Filter /FlateDecode >> stream x352׳T025гP2713rs > endobj 146 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 190.4 744.6 250.9 ] /Length 76 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=#CK=\^.S#s=K(7G325гMLLxP(drrr) endstream endobj 147 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 149 0 obj << /Length 150 0 R /Filter /FlateDecode >> stream x}ۮd9r{,@Gw ̥ǀ@lkE3TdӘٹIƕ 26yOz<VǸ?on_vo?ǿ~֏ukuwIoo_)]\ׄ?eSk?V/S.oO?Ue?Y˗NOU?=WD2/7^ Ƌ;=3 oc -V5?'ϒmIk~;X?sӓք_Ƌf=OGj}vWmWfG /R'=>?նd"mp2!,boUcn2j~P$jaym痶iKdxVi0OϵxTWhzg/'j8|Je*z _0gzt坹Ts{Ug i׾('w앳ge(sKgLmug^?|8HpۯȬV{lzV,'9\RF@$E/~80jFC=凾wK*ѣ¼Trem*]ɔ~<kҕJ-Ά TZ̮d,M$ 4=PZ@1n4v5i@(-&ͺ\7BE$|4tmT]k?''l\꒞h 9WvB,.2硠k+*຦ ek]#>8COMTb|<&J~]SȦ.u%QNR]CԳ>HP*LBWai{0L&D4j6HTӻK[ޗGϺE:%_> "k [[ 엪v[l[Nu} 5QGѦcuB׷JY~^ Q:\kŠq$$C5贶v1D91?&FfLI2(lr1/&Η\kO= 1=.~yKSV>m`7}&W~7SXmUx9R`t |]FT%J2^ &gϴ>q;Ms=Ʉ2*KI'T?6nql }w=Ÿhٓxг4Jߣo[ Ӄ(i*")jگ`~mH·ĥ;pd[^ZE]RJJne\`UY^UId_$hݛUYR_ 47pe2o<,\ =|^  nHĴM&dKcŪM;dWݕtH@CrΌ<+`oBI\"'B9SG:g=dWG%SuP?pji(JnQ*)ZJcZFuog(k>7̴ٖ㎲N)/UT?rüY]@ m-ZoF^)Ӛ57m"4GyWdtLS"Cp{%/s5%pd%lFf޷ jFFR x܍UP1foT!P޺JEϦW"o]#ZLg9 I<@;tYONS9eJeC*HP ]S;!J  K\0^ea6H~e=4r0i=(jnPRq &}zy?( |%$dʷx5G{;Jꊀ S\ dJq(ev8CPo:fIP`ڐcE?Dr,Ya=q+'Ũr ]P mK֗aq AD<:ǝ~qY88y6K>/ sVaI6w\CrU7+hȂзdDE% &/ :Y| bl`9#TG`-$릮wCS rC S %+6M3~0JACthHB׻AiѢw-YޓYٟ`oɱ,$ӧoc xYgiU:a-=gR՞3#J# ں/^{3/)>dW3%1pXK5L@¾$/ P8Ќ4a?@ҐB$ +c6ązefg%LAl$H&D*R&&W "!u )Mo!+c#ThF˓oO^є~kHϰN~)gг Fҕ4J sb4f ȬR)3I8fPj9=3};hP=4ISW%iQ3%jyNPd@44;JF`NLb吩e!6$f_=t{ SKIRre..<ڏshR ԑJxQf`Tdb/ YHPI՗ 4ISi0FTpfR=#kO85S04KT,0G3$P M[ bzb_9 8')-fx5uSrP1W9Pe"V ; ݀.~p(HT@ ÒÓi5%cA x`٘Z=h[sS}S IZu,EjUg1-[ήalJ4k-aGg*)c,t .qOA1h{Z#i%L }tޔA,9z jrHI с$g j dIz;Dk q=\Wy˚9,#SR?1AMMѭR Hj8V1rd!~uW I{!OZTٽװ!ʌ`j:a%$A/0DıKTZ˚6~t훐řʦq1!wNKv&SmrL9wM. Ybܒ%y2eZ`?Ɣ@F?3̮LoXcb&ou0e1acsl l3P}T,&mrb鳣c&~4p{Yq ϲ/6f1GY>t{GP'վ&,#\b[_6b胞08,lM[;08$Θ7W~g˽H[͡@Y)%i$QtͲX6(]=ȞUyrų&(eˍ@fPoL37]WMrs=Э dQVUtɺcQTz]ʺS-P"-CQ̵KYo7 vI4NYE|eEE[zy9.tOA=H0뤌/>JeF쬋@D嗫OCr묘 !:eٕADݠf`VzfdZFf8CO.Й=%BkB]~tM\썶7ڷ ю_E,%ܸ Pԕ ɦg3JmPKmWW\tSvlM&d*WlZFLc#M^Nw/2GYʰհ/ 6oWE x:A؋| Ng2.44?Bݿ˭ExdjzkjzrժSt h:vPu\lL0S`$asчcy;^Hd:* ti-/e\y0ٺ׍-h臥-hc[ζnmmCU׭8t[+-c!E, J.YfDq1WJ0j5mlV>h~Lո}m5-!**:oza_ wٚq\RO9{zkwS.] (-*Ǭ+3 Sb$~N.dsSd5FU??nҤ(,-UC]L@L Ю&Z!1Wfo/j0}Q:0aV;IխoeyJ337pB2I ;+Z^0B] y{.[ʧS  #'uCLVFK|x<^=,_i&:@J<3͡ mOaۧ}텭멻넟<~ΔΕ g}`03Og;,V\N]f×@_"OGΡe.06@ϑ4{򠥤aYuy'DxP(PL@F訖e) f5K$jQMzFZ H[&^xq:ʗ7p=xX]'yD@5/pzцƁ:+1х@9Jq8C7\@ް eX뉊vq! QB#%^- ޮw4\֡1(e,W !?~Xd@㓙,೾"G@uX a mQq^ ӏT-#>ӔrJ< X2u<)G XJy!Kȱ̊)ⅥJt? H(c4trJB/cI!9$TNJkGq6K)ؗ@@@T C9&[Za$Q7&F'Fz| ,kN@CA,ll# B; {E/UՔ),f@46}UQ[7iˇoRY/Lߓ>~>~z ˉ&=p]KZlZZ7b(\a42iR`JBRdHG= < JP-.Ӷii)9 ̵+igCK= U[`([_h vQ"cyy<,C}"c{pxWbÉп$Peg8{oOabuۛ"b%!&*T3X=Pf%k=,ؐP2H[e2(@抰hpmEc v?[yG9X WT !$ߔ% fYWy(ݼˣ|ӄ/"Mv0\bXHI]QG9{aqm?w?7"h2F6Vi4,SI%L5TľؼF0rd&#ڬ#͐V3lH~EVVXSTߨ~q@r-YT1Ϩl@ETf`4e b&&AAS@O"# 7QZ#p&Y)z Jh3/Ϧzv;ʛHRbܕl v(4y~s<T]A)x H*TKbEC]@)-x$x}Y@˘.VƁVhnŞpZJeU dۄ`qZ&28!,alM bsTC%c6MU@B?ÒNRy†9|!2 N m:O$(;~zr|TZ4<T?$jfXO "c Xo;fz+aAd ʹoj ڲG zl̀aqgjQYŒ52z0bf\%xwް,W_= +Ma@alŋj?8A GgVeɏF<70(HOg]/^M +MXHא틍|/~ ~88/HAbCo*7S6Z@JRdwj#Jvi؋Xn5b|B iiz2I.Cwq ߌJk92Yq&HaH~z8*|)xr^P.䄠J.JVo'Y/_@.V(N-SD UXEriDUURGl`Z"xa(ki4)d0zSyTD?Y|G9x('lA$T!jDr ǁb#ݫ{8@(g@-=M.9rD( "'/w&x&*f *ϷH^T|Ԧ4Bj#Osz͓j5N9U3eZs v(b> kgP6f@FB5So<߱wzvG|qLqMxF=|^EN_qzzhe=9TjSMvjYhӜmJ,rJ뵳@v'mx[ {ےBTcﺑ?dʎgX<"ӿ+:@E9td5b^cl"J, f Da;к]"1}KA9(ֲZ S5~$? X*u?U""2jrbϞ_ BɏĪjp)"@v .D`fJ,<t(,cbT?@tWCC@3ˌ +؛CEn ,dh+OV'[59G} ^6հi@^ާ1–U C[9lqc 0mVI r!j 4  JA!;zh> `0B!O:gO[~Lo]0jXPr27Am*i[lgqƀgاkKJuC<8PȺs_N%ȅ& ~cbJフ%2.]a{C/-,!ZA^`Byj<z%_ ʂCfU 1u}Jy`y1P/_蘲bjxZH׭UGPM6(9,(x<;7AD+>qJ/W>xqT2H^/HS٢[yWXȾPr7ثZ:L!E\'Wjr (9l0R1ۦ6i.?.S zqA@ݮZ&(xH <ٞt:WTzG9tw?ǟ]sPeBl=LA:ʁ]qt]Pm"97d|8E$e-A Z Z9LvJZJlĽ`jș)P|) k'fA=ґzog@+da ɘ /rj# 'ld)AD@@9"V6j 5i6C3.ey@;Pu3P6)Ydz]PQqG e$ݚK:0 jj!bK((qQAt 3]IŦu-Do(6᫸fu["S%L A& jl3ӱ|r2A`'ߘw1)xRCTR@Ś{G,3}!b $8KTmȰP7}?FNhABnQWK ջ![vs뷨شY^Z-[h݂qDLv6Db [(^p]IO,R\Wd2Us9UcߛϊnSQ{L HJs΀1כ@˱Ы~#3픳]K=v-Si,h^i)DQ"@; @; #uo4nYe52|-4[.9z[:.Of] ʆUMǝOf01 #qOWUs ~f_=0yWDUUᕠrufwۏأ UeO?reԾj:i3~ůl}ZSj{w 6e@6g0yXNb޽wNc-;>EAހs]v7>_mmJh%R2[7~=tg ak5xFWiƾpj{hOɼfԋu99IT1 16L4=ENPrsG/[D4*czҀp35*}kA E>EvGyӷEjd6VXr;dGNô@՛ɿŐ^%j6gBgz>6U鬤+Aʴl[LjP`ߘ;owdqGg" kHI#FRi5R%sMPX @YWήM1jq"Z geZv­qhJkˣ$J=j2 l27hږNE"P,D Vˏղ R<;OOx@:LV"wbZ'.BťM fK`&t U㢽N[y`;9gKt>/% zswLEs`cwA2 `xp1xsoHR\}) 1ᡜT]?vF.:""t1YRa& }ْ{,O* ӷ"';0[/CS*΅#YK;we1hWC9"w)q_t?.h%5 yEqqg)˫e#<CFSxPA&F3]rW`ﻠ7`p-v'7oKBQ´ovᆲۯmߢ^w}'HX H+MɊ.3޷i+7%M|2/HnW'kYoH|pm|^>HP Rݥ=WŻȖ*xo`fm$SUV)}_ nW"g~0K嬨:T=fRW}U(U=8Yul3<z2"d$g˒Mʒb&J0ip{,xŅv"W۸$O!7ق \~2qXܜL筺*ܷ+*Jԫb-W#!Ϣ:&S+*Uy۰*n"ޚ>'(|u(SXh݆W2jJv]R~F4iOX :n-'e*obd 荌?8lػ862\ՕJeu?\0TY|7t Ce8b1@eQత s8N%TwI&{U(prpW>tWS؜?F|]z󯼋 T3o /,8@=AVf[V@Q.Y.̛yO͛k,::7uɕ|f΁3nF\/ӻ3䆞6!]^&:P#$"qnk7-g 9d.r[\ʔ3]8Xց@o b!_řA3hU*d;zoAI+y?&}vyūlH:Dءv Nirw=taFw@PnHo+F5>{z(o6jT7e>F ݃2^۩&"{OYgI:> H TLx=[_%mZ`CI,MK*w_~ $ Wxch  X%GwC,N!F%P1D֋l/jYXLJ8jr6~R?ƇTY0[x>_5}s͚h+a*:G.@ r eMachnA&+r *j#4KZA+ #GO|t/ؗG4A5˴A% D0Z,I\B{jmA%'sF[gˉ$cu JKB#uY䟺 WWq "1Ap]n6ixphܻ]?Â}cF%vc)]D1 G#iwҲHc7]8ڷHr;YRc $Tlt@DNl24p1r3Ӳ sCH̚M3.Ln5lUA-TҘx#-4ci<{e}n=Nk8<µ%zty"\V(HR3d[[HO[z4¾~Cu^j%ٯXV]&4Kx [sl3ĬN29O!|C3coT ɱąT;j|_Tr҃ǎLXrThcUHfۯdVa,G뿛5y|ߔE2wC]ܠw>/MIyp7eVxQS~j> T -%̰0@T,nͧG n.]ڮβ恘}!^ƒjGfDC3FVTV9wEv@:R%2  (tjK)LtH)cs|: a Ùe2GF/M.#!{@2UnQ >CDgI +M8doo(K{>)~=E%ޕwy LDoS1q.3;)2F!<|lL!<nOtaD`m}*#<&*_exnQ;3xxnאhZ%70ͣȻcpxaJYK(9lA#6Aдc8@}+qV`828qľ&dU'd!޿nhS7~:NrNذY"xUØ_-1|ہƁV֪콬#9W1YL~'S(P[hլ !PDb]a }b~ɻ<) sdY!av~p6b٪giCiߐGd ̿v~F?gR6ȚqB [@@=Bx.wD kJI.Qgx" ᲌4 $v4ΛH3cRN de'XhƀP2aBG4v1>[+#z1Weh\eyE,LTYM3;9~Ka^ "٦-iu9x:G 1c&۞Zٵm ]4:.0=4k^}=I2ޯ{6SO3 {&h>J#G\{fY^' n\iԟin h-]dޯucz"/\w_mT]^NQa 7nΗi|J7 DCUFg`2~N'@sb%Ea/7n`l'bʖYA0bw>IֱN>8_u2|^_JÏ~^3n 2T=~(m/m#hz5ʭْ ( >.˶Sy$&]/\ٵ1Uڰ U1ڰہƁf@#l7W6LQ ÈmNXh`^O)ܕa+beΖ&?>buk}'Rm{Kӹ$JsKAl=E@'7\ Ež\s7X\Eۯ ޻͌uC_jLc "u͠.+4*UmGgnXMu+{`q5f 3՛Q]@9T>pGt+ _[/ 7t+7V a9P;P܊%聈~q7~==;Pp+`3?\>h(b% *-44= Ϝ~#hX /=Ƞ  OP]KBNP$:Y-Nܡ0ނ[]b?PMo_]?=Tҭf _|8 ._0X(xc~̧/ՇŘc/x]}R IUoqɮaeE{ {v~/{) p'~}鍅_A7Vs?ٮ m'>vL3|^C/~p?9endstream endobj 150 0 obj 18668 endobj 152 0 obj << /Length 153 0 R /Filter /FlateDecode >> stream xZێ5}iϑVH J|>*mwV"Qv]rծhx[tr凊 \:EW'>>v<:?e~Qozzx0h|Λ:e@J2VT}S]#LSar2%˼X2>xh3w Qπ.KuaNtK..(0.MtuJWc#5amditk|3ߕ#J'qo<{?L{7ENHwC=0(kr &{yhZ.`F|%kf-\wg+.F)-!e+]{?pFhGZاrqfzM ٲsޏׅ+,#|ܸgnޮ $R!?(\.@ 2Q_P `J4<+f[Sxx12y}EsF(5O&rf5r:X"`Z4IN-d@ۛ#ck9Lpm u4uR"^G%A짇$xxk27Ol FkAhNry5f͎W^2-bV㲤h3nN\E~{]Ta*7= FǬ X<1>.mVZ۪R]=Ed}Qn<²jUmL;nj.z.nF:!=NS\3L;g@7G}4s'my|VHB9:k Uƞx4qYBGFy! %(Ě勗5Ј!Y]! 0\p|'TL&Eb,-ăځi| _ʬ2bjP|DM Bho7[A H:2TٱH"1y Eb<J1K< '\"%B*xRa;BB\qUJ>hհ- b9XjbuK$Y Dm$dh^ױiCYq]E70tK)`a"zذBGxy]p _)ň@(X)H\C [4 J tAcR%nf. "a@`%٧@v8*j r@E!,$a0W zB%όcj%N_$a1\P(R8e,F5l.QKB P#rsscϨZkX']w(Tq5[ ."\[p.A_ V>(Z$)"AG$>|,۞Nl٫5+`ܲ4;p^JD~]UIc򬘒~8WD흨hYzS) w 7PvvvnNt}^ڭ hi {4~1@p }vHY 5S{ʺ񽭶XjHs%]]@sVǏ_ߍaP?"VO^)슒2,uZBUxƼts~q}Fk%n>zB?endstream endobj 153 0 obj 1959 endobj 156 0 obj << /Type /XObject /Subtype /Image /Width 198 /Height 141 /BitsPerComponent 8 /Length 157 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 158 0 R >> stream x흋STKZ1N뤶U(RӠR&D%PvaR^ ZC 4,RTFV@A>pxgE1{3{{,6npi3< Q 0 pF(_` |Q/0 F(_` |Q/0 F(_lԝ;wN:E}X:~WWWAA>|xСdzrW?,xu vvvZnIck֬۷o O{'NnٲٳΝ4{^okkκuhubAZXgÆ (m$--M_.̄Qy*++T*(K+5k<{Lxw^Z 󫫫8-_4sff&xtt4$$d[~}RRmsU/_5(F%_x1gg2Cr ZFFFHײ)44TC^FqD 93pGw`l m2͛?܌RXnj deZϭv6*_F>yZͷ̨E+aRXfΌ[~={NV19bPF]tɖt2Nզvuufeӣkkk-wbK/qss &;FbbOIIY`ҕD8wdd~j4~"T*ڵku4xQ&IӱOSESIX 322h-//g??2u`/%I84YzMMM$A+N'w& /Y( %4pqQTbGKӨG[x1J`k_r;$W;z0KHdNnv0 ʎK/QFY6Z'`k= 0aԄIYgԎԬ?xj/]6y%';`{&2]D̫ZmAAaTaa0*υ9rrzYՓ֣i+>-OOɞڽ{rww_b]E[Wp|ra֍׷v5;;{YL ''GzZO$T*ږGg;oyhؑ}5 a֡ӇYTTN n疲O_ٹo Bk.9y]E-/^H&"QL: 9222DRŝ9s>FBeeeFFr;|6θ?;(.W=e}=ɔľ7hՉ~9ר (zڨ/Y:ۻ?Q6Y߅* :7\~(+}=**m,?Z}FYaTk0ʌ00 F%Q`_8"Fq1 kj=(d||Ω144+kja0J~:(88??VߞT7ddfZZZP뉵Fx{OwQ<'e5g(ZF 2s[.V(z'r$EiuuuQBf?//_|%j=*֓; 0Ja܁Q(QQ^SS`n()zrG׏+ ҉V-Fc4i 32*7Zv&LMM}SvIX}Z7kvrOuvvZ1j=`~332s`Fxz@I 3f}=d/0 ,́ j=gccc^"ҏF)֖zDdR |Q/0 F(_` |Q/0 F(_` |Q/0 F(Œjll4`3dW!6SZZJF@ endstream endobj 157 0 obj 2736 endobj 158 0 obj << /Type /XObject /Subtype /Image /Width 198 /Height 141 /BitsPerComponent 8 /Length 159 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x΁ @vꣻ ..h3{كp endstream endobj 159 0 obj 75 endobj 155 0 obj << /Type /XObject /Subtype /Image /Width 184 /Height 127 /BitsPerComponent 8 /Length 160 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 161 0 R >> stream xSS'ڙn;uc2j #ʵ"]!**Tj XA("7ET,#:7P>D&͓zv .YDvÓ?E._"8w0˃  wQ.\nn޼O6>|xm\.N3 <&gIJJ >D5bO%O 45 ɓ'iy{p+++8M5}+W߿F ]6>>~v*i QX:آE(Ox'tVnvuuJx8A{h˦p!f͚OR#((H3Rc.ZD8ݼ^NNN,\UUUu888PVٚ449rTƚfsID:EEERJEᴛ]˖- yHSͫW̸usmJ<Ѥ9N7QuiR>)H?HYĠ΂Җdm=NI˜qtB&smj."{{EBd&OZ-~D޹vJJHH6+wR K{Mbcc6^L^fo }xݧD ҥKwi!5PESJrrr[[u'SN=j<1 qqq՝w";;3jhPy {bF, -dگTTTP6~O̶=a˧k=>["xbFeάQPO~ޑRy@Oޙɞ|iW]wa&E l6ɔ_3ٓ=.}GQN{[OwM߷ۥs׏62(Z.I^ur5N䝝'%%%T5LykdKr~\511ddduy_l`Wݏzϴ ɦDrۛݨ1OT__ro288Jѣ~apZZZϷqLJiYuk.O \/}ͪ޽{״1'6|> stream x1 !0^X1;b\HZE'?{č=_  endstream endobj 162 0 obj 74 endobj 154 0 obj << /Type /XObject /Subtype /Image /Width 198 /Height 141 /BitsPerComponent 8 /Length 163 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 164 0 R >> stream x흉SYOݲݭufWWQםk4Q`"0 Aʭ(^(⁊8GyxeWt#4O^~yKCb0+lllAPPЙ3g`֭[a|Q/0 F(_` |Q/0 F(_` |Q/0 F٨8q}E^^^oo/SW^~{{{fff?={VTTji8]]]{mmm|) ޼y.\0ޓ,((xUuua)K u떏=<<***"##IwttP=66`0=~>''IIIJ V5MSSݻNGT \W^TTnnnsazt N6<8Qtqa9~8PX8ܹs>|H7oL4޽{&rJjժgϞ?KҘ=Q(BPӵPٙV'Eu.]*BDz=׭7…0'Qn$CF[A899~ZAؾ}~AMM=ޕwqqYpabb"$ے%Kmf\e»wx eo߾2e 3E|&9p:? w'h }ݻwI)00P8::>:BROQndggRe0J8 EƬY(_>I YJk)fqʲ Z6l@;>%%%Ư_&QDw<={ƍ)HiOdwZd'MztwagڵkMQmh<%e8HKYȠF(++3; RfN# 5NOAy_]L(*FD'@"?3Īk= Az3s M`z@ 3oP,3ۡT cSzᚥTUXpR@f3&ԟ6QYYx ̜E: lTrJjGGWYnjZ֛eo'efdV1kOjaAfoT&.> stream x΁ @vꣻ ..h3{كp endstream endobj 165 0 obj 75 endobj 167 0 obj << /Length 168 0 R /Filter /FlateDecode >> stream xX[\5 ~iC+1͹HRo+.c;vrN23KZ\|?'9c_)?&r7o |xpyLeLpS؃/hISue ٬{-{wGŝ44K\{&73qxNy{5Nnt2~U$w{V/Ji=7 K9/UJ|ʹr[0Яqqq%nvcl*Y |CzAdsBga9'WH6hhw TVaqNx_ RhhZ%Bmj<>1s%a 8KT;Փ+z]u>E.tDžYP z+Na/š(|\v»k4tG=2g[ tyVS|Mjvs.y3>fyqs%žO Q6N."(#V4nx*b?3k3t/<3kNE$Ջ|uW[ /7>t7ekzOBHjj{lWoY#XGZ0V$>vqj[ݢ1J?ʃ z/.D3/V6fئ2 2+XHVXМXkmekj^{mp4)~Ob.1OOlK`lN.0"ٖ֑cmm F8K[b+ UU 1+gCֲܰ՜G *lIĀZ0h]Qz 5shuA HbTf)BjY[q J&>`&YK } ɌEVʚBEB,wσ 2˝ ʅ]J[n*REݢ E@N[c |L|Z*АrXPEdꁢ\ ȢV۬!HH"O+He6mJfs\Z4h~u,*܍-.\q„J7hQw\ҡ@GQ KW0 nn9$r(4 -01+#XDEmՒ"49E|<>ICrdOXY)Z!mo3AjtLJ^$RM গLm.k\(&dx['XO)bL ;hm#SV]չ?:cNjrI1h;(nGGшe0ej3sn9$/~۞2W8q6n-7|E~<7CxW$G2endstream endobj 168 0 obj 1597 endobj 169 0 obj << /Type /XObject /Subtype /Image /Width 127 /Height 184 /BitsPerComponent 8 /Length 170 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 171 0 R >> stream xSS:qζPV Bga3.` +BFEeCS cd*(Šo4(B~or/~s.donnr?9|$'F8NNN Äرj|vuYG#B!|DH>"$G#B!|DH>"$G#B!(,ÇgΜϟ?Ͽ}6C❝оtdz%= On匿+''}}}, .}zJn! qPyƍ 6̟??00"11}ݻw!UV-nݚP^^|s`ZZږ-[!8c e|T&B>󖒒9}4@رcѣGx)S߿//SeepuʕϟǏߺukBPAA< BWg%KgDa"䃐 |/ W:gÇn=!!!pR-Zptfj,^899y|:.PØڃӦMwx40(f*r P7o޼wߗuM6 gϞA#**J#BttpAΒt1fT@>F777ۧNz)H ݻٖAxll,)0A2eq hh(l ˃m֭[WZZ Aaxo۶Mx̙Axqttuuu&Eaw@R6 ^ #?TG@. , tlPVV&; B…=xʇ2Hy!aUA 첫%n;޼yc.!@u;&\@!PEKDTpw_ܷ;.ћFaT&˷;K/\źdeU؟ʪ&[F囎O*#$\&;k28nGcq/ aUV0nYe,_p{;p t^N K){FCƎܹMҁ;NK󗕕 #pyoZࠌ|vO $^%_s;ȷ#pI>GAO ˆ}H/jG%&T;Eӥ]vm7b:::@`RR2>t-[~kk먓~nv``gsd3/_qsԎ]A ,TFKc4^^&.Aܵ[v|g2=Dþ N䱃R沯 oZ~𐋻2 ;wY]?n_쬼qµsYwMWF>K@etyWaEM?N|;?kmz%-$_|4(.ɷ|ɧjQK9/vt:]VVփ9z U; J"#7J㕣]`0#AAA7nz%\[N8Si d6őbVe4%8OÆ8ӥ~DA%\o/-vlz!js쁢 KY> *+ٟn@LڹFOOORו p'-$_**vBe /H>"v&!p!RjJ|DQp^ j jGfEMUV0%U}_7wYՔ6/&?,>_UV0%- bOpdv.H*^2|jv%fee=g+jJ?s~QҌؖ #yvJKK=y}p\/dh*C8Synww`t'K,l6Á\~]#f5]\\\?(. ={le_v ٚ]]]||1CCCQKk2l6p_`KZWM |ޫ%HK> ʷ#pI>GAO S(ߎ8B K &.XYUk32&|Fgggal[xy,GDeΤq$KE/PE#BՎ:ɗ U;PECeN5E4MGG]DQG#B!|DH>"$G#B!|DH>"$G#B!|DH>"$~DBY֬YIEK endstream endobj 170 0 obj 2666 endobj 171 0 obj << /Type /XObject /Subtype /Image /Width 127 /Height 184 /BitsPerComponent 8 /Length 172 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x1 !OxU$0hG3w# endstream endobj 172 0 obj 69 endobj 174 0 obj << /Length 175 0 R /Filter /FlateDecode >> stream xX[\5 ~_iC+19T!{AV?(K>&sR؟?;>] ~yeOVܗ?><\_|h2ͽ.<ٽ{Ut*)>Um*A8&)P9WoLu*ٔvWd&r3+27 -zmuX @h'3KWA)Xm# eh^6fnʟΆ5Gaf?(Hv6~A+G  XztXə٥hv"uH(ncƈD5a50 S1Bby[}go@LzZ}]oħ bV_ne6*(ip| TMRj@SNK6o?iuѳھpìw3#d++Yog2$?ۛ 6vHKIO\sHB~tt;4Q{r8gs[\Oܔ`/CHL>e7Pل!Dvhf@ yWVjWv! =T7aZ"= GGRD)!X1z H(vfY$?yk]U%D.3׬RA2Q$ VRGuʹHɓkUU42@Π.s!ͫUoW3yXb+|W#aD1Oy@($$Hbw<+s"a8qjېQCTԖC5j /EGU2q PW6R@FAu6tT8+T8jfȫ"%i"G]((uJL zJ3\*INNB'. ԰sBy^L [,IH =LR%]p4/(*zGila ʑ%] 60*^Eȡj8i8PPF M /dUǡJʀ(lBI)T P !"BPrP %AKH~CVRJTFuS,S'%n'^ OS%RLZB!-.$ BLBk )A䲪ւ$b ͊PiWi/KM)OE7MFyyz4QDKQ vj@_! ׍<3[)8st? m`j_uҚ'7/ݛwis炇+{{vqomK"AD"hlexq \)6!R;u̹?>tZQXE>ֽ$;qS__oV 9]j'lnh ܸdѩ}ԭ{IvGSnnS.w#Bbmn̤e)2Rendstream endobj 175 0 obj 1671 endobj 176 0 obj << /Type /XObject /Subtype /Image /Width 223 /Height 170 /BitsPerComponent 8 /Length 177 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 178 0 R >> stream x{PT?ifN[gjhMҦ !3TGmG3&`Ĉ `!+ Ȳ* D(/QƊ# _sݻ7;Ͻo;9 1cƌ/D x"I $66$pBrh!9 ZHN-$'@ I$Brh!9 ZHN-$'@ I$Brh!9 ZHN-2yfÇ`ݰ|aX~yyyjj*/}_z޽{;::,--ihhmѣGF2pB__xڻ`kʕ:`0tvv 3 <X9sw}h\__=kiiikk =ܹ5رc&k-xzzr#6h#l+'oX.5GNf5Uɉ< E)rJUJ9*c ĐӮeL(NNa}:%D.cZDqr"O21h4tdv;EY^^uĉQ]Azzsssy]H@Έ6lr`3O>--- 8n:Z 1HN3a]P.4,hߚ=z411QAPn>!)iYOٺ\r2 /˘Q,m/cZDխHL٬"9'a1[HBB]Trdir]Q\1oa΅ Bkk+$q*{凶<_2ɀ^B#)[?,_N -g)p هs,6myN-r띷_m]_߬t9`1[el 녧kڻE?p`{R?mn rbf-!߽m??Z=Y.vs2S9W弓M>AN lrlX{_^wfʘi S|[d䈻u)۱/\ZxDwWf)R2B3Wgrs[~S9ujgK;E\gFNAe) "`/KKKٽD˩INWTQK:×03L)ZNI .%f۷C(%7n@sAk` Ν;&&&+++4*ցQ9ܢݻwÆ'W:VR(..vuuezJw޽{DoooOOք8VC?`x&9/˗&H E'D<̄¼q= B qqqOL!^TTt]]ArO\hvB߀VNPt. =Zmcc89)[SNFMMMZZؘЭ89%e__${zzDlB(ٺ?`&k.qPɉ>~ۡXsf  ugyX'I 9 PNH N 3>>1۷3f̰+Mb endstream endobj 177 0 obj 4074 endobj 178 0 obj << /Type /XObject /Subtype /Image /Width 223 /Height 170 /BitsPerComponent 8 /Length 179 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x @ZTLWMp<ѣW=* endstream endobj 179 0 obj 86 endobj 181 0 obj << /Length 182 0 R /Filter /FlateDecode >> stream xYn7 }7F]@c-|@۴(K~$EJ3f b*Ěχ/ǀ?L.͇ͧWozl|pp7pG&_;gqo)ߧTѩM1m"_\q T:SAt[Գfy M~R5 e[z^^ L]QvJ-thqJy,@^:f_)j60%扯 ZvVc~gq.ׄ{MCۥ۹RoΫ-e.U Rز%Q ]D3KaHIA3V (HyKŬTUpUI α`VjՠJJac7Gu `BP8$%,02 'gx ۥ(\4t (iCRҁ*$%M#ik8+`BA2aI2Iyw)`}l<"alYcSغ@c7C܆CACjv^0<G [#cv-c4-$%EPr#}b5)8'jߞ6F7FFJq" D )%Q] ELJQRR 9R((hKp,EWpi!J\)t#mc]wIܤ^Wv3vy51P7Iǘmr?J־u(Pޖ-~Er"j78xꕚRlr'Ⱥn Nu9 { bu\dѻGm[mzۭ=vYپ-}Y7Cpi:}qvar\ôEab̅P3NPl7nZ?#W!Iz"+f 9LVE(⧘dHq[57WYfn)b7پ!QWQU;+g9O=Btx+-c^J0~lo.x!-za S ^lkd^PIɻtԹZOQK'r\ay6㽼3V4-lD{ϩ@/sX =F%1 v .ƌgf]i-.vendstream endobj 182 0 obj 1657 endobj 183 0 obj << /Type /XObject /Subtype /Image /Width 223 /Height 170 /BitsPerComponent 8 /Length 184 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 185 0 R >> stream xkTiN'zNQxli#$Fhb IåbM@XrQ5 "Q"Ĉ`Hxپ;Ιefwf~eg{ߙ5 >>>'N2O>MrIHH 9 ZHN-$'@ I$Brh!9 ZHN-$'@ I$Brh!9 ZHN-$'@r޼y }˗Y;,@ ,WTTH]]]ff&:_|Eyyyww+h?^ݻe~7ؐYίzڵ OCh?s ,-[`0ƾ9sL&X.,, g/q񒒒gyիXTT-Vb ljjZtYXc~~Nwg}V 'D0rHٷokX ,sgϾu,ܻwoʔ)ׯ_777swW\5k޾}{hh(00kioo3Y# lחFcx7o],IZ&GNXO;9wݍ,r/^<66ݾ};;vxܨooGfhA^ɒ%jAA{7bbb7|3--͵m%Ms?DrBЯNΝ tK.}7`l\~=ײhѢ~FxG D&0͘1SN=|04Lr0ofaB<$;f aaa0k.xLCCdOFR)=s̈haP}Ngb.") `hΉƋ{0<󰽐_r%h#4Bcc#"xIBB"d/$0O7%Tdi'_H=Hu Ą@ r9g넶A BHN-2gA)!rg'D$;\Na](YyTn6N'AN]rJݶh>آ39kODF)嬨 E.tJ3=y̙ܺ3;>~2:pEw666 9sn߾-aϸú)qYYSN76mtq ;G Oed| r9[G.'_ 1n.rZ/Hˮ@)ĮL®CL6xBNo-u%Dò;w yBy9Trj/[ByXzdP!tPDNvmiBHn6 C~~>P!z__S|||l-,X i묤O |Ln[ Za 3wE~ڵ+ZplhhزeP<*!eOǀRA+\N={L&  IP`=v}V}Sڵ'WCXrZƣj^^DHR|q+?{m{И`ȕ+W\ q$DGIKKgpb_LJ'9Ec7n܀dq 1O>ַcyX;vхPNN5>+yBa9-싏: |9iLN[djjѣGvZUúPT''CBӕ×2BINEЙBDֵMBU''tF"]!txx`0@kQuuulGr^tɶw^nxAAA (y5"#זl60111ׯʅ CaD]|9ϊHgyHhmmm UKQQѰfJ}d ]]]k֬֊ v>q ZSN@BHHDjAςAfŊbw;rFEEߠ`3?Svtt8]$RJJ j#Tm9]avEaৈZ([s:SuXT͔ANB(JGT'ڳu+4,F!&89v~1BE/ :CI]r,_Na](.ʙ]U(r9- 0>xghrJ̬9$PwC922+uEoY ^ HNzEKAѣȯONv%hɔh9Ӯ d [n0)&Hu9 ZU]Kг.\'9U}l]~91dAur">X`vZRRRUU%YK Y__/lLׯO$9)[w(TeLNNa](唰))!$}9'Sll6s1S2CT''̔3;;fb`醤rStĐyA25%'Kr&ID -c:޽{ I1D:90[okkȀa&uhú ĕ1E3a!%Styɳ([w]NWʘغ+r^ú_򑤌='D TeL\NM[琶=uHN˘HN'2&1!;# eL̀úPHNbB0a) - 8bN!3eCrJ.nJ|Ν?JH#Tr9f넖@ BHN-xuB 3"ӝA.'e N@rhla"wyBDr3dpi;zjq^⠄@ I$Brh!9 ZHN-$'@ I$Brh!9 ZHN-$'@ I$Brh!9 ZHN-$'&.]'LdeeSd endstream endobj 184 0 obj 3902 endobj 185 0 obj << /Type /XObject /Subtype /Image /Width 223 /Height 170 /BitsPerComponent 8 /Length 186 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x @ZTLWMp<ѣW=* endstream endobj 186 0 obj 86 endobj 188 0 obj << /Length 189 0 R /Filter /FlateDecode >> stream xXێ5}iϑRI "/}uMtS/Kć)__ku5oS5{gUHߛgqm߀!߇bCEBc[bľ89.Cn :@S*k7N7# cD,+Wk0]Ap+ЕDKw-IIX1ϙA4<_I@#7{_fnRsGyx|w<ؓ$Ί_~zli#eth\>hޓ O`_R.qmNI+=yZOؓ2&yI@8)}tr%4%Z(xͺݲw. Y"3^&/isb\[;EcX7  ЮJɝTB9W.t_*AB?gžSr7.UfsnFgai~ikdj|gڒ,)Mso^*xU3*hJϑG3w;:>j(Dx&+wL^؀hz:= {=Z(UK(m饗&$`5>ԅ6MQvZb7K_Ȇy~})|˰˒}Gw^uP`To^<:ڇ;L҄ەM0 .~ѧn'^ް9e/ì9 mfELR~ӘnvYs3" tȋk'FH!] 2%gU7ʟˀt=EE\.+)nj 3̣g*؛rPD) -CozrƍL&Ts$>I=S3 U͖S=VƸ'A!"S?\Q!gK2N/~=?J&$oZ˿ m(d~cӘ?=j>mHM+2G#L[<W_/=u 缛+~rw 4P PcRuKe+[ T%υ k|+~6a-tkrdGĺ9FsIgnendstream endobj 189 0 obj 1664 endobj 190 0 obj << /Type /XObject /Subtype /Image /Width 184 /Height 184 /BitsPerComponent 8 /Length 191 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 192 0 R >> stream x흉OYɚl/d'hpu7]u3 d5+jF9F{mDpG5 2 'VJEUuB^z]~T Ǚ3g Npp ͺu <,<,<,<,<,<,<,<,<,<,Ğߗ/_ٳΝ;\9Pid2uvvϋ =*lƍ;vX,W\yWx-*lhh֤6 _~}W^ $5,,lڴi/t_|V-Z333/]1u]vzFFFIJJJNN>}tNNݻwp֭TH}]d WSծ]|…&M ֬YCNcǎPxBt[JKK'Np%R\\_Gbʔ)=#G޿7.\P__R?nkk[t)_RWWG+4p4p+1E6ou͛)ٽ{('t6%Of3I&fϞ~3//Ɯѣ'Oּ#88TNC 7cƌtÇHs&&&,Фíwww=@Ьw^~khw'h}{ 冑hd֬Y/^pBǻ\xQ~^&L8ӳ (?~<FI KArеQ%$$n1߿2*Bڝ5qĕ+WR!yHCMoo}W_!}^Lդ1QuTʏPK4 iB.iZ8tpwXjyHzyiH^'HDZ M%I"} xb:q,xXp|)c D , ˱ r-[s>>;LjZn-w"'1qƱ{"2N,,OT +X0Ow'8OT +XIooocc'E UVV&$$ "IdĆV_`By=5vܸq&%%?*^)Rs("c]lD$$<"55uÆ I<yOD9!Q't_F8W/b#D*\ux2Nshzux""c@ ;g <>&~gD$;vqœQcͿNygYS8Vo |G x"H !wv qo |g0NJ<O;}yGJJ n{uJql&n\˪1ܑ۷Nq+111ǎҠVOd=;zj;wɓ'E ح{eà{¿MFOڭyb0rm1bSӨۓ_yۏ~_Z#'w״X,O> y.(se;BTTTtww;{q_}fB>7OzJ0o޼qh_xRRRI>>>~*'_񍈈0 Z6));6t:ݦSb4CCC5CCG[[[ZZ]/_ʞ+c%NNNS[[hS*c9Z[[/<M:4OOw'⢂8v@{;vqGO<Î^Oݾ}ѦǦ30jMQyRr畺Ŀϙ;sWBÝ_,<6~$&&.} ;6qx:;<<ܡˡXOt!RSS/_Sj.#5咍'#w޽M'??Ѧ8 >7]OB_ 'NBWFq8ɪ sIwx"π+Oъh͘?٭=w\iOHY0w-S|Lf7Dj>ODX'8OT +؁hnn~5 O{ri'>ţO߿m6^o2=zO; F1!!ȑ#]]]6'ݦ "~gϞB>_,<6YjwHH4`Lq7Zl'Bzzz?L8:Bz𿟅y~> stream xα @ ;I4 +LryImE=gW endstream endobj 193 0 obj 82 endobj 195 0 obj << /Length 196 0 R /Filter /FlateDecode >> stream xX[\5 ~iC+1E`/JW]}'%sNfVݍsqϟzxzJ+S=w7-{{BZv8:N!b觞>wuO-AЩ8T qNF/SrN;._pT);vdT|Wdn%z: ub"y6u ޙae֠n6# yj^6g7QH^"bE)͢PAO6m&w ^aX"$*nC& JʠEr e'Z3݈C$U^]+*K9V3$[Gq)' Uid(a@{%q?FfUS!5+^4+&4+D i@0$0#PʒMBۥOC|v*y.֭$;GzKtu/ÐK z[zrٕ.\n%9e/*[G_Ƶt6l& i޻ ^endstream endobj 196 0 obj 1456 endobj 197 0 obj << /Type /XObject /Subtype /Image /Width 70 /Height 85 /BitsPerComponent 8 /Length 198 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 199 0 R >> stream x1Pac)<7!'gYp+ h/>6 dxW? C a~""0REue)Vy? H~(@vփ69H (C~Fe{ .y4=}(ڷZ-zE:e8 NNg+Z,ywu[kui4m:}wQ4Mnzmۺe޺m]|q}n˶YI[$e8 N,zE:e8 NNg|ߗֽZdeYW%\.85MT79fH endstream endobj 198 0 obj 373 endobj 199 0 obj << /Type /XObject /Subtype /Image /Width 70 /Height 85 /BitsPerComponent 8 /Length 200 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xQ @Cm"c p$FO,g'  endstream endobj 200 0 obj 51 endobj 202 0 obj << /Length 203 0 R /Filter /FlateDecode >> stream xXێ5}iϑR -vA%O]n{zD;嶏N*{ֻO?...rZ.}E=d>~>}t>\V?>zA=y>S<~Abʹ -62`PV;}+< y(ِ-۫MYe㫠]F d_.[nWuat&7C79X&19J0)|48o>yFj)K@W ›IhG2̾Ovq0V_S63;~C򣿩Z =#űͦ_#]d:{GK5Sa-+p+b>;B|18HZmDye Gtko˖ 5,vXG#VmFrYY&KP &!B.,IeY-*~Xꆁg.x y+[Y Z*VyϑBGRؐi%G}A-r}YV0;eJ+0˙ Թ V"*e*Zܨ {C@aK\z=ԔXB+Z7T“x5hD_[ZSV٦?0EînR➪r# 1q&\ 7uUMl^hm FJ&n{XAx-%ٚ* ;]E: #l3WZL+6 f<\%\R oTĺh*I-ˠ*b?sw,Ԝ4 Qqw?^.ySH9n*ũhY0hs6}<!RȚi) ]ZТ]+LklF4=K4DIJIuNnymmuri&i&iR m]$f-'ǁ S #*;SʶHjՍJ@Z\rp8 uĝ+jCy_w㫭ܓr !Vٗf>;g-y>iLG[]KGۍ4G^q۟J/h?QHr&01͖_9:uo(-,΂,~i^r7|lšD!ң&+ {/d`endstream endobj 203 0 obj 1452 endobj 204 0 obj << /Type /XObject /Subtype /Image /Width 70 /Height 85 /BitsPerComponent 8 /Length 205 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 206 0 R >> stream x1@^~a+{gRDl=gؕ 0c^>ޯ ,O- `o-u*+ʲEXEXEXEXEXEXEQڶ p9HWy!>O~UpwrwE_2uQj[}E: 2Sĭ,ۺmے$Ynzh#86Ƅaön=k: 2+z; ί WpueWĭ,+8E: 2 y.ty^EXEXEXEXEXEEQdP!MӦi1_& endstream endobj 205 0 obj 332 endobj 206 0 obj << /Type /XObject /Subtype /Image /Width 70 /Height 85 /BitsPerComponent 8 /Length 207 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xQ @Cm"c p$FO,g'  endstream endobj 207 0 obj 51 endobj 209 0 obj << /Length 210 0 R /Filter /FlateDecode >> stream xVێ! }4sHJ٤RFEJݗ ̤D3ۀQAcS>p|` ګo^l`tǰ{<;"=*d,Yu9D^d@A dA[Akfxbe}=48#TMq# "l|p0x@UJtBXFϹ,W=_IX-qh3*ޤ!6i 삛sܯIJ9%f{ŇiK}lפ_npso"Ij"RHiOXRlN6XfQ6PAKJokfӯ}.JHmM+[/_K[bl;Zɵ1Mu3~52>JRwc'`xos"jnnq"v!{r"#-t~z]qvqE\hzSʣW/֧д|ݠIT&r@n}$ '7H xty=YE׀&!=(;dɬ+$Vl"=&?2S `O'CN'r6WJbI cx2Y‚#+jhqqqU_0v`IKiendstream endobj 210 0 obj 667 endobj 212 0 obj << /Length 213 0 R /Filter /FlateDecode >> stream xVn0}g$R_flG^VIK'؉' vUr>>sfƶ &t6~Ȇ7 ~?ӑҽmswiĮa+ܜ5g]-7p6Z!juL2h hQzo戕= ȝ$dik!`AWQj" Iz^&'gN+ѱ-b))n; ,Y]a$/aIC-\WU3cjY>b޷4||7SBmI#xh߻0O#F{bJݭ>[2[_.aOXR)yfsq VMj'v7WDڮ.wCRe^xIY9ss6khgu ?ˉin>K+lgSS˭w :JYkd OC1!iAH8y1W׼^-()b=`U׺+~0Я3Yk_?Yl+0Ly4Q9+6ZF%zM 8 KNJd|+ rK6Lީt'T]"Hڙ> stream x˕:;?J:A'pxc=XUX4Iԣ^nD El ,p8p8Qp887 u95\szv8éLzp87Sp΁p8n .3׳pP?ߏ? ~~~ϟ>^BEo5Qar'}#'?wzxgl.d¨.W'HwF*Ԫ cL4WFH~-ׯ_ObEC8!Y, $op b;c;u,1bm.bYi;T!V@lVSm0FӭƲa(Bilp9r86R1r"W@|]uIќ!I[`u(!EPL]}p䰑L7|}}7ϝKYزey .չGh^p8 .ϟ?'u{Pd-P</{('p`$quIǂ+N]FSx{@4~aup8a#uYKectf9:ZBEF<c_f6ZRFKw{V \b=Or:Xޤ4<7>zlYU`*&^U !tpK;$RR_Whn3ͪ%67D1 c1u oH}w߻x[|l.2HLl`O?.᷑?_zQddq +ޞp4 Zp[VK/yJQ9u$Y.%WۤZX1™luPH1F^ZYţc7tF/ W&AJ9sȪ{Т `ciͭd omn>[eJк˜p-S9i^ Dd173b.y=Qt}$t;V}/PwhHw2bEv? B뤩 儈>Mhp!v. TIs`j@$֘ a 겼fvF#jDb4a>uQZ2ʩT +g@QzQQrczNUddQYd &_7ӛu1ד]?D)&׏+5~ /u . M}Ƶ: QQ^G-'$+҄e lAI^QF5(j^0,{5`4uWFGqQjE<'{*/.oTK#uHp8 ۨK9H΅nraxR SδȲ_J zxAɰ[ĸEAIm1Ɵj IqOSsW|J$up8Vu)D2$.q#u 7EIcBw.5^WabBªv2p(v.$’IY L6 &@'rQ^s<+$?)@L Jм1M2[#]iӋT@ Gj0U%{_UIуҿ=`cQ ( [ a 2$W'I6$DRt>_TPB}}߻xCl./Mf㙮Mg҉a~fsჺcLGTW0 z^aI]_$ rZ }YL|a3~칄z^խs INPNAۏW`2: )XB,twn9?Y'(WR1OU4x7L.~ 'nfR~5ml 0innL]hy7 3DZD -A&6p8 2fXf axg7ts\͚p&S+x2פ63_fN]ʸYs;waoWp29p=;Ǎe&\szv8éLzp87FL]p8Όq?~ȿš?[Jnp87SO'isƽnwp,̩=[np87S^T0}=?ƎГ3:e8u>r\xަUs8&L㞅~i2%9ڟтY\?u_mazsjGg;2!8$8v8rp2S/J[8 u1[BD:BO!ɟ8=sɗ$DzĿ F /ϊĬ@vgXD]r<5]|btUe&o1?qP /ĕZI]pM~]q'[_ Ip/G .3Ѫ^0^YO'p۩|86G2 Dz!$RD.a0ܕ@2'Q_23Gu˟r|x}fэjFٍNt嵟`HQ^k>"ul ?m&aZ˝>E 5˔mɋiX*yPnKNT+3>s -PdOH hLBXO;r`obl7VdvðR'BzE1[=Y^q) /UbddU*uT룺B]/||'zlYAۨs/W4d>"IeyLu/H]f4@]{{.a }P{ɧԥne t b'R(# 7(0>;.^ue Ѫޘ@4q[D=~2b֋@ʅd\829N]LKNFP#A+2I2|Sn1 yU}tvO@w ebAu!߰6eiSϢ0K^Q@TCl,T1P\!+CKr&A]mJK#@9V" t1,3c;uӸ~¿$|"9U #v>pјNhvn7xy)_ O{WOqјcZ4'y2xAo|;N%_<o^hU/ћL c1qrQ38ժg*[|QwfM~ ]07S1y]4.ɧ E|$S& Ye%;Nh}t%ۗ\O$s׶&89SG=\sp-=sB_'7?;X Poi)컡-p3̄w.gf9 PEr5QRiNjqKCe&\sp!=ə[;۞rб/4,9s1f"*s2Lws~@]D*XV+u66 u!>kW{jhéLWn}a/UĬ'׈O9Zf iN9WPi0`icE mK{^iDql.Z GB}BG~9K)SgzQnKN/VBH4pT$CuB%Cj ueNdRgXTkD|2uaUIC#_z!'| |as/e6\Ty !j7zjB!Wd"$+4[ cHų"iYQT+lR5j F4r=DnK.3'T!FX \y92>:Y`_$%Qn4y/c#:,cΌE>=z8iUȬk`4І&9OOUK"5Id"3 )|[tC[ƘR&<%1BQ(y|ev), &[c%R 4soQr8EFn)4,NzPn(Ԕ0jnXƲ0VH]s~.;'_h^<8[0 GH:mIvV6_.bb+ MgUf_u ($TR#{0ҕ:Y2%\44ؾ-ԥF][%50릫f.iH,f(@~. ;Og¯: ubܬZ2Xgy}SX2Xz$.G$ࢋ[hb1GEEI&"S]qԅ&́RVXiӟ;KQwl^TKKշ,BkU _uCbxE&%WNKV~407>VuJue0和)F[D߷DmA{u"K|@H]V/u3+ъ4(zq.IxW*Xpu)JVH]sQX21I~hl|r[$@zs3 cGFx] s$G]`k^'HOΤ.XJ9Ԥ.RҶ~&e)RJruIs%j3c;uAWՋbφihA^UTƺ@]<8Rآw~b/M\e u [|3H?DVz]uJ]*uQ]ԅz3sK<7F4Y71Xgv >?W:H.ap1KP\'N9]qԅXxebDհ;-MIZleKN]KeB]rIw.f!? d-ji|[a^b0%3تeyufl.I?#'I\"S_ʊʉwpA&.Aa 1+0;D?e'+ٴ, ʌ;XrQN ԥZ^ {GP̛`\A>1PpUS!̆ 5(Heygufl.2(5ô&sB~"[WAg%x%$.`WiErx*f`+f |(y|eI%cҴ'|$9LީrS+ɤ'ԉYi /&W;ˊ*R]&4&=/9W *VhI Wnf8dGkrVٶ#9.Xw6Xgv̚Kk6\(놭e@c@iݕ|4, gJqUj0r*/ձSXΩ9ZO)|\Ե$7gu!+OH5s*I]˓0jQY[x)rgi7U6*i)GQ 4?3Jx M]@ܨq~gufl.zz[<9a5$;{'{t&O[&rN]f;g?Pc1 SDx8u Wsq+fȩ˻+ec\%:}p29p=T SǍAkZ\ɩD. V3t8̅w\/E䦫"(Sǽ!d>#ԝ;6©LzpLI+odDGN]f;gc&~?m*̄w\qc8u Wp2K83{7v8éL U/Y8ϟ?=wc1^(8{eK ލ7٬ZM9&p2}?³ 9QM.uEfN$ x:3u1 #\~>_|E 7sPyWSP/v\Hx6ǝHȥɕdFC 9kһDۊ-wCڋisEΜ"OE]WKap `suǦմO '"-IQHXi䡙ށ\MZ̐trQ\7S.|bDLRQJ-oO]~.7nO]|GHANGu6zs8uVv8:y̗)L]X,h&xoRfb1Q(sjA7F45e&Z+<"s] 2 T,G`Dԅph3?` b*u6?nfĖ WֶpkvcąCnԕbmQQDP5[yZ_/俦i}pJ[FYuFe_Q D52\'U}5SP|$BX.A>rGьE0YM() %B'9t9C#t\m;5aufԅb@:p8b^xƸ'Co“ʅEôi?Ӂ'F/RZP._Yf$Oljk7Wrj 7ӊR5jCX 5,x8u>2,g #pc_`#N|blĺ| i4^R3Յ3IGeI#Gj9“s%!(0ly(ق1CKBik#k 6X >P* VˋL>PϤI}e&g c)枑W :)rꂨIÁ:1L^ܝ 3y`SG*3Cf!m.|/1ָbMA?XG]=9꒫"enB_i,(p2i Jk[P6=dXqQu)'ԅGP1V1*xuXX,yH[.ԥ܂r X% z-2|fpBM 3tp2%9hA^UTƺ@]Y=eRqJ6rVf@ u1Xy͡.Y?{?S߂&v4u!.]=IW;uXi-\zev=DuNJY 'N*]]K} dБG]V6VYcZ;LuInO.0iDf4 eZl0<* F}<Ǐy$)J]^ 3ޅOɄ1ߔl>gG>Q8G]aDjV ~#sg|$C]r "92p t9xDF*De5 &p2}^%-O?^ʿ"9U`w8o_7=d cHdĖC2A[\dB#+[/ }R)bmCB+fa\&-_Yfp>uxA!-0C_Uw>|t9O&˪i>H] >]ż ZœÂ5-uWQRMGxv!g2ʿs@NH]ȜG~~~r"_>ϟ\끏8$䆳m+њ&Gvz4⪝\`p2M>U1d hpdg.aqdT|\:Kub¹on7ֳٌ,rzPHd9|<5k=C3V`H]仓oyЪ^xadu!6^놺@fɋ8uEŪR_˱9sUnq Ik ɂB:O SgKR9v ŽEӇBSw ɤXR>ɩ<-9Ijl϶Z'CU;L*1WZO  In`jpB*'8$#+|tea>-ر]*vS.|20d8QA8^+&aL;<u± 9.~XM^!O EgNMN%cDr4- nDP:,ϙ;o]Ol&eK\,D_4|m7j{5U;q؝x)Un*?qMȿ.7^7BHdlWCtl_XHžucQ)QUu@/j]%`FkH{Ë b?ȓ[ k1 \"KiDS ^0j7l֠8p(y#U؍.h^Ö:;$k:EVH]X8ÜPhD(a%j\5 ;m醆LL(4! dF$C*1ZM^L~A"|@ف"F*$#H i^` O.]1:[^IǓ+hl۶q?B.idL1Ű ;EWׇɝL'4k p&ѪgqM`s.Ջfn@`~ͭז?ypV[Q?cL7l-(ON{y L*Ry KM}KJK]saŪ5(?JT&0zZéDtԤ7U&XURWPI]͕`.6< WLa,5]tuY^Ԣ`=^In7ؾh*oa;Lw¾^A]؟kF,;(9nrVߏzPqEE6rd\3$Ũ|os1wchJUH0l6]t0otC\]7Ƽ.8 INe([IDrU3*<ؑ0^ܓi/y0x*Nbɩ{fu;1cMb8Ftma' $ab (p$TMϰ6ubv唫MCuWg IbJQA;i~2OؘMv~5IyK#nwԨT;aG'Dz2dckݕ|t`**@e6nL\$CY*iXn^};7Jk})p0צ䁼*30lGS`@O̳1yQO.l#YdHΕ0_ abajvÎű Wwrt}fQSS .3׳ 5(~ U;Ap29p=; W- Bj'1N]f;g-a5w'vGj1N]f;g-QB,$'s]yP?$*U;p29p=;lx W;vSp΁XGDS y ©Lzp87Sp΁p8n .3׳pN]fbz>y8*nK ލp2CK&I"u&nwc1^(8toK ލi,;9{锡f#4TS5A7Dz7,lԅ5,M*+o9u1M'b濺#4;BF\aV9쮁BEpv.bĘjx9Z+}R Ѫ1.A]hATd40ߖp-W?NW/.ʇ5wTQF;{q|ɽ\ @mt p-L.W.eĴ K[DoAy-/'ZvIEtTU&cWTݩŎCHUzs4-th]V0vhj@] DBP?Y2\Etɛ`8u\!`ly}M׈KA< ?1}D]DN 5ܼ1HU: SQU0M)ok֫w16ɘ(jJȥX9*Oj%)qV} cbҎg=fv"69qNbN.tPsa/rgR~ܡŒ[\XEFk %#^̋*5p5W[zWu2 @@.f&Kz㡵'B`qa=@~"M(B&sޮ1҃> B9Y:ɛ`l.ECϐJIӄ[̄Wq YQ`ǡx*uv'17{3Q]tTy fx:LB𢱰f\!VD4@2oVV)j4G*@ɢml RȋbX)vz8ƹlX䴑~, qn;rC:bsi $ͭ]{Y`;S͔Vi%^QA9DzSu(iݕ|4s( g«qmэW* d~o nSsϊ \qNhh.Vu 7k+Q+PrhDb kݚMڃlCʫ[E$NR8&P!(^u,/C}bk$Q՗MW_JXG*e+SdHy<ח%܎O5r,9:w> h\F>L J c3uq;g|p'z䂍s@,]4"6v8u W67%aH`#vbBW!`@@wEop29p=;&ԑvXXӔ_;VXÎ`#̄w\ώH.-/3qh=u0i5=$C2I)0w.277Ac彁 8pFRWV~v4rCV k芈-.vQQ#u SQm}ld8u9aY1+ܝH&wEw38P{CFab騈G փ*~5:%7blWQeMgB#~N7"*W 0!ml|KE6eeH0tPl{GTR}V]bmgXj-<.C#jJ_j=87,eX@[զgJ2 8XV]@L)-,So]H]̳2RG ?F{1}%8[=rް$pSU JugypX?ʹQ_WQG䷁>ܒKC R<RY,r(ļ;TxU]ܯu;yDŎ[e3(ӃL@XT>󠸜Xl6E@½Kz-.(Uޥ7Ž:5c006#ڵp2\-tc(IDzZV٪ghUaq}d̟щsGH%Ɖ}nt̕@<}X2RYp ۆ@CiVc}20WW *,#"QԿ~?A،:`BG`} Ju2[mͳQW6\dE%3'dḄpHhJ}rOh-/`ӓUv}N9ٝ^}nϰCH_ ۉA}Q);$BIz]:,.V0v3,(B.qC$Hp^thcfI#U]'!āy6+$~' bnF]rFz>5Rԅ˳G.z4Tq$Nձ[<ԥPz.:H]kTӔ*4@9Flܧ ȭ Y.;PP0vRH'.:\KFa "3RNP*95F]r<ͬB>c|%u܈ihA^UTƺ@]wwi ̠*kbMOK%.9#[+K]xiaG]fR'R4ej{}ȁ&$O'+oK6"e?$O`.+A9F7 t 8Oaz`L8hP<e2zρy6ꂇ*0!gk*Kdj;:KϏ-YHs?pwZ̨J"',+v$쎡f{5K]xi.kVy ԉV0p͡.5iKW+cg&C؜<ɋ#uՔnu WsUUZŴ+$Ik.)@Py"a4qIyrLnw/ig.; 'q"Y?.Ԗ|U;5깰,!opx yQ&P蒓&ݙ*U\,N]*kTӔ'b3ԥ],b`qf}s94$r..Qxh}Il`U)jq ,^MjkĎEԒJ!dF]Mp΁q!< 'SCG9{.ظm_#Pp2Hg.<5̄w\ώcrd:F0@`UuX(P+vQQe&\szv\s^9''xV>Ʈcɻ>ybKFvyHk:u WBrhy'_^靖#8AE)1BK{@{Dⲫ2iM.3׳Z`['8C|wc1P~Jpxܖ____5ArOABśͫ輻SSFq&#sü@\9Iqn!?DzpL?E]ДHs\o^}GDz c 70NB]8? Ġ1, BE]$8!vt$ju ޼V8uVrG.'Y0Q1y&~+})P$̍4ub)!nfHwtLOEҾ hs()'&۩h@t[~mVYZ'0G6G$^ VK]X&ѝѪ^,;-Ud>pHl9p֩Ku@VγT~Z8Pgz7pt`_R?,' gE׃8Ly±5EeSd.@p﯉ܯ>g@=x7ptLWJYa D9+r(XHW:"Q),_SOq wGDz僕G*>e"Ā}Fe}DU6%* _')\d]KqϯHltѕcY"4AT,zQ9¡qiE#Pkhx:;Uq]l.:Sa=a:[JGm 7.+YRlD,q1a!4ƾ;A+uqH@h$bD uS&'˫)UǪ k&]i4=l}Nw\&L{T>p@`0X4,oouUV}bw:̱GCIGP`;uo4CcͻbזΩ^y 1 rr1W!gVx/7ϏCkV9 8wn8K\/Ъޘ@"9[P%DZ mIl,STA5TowYlm/BT6,,ݪGp-QF.5}e/=hH%*Grҡ+$G7pLJShUGf!cKE̩5^x21 Ӊ!eWFgF۩KOC ` lVmf1pEMkV4:=llr}n.3A]ÂKXEe %Io]:tBT5pB0eu![L[r,/)!5a(XYQc*s@{t|8u2biauIf]'<껋эq AX3vXTa'@]Ǫ&-z&1{n>` eȼlžEWItPd6[9}rgR~TŒ;1f+n@_ctUNd&2>捜3vz}R.ɹYEO 5(Xq Obӽva1~@]CWPNvؗ8/8x*\'`TZcwQg$GZm6(߹|>Ihb6gOMּ1Ti|EeoR# isiپErPV6L?є&d(PP=~)}_^8ShU/h&hLGCF ?O~}ݘZ"'ۋd%yL-IZ˝Qqt mP\=*"|fU2)8̻t-,7TPdu)+N3ic k+1 @=~)}'4.w p8u WKio/Ԩer&|)$Ve&\sz> ̯C.,#vhP rF ¾I7p.3Q fRC.D%3cJɑ[2SR{;©Lz|e%n}n2Dm w;©Lz| Ġ|P-<'_7ÛW .3ʛ+zx;e&\sz~?mśͫ輻Sp΁p8n .3׳pN]fbzFBRsRp8n .31T[4ׯ_SN`QQލp2CkIz ptΖ;:UA9 o=5 p2}ǏBduaϟ?ƧOq$g-SC.GRNKL898)fi[ZT}*#.3ѡ^츀97@;u`\Kȁ7K]\l%\A>&Ԛ?*xs=Vi:e&Z+A .'Y0Q1[Rr~9N fב|ǵ/\}'Bϓ̇ShU/}ȯ/q%ԥ\.o >??sA CK*nP}ś롯˓tShU/W*u|25[d2ɕS8o{9[pǡuלWsFJ7o-/?.3G]1TD&V'AA]DNXVL>n;P -诅x>Ao-_qh2Dz !bDYa]Br2C n<9uY^ԅ@FS4PnzX}"ƈHéLW̽!dG[.v$:TfeW; s/vcRs^s\O.G8$yQ]8AE_f7M{.U\c6RƥinG1CbZ5UD2+SeAק`e#[ m$/&ÏԼ`Eպ0?;.`k蓑|u˼Ho_^-$r̝Ul>&\̈́U.Oe{TR3J$w2R1mav \rH]h|Ϡ-=E.4M4daE|wH_5u1R-X7R([rȬty6[ 35V_W:ĺx^W.ab+g`}kCkW^-xLl.&t0Csx%l!r`H|[P3{yB2U R%1N]׼%\`f^~Tp.EMLA`Rh 6ʣi`:sLI~W=T?#+WP_LG<%;UORVg5^x20~CС(uџVM]DR2I8PBqkCgTfQªK ԅ@u9TJSp2%|)u$ cPvwiIȝ؞,g/B5o4 I9Y&3T='FSxm(Y(yIE8${ix!y+\CiWɏՎAp2%7!sTF ,ɐ'~›xzVlK_29:~KRƏh-T#~6?0 #}rߡKÁ$)!٪<醈#=*"uݱZCiW0Gs S.l$1Eݘf4TlRO0;{hgv9K yYddVmBeʐ2na׋)jpbIIăcEE||=hdeKi.yM(P 须 `.3u_`T`5N`UZ*>2A]L ppT0y(6QfxdG[QW^؝b ٜ)7ReY_V- efOΧf2NX+#aux!YqjFF\G_n>F>8uV2eiݕ|4чTtT]xWu0m|NRG{,av捸)\.exeC80Ŋ$ P eˠoɵ׹ a"_-SbXE+cDc\!䝎93˚ R@?\^ݒ+aL]R%7.3ꝃYsNYs('[a||fP.꡴&z[8u Wtrͦf)EtrWvW^GN]f;緅N+uaik\z?wtrvW8u W L« v 0KG7C롴՗OXvW8u WVXԈ2˾ٲolLzh5w 56xs=WyE<=ōe&\szvt]"/*_yc̄w\qc8u Wp2-q 6fnp87S^-Ή9S N!)FEy7v8éL U91yF%5[Jnp87S^/ɑrL8.NB_߹Lh衲3.3ѧ^v]8i7d&$6; u!ɶ|͑yo01uhz70'1"CSMeDz7P(< FfRRgsES.MDt[Oqcݐ7[nGG2Uλy=tԴ5CN]fUub>su!|т2ߓ,ObRi$5o^fcO 騹N>>̛2{=jpGO.3Ѫ^<Iη,by8oYU/:)'V̩ (apoq;o^f彧=l}b|_ŐOpGu5ɗShU/WEj^D$LMlN]CKTi^w819V_BMWurޕK] G>!R8;, ="r²⾑̛7u9Q+䫼.PZT#EPWVʧ͇OX;&@,S]:gX6A 8 oE]pD߆0ߛqp9^աcV'ZCoELj.҂r[ʠU#zB+ylAL>:O`(e0Cl<'X{#Jn@.J-; KV nEK$5\"Y&`'>9?RЉ'V=j@\}`+ bѥĝonLѡ)*is;L.d+mu&A:UӀ mS麫ȱ,=x%lrxN]tO'1:+_PCcF7X?1 6n\Z]߆YX" h4L yqI@ųʅ$U.Jw6 cmG|udx9]a9nUf1CM>&yM#2g cͭ"2¡cSn#9KkXJb43MS8vL $aF0S)E2F.;6^3yU<Vb2aOe1bB<6c!Ug؈|L *LnJxB]Wہ֤=n./g 41(kM3G\je#gp1~ gTxr4~8L IWEzuL3z=B?+D]=9CN,8?w> uX«ST^929o #˿~)ˆ)hv$Ƣ2xz@AzcZaxa}xg겤H^EZJsvRxo_EU!@%o5˸tuAx %ӶSڂ̿VN]v" ox:Krl|)u$ 3POn@]LO CFlQE)>Rԅq3k*$ Yr}6 EL]&g @G-WSF"VوS\MTK.{=ο8 S{Z .QI+w1h$#Nv$%"wv/tǺdX,/C!G'1)*T.@n;*x蟹Xs| s9Jb0x!'!j4ąJa?܂QKl AlpK]=J.dDTlRߏf|uy<^%g/2W*Mv2FncNY v`ͯDK3K^OyvTdpR.9fޖw`')cGKSe2Yfo~D,huT@>d9Sks5]ȏRG}^W4`>9QdTiErxW܍nWE8Es}31 8?-{oBbVoL+>r-Cևp᝺ڌرb7V|BZ`ċ3k)*ggs&6 '&K2uLP4!uɹ`%Qt@ ~Jξp2e6!z䎼@SvQx&RǻZ,8u_THc'Rq Tїy$86B$8CRJ 2\?Ό)uB_El*$XLglτfE6Ε0şAS%r%9r#˜ڰbsI\_npGN]f;oO yQzg@pSkԔR9Rp29x=;u>"\OѠAX= zSktlSp٩ˎ dTXr*{Yk}U#@,KAWCu4>˱N]f;\쮣aBx&n)~ .OvuLzz.:!r <}T46Sp΁1 M+1߹ G5v2N]f;gLOL@*%RX\N]f;g1̄w\qc8u Zక-%x7v8éL U'^py6*ʻpN]fbziϏn|r|}}j=`P=pr\ͨgNq{.qWi@z94<3_]X߇reICEO(#IKMt{iESf *Q)<~w4UDg/G]HWi@z&,08@X`x Md*H+o<,ArSWX}#EG$`=eoEkE]h!qN .zogoZ+j!tdHD"O]9A0nNH#焘-=$(Fx;n D1Ae0!UD%1`4VHwƱ\ZUQRN8娋,v@7;9'>??s騜U1"֡"t8# NC^hU/W*u|2y G.ϊĶ^vEC_sֶ0Ap۱"5R:1}ECExd`)Yy±u9aYJ}2S["|y{,@OЃ vKEtq]N]0RΨhU , 1e8Ǐ!]9dyN)YN]n͕LѦb 8;bcEny8S,\hU{yD ,L`F7CF^i? y%7(.NS%c#MCE(Rf#@ē_~CkUMOttr1c˃qRq% Ϫ(AwU/ێ&#݃Uֈz(D"q9].etWTJ"X0Xr1\-"KA[qhXe\lJ=8Rޙ fQ/K ƂCG2)L3k& a|eyѧ0|,^jǤݒ'ze!gq5%.;"L6ݣi=0;8E<$_S"nHxzъ] ߂"2G%aT>k..aQ% ˌy$'FΔEݑQ 8L0! 48ľa!dNȥH]Պ亽"Jp$ u ; u[tP3a/5IrgR~v( 3n3ϱ>+y)~}1楱&)03ٰzwRWXc&CQ0.o^E[9$V2E颌x9.CK&]F+BdWG۩Kn#FׅI!SOOq+S¡X7t?S,MJ:rV{GT cQRSfInn/GtPS&6!t cuoxuYlImwEA+{vbw5a*iݕ|4TtTxWP!O+2`הk/v_k#榓XSHI'ERs,uP LQa>ɋzGWnvv# Y{xӀKvX.Pؑ]A[*¤fc#uXv=[Q(0OnSL]F衐nHFc˱Y.7szXlE)Xm ;^4({JX!ڈʃ\+bG+v uT; %a9{}-Kqiw=਍?ȵ"-©Lz<9zu[|*K,.(kyG=kaA̛pe&\szƈ$D`(vC9h72ǻLz|f΁҃r"u8vSp΁^]k4ZQYKtp\N]f;g1̄w\qc8uLFmLp8n .31T[t¯_ą u;Ǎe&לƘ<0-%x7>'*R n{É(␩A{ݾ㰝pWvwCIBduaDRazL>l7n$ x +"J-sM3@G(쨇0\HV33ܸCH3m ؁x-c7Hn3PIA"Ƴŷ.+-񰝙t$"k2Wz0IdR,$*2)oЎH]yS?7DhU/Sr|̧`IhATwv 9-u)Jӝ?e=P 3YBrZ̀7)> 혀E϶8Ѫ^<I+_'ZIrqܝ';Z(A/3\ &+?> rc4c6RBCޖD:ĿW㓑pBXPsN][S\+"rAgr]5#M>J]NJ> 혃E:*QbNqNQ ?c=scG ˊq3N]:pZ[g ͂$C|% s#sUxvFA's+), sZ#t4Tv#SMAûf僊3 [\p"3yhym> 혃훣Cxn/=&Y.~x`>#>4U6%*-C+`9*ܣqbwQ)ץnb42'<A'KHV3/⣁˃p$gxղA  A4)$C=$?X8ʥ}+hh/uZ{n%95:#瑥|RlȦkZa2,5\hZ,L P&6s/И@V' *unBKH5e:y)T {hP)afZ&#*עR(/+45Vpy}wžsxtiѧ^l MNdV`SJ NnN)"gyr6s;c>KIWR"iOaz=΋XJ?+' k~4A+njkDKEd ߷KqEldžv8ԅE8[ 0{Qի;#X-es2LI?MSؕu."u@{QG(_as4X ,Ў a/5hUon" KE}Qu)']qc .'I͝Sz5l;M6fpFMk;: ݐoi\AtĻPC;. w3%9hA^UTƺ@]ɉؽL.>>F*wԥ^nh&C1su0aު 8ХOqޘ8*W)W*U\drv\{Q^`3%he)F_?l]%= h{ uԋ vPL.&m`V`F4i N_.=@ܲNYfHY=)+#SrL]Ϥq6v.|og2:.LNTlRf< 9l b,Go8e^èFF*[hђ3w(,O 5(q bda&-OTLPփY*Ғs^ 5%/)iq]B]HXz.Kj LɿtFEV$ lƄj*X^Fau+HtSgkw1SJ,gs*O2[ѵ\x?2ʶ4ZI@]Qٰ"a Z .s]sv{g2:v2ob^t<]D@hUx<Ԏ]za`#Ms 3JE^ s@ڱPg4^lV$ ,5zFτ&E6Ԩ A!T ;*S(w+vbtԙ p<jgf.jE Ch$M5cttO(c=.Ў3`;ua<&u\C; Z Ž 2uYau%FVkh\\g..Jz<DTjׅ\-}zZn\X겼j1g#TUCO v = z+;Ru)UF<0p[HW?M^S nC]L8t /C]]3 iIn٨8a:lV 5QV1SF p@`֣(]$,ϱ]] ڎx_b10@F` >BVd*3u;ɯ5 &MK*"heG./?ʒhUo%3C5^x20/H֊]KΚ .ԅ$긾y^Ŭ*f e糊xm@QUg&{~z0z@4TDvfeG+;H]*o5_w.G8NDp]( ڂr hyL{_$HXz@I, 0kXK 9fe8B]: ?GE!Έ셡Ynw"[B."p60&\W02%ΉO6)$O)4"+OXMM]f!j(l~^PyJfo%.PLc[ԼEzK#9=V0bV$aQC &ǟ۸"R*zH T0 ;K3Qhzއ4!*W]spKF7" 樴 =_ OroG2)X뱓J]%.@>f0Uogvw*Uf< &b7[EfG$Aaև [+uɮ{=q}wZr =O]̞fI Q>Rkaʴm2C (2oہ҂; o@iXy] !<WH+x.4ݐ g(dzN7 ;B棱ᨫ3aMg`l|,,_`>٘&);LWR#047ԥMr )ܤ.+#J _DLa]7Dqj8uYVJǤ 4tXh5n6.&lVA]de mX2̤&l4TB85Dzqګ Y.Դ;!3,O30S6%UV"0 {H]dQ(QGyAY'(k'[Atm=Y;S$w; SjNpD]h_ZIirT.z}9xjNiDl=p. (6W60Ii;A"'X;˝[kfŖb鉎{JtWP1!`Q8ŤaYn[?F>>  UE]4 L<㧊g@~eGސ>+C%痄/>tfJ]DZ)r!I[;,xRS<@L.+0͠}}C_9B/hR-RsǍe%p9[r"E+S6XbA͈4B]zҟ/ecqxNzD ;oD/=Yo(^&+J^GpҌ(\˞tÙmVJN3EbshCtDfP;71.[@K~&8uY=c[V0GZ|lC NY:M}HDgff:="ٛS Ì|h ѩ9iNJG[= j+0 o΢2Ot_@i5جk]ꀩpMi AMG$5dݰhM|sY .yV'T; :ߜ=S^_ 5pQR4l$!%|7r`(XɿTS V>ƛ^Y. .+ѪҀ&Qu1ēaqfߊ!OFKza+u&G.z򦇄i6u=]F>;l@]mtu٩C94k /Ywp%;2hI^MTƺ@]ɱG]PψSyAh|dgtpGObb7" tɦ|eFPx$ hk}n ގ`LS.ل,C&.̪&.DAiϢ2# <"v ѯ;HJ]a8Z/BB0tGwG!9?& j0<=M<%u`dMjv^ e%.K T}>Ҋyz1~ g(dzN7 k}X:[J!+w|#I1\$&)}"ayK⧦.Ϸ/\%Q5R1JiϻjCRr/(i]6iF_!6H7 勋OAHot>z0nS6]}uڐ8:=N95zY#,@KDѯmNCؕ4k.vˑRynU-j(tÂe%vQz[##sdqH. X&ɍk"ky̻gM]&agWڬmr`b+DZK]tǫ# .kR_,,tc`1>urlfaOW- %08lz`` 'G:RV}Γ+E(f衻+W}]y:©Jz`)&(*0F&…3C8WוZvBml{Jz`e;*apPP. {ri{tV p5p= 9S-y e]^k a?N]Vջ?/lv{0P+*ŮpCxKfg{ų,4Μ,1V6<">G+8_ pF9_K][_ncJNpK+ =X_Al"fJ0XC]OxHrJc{{dP=ʕqb7<ٟ>_c k XBuyZ0.cEl"|ƩKi(+5s66. K9-b=@qY/3'Z+}D$<XijHWqi t+q;6EԲn335[n6 A'ƛ5GXVK~׿4Rp賧oV2krqf=KȀ>#D})qM {H]d% 1,1B5 6h,B)Z;YMnnPxv۴- ?dZFS.!nNb۾=t"y;Ӻ|o@"Z)S]^I"5XS9ƬϦؔU_CR"}^Qԅ@P=_-[Q`{xCrd _J*o !.YKnږ%:)6I]TO0p3}/oM#lu@}{)=_bu&}n;^"tϋ{l褝5"E+S6XbAB]pk4s#*X8f2F23e;lᛠp. #bo˒5Kў5o:_P߯>FbL7Eb3)m[> 5}J>Rcl[;auI!n~n>ߣsm=[]Lj1ꂶSQ"vQ"љoY͉Q{ !#.zˮF^0h/|/ȕ-<&! 7Vb+m ޚ@(jŢCK+Z՛&l!bHjaP{5feY .Ls%5dX츭{6*VܿL`m(duilݦ3pMGM7u~h2UJi|B]J?{U%;"Z405^C< )5V .~2b] [(G>7.n1Pm\y>bӗ^Jkr|4o-=L/fl,c7pś,mtPzh 췎Ɣ긕dw.NϏ/eb.P,ArƖ.CQg!ee Owh ubյmuemF&u7uYJYR㬡 SkFXa5xHx\;S;PGa_#'TT0d?"?\!ԅA2 =rYϿ"^6cR9suP\G5K!fںB2eCkh`Erfvp38y$̣M}C$| Fc D[҂|~}T.0jcҳ;^@uzEV`+uIg3)xumg{Vu)Sf;HJ]Ⱥ*;kOu_LcZ ?E%;I%}ũIPc,,We~uL/9wDI]'uy] !<w_W` aP|=7}o͊v[I3}GEw`~,Ѫ^fL<;HMB<j(?,`,:MMfKDJ%s\;Ke|D}2zϾin[Cd+MyhI ^(@S6]S,6]r w YBQ4t‚oyF!;Lۼ=e%\kzvTBÕ'W2+c tw \ώz¨ӮC u[_N]Vջg1w \qc8uYӧ2RP/;q=iKP{\G©JOE־ӵK7WcXEY9܉N6Ǘ.W+y9ިOce!Tf\ez\;H.Kퟟl40WS叾CzWI㓑^8oIfJK]J.A].l2aJWZj 'xNϦ3c\*JKc8u֨JZ;scQmA%,q*O8VP:gnF]'܏|P lΣVEާ^vrd>ԅOHb|eѤPA7TlꕞKƋ_jtc;QE]K.5j OiWt=wUIJ<\; Kj֍W(D؈͓xgUҩ5$Św9B{e1"~_`%CC#^ M^P$ę@fCao"|u)ZJ__X.3,|#1CҰC+G]RyaT>}=uB̪6LPQ4+ 5U'ݕF3}Aom2Pّpϵmnj2jS,>FI]l, قMܓuLyz7#X-­:\=」xaK3>2+6әBv%} wPhvm}ś`6OEߏAԅWꁱ_txϵupc1\zt{gb'uyiU䥡%lHJ>aϛ{u-&؏fLGM<uyYH0:ik #WF8ХTmK"`G A<\ L^1 Peodt @!hbDzK^z|:׈!F,<>PsnDW.7UL]*0ABF.OXj.i͂NuFw& z 3Z;uل֦W1ti+A]CKDe %; 9q@NNN.7G]B *|j/PF3 ʂ7kZJR㯡 Sax Bs _$䭣ʞk`+ѳ^ʑuI]JIPn8RFvuPigT9*Yb#:o6Hp;Zmb88. KRgS.ėmiaCZAl)F? `i2=04Hc,C20|rm4%&bVx~ԛl nx${CKue1I" 7x4\3 ~!F}^MQ LY|Z *H+̦8Q&RgFᰀ&Yȋ7mh#a7 nO7^pNiwc!/).?kyKp ,*2:Hl;A? $# .4,Zki4Eiu)yf\CZ%-09]5QGVk!2br<۷ I漕k,vcHQd<+]Ÿt$K0كϷ-nKN!Ȕg_-:yK4oiB |Z74d0ͦג]S%fNceh5P16bQ6y=h̎׆/E&sH9Y R;6JJ1y˭wr8uY W `$.80_S+lr*= ١ueq{o򗗆Sp1̎C'R iǃ&ŮO¦'C&rЏ{'8uY WA $~g-εMiL!zhrҠ1wSp1aSoZ,gQi!JP:z(pav#䒫,;vJzo[~c Nz؏&.+]׳$^{j0)E7oy:uY W?/:p=G%uDꌝp5p=;Ǎe%\kzv8éJV//%>?ތpS+ER:}NPȃ4_;p8n .+1UQ5R)2{qiTF2m͙-@8uY>R4]HMFWV=ˑg &H8I:4}uIuSgI;ZZ4e6Tya'HXx 8uYb_  aX^wBwJ+'#oYK]:kzyR yzմ88{Z"%e$֚p=DGŹ©JWz82.N`$D U{.|4=H]^zo.ך,nDJԠk`Y%Q*D؝rCFQ@Ir&N]VUx*~Z!es':}#\^iF%jPO]-W'  ~yQeKP˩ͷO.NJ]ᯥ}F2xʔoj)H{i\{*.V/kjuGuMva+';A]DNXV6Qf .k$*˱bAW;G.5z ywfO[Yޫ$[i(V8޿`3}Fl{qW!mXqѨqҕ k'bJK܎/D]~uK]ݤ.msehOPіb{2tE@Lf칒'<b]Զ1PZÂW9X3:r65&/(DN[ 8Ip1G.N<rՐ'֧|ﭦ܁ 7EՓZVbV^6ABb!ꔺ\YrZ[?ƣ$&flt̓ P~A^iA$iI`b1F歋SYF XOt 0]2u<^ FˢF Ϲ:+>ԎbR lZŎ"EwHH:$^(^u8fd^7\Z7?Lidӳ,8mpgmБ%$'=uYҦe 渆꼻6jNR2fMc2=>="$uvoL6]%S矱a=?g 6sO&%L`?p:G:Q6L.@$$éqakV'K]|7p4.(1n(f eS-B-qϣW{XfS]{4^ Ip.ܔ!ftQhUo6yihd_{Db{ֵg`?vޓ2-dG<KBRV%\n~ XؙLB.,#Р=0x#6J4HƟQu1ē>0 O'uvt&3Su ^p.U:tm(o` PXļ#vۉRËj?ؘ~xɳ@u6c͗2kXKC#9pڡv1GqalEh KHǮԥ~D]4 +g.CVӵlA)3Q/sXFADZl}n^з.-%MyQIaab?u]E.Y -̇;ͲV~8ACmY8. KRai.yknG]4<#oڬ᎞4!0iK6gӤ.EQu>{ 'tQk:0K}Ӭ{|*7(uIg 0)ҩ0PGݸѡ}^ϐJJ@&u=ŸϠ.QLBVc-v_%"ӢbGJR>0lTs5krHaXm!sViaE_ `'u|kFB䐢x*O^ΨҊ伂z&:KpLf^: 3YB^4nD~h35D}0 Mtd#XԫVV#mn_ mibfrǣ1%WFiHL._Чdۉ0l!u1&uy.I2;xQ06jp{INO(i ȝ /28Ъ^\L91^)kyWyŸ1fRD{x ;8GUSwzmKϳo Դ  YSӳP41 Qzk[$:*OV:)vG6] LK&dN冋UCASk:Gy/#e7ez^ ?4k.!n 2x zΞ*e&2fMƖJz N_d:5;&2aS5zeMaPGE>=KB:H ye%\kz=!EJ^hKazN wM6 p5p=xK~r6l`,u[PQ|Z{e/3Z éJz .=;U1(WбQ1R.ͯonh`R=[ssJ8uY W?ZFA! TZvO2NCç+!'Ϩ(7 N]VջguAʓor9-\ao !4Be-\kzv\06B8uY Wp5p=;Ǎe%faIOI9;Ǎe%WxQߩ(oqc8uYrYꊞso7Oef)=zG.+ѧ^ HR!x#gH|gC~;SOt^7@SJ N(Jt;.X Â3PJQD^r?BKi7.Zo]zppЏ:2.N`$D UQ'/y8OS8d)FzJ)RDzTd;}tC~kxcda3So#VomT)RzחiK0= CvNpK+~8>鶇 pS,앾RRo^ kɡ:C2z6=8΃E 8|l.C#*K([<؞ u9aY"H6S\m w.%?("\{%pc:!ϣ0W/WaZ+]/X`YHWw|_-'nv}8u!'gROiTt ~l=|q`h'9p$?\buCC8-U2J%:t,y:1y3,OWt%5)r!o uYmg\ Ŗr5 iC]}Wܐ; /y̓8;.8*yn 7D.BR"(o[5IHKe_LVAez=zH ;wqr .4+uPtb `ZD@I4Rn[? EҀXgL .4PH;44*m$#vHq^ȶt {җ.G+7SBX*+;Х ɷ`ѴQ~ ;% %Yx}3>)6)d+!ӫ`e3bPƽi0`r9 w6m$4uńu%rpkDI.:)BPy38t^ u}SKn&tl=(2„ݳ7ЃBI]h?L*قy$YyzKYF3&ZoylC \+~ReS78:m$EI҃lm;C"a*#[7 ͗2kXKvTDrLp;ZXzII]d6ډsuI׆+wCx~l_IJC1DL<3z^ a u?‾(Eu)\pȰpt aMOχ7`p$\s8ڿKLPF% Kg|8:_#T90iG6oӤ."M;zBT! ҀlꡦVQzp\é3rŧBuɦPh~XIKz>I!ԅlqQ_ 02G"1j f7:'Lv'SFQ o󆱛XICŪf7C{&udn=G 9Vcu}a>aJJ+ h/k.-5G䏰+\84}ZRzq= ֑s MɕQʱZ}]5ɶB edKޡI]e=ha8Qm#7r0ЭY+p=8NyőU LuИDm,/{0yC]zaԏwrNI#]76 64@rQ59{Po"eo(^f_FG6]D^dđ:=h2adh'r6u)xh[GASGnnփ]+$zpN]Vջ3)y&_hM]Nt38fSq*8uY Wσt{I bǃ&|O衲VSp$ ) r>!jZfܸto=׊p5p=OLN:=q)BJP:zh{W=8Jz|P%Tz ߙKH©Jz|uQyz'w \7?/:p=׃#Spp8n .+]׳pN]VbzIͶҥN}$ݙۛpN]Vbzh\=wJU Jr;Ǎe%7Ƙ-z P(g;Ǎe%橗,Oa&\pS!y͙q-Qp=O~R"> .+ѧ^ȇe)'-̄NB]歕vEZP]v*7=oi]k #}éJt;.` c7<ς)&@nȿwׅ-ґ5%z[G&N]VUҞe$5lFj׹[!Z!]SQkXE]~R@ Sp=3ҨK1WkϤ.+Ѫ^<YNkb}8oy^YFxc8P:_RmK\!aJ ^3Bz`:wǎ'" ʿi=ͩ#!ԅҐ_i%}p*=})OkcQ&Jk)S@^}EE,{t=77ϩ_%N }ܛq=`k@i Tȵۨc ky?"kЪ^i4uXRw>#w@COv!NdvXO]X5N560 {Oi_tScu&MOL&C3v.( $?^Ǩ L1g:W9XJ`&º ."9,F˿O5ڐE$( dܫܧ -JޅQ=}/Wɍ=lEDjT:>y*[:^я;,w &űzn.K7f3cDBZi;Kn{6٣#B+%ZAMKŇJ|5hk!cT}Jy} ;Î!ӳ5@Sn"c<^-qDt\gF{?ybvN \5=hZfn35w09 ӉҚc}KlvXpׇ⦖u耥Qt#NBP(cLDIق-~nzANoV6cB]I"AEtlj47.3Ps-O,S太HM+ b7}+u֤ϯJlͨ!^*3hiW5]w{ 긨Zybbeh fe[gX|\ԅ&:TC>U`wpنPp( 4؋3N_ SZ|iM-!PJU%Kd̏FڛFG *գ5N[YOejRDBZjΟtCiN ;Mc]M-A 9Y~ .4R%.( mJz^WC6vu)Mmr=@`(ܧgMN|/!ʶ% (sɿd|GyőU̾`a~EMQ"@:Oݪg5wK)++jn扤\#}k8ڿ๺/zn*pՈ^*ZJ.< mɉh}PpcT'度Spy HfcO 0AU[oBNeN[f]K N]VջgG9^vʓOOrp5p=;Pi/`\; Nsp5p=;Ǎe%\kzv8éJV/HHW;"P^d;Ǎe%WxFSTu9w*ʛpN]VbzjfMx3v2L9ٌdN .+ѧ^y ( )üF9I)07D>J~#S![Q~hJiBQԩp=N]VCqtomǝP 4prBĻ1uH֚p=e%Z+#Q cD]"dHD%*Bzv.%21uv@)0xDg)/R .+Ѫ^<YN7)ݐ_sk(+'.YBޘ| tlW/ Cnz7Ù#*Ѫ^,;-Ud[doZJ N]8d~]KbJyk]ŭ׃Z29|h2FI]0iz}E;Kic;Ee3N]pw.%?(5]\{|F-J=Ș *&\[YN_0€JzѪ^@U_!]9Qt_۱ɩh;ҙ r,.5+umFjE'ˆփci҃7{6J=81*EmkSPWLDY$}rD>#D}]Tut*+=].B͂5I5i5b |,V&i_`*P<nI>D~7"ڎ֮|(8WlhG6}q<7 Tr;\.T!U-SqTkҡ[V<!; CD%[ž _ϭjI&сadxx,:+=ȧ五XC$!4 hzfAؖq 8xt3E'9!5v>ͧ <|m$ƌ!@i8/„_Ŕe1Գe Ry` |r@;L_ owiroaxL#6!M(hLф^dtK>\ص2jGADVlŒ^+ءg(}0VN(q2wp7#JPK"$5=K'eu"30nH0(kt&e5guI37s@P {%6?סg5 }l=Uos7IzpTb8uynwlR`F<)7.[Z2Oٽx vZ+&*.AR+gSJha@DP}q)%;vHzm2AkFhjapуXOg Ui0ξ.'ZWI0%{ϢM^$(vfO0,xS.!c1K w#di̭mT5)0dbZ]fMڳQ@ohUoJebQu1߇.J" VT qMԥ)R}AyMz=h"G.PL=p5h3^h#+w\F2s+¦.k8pYsåe%\kЪr+DW`tatMA`cR$z,P{{=N]Vջ sequNS@F2DI{R<9JKf{롾@p8uY WhԉoǢˁ$`6W(J(: |%(|W=n.+]=WNx3C5N3hjfIB=<\pr8uY W 4W .+]׳0\Spp8n .+]׳pN]VbzbR2,{p8n .+1U[4ĝUEHSQތpSEYތWHkΤlya?~~~*Kl..+ѧ^ ( „H9I SS"DAj}ͩc jRM]r-a?e (;UpŎ kX 3PSD^wX-IZ]JE e%ZKu=.N`$D UN] \zT.m.Z*Cra'iTL%hD_E}nȯF{^EY98u.!ԅ@RkV*~ra? jXq; XoŲܒ_%=OFE(=ʿiRQf.W1EB](TQ*^ k gk-ū.mOc}ɱ`XwmG]FTDvjV',."',+]&qꂫh)>P)W,у?xg]5PxrE=0afW|:I^]_۱ɩh;ҙ \N]a=u٤2 FO7 Xlo9]68mDFźmMcJ/zY^VJKԝE\ik#|ƈ' 23R6%UV=wɪ1K$R&-դy|6xXr-^ EGu ;H%ЕKl)OsMȳ8:Ḫo UH &uPt'7 ߷d/t4l_;p,/k24go>у8CUc һ[k]Ȓ7[재:xdž钩J0a[ӒdqQ׊JK&"á5Ʒc$Qv&<ѡg>ȘgÓa)ڐ b`<h#$%~H7e="'#=dӳ+UQ&FI#:\ cxaDLi5;PL \ˆE mL0_9BkozƟR]jpf.ԉ7xFS.ɅJc,pҰx-)U=c#rBi ee#AC)Qz<_д]є? &YQ62HJz*'=XgUVdyA2I=b 58\MIRT fM4` 0{eG:SꌇMFl5wg sπT7>"MxsԥFե}H׆S3Ph<|8v1Ĕ*/(dBLO).نR&y-6Qu$g``:t"BJӕvO0{Ek6di؎HV[o)s{KK e 4iG)I ڛѦ.Xe#3mգn)Q3NjJìAΌԥȑ5jV0b|˺qcx͸~Q2ČYhRөS<1hv#i|SfPO]ѕxixF6᎞ 1 d3deJ`=L< ZjB'jxF]; 5.cA]r՛XʝMJ]L 3.Jԅt(ƟE)5CNK[}h-۱[*w :^9 !`"FD-6V5*o 95S\;$~/ܜw \ώ؞Aэa'<؝VCe%\kzv\&0괓éJzp87Spp8n .+1[!]E 4Pc;Ǎe%Wx־TuNkw*ʛpN]Vbz"8JfMx3 m&Nj͙T-p}NkXTAR)8ra;N]Bd DS JN(vBHS9ً.+ѡ^츀i/0,;u6ȑl}.pB]:r\;ё5͚e%Z+Ci1q .N`$D 'SSJB]Hn_nK%f# IuRZϔqU8uYYX!QVN1N]jpu6 /l(Er"G|ȑ©JNpK+~8>3-2DB7R*%zb&xN]A]үh]u|,DuѮQoY Vp u9aY6SKɇJT!ca?/%^ dy:|8DzecT$8cS++5QWvȩKŶSpxNm-'ÚAlEWbF1RfyCbZ+C\H:-ƈ'K2iR6%UV"0 e{\$7PXyZ}5Mٽ̥ r!rDAiO ੓E5jY{!O,6 kC$ 偢ƈsT򓜓&g4 =Ɨ^ mlB]*#5e;L_[󥚜WH;K#V״;e!@;8>; }e4-{?7Z} +Y xYٌUV=c_"Ǡ&'}\DFd&}D"&G m_fʼ)zl'@ޚ%J؞X2G}mwS0/9R<,ly cz*<.[C!FT_-Y#d{D>w+ݰr]оQp>9JHKntR# ZɅZlt={bgb'uX&75wriYgvO^ aƠzOV3Df7u ! SvFyߐs`9o]v'Vr2JG]=YMW.!8R.҄V O1FFx] c/|`':yI=E~ep9L.EPQ4M6oZA].=WEWl[8R.&tR&y-6Qu$'bxKNJ!DB7uaE/.H(}0@aX{=,*-Q4Х S.)cQ&+w1e]j~xzfZ҃+ l3<#cw @ƫƚr0k93k bxn/"%r = DD5%_^i]Mr|#éB1*V][ʝMJ]N 3n3ksyR%t;'V <. };wmCuMD BPSl ?$Bc\zA].n[K36d˞}-A~ .+A]el( lɇḊJ+ $HyLsw4coQaBa u!¹VJד!HAruF%IhAT"-O]UD]`b)'L0sD/؜-]hTJAW¢;eDDđb uct'?St ˀ!+'rE *gñًhl욉p=0U#ShUW*q|2g-2AB7jW.%dǁK*޷f6# .+G]ioD8 v[ J&g,>NvRQȵ{#"ZF©J*GR#2T 2Gj܎ramxbD5F5Gl 7GéK,Y`vPVJ #?I4rD,FcD%tIlJD`DCˎF! pWЃr&CP{CH~+/GBQl'(:\C,+8dҷFvGZٛ˅*ʖ o>e$B.-5ZKÁqKv')iIbܡ^*P" mb7ŤKn[?i },oHi@hC}[; "I.$ ]e͎xz|q9GayʬT D8|OJȎarjޣ8f` uXЪҜBFX)#\#j.xlQYwy5 tyV WzUMk,:N=UQ.1 4< @Iv|͗2kXKI 9!]ZubN]*B=P!uf)K99Wj!5a*XjY(Qyz8rh$H].%(cBQ uye lRxDQ\^C]|bpJfZ gfMAC D 2G$|a LYr*qf .lFb|`!ٕ;3ifܪg4S2zK]I ',n;/Ou;w0%;rh(dvmS4PҐS LCT)d.H 0;$A]X`S!ET`O%TZW 3c##R8He.<2IRSZc ipHv_yu 6|{f륭[rZe 3ZҤ%4 aP=OErf+6 .Ъ^\L~5YHJyf`Pst}͘YF6]0p'B-~3|0F$=K奃@}"S_6]eB]mr>~j7 V_ M l|m6F10!5cb#q,@؄w \%˴wΈLj E|Rld8 8uY W!7aA+/ˈ= Cr .+]QNP-BT2գ<9JKfCr&w \GT`6-9I,Ei7CrG w \BL5D;ԧ%$3z0qDp5p=_ > stream xVn0}g$R*on N<Ɠ)]uϜ-_༉F7 ~E F`^N!i+ܜ$Yp;qH?j̐,1)'PVP 2] ; {"iZ +rE =DFEp2O9ph73P6^ P06FGPÜ}+b6-Xe|>;1N||7SĶ48x;l|~dݠAۮXZRA2'@ m TzV1ڬk%P%R mU ZwOLƙ\ D{U\񋜨1(5ͯ|q>fdjnnvdzr'mb|N)2,/c[ JzsT=CvUG-gJ;=)EL|᨜`@Q.x#7ui!Q/vq2OT#r(\B(~9鼮7 tm8Xpf-)RrV§pyě>f9FL xO/n?H pc=u>endstream endobj 218 0 obj 668 endobj 219 0 obj << /Type /XObject /Subtype /Image /Width 862 /Height 671 /BitsPerComponent 8 /Length 220 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream xu:VQI##p@=iuq[(Q*쁗KHb i @ o@ ќ4}r%s .0v@(q@ pyB c_o#?>>䈜С%뷨saEn-rϟ?7mT- fd*Q#X۲':DE"'*5.,߿PKhU)U-ئvsnscQ&-)PCYMl!d\l4dQ|Vq)'kZ<>n&sh$[@.eOoDZOQJ  K$K,IߡPLa/ꫴ&q^󁨁*8Hf.S\}䓠[y9ꮤ:qE_˕jEzjJ>YGhzJ!ݱ"_jIP^2V>%-J`zJMX- aAI\} ;$/D]Xۉ}F$K R!ˑFq8dAL.`=x<lۻ`^O8]'3IL(+L'2m>:xM]?3$ePްcG)L,)/)Y_ۼP~ 5y[ɴX ƦI7JTgI;`ǸEybbY9HX͎8pz88 iWT؟֚TvPY-ݘthaA8MnIFʼn(Vtb3lT O é&m ,F 5͙Da^N^1C MGlSE9g T!t&gߨn[΍ͧhӝ-]LgZ}+5dm ˢ jSib7cT &SǬQx݌%/}9Bv|zn97 V۶^736$9̥=[ፘaRfО]Z@ xY;yg!mf'p3"d61rY(mމ3 K^N QIQkMTA?l65/k"X="_ 5 gHEmKKVn$#f90fgkajѺ 'Jfh<$1 D +Pr(&9I8â 7evϨ,GCAt~; eEuOmKNeqYGm@e PN^؝2d ח]h\|(~{|5(f8V.H/RDGMIѵE8 O6f²̰Qݓ+̻%edN@#0CɕA*Bgkf(eOꑐh̽1h8IWl|Bk!9lNHooj^J묢fY*gmQ@QuN'Oʊr\$LR)˲l(z`mP~K՝%lLH2ZJS[:IQ˛ T`R_(Ζ8'[i}Qg~#k7Siblw7[ޫvXS)~1ғS?8FhLywί)hW7sR^S/˻L(7jy@ xADr[w(%Nf/Q[6r~"\F݁@ ر٥́Eؓ}9AT- [pukbcĐbHU{2k\*3le}Bb,קbO'.ή\(bA }\L݁@ AkCŞk fbD B΁@ <]}r%s .0v@(q@ py{ @ >~!&#a`HڳsK rh_=>x" ;XTT "СDh} 65BV,2+х%2k`֘A¢B!}pk(gj p *Q@OPl O b}&ǃ + Bhtc!"~0} /,Ƶgl jcw,U"~"}b-lKf0&gKXfRQ4/V_dR6xt*>>r0|h]ZL@)>E.w'0qb@"qEd Eon!g(})Ly9:V<h!NyAՔvLZH `B] R,ejy].SB,:苄\^ Lm͠ 8Б0TWMl!ȿM/A8WgZ"&#?#X2<2%v_`qb*Q-XdٛJf~9ĊN3 f=)Cc /ϝ"Fq-.NBrSKX{eX`L喠gTOCŤ}蓉TCzp7'a)V u3kA>q\ Es%bڴ4f ff;-3G Y h|B -h>(y-M]IJ;a)y7h3 $5 5쐉T5X 1,w6TF-iV`cb(Zm3dX\cŦȳ46ґpF>s!1f/^YZ/a6䶠g(E<- 7z+Ҽ^3}C֡=0@+Nw t7v댪1Z};͜w[) v @Q̐+YvOn7_ a~ o-ma5 Kᄋk~9X]62@c &owTA|ؖ3bTfKmtMBS삑bMOW޷taat+Ggf`W R;: -=h$TژO{X4>@nIĸtmvX&_yMvmb:@,U21Z,8KyN˝4-/5r~m`k~gR&-rD;rGcQMS(gEvgA73 }r~j*5"',1?<%',ݙS1*Xw9´ψ0v@(qeL:1'}\.E Bς?؅TD.BnvtHxT9!J!'iFFl /U1j@%թ<v]ˑt;#J!W;f/{NDG_62%s .0v@(q@ pyvP"m=u`կ_Vڍ#I +g絕#*{wM YΌN*!)ˑ˜@ a.>%~}}"nX_~ !!P;$30DEZQn"FQ"d \Z\?l X0v@I>!PbgcLppD#atڇӋ9A{^B"ɷ?ف@;dOv,U{)Xxpx0F@W9lW# Dg>}Dv5YKzzP|{82Cfrj -΀ kpBcLj_{b̐R'',DD"gW:hE(wɽ[Vm[0' 'THryd9^j/ kpBc%F?f ڱT' "3?PlZ0AM@ǫ v-?/-Q5  ]}P䄄@}6f(`WDm"ԚB}u>3_ uBx5@0vR%A\`7suf8s1fx=NN周<fHG̖!8f@ PDwq,<}\)A/GEq%!|_|pXDrhP'3*l:w(wNO5~ ZSþY9K7bMBI1Dn iG+g IaD}Dz`\?5}gZKD4D,x 4(ӁVr66$Ay܈ʇ?AwƲ#azҼZ9ʹ#O_lNv :Ԃph bS:N$FСDa`b|q%S!\D&ǥۚc CIvV,s })Qn^K$Sle} m 3}4 FZɍɫ HZdqA-%lV!?%kmf""ې4pNͥ!S82l)a(xet3C>P bCHU֫1C{֎ /ܧD<3)kRatC#]"@.<-: 5/;/\J~{}>'9I4[cZkEO;*H!L~{ CTV#fǢVpx=H8 E0Ú/.Tr:^x<@ NXH~7O?3s0^g{Q"B lfLˣK}8bpsT2S]ë!jr zJqdK,"LVnb>&+OsFMaZ,)u>Qle)S_{CZ䦺XhRq@khK4`)j(y{HG&Sl 3"a;r%SkEYw}̺zjtJrYe [nHT ~0C$;o hDX"/'YNY!Т*t=ȳjf/2~;8 -[evhPä)`KT\”ӂc*>Cz  'e=8ff8Y.Ԣ&U )N%/9aKM[ip~;6f5|*j+#Dգq.E3,:4OF>7q0"Ĥ 5 @$ i|˵ Y^|po+gq9ImA,U+[*tL$32COr V5@ Їf-s3\fXǝxk1IsN[ t<] j&6\K]"$0V4`~=&;@,.'`S" 2d6H*}U+g1Cȃ $N9I]l; }cj0OD3\fx+exٌ([}A2E,P{vhkmA9 %y֚) $fFǯ7ax*^JU- n)ZZE靧َu`U*$60i6>Gma@`)!d)(Lh6-!CfvkN] bן6=˷ ޖ^3uϐg{{$ߨC3Jy}h~?i䬞 f<<#/$f4tm&$)Q[ /ծq$aºZJҺGKxbX? JEQ2D4=R[fXt:ft*lEM-g@􈠾D?ЙF 66eQ62`)BG%JAMkZD;`Q/&Ҵ4q~}lGk: I#6" ղ:'гO&ur3?JOn@{@BUhȏC6ij̶ M^j+Ƥ `κa&J'Jлq~̜f$Bk? A(qy屮O[}w6t#J!@ș gN񠍖)]xךrq6t#J!#:Knb!%}+n5cwAy gB?'BY-"r k%>`в5ٲsL]ls9w6D BΧUƍ3j뎷+!~@ a.P>9uYbT2r˞"V cwA9G B΁@ <];(ϟ?Vï_Vn%G `S% WO䕂#*wM YE|~~6.~i:QԣU \a.>%~}}&ܯ_oq̐/>3 lE$և$WU \a.%B2BB*x6f7+Go.a`8:R.7t^S쿣[WY(4p=*Q1O! ł$;` .l}?9z{V}!(/vlgQh Ў'5vJVOrgx;ėP! = [WpGE´U=eKu.EݎT ڱ#m&*D`a~P>ϩCՂ*/ Uj  {O=e %T ڱ[0$ࠏ2 _JgJ=!WRӫ2Cy2CG=O{ϼugu;6U,B0 `lecrH80[OI? !3C(,i}39& a;[`bTegVh _Ț$Ҍ"9cEhi䬌]rZR%'8 r4y"DoR? Y )C;?I o)y#$$Cv>"餋\\ E{:bӏrεQ;G <JTf`[/KG,@JN4R,q,y<+Er=-A]gX|\nG|=؞I TezneGOU5cxQcG:=/%' S.z Q"%7ʑ4lPb!$sC ۤI(d_G3쨛Z;+J.Rm$긗l]DeCSIM P>7`RHd\Cgx4/()~"v%FD_vk@` t3CD^ӘMfI͋E١xW^֧D#)KH}之bѾ]"G'hKJ1mEKU2\c{Җ,Yi@] nd$'G|R>#F6UY(4p%B \@6޹J zV dxF+.nQ*WY(4p1B \wC wM r W-Q* .0v@(qgǚ哯il+!LvB)": 5áWCԣU \a.P>9`]*`mb?ha,nAX*Q* .0v@(q9@/Jm$"zT9BK"J!@uY(QY(4pUB #J!@ \a.q6zY@ py6UB]|v'"RUeC5EEg TI2:=9HwM Y@ pyS߿pǕ#OY`ٸXܡ>/߿55T"U'Wa.>%~}} {vIOha<̐}7T?_  A$ ٴq38.Ho!g8d~!2etdG}⎮Eo!ua.%B|_|CXNM .U)0Ҝ+S;}zd>")DKED&P)$(P̄\?y{skk~[[0ND I`>Tf%]D$C׶3d5(ci m ^MJVDGv>gIӽjAIu,ž7L9c hzP|hܺUTScqC&xRc3p]XDlED)TeL8NW槰 gݫъ/f,9(Îq pi>!3!;<8j-e`7iˈK͢PA }5T%T&mN2϶ÃcrB{T'hs~ StVRj(s)u f>FE9ie=kb kbKID6@hV4pEF:yȞB3&|RϤmEnJ=!5!Zlh܂ /)z6fXk!B!yꦍ<50#⾆ dz̐H$퐚샥o$,1IF|3w1CFhߌ0CF Eqo Т,|#"Zl1!!KT匟o=[`4Z<(# F:B۷(HXvE;-V&ƮIh Y]gZ%HKbTCСDfGU.֬c+ׄs֏U<0EWJ_Pi-o_ݖ!iuS v@#َBT[* y^Mw%3k&-+[[HwE˰,|^\(#ԑmfccW~][-w.^ ]7HCv([b Q4Ψ) 򩋢iϋLQ1Z O}Hu #ٳG?8mS0g2/e{k2{sOU<$SD3΂H7BzX!g>K) og2t$*yu ;I[d5>wڃ|'IrdF4[r<ώR-sUFaZ,j %`Ig7|ؑ,J 6*9{}_;J0fggP=LbTۇ9od2l,aяG$*̐uF.jNCՒJ ެ5q_PTn }Nt4{ \L`05uKal>E.1CɩnfHC]`m'0A(wwE%Ak-1G1PKS(fOg(w wS?$[Щg'N uf105oI"d6vW`$nX쒚'p#8Ca@Rs0PEVIوXuK92dl[p89@APZd5h2R,+n gqMAm#=jB EF;XfD>3,o{lMj<\Y_<.a[A\xQ>PV0j2-9I k_:ݒ[Mv9v+Y0I@mv͖:'̗6][`73(tx9>gfan\{W(0[n?k 8X$IY-i1|JF^,^R;8=$LA$xʂ'M5Ay,e^<Y- C&B.?렯 MLSD#dNJmFf%|h瓠J)}ݘe,0ōVtt̄=bIqT{6$RJle:!3]?;~Iʧ&H ݂޲Dwo\(0[}fX2%Y-^=tUK4oF;o$9!,ʵ 1I顂=;.#UȽLE1@mfDE|Xkj(I/¹eԜW׍-'m<~EX Pq[1v7)< xmop׾TzUmZ~Q&:vd7\9Z> &1ʨkF~ sicp*@W r\&[vuGLewcVb#:@.Ȟ hᛡIȹ:Nb@A Kp >*[,&Gj/_y}jozL$V8Ijև# BvKF0ɇaؠ|I];*wqP2 S%``9׼nYa.P>9i "(DUYxhڋc !I@psF " S~ R%s L!&nV&N$pb'ƥ 9p [t3 \P9@cwD]\zY@ py6U"A![)w@cw'e Dg-a?<!*_ @S~"Kg]O ɮLٜN->A/!$^=ri9^GGeP"4IG7U,l̐ nvW =G]jwt:K.MWiy_ @28 c6}Px,&2LS 3De^ Un֢lq6izh%^ܒu)r : @;*?[P[q*fXO|/ Ev>gQ$,7ԳsadrNY^ [I'd'@*F5H\бjˍR`)'yDpi $]ϟMA'R?Rd|[_T #^?W æS=v/-YIQZ8PG@`JǑG#aAe P0X]_IQB9,:(6ũi~&{%Nc/DJV[@vV,2&1Ͷ;Am'Y~ GD2b ~қJ8Yt,%IR%!DԴ횥r=Ye lz>CE }>me^ G(,E73#k: Dc@{ f8>%O 1[?5ƙ7BzhZ*gOҀH:Qɺ1Lꖛ]&*!xX͜@.],R&AQ(eMW+jf u|5wk&ү kRmGoߧ^ : 277Ġ`VUДYq*-0g]-X9ӵv*-35Okj=1'ӝ$u1C`1tnM6'jG %l褞Qa9(-Z8DG@]qjNY?ՑR,Ubd%vw}Ak0\ZLV E?z,-wq.p,oa aŵ6Pc6m0(г8u>fX-3 ]p.+uXCz .pf\kHpkOd+8f=d;d N9C0xtwՖOH2))U&"Hm@c):4OF>7q0"ЏKeAwjm#BĖ"!Wg+OkLZY 2֭MYfH㇝rhtZaxR>|p}W@3yp'aAd]T;% iUKLq"[)QcJu3CXQcMbB ).`=l}Ʈ@e!wvmlo-O|N9CШ@ p8yMΗqm26^p@̐D:gdnڨ[X rvXA'5xWTcJrRl739%G$ˇ;f&x)'' 6-*Ž_(3J>3̣̅b|&UF鄲Cp@xȽǯu >9HrKH\>ӬO@>!E씇 ,%;CWj+h(;zGgZUZCl+yBdԄ$f o)^I%mL;NQq*|[IV;"Ls~;UPs ͖Xض x{8GФ{vM - L^K/~.k8y͈ھt+ v" t y5~.q}A[Gґ;@R)ZtwXi'FHR^VtIj{A~-ԭkr Ǿ64 )S$'F(Z8VG@`V2J!sUj|WsVٖtr|-'B B΋'Ӧttd3EMeͶB  OqoQ) i@ p= e8A2>Hc(rb(<3 N"f].p^K%sDpn&Ӄ"Bk—NtǞ̐R%g+'L! XOS0Cٷ䄮ќE{Z'o] [*|c 2d___bcb8*D`a~VtrfjXW{fxԤ ;7ާQ ^|;'E b/%\]~٘{󗚂n{/NgڱI_k"TbB4uf8g~k̤oȂnɩ<4`G:|f8o*kpbӞ|||$)򁈘IXyxɱTb,^~"s.й03C֍~h`ն IXV#_M$@ac7cRN* ނ7Ok{݆Yyz2"C2 5}шԍ6C)tN9Uwn E9j4L, / ;CS :(&*dK0Bt>|tXo'4)5^;R9[އo3̍eƄt,VAﶵM>i͏sk)a#+$OLqs!W9=s|+ȡ褪W [߮+$=ZѧDP*deʚ|ݐsx;m2aH!RK,n"3wZ?1 $v\̖ebS*5;2s-.M5qn'\&,R;&E0CGhKmzqj+̭Չ@ 050!017}B'!!F|lL1z0wO%?1 v^TO myZH(,)yjfp)Ӌ _~ꛭ.LKYf TJ9냒iR\ݺv`QLVfmrrwuޗ˭5i{n>y9ݙNf 7kg :ϭ0xYt7$Ύ)FX*3A._&%Tn }Nx !y"&R4"8.ƭ9b?3>%r692Y|"m-`ˢɳi )`- =fX$3CfRQX԰@-ze!Y?HJh|h&CN%yrA¯.nfȸa\:)E08=Pj&[cOK(T!wd9ՑF"@jk^f|nhN xJ"S/Oұ `q;aI5b}5$c(9Z=E^'H r$Wr/!| xvt3yJ/+g+~Ge<< _J4ׁeݕJ/"d=z;\U6Z(ڨr|᫳4 ^]} rf,L&h /2Bz@ Rxcwy+ϟ?v  fB*z)@ xcwyș!&}\~A,ڨr|s=EݵJ!gn_e,䙑"*|- a.P>9sǨ^1DO*l0v@(q@ pyB # [?h;/@cwlD2 32ÿJ٧l@cw'e v^SBtqݺ:`!ˑ˜%@ ]}Jz{^n71~Y2C6R珏w9OfxUf)5 Azx-e\qi9rC@`#:Ma !b <3d}cց#77( /̋ P:2;ߍJ_ux5@#^K(6BB(lydb&}q3 GDJ=<NNa7 ql9r8{6Eǰ@[yeF!ZpH8+H c\-"jcIQЪXAgR?6ۥnDӘoX/TU~~Yn:FXtyH9Z IZ`#*.ϕ*4zƚňu=RzR˚X82yVs&+|+;:X WVt\Ş ol|OgFGx-P$rBS.z uB|v˛ǫۚc"젯8i&$ʃDIXjG2(Sz/SDh wT'mX Н! $Bk%,5?ȰM[}ӝEyR8ø%ݰrl=ZW;D 14O8gW!+SYU$.Z cl^HQIc!!9UL*$6Ghzrr:J>0 $H^qdrB$g%{f AK܎!k&?nHpTLA-p{y ؚ^Tb}PB 'ZyTcG[^0hmXHrxor D:wtRTzMC&QEGeC%GJ$Mu $QP;ikB@`,alWJ̉F̰K>(``G`SLV 0Z&o h>3$-VcfHcZ~ I|837>3$f(d2f[3CB1b woqnL TJA^1[FS=ic7w!d3Cve&ڳ:BQ(f)N&+C-'dc%0˴rL3 ΃Pd* Ǣr'p#8Ca@Rs҆a*y$K?67&e!MqcfC6}c,.'3=exewz $ (3m<Ȱ+5?b,3kE. `5C6h_*Fs sGWp 39|b9Hnf8D{Y\NwDd(W}a 횄sP ya )' 2K-ts"@`,VR/@BtRۙ7a7:᭔M})}о Za~ V$J /փQ̐܈՟oؒ;&,3,%99-^_U- n5vkA}t~J>g OawPnsFa%AT #@חܘHm:} 7sv ǭI室,$W*B@ܢ[>XG 1OΚ6[XS 'ݿѱkdp+0+Ɏ*rq56TQ?cK-![Ca}75|" Wr>ӃHú́*Y{-Ei)A D큢0PPQ8~cVc& 6ׄ<[D9I8ʠ5Zȷ^gpgJ'72_O:$I^;*ipR_Ml @ BrƯRɰUqh֍Vt)%xFkxךrFUgpJg3yӕwBnL;ӈl$Ȇ|HI_9ʩuU@`,l%˹8<=lW6&;!/e#r}NZ}T9@` ZJ3WK>>>1>.mYV OtrbˑQ@`#fJ!sBd*F;ޮogvcwAsǨ^V5_K"J!@ \a.P>9@cwD]ڰ~Y@ py6U"9߿Mm%G `%>)3T^| ~=$GP{9r$?xAǏ;n~Y2Cr;Sy<we!-JT(Ɗ # DHs_bti9rCWCج C$_B(V1C&9W^-8R'؁ˀFرDZ #Q7*zG9~NFج `Egy f(<l+O f^ 5RDjmqTC8qY{_-{lfDSO\nqpl6XDlEx~~fXO| "wYjHvBP*Dryd9^j?x)ͺ*D`a~PǩaqbN^-a@|;4Zo%%A4K,_bjxvͺ ɷ,*gcROHl>s0X02CRm^:B}u>3GGrL]@ZW'6`W3u,U nFNfl?C̤?3 eOT\Q=<1[LJ\RaM[C 4'{3H*Gvb)xfMBj}XDʒ_g 6hXϷNTO5~Ȁk!I- P.i;Q+I3j_*$;p.*_8i +GjX&@DR+.s(joRKor犜)޷ ;3/ JFla 5U_\:uiύmr2z~lnT |qCi(ALnYr/R_(F'A2Yk蕰w𓮊egTTH\-P 5 4K0B >|;o3v&枤},OLDX}} i&7RrcB`A ~JqoBqe=w$g-ڋrGU){EfطؙXR^7Z [J-MNFe'rTu-\D #40{?A-%l7̐&3B$iҬV:>%2%Bk_Vs}x;-n*W،ܘx{R3)D_ *Rܘ8 01ރ2b:QMVkbKӃ$Ú| $-Z͒EXLxRd5fӳ=~AťQho-mr(:'wF4ӃT^Z@>cWbJl)cijnb—SOWé;=!&|fL1zka~΢L%v >a>*bVaYٴve૰=DMVP-Pt`[UvOi-r g)' QћVNM Z/Ƣ=ɩФM:Wꩢ?ė'j^}mW yu Was%SfB*$(&QwtѽcT#Y4^;A %gol" rԞI5B2C ( `KO͘u 69UTIJ="O9'E0,jD}m$YXķʗ GB>rK3tao>l )v\Hai׾v3L$FKWL4yh~5FP.FY>l ./G % o699xv$a`}mbO6'ا{G3,<'p#8CZE@Rs"n [MBpNa8:AWZv9؛w5gj8NTҹƷcI_K3d,.'m34ɿs869 J-pֶ:Ai>~6"j94KWBǧW8t0ÚALka0iNht3,RCC_]4v(Џ 7]PMPs!g:}?[Իc!E_|Y]=϶iP! N;$SNdKEg/-x)v]~OlY>ɱNjV?M0 50gEU˱KhՐk|gEF۵?TڕکڧeMVŵK(MNL6E#3Lb˹ާ~teF 3,ħhDV:r;69u!- ȝ'5+4h)g9稍 6pmt3CQs'zgMH>d3L #!E>t0CD4-K w60~jmM+w}B73ƜXzЉ^Ib-W9/V,N˷7™ek@}(/j s81<88EY sHqMn՗pw ?gߖ,IQ(eic=>ġ--%?Nh&C[Ʉr;"eZ}"j:m9xt3C MHet9b|'[8`mд]l IW]S}\3Iʽ.2%障؟e,g~6oeܸh"vZzPyz{ 0ǓE{QtZgZr~_cu h#e;t Qߑ8]Զ?MNۤ$i6bbDT[[~鱂j^+@>Z8r!h!ƆG^;*3XM7UQȍ$6:88̰Qr wh֙4g*A-l(޵?s6:88̰Qr wK-4 E[b7 h>|y`8(.!d!N(E)KΏ"nHT9ƳGp%BYdmbaoz@2W\ K~/G.vG^ ;rO.Kq_!BdH8_6>|;?xAB xece/Q/{de=%s .0v@(q@ pyvP"R)3T@cw3lA0@q}\C}rU/N`k$5͸-㝐o:||Cχ< u*nQnd ﻵʈG& vņDI~ !b <3$Q '=g({>GW ^zM.F1>ӮdN8=vfǍQ \}Cq*jXDOd ,iPx,#4t~\`qrfGD+)[{~[޺]ɋXЗ/v/?p.vXDlEhs~fXOh@0=q@h8WTJE?iM̴nY5[+ GnCK+F_j'pa Nn.J8XexI|&SC{y`;IGW`aֺغ]*~9BlmOՁfx1Cɷ,1C'$6_j f%t`IeW,ֳ/,{Jc/v1/0^K( CDƫe癹 1~8T>F;HSLGON'w`eveW(C8}3BS~&:uI\UR%HU'67^ _S`;mHS)nm #k!)ȀTRqnY" 'w~`JCz0#;*ڷ_9y(8X!ek>+կ2I7(ͦY)mPȍWIΕoAK!%J9ɋ 1jQQ,b6JdB"Ō bKQSEn hl*3JyRZ`"iyv̐(}~D_Ȼ!C7WrˣC2PG0[4M+Ym,ec&Ƃ}O,LDDS>(4v| )KJ2%HFoWjZ|PMƐ3Wgo,2fHLVzdR¦kW'H F-o-j_֨WX?Ȱ0f<(W!M12ȣKed[ %,>PRqʩ!73b#SCEYJ? (\rRhWCjG*R,ڿƢ]Q#$dv]cwkoWޑQ \[3Cb'X,=E(bXĜA=]5.&IƢ{m=2éqp Bu"֒E7(~T$h|FEM2jXt3. Mtm33Z6!>CYC^̃ckfX;tIg6y}.Jc2|L喠gTO}؂SRaɻ])JJ+V#Aˍ-HhO9q Z$S; A>q\ Zs %xO ym> a>si f[37io(̰H5OF>7q0"ᡆ[0CR"Yִd-:tEˍ-HY`qER3Ad&o}q1hUT 2u>B `r͂awN9|%W?J; ckf=lKJ?Z"K>rD/ ]+&벦)!]m eYY8vrdhEQp5@/f@hL-̰%<0,1?z[ Cb(Ju8rȃ r}¢,̰qm2Ank`R,]*μlFڨ[ hf3`.~߼k  .9ⶼ[L&gE2jX9@2npdmNeOZwtȑ@_ krgzKr'8ӅE |g쒌 gȌ@y d|5-`h씇 U|jmDynfȄ= gV\X,*,e+%*mXHBtd_َ GE2j(ldZ;+[ ql#3)^Ws3LfykFq6jz|&E)jrVҹfXO~XK(>caE {P2Gl2JOV ud9L^8^v,f ;9"%jˈ ru2]2skHۣ2`AUoBG.JƩҶ-DO1ǽcܢ޺R҉44J x#?΂/nwt Ěv5=rDI妻hvyEϚmQΨ.>c7&=1 X/gib;>=%#d)򔰊nvC7wwOA=N;H[=P 9aSL#m"H.d13HF&/[o/[nt < `1=t샐@Ԃq?y@>ofY1NngCGHZYÿ[nt < `t?xgPy.A@(X[΁Ȇbk6D!E򥳡8<=,/ۨr|?vO3;quK ~7M3(r b5#1kjJj8M nKI/`;x]ACb8?c ]/&,1\-8su2DŽ>X$Q6E B΁gǟ;F]:%!F B΁@ <]}rAѽTf9@cwlD32ÿ*K%G `%>)3TO%:l\+nFߍY>ڒPK!Чį?~h ~Y2CRR2CG<weA UU,՞1LGglW%Ţr [GQ.c^J&B(V1C&ِT^8R!Uav5wH^ Y`ա":bUt`7 hMiqg'q^…R%yhq-S0CxѬ4ti< ma"J2C)GړQ;x1K4IvhWzP(Dn -` />Z[pEA߀3\qh;uKdqb3KHgx;ĸ3\MRO ֭x9Y6>P BO9~ 7W Bcjr`zt˪yش] P,L0ių(w`Ȁhwy. @$.CT'8s~: 3/Vj(s#.p j (#9NḭܽAөZ߱gkح]~k(FĀS7cO qWҹO>/>f|"Y 4_RS0fԺX 9O$ѐO YiR;t*6YgOOÙa{[EcWSVmTf+Tt`<3LZuDsNczK(C,[CV#ap3s`u+EGc4$t h\J킧Sq ůq;Tmm⛮~kE0vĀ} 8Pс}3B0kղ5BR{.#y3ba*IuƊvPOZmHԨ-ص55\ /ZdA"4ܝYF*Si|:^حjKqbcSOr}L2Y\6+Cp"LFJ)hx($$RU[/ǩ!!gWJΕ퀯Ɖ{@%J9ɋ 1jQ>F6Ew0sjдskzg,6cӽwԓO9Qem%QTt` bh4˼G0 5I-ftjuB| oP"`(8| +;ci[s{i 3Lm.MAI ڸmI:SROo[%k4 '/WHƧ mޮ# !T#<֙+C*}CiS 4YZ [J}튥sʴw8>C_B<-^ɳg gK8Pс}53d<.=4_)Ec2>}oD=ԧ]ve_xx.l FN<(P3kW!M1R2HtVaqv%ֶp>PRqK{2C^NuU^TgetJna:/ǹNǕՎ8EUXykWޔ:*Hd sQN{e̐0XzO\.(Q}P&JV0jl1YNk1N';qhɢC հf;\ mčm?3Z6 }2f8}hMgI~0W̰v*lrskZψJ ) _c*>CzV.Оbk-V[8])BYq Vv\hO8-2+|%fbjr6+GH]gX;0YvWSD fؚ־4(nϮ@]_{n2O?):aQ'p#8Ca@Rs P-6,HK$-, s ]Z[\{7ExZ o\,ʛ& 39ZammO#j M Z:jkWZ}G ,}v0^EJʿ% (fdg\%fii=nF/ӡvw': Cd]T;Ŗ+ma,k2-wMn )aj(!+PjEiBiwEjX0Ö03vI7ZP|h&[ `11izAx;S~6$v.3Jyb5 ̐iP{yO[<1FyNrYh" j'; D8vξtk>%8Wޑpz9⊙^&އеFnCݮY(5q%B·)f:|@aon\#m-ji̾s@ yNс#({!C;aO{ ϛYV̇`M'.qN0Zk<+F@^#@_tt NwOvWp%B·@ڂ0RDD6` ,.t: Ӄѡ"xzi,1b|&"ΠW@( F\c WC+A%}%ٓꂍum'z߿V .Zi\\{jEFѥ[!Ђ(9^n_|*vL"_!NdW(u%suQ:0Pй,RcwA9G B΁@ <][+]8IOP%s9r\8ĉSn0볟YQ> V_tH$~ <]*QhG2C*G:7"K .0vJLzۏL~ZeqCҐwp=Ks6w"ЧDxx%uՕlhSunTՒ"|B~V)(wl{ņKv78]J&qtYBŲ J: 3\AhŲHϕW O'n K^B 9Cf{(;Ǧ:a.JH8ZÄ&8jXxpz0wL]H#'FM/_;zU;טyjowS!T̳]t-A:=n`O8:YugeyBiУ/.^6j@Tcw,U" .uf>(X)Z0BMeIa8Qrhٸ}qnV" K{( ;J>!R1b0Ӣ<jZVȻߺ|f5苋Mu+W"T?~8peN~<3w O ȭܡ4y y,f>ٸg%8g'AGqBcgA~Z$96A镡"ZJ+,~[kcnP[f*ѷV$W)nҥ%3Ɣ(X4.rw`;Xʯ$A7U)i&0vnR J?w?tbвsO ^t[(WE ߓ-&[x#v RQz| yBZ 5q!P.˧' |tDB6Bp<:7Pkulb3Jmb\rlѹI,ʚW tm8ԙp!gѓDk%OX~R'| o3xHfi֍E0bV~תE`r;B&wNkIa;0J6R. l~#s}W@ҜGQDa|ʀwQ<G\ӜaK @$kcH(K!t$Q>h*50gqor>_$Czu1]sTn옡M2Y+ҽy(q%:,U"La`GĘC:$boGkWJ8aDlO!`c8#y6"YmR޳(S(@1$tֵ9[' HGsj 4HdGe[(P_A-d#XdK޸R3B/^,Vj[8]Vp;= Oʄ~(gkw@<fx"A0vmۨo _fz 95ɲ\2kĕ8n p3B a#X59YEuuc[0Y 8J|Sf5)Dc Ûc܄{N vT:B}0v@~A !.hO|c0pUXOv1=SJY**(&cwt($` x< Pbgc,psNc"*Q0]{КWuWc=y}c;][}.R%?)6Af '3qϤW3GuKpڔCKv3Y6bk]U}X 'u]g=tB0K01 pxܕo|vT¦=]E7Б|e5E uXU[؂59x].n靪N n<* f(U|Qj rKȞK %lI5K}yw9IGEG'%9* K2"(%'BmhZ'!, !elaChQ;ȊR-9I2FEmgy֥tm+]вr1Bu?FbRf$*Qp{S|%J 9[,{ʤ\1D%-!9$9R9fN2DlVHg>VT(IYCl MLO@H!,I#mZW=L=1Yz6*Kt VI"*5Rpy O^-8s"yYFLn[V! vC73~|+&u(gn>xB ѧD BL!{([E![Ys]m-dGqhm󋌹 ՈeѰvB 7h? sx5]^$,yN' 咺hA k meOAO)Kl3JX!FbLaM6Z*sȶnlFo50gI 0o5!Т[k~61˧%f`X'Xrf迈P Y,KZeZP1ŗ,S8=а'vZYEȯ5Cix+`Sɪd*$(oźu3Ú`/,䰵W_ '7CxKA)9̰3X\P2%jRoc[1XGci*XLm/:u3C &bF5Z&)?9P/aC<@yP uι?}M[ yf, QP0zK$8Z[3 fhTNU[|%h3tqi:dVm v2+u3CA miEU jM/@pa_R>Z0!]Iagok3 \eHu^FT6f۾. ):aqRNn4fX$k>pL,5e>ۯ9C$na{,V'" 9)/_8.:^J6j#a+cgxlesϒޚ3Dzλ`4zk@`7t[[!jaϋc7ϰ+P̰6}o2-l1TRdbܺffXUǂcQ;PRM:;"@+=ےQkge*GL"Br1NII/ܪJRy ̽{[Lle؛<TX1W6.e 4lZԪF%;鿛ߒT^ 3`˘EG0}rm!_v vT:B}0v@(qE4 u*a.P>9@cwA9G `%SvWqiX@ py6U")s;2OQ\+%G `%)3THoD~Qh,|FՍ!va.>%CI/[\u=!3$___?yoyZfx7"} 3Wm)ਈ|-f{'ɳ!}K rP֣C$!b<3d[zlBtid䰏 730,t'-# yn9*\XK9?|ԩT9HG'Iz Qto &ߑN8ܠ e f/si<΢Xdc܎mԨt.yzشL+JdH: ,zt},3}BJ \sנXd(Ҙ܎mԨtdN)]VnJ8XeIyɡM-xE ko=f ߐ2^x$6Gv;sh.`@3 -"<3|BbUPS0Cĉ]32CvE OI\kC樺 ކ`R%J@!o=>asB;`5ĉE 8%yFUQucSb L6H tDyuV+XK"cӐWx<' "Ꚉ%0C-eRDHEH "OS1K~Q2#YV<c|S ul$2{)hX|UFJ>_$6J-5HNdXLwqktعm:Zb2șߒD S$驴+DçaOWL1D-EI(:B.&>V;| Qt`2 zDmsq9'a"]̭)ˋGtGm+SiJəB!1*4. $);B-NSk ,qM60gAЮuu yDt* Ӝ[K a ;qIjgUonf(uxF0oVa{Mf8>%%SFd$?E0vUCe[(&lZ][0//&Xq=]k wV[%ɶT#)Z> ."15fϻ2}|BNjZ0C_YZsY.p6'WP7}}2?~`t3 uTkV zFakT!68D|d,R9"88cNt^وZf9lS2ݒaʲ$W:] ׏7H6/rNnسmNuA;i[ O?Mkд7+v^Ks?IT9냒i?Tw~k0;-Š~=V)f‰Y[\s%np+9%Ϭg$T'1o,3\Ynf8{qgfH'7ɂ_ Cmsjf\L8[ ?z fXy4NFsn> .[R.ghQC6}.Xfu8\Qc"Y bT<s NsSk܎=4W788r6kdj*83t̰@tH$0â44:=9fbZPl5ؔG:DvR r֦QkSiP%O]Ef2b wMMH-np3<|ʞms'$gKǻAy+{mCG h]`R+4H<7D+3_aԼBWl3uu1.:֡|nE6{D&RG<0]$d4GEOʶ9nl'pHowʁ HJ!@ p7^Wi'}"oYU768|V+pB hQ/:f"7*2nl!E B΁F^|n D!=89 "`T.y2m%slg&NiJX -y<FՍەY \a.P>9!lj-mk,*I|FՍQ<A a.P>9J#3s<Q"Va.P>9@cwA9G B΁@ <]}r%s .0v@(qǏ3y4J'wϕ0Jmi9Qh-%|7"}u<(t:sN 1齈j)Ql"?58rC ꨓM:ut>.l B`S9ۦ2CN~%Q}e ;=p&+ 9/+[3;(ӟGUNAɀd#/ER[:\5%`6Q2C럟yvлh!G)d52V<[fây*g:Y8]Rä8Ż`G ̰1u.fGMP#+[k6r S=Wjg7 nA*.P>fp8@! ֳ8BZ-mKGr=?3eR7jZAqWut>T\}pz`58nf:`(||b%r\Qg) G.d<@ |BOlS~'g5b^ɣa"}F,);M)/Jfp+Ydƀ4*K,O^6WcA$)&.(2)H$7E\ժ}hNjDBRXDhNRUKAT2zetph޴ <UN~U %QfY;_q]DiH4ڒQqC4hA%9'PB`W>uyl2'syz\J ll8&d;1. _$WF^=kZ#'WSIJlZ3T"ܣEV2f9/+ɰ%MQl*gBuZ|')'zt4KFHVT dWWŊ|'Ö @(qtj]q>?S5,HnIi5CE~ 瓢ar3D3d!_RvHےv~)}qen0ەXڙnDD~r'[%Ec,r9ߍJ_Gl YvHVWS8 A*.P>X)gfTj^薽NW Kq+9%Ϭgbndzk^k|L)xŕEX ەhT=|N[]/ - -:*g,fQ:&` 븒3<'T\}'gC2JoϜRfh+1<$3t2&0U:Pa5Ac"gJڪ֞ E4狤r2˩ʩ-ƞ g]M8 3|GBC"I,e/d;g'>Md :E c,9,S=-lWbc?Z\:ģEir'uɓWVNM-jϖ',4ULQ RqA'ݫY"EfH׭.ynM C_-#T,r2g-=qY< P\ 3lWbc?ZA둻Y%)X_S Z.}v*Y- zȝ ET-+N}Q%9ck1YF̷1&',D֚gP)p{~;2S{XnG'L;1EUwW!7-̰]U+?]h`db>oNGV9o?[ gK+g7hZ5|a5G#dn \@ұs(5%9籂×^hM=! *yU'HlC.ȷx21v@nYF$9".L=ʅI^2Ct\Yb̙Z(i2"hTbcJVGqxӋSLx]m"&+3z-^ˢ AQkœ4$xi Qnk©>Ҝ +Kaqޯ&d;,e( f%>9g yJ. ]t'!9:!,_H r"}yn|@Xv MgC!\$c O$mxfDU(Kgܸw_DhHQVӳ#y)RֺHRfl1 9;,S A^<]QGai\)2or&|@ T\}˕.94pf4Ðgbl*߮vf.c4^:}."HJ!@ Ē#͐Wğ閕5jU1v|ό0v@(q-t n8&= YKuuj *|;X |ό0v@(qȏ6;-rwn෩^g2T!+yU,%slg=8p娑vW4Υ'vXuJ |Ϗ0v@(qORXXZ؍E1/u???>>dvp~%uՕílHRdX's`hnDXM;Pb6.ґpRD% l0v@IBŲ J: 3\Ah"T+7TߑJЮ|;#"r6{+^_cOc'Y GsJ.E"[f$ciWbn˃jWHT.omTִϚ( G\j6xJ8?4vP R%2VOt8tԻT'PJ!>vחCoh5-n0JmNёd@!j:,/.xJ8?4vk~8*ca~Y:3A)C8)ea`; v;|ȗ3wkjerNNj+a`S ӓavG0C'$6.] f-DZRȻv>ѾX5c'W\/wMXDO.?t\V8ݲA>@0ÀoUVŚw\Az }05نe5ń6\l  7X4^7dc]Z^Vjmk6Mq`^1yݎ7!Ԏ퇾}'٬B a*4liNZ0pm;ߴP:Z'Si_ 'HL3e9Of= "w nf("MEq5;^KsiwQ}Pf0<`?2Z4a\hQ),bIќ#>)XlM&6^Xpf_J,fHm`!2ĠkT!˕rjQq#SsU۩$/Q0pmai3L`0F,RdWB\8v`v] VmQs0\lom2ã.6:, 3쮃: Sh ]<7-,a`3JcK:2>Pd#` fV2C*RmTájjf # ݝ hG!̰H 9~e] n I-ЙJ|VZ&UBd;KEhFNj֜O{RK5?WW{5KqT% \ /fXr|@dN+[U`0cI !D-sh/Nns'[@9Jva1~2CGGm?~Jm-2Ú䖢K`R,]):l Wo&T :cofMvq' i!ZZ8ek[%pHN.rFR )r#dZC1"+gS|SPjrQ\Ss5~4 Gx MPLe _:!Iy̳w5tښ[*@B60}̐0mb4W>&Zy<g8ohkH$U }Ie[!8F =+ 3t&f8u^I ZA3s(>Z=ifR&D0X]aoEA`@J$_K s2*|1WG*2p]*gL1k.^zݒ+Ty13wˡ$)ɯC6xݩK]kO[*a2Vh* W^2ÚتFě-d9I:ALrHx^T\͊PR K]%r娘g= ёTC?=\qΕ0)]}r>9.[bU="t|h-N, :-?0[.-,eR|Ja.P>98䫻Wd;@<֯Q~pvvjSRD% l0v@(qO{,$"&[5c`b뢝{: p$߲얐ǃZ\>q9Ja.P>9b1^hًD n&[c$WslrJ05]}r$@ol$hd8"*a`kB |Uybc Źjn5fy,*a`B #J!@ \a.x<8s<YB4@ \a.M(PO9HS"T4@ \a.M(#iw95)Dc&0Z,1 ,}}}|B~}l0@ ŝ򎣤[C›b'$k]z:M0~<B(M㟒ϝJ J8+7rZ\X ~"v@o1#Ҹ;`x:Xw7vi$.=ff$cɩr=a p3sB8Cxu.bNq,Q;3{0.d`%JdHRj rwn|j'A(|yK2k_Z_$n8fndMyZu2nr%Bp,2+_gFQziɡy-a`)j^[;[aOQp:ܠnخE A jϙ0=7NqQvl3|Bbsb`GPi y7Nsbg5D7=|i:F `Ǡa[qJ8{wkPxgn#57gm{Qw  Y4| 9eJ |w, (&m BDh¢@+4]ɰ%"Q2Lf!E n]뎪 1 =7m^=eɐM9+:[ %' Cr |ZsgڕZR4r1Og+# aEIα3Cf[2 ַbq}vT"z2׽av۝ т;K{|f(9qɰvȚ"iv|nZwT ;fIGRṴ6`;䀀X88ltt`{&G{ `c3SX|H|3͊[:!Z`bgv3[J)uJ3b'L۹h|&ڝMV[C>dͺ|[+SWqA3"$jPɡhA>MPnɡhn0+gCZ"_]pȅSt֞@Dk]tqz.$8_V+("DJ!,HȆke:cOz 5IB$'%i`Mk!u2p t0J!wC"[X9rTгa< '^?}&`]+Fpj]@7]}r~/Ej鳤xzSt1,3ٝ@o  M sQ:X0v@(qF!N,nЌo5"ܔC#8I~ ""F.d` ]}r~#36JbO2 y~:haTهXۂzGjtvM7Q 8E D B ;c`O'R1ji% 0@iݿ~JV4+F]  OC;%{?08  <6oc(3SccBn_-\B'OȝVs0 СDhBl| PrNI@߼#:ʧmY5\+JV\nLƁF:־;Zghz[]OX!̐#h;we:uQXDfiDtf$BrɱYv*f(C^Ը59T,/2Co2J}(EtR)3+| gjK5EOώNUEu=UX 1sujH!}B,9lED%Xv\y!ɓںƾW63đvSaXuEQ˳?ѫu墼x%- 3T' יQ8-a)9OT̰yZąaBwk'nJ|)C|EI h y8}̐V'iE;J>!`t[1C){ 3CIB=j5/U4WwoW]OR@ ^K(:Ai ֠=0cL}aW030lQp7jN"ش5|LOwn/1%rBEǾ(![XDi7'#Nf劈@Β"yޙ2qGEbr:(u)>C }~C.i.GKxLɓTܸ8KEʐabj]JaMLEt.>yեYI4 -i(ܢGQ,V$E튞zIRlZ],B_#H hU]Sj ئ\T¼cIPtPdk䯏Uc-i.Ĩ ֬!SX:A G5l:gy~ezv64| "2$ ӓ\L,HcFL*')Hbȍ1fU.%3$ebZسg)lbݧj'p2E}VKsRal) Q⨷ƎCB1|YǦ\wo}JKI 饗Z!_SREH,1Ciy~m")bFO0gZn~֓"X>En$L *Ӌ<2?2Z4R=jkJ/Ls~>'W|;= YҙkTtRl]]t,Pt>F+X2`}`6E|7|cYJfyxc ''K9Ft3"|'!X:W.A- n(*I+3?gjB1N,זKKwEǛP+MV.z>g}P+P!㸡6bvXZ Vll VŸ9$̰džfB6;}Sx7!\$t0F:gP·&WM^IRHYXϳuu f.8 3%c >_I|C1[9C'{D\e~^v>\ ֭` 'aE=6,j8N)Ďxn\$g'?7]+_ęx5$̰6 e`K/'p97~0"${ w5܎:')Ռ?ۖ}~cj '!Y;EI=SɎjl iG)l3toQtg3âDlŚm N)rX$ۺ,``7c`E:CշM֍H[9:2ÚcDWuJ$vit"3mC$>0E|.u%O3Jŕ:`i^鈖/(֫FEO0~V`ϲ3ívIad=;׷fx/EfYojv41ڎ]ت lz`4vv"1nH/?Sd͛e$vQ^_Ւl̰Q)jfX?{INLP;jTT▜HR~_)@q5yZ#ρZs F1f8B fXX;*e0pgӓwωp\n_9=rǿ9ۮ: a.P>9dly5>h/wC25մwLenT]Ά0v@(qWubߓLM˜*6HVHBk%b^}r)`cwA9Cww oWX}[X?X6:fWx KëS %s@!v녖MOwG_g_v$?/֋ 0(_ 0: a.P>9/Ƈ gB9YӨzB X?Oz,{ 9PؐzjcwA9G B΁@ <][+xp$hr{3Fפ%G `S% -Mg/g9PT4@ \a.M(n:#;5=`X@ pyS"QmR:tO3 \?~hCZl6dta:jz\YOxÿR%-4s'aD%K___?yt,3$0'Nk2{yĢq!e#k+}t)ZPA9asƥ⒇klA0 C$C!b9 g5Y*c8+7o2C= @DM>d{V?=y`t't|CW fȋUk#Z>\/d_լh5fxϦFi/B!92mW!,*%9Uz`wj#Ӭ)M*iDIM/'J̩ulڧWfQ麽Eq9/֦4zQE|y/ڭ6Z{3':;is`8/Ÿ]Zc1:d,woۥLy- HLU"/cnr ]?KkHsClatB 7tbk3Dy3IS%qNTEs.&L 4<rhKWn-Zt>Ub)wK8wckRf֔nMC'vϘRǡ^A.3R _G5> aj 'H]:H_NG+a>Ch?ZWkyak+ڳkR%JnuG'T1;qZ V<3++v}i0yʟTvjuAEf[q/Zv!7Ijt5 z9kǎ8TT_{ulWj הn~s.ZKVksP.ن1^NKо˱v Y_|qn;Ż~_yɗhw-Hdj}ƖqɞzFP1CjH,|0/3tzƢu_ܨُDa{86Z̏2U(ؚJQFun~Ks6pL`qN !|+~d ǿtZ!QҮ)3l3t-kG3,'p97~0"$ᮆ1CDBۉ"mIyX')P=m/ZE_ȍS]qvTr5>j^3;{wߤV5~&vɪulW{і֔n^`-cBފc@ 6'[W{)ny`sCfII0@ yxz:~GѷkR?LhA|}Rsg2{/OgҤQ&M&FҒ6JP}5&`,ӛinQ@}P7k,˴YO<|2Of6}葽-Y-f is-sEˣL%!DքiXQEG<5Akb#ru'/X!pT 8)ʲSNJ.2aj`ۄnMD!vaY̕'LO%P@%A5!}ÜaQ MIuΈΜr3"Z=j9F<#u&Tk\1.i|eVґg>LmRbaihf>JǵOJvvLZnbDUףRtV\^zCmܝ#r ^-EbA'ŋz8ŏWaʕX<<g]*lug_:6ebu,./WcKQ)oM|B-ɀ6 ak#,IhM%<='BirhŘ=5q5Z C,5v"B΁dH8*fi`O,}vqHdZeʼn50o]}rl>J񡍶h,mn{Qzf6F\}l;60v@(qA(3d6d \ R={[F~/d}O\]-J!vM6kளH8_~ }bl֛60v@(qqaA?&U@616:a6RqqVo60v@(q'wq!q..9-,]}rX-"5jcN^@a.P>9@cwA9G `%MlbikR#Y 9BӣV *K .0v>J|Sf5)Dc Ŀϟ?Hvp`nZ a.>%Sw~%'dD'篯O'ߟV=ڛē47(excY?KdHf-Jytut($NO B aRBsEQ3`{ 5:bσͶ4cs^t|A,,H}rd;s~,UH4%Iz f(*'6~*f8=|kfaȨBol:wksM2&z۸r,3 *ñgip-Xo+4+ n"OReH ,擹`AX52-|]jH.k RrpfX̕k?ӭcu`bO<-Jca~'gbaqRp4`epR9uzr,9ʼUpf7QYcu`j(D}̐JRb."<3|BbH^)a_{e6{HR챂Iukya?sԞwdJ[?Z;P@ ^K*}%|/a1Lj~f(z4U!..<Ns\=lQ G.?Z;P@ :aLFNWc#9Q0qeKxn_ dUW9 궈qIJCҔ/&EP7$/hI1MbKKԹQŸ!)&Ud|w5!]V!}f'#5pdWES(1p|i Ђ&f#y [Jqr^gK'ppR}JL 騻㍬Ǚ(.If&3EH{ F1C'ʚ/JI[uQlҲzO& 6%c01C.tLDn֝E.ap/r%gՀoGZ[<5F%Im|8<8vp(xz T1NoZt0C` &Džx>kT!6E~H%Ηuf,%3<<{!"P4Х:S5п %t\dNDӛQXK5A7u-I3|XѥJYL ZqP1;/5|UtF1C ab8?,b-sLȠQ5a%}#fX/t5Zӷ\1w-NQ Z0qfXK$yei vTt1%h3tGY#P˟3Ģ ̼,GG}>WvPp;o.s'é'-gfN5Kn?53DqIgւΌ0>3vT!o k{Eќv?C]wᮆz.bxᲭ U lH2;q aNomcB9?ؖY- (C? k"%(:/53JkG4hI!M5wy n!^0ajsdvhߛj/a̰J]U|KlEqQH=pFyڥ:WFǠ$>0 X5%j9 v|ឺd d73D|DrFG$̰}o2䇼&3,>/ᢋ&vΙP6A3b%Yfx圄٩f< vu3TQ{tޱ7$̰6)_'̂}Zhac0JOv3|h| ׎tAZ;P@ ]-a޻jhAu}IݛgC1!l<$gx7 K0l,8 A߮SCf $o2GMfbqvVC! &|b'!yǰIIL!axKyBɟLV뒈%!_LG_<bu<<5~; E%C+ʢ'-~ 9әi@-3vͧǑH(NQ? u,U"#wPY2?40_/p]*g V:.Ao[2(F*0$[UUl9VcXwD',L$3Iitʈp^}g=P.Ȝ)bWZ'lU/ɼN;K䢞uɃku1ii Ў.pBy,R̆W[fXX,oQq+: 1vnIbzmN݀DM"&w|hTƨZ ΏIdm%ke7EmmaW ]JZ4p~ #jڳ| D !{\J3$! "?qt|No@7BTr& `Y1Q1}v]dύmai:Bw]}r9v(B7dt|N0v@(q >`~%'d|& ߓ S`CiL01vbH9iOG2t@ xGcHСDhن!b<3dM.qߓN(ً 92<*r@ Qlҹ :(l;i5BN_N8W9 KѺ"w39H sḬQ%^Q\gE9צvvrzEk%DJ9'R~f0n p8NhޞI&=R%b.̐R'%n̰#A֬v|TROE֨\"s}ה%Rr{$>?VT+ݵ8w R%Bp,X|$P䰸 )E f`7f2.PuXLLgǹ]w%)5POG3;*x_c73|Il[;gcOHl>j f=3d"z`-`š,?<ędA;rܗO(]gѿ5vS0*Qz$z3?Bfmyd'SF-> [.v5НEMR ?d=hIJ9`}m?ӤQC3(!nPԒA&+Ymr'|sX,c)b8) |F*f\LTľ`kyB52CZ~;QPr-I."@-4uzO^U:6SkCu,ۗdؒv mzK׮m!DaŨJY۔dؒ78P;F֎ZDWX+lzmtp)?a2UΔ5!D!.rɖꋐ-\YwlH½SIؕP9eE)%c9s뙡xNmafjM%z˟DNy5_/$9Q~J^)fMx+_EcT:|,~78 ̐h-p9L2UMӒhީfRu0|-^\Wشd8Xd-)pNڄaeni"I*1R4g{Gů]ze3t$xs$6gBQC,`oӮ.R%J4؝k#b]K-Np4U CLl dT1=7tz̷;3NÉ>+F*8 -aT f j-0?60C;dB3\JuOv-A㜡=\7!\u.]i Ů.Y֬q^Cm‰32C)nrmLjU s2Ö5 }vlgM0;iN] ֶ3ќv?Ca@slpWå2C磒SHĉeͶ;[㘧иSx 3\7y`qQMrR a㍣zT7Catt#s1U|ٶ B7& XKb5X3\fX)3xI {u[SKGggor⨖ ֙B".}3ⓠT}nCәQ a9mPr+-)=QgZ$O 檘Ֆ=;̝ N:tQg ;{78P&ۆSlk̓$C؁2^ U;}C2[iv:aqm2kL!&^`YE \JO ɭ|}q|&=IK-bK侃R\OSؒ2^|st7[f4CՎ%OgzĬn2KpFnf8S1MC@S yme S_pX Ny;+VrNBnT:aM2G\W!ZN.^Zgn[8Yb-ԋ$ts򤝽apz)8G.+^7-feNHmDQ*̰8Wu;ڜ5p "qNӖ9&܃FZDoʖ*_&>0sH#b!` 8] :'pFjQXt%F#"{~n)^:B[4xyGί`ޝQ<ӷGwX8H$Tb`'BWd#b4$NlI$+跱9|"j_J+$t8n p V2J!(0.38w72߭娰,]}r2c|-vW<{ۏtT:>vC%5?d#֛oVxof[18·H6}s>NggF B΁b_kWbu"?rt5w%slMwI4BajoJZ<)ȿ78]}rچ<AʝɃo ΀0v@(q;E@`SB #J!@ \a._Cׯ_+Fc TDdȆwdV *K .0v>J|Sf5)Dc>Gv?@A Oг/-r<<}}|B~P|f4SaQ,Ai2gk{B;eilE]@0I@IϏB*&x6f7J8V+7O i~pX߳>[_k"tjĿ;*o>N-s[y ك___Rә^Nη s^DEUu=.ɿJqkP23𘲙,2CBN%%gDD*Wa})R%4C0@ZF"QHر)S%N~1q Zm"F='3~T"%Qݼp%ңQ?_~@&'QzLo }] F>ѦMg9R⥐v%͂uYJóTYH1z:r;I,4I"$Qxd2rl*ծԒ)%A{g8b733懾Z/~fu&C0F,UbdWX|ú8v`v|헦IYfKycSlOd :.(G;^ۮU 0Vb>C`zsv":qJG:0ȱ 7Bc)f-1[9C'{J>`i>y+۾"j[>M!(~wfs`/-. bg$^9 Sp t0bWq7sg3,HrjT&TY6Y< Z:E?H>g[YEsZH^jU'9a7fO@V^59@[p^̰C/}{aEqnq .3h$͒ڋG:[ȿT5Ġ-Dh*2Qpq],RyؒXlef>"$֋o 22s`R/k/΢}C26AT,L1U&_Ln|mD%JgH9Z3enI_;仹Rrbfً՝E#1C_#wk$)i6MIZ/o}3y0X![y> j(E}Eoΐ0φN~~/FvH`hf|Be7y>_eX|^Lhy21vN -EN"]X|bG<5ʧXMMO+Ik+hQކ'Z&JIG#weZDQˏ1@#ImMhھ18[[u}+UgXˋ҆5fC" &d,eb(@)ˈAe1' +ڥB6y.sZ:5$&sY'*'vza}"]T%X,r(ŨI")G@ G BoLu&MNt:>ѦwGezΛt]O!/yA[]؆8?VkU%/]R6$ q O[縶58 endstream endobj 220 0 obj 68708 endobj 222 0 obj << /Length 223 0 R /Filter /FlateDecode >> stream xVn0 }79 n( K-JhgI uH_0>P!:/? V#{/m6];N?;8=VDߡNQCpM!J}z޴XI@ne!&`AWQk"N IE^& P<.$E.:m!c+KѮ0//~IC挙jċΪt޷4|5>X.LOD1޾C/iggI_j 4 KQI]]Wa7yXqIxn1pԴ=9Qą]a35K/b{MNBJp=MJ̇e2KVYP:6W΢[t em\n<EJ G. ׫dRY٬ eE%+ km.ufANCø䭊4@=Ż㑞" Fgu9tr}sbY4l A ]|fRCf Lɓ6qVYmEP53@x2ъbohO&z9^9endstream endobj 223 0 obj 642 endobj 224 0 obj << /Type /XObject /Subtype /Image /Width 991 /Height 248 /BitsPerComponent 8 /Length 225 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream x]q< U[cH i|r9w_sև7HvGG9H$D"H$D"H$ƔH$D"H$$N ^ 1H='D"D"H\IΏBj{ RωD"H$.~r߿߿vwB?υmCϫxegM0G7$ i o%D"L$___?~!H t\owDf~=@ #__C aɌ? ͊p0l~'7SJ$DI s^W|uGРE gƮ^HzWЋKe+Kw8栭%9O$D =I@]tɷOL.ҽհ9E 3ŒVSmD"H$^=KiYc<9%i9a*zjoŶ&Q䜕ݣk"H$ONr>Vb_%nYjlEvtu3|z8Ƚnc)M[.$zԲ90<~9@tjf/x0'-TKrp"n ޾ H6D"H$A\ [QH0gP1bw'x)|wV'mWי_ɗ?)r5sn6E394ld$I) \D]I_4Ii\]w[~k9Hۚ&mD"H<6$26^V+=k"a>n)= nAz0[h~ )sR234R36_nuL)%t[zy`kUw ZY@D"H\S9xZ?{&^ےs ;xA69oC6u+jk~l"_%sά' r ?JQ1s% R-f$D"xAL<u8@8oL\d1@9ӧ [QU|,W<{4Rv%SV~4I,3AU]$=<y; ZMD"H$rqrޥ w%IΥo9OUp_zC(Щy^qcݷ!Lu6Ʈwk9\kh uK7nNveѬ0PY̝e^4F ށtxg؆ 4xܼss;RBfcPY䣞" >Vlb*>Z*BdNN<8,,ɰVT\He/&Q ǥ=m IΧLT[O$D Cߏ/> J:qW.d[9^Zz9?X.ǭbX7ȓ Oy+ Z=+( [:pj}Ĥ۬q)K74T\nkV)j ?H$c y?|GOږXD%4d{xN$D8vC+#=D"H$Bs"H$ !QHmA9H$ą( H$DBPC!y9u !/}vs*f+K$^ IΏBA>ϟ??$iQF߿_7'~ be?-e}&l#A&U-E-=4JlԂ'$GM B DtA{b{ﳑsC/ Wc9wj$͟ m!Hz^k64yd1KQynPW5r&M(4hDPq%9DhH#lGG;aƄO<9ܤD6X$@3ž 6=+fI<괩]:MAz9D?m>9"CI q$9p6?i.`˗}Zbiom<<%؛(Qd^D"я$GaKzsH s+bܧ knz$9)m6Z[m,У,}S$utc?9KX+g"DF:hk'$|DIΏB[io9 OSPpo13HrbW<@αϥ+cЩ罋Y/h9S g"A39BC,3;옧I=ԇR +&6Je[F.A@uTy')(K-ÃNhvg߀XPi2A"9qM̌336NbS$'jNп=tAO䳜.a~Bޣ@U/|#EZx4 =7JXt깡f0-uS g"A39gfrvx"rs'mxjmC( QvL MTA6l𗄊(8VOɀB^0A,ƣG.*[Y\T1[F{*ȠYΖT_AUK kvk0'0?X*b֋_'}J3|B"Qb_b빡< g"A39"|7(9{T;x o~ o%<+;4^P (S îrchp9VE&A X{RO!%ve ]m`eJzU%wMxeGŲRuK 50CSo$6ds"&c|DU "]k HoM g"M1ɿ*;>na o|lGg;Hu.4/>mN٩6rnc-X9i+~eJARS! 5} &C4WWM-tv +Mg>voxpr=*VfFǏI'ttFU;9fPq2;>ӃXo9kS|KĀ;uA՝Xl.J륯(ko67` ૗:U9jsNMa=*VfZSD0 !8"$e #u=Od4;a!Hr>ΑVz SK +7? %ֆJ6tʥt\xCH}r`⿉oq#ukѰAD"у1rK .qa|y}yi=O&y8xSSy _Qko~4h 1lB_:wZ0rԃRT$c=7 Ja`~t9DƐs,[b@MHx0>Lbï ig6w"C9:c;g/N|1 Xs^W&/bl֮l3UsYzNc9|@@*0yE%se1͠t:RX}`WGDr?` IK`rfcS`xYe@'\}t8󝛐sl-hbD;ܤ.Q]tBRqiJam%wqP%W25ui5, :p<=PqM~=D]oxĶZ9D99z1#@#%Wz4ُ!/<-ߠ^aُE9ɡE_}En(x{  Ms<{6+}'Z,JHǡH+026y^{RA@CH6@~D6P5m[毴ւZ I?gt:W`ZmAkL$=h&|,/避UϏ~i&tq(4,v`EAi6 C U4F`noAN`Rq%V4]bbn p{*/rX̋W/=.oԅ$HM@ީ"œ-jO *(pB(Acj^j<޼Z`|@\/GOE#d]Mm1Aq"^ j\:9Z.[DD<щ{u>L]2uʮ{TZt9(f}Ff@Y\H$O$G!=/$#aw[dI (ж߼kG1oCb.ŐbXJ|I"8?_sܚ% &5vz;EC@+O$ύ$G!=/熭dSyJ6m%js%Р砘bi D≑(l|`;* J\7J6EV&99.fl?ׯ_4i( 8h0>I3d*ka h">>.1A&!Iԣq'ujР#Qh6NC뷷_wHhi}HNM߿_W$#{Yf'n;6 IsEzgC.tz)yB؆$GM B=Z8W_6uI9p|~~CNNΩG%itc{'q3 <.9GJ+'<9'a/kI|WDfORssԠO'& T0Qp+"uغ9=MpKI!]'*ᡲw> '^W'ĢkXttsjxUJXopf>% 99g #~(5Lkywڢncᯅ,ؕC]eó[us(;rTW'%< '^ W'9 "4x.wAdBbuYJ|?Q+X{9^QTmfu||9 :K!Qh6wVXFvϟmU6u/&9ICL Jԫ9|$+~{y `{=h8%e46x)4sGPT7Ϗhbv'~ۤw )O8zN^ۼzIt'{ZbRà 9˟FIUr]* @&HD_ T-J@ֻЄ d%5O|' v]hY""3_$P:"/Gu@'m/_z|iog="܊0*yҦWؐ+d!}*:QLā\dA 0 um8hF39aZ%$[6`.N|60;V;mA6C!N m# Qj zm@]?`6jBx9Rډ,$"tk/*[d -NH[F{*g9[S}QX h`d] b[p>!qh- k*ĥkP)+1TXSsW ~*>&Dp¬ڿTl8A390Q#m`&/=N`١JqRq>- +i }] bia E &E&A"9SpY"msQ+d^,UFej*8Ò&q|S^{p /ZI%KbCf;'l=[g@0 L$]hE}*Wb9P &I\vw7(+/_.n~]*y/<$^ \ ml[f&_zzx;P*Ǘ; +RuXDL V.6n߾fa>=V+ۼ s9kKt6b *y;%[ég0nOK5zI9iR.] ^5rUӶ+;iE8$X@G:b'qya4@V.5C@i FsOhZ؄K} bĴbW vDٮB_XoV~#;b{`1#YzOw^XY݉HUpz+Jڛ $(.X&pɹa88GBcмWo"oz Qqa'qQ%yܟ! %?09MrHv#%mMG",Ym?qnP9/uԓ/,Yẍ0ː?z~IbIg3;1ng0_ͶR{,ɴ6\WO7n9IxCH}r_ tpQq{9W^ȾPoltvHaT2D+ړzVϏ;j]r-ఏ=cV.P_i\ I?W4`.Qr%h<4l\6$,*\%jŠ#搜džt?ĆNlBGTd4t KIE@.d٣ȇ ~6ې=xyl/فn7k F'P^xR\>#;oԽ#w뚯!x8] k.896!J*H9&0` ˗v ߣ졵5YNW@MK! F cÉDzsp 1؉촨8jZ`Br6WDRÓ/c6rr~ g\ņ $G!6/m=fA I$ZADMZLK0=!.%+"gc"&'tsʍ@)ȇѩ"6HX$9? 1xY=7le}pp)[?NZD/*do͹""b=R]J<ر ߣszѩp"aL4yb,is wq&+\n p?nmEz@ʬq"l*xOZSf< '^\3̡E i<@B)#尪"CM چΰD3RczN_w-2"g3* xbov$X[#QHmA9H$ą( H$DBHr~6B+q`)\SU'D"]-x!Qks'D"x$9? j8A0.?y"H$A󣰫P'_4eD'1|||Tf )3se?qz38JHsM$b$9? !Ԝ^2pgXϝsnu8ʕXrcDHyy qk!^:j4(Sf0^ͧ\i"6m#(ĸB󄵐 pz|~~c@r6y@'iaqРOpJ`ѐ;a5h0zx=-\I>DIV>:vn!ړAۤXPqbz@Ω FB$\:FIJP)o36rɧY"u%9K(rn:r&7f:VeWUjgݧaf0LA%X |J2[TY(sj@OB〇RGZ%6_ =f0@q%X xk1iCCα(M@Σ'o=u+f?+؍ `݋cDg/59Z = |'!]rEQ_o{!ĭf|%3נkt8z9&h顕ehகWQtNT(FYurPyɘ(4נg|kzdȷɜ#*7v?!KVץDfDBNu4Ĺ9#"iTJ{BYPp*19lI[V)%$lnFTjWֺ|͠AV:*q+``*k]5`H[n7جgKD ,vz @UVJ/b7%`4ykc Rv5l*6<^8.h4qWFXRS️EZ2Z:W.-بRokJ7X)tZ$CΕ\jk,^ -͠Dv {V~#y8N))r62@`ɇ0xs=9/^/ɣ|&bTM26|8^;zzTH}Wߘ:t 5WZ= =򤥹 ÛOҘ:9os~xncĜp:(|4Βcp\Nr.Ċ]9pOc)BC}``)B llx!9Gd\Q ;Ql Pi,XbJ"ᢇˈ8eB9wn]R)G\EΑ-xe'_zz~mi,XD W\1Rne ]j4 cb;ÂgJ 8Z7(ސ&# fЦJ+ *JyҌ4WHB dL {^ 7n공v;^{6s+NcZ!hsdujq݀`N~r\yFq%ޢ#ȷa'a)7+4N+E:G17QZ(,4$9"NEJˌVLέ+ ])kPbd\*a9<ʲ9Go粌.y+%Zq ӿOXK'n/JNηVjfkT\Ȣfo2O\`T8|>a y_C "(*|i>"4 JۨɐJ97W \ٕVTbΏDuWq4J#cZ$#/N^Hy6rҿy /1O jTmVHN9y >GL*93HWͦQV %4ab1îmy Tv|*7`5o;ǼP [βUBi /mU5Ȑ܀t,/FEK9$f`wVxEQsk%lGj;D|s g jU3u8uW]$?oiQ /8n#\ hdU#'vf\u'ؠ+@ ݌7;os,Cv6763@s= Vziok"Gy!rֻ ~q>iމ m8&_K;r- ЃZksS%^iD GQ]tO yw굍%HzD[k Cl V4DIΏBj{ Rω8*o$VT êJ4\E$9? 1H='"싯;:o{z-U(=TV 5( H$DBHr~RczN$D"q!$9? {k ~yݮ{f"U'D"]K{{?ǩ8Y/y"H$A󣰫W]4\ē߿5fI.WA|M%鳔Ӄ4H$#(4ka!?x$-ph7+'! R2:;m$Cyvql8j?DUI?JD"$GM B6D8: W_wl"w.h' W'Cyq 5V/i'8%N}ӯAk @>Y kϗY߽;ia vfrN\& N1>ddA{]UqO-`U군zh A_qZH$ C9bvCW} _}sNp~+'Hyyg !+K)=ጘ۩]Q}4!]sOsZE"HXRC'} kG_WJ|sL2K@B_>|v$w?qkܺwd停0HZˋ_K}BsZE"HXo8>9$zhbxH=yV% pN=oxrf@Q3~18s d4%Vk¿ 'iD"a|h C"xCQC9 HXֽL|$'h_ȭa}k!,%~BH$ =\}Ž?V_1pZtvoOАǹ>@耷1l@H{qB ''ZJkpQ/#DN !A3>dRuF\n LZCTyӄUc/Jd]:Vi}+VRWx RsIݛ& I+*;i 5zUH'U.r 0T*letMt\Qkvtv>%n&D z9񀅝ParoC!`G[M8KL8B0n=;h) $``jx/~H|GSv6yk~;p1Ul3HVIY"T*RN7+(j,rQkC"2P5bGE(EP5804v YW 5}_ 880oh{阄tS:vɥ@IIUCֿ7orpD~fU^9!b ;nԘ|OI h2H!Q+lTsN)x=VǚH{vÃ#Ev =?8s%9Kܼj Z:,uMF7WUVP5UaUP_ʕ,/zU)'Q$V!X 8\faX5EeMqhh\̒dkoIJ)(y" 6$祡ݩuۘsո:RDu |z)h<ӂw6/daA5WX[nJ i!wUvs= inCpMݽhgjRjt\LDNԗU5֕`2𲋼9!Ka `+wJ(үxvPzCD"qlHK;tJ);9BU%r~4@_ 0hM45jMбN:XCW> ?,^D"qu s.龺j'%c޾_c"]LJǜeNw?[݋GT{\wnw˗uDN9n P\]łKvloiw'RkWKMx ƪ(Q:yKޒ$D*@ݘsv0ek".sMsPK߲HcBjPe*_2?~ܪKf0?vҮ|䄌[D%ak/H^:(תU59 ABZ><(y" zȹs.wJ#dfPj0)bN2=*Fn" 79˲.J_0sG.yW+ !?(ܣmD( mr2ZY%t@frts4)2r!z{'㶔jF!y}QW4)Gۊpז3c BEK*EtrצFc B{͢Q(V< :\qFd,Cޣ8,⃍㨽ޝizkx4\eWH$$G!=p\N1 Ӏ : &2`]A" {H4~8Et qrW}E5:=ɢߞ]A" { 6mQv2F+ߏԯ'AgCFz# U( 8CVAjUvt $̑h#H$#QHmA9qBԐ;sfT*!wC$gBs"H$ !QHmA9H$ą(_~q߿D{U'D"=}厏+?l>THN$D"q!$9? {k9[b('GK?I š3ke>oMʠR2尉=&IΏBqv:0_w߲:y)I"m!7e 6Xd?!-|']_s㈨4ě+ϛyT^t9qh6<]PD}5NW8(sNr u}~~cu,N?PQpPaFGv%@"aaXČͪU  =iCm*f}5'_~4h zPuKAAQCrUω*9p89GE_.oWu º{]j`s%DE.5l^"'oVcʻ-ěv2ؽ"5g*b^&sI.LmGmAx%9C*%WrN' XuTo>9wOD{f~Ssy7Dx;ӘSn"8!9ߐ?9^$ֺ,b ujoXNUy~>p`c7S>9j4AuݒsiEu;=NܬHɥ=у}tܝ S1h#~_lDQOaw{13Bdm("3.b *mV,[Sr:y0ti@o˙n"!C>J'Ü u\DfPo#oSPIt7߮P_ǹ>@P1l@C /ձҬ;"-\[oa^GSS J z{ԽҰAM RJ Xv 7`*4n f0Tť[A ^f#TU+Ă>MqwVq~Pnte9܋S.NP(ұ1r9h {KdXC%6,K:˻h\jSC|7٘ >@vhvMnrǠsn"Qr&}Etְ82(&R㷡}N&ӓM= zcNlQ6t[}ޠVC<ߑ\[,zQXBxmz<5?bH鿒E ;ZqQNY)'AWT(*EAyk(_"h[ܢ𨔞{ѭ9ۋ*#{'a@"kEsy n@4ɱ;ŋ0y6]%݂%rŦoHrzȹ|aښK˸Gb`,;=$gVc1^%]ɧ6CòJ4k`!} Ge%y2Mpxc|g7. YH#'ĵlB~JoYk-' Q*o㗠QROKL, J\;ؕ}t -F8<5 c9*$RQI9g)o&fsK2@0~I Ǧ On"q8yVJb 9pYd}`)R":z<[ S.:7^w@'w6/daW7jZma~0*T|Xu=+!IsaJ95h QFK@(N+.Q̬ ȡ,h/f9_,k>.NݾV( FLRʗW2c`q1lg1Db-6$A|>*oqn$G'ǫW2 ^*a6hx͠"uv;j#@bA`=E؜#2ʚ{?rX# lf-9Wk7|MZ!9_oYԸ{]]ʻCMfuvWIQj2tWa8JE$懷_*c Ȯbէ`D"}&FC)m;5\ac+vr"OĬxԵX!S8E"> iPflnըY6FgeWKwY8ߝO{` yB,q%V6W\\y=GqJm KtwXʷ盈w,9_ksa{PL|M$0-Yً2:;Se5yδ6r`h=Zս8yVD7A=d&TߵN]C09)Ɠǥ+jKͯm[9*}K_Tc 0_Wgug5@˭o<6=*vW:Px6IBҼl3#V|˻ʗ/wvx \c֘gT܀t䦛H4`9G(Ly!~\vtS".1 MsF]o~BZ1Qe*[1?{U`~;]!ZiԴ&] v= dD=oXTH ۺG]1נ'Fؕ}};qVl_0J>fRfP.ѕNH ߆е<{+90]5- =Hi9Fnt-ZKeKfk9#OXSo kzcMY+ )ziV#,YŇL~rp}hhY*c0R^a ,*$j>lN5j[~ߙ2CJh/;d t@#g8dS^:J:ś~ 왊1n/l9덾o>iPApOCdhS)9lm2Z,B`@oB>$=Mh l*xtn#R[9VHz `-=yιoŢW&,7+O2RV +GV:?%{[sRKJw7+ty68WK% 8& !P AM Wi΄ N-ٰSX8G1}[ U k'앝N K$?Mø ]1|潊{?5)b2GpKpf |3gMJR|P:: ܠo@IPXB!ﰫ.JuNIW0g)ѹw$/=xv'r x\6zkOwr~׿)\417A19k:" Xi=&kC=HmAmŖ(˝Yݾ Ap`},GĻG<:۞= ͦ򂦛H0(=gnV 6S_#Y.xxzLL7`$9? 1H='- Tͪ2pB!(/"jܟx9ⵛ6葆⇣T^t QHmA9q-aTE[zOެ!%uqyK1~&Nvyo%|CquT^t QHmA9q-aDm H9;ʛ")V8*oWmI>:MM7j8D>uV\"H l(NXLNhNՃz>??/-M7Hr~RczN$;ai*xAM8D"H\IΏBj{ RωD"H$.$Gaom#!ϟ?o[pɁS{-ӪD"H\IΏ®V[] \=9]!:H$ą(;8NrGIׁJq$. Aůmn A9sOgV [$NDЬm%Ί }?0#iQF-P0.Go?mA#1`0G˒8#-j^2c HZ*:u'LF7i/o^]V^yJr~ڴ0&+&QhBvaO>c NˑY=4<Q2L_7pˤB5p=h䁇='9G $ =ho,dQsݳ)v*Nizs_+CQl K#oVCpv9Vנᵛ, lƪєg 98I$r҈Nuf]K9:vRԩH`$9"[kxP:.mM#>9Qc ݒI%2,9c'~9a6.Ccvh #&#Z-07-פ.7"{bst6S'63UKbj\бyNȽN4x!$ݝ*_ b! ׊4u;ILpX_ yZ^zS=ô,=-0fikMb)҃LS*m{2A$C1-- -rs̢ED@NNlZ~U@;C݀``SXEM`t=\jS2G6s"9G t)hȨ;pͧq)@r8fdB=c4AժPrhX22G}d)Ơa+#¤ Ju)*ɹœ1(|L&N8H÷n1D- 11]x*T/FpoQ[*{I9܇^ ^?p&E1bu@A=T,+flX%S6>+l[GT +P/٨¤z],ό<a`=i׋(J|$62h*7%ɢk&)%pX]=# {gt؀aUŔԣ5o(A!cqwG ׼!P¢j$]Xr+'/OQIߕy2燑+--?Վ92}bpINٜ/iFi:/Ī$O}1MRfstō(,]jP^| 7(*#C Ary(A^ d@TV79BZE{w\DDa`474,) ݝ\HIjwT=󼵶!죫D#K9/:glWpL+)TUc?>Rӎ͕ Ī/] zW5M9STMVL:g.˂YnPʮ3T`V9نNò$bZv$^z t3#3ۨKfRgH^|Jum4>%S#wJ-5E>Z42Jilb+N/ N_ss1-z`PL|850#!IIRxiĉ@WÆ!ĝ]XB+~x7U] 8lXc0z?8I;3C9(q "\'*! ϭ`L*dS @vmOw)|8s’@8yn?F,R$GԯCL󆢑֔+I,|'Ǯ90MZzk;I2+ۿ%sX1Yzm(9:m AkEZxEW |xlbojzsq,IN:V{b#N^ѰΕy{ iɬeGjctr2WzK>h{!e6*Ƣj{m%br?m" Պeqjm 9(Z u"9ao}ѰL@3ܚF;upJ)(@r=Pce@kb>r^?h p"-m[iE5I#R습Mo.2DJV?Tԁ;S9K-l "5KLق/rt5h#.0۽ @}yIc½~t#)J7U1H UVvU yV4%#s1`i+rn9J PJú T 5[w4aQFm@<6sgL^)={̿ҞI-~t&&l[JB%+mݻ{cmӛV]XhS+>)*ɹq0%+ jZVlqzJbI6ۮݡtF1Qe*0?{`ն#fɘq;<j?Em]S79VmM+6Jۆ1ɚZd_WxڨFpd.IbN c7e ;It,V{.wͪ86TحiÓ71f|T~-"-KB~* nuT,O]f>߻gc{v%1 (|g,ϪcPJ'0YZ*]-QkDv .ǒA]%s?w<=| 5(r^Zػ{cmӛM+sTyOE%9?д툆UWq9u\vDHL޲ bl> L%lep`*խMwpd=(TbD X_T/Y^!6cŧpuWzϐD e噽4%[jEBT$t-[wj``a}ʢRdw1Z=yY;]|yu|W]һMK`DWP%B+8RP~ɹ #qM 93ҳ\0tޥ Mo6 mL STsw%qwFΊ)LosGE؈bJߕ'͏}xX;Cjm <ӓ=h ohj˂S]0Ss`x4*Xe)ءגV!p h;T i{lD']8t1P3 FAX`m8w?X.\\B|}=А7DIa@qMX 2#eKWqka `́U`2wdJT 9ҳ\q.izXh2SԱXL}<ь3PWnZ|K7ΡA|aS99nI8>#>"gRF^yNr~RczN Gc,yMRIG\8-HrCMS19/ gqf h6wsl*p)2a.'&85qšNsEkW+s^>iي#O+ c{(ꕇ$G!= ᆵ̏[Hv99_wO AJg{V\V*V +wГ/텑ɹ*@R&;#[T~8!z|E( 8'p8l-9S<>s %Q1 P+uȌ7Vn^đ,x|R'{le+ꕇ$G!=DB5L@ZXOc)Ts03>??c;roX3Cl( H$6Q_wluQdkm6)+  D"H\IΏBj{ RωD"H$.$Gaq߰m4D"H$B0Lz9r4^8y"H$A0F___X$9O$^߿_~Sw4lC(rChszېA3\]"+L O`NO83oQWyN.* `ʶ;b8+<ϟ?$I"ȼ߿ӿ#gsĀ-K`Lj?!9pU*k4u8^it RTj 2;zl[I/6m Np2Azn~!)8 W'#8$z-h8Z7R p\N c~#5p| ~58p#`F|.G/ @C)j*Lh+p-sڣ䜽Hӭl \Ttݒs-$tEr#$;Qۜly𔺫Q m(+sFma^tNrȰaB]؏cў'9-%`{l RTH9сTb~rNx>iUn7gAt&$]aNBaIk[I6jѲ!m¨y=|+0h=Eӯ⧓4=1Ң.gN{t 5أK'nKyH\[:w}l5:92b}*9pr&V|y^qML;iKsՙ+ó#~Gx'THtV09ԁ`Nr>n\:صsp; Ŝv"7_bqf_Nr. kڶ5pr`n.=0hh؛ެ&tP;$x33ڠ6Y`Yt]#"Yi{Tw_$zl3hj6LJǖ%{03xzaۈT!mIю%2\X?sn/1B$1BmV /7P u1̢.gN;u ة$63;݄dyZ tj$C)1[i -j kv|?Q/W6eA0- ycYZ bIta, 腮y[%0[&^Es+\j)4?vswشғn7ּ!6,4VQQ(B1 !!!*׆3e.Z;Ƭ=Zz^#:zc4dTڌy./nϭq@r8fdBJDT)amEت"bZf)W5գi[w 󣯃=XN}9lŠlپJm9BA1f;xpxL x* (֬2mU5Jo)E;=N|T(4נgPU"F%ߪTGBJkkV#,Q%UB/*ɀɗlXWR,],(1Y0€^Pk`EP{NQ"F.]eT:/D$cX xњ{.GAXt'1^jX=/qkJ!cE9z߶"b+"&P.z̊p9mM: {ܩ"*$ÜxƨTaDLΑyODŽ(R*YLx&ն]shrG3H!AzؾQtw9f[{[g L"7 `)ܠx,o(v Lu2ȋ hf9GQz椮%;Mj^MZ4@).&*\%SSO$zTHt`[u]\_R9/:glWQ L+cBTU?{%{m+bK_8Ϥ9zfN5y __N]q2x뜡"(珵R29%Vo#|rWIglgR?o2νIĴ` _ht3}k +˸\:Cw2J=5^%J! +'j$)Ԭ%;o{i/ *h}dUTrRuv=ֵ=G,kh8C Iʳ˕$ @^qbШcbmEDžIniSPֶ.b)!96@U\}ޭ"Xqް*D!=д8I;3'5V-7"7p h=s+?X= A'|ܫ<0ES]| _)Ά\$z<>m#c,R$=|~8j 0zF:ߕ$cB-j=R}u lnMAt3 Q,rd8"cp #xPM*k6Cq}Mg0~lҁϤW]mTf<уbq'hX@J΋_dr,yZhNcfTzK9,c3^AJJwWj{m%br?m":R Պeqj^m=9.B 0@) D'0mo}Ѱ9}ܚ(T/:730+( AYW`5S" NᲓF^*V aQfLߗ$`Nت.6xn6㩏UK6{)%jfUN37@ȹKݡv^s^-9{Gd#SJ7U1H UVvU yV4%#Vy1`7c)wj`U*:_䞭,ζٺk W}t6r>m`ɞsp-YLZbָ%5Tۤ#sNfk(GDs7 ?aq;7Guppq0\UہIvq%cL^@HH3o8M*c!(d@ne9\E:9: 5Sl0 ~fʢY읔$5`U| G`}t[glhJ%{[Ʃ3jprR翾ΐm +\^*&rRW]?̜kztc"N\S79/كjh,jܶ!t~DJHri.joJo"kfrnS|ݔ5wMwV`BgC~GPa = '/u^TxlJ*F$)/ʀqG^GoQˢH7Tͪf}?0gWrX^Uo,|gCx:L'J˱>gT4 \[B*$\>vw btKaOL nWUBɽV*EOEȧFx4T],ɜFAT"P;U `rvUWq9 ʇu\*')ݛW[V_ųnoOҰFΡD xS%+ǬvHJцGTG"` y˗,>TT;r=5%.U(+_wbĢ v04TK,z5ٜ%`yweVl0K̸'^^Y4{j :(hE{=w9GDݞ|39BA^5 K$'Crne``"0 (3 k\qlz *nl|-j=s` n{GhԾRSI'b}Ew."19<å6Üƶ\ܩ"f @ dI0fj0ڗ,n}A|ڍQ1)͜U7$cR`tyWO)@/f+ɜΉvGu'9RczN p G,yMX hcDqZ<&1$gV=*ɘ+ms)3s8)dNDO;ݣ_1H='gs_n@OL[jT4֒m-Q0t ^i*]bDeR,Z}T_?ƃ tZtͫ;spZ3pNrޟ`>hj'VR8E ׾f~ZB ww[)HC)yP_StZtͫ;s{9ǟ#v*'N 7DPRxi%~[;wŪR -><4/"tfwVw!=DBPL 6 D$m> stream xVۊ0}P.3 K!Ki߶ }߯lk$[cIB},93#Kk &6/Ȇ7xzǪtG{4;Ķ~+ܝ5g]=wp촊CTuL2#h hQt:ba}Or' YxZyH7"XUԺv()oҴnC1 Bt,@X2uJ[Cj3KhWe rP ULFSlfZM.;O~}'ؖ[f;/_y Yio"X{gK֟{ … sS `:6l.Qpbêi]\$΁JH֥V.xY̋51 ?+gΆsT⛜(1(KI擄[a\\v65rvA{d9+-]'o׫\%eYYǺZws56[Qް?m-Oyx59A9+]oR b ~Jbp;*~wq*%:!AVͯvS;|b =:]LU3刧PNLu28N@ >MBƊ>]2ASڟ$}x6HKendstream endobj 228 0 obj 657 endobj 229 0 obj << /Type /XObject /Subtype /Image /Width 798 /Height 335 /BitsPerComponent 8 /Length 230 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream x]ˑ: tZx1l F& `s\rQ@XF\D"H$0%ē#,H9TH$TVDH*K$Gbe߿?zR ;=?}~~G[H$Z߿Z@̶dC!X֏￷7$~_ȾH$G+w}o_?!%J)(=;Dz~ΨS7ȪM$b!kvuX` !scA?+L|FX׀TVċc=eE^gTV,GB4۾oD"`Ue sTV(+38dqO{DpeE_xlJ$g7o%{j3PLeH2++y#U"1='-?8^3Ya( DTzUs8 FRbk/74ɺSJ$cة6gl bivSg*H^,櫦x C PG "ua,iK|9u^ ^+T|WO3ef[d ).=ʘġ0DY萚j z΁p~z? 1rxODXOYjR)HW(oӲ=D~<|7^?P9Sg86Fs1?X霼R;^\eT{._xJ#u{ʅt)ȭJ$۠o^? ^Y@pTI1}bJ>11a;q_?I;3D!f>{XlOes=H MZH$ B!U" 6ww7eD)!RY%`~|`=H$!%?ٞH$VJ~vJ$k cO"XVH$΁D"qJ$@RY"8RY%s ,H9TH$K"H$Db(wD"ыD"qJ$@RY"8RY%s ,Hcc2D≐T۳١ԚTV ?|6b "߿oh",H*[PHjMEQя:2h8_w,x JH$,ZUfoooL5KLm`\$&UY6euO3(6×p_2#vѮ\$&Fan\/MDBR.~>??)b1i&cF"q2,#,Nzkg3Д$C#mZsԚ(x[vL1k9/J^OGYwgTVI!Hex=HwʳDdHe,Z#У /\(BUELm'IFɼD4QV[Y04a32BAs,aNY\\eEҕk P(H\ HjMt-!Чdkb(syQmuRT]:b>Nvy|~W;x@a"")-6kJfSa2b*`ɒH0zՖl')fҒ;0g"l&ٗg)+E nͳT&<,*O?I~(+, Uۉj wA3{ٗ٪M ZXjZJ'.U2A{Aڅ"lfsk"!݇ҏX^$i<e>aeI))Ky$q z8XQy{eU[->WJ7#"B <</fO$$z.l6,fJ-;1=⥷8i4QA:HjMtGYvYxZLSb "d(3Cځ-''SDeѣf`q6+FPkεtRE(w D$AYJ IN WVʪiѩIY-$iħ[լdlDZ tjH0+l6XZUo},(7b; ,j[ ԚpeXM!PqR١jwfJH=|RH(U1Ծᬟ[.L~E4` WVkl8*V6!^z ܂'4xjV`Rk=J'jП I99(G؏Ra%#k?W}W@څf٬UYͲYҋXu)}d\D5p+05яeeXg,Z9}S"I֊wj.Ver7&C>H =j6 Y}%^zpJt8kw ![I!QV9mB`: r3hE!\K_ĭO0*6順~YyT'%${7ũB^ T6NDѣvaHY6~o6>5f+~  P26I-C!LIQXnW..PTA8xsLn!LR3,ӭ`(#0y-hIl iMs&ej_6Lyt9(~͂ \^ !W&0Eœ@,SV/e@,%/dQw cȭXZ47ގǎr.x$-C LjME*D"q$m]I ޾x+0TVDH*++:Uw+m*HIe[x'q@Y]4gݑ*HIe[I,iRS*qLJ$@RY"8RY%s ,H9TH$TVDH*K$G@*D"q$%# U"8*HIeDHeu|~~g)9JtUTvlf߿֋#o|n~D/?8 ʎ]Pn(aհȷѩg^{̠"ek`%eup6c_G3C*I'r0azkVԴ m@!w16t2 }ٻdFޚՑL~o3ۊ b c_]x.X\mk`X{7p o( =,y%le3Xfׯ4l.\ RY˓rx2ӌDb_fl/e5dZsA[Չ ^jAxĎHe=ED5sУlsjS 'E?)Φ+wjsQV ÊdP>P.=L>\~\v 3f'N-A6C$___)蜚[q}!c\iJAM2~΋8 ^M+"UYr$O16K\z6L|@K["u"tL s\m1964 ("RM8>5i,R 12p# {6'=D @w,0;5 3^I$.lFBld IMV̲CfE2fjM 1GQlMP<Ï`&`U梈sg2eۦ`>(5_X]a0 IP0])$f@ŭ.kCyL6Ny׿Y\&>(]ʂJ jbfG;]N"Xb3p|4XX4f݁E͔LmS% UHU5"T"UX"X`@dX0xFl3Je.Lɪ"'ԅy/| ^i R1?~ܝB*ijc AkEg`ATa KNă4C*Vf+֐LYٙl%_2.! ;kE9Ncras7'Ǩ(N{6 rK^L<9_YMY8V' Uf!n<2eoocv6Xuk0N%ssT#gg|o~|?;K$vIJ}6c,+}l(+>VD|s T(+# )˪H[lK˔ߦ x0qN^Ͱ]5통md KMiځBp 0C+uP.?s0m"qd,SV{8=~Ѳٵr7Ple8D͂hRV㖍SA.H-q+Q/K<)pM?jpr}xQTػJ?] SA$|H, 9YV6tGF /'f(]8Eͅ5"k7`cO鷻Jg^ɑUbe5Zn.AoO5TWMbP']pLck[/Wc* ܇M'08nK\=dH lډ(~N?C>I@49l6 x9NOl*ʫ]S_٨ %UhV[&nj6>@NξBR؋8tMYHeu`{-9+Չ ؅lLJ$@RY"8RY%s ,H9TH$TVDH*K$G@*D"q$%# U"8*HIeDHeH$΁D"qJ$@RY"8RY%s ,H}";jIek*+?38RpZZ+BkwPd ߿% |elo[1GPVooo8/Ӡ0(@V$I}} @iz?~ݱR4ŐSٴͨ}[]،eUqo#^i-(bx* w.(9j/Dr16<c8|nj"8?dQ NAG^D?=3CvƳ;M :!8Vf" +rmⅬ쑦.^'Z5#8#K m\,5ۖFQpAYIg<-MKz5 B-tl 0ei޽%ar6M1Z˖/de4uxZ=C{,KRjR"%Z`.feٶ4:IlEH߇H,ks=5ʦUV*+RThjR\|E*]|Gs1<./|R?u G*1?N8Owl= PT6"Jfyzn; v__p s16#_m:cb1)7E?S[p6I !qHS&SDfvOkQQ->$Wƙ= I E٨PMEHyyj'!Q*JQ<'T82T$.<'5z䜒a'f0LEji" 1""S>.6~CLe#$( jAZB"bM v..1{X&]Dͤy!elF̭X0Jl*ѡ~dgqZ }lRT)`.fV!c8(+p&ˍ~%cI!yēM>49o;*$:l"c֪mR: k =(˜>/Nm:W 2ݛIge56^)!X+0J %qN .E&>k̦K:M>+bAE`Bv'"82u,\P{QY6Ì8En6Ö_`c-x!BU;ej+W,urO';<ڙ a''#Jc`o9䫺"Ą&t(tY~㎆*Yf8P -X6,L”MxRnyxj$')"R!ŴYVM&=v3Tl0(Ȣ sl/l $Gyv&fMlxͯ Xq6B.r׳ QfRY)TVܜjB 8*{gWVIR(ڀ>@)2)@NERڣlnYm԰bZ(avveul0U U⣡5vXl2|ЋrdDݥkԺ/-ؑQlαTV;5gًqD Ikf>b)ͫm-; [u70UhRVXYM?Ww.zoꌴSYş_u"N;>N EgY?:YSU85m~ȺXeY|2d 4b"id[N;*.XXa3q"l6gek]uݦtzwPtk`* :]oٻruE Of!Sz`v:Ya[eUBv:.ӲP\jmCVq Kg"awd5+oq6CG-Z~͔N<:7gQM˼.6VK Ns16 AOѣxu;{%g*o.Ēæ%U؂zBUVlVm`Cxo ~|mgZKn>Ʈyv@e c%|mf~sє&"jԷƢSYa[\ם;A> Ї<\"`rx4\9]hAxbw`U8+[f֏wA %rIGSXҬ3{8EYCFT^ŔӮӺ=<ɣx"{PDp)6Ju=zY4(@~s 5SQ,>CeӶlV#KiČfFo/J:]f|}_\,`5WB^3qN>w2)#_#|8=/x.z.`Y-A1X +۸1MC8hKZ^fCVEШb7&^ZƎfw~$z1=؋3v#3txF!U"'%# U"8*HIeDHeH$΁D"qJ$@RY"8RY%s ,H9TH$TVDH*K$G@*y؏7%߿?T6:;azTV~/TYvC9l=P칿xYyrnܪ"MV8=BCV$Jkg5뎕"wĆVeu6.lƲK̼BVHSϟ?(ڹ-P 4AP jy >HCʊ,7N)1W*)v*P[{gqO+)͠.lȪAaUmBVHS')UJaGZsf1S)~rK.2R˨1}Vjsvg3*onf lBVHSI10[8>Ɩp>26PLk`!w2wYm*[v%z}ʃq5bZ`(كvslJrҵz`QmfN s,NMlb`h(8D5ڒ&=rhoI 5j^!7[UU@턷uFz6AU{~; #>N EgY?vpj.L2\uugK^ɐ% tg<I MBvaUq! KDU`3'Xͤ=l6V\ņ 6ljѰ?# :ªpZ x.lU tַVLBq ?ZYmCVq Kb\6UXUYfkVWl +7YLY|=%bUY5OW{}H\8GXUYz%̎\Dԏ7jGNG UkwClWm`Cxo ~|8kXص 9cG[k4jiZ`M"/v![͞mr{al^/XhY9^{n* d3g6sfŭ_nsVN TMeOTQ.bcyƑD ُmyNZV +ҿ/Zi^S%aUc/8'#Ms갧V՟F@j"C)>K\8x G%qJGX{5ǢliRч~Z͜`q6CP3$Ml6c2iGBokxp'Gdk%:Y vQ yÕᣆcE;l@iI·MHjpE\_ '3S &~cEUB#I|*X,aTX.Bgmk;W|h,g-Maݥ6FZw\<ּYrV\,7UrJMJ:ν<|p l 5w.uYNHEHpn.F8QCΘ=qd SV],߭.1X΋jJ`-ѿm:jaqU~d2kȈKUxZ'y/Rd#eFVg!V/mNȯp.ALE)MT6f5bƚ8aflW* XSːъ gm(Z0|?6Xf)Vε#d^5U>N_ԖD0[Kƍn: 9S\22* 4/xs]82gN+7"'yRY 0lu[ Cnl粖پ ,яz$ ,:%'9sZ< `5qHeuVqQ~;kXe-cG",у#s洂yc)Iyr%:+H{[;Bj8>ZƎfw~$z1=82gN+7"'WB*D"1 8q7&%# U"8*HIeDHeH$΁D"qJ$@RY"8RY%s ,H9TH$TVDH*K$G@*8DbwP#IelxqgTV ?C<'|#~o+eP|hTftnjQϔzAP-7:j;gζWIep퍻߫Y?b^,\AI?(gHeQ" m6`.і(}'5Q*U+erebwlY\DRY+6CѸbB5Ek. EJc4bx(.*7 ob\aՍؼ\)ys!ԂHq@ԤZAwgdHm!FmV0ʈI Ci `̥ kV/"wwp =R XMI"h\("-Փ3*+S6)yľجb]; Ud|6k$;Ҳ5TOc4fQYaK>(/V`®s4ox.$ʪ2OR`!CG僁 a.#phv33u |e$#1!/.Hh`t x^kAj8u/tJ'S2STpJ9!K&QykbY @XY jU'I1=:kIW!U")5na;0m(&A÷,p+ FaKk# ^|hRVdU A&tYj6kUV~Z`s`Ar_o=ʊGuP’#SJXYZp3wG)YpZSٙMNS{昰 J{`y k)TV2Kt,ʯ=g%;OФzu.u(]IYE?g+7IHCV2Q`7kP\Qs9а삏jx YZ[$L3k6{s KDzCJe[;Y-@o6%DPYa"?4,&P:w>*wZEVKts4ol.m~S,P׭o(>RĹ295u*g+pz;)$UjS˸S8q䇱G!5 *?Fy[V?fZ(.vg&-K鬗-t26 QPٴ+6d3^]gneYD, )ڍx Yٕćq-Bk@&˼.X^v!76 qeXUY̳'{U-dnNJKX7E]jiEnWV@4%!g("O6ҮbPky5iHkv1*F{=UlI[cPV`V QVB^USC NF>ÿ<7[YcU<AB!VUV(s Su{։)~d+??A*o |б/e.I1+hU4j4IHq{\~\kA$fZU !N˛2ZjEo7ԡb;We:}oraZYYfjcVQٌa7;e,dX.?ypDc7aLQv!ysTV5ބVe%=W>^\ÇMwӔLBB^?8 k8gBEPgƸ\r1!K 'HT @-_d5noL,ʮo5볹70S}\٣i[?~zGWV'^)91WRO׷xV" e:ZTad`tt5kEዓ -J<4fiIaiT_ؕ^\pUd0 Y]i-~kAP>\#7†αBƒSN;flyomwʦc*,`$ [[s ãqҭ"Zxͻ#bVL"^©6K "h\Ԛ]! R=/VO۷ag<# *u6ʦ@#(+0ܼ'krBڑ* }M E+KwTlJe|5eԊ MKs.6{/iЈb~WTmb@r/qD2C^EWC\`'l,mFQP$3/"**g,IG13ʼn}=YP.My)i \C6S!K!Q&ʇOrHu/Y#uRAE]PFɡ;x3f @YfTLvBlZ]1<PKHF~yu LmS]ad9N|em'Y/b>E d6FC*<_1}D8"Fa1!w=qHH8&"Jbqx fOwHlE(6XBvs!dO$iS](eד(۠BkMaIoCf6oDCYfDYF@`u ;{3bAgّxd0H S7ZoS]pab릺*xH je51'$/PmSoRVa*DPYr]JCf@CV~{ Ě'_T:Çb]VbA |:d?3eD0H(Z(b(.cAH/lV\+6&e"7qlƑwը"uQ,Ngbj/DRP++t O|zԅbF`gOv^TV7K֊.iCgxȪHhdNҐ^~[^ iɰhTe6G h!f-,:H_nN{6XO)MʪP ,)3Qz+f$R0V,ٺKEфjlkl'w7'W3٩jσR/:*!MVb) m5MT#%yAQUG,dBκF0=s̗d6hz ~]^8i‰͎u1mUJO&(+l[xJ YmȮ +bBlv㷪ٺhFQkZѣxٶ`;=6bn?)׾@4+Sih#JԦȯ#~짵wiS1NHZ}4 (>4-"9[GʓGCtt9|Y`lm:"N/YE5ˢGYmfũA`O͊{^IY6kOë6.iO@*^zq'`IAQVcٶ`;5zw١w䚲wkSQLTmOlULK'`q9i5xO1R/TZE Y]őr˟wQ7፰_ 8{.$X"=\&R|{fp0op;GӓSYa;;d"{KÑM΃9nlrļÙ8eK߅!]I8F΄ő \.&c=eE#o nz)F'FaEcݱJ$mTH$TVDH*K$G@*D"q$%# U"8*HIeDHeH$΁D"qJ$@RY"8RY-Ǒ/ׯ| 340$B6E|RQ!l1fHn߿wox[V(僯)W< ?U\H*[ga($lVe~O9ED#1Ъ" oE+KlإTg0 0Velw.A)HF{ -kUYoTgՑ/.% AqG\Ya pn & yRfh{Y>ϑ@!Pl%U9H"UR>FuD`e_vFl:g 5݇9'.q`46;xs$RB63?eAj ƃ90$oRVaDPYI e%{hq'XV2Q*RCV%d JMQJٹZ#[&AVGBCqf_V~(٬Wl0MJE(̇.8T64[VfqR<[/5УlTnح&Qf/u*+%@y Zktgi7{˙**jW8O!(2E5|%E*9b@_E )6kaQټDWxQV6U٬c=4WLr^s>e5=67b!ŋ#e ZGZ;UyPTCV2~EJxȪ8핕H[ C?x[ͦ"!7PtRtPjl*JFna8jp2 YnǦA+ Ǫj,lyjzބ`KV$ŋ#e f8թbb`u:q!Y=E^BCXQ^LSYN1 Z%As5瓋jp*i3?GOUX6-~eUL͊XOYavдi][Vª 1k*m5vh#JԦVGOk!0b/?7TA'&bErc;gHydKtt9|Y`lm:"N/I\}8VUVc٬85( Yq9g5f`6&Ӟ+)1 [Vªʪɻc Ż|rMYٻ(&vuI+WE2-u۞r_H=A llKBSiA""d%#k%&7%UAe@`v6éSe!8nɌYhğo#XUYeֻlv t>Yk(+>XOq4a[= M7,e=*+;(]ȑA=]yl=fDNWycXEXE><0|qV*rͥasĖk}\;ʱpV Mz8T^z``-'gAl*B" U@0&`sa#\V](1;8&$Z}L مPY`iˀWQ̎\C$)5p~9Ŧh,77gOX_G%Ve[pI͂u(ߧpGQ{*)zw _ 0LKnX?k p8(ϩ(`!2R|>*XAlq=ܒUiO~8?Q UP2XX_ (UclM$aW@ڝ012=fׇ4FV6: gKyT%X꠵s)zϞm&D v/&/ܲ6<ֈ&oYxF4'v|_P,Vl ܲSVPH ˔t_jt%5P'1K'XOYzNfψf W#gbe#xF^Xl[d&(l6C2pb)+gG3*+.]Dn.2chXOZRYmd,SV|F3q旎 )P87pgש582o8&h"7qe#FĎX{lfo8kO"X[Y%6H*K$G@*D"q$%# U"8*HIeDHeH$΁D"qJ$@RY"8RY-Ǒ}z:`'-g['$ M}{{{cԴvtH*[Y"ppLei n}亙7D՜pcCBR< %gTV`"̿hU7"% |ZkRXT~exX8 Zw.A@/jR5x>!SY_VQ]J"i*>2)ݿζ1:69T x.#<5Mդj8,C(+|Bk=S`nB!+`%NzlkG c3zRVi vWe5<+ɐ=jMT>/1giE9yG ʪ > * * Cl7("%N"pp`OQ HelJeUÑTVdVeCq ;\ M@ XӠ_(OI+G1xK *4WQ/Sҵ5DM8_6J~dqk5RDEjYYӏb)f1z(] L!BS(@*%*+m*C~BM#"`` _P[Gd!F8Cw@QEg`BT4blF5KaQd0jK?!4fM,,pZ6h*=urDIQQ}y# C">s=`_ 2Zjz8`NQGM*%D4,QĻ|6hi  Q[ICnzpCgˇ?%Eqx fOyx ΦX b%D}k7AYKVɚ}")S]W HmPl{Sq[ى ƛ#PY QQ>|VS0ȁ!qgpѰ@R䐇2cٌ nLsDG٤kSxI#6y<Ď 3h4,bux.(Qa 24Ɛ |7r@Z,/PSTKCC l GUVZ)J/u _Q*X@R)(è=D;yBok1Qh +Exn%V#%m"6E/G>ff!VGS쇐(f p%c'C4D KX6,[PvuA6ca0a- [sLNNW1rh-u\_F5AɐY"Sz 2WF63[q{4\UYa*! j{yo%%@Ð)F񐕲,!+XUXPo*zWMNx#8SL!56M$"!"Cef\4)+!xKdY@m-"Щivj#KU0~GkCnƐ*+drӛ=E6{ SY,a/cZ+^:TUa@/8O!(2ETl)hTe6G hAːm^"~=b1Ip@eҤ [ΐkMR+gYT \2E&482!ub!WUV l bI=b>' >6*UCV駬 Sj6 9).$Tc b6X:Nf!rtHAϤUnڭi4R|Q8M[DŽ.NSz1Q$agLM*Ư8Z TVԄ,3ٞn7z4d.e?Ɨb($j}2X CVlxOEbGZQ^PYN1As5Njjp*i3?GO 7gDzYmNU1V6!QqysjoUwl;sGYI!vĉ+H; @{>T e\ɴo{2{e W'H:l}!TZ)-npy֭k. #^QGH}Sz8TU``-'aMEB_]1Z ܄RbNS8py$V{{y {lYOuXaG^͂n62X_T(:(urE ;K|M࿪ŋ3'4)֐F.=IΕH2dGb4ZWvf%{K>y p 7>yybo|5a[,Iw?KK#a!2R|pO p{%p҂񖂤p~'T73`ũ_ /2(UlMLK_ k&&HqasO#LW /c S,>{s̰8*X9׮3sQ yq?:Q/ G|U^ ؑr`*܄=zЭt9k\u=bΟ jZDoC%AA?F%d. "Tf͓9 ab 9GY Fp(]n|h'£Px$@1P:e"DcRyzNl_)Y(==Z0T REAnwa-B)mq^ .lD>S͚7Oןp6S~ر؊+bލ2n{\C iaOG2ʤ.ssGY`sFe=45 o,72dǨ&ߊՆ.OGFh\khDm!qRCW1O_ɤU`YV"&bQlcYNx^)?i6dڠϹ%\ȃ=A./k`6`lfp(QVX*IeAy>㭫 H'`R_ \=ݿcf/-wmbVGSrFS6 sb9vJ\-+T'b9Yq-;/$'Pq0nx,`"N!/o:vbYlE2;frw։EqonDQYNr|P˾b ^> SX"Ъ}Y1b`S1Axa\>L( W/~1I_1v #l<U [Z Qq<aqfibYnlքqY.onfuPX0qayRzSȵҔׅVG=ʊkjNjLXYB_m,f-n^qms~r/_LS: Yl{jIIMbw\0QsV.Z͏*SWv,8B树MB >2"5] ?c-,K^B KG UMm{ԗ^=T6ffcwܼHfkYXf 0PY[>6ii&}/B_ȶNxůiЩxu{yDj].n K-'+ ʑ*2ҶyӣaR&C{hz(_-O8p}S8 vqS(`'B )Bj1HpëqxlyD!S)U(="'TVY|Ź1flf` mrxRs!qf̲]VZ,I g _xXU85Pٴ!'fAn Džy;ev%6VH-}s~.fq''d3͚7mJ]zN-k6[+9J>ojɁ<: M|mv)|<ͬ!]5ʹsEYMl6K>S#ͶyNY1qsP|n`zh3:͚7.I?{8Ml3wQVGdQV|"#:Gm q\Em&Gb tNR7;p4W>AZ{-a3k1 WI8EYYd$jb3b^$MNlV'r56:X̶h MuA?|G=o37PVvTR2be |Y^ E%4_;gϔsc|CbBpk{jIه6PVcl|ZlVY͋dyw3j8E/`f[Gٿ.C E(ڑYpb>*l: gnY/oͻVO+GdG Ke+;,8B树MB >2"5] XK1wPQEF}5ff*n^$,,f ؿ+XK)x!3:-,ZG4@0_ZזəJJ, RryJ$$Xa}w]C4oz+>T! +kP(_BYZhp\YqWN$Sg3s2!f+벯X+_MmѬyOβEY猨\ԲQ[ Y/23[<w4.(S+IJ,\Pt K*vK7ő:bPV~yx-]<[,DvMLvG8,Z s yZt/x xtg2|ع> _xXUXο2lڏd 7¼2E*@F"FQ_/?GH!fgDz;Ͳ#8Q_ˈ/v(Ȝ3wUʼnܯ:cSȄ}?Etqu*5}Ps"gio6y l6]a8Ι'SVw&ѬWk ÿq(߭74wegio6[UYM`3`B^ p< L{^i9=PHbmfk+`B^88özuNg\Odo_6{eo!DLYMK[qm&QzfH"'i'6w2Rȉs|jz>>7.b؛#+%H$j8MNtK6s>)rl?d$΍S*D"H*K$G@*D"q$%# U"8pI$D"H endstream endobj 230 0 obj 32836 endobj 232 0 obj << /Length 233 0 R /Filter /FlateDecode >> stream xVj1}7?s cJ[h^v5WuKsH2 1(_~XaxvDj4;8vF!:|O&C@ ! Z=C!oXYsC@2d2dЦ m Qiz'+ 2P^Q'LIq2zmfq5rJƊhj."sZU>bV]psw>%) Ƕd~ ;?0OS)~6nm_,IWD ) KS MYT̥8bTP[*c5o>tk$U[a6JWRM3wG+ֺQ{Q=W9Qz$ ~~ ֻ ۅחC5isS+69]^TpGӕAo]Qs4fb@anetq' rXu^nRձuv!鈁t0~!*t&g8?>'" z{4XA `x7^endstream endobj 233 0 obj 643 endobj 235 0 obj << /Length 236 0 R /Filter /FlateDecode >> stream xYn1s%Wh x Ԁ襯Yݤ VMד7͌ǎCc!½c{P<|#//6l{]Na$JzWre37kwG~Mv?QBWEO"ȂH(< 9 "M75*B"}ED0M2̒*hV@hdivўD& r$D +$ݦ}.3tF0fqVT*%UV)8*ηn~;:0st?۰^{ˆTnY*6(;3j0ɧ %n6)$~ck yP Cf\ā@RV&ZoDT6-A"Pm[ MK] ųC)-HdsR :+AKZeΕrvrAH[E8wT.J\CsRybݔ h+"krlž%5iS^Q爕Qt<g{“{= jQwwm5:okԠ1&B\U@N?&pC4d:iĄ7{>׵݇s^GWDs[#JOh7]ak,yzDFXl)3xunD9bQA^e`7-יfêaUd/f-%q3]Q*%`fŬfk'}YΝ'u:gpvdJc/,ut-U.T/@Ҍno;2u̸5:\}Ɩ6S!%;uZ,Y@RL2k惾Gat!%cTShxߣ a}rnυ!d ɤendstream endobj 236 0 obj 1038 endobj 237 0 obj << /Type /XObject /Subtype /Image /Width 127 /Height 127 /BitsPerComponent 8 /Length 238 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 239 0 R >> stream xOwS|0&ЇƘZPAЊ<J/EԠ$D. FP ,T7"*JBoIJ0˜|1=s}7FYVk9aaannn---3椦655|=zmO' a|BX>!,O' a|BX>!,O' ah,ŋgϞ}c+--˗.\Vy߿I|]]]=qoJA7oȃڣn޼y׮])))xOO;w 5Vݻ>>>O8///**J$##bܼyĉ### hي#4LUUU!!!^^^"xر$:L|^C>Dereqㆈ`pEIV6c޽c޽RQxx¤0ضmּbAPPtIAvq>!B ϟ̬|@;iqq1۸qcW^Ep۷抝?eǎjg֦y!#k֬AO>ҹs礧ߏ%>} cłOLL"[n}xEUӹ|) c5_} #]y;33Se•b*o>\"9sTTT`FW\A)9rD<==cbbćǏfU!оՄ|(jGf=43vDGw$? j1XA,lE$@*++凋 .μ,3TF"?aA"jÇN9rGKh2Κfw9u;B_釃 תSJRF9_mam0_X{zz[ W,ɨvg=yX6x۲,źJajdc:K+,)|1|w;6MX|b1ͭXEƒnΝ;v)##Cgee߿ݺu^_i :J .2Off&mmmfzBXZt.oG!z(+vs>\|\>w; KW w;!,O' a|BX>!,O' a|BX>!,O' #"",˯B[eee 96_m endstream endobj 238 0 obj 1844 endobj 239 0 obj << /Type /XObject /Subtype /Image /Width 127 /Height 127 /BitsPerComponent 8 /Length 240 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x; !K8 |a ;hV> endstream endobj 240 0 obj 63 endobj 242 0 obj << /Length 243 0 R /Filter /FlateDecode >> stream xYn0 ;\`ŀ$v`fzOD)e7 0h1D gO} 7H¬n;r~y4Ѱ}w;iw?kwϮyvW+I$H,r(ZE(BHNElH)U(QE=4Tmm(ͭHܪ?KN $(<܈%NE1aPueD8`eJ"&k,Zb j cq&Oz}`Pealwv44z`'# I_׶) K[[$HI)J"@u drrբL$nUAz !sjR5"Fok+_*DYer+֜W"~Q&Jy 4JT$::G\{Jk(L2(JJrk|NG),%]MkYkCRsuQY!?0 @Lڿ#D\7nd#X=E(iϾXvՊJ]=#ujny1%9S<0ѝaCor:%ąVX0&m[0sV`f$, >'M[@o PDr9u^|o)'܇gkѶGb?I9eMPrce(' :zM>&ogYjMZ_͊7Ζu|;Gr7Dj$W%%$ʒd-%Q\ˍH ;Tfțcdlf,ͬ8C:%=@"s&h-8%4*IOkKC Y>s/A`z, RcͤěE!Ow:9~5c-W 2ӆ؎ d!ȬWS<-wQG$B-CTp%M-gh 7iBظ)y\B8&,nr{?dwtgtendstream endobj 243 0 obj 1050 endobj 244 0 obj << /Type /XObject /Subtype /Image /Width 400 /Height 304 /BitsPerComponent 8 /Length 245 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 246 0 R >> stream x{PWpj3IRqԔyn׈I@EQ4 D F"FQ@PS-g{oۧsrAu֓|2e?K+_|U@^Z @-W+P  yj@^Z @-W+P  yj@^Z @-W+P USSSAA}_ZN~u.++KNN~!m۷/22*Oeeݻ/^x[nQcii's޽=:~HƎq#pyugg3gYicĉnnn[n|rkk!CCqqq~~~l'ׯ?{Ν;Q;%11ݝ\jUpp#GM5ĬX;51'G^QluAriB <6:;;W__/|رcYf_pGh}xxxх駟Ȋ5ҀmL0A 6ڼy3;*-#{R^edd7,YBӛW!Ǐ_~%C&77wРA~O=ziE7n܈#l:766.]%,,̶sQ$h2ȶ^fMJk׮Q;Suuݻw)|eê@eر m,ZHhXYYi)mK4k}[o |u\ovǯHRu}tEA留 Cʫ ̛7oʕJ ^>hր@/tX[z͛7/^M]SS;}tviR7:]vyxx5Z^^Nê얖!rss...ϟ>~8uhkk 2)Xv{~LL EPHH;Nww7((&N>z7eQCC3m:pԩSم\2b)陒RTT?⑾#=>ʞ;qW>>>℗.]b-]!111!!A|J'wQ,[w{RRۦtb6l X={X^9R7n.\;w.覛[OHmo|MѢޖd}Ӌf„ QW?556*,;wÅ% 3gy5c o߾, O?>|X/G}ĶϞ=ꫯ>*00 (L*,,LPw@^+ 4Y} rqq9_ZZkvuu`/Rk*z;VLII졽Ak>8+ y`9:A P|@y^>Z(B^Xy%@}Pu#0wr"'6blZNNΕ+W> ' A@^qׯ˾g%@}pAyq5ve!T +>+3WJ ̰_^&`ưJ},TYY)I!@^q>1ܿ>ECiA4>hݞͫy'2 Zr@^߿_B^ VA^ \A}*+z;W8_o JoW\hݞW:vB^!yUWzvp~򪻻;77W[󪹹yݺu'N7>x`ӦM}Ag,,L6:tۯז-[X# )(F/a'rJիgϞM;?~\pAh>}Suuu2+yIg~BY՜9sh3c q#%REEAhN4剎f`Hccc rdee&&&R& 'N7}ݻwM=DΝZ(,veKNyJc7w>ݭ޼Zhs`` k\zHXPD,_FYtǏo@@@TTMXcrrѣZVVjҤInnnq]:yd89\d E%bZh8sL+ 4қ;wH OA>hݞm˫ߏPo^۵Jcyb\_;IZd,6h'~4ډRWP4w-ҼuKzgWj WP4E;ggW!\|]AUeΟWj y`}PyxrAvU^utt455LzV!W<ә ꃦpW 7j(BCCM]3A>h yE+zqUJJJKK RQQљ3gd?S`g^ Wqqq+ݹs'$$M"+ꃦJW]]??A>hNW^hmmzV!W+$$$>MA^AꃜA}ɓd#""zWLIIɏ`ꃭq3w^V &>hNW WWW`XoWJo䕖 $@}^l/<5_i >h y>y}? 3Lj/Wgo 9B}P)u'IXoڵko[ʪPVVVZس'CZʫ{*ʪꃦdddFRRUe7MHHgPPOT5!=1@>Zue~:zư[vTrLKXLN vP5X^j/>oײ̫m =ZUUerW v+389Zy ؏V-ZSW49dZ}"Wu + y Oyթ(_Z yȇy Oy`ތ_>捷%vj}ƈ%=GA~8\PP` yꃪf&JO߽W~[xt/z-祽Z A3y>u +HM]}o+!Y7պW RW^>c&K>QWJ,Xp)aVB}'BCSpE|]7=F$ ]n1s?pA+>V-ݻjWfuڲ7J^B^gf*\yE)}1Ն (WϤ:8sĝؒW47,**( >hLy)0`ȠUW};իW˗K{p=<\v%IoLϪU ~"::_ɠKt?ުz1~D))) 1IWWzW}/I}^p8x[,w>H%,j!s$ȕWyyyF^yDT\\L?$8ƐWƐW?D~4A !I-ygdm+GWƐWd׼joonJΫ-K獶X^> >*}_ѱ5WJvElbbb}}Zd\UQ ?hW|U|郟IC]]]kY@ :M1( /_nMMM<ͫ+Y/*!RRRĿB}ЮWƔWWԕWʘyw_qe9 AcUCCCppŋō#Gtuuc-ݡ#F6m$ܤS\y#zA^AveՑ<~ݽzƌBc}}!CsPRRӻo>,^Zϟ/mRwmhW{immE^1JPW^yeLڑJX`ߺuAQFQ 7)ʫc.]p;0y{ȫ䕤B}Юl+%KЋ\yʓ?\h?::6 fǏ!f贫;vb|(U4B}Юd+Y|J֖G+B4>}:k^lHhaȕWIII4 n"d|]d+zY?~|{۶m3.?G"ʮ8Yo-1~D]!$@}ЮWƐW 'AuA}ЮWgo X3;,~s>NNN!d|]WTTT(X@G^yW?+Ǫ >hWv+zW9 WvAB^)J]!WccccT(444<<y3dkQQYu:(ꥷ|@^I PAE`]Y+!$@}@J z-8_o3W>`9%@}@XoW r+ 4Y K( -hA PP/`J2~:d}@'W2B^8JA[^>^z+ d8 A[^y`z+Koy z-8_o3W>`z+lÆ A!JBoy%#}G_y![^>B^ݽ{wڵMMMJ(A^iy0 z7oެ JPt + yWf y,6>+e!v@^) y ꃠ6>+e! 䕲Wڀc y,6pޮ+e!B}dy,@^a}ڵ=O||qφ4ŋO<|PPɓ')))gϞvtsܹChlkkr1i4y :yEc˖-h'?ΩnnnCp 7'O{OI/3gddd̞=O?[haaa'N.9vXɥO Aǐ7ht]ZZJ4hϔ*yUXX%|wld֬YBݻw=ض߽{/;r`,G/ K~͜9m$&&R(..`M͜|||h䖕#B.с9rĒHsk֯N8nyE#4J %q [ңNܓ~ƍ5vH{pvvfK?7n\PP_M#K. zzzz|zFEEXE,{,xb R^.]pߗyy4v`#( F5ә6+\ S\f믿/UV?m<1<ȫJVK:󪽽}&Mt qOy- 3~Mh0gΜ'({zWD+cWB;MԩSB+02C*--uww6:$qq^Q"E>v%,M6 =3܊&}5wϣ5~sNTKKɓXy :yE#W_}u޽OKK DQ䔙)lzeVlhh(..9NPNJA^iꃎ!o^{ׯ _jkkOIw[nMIIkll.o~)z!ɔB x;vPʵ@!5߮,6pW,Wڀc +3WB^iꃎRJPt 䕲Wzf  AJPt 䕲W`yeJY+m@}1WB^iꃎRJ8_o 䕲Wy^>@^iꃎR ̸vKxxx(!66y:Rssڡ>jz;L}l  AP @-8_opWA!Zpԫ-hA[8ϫ^=ZЂp^ yj@^Z @-W+P  yj@^Z @-W+P  yj@^Z @-X^~7???+'''//=̤_? endstream endobj 245 0 obj 8543 endobj 246 0 obj << /Type /XObject /Subtype /Image /Width 400 /Height 304 /BitsPerComponent 8 /Length 247 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xα0wXFaehDk" ǼDƎd[Y~ endstream endobj 247 0 obj 166 endobj 249 0 obj << /Length 250 0 R /Filter /FlateDecode >> stream xYˎ6?p IA.ݴ&A0nl%%]Rh覨'Ǻsx8}cw*|0Mb'p[~i="zi|NI$Ș$$RFB"3]*#h&] ҏ%MԢO%%;9-M}چI#95xG%QOInef"s}#}<-/ߗjf̦8RpU; c?ן~~aEB҈ΰ~z W췁d]cnav)$uYBg2($LJt ^@RB}6֠#NUMHՕWd%^]n YD$)ל-*RS)4%\AQ9b6:\[Zh za9 -I\Q:\# #z(A^e7DֹT]圡`磖9\҄|fq[ Z2ӛ-n)up _وZ\/ݧ7*Θ>nTՙWWM1S\I52W"|ʨv.&`ppH}lIm5lX a]l}ؔ8D8hCOj u?1w_,r.ps\ɮEV-8Ka(a X.h`0~O3'2Y}13L{.x;Cs5m 0`o9jex}VGR`*_N`2+;`A />JxQA F-5p?STCeDž,ҳckl-{~œ S +ޢKB4*Uj3&]#C)Z5"IfV^UYOy J_iWܷyx] ^8nA_mّL@ nsBeIM> stream xTWO QDQATR޻R"D)("6b%kAPklX@hDRlX٫˸{;{fwpgvݻ Z\ h샬8܄2NDEc0bqi1󸽟(a\#\""Li0rbV\r q)aC-_RKǖO*ށdʪs銚:/gPܞb ^.Bu)nU%_&$p|gf>?xs]Y.:{ܳ،(l{F եQK>b}OGIIGLuX2701dr]#]#Pr K-01Un}}כQWM"blF/#PH/lK ,c)s9|[RB sccAY,t2K.{L\VcBzOgk@r1Fh3}W5ϙa?p[~ȃehvѻ9횰L8[nN]#BS\kcJD\r۷NrpP!Iy 99uctG¥OSS[O Y+F^_g!njoOexeh6B^.9OSDmN?lQ2I6K,o*Z.s~js g,y'gO[E@fKKϞ*~MySGqESSs랡#^Do*+}m˗,³l ҄gaE!FV7ӗO{-STo޼i|x9ptˈlsЇ~&!)As΋(3hXޚawQy/:cu~1N;(O]2`GKh9pK R} ;h[.pj~Y}Nw j~ٰiCa)IZ[TQ^]@q_rdݦª% (lTƑ-yz ,k^Bľ9+ nm~ty/iey@ n #F^ޗ'@DLH}Eyd)"풤^%uO]=s29P~ v`S.!ZAw^,}Ώd:YBs{)۹'|pM5*o5YtOiq[~^\rIGع^>v:g= ##AF#]~fmy梔@A8Y1^nch\ޚFϙ 3dXGX#Ka.]6 =0u۵j./)5=ܿaUa!d$'9װ4;WttHVqVNI; <Ǵ7{hxcX9E=lWOxSfA.2 =`?;z-̹=TgmA2Z8!ozy80n r%]7hv .9a.sNwAu4"[`³R OuBZƙ}-G^oS25VKծTáK[Ypv]llRf31"9$WTy_Ճ8;3Ro-9=ίPE^:~J;?6*i[f'0epj%{79\v.l~Ժ'u'=N¶&]L|tT,Fd]߫=@m\r۹sEޥ}d*I-W=BzbM߻Qo7 izQe#\Cד>h{UŕwIQ/HguscvFƊu7>{f]V mM2Y!d7tSjE S{ix.M/7xNC@a[vAuz1zfimGۍ6uqt,vpQ`uך'U'tXv 鼵ĥN5ۉY`<,e캜kwdQ}9M#}W/yN\Zn2,% )ϚZü}gsNب`fzp yu1̕'_7߿[QM/ ~B@a[vAu6_[j{/tGAXlØ1QQaa;}x{ ޅK8L{M*Àu,IQlϟ͆,W-ne^cteL7fZb!4df#4f 1yl *U,5fA1<6*HGg{*['A#<Rn? j~!p_L@a[vAu!$_dWLO;b*۠k޾xrS_aEDuUdqЯ+-SmZ6&"|a*=d}ߥ![ۏ=!ftYV3lnab=E>K`Mtvma8>.UCݘnwub[#% u-'¶&Lӟ/;ti0zأu_L2"UmUHo޿q ^.Bu%}~˰͖÷8;bpT"li*ȝ㎊r>)PTFHBuu9 FP]q;T~_Kd|"T%-KSޥ#) MWlDصzX;Եe_ )K_0tb}_#0ИRQeihji&V@:t۷d S~táWQHa. VgwlF(.Kr`@WK]7]E'1LC[?-Ĕ?)^`sGce5u Daѵr ѥ/\(wn ,AdUk{砱*k*r:v:u?JDҙ%#TRUVsIaJ/%MMuh$=C z(*T /Or AD.!L.!L.!L.!L.!L.!L.!L.!L.!L.!L.!L.!L.!L.!LK>;DF`ĥ]v"u9\逳ӗ #.= ?!҂j3\3''K[jEĽ*xˆK\x.t=%UT!];IYq D ĥ\U ^Hr<"wa Q`ĥ;\K|:AKw]z.+6]['%L極*zc #."%AKdFRp0v7v{ q8AK;ȟMNܾ]vy5_05."^{"\\⻩%w/VP̯k)NrdKF\*"gçwS9YK"w|zUQ!oȗi#tut b`qydffϽ`q Hp)gNLH_< ~P$ ?W000000000.?CzDuȔK\ZD|&ct%}ױ^v5mt_=}"pxKG!\_w=]QC@ ^⒠sH B\O9QV߬,Co>8/&Rt~4歶Պ=z 5P{I%D.'Bʜnlkޯ]M}"wv=veKT\BH%)%)%)%)%)%Y)?suKUdE /Y:|)tIB˯6gVYKI죠Kq^+ p4tP'tIPoxO}Y޳^V0$k(|+Ǜ%:%W$;.߷ϯ+C50Gd]/ĭʾ.b.Y ˛=$k"=@djj, swkH#dP]ѹqzR ̒~,,wJܫ`%"ӈ-Yu 5v㏘m([! ]Mn7O{c1:}eKqϓ6IUMm!=F~R}}ˇt1ZirQɏ ."wVVVdd,Dt ]*f.Q7tΖ}wyy9\J$%][q!:!|ְ2j9z=>?߿_wp{2d[DT\yyy!\ A(k{γIudZZZ9ÉdK0mwS6OىMɝuCC~i N87 & A!Y{U y {C9AZS&;CZCCCMK߽p9f]xɲ +.8_]] 55Kv@@@@@@@K%.!L.!L.!L.!L.!L.!L.!L.!L.!L.!L!%$ b@w iKދe9B# G޽ 6@!XG endstream endobj 253 0 obj 5482 endobj 254 0 obj << /Type /XObject /Subtype /Image /Width 196 /Height 151 /BitsPerComponent 8 /Length 255 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xQ CA.e˝WMV?& Fl'x,  endstream endobj 255 0 obj 80 endobj 251 0 obj << /Type /XObject /Subtype /Image /Width 577 /Height 510 /BitsPerComponent 8 /Length 256 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 257 0 R >> stream x Xg/~gΝswܜ;$1L}p_@qqeYdQAE5`c4bq_K@A#(+nzyǧ(zoWHMM=`(C iР_|Q`(3g|a]~.]__tq}#ʊ J0#֭[Ǐo׮СCAiE/\@ }uwwMMM={lYYYVVZE)))l'111qqqyFFFÆ ܹC+hennŋ ƶ 6mݻܬY32999$$V8FqTk۶mlÇZظq1e˖ŴPUU?ݻҷ(첳/===O:uii%$??D:(Zٳ'ͿJv>}H?iΝok_6p+"nR_^2 R61Dw^YY)}I3e˖͝}h__߽{zhnnn:t?> tݻwtts ُK :-WWWk5EXDDڵk/)t\r&Y}]aa!l5ydiMn=zD &LV59~?WDa(hfԸqW_}111~a\\\BBے`[4k?~ҥKT!L}*zjftDFھ};|7CBBӧOiӦcǎ4A{왊ѾTOFAC3ӧOKQRRr[nI׮]~|'eee&n4ɢٳgiv_ܳg%G}w*8Ν;׻w>}HC9rɓ'Uٕ+"־UYYY?!pa`fn$BF"*k~@Km$q^H>>fZxѣGʇ=啜\]]A-[o*++);vիkjhK@@@TTTMmѝ}vW\.^اO{߿ߩSBZ>x m ueD"?I9P5nZ`Mzy]pɓ'M6.?җG%W6mvޝO>c;w:wgI/_5X5ڵK8y%)sؾ<ϟ_SMfͤ_laaaa;vɡkduVZjժ;gҤIbl#G=z4m[\\@e Ρ"Da3[#Fo2 e _u:D04h$=-u"L`h$Hu4Ih$ QRRrEW`xh$j-L:3;;[`h$=LHtcu# ri+9JJJ{QVV>}tZ5f/ҚM6ٓw„ tӗ 2eYݹs_~FjѢE߾}|HVVVoQB=-_ڷoyڿEX˖-oݺ.E2dZԩ]d!!!e<۷opֈF8shH<~xZZ絞>.nݺ^{mǎ1cƬZIZk)RSSao A#aF"N~~$i>>>7o ̶w[ ퟾KwiJy 0kŋӷ>Ӽ(05sDHIL @DSDDNra: &044DF8s Fh$ C@ȡ a @#|H'J+i»pBwwC7zjϟ?zhY4M6 Җ/|gҭ8p[o%ghhQؖ+Wd+?޷oA}7lꫯJ_Ҭ[nt39DgHu4(JΝ;C-@O;# ݾ}&VLjB"KqnzzzNN[YYY(JJھ};yȐ!SL288Hw GF%ٳg=G*F"WH:[&7vssBtt\Х̙cfU̱N0nyzz3gX<<С%EcǤԍ0,mYQQQmDFFR׍0:ŸB@h$2G ŋ/?(GfOKJ ooo[wNi ͕hԆ wkaOKK{.&Y׮]-#‹.`}.ZEqD$¤:GII/=<<2s,6lXŖ&W?C%#G4,lm*gD so WDXM܊-uwwa_~2 kwHC777Z:[Po.9*V]]]VVvqǏkj缴LSA£Gǂb}COΝ;wVVVңӵkׯ>XYYY&NfvXVu?(˫ϟ?uT%GtEU8=iRO˔{AqDq^@#ayyy2k׮tn>ͣXbeڶm΢hPQPZKו,-+">}z̙͓iaaafgΜֳ&qqq,F"WHf:'*-. umȨa׮]?~|OEFFƏR>I37տ?ڵx+x\7DQ ¸F"3g۷b$_ o D sB.\;ymzf \3 9*DWžeI"Œ4yXDWD=4F80c9{M>ìA @#;¶n~]Dm0@#ޱ񫯾:bĈD?vXgf\A= ]PF0z\1:zh/jDmsp&04nD0:͛7 V\\עE Ka\A#Q`9HT7$0uEGG7եK49F809a"l5shDD KGQXXX `4a>uU'Ο??}Ϙ1cP"L`h$2&i$JTyQu0N(0h$*M֯}=ץV]]sMQ]h$*F809Y;n@F.0894",6?>>B h$=H$J-2k]?  0tCD@.045?zpbStFG(04J=݈0Q<s0"+! #788H{WC#Q<s!<F"F"@#Q`9i$&111>3f̰cL6Mr?ph$*F8$9@ʞ̮ 0Hdaj0@#6>h$*{Ρ D؀^p DlDNzA#Q`9Haah$*F809@sD `4a`zA= ]P" lT/F"F"NzA#Q`9Ha4y@@uh$2jEX@@@Νb;'55U+MLLsKm_}%):͛9tH{H>|oBʕ+ׯw0˗/_2"F n03t8Aoa۱:;˖T|g߻wP*Dp"R4he4-#lFWnnh$ :+OHϏMMMF3t' J4tD .]\m?z([޻woxxפGHdi$[5uTg~HS,""Bw#G9~8[ɡ5j #EaFOiv?j}onR,"6DE$ 1--ƀ$(0#̄u)4hkq2=SFFg}vueG)މf.@`h$2EXEE~_{noa ,?*i树F*YXΝ)^yǏ}ՍDEذ͕KQW0tݻpa<]tiqqq "KTB2y+," $h$2\53"#l޼yWks)**jɳHA# Ҳ+~ch`ˆ ټyɓ'\xӦM-O#yD#r2*++W^֖-[( 1e\_#FXUU/;+Vl{N]3gG T|}̙#=O5klb֭־vZk߲0i$m^pf:޷B9'#yA\\̙3qad~HFʺǍu1#ە-R|q]4Oh$20a[/a\(vz8pHD DU BIh$ѥ΁@Յ!"±^|8a A#A#Q-|FXхDb'Oƹ HHD:g ԙGM::ƥly͚5־kI[nqKh3gΌLKKۺbYQְ͝/DCp~~bbbBrr2..E[Z0`o-]nŐ=7>%%EԩS>䓥 U A#Alami6g)+!vUr"]`AEEGDD߿pD@ե8=eA& >MBu2CG*xi.P{DX]O~XYYwޭN>tz3V,EIah$ :/U\\.,))3f̴iZnzjƍM4 o֬|'O<-I׮]_8wG_05uǏ_a:#~f04yR/^,,,Grrr2[yyyMm2|' Rv՚UWW߿?...>>ѣ0F:E*a|B#1n1&TTT$_siyBݺu+00r"(a _B/,,,If̙Iv"##/io߾5="(H{ u#^ Yx낂ioaZ5kV֭+++%?~LCsL:SD.D 09sCt钷G,S$uڕM(n&پ}{VVD[XUU%}S"LDHdHa'O;wɓ]F Ç W.]hµg-)%|6arf04yė ˁh6aIII9{lMl޷W\.^^^N<=~α \ DF809^n8ݻwԆ|%;Q,>>⿌-Yٞ"큦f۷ow#\ u DHdaA"LA@#Qa4 eNDTg:?au!d1\]! H"Dd΁F \F᠑(0# uAusB DDK!@#F*au!$<4 u@UUU5%'16hZ.w' D^;աȠWDC3e=;܈0B#Q`9H4Ey+茋}4\D\W`xHa>"̸ ]0DZ;a)clƙaC#᧑jf05us 8sP/4 a Fs `:y "Lwh$2h$y-Tl$={?D:rh$*b# QQQ999UUU0qasȡΡiӦ%L4M6ᆪoBՅF"C@)J#QB9sn۶mvt"Ln$VVVgVr=cDn$":ӂ~.ÿz.0ۗCaى?޹?ƌl1g^$ ah$"Fbх맒h:vpK("L1h$lFۏAa*{0ݡ`6f0}Yll… jabA#a6NԫW^n4Q׬ɇEءY(,,T|D@a{)**b n -^Θp<ƾ9H0EF߸qĤl]tzĹ-7y9HP"F# a75?fz;3yc޼yvP=7mڤS%a6$!ꮬQCZM6SϞ=1Z3Dap]#1nVz{"ӵrssG=qC{(8sM0/D0\HtB]WX`.c׮]}|`''..nܹ5YYY&L|8]ȑ#'O3-007x˖-oߖl֬]cAAb+O81fcbbq&E9{8:){)܉3_bsNWiiiqq1[NNN K/2d5"C+f~ -)P%1cƙ3g2erXA3g^tIܹs lrLr ka;wHYf%q)::-MU8s j\ٳG^E(8plK07od,y]|m۶4oZr%[f͚ Vztԉ4OS=zXRDn޼]Nהhlkj?#}W5%,lHt"_0F+vuV{GM=<<0oooKHawmܸ1~Ǐ͚5Vxx8ZZ-edd۷]NJ1-ƴ);va"Lh$ڶe:gJ?Y@7FLB)Sdgg۹,+))SPP -[DR7vir0a8|y>tЮ]n"LEh$N7o_K.Dҷ|}}󟗕/+**foK;w#>cׯ_խ_.oƲ5|w^2//gϞ [v%&&?ROغuhZK0aA޽^)))41*BCuhB$eVM_]4œ_fm=F „'7T3!__FN":zB lDD2sN1"D3U3aĈa0[#T"4U'(a@ñ#@%B& Dc7T3!__F]PyDoy!„FcGuoy!@ȗ" D s F]P"4U'(a@ñ#@%B& DC''>6s3Cwت] Ba<( h0-{o']FeҲ6m?hoNȳ9L%vXܿ׿/s64FyIΝPg{!4Q0-وjݴ!"L!B59H"LK6"lMhaAc!”l/AYy0 Dl,I#e!” #AYF"8 90 yP@#$aZBg{!Js"LK0l/AYF"8 %DK y΁F"aZBg{!#TQ ´s)!0B5h$aZbҥK/N'DZ<yP@#$aZbgώ?GY3 !BP0zd„ y%8~F5n."LB<(kHeruec+z}EGG}zѤ`/LyDif(Yaʠ g"籑AiP!„d& 8m*F"6a`"L9\dÆ >D 04G/،BD`aFugGNrEnۼ^n ŖF5o" A):2 1e0s&'}}bgeeQ-Zۘ f8mJHԝakNͱx1aA׮]x}b?^֙ h$*"l^~Ls/*",tʄSNY\8_ڂDpt4A <\a̵kr"L9A <\a%%%ws=\TFaF@L΁F"" ggf¥6kҠ~+d9Y#^4^2>xHgr Gw"ݳf`O.U}0О]h$ΥVz:kXV#"xXٯ*͎=/gOyХ?Og5;jv^iFo;a^ͥMJ٥ ʨac)k/7Gȷ<;)1wHV^NN \0cLJalM :!Zov&nZ0ޗK6}_o"4=Bs4M~.Wx1tmr5hpl}Tĸ>n~cj`t t?[>-{Y[},}`צtAqtsB=ӂ6y"fK+KNe6uWDX-'MSz?@X0ePPF|dѯkgk& ڵ8tnl˕c;1zy߾wy Qa4Ԑ"c4sdwE؈mxM1r 4ud 23οxƒߝ=K_͟> nL>O+J/ؿrqti!H6'gSuh[)4(JڸGtw_;%ot^5{tȔGX01U;" tƖy0J<{bu=K[۲hE櫿gX~)هo̘0@aJ]|WPvk~ܞ,mB=wGhxlcI{jK є)Gn; bI0qxW%1~曝 t3&\4s~mlu7̢Ept4Qɥ{3JNsUptѷRHͅ4Zydl_.H+L/:'\4aϯ'E/j[Ҡ5[rKa);? Q-8 iƾd8=t#KOg:PߍC ?cfy9_ h^?600D2s(cqvg❗}ħ+v*Hԝ#L*8sa!”ACD3iSFaDh MW@#QDC):20" gC#Qw0" g΁F"" SueaDh M C <a=36]DeaDh  0О" D!0О":Ga9!”AC7]~mڂT Ν;a%36%h$r޽{@P/^&bӦH"L9tgC#@$0fh$ 3iDഩ C):Lah$TyD ”A@w:migj$f3ɻQѻk}N0eLUYw100>Ϟ=dC#Q)‚}K#2`XnnnAA^g'SEun,Ll¹]Iv000t0-qa>,Š/o~EWwO,@i De;6cWfPfk$Ju i ʜu @i DeaD8spHł@i@a``;aZB#QDFfPh$b``` u DHTQ@i:0-qa>0 z"LKh$*w Dcү9eaWr];EZN0a:QFR;o>gcJh}:6:mŷ{4߶(bduk5i[8OkO9)NnWE; q[5w+s>}ti\G:R3q:|ёocS[wi=-a}\-tEw-t%2W&mӃ݁sLG3&-@i De a4zal̘0҉ޗKب #p <5«oZ֠A {ȷص̔Q=saP.+!Kݛ}?fVE& gWEF vV%K>>mL_G/N <~̢6*뺷n{^?.8f,+=ե{@j<aZ΁FEؗc_og+޿Kc:zjY*".g' jOvqRQV>j@qO=лtl1gOѭ[59Yҗ7-/~nKMWDW[җtEΌvo,ʈ] uk{I|'u#̩t88<+jlyiߖSԘ!,f |IoK+utdQa4Aѷ5[7m6hl4e1fۤI"""dMLO<¸};!@hazKLq΁hȷ_|SUL6w k,r77{N0kYM'>;vnWbu~!}6y_k?yooqhWpN-ޥ[ݚ;]wx>!e @J?#akf7;(O2Mb_zzDtDcگsz#cӃOҋԍq0SA#Q"Lz3}瑑4mkڔ/7\Io_Kb?^~7ŃE͉fxMɥ>HZˏ߬iw4|LZI~](8R"vxu$`e*mI7ߣيivϡ8v~]+)^@e~?-kaGMEH֝@FXߝVR_1]ޞګѴp%W6{N~F͚4hIH;Т/nێ` l7ıҷ0)Ј}.:{4UٯżYBxe%ÕDz=EL[Z4NaQouh=m>`gJgPүl=|l D{n'%41teŏ}ZHݵt.BD ЖA>n윓Ck}D Z8fFYmiAݚ®>ӱ;[N1DӃmMAFkFf4/ѷMVeyvy4e%ؠ>kwj.;vhgJ<^-銆iE/4A!fGM-8Y #R=~ٻ%-m6j@J?!tAQ]z?wrqo_e&O|wd`c*1.g'{8>=u)O_?|Ǐu>y0-q^@#ќ#͡οf+[Sty/I=L;G<3߸%# u >C nf^Nvf-q^Ф ҁ 0000B#fPs```` ´F20 z"LK9H0@iCX%4Aa``;aF""̠P@i DeaD8sa:"LKh$*w Tr|D{C=:DLYYY.@0m'OOyF"C#TD #48spas5h$:h D0(h$5GXDDDR-bjX5X5X5e``˗kԀa`P00(D" BA!a`P00(D" BA!a`P00(D" BAӧ_q9ɓ 40~OF endstream endobj 256 0 obj 18842 endobj 257 0 obj << /Type /XObject /Subtype /Image /Width 577 /Height 510 /BitsPerComponent 8 /Length 258 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x 0aG鷻S ~d<6Rۤ 0 endstream endobj 258 0 obj 336 endobj 260 0 obj << /Length 261 0 R /Filter /FlateDecode >> stream xYn6}s* 3E@?Px$/%˓>$ذ=<˹ 5ξWFnNZo_/ؿ<|ѰoC)5L #w=|d/y;~D(CZg%Hj5T@3ZU}2d6leqFTATJ0 mڳph6<@a ]r@@,YuLY}3erGHXۥ'w㢪3ͺF,TV w',(Ծ-4;1ٻIJ{A1̽m3%ڂB 3aIJ9)yU=(7UY&y׽AUR"P[AmJϊ#\s^E{V(1`*NK bE% ˡ4zw(4.6^˗{ry!Xwu1H^+f jeGE9-ӄgao;1=j*?%!M5iz |d"a,Q>v! Ghf-<2̆LgQ+l 9P\zӊfט|SѶkS2=d `2AF~ $?E;e)\_jLiecb9̜='gySO/»f$Ifq8`vD[\7d C7;?PF@vDݲ+`XS"PxPc" XҼ.,Y`^b/Xm4j~}#1>k`8)w=baLBg&kçXDF&\X(=sh%5S*焭dx+wx<2B"_:X"#֌C%#??<}S>Z #sX"A^Pb0(D6:3LxȽSg2߳Zendstream endobj 261 0 obj 1082 endobj 263 0 obj << /Type /XObject /Subtype /Image /Width 115 /Height 247 /BitsPerComponent 8 /Length 264 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 265 0 R >> stream x TT_l&OEdU04E$EAE 5B=l+LDLPP 4S 60 Sɵ683A>{9e"!!Pbcc[V:?^zZbH(&Zʎ?S4YMV=RE[:"X3sJn#\vL( CLªִu˲W߁IkBwR43R'UFQD[`M.5e܈OkEzE~U? ᆭvUQL_QM5&:[7[yپ;rr>'WFDe*lI`e;nhԼ]JFəh+0AYL.? 5S{|] |#<Tzmu 6yfǧ%ffFYL b_)W#(nna3bc3 ՘'|٠1^{*a*PW}M݄ 7 _??f{7/HZELwFn*PWخބ!/tXni@>u'd{x4ʷr [wZfO@]an+l-lCEلҰ(S45 Fv=\<2"譥jA`S2{B 5sa­ a}RuV,2Hu.3%}C[d2Q#(>rRXHZ̞Pvu'6{Wv eJDȮ0=S펎c+BrTwf/^U#(>eUE2{B՚Ѝ֪k؆[؆ [g Լ7cl 9;GU4uq]*w@|}4g vujL 5(㯧 ʸnU-;,-92kgF3>)F,oO|^D4#& Шyz$lPy!b)LKDБ˹gY[ZFzk^8}+5`BibO꬗&<,SL,99mZ̙W]& IFQvL( [3+.dCn>-9\{JIRREDlhl>279i_hԼ7!b]I+ܔd,հ-j]ڦs~v1x/7F{m-vq Dɡ5oҰ^Ua&@u0!( [lȋ) [l_OaeIbEbmY9%254RR;?ysz)Vo``,&vcC>O/>F=aKQ&3v_ O==<164lLhnxSɏ=wQ.mI2uζKfoK:J`# lRQ]A lp ̕XakSeioXĵbn psTFkvClyk!ýgDpUc@ O$yHb}`Co(1c%}V V?18zM-ᕟMwf, 3֊krV,Z+jˈ%ca;kaa6r25b-}beEV{MM.j?x WH7wN5  ew61DbG(閽.N3 MRGb;ϥNT+gX+PhoힶU$iUv&#Pٕ3b{!#A'į34dWЊU_:[X a~Bc'&ۙsḼm"*]bbE"ѯK^RTCMMLxI(}k'& {.0q)c1dv-֯Vw$վ?~tg e]2YhndHyfW尅Zr?y ag7:9L_ bW/$; Wk mׁkU]Kl,0z#pIbA8+Z]eh[ãFsNaehT4{ :'p uxTcػ=naV% 8!2:<RE"`%Ab HX$H,$ E"Ab HKh2ȋh1,OYS'HMHHH>lL endstream endobj 264 0 obj 3956 endobj 265 0 obj << /Type /XObject /Subtype /Image /Width 115 /Height 247 /BitsPerComponent 8 /Length 266 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xI 1^V 1j)ułO3\|2^=M3 endstream endobj 266 0 obj 77 endobj 262 0 obj << /Type /XObject /Subtype /Image /Width 744 /Height 283 /BitsPerComponent 8 /Length 267 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 268 0 R >> stream xyXTwqywLܙNv'ڝŎ$IE  j}jw1* b"N<]C:|_ԩ*SUV;zh)ɓ'N$C ppny#G'O|gwUe ׮]ŋ={&7FEEɹ۹~+Ξ={ʕǏ+2y9K6 ߯Nfeӧ@[n߾۪U+={L2E"_|YzrwwpB^^^˖-?S/XGHDDĬY>lٲgffŋeRKBBrI&޽M6U&Ν,. 4pEn[f۶mW_}`ӦMj-ZɑAqq񫯾% g߾}A:u̙3Æ S'ewR'cbb?.]*ʠgϞ|޽{e>33S߭[6m̟?_(G3gv_@56qJnPϟ?ן>}ZZQn2eʺuԓ4˗/WYYYB,|tԩ@~~~mΝkMEnQ䖀> 22CJJL=={&-OtO?4;;ׯEQQ<ǏT.VXX[=z$'\r…ܺ=FGGwy֭m۶mԨQJJmI2>{Lf?~>>۩unwS?B9p@zzJFFFi7GoZ#ؑ~r KX{Yfffu)yIL>ɤ$  $ 07o2d%iDnQ\X)3sL KݓkIz4i%///9^z);d-D*p-[zT\ nƺ\)s Dݺuk ܢ D\DrH r \9r'OZDnOGH S@X)s DO hA?\DZOE[̑[H?~"OѣNU\\UHE?8* 9uꔳB?\ bZgǯkСCǎs,jaB?kz'R^9ed[OIIYfիWyܢD\*Z}WFurOD\s˂ "G:E#ؑ~r D鹟H}vZ:E'RONO-F?\ Bnq)”~"O,#hA?uBnq0 T"̑[H?~" OHE?8ťO)[\ r0en5*Cnq0rp˭ '҂~".Rr0Gn#X2HE?8ťO)ZwaÆurp̘1cǎ 9X)s DH2>~xӦM;u 6m$9$8E -[<==A^^oͷsNwwX 111ӧOu^rرx~"-'"L[WZw-̑[H?~"OT.߿q-G?~"p:///eo`iaǟcKnۿ .]jӑ`U2OiJJJ|ʸɿԩS###mur[0ߺ\{!8DZOE[*Cnq!Ϊh)OܢuOtҥ=KW9b#l<ӑ[jEWDjn9gJ6 w ppn1i5\ Bn!st.W-On/cz~]>2m >0en5t[ n%?ze.F9OE.2U?=QV-iOdkn T".bG-=}EQƪӾ:TUeǶM&8|︉l-yg(2V}w`D8*|b:+=Ŧ{~"S˵[ӼsOt 2EQՖ䖹QnrD]#Pչ%eKȐ-O:;5ƍ%%%ZEz].^OWRd--SΝ;WUȮIk ~#o89[['*}[+?S;jºʘ#l[=Vy D=}%OT2|j[_ڷUeNA("؋9rˋI{/|Ga[s(%;;@4\n#[XKQF,[s D1Gnqb9 ر(??_ȅ fdd.OTJn(cEƏ/G䈈0ru֑[[O$5444%ysss{W.uӒ[L.V2b)(\ry--ZNHH\|yZZ>o1en]?EQ*3)rrr;ܺ[Xt =D2fi].jYD2\nBQ,r 2Gn;On\ORrKzze+UpŲݻZ;DE9̷.Rr7|=}tysgUH{ni[,?sKNN7oލ7jq.V2b[\Д)Sb-jժ~׌[OdIKn>g2セnό^`NlDDDl%vZnFGӦM%t['(W(233.]*-%d?|Gok-D/^8~ĕYf8p%Qb]:|+N^}Od~g[,ɨQ$ze~[(rh-%m'^OrLn#zaWO':}(DPBnH'*5xnfճG :cv,]n2XB1V?cf^:OX1"pH9k9'W.:d^;kے;\-?Β7(7{*C G-ԽK3[i2_}6v\8eqߺZ7yS0mkq+tܒydi ]դh2Θ-}l:!"Ć{Gna>7|vޯQ/imIk]L~z{?2Ƚg-e-b:-i;}:g&^?>튗pk]gϞ=eʔ[[Otf[5S>"2{xI^'g+%{~8y R?vjˬ/rܻrz]}Vf+'eF=:㏿ݲ(hf@uӱ8~ʐ+C?S%Ӟ/ς2^+E˖/ѣ{]]Q= Un7t};6.7?ks c:--ݻv [?͘1cqEfΜ9z ϊYhQgi!`vf\\\ /^w_.Je̗ӯUe]g&g=9fZ$r<S/Qνv,ZNf]4c/{r+#o.mCBBULݻyق(VxJҨ,ᏄR||zRK.oeF{}R&4~LӧCP׾/ޕ|I?I[^\nyp|i;[~Otiw7#{*E[[-j܀&yv\2LJB\Ӈxl9λ0/WOV#;Do7xU_o#'c<ˡs[o5mɼ%0c¼-պɛDG.ds|nz$oĆ GU)=+&fv%wܣC)cyn~hm٫燷ZTry=~iӂ5MUQֹE~i&1%eǎ+oذ³kΙ3/SYnI^A?W/.)S뷋ﭔy>M%2|<6L2ƻͨ]wLě[B>ni+i/rq:ΚVّ7xZZǏkLm߾7===''O}$$$ZFr>QsKޏa`rX@f/FY~R.(%Ggҭ'6G*i~nJnY<}??}]־EC˯. J# dLs7vhWgE-_禖۔c%ܿэ$Iz1{gBjKXwe| úyԣ L,vߖ?K&T&?z/2)E< MD-MG|:uؾ^:HH\˕9+`-R^]%NնСؒ'y#Ɏb;+o\`Q|e~ &|W{";On1G?Q϶e]ճG+3Gض[g@̣ $n:z %yvpc<5oNe2mزtܥ%u蝼ad~.ݫXPa[NlPS}(Xi,Z~Z5䊛)cnzoAY>\BI5%HziMrLMNboVxM̘q^<5n:*Fn}u|X$FO3wmWl|^e4asr D*J[.1ǹ~#Ej(5-][{>o4[qY^K,=~`R*I;sü[%o/-Tcn{6<`[ں8j ~ẒK[5~Clv1e.R?.+^)pHeOi4|ܣ#iKZ5ySA\ $?դy4{WH'Y.~$.ʳ?ARZg?SUS<׋=inR5r ҩM`/80jPW ֽc{?=o_|U27oN]11S/3^4b5JOY({ 3zؽuhj꼲^IَrSs}1O.׿ ǖWp#LvNy0~,,[;f+%Te,h")!m*Ւ򟕕9<ڛl_:!> G^) `ZjK>&jՖ㚼mKƗf.y|Ն2 ' UĹÑK,*2 DQ]_,Tg^O. ;ř^g^ln#!OTܢےr*ɣ{nGΪhIaj}oϳZk4"jWB7uWmX[ s˽{wo:s۷osͬ^Z'%%5joTq$7&,uuzuٿOB?Q)nVP]R s5_mΪiֻ~fITׯ_ONN {Ĝk^](UP^qJn;On1G?EQUDU,dSZw P{8f{lʹ#G(]6}"- ['*%P1uU"]z5zw>HM.G'OXƕ-i-\k+r E-U"n҃+[1M?EQUDU"~#/DOy*։5!hq ~"yMFGReڹscBcn9{춗֭[0hРf͚:gr֭͛\$.&)i)Tw[ϟ?۷KM=";;۹?u S[T.Ĺ@-ZOEhYv-+^[Ln5 )Cr N?~"*dܲ4GHE?TRad%ymVG5+++BTTO)v ks牾[ǰE%XX~.W SXs~rϾJj} 'r5-'"X[9n ]Cn)HrK=ӌ~r D9H7]~Ki3'Z-F?~"Ν;'On֬ޝ:uZjM;`?gΜ+'1mr]Dnю~"-L.5_|q6mϟGϦyK^^ڵk###-ďQch!(X)s D9ӳ?U|uƌʤ$+W|#^^^rX 5jy200]v[  hA?ugϞnݺvZeyo.Ȧ$*pLnIKKТ,YD'$$5`";%@B?k'ڹsq$'ܼyDfǏU魟D' ٚ[6lX\& @СCn;ڴH Sl-z5BQQ2M___شb]-'*%E ~)E'҂~".RJn,'Oc>[HE?TBn#iauRGX)s DOTJnrp-%DZOE[#gM<)5cZ:B?krrrN:V' 8;G']DZr].hgb]-F?tܢD\riA?An`I?~"l'zEGGOur '*8SXEn10\ϟ?r"g?3jaB?kuܢD\r:B?p['`~"@?'RO#O)[”~"'N[`].t~"-'"-,'OD0.THiaur0en5-'">|[&;;l@K0㰙+WK?~"[' D*9TvJE?r0L[' EE?:G?~"[' D*9T\ .WeB?L-*9TB?L'ROO2\̄u*S-[<.S\\TfafaלKu(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(2p@б -; `x@ endstream endobj 267 0 obj 11167 endobj 268 0 obj << /Type /XObject /Subtype /Image /Width 744 /Height 283 /BitsPerComponent 8 /Length 269 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xα @ 0^> . Wj3z< endstream endobj 269 0 obj 253 endobj 271 0 obj << /Length 272 0 R /Filter /FlateDecode >> stream xYn6}_`*6${]on ڦEmѼKJJCɌ"A6lKgs=3%)> (^ o_2}$ߏ7ǃ(&_ͽZUkJF>~mUt 2dgP/3D|7%=Nxe[Ed ]U֊8!u^vy 8/t;e` ; :m>ו%(hw 0.gjUŚf̪)6 E.;%~~GDRH-I $ǃ]ϓ_{ֿ̭ۗ_&R IYt.ʖM=0pIomai}%Pi iaFok-E2ssRVѮxT&O1`|Up D(ӑvNjnv+vm!$--b'BdY$]M#kȬ)d}a`hŀnyB> V )^{\MY#u'8I↥8޽6шĉ벲svz˙!z0'!Rd1fSɨɊKzM5][)$%8ޭ~elTl\]Z6(|gJPzbgj&2"wW\}>yeV8A+ f>|kG~"W춮wS5 g48ώ aTD}ȨXHOswm<" hF,6 HdcS!cHjᑊ>WS[~EgT-/{:ΫZjH,?69f$( _`X~jK7=k2C`;ӳKZLh U8:Fy!a= X ^:D;`j3Ĉ)FEm -ry?T4?#ʡHI~gjҪ<^+I\ 3Φʚ g퍸[L鹻:և( (=^E\o!P2UDB)?jendstream endobj 272 0 obj 1120 endobj 275 0 obj << /Type /XObject /Subtype /Image /Width 545 /Height 141 /BitsPerComponent 8 /Length 276 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 277 0 R >> stream xTT׺}wr{޽%&Zh;(( (MEH EEDHSQQAhlKHbM [N& 8a`ַ\|ϙsg;{3DGGdAN8)P gϞ@1d'< (O@1xP b'< (O@1xP b'< (Ob?~\UUE>{lwayjPʕ+nllLMM}`zT8B̙3/^oY/ٳgE{1_|YZZ%鰔|hleܼyzܹEEEd755QCGGG__?000::u̙vvTT;H@@@PPPeeeBBˆ#޽KI@@SN%&&+W6mKFFFҳSRIIw. |(tF~~>˔ 593fx 5?x{dTRRmׯ_K1[ZZn߾mll%CCCkjjI wUO\RJ"""^v dAF12Çb ymۓ5޴)FTĢE^zm&''S RQQh̬T,Y}vѣGd---Q&Ǒb X~:t߼K1&IMMM)nݺwBt_V8::r ORƆK3677@aA%%|(s#Pe1y!C=zeeeAAA!!!'0777zB!GGG&ͩawөOnnnpp)J{yyqb:u%%IaTJ\~=''G&EˤU.r7orիWKJJ={&zVJR#"lYpAY@*QKKK[[GΓ/_Çb˻zիW~ZO 8wEL^Q/q<W8`@ `Et{  ,, @ާ7ogBB09tٳgSRR}~I؀Տezzz(F(tWkkOЯb`EY? `E; @zLwS0@1 @&S1[7RUu\W+:)xb,IQ 3-c])x_?.> @1#op7V[?X*n6F W@NJ1OWIX;~~~zzzjjjKN)zS1jE A >W é wSbڊ2Y}@(|J14zmej__D  2bDb$+F_D  P +d`BCsLF?ň3i^䨘حFU=ݗEnYŒ;c͔d.KpIG u.v8mpv;ftXT ϙbƍlz־TSߨb]9"K&''s+,,Fvvv^>>O<|PVbV1o/tj,[:I*加$өBeqڸ8ӑ+gt&x ~Q&ŋeee_u5P !GjNLh+FB}OE|ɸуYr1vn(7EUYQA >䥘@7ŬbqC+&wo|ګE33Gqc*s(ۅ\ !}yE{kzY15'J(82sv/e6r?h(bbK7}t$TeON_'%;ݪmkDC^Zcҽ!+M:eowN[+1f,.0w(rܲJbLWE1Q_#ME>uq[E8C=}A+DVdhމ%N!oF)гt56̗iϤ m>NcҾ m6TɞZaqC ^KΪ$Ń^..?jdӟ L6[zB#]NV|$ue;lmmh}8P"\O+<<ȈS&W1}622,NaaqWULLnѸi3CotȽ'R|1e|%M6n>&Ψ}nF#Y{hmcS03s RLrI}2DkhcP^NtȵuV8E$M,m322> B]]צ%ɔP^U̝8}({L73PWRTN d.p\8#vقGvzTaN\:oBuP>%Ak7c)gb֤Qd(#)Ȝl3{G%X$NSzd[U_kbfO`MЃ_3G"VoڕC?}ZV%&kNXF‡*cyIv}G"=̚%ǻ,LÚEmơbEBw# 2ڑ(:^O.~tMǤMogx[/l x{y5S )P? r7`7>}ef:;-6Rcw% fTFË NVSCw݆̬:+T_mQ2%'V/>wstTŰo{SnYmokY =Worjǵ#/eۤG,oG=~C?'yDW}J*4OfAimmS %sҶn=GtJ2b>[gA6 Bzu** J&)$كαo3hг?yu'HdMF I}= Y( innf} dzA1|Et3W VtL3pػ%:R̊eOz])择*OMESPJ)gyH1basW)fleCN!-u^lvjT:bD!5FH 6)l"k Π},I9.5ySGٍ29w !&2I1xiO YBA28K1ʣ>zRaWC{YyYyAqb蒃V@FeC7Ug'wJ1{7X_v92jy8}j)NtVDW)0(+$x$Ԏ)ܒcF[+-]iSz蜢]=,%Mݓ :nKa#rjcmUtV}2lhd~UO6q\*^f/^ QC?d#x0zȮ0덫/o.n9 f2AD nM,2>TuKҨN2wXI=" :0pØ6S@7YA_-%b4FOVOuĩ@"7wX+ t&jϚ4G'CriK&' mF; z).3' O ..Fr>B.ye㜹T4q|Mi+OL}ZC*!$YNe۱`؍c1-UNWWw8&Q ܁#Qii[ Ve5 zscEYQrw D/w"YpsCwTqKZ&_{"}$աd^.iHLKF~V[,XdDVgScv;K4f= q~=@Ŀ;A^ӛJ'waT(}S1Y a,Tb@@VxLTIc).@P2蛊?H~P ހbd((PbW VI@(|@1+  P #/B'{x1[b/'3-%>8ϳ?F^^.V @(|ƅ [ſR((PU1( (Pb  P@1  P`Ed@1ӧPׯkeYL\|)$gfwgĀ 'P`EĴψFKKOHV L (O`E=XQ O`O@1x+}0XQ O/^SdAdWҥKodQZZ 2 LTUU566X '< (O@1xP b'< (O@1xP b'< (O@1xP `*++; ///R̠Aw2ĉ; endstream endobj 276 0 obj 6590 endobj 277 0 obj << /Type /XObject /Subtype /Image /Width 545 /Height 141 /BitsPerComponent 8 /Length 278 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x1 0qNP=Z W}k3{F endstream endobj 278 0 obj 124 endobj 274 0 obj << /Type /XObject /Subtype /Image /Width 630 /Height 290 /BitsPerComponent 8 /Length 279 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 280 0 R >> stream xyXgqMss<ɜLfbĸ-;nl5.. "Ȧ(Ɖ]qGDF r_>쥪ǧ(n/wDGG7koٴiӄ (,ꫯQXEa@ -PX@a@ -PX@a@ -PX@a@ -PX@a@ )ݻssssrr1Lawĉ!C#s|a+++p£Gɓ7|s֬YPW^Ν{غu'Okm߾M6_XOLLW_h7/ADt"zeq;fŖzΝ;סEaE|q lQVP*ݫ|||-`6**JYwXWY[w0;}tEM/9sCTf[lyEe8n87/lBB¶mL^vMZ 6̴wvcAܹsgŊܔ +pW^mӧV1bĮ]LC.\5'OL=r%ŷ(bW 9I^Xӛ%E 2k֬ 6hŋsiӦ͖-[JKK#""ڵksN"oyF.\(qFGq +.P[w?KΟ?_\>QG9 ,))Tz$ya% A+//mۊ-7n{ 2+//>|N:)+JMMMc`6m:tH޽{ʊRXgϞ3fn`'$$$%%%''+[.]Tgڵׯ c]b= W^2eo̴ʮ]Oyfheٲe6=9a`O6zuuu׮]utڴiILH~WӅG(Z*b}vy،M69`?a˗kwYb:q:v8x`__ߞ={۷;w?~|eeː)+z d,15:uJ]'//StڇYbhBӓNpv^(1K zizhy1K pM^%66f@/L: kl^%$/,89I~,z-q1z f@-Iw$[WXf@/SX}3;vS^t.A3=*Ia%?Ka:bma%X;KLa\(,5,1:Wa%0K\TN@trEJ~uYb1K @_;"դBa)9f@-ֹ ,1YbZtbs-RV(s-[Ybbع&$/,8g/WOnz,윙F n3d/GEYyߟ(JbGOmpV WYYԆۼx(̾8(,GW ۹O̜{g k׷*HƫǓjrk}ߧy(Xw2K ڽ{wddd 0 !!p㰡mKCEcwzKJ,Χ% &|\zRte8:FrA{"P^:.,.6q6x6EMPq#blzRFtXNފL=.<{c{De?+gH\lբ7CZ3>-.Lq>vxQ#eϗ.N<}E^Vlٲܹs+>c|p0<*ˋ[HrK n=`Tßʍr _{"gc./nO=޵Ϥ6VXQƇY^#:%4OnO;zh[e{[M +_k)Y'[QWٻ6ف}ž.nXRn<(|foQW*KPXf@SM֑ĢA~mr$16d88ƜQCڈvE>(2bЇϣ#āXiƫɥ& +d~6|'1S/Oj:t]e>(i8έwu;>,[q]S]=C&$/,8@w>xe]*ِ7)b@ՋJ73')] tk6͚†LWrz'?h;Ӻ.2yaS2097M8-q\i!7@ak%-l=:?-J'vQZֱퟚ.yvD)٧;,({Ƕ3{WzK~̰i}ٴ/d+ov ,1h:lȶ?N==޳XƊD4A֞muvxL莓|>}CJݿ{cy@܀Cd%z4 *+l)~֝M.ű8D+7S\ط;#?U:+HV??;N׭l,5zH[qvqWMY|"q#Szxuؘ5}?i1ϭe4%äsr+o>;@؜*K2m~;WݖS(++ 51i,ș쿴sߣSԽ~xWqx-Dž;,v{aXYb+--IcJb۳ؿH5$ya8 STT_I' [,1^OzmfarNu%fj҉Yb3paz +yX 8 kBa]%0yz-Q3U1pa%vEI' RR/A ?V֢.RYb-ljܸ˗/&x( u(+r]f)2Kl9faH69׮]SKtf: l҉Yb( N._(]2߫VJ~(KŠW6:_n/pgrÐ(REZfjIDaU_w߿TTTҿ7- Hb^lxRo|1,_'SZf/sfNHH8rUGZ())9 0Kl faHVtjǎjEYbŃC?>SCa+wJa ĀPƖ=_.a% F.h=β1v] k,1`"yaC/_޲eKHHHRRңGG뵟̴Ѯ=%L~ۻ]v={ے8tod)#1K >&<<|111*sR\zuI'Q#mvm΂Yb`dxڵkO4k&EFڻwo77M6)n]cؘ%vq!!!IIIQzO]h &̋ªL /^8טt26f]A(,,pg_~}~~~YY?1Wfp=/Jۿ{by|=šyؒԘq H8.7lt[eb-8U";;Yf͛7߶m#?uijpeG~RТ5w[0va8-:t%yaQWΝ;73n8G~v k- kBaaXrʫĪU^z饗_~yϞ=`X#W F k [\\"OM0_r儮>|ݷAPF=uꔾϔw1r6xwwwݻwo>{)<_ !3vnײxώ!|LxU4F 6rHQ;v#֯^j=@CYO/y/f:kԮ͛7=~XGVW =NyJN/g,ֶ%1ʧR;Ր5K|ń]bkϙY] [}'teBBZJam /-Ǯ_Xi" paٳgUS-lJ͛+GL #^_jHš䮨R |j),deYb>>RcKo8KZN)3:ԑ5@ag|[ۿ0:fn^5yg_zYS ;ſxaHG>Sݷ)yy|ذZ )ltڒEa-g:e'7rLQXV,g7am.. ,V&Ey_4ŝB6Yb  k)'O֬^rEμ9,),d#yaEaUGa!UafiWXEUUUݻǙBoƛ%*eW?{8M + ÐgªC.NRc_Aa /:::I?z?1,V<=5͛ ݻw˛$]8׮7FaqffI԰0ww<`OOƮJa|||Ŀ*ˏGa O{_\\\ZZ>C2K\׋[uuumB]Lk7 &ܺunsԨQF .<}xZϜ9nǎZ~oW.lB[z-IQ^ױr Z.UX1c(۶m[recPXXgeemڴIܿ? @ٸq^wɒ%f.pdX&&&ƴ>g]ANƌؕ haʂAgNv43֨(T%v^zuƌŋM }lݺW_]jqǏߵk믿+.8^NMM_zk׮UĊ'OOqqPXà, C???ek,;wL2%''Gi㕕qqqRWTkҩ7rV60(<%v իo›Ow***m޽{c ۃ:5'yXvGWuN8UUU3NIkw*//7<&j|>rS؆(aPXyH^+s;@l*;|K eee Ν3߾{n|(qƉSN.s___L¾oom䅵DAA*R;/jm/xwu:s QXàR}8??߆5w\z||8kժU6uAC?Σ 1vwnHX4WK>=9[>sf̘QoW-SQQQ ,3Gi;տG.J?snI{cx.zl\6ypV>b8eʔP?,,§)((hǎM /}vヲeX\@wΦQXkQXàuXyqvF5w]%VV60(<$/,y̾^#:tpKhbIc;;>}~%U.)ZsR|&xuu*+g(lcBBBݻgIr#?e|/Ӓ96lg.KMPuբel;5 +gU?ɨ=zf՗VTT[: xV#\b)C,-)&>>O])T(aPXy8,qSX=8|7RUUe񥗐W1d(asŗjjj=?š<,AP*5BaeCa {~Ç)9 ,1*mƐ _o2( /,UMxS\ªEZª6DaŃ,s% /)h=U ! Aa,1 5 +f/ltt &l۶ša)IAAQPXs2{]|y-wp#֜eؤ~!C Ka!- {…o<|І$/ \XPX i3,15$f)(l(aPXy0KLam@a),Ea!yXk̛4wJt_l/S'XZbHLE4e{ [5 + k,ҥKz;v옎5Ga CѣGcۈ [ZZ3U^^nnSXȌJH (,dFa IYbgGa(< 6KRX i2b5'yXg)ZRX i9e֭[/^~Z SֶYb5q$͝;Wۜ>} ~tCa!$V oVGt$Da!3͛7𨥰 0K XBf.lm]D֬YSSSSKa5,1\3g k,1`- -Yd…az &NE3i%^lݶC6*Ŗ{w%9/f*Mg6_E s?-jZh񹢣=22rȑ6~={lѢEeeV%¦y_}ͧ>ðϝ4cbo&]ϦOXl͘7߾R^f/W- 1K7K\QQiӦXuSL:EPXxaa/9cX>Ibe?Hũ]yi{4]~MYj}zo lXpFٵ%b걤'7s3K/X\ٴg,oPXW&ya%;6{eINNTffi=11qĈ rђ-$/, w޳Д8{CBB,X6ˋBS\b.bʕ٥ʇL'8 f8 M1K eQXhJv(,4%ya% MI^X֘%(, %(,4%yX @;$/,hBkpM!3> stream xα @ 1La-| Vޣg9 M endstream endobj 281 0 obj 227 endobj 273 0 obj << /Type /XObject /Subtype /Image /Width 115 /Height 434 /BitsPerComponent 8 /Length 282 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 283 0 R >> stream xiTSgD\juu-ҪS""+(n XPqA+V:uŪ*(}+}ty1y7 yO ˟$IMSWopeiʀJ[}SU*a cny:Y9aIωw|D,u\؝#]4A1hv;lOm^}}o>]F;F,`bPS9M}륎CqWjM~n؛Z>pt|ӢLr?]zv{ЬΣĝ7A1?ѧ5RMءO]fN^QWbE^Ӯ'lzܫ][xna[F^vCad&(k3L"K7mzΨ^iı*Ŋ*ú_*!6U_"S-{Js!ϙo{RL"K7qζ5f [_űX1CEuX̲ em{venqL# =kbP\ Oќ)VzVŵ*CEu6mhW՜rq4qd#; 4`ix{՜)VzTS-{Xڡ:2>B:󚹯BneOiS&(+tL"K7iܧkq,cbpT0!]l;Ttcݵf.v1mN=ڟŊuiB1?ްuO+[bE:n۹OWi[?-u>P^#Ғi][DmM ;:w㊎Q [y+է Šmi{+>:AK5շv^\Ӽ={s5iY-&5A1hvea}'yEOj];z)>5m***>_: Vk?⃟9kb6/{NgS`*쯬lTȰVu1Ümol_MM'Q,Z+)*F묪_Lnm[4 JU3򦂇kY[Ef̿#~ljSs '^ˣܓ: ?WGckQ-߱Y}/p(q\3FG=1z؊\|-WpUͪCcK?aKa|X\0, Â`X aA0, Â`X aA agc^U1V{o^ݮNÐE֫m["Q ִ9bQCm`ߤOY.5wuR[Fc6gommS~r]ls^+aA0,KMJJZXa#>y5m-V|7= gʰ Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, Â`X aA0, i.ӈ $T sQWeU6{FޑrJ}R[>iϾGW(zLܭ5#՟z;/M4n%ĵ͗.K-X_+ÀDiȔ'~?gtiJv{!kVـ=q'{I9&tK`*׭49sDGycXcŽ\)p-|msT3|/Övc ~.d # kTXq\lY'f/8쒔a+o1sHf2la;%woNi2U<$Ѩt~sN3la!+<Đk Ǯ̰]M\5oaR {RA`R&%%{f@ba)n\? Ja& aA0, Â`X aA| r)>y_*s endstream endobj 282 0 obj 4228 endobj 283 0 obj << /Type /XObject /Subtype /Image /Width 115 /Height 434 /BitsPerComponent 8 /Length 284 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xI 0Gث5d-jK9>e}O'5 endstream endobj 284 0 obj 93 endobj 286 0 obj << /Length 287 0 R /Filter /FlateDecode >> stream xYn8 ?9II=HnN `N0(Yv6n.dS$ Y-`Gz>Y4㣡˻SjI n8 g}Iwg^+!!3$AQ@fHDZ|ǫ Vdi*"㌨R+P+JaD3+4ibq:3h#Ftd1)f= άnf~#cAKjyU5guXxG߀}3sw578ڷ惦S7NJV/{fJB/Iք%)EHȡN̳T&WID!$2k >Z)ݪ _֫*{b>+fnD5cUgu?qFR)j~p qA{"5\[ޕVDza9@ř ryײ\%e,u] JYkZ9C›ǯJ,iV[ S`Qwx<)vS=#a \ \wi$\BgmEK7mxrOދ _ۙ YW:)A|zH& ʕhEd瞢͖&ڰrQ/ݬM*b  rA.FFռּFt)HӳxXn)|F;fr xA.ol6 f+NrM/%Syq0 8”c\{|>VrO#ImeA98rO/)XXX jnՀ#(~Kendstream endobj 287 0 obj 1085 endobj 290 0 obj << /Type /XObject /Subtype /Image /Width 115 /Height 111 /BitsPerComponent 8 /Length 291 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 292 0 R >> stream x TSW! ;(A[) nTqDAA\-cԎqǣkqlP5ts{\`>y^%DO/sϋ="/$j!jbdf֊*7@"[CMdp\;2lȼ2D 7B`,Fu. zFu>nqcl1 P\[ǹ SfmNc"5S]c`ӱ XMrVA5ȑGˢ/P+i-Y삕WI``ӱ I%ՋglyB߂!k Ϋ',Akd3\e`CD>Պsj-㉗~|t,o7O Aj|%r5ΠCpy>nPiw ":!lwpDRTLOߣCϿ+K{V00qwI ۮeԵt3 ziҪʪC λqYWC{{Uvp@ri I1p Aj\\7P8E.;y ȃ1*:MON^b׭5@!I4~AI'Cw]p4*Pg+CYwt0qJӊ;sTV@tža)>CrSۍ0uWb 5fBZl:38*7o!3底mwb@ʠFH:iG²K AjoldAL@]kiCs;^a ]&L9qbO= 8GdB',Ą=@ k3__HP&.Ktr7pᨰOeP>ޥ}z$M|yO'i`R>1x k3_v_Ho }oe/A|LrαOp.2/h"\+K|kl9ܒ:q: # *.A;"V+|׻%[E,~6݇U={Vus4]Yc^-C}&=.xg6.M):V?fL}prlhZjqߊ9 C}&}' 1SvJ:Ivzuג4鍩褽9$y!>NdžZvlYyH.Hes0N\_R\̼#tM= l,$C} lpyA :Mu!CPq#t6ledC6rwȆ2O;N&?!&k@!&XF?'Vd$}hm.V`b=.ߧ&VOּ ^:OMR&`RWqoXhe!](Vo9m_y|16>C<{B^)L#]` _ol99% qZy늮닋O I#Wz⠰5'sf%oy8ًDBF׎,xk76NuwBӗ8Cezu8NMx2رڻ;R&]Q~ u#qbs`*߻&JPsw;ڱ;D}՚FeqCuM;?xbȗΧa/ެ4Nm(v]_u.RL!ҝK{9i(;􈜣hz܄,~@0Gi9% GB6HfeB`9R7MfkHr$#! H,GB`9ˑXr$#F",&u2s@-l endstream endobj 291 0 obj 2553 endobj 292 0 obj << /Type /XObject /Subtype /Image /Width 115 /Height 111 /BitsPerComponent 8 /Length 293 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xI 1^'1j)ułO3\|2^>v endstream endobj 293 0 obj 62 endobj 289 0 obj << /Type /XObject /Subtype /Image /Width 513 /Height 240 /BitsPerComponent 8 /Length 294 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 295 0 R >> stream x{xq˧>{c[hUPE* D wDE $B,B`4X  !DU0$|ma3;;><ٙgf~?|b222nm۶](fǎD(H"`ѢED(e,"EP"@YD(e,"EP"@YD(e,"E SNmݺUVXQVVŋWZp89͑/Ο?lٲ .#422駟8pcccDĉ׭[k׮WVVf͚lrڵ/-[YIP?" --mV{OSPP͑ 9 s=m۶O'O۹&M*,,~M5رcu˵سgs5+Wt=*..h+V¦M> SSS}(S"@ymʕ+w_eee/]$s$ 1Nnݺ'GI"@qv=h3֭ٳի߰;-ZH:v|8JHS/gծrEqF=zŋ2q yFEEa gpݻWCBBbbbh@9avQ?"~tsUUUM@A  Ae\wDKtP# ๳l'PJnW/" ).\qEQ>q&~'E@ya/ Ц4ӿ8e8mXw7/EYDTTTtY~a:KF!ݴx_MP5$"ˏ`_Fe"P?",\D%YrDEQ>/",LQϋ$"(O$K(E~tS@pĈ <)"(ʓ",(ʓ",AEyRDGw0EYԏ銝L_zj/6mI߭,ʙ0cG7kS&M"k9>jDߎzs٧ jNX_5K#sLv#MM{9Ԟ&stR$ 3!O>qO.Re]mp;BF=;~zO䡬,/RRRÈ #]m4R#̼%9^ :ٯ뜿ΓϷ{#rs$^h'ii.q~̉rn_^uiĖz.G 2VE-ڠi.=Dٖ5'iR\][/MڴdYj[C /Ү*;6? F[zXrvϛָw eS}K3ԏ{M{BrִJw,Kq XlYkk#zʙ s?ߦ֏*p=L2xqw@h3f?/yPڴ\G0[G]yui5wҧ[+}qcH=~l77:[˖Tbo;xȹ3mɔ>xS(x;OD{(!+#T޷eѽ'ں2~ʨoUûb~Kc~~kͮ{Gm"e}_H8wDߎڎir;P,"dX-M<=Ӈ􌱽ez<62a|=ڤL[0mG|ˏVEhgEs& 4os5{w}o[Ȓk2˜ /=d%ZrCdD۴z=Wo$>WcMGIDuy#rΙ̚W8tg78]䦛kpH{8y|[rBZ%DLzP9gǖIor2˟q#N|#{eb| #㋌/"6d|Tsէ˄=j?&qݢIҲ}3ؖr6h=)]{TV_Dp3,\zVU"`wǪc>{iŮv wˏʴЧmb;h.`%;)yߛ_=5.:::22r@>DeB|R+wK9RZM|gɉ ڥsD,6"HsFk7Nɓ'r#(X;@!LG0 `:D+ `A"@c>|㞩0{z˒##`@YYYnNggFe&e>1DjͲ1f@E0qR,"|` BX ~%%%vT{HAtj .$&&$;s ݒgf T♩SgϞ٩Shjpcg3d<Dt3}h.8p@RR_,y#h#O$um<ƈ r1bĈ&M,_SP^rKC#p\._1O$;s*fn3FwjʕjH |BƼ?,"֣kܸZ2xu̬=ZoA :;f.^h #y/૒JtC7`:"fw0{0P̠FA7"D@3*|` I@ D:fU0" T@w0t3}# 6\"'KӘȠ"tD՚_sNa% fڧQ0"ؾmKR|mz4Ŧ=q7xb_]׾}DCtOSNJwh322l6Ϟ=\7|P 3Uuu7{K.W0"0@tC7`:ӏjQ^DX fݻwРAǏ_bz#D|k#9 ň x_;DcccKJJ-0p##륃6FP-eLNNl/_nkV=zЦ.]o9ݻw7n̙3%&&6C?Ip}¼ţ]6F˻vyJҒ梅ww޿oWz뭍jdddDRjv>W7n;8}+@(EfA|}9$"@)JE ?qSJ!!'DT0"If@#`$F!0RCtOЇ0R >"FR*F#`$"jvGHJE ?>:$fVWW駻v_N(Їxr@6o޼޾}{Ν̙yʕB(E`D7A>zh8ydNd.dƌ7oϹ9{9XQRR-Z 'k֬pႇ/;v)SnpŠrrr9؂ yXb̙-5VDDDN8*..bbDPRRy;w֚_+z왟/bFЄ \y^nr")"~MTTT 2d߾}2 =x`~.^(GlllMBMdggǻ9q6_Ξ=#B.|D'B#Gw0?!?aD |D'D #  ?!GOOG~Bw0 G~ˆ >"|tOZu„ SM2j("+"SF!\0˗ "@Yx`PA,@YD(A " 0"Ew0(+# 33sV W\09as|2'G"@YD(e,"EP"@YD(e,"EP"@YD(e,"E@~~~%@1-[ѣTb^.P endstream endobj 294 0 obj 6261 endobj 295 0 obj << /Type /XObject /Subtype /Image /Width 513 /Height 240 /BitsPerComponent 8 /Length 296 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x 0ib8IcutWz@4E 1 endstream endobj 296 0 obj 161 endobj 288 0 obj << /Type /XObject /Subtype /Image /Width 336 /Height 269 /BitsPerComponent 8 /Length 297 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 298 0 R >> stream xyXwqLdٍDGtrE1&֨xb@#rJi&(4"" 2*b4HƓC DE@+v:~Uy=44o3EuNNN3͉@֯_ߢw=@z@?;~w@z@?;~w@z{zC-[q?s ]>yM޽KoݺI䊊~͛s'NX%]֭[[ZZkIWK;ܹc@dkȑf*(( iuu5]2eʌ3Flljj6lXZZ][p!w%ܰaC~igBB,--MJJ3gAAAwvqqy뭷k֬sX Ef;vs{BvvG|53444X^E_ -/Ξ=Ϸ~/ji2;FƏOGvn'й 'OWXv:(&&gϞwZw6^KgffZ^;n,;v{,/9@jjjH曡C.|O?ݳgC?] F˽qcc})4i`p"嫣l?##"zi:; .]DZ/wX_deϘ1cn߾M-;#$EnQt}7ys=WTTD;6гs(-NX>99OY:{xx9wNoG;9=Uw||a>w|q+.!!!Z͌F7!ηT(uw][vVK{|>44q4; :tЮ]`/m?BT)}+ ?|SN)}+ "nܸ~4;:2Lׯ_WV?vIIIQVoy)}+7M>Cطo |GtXҷ@)99ٲzg|^%׮]F4xZGDDX֗Qyydx۹s 5@ˣ:==3eAϼ9m ⵚ&nZuZVO4hB|?-\TO<Էo_ (--{qy}/;=O_+ N|Ezcŋz)z [|˗/ xGu+ ܹ#;hz祿<;;[w(:; Aydee?~\wiwu*L n yk6448r Ayщd zgAQA RQ:wd zgz|^D".שKƠwwk:ϋd zgz|^,.`nsTh{}M6͑޻RˣQzϋd#w_͜9ӑf6wYh%77>\SޫݿOʕ+'Œ1?wwOOόJ+^NlU^PjOٞa]`|^>Qw5y흊XѰ֋)ʢ˲m?Roݺe]`w-dû^֭#s_FG wyGHd zg}=kEy-ËީМ F ,lw?Q]0|Ep---{@]/]@ w^uݦPFG>'{Wd;:f X2Ma/\=).ʵq؜ [2M:@T'A͂?'y-Ë{?oC^L+?K=N hwwK#fsߺ;z|^1hG"N2;8d /$su{~~dmzg|^GE۽+9ػ`&11ߟN,vCbaj>1w{MhݺunnnӦM{{ě*y;9d /9;w4)))W^PݻKޙ]dd>/ʒ1wf{|T;e^;zwu,k^fT{DQXپ/h4?^|^%cxQ{&=555<<wv{SRcG^Li>$h*nϙ3gT׻KpʕRE9KJJ茑>t|u/7=Y582 -**c=w|^%ctEi3ڙ[4:EޭyKz}|^,/ۦ|^%c@oڴ)??;]Id h=1j.".ђ1x{!>d| zEtKƀ#8~{m>5r|/))?tu>D%cޯIHY;e{~zg|^'3I1gw.]1zˣg5ѻ⽋Hս˰dґ#GV^A mm>/Ò1l"pIpR[+V[W/8;;+;r-˺ *;R[PXx[tZF1--i8Wwug^,{bhB̽{/]^UUEOsoKJJzG0m^ޣsOe=)g|tw)]1m^r s~@E\2|xrǙ|{лx$˼d /лwJUy>/1w`6{p[;'5efuґ^лZz={Vj7.|^%cxAꝞPѩ"KջwwƩe>Ԓ1w._2NKyԲd&{ߘm\ "Y]d:U]P/]Ud{onn(t0߻p ,Ud z)d>%c;Hy(Ըd z)?{i_DXe1mڴ˗/rec{z4nع߼Fnn6kɨ6q;} UrN.{cDFFvJb!zϷlݺMo=X1yPf,N]lq3"1ߎ3?O_h̼~3]Ow\F9偁/^ %eS>֨vхy/\VE'h]~uPXɏSe-W:4ޯ i:{7oi =`tyQpz!{ϳ|w3N]YGpCz쁾s 3ao‹wMs<г6m`@A :΁ɏ=z)0޻ vK=z)|>ozX ;Hy;|G uL@A |y2;0N?s$=Уw`V6HwOHܰ"jmH܆DEy <ѻ`>8)rGnW޽{ѻ0>S TOwx mPl|^\zлy:ۀ=0yI@La|^8;]]yp`>/AKл=pm|N8ЃR0W  ?uFzz’yF.NRuVUUJOkf>o}ve͢_gFFיk[朜UyP5:(((PVzw`>C`>ya|^`z0Gto+ob>mW\q1:!zRq|6A~}:ʹ_J.ȹ tDσl>xb!S=,˗/+9yP5_?>@f'z`~^`7R=l w0;`[cg^1^YyPul."Rc&MQj=nBkkޕJy(w`(z *qkN;P"g \pA؍G0>pۏ'ѣGkkkx c>/!~޵;urgT{cccLL D2@*N{SSSZZh@R|^Tk]\\ tz yPu;wlٲb;wy@߸qۖ0;2@G|л~zzW)u+&T󽗔ٳ]ػc>Rzy;g-{|yyyTThu*ޭ7 _?h׷]¹|||BCCE%00~~~vFDD3fzW)i+7oྉ?*U [o6 1_}n=q¼N{6'i."R] 4;^XXhzoi/n=e9s qY\<ޟ2}ۑ~X_M0uO?y==>;((;D+W4L|lժU{f͚ջwo~\yփ}8iE2,1?7}H%]ظh܌t!X[w)=5|َ~6??n^:Z]^7zG~8Tbxskgz$*.Oǿ~)J y[["=9rrҮoG]RʛCsО;?kt;yл 0W){zt!c'$.4{.ڹK$;`OL|UW;yaceg L0ue:|ԤtG`|^2F؆xˠg,?5л{|6л лJw.*;;:zG`>R]?c>뽱uS!Ue{l."RZ(2j^ҎσV{ׁ л~0;2@RmS}h.CZ\~]O.0>1;"|@<0u "{|@D@?0`Dx_}Ub߿C 8z@?;~w@z@?;~w@z@?;~w@}ԩ}J477b''RЇP endstream endobj 297 0 obj 6261 endobj 298 0 obj << /Type /XObject /Subtype /Image /Width 336 /Height 269 /BitsPerComponent 8 /Length 299 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xA !/&ew1Vd&s8(Ze[6 < endstream endobj 299 0 obj 139 endobj 301 0 obj << /Length 302 0 R /Filter /FlateDecode >> stream xZn0}3N$[U />vb;--jƳ\Μ;R~6¾*{Dr||A~me&캮l:\2™]u5QW)}J2/QTA$|r:S?^oE"2l) H5KTTQc(j_֮3_W<ɉh%LtD>)z9 9ͬGJQr>W~6u%hVRQ8l^mҭ?^ؿwPٲTQd_Wݐ6$B_Lm"$ؚQzq MW\jP2 ^eol@墥HѤToxjze$&3A䒇\SD;z|cy  Tn>I8)=K._-e֕\2#qKkA b\5t&cL"dH h@Ud[C"nKji%'S*黋@qԭ #!T?g~^]}/dBއfT  HX^G(]|en VԹ, Ck {Nt~lFcM{o3؟kDY7{VPNJ0s@_n92dxD+!?=l'gV $LCn9;Xۨ&>@hh+ZIFRBLpPSDS6[<}h؆:6G6Tvgvb'/v#v4L vYs>,X<P!bUtU")nlVBuU* d>Ag|,<IP8 #jܷAxWpឃ!'o rHqendstream endobj 302 0 obj 1132 endobj 303 0 obj << /Type /XObject /Subtype /Image /Width 1176 /Height 376 /BitsPerComponent 8 /Length 304 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 305 0 R >> stream x\Gcb&vTTĆcEbE{v@PA7_$1޳ae;>e{n 2eJ``̙3޽[ `Gj7Q( BP( %TeJs!RKNBP( BP(Jk(7e) BP( BP–.~7ckԲ< sW8rwζЉ^NەkCP( BUqZ?"hu VHJ7q[ %I6N]}u¢sלwаC&Ʉ-9B BP(*SIiY*)(epPWRrܨuIjgjC6W6QX ?vtg_* BP( %ߞ~(r`7 u%q}{Xo&;s絎]_wͳv;e5ymnw#5dً7zqؙA'mҭ_* BP( %^sBT9>A5;E^W<\ IdF^18ܡf*U"y]p+)0or'zxe-B^gO!q=WO`ARwØ{kZiac.?hsc".DQSvqå:D1w _q6٩3o^q7>}#^#W?rީZgn.m{G#o( BP(9y=㦊"҇ѩcFW늇[a싔><&}+ԕ<ǵ ˨7*P6r_ۣ?eЍ^K~S۟R~xc]Vh2a_Rq_ a[CtJzɍ)⟿7o>\:sߏϷݩr,u֋ ( ȟx65.qȝV&篿<ھNuS>GosҠ=M1}H oEo?G nJ ;*-lQ S}ew|Zw/plUzzٖC^MVOy̥%kmo<G;Yn%owM_n玃+Wؙ՛Vl7賮P Ig|bN.;ߥKp&<5vQ߾_t/Be۶>Jvdg١j~}%Rr jzC+%1g׸m[;j7铽3>YMu. Z}z`?Xg0b[i8j~I8_i]Qwga2uge9 [t]X匚O1rց-OEsܭ';|dP:Ƽ6O]Ruk9WƗlI&"35v:_ouM:ɛҏza[kا|֞G5u%V#D:uKT5y1j=+Ynddu}СI)G_iR-(e[wWm|5ZO=c<|G]eB6SG/]g BP( Bi[ջn9>]fyW늇Xa yrZS9)9 Ūu|g.Em+ |lc''[Jխ}\߱wس}0Imj/]JV 'd]\w>ǵbŌDž\Nj&p4񧨠 NYῧ(8/UA>#y [uU_l"C3ܘ-zywqIxVVek6}g>qpS؏˷*,pߤW7UܿOWoަ~#9k_Kû|=JW]J96^Xg%E_ɋ:6| M4aͷ7 cZshPį:{-gUl> BP( e󆎣/f뉥jOy]>90[aV2u#BR_w~f_\Qe1%JDQzc}J5N-鱾W?8mR~ai}OP FnCC/D͛xؕ>/\hΫ4WA32đ&/oZn嚌q?N9Sv-;C帒ջn|Qgy$/o㺏um~گLͯ'[zﺽW#RPza]h395'-$juFYլ &o2ĺSG.-FUŎ GP( BLPU;kyE&X9Nz\~^wD։M$hٴՠו@{ fs}ݥ˨}v9$<­\.cNދ$ڷ/A Vi[mcm'$?H{r*Ic7oE<Nju[[5g͟tiiR]us%2鷿߾}W$F=w>Wgg]WK?ݨuc{hw}gL?Ӝ1,w)}^{?FvX|<~gjVv|0/:xǞ1;ѯ~\[WoX jag?~op+=O}O˭5=p=Ͻu{" }A3V_}(bZ5pBP( 2MUns*MB]s\A2U^[ohץˠW~sP!={誖Mup~s?H_gO5tY#įN+_6\-'Wh-9!cSVS:׏Z63+N&]WVnXOto q? Zt˞AJ+N:r,CWqN`.ʻv4~RzJEJw/"'p1rf} ^;@NY:ͺWi5,cͺU̒ g]mWmTh6,nd:=6eCN^L kw}cn{[k|aK_ bdN0P( BP ;ȁ?+ԕ<5v!Sy٥∩#'>l)j賯N5<59eͮtQj\h'~N|b;Uk?oP~{t_]5@FFq|Cey(Y V|H18{s΋IIkt^($;Jz\ Җ|dp_g␣X 4uI^ЍkU}\"z}#d92.r/NC)&-a3nu=ɠϬ'/{0t "=j 9ːBP( Bʷ^6䴊"fpPW"iݧUm5͆^l>S߭(]֩m8F^vj'-,ȏԗ WpZr#.4;o?=x"x1״sW\>t:$,<|KUq[; =+GP( BtUAB&X9ը+&xnlwSAA[~{Su|_~F>kKE,pCM!SYS"4t, qWs|( BP(T./y0& BP( B/y $rZ常5666X!9y9.6b|Byd ̘ҤAvy/N؆V^(1b[ɢv݄db\&k?X}9rЗv)yM<)VV6>HJ9Ebt9Nydl|['ժh>/Sɀn>w}'*!)&,emrUs>M"`F=ݏ1ዬ[̔Rt~E V<,|59ᮝ&qy8.ǑV+ǥ%i1W"7v2l "@V1VKMQx8|5)ާ䱼-rd #c6015m߰ZE%yJvhwFDjjs{ݫqU4qy}y4*¥([續SD9qUs@9 80/@9 80/@9 80/@9 80/0jKKKXq@ji&;C/i% w%͋!&59Ċ.VZ*B.dDېۭu2Ag%h\&Fn.ޠZ"*VIj\EY]>~LF"lޓǶ+̅h=}ܿ,񑝭Ge}Z[$Fl n\0vd9NصY^ڡˌ'=izN(C6mk8 : m`gqI/þa9(bV/rz! ŖJhC9rz_EQk%Z@f"//,W!(K+G*]2:lcWqb {^?w}WC>KF+Xam FDZ0"a1x+зذ}@54r@\j}f8F ZL sIM<ϓeיeAk ]KNMx0]O~gAIKMhq{2X0qF֭TG%6Lb31沕gIIm^x^jt70']f&G)OdU𨀍aIH9N6I)䴴 c,S#'ʿiT\/^[Ӥꖥ:&G%Vۍw"#wUKpxHTBOaojnW9c.t_P٢F!{:tiW8)Oڅ\U麟*2B}D QF8cD3ߩoDzpfw"]]~MB;t8'w5"9NS Ik3}aN,''<|vy p0E2Z9l$%QD0nhOJnL r:EFDFDFDFDFDFDFD9Nɢ#######dррррррр@Svhhhhhhhh ǩ;Y4`D4`D4`D4`D4`D4`D4`D4ԁ,0"0"0"0"0"0"0"qN        8u`'r:EFDFDFDFDFDFDFD9Nɢ#######dррррррр@Svhhhhhhhh ǩ;Y4`D4`D4`D4`D4`D4`D4`D4ԁ,0"0"0"0"0"0"0"qN        8u`'临5666Q',0"0"0"0"0"0"0"rdррррррр6ǥ&ӭ^z=!P cl/caF`$K0 ;F b9.)&ؿ]" +1⇤Tۈ=yl cH@}eTl!G&dzd;9)ާnqO6v1|ob2#.HMHwG3HcΟ`$(=|gˆA: X5ߥORh]"+YNDqk[<)562dFJNx͘RR#oѩw2a^x^jĘVVC%%%cW0Em?;FHzM#fF wd3q$8A͸$}ܕi9.6@:el-Y{T_kw?I :g싖cxJ ې(;@z}K[Jc&DDNLjQ?W[zӈ~"#0#l=}g#Y|s\䚇'kL"bHI]BŜ^|hL\Bu9D_&ŽEdQdDD6'Άr`DE&03)1/#=`$а]1RV(Ԥ3eיe[ą+S(Nd;Fy!op>wl#<הWΞ0MrU!}}Skr?,QCo'壙6vō`cH:C|v oylN8d&!~h#DF {S9F^;{:H6U9͹59`&1Hh[n!ju0#Z#QxF540%F9%?=rL_}?Q|Yi|r\nN&;9qoF 640u kh<`D]C#\bD1s\ܓ- slg? Wkc.7H><: \̙c3Av45-ˆF540u kh<`D]CK#f3q&z"lh<`D]C#QxF54Ĉ1q1^}O .!5MEWny;FaF^]jEq+ DԻʞ]ءW%G]{ u =C=9Ċ.L>F5ԁZ шֻv2#2>9IprE-a+ #0G#.8Èr`S!W{F[82k[>A/R_.Xgr!rmkvcu u'q4bԄv6"k|ɎKIHWny;FaF.8`ĔQLjE˱O9oe ZYY߉WcB#{qX9ΐQP>kqG#TK>D>MJvPoIHWny;FaF.8`4Fȵ==O NN#`<29]+rD.S0G86T#g-NhqqkMI{Gl kN ^v2ìHO]jEq<gC0‰iq )9V&pBezRu"G:DgP k8A*%D [4J;e~G0i-o'È:ڈTߥV3p6#Ɉ ra/OckÖ\s򟢟伕&=-vMXLaJP;'0G81ER#g-Nhqi)qlmVEJ;9D;Y7LzEƿr06"=wL# u'Yq'[!)+1amÈ:D؟T#g-Nhqii[r4;2>9mrE;*;ʗ/0[NuW/dDz(0b!sǭ,Gp)1u  Kz]ˆrA%50|2r\jjjpp},Y2qD???ɓ'?~8..|5KDqIq7|Z.dgkWx~RRiȺL_dQ9yRg #o(Fxy+cl,mĭ$QP#kqb9ĴȤ H| wuu1bĭ[bbbP9d'È:`F8QxF540%F9ǑHNr\BBBtt4y.aÆ{&Q.K L-D0xF540u khx DaD0BO# "0 0BO# "0 qrr[# ޼yCN6%%%***44T29m۶Od;F#D0ِ(##D0ِ(#''o.0'Ά `D'Ά `D89qtQgC0hgC0hr8dF`!QF4F`!QF49Nrv2F#D0ِ(##D0ِ(#'9;#z"lFMz"lFM@Lwu=p6d#&=p6d#& AN;:`F82E`D`F82E`D a'`D0BO# "0 0BO# "0 qr㰓0'Ά `D'Ά `D89qtQgC0hgC0hr8dF`!QF4F`!QF49Nrv2F#D0ِ(##D0ِ(#'9;#z"lFMz"lFM@Lwu=p6d#&=p6d#& AN;:`F82E`D`F82E`D a'`D0BO# "0 0BO# "0 qr㰓0'Ά `D'Ά `D89qtQgC0hgC0hr8dF`!QF4F`!QF49Nrv2F#D0ِ(##D0ِ(#'9;#z"lFMz"lFM@Lwu=p6d#&=p6d#& AN;:`F82E`D`F82E`D a'`D0BO# "0 0BO# "0 qr㰓0'Ά `D'Ά `D89qtQgC0hgC0hr8dF`!QF4F`!QF49Nrv2F#D0ِ(##D0ِ(#'9;#z"lFMz"lFM@Lwu=p6d#&=p6d#& AN;:`F82E`D`F82E`D a'`D0BO# "0 0BO# "0 qr㰓0'Ά `D'Ά `D89qtQgC0hgC0hr8dF`!QF4F`!QF49Nrv2F#D0ِ(##D0ِ(#'9;#z"lFMz"lFM@Lwu=p6d#&=p6d#& AN;:`F82E`D`F82E`D a'`D0BO# "0 0BO# "0 qr㰓0'Ά `D'Ά `D89qtQgC0hgC0hr8dF`!QF4F`!QF49Nrv2F#D0ِ(##D0ِ(#'9;#z"lFMz"lFM@Lwu=p6d#&=p6d#& AN;:`F82E`D`F82E`D a'`D0BO# "0 0BO# "0 qr㰓0'Ά `D'Ά `D89qtQgC0hgC0hr8dF`!QF4F`!QF49Nrv2F#D0ِ(##D0ِ(#'9;#z"lFMz"lFM@Lwu=p6d#&=p6d#& AN;:`F82E`D`F82E`D a'`D0BO# "0 0BO# "0 qr㰓0'Ά `D'Ά `D89qtQgC0hgC0hr8dF`!QF4F`!QF49Nrv2F#D0ِ(##D0ِ(#'9;#z"lFMz"lFM@Lwu=p6d#&=p6d#& AN;:`F82ErAϝ;w{O>qDPPP*U.]ՕÈ QF4F,Ո1q1F82E`Dȋ1sVp?cnjzWoңsתN+9PE.J8ՕÈ QF4F,Ո1q1F82E`Dюv7vyȑ8Xg[]u<f%5-lF>K~ՕÈ QF4F,Ո1q1F82E`DH.#N=7q‰v㎹9}mA# 8C/Ua}Ս>mF}3ߢMpo'Ά pWF4F`!QF4F,Ո1q1SI -l&4] }w8 ^gk U^}/1~; |"H >pi 5F82^'Ά `D'T# DZXN֥.NyrNnSvNBDQAÿCn"2j$&4O ҋ??EH2GXxsw"5(N# nhgC0hY}cc,c'6n~4i);g퉝<鸍c7<:tʇCސew Xt{u9zϾ*yMAKaCW<u/=ʼn`!Mz"lFMz"K5o r{edǾ3pɽibEI7iFYhвc.S.v|ē'4t)g{μ9'=A.[|w^3.{AH gC+##D0ِ(##DjD8ɪS=g]4Llj:NH H 0bFLgC0hgC0rXNbjx6wQH7H4>< H 0>/ 2^'Ά `D'T# DZXNN 7? Xs!5yiؐ&=p6d#&=79=2v2;5,>é>a#VGjҰ!Mz"lFMz"K5o r{ed}a%?kw̄Oo@j#aC+##D0ِ(##DjD8əRòI-9HFKÆ pWF4F`!QF4F,Ո1q1J"aaZx8🗆 nhgC0hY}cc,c'\2pw]h֞6z"lw{E`D`F82E`D`Rc;|w9ҷk̺yF[IHF82^'Ά `D'T# DZXNsycK ? Yvk^ps~;ǽF82^'Ά `D'T# DZXN6Rj;7߂#VyL.M# nhgC0hY}cc,c'kM=9'{W.D0ِ&=p6d#&=79=2vf:Ǵ=g_tC`!Mz"lFMz"K5o r{e짆ΓϒD1 3R(>~C+##D0ِ(##DjD8ɪSCWzκ1}Ȁ#h=p6d#&=p6d# ǩ[EdaһC#kA ӯ"54lw{E`D`F82E`D`Rc;75l1bCV<Rp nhgC0hY}cc,c'Swȋ;b&MQ$ 5 nhgC0hY}cc,c'K ,Jثe'_O۝+A🗆 nhgC0hY}cc,c'gJ $/,9F~jyiؐ&=p6d#&=79=2v2I 6yqAKea🗆 nhgC0hY}cc,c'Cݛc #aC+##D0ِ(##DjD8c|{.7mQSΓ5쿅[`!Mz"lFMz"K5o r{edcCW<7?[F7z"lw{E`D`F82E`D`Rc;H ѐe/fڏ=Ҡzʼn`!Mz"lFMz"K5o r{edSCY<{ͻ=ŷ N# nhgC0hY}cc,c'kLeΓzL=sE9W'Ά pWF4F`!QF4F,Ո1q1&A '8DIN9#Oߐ&=p6d#&=79=2v9FYW;M:q⩎#RX#D0ِ(##D0ِ(n1]o  O?ObRKÆ pWF4F`!QF4F,Ո1q1SCOV-3kH 0y^6d"0 0BO# "0 0BOdFAcN pĭoz2v}؈$`4lw{E`D`F82E`D`Rc;Y_jXrAs3a#yiؐ&=p6d#"\;w &OO>}ĉ*U,]4+ =rX%SjXv5%I0q^ 5ȁ _0 nD{Dȋ1sVp?cnjzWoңsתN+9PE.J8ՕÈ=9Nb,"%w'm}P H 40 hFL[9l9NG4||owaǜi8}Xsm^+kv_R¯;vhSY]9lH8u{ i2pw]h֞6|-0 hFL[9l9NG4|:2܃3$=de{&_i>l'i4PÁqU謮F 6#AS.[KK$2x̸`$2ѷr1ؐr"xh;p19T:?+ 3A-"-SCWzκ1}`Fz-È}+  )&ݧ21Pfu0ba&1rXEEjeH4ZBb$5HV/e1=0o0b!~-::|K %%O<_>r1f=ras龠j-G}_A/ѱWWjV\PkbF 6#AS1-w*[{ oj9nck#x4hك\^H/e1=0o0b!$gϞEFF/^ؿr1=M0k#xASϑxzo~ᇃOēIYñWN;!pWR?/ 20#D0ِ(##D0ِ(n19nݺENСCK,8q}||&OL?H?#5xI Ei{2#aC3bz`F82E`D`F82E-&wrjjjLL ٮۺul۶uU2{μ8z}䥲FKÆ g=p6d#&=p6d# ǩ[LW9...,,쾌%O$ɵ{l>xeC0y^6dc$#F`!Mz"lFh-&gwIO׭[g3Av4[4F8QxF540u G.1o r{Wyѽpou kh<`D]C#Qx# DZXNYpo1l`FL?/1l`98SdHc`kIaw7Qw! I$M(U,ȋE4 2"2P8 E@0`ZyhV[K!# IP 63K\/}n7j(9ڋdF|ʝ)|8 Ol\bϊ:9#E]|'qs~"E'RW-c4B5PD scy' N`a'{ b੬' 昨wp 9"VE|?)=W%hU"PD wv5QgX9 dvreٗcg˫(>w'|֝Ƈ_99u-*|ӻ"#"jNL"柈(@(>jSή"j㬽;汰 3:%!61]}n><oO=79&MN݆Hϊ:TF?y7*D (>QC5PD scm'VXTc/ڇ"j("j("j("j㬽;؟NŻKJJBz.G5QC5QC5QC5q^坼a3g6"j("j("j("j㬽6sƷҳa?EPD EPD EPD E0Y{1qQD EPD EPD EPD sNVC5QC5QC5QC5͘rrr6mgm۶m֭~ ֮]f͚K/t…!=-sQD EPD EPD EPDs縒<{&>?hMr褾J5+ٳm=|q/=8SBzf8'qsMs˯{f_;-Kȼ7+ǽgޣ_|33;_ғ39EPD EPD EPD E8t?O[\־W=Vԗwmoxtu`V_;eՀ+NgqND5QC5QC5QC5&-]`389Ή("j("j("j(ơs܀W0EPD EPD EPD E0ǝN8a;#/qQC5QC5QC5Q9}˘"j("j("j("j:s\;qND5QC5QC5QC5㖯Ͻ:A渴IK{٩WqnzQ׮MGeū{]%9!MlB>7,gQuu';/)>W|cF5a*R݀"PD EPD wv5Q9ΰ?=UcuNhv=en;us޳1g;sSN^ꈷ7vo>ϺW& 쮨0oPBs`Q"ƙPD EPDMϝEԄZ$1sϑ#Gʎ=Z___WWWSSS^^^ZZ{}.^8'-|wg.ﻶ<SaF}.rVb\\NޞymQcgc${xOx")rc(VQC5PD saVzӶ虫7~RX\jh'{?lQY ~ EŠ"j(;asWi\sn1>[|aE0v2ED'"sODCή"j51.; #c+gq13RY]Ueݴ=Q\ ~ EŠ"j(FwfCbӟn31>]x_غdV󓣢;\X;"j"X+HR$1 +j(9N_c&QDC QD EPD wv5Q2PD ?j(99e~"RC5QC5PD sa6|'"R"j"j"j"j"j"jˆ"a ~L'8"HcN 5QC5QC5QC5qMbs-j("j("j("j8MVZqm:9.1䐘wrqm:9.14ɭ~k("j("j("jl(ǰC⿓[5k("j("j("jl(ǜl| ۖ+m\|k~m6%Lȱ_M9ଶmKߝ EPDl3Yd,wIZwhYv`݉J_{ &ضl#{mq7-byܞ޽ͯEDن"j(FK,Exq;Œ9I-i;R6**zc jJIf%LH#bVzdt EPDl3YdQ+ws\Zg| sٗ {_T6_>m6ޝ,X%Lȑo6nݺj6 EDن"j(FK,Exq;̆"a ~N.m:dmFo&[xIߌI EPDl3YdQ+ws\=1^b7|kw>%Lȑ~_Gm5'6QC5E.VZ#}MrʕfѓnTY޶ fkKοl,.?t5{T"xlC5Q#[%w"GԊaפbcj۵k)kPYYy4q'פ%zcuK_J16md-.9fE+|.yqcUNaȋ_DDن"j(FK,Exq;Œ9I555s۷رdժUCug\m=؄7xAmm6;YMo\v])sk EPDl3Yd,w E<} !_Cc1bԩS333Cz^]ѯH _Hc8cj+..޼ysNNN~~ann|0nܸ1c̟??+++'d',7؆"j("j("j(Ɔ"Q<ϖ-[ n ,5k֔)S222fϞm q˖-3iHON&ysm EPD EPD EPD EoӐnֵ("j("j("j{N1F9Ǔ'777??OCz6vrqmQC5QC5QC5QgvrqmQC5QC5QC5Qg._IԢڢڢڢڢڢڲHcY("j("j("j(YsPf~ ,P:&s, }'#("j("j("j(9va"j("j("j("ja'8kj("j("j("j(9va"j("j("j("ja'8kj("j("j("j(9va"j("j("j("jZ$7|B5QC5QC5QC5Ng،9999999999%h2q,bX,_'+aX,bX,)13/7U endstream endobj 304 0 obj 27498 endobj 305 0 obj << /Type /XObject /Subtype /Image /Width 1176 /Height 376 /BitsPerComponent 8 /Length 306 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xԱ 1_:P !&W]r, ;[PǗ6@LB endstream endobj 306 0 obj 477 endobj 308 0 obj << /Length 309 0 R /Filter /FlateDecode >> stream x\n6}_`**R@P [ZiQ-~IInGhAt$ңQںsnY";( &.=w9"eC,xV8Hw>?n7u~a/OL@41i]/GKO޶LicnmJBNH!'*eBT@Q:)WWDE&$ƭN8kS羃:S4jrWwU~ ɩL%:K i^F[sI; MLʀRJgW@qjJC-R;LJH%3劜c{L&C͢Πxίj 6(h[3$^k; # C%3W= Z:Tӧp8npg]Ѧv]},҅)=s#*ivgDt)jxiw5#ί#VvI낞U2 S(EkpZ$2Lޯ}tU!r<6/>2urZ w9 @YD&0W0WZgz!KT=LU KD:(2dBDفP(uMP> h3Z!rxv:@Nɍm\L YPt*̊r/ʦ pPl:UӁIPqhJ.,x@BA JSVȅE.`) m!-.ABE=F?cf y>]38 pV6z+$dw͠%(Xϯ(46VP,!5 F 7 Hﶋ^*T]{8E& -|THZǗmF%L G}B^Bo2rvՏOJpv/_Oendstream endobj 309 0 obj 1675 endobj 310 0 obj << /Type /XObject /Subtype /Image /Width 196 /Height 185 /BitsPerComponent 8 /Length 311 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 312 0 R >> stream xXSW++(,**C@d (lDĪ8AԪX[W pEAbeO!϶% q%؞xo?2>|1z# CuDf^xġ0icHH<o'Kk?G"\nK9JPBTy?fmH [X yinZVԩW"`NR^L;j~u;[Y1|ȃ~!Sx/hI=s%߬ɚ3o{ dυoފd}2< /2R:V-Z<9YREc=~p_0s+r$s6APy?̐)f}_VvQM.[[S}7}3jwlBzE;A!ke}oVAm93̼W "%եl巪$MۡI_jjZ =+SƓ}W=2HB^r$.qg[ M˪OY#]!!{iGkA~' 2<d;6{B޿Cdۢ{VuWqygUꂣQ|L~fntxJz^^Ȅٖ6C#2*K ? fKN ~C3 ~]eG.l6}m ;Xf-3I}|Aq곓zɋ~g 劺 Ȅٖs"63\o0yaǻOhC2MtAߊ\P.Bʗ(|AIGK0ӆ9csMY}]Ν۪=miׯ8qtS]N;= <]9C9^kb3Le;ɞJN:fچpaX՚)38L]~A!k eȄٗs"ꑗu]{(|o;'xkYg]6*_/* 0l> ?ֹ"cv}ǹٯa琝kz]CuxT,ێ߾y1qQx_ gy͸鼓p-oUD@LmG{'g_cvf Xet'e4wqݩ`J,UCǧ|IL{/@m9'1yENt߱;=K&lesxuQ~XdiT ;Omb[-^!Yr>Udq 3=sGxvcSlZ[GOkͣu[KR,c?57Z:X/2qNA]d/N/Y8L\lpȧ=8z'x\|)}Oai (俜뼴Gox/^d DŽVs|"-0bD ƳzB8U0w}=mU ppZ;ywVŔ/VV={ﻷksp7cݲLuy7¯j}!ffV%=S4VщC.W=_/|HgclY\햘{g7vMWFNanqWx_Ή雷Wz# Ptˬ:00m")GXs@>Ss{ vøI~ƻk9WubSBE@5ۅ"rr^bd:~XDjONp\ ܓtJT2 gT#ٛgl)?/Vװp\i8m7B?пy {'z>l(V6S6 m02ulaUXh]ϟ,O^՟n WsI! (俜5K n|:鸭U1V13a*ۿy`{UhE<}Ma'?dtpˍz! JrNDx/9/d>swN ;0=gf&c-A:-I&ۨl}EgM+A Q圈!^rY+{m$$ߵY %%x /!y AA1n,D¹` 'iI ! 3#G"}zJ>)94$>`99b #^򓗰V6v~}c"կI#U & Sj!ff+JoZ%aR J$d"7[~a-FȊKHC޼t;_aY@^B(D %Q /!y AK@^B(D %Q /!y A{b/9 `ݸ5R X\X(1ѧ*bC({DhGOBDDovf:|eYA2nQQ[Wtө%3J,O ^M{zD=q*$e,⪨ุt|KA,%=$,*<oF] bڌw3=&;>:.P^S)8p$i{yi@2c`o-ϭ"/ dq孭t2cdC4ӟa4h^7 P:sTqL$Jk071yi^t /!y A%Q /!y Ap?Mb"R_Y^|(DZ\L\a3WUu\4nWT6eО9l\=>k+Z*gL|8븬i>81dl3Z$'<%bx蟙E4/K%䧵1bРAUؓߋV!ޣf8~T /5Ԕ =R\*,zgvw<Pi#28~T^U/+֜E3J q4,q ts_k91\ɑ-.iXKqApOziCM컜F+{ .j@Uu1po:k KpnT r笡[yv04~(GA{#y AK@^B(D cg>c~"8&É)W k o @/]SfR_ew8pwzCKO]ؐ*cwR\u7-[tʪ]C7q!Z[;ŋXvK\zcZ.{!kxe{{g) ,sÇsZ,N\r555j(,,lhhI ^ϧh0ϟ^ugMdlWv{BjRAAi`wN< o755y}w,f'b+ GlSӌ,Xǒzi֭pYUUUuw/V&AtmF؅?~ k,bzz:J^Zb̧\Mۻ9q~.[XOCd;Bi ,,,,bZZƆ)=zb=,[6A^ŒT\\5[L{fcw5&Yb+}yyyA;'''$$d x)!!lPuݑS:Vz~ rssP`d ψqfa-"j:u=2 +SNyzzN6m˖-eAKp9PXX8 zS5?*eZZZU~̌L&Ā=:_jmmmhhaLΊ5ÔMt&bi fn۶- !8``ވ%K@^BEx S{ ` %Q /!y AK@^B}l'џ /!y Az`B(nVe|:nAsY [FƧ2?hTfpSp)2r9!A^4dRћW2nQQ[|h\§zˆF+-*S#GIM>dXFBNZiV2aWK̤I뱓%ؗ2k[seF:KX'|T /]בTғό2쳶Tq7?%:"Jh#,88IAZWNDp FP^f MVF ! =:9'7DLRNq7{\*CY^ZDDTv<*^JD %Q /!y AKTj"-.&.舘m9mmm~.JDĥp \:'켴UQgmESKSe UIgT6eО9l\%Nyy*O]?<%b>RPIXTI]嘯8)Gp%jm֠Ah.O+ǼI9s>//Q*R d6,,2ƒbG/6,zyyZsPߗĕzKIӗw[zG?RnFȉw4Crddo7-)UΫז3;ϗ,Gp%`heup!F*c6o:'Bmmok![9>;/(wC\ :^l+1,EqVMZg(;uꔧiӶlْY@3oÏJ*Dn!133#111`GZ[[`&`l'fEa&SawKy„Ym( X2X7_ (D?^BG^B /!y AK@^B(D %Q /!y A}{ ޼@Q,|&HBMr`/b. endstream endobj 311 0 obj 7551 endobj 312 0 obj << /Type /XObject /Subtype /Image /Width 196 /Height 185 /BitsPerComponent 8 /Length 313 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x 0 쿴R9]8Ocf;N[ endstream endobj 313 0 obj 86 endobj 315 0 obj << /Length 316 0 R /Filter /FlateDecode >> stream xVɎ0 ?\j10(f)[݀Ӣs߯d-i2 I=>$_A>`M+~_X?ݥ+N ^ \~DPeH rl^yi rG ib2LVtShՄv6Q+n~' T%gЕW#RB碸48網jd /GWM"Z.q}'.i:O?AA hXZ%,<\|Wdc@0t+7Ͷ/_j+B΄(Hі/,f** -bml(nD4mwE}+q{KNLFISlg|52%R+|Vpsd'QȭO *RY$Cù⊸ҧG-W7m#[ݠIT~aۄ|D8 %gH.e$Pl|]Ȝk/c@7);16q1ՙ]G@Yޘ&)mJi)نd(Qc..6FIMKUEN MѣԐ|}x2LΕO$:d3z=endstream endobj 316 0 obj 659 endobj 318 0 obj << /Type /XObject /Subtype /Image /Width 566 /Height 276 /BitsPerComponent 8 /Length 319 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 320 0 R >> stream xyXgss癙{ι9gN2fbn&q(Ȫ" ,"*(((Q M4ƸO.ܟJi=>>\gSS3gatttT`Tqqq4p۷<),,)?ܻzjnɓ'---T"]YY]v/޺uY&{RC۷ܹs${u9hofZ~@CPPӧx АXF5w\.{u5'aAg!==3zTU$>wTt4XQJOG3EDFF%;QBQ2rHi\x1M}977wk֬MPiiimmmoFYxx8666$[VbIʨ"رc?~<b޷~KS4O?4//Ã)Iވ#=jaan}QQQ4uHgI8"NWtt4ŋo \|944Ps#W(:LY!Ih֭,tR&{)((`Ɍ :r*_ggg֦C'^j:[}"9^d\U(iDn~2eahh/(>si cI,ؼGӴYoܜ&nɉ{{MMMzbmo?$1B\:j(n2LhG:tX{߾}SL0c ~f۶m w%!?s=[[7nERH&-﨑Ua>شi Kk04 {־vZ@@?S.]d.Yf5AWAF?34)U(T[C}//G B"dz,\"$%}333Eb PgϞϟ4Pƍ[ăS:Gw{ ޾}->x(N,_\\{n֦SjUSQQTҥB bx)6]u)K5ݟhk*e;W(++ӧO6W1M$R,y}fcꫯ=zĿGGs*88KΞ=,5w\ 5vXP4hRv-~tpŌ?x!//\KV}ĊYNp-vG1guذCEg.0j(++p-B {|2ҲehB355eo(UEm:S@iaa?hb=z4{C^TTDm>ذa46/_νu/))hĈ"F4S{ʔ)Gj$I}͇TL%=DhT=|ƍ^^^4BZ,Mc roȐ!b6 %> RrRFr?N.{ C5Qd_]]u\OwwwzdDDDjj*III={#C壢I3t3 ptt$5, R:@Јx:uj׮]\r֭Q4ROLDx$|W^}Am6Y#&"QB)@B)kl~/ Z @ L씀!+@#(^/w{cffV]]-᭷/P ˗/g:%A#|e… Y 4ʕ+666u"?~'"ggg+++B޽;<<)1HMMe}c0-555%&&Ν;~&YJG*H^/׮]#q)//%};wwɚ0!=ztlllwwwtt/ؘP )>|vzjB>|xm޷E>:88$''xѣG^G>BvJ˧{~‰Ja .@^^+ɐ!Y R(XXX\|[+TssEӓ௙֭[&olmQ7MO ܯN1}~^U%%%:|@ xN333Y'GΝˤŋCwawرcHW7oΜ9G73m4ƆWVV֭[aiiy%ց6c9k #@YdKz7n/Z(55Y{{biii...eee .tvv633c7_HԩSorr2fgg+WP9FEPPP߂Ivد+zxxP166f?|]5m 4Ft v@ <}y !;%=6lؠ!8%C s*(b Ω@Eda@/(8%(x IN BSuT P(ĀS)|PZKjjjNN!Z |@Ȥk]gϞegg^>P /y|x7ǎ~J[ 8~@ !+VCDf\*)T{{P/P')Բe˘Bi%!BȂ^>&I===սJW*N h  R(xCN xtż|Z  !+VN@"9%(^>NPR/ż|Z 8%*B^)|!d||RS1PZ=;)!(b J "/@)T }^> dPK.yxxLTTԢW8p%SRRdss3KlooP[[Ç=_!H`)/j/_[[ۜ9sh'IKŋpqq!cɞ &\xQ)Bi U;%=z$]8\]]^6mk R(CCߒ. zI|(---11QC@DFF*}t=(pu"9??fffiqq1E###*9rtt={6)\?~y󸌗WQQ|`0`T"YPƍ=s''sα|ww7wWUUFoY5%%HOOϑ#G<<<?2ӧOwسgOttS (S^$LM:rhll,sN`` kϟ?Vdm ꃗy_Pt)9ÇYvݺub}ű{Xcƍ]ZZJW`@@상 (T]zuԩ~~~,?}bEZCyY[[3adxxWPPϹR500 }0B*uJ ( Z}+ x:BI^>G/~/|/2ЀS~B`_YVHA/~e!d|~cW pJ>Z}+ !+NPV_^>NPR_hd^>dD/~PZ"B~V_BN xtxBpJH hů, %x|@@FpJUID-$>>><<  /Μ9sLk(ON xty|7n|\zUƧ B8RB>x Ω|bQ"YR"pJB`B )/OOSB [ptS)@XT >x(x,@DP} |P}vJ˧{'8%37N<1pJY9 bI 9/Q{#!&P/P'"ZZZX 8D@sl[kkQϽj>P_~7dȐ"*رc=RS "qQBDBڗ?~e'ӸT씀ɹ)<<}v}+W}V(8%z˲eˎb>>>6VWu*| @:;;P*NRijj ݶmӧOxw4tI7}S(!;%>P(ŀST)|-B) x@@N P5Po %d|§d}tB"B#|X (b)D7(ZUSKբoSTNMUG_Z ^>0Bm9~>$9ۿiPk]vMWP!999nb)TYWZø%UhƔO盫B=gL0WqV(رٳg FxPޑL5>oOBorL+UJ;,YqRBm۴*c>,tP=׊Ok:m:uig=+,,,++uTXLLL)SAPM_;~+|m (@x)U7*xkk+U P/^.ߤ~qc=\-XѴO{~(ŭPl-d6)~,y~$k&'gT~?kޟb|g=Jvv6{OB*jM~4ӿIQ(0TF-tf1{KRtB.k?.dƯB?wC.>r F8%( TĐPbt.|ukբx~+M\1eg1v-Ȳ)ȟYc JQ(x`BAբ[XL 7u°AP}>|b-gٵbztO]kl;|~rG1CgO߬:M[ԕLihkbĆY[J uKs`KHڶE9X(RG ( ANMXdō3Q sR'VC,CWvtjBU$NO{d6K[P*_>i*킭[_W,9:pEYn.(RpJ'P((BiK{:BAJu %o=O@P BAJu / P((BN|  PP@@P@ UQQ})|`0@P@ WSRRIҒ52T(!;%>P((Ke#))1nܸ}qB1>jS(De҂q)֮^ #btj\PB.wZpBFFE$}/ jSe҂+m=}Jw^Sp[*U#G)O?QB%WԵ-޹c)j[ʶXqo)Y}[}(⪚%$1 i1j5c>[\j,r{bW$t;2%hSv|~iE[QJfiH%Jqj@\7]-]<#}/&O ]=l¦kƯ>I4S{F%nrA~`|\jЏ.llnjyҖgZ:zGƲkW/Ҳa}-Dx1bKI[xZ=kPK#-"+NRBԆr*,uϲ_6[m7P^WBQT<1f!k5.YJ TȼǴZV:egrIexF${N]SixY=>v1D88W*޹4[L,*7^氲įS>(iP(qJ'|Pm;ol33+R'( kW?nF EQ+>4˄J9I)H>t *g[HȌ^H~ԇۆ~J,fX**zM!~n8J-?)z:jU(s4vVȮP[70ieG"Y_Pͬ'PBQ t?Ii^$ dahK=1bjC ЏHGK*1g4&0 UTj.O1njn5arfE=u60{iJə(ri&j5[o%HM۸9$%T)Kz@{O((\ROIZOELT4ʫUH-O1JoQʴwft)/QBݾio;P(( Lkr/ P(( Lk^> rpJ'P(( (\  %BvJ'|PP( P(BT ( 5 ( 5/~BBi8%( J. r !;%>KjBh$rꚡPZJ.P8g[UƅG [nBi^>0x.^xhӧOk9Bi8%`@Pr/ (\)/@ǀBɅ c`Z x@m`Z@40 P(J.씀c@B S 10|60i!xF,A ZQ12̓#|5~ X_C 3"d|'/AS}gfUe`)(\蒗) 3g'[vju@ d ఓ'O>~x9Ssl+ԬP)ΝSxBɅzB; 1nL,$رc>e*!ş̌fJMRtVBɇJޱ1Z.]cy!YB^*卨(K^>PGN{-6utl@*TnρBN BKC^T@8% HD|B $"db^>uB)@ ZP( ! (P)! T BBˇ@ 4P( !;%C $P@"BV(8%= (|B*^>çP*n祇᫃i|`*ʟY }pJ(#jgX$nsݼKv5~Ek2$!m9-\qzUM{MiGlBF'P&e+jKo/밺% h=U+$g! 3qp\ ]Vvy _qf  c[G&>P>V^CV B g!Ѽ:Bq[[~ĸދ)%^Mk]™$%bI#q횵S%+D'"\D]GU'H^>) :"okڟڗm7Hh>d핥lP_L6`w1Z=$d\zwꎝ{#cC^Ckj \Sy.J~.jW<ϟBʹ2ƯS`8YPH R8& `Ҩ_!j*nǂ&v7bqlrTv^K.,I;$^lX2j"IFss 1Ho8M'Qq#jB 6i*Hh74UՓMI#K*ise+K? K[s'7S+Wi􋱤..붶FfY†F==kC~hmKm>:lN:;x/A)XARFYSxlixL-?r,킞BN]se[DŽ4Z. ^j&k0cح*z^+v(_[ Ilv-e};c#ie;Wo$JsZKyUq*GMެ>Kn%#k;diS5ׁweY,,u5V:!)YIݏ-F|ɧl^>qӍ4~m+U--03chj|]~fylW՜Mf oo7Ϯ9a~"7PBN 5J?].8 *Xؿ߿3R¦׹ĞkXqc y?PK&IO՗4QE,8`&wJ<wJnj7+l6 ]SeNcUM#ժjؑĽgת+R3! x*N p@DC (C \@DPpJ zP( x T |BBP8P@"! HDN x= ( N BO $/x@J?"mUXrfhRТprQ}-.Ud%$@!8%޽{ڵ4={ȨP4СCj[[Jm蒗qK-ӧ2o޼q^rESB^/]B FtG^>?qJ t@7S^>gPpJ>/^>N ^>DN x@B2mmm 2IF^ާ"={ 2 ~f> LP  0B&P( @@(a LP  0B&P( @@(a LP  0B&P( @@Pq`JOO2d1@x6E endstream endobj 319 0 obj 12007 endobj 320 0 obj << /Type /XObject /Subtype /Image /Width 566 /Height 276 /BitsPerComponent 8 /Length 321 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xA 0A0Elf.p~aK hWgs endstream endobj 321 0 obj 200 endobj 317 0 obj << /Type /XObject /Subtype /Image /Width 577 /Height 255 /BitsPerComponent 8 /Length 322 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 323 0 R >> stream x Tg5sLܛs3d7Ѭ.q7\AT6eQAD@qATVEAŀ+(wIkLܕoEs8~ߧՏtbbNB!DU9I&$BTExx޽{iaBTǼy:D #:haBT -BJBQ)0B!*F!D!Z!B #RhaBT -BJBQ)0B!*F!D!Z!B #RhaBT -BJBQ)0B!*v}׮]{QX>y+>|֭ |?}]ZZڱcΞ=?ŋQ<~|M3;;ѣG۶m-< ! [XEEW]\\l BXpvv>|xTTTbb'޽ۥKL,/^xҤIb'%%%~kP\t))))Fk̜9hذa:u Ql޼aBi kشi޽[T~zb@Νoݺ'O?̮Xzzȑ2777}޾}ˣGqqq8(,888E]bIbIHHxVXaVWEcXƩYXXNNpԩpJm=~XzN-##l߾zKݷn݊:4={\hXƍ~~~p7GGǹs6X !Ʒ~{U(">}?x& ʒtΟ?iis&ҥKׯ_ɷ͗Tׯ/oooWt?DB! ٳgÇư0ao>**wݹs';v숌lݺutttllX-l+((]WZZ'&&†ЋM8+f#0aBAA͛7 f͒cǎSLAz-// ۳>JHHHFF)s?IIIuѣGoV6J߮đ>{wR%!se"_ĂU5i~ptt,{ǎvvvKNo;Uxu??:wxԩ8#qKϞ=/_.#""9x-Lpy< -[3000--̙3(#>n )dtO .=ztBb8{8'jx9s<~9r_~:mڴ)~ʕDI_BJ!r>0:ڟrL-[\z5&pX7:v[t҅ n޼ kEӄq2'&p.IeܬY3777<{ʕݻ)i$+4ꫯ M aҳp֭%)) Fw-Zg,,,trr70X6Ŕwwmį͵k:w,F% 8Ĩl_'g^k˿ F{J!t񵞘Eҷo_bh[TjY7n(M6ϡ`1&<<\ƍ}_nDII<_iFDcժU0V 0AQ B[D$֫W/8ۥeش2 ,=T^^(V OF(|РAGo>\x* Ύ;ohYaW9llٲ/J_fJ򩨨(ao S=Qzzze-DZV" rssg'`R!m۶n67{l//N:(Pٳgmyny0ӧO7>}G(u4ho2!\Q6D0'8Թ˦N w@gj0\G68GC">ڴida`ǏsC8HL 'VgϞTX!hRˆ&GᄈO oܸaee%YV~6mMrSiaΝaB,9%5 9<<\^?`ҥl޼necc3IG5~x'NѣGNVBCCuj*GW*c0M-wssskݺu``(!GUj؛Ǵi LC>|8A,lذRZ+VƂ' 8"&D{XQQ/Ұf͚AݻW!88+'LGz-eԨQ%%%==oG1a!=ga*(F{/%%ΝIu$K5~駉'{#":a9D-EK=&M9i[v(u{lZa`"Q`DoFIQT}1mf6}}1YЂM42w6M,ƞE&U",l#5M-`_lҍĕ_6kͮRä(> 0qRhaDFQ*-`0(0D"EQ-B`C 0RhaĆlը(J s_"(uf0ZET0DB (f0H0HQD -T*Z`"![5*0RhaL$Re\ Y`LJN=0.s}F_wg ꝇK2}l D 3L$,kaSB#ҳ6}fO>[H}(a.}쫟}J/oȮO SLjZ}_[TBh͜U1DS-`0(`"r>c^pu.c{:4(YղMۻe?1O?鶞Pb~F9Va:uԝ] ucBD/о2m=;ca&˝z aaފlsY;XaHDc,+۾}u2/h~Q Ŷcܫ/eWjWpB+..s%i"""pdիTҲ~Ju-uz&J9:$`B˽cn>e?|1qnqPik .0G9)]jW_-B`C 0}i xчQIrK^獿YCW砖n,mVcf@HlVZe:=@N 9H(ʸ 0FQ*-`0h(J &L$R/,9@ (f0HlV -T*Z08EW0a~f6(J &MZET0DD%Z8haR  ٪QQJE 3`"(f0̆Q'M7(ɪ[Za`"ĹuV)!D L$ ߿Bn߾mCaaƅqB1 11ؐ!D8饧.?XЎ9&H!G]Nq?oFÏB;&naBD=aeX[tO[،ǏI=DB@X֜&?<4lS<ͣ< &&H$@)nڴ),x S08!ퟅ}+ꉅ1ؐ!DfCW 38R'8ǝ;w}[08oݲ?7n (tL$LegϞMHH@#??n,#QV&% ;e~g7?LAsVTTܹsDSf`8dh~qM$ ZO&M]۷v(2¦¼}ʕzN&ZP鄪,da|ӦMaayEQX5(Hstá(i(,DsPUt0-XU9tFQTH: c"QVEQrjazL$VAuf~qO$ EQ&9haFQ^D SlaL$*Fq"(J.&[&)2HTlaEq]QUHTlaL$*ފD"J$.]C ھ壝JVizVtfccڔd^qh bX8;2P^…G.-OO=^Evh N\,ik^3fr#uTQ(Nw;b*+;۶u$]oe:Da~q&I~a'cNo(L ϯVΔg{i' \QWٳG-ŽKr!l{qC9! C%˰_%m#|բG3UFMc>gi~)8h]]3[Lpu850Nn./-lPbaEujYձ8e5X>!};TY9MW|;ƦHKK˫ѣGS1? 3haBF6>e}_߮-qm?/X؅2wM˦Ic?x`3DX.u{Vm”73B=]tvy^X7WffW`ӥ%^ë BF7{ 4xti!. 3_ߡWr ۗ1;˦uiėq9>~o=;}cb{|1ݭ?Fr+(d~~9{)[1_G]71p^XVb Õ8o#[Xqz9^FyyRS:2HT%aa]Ќ`փ~D~iE J(0v߶@,,,lԡҵ#p=|yRc1X=k$',ٴB2]|nl4PZ }L.0hydF`aw_N˧|p{+tvQsy41qC7<\9j[r=5ƹ(.@[;&ѽN]ّV0tg=:~`H&(=&- &L$)q#Q,{ uŭ z[PAea8-*, 3AUZK{yīW(׭t;ha2Mڸūc ܭH01n˘!;ĵ}P5~TWt4 y :V#taɚ=w)MWοy*..=&!QuCWf{ 3z?=)8y u$i)#{ 2xMms |(=cuyj6[,B<6$ʋ/l3 b&WKE yJ3'n74{ެzWjӲx׹d4nx:.-窸ڛ;TTu [9g۔DD,*ӥ%&RCwx1'Z6aH!fi틚,3qsv֔X釅 b>|3uD lٶ]I\]۵YAgX=k]۶bB05hԡZƏnUWN*][?' _v1 ߽͖c>pE>{+†[cX$\HjZ'<]av6QWLnXKۄ aӣ}븫MM vGfy4*u?=)Ah=4i͗Reَ ׵m^/axpDGH4/Dbc3!\9m'agEARq۸4V gLzb!A`].n@2"Vqz7'1Ib6>BX4U=KlN.:68-Er'VF+_7NJ&F~#Mpr#]Mo1fi:*/1t,̺mts"Y~%03K{bU }Y5q WNrй>/ LYgaâ,u`_ )b{ejs:忐4WMQyU)xA^])DXZ"Fa"QD"EQ*Eq]QUHT D"EQ'&c~q&)RPYQDbH(J/b"Q1L$ H(Xb"Q:Ρ+0ja"QVL$R1s0HQ8b -(&D"EQza"Q`Dա'SE5D58\Tda|Bl (I3HT5(wQBFU&%/aDB sH Z!($HTDB L$J0(0@"B98!&%HTD"!4&%/D"!ļ]# 0A #Za"bH`"QD"!PuBL$*ފDBQ`"QL$B50? 3K={&^ +HZwʕ+s4Ϩ`"BJBQ)0B!*F!D!Z!B #RhaBT -BJBQ)0B!*F!D!Z!B #RhaBT -BJBQ)0B!*F!D!Z!B #RhaBT޽{B!aɇnҤI)!Bλs endstream endobj 322 0 obj 10696 endobj 323 0 obj << /Type /XObject /Subtype /Image /Width 577 /Height 255 /BitsPerComponent 8 /Length 324 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xA %fH&">Ha| Zpճm< P endstream endobj 324 0 obj 194 endobj 326 0 obj << /Length 327 0 R /Filter /FlateDecode >> stream xVێ0 }3$TZ!\ p b_I8i0ˌj8'DS a<<~O/W[@JݛsY;@6ٟQq[ ?NhVg@!$;F1M {;Hi*&؊o ۵DFEHyypx@Ur] Bt,!]e_IXݚqT͂Zċjg| x;5hr9|x;S b[Ώ.Lq"ho?X@{IR믵BJ{ZjdrphSe-M* [[lkF}k@JHR^pײT mxoI(sw4khu =~5:R"(KdgQs]ttRX{d9Tʑ]'oW-W9> stream x Pq43MvttIfL^4F#I@"` JPA^T8@)z@A( AQP'o}Nn.pwdcOH4%%(pjÆ ;qD/pcVB|CCCCCCCCCCCCCCCCCܓi===@Xe5Ͳe˶l"UUU3go'*s:յxxSSӗ_~)[KvqqpayWWWQQu:q7oz^YYyهҖ/?~BCKK ݼ] kjjoT\\ԩ~0{!|Rboܸ1bĈիW wwwO>=%%v&,,,--nݺcǎmذa-mov1sL (qEDD,Z[o*ꫯ2 d1'''kʢcVf̘a8'&& Sg3gᔧacxx8oIi鷅G}'QQQ}L~~~;i/p*-bᖂ^+ioaήi7f͚ooX:p?y/W{?NO}||9(3wwwkpa]޽;))nt >|p``aK{{;w 7<77.;#sRk=Pd*:LӵZ[oGg'!!!tm Ѩր:HNzݎ>G͛7MFw&OLߝ2v횳={V\IvvvtN9r<ݳkfa2iO:EfZxt}m;Ba71RWWG NIt:%wїh =3{{0;wZ멆""+>X#81d M)02&`: vaz>(hVj |/a stQY-Zm8@0iWC/xx8߿ƙk4+._08Coʰ><&&>!nbNx\{z*_|/B{|̕v0O3fdrGJr0!sVr s¤]99X#8C`9d.q\0iWdX)2W,d\0iWdN9XK2W,Lڕ+Fpʁ +2W,Lڕ08=AKWWŝ;isљ/Y27 22RkDRim.::{޶d.q"2~pBŠqFwu]r`糲u4?x`EE뽰&!}ĕ3gNWI;[pĉ\;kgU>4B!.Y.^:-Z d.G+2v?.AWˁ+Fp'"ӷo74sN^+2/.63s'å/ߺ"<6] C*8ժC v/;j5Up6j gcL1'g@"<)#9w2em^yk+rw^7UpyNNlUVV2|E8FTզ2աNҵInB7 s~RU3")OӿzꩧKA\~^Qozޑh2.m1FJ˜ڳ \\M 3Y3g9#8dX\d2G\s9iG揅E#s+? AK3sLڑ925Ͷm߿+1STK**Zeynn޽{),, [tρȜd>8dٰ3e^___PPp[zyy Q昴+'s^Tcc#lI{RR݊0E`9d̑9d9&%>Φ+7o 79؀3IKKkjjEgnVSSSCCCjuHdCyAs󫪪[ģ(k׮djkkz3Nw>ADDēi&zrrܹsg̘hoVzEfɓta>~ǎ܊îgN)S&j*VM|K rF/1h͐I&9pybb]jM|Ku:i mb?W :oˣúN3l3JzL0"E.! ߉|wL?^ի_Yl 3!" {~(zf(z~>枴SAO[z8g~P~nuBh%2_3M'.<<)𪪯=G˻܊zzzɔlwB vjii1q?Z[[Q02&`: va=d=LtpH&{ϼHpXlsH|'dxHQll,e>lذɓ endstream endobj 332 0 obj 4172 endobj 333 0 obj << /Type /XObject /Subtype /Image /Width 333 /Height 184 /BitsPerComponent 8 /Length 334 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xA 0A;4 TZB88O-2OiA"wGy endstream endobj 334 0 obj 109 endobj 330 0 obj << /Type /XObject /Subtype /Image /Width 297 /Height 212 /BitsPerComponent 8 /Length 335 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 336 0 R >> stream xlٲlOX[0a8㒅LFps?ET*(TZ٠B{q(WzP-` kD~ 2 B@) Уײoէ~yr1׳\뛻Xp͚5󥥥}( ` 6ݻ R R R R R R R R R DQGAmۖ)(;HI#/p<@*ˏ9rgPĉGmoo>~oϞ=Ã+xbuuSl;l\'&OK/-ѡ] b/8[[[L2k֬'|bҤIB񯊋+++ϟoۑ&"իWill.9tv8#>\vg/}v{yuww3ӧOܺuȳeѢEYxKR>TqW%\ؓAV'oO555o+Vz#nݻw/mg@qF{]- z~<6O})WRÊp;wr=Rfp 'P 't,pcP|fa[))K@!NpUP($(\Nم$"Q~$=H//,'%bIz^2g ғaᄥH,F ^2,%t陂$"dX8a)ҳ ҥKM˗ӯ6??_g[=cNWr=Czxat%33 J=s:C2t^X8]J,NٵqU_⩽ҰC"dX8*=/\u:w߸~!^2,,$L0ލUVe vm>Mtww%xzHfkJN|e%H/N%=S4NwH~9?鮏HOe,N4{=qkʳ gsssT.\0r?'gΒy\rJ#OzNxz։} 67ߤ| t]8oݳg>Ciiiv~uq8q"k =8kԾu˵G %DzՅSp8Xp/[p̙3{m"鉛}>v~݅xzqzzmmm_fff_$7իڇw=^ˡͳ5=α}~m0=p8ܩO3*++|HOiS yK탪j Bg~?cLLy'~qk/8 gjI/HzJOEمS!=S_筭MMM/8ٙ•[X8*O?MJH-z{~hYS AgP rڵʂwHI~gƍWW\\9 7QpJAzVpVz&bԏb 3g`OOOj7E?ҳpvwwWWW1pϢ>XZeKfYm۶ųu4,\ANi".\dɴi&NM:pgQz8437+'W[8;;;WZ%R^Y4h4ߊD85sĩ)`Oz kģ '=,Mϳ^D,?i?3͛;[$?)B? EKO$nlhhXb$`| w &M0qs;< 3֗"/^,++}}}zpj"HT5ÇoJDZ8 o7N(Syvᄂ3u 'Dzqx*=/P3 ' Zz,Pc:3 ^jY`cڭ[8ϗ}e0K 2󗾞niX©Z˦j{{?©Xz.]JOO?|PPP tB2Sn*<7`ᴚӆ|Wv7nܰ~,.X8"c='%;Ԥxz.{)'xB|w/6i53  gBc炇[?N~.xS|fq)HOMcL™X8-Ez֏j nYX8#=5) ~Jj3 gB5r,NKI/ feeM2X8f$=v@s̙F`ܹ999%%%8 (>p3^^^~7߫-us9pZ`5΄HɰpZHz6m &L I 驉jFhFSS3 q&sCB,V#=X3!C2,"=$i5CB,,ƑOH pZ`5΄HɰpZ H )>pGzjR<= =$i5^yyy<٤n, ݹs~֭IRQQAzjbA$9-͛7ex ' 3 N !܊p:N`LX8pR(>p­Op+NX81a H"Đ6p8%\KOO!---\%np: =@  =@  =@  =@  =@  =@  =@  =@  =@  =@  =@ -5k֬`W^yE QSSα endstream endobj 335 0 obj 3585 endobj 336 0 obj << /Type /XObject /Subtype /Image /Width 297 /Height 212 /BitsPerComponent 8 /Length 337 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xA 0A ϡ qKڸp("{=8, endstream endobj 337 0 obj 110 endobj 329 0 obj << /Type /XObject /Subtype /Image /Width 1027 /Height 255 /BitsPerComponent 8 /Length 338 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 339 0 R >> stream xTTi7~sflwOݶ9+bB0HV$'I$*A1`BQl1͊95b@1Gsn[UVսCVVV  GG>no>pÇ# ` B0@A!  ` B0@A!  7o޼}V[ 1{yzz&8|rZXt[ZZŋWXI[(''']vI5j1113gܲeJ6[yoߖjqƂ - _ϟO\cssspppvvG$ PմU \֭[ kJvA6`!Ou_xA ^ {<|CΝ{?mݺR/_ӧjaÆqww~}q={rʰ0Hɓ'&L8w܉'تhJ>s||%-666 V`{ @SSӁ's޼yOr]tzvׯ_ܹk_timmԍyxxpRhllNի&Q ͛qqq @+ZR={/zY.PStY$Z>ydqqtCfL+AMo۶mΜ9:nnnUUU~~~ gDʢg/^V,_P.^$''^xQ5])wЭy}ALǜ2-P,ڴik;0k]%tr z}"=$jm !SGLຑ{a-n:~GȈִ`ooZ?~L}i5klٲ%))iÆ mQ#gOq6̄:,J0~>-u2u)ӧO|2k@*0 0x` QQQco߾voWG466_ζ\–)2BZZRv )1Q?5.[☠͠Öoݺ1:!v 5ٻw/{'ZЂ-hA[TBA Ep8qlv̘1˗/w~%%׷Il2d۶m-++n?F`O<RxܸqVVV;dNѣ?QlaGVNq fΜ7nܘ2eٯ"abbBnw(REZ5ҁͦ#GdddƘ_gбrrrbgo @qD .p'5+WܺuK%W u7߰iWr-,477sũ&9q‚+/_aui@FȨ-#/9 R]]-HftĨV:D}c{{{6 7//]pl: sm;;;n{{bA+VIm3P .=# to\Rczz'o@ݻȑ#**u{! ~~~~_]SSC„>}TVV>{-oܸtÆ 666ԧ=~8uk?.(ie#{^'[޾}qhh(%ZgԹ3f]gTTԀ?~&H6ח_&9IiVh6O>&%%YZZ;ui#i{q ,:C>HVFS $#@ANKKc-t)X̌3==,C ޔL!ѣ[eɈ;vd:t'G Dd%u?~ kߧ![fSӯoѣG/^tқ7oؿMn6w?_vv$_(뤛ctmԓn۶ܹsܥ6C΃,2M=x ]?jg=UA*nj&RW;'N_^:(H2vCn]OaDIw6sB t+ 1/D_X={"eoݺpW%i8Pw200;q]+Qk?:P d|:@9^zi~0(Fg ň|Y@1";kg 1`a]a={ĉ 1`a5T]]j*u\3NyP{{{Q(//gO>;˛7oZssskعsԩSizw%g ] IOO߳gYÇKKKmmm=zD]ׯ_={‚D+\2---[JjܸqO<hxf rssK8uk)))a-ׯ_ot櫫.iӦ [Ly=1)#hgO21R>d-2Z֯_Ң g'/ zj~i͕QСC47e@{i{+@A ܯGyM`` ;G9sF@~LE`af В%Kϟcbb'MD\矺'Oϟ?ꕛ T[[ HA@^x g Rqƕj{[@;w˗ g֠n`0 9Z9kAZ",Y@AY@0X@}@0kNAZ",YAA@3,rCP(Mغ:m¬A$>b d̘/JY@tw 2|_̨=Z!P(Tߍ7ʟ0XDKw ՟Dr{(J@yy+W|B¬AmQw6zB} 5TK䃅53k B @P)A@D4Q( A !P(m Y@t}  da0 ],BP,.Ԇ BQ5K䃅59k Bi0XKA@3P( A !P(mf YP(J`a,BPhf jC@P(%˜5Bka0hȃf ڷ*¶4u\s]uV}MwusR*.ԦA +ep7&ȳ&v([ 'wۑɳ^f3r`O n=lޜpx}C:WDq -NjTrd':we U \ƅn#C<-mr"u6H;;m,5ǸqMG 續੊mZT8]IѥB/|as#:g*Sjؗ;&ƚCuIxzK$k3?qC أAt  ZfӑztoK& PcC Y@o` -Vlk9+n+ jΤnsSg,ubv2gגDﮝB o~MOzU{XV$h˸C^v:'7%Rwn?awnL2@ti:pXc9K[w ݀]£|i8 }(I^fC{4yÄ>6-Kg(2_8[_ڞA 'OmNU#g(FeELfzEm`a,Ţ weT\;gKS[Y#訯e7nPA,'FRA9c=s=+f:.OE1/J+xY:Ngػ`lQugM4{dCvh%t?|e3fT&OYQEܯ[ iSiOu%afF';mI{HMUYS̖IŜqzКF-`',÷Yк96)v`݋gXgˇDZZy՚,7v[ir>3; ?6Vgq]zh<WDڲe:tt iT{1i|.;mЍᎉ;>=;  QVf *++q㆒Wu G",Y,A=*(lZm$HxAk@9-*I2>9Љ!;N~ -_kw-;> .din==yތ{VF<Š+yo;iC uՙn\8V0mCɇ6co͙>i[xd3=yN6RW%.mO#y,O~A`粰ylwOS0E t0|8OʄnG٩A`J ҃N=xL<hꝞ|~@u"fMd뇯. zt7 @ɳj<}=bM܅͘zsn_o}šst|G.(_2N ZWa,Hۓ4Qbe7#}AE7 һΖTݻdpN%w]P^&x7wrSQ3nt|P3| C~W t@co՗g˝P j=bqCIdp7֕* ]Wŝ @U]'P㹭{G eͽwxI?lw tdC9타v[Ѳ' 5i!j ONKk, :}w ;Jºv Ƥk}@'Z85ut˾tܖv}_rуc͒dn!ݛ%= }c>Ky.m")è BaaH.N\۽ܦFݧX]ޑa;nPĬIn6#Grzz%3f@Z*z7 hyih6C@F`ԧ˶`Zvr> L>aDo ܟ*͇.5f5͑=," br*N*n\՚, C֝);LC;kan u5eͯٵH:T'6-۝j9-pSPwӄ?CQԘ5{ȝcj罛}Ԅ`>׸6ӏ'gX;z YFt݃ԖAfGqXG^]8  ߽]Si8'*%"u!uM #%5CMCgO5@K+!B I> F}=-AA`q ux4? x+JUZE9o7%_(\+*Aу$f jCЗ1zd vdOp=8^t|Rhڜt/ֺ{¬AA <&E>XP(}- D:]g1) (J t@c!P(mf D:]gìA( %a0 jhhx>p`a OAAADOꈈ9s(s'N FP( A@ t^x`cc%AY'$$Pg!!!~ 2dÆ AAA'HbS~߾}&&&쫽\#zt_5)Y8p`޼ySV\Mwҥ vIi%,,l͚5<01=5 ABi0k *tQ>E"==\tг~?.E=%K%%%q//og˩oR^m}ܹ[liiiik75ŋAݣ}xEՎ3FC_y'AP!BP kEx捶7A5,}N'z\xqРA6mgknnnbb"k:t(CCC_Aɓ'}$φ $!ѵۛ[[[?~ThwwwΝy!RRQd8zmud7HYfm߾+++$g+ NccJLpAAm(JY4o/^V?-[%;v^SLihhs玍MRRmFFƠAcnn>yd 2:u*--eܹ;… &Lk@JԟwvvxYd8]ؘ[EEEEݺucWH۶dɒ6pѣGQBQWb8 |0f BPZ,y" ˗/Ku)tl侕CFΈBP+ۉ7n܈ I"$ `_M%zĬAY4 A@4@]=jиʆJB! dOw DA@T0k zp¬A:A}8?6%S[~ A@6kìAt ?S/v{D>XX3c;hRjfDAwuLŗ;vTɿ "B@~ʴ~Y S4^[[Ϫj BYHoҽK? P+ f  5[3>>Wգɚ|r=zJl"YDiKA`$zj8d揆 f,̂om~\A`aQDFH[`ς 0XQww>n&%jm A! f DFxٰtiK'b5@'o F0d5HT0k ,,(|0f P!A̙3N)qU!>rn£t /Y$EEGGid%Dy[BOA`aChMp-~J_Q{Ew+0*NuؕkVnTnY;玒j^^N}5@'{ -s$T,Pg>zς筦}cuZ iOXXYC,{(Tډ tʍ VIhiiYlY|||vvvCCJ Tn֭)$%%YXXǿH-s! A@BdX`A OXXX޽ŝ¬A ׯ);v !NPl ݥ:Z֭[Z\\ܬ[xf 3LW ;Ghk[n~LTGן " }Lt*A ?U ]AA@ڝ5HGif -6ƬAꦒ pPbTbp *ehA@(rA/LC!Ͽ8 E* ~g)vY /_VVVSnT0kgH[ŕ5ǫV̫W q]|h}0eގ5.]Dׯ__qjoT0ka7)) AHss3Kرc---]mkk{ RXXXweo| eW=nݺgϞ(Ɋe돜SkYX~)"5ޡ^YYo{… O%^x.]w^s:,^.R\\]CnnnXX?I僅ӛ@G=zSV L7jhyqDI~)p)U 쉉(%}[A@0kyի/^}Fqƍz[XӄV ݖ-[ʚ:C_Thll\*q=BWER7;/Bxg%E޽O?M2fjNbf͚@mڵk}K'NzR^iy\4mʕrN 5&&/8Iϯ/)RK׃2c|}}5qqq_CCC:u,XR63": _a묦)ܶ7mFj)OE]z̸+ؐqYsYFXЌ163n߀OqhOiBBBh7O e~tIt)[EҜ$gg!_*d `T:kBs'v-z4E `:zԞJ=e:>>>{4 O@dĉԅr =NKu/^|W^¸q[޷o_z.--Pp…C6O>]TAAAAܩA2wQ:C7Dt&&&;wtpp_ju/_IP"A5o߾M6ZyҤI7nN/i5 O<+5)e1?njjګW/ ;K͛7)SS[6W(Ŕ) ԋQFe9[P#@/jI֭[txba#g&-[kd6^}Y;uS=i,i1k)76)>,zڻg:t*I]wl]M C1 Sw6mg̘Ao܇Qt[-%w[/ Z%֭}2jAOa|#@} S$9N$)++c=55544ZTTD-ԍ;;RN^^^dddvvy$' Rcwvv_ߒF8k׮:w֑z]Q S5{NB*$U]2{Wv>cw؂A`D9109k=n9H炀PB]pɓ'_aĉ;SNmQ[΍9s&wk5ͥ~yx/vg-gZ[~6׎;&dB$S8444**֖HQ͋uppXlY>}^LLLq⒘HAk׮ġu/Jץs粏8󽼼?eZ`E.E/M,m4l#5fU 9zʬ-[@!vGOcz!cl(8hE 9۸y٩sLّt%N\g<209PJ`7=OsZmPAK ._SSSmll;w&j]ZYY75JQQQ2?:vZz+++=*5Hz}!ADi#}gIubWtd8_ r^4Qcz]:Z^*exPӧO׬YaF@% YFIAT`aO:Mߞ@z*aqөA"/1tVD@ A@2ZA)6dA@=k`aja @PA  A@y*N]f 2T`  ІYf oxvG :luAwNVuf` 0kqY137C+/!~rr`a o*--- 5ZBD믴5HAӧzqm:tHo(A@a ਤz P~/ *Z|9l0k~ìAv!TAa0( +KF{BizN}TB߿WGz_E *`l0 u9S^`+eaKA)ZGتAK2T`  ІYY Z_`{9s˗r_$Aݿ6^ݿdSřgϞˆC*EoaJ˗JyΘ$gZU(?|Q.ôZBQߦz#[XQK%kUqPbA޸_]G/_ǛEZN Bg bAtxWV{i}/AOK.֮גJ9iS[[[\hjjco>m<cYlٲE;5H 5;5hPg!&jgP%4Wnɘ84?e[Ze A@6SV=yDMv7UIϞ=S])Y]?w{1wQquuu 2Yt kt}0 r“E6P : `h!ȀJ9"Y@]AKYPZ) B /r:k44",Y`aw dlPnff B ATBA0kSx VJ3h!Ȇ 'f 2x1a ] ¬A2 A@6w Op|@a,[5HF!ȆJ9"f 245Ha * Q@N5H6dhD>X)udlPnf Q!J` CYf ҭ¬A2 A@69a b ìAN׃nj}3.$d{7d ºN PVm:ՀXNqƠ7:Ǹ95KO/7n&%nۻ%`P@NE%%%-\ f 245Hix֠ivC6C|i }s'3zXW\yX2zЛ;ER:-E"̴]eƊ]BP`۷Mxhm,j3Z\i=k(a] \A@6T˗M---իWhZ0k`a ngSQ'Uӥlj|R4y [}Sw=1܆zөĩ'vFTƆ(Js<ʋ}j#-2bߢTr80&~mkˇBfӅ Q ص!V? HOqXBQO4|w.,Xhsjw1wjн Y3kZO˓'evm.nX~ݐGuy1)Ө3OJ*Wεfbs.IC[B)Pctvo\U! Q=|%hk׮ F걔LZs.tZ?j쬭EtGg^SV.^j2LW#|#r5Hix NV/2a@Oԟg'-3>ߜR1cǺZ&x9o-tu٥˃z},HNȌw:3-OyFVM 98{Tn_'QFH+̘AWܬ'E\ɴ:)vU;kPkkkxxxSS" 2밝{t몹mg(Α%T]_rT:[~Zo66i9#~_!EEfFw]?3?|O~$ @)+ۛ l/Vub7Aad\Ιhړ?j B)?q(?eZI] F.,QQq3A3,TO>fd7xh!9vϦ`Zxsi Ao_ױQؾ6@ @ C|fLZXToyys))-YˆzMYSS^85%}x`g 6*B$Cn[E{V䞠 A@0kجA{MTg$g9O/mN>ʕ~x.Ա/HN]7rlZOK ~sXt'귳ۢ&DtN 矝8V?/ܹ~H,_>XwĐnxTG=kBLl1-ߵ>۩.7D"W*f=߯W&?Lw4P3A@CP8S j}r$oϯh$` =B挷 .~w]D!2VONǿԗ]3 :>&Sms'!h c ehlpƒ糨x6MOrNɾ TUzBj?9EP\ɑV?5 ȃ(CA@ ;q`oXk./Ƽw␪*+a m0mvrWAR1 RT;kP{&5H!h6k A@0XX!h6k A@0kجA(Vk! c e`a, r" *$T1[Yda ] ¬A2 A@0XX!h0kBP90kn (`a ֭BQ*' @Э¬A2 A@0kìAU5HF!f u9٩+f-+[2Y\]W4W뻩X%E:" Ǐ?~aΝj5tnٲE;#f cBg b"zJ{JgG]]wQq7nP`C",Y!t0dPȃ(A@ 51n:k` $t >5t ƬA`a ye 7Az 7"Y  hf e` =Y ƬA`a yeR_1///??ܺu+O-zЂY@5Hyē'OXKkk+ZH`  ƬA Y@5a0AH䃅1k:<:` Pf 0@, +0k`a"{IZЂ-hA ZЂ[ϟ___ߦ 5!  ` B0@A!  ` B0@A!  ` B0@SSS''0 Gώ) endstream endobj 338 0 obj 18141 endobj 339 0 obj << /Type /XObject /Subtype /Image /Width 1027 /Height 255 /BitsPerComponent 8 /Length 340 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x @apb*q1.=ֻ p68B hLX endstream endobj 340 0 obj 303 endobj 328 0 obj << /Type /XObject /Subtype /Image /Width 453 /Height 368 /BitsPerComponent 8 /Length 341 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 342 0 R >> stream x Twdu9;73M&$f1FFqøPYDfETDdWP@EY\p\p\AYU\@MM44Tw9u8Uwտ/y̝;_~Ν//K.A'7nN@S:AN@S:AN@S:AN@S:AN@Sta^.0}ۛj?s@@ ֬YS]]mnD S:8~~!!߿jnDItJW4VUUBbqqٳgIe|3}e|||ss3U={FmΟ?Ϸ9XPPtenmVÇdKZ=vׯƴ}oooϛ߼y300099i;O>Mٳܺu~^z---{)q„ yyy[lҸzFFΝ;/Ib}W_}ua ӧO <8%%޹s~ڵ~xꕻ{RRRyyU ~999rGG&Qŋ/^H;vl{{;5ضm5DFFr"ڵḱlH=gAy3tPuVx:QpAr)B3/N@v{t fuƷz$lɓ'idIE>@]]]io?77۷o! +++{nSLQΟ?~pw4cii)`F}n *UPoBO5kd3g.\pŊt̯R) #͓֬Yc*Z[[42 ZE;{|=&&kM%%%nnnʝ'7C:*Ny,Z2;zb|Ә1_N w-[XYYBJa*6!!)@2o4f鴹>" g̘C 딿z<55uܹ "*" 2fhKr4Euww 6 o I&]vȑ_x;\v'NJ×,Y 011qܸqpQ\\2''g{0`@UUIt9O-333 ~gԘӹ9~8:UOuuӧOiv FZT/ohh!"W\1nlii+رc?+ ~ܣG=z೮{mmm7n555|K2'UgNS0x1Nw`Q'GQ)@,0S>}`$HR>Qt  >@, G5k}L5Y'or tr_$~o8zxzTg4ŋ 7ċt Xi 3K99y"gnSN%%%|Ӓ|YSZCq_AN5uԩǏ+_786?[UՕPKRi/@0E\ эe>O7x(䒄Na\&L9Fe~Wf[9se'; Nv:~o6A"S`6 :TeBhހNS( :)NMC)d7S@)t @B@ :@+> ~N`$N3K3.݂NS M:]-<}RC˗]]]:qތvK\;Oˡ [oWv6:H'ٷEeַ<jhՅxyyeeeSrըκ*Rw#Qm wfż4i)2H{7{gtrWO}8虍1ΗzEEmiHdzotG6lP^\z}#NqKnE>.T^N+/os4j}~w{B2*ZBfNag틻i&VqaooԼC_Ö֭koo7ƣt@'=uŢ4%?=vyY :vƬj⎞UW8.w_0̷SzgggdM6%%%i5:͌qWs^zZ 5:͗R{._]|2*>:D{IoM3&}AI4i;xܲ :e3_A2T'sS]c&Ogfn{pU|j+V:> ޮ\-p?vt<摒ޮv>%1jDG#oq $8Lp>t ~oOMB92l¬yDmz7hN/!m.; } ma_]=t Pv&Ө\+?kàNnjPu?o.u:sMx榺ڲ:@1b}N3.[6d߹LJ%NL&5(lֲ_ ?NtI>{-u#W<}h-R&9 >{oz.ۓv1˽Ѷչ.ECVTagIQִYSV@@j wvƘ$>ϸt+>?;_J3'.ڄoPk~LhL>z87݈M"M: Do:vw?hWo9Nk1:҄(Yz§t qC) :@+t `*C) :@+> t q"ﳟЩP@@Ot H{:N0HSH$BhQtg?SN0S$}:  ްZa5#TO+4iB7tZrt $_PpHvdԶLEEE9Y2EFr)ʘYQ^^~tTWWkϖSjkk { }8S'GQ)0)ujdH  }8S'HN;et >)ƣ(  :Et >)$p@Q=A'III>>>!cݺu>:zxłNMN0S}^Œ:FޯԀN NO׿gό8@@O ӆN~Ncv:5)`sM}2*=Ǘ/_ЩqN GQЩqN0EArX@@O)SɾNt ~@:zdOSv0dT@:zdOS=abѣ=100P~|2L{5lf͚{yLXCN @G : NϜ9sySB`Fr1>t*MHWW볳utjԿwJӹl/#:HDvttٝ8qBnNC:5ƣ(QHEEE4֭p: :uO2ejjjnNt ~UNS >NUNS`P8@@O t֭[999:xʡScKJnnnNN)u*d_(Sp} ]\\͛_;M@'Щ*fSrL\VV&>$}b:Ux)0 H tjBS9H:U:N*GQЩ:5)z][@q"ٗC&E^9>nWvݽF<\~q---fC(! t t2_Jm#gOpssۼyV%mf,ZԇPB TTf1#R/Yx }}ttZv7NE>III h"V\ ',Q;'ӧO/$@@s) >ǫW3iYYٖ-[oN :`:%^x(ɶnݚ AtG޽{zєkSM+Uofxyy)/]vĉ󟯟N1dңNo߾}0ń hUm}R[[K44ݿKK . :^Q?in˗>}+mON~:xMA?)8nd^y A@s);>PFN;˿K|WCST: :bFʉEF6t tjL`3NUNE }B@$@Sxe~ʔ)...."ܹs---i5'S¸N /^ 999أB@i&NiסS NSY&Ǵ]UJUU-Ι3zigg'F6+>7Nkjj233S:NPy 4/<<\رcW^s#֭[2zu:2f(bЩ_nڴML%%V9L2yuNQn'CrrÇ'sh/A]\\h]:Wx񢽽]Mutt]pFtV@q"٧s bUU9%jjj߯A,/{ɤPt9tjLK$Ōu*^z|MJee/++3mW_|6d]`GeC:jw?.4r?dhxKu:?C¢F4ׯ1FZWMir:-Hw{_WoYidFGoyG(ɾ0>:^8v'۪Vsm#KLrttv=CN8:8jttǿN:sc:Jf%;ո,ɾ`3o𽷮n@Bκݹ&H)Mc]d~jS$RdFg[NUQSSM:$:$(J :U:5NK ucrN:5N ~kkkZZL&۲e˝;wSNS$_$:谓9tӦMb@@9s}]QJ@F)}xbaaռm۶W^i;vu5ScɾS%33SϾt߾}5 ۫IiMMͮ]E\3wn_pϯ+Bҩ7ڏ;Enn;5ӝ;wjj(F@ BǏSSS\SC>o۷SSBj((( ]jոq>!tj2ESm}n/toϛ7Oo849TM+W\d(p/M'{N+Ϟ=S^N S$rTd_T,Ӷ]Щ2Hө~7S NGZ2q&F-/?h4 ؓ}( :At7l#N322ڸE=ulluFөrOO022ӧ؉S5@@\k5gW?:-++ d_{QzFQqqqDo߮͑ѩnɾHAj:蜽u~;::u2?hee5zaCj'e[\j9jA=hqδ/ysnY=xE/.Bf3gZvwqrrVtpp'2|p~GHM}T[iW}O?:oA蔮h8G/I5p ō1R/d4W;i~㺙w.߲>>=mGDQ")"z4wĭMi]]&:-/e[au⪮ɾ ,5z%&j:]8[=o'l!w=K<8~/DG\ש 7 DQ8{,t w>.\ f Mf-Wz3Ykw{lk|.|(yguxtʡN9t4)7\:IRSS_~-S5NfNvr7Oh+LpXd4?:7:˃<͗ S?ddOIܹs',,L&{6y8Mӥp~ ~~~ʋqƽ׿S4~qo;t̾\NKJJ,..d;Ç?^h 58 o]]]jN+.1ɴ]Cc$:S "3֌a]v<$:e$:e$Rɾ }d N$Q3MK &GQHɾ :E*) ٗHMK $ftj lbɾ] =z WNMt;mߟ޽{\pQ*HM)}TN>:eL0oSd:eL0o`ƣ(60S$ }Dt&HЩكd }D^lxU`uj~~~~XX귑£G]РϜ9_@ld^V/-- ߳g())ٶm }CxbbWW [[[ʲe8ҪnTuYVV֭Doiiynmv tj 砡|` +Ν}vWWXH:Oϟ?qė/_S^-[%ww*X{޼yC ľ666K.U՗_~u>yd;}˗Nɾ \q֭\Qx!9-N,Y_paѢE|n:%w~%^~=W<~x~~r'锻:uӧOi\7XjU]]GC{~3E1xydddp:MJJѩʕ+i$I7nی39sЀz̙h,^UǏM;F9cƌt} ݻ9]ș)>ϔr47787O?~<7]st0b!tLn{!sl%.\_ϟ0ixLEEEѱ-ЩNɾڵK}p>vXEE ccci9y䪪/bРAt޽?7.88ԩSÆ ;y\q wpz#:5wHmm-b$==lCXyCH;8 }m6u}]ؿ 4>ƊpmvܐZM2+0r(Om(^ׯߛo}XHKK;x;w4lmroϠ5!|. g^fs:o~O 1if=wpo?6$SHEdnݺ .WNM9v^8[ridO&7$t tɾQ:;;MVڢEu։i\ ÁdGĞSbSd_[tNE:9ƣ(O}b(VN0SI CB@CkɾH1Nor+B@T[SN$=:Mk } 7 .(QzE_@μN:d_[ɾNɾN:A#KJJ k׮E_|I|fo߾ZPPyOi^KFˌ8;hAtsٞi #$eeeǏ'wwfNͧQGcwrOoy⦗v̷FѩI. 744..ח_l[nAf"I8%%[qʕ>+80`@{{;ũa0D'l)1}o?y̧~3\VLoN muz`nٹ[nw+4//f.\yDgw}*?*]qTx:O{1:d_[򞥥%W9{lhh͛7cccGMT,--%1^~ƥFQ.:DE/_NǍl|Et~H4x $C_ιlO*ZLdq;sp ޞz8$7qXQ:5‡L$1rڔ+%2MeU^^NCPrlCC_TMm(.S?Ev Mש$RC7` m}mـdX>@ ݒ}[xŠNEQ,ɾNdA-HՃdH$HRɾ W} Y)( qGEEu* t $ }m!oxxx*wW C >}Ax:e0AdX>@ A`> stream x 0 Soa*8vb~+{={=\;Q  endstream endobj 343 0 obj 209 endobj 345 0 obj << /Length 346 0 R /Filter /FlateDecode >> stream xZێ8}3f|#! "4_;I9'n gUew961;~0Mxa}xog-mnFgFGս`RYKm_m#x0/ c RFAGLcu=W- R4MI?"zF\̵Q3b4aDnf%O $Ӣ4sFagϘ3rt>'.9lrAeY:|6z;>a ,:4a[vlb=:͔?-츷]$nnFbOX2iT/JtW!|GKBV'bm`NHKݯ-x{%:[)su/i9ϲ=d|seRn~ hS!;:mn^*IrEHG?ņ"rN*yPY,ֻ*[sQT]ឡ*ir !uȷ,N"^Kfz^1pLp#GBa4.Ge|iO/C&;wj$c@;)28 bhVP\K3tK&dxA C{*]IݎȎ,e>ʷ}*+z7*Erqln1k,g.z[ ΅X3=Z~ȎȎ\z ͳ>Zա+ Y Hڋ8g8 zF7O3n6uv9wMf]5C;>k݅j =)E%Ej9* YSuHB? ϿF=s!VŬ_-wXh+N™TsRC/5}'sSN5tꌥ5g' FAZ|p ޫx'?@>5{x0Va?nšuabMD#ڛnJL y7"=}zX)1*=<WNu%ɏPiZr} $H]#IVr$}]JV $)2 0P҆e6]>F_6<>L5endstream endobj 346 0 obj 1172 endobj 347 0 obj << /Type /XObject /Subtype /Image /Width 196 /Height 125 /BitsPerComponent 8 /Length 348 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 349 0 R >> stream x]XSIvi*b 7AM t"*6^u+bCq)"(b *XRHXۧ*!yv֝zf6-RC7=!P!x-mZw7 ׮o;cC9&95˦ogh~&xn{ Rג 0!ᑨ?4/` !bRvHnZ^ۃ`gލ ! l`nx-y,aHϓԬ*jKa>0;XDӐS Av(NӶ;a]~7?|YVYN oNYGd;/x q9,wF%=my95=A`xrn^ B  J(:C^ fRגG]pGF'h{?2uT|h)cD#UHFiqS9)"=}nPV2pIvy\iuH.6<'X02p]8A#9+¬B*ZM, -S׉5ݐ.y7ÝKG;ouXڂdڭs\UZ?m޼{_2gVIPwGeW->"~XZ idxýw=q#ͧOʞT>Pk0IrEzc_>x nԟn7᠙Is3i<vᬐY#9]WH%^K>]soh5%C 钙w}魱0e=z!wY8ǽ%EL+h#ߓ\9ݦ6gxQ|)nicnf5Bnox̅]'cY[\7Mq eۡ$gw&_zП aNM^z@Qnγi<vᬐQ55Gx6XUH%^Kھ绠BAj֏ӠT(luTY]"sX5OkSqډNQ:9xɆ)u`jVo>ۊk ô+X,TEbϲ^RJNƹ}C}Hʎ#;k ,)L7gȭw$JYtT #rt[ ҇RwuF 3gtji m0+Z'r%dO 0tq|_Dxqh3.`rG'#t\vgei霝vƳcVQP_톌um2u6m?q[?za`;r肭U ˩^kh9B7x>I2?S@Рq7cH{F!n@:1? B.Zi_*؎~Q]dÐ'\a흌YFAb69.!(C? (5?>:TcE'vae'o:̡]v&PW-9*YNY9R/T#kx6xs|8}yUd9-б܋eyE5_6)/ЙvIÐ%ޔ$IA?puCn SdI; =g]hdwk8C&{f޸{Kq:Q1Ua`ڒɯs($[/ f1!{qC6UbZbqv8ʾ7K?k{Ph"~;9%Ϻ _>]H/;=::*tx#m,MLl0H %I$I5 Zh\WAy8+dWx-_gR4v&K&k vQS)$+JqyMXo6^9b_W\gy׽mk*5MPUgU'fWAz( t=*'v^⎓T9uڟWׇ?}1an;b[ AziItؗW柶wTMGРXD+ < G]-ӳS-z/j9Txc9_xƤQWހ`R#d5ݶG\7qnAbZ_(zcusZ7tcm)Y·sQ[`.g &jkUl`$hO3vaU!s OelܑtXIJf y jy4-ϝc,ԙ H?pe}/wpVȮ.Z0 3oZL̦?1vֲ ~/؁4$UgO-=Yi<v:#}v֛0 >O}6f bf.4&QuC$G(4a)fZjzyMgKC)?t(tЅRCY R?/03-kxx6f擩Ǎ膖:@j,wz9.g<"Xy\ĕ螖+@3$C @"㵄@~CQ%CB|+/6\^p1] ;D">㍽YBIbUa[O[͗J5=^vtza<!HO0jT4~@s#@1\tX/.?F3ԤTB.-4ۄe1iș[KŞ,:$D{ Դ y_Ŭ7ZBmn|=ͶMl.3>~y=D~fUK[GY\|(9%FK1M*rOL}TCo2\TL˖/dfRTUMȻquQCSP /OREu˓Yݹ/F.1 c& O7 ʖ7 ֜ \,mf}q]^!jOF3`&ATl\ kPSO$;?=C`' @f6lTގZG"z)NwG|l]4ԾKq _+/ w?RS lsk;Nܐg+InVr;۞d VgB`׫<ۄ2Q-]d8.5PT[0lCk ./ ˻d/#^9ɂF`,ZPᡭt vKۄ%gQK7@/]\}FcEWf"2!`DK i  |Ô|cqq+B]%eϥMϟXcwa+V&ۄ&gQKfjNYw`\ k%Ur78Od )=Gb(^>h)GQ8Ͻ$%s-u<S Ia{.R.|KO lcqR+x9q?q\%~%vi ]@ZB`~j-[sv{3 94+D0'qAAaSlSbZ"hILa -/o ;H9!d=ה74Vܝ(1q=zk %'rh܄ZK =/PKw+坿X(&:<֧(+y1Mn-=_H&ó`a)' p꟧(z;rzQ~ ZO@eyDO&:*<쓟a+o%iK :ǟzt-Ac]T_xPNu7+tas +S.cWajSqB*eZbnW=+Nlli(#->ۑ>ⁿٺX67q٬]RD| Zs.Я. -! HK. -! \K+3g68(W*wk)^AБ7w]zE%}/뾟epf"i-4OYO"oZ8Ћg?SҾWZ";١oI9/?Z͐ͽq.߽{벲>P/cP]!M#wr z>TWWWUUA/>ݻw7oހ>r -"6?fHӵ{z>Լx 'XVK ovccϟp r&.n1QHMǏ9;[*** ==]Lt/hip…*++cc ! kZN-,,\X={sLc@T}%K@=%%%jc6~NC'jO-z>e LLLLbRRRk)<< %=y&Af Gx\{swh RqqqdddВW  rX39if3Rg]nn.z>I ZZl &'Xj8)E3s YI:''ssྻN%0ɰ@@?111`rdMN:%- };sιM2e۶miii/DKp;PPP0NbڤU3NS,DJF^UUpAHOϗdr]]T†u2cX| y :bP|;8; &&Ht4`q3@H endstream endobj 348 0 obj 6264 endobj 349 0 obj << /Type /XObject /Subtype /Image /Width 196 /Height 125 /BitsPerComponent 8 /Length 350 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xA A.DžcF@e<+Guǝ{-6Tؙ endstream endobj 350 0 obj 75 endobj 352 0 obj << /Length 353 0 R /Filter /FlateDecode >> stream xVۊ0 }\h7,\J6@?7(ݖݗ*e'V2 3|t$9V6`bg!"ݠ]oV÷C{O?mz@7_h|;ghE&j !f(2dM)QާM %db7ke~B\AN7UhqALrW 208$(9$":o!9וEt/eW d cM\W]35Dgt>Fu}ty}0DKCۄ >A6;tKnYaچp# {RbdRlWf/uqXqIxn]aָF}kDJ\Hխ7~9ޒгRfw2\klg} Hqq+|Vp+KdgQȭOcOC!Ң#⊸'G)TV6njߠl9Ê?: G!0VD$:#͎GzdΌI*G')[zrP8TWʉuZj~q,-7GC 7SXunk%'ç9WzJ*s vf ]Beؽ&ho<#@teTc2>_ALendstream endobj 353 0 obj 667 endobj 355 0 obj << /Type /XObject /Subtype /Image /Width 354 /Height 304 /BitsPerComponent 8 /Length 356 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 357 0 R >> stream x{PWpHNR[SfkR5ڙٝqd[DQh9DESD^5*>&8*1hc| }jX7mrD`HJ>}ܛ~{ƍbz>qi>%%??… Kh W\eIˍʴ *wiguRŋ)%=+V`˽F;vLرc+Wtѐg?t l07qŋ7nlk׮_yfS t~g?Pw?XqIT)%6l@C2=.kCDh?!40aS4؈zG}>OkZh{ϟϖ͚5o}k񼷷7-|7˗/W# ϶@R:Ӝ :m}||f̘l8(rrrY[(4(<8k,mR"Q9rݺu+B?6kfLL|%VžްxH ]gdJ(K,:mY#o=840xw=Cg}{_=VVVr6fiӦMٷ_y\=;  `˔6yyyl:Ң6gΜk׮ ,SF۷og4gcW.X~S>wٳ=z4sLe+hnBB $hȾQl<6Dy뭷Q(BBBڔ~_ Gb6GJ(<55ƍG tJg1cǎ[UU?i$:VZ5y7\}%&&[ch /?2](Hg7](w|}})vk 6xݻwF|4f(((`taBϾƑA[ΎPiPNie|mjjR m s). ?:d?8TjmRm6=ܰʑYM;4o‘!$ 힞K.yqϞ=>%tǍwQ`H K2u<5g/pjC<)`Iq68@VJ7NTTTGG@D^T,..GJ@C*ƦDAA3g߿o`Ąا;??R R܄j Pq %$%ٜc-1~)Vb<%PPtAQSV:NRBHq)o>RdxJoSSH !aRH jP0)wH 5^wH 5jj!%ԠaRH $wH 5qR;8L )RB೗Figg'rɓwqS55"ŋU巵]~5~aaagΜqёjP0)cSg^~eooeׯ_G&&&l\d;$33)!8'>@JII)//S=H aR2/QWWGO=@J 5'%xRBH^HH qAJ+//OHH :PI'6_̴LJtttܵF lJ:thl\(НY;XˤH 528RRR9lLY )F%/[\Vt1o}~N # RB೗\ %0pRB)Ɓ@J8)FRbN݆H {H @Jx /q֭7466r)dq %ߎx7VXC***)P0)cSzoɓgϞsȑCN!%$%H 8:;;KJJǵky|cH 5jjI ..%=z/zyy "%ԡaRH (ks=G  %< )ᾎ^zR"<<|c uqR B׳e8Lʒ)g͚5HQ >{R,)Q]]]QQez"%F<%PPcHJܪ5%W8p, 5pJ|{_<-S, )IN㼞W )!8L)ۜ/@ӟK5n°{E␍೗\X2%RV>eԭlR<O 88P\~횤5+ UVV"%$]~q(; )!9U % 5)aU^r U qc\3E INNvpMǥrfbbbFFzܹs~] hQ0./~8,L8R@42jGD{#%D -8i6GJF@qxr#f$ڋ) 8+11.'..5ccc\ {@:jF8w\UUѽp)@JL_ 5dK  RB_jΒ-%Req$dK 8%[JpIȖq8K@Y೗uVrrr]]ݶmBBB)28wk>|?00ը΀PdK k'RFڵ˅زe ˗ՒTTT.[l)SB{)qر[ܿ_]vl)!y)m޽FBD5Zퟮ\UWWǴi&NxYOv$[J>{ ,V^G%[JH^ؾ}75^-%82cJv P#[JơM 55jFwG|@@H a1q-%PuK5GfL юPjdK 8tݾơF@.Ȗ^ci})2juwwggg;>jjdK 8ZW_illԧ_;>f/Ȗ1%>[kȢE.(%V\Y[[H 5j.|r6gS55jNώ9n}}}KΦ-% %xAJ 59q-%Ppj}RjdK ̘^RR5] jȖq8T)jdK g/EAPjȖq8T)K5GfL ^j@J-%Pu}l)SKF|R4H DJ5Qݹsgĉ ,(((`-9}eȑ#^s fOOOhhhpp…  jȖq8;<}ԾqϮf{ǎ{z2K~dK ̘z^vuu kt<%AAA---l?vˆ(%(.]:SsG4]zBg̘1?%''[n&--m׮].VdDkkkLHnk●*j5%ҵFNNɓwܩO0Ϗ.%Q=k>}?ԩSY2ب[z#tq矧Bt߼y_ps~~;X#]A 233Щ]]]M)Q__Z~GFFBVV;Cf/%Li3SgS"yՂF:aR4N9s嚚 6 [F3gHBaGEE@'dҤI)FJ +>h'Sb͇|}dH 8fSʑQ.߿yaZBB[a tA[`yyyeeeC#wƐl)\OGNq8qƘ1cz!$$tvvΛ7o3fgs46?~GX#/[,55; .Aرcz qȖtV壔Y/%82cJ75 %Ԉ9{_JơBƱ:."=-ƨ[܇K)R5֗*%PK`Ol)!hNk0l~'Oonoowm.CCpB8XJPm'OszvJ@éJ ]g/YJlE)a3f/5x %?;7.%?~S5]P5cg/yZJJʖ-[>|h@éJ ., /V5!!aʔ)z"fd} TgWK %eɔPtuuѩGÉ78qBӧOsssG9殾zO 88aꔠ.4]q8jN/UJx`)1S#3f/5 %b@Cblc %̓5.3%jzc)ۛMW%%%,.nք[Jh)aypmʌ)ᬐ̍&nݺXē'Of͚L|||@@AJ(ֆ>?o;uҲp_DDDRROxjjrN.11Q&M4b޼yAAAN%j===]]]t2/ RBuW^k)pgbۍ7CH?ݻQ2kYۦxUql z\q[ ~OOϷ.~f w/'?5cJzAo~kR6{ߜHo_6oo*%Puw#%oxG ^ pdk/%wFwARH q'%rarZ4mwUS+TJ`UH˾nVBd[H woK8wa;l޼ycJJJ &L0/%wn,<{=rmCBhN<vڢ,1%0{Aؘؔ8o/劃OJJJiiiwwH)q}SC)N 8&J g/H ^P0fK:ւ0QJơMMc1g `2 )aȌ)K )qO?cN:,PJFfI kCȕj*//G kѨq?Bw8]nlذ۬W&J kgSb$RBKRb$#PRb$ 5p Rb$ GH y %FH/ҌENCāݵic!9q8j1Tkk+|Ą)RA\ %䁔 jS")rE"%(*$kꘄh#n"%'%`])xjݽ{75558S)AJ;Å j))֖@C w 99KBJH5XJl^^^w{i.H $S5 %@qpІp3%z{{ RGĦMϟN88r'%:;;̙3@hh(=wﮰSZZZjjj*೗)sN:? . U0SB)+ j!%!%`IqpNJz{{qyAJPȝ8yQ;H ೗"^TO jnBJP) )KB#Xj!%4X)S88BJhCJ %P)GH $g/)$xJ5ڐ<E$55)ܡӧO2RB >{ <%U$8chC >{ <%P0j1H KBn-$%% rGJ={pѣGтҒ; 8@R!%@R!%@R!%@R!%@R!%@R!%@R!%@R!%@R!%@R!%@R!%@Ḳ *Rr endstream endobj 356 0 obj 6803 endobj 357 0 obj << /Type /XObject /Subtype /Image /Width 354 /Height 304 /BitsPerComponent 8 /Length 358 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xα @ <+1J> .^;T஖ֈ ' endstream endobj 358 0 obj 154 endobj 354 0 obj << /Type /XObject /Subtype /Image /Width 956 /Height 630 /BitsPerComponent 8 /Length 359 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 360 0 R >> stream xXTwv=ޛ&f"((R,H4EMK1ނqmOfA3̜9gޯ9aax3RϓX^ݻw?<˖-Yr+hfEhf80fhf80fhf80fhf80fhf80fl]޽[TTt8O:%9RXXXYY)o߾tҌ s8q֭[oV{lXXX|||֯_ X?v8pssJKK=|͛7۴ipBqqh5YmvիWKgm&˖-VhݺuEE8xkvUD]oܸQ~׷Iq7n8|2++k޽bU~~[>YG&M>o3 g8p3p&==}Æ O,,n?\RR")2Iu3v͂¹s͛7j*t钸~N:M2EףDN;%%n+ԅ /^lR}||G{fNHH04E~Wǎ]s._,}G!ѣǝ;wAxx|R|ӧO)މ^[whf%%922iӦiii_JKK?<55?NOO̔.cƌ))) ϗ-..4hBEˈ%###((h͚5dŻ;V.͛:TMRUUecYsGwށ^qwϜ={V_qƻw^͛7I;w Ç5]ݥׯl7#Gz}u|P8˗//Y"Wef޶mۋ7Tiz `43`fbmhtn`ڝ{hf8f6@rŸ;v۷O[_>|sο[l!!!OVFs3[tttvkJg>3̮]9"ػwo^^b…8p@[g233'L`Ƨ =Èa3:t(''&7^<|>e0 @hf#=z4o ^5www.k\VVF3eͼf̔9!!:ZLjffBo͐YdIIIVVx`{Z- sffn( f b X{y{fkls3@!f7fh{αbn 1717Bo4fhfF3 P@:@3 3Ϟ=9hРSJgRRRBٲet2''G>j*[-2Jq>x@anXs3蛵f|X:)δmرc& {@߬ƍ5N*ofYxxǥ⼼MPff }aB<#@!K@Lf ਘ@!@ o<A3PR0bs3(c)s3s3hf b .O@x@È43x,[tttvkJg>3Hg@!0f 0ffnH2Ƒdq4@h'Q43s3`@G0$cn-=D3?anݸqcܸqQ>hfrΝ+))Q@<׮]ꫯl|Ξ={-\$cn('7o]^W^yٜ\VV&ݖhf b ݓ__U[n-o @4fbEEElyhfʩf = 1d43(G3pL$s3@9c-=tfh'hfffn(G3pL43{@9c"hfPfH2fr43D3[{ 1O Pfhfrul˗/ϛ} 43Ud43(Wf>uꔇrf \]9!!ow 5J YXX uy.]z1>4ե}||=7JbccW^]^^~_}ͻo>  s3@4|aޕ rʕ (0 P.<`GI>>>] RhfK37ƍÆ 3JhfB3fgϞuqqۧO#Gw%43KM P+++Ow} 43K@n̦bn(D3 $hfA3= @7hf @7hf07ͬ=n̦bn(D3 $hfA3= @7hf @7hf07ͬ=n̦bn(D3 $D31wԓ@3$n߾;V%43MB3߿_U43M D3=ZA3f6 s3l8 $43M D3=ZA3f6 s3l8 $43M Re 5fqe^@u4ZSZl9j T!R3xk߳o֟\Ft%;W M "5ϰzkTt%9>1j$-R3%Iܺ%8ff6 @[f^Q~|'OQq,$-Xͬf`4@ChfE&anmifA3=fXl43M B3,fV {L3T!43 "hf0743M@B3,f6 @[hfE&anm`3O,ZiWnj@6`fK5w6flZQvᙴ'S,Έ5Y`'g"ά>x*pDLz럷zu.O@~GIgifhfS17X,3Ts3c MH7kȌ~|exQŵ߱ɕO':Ւ=_Q#||a[˷lQ@ 4I@[,sFKL$N/[eW`TLaK8l5[ y=x S쵟+Ktlꃧ+iи٪gD>V/:)43j_Flj]FEEeqe0]jjůs̘1W^UpJ3="ͼtoުM:g 7j֡M,Z)T.~!C PѽR3Gg0p >iNW/YjᲽGn)X|墖?hB~Sm~Fc겟~:'g'kؤEn7i4*SEQc3Mu9hL% [ys7o>t萒K&h_ѩw٩㙟liޱ|In&` be_*cւez5j^5 o*;)wÌ՛ܢtt|qWJ 6lNg'dg{D!7iqҙ_7e(?ޱWņlٹ; 8J@[l) Ovs+rkYVmu"wV&7./DE89}!5NFd̐[v&m'_&e¾hfA=l\'=,B׿mg .,עSy[vg/ZѩW' Af+xF\m}<_hyul!cOU㤛Hk_._?"ztp407XtۻK3ܖ;.xȘqkdΒO=]?jkpx.ז.Z֢sνtpv 7I/~{6l%"bo&(7ltFԸxӥ;7v뷉wavXYwԱWun; zxKv)㠙ESkEq rO߽mƳ?W ߜ0I@d4h]T56X%if@hf+hvYfl%-43  43#hfan ifFV B3=fA3[ @[hf40743#hf@6@34fA3[ s3h L30ff`l%43mifFV >bTL֔FMdxŏ;G3?7n\xqϞ=롆;ẁ=4ի@%}^ffl% JhfݠA3?ffl% J4A3[ s3tfPl=T`hf+@9^y[o^YyȖ͜<ڵkjl%f~zՖ/ϡ3wZonK3407تUe0^ffr{UY43hf+a (G3s4 V Pf`hf@G3s4079Jl%hfvf9Jl@hfvffB43;G3[ s3@9= VB3r43;G3[ s3@93y˖7۷/prj;vl?"""999@JJJ6 JMMUxI///hf@g}EdsEŞ 'dfyf4iͬ:fBf6m[7LLk3fVs3@90-==w7n|A30ͬ:r5LJg?۷kEL3fV ʙ"+5}KBBCB<.^F3PfVs3@9fPͬ'{43U @4ꘛTA3= @۷o]vv׹sg~Ohf0 @H*۔83oO s343Ug3g=:O2+͑n9er͛7@G3P=7sz+G^&5sQPx<$33!)i*+$ğfͬz3Lu2ÙifhfvHPUeeUof͸v9U Xͬz3[==:$G5a(tff܌dyw{lСׯ{Yf ˗׿/yݺY6n漼ǎ=@3:(5sp{j;4q5sID"ifu4ͬ뙯_-ٖL3+f^pEܹ#PlAf`fϿc'NL8199yܹdžlf͠>X>|Lvv|ԫG+fͬ˹43k4Ν[QQ^=43;i۷oI3fao>/ݚRkm)-UKNI3Pͬ׹43 $95K%ͬz3[{ifm8"fEq3ҡ/VUU@hf{hff+s|"_~>lRt5,"ѣGj!xDxp>8=l87ԩSw1nTenaTZZ!>tVV hf>I3߿O?MKK\fjb4MHwwݛ@f^^+͛w F}/T76lآEc*/zy9S, tuا43ff>x_OfKII w̰BOJrk1|fN"w ֕cSÜ]ϙ(tVvy7V En͂}ܡIr3ޚ2$cv~gņt᥹Fk5>{cǎ}aWW׿o&lC c„ QV%~0ڌGx|܊=N.myfL3lU;vHOOOKK^[y].{)Ϟ0C^>){ q݁Oz<׳w _UqjtogW]yzp4ntډi7N+پ&E,j|xoxi>zpn?PPP 3g^|ԻQKk?>ڷogvWfv̛7o6|v3oZ:JTW3eY}>{k q`vޭwuj(lע϶^>:ŵ/jv-O' bf6t{}7jwn뻻uku|zB3N|Bg1=7-5~L!&ٯ_K7usji]:zґ)qũ43}P3-ڸd8(1x'OؕOsi'W{&޻!aDhmrR9YY "rPא6%oojϰײknCĵ>mA٦'Jg5o[cg[p̰743 @4ZY43 hf>̪7܌:RenF 43`Ȃa+ʎ+ҽ1Bglq3'gd-X&9uډE+x N.w,iz 9Q6Qzs͑43;D3=43t̂{O(d]3 ˙aSoaVA3 K7lN6i1,)]ZwH'[u!mMI/jܶG ã8?d|u7'& hf{hfA3C,+O,XeśZuM;k\^z::v f cб]xU,޵osO^ϼ- Z2CRF<{ڹëٳKKKذav֯_m6%vڏUx9Yfv43"͜9_Yy1L|5& jt~ }]'O.nGJͼx۠׀a 4m1{mw8.V߯G?b>xVHo␎:; 2:6dgW5[j|o67lKʛ+nr|ŭwyٳπ} /Y\\fr4@:fftwi Y$Ѳ}G_~w/,5sJW:$6,)=xt|~u{={M姣{z>)kw6{#xIW۰quLYiZt*F>h2b|xsʒOKVQSKi6ѣׯWV줙͛M<43 {cf2tso!_ pD 7-ȗiթEn?a3O[-Ac j\xbJaQ5NPqb&N ҽNeDԢ5 A3k4ӧLVRRrmjff1[6o@@N]fnե*b5tlh߁#jQVmTS/825;vr}R̢Kvpv]᧑pG>H3qZ1s̬l9z 8ukzڬ-=43e^ϼ`i´F%XYtqJvb}=#S;q6fw9hX]wGgMɖQ}݂;&KwYQ~yǮ#b+?bQc\&_<=C&.Z5?~꽇ܽrd+yaK?NvqH/E~K8Eٲͤ-;wOPXaQo=&rʬY_P3?an H3gZW΃WmE?O]V:^^Y~7NY+NέhkوI"}Twi]DJ司#]k_5!y*is߿_YYڴw^ԋyLyFRȕ+W޽}bK蜋/լs)42[]^_gLe3/++٬}bKhf=hf~|U[<3fY[,f@[?ɓ'+?>g8pFə'CjׯM0ĉOhfw ͬ۷۷E*74h`N?zj8|pzzjk׮MLL 0`@f/lŦuPfxb޽[UU//m2oMDmݺU4sXXXTTTNF l4cb_~m#8s挏O׮]&L*K^1cƌW>6D3k s3fYC;w}TF3 ͬ!T8}Qf4fV=UG4Ŧ!P vfԦz3Dy-^ʈK}*E3;&s3=՛9jhܒDclT&99ɓjߋ c3 ).Yf^ԩSOff`ulG|[}$hf avH?zP43ͬ"%hfMC"͐|B3h*Sfkhfw s3Td^3_bo_o+ TabXvLmfSfHFjҕchfY!1T͐_qeϬID*i4s]̰6N6uw'o5dOݶ |W$өE޵/:H3KkŒPߍWLWOWY%.F\7g?͹=NoDHZ=w_7r¨@"0ͯ+kko疗smթDKZPQV \;7췛ޝ_3_y:0I:#ktqkSoOZ6[ke="ϟwy|% jM3 kUK4`DfM)&&ԷwA˞={y͜w{I1 On ur{Q̗w &$Ի23}`jB@n&WwY#ë/)&Έ\O޽ٔx9͜ұa{!n"k'6L ѱwřCk&n->y%S"[0~7;FoXطKFcl!sm#H4۹ڦFyui~INȁz˔~}:+Z{N>*nj7^r$aX?=#>i (d3 k C>_0?ތq#6[ء}VI~6NzHNr3)Gұk[)S/)𤓓bl/Q^?~k'qn2VUe׼k9"""###ۀ(pvv~YYYe(*Կ`.Y4cpWҕcݚݑ*P2GOLpjK9z[xxx||1bĭ[̰ffD3RW$*/-Oq+DʊX}?>|ӬMjd"G[|8YQVйeO}/Gۏ~1[m>(傺YŒQ:ION%^䱸ϪOj܄"rkv̐!{x=viһѭkqHǢħ|9@|.?ஒqRӮY+]KJ# [7/~[grݬ#2Jbݬ~%y>ҡHJ[.n@/njgwwٳ|%K| \a3%zm/w**oԱغa;RЊz?9'3 WfqJ,;7ǥď*3xyNra?rlj_F w'ϵ-?~3/i+9oɗ̗vY%n|@vSuө7?m`ر{7 7{wj4atwtrİݚjճ+h/uDKO{o3;s }]\NO( YXܡ씐sc|+\|G\\(CJ>K"?W,LZ>./?{|Uʗ\%! YmrHqtj@⺳x\bX_r]|/V4/D3oʌU߯a]eH^|ᙺ4ogI!\(k3 +anV8Z3*o;i ݹA4 N;'KWn`}~o[Ktu!-qj74\>ɔmfR3MqQ,_F35%xyQWe~sh69+ <-102ɩ7MXEuWT=PQVճ8}WqU=,轿l6K _Ӓ)S[7/ -_O^?\L}w ى/HN-ܬ~٭rgMwx3i\_sDߺui"~w?Pf%bO:wLG^>X:97=4ً7_G c̠=~ҋ qVt64yc10-J u@iQ/sǫz~N-cqߩmGv~=K+o{+!ԻE?(|I1_3˲s3jx3}ifS̰5/?׶}5[3sL}{ !R$g`]Z*C@nOi ש9Xޝ-Hov.Lc/>S+jd`\ۈ;=l^"\+u*JIKF~nmWL!>dQ5fOM|8Yyi۹Wϖ@zRlEsA⇸&=HfRxOgbZnӼc,jqf߹Sc&&/¾wtn@ԝ8?qtm*>Sq [ }+ΈTkg?}I6Qcq"xfSloO_ĕ rm=La#{^<9)yCk2Žڥ蝝ҺQ 2l}+\;7_l ׼ߠ' wެ1>w mU-M:ֵ/̟UeQE4yE3{j2ȯ3L ǃ?4O*d@=~>f6 kU@ͭ/?4kFnWEYW)"EY䣿:.K4lК ; _1xE=,٫"giyӞ5졙hhfXs3TD3^#DVd[NmR"IτO}Sֺ7_3#M3{]1F-ͨf743{M Ų=4m̰fhbXf,̰fhbXf,A3 k`bX6Xt443fV{Y,fv443*Y,fcbX6Xt443ZA3X,fv443B3X,f5PE`X,,:@3=,eE3; ,e GC3αT`X,,:V ؼi>)! ~,R"[|\SWeka М~ `"͐߿_ώf6D3"SfH*++/LCr劊w3n^̰YE؀85cUUUUվI|is3TD32uns/ q]̎=2unx5Oa#UWTpQfY[tx3ǹW͜3~0U4\fn̛aRZ$ʱPEX8#W[_<=fr4vH?zfc=*NM0 s3TD3bnֽt*f=bnG3Jtf507C:@17쐾8@3=`̰fhϞ=դW߼y3p3*guR37ͻ{tf` Peaj3>_^ȏl@E|B7h?˧ԫ֨Q#.k+++McnyͼtRsffn"bns3aիW'&&޾}:ZLmf*.0ֿCif@CMߡ63s3iZ 2fh{ @@]43!|Bu cn"?@똛@f b !ZֱٴJ3h lZen!Z17i4o@{cqZ|Mcn ls3iZ 2f[ZֱٴJ3h lf|޸q# $$dرҙ9s>SRR"\tAɯoذayyy1cƸ47Ps3Ȭ=7Cs-^jxrȐ!UUU5.Ti޽<YYYV[Τ["a !|B7h1B4jʛYfȑ#QQQ& Y>}"""222 e(66ETԩSͻ:fX]]]g͚/?f ٳhf__ݻ={V^aaa 6L>]T_qƍ&Ufs0;Ps3Ȭ=7^YUU%Y~w}#qpqK.=|P?> @7nxDFF~AEEIG=@f3;S:ۿӧO=zq%322<(Oohf@Cށhff3;4&&̙3O I~Y*nРA5N~^^^;wǏHGIHH=<`wwq43"w:fYonָH|niZ 2kͰ70;-yjbM}Y `{Zֱٴjo|tgq`f.]'\|ٖ`*?@hffw͐ylTzāMyê NńkA8fYon{ifhpu cn ̀yc i;f!Z̦P{A3FhZ 2fg=43`p{cq43"?@@B3gpf^F8:f17;miiiΝ{B3 hZ@f2eĉio搐gRRRtұ}0$hff{у=ڴw^͐-'''--mɒ%iICif8bns3$Y-ٯ3%\K ZǏ$wK17IYdnsKu17Թx)b f^$hfPȲs3 kyfΜ7 s3̛8cMk׮+Ht؍k׮Y1ZǿgH.՞ ^ 8fbns3B3c f;G3B!xcbb6m'43=f178#/]t2R>ޕf@@^tܿ?..2E39r@7s3HIgDqF>Nj]]\\"؃fۻƮ0>ĝࢋ.PNT"V: !HHApRąMHm9HNCE/37Tzh Pqv"ififH {fD@`8ifan@ =w3"if"if칛I3~vᤙ1y/aP~R3)}0|kf;⛹ T@:sssN^/ejf P0ؿ**`$ҭv=;;l6_^^|}if칛mZ6e>}~~643@tcccf.9,53toF1::ZZVO@:W3PAv @6  @hf򠙁t43yp7HG3@@@3 w3D43yp7HG3;@:>]_D3/fەf @if  @P`(d  @ f HG3w3t43 43p7HD3w3t43yȃf ^kf Phf ӓs7@f0w34vȕn0 af@i+w3 _'2'UnF󫃃ĤI٬ ȉf0 a43if L3@f0 a43if L3@f0 a43ifm彽4/9::xa endstream endobj 359 0 obj 21887 endobj 360 0 obj << /Type /XObject /Subtype /Image /Width 956 /Height 630 /BitsPerComponent 8 /Length 361 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xΡ @A Ncu'XnO Pblm endstream endobj 361 0 obj 635 endobj 363 0 obj << /Length 364 0 R /Filter /FlateDecode >> stream x\n6}_`N  $[ZiQ-~II<#XYùh(_I?D.}p&vA|CF-I{~gm g3ZUw;wwJ&Ϊ +ȹ dzj9tmO׋ PYf^!vܲHj 1fAO~'ЊtTғQskYg ;ϔQ31#-ʮ$=ߤN9}#~a/OBLХtsa O{@d!CgʏJr?m!őrNxIO0]kSW٪\H(*v$%nm)\enpػ jw*4]q_BW-J6t92>ͼR6r$M̒<ŕ0܀qsa(u 9:Z|T*\lQ;J%-媖nTMEgnȖ_ !+@*o6yz~Q.K(db$Z-\ҧN'Y Cʜbr>a~&<:9z80s@~KjHN]6d獔t W&{1 ~.XE(!&M+(2+[P8ee}ɜPzs}q[ݔ$m!:V;XR+yְ|B1g9 /SHܔZ˪5B^! ΀'x@87]2d5Ĥ#9f3܈hh91h*JmG58y|/Jr+Ak MoQ NCd(>f"Ҳ:)!'r,46cPz6`>@qiб`ˍX.BnĈMy:B&aYeE^b9xbes2&d %wS NNpeZEl@Z@z=goq$ ƺĜx.}bLF+p5e[ HL8hGΐrz¯ɘF_մIjlYeTR <32ѹ1у97?!c~:s:\5%4gø}g1qr9qbc1-FINh z'n8|38X;8#9_tnAqnhZ8P}={>3v!#A]d55aVFOV"FCDv#;)m<áV4FTQ"063tC:āmx|D:bqnȄu6[<x0kwsHB-1ێL#SxOoǜ,H}~tO9GTΦ^o넗qZHNgWY Ych} #b=q: 0npk׸Vs١8շ凅V376)8OF**4xTl;&YFU0! <WnhXjY؏tr/uD*\Ga+GV&]EKl;rV,P_8gU`E*8a^eF__n@QK4afIrqzkybwe@/TVNIi*/k3ig-ʻ!¹>{xI(l+endstream endobj 364 0 obj 1800 endobj 365 0 obj << /Type /XObject /Subtype /Image /Width 220 /Height 409 /BitsPerComponent 8 /Length 366 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 367 0 R >> stream xXS@C) *BAqPjUg]uтZG]( *#B Vvh[7^6M99rr/INꫵbc |+R10RfJk DKx&p7 %DK$j چkT@j !$NB.?\A ;jF1o %AhI8{Tdω[4kf@D»NXʫ}f֖&4l~sd( ;ˤb ﱿ]ŋY~~KoKOy>dm{1Z*>&4l~sd( 37ƲVob͚Ngm`KUfA+llRqrƆMh Pd'~OGViӾ+5vg-3OL_ބ[m8V6y2\~.Ի )#8a厎9vy/#ʧ,}?-Xڴ&4mn8FFaj͛a1+uL|%.* IOŘ)=J XN=<:9w?:RF;.I*lCXrlXdߢҔ]ӏN2  e[:GPT۸s_ߥ aJe( <#&J7+8icS!J&z/z?x;b'4uYq{̾[$dd+92{Mh(ۼSO.HՄ(lސpUJKtXw aJe( Syn rEs{uUo?/ o?ϴ^~[g 6峓K{[Kȅwɧr*~?j^޾8[Ϩbv}[ȭb{~MgSq D/Jۛ^Gv{ӓFjQ+K~@'ŏ\S揿/fϟ{b@%H)}ݻ5Iy[](C4p)Mh(_(UJyCB^֝$N;m͡Y3m"w_y~t0 !w,> ӛ?H1%KC8DL+f/ [g7b+p WK?^:v_,:b?+>{WYvFW޳EeSzw ?ȿk?e]߉qAiB@CK %PNټ!Am#D^ ;8B1vtm5ߵ]ֵ+[t~7J*V$3>jA''ctwQd΃ןm7L]=MaW5?wwE]M5,Oݍ7p}7}{^&>28ɞ9ݼAo|fEn#~7D)l0{@-| ȿk3#CM84Mh(^G='UJyCB&C%0C/lC ~!? Ϡ]1tQ>kjB\j=D pş0OݨB.Bs^f6~]~-;/޾g`+xt\FlӉF9OS ۂ|2S-Ϩ{8QxaՇFvYytHd+@<2].).ӥjPy^La䜳(lސڅ2{ᱢ{Yݻ ;L'g&Ja띸C%EҠY04LJۍ⹤Dyx tvnFvK2S~ScQZD9>:됕Q''tWX {Ô=ut ^wiyY9Ni&[jojǾzL׎011br!y,6y^B^݆~V$UZ'-zne\AO69' vi=hI)'_Ddz{+@Vq.{O7!a7$Zjd'#~hrl7* OJv4b0R6ZS~Cq]=9O=+x%zy[\8xa1^{^o{<)&W/N;x[:9V #!~6IG$kx}_܏aܮsJnywt;`a+n=.7%Oҗud+y/s  ߼!R ;9p5=9>DWe7HF9sf 9&[Gs'""; #>{uN(rYI} ]fi ky7L?]G+)GzXerI~t*Cag׈"m>sW " 0Yvq(=}¾>|EA@[buT]u<2;rOMh nHΎuk+j@^#WY͂:nG Ma7$Zjd'G,z1(<|{]C;;6l?2Ġ7*IK5oH.N, ;= I$ACt$B7cLX:F'ߡNV25+435j~?@' %fH.qAԕ:dj|L1$HW[SKН7,wԩ mbE}۳45M:X$])#ɣ#qn +뚎dE  ƖaEjҡ)gɣ"CNr{eqXM X,M <'yEILcSbP_4Ig[؄wٜ2]^,ty=?Idy^ r@HvcF yIDMsC3]Av)fqT{)_lcĀ3[9ko?T ?훠m^Qz8^umidzrF e0(2TWą87'yh }خl(1S_KCߴ= wA: t$B7In@'N"tD: t$B7In@'N"tD䲿# p|Hř+jVa'&6 xd08!O&2xz !{̈41I^bhJ J'v6z0Cm-pGPT\Gr1ew$PR$B7In@'N"tD: t$B7In@'N"tD: t}N8x'm-7G۝%K|,t*T`lIz(V&2|$LΧo`0) k:ZR!^EqBvVG}!my-%$TZE3rɢ/ڤiHN[4] 0}JMʄ(Бlk0 7  )7y9e,dY;@-:2H STn D EW?[:vok-:\Ike\4^'=,gO9lip[^& t AUUc- %FBTZ]wS-Qn7'yh{خlLhw;86&,+ MuN ΃7Xd}ڽM}ZQ;ϗ϶F9w@8)[_G\I?Vd"zA|RTlg%pKNpAo=pn&݇zn&{nKd$++-eYi$|rlw$ 54+rRR_Y $  9h-=Fp>]VcE "}]JNҐ[>aj?NY!=ڨԓ+[_A'A< ~,߲ד[IIY_A'̇ {qR鳴t { &Ix2PQ˗/Άg@ xX8 LB{eht 1..Nm'ړ'OB11eqc' !333l1ׂ2uvp n4ʕ+αqNNXˋ&"u- e8mgXrrsl46ydÇÄL((I0&&M an2耈knϟWvϜ90a„m۶;w.nJ; oiiiSQS,puL6Lͭzwtt4yquP(,--#'qX9fKr؎XldkԐ;v(;&Cf j : t$AUD $B7In@'N"tD=$~EVv;ڠ@'As'?to =qG<0'*{YΓWT-h[d'zwkB4kǖA!{HSc/7#?2y䱼'[Z'+yXDN\gҳ#wۆ\MEN@RDRINraEBe@8'߻\Pu%j:*A sS Ʃrݍg^r1b,&WN5p0jT\S?oX: PVF'z8)<|ibn;e@'A#URBY$@'N"tD: t$@D-(Ou66l?rHgoԎI8 [>_H8YkM+Y'ղ+DIiivN"  j)ݥԧ,͘T C'VWx,$ϓږ瓜{}ۘ[kШHpM{rkK<ڠCdѻ̡FDwxG1kẛW }O8ڵgwǚZRѨH!vP}3Vsw}gb:zqIcN"tD: t$B7In@'prU'2:r eCxQ#q+VxyyZ„Y(Skw3[aɔ m0 2PQaLLBKD۸<: l)3g&Lm۶sQi'---m>±vu1ٰr35ѣeCoohIPXZZ GO4Ų|6Vνoْ#Y:5dǎu4!SqD: r*N"t$B7In@'A+'`@Q[DM%b(IR믿`SSSUIAimW^'''!j.'U7ׯ_`Cٹ($UIxIPv. TE'Pw%8 E|T.{[c7b;Dd+I?XOGSKϺ}PwE |oqO{,ŋ"S^TKww~#a\˪@yMc#M}EL778h)D?WVNR#*9?{+q1enJƲbjl`<:̸|6M_j{,.pJJJT_Ո=8YSCnJ_VWn3xş8J(gh픤.ҳW$LbibtRH9Yxsnۑd'_ NX'rɸ$o[Cs"$%* \t/Ԉrw^^N~A7yt3F e m($5KJTWPPNFp{=85/gjBhUI8T}'|~Ӛ`/eSR 0YYY'O$ Nf8oo'p i ssHL>|0--M˃o߾}Q/RRRnݺ{p͝ ժG!b}RSS5l$@a|Dh K(t$B7In@'N"tD: t$B7$4vAZt$B7In@'N"tD8YUUU?S3+Pv.HP''褪ӲN`l 173ʭ*r?ma1W\݋Xgijt %|nj+T3XW&%lmgjɧĎx:jkjvvFTf2P)F^R𣉴tRLqCs2~?Z/ZCЪ䆎cKC"5Д᳡*v]d)vmc.I ]_\k@;TVr/ 5%;ORv(aP'7=bi09<ZzvP+Jb2Sjœ%yw´=$NuJ6ih(ⰱ;D 뒝$&ICC|}W.Jwx~K޲ٶ~[ cE PUe9A?)'a-[lcp.S&)';)鰶It'T~9٬4؆Q,C'w,ϋB6_ U;$5OBDIrQaըBak"}ퟋfo}欽S%oa}U/gN'sC3]Av)fQ^Qz8^uN*:8)<|ibn;eWޜbfɂaE3[Q.ƺ,]~&_wN% . oI^rQR7$B7In@'N"tD: t$B7In@'N"tD: t*$y Ŭh!G.;[᭷G乪9[ =@[']BjE 4(Ȩ;h(cW@M U,dg04(ȨzHv+rEާQR%bAޖ,A%ӐX"'ݣƮȁHP]'yb1 )'%4y Io _N6d -N嗓;$a`͐'"G_Cul*R+Z.!I>S#Rƈ _7[Wky[v1 yNWjv0fwݘ9 *$@'N"tD: tdH2à7%{|$ISK_!TݲS~W xϟΠ?o/:vn%$mlbN6;kid}ɤSE&FXLk7ft M]f\\QozMPLª:L8Oo-jk&fK_9ҬWu-:]O+XbRUf<2z8%O@a 9h-=9d3 FKZ6Z:icv_oɀN6n$.r2oL.CGbw/c9Q<]v%A<*/}ZN6^;bj~hTȊnuYFc?s$%P Pqt$B7In@'N"tD:ٲ9mU"O2=S39NMe@'[rCr 9ZlL((ӧO ko޼GX6jmp ;+Αd^^$$$8fee5S:wrpBG'NC] zi̊Ϟ=I1>>l uḲY&^* )_>{pin ũDC{ T(>s/PFɻ\G9p2333**J O:x-(S6fC$Pcv[W\Qv^Ԉk0urrŊ^^^0a)Skw3[aΑTWWKɓa> f3ex'Ø71e'eט<ϟ?i\q9s& `„ ۶m;w\.v.ҦC,puL6Lͭziwtt4yquP(,--#'qfm{%9lG,65ujȎ;#!SqD: r*N"t$B7In@'N"tC%,nf'7x'm-7~~7JXYҨK`_*kw,e̕ƫDfژNc$Vr NEݴ\A Mfv"7bM@ӜT7k0uO1uaL>KGi38)9UE "٘bClMr+dZ;S۰%qs>Y&wB e&D"Ew! Xm,cf@vZ,WJ棠"qG9K xh[Y. x?\X 9e|)sK{uMGժn$*v]d)vmc.Iv&/C4@I!THR^QrCG%@Xth2!:::s8 [{/chI/fpxř ]YrrwǏ?,KV|l9SdrM<\V<-%?#.ΓeQIacw656`4eI(I`$rj_i{HHRN.@bzW]mJLfNL<{ CCG {2K2p$7=bivq -=;ѴLA*ᢌ,zQ]' k9)zձ Mz)&GzG9 (w~B%ia#yBgێm-[^&,&w -Q_:*ɡ ށhmTɊқ_)H^;te9Y{)Jip[^& t 屖Vߒru #QsŠNEڋgT$oV@6*$7眿5eҡ. 2204qav mХaA1S_KCߴ{e#Gt;|]uw0Ov13d%]W2i tx]uwᣭ̌LMsk) ;KMz̾R@6*$ͩrn׌Vd)H^COxf=4;oY'EXڅ8dkSsִm-~wK9Y%~{QlzߍN"tD: tsUgyq0Ƭ چ Z#CXph,^۾^SQ^TG:iki9k[HKKԐrҰM/p+%Y߄voc#NENW]KŠg[;LtNVdWL6^+%~ω0P#Wb04ʟԱ}J3c1g~f)REt+%~Ãzf׍f}fN$II'>׮XkPW?9YuVL'ZzGLPCxBY'}@ы]LVJ^@'wnދs4[z(|R 4z)³d!yԶlt|'oއ1Kk?XQҬL=IT'(Nm!W?TNA<k  Ys j>L[IY]Jz;՘PW }VJ^@'@ۊ! {#v,-3Ϡ4._FD|0/+֝"D: t$B7In@'Nˉ˙V%:> $.3s=5|tnq=8$5}qISR{ɺg̥*e5ĺgy<I_@'_O9ɓ~ ߐUwR(-SSS{`r!exD_\JVc^z/^r\7G:woZዢwgS[Y'k׮~SXXiiid-Uɔ>X]] N t 2J~՛p255N~@K-)e;yixs͛7Zq2\ }qkW!&ɼ<8IHHqj u.??O^;]t2=hbzzzkWYٳg0v0I ǃ͔\|9Wvv6<V!`dcsL@@ mvܹa*$\Mӧuvu1ٰr35ѣG+Zqqq!?N pDD?Xru+7lI,zMcǎ285{QKInP-'$H@'N"tD: t$B7In@'N"tC1N"Hhm'A'N"tD: t$B7In@'N"tn'D)sAtZAPz&"=^ endstream endobj 366 0 obj 14553 endobj 367 0 obj << /Type /XObject /Subtype /Image /Width 220 /Height 409 /BitsPerComponent 8 /Length 368 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x Ao?!f*M5N\wBot endstream endobj 368 0 obj 138 endobj 370 0 obj << /Length 371 0 R /Filter /FlateDecode >> stream xVێ0}g$RǷH+$oJ|7 e;ة)m(> /0P|6X oN㏾?1$W4Fw3 ~(w3 dmCd j5C6m^J\נּ^BUD19dn4*bY-\eY]`8ӹ(n= s[YKjYfcEhǦkmxY-,q}.y:y} 8 }G_/4Yo? yͳ %iϹFJ{9)UHЖ)U;LT$ Yˊ|vPQBʄrp/ҍaŗ-W´uKk]%|ד uQJ/=[+;z_|1s60WAl :H@._bl?װ|tI'OGIMT䭧2U!T](p,pendstream endobj 371 0 obj 709 endobj 374 0 obj << /Type /XObject /Subtype /Image /Width 765 /Height 141 /BitsPerComponent 8 /Length 375 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 376 0 R >> stream xyTW=3LϙI&=3tٻ6}P\PYDPA@AU=vdEdC&Q;F[F#󓫕KERN}ܪ[nHMM`X[[2СC#G=0x֯_@"@{ =Hh$D@"@{ =Hh$D@"}6bkqq‘i3Chkk_*"ًL&#e"$'ԗFQ{ 3SJiꫯ3>Nllljkk\dIYYٝ;whSF ~c hʕ+t~(/_^z5KEEEZZ{OD&C[[h-ME'Oi///R)hjjo>"pppQp||| "1Z)q۶mđ#GX:oVhh(;3g@~_ݸq]]](dY,ŋ5511 FFFlGFfϞM=`VhݡCD.}F69WtOj4kuVs+Hvyّ"H}6u۷s0 V)2DO/EI(3 R2Ͻ{jjj=%Jsok׮q餋d3n/t `#zl"JV甆pp`I:OOO1wUsurr ͋ (6-U ѳpGEj:ҥK& B{=szM`hK3H}$H}$H$ޥ \*.e0 # ХNddd8d2%C{{dTTK@='""Bۤ0xhh ފ}9痢i;D_J0 &/їХTC:}9|hT?`$h=RR\u 6Q}9|hT?K3hMA_ڣ/%=i!2:G"\m:z9сڊΎÂ,A{z-)YDKjm׏?( l$7EEuZ-P!|О^t_/Vtu&TU 齤"ݵXR9|=hSZ<>O=R^g`=^6edf$_r%hO?åUf%n fIe/=y͛7Eb*pHiT,_KPp?= <ّh=BLxԹhO~vs7v'.Vv ~=hhVRinYRn{G ``#^QM~S*S vfz(ҏr~:hϸﲒ e1.L{w9oRM8BY޺k87y/cs3@ G~3)#wGA{N?sxG͜7ΦB{ }Ҭ  h"٥ڣviVV{0Kڃ@| ٵk2s[8p@KG{2srڊk׮ ;]7=5WW0-^{ңGɥA >^_&)m!,,ի*.5?z/?.d%;vq71ȑ\iÇPuk֬Ryuir_VR~yE攔?^hi]ha'//U:[ShHL0uQ?=Ӟ׿Tgk*_H4\Ilz~Ru0=MiJ{0Kڃ@|dfhݻr9MzـG[yIvv6T^^=]haQۛ 8mڴQ#>h6{{{ҷ?~\#=ҩ О~zjFF\./**h6ǏQIm۶-&lP ڃ\:[n-((sK.Fɓ'd;\U_/ХYڃ@|@{DxhGSThڣtHg5=]׬e/x0~Gp=;2 WGoȨoK*&sDuڔ5g0Ee=fcD8zU>SYWquW_8+qcʹ)OI`1'߀Lj$="h<=hKs]]\./,,uV;=Jd5-^|І G ;G9KŻhIz д~k̚=7<<#ݰaDS߽GζtZ*[O4YMC,\\I5@e %ړc_`Bz_ʥѧW#&NQlmiM_W.qm͇o)]B+/;ld2~1S:Q.7ϧ,xaPPPbb"d5) %##zŊJCO=e6q%o:ꨨ(޽h<ےK.]AOt u\/+Gsiu@76 o_tJ5~_L\gdnIWeMMMW^HIHcccݼn;ҝXaTE3Wu<ϛ@2_ɼ_+h-/836h+N2+*8: z@{R5$nPV\jkt(k1_H27G`6KL=TI[]=2 u2UekW_%Հk%in ,G&t5_-tu& ڳg4) GړRWWG]֗ONV7mU8q%Պ :i?8hɦTb@)οrʴ=5&sURs;t >Sy|bs_ذ7'S̀D9w0jʥS/wīhx#\ў6 D|Y-=Gt՟I>t:7j崴o/)2ےW! ⽇b M7MŴ'gQXvl&R(_~IK~1^z/MTD>`=a(OkƖf6:εqAbw# B<ty9[;zxs-p1;i?m2ǚ U_Lzq/z՞&j$Ҿ?9j$="QY{,4 ݙubhxK{4sxE.]Ο?l:gɨt릛O@CϳGpF)mw Km/dP~j\SrLW6t8'sm$VpRա+GIC[/p'-cT]<:ϥ42.l_Ww[.-%In WgA,~.#>n>]:ʗ]C~P~'.aBSA'**M {x4nKIv3ڋJ븽SE*F.Rz"4- JI&oǾB!<Bso^/?l\~KѓMEqmܻ&6y3&EAs DOGwɀ{"N=Fp Z+tM{d2YTT֏?Vm#ў\^WWwnK{AƫJ}L-lZDNn:BHrմ?k5UZ0T I_GTD(spZK³bĨ Ai=HHH8vjKMMmz&qs999...NNN3&KG{Xモv n* z JxgΤ=X#?Ӆ???oNUȒ֊qid9cc1`0)s玻;T퐨lܸtttGgg'8~x^^#8l7+'fe򆆆pebG[r!ҞSNiUێF^rmٲeڵ^H% TmX̵͚<@ [65g- yVll<Ǫz%X~H.haS#h)))Qm;:ե`- t$7ƙŕ֔ޘ>oډ͝WI{Oa4ݼ٥yGxfhaSbe#'4-~`yrkbSS5nb-\zC״'222::ԩS%@RS#0!W?lM<yq{-] 6&׎1Z0iVOVm9јrX;҆W~@{% l$H*_= =Z4 }ڣ/@{ =4VhiieXX-QRRCAqI> stream xQ @}|諏M'bW|i+=agz! endstream endobj 377 0 obj 151 endobj 373 0 obj << /Type /XObject /Subtype /Image /Width 1225 /Height 177 /BitsPerComponent 8 /Length 378 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 379 0 R >> stream xXTM77&ynn&luc " bEXQ*"E J+{Eݢ⮻f]F_緞84߯qߜov`;w֮]СCX`1Ǐ'Z,FXh `%%JDK+-V"ZDXh `%%JDK+-V"ZDXI'O?~l<-Z^rhyƍUVܹs'::)WNK^ĉ_z(;pK.ÇeGONOOϊ=z$-N>S^reu{e}M>]֩޽{9eZⲳo޼ZdCZe=˖-;{lepf=<>% vZdjǎ[fQ:ׯWӦMʒpn:8o޼>@͙%TΞ=?H,"!Tv}ӦMeN2ebbL-ݻW͛7k3&iNBezzD<#Y\"6gxxMa߾}7zM{\Reϝ;׾}{cǴ*9Te$$$rZhZhZh{Hb*-eLTb]``g۷Տ&O\V難v2ѣGM6õuֹsyJg 4P-8`rh|r/Ν;Ҳcǎm{]zU{h%K%??_֩l٢-v?˗ܴ۷o4h&Zpa*#Zj>o>>>ƍ0`@ժU}]ɕ2Cdddz%}ȑ+W`uԮ][MJJ痚:wÇ;vLGNNlKYN٢s„ gϖe%nذAZeCaaaK׮]FSblh۶mx8r4Ǎ7nݪh}y … 2{Mujh :J4;vxѓ'Odfn[YP?sίZېpkVz{-2޽{+pmga|yG8G! !`%)/7qԩo}ׯ_^k{VZ~Ξ=/޸q2qĬ,[n=xeݻw7}?\&Ο?]5J8py!ɓ'z( W^r劗WFW޼ySeܹ,k׮%KXǏ?UwԨQ6\ 9ZV ;a:%%%p2yf>vظq222N:%|IAALZڵkr|Μ9#s^xqر=z􈈈w̘1C,]Ersse:**jҥ5kvNp7l0w}'R7o־qƞ={ʜ'OTӧOĔ)SԜṙ.ےOOO/]4T3˳Vx堠 y::oߖ/v__ߕ+W9DFF:՜_j~xx,(-.\$$$"YYYrv-r_DݺuAV6l G"~K2Bv9f̘G}ݽ{w^^^gϞPVz%K<|P4h qOչs[mڴQ?QF7nݻTw-R~O-Zȏ=Yo?O*%:eOvZTT${uȑmJmN.]TK;wuLϙ3Gr+-C III٦ oeZիWձTlRRInnnǏe:t=^uhҤ [92gXt3uNH޴iSDDԩS WNN[XX,*$Ġ .;'YRhݺ$YmU۷oצ%>|ֲb%SS6l[bUlT㵕QGp>L*v$ږCZhZhZLX890>&ڰaiӦFi1&&F?Zv]Y˗/k,XYh)OS"ޘ1cVJNN6V\v/yjiժ~g-;2g=yD,eVsyؒԴ2ܹsf ..\`R7B$@u%44T'yjԨQ$R]s玬gϞj)SHTs޿_h)yP[ŋ_YoV-G$ܹSmy͛7׾h)в) V.3Bvlrrr"##[:v(-%%eƍҲ~zI͚5暛۷oߠ=z|ǪHQƤI$p-^Xu A7% nݒ3h ė/DV۹sSNI蓵yxxȜcǎUqݲKOe>N+)R$FGA0nkw EK9Euo_ՖshiKhV2}!o޽iii!'_T̙cR/&|Ǿz*,,o~&>~BDc=owb-ZT`#ZAYFz`c #* Na|0B5KJ!\EKXŋAAA3ex9M:޻Gg$44YEӢ Ioo~+#B9ի`h|`^`k׮JpLDKshi_ 88)X5%#Z+cr^`1׈ b88)G8N8&%FdXt6I!1xFpLeFˉ3 WȑD/ e~+c#*+ '>wҚ,(qR1-gƄ^]d*:y>zQ@y^ώw3PXyQ2&skyϪv劖YYYgϞFpL&v5}cm-feҋ*h'o»o>{Sm~ɓ.]2Y0BeKh}E'8bceZZکS'EhܷꄻzֵqLKKT7g]txG]oیez o9")h %}T'㣢G<{h %sh p^Z:W:rdX80>DK1!Z*cSh6BleDː"SEWyk[^hI/կy?o1")roիW-~ phi_>V%EذREW2R[^hI/5+byݻWަ~@QTykb|7|c[kDKFl)1uRT?ijaO(2M{n/Fta|l9BVFk& [9EQv/S'[ܷlђ^%+n\ȋ/-> ~glk3^X6mt9cTFK_hH?Se"Z^ԅr?'vEQ/,e)#ZhiL>ϽA(WEEe˖ݽ{F׍.Y卖f$A6Y+~@Q9U!޽{?ڝ+Z2B @AQTeTEEKyMOOի.-), %EQUuӳf͒;ɘwhi_ c"ZRe>ZNډ%#Z'EERrt\111׮]%\E(/+>KHH8UKƇb_XDKlV-/_|֒r"ZRWD{ItZ^ 1N(2sђ\*ꪥ犖kJ+Vy'ZRe"Z^ԅhIQ._DRF}ơF`Q+oDKlV-O{u:ђY-)1Syy͢$fgg?yǸV8 G孟hIQ1eLDKfE(/nj-dEK+GP)]e\\\llt2D˥{ CĄdwm~4szq?.b]qj/ON_OW3tRj\W|vmt{%9O:5//ςCᤈ(rh/bWz vк Vrx$__zQ"ZR˗E~#S㍴& X~v{Gᇵ뾠D©vl3k?DJ+iΪ_:Oe}[qpwrhi}-,.o -J]Ӗ[UpזsS9+1t=vzMgyEg8},(֗G0uVa;yxVD+vѠq}dBC/@ꝏ˿GJ]x]ߠ=eDkݧV횺wLh.- Ъ][Ӭ =G;wlQxcviӮ{x`3Z2)lm>ݔPQo{#G~I|fsBwjd| j[VXHYO7 hhv6[rX$ܥD m3]1{< _8 37|\lyTEEKw ejm.mO AHN^jMtDp|0{jLn[2'Y.]z~;mKB[#y4a9KI3j\G?U-/?4?iMu>Xl jq?XC'xwm/%^_~G+Z=ڶl+tGhѣ--!J/C|app׼%O:k NNYhi\ ɜ9o˔%vin{\{x6xzunrQ?ֻsSI=L:o)uL$X2 zoپi/v&?%Či3ftK'ˡh5V ?j/w'7noV5/e{}yɄE/kbEӇL3kO6oۿW/^UQñ$D++#g0hR-۵ib0ԩS7 Rf k-U*Z6;yJЧ;?ع2:DzKRSkMRjG3eʿ 3l1eybA7ޗܮq5_5I LL +fm d ֏׏oH7g;}:g9g}+t^YM ?_thTj:thXXk{ʔ)FFFzzzkKr~`f+>6g ROǽ}ڨigO/^%n~vi"OϜgecgI @9iv άmV,<2qvk贚VR0t|Q͞x~>x ZNIɒmd.7YjU'm-8;ҳKN_~Դ}'mZvjz=XÝ1r<7-9okN6>א 7qDQQQM=z]`@k^a|%lSW:s%jHUo4m[֭<mU"'Zlj=+vwQk$aɜlq 51shY7lxܓ n0vh)T k#[j~~-珕L7ev#%|ڜpaJzٗULHz[7IHߏ-8>*~ڷ&'rkݐ*Gx2[ސ.E~-wcs$_]?~Gst/&Gi3Dˣkce%JN2yt*ҞX?^Sy(m%BFv]2߿Lիn:'^#yз-Z?IJB4:trU5ݚ 31iͦs=}i׿tZPazթ?W7Z~v^"ҪmnVץ6]%J\(I6_wk=[v"-9-jIŵmI|Ϳ=!s>6[RpmAwGKٖ󎝵cj5jshHL[S/bmљ2}aaWac;/h_J]l~GC'w3M^ViiqUg-ݻ#ٳKJJ몥#Zhi"ZD˱:˧ȉLوG o7/Mƍ Тgoo>'gwJ¬v$IȚ2~LkIP1ݮN_}ѿ\a4m9ڐ@unSoZCme1A P+eECT& չu51+[e-ҙC3c錘AYڰ8ZLUGK)9WlS-%Q>yD=DKIzdI*ZZEk`̳~RUbD`nԨa;˄X$M cky mݻ{ nշ IC}fO-iT]`P)qck}a6R ҡ2D,XpoUTnexioyiwUVجQko7h$+\바Uw}Lνoh;%Zj"oj%nx:PhGK3OWi٫+Yum=~sel fW\fGKk6S*$Z޽{WBK犖TVDK1mMGv׭nmt5пɿ[2'4^Zm S37xCyKk=eʺW7d6iסEΦo5z%ݪ=˅U2/ܯ x^/QG I9l5[1qYպ/UK-a|RDK*3Z$h^<̉fӆY:#Q4-E>EmsZ1YDAZлyz_"Kz%R7J ZZ!P[&'Z =K6^Dii>JLԷG3ՅO/ RڇXK-)}.(gt:̎0Kkz8M~^URN{unb~:l-WѲ{Vw,ȋӈ[ңjѲ(/N?E>_Kݹ(Ta=IwdrwRf5LDKmd-1-|7EKOӐ>P{+Yz2\8Zflޫ0wv-e٪u)LaU׍n9?~c^}Oj-.~P[vюCjy2_wgh9i^ƈ8ո>-'Jww|M^Ǭ_yxmڝ/yS}6NOoոr77lծz}-=9S7rk^ӭ\$WnܫWPc;i%-VoШvfB:V'LT&,hޡT%+oQҫR)ɳmdCڴWLߴGֺߟzG&$Bm݇T0~Rz t k#D$IW?:v 4j%G?O Fٓ_yՠe:MZ{)T뎗5}*ӋK*lٷ-T`9G>Q+T#qƒտUkvPȡ{DҨ,F,YϢl}#5`\DEva8#ľfօ/}Қ*2-gloK4=8 r|2 LYW'O(9l$+"?x5˞mW2̒`eXn soġhi>ݑ=쎞vSF_L4<]Ǯ%3>ȩ_/Ky,T*ZX$7cĈ@a*\;Z>)_|֚5,uxܣ 0x}\$6! IR2Z]PF]7tiܘyѓ@o0G~Vqbo}0sste:BoX$UknYhY6\/Z:Tzv;cikBlm eVqC,^/Y!%N]DK<-+vpչwjT7^kGT|hԦ}V76vҸ,f~hB}en4 \\Sb{k)礈(hi>zQ.%E|-K!F'EE|.\DKr"ZإE٬u"ZRѲb-]hi"hi>zQ.%E|-K]qF}a-)Y-G/E(/e+FK Z㤈("Z^ԅhIQ._DRFT;OqB;c F(6UI2dxó3}BUDKrhͧN׫)#ZTyGipRDQ [^r"ZRW%EK۷3B͖ҙ]xтl'EEW%EKҥKSђ\*)Z*v|7n0s?!֚"Ru"ZRWFKgzfX㤈("Z^ԅhIQ._DRWN(2.E]E,eXTN(2.E]E,eg;B,[3olμ1EQNI4 W_[ϊLɤ(ʉʯ}1+)))Orss@Ϯ]umD˻wȑ#_VPPGKFf)/K_} z/{{gXҥK\oFsh 1FXbF'0>!֚b .%!`%FU! `Xk;1B,׋ٰa2ZhZhZhZVZ~7B~{IB -B -B -ݻ8# 1!`c N޽{ghZhZhZhl. `%%JDK+-V"ZDXh `%%JDK+-V"ZDXh `%%JDK+-V"ZDXIEK>}`W^y(V endstream endobj 378 0 obj 12853 endobj 379 0 obj << /Type /XObject /Subtype /Image /Width 1225 /Height 177 /BitsPerComponent 8 /Length 380 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream xQ @@ "x3w 6Aq= endstream endobj 380 0 obj 258 endobj 372 0 obj << /Type /XObject /Subtype /Image /Width 513 /Height 127 /BitsPerComponent 8 /Length 381 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 382 0 R >> stream xyPT׺sʻ^ʻޛ c *DN "EQ@Dd 8ŨAP4*1N8TrI-zɱ` ^Ze8}oB$cݺu?cB:oooZ!H, //@!B iB!DZh"-BZ!H -B@!B iB!DZh"-BZ!H -B@!B iB!DZh"-ln:z(oܸ!h ~EϞ=y{&%%\|9??ԩSϟE𫯾B%_~eJE !F7[իW͛[UUlxSS>>> YYYgΜ{!C ^vmPPXI|||bb#G6lлwolrssĒQQQ{4icZYYuρBtBDjkkE;w*) `'IKKxFa. š6~l mPRR| EVu...>T>nܸ#M6j!00p߾}c7)33S,|Ͱ0{\\\玕Bdˌ $+ڿk, ::H}…&Ek׾[swEpB%2f̘~ %-^|H!&-@yX*s[[ۄ^zpÚ|&~tn t:/PaD+,r M)ռcǪM@ @UbsqWiS'58 g.?t8 SpPnK}箈G7|#w/ш\TS*قtѮΝ;f!KN6\/\j; &2Ws"<)D$9iT|^@@p\| gj=\͢Oz1``D֚ 2vho#'G(."DA8wE #5+wE)Gv*m-p9Qq|TZgLilnt)wfjmE찁[Ա-YŸ+Uu[tFBOog)։s(zI<'wo@#<'ٳԙA~$XVҮCg/ܠ|D$5A*?Zn#$ҸP! KQl 7@zy|K:jZ 1ڶ8>{܃ j d]̢bU[`r H0ǟCO7 ac $CeƵYsEcg~Rkږ`m-[vƩ^L9z2,SSaEjeͣ'L:\g8FG' 6)6uxFףڛz18u]!4r$Wc(빁u- kSG[h M :'uK'N1e3`Ju{+=M=ybHZ]/;P#~."3ErFX0F(2boY^Hc=f?XNB(6Ո]ωbWr4ƪ !J/W?5vxWZLP9ϔYǢtّ1aKӞ-'n*JC6YI FjIuJM.!WGDm2 I4Fy(NCm tGbG-ګ6lU[{4l>} c--@Z[0'ѦY!g}_в$7429D @>c254x,,WVBNgRwX>{ yyU޲+8֓VT\&M}w=Fdy{[ I)܅n[fpgXe!/¸1*/tED)gzoq bWCR6`C 7BU5 1*iDjw \ IW,s+/N#1zQb:Jku|)/;>{2Q8Kx3r8B I=._stƱ uly /*+čE#Ǩbg,5 6? ZȒwpW(ӡpDB%2H, BEK%{R,,U5 `JT$H,ōJR$l(F)` j il1Z/_\(34ǧ3EڵK'_mDZϑET@6֝$O/-v, wU;h撨meCbv&hkP4%2,rqeUj)!܍ʫu3Y>;|gk3 ;^Vz΃҉~>sjP17k;vJ*7߫ ZWl#\z+#]- MojW )ҙ݃dIdD(JwQzE (A^(JqFWA.(ZE ZWAddD(JqFWAD-dgQzE (dI:؈P PzE (dIAF-d3BD|XVEUzq0c0EQPPigT\K֞={ L1>S.K;#H_#BSSg… _BHGx!}u0!áBwF!vaI3!Z!8,oF!C0w|L!]-B-3!K B!@!="91w|L!][@dda-Ν+W0#0b[_~Yŋ"r5FaF B!@!B iB!DZh"-BZ!H -B@!B iB!DZh"-BZ!H -B@!B iB!DZh"-Bak!DHH,瞫> stream xα @ 30m$RZ@ 6>Vwk3x== @ endstream endobj 383 0 obj 110 endobj 385 0 obj << /Length 386 0 R /Filter /FlateDecode >> stream xVn@}g$[h x+DVBD_xi5̙*xncg҃3 jtNamnOmcm׃;Ӯ=XN?U2Q73 \"Aj\^yi?8AB f)V1gVxkd;2*Ty[/ȂF!C*gЅWPR\2dμP:gY/G3ώ#A(/yHx6C磟O< ]KǶ O|lw,tg;J_r*BBτ%)H]k7QbCYldA.HHq|Ws/52$d쎚zL21Q+5*-IIg 7@\\A;Gn}Z|ĔڸX{[xRJ] "rOGmdV`+ a$ٰr0\ѯ=^ӒN;U)h5ޥNSƻM7)7glbΗheUkhQ:+\fj+һÔMM,/)]|: ",@{:(͖j%hƊ=Xۘg261$ 詵G~K}|41L!]yendstream endobj 386 0 obj 671 endobj 387 0 obj << /Type /XObject /Subtype /Image /Width 524 /Height 290 /BitsPerComponent 8 /Length 388 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB /SMask 389 0 R >> stream x TWM;%Vgݾsӷ;C'FdbQepD&QCDF &N4㬉NVΡo}>wu]*==B5Zڿ=!k>L bʜ9sBA!D j!%BFBQA!D j!%BFBQA!D j!%BFBQA!D j!%BFBQA!D j/eeeF,))8q租~* 1? 4(11 ̙32N Ay󦋋 &2m sWWׯڜCݻWaNAB_#Ν;o>E޸qFٟ1b xȣG\zU*/ܹsQ g5f̘$%*+..vMGҍǏC#0Z͕{*O_/`]]p YooFm5kF:t߿yF'L ҨN"A>7iݰaH=Z$p0h?TD`& B5w…cǎ2d/\ DСC8e˖:u7a޽;\1eɒ%Ah|֭[LhQkitA0Ӂ|WVCtlr{SQ;fH#L,g߼ysĉ"[L^$GGI Rg}ޡ$I`ef qlpKЈFb w-}իWi/X@ ^6Ո 17 n1|p.^رcGmۤ[JQQw~zi SJ77ܹ(ƍ%%%Fd!Sz]cǎ{5)l wmTFEڱcQFyRYH3p@iw"=l0q8 p %WjF~L.{E5 K3qx4-?,,K. i`*Xf g޽O:U[[bT 4if-?oIF8-׈Ɓ7-[G#n([bj1"Rm -U}v!Sx~FFvh ~i#5v!;w6ׯ_G%"/#^8sc yP&06O1yDA=~ң kQT%J{9+WDvG (HRRi>4b91!{\!ۡj!5&B!6EA!DED!0B 5N•+W[[Ai_pT())^6?޿… Vl u%!o߾-!g\dB &MdB5!jҥK Ҏ&ܹSRSSO ѦMr)? 'Pk 7 R:k,BO})d8q /_ ~̙z|BBB<<<"##œP0F`C?~޼y@Z`V#Mz2abb"jpsL$ =c׮] $[E@B Ґ[lA OUB-!|+h_hhV⩆=zcǎ({}tT13ڸq#rϱ3BA;0#?b70Zk #C rȁc ξ hf 'Oi8U8d!SL I#z)Qsf794 u p, ***߆gϞѣGaT#F%aѶm[I#0ш{ݽ{{֭R!5}زsJ\Vjn)kD⚤[L RZZ-IMM0`ٳ/^,ȶ~z+^- YqyxxHȑ#W_˫7xiڀ⦐=z4jd͛ 1Ɂ37l0???.QÇh*TxAR۶mXO5 u^Ə.曘A&_vC';ɘ%"A*8F!CX%1g/"~&zn!N ƥ55c.ݟ@рڭ vrssBqZ-B5YXB\E\!8!B!h5B&Bqda)Bq`r͚qMbR#qbEhs&k"DD%T;jqjDH#SXE,D}P_#qR#5YXB k֌k"5Cj!5 20FF=¸&B5 ,,EMFuq5k5A!5AԅqMhjqrDH#P#a\!AԅqM"ĦP#85㚈@ A@ ¸&B%jNe?V(55h섄"ȴe3R2Ħ0b!CtMչON] ?gVz#B w!zx̜Q#H0RX#֭;Z[q.9̢jxM8=*.VdTzh`wi"S54CY3kښO'Foh4;&b9kĀc .=rY#1Y08*=+4i!5 -ֈ,>DZƧ$$ 6E6UDR걁3D'SYDRXֱw#F5v̴-7ښO{ v3cJ >eؾ{!#F;F VqMXkM0RD;ڗ8]-+˴Ar͚qMɪ+_MZAR#sFDGL/޽۲S#a\qT׈Љ1ߺueFb 㚈FP#F`\ j:kj:f͸&/b$Fe˳ҭ~PhDYV AСC{Tѝ[zш9>'֊q䜨q&c.sm+5*Vԥ۩J_{'D 51+lk׬xPK@rjD>`\ޡFP#OB#b5YXJP#ͽ 8vvFJsU~45k֌kjj4{mV5FFF8F&Fڶ~]vcƌ;wn/ťDŽ L*:6wFw )~g59'[X'~uuuV< .Vjj0I0i=͛6m֡aTI aG0q/_'θvضmʸ& K٢;`ɽ/p6nbw!GTWW7[$TEbo-Ƚ& mܙRP#2^ CC~ޔJyϜH 9t<'e˷^|,]\an>O .BHҽ۷oqFV`X^^na%fb\WX7e'B">|ؽ˩!o5b閼?YQPyO?3}ODLLJKwདppeR뾮zAF[#cJ@a>sx.I)r|1c2228z%Ev{Za}0a MnVA5YX5A݆ o Ka X#g kO5SiCY3ITqʕ+qSE#$K+JhY#ZlԈ&ѸFWhD#֬uY>C<1ԈF4WP#bm_K+ӧF45BEפ㚚aKx衇>Nhj0I Y7 5Zv2Y"M0"kR$ۣ_MG0"\VqMMQWWpEֲĄhU,wrjFhկh3QE#_ 5B:FfQ#V8&m&׈{tpj֠FfN#B.~Og@9FT1"Ltj_^>s`\M+׈Q*[E[YR56`띓l& K٢;zD2K45oݺ iIRV="Nf͸&FT:G-,tѦFΝ;BD#TqMDgk5kRk:g 55)A)=SZ'_! _ft {ϔŋ#dV*5BP#4K`zP# 4K`zP# 㚔`\NazP# 㚔NazP# 㚔F) 5BpZ 5) 5BP#4K`zP# 4K`zP# 㚔`\NazP# 㚔NazP# 㚔F)L_}դ$ 5k%פS{عOR# 㚔`\NazP# 㚔NaRVVnT Sפ5BpaUFY+&SݻU-9Uja =ǃTEפAxEX{9U5)&s.?KBvhy$4IF,_+kJh-IhDmFxe(>V45|4IFF4b{Y=6[hN}\ʏQOњ4i㚬K/:X#`e>QgO4i8C\X4FȴkjV%fSF0RTBh65Y7 m5Q#h44Ƹ&@h7Y[kϏسgϏ?XOh66i㚔6m۷o_`ǸP#h4L a +һvjOc\8~xB#&N0y`jF5"22D",,e>!׬Uk}#5h4\#^m!5BkP#h4Mv&;@h65i8X\SP#lj 9 9[?^SGάض/tS-{n5{4CLON oiWzfu5ݽ_ls,?r:)CݐXsTLf޻YcJؠ7:w3ʇO1pZ?/hq>5dt v"_R탱(0>&1o)^a >x]3D_#f;Vb#.^y;/)75hD-1g_iЈ .g6;wLNNn+ɇ}' JJJ?2u5bU26lذvZFwA#<==blc> .rV5_B#0d}[Ok# xg13FV 6~{=׺͌ rO]z[DW8jl]7rӓp/^_ePI"=m\L,b1cFAXT/: KZӤ=ߺ*]jg;bqicdXVV&R ÷Ϙ17nWӦMv-in.׬WcGt.#5ܺ.^?wSN^Ky:B憝7B#ڽݱcʹ9; #ĭl)iu#^b|hHC Kն}6;9RH~tmQ5ᗪ5$znUOdH4=;qR~?pdp3ֱ 怪j 5m߾~eN[#ш?:FFņ] }l;Ј}Gt"C<'Hi.5P^i'wݷxU{H7XiNg8~n1IF/{ERH_.}t?Se*kJ#05s4UG,liM1=6V[m}96ӸjoMƝ0ԒAŽ>4rLsa\ahDDZ 1SЈ5J55S~" ;]נǔ DA^H#[Z⧀cq)Foܩ\L5$„0M]Y׈WĎL3Kxϯ9sϻ1Hܗizx%e"Ӗ5x$E|>`~Ekj^͖iD˧3rrAٛ]/ DپkwOP8ط XLrtLuP'*= L7* y; o/z=b~n+wWF˜ {AP0!gU~Ah6OV(P3bt nyWPy0zɊc &[V~XCM pG=<ē >,oYۂWxKһ_P/}cQfp%0)9pMVe#aB#26~cJ_{MTGV\FyMjBt[Ҵ9s%K)\#^~GR~)CMyÇ$([k#C'L :;NF~OGxrOKZJ'njc~qQ-{1@جxΝ;WoQj׮]J_]tI+-O:>P/j~ ӊФ4ow뵤bE,lovBs K]dz =SGOA aʙ3grŋ[Pj…fnh")!CBЯ:4+#[4MqMqMׯ^Fimڊ8d\ݻw4ͦ5`\SjFh4[㚚5A9qͺY84qFjF1IP#h4MMkkV!㚌Fh44qMͫAlikjjT5f&jTF5fSc\Fh4֬35-JKJI  ݺu9qQ14MG6qԊ hZɓ'9!{$565{7f&B)B!hgk"qM 0R85!*8FB k"YD!!`\!āq5k5BUpHh)$`s'ρf\!m&B!V!!XGP#!DE4-k"b4BTqMB!`\!%4A ѸF0BTDA!DED!0B 5BQBBQkҥKw8qϘ09ə={5`09asg5BQA!D j!%BFBQA!D j!%BFBQA!D j!%BFBQA!D j!%BFBQA!D j!%BFBQA!D j!%F;6666B hժնm۪!FQ endstream endobj 388 0 obj 12224 endobj 389 0 obj << /Type /XObject /Subtype /Image /Width 524 /Height 290 /BitsPerComponent 8 /Length 390 0 R /Filter /FlateDecode /ColorSpace /DeviceGray /Decode [ 1 0 ] >> stream x1 !Oxh %x *ham9Gxh^, - endstream endobj 390 0 obj 199 endobj 392 0 obj << /Length 393 0 R /Filter /FlateDecode >> stream xVۊ0 }\ײK`)Υзm@i ݗ:e'V2;$gdHmKQ6jL_*DFW=lƏv/ BZuɿS}&{ 9W:A[Akfw|?Ieı0#TMq#N"ūL8/W3P\@WȎ ȥEiHme2ճJlC5 ϮExΧ4O}g48B5.r7l*B9Ң#⊸ fG-TV6m4-_7((q".7dW;5H$z!dm17GEqY2f&84|7)*p1CXOICļ,C NQ|z5NX.Z&>q>4!9PdU_UOrendstream endobj 393 0 obj 669 endobj 395 0 obj << /Length 396 0 R /Filter /FlateDecode >> stream x<ɮw<pur'À[z20 0tw2vY06,gdc`po|K8JMC Rgm?_޿Ҷ;~6Q_!?n_Ct˫UW!E|U"8'KZ^UW<,2/Ai&Ova&j蛴O]~eU;|jI'ڱnEHSm5VgϦ⸬W8#ؿ΂)j 4)Kd/ۑ_\5cv?cs['Loߕnȍ.xC2vm[ R QɓevAQQoaC 6 KnK~[x&'vd̡^o{b3OƉ#:-,'ϾI[OYB5uXJk57W+fgRʝgK,]"vF).tVٗrqǸn[ql`,oXnIĸP  և~?oIڣ.o,T}:H !a.)!Tbǿ``D}0\CYŢhssA5y%By6 ghe$H$r}9QjE:"%v|GůOoZ/VG}QF^6\| {C:t,Gj8>3dYM? Nl9p44:aGW:\ٵQ|3m\K uO![JO j)ħMGck4ĝL [}6kkTrY,nFaԷ|UN+OC^V&f$fN}5o?b:QXUiRr^,kиsݾg"l(1oF x!+Y XBH3: YSpenT5}J~28Tv|9: &bb, qeoSXK#K/)G<{D3iHYff fT+@=sDrQ0,: -1*@Nrx X ECĮY$e)ܮʹ]k%`LdL]A?+q|3P(&)"AR QI8>eP!({N PbCw"kag#1 )) X$@PT- GPs-(NU6qj|LY5L) 1~e(:(2WQ/ŨEI¤aɽG7n@1SziY2@8 @\8JJdORҹs``д3fP x`,%dς2VD,}5vRn@JyA] eϫ3r!C>09DgWSJ s~/zgPn{A[k2 )2:x@nAW1q)t9'y%F4ڋ=q"llcU; Y2$#9vPϡbÆʊ~*fH&*-/}Otv( Ďb;51xr[&Fd` Č :17}ٯ@F`7@ i!j_&TO(QD PfHJeYӘ ZWDle`/1T7S"̸\R:T b$)FB14V֕J#(kU –Tx̕<¨?7+C1(4MI>Qγr Gt1vtDmF 'ޣeI@uWFU_E@t\B6Edž@ c\%GITYƲ!v Xqj+6\@]/ "AH>5&E]тEd%*Y)"jխ8"FHKczZ[ BU1uM! 3[i e},Fj܍ګӺ+9[ǨOVrlPRYea"ބ[5X(F BkӘϔ;Y /ɒ5z `.TGpM$<>?_I(&]( unśI<ODf]X}Xv۩&V d={/._YKuSw-SI8e wa&/.ͷ6R:V`|:Oxp"l;ҧmm < 3endstream endobj 396 0 obj 4234 endobj 397 0 obj << /Type /XObject /Subtype /Form /BBox [ 275.7 180.1 438.1 330.2 ] /Length 52 /Filter /FlateDecode >> stream x3273W0663T21rr@lC  U˕˥1H endstream endobj 398 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 399 0 obj << /Type /XObject /Subtype /Form /BBox [ 275.7 180.1 438.1 330.2 ] /Length 71 /Filter /FlateDecode >> stream x+T0P(b/C,^.cS3=KC =C\^.#sS=s(7G36L-PPUf(drrrQ% endstream endobj 400 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 402 0 obj << /Length 403 0 R /Filter /FlateDecode >> stream x\ۮ,q}?y6-ґd oNbʃ?ٳsbRL]"{}KoyG5~/˿Ay!_>ϟJy;.?%9?_P]~ϟb% ~k0BB~xǝzp(#+|r'e}KSǛۗۉI =ax~^0'|%,@<ŧSeulT'5yOpO\Oǭ&j'Y|?kͲ-_6x LϟJ\qyhF0oCcml_hy$:2݆x~ey_Yɞ7D_p-k?\P:Wd`v)w?[ڈS{Rhǁweoi4YSp\<1n1eg˞`V^lbZݸ |ǒ ?]dTdtGW;$+g\.qa/HY[%Ͽkt {o2z="c0-YD*sI S]_V>@F 2j!hMPAaTV[s25DmWV!j5{YkM^ũhiqF SkG50 բRU.8ke; --HU<],%T0LS\I2R34}&(%K^{|4EWS/4KdE+4}UZ*SA%EZI3K-zGX-ϬNCYDj+2V_*3UnAro(-V'Ah.-TVR+{.LS{X_(.J~֊ ^vQ7jWk2elȦWJЧ }U-_UPR_?Tǜu#G &TUeRC|`GwwVG}wovyģVtKlvR]u V™`.jkθ ,| 9 9a!YL@)6pjwH9F4,׀pfݚ.Ѿ%-ϦNXX0@5}3VvQG8z/wIE,HdE|! jf0Vג€dݰ mr;(2#02"-a0zL9 6L`X/ Dh"Dk ãm)8Wj>A!{&(eճG/+}\y3}m%'i@ uHl$4H$5ZB }e׆ll=uW)$(Tπ8~6}o,Oq щ$u]aP<^]8Iu5[VYZX5rDwOVNo_=;;GOTJ(VRsim.kr+94F|g?'Mu!*^!󂦳zfBS-ZiÏqGE|\^JǂoBZ ՊJ!U7jVmlB" Th IKځ}Quuj&r %R ea.q +t֡ǂz,$O=GtĠG11 @Utx =Į64(d=qe´ 2 .NqbTL2SUTi v s.1ƴ;҇ }nPY> 83兾MFU6na;&@1B[t<Z W3Ϳo [}wPe+\. `mdEZI)R_V$L+tWHZW41RT;?Zmv2#Mty~Aeؽ^@6WL)Jrƌ Oi҃iܨuLicC6;R`D& 92T#Sdq7sT+g}F=)w5Rs Jπ(v~>)Z!洞4֍Yr;;q‰ɷQ{X RPKr{Rcm.)u%+O9E):eyfNq4TW^Zg<-r@J);_Jb#ػw]EN-jR l9CA^m9t ݖxϏ컠N2^ƀn4a<e c( 0W$lSSW/4j[6"i)ƿz ƷE.=-wi2 0y3W0f-Tw#7͂m68˥)G(Lc5."\e_"&ϩʳ|ih`<#) tOݨ.25lŠ4RŠGF?xMn7aգ@pge% "@Et+4E%"4`D3(ˆsЇh~׌)WyU+[&u^$fIs_-VU QK2\U PQh!\aMk5fzJ3j%euuTY*0C3o܈T f(j>^Q cЁuRwR3Zu-C_%Jdr,JIyzVU?"D}dhȏHð?K~nBOQfMM"n^&57e;\':\.GjcVG-:<$N3~<;?q;دN->9?o_NNPwiՇLLNN195 d;?Q E N(RasMe0.oUʨSC,Z ; %ԑ~2zؼht$( 0z'諑xZ{)ZABNɺ; Dw}Szu24NQi`P➶LB9m1:6 c E76 +4 YȄª28EHHi>a\T8\*i4wPdVޗ4iNӍOS|P[`'5ajv"ԌHVU3=ج2XiOO@dǚɜ0Nض>ӵ#ׂ^ Te.c&c؂lbK [ʀ,yf+_Kr.I 1[R2K>wthXP, )H[5-uɭsdH IV2I3F3*_WOZ>?-Y-vƌӌ$+cVIД -o/c͆'/ֈK:XLW`3S+7MVwUwGFTۿ> vGo%tbNl7/S pg Q}PӸ=<Ș@L7ǣc3u@h~w0vc' (?CN3Ŋ*dM3YHN3j蟨G`VX"%JdMBEm̎h*865[<Y ǒٌo[[#&L!ܥ;YZP'Fq0] Xy|79cyVPڮ)$֯=Q[f Aݖcȁk5TA;Fh?*n\C1!zEel;׽Hb(,f* 7=1R@gN".?gj.%)J,9c$ӓϿҍQ(/W}Y!:fu~*,G* ^+LHWʪI`"2EԄG)C 8O&1"p 9*s)\e=ӿ,Fn^Y־uQ \++T٪cKC3XerY٢ѸVhxtIQ:*,m7DTly\{ȡD[(z}ͮ)n\:<6ڙpV$%5Bޯ5xhMJ:`W=FmwЀ9j٩ ~:sH;5ae@ּku1s{^GĸY@ l4yԝz[ʟ&N6kY([VwaRӄIȑqX~l{V]EQ%6:ѶWxfTcߡXQ_ղoJEM]h<%Vao'|SjWzR:C,kE`$Zt )dJnSp '@0]^UtRf;>jB5ГRS'jp"p;%@Zt('X:3QV5A BCM5ly2x6L`e"N60ϡLZQk-oizOY_q-P]<+s3o* :G%|ew\S'Qa{)wv~ B;,dI $Ϯ0(-$AI[e3qK|ߵqƃ=突L,˱b¥Z13x > stream x3433W043V262 (D3(EATrer)iru_< endstream endobj 405 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 406 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 334.9 379.4 395.4 ] /Length 72 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sCcc=K\^.C3#=s(7Gʳ43-4ٔ ^`^@^.XaM endstream endobj 407 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 408 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 264 379.4 324.5 ] /Length 54 /Filter /FlateDecode >> stream x3433W0623Q262  6+DfCUrer)ir4_ endstream endobj 409 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 410 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 264 379.4 324.5 ] /Length 71 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sC#3\^.C3#=s0'G662-4*=+++  endstream endobj 411 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 412 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.8 193.1 379.5 253.6 ] /Length 57 /Filter /FlateDecode >> stream x343ҳP0253U263rs > endobj 414 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.8 193.1 379.5 253.6 ] /Length 76 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sC=CCKc=#\^.C3#= (7G3253-LxP(drrr endstream endobj 415 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 416 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.8 122.4 379.5 182.9 ] /Length 53 /Filter /FlateDecode >> stream x343ҳP0\z&Pngd$s !JQy\\ iZ\r* endstream endobj 417 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 418 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.8 122.4 379.5 182.9 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sC=CC##=\^.C3#= (7Gʳ9 @Q4D%99 \\\ endstream endobj 419 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 420 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 334.9 744.6 395.4 ] /Length 56 /Filter /FlateDecode >> stream x352׳T043V2713rs> endobj 422 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 334.9 744.6 395.4 ] /Length 74 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=#cc=K\^.S#s Q,M> endobj 424 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 264 744.6 324.5 ] /Length 54 /Filter /FlateDecode >> stream x352׳T0623Q2713rs <#3 U˕˥6n endstream endobj 425 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 426 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 264 744.6 324.5 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=##3\^.S#s=K0'G662MLLxurx2xyy  endstream endobj 427 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 428 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 193.1 744.6 253.6 ] /Length 57 /Filter /FlateDecode >> stream x352׳T0253U2712 X3+EAUrer)irt=6 endstream endobj 429 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 430 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 193.1 744.6 253.6 ] /Length 74 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=#CKc ejdg (@xFz@ FAU endstream endobj 431 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 432 0 obj << /Type /XObject /Subtype /Form /BBox [ 528 122.3 744.7 182.8 ] /Length 52 /Filter /FlateDecode >> stream x35P003W2713rs<##=c  U˥  endstream endobj 433 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 434 0 obj << /Type /XObject /Subtype /Form /BBox [ 528 122.3 744.7 182.8 ] /Length 71 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=cC## ejd(Fz@:Ռ ^`^@^.R) endstream endobj 435 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 437 0 obj << /Length 438 0 R /Filter /FlateDecode >> stream xZݎ `:@P6 MbEҋ~E" EQ!c-=?^ߗ~n;%;ן˺D_>||~?˥`rKM/Ŝp1R9I'._t͗^aIGV\ITzTWAy2\{0h;v<1V_üʤP&qr<nWJ]Ζ|7R$u9f8 'ؖ&=8\\q?n?1B6{vG0Dw7;<[+95zψc ɢV 놴kjw5#IyY[0<q]R;i|vč.*+ ޶ϭ"BӚY޽ck?˻.{2 QE#;+(=Tž<""%<租pAشt-WlYwIJc$ŪǛcNyg)l"p37p5Vڤ厹%FӝNVb~b_}:#cdFoћs,3Զ6Ž?*3tn#9;F{ΗK}>[ ^tqaov\L`h)=z_(Iz&vaR$>zٕuh=xc7 5o֕Ukw^T*JL&T֐oNPP졆HJچm.\ZD} +o djK2ﵕ%V~]IcZfτVx idII$E/{[D4=P3p0Or\^"\%'?g{'RO mO.IRF44X/-.$QU>5Ro26f@WܫhmI5a 4 /3F#ң!PW u Fpwh+qDI`2GbR$eNM64Y6f3 m,lռ%tP}+&`T01!VW,ƘZh &M`؉ oD*#ɐ%0CݾAӢ /jggH䙡&bR*b1)il1L?M[;cWDY%hHHT*%R (81LM(3*oU!~O]᥊kt%CI}4^*A6&q:'x)mqEaa& seqm\ /DHB&,FFC<ȵ) Д6g($A0CRʍƉMJhMMmc4:;:&HiO H @G ?P4ƪ#*]Xi4Af J!%l ;%\fΤ`8IUܰXSR)]^Mwln,7 ?(%уNH>1 aR-7zqvʢqM"Kuu,!7x= @9[>HQ$*>':<e*>IZHT}n&uOu7Z.A/!B_nn$=ޡy}ɶ!߲f~'I/}E=/4UEq"_ JRWg{q-o$w$5}ּ߲gH )DI܄T=-2~eVq#&K3$6ɖ=@33p%Γ[j_H3 /x+ s `^h*0YD{D+E h~ &mMlHz؃47۪0EjCUJM5> stream x3623T043V20rrlc=K  Q˕˥8=q endstream endobj 440 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 441 0 obj << /Type /XObject /Subtype /Form /BBox [ 327.1 334.9 586 395.4 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.S3=Scc=K\^.c#s=C(7Gʳ43L-PUf(drrrYIU endstream endobj 442 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 443 0 obj << /Type /XObject /Subtype /Form /BBox [ 327.1 264 586 324.5 ] /Length 50 /Filter /FlateDecode >> stream x3623T0623Q20rr@l#3 S˥` endstream endobj 444 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 445 0 obj << /Type /XObject /Subtype /Form /BBox [ 327.1 264 586 324.5 ] /Length 71 /Filter /FlateDecode >> stream x+T0P(b/C,^.S3=3#3\^.c#s=C0'G662L-P59\\\\ endstream endobj 446 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 447 0 obj << /Type /XObject /Subtype /Form /BBox [ 327.2 193.1 586.1 253.6 ] /Length 55 /Filter /FlateDecode >> stream x3623R0253U20rr@lCKct1X*+K!M 4] endstream endobj 448 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 449 0 obj << /Type /XObject /Subtype /Form /BBox [ 327.2 193.1 586.1 253.6 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.S3=3CKc=#\^.c#s QLL> endobj 451 0 obj << /Type /XObject /Subtype /Form /BBox [ 327.2 119.4 586.1 179.9 ] /Length 54 /Filter /FlateDecode >> stream x3623R04ԳP20rrlCK=S  Q˕˥:g} endstream endobj 452 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 453 0 obj << /Type /XObject /Subtype /Form /BBox [ 327.2 119.4 586.1 179.9 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.S3=3CCK=S\^.c#s=#(7G3ԳL-PUf(drrrYW endstream endobj 454 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 456 0 obj << /Length 457 0 R /Filter /FlateDecode >> stream xVێ }Je,*٤R߶EJݗ@ vF'0sf<E |N?Qqr}ޝZ54N7 8D-f@A bF/wzwGl﹃ܱH fe2dZ[M m Qiz'+ 2PP'RB礸}=6LB]ܫ"uZTEdnUV clq t_@H9%b5~ra~ ;+w7}$[_)'MLN6Tfbݍ#F%)e}6n"$$ՖzaࡍR{ƙ\kݨ񋜨ʏk J+ ~~ 嶻TŊחC5isS+bR5e}>@KgO *Ja֬6UvGHS^H$XHH#z#򉇐 =f3j/)֊#7Uendstream endobj 457 0 obj 645 endobj 459 0 obj << /Length 460 0 R /Filter /FlateDecode >> stream x\ۮ+q}?>V/@> M|I I`;p 83u]\ϟzI-Q[o?vj]~ORy|Sx˟///O1Qj?ʵ؇i}}T!!?|>j??LO~zix3tr;>'6 Ƌ?e' :*Okxgo=[3Չm|^ɗ߱U{ǀ_nGYfWte)!ܬvZk80|sx><N"gKP^qa[8s,Oo岳em0pon/Xw1j-n\FXUT狼PdtW;' ZFKUh'"Hse]28Uu$R#U]:a9$ƅ,/T͸0L[]a B1^-ʹ4CR5uAW˓A男shXt̡YL F[T-.b֙m <~Z=-$0R!U'^6 u}Y9Y(Ș +Ң+ؠ*^':Ԕ*PSCF{eV^<r>T?b\>kG5jQS&nb @,rނ,=R^Ӕ(Wb T%AQ%M!9Mѕ˪)RY b_ՇVTPlѼVR /V 3PQ !ʌAF`[б[<0}U vD7KK.Jovϥ)a?ǦB:g|^FnTL (J S[G^K uj,d`njH DH20/1]L28ڰFaiaq!{i|3 gSA==2IfʡxmͼN&͡aPC4OcP`JW{BmҨnc j42\A$FIyOb]\GD}SZ xfDQ'7u"% W`H+J2$ 513`k5K (*L-+JGl'E`l~ ^ @^VF0O $ZjV/ZHV-¤# ꮠVx&8-5vOcuS&J" ONA PWe/ -ʦM`oجBOn j|@u'@7U v@gs0_WA8s~}fY"7nkw୞ pҿ}9>9]~l}#39>Oucg>J~",ڀU\: I.I@ VEev\:VkҜ 0;X> \X>y&Xb<I{HTWĸICe0&Uԭ }9Pm,BËp2(kT֙<7 W3ojz-qþ-]++T cEKC3XqYilѸVhx+wtBI: (mŕA`7:82LcLGb(DãVHF]jlP%vU`e1BSjmݫce2mMt{c'=eXٙ =+QrOrՎ܁P@J{Z8y/ 1Dq9Ǹu('` <|N|qg.<Кoyw} >ar>9{>?ɷD;.=Q BUKWڤ\]7yhd'/JM-zٍm2pqB[_uj$ AI\="6%SbޞkB;tվ&R[_ƞ3f)tT{޺H_fgV,%k"!&G%kzfť pƗPǗ03 FTpV$Xh"iQz V 8bq2iBPQ)#s6YEfŴnؗ9x3+rjԡYDAƍL$7 TU?s?+uǂe5Q0]I%nH]>.2P湎0&٢)B-Zf~O! 5|3w۹,QSAڹ!G)_eIv :sfD֮ . kE&$C YtVh|+x _V#lmŵ,= Ж8=CUFi/<[-PWT&y]iAkCk%IKƅZ*Kb^ָe+b6YwރQy'h]> 9zuwuMu{H⅄8kC'G8ϓߪw>B~{W%?%ޚ(aJ} :8XǪ_.B,RsʤHΦ3-kCHٙ"E'DPT$|֣V炖l DE -SiedSR4;4Af-Sd+ Lc!ٽ2][y/c@zqW5O@-82 (ۋIrO68!|_Y bۨUUچ#@Vh0-umѯKˬdɛ t᣹y ^lFߵ+ Sr[{4 F`H2c"ԸpEZz^QG1 @MƺSv;͘]Ėar7,=RR>yj_)M=͸}Qn9 zok92͸)?iOƺ9~Rə~Ļ1(,`LdIu!wiV`,br6&(ƨ|p*݉ +SB6QXS)sQAY-W}X4с@-J# $ct50rH2F?4_tQa#vҌHH|}ya<ݒɚ spA !'J=D@m6uڊctLoHn6xWh-UeS"0]*n4|PDdGޗ0jwsvF)NN-|O[A5;?jF$ L֩TH4[1d_-kƬkcrm-õ`$GUٻs-'#ø–2`KYʴגKRȖ:   wEVy"iӦ.uf4lN .4c%uu.Ւnj̈:hHo1f$xk Mpz{Il6kF@) LБo~z<ȔtdOPM2J=_LG6 :q.^<#' 7 tZqvTLƿ!>S-οn{ך!C4{,`UF荶{&ُ,`&Q[EJN4 ژ:S jq&0mfk:y5:7%e<%L& !;XZP'y'ƫE㶌q0] XOx79lo][SA_s=[٭S3n1z@#A7Z"؇2LD_(v8Vb Į٣ ȍ!'X 4(RD=}q1?Ss)yNQ*g!.8&J7*x&.6eɞ0+0yL?"uR_]^$< W烯QQ$"c3ZDpN\>H-L̥pe$OOY:}b(VV(U.* jՇf6EZMqV 1+tUX:ڪo$ ،mC Q/ #]')n\J{{tK8T{Xf&B%}aWMbomw9ÀY÷]H;0> '/0CZV&Dh{d3Ti_g 1߶Vإym ]h> stream x3433W043V262 (D3(EATrer)iru_< endstream endobj 462 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 463 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 334.9 379.4 395.4 ] /Length 72 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sCcc=K\^.C3#=s(7Gʳ43-4ٔ ^`^@^.XaM endstream endobj 464 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 465 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 264 379.4 324.5 ] /Length 54 /Filter /FlateDecode >> stream x3433W0623Q262  6+DfCUrer)ir4_ endstream endobj 466 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 467 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 264 379.4 324.5 ] /Length 71 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sC#3\^.C3#=s0'G662-4*=+++  endstream endobj 468 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 469 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.8 193.1 379.5 253.6 ] /Length 57 /Filter /FlateDecode >> stream x343ҳP0253U263rs > endobj 471 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.8 193.1 379.5 253.6 ] /Length 76 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sC=CCKc=#\^.C3#= (7G3253-LxP(drrr endstream endobj 472 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 473 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.8 122.4 379.5 182.9 ] /Length 53 /Filter /FlateDecode >> stream x343ҳP0\z&Pngd$s !JQy\\ iZ\r* endstream endobj 474 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 475 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.8 122.4 379.5 182.9 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sC=CC##=\^.C3#= (7Gʳ9 @Q4D%99 \\\ endstream endobj 476 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 477 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 334.9 744.6 395.4 ] /Length 56 /Filter /FlateDecode >> stream x352׳T043V2713rs> endobj 479 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 334.9 744.6 395.4 ] /Length 74 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=#cc=K\^.S#s Q,M> endobj 481 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 264 744.6 324.5 ] /Length 54 /Filter /FlateDecode >> stream x352׳T0623Q2713rs <#3 U˕˥6n endstream endobj 482 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 483 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 264 744.6 324.5 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=##3\^.S#s=K0'G662MLLxurx2xyy  endstream endobj 484 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 485 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 193.1 744.6 253.6 ] /Length 57 /Filter /FlateDecode >> stream x352׳T0253U2712 X3+EAUrer)irt=6 endstream endobj 486 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 487 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 193.1 744.6 253.6 ] /Length 74 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=#CKc ejdg (@xFz@ FAU endstream endobj 488 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 489 0 obj << /Type /XObject /Subtype /Form /BBox [ 528 122.3 744.7 182.8 ] /Length 52 /Filter /FlateDecode >> stream x35P003W2713rs<##=c  U˥  endstream endobj 490 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 491 0 obj << /Type /XObject /Subtype /Form /BBox [ 528 122.3 744.7 182.8 ] /Length 71 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=cC## ejd(Fz@:Ռ ^`^@^.R) endstream endobj 492 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 494 0 obj << /Length 495 0 R /Filter /FlateDecode >> stream x\ێ$ }_` dV `pֻd|$v$ߏHRꪮ~H8ŮDzDq_?xȱ=lj7v|/?>w)=-'߷T};'^<~ SSӟbNc?'?eЧ_\YO?鰤k']~IOMwStjvsz0|$nl؋M myk6GeǗ9q7/.'#gf9&9;siElN?o~ p2'9q?ݾoW lE b¥PG {DLtT{V&FxX6NWRE罩S~~ɟ͛v>˧w|zWcr6+J쵹<\e^$o38_I1q(S1LGmԧf\B{0Vy`ny!]I82<},mG\Y\Β9o(.2$a*jF XQú <^`"(B&D 11$_PkEX#Lu"ٕ@s&mpvTc&Dx:qڢdJed esm7x>.u '0K,gGuŕΣ9GS82hZX kYԾqy߉<x=wX_\9 ؊2f=w%yhu{1T,?ud\ 3C䓀TqZS Bv*4kz cN c I69c;r$`l5N-Iː1زUWnblXv6ހ*7vd@ہz1>G5 5l}e|9[ҮőP]8f>BW@Y9 ?auАpm[wPÇK(޿db7}7a'G}~lRƻŌMSEuLW8lҳdP>T-q@Ʊ%W3*qDbҘ0!f<'=qpyͥqbFz$+Nϱ 4sVOy\X.y >.!aBCMU'hII-LCvĤ'FA)-%I-!GR^™bG13M(Nc.O9NV̨<)[CKr$2rA*\I`ZTsEd- ;iu@ 3G] jrMh~u9y%$X~]TČ3IV{?.n=N+,?O+4@NYE>CVT`)+5x{FN,;D17W0ҳ5MG */+;=[<]84{~uk-7$((t;Dt`T |LFTTTT)M_$U@U\$z=i84MQPLSa^0ͬnU?4AE4{=W $9x Nrl]aJ! g/J&}U+& 4?x[&<j">/ Y)WY47@R;!X忂=i*]`x:87o*?P?D&0Orv佁kB6.QR\ UT'#"=WCeಫ7*s \]sm32et굩wr=TgIWIvDy.J; 4.qIK%:bJ9$7ZeEy]>-([F៹iiiTS ''jG0PjEݟזG\n+w"$R}~WD,ܔ>ԩSmio2ʋDi#%S(ŶJjx K|"͚Sa҉*L%u `E]W4/kWިZoֹ)*V1eI$Z1ROS28L3z+ Z 3HהJJlhj[l0 /TFP,jݬ97(t"/Ez9"6)ӳciN6 4,"߻6 b&žVr3wјCr؄Ҷ"[S5b30 n&^LKb5H0VD,[f暉QC3XYcmkԦ_fx.W/~Eѧ#&XB"N҅|E)YG`i&,p8[_ov9w]B?9>puMsc9li<^i~,'O'P6+X=cfZӍvjxh)ژ.qE{j%hc$mĕ`eun5>/ښ،{eft6}ɀڳ ،ff?-];hlif4W6Mـ-OЬMhv [Y!3i ֊~̈N,S(dndֵ2 W]#Kf٦+eeee^˪)˪EU*eUѿS\M.7pNl*8ӛ. P UkMէL:{54*`e]^]&x ,VaFyCh?sVG:t7YYOJliIп+A5,װ.4f XX{Ú ;O &aHexJǥ}T6HuAyh%2Q@I0G'Dd0bxuJ՗Q[DYUD`5h]G gt# $rEk){rI964;E5kVFi{*=U ,<{W/6̇. 5XBF}|Ҽ I?7[1_Y gJCT1K _WbῺչ<\sB)="Va?+=ғ1\;?=沟KqH{*#aoj;_M7Ytk,6 Do3|)?De5}s.D+`~Oސ7ywn (Ma "pS j,(!LMdF Z"L5ˈ yU&&[`dٙb1PKZ'7 *W{$`2ڱ `CZZP%!%ERu"e]UVPqS%eOդDށrRcQh(-?<ͪP tꧩ P f(Q,ͨd΁"s(: UJT4*v./xQ/D4])'Y|?&&E3^9cy@+OlZr iB1re9]Nǟ(] /K|-v(v^g<}^וx> stream x3433W043V262 (D3(EATrer)iru_< endstream endobj 497 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 498 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 334.9 379.4 395.4 ] /Length 72 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sCcc=K\^.C3#=s(7Gʳ43-4ٔ ^`^@^.XaM endstream endobj 499 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 500 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 264 379.4 324.5 ] /Length 54 /Filter /FlateDecode >> stream x3433W0623Q262  6+DfCUrer)ir4_ endstream endobj 501 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 502 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.7 264 379.4 324.5 ] /Length 71 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sC#3\^.C3#=s0'G662-4*=+++  endstream endobj 503 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 504 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.8 193.1 379.5 253.6 ] /Length 57 /Filter /FlateDecode >> stream x343ҳP0253U263rs > endobj 506 0 obj << /Type /XObject /Subtype /Form /BBox [ 162.8 193.1 379.5 253.6 ] /Length 76 /Filter /FlateDecode >> stream x+T0P(b/C,^.#sC=CCKc=#\^.C3#= (7G3253-LxP(drrr endstream endobj 507 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 508 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 263.9 744.6 324.4 ] /Length 57 /Filter /FlateDecode >> stream x352׳T0623V2713rs <#3cSRTT%/W/B/s7 endstream endobj 509 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 510 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 263.9 744.6 324.4 ] /Length 75 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=##3c=K\^.S#s QL> endobj 512 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 334.9 744.6 395.4 ] /Length 56 /Filter /FlateDecode >> stream x352׳T043V2713rs> endobj 514 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 334.9 744.6 395.4 ] /Length 74 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=#cc=K\^.S#s Q,M> endobj 516 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 193 744.6 253.5 ] /Length 57 /Filter /FlateDecode >> stream x352׳T0253U2712 X3+EAUrer)irs4 endstream endobj 517 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 518 0 obj << /Type /XObject /Subtype /Form /BBox [ 527.9 193 744.6 253.5 ] /Length 75 /Filter /FlateDecode >> stream x+T0P(b/C,^.3c3=#CKc=C\^.S#s=K(7G3253ML4*՜ ^`^@^.M endstream endobj 519 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 521 0 obj << /Length 522 0 R /Filter /FlateDecode >> stream xY͎70sm$RRA=qE*Un%";Kᯐ-?Bm?`n]}п7\Zp[wx>O{(??ҷ,u)/5[bZd U?|~i=m o~<Ŕû;j9UF(yA@\sP߭vI%çrY{<ft;>|)݄i[IUJx GKZ=cX`Tr&CnάhBPmIbFNgPwy$Y;GuN%I u*ٟޫ#^o)foRқMېvRP B⪣Kg'j #/x{CzCRËn%;+YCMmnn:>qTc]-cH"1>xĸhq{kgΜ.E S3tpU㱌q4t)=sLJ.&ܙln 3Q;߰lF4R>cֱѰT -^ poy/pocbÄ (HwB@XXC3^NE\> stream x3623T043V2513rs> endobj 525 0 obj << /Type /XObject /Subtype /Form /BBox [ 327.1 334.9 543.8 395.4 ] /Length 75 /Filter /FlateDecode >> stream x+T0P(b/C,^.cS=cc=K\^.c#s=C(7Gʳ43LMy(drrr endstream endobj 526 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 527 0 obj << /Type /XObject /Subtype /Form /BBox [ 327.1 230 543.8 290.5 ] /Length 54 /Filter /FlateDecode >> stream x3623T043Q251ֳrs> endobj 529 0 obj << /Type /XObject /Subtype /Form /BBox [ 327.1 230 543.8 290.5 ] /Length 73 /Filter /FlateDecode >> stream x+T0P(b/C,^.cS=S#c\^.c#s=C0'Gʶ43LM,y`urx2xyyoS endstream endobj 530 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 532 0 obj << /Length 533 0 R /Filter /FlateDecode >> stream xVn0 }󀹤D] \[}nnX_mQE;KנuBQ y&v6}A.=8O_+5çsHiazp<؟͑PuvCLp)C@( dO rymzb6I?!\Uqw# "8o3P<. KqМ:+tW: +;%NM՜yv-Tet>|n#磟Oԯ= ]jKG&>=qtޡcrwz;I֟k*"4̄(خM-˫~DIJokF}Pg@y$IR|ܵ^*Ĥl95bYh/RF~Ǡd)%=npms"jnnva{t9T+-*?*NĥoR5eZY],|BQ{UcG69.eB>5&" ޥQ Il0RxspRiSoe勍WF%k$@J:sP^R35a%Dh5V\be0iS@v Sܼ{tan Ȉendstream endobj 533 0 obj 720 endobj 534 0 obj << /Type /XObject /Subtype /Image /Width 1057 /Height 630 /BitsPerComponent 8 /Length 535 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream x}k+r[b ox-+ְ^-.&E0)Np"E`R&)\pӌ$[eŹufχsh,3fm?C??/??2K 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! <śc2'4^;yHuf5fpex%6{kvύs >@ALsh` %=}_{ έ#hhh}5h*b~& ^juSw8g=E[k^i2A ր}FS %f08KZM^}{~Shhh4h*b~&yMv2>4ӬЬLQ>@ALsh` %=E-44t5h*b~& ^juSw8g=E[gjT &`6 Vzf!P mMB /z#iT#}5і)j1`pg41H@~ x ŀ.MB /:kZmnw 1^guh`0L3 $ _,1ƀ\Jo,j1 >@A@o5۝<{OCF82E- .>S! 0ϡ1`pVE>@A@'xMNap=K}?m }FS %f08KZM@-44ag41H@~@荼uSg_P^iVchG[gjT &940 ꒞Țg41H@~@i) λ|zv޳oѢ-Sb3h*b~LPgsI+Iŀ6LS! h״nw* J>j h`0L3 $ _<ƀY]Sb@CCYS! h56^;yO/َ{ܳ:ZeZ 0\|MB /` jcl.i7iІijT M7Ne|=RAizݧYY#m }FS 08KzZ hh"kjT Mv08%qxϾ{VGLQ>@AL3Am %&B0M3 $ _ F^ӺݩϳG/(M414k-Sb3h*b~guIOQ ]dM3 $ _ t״xc>d;7shі)j1`pg41H@~ Xb&ޤYb@CC}FS 4kZ;yHuf5fpeZ 0\|MB /`Cc.)j1}FS 4NV۝{̧l=Y-2E- .>S! 0K1`p6қ4 Z hhh4h*b~&yMv2>4ӬЬLQ>@ALsh` %=E-44t5h*b~& ^juSw8g=E[gjT &`6 Vzf!P mMB /z#iT#}5і)j1`pg41H@~ x ŀ.MB /:kZmnw 1^guh`0L3 $ _,1ƀ\Jo,j1 >@A@o5۝<{OCF82E- .>S! 0ϡ1`pVE>@A@'xMNap=K}?m }FS %f08KZM@-44ag41H@~@荼uSg_P^iVchG[gjT &9tO^_Sb@CCYS! h5D(X؝<{̧l=Y-2E- .>S! 0Krxg- _ޤYb@CC}FS 4Nf<ߝ<{OCF82E- .>S! 0ϑY y`Z hh"kjT MybK}?m }FS %fb`8E>@A@zMŠOCF82E- .>S! 0ϑY y`Z hh"kjT MybK}?m }FS %fb`8E>@A@zMŠOCF82E- .>S! 0ϑY y`Z hh"kjT MybK}?m }FS %fb`8E>@A@zMŠOCF82-t-A?S! 0ϑY y`ZZ N5>@A@'xMȫl=Y-2-t- +MB pˀfXn,<0-j-444>@A}ntׄZ /(M414k-P?j h`0L3 $s$4@lȚg41HύN PW/َ{ܳ:ZeZ 0\|MB pˀfXn,<0E-44t5h*b@:?5 J>j h`0L3 $s$4@lȚg41HύN PW/َ{ܳ:ZeZ 0\|MB pˀfXn,<0E-44t5h*b@:?5 J>j h`0L3 $s$4@lȚg41HύN PW/َ{ܳ:ZeZ 0\|MB pˀfXn,<0E-44t5h*b@:?5 J>j h`0L3 $s$4@lȚg41HύN PW/َ{ܳ:ZeZ 0\|MB pZνCn Krd1qinKG{AS! qrΝk5j4jn赮ԨŠOCF82ͱ#tQ`g41H-';nk.}ݿ[7ϑY y`K-ƜDŽ޺MB /yE_*IWL>vn]'^ȫl=Y-2ͱHS! %Ï[nu[Xk7Zl,<0ͥ g41H@'A$/\W]ŠOCF82ͼcOs>@AyjoXtb}"{-m:ϑY y`s- >@A/ċ7Gq4oWKܻؿ-5@-F^d;7shіiijT f5̷i7_,i%,{j-6@l }FSk}Sb}M%{5@-}5іj15>@Ayjgrt/29 6LQ>@A/ċ7Z_ĹsԑQ略^}v#^guhj1K&-CCCC'hjT f53a?w3_uß8ebd1qY z3h*b@y稛a"d+_P^iVchG[bxrc 0 ބ}FSK&̟xkybIl4#`8t,ƪ6CS! 4kޣݑ⋭/盁Np PW/َ{ܳ:ZeY-Fu`0L3 $y;ΖrtO~eXn,<0<| mMB p|_ r\rMNTbAizݧYY#mnV mMB KV!~u»zHh,<0KP`0L3 $BxsD:$8Yh2&oӫXbK}?mLM3 $-uT& E\7Z|,=B,6@l">@A}bM4o-&㳩^}p J>j h>@AyRG3s#{;G)6˼Hh,<0E }FS^o"I+}kr.Wj1%qxϾ{VGLk1FS! eKo}'5g-=Y q`, .2S! ͳݓ^FY s^>b PAuf5fpe^ ]M3 $-uT /J,s$ `8Y 0\dMB x!^9QW\ȫl=Y-2ݤlM3 $,uT F-FK_KC,80E "#N5NwY(z77>;(ܧ0h*b@|izkZ /(M414k-Sb@C[̏2ԟ4͞E>@AyRG`bIC,80E . Վ]>|s^򾫃EbjT śizkZzv޳oѢ-ӗ+9SC͞DysW }FS򒥎ʷHckiq̶`\DM"1h*b@|izkZ /(M414k-X-:|SE׋2Gbd}FS򒥎ʷH9Y q,-\O3hD4B5z[ߒ#m3Mw:Y0M3 $ _Q<ȩl=Y-yBG!B7k>~}l.MB kV!fbD쩵4tb ؅ `!p0C 1Ym猄 ě?bzw&6IS! 4k2רHAG_P^iVchoB(=r~ιrs骍O!SVkrpvXnɋj$ή_smc}u~s~9k%r{8bZ[W]L<ƭCϙ3NwbqX3??kj@|/i!h9 `ijT fx̞Qs$ `px,W؎˵ ^PzK7 ۋG^QYA۸TݝC;潈&L+soWmYxȝ݆VOw!˭;?6.N(lo,+Zӿ1iґňUԑxJҍ{Oo6GfOb0NNMB x!^9QW]ȫl=YMEc=b;֔;/ޘ7}8T>̝6-Gt&8NJ?uIօ{߮}>Ȗc P;O^Qoyބ>v+sQ=c[ĩxB6PWWŰ+R]),?Mza¹DܳՀp}Eiq>IS! %A`9#%bϮC .K9Sxc?wZo܄bޱSzoG 1ԯ;/PW9Zoۈbu-a~mwٓ(.[Xa^hQ[ݭ ~C~o[9gc4fs`?j)يڱ˅l>yKcjT yH%Z45@-}5۶z4S\Q vٹbX_Ah!1k=ʱ^ W/ rY}aXcn,H??%i>:Ljօ[Q}Y953Jވ~ܳoh*Q,&tn}/MB kVbtoxJEЕ8 )L3 $BxsA#M>b PW/َ{u>Zt u8B2h*b<$ߒF-F^}v J>j 1…Ӌ,E Ȉg1ƾGfyU ސŘA1y-X:)>T{?aFݚD"Q^U|u(%+"1\ #.jCLyښݵ# rL }FS 0ϜQs$ `px) ؏*|O*,_鿹r=,\"Zja_orpoҺ W ,w(XϱHQo{̞$9|upae1ثsѽ QZ0h*b QZ45@-F^d;7sϧhYk ܄xc޷۷3( 6 ~Ǟ*wս=ƭ:?DujIruu:pM̡Q+#yF)9 rҁ۾2R&r@2Hu|&Uu0! 5A`9#%bOC Vَ*,Z3P*Hj;3MB hgQW]ŠOC0h(8lmЉ5Plr<5h*b@^3j1xC u.9sn?Nc{R*/ LZp}FS^o"hbqf#^ 44f^YYt Љg41H Y i,{j- `0\D܉ʋ;: ^>@AM5j1+_P^iVcù@CCgsn _׎]>zkjT d53gbIC,\LznеCWԖٻzx|ah!s5Gx8nCtA ~'"en{CWg41Hx(F-F^}v#^kʹCS&CzNnY:}qo%\޻ug#V+ZW2 W-_m?h||ݰʋ>zZM3 $yZ4=Y 0g1|f||{+-YBስGS!z|,9bOD/xTf P&kBkSw]Cxpjמlilڱ2sT /Z&L3 $ ɷQW]ŠOCzK:bTW?#yv+*}[\^;a_w7u߫?+!!~ 8C.&p(;K7e4R _oK;q|[9g[UYڵGeO^KcV;eέU6exQY {W6ȕY MǍ}/J{kg*;}ro>@AyjgΨH9Y 0d1XJ{~kAcSSqqG~.k=(RTNa?gdB}Un!}bHG/Bf4d&JG-r>0}~?[ggt"\ww|kCi-F:1ī~s#O2M1b؆d1:Wr~\0K!*q2#)WQX 2B|&s*o?2WqUj1Rf^3!0sg41H /Y i,{v- `p19IfJ]#E-vj.NܝYFCeTp#y0$QBDUmgz;ns܉u}̪?fRC6xAN29SǬ,=m5*9dUUip .9P!+W^^g41H@oI#M>b PAuf5:#tX{sQ0;Qc^Wu'TMfU՟띫'L/;ԆKjF08N*~K?V DZwr4~ϧxQ@Ayg)3JC!Z:d1`0X?EJEyufwxe#h*b u 3ӨHӉϱj1迠4ӬPs^n;޿/8^fwkvU/g41H /YB9euobĐ4tb y6SΈfS ΞW6R! ҳרH ϱС#^kʹCcex3vݷ#sIޙ[?ǘWJLKYvgcB?MB VP=kF-FK\KC, EպVP뀳 ֤9 ׏8p]p5Y (݃;O[V=`͎p-0_âAU(ZCpˁ[9 `lSaښk&j u8Gh{#=+DC9r^R?5nxWs)UݰZ4TlX>b*x,\ C<]zAq8c>~Yw$$6ԳkwϘZ@A:%L#M'>ŠOCZU ;BPY Ys-@*j#WY ?XXA;cWE%n3G(,F|]yčAwy/owy a߲ʁ.9]ƙ={5箘 ~.>@Aygsj1RxC 0z!jc"ډo`'7;eRk1X.jZ?b{r"ȹ Fwf`'8c}FSzkbg]lPS/َ{5ܡעwbC5oň(Uf:be#q>(WxVU7e:}-X]MjNsoeM-Fgiq^n,umh!D뜥];vee7߳;h*b@^:Y3j1X"Z:d1`p)\{byEN+,kIl]CּT3Ǿ.j ׳\5(mG~ؗbx2i8guE0m '[ڑg41H^ibg]_P^iVc9BkU-F*ňOj1SWݻI[vBoYyjT dufbIC, N}yT#&PWv8ufڑg41HG F-FNxņ98g_SZj1KkdϳةvF{}?d{vMB Vp>kF-FK\KC, gBx+RyQ;vٓuߵ#h*b u 3ӨHӉϺj1迠4llN~ _Zfw !^=tQN3 $|֌Z4#i?)= VowjT 6A}iz:bK}b5NݔʋvB{jT lɃ-0j1X"Z:d1`0}>y)kvܻa: Ή3:h*b C5j1t/jZ /(MT1{R*/u:G}FS!ϚQs$ `0]<^h]0YMm'8'>@A BhbW|PS/َ{@yy?"=Ǿ|S! eKoQ!obuf\"Z֯mg41H !i:y5@-}BC>zC'qΨ@wvB箳?8h*b@^:Y3j1xC 7PT^]kv<}FS[ѨH С#^͏m ?c8eּuUkvkd3t^z[MB V?kF-FK\KC, 3wB;MB x!^9QW\ŠOu ZL^nJEaޫǁ.ί;jT d-pk1iwc=~o.2p>ܺ ۋ'׾VOk 4#i$fcO.{~%K|9vG3 $Guqk1sՓ m磁 BkWE\LUO/َACYdeʋcvBg41H /[~Ț Xڷv$bY \ȍzGbੰU.c{p- `0c!K|>StJ3 $BxsAGSIwEnIgxrAe1v{P9mzl"\ |`}-Kxp:B-F_z^ACPBٽ6Cm'tkjT d {xv20pEІ*pav?C5CBb`pkRyQ=t'O;1>@A=~_c[u8k1n8cflU> weKW<.U^tOt+˧lA۠ثsFsWL]SA3 $? 7,ƣSދYb,ƥ|Y)Nԃ[d{${ikv\;Ljh*b _tq 7%o¹Xk4X~> ѻ YN,1R'g:|7ACsn͋=W]DMoh*b@^:,ޔWOɵLŸaUcaښm2}FS:DZKުWj1nO&γmԌRݓ>0pe7LY1ȫ K(9E$hjT lr[x%jqf O\׻wm*_u1`0x\4N?\܀$MB 6z^ZKުWj1e(V_M;TޝsOPgj1BCkءvվdB`樏 H>@AyRGY"Zl, .6b PAACCoGz@“yy ʋ>r~[3}FS/,S>ί%˲>YcsOK8nk`0HQeE Ao'Lng41Hޕ9E_zOVVKR?uß&>nX?w쬂׭Oiw+ YЯnv.l6Q{M{oY-Ǘz[Xb,AfC*oP[Kw s2SSu*szb`~Q!N܀3h*b H|%T |JzmJ`uOKYZS_<ؽb);HY-p.{`)V=|gc%_w_Tmxl{r-FҺa٩kgZ*kWu2:@A)ߠgS;;ֿJ_;b\!#>|smםR_6JVyg]N/M>УdU}{Vz*wpkj㭵ܗSQͳ6A"X;@9jZ }~N!/省=ǚGkb5h*b@^bHaZ;?Hfj1$?:T N;կ=7~Ud4yC?ބ-n̑3VVrߴ^J;k6]Y)Z򻪝`/q*翮B@= g!K|,l}FS:DzÖB8턫oTj6< d N|ՎnXkMآMB K:*s$4@ k΃'+/C܀3h*b@Bc Nx2#^7Beښݵc=a51cg41H /[7K\ ;Tp!192h*b >PWj1 hhh]s6]kbg41H /Y7ϑY 0L{iw11h*b@|#=q[™Jّnֹk9oHt!b`BʋꡪNpLniL3 $qm" j΂E[6?{WYbdr:95@- !;Ԏݔ5[LAn'tZ3>@AyRGo՜b}땟-S3iu?J's~dΝ^Mkמ/|[dU,oJoHh, ΟC^_;sTyϱnj;Y21h*b@z5gJ~h0jhe}m:{7ʿNVv^fY;þ= wh{q:pn_KVX>hGF1#Nx#^%y&\vq ԚaMB ˖:*#(|CPۭj6XUiܳnVO,<_;EܶJa#qA{uJ`d6f؃k`087v<צ31h*b ǵ7Яb<1O2Ҳ||"*8Ob`S! tߨbO=Ӂ`2ѽk}v;UqV/[_-/lzvsl] wz?wK~{#~jKx#^?Gv _\;51M3 $-uTF^S1k̳Knj(d߿f`C m ۃ:nܠw1lW>Yclbd1`Xx/KRyQ;vYP٭31h*b ǵ7oŘ;jZ /=ڑfwA 34h*b@^Qk1dɶc}(4op ڱ~mdm>3P>Ug}Yo?mT5pF NT^]gu+`S! tߨÇ7J湫}ֿ4jA~4Q_ro{BRkTcC=2j1Ch!D4m)c1&f}FS򲥎yDY 0"enCӘg41HDyi},Љj1z.\5+mr"jM0LS! %K9 le/@Ar %zkZ hhhV^=N5赚g41H /[7K\ Bx Ry!xvӘzMB x!GXBO;ȫi3Gu&ǁC}FS򒥎y oMښ=}t63h*b@Bc N?eЛk ϗH_4N]1=ցۺ;=hrjjT lEV+}xrmG|mZJ_vgW ߬G~j0I,{p-6@ o'+/C=e~Q:t} w=r3h*b =X5V~itomgh[/=wAʵݿUWVE+-Y'5@-44=~rz*=7䖊/\9bKfZ\ ;@'hjT dEVYm zڑqv,E/VjUp>g#`0xsE Ao[&,03ֿ(3e^>@AEes۞DۇK-YbY;vLWsU?EǟQ}`ݿϕƩýԃNf%OڧA(샪eU2⍝*;]t켮Iq=#Z hh,ub^QsǶLt/e1ُD";k5h*b@^Q"/g1mlwn?ԏm~n|m;7r(BwV?ڃƕyPbF 7UlWR\9eT1sڻ~g׹cL I\ obky=3{)Y8XzMB x! f,Zʃ'oWU],loU[I>U~VeޫX?7OA^d+;Yn^mZX֟ymS! &Hyq rX,uLbdzS͞эsj}N}FS򒥎Ye%~i=V׎Vy/;Gnhޚc>;oT?Wj.[_nR AK˞,'bu{۱4vq,[ݨa}v=b??0k>޽Dl~4BƜV+DgfĬ  zַ 7ݓ>6 gjT QVጵw~ EP .|siv#c׾4T9{-sP>dz9OlU=:N?ej1riz@A/D`KsAE׶1۟e91cMKzn/J88^; ؄;USU%u3JsyF-6t=B,{.]8rcȱ,r¾߶-sOJ,Fm=~y5ݒ=cs==[WogMs֏\9sIY oGŷ/d/vdϾv}#PwcݓrIUKM3 $,uTk~P. f]ϖo8T$}n X18bKw=}}:}>eAa-uŚ3Ԗ2> K"KjΏ˧/ΥsK78b|,"ʉneNdf)-ϼUljۑjeVq#n?g$d*3^&[oϕ|Jܳ:/i$aȷvO؛0t9wkrjjT lE^ Uww_i/rz܍uRm:7zּPڊm(n^ʻN:.ve~r4*bd1<!'~Pʊ5y,Fr-_bXYe ª(PX쪾8*p /f>#O¸ЯHQ*lz1ߍק<ڷuGoފ5{P|^>@A/D`(ZK(t)Qb@o ~tWr%j1G,Zň>5d]l=ԼOvzXm]j,wfq{:7"߅}3\ }Ap6Zb <,|Yw-&7:AS! %K9 ޔc!Ǻsy/j16Y#qDYo2(T[DXXh/r['jZZ/Xb{ )۰r:l: F gjT Q9 ʼj17 U¾{yb^3A6a`󴚧bY\r%efR'> Εuz?,V#h,:|jk &y[ # ^}FS򲥎yDY +' g.Z} k1bR-_=+ޔ!ёQM|V w6.Zq&7}FS^Q>PSŀP/)zθXpSދsxGo.Ƙׂ"QJVL. 5T㔐kxbR >Vr Z 5T,"DR~~2bd{+GU9r{C8^q-&7:AS! %K9 ޔw^§wOAEÁ{(Y*; 7XN|oa] fe]NCP1 C8u]ڍ=+y,j{Nȵٱ WoXyy1 F gjT Q9 ʼ: ֛poa_t4.jk1<{gʷKѺaL]yޓu5Tupy& ZwGIj1-HB~Tw@A/ċ7GXBW\b@CCC` 3K>yd[>@AyRGyb`=V[voEVNgrdjT Q9 Ҽ޵QO^ r`GњMB ˖:*bd1`&,{U}\3ardjT "z4}%:j15Uwް*wWZ3}FS򒥎y -= ~f;go<#/k/?֞ GyUyHLnxL3 $!*XBW7@-tΚ1")EZ' #yU?ߞr@ݓ7ݽyCkbtg41H /[7K\ bp{7ɖ,r7{T]r OO}6o|^?2.VM_)jZ |\`/3!T, C*8p[wD׬?bE@Kk*dj+dȰdydjcV32 blٳxӪܻ'jM̀ފMB K:*7- g&Wf0PFF >,8_Ys1޴/d1Vj1SoOEMJZ P5Auv"!A{Pcw(wE-ƫlD D.`LnxL3 $!*X}Z~q&d#n-{OvO wi PvoY9Sb\N+ZJi[UqGZg'? gj1C9T-)w(ZRX|,C~K&51zg41H /[f0lhg1;[N6}qq"؃kbsgop*ѯ~aG{ٺ7õ*AbCs(sW}Vj67{5~SG-H>{7]"0\g41HxZKޥolaX޷}?xh၅a? "9 "9$"+ "A 4,(0(9?uy&.YfvyOʹz .A:%Yfo\cg._ۧ{®nU8~`ebx1TH1DptVaobnɨX>75'&WSGQT\ͣە r]UT:f R 4d^OI~\Aɟ:R ;fUg c3/iM#~x<^vxuvOS@by1TH1DptV..1Nb(ڧseݕ}a rէ1cb7MzJ[~ٹww (]ѝmg[lFPR`bx1TH1DptVNb%dhuZ&=5 @t*"h%2j(gS[[V}1z?db/92`eW{vߛh*Kּ S5dlھﯰ+w'-^I1t*"V:+GYG1knwz^"qMQ tc =KxoqGʼniч>s>3a݃Wy/}ǚV>dz|oOgLNL7by2 >{Ž\^ol"~Wgwf6w|/|ijrDT>CCmSs12L|Qwelܿe_qܹ\v܎.c0c 4p}?G|_7o_>tw owbL}ܻ6K;uo{sfZWn.ϧ >u¿nϏbD.W*#C om d滐od,26mֺ$,v~GGOe8qG{{lG0>έkTu®ܭsws}>x-^:f R %+Mk͜0.r}g1(MǍ $6c|fz|Ȳs?p=b*džfc% ϶:Tywt*^TJnjB!\)s1kVJ?sUc?ޕuYggٱ:d}~.337jR 7ᲆ]Ə.7rvQAdkG_AŨAlks1WOsG1,;PD[n3c.}ubǥ~*{P(sߣyLڗv]Ov{&J (/OcP!!)(ohD[V~ॹɂwXC{'I95pbt ys1lqj]s17ҽws1Zwg'2s1 li5tmmb (>(F5b[q؟M2Q'~($sѿ;Sc}{®ܟNLoh?>~M^I1t*"KV:+G֚9`]s1y,O3,ϾQ<p3.\bDv|ͫ,Xj.Fa05#jKc.fߝMjrc(}mU1cb!+zJ"go\cxi.~:M׶wY73c+J oŝab?`܌Ss`9+JYQzPRbVիvU.sy׃j_̍܊R;YnrP(55<\Ѝ:TkY#~pr_vAԻaWxx1TH1DptV6@j9ְ{w|sc7eGfj. z}1v{"޾(Vbc$3&z_=)=xq_zW|_TLqlL˖܃c\-scms®{gfpl /JnjB!BRP6)7rs1wPXQjjw+\:olq[,N} KnjB!driF1Ѕ:V>c^Fu®GʭC 1cb!+zJ"?Pb0?+[+\ۉ'WPxkmhߕۭun;v KnjB!lriuݸ&?(۲DmƝ+îZTh*3 )IAlS ?{+J|:YaWMVSJKnjB!driF1PTڧ{힉Z~WΥ5%Gk/JnjB!\)o+J|toWؕ{ }R~JKnjB!lriu,1?GζM~H4PBcP!!)HMzJ"៽(ME7Mͣ\wf[QgT2xoy1TH1Dp097ޙpS7n D}:qD)?~k磯EcP!AMi$ٛ(*Iڻ6[>[:7c"_ro"KnjB!l5܄Ѧ-nQ>6K_v %ǿ5ע1cbH߄zJ"៽1h69m+?3ѽPrtuT-/3 )pF()Q5{TLFQ4aW!ACV.Dg7|tT#rKnjB!lrT2kmoT|{ r(:1cbI&x=%Qǯ˛G7>Sxt*"KV:+GU)(TO'fpTnES1TH1DАKx=%Q癋76\xElx^:f R e+Q m,?MM|Q EcP!!)HMzJ3_[kC}lL[&Jʏ1cb.YUb2jymuΕ1O%GQ4PCC YSux~pk?%,29Cx<~CCwJg*eE}JzCu®ܭ cY' Et*"$iR ^OIybS>~HWؕ{ ʭx%+u/9~Ծ0j)?Ky1TH1Dp(4v>rrg)xQE5t*"hh2MkM[Ჳ-2m*)?+1cb459Q t]jjrw}/9BCC MiuT?홋}?5ζt8xB/3 )zNs^CX@YSڭvn](_rEQ*3 )LZg=s1Ү[q|&JAx<^CC= 9!Qb+ihVؕ{4 %GQ KcP!ACiZO{bvrg>x|p^:f R 4漆4G2>C{ڮPrEѠU:f R 44&zbzvWؕ;ӽ8~`(<_CC= 9!QbSjݮmu]QE׫1cb4=s1 Dƃ[x<t*"i8y ibeOil.NoqvFQ*3 )LZg=s1'_}~mb'?7΃l,?b0mx+1cb459Q{Rb73.<Ҩ+}Jrgں0ѽ/9t*"hh2M2i\rcPb$(Fߏb$n!A1{9&]i"~®ܝ+r(?oCC= 9!Qb$Qh0I/Q*Jn;.PrET1TH1Dd֚?뙋\Sq>e^[kWf`][ʭx<^:f R 4漆4G2Ql=󹘋1o#e#Kmu܉(1cb4=s1kFF1˼_r8O<&1cb459Qz.Qň3#uDIEQU1TH1Dd֚?뙋bݭӉ xx<CC= 9!Qb/3 )zNs^CXxf(ePRDG5e Su>CC MiI~j.ʽKnjB!Ӝא(Vw5@QEQ*דQ b4Ґ x<_kGt*"i8y ibuwlQ((j(BH1Dd֚R zx<_kGt*"i8P^-(˫bC MiuK=Z}{Je Jʐ2P)_/Uz1TH1Dpt, e ʐ2P)U:^JnjB!&Ӵ֤ |/''F(2$cc|2()Cfy1TH1Dpte2PEך2P)U:^JnjB!&Ӵ:*32PE^ó2Ly%c|KnjB!Ӝא栫(2,R ֔2LT:f R 44&ᙋA("{@1cP!AOikHsUO2{2AI *U:f R 44Q<t*"i8y i(**3 )LZx<cP!AOikHsPEQEWQ1TH1DdVGex<1cb459((t*"hh2MkMF_;= m?Ovp5;'Д#[ λ|ʓ^#縬c??Y_VVKg=rkw)DzGbxk\5esT}˶:!k]ג/:Q?~?Ǘ}oTϥ۽S Uiطnʘ'縂/k]F=*.cZsTn}^7/gz5짎=sct*"i8y iƫu]=fDgEnǨw+!{yi}.qwz9.6?vOٗwjxgkTYykIÙ.vX@{Dݼz|7^KN]K}dcs|Y^~FͲ~g ~~:Hgth{BOe\cڢeC96>Vc1bwb f@g*3 )L ^c~um0Qc4ɳp\V}tk{ʠ[Ew=/;;ɫZjdهnî;?6y7ѩ;hm-wLuy-SNj #Gk3Mc>Kc_(w~{%]|'7tudz$y`Q<^s&y֓}Q'D ݡZ.*ư.nYP+M7,c=љ!]x2,=)¾gnCC= 9!pqwߵэι:m;nпc]šٿc>9?߲ӹy- yA-ZJ]’UlǫVT_Y~qП䟼ՒLwڗđaǩ8gO QQއotal4?jk*w(Z)2E|,Ř g81̢5͎߅~dCC MiIBޚ83q>G |ࡓHNE M`۶ >=Ed~ǨE&j>r>>y7QwsA7,jjYnc]WQlqY_y/:PbL`bX<@:6N:1c37KnjB!Ӝאz7=rU]INoOmG{pfw&Qp^?NݛԳg~<Z鱞,g3 jdE=絚&gv8wQRCNϗ?VTU;:AJlwys9w{ә><}Y/ɡrK{{7.^As z|L~VO&'\c)UTkۑs\ޗQ;X068i.F+h7:rykL1~ò}\]'^0#~z芽}(/g5#5kL(֤*AT?R!_#49م:~ ݓn|0Gr2p%OW42(_tό1byT/3 )zNs^C~_~<|R:ʰZ+XuEE߬!>,VG)\lh8E~[>R(uߞ%ժ cG(פ?%) ~x\1)_EM_KbE$bFJS5\{_Fb15#_(_t4Smgl#{t*"hh2M2x_՛}zbfn\_$>}tN+ +}r4bz]jw}1nm^Kbјj 8ﶭ𫹽p_Gur}j/F&("r)I-w׻)%įĻ~kHBXվ6ܞ&S{̿'4뚋QSnJwY\cP!AOikHs6] xs2,G7j{ c;UP܎׸-߾uR}޷$rQZ*wt/ݟZQܧ8+XmY=cu-uӵT_s|Yw7K}Fw>^~&v.~BUXxO(~Ȯ|Ƅ3Ι=sU:f R 44& {ikݎ_+K܄ zg9ź:uvO{[c^<z_Ec.ϝ"g_|>6R/'x}Es1.{梹!37KnjB!Ӝא((1cb4x<cP!AOikHsPEQEWQ1TH1Dd֚x<>/3 )zNs^C((JnjB!&Ӵ:*x<CC= 9!AQEQ]EcP!ACiZkR< t*"i8y i(**3 )L x|^:f R 4漆4EQEQtCC MiIx<1cb459((t*"hh2M2x<x1TH1DpEQEUT:f R 44&x<KnjB!Ӝא((1cb4x<cP!AOikHsPEQEWQ1TH1Dd֚x<>/3 )zNs^C((JnjB!&Ӵ:*x<CC= 9!AQEQ]EcP!ACiZkR< t*"i8y i(**3 )L x|^:f R 4漆4EQEQtCC MiIx<1cb459((t*"hh2M2x<x1TH1DpEQEUT:f R 44&x<KnjB!Ӝא((1cb4x<cP!AOikHsPEQEWQ1TH1Dd֚x<>/3 )zNs^C((JnjB!&Ӵ:*x<C)R X#FH1`b!5Bk)R X#FH1`b!5Bk)R X#FH1`b!5Bk)R X#FH1`b!5Bk)R X#FH1`b!5Bk)R X#FH1`b!5Bkd/^xŋ/^V}bŋ/^xk/R ^xŋ/^xg6ѣs(￴wsHY~+KQ(m4z#_V+g3i}>N'Mvղ=^*_Η(~Lӟ/?|:6 s$6Ũws+odSWŏ<"f)Ƨ4ꗏ$۾LmGGU=}9s,t|2?Y=l*Zfd"Ru|[ı Ml[~$'EukMyBzfd}rrs7(}Jћʓ 㷟㽇O__LmTu bQebԲ7\ŭd[ܹ4/l ~hheZY81t72V{)CG1=P&ӷ=5޽4,`**!Ϟ'skUIdi0~sL{$Sc&b&{ٹؑ&;D?7bN΅חxvTye7C\CeQZY5 OHqVcu<|d<^ɭS;J;_&g}nnjgjMYN:'q?L3-|z>m]*U-^1h;٪*yphwﯦT@V__}9w`?AƏs<}bcga,Zi|aI:0;q7Ef"7˹.OUZ<3[U=o*|afꛝ_oQz2M;ٕ)sdhR쇙qQvOx&/]u~Rj}- \ l[շJ1-{uo_<0N>7gԠ>Ebґ͢oenlWS~`ZI(Ii/z&e>.>ϏO_ʋ1f!ϴգĺ3}?T>it/_Է?J]{R|>GeF.B2%,oDY~|GoGi`3Gɸ,u}_vGUuQc_>9L?'E1ڙ?4,`t/4ug,Ys'8#k߻]*S:tu;31DoŦɓ*E|m'Yb>qs" gSA{⬷c^ˣ Q"}ewygf(Qh[ ̭c k]\=dT͚\.ݷ!g5FS҃= t, dgޙv"'Lz {ɮQl_qY`:Onk}iE&bxnQ[Ⱦ75%ݔ9r^ҡkɽ<T Ybxj_7@'v?+ѻ1_-O H>p}j\}͌bbdjYܝ:NK7ռ;5zpxf7wnf>ܴpV ? ϡ}?]9t C]^9jeFwS?kgVW{~Q&b,h n ̗xϪ%s q{k5.RbE+J\'c=暯SbK""ɂz'e?[Eg_ :"~$;ݸܚ?IͿ_ƿ_^XtP4}PH{n(s\zqw$y&G?|2<; wg4 ̢^<1V1}E#?pV?o.LΗ HM~Fk|&i4f]'kG.k,9X"GWSge=w>v^YwkxA?GL6_sWȃ 4ˬND3w6Qz.Ƃsb.RQ^[7I,她E/bΓ]j.Fߙuq˧Y2Bˢosb}ŘWyr{nu;Kv1b{5C~ٚOwIgx4L[Q|<dzVrǙJ*m}mit5QoY ͎n{r 2'(w551Ř[sb׹_\4~i{A~,w _9j)"GsJ~}{i{i` \ob,j ?=kѵZjdi]BCs1F_Fɍ{\ PAX=-3 3s1a~稿3>7r}zݳaci FF1G/'pf.~&G7{/j?s?G:շ㿻OQ, pknǞIX+Tj/T_M1=vS?;x-3HKbG19[cϰ쟠8Ts 3_R7=TOvGsa7b^ңv4ƮF758Pj:({8Ήu8?QQ:c]7kE<3ckW|e.3L76=^v /+4*&Ys{'{n(9ʧn]/ؽbf.7;NGzAž'U-v&Q w_}~΃LGηv,Z~(FU[ϳiyvTM&;_05q]fLкzN񝛗ZL|N)Ggf%bOEoğns5S9>KuMNGEoIHvf<{Ǖ|pdQ;ӼYdi˭U,pW(Iź[WcKxfYYD,"XH5.O0kf'_J;ST9QFVw?vs1[~E90msgUsӴWyQ%>^3㽻]GIq؜Qs1>Yբ%˲;ٕ3Jq2^)f,wwڟߺM}Ѵ 8ŘͻkkDO?8bF1sm3׫k^/^q|r~DGL_gKZQ?nδ*ܱdg%{ԡyD^)0wG,uCRܞ\< be_6xX endstream endobj 535 0 obj 42232 endobj 537 0 obj << /Length 538 0 R /Filter /FlateDecode >> stream xWn0 }7s9u5P hs)[; vI(٤k4fH<<)U@t|>yC|2vVމ=1]/IbsPT:>k>㯶Q2QYEdmik!T!Adϋ3{DnEEhfS%\+m#LJy' J,HD+ d(Kq1Z(W=W Wv kF-x,*؀m#;e]pCwG|=}J$6U/m{ߜB{mKnSl} LR @wXY@K}kFmg%QxRwa1K5%91< 2`$َx#54A*i>*fù#Ckp/ӡP9q\_/6dYN%4^.@5~fljh`2 O8!E2$c Qz$FU6"1z+b+A) *72HrI! Gzԗa EB:-@Sr5)WK%ـM;*.̫*+K;D+\Wn)婞VS@[IJo1Ȣ+U)2L+k ?z"?B]0:p6O:vukS,^r*5"Ό37LK?l7Ofu/vĊ0+@+UHfڥ1il:,'HCtP>eͶ6WiMgg> stream x323R0603Q2303rs <#C#=3 U˕˥l endstream endobj 540 0 obj << /CA 0.69999 /ca 0.69999 >> endobj 541 0 obj << /Type /XObject /Subtype /Form /BBox [ 239.2 212.6 604.5 307.5 ] /Length 76 /Filter /FlateDecode >> stream x+T0P(b/C,^.#C=K#C#=3\^.#cK=#(7G3603 LLxP(drrr endstream endobj 542 0 obj << /CA 0.70999 /ca 0.70999 >> endobj 544 0 obj << /Length 545 0 R /Filter /FlateDecode >> stream xVۊ0}7PH2,6m? }߯dkXcn`H3gΜy H0O_+Hqxw;&:{83"Pd-m Dߖ % 6ǹiA\CN76]hq !l _aPtꘀХ)~ ɹ,!1E_iԐ:?=qӹ"2H|L8Z/9?~ 䀔ƒ"5ab ;tLl*I!l|&EiliXw*ۍBE-uu }62Q䮅LHT. }Ưu][jzvܝ,Z H/RU~\ tl%y_42\s,ji$*[X}I;4#-80'W5}ܠ{=ZˤҬP|ߠlYTra=1磳r:M._T6$ѕ`CJ ) 3Gpq^&NUqUF~ibbe)?Tĩx0o PõXLj} C0Ũ=O}L"b>>5.k1/*33endstream endobj 545 0 obj 637 endobj 547 0 obj << /Length 548 0 R /Filter /FlateDecode /Length1 12248 >> stream xZ pSי>W%Yd`62m@*ٖ-;x5q,]Z4ë$4 ݔt, mPҴeٶIivnf4ÒܫCvvg7ϹI2D.6wpmm?Cs} o KGk?Hh%8Gy2w8.j~3E%N\7,X`{gB8じt$|!'}*!7mɔfqNqп2j\-)Ց$ d+M-_K郔7 rkD> }fT!/6\{ 8?Be8ǞfhGL9 y8|+<9F92|^:>Vw/9ʽFv$Mpz5IJ ]rLi״Vj?йF m@51Xf~>S|hv}_rNsC;9܂xÈt5~4?M!Hn-U[iKv?6qm Dv5xvx EwܶAƺEIS\"qx ,a0{JoT6u"ͷtd:<1>,PBf:eT^Ri4Y?NGcٱرixgMwFSKsL"͓ bڴP7IV;S[fՓ BD~p• S..o\uZU[2 :ۼiZRKԁM[Rr;'N"A_:]>{pGIaçwO3?mkg;ȉǿ~{ q{%CO;f!A+@H+mK]'ճgX_h,oj()1lqk ?$@bzz6:t"f]@zZ!S",iTq/~two)qD!rѠ :.z9}I>R^K,F0J5KD+,ÕЪ6SNuQ,2kƍW0(n&ssV3M@TL߭Y/ E3RM󊬁>?j7.+*k7s 1tEE5XUحo;@[}5gLU0B65Lj-zF4_[,-'JPGyGDDu9*RYd)<x`ҚJLY٦Sm9dvfNK}F76#UVl-WT^Uo]%Cuk?y웇?w:ᵣ\ҿ#c34{1&c{i Ah%DkGYMD}4VTiuBa%|{/1:-]h͂Yk.VUfl45=sEtZ]gNA3VWUo䣚Ez𺐸$ws,I3YͭJ'՚"ZVU˄ED;J_gh0/Z\.XP4V:]m~b7}ֳ{{w<.2NAֽyx]9~w(v$}`>\S|%tE*dy?) h{e|6r7gn1uf͓wjӓ6a͘+[ƕm"Bkwe HcCX;u%xS%h:.%:6 oԱQWIޣhxzK1GQUǀ/ձ@:֒4u\B6q)m:6 3X1p#ME3`&L:1Dg4*z)WZJi)M 5yuR* T$MdR -2[]4HZ T $-b"<iΆ3摑BS0!6\HFQ/bt:Sa)%T Bv1$*$IRiH fx$>vrf%1#@I";e h$(1 l]ֈBb N#'lLg'JiqD_" $[#CotD(P] f30A.Fh6DD2Él"!ʟRjiŘļNfȆlNĴ@BUݟdCI:fhd8V!MѠC 1f)%hb:LCGzMmA%!_DV4/B (kbz8n JjH$.&xceX"%M鸘MJj R D(b D3X~8@Py')DRTHJG Pt49BJAT9Dɖ )A DVp!xtTL(ut'%x MCIs"֝IBiіߍ6j; 浩AfPDf1ԅmH=F $Q.(ޣId@5JQAsxHl[ll:&* Fi=cL[Cx"Cn&ƅ hX%vy˿un[tu66_ݷ/"oDg鴋 ^'yEwoۅ4gm-/{~Tc*Gqlwb:PSwz=NؿsNTq{hB'PQG_F{ߎB~$Euz)>t+2&D:D:*[~rR^nO_/ZO.tR+=Nw]t:]ʦSvy\^g]:tqt{]~ƉH0}붵H@ Lj38AwןsE}%k14y/][EU;]T0eZ&W$kJUqwBcCi_R]m´`㩤46 ;a# TF"i8%/1sa DQ,9qSd*"#H["5[=S5je2N&EG7E5$'R1u`fEf!<'RCM$H wdu Fmm i ry2$HĈnG&9Ixl&ᯄ2;:"$ \ q"H#9aQQBBRd b:\ti g:cLc?$տ!f)(J+V JP CH3l 2L[Z@\~Tjs:3 `/ʭ`o%j-7ڮ 4DꟈJɢIѕ\|8Q9 tP2""1PJh%pЄVsa9mFEP>&#;hdbVQNjBm*h,q3$r 2iͨ)4ѼՉٿ׹)hLG#, a!Ū5d Cڰ_d:&X^ CQP*@ # y(K(\ȟQwDzonVDw@֠B)0urJ5+=#Ū(FF3NyF0Tw5Ѻ$,ZL.U9EdG*-UK٘TB*-t&ڙ՜G\:]=v MЛU7OIw҄ȏ0BL6h=YN^ۤJSNϤfDެrY؆)&,quG'QNR^8 aEV1J>Vt5˸&FyȊE+gϦY݅͝]Q&ERDIV[{H͚r>Y|'C]룽TJF=>Շ3?Y7L/[s#MĻW,?NBmlg1G2]/~SBulNgk߃l`6\8Lw/R{ץQ9wz;UyPX~NDfszqEU'v3}E=y]*R'Luv 6Եۏ|>O'YAa>t⋋!P2 ~M9*yHdFUYゖ&5 uy>>"ߏ?ˍjiZ染šYhgk44=yNoQV:Xh(Nf"ғٙ:r.8ߝ(fvUt*uDOQt;4UZSN^(;/xd~wŬ}ݎ|X]l/ڗBۿ*EZ>&7r|7;]93GEG ϸ {ē&YEE=ftnW*}Z9 @w;_ n#JWޕo!vgW-E9G[-aq]ų*1Yr ";&1&ٯXazKeU^J{[rj[ ?T߱",~٤MZ!&4aBQm+{)P_4.$M%re~\ /+ٹ##yqp&/·;8eoo[d+ =Zpb[8qƻYorxX7[U-m}5$|Mੱr8]/ikI3| S+5 Y.|v=;L=wad(\m6!BZHːak(l!iOxlUR&Do)-~3|"ç C)rI `P j6pW)À ww§e dX/úSV_VLBN3hTpV] ] :@GY訄vAh7ӡpA?5Eª^eUe ^XizXBX1˗Y0Rlps[pZB[%. zhUX-BK'47U |o MUд_ *Btb:M!h\"4:a[g V@Zh\ԣX};x[)ԉBs,X i~c9Z=:zmYsaaf-P-t4:]ifZ-`V:J@S`Zd0㏹L4V.d0Xȣ XR+X@+ ڝ <**;Ʌ;-?G\S endstream endobj 548 0 obj 6071 endobj 549 0 obj << /Type /FontDescriptor /FontName /HAAAAA+BitstreamVeraSerif-Roman /Flags 4 /FontBBox [ -183 -235 1286 928 ] /ItalicAngle 0 /Ascent 928 /Descent -235 /CapHeight 928 /StemV 80 /FontFile2 547 0 R >> endobj 550 0 obj << /Length 270 /Filter /FlateDecode >> stream x]j a.KN{([rMNRQ1"o_3v_KTk!ysF4WZ:BҜe9H% ick9KY&c{e@w lNSz祉fGRΪ $ϭ}iGZ6H>BgFd[rViZqZWVqiZ y"yJp=1Hppc_'Gs!:=E^*ƒwi0a endstream endobj 551 0 obj << /Type /Font /Subtype /TrueType /BaseFont /HAAAAA+BitstreamVeraSerif-Roman /FirstChar 0 /LastChar 9 /Widths [ 600 636 636 636 636 317 636 636 636 636 ] /FontDescriptor 549 0 R /ToUnicode 550 0 R >> endobj 552 0 obj << /Length 553 0 R /Filter /FlateDecode /Length1 17188 >> stream x{yx\ŕ頻ۋZje˲dVےݲ-[-kea[%lՒZRI-w$f`&%jZC$3!BXb}g&/!3 lf}s߮SN:[{J( Ok7Ôh%W_.ގ7>e3QBiKG`Su=kޢn 8y(HTJRgtR MQƉcV I> -O\~G㒨 8E>u2i1=ĉ6Ė eJ\M 7Ú DKgRVî`ueXqv=ΰ_?q\[^~n(ŽC+Жj۴fmPD&aNr~8Q4Q9/Nx/}!>i)dlx#O@ϰ` ,(U@mJquk`CI6žgًe 3H_k=vAo'y[iU/ihtkOFM:gJ&8oL\<sZBΡ%"]I%ڻ \^Q Rdu!nb`t ^xne7ع7 x;i[-E&i7fCTizMO|"Οcb ON/šK=?Ki9viR fdvȼMO0P՘Nz v:p?}^Os?~%Axu k;}-,dإ3_B{̛s)۸t%kV\|ŋ.p:ٗeefK:gv#y=)і`M \z$9并l)}4DsDz&MDoVdLJ(?CQz&)C/ʥG^tlFwT9oS] v:1AJ#YTwU5WpUа-`"mMa~S:ZЉԒ5BbwS7ˑ rP|drz |R'FydGڜuþxnW=zPaxET4,n@)/RY-u8Sbx>=&t4N=Q=A?Y+HXy٨eSUgReKU̮ܼU+,e `EXʰ٫ù̎ge䑴Dg?𼪱%&fd\=擡++X٥X=gF7,(۹ff%Z֬.%˂~E9ZH y 狦k8h ff8L"-;+j$9sڬ6p5Fެ`" Ok}R{OWm}4~YE/QkgERf[+ ub1s\lnj5/-mrG} kקgg6dRen\̷,}s]v*(չNۼsWYګ&DL8Ob#D|3Nimcq,:*7l\"+=zfο[T䲝npnXRX*i >ӓD9ex6iaW\*mVr z?lfքR)F&VJedۛR xR|Ozl1v|5}nuSF1KG<^sRG2ngh b0ss8{7KHɘ3Q7Q7|3M{_Qp;,E-[ܧ[  ^\(wfUplK8)cÉpzɇSZ8v*xpJ Pؠҩ `Y{+ ./TCNœ8뛤 W62]h@+3œVv_%H۔ }NhU]+x>g:3qMC:-? b$n?e&uog9sݥUVZ|8#:.~V2H KV~D=Ĥ A W8r^H6H[P2K R+'cu򫌶8bذT\+dl$?`p *6%ӀFI1զ W 8kM_AƭOjXA0}qk\vIUQZC^M+l+tOZ4,xJ6iRO_@( 5(6%_خ.nJlT*FBJ%ˤ#N:ћLZ1c=GE=4_Sj?-8nED.>u7)\⛌ MjWtR|su,U4UeAAŋ+`PcˀbVaS1[ /|LK΅Qqگ^گ]C[s.RGч |;I,xDʲ~ [u#{TVAoj]y7lSX> N{>(Nۘ~RRn#N)~2eڢ1}brMnylWi45J ='-,ާxǵUޞg=YP6^ѯG|,3<_ꨗ'e)RbK1L9(rjZ'iY$ؽ?gz^_է?wm@(" aGj-+aCT,]}kz0oڵK Q,˻]pH @_ }|}]`iC}\dyQr}6k0 Obnz^/TD:/k=z/6PDhz{;6wӽ!ݫKҁ ue@Pٴ@?Oo zzA-AXCΊMw|U ^.[]zZ,vmj[ I5|Muy[v_8  $Aaot>M%߰G hM:uE݆Zŝ֘9z|ErKuSS隷(ٱ]Q_^SQ}w^yWUնvV)Ք3$X zAqRϏ }rfk_EI_Ol$V!īw[}= v}>i" :>="CJZ{02G>]z{0=%t(!n0XCLi B!v&M19/mء/<}v J dlWZ 4aŞCe\ N*HtP?+TE H `tCr;C~wPnB3RiR32j{ ܊8jîT \'}~优$ݤ )KżgDЊ3'N4. E%+,,+)\r҄Z .[r%5+kVZj9 7}R@1#< 2;n;{uӊV7ayDQ'ăbXxeLO]zveڥiteڥi^]zveڥi^]zve/fz`o?37<{Ƽ8.|mVm6^;c?vgdi"ۂԾ9 ߂?cH (u91kCMv$aEYy8M(Ϡ~ e({T?"iH)`Ns SQbّ9X䉌?,'(09joG.A{!I.O@ч(=4y1)U8 `r3C!HzR}1 c b\l2F rhW#JqʛEX?GD=꣪ޯ>F*8\f.V:Yb؍#vUe]ԨvجˁOG[ hjկAeYTT,-E?8֓JP *a$9; APdWrQ`CBxp(6bdh7Rc)JR)lU ΥpO)SJQZh)>W B(G(n90G;)O'?9b\ :I[e?AQARYlēxw ѽDirծXk/ˎI˓˃b1̴Fy1D^ UɧP^CyE<ȇ1`>+*%"D?ƤfO"Y"YEr( X \ iQ)(u ɣ/[\v߁A~yv.7q1F (ϠŸq-•ˉK]: o>~ :誇W=UW3o(- qv55Gvo~ZAU{T=ϓ~vٿ~>{>}}}Qmmm_rWĮޤUu6rN ϳ"YIWswjl$ͱX^"Y)abi@ )0ecYk)ZY-.K%:β&YmVlլJTC6fM֚\e{"&&]K#kܵH6Pq;Ћ2oeQ5Kg+,mjs5vM_^6{cʋTFw Ivݍ'"%n䏄x _]U9ȦqvTxۡʦ):ҁ#l钎k$B+378*8Ea&MLEaЈs]r* h fM&|meg+jvUP#;#Zt}*Wy-F2Rԇ^wx:9U9LU7_Ullry+Nl.yzr_/7{f^l\k~Zok=-zZٳYaiMMb hC7g969z7h^L)F1Jt7E\"v9TX^X.,C:c(άS1ctkW+ K~CP!٪o(܇"$aIl,sa#*GP)Lʧ>²b> 3 M }##Mv>*IgMalH cB endstream endobj 553 0 obj 7719 endobj 554 0 obj << /Type /FontDescriptor /FontName /QAAAAA+CourierNewPSMT /Flags 5 /FontBBox [ -21 -679 636 1020 ] /ItalicAngle 0 /Ascent 832 /Descent -300 /CapHeight 1020 /StemV 80 /FontFile2 552 0 R >> endobj 555 0 obj << /Length 263 /Filter /FlateDecode >> stream x]n0EHYGڲAHI$}`X*ê7QՍ3w^Nj!}wFtaPZ:B, J%&nYV%Gޭ;JߜDn'25H/ܾ !%A?"1ބ8[.q="K,\j_hqnAeESoPLe9Sses,~AO)€alIi5|~ endstream endobj 556 0 obj << /Type /Font /Subtype /TrueType /BaseFont /QAAAAA+CourierNewPSMT /FirstChar 0 /LastChar 7 /Widths [ 600 600 600 600 600 600 600 600 ] /FontDescriptor 554 0 R /ToUnicode 555 0 R >> endobj 557 0 obj << /Length 558 0 R /Filter /FlateDecode /Length1 6940 >> stream xXmpW>wWIqԻWODSթDJ,[j!$%mhyEMcf`J;t(Y-  R x ô~0Psֲ/zWz/A۰3}s=؞xjh/sV&cf#x+7M-9)a s<ތ7pGR07P}?SxjW~1E$8}n?ܿE&D x0wm?w#9Vy ('r^%wQw.WK_cq> Kz]59&tK5E|& obPlHxZ!"5^+/a[obh{TLISh\{:a?_ZA?r9;sϾݳ{mZ*֔*KzwTAFmDDTTu/(=}9r+z mkQ ]^ 8Ft@M] X MQ}63//xٶȗ#-Gf5ꩼh/H޼֒ s @EX~e-R3<[0ㅡhsŰ>l[r}ڪlV0f]ܻ7Y1MI] JS,.8`n!O(f|0 k/\h0Tk9bIQ|oY,Q]RQ{6QcM Zp[_%Hm0lH|3W#ކf'e [mzʪһ PɁ0wqYU~ 1f(/E)oVkaU( F.<'+!UJKK2ߏBfUT!C "@#~Fd_@/_ n}rZ[Z*ayRxo57>y';ڡyʪ;wT"q[t 5w=z럕7Ͽ)i"ސ^]UM]gF2[|3Eܞ%OY%^`;x N1wU2l>gn)@9F~%P-^vw_;_^zGrh^=(gǘS0`e3q T&M/kG0L>̷|Z9;+WGsLK'GY1֤vٳSMғɑL&f699Ѫ;6gFM3p`:>t&gށ13ػh\u4`80 iƐ 9`h, ܀&/y;uĬ o Ρ- @oD PvD֋LB1^~%w5IdЊ{q113܊}49*W>UC#[F_J;s7w!ƹ<1dMS5H_8":Ub Xݲd$8X:]i -XQo:1YX~>-,V<$!g4,-p]-*$GZ)w FӕE^|MjþiŘV^ڿ958bwJm˞z䓸z/}N1Ҷ.W+:{@Zx?˿T^keN/tX_N vgWgF]W7r6G!F!^: v75A7P䱎0(;Qg 8Q׋P/_]]v?)]篜zλWWr4JJ"uLL^ ]퓧_(J^*k LQťH (|RBB\X!?txeU;.mN$9_ ]-ݺw> endobj 560 0 obj << /Length 230 /Filter /FlateDecode >> stream x] Eh ݅RȢa/ШE~i09r}Xjg#/upi{8+`cg"oqO2H96kL!W3oR黢.,|1g߽D**K =C/o endstream endobj 561 0 obj << /Type /Font /Subtype /TrueType /BaseFont /KAAAAA+TrebuchetMS /FirstChar 0 /LastChar 1 /Widths [ 500 648 ] /FontDescriptor 559 0 R /ToUnicode 560 0 R >> endobj 562 0 obj << /Length 563 0 R /Filter /FlateDecode /Length1 50616 >> stream xԼ{|?~Ιٝ}>{nv7$" r &\"(ID@PI77ZҧՊH}l~v2sΜ9yޟ9u}]t1HZz?I;a'k7CʸזlBR\b͆2 ߻n]n@cpPpOi_~xna׋gvڥ[B[f^|COu k_}?3*v2CP?=we?b˿=: aJNhuz7-VCp/p$'*t&[Ujj.(Mijs˴3fw: a0"7BcfSFUc' FatWW14=vt/E!ڀF, h/`?"9D'}N8jEfO3AvT h8KЏQAO')';(>`cۇCdB1}Ugc砦a=oŸF<;0MB{rmhAz;𱱏~bt%j#iI(.BpFt[p#. O$yI4u#S } ,U|ukEס[߇{=*\E@ 4@wcqE8fil UPxs LYuћ P?@|l[0wc Q-Bkzt=5,QÙﲯ+6*NmECgsۡaXއ4aޢ_/+|?' $K 1o3ckz!6={-lQ\ o>\%D(ySQ:YK@ʦA;\VC*|-/ y10<b f.leed~ϰ*f(+)ru6DQB ʣZ M~=h rڃ~CGC :_ Rw;Y ~ '54˽8y|xf]!XST2]]m.M疨972Z11*J/R PDiNay$z7r] V 8Ґ^k X̃e^be3Ƿ[m.|<8~ 0> {# 3;!& HsHM42\ GC=I#}DJf1d~ļ'Ka V]Y_ѬXإxUVW)T>TySr&ܘ*hSx߀]|@><ZLI2kP,ǧUG'/ W3ѝh ?CHΐ?6<|wai"JW[`oP=لי[[^B]#.K$'}Z<"B68VA?{2ي+_L>9ɆɷH?;}h| xay":!ǵ`~ uQb4Ǽ<038 3+k@%1f@_j$ϔ^@&.CYIFò݁Q(KD7em Pk-P`/$XO gz,fCqmd2 {C(*~fcBXR;-9w"Z̽pJӑmL&dvv: cW5 l[h [ǶGƮ@+МEA+l0-أчG,?#d h `g؝c!GZh XSjWh1+]B0=`>B=9rl qNӏ|%Ij|Qäb]mM!fҕdE"F¡`@)8V zVVqJR͡nq(=FCӧWb(X|AAE-5$E.]SCЈor^@.S!-6_9=nOi 5]L}-drzad,g~A*=Tj< M5b"͋ _y;L ᦥ%C(t1) )81*6h/ula-Nꖅ-b>ÔNrl<%| 777-rQ73,qhϥ /<ێt&l#³ @}]j%WCšWuCǸe].Ij. ݡS=h >Tn}xF0scrN>Z/;߮(4aH\*BM:4N_AR7uP>$|C#dx2hJyAdr = u,*SP!Cж;3Z;C.,h{?2Ɏ!M8bGO9ywy Ҽ~__Y>:'z颅b@x۶^xc9\> >Ff@.["j^=T 8diZȸIG9G܌|++ߙ,{,ˆ9\Ŗ!{zyۡ ?^4&KQ2NÓ NhG؞lbH'׶tBrbkI#?n^k*{;?׉f;@Ljjkjq;@bZ<5?W'-)͛MƿsF?ώ3\$be8KGG}GI>4,tlE&;:,\'W+g)7H(UǚCͱc\"V:Ƈb/Ǿ* *~V8B J fZ%* *r |dd'l/ւ-̙ S4LC#nWmtþZU)kL@(@H,67EuJH%kaCU!)_]q͠{1B BOJe( *+Dn8̵'mObs[ ;v?<6E,i~y薎/y%H!7o;}3D6);cdud4ߗFl$Z8J(l6xM]q]BV* 8VϮӮӯ37z=6--ی[{ٽ9ެ7{ !D%dfY_֟ \0]?bv~??1?c?qw\as+ W,50Zm¢u'BZ~R"[gl ?=ٙݛ9KTunZnEL/Q/-;V@ VΐUبZN!<2^ńV5yK`"8$& L- iro4àΦq Fk;32 aIPiGLf5"g@GΌȹNB* YrxTRP6\v5R_FC"b*aWY  -lZ(jWKlgG'K Fic9X, X$YAc(p!SNBD>5jZ`Ƙg"gX59ooۋ^ƒk6}>Vz컳Np͆:+Q.%K'Z7-KHhe/Nm|?Yw{~Up3T's^T/"|jڻڧ*pU<~7nc !'Q&$'04pva?RvGQ@#񱾣$=NgQ 9m_kC%O GD'2Gm {'ĖPl/0E-#ƨ_1ewtvfѮx~&J מ=_>VgO5}쏊'8"հ-i⌹x'kT=BAa9$ 9-ZFIkzjdȞauc5t)fʶBy7Ɗ zlUTS!&SyLf̼yy̚+4G1ꏒ²~yh)Y{(:+ACbUx,1J]41LM\RS!aRǔEs֠VN܇z=y5 E<]y{YnqitKzˈyzm9ޞamf@oh>ruis/c?Y@H@1Q;<1iHDc56JD2rROM P,&NbSF[adjK\1{aATL@χ$|-&ڦ͛JԶID\ȴ "iUpZ+7Yq$cm" ekqOP-eS³fH`Am|i9dۺv EOlۓK$ϣȌ*' 4_9TkFx<ƱALΨa]4DlV{#&{GeF;^klagg~ΪU$ڡH*IRT)UOl,FdždhA l5QCc|M2"p'$#)jeXWG#IM W"LHo 'ôN,aUQ/rDIwy]>6)i{jyO26YtV'e9KL y3@;|-۲Jg>>[^\Z3V2u`GOso?]0\' wM z9)A:yɨY֨2Cfczo1`*$e$FʦmeFNˎm@k)NduaYѫ8mloxŎ3v^mUZZL`F`atVXr7=j||xجU݁717n ؿzyQKәFQ~ʜ̩{H|H0x|tД0L9C[OLFJPg\? M&brIݪD?eK'%|}`{%F{tqdZSR:.jҭD:lTNE%8H ^ً}L&Cɖٲ9\<_?ydˇ֏AƒqKt([QYi:'ƫX4 ]+&Rn#@ע@:JqiNFT4F3]hy-ʼ0~ L LL6_dlPa7Lzf'n99,b@HFvs6XE  5rAkHOXM3,ӹ]LF ܸihT&|wtv,']4;I1&b3gSϽ4<ל) k iQVrqw'<>V0&L:/u2[NC9NW^H,3<39TSgǿPPY̚A`uo*D26:ީ R(lM}~PzAapZPCנdrvH,/ x q&DŤI RjjJe7`nzbR)0*/Dg9 l#R߆R=Vmn/UX7lo3T|qJkfi+$`QX|nndX%Nn9Owiijt>o>?;E _!;VWWѴEbLgg v:X9(!J"&V%br9MS 囚lPCǁ(#)7j66o_'\Quvtjo*a|zv<4 &yP^SRo,GcQ{w7qŦwV_^5ynזn<~Oiuӛ?ə;ŸoCtsv0*Ӎ-yJIyد_Vq :.fq§1:Ն oS&u]u=AiB~0qc iA}Sb'Fg~Z12W܄MN_略C5uJ>2PiZ|w&&۟y.s,I A{-9O1O57y?M簘L<>Y'˜NQDbJZp5Fq7->ިFUngjS<>T?\eS69 R~FGڀN#ovbK])}-}uOSJ2n1<7y~Eܙe q"{3Zޔv:јw2Dqǝxj7>^3pԒ粱S= UZJS1ӒkC(0oX4qM;ד)a,J[ֿmx-Z7'R> ҚSk*7vdow=*wt_èuJ&fحfLS;;5 }75'\W ; {C>e>*zg/0vI |s]w./鵬1&' )Jg*RD*8׷A ՞EZc󻁏 0a*i{c42a\#9c.gگªcX6FbGuB,,4,6]?!+xPI ށhV^;1QXP'IMV&TD!.ͺSg//MglgJx7> ݃B+u2 i3Lx{)EgES\tqpk$ x+sQPWuQǃdxDr,ˁP9Q7RL {%`MfzihӌEs%s`|ew ʱ!y6>>P.dQs ± g@+Z{~麹k6>ZҼ`qXӖ3f\^5.HO[M;}vݗ5X_\h(ҵ [Wo~mEe(w(2-t/p+?ux}Pix0=>πnˠiPx?F r?u~:x J2Ӽݿ]q&TM?vr?"$Y>|@ = l>(Oּԟi"ՙ*Fxǯóu;($ԍz BI=}Viw. i%FJ^)*JIP6'0ag_ho>TdHhH4 W,| e JOHp1/efF>{bU&LPh.}dےKj?ʏ>mLԶ67P})^J@1x܍Oؕ&F,׋UZ4jՎRĄ@LP08Q Xz>.OlԙDo+w>p pOF.lLyu|] wXeEypCQ>y%8-nl.pʁNG\;1}9)C̫e \s_&y;o|oh븣cJW۞ojYpU-, {v)`WOPՑ)-mC[}r;]ߏ=z6ϱ?etuhclCꝹO>p} aɟWST/#)8}j)ۛ:8±aWMvY}=n˦3 B#~^Sre]9WwfX%a|C9N뗒L[ug+u] _Myߎ\2fW١*32ͅæP!3D]*ǤBAmOI:Nҩi49&9P>˃5xI]J5%6'YF`h͋81:+iHW^ezx;&/t}_qGEjB}̚oR!|9Ϯu?z{ BTlJCO|I_'sI6GuaXx)&ųEUtZ.On8Y В)䍫 ԑ b @l o14;DB!V *NeF.d]ri96X@i,dwXxIphU D:]mTNe9R9d {/'pxHޓcu?s1O-?Bn~N}?fUߔeޕLmnXߟD54׺ 4G>jq!F VŎ-N ,$Gw bb{9|WȈW!; wɀF&XV3$`Lq3=Ft%a|jJ `(!*ӂhRi<3`iD.\[|`ψj#ݽOiSfщ(7JG;0V`_G}["сS'#tϻG_y]C:f;\}Њķo7< P=nExF _"w "+WVn7֧n`w(~-[;;5o~DCϴ}f,YuӫcSUH犱wN+4S=#k<^. *S8Y` %M!9Ù??;oόPc >Fynle\&;EKpZY0ˬTI+l-i:_Es"X&`k$G_G:y7<3TW߀n/__~knN#ܶgm/kKx{k{ͦ٫_?;2SS7?qU K@&6Rjz soobrN./W QO$0ID?"ʱx~nG}!iBmOpDR'3x7m:'td2ϢLR$yfxkWk|=>\c69Ĵf6\RZف߾Kݰqm:eZۮ۷k/bV1C][WΩ$@~߫䈑ڎ@G#Ru OD>( ld7ow Rq{zH5C뀀TQ }!.T!UbO Yn_8Td-eвY S܈:FOѯ+(X1NT'kYRxɚ-.(OuG?8X:]WUf8 ţ0:JyFZb E(=ѓQ6jņ.mF;@ׂMA}\máp0L3(u܌5FQpe5+ gQW )țyT??:XRUdBUć-NςR>d֘|Jt\ NH%aʪNV%.5Q uj*Ub6*c:m,*zy 0VI洆tkz40M.5Ho"6Awtp&՘")g.AK){g_۩Sg:tv35'ˁ_%-DH_NxUc^&OBnaSYi ⦌9u/O N(]!ǩ0Jak5k$*()Ӌʳckᱯd,FDcQCF:$$=%4j2NQГ$'[_M:$sE)F5o+ˉY暆OK[Fe+ƳbV^T7 V[d}:}SE.{@DVfhTA9K`žr- 7~.iSZ*\5oөӋJES++KE~4ҋ<\eF"{4 .7 1+έl~ wb5.쓪0<ų cT8blqZh3 gD&H^K^-QW kxq߅,)[pE-QT $[Vrvx; l*[%ro׹wv6(@5&*M|,JF ZXKҭ{v^kKkK.]Z 7oƖK؊+|3[GN1#"9N)Kc!H_|`uZ]!uP0 :EW7꩚f9õJ=N]wB{UkǪCCaQ c/5_ g]8(OlitڴrPLr*INO >ңIYqiGP]kBXUMdjbvzx)v9E̪5V`1nK.l]N0K}ZlRx7/)3{TGTP1Mju.eTz;r@úR9/⃸?Xn 8|NWudoFO pM8#tqS :{k1%1hFUu!Ut.2i,Eh)aee_?5!LGvb&'C q2o yJ/$JGq:*%%y jr&ëUTNcσ>41MJR?|*U\GOo)tbYC|DTxdTԆkc,PM m\?o+55џ~y?99fȉ)X6֡p1u\(8&S2npYbvUO;pl2zuĂA+E"́C)2j >AT1qxl$ Tj.[8r$U*Z N[Xj4P8Vh)8Ҡx9~&#\<""c8D_x_"Hq *ǵ9<= ]Qjܙv'/9u~XrO8J>,#p.y(l7:Ib)%aM(( %?~Öc=lbBJ %%'Dw#1kdԙq"ak?C׉ᒣB t:wHy4Y5d Ksh:<|#:z0JgaZyd&;{l_nʲ:\9CLY;0z^}VW",H~Ey?00`~|j;>[#Zh8Y_Ȍ ӃQq'W]ie2Suӝ38S90vvwLCj^s+I<*>=AfT?{G|pā< I 2ͻ1ev&_aKx&WrZ__NiJN%'4`Vppܠ48SG%Í _Y4KO:O@7454N|Yш-=(f {\G:Q~ :4TٵZy’աf9O/vQUkc&JfO&L2Gɓ@v^HH D &dА 3 Z#T` A1jO۞TzJ{l-Wj==p$ {fZknY_*[tضs61Vd*ܵ9#d' +DrOQO!X%/ǐ?]:YuqGUo80椉3œJ0'_)/ԇsʛ0_PPv1 -ͨZTxF ݣ>>N?̌#{+EML!S=| MXs =C]EsAP},gew~W>_zܞW2PfMW'k3-tكni^{RuJW7IPWePsɕ!T1'|NN67M.K떴o,1r*mN>UBK֗uGÜ0=/̱ޝAQ 51>/SfJqG E2"D"+ q ~[0 oiVukVdU͝ˮ^X LEFv n(xYS2u,ɗbhjK:,.'㝲H ѻGa,ft÷>9>>} 9&kMUdZ%a aO(.6kـ/+˦]d <~"tr;7ۄD"N`C{\\'=R1*u!DIߵ$'+ʎL ңrq-֕wXk̏UrZ|mqa՛lPh,vPyu]9e vNC{ tR֍%SfL'p]I`= o#6oF.>L|D*8?km6싟b}y&Ct3̓yvK뺚rGv=%e%V^ߞt9cIQRYuW9_,uv]vۗ}43:3WpL_KJ+,OYtܳg5oٳ{Byv͜\i_U2KKjg5.7bXzf)ÓiO?S}DVz=i=Qc,-|QsLnw OW֥YU|]rC\=iP"#Uʨ0k]<6 5(kI[|KjYltf;LAI3dllC)d:eƮ Րd83iFӖc WͨrdY(֗T4 dy3 l33)20WFE]PnhѨ0nY&2מ$jX0cEy 3#Lz|E4( srkxn1Nef/]Րti%;ؤeU,.%)x#"ͨQ!aPr]!Nvu28Нd @Րm瓳iQvN0v{ɵ4EZ?ҽ]4{]w+JW>~p Y%[nƠm4l=MZmf6L`?'z+WaSFVJ༼4MZa549cԉLjuȦ*v0&#xދOc9W4׵7 X>:ŏF0lDU\2^PL#Z)WXRb=Ѡ^} <9}f ^ýJ<.אM #0iF3^q}ٝE=KN>`y_<^IsZ, *d%|!}i cҰ&ɕQ?섯 F Rgy^?\uEUv`\E+| Xnj}>WhqmG]|Ov۞z }o|x“x,̓~EgU s(bqn[!.N׸=Bۑө'a7r%^<a_b4uST+@c$HdE`a"j ҉ֹq*/--yތ|y3<.$≩Y/ٜ2qE(m"/MKݡ&#{le4*;Ӳ -wg~7%\hp}1jF?a;.W[־c'ˀ^sz6A4o?,W@S9*kz8{m#*\ҴitFg 2>azU qRlb)_tUGE`bpUL:yʏC Xsa lXֆ(Osm8y,,^QѡU2d?C7;ztx^`ɴ׫*+NWaeLyy)C@nśAlOMV{z K6%! J/q;=~w -.C_JJӢ}%:x.Y^rI"xUcuH~J˅EMfrVA:*uK!NN#޶7w>w[z}4áz{gna0Nnm݋'o{y{ȽK}ܣ/ ijɤ]جThƔ<Q uY8O?rwg͸h=h{CvT~L!{IL_1˞R2JҼ%1 dMpSily]V+*Q6*7M2ՁuNw*rԢy keŻB^Od؎ &ݠWzgV9w!ͬJ L.',2: >Y2 ]fn$17xSi4mLs{GynA &#,C=O;?ڲiO<ڒ^mҩj2dhF+:l߃& "S.mIc,],}u0YIrFk2膪BYytGڐt<U ƏæM5[v%W2afj1wkMcԏ8xZ>F.q=' aʍ@sfc]Oo}f˶d6Ǹ_+jCr7r辯< e@2T y\rӠ|J Xi,ޔ7HA$t`2Sǣ;N˭{VeE_Jn{;$4o3R䆮)aƮɾmlqk=30}VaؾxrrNrY^^Xf3R:jӱ(Je-n$\pcލ/vCgrO гHujurGx2s f+;͹3kiM[.g?<XR]zȱ8#,[gż0-''c4JW%K?y}ga+n&Kb{n4+,iN==@x]Y<)E5T00; e f`Ղթ*UH)(w*()e'(/)Yy昒#3ϒ>4@c ZqK.,ͮڴ%XkKRr-W!庤U1%'n<{P}!vo>,X>C?  poտgFށ&[[CSTPSnF8k TT01QfW_)fv`iMMaaKV̽ aN iS%h]1}-hu<YV4/tCv\:;;ꌩ Tƅ@EB%TI_Y\@GkR#[)NgՂQO9ԧ="aOQXiw Ko킶ghHKD @9'٭=~Rq(Sh,YZ,nFa49%N.+f,yZZĸnkF"QBԝ)tHm8r^GBnʳE>ئ8բ:\kzq/C CmB/ZΔ+ZibrJgr=NVzʮT)+F;z! ș.'YQ\y־lGRSP0e V5pQA.߱Ύl92z 9I}ht9ߋx%[ ?@'I?"~ #<œۄ\dߪ,MTK}z\Yίéy|MkKmb8;{ϲu8TVʘIoMo(nK$r{דM&0 !f*=z%x˭ ⴧrt"r\4X*-\ոrZyF^":j;JGyRy~5:bCTKq'DҀ%|Mfnx|% +e˞˾:D'Pt=mAS,d3˒-0\)gUD!,m@mey^0ψ#7 Ad1`  2f wzEnqdt"Q0#319#^A7Cȅsӕ:[nrfxf<$\jw(yl_?c{[Gc7ǹnZ: ʒ3>/1<OWN9,n yމ`.FBSʡDDGCTFB{gDv=q -D߃?=G0@2 ޘ,"L;{S]'lGirelPc[_^Yl23ۘkͬll,7//m^m_ci$Ʃ_[v;m||K}ZJږj- 򲳌SC9skk;=ܾ]㺷MaW]WǷNn] xE<.\=Ҩ%Y]Y/xJj H=S VTpHW<*Onjg-sM .Ý­SeKS^1%-#7TXh]l?ǵrln@N/7KNOMvٮ77٦@螲҂1Vk3uVfrtүd^-3*7^~MQb \)nǺ0qb}zP(+6)zѥKju BVsM]\r(e"yoYFJU8b{+Uݬj!hל2Dt|2mdE̷^s9[l9|a%_r8w29M=֘uu靠W߷֕9h 2V D(JbJJ@˧x UW/clodoQone$xTX8#? %F̙:gƺ₩7y~{˾z>۶~hn}39ݰ;w.yɺIvģKupgkon斩?>|?0tޞ{GyvfW0US2u[GnzJcu~Ƅl5+3X-0԰冭*3qX .8]QXEd=NNwͤ6CVl>k%pA 0C@A `ӴOIZ2s%E~h}~yof qgs vnF٩y貼~r9|> r!XTw (ɕAz9]\Gʹ˻ȩKg񷨔 g^"+HT {f+~ EᯠHe[^)X2Ej(j+e"* o&tu{yv\H./2^ scҭ<`qOD.V6Jq1(QV׫5).,*½S3Ῠ(U;ܷ^;z;wx~}<ekE#C84dž_eeF36=f `8{71 0D*ׂ]Tu-;29 ɷUv)([jm*j!O0^2Nd0ֲyΑ8Ί$55W89\2>?_ 9\>V>eov-@KRq$ʘ&^Fp-ܳZtLʖ1:lϭkx/%߻?n >9}W{V0Gol3%GobNyf*[I!~OY Y'Xؤ*sZqZ'tD?]T(JSȵJaq4{4xaJ)+eV-kxPШTa{0/Qf/nጁ5VXR ծ"jiuAxmt`0 &w;UacG]|ۗL>|?=#_ zj. w_U) !!Up0Tjڧg{ήWjuzhfe.' 5hQ.6xwUr+nP-+ 8|foCsxk_*f3:D!\y*lwt8ٲ%/~XKvN[,or(vƢF*"kXk^#+3aôǷ %j[7Pp57I}oZcgԑWҹrWo^S˓{>HoQ8LAJ~_g;)@@O?•lFmj%62<-x0`jmccsע032(SK] n"3f[n.Aσz0`VBޅ$m0vRpAz8tL~k yIiyH yt e)Mר{A}[. qއ :\_9{_vZޣ7RwU?٨-~] p8̭Qs01ʖaǟGr6.&wm^IEw\Ut^\x7{q@g0|.x6tGIZ#eaUoT4UVVX꼚tImC1~6Ⱦoga7 2/%IjD`CYXI0ro Y,GG@?$XI | jZf ֠E*AuWT%X7no;G%#CZ3H$,Nk`)2M{X(-m+hڌ+QFCU1=(j@z\5ڔ-ZTfZ+:v^ ֣PkiX),~ +5n-@#: &%hdCF?K0Ȟ!@#OFU 4rx$hh` 4-`Q 4ʽ$@#Vz(!u)SXK2)\Ia#KQ#3N/™4N?M4/RNe˦q^¯R8:(|~ +bߣ_>´.>ZGi?gG]h (D.^Ӆ)  ))0#?Bc3 j˔%Q'8 kW̯U/TJ}Qp;CP H/&=yԏGF/C(ki èFG09FDh0}KK GSK/I9{< \TS\c-D1iM:le;A}"4&acBo8R>J-x냧~\c;EleIZiRIo2~M)f"xXFD QA[O3@I(˧ C#4E=v"Oo1EI%#\dr=^DQt3ucZ[i#R?q$wSX[V} 블w|B7ͷ+k-GlױRØ/Ǹ(=I1,4I.A")Nd_zD#fGNђ7RtH%~GjҒ*#i `507oB:^4|rI/97.jDضRoT[ sTyyAlYcRZ(SFy[%G4r-̤dۤE2Ϋs1%%lyD<`.B '/]=o1RS>A N EN%Cs^j)>>(_;(X ¼15J<}!xoaVy 1cWAOR#kq,qIb7 }ZG ') ř]bQmđRu įBʤ~1:2W()>P?'xzJt%`B˯֏S\Vi[DQi$'Y?#q`U:J#"KvMCR@HX+a QIߪ@尢 GTX ͏]SHbc cX<21G|Sd"_D $I-c^IuuVi׌ O$5D45:59WGkb#ckCx*+y)fm4 Jy晴x,("h4Bh@G窮+w#͑M|lSǣC#h<:N#2]ࣣaO 0GƇ{Exdyw;'"c)(C|$+׎O|[$>v $,ȑ(?H<1Gǣ$:qIĊCbcPxd</!m#-@[&aIL%[& S|_?9Ƣ$=m@$&(-R& 5RXdk@~rl  PxoJ'J4(ћ'cQdPxP56Pbp2oIn"K pAv :F\BƠK 4 ovDщm+fhS|ltOLLi# M'I>8Iq"zDo B'G!Ҷa~( emR!'b;nJm En&VBBbbIh"F $G#Sh|b50<11^ n۶-YBdNpxbhpXds493AH1Nzd/nH_Yղ}5߾okil^_yU.Z}gx ` U,TETlJYdI:@ʹEQ@D ţQ GX`wYa'(6y e\PTl&#D i(;5`PKQ12~kdtH"Xvz$T-N'Fh"9X$m|! ;NqKy<"tĄȓIˣm'FG$HKDfhP~ /6S CgD2P9 %h6i1q4rb86 5: i>B?"7_G(d0|ƤbԃWOy~o}TBOdDoU,¡Ju]+xJJa+*ʊjoO)(CX,2, "q `q#LA~G'.߀q>fƞs}=g+|v>;X`峃V>;X`峃V>;X`峃V>0: i0gáN0pLL;aUv`b`vPDlF >L~}σkYL=S'%'  }TzN&$w/qs @!w4Yt]ͺܔFɲ 0w`6ATb?l8!vJM@~ " O<$NwKmB(ս썳^'4#BiqvP-G٥;TjKčFزEbTgѭ` v0&0?tήFH;w0;j'RԡD$Y?ΞZ\٫WMX򹥐JPud1ve'v32"mxlffFsRsZ#D[^|ZKW"`z5i kFthdN[GD6 8LPPqyуddxg_MB:B!wH$L<'Ӕz#/PqjK:j W\{ ?Bm׽Rk ,B:Dm9{^Mb!ӥK'.?t[\.ɤx7WR;_8ur9uN]?!w@jۉ?xd@)B/փπ󟳵;thu֛‘?Iq :ypݏjgko'gQ2--\-\D4fςóQpvzHo-r֧!ǐÐI9GF|yD2Íp H)nAsκi%&@nZh;PW :K]vHE/Iџa߀-?"?)7G!6#2X@ߙ`[<ފZf*}sKkf|3ʎc`7<0_èk=4Pu}&}8xvnn:s3vB=n,ȼR,zyU^^r-3[;ϼ=SJKݭ3tׯ?labMǘqt?oa4!h(h8$K\|FkѠ67#[H$h>oHCbZyA@snat g޾aF3pGfMHUIpt7w?/Df#Bi>Gcey;W㎫$$HzVJj%yӼZ4֎z=hzq|K\_ [_0Cz Y>e ;݀|<4H$&=1i~i]3˯ݰ~vyFm&DZ&VvgCnN?{*ɍݙ'P\P'\vZ&$O'&A 0bvI_\^ 3t?S } `Cw0!>7[FHTٴ-=*/72(Dy֗Z+S`NK0`dl)[J[mw%|ON+3{"  ,‰Io6I endstream endobj 563 0 obj 32419 endobj 564 0 obj << /Type /FontDescriptor /FontName /DAAAAA+TimesNewRomanPSMT /Flags 4 /FontBBox [ -568 -306 2027 1006 ] /ItalicAngle 0 /Ascent 891 /Descent -216 /CapHeight 1006 /StemV 80 /FontFile2 562 0 R >> endobj 565 0 obj << /Length 549 /Filter /FlateDecode >> stream x]ˎ@EHC/'tU3C"œvb@/{{FQ6nwNUS=tdc_dm׌ڛ]Y1M[O(䯇ܛ*I~i|uӟ~?<ytd8*Kk5|$p>4E;=gL7񷡪XuG4-j/w\irBa!" Bd"OQ@3+bMoP[f}v{A6n,yW{cɓ3yv <(jSx(ȣ @XdQ4ĒG_ ȣ#QDȣ&QD8y T )Zz &'7a> @Iɓ!yy#'G y JMAvyy0͑GԑGy.|M8΋ dYm? ?m endstream endobj 566 0 obj << /Type /Font /Subtype /TrueType /BaseFont /DAAAAA+TimesNewRomanPSMT /FirstChar 0 /LastChar 74 /Widths [ 777 556 722 722 556 610 722 333 443 777 443 250 250 666 500 277 722 277 500 277 500 443 889 500 389 443 500 666 556 500 500 500 500 500 500 610 500 500 722 500 722 333 500 500 277 277 277 250 500 500 333 563 500 563 666 722 333 333 722 389 722 500 722 610 333 563 563 500 777 541 500 333 500 500 443 ] /FontDescriptor 564 0 R /ToUnicode 565 0 R >> endobj 567 0 obj << /Length 568 0 R /Filter /FlateDecode /Length1 34500 >> stream xy|T8|ν3YIfL\ B[@ aHIHԂu%UEVE%$7Z>ik*tSdB]>9ďBF=yI%gQh.`bt PQ\3:F0_c1#JNHJe@v'14~>@&>X'_HJ% {o,RCS \`,.؍5x߀oŷ㏙W߱$XR"*= }CBܖ+ 3CI:axqxz =cb_/ŗ}"f+A6^+II~"y]Gz δe ƽ h3K7>[Gp#}5ٿf.^ԡws034ī`|> 0e a> 0U9-;PV ߙC5[؝g헂n73`gJĀP{pp_$hfT6TNlH& hƘ3ؙZfM>1aԾ\7_s\7;Htdnkfɷ ڀLhƑu LET:HR6nFyQr?r'o W#7jM?ZrXq'9),8b0 <ӋF;HQ'Ptb2`p(Ha"䓮D#P ~02t*o1TtRT2=8))1E2|Hc F _!au4^VXksAC@'T=0Mݷb&Qf#95c]MrMT=JQEx`37vUb?N ͭkp#E6:/&WШy͈fi.p$F3* ? X`na"ۦd U9Z;?^s^iFX$4Z;2:/oAnƑDvߦ gotq4E''G\Յ2Rx D&`6f$|"\ FNL No3|\;UamT-p>E~FtcOqSg iQ/:f uSTg~$tz$/j7(LEJHXPwO Ovx^|G4Յ;<*F~p˙3K h9hqa8(7U%j' 1edĆSB|>B0+rb--)(eep0ʬ](~!?2w7vQmwK]Q;UD# ?,Θj#sgl E1z)y.:Š;ÞfZ|;Y͘ʊj=n>U:fmBkl92h^sHe я>[jjkJU8RYUmKKp='^Zssk`Yb6:tjyNsך Fvaywf~~w8fZ3/3o0h>h'$) 8[Mnű2CqZBX! FEn}u;(v:U~eJv`cn>h 4ٵʵ޵-Vn+e( +efx1fc1d7 ,`%$k4"ϡ* -T8`1Oyܸ1Mrz&ֱ (HWǑ`2| EX5zh%e Z^2ZW~` ^LA''&ʜy Ԑ!T?ONRU`xR+5\q ȗ}yTVbL )Wcʒ*uw| a=<_>2{6jX9rE_k^3WhQ[uwݵywKhpafrŲH C_UJg>ձ#cz:<{cH\<9^7&S aH[} >b9mf`e,f{8tXѝAkL6*yM^S6jQ| m|RosꩪxpP@4ֳtr}pu:ة!:ZZ[r&vej/`E9h^{Tg5xQ?OKtSuM+*JPV^ 1ٖ,e|ݛ-s \%ZlZSCF| &z h]081v^cׂ7W<'>akj+^zkUua}C]^u5Jmy55yՙ u޵8ͱ#FD'N"'z`L>h~q{4f{![hs^eq^C&yڹPqiYhj9+s%j &֤|ut$9BU!xed>p_p^ zcD ؙ~uoa$Ԇ33gģ}啇^薿mlo2?~-8 ;2^۰?@PX.`!yS[[?^z<."d|`1Sc4`5@4#yUۗ79EXCT;N~~'bfVIC6I`oL$7@(H|ְj '@['&8u jky4l5hG4H g ?a%*XPY "+{CҾ2̭`ApjM'0@ /`_<ʲ?GIx`g"K#%1%iebZLԥW;`DqcU)4ZkdnXfwْ2y kE6lwhj:ҠQ<]cy˛5o=S[WrjWgƮiXvz@K7 +6!UhUKTHͫ%jOum4Bw=dLVZMs{T'd.aC&d§L2^nge hjjl"VC6!BR(x[ tvH 9Lm<{U` 6դ`#*q@9iȤ29:PU k¥Q{Bzçk,z1ed }lCɾr2 ZwmCˏU2u ‘/^$s\{\Hm U<Ѩd3{LȞAFc^\JHQc2*T-/j'ٽHџɺΘٰ󈟐G)mrF}=}I1Smzn@ n5TuxrЎv rdf_".#fÉ$Z(bk5\/F6]|g% =P%PUdabu*?Кi9ʢ㦹ZU5Fbqn\"[N_^%/HU]ԡEuV7-ZTSS[&C`OHP1P+ۘ<&oIƇq5ٶޝ5UX{$>1'V4A7Rh,PFB4Fy{"kzirʳ؛ymrdxy}Y<";(h9En"8#bjwr2X=S[N;,xf{X+,in޴c=ڋH̞ؠBF3_pΆe% yŲx7W)SU%~޵`"ohmFxYrl٤opȣ>mݟsp_R,/iW=7s^N%7,F+) }ӘMN.c7.G$vVdvYi jBgf/7GNz:Sc2>> IL|4/$.gHiR#oΐl$م2 y` ybE,nu:' '6ޜd\ UELf^%l(2fDkPF`7൩ɩ}i*V[?up܎09}Z f8-:3 Hq0dy@3|>(\['F~;q<2rEDH4ABʅLqymm-\!UѲ5$.6TWW]UpyH{"VmOgLWWa_={u QM*,Tqn _quՅwke; aaㆇ&N47Ǐ'>{mVU b,,-6\ q<`*i [YiC$$Rb&\QQSE p&c>~O\Eq;IB$z>?w͉=ne1k1x+j(%:Q-.?r2_ x&Ņo$J,3nہwͥf !5y({Jyc按ZR4mp)W_q/񣎜,񭬖錞pW@r]_oű54\5q}oME'+nZ38SWk{3o޿nwb0k> P/! AZ+LTTxɛMEu CH-y<&92D˔c"`R+ ԍJ+FܼBUu{ 7v&4VszX]Đ}:uPuΰBHǿez; ۶[AۑPP1b('RSGcΨvs7w2rx#RC. /oݲu ?K.)+.]ViV\5K:乌yw6' 2E)>c{mW%zڪHNMz o`R ̀c\k'::\X\k\M[l2ɹwoɹsY[Sc)b] }5Jï/ ;t# [/A/< ,L`\^16H.Uc~;.!bD)ϵd玑MdW/׼k*?K?ܾi^o훥vug=jotonߏ'w6_w5Jl]eJ˙|9ʜtNȾ(.mf%E]F _KP%e#/Z# ӟM睮Qq0@F"{C.C( ,ZΟG$rWZ EuZz9Fr'MB;;EZSZEh鞄?}MNc!]RM0#/LL֙)Mm:cnjz3P+RzF¸%$ޡb}K{eZcyK<{`]]XXzTK/?ݱե5r\r[ftFF;vYyLEGO0(p tbQė3afcv DXc$KDt-AO ̛[{2 ^Q nW5j]]H(,dw n8b)PԐ V/c'񼿬yʼ¾5lvf^bܫ}*3{EYuEIC`$&֧ظJu 7,[Ѩy7Wc- l9r LT{v2KZS%KD7-!̀΍ZYym xܗPAG:ՑK:zs4>^(X^_` [XN1O6KY0L-ʄ'tNhu O*2$2xפB3 $]`]]G]DqG.z)ɓqo5YʨTIεuu=@0Ty7>^M|b$Вk%.oaǔ>wGU'pk$(Ĕ/}zq} K;J6fj @Q ;sCLfcWpU%Q_qgߍKvwpA׮PI|!$k}9UdM,;{b[(B%'7*=B}} (o(xuem~I^NMNVBN1;^bSL S5MO#'B6eެ;\#`8CpE}#jk>,!|X~ K#HOrB;r3H˹}M}8c9a0 &ec:N?tyN`zAQ!zna&uEO:`6*t9`>op-C%jgm[ܲgG㾲jJKKK~3a 3|o~#Bt?A1C1-rjRJkZ?c2fHDzU~*BdUAVQ|oAY٤pn&*IA4cq! K p%lN0ާJk-'hMhQs\,=7~ds%f1q=[k_vz"A;v$bzi ੪mcİ{I@p W /l. \-a)"S{عbkrB%;5rή BNcM @P˶TԻWn3? qT}1^ȽYQXc~P"rٓ1n,r-9;jBȦ)_؜{s0礣˦ςZޝ"N|p 7&8+x{i)ޕ+nӹiWJ-{~83>K|LSoEMyӥ~o?AbIߩd~^_) &}rC]>Ar]8$?ϞdU8G T oU2UhkĴ"1PʽzPe_LUnAd'%hg3('K rRy ֹ(xd0y > PFhJMI_KEXQz^^RR?i0.2EM?FqۮU`e$#AhN aKN!REXoEX~hDXVY7 (a LDXfo"" ׋0*DXlƻDX4Q!EX&^hUU!m"FUֹ3QԺGZ"CqF%:gK }>4};a4-&<" < + }]Ena(!@_e" uݓ" q07X9)zD @_[" ֈ07}s" *XP'1_5[bDXA ka *=Ea+ba ާ_`ah Da3Moa.BpUp~ II_PF YB#zv )w0)=SG$$o%ă"  "LҷSh",30)(aN髡f”.e" tIl4 ~CmF)!+mR(܂P/Cb)͇䛂nZ-%fFơVA;g BZBŨ "T(B%4u.p%cVB{]>vơe -7y@ύΫ].̒Bۤ »KwmkCh\o?IJMBN#ihAj( yp'eVWx95efJo2BR/ ұwſ`LoAdLPv-֧ԚMqKx;ERLB)fqX;K))V'mH^/G&ZK,3j@z(6A]W 7t =6ik;!Ax6Cg8*gY|8(m#նP$aGH{g҈I!'j4J]/.f(~ZwZy׌L\}Ph }V<|9f7r}3RCǸswZI.EZ,暢w}7 :r31%; ;2AJ-1n(W g=oݰ8T -9]>x!f;p}!= 8O6Ѻı "Zpl]Ax]CbNy:8rYuRS Wbhvqj|5 yTkȸuvh=! ȸHlmm R'ǁn)%u^_|y R,ڃ7BJ+|W,z#<-4u"}ٝ[Y_frVE* 5)NIfkW0[NGlXJYb):4>o{#ҹK-imhq,uҁ IEn"|"KIeudJIl|L \Es)꟟RRN^ W6R)ß@}BA)fE-ehΉ8ǷNi ``,=cLP~i{9HW0Ε샲b53a\{% R/9mz>&:Sn R34 ϵLG}NіCXL/CL|8(`Kh˿H) 7K=!oEK8g~JֆID3b9I 01ZŒE[ 9I5DU`EA^fq:/Uͩ4(+͵ A7oo 5tĹPJƸ־$ekzUUE)ss{z[tAniz7o{i(1~gr9! $^YE[;6}q٥i (@LpRm\8gn {p(={!([ܪnq.ɥ{ӻX|%VߖT40ݻrCޞ0a{co[LKKVuuXȐSz4]7w qtJ#)NB2-a0%}0Tz =⺇ݩA3=ؽ7\ 4ޱ3mJwmOs}iAAn{ `pgGGzpp:4c Mq8ԶtzNan@L| P@bgq0`Q/4K[.\t`4L2M P@*hW_.B;6izbݼ ຏ1ϋurCPh <=Пڙ'; t 9trC@ڎ@ BkCܦ}R~P#}qGLxtSwO0t gXè/L!w |o ԖԞi! ױS"):{RBbP7kkh:ؽ{w|8Nkh{Ob_7 ?/Yqwp"t٪MjZ[[4qik#7wƖƥ*Όr0"Kg SlIjv@`Yi;-ͥ aq uX}Ray!zm7.(<i3ܸC}[" t@0LQ:g18(TT8J*%58];έIIԄ)n? ,sE[hTgg7cj H-%TOni9"CN&Gv޹{m , Rs:#&G #=+`@7-<շu  OJANEY$fÂ@јL,%z7KOܴؼy"P^)%b'2{t<5|0W } axY揳Us82cw9 3~f {=Ỡ;- k|{%{^f/lxE8{ ǜKȯ]a IxISR~8 -4 GcAg->?:xuxN3Ƀ蘏/%efl}'x(^JS Bɯ ү%J $oź (!q–?n- r^^Xb _C :c&RbNihp*~[CsJu%P8Y" jl j%w HC[RYΫf!;4x4 Ia/' )o}d}WT ˸N{y Y}ax+OH/PV)+A e7VZd{|ɲpA\U^*եO̍/(0Q]b"-Ki.h$ 4:oRj6ֳ T?nAxϐJ>; <2BÐKz4ggr|`vc&Z]a3#%f &f.aBi_7JjoLjLjڶvUR(-HjI\S G˸w9.N}~sڭ6i7pN;Wp%8fs跈~=䋧[H<RZ 2@1}7ȐW!W !x%b"cTL>9M'is~yq!6*bxXCJ|7 NRɮp{Ɗ|sxIP.-,BzZp-3؏ a^:cʝ` O`ywCW?~`qk~@i'ôǽU||mBW2faJ;g|LgpwT{`4 `Y)M\& } WW㾪3 +09I^/R|ȷ"xc|\WC-,oJyPIaPJP@ D )dH Ν0 ZFl3:o"1i2`8ш -;Dβ?休[FniC.k.Ghxl s7d=q&XSy.fF&Rp#DsOI O>J(M߮cN,!CKV |b'0AB!(U(p5[7~yK.&R\AL1 wkF qlB$VaRw0H } K60j RW}4^ endstream endobj 568 0 obj 19079 endobj 569 0 obj << /Type /FontDescriptor /FontName /EAAAAA+TimesNewRomanPS-ItalicMT /Flags 68 /FontBBox [ -497 -306 1119 1023 ] /ItalicAngle -30 /Ascent 891 /Descent -216 /CapHeight 1023 /StemV 80 /FontFile2 567 0 R >> endobj 570 0 obj << /Length 386 /Filter /FlateDecode >> stream x]n@$,hbH,j? \,IȈ ߾p7s27wmzKVNŕrli_y*: igV-T1{wUU oأ|{/]#' }/T%8^]5T4u:4)v 4m%(( L-Vog1u]Za%ƀ " ,$YR0'hV1!hX'lk:dIo>O>ocT'O }APM 'O2'h+}b1`j'FChƗJm:ci(, endstream endobj 571 0 obj << /Type /Font /Subtype /TrueType /BaseFont /EAAAAA+TimesNewRomanPS-ItalicMT /FirstChar 0 /LastChar 35 /Widths [ 777 610 500 500 443 277 277 500 500 277 250 610 389 500 722 277 500 443 389 556 722 443 250 722 500 500 443 500 500 556 389 500 833 443 556 666 ] /FontDescriptor 569 0 R /ToUnicode 570 0 R >> endobj 572 0 obj << /Length 573 0 R /Filter /FlateDecode /Length1 1297 /Length2 94348 /Length3 0 >> stream x|cx%]-pŶm;Jb;ضmXtl;9[gU75*JRe5FQS;c3#+ @ dcjgdǫ4:Yb\ gkw9l%@;+v|3G;k ;5h tsq4:Z ng2phj3`^@@k; zM$ :me3#IS?ch,͌ufr2c:3ZT4NP(r˃C@ŞY&,l,nbOlM}fFN@ pvtx_!LA&c9ῲ5mhr0XIZ{ ^bbvS2 3'ÿFRښXYmDLfW_h7-۩3/Ap#7kk `djo4Z@ {{;'? ?|\*Ϳ K-/?Ժad?Cl@[p;&fgm?s_5vh r67I;ak t@XX_Pdbe tr€fI[;S9@Mlw 6t 8 aޚX}xUnfEM@{gHM?H5/DcwTrU^V9u3@lñJQ}6'dGhTƲ}9٤:4U֚McH _c5φ[@b˵'{mi|&cwIۉnPeց(\£-Ÿվ!pT|HzYm#$`iM0$d 3;4Rb!yYs>Waɘ/y5F /y7lnD!Ct]ltpc=ưta ,4LIqc G}kd]^Mx<:馕krf4pvU=IW.JSǔ>BB)xv1rBvo҃< Cw8 6T? 4i$hj#7ЙMlSNoRN65c`TT7|ՈP2υu6-A5BSD?)ӰMN!%GMfV^؂Jf#7͌clw*%qS겡\(]3Уp4 93U;_謕}m[8R>]iy p9,Ib&27|iH%2FVNJdHsGЀ/IeKnp>n^{MK{ %'F[ދZ 9aČԧdX߫g]bSFӪ2$DqI]@ک'ۇ;)XJ} %cw˥Q%\(ѳۆ?Sp6WIjS{ ֭yàȽӪE $Bs:'0fr }Pd"\AU}"k P^V&lJnF"b+ƂOFYI)x(Dq :z d ʰƖ)2m%:Gb#݄5 rR HXBZ߸%bI%rt ɹIT|<a?=EmHmvO066nPBϒC3xCVvΜ7po4:V؆\$ª~5S{fNhI)c-)׮mcЦ3mc \ߜ7I2sO>8h5hrQ_F7ʙAHbgWj/KKw_]Co0n -yik⺩L_Kx\vR^S3zݸd>.PxQqQ^Aߤ xK)6p)XJR_ 7q{WͲ&-XW9Tntյ6=PmfI(/QHPMwT}ÅlQZzޚߌϲ  Pܾ~U͇(zL{GEqjzKɊM+mMx'ȷm ~B4m~;|㱇6?`Vpڝph!ZJkk{蝸%V{襁N[`4pj?7W^N}AnDF|xe+D'w ,/nx$>!yA[5u]>+ %/idtj.Z,-Bj%C~Wvi0%'knq5Ò7SwӢ)=.ⲃusXF_lyz &{%T2CC "ODa8ML!qEMlCc ǵwu,80KW 5r(H;/lu$%T0jPdg ietV&/|PqFp@(zQa<@nb3`!A: ʰcdTٖpr׋vTKPʅulT%/f Ȟxof LjP`b= !m %ILYiȍ eTuEY1YYMw BKfvr13] _1`_N!.,6vՀXaNkZ}¯ ρf$0vcsffW.ւyms֟JBbjK5J}#UC-tru1~[eO&{]Ttt~^9OJgV%>x)Vhmg.6AOU%EԇpNH`2t ::x!L3"iSD +ߧ[$- U:Z.9Z1FspD@8b=;K U8?똟.kj(!!:nUwsr<d2sק#LM|M9Q/R1bɿb7b>t{͙Ujo77?tuOFT-a[ sj;61e&T1lb-ɠwwdBv+v:]:|>#ٸߓUvm[|QL5i)6pFZpw%ZY 8H6׽ D aRr`N x__[ge t,p|qLϫRs:MǫȄ ӒH86_>洒twy~UMg ?ӹn +ЧC#<xp[WǼĊh۬M{CH87]Hyn~U,̯[yL@qRxR`kmZd8B}˪LD_Ș:Ś"Z1힯ݸƺwOv^G({A+?AN!rǥƗsmf =p5pI8d_GN6lӼ2 .!/(6O%^? m`IJ5ZAu2``lHf'^#ڛ!Ը~}X[i{yW(=4M0q'֙"aE cr^;CjGO. v?wo3f Ƌ/aRKϼo%W{I!bg?^HCNX}3u;)n D3JcmfD"[b4dGH4 rDͪ5NL6˙W#kxmX\ͫ?hny|ڸ.vyrG356c>dW8]V-r@J:'-P]kJ5R= .'1+DV%k͉©N)X@H~+ S59ra쑭2ﴒDp|cәRKw6(0tDuҪAZn╊V[ec%9F-h|x?/h6wGyZ BPȳ?7^T{]w#-1l]+Ů:66-s$ӡ%(3>Է'+\mf#4&&eqYfso*ynwlQHR  dAxd5{)m?+I\M6993XvK=04q F$ha"(\B5cz{"-?a⸃~zfLNf^*%`Ld]SeC Op^n6<˷Y~d~S!Iv:ޥ#cڝЏDWǶ/s -#fџnD7.}] ݖ 8۾`<'Ჹ&6̦'З׍!td~xo=S"}v12&$f7vSP?AvM.|{@`xsRQ {"_yzNxlbtcaXihVr%u<5"fBk*ǎ@$V@*R!@nA)MnyeF pv[T|E4}Tuo";nJ۷ʘ*H 8; gW67 "/V}śD܌qf{^\װ%Lg<CϠ~%4_ j?iJg5~ X7vw:|)_G'H\bnY sȑ46\=0Y3tB! "Ҙ@;"Ҿ>E!UidիXfήG\tNjSzX16iڶX+} - z# kۘch(;1~BaϘ,kxmj\*#7Krչ=|QΗv"]vZ0e./S]Zlw Xd2~ŦC3WWTN^F>]TO -i#}у|Cv7TeG3(ҹᛚ Ʃ! _ELM * -Bj,}`L0ƏƷh_Qqdz=W%g<O#8]Tmĕ[qpCɯj=!sʋyA4+{R:DR3ctε_3 ҆" 9ɡgF?l[|!'j IDwҴ+ˢX) +/Sg<ω]^+z3ךJ@8oVy?%j=+J#H-E$Dz!OvFw'-XGBama6J,.}8X :hOu[SVp_\WV΋^`v7;Q桉"M8.0E\<:$rϯ`VRHUІb|f،y ߄06PJ{Mi 0)nTgKh<AK3fd;V__q*Gy}߾mGe=ۉ"xN8װpIQbq>OpoN܃~l%tժA|;N2[#ba75ݒy$ &̮Y!G<3a8;Ԕ|#U3y̷IW`]Y㨊ȑ[%I9\)}76 PC]T9r:KSsL3_M߰@ROWYbC("@]ԒJVHɈ kN'yE `@ϪZmIt8F'.޻~HfM,k4?:VOKGzGalj%Y?(T3&75Oo ⸴ڄ&L\^60 EM6 59u;q*=B3hq1 ^ ][OT26b{v :͍kU~`+QܡhO7k1i{ t(J[D]rZ{2 RqLK(Vw^PH2vp;`yWfVGЈqk9!:(:I, )rw(a )}B} n!V*Gu nNVk\Y;BѩI#e5T={Z7qCͻ4Jo<9\?^UWrWD?`ٙ=2VF]&~C8@ՏN67`zcdDvß/j5ly2^׍ԡ 5i+/dJ!=fæ9 bPOVD#wFjOa3(b~д2\3!ȲtճuaxߓisϸLK~m[}#") xK=,9fxR,on*^>ߜ6yNsD8y>{{CV5$2nYA'AD| lH:CgªkoYLAE)07iR S1.vaP?4K|ǷlpC@a\lntA߅@=yUa3[ oZD_lDG{ZYiEYPizWfJUx|K5m#o{$]1|W);\V²@Nm !L2F=q~RdN}0?Hڔs$ivP޵B(/`o.iYW^Z]z"Ŭ f%]'(U )ycD%Q Xcm"^}%qGʢx7C.#Zп.hϞ¸ȈTd{G63\/a;ÛK6Bt_WiпLiR={xu %qT*2Gx}}U9Z N ]uTQ^ 8ST OWb_,aN4 u_d WE7X dbP>gXTyV:N9AT l2U^F*?"('Q)u_\ MXsǙr:WF'=\W j4lm*"eސƟU b{A|a& XWGIʒ8'ץ 8GU1Z 1QF!PCm%m ] Q <}x jjr=)L}7=fNk2UJQʩJԤ)ɚgǰ>ٺtۑ_h!>$5O6RUV^7SUlt)4=NRn:&렗 !҆pSf5! ȕCʏ&RPGRaGщ{?ZN}ӝz &͎SdzV %Țb7p;)@-D|$T“ǔh|#htPpE< DhPg]cCWu`w&E1m->cC%di3dJ"꾩G2^5jImb+0>znu2,}2#d/&'R.id9&[F_hcm5f] ?5<,3B,~LɃA d1]"r^$Nww V>:T Ob,IZaG)l/{o@)nOh(#0/f}#Zy΋HVaF7:Id.P{3ix%; EÇF@8/=Z1%6$yh zx9|CSWKpC_&O710|d>IT4wNDl''x/  K2MgGΑySd ;gܗd\P_(p㗻{҃o[ϥy:#+h%DS4ݪ4\mw'p'z"Can˖i>5'3)ceXn h̓t>k>W<3W * ;κTd_) BV$\'V@wWQ8L &_hੴeV#pدE߯}bxb*Sк4ׂ)vJ6}cD ]?~RŽ10"rGU`K9W Sda&l/`t}6'R2sw)$뵦 gv؇r!3d۴ckH#{^TY8?ʹD+-?7~NHQ|pvEcvT>sgriiZeL=9nAoD=) .@sJxXQewf|u}M6?Mûl 3O$T'iB%N q 3(; H򔬟V!Xf>=  n,)2S"E ey( i7O5 Ri̼#E, /'*b!ٔHl;~u8\(mؽYr9^yݦGS ^*ٳ]滟~<)bD=h0N "]SN^3k9^LD ]`F<WwI_Ǎc%`m.43@ƃU q$% D/"{os˿<{Ċ{eb6tb]6L HwsBPJ ;/N<:ϳ=TE>h!\ѧ 0K5w$A8:2 1Ł:X,_8m1n0t{$QX#dM=Vf͇Wsױؐ:+jImhNrߪl~X^~|䒭 }>eX|wZTt~:{v\fl@6E;FSڲp%YMJFc]rQ(U&UwSAEU ޣ3R~3ܶ5etI4c?92n1!/6)f6Pedb*7="H5(n9$+yk).3E"F&Wnjl-̟sx'm6%=ᔖp 7΂I[e-/ADzpB;ɧ~2tÔ[$2d!}rmly/μ)Prn֝}3Њ1*ԉUWpL4|,5BJtsN',X@|A+8TQ`G4EAtD/'k}Q1ϕy sDjU# 1|,Pw'+`r9.3EqMhUUC`ކ eL(Q|7'Z&-.sc4UԶ}wת63*Xy$\hCllܭ9Usjhszi,4:lv&XI3/~I>f0.I G9W%p[rr jbۏ8DwMV%5/>/L_O{:tq|k2j:F8D ^>B!*wө2r%`xP%cz0G^Y7QVZμ+~s7 $B;qgX\%)*O5V{ ~RUozΑ<6ךHb&;zX~P4&k|2VklT\6%v!>) ҭszֲ~W -TSCS^ʦY} q,K/ 5W[*霰Pz> &SLg/צ۟e,s'`~Cc#regÈNȚ4"(60jH \%BJC[ +nB5vC[_c(>"$O-I^IbGi0<!u ]NơlG'w1r~F62~tEn!%1v ba_ w(AN񩮓 F:Lnjn4ބrW12EM5>';HXg [FjŢz,,)&[^Ū5vJ~w5`0 .{:5:sm " _Ы`قas㳈)xs;%akp*E:!2] ʢ@/03;@= r$׈ \PϝL -ZT5뵱yzL.!& -GYH)܊6.̏ddXܾWK<C`+4T[pfZ>[RsVsÙVid1_T}DDGA k=5%") ċ_3ǏMQﳿ4rq3(/TlqTA n2Zi#?`Oz@cLV-MO(Rm zp"C Cl0D\vW汔іo(]_-m䎱1t\3S*a"!!'Ow(EUv2&SKJ󵈐V[jij 9i4إ7+ĥ+@ ߼`/_Y}x?J9K*"~xEpaMf]ɺ#9c Pփ_> Get8,>|V%A ݆eCE3 ;vhh ~ UGWP~pZb\\ǯyZ;%# y}85{2!y)amIUBI{(?**^SMp <֨ coCDYaEcu({̩ s_~IE]Xwְ#AJb".v/$ZkI}e[dܞԯ?\[yUf_94tH nP,@wMrfVj>9!j7o>IM4n)G` sL-OuAmVn5Rr^0#Ҵ+v<߶"zvkS;`_w𴟗C1z;~DIki2>lՋ߉䪬X5k-CoX gQ?!*2s󴼈/(-,VsBXxc{gwwf?B׳sk'n%¢_CDg:XUBZv+Y;bZX9 mϟIGԙ235e.㹣`.M[5UP])k]')I Lvh6{E tT. hv"bD2=ܞv-r7ɠDyٷK{>8]4PŚ1?,% &!.B{[P*NIt=C,:Ӆ(.L֣siFRv[]8+'|۹Gr[ NmҘo8ԆoG~ԔhG̥*sdqyX(QaL@N+\ %7o74:K&3݁]0> I->V r&2oyvD"_,uKT:W -z"6z&sG{0eg0:c`Wl d_}W 6Ѿ:Q8cV`pIe_q>uۙꇨi3Q4_( Nt)4IνPXaQ#Ӫ}jE Dy+8w H7]CUe7[yW}ADV{}g]mWMb9CRU'C{f)2=}!ĊУ(^bU]*)J]S0T ?)Zb0kͷ't^$¼5X`n˳Cc?; .|ق/(OEa*&ۧ,8r^Z<Ҷϓ]u63MSghPKg*~|7Nafkk?V&V8# LR,V-@?[JN׃OKEZ" 3)$q7e ŀOxŠ^zO.N>b @[=Whkv ͳ\+%bc8YSkF\ujvcmN{SyFE#cl *.z@ľ &$LyPsqd$8CDHg5wA&+UY9~d:.!QW|HsQ/%?ɚDkq &@c1 (1" P{mXT"dvo h5N#)Կ*{6 g>0UAM%vzm,'뗍X vyf ܌%9L#bHtJ85dDɪ|D' js.>5YofsênHDS:4cÝ()Ui,qd^-[?%+od*DeTn!`O-Phal5&w!h,0O g GOCjo+3)ȏ6uuA fkvK|U{m U)~$G%;4'o{"9 2%ڸ Ȟ\sa?{W{=tYvWz'O>&=_m’` g(.@L#T)Qٵ;i=zw#5&],M5|^d6M`f CI4hl{)S| `G-֋{,)HZ \{," O&2I?A{/L浝1KgW}-J,~v¿͵;RҦM]vvUSxW=b y^>hZjh1Ax++FT!e8*^F#|_ߔY͡+ j=<$Tq/Bq)OmR7?n4/ =19|w fd]Է.4)OCq8[F5f \F .(km{fHя ԬQ %Z|Ur|H" ơ O gϡ; nEZNV4'Pr :F2V;je c98Sel;I rU> AYqb0ɛj 5FuqlI=B%]Z\:,9INeOVb#EtH]Cp'(0`jQ:lGx۫=CЫDY lwFk%waJŸ^N_oR/Bw2G6K-9K,w*uKɳ>ͩSjIn$LUr*P<orQ<^< VtQ~hxs'sĻ:*dV~f@VX9wH4@A;N'p-NZ"FaCz*\db`ursOn=C#lu8nwi CE Xڥ)MّGcy2w#TǷ|'1/ _S lK)LQ\!HV!y_.w_1Ha:a"'^/Xr: I˖%v2iһ#`ێz:Ih(WQnyg ]D ^/.h.:,/$bjA=ha&FAQyDk%Nϟvye|a"0 < snϮ1=XhfZP~(x}a2%3ԛsjآi,Ѧxh5ϷaxRW}p-0W?{׸ v,q@RNpəBXn@Y`gLa rC2\^&3 ~*m"D\31*fB 9ٱ* JB;Pzl920i nSERcAd~{i≵:5vݟi^m?doSHKd JTQ4t0=ȮMxF^O߼O}'d(JLt _t(v:ksOj|Ŵz\ߍ1qn:JPkmܩm˵Sڎ‘[IWo$)2P].Ug"ǜ(9?'-YRN+0UI0{N\{™;I`U)8e#Un–aplѤg =N+El W{qRW!נd&]Ms8oy k h6Wކie#H#gg9M V6'f3:W,D0.oFyVpg7VU‰߂ 6+XɡM^[/ Eh4\\\ҵI B̦W=haEłhho%Y)r7y[ՠ^u?-FO]TH˒+IM94zF-V*?>ˤ%$듦J6AWb6 3=}k3m,#pmવ< .CPߥ6.TI<Ұ3V }?4#SUxKR$d Q 6ufLRt9?'RerjKϟoz0^XK4ĭ-C}|DPD)_OU+p]%e$K+pE~5Kmt`h(**g޹Nv4\ ;ۜ0X_?kD4Amr{41}a)p$M9&MtPyR6"w9ޏZ3 3`2=VcT$D?AL8˚`X;,8rrRnGV 5nkf%*u> {nq->]+"7 ddzqt̹BzlA:Q#be;2o*A_-  Ϸt EGׯOzKnʜ;cg˙_M,{kWBla*r: 1{&g!NI,3ŜxG?AIҰ y}bEgϽW$'r6y66fNuaԓMpabty'ޡeW`HQ|.~(6N}ŝ7 <}nP0]Pew9] sguz :=" yʈMsas}?@28C7΍bw%oI*nd\uշBoT~!rzl@wdhiRNT<8VT&4* R6*:RRUfsDFXts{Zc8\ɓ>’VL:0AnDQ P.jfF?>;_UtE_/8븧ElQUFQaf9xcPk 5l/L]!D0_ȉk70Ag^[pClJ nvJ0wKܫ$EL6nB'o$,dĻ\`^yEtQt{y Le=4L$X(%ic_AQ1v:^;>R> [$}t{Ĵ "- wl*toMӆ(w̋)pxTJWRv׀]A!>ʫgL. 5[It뵧ĩ'd͟ ̣bI0=*(V_ğlj"(@a,5F`Jd$|vzӈ$cP#&z %-L0*ג%}xhT݄f*c7\JU?[s8Xm==.rCq n.j`r]8[ ׅWQ{lCl@:t \$.Ƕ:JiM|2HSrpv{1ЎP,U@(6Ѹ\oo >#E, 21 GJwdHHks͇{A7By}uXgv!2 ?]*zs`(ϿKɥ4#;H*W衚~^11iA9,/A[p,x#P7XHYhqp=0JIEe֤V[ gj6jrf& ےkw[8?f8CxոctKS]j7zE7$ 2ZZp)LZ; dT$} o5 ^*"`$`#3RG]C!Xֻ,faKx#-%*dJ"Ι`:>f1.X xݱM;qT#dj)Ee(GEX_ͳi0N򃊘hB-q騁uO u Wui(vTdinU[ 0ʳ6?Q׫׺ џ23D"E<b{4 UXZGtpu H&˪l_ F$OAq@C?klA:-t.U>ICݠV.) _xY f/ڂi .oP7ZC*>Ӽ z\qRltaTJ\'s-EvC{^ H+ly3RؕcoRfLgy28j2ET"- %jg ?>_!@:vETR0Sz60"M=(|I|6[ʓ+yߠlOpLίDNư/~>S,M$p Goj J]V6vK(΁>7ĭ X qZLzʝm!e @t~L%YFgS]@N1z$Hxg%Qp!0OOO#,_үKlim5pt`?J5݃5͇csߜF ޵'v8K A6y_+Yha›it$M$kn1~:ݧFƬC=-qBt-MӦRe6BO *a_צ~g trqH>ҋt>ͺIvTML:%[9. w-Au. ȰF,> cJs}ꠟ'jpt)?@쩣xf]+/4Uhhҩђ\zMtY>x ^#Q,wygh:M NuI:vاHZs(z@RYъ^/r0D/ԔRuRU5JOfM2lq_n@?ҍ(X V嗥].Ɂ¸KE] ۸?c˷%ǵ7-O i䃍B|ʦt˔_N-QsgxCf>V%jr ʇE+tZ"F!,|G:p/fQ? `>>ưoHG7~ n|+DQ^ y HVâ%oOX=pų UP)Έ T^CWbDP|k{|Hlp)M yEti?qJԁWRQ^fRJDox"qىyXE8׈2*5pᩱ2Y9GBd  ,8ϓJxwtsMkw3}>|^((]FŌڭ2? " g,!;$B,NaֆQ^ =~H+ATki  FnǃoJD⛣(&K&H}}*u=i" 閺nmh>PE R%-'[x9jb>gUƉDMUH }{1E )d)t 0?[!D;\f 0ZECG`zj8';5GڨlŠ>prinՓc51>n4?L1#PDEݗ wmf2[ BfS7eu!1d6a4+?p^X*=c̹#SbK#"1BR@ّZ4mXk5~ZٙfPz,j.[Cq(t35xQEJp9k/Ayqgte\^M%>cݝ``-V _*h_eYD ?)5  lYI}+Zb̅0 З3JH< =o{tg=Hw`c?\j ?ޣ9S↊k?Fȓoޯ*yIc-bth`\Ž* %ۇ6r7Ոfj͔rȅ^#*eN+lR>;;T2DໂPRc t@tCmX+Hں=^Y -bߏċ ULdv҅du0+yzr\Ĉg>h3:W91/[U˷Jw6G~bK؍,@Ozi:&h d:Q1h[a::Hew'w+nx'{A`  GHC`(F%^n=6hq_+r %T6 GkvE][v %>4֓ SZɰ*&z9L}Os yt՞% A޹o|_Fd>F`tܓTBaN{τl];af>)3vY[LUeBȎ+q6"E{qN=R^z7eCش<;>_'L%2bOS&qP>WoHC7aBab^z) tb〘Ţ{m=bG2hW $ 힭vWŠcd&Nz`re]_y[);qfقA/w&du}1tl-1p݋2| H+褜X,irǁx X&,ge?Jw޻Y.Ns8f1eL h2QrL}Zw\It <{$`db[D$bC+;gs\?ՙ1NCeW8Ќ S0lK?֋i Ǘ*+ &W/ |@7$u"mKj׃,u'D!/Z{*l={2!zXd&g yBQ=WWAVc<B9]b3PKJQTEA'3mvl~:R(kg6&gPnj:"^C%7S@Q ؠ} K2c3 {n] [ܫzjh\{xwNDZ.os֯J}G7P5 KjO^7wהqB| H&}S9XV2ɡJU̖:(ٌ8i!,d|,"洞iDbU3E<$r@!(3̤uGұ* !v} 86>tCCI\$b5bZ"FeS )C}a=9;&ĹhICՃSi#I@(LV.0eHA.x鸞M(Б_^6,@\f:xb10&Urի(nD1YƤmRJ=\I(IԕpӡT{muOXţp M5ħ;ˣM2sPv '@-!LR`\z ݜf"V,2 R k;8z0^5`';ʳ>2E&|O.7F/ME"2/#IB܎櫃)q='j>/%0[R,.!_95Z0_a>ܒ,H co+ݸ[y1 Pȏq| ó v)[S[.-nl)z;!wo1ڕT R9(/D.X(RZ]oc7Y}_ [FΎ# ,*tqtGk `ЫNݵ@Ƹ8l0d_F r ژ OM6#5I2jONlm2,/ +$h "H/49x]Ǟ }1G|B) U1ߍe" fc4&~oP <ǫtyYΑ 6fTx%}ÐX6iF!l2Utʺne%hZucpm.!O װavlxYjAW3n o"/MUCkNEHiU2ˑ%8ڣ'&`̇܅21 xv5&PR߳va9+Fb\yg4 wb6(Ghe}' Žn,+N-M$f$%;Ji !ES}֢uPȞƮ徤My% /nM</cNa!i?ں.faZ4etvPG!L"ڌ* r`PFdA=ʼnSNQ1_) ZS\b7?c)HX YSۭYk'?CzQQku!VK{0 E$%@*R->e5} p}DcdG>'&Z)3݊T~!f˻vVP_DIO40L?Z4n|*\,hc602s\IcjJL[gR63=Bڂ!=-Go:W?׵|,@\!=]ÚE @.cf?@Ԅ׭z6ڐ|<0yrce'wpR+@;Ij`AdF4>Dfmܒ3bwGjCO Q:'ǾF^*̛ի[G:(s͡/HKl)o#sL1"IŎۊ7iGaDxWuF[4*a(MGm%;_Jtp,Ƚ퀾`S< k8w~h)كHO+C¼hRFV d +M;;=lVPϑN=*+]mjn+vUEB'&'Wy= 9R!-Sj7] -%KOhJɻo.2@Mw'xjF& !=/}{%r=ȕHп2=~;u2HNsWߞsZ7҇x}x|*v?-v#Z Bv]yo|sU0Npz[fB!wY{v;KaHàt/Ә_l5EvRFzUGzS_1g|ԏĊ.D2"JSZ?rCbE"6zs͊]_087zHSރ8 p,<2mhmX%=0%`@8:|>sd`6D:B]!g" J' K"LMŸ8{~T )fCg[𡌄ؘ=OwG.NJ ˭Aߘ0W -Z ,i)~[ VUX淖_'>akξCٿFE|탼\IMվQz`g&DBU7nH+2%{2y4<*cX)9 X( .(ǣ>7xi":ȳcK9M M i66:-r/.7U'BޤW6Kv;hRvW26.H{ ح٩ %qmg?cc{.k Ptns!O R>ǹ`GXy%;f5/}t(bE3B|AYT9(#ޜ\"IGNVOCf-6Z{+nu7 .)G?rJtA:68{>v7Svh}Zf3 IqФm[g=fFڼbf62:~ѫ'_!=Mg8'\[;9L$<7>|"7Kޕv]eOp1't99R`y΃oAXJ"zT)#KK o0IO`37aR{P4R-Uc iEtUOa߂xBvi$$F@4sܩ\<[y-jy^Qة[,3%lsH`&+? vh钤:gL5axb,Ě\Ό2)M0"~JlYWSӣQ3s!؂5,EJޗ:MflŘ6Pj5qX}&5MS}H\GmFu|b)Xp[RpCC5/aq:U |-!P682yݺYn%ܷ;`dJ#\O&+y2-MJOėT2[֖^4F"4[1s m$hd.%]E}r@H+`FnJ&6l]%I<ΜH[5U%K{7h1Uk$O@bR'8/DTn58 <X]GTVg#kѼTLqdeVJԬ&%1N⢁9XKua[%Ը[_݆ƪ7j}Ҁxvc{<"ksBa/\o:/LsRi<% DouʻU@U Da$CL}7o`@sӒ*;vP!`EJC2d-DQ6Ʋ&az`=dRH".er5I>Ȳ~⡷Ҕ"'X56Y%lz05w{ezXJDoj) ZKnU އ (*/iRGLH7ic. Ժki_ʗΘy@JEϥWMVHRzK9h+x]QoۈpO I =#&4Jh2Xَ-Oy%p0+2>o'7)X"0h@v{h[㻑96;7fw '+&qAx-`.bM&<>WxYZǪgj_ 'TYB#$=<`EgQ)Է?tvWv.BhY =Yݸ^c*,0ӳ1 E-H"/WLa[Ʉn>.؇Z~Mvt˯^&tpϹpL鱼3b˵;\V!/@Χ-b<<Ъ?@1/ItnD}!M1<w؆)"KhC@s1u=a>+t'F7}_1h7 N^I1=[Cy0S$>~6$ 侸5[pҤ&X`JWu `/DUJB.\,9(&\w5JAftAw؍|(QqW -5UPb)A^%0v`!45왴:k>Ug cKyοL%/gNK%wNv0o86@FuBXskdңc_<`57_^Q=?qi*֦:yU1V <^B{onBG%>H1ZxJeVmM  mG}WgYuSܝ_9DN"T<c^lYn4"\ҍ`Vypg&1js<8\tiI\8~N~SY&{FFCF4Ad1\Ͼ L@fWu{w0mXkݗ mu0+mDG%ЧduU (&"nzmj*Qr Bw½Cdy./vՑvDk ́uG&7Kt9XV[K2ﶇ BeE  18U0w(.]٬K a~z>.}0mW%3G˲o"%0 EkX[l<'K`zr(_%t>HgZan锰; wBp gE;XzkwoP=囧d<.?̑(Bzb} /RMw.tOWڤ/6x{fBܡ^c9zqm& ,~ 3a:jRcTogUFu e_HlQr<@ A ~nEm5XV/U{l)yI[/ S_bw1뗑clte)=sw먎5kLWmbq4 0;SASmyJhZԳi!U .[ߋ'Y}RÃ)* hOlUN0W sc`(S,`,[q@u R9Z}BaK?G‚K0Zp ?KI@ cvX<wܤk$5G߃@ *~1%Q+u)(~6KT&Z 𢲝OkFƓ'r5A_:'𭓩6|Hm_j^LYV\~ԟ@g8uBKGWHb{r/6KTFbQ:q/\8vx*qϔ=OH%+ []ggd<uZށ(ܯVM,6BC/2GHw*?i(*ڿIFZ4yR*?JϏ*{:8 ^4š<~pIn|'Ht=AOaaүoKU4!oe r\0ms΃g/nLd5=uGSY_N|8x5WWQ@؜E!!oBgkaL^T;OkJ(&ֽg*79;*RȰ/!WнqZ1s&p5SrdT?e*^[+ \T ŧR%E]I.#` YO!y^MU.n4f̝\q$0cgzT 4tl @-H+pFXAH D& SNXvfҰU>0z`/>mjrV(#'׽ J ïo0 ڳQN~_D40r]j nGYZ.\6uR[Ki$Uxy,L\1FʵB20(ưzm-N{V4>BDUk:RZ"ɚqv  l}vxT`x ~2ykKW֧emTVErEѰ18J{IZV.Pbz9l:% |-vloBQu2GNEk2Vf2=*ЀuN |ĥ5ͪxAaئO{ ;y?٤\=#WаCMDiBw/;F0h}8OOjcy8ewM#]=C0 XΡ7xP xh p&-*O>E^2>)ta\29=WZI2g.GǮ 8YNhAK>%ۡRE?]8{(h\:TY#26~+ OR۰vA3!So`艍"+L'◿Kgg4bMZ?ߘtϐBX:bDءg?%[-&ɖ0]-ăuοh NcHaP@4%JF?Q@1̯(~Q0dpĢF1&/~IV Ws gԞ:QbP.Cǎ۾e9-ED ncqỌur /_h5TMʊ rjO*۫* y_JBiҒG8q b1)AD k.@OԑqkIbYVw 4W[u[\+%qE? !) q^;If3N,<ˈTGw~ b4k! EڮuzkTB) fUdPQ~\uķ]o4\;+)dR;;<QOp_1rG.,gcOyOFcfN'pIѦa0?.W]eK U֫UftL[+F "jc <$Vl0{q0sdvXl/( C`]ҒӔ]ALIn,qm,l1>Zl}s\w/=?ԯnapzĹP:7ۉ_B qc,ԸRcvu9ɜrze;܏9S:jx2P5(x?zɔY8MPNtRdk1pP7H[p?K nH}sӦTS[V_񑱺j^z>Xc-~eXPWbTBFo>yGU5HDZ(Inr8o ` ǟZdq?H._'"AT[܆K0 $'׵꾡-MuXL"2?o}MM?"jw(lRҋ`M(I[NGfWh0K\OZɼ8WH8ʔj*N ^ v:}v ?!l49AB?  oT Ed dF@ehK 5tJMTAE!* x?݊HAו* j^ Ak&᚞tkA*. ߥPtt=sϟxߕ/pꢣ dOFl[Rb! +&7& RHjmTZu\qVT4x,)z1QROd5\.aHC7]Y, qs76NNjͯ+&tա~ VWlI^rs݌܍m=SL拿|z$^ p~ܐ :qE2y,\Ў+ {A:2fL=E[Zb?zӣjduZ,8{/(Z+ԨUO5!+rªh<ŐX U'kT!X{[#n 7P7A7qmnfGS^+_BAjD(=*4pVc;8}`b^d&:JO%Q-/% nW N]T*A~!n]-l]qJzG~07L ->4yKe_dQPFk *CoZ_wvaXƷ{NŰ-MUAz`g{&\ǾU{k*lfYzf3MYЪ8m\H;1Gk'YB֮7QK꽁oeRh+*QKA0$j||d&9aVfcK옶a.KLN-;)ҶA)3Q;뭌W&3Kc؝HO =gxcJE/Ͻ!j B]}6Vj,^ʳI+5/^/A**ڑ)2TAmd r:~> ;El)3$ ALT]6}7vR% RM c$[%;Y ^lƏ帲d b+'oCY%Ihq}_U:#b2L-Br X.jw?0L̞zN}m y`e'Y'-XE Z7 4|K3|]p,3OE@~^:&$ZU$}DaU[m,5!}RIc\Ǽ@ӸCS|1Kin9Y7ː5/1-vMBx6D@NxNvE# QL29Pz@z6TgQNIDL<ݢ89r%#RJ1Y+=qDjl5pGCvij(IYTj͍80յD#hj0=%< WQ(׀N|B81ʶJc7T*]]Ji:n?{mBR8}D! (qI'+ 5oYQ%yNG] )6>iqZQ$w?|6KMcaY3ѳܞ)ܫg:r xTn#f o“hzMwp2$;xqFb8F34#"qZAOS: 'އ L)z 9yS?)lL+n^Lӡr,LB2sq#N9 #u8&܍ 8UR/lP3R~uVN>"5n,􁤍gJF˨@ "r1>נl_)J+6_eF:']ϗ2"A, \7LgCVv6ˬQoJ7ۇZmziTp/Nރ(^ZBZ}ˤw}\U\Ԉz$'m2!v̕w%&jW*- J\>LmzJ`@}Lqlgط7˻{"@r࠲Jtq;.]nkak؆^\)Wf9_{IJV1xr9!V}L8Ɋ 0t.1Uf+"%i\f !`6Io\<0,:$*aN˹Ot.۾QbQ+iƀjJ6nz7AIp5 gS'#EK *ڎWNu9!c[4 {:h.xp$ungF{ ?gt\RqD#1W6۹_~*V74|ʡD-,U64(e;H}}wx `{|iQȥ|H )7IIԬ/N})<2Gg% Tl1w7"|l+LU+$bSZNvʕ<KS"p8Ⱥ|Eg=Ow C3 2hOeA[*r*“$SH\L\+QT,?6\;@A{,si،g&:8QS[eZU:U4 ̴uF@M?9f6~2ш_'mѭ'G*y5-1r* -gf;]#Ȁ誳ަrgUIrTL~nj{`pX=-¢1IlgX+dc@4`+#[dӘ+[(zRϪם)^a`0uSZtj%::r*q2w0> -Лui:g y8U/; EWSvă!1"k DNS!nI8C޺7f-R*BsQ(dG.ڒI! ui}㿻~fe#&/A IqCZDj3 aĕgVk)S4="dbn'`DI{Ťn*~Z :W.Xغﭾ,|ri 8#ԟL݅Bo'VpW`J츛 V!}뽽@>O5F̥ vtv5Jx2+DeC}i3$FE k[<=EAK4xَR0Sϗ\7㭡,LFr[JVT;t& AB];{a ͔ }OZZkP{A8Q0b%`SY?e,lkőA(XNu0Ɯ`[؂0f*u}a+!P}Sk*xۘCM{Ji&i,}]Q=Ņqi:t/TH @pc0h{'rRLR?(׻~ExQh1n=a'##F)Uj5籓בF\ی \6!~'^}H5GQ-Yx /.;o# ]OSy{2'OE󆂟7O>_S5#x, Yq K R@.]e4/N-|,5ߠ9C{ł.qٚ<#l_GŜ^uG©FMAZ e2;- m]<rp;ӒZ*a 45%!3j'Slo:ibY1sĂIֵێ֓sytbkƐ,eg],>*6 yI ic#0Sd D5VTRb/F 0+`=E.8X2MMkg?|nCm⛧mc˨Ԁ>o_}VQc=hήbfld!$Oc6s`='iwϪ\vF({"J<^NY8j<,2[ "Dj 8TGO<aJ+IPHn!3WiflycL܃; 4K OoUy DGH ;j蛎]"<3ϮA?!R #G?8/-PB荛) tJ$ A^~2[Wf$yD60 ZUHIi>e=Cuv>,_2 W=ʉ;Ɇ{q1vH4y0° wMIaO cizPg$CCΦ@ y Xe-'H9 vEK,r}'&UCH |fH ;ZPpzkpVmΜ, VFb㖃nXbx(q!Xi ɲhOE)s-'Q.PfC3a*.`Yk7 .E[('}jI# LB:{[ig}ꚆC0:T F(D3ޘP7cϮ&\M~"TO~Lo$l6Hk"PF1S[M[@;udfezt#Vzs4=oeĕ- DLAx#Fj;Q##}cX9pv9̠h} щ{_w9+2k*kmSXw'&d)Mgqz;҅=Ȗ rv4Y+>Q$8o*⌷'?!V*~j8w˭2$kQ%fd͛lcDJG,Xi9vϲ=U& 8 Eq3z&d[&g7ƺ:}dq2uImzFk*mrgnCuk+%#-s*Vg07/kux)tdkDFq% ǵ֊R͂FFdwl]ch척sC3y{l?TN R,nT)E LmTJy%]㚳Š8Dw+.A?yd [ K9ٸ|28 4dn1 +&;;):y/P_r vyWcሸ-WE;WEm3n}rNjA;X(p Te?r!/QB=R]#T'1@;/pU} %l6BY\XjO xb*;eLvSѵ~Ax:U[0Bwl'`#ҥB)/_ifaX> (Ӽ_ui| 8r(kC#?Ιty G׼hl, NnUy"{Cp6 'o*j uۤFj٤}^ I"TvXD!C{҆,Jf.@6-{:FWHNN"j72`}|'#j5ezhÔl@J-V浄n?â^yTf®DV͚YSKQHU~VޝJ8T-}ef8ʶPt'ooSg~O5p"qlv12p#el rEb:<WIeBMzsڼ0njM|@:f^v":=x)#ŮL~:ڊ$!@tMVl mwsGbUE&<\dlMMwdBb8V9㽆)LZSLѯ1znYHzJW^b/9o]_kr|2R\Hry3{ >u0ZEDp3.ԋ[,~?LI2oX'8wk, K/~q#J ƒ'.܀5ŜaPoLFM"c4:]K] xh#5dpGCgbXic]{Hr [!F :y%29 ճ(ݦP.z" c.<FטYH5ybE]VMMBÒCLVN}5%*(VωǢ>Ghd3H*?O>!Wn S!$Nrc@LTjXvL\0cA?Z@g&dQ2-xcyM3yxn'_dX\7Aԣ|D.mb@@XbE,SDXVE\Jے+!:{HC`^p1yk pj>)ХX*I.PSgawb4kL'wy>d:w >Ey$FS[ ol$WV&beldxerZmEbS]u9Ȕp=)Kz8Ir -(Q=JϺVă%38U<̓cֱ8p0|ݳŅ`N)#JZs3J. -yN)EɊ-\!t'ӿ X}cz4j;pknt;yJ#f sPH8ò 1F'E9n_+k&N|賉8\^aߩ5q bb?ybl"9j)"Omɞyd?s.\X͜9g}:p8nI3|1PFǤyAcf&P'hmw |Y>)Js:^N6m R*׹zT0~ g\kTYN6CʩH5CݺE2'ꥭ1BQc3ufI$pl_0[aK@O#u?)M۬EB.%]9JJ]g!Θӝ/}}8?EdH7Kht)&">QS{:Hnw"?e,#dGx$(*۲ܦp& Nc.S0jؕ r0=pܔT칫m~Gcp57nT1v?!#:IA;3Ds6[tAmȠpT5]w%vG4i +.d庄B:u=yk`::ya:23zO Uem]w_q$j]^Rզ(b.>SuEGʪ?J|\H_[mQ.~'XddϿ *mS0mk=@)@l)<7xdEڱ?D>K1>`҇B⻲tC]4<p J@ @O;rнSI ;ȋ- .1rrHG}ng@cGr.[UV촆F䨝l>O~+I۪oӍO ?a Rz!')3|}B4NPlJx.elqR2Qbv[xc:/as͜`RERd dg N-DM*.L[VޚF\I 9#0ghr~A\& IӚN>N54Y al"!m7x'*F[?V<ڡ&Tz՞ec D LKOKQ+^Ѣ ;H@KWR2{lRk>W'OK_ŹP% P&5M_*>X$͢$Z 5tFxn'^Q |G=W 0ƬlEd:~wG-ߏHi](A[=S?`pFGkuʟAqͥT>f6(3OŔ0g\BRtB7hKђ˜Ơ-QM^nn lן1@vT*YHw.I ]խ9z>/#奵M6Vaؽ흈Y<ľkI *<6͌ 3_G  KE'?^W00A%)SS(pgQbk9 SH.6u期"z}@]TO,T86-& }  ൫p"iE ?qV A+2Egk La7$Hgx1M1.#EP1rZ8(1o" 8| ]XۊGJSoZzSo#OQ3!3:z;XuWXQI Lh^fvEib`Hn.jBǡ@*{ϚXl&4@2*9zPs0 K[)\C>g|Xm;CQs> Q{h{zF"0$яF|kvP/^O17\+oF.;yt\$ڝ L1`I9R !CٔW!>O*UQ_m@ rV$stzFwqX!h9XU"-u#C{u=h,{x66T4=:R[@V]- $vD KMhiRʅs) %7kdL|O*=╄z\"9!48?E]# Vt2ugVtAi3>8&zBc筇4m nխC-\F sd\ 9!k)[^DW'*\|3`1;u4BS[cpU(R#ƴȔ[Oi/oF=뽕s٢[֡S=ֆ:uF9wIh&"ո[m[KT}ѩ E8RL۳sQN'!aԷzRd&9g,FH}+5! Dnj@gaջz~w= Ώ|*yTYNĤĬɫM%'# 0wF~REI3Vr'#@Եooe,fcPj{-N_*l؂}U({eO|2>y 5B~ܭ;98冲c}{BV5z܆_M+=7D{_A=1V\C24B ,itphF&!X]-M.@QI˟V%`!y$\F 25!y< w|EMw-uFj^t뎇U\S4 k Wwtϩ {Jthΐr*$ gHZ)D](MI楙zHdj=#Z 19 Qсh iɰ+u9TX.b:܍zH\_mơ&Y}hH4+[Xc:hZbZcrޱ>@G3Q]kzhw-0wQOJBIJzMko([Sʭ7fyцbl$0WA:ixrSOլtY6H\.'h4J`-8@ |rWu-R[:9x,DwQҕw F"j5րfBP?^>^2~0݅'nyBD ~K`:J8@$K-TuCGZWi94(/>:Դuc"@t0} @u@HDR:C.W J]8yU l CZL[.MqWLl޲rƼE?Њ`X45h4嬾q36%f 1(p/ۆпDeAXsF9ЯL@z4̘itE7^+o8myz8f-c8D0] flv&KhA,_vy3s 梪Ğ\HBRO$yWjSJJ<T$7Ǵ$4mQJA-y_Y[vQ0NɆARTBxDkR (Pzےt?6u I샍 )U$"987ΎoͅRmAw׃li.Ӥ{gCJf&c$}ZS;cfiG:rpE1&p7iC՘K,'6MW2<xK ,1 DlRIPFc5} &M+b(^oM%#Y AV |Ly3tml"#aOL\Yk/,gvFqIVt'5XDE(wz Qv4$}c,uUV^ZLL w#j۴ER6=R\9nT5XP ΄z@x-)FE}Y Waq2tSa.b=0HW0Am>N-p]tFK;>Fvδ._H ӗvбߙB؝eMwM; 6I[[Vv6ܑ8MCI4 D ^ĩa'6@T4j9t;`@{s 0*gL+( p,8`Zx,rs)9]@' i̙C]l ֮8 '*c]d*H>>R<׃j^J,)BnQ: q7rFk*# c hm^5 E7|{3 %$JU`N' lu . !q+3|VSed۩UL1LpGAJ%r> U Gf|$0`1boX=e&ei 9!m^3tkXg(hq9-^թ-$5黸(X4GI݈e1)ܭ|BU:7:pe6 ;k7:dϦ $ET^=vC,"cS&B(}_w °O) o?ޟ܎P 9\}(t|9æR8^Ph`(3!8P#eV;c pߵQV= M$i\Xd9][x& ,bٌUg0x4z™6w<@:li% 0m6G[QD< C G=N/aʄ+_asU%&skdi!1j)ȷT`w8rZ |[-QŢ>Sk]CvÕ"Y" 4 D|τ|Wr(Vj_x&%ϯqb2V~4:hHF X3?)zXqK Q㑇3p!0bFx/"~ ]>k~.|Ȩ?8˦DypˍqɞTy_QA#z]TQQQkDGT*2O5o&JPԔG 31ݡanq$K',;0ؙ"P!΂cu7 zjS{f aLЭep0j ђ}ad[-C|R9;s*1\aͲZhKw%J 9Jmjkh;7BYjm2)9O_GwLtt FtFӀf{oe~al(gO5b N{XD̶3$Nt沪[@S"T)jcfr㙑^+g/'CNXzȑWm+ZKsj2]J׶[k !fbІˤg Yv\uo9*@f+19|:2Tiۉ%.5 bv 3^  amx!MB>MߠT- fӎ. ^ĦhOV2LSdB,'5XxK<{' \*&? z[s~$TP)iA0asDrd~`ʱ H4jϨv2fJ $2^CC\y8j%S\.NɚD.S^p@uXs74zVM;@ q^$Sj˗!dTHe_BX5>P$] =ՒM$ٌB3JHja #WkWzsM⏈%/KyA,B ϫ;V;6yYbЮTOZ?7j$ۀv*@OhE @j ;4Z`e*֪{:(!6h=Ȇ IGe]'2፛#߇ 2j(C[`8E!YۨIѹ_-epW$uD _5阜|6L8.ۣ6d҃M}ts+_2 .A2u KD" Vx&1Ҩi/ciE&X>"ulUUlm͞uxB9˱y$W,a;g=M[.o/oQOG.BP누C-O"}-tiiO*DAv1cSCz :Zg8_piI͊ ]?`"A!S4C:Jl,2ik~btb{uG Eh )h hu%̝Y[_sj+tg+p.9'q 94I_Z3J^\[-IRF20 sÿKkdjk/0Ic?Ye Tu h G)wrf3DSj;;}-X@5(zw{ie˜UVhKkDjizbsE+MP뇅ΈpßV*C>B.cwn b"k~䶗>Qv&hfKa7N.u=A,%NZHRBg'חJd6U4+n޵P |1ÚY t/e*@ҪuJ$~9r:H 2yǐm4G8oRBVk!en_h@tYaD Wx{;TNP{suvL_W.Pȿ6[ZYNo:'N$Nv(TuJ|+6p[>mXʴ旈FNV?>ff`X-en&v Z8@r.ƙ;8,#mY0) {h(pmn 1I% vf(CtАM("R)¢Do 66J8t\#t~(C!I"fTc $)pg y-zZr$BW;yQ"EѲ^x۬J+Pz 0V+XU'|K^@X=!v/lDPantlMu}3:bu&uv9\/'@; a;*89u}Rd_L 'A|2b6ocG&#yBw!$9-3;G8[h[K!C 75B[ dv D30iHng|ܼT'#cߦfȆVHJ2"ʂE ;\:p! ˑ/laif蚕=gpAr{vt_x(1N Np=ZE[ᑢ'Tq3%3}Z*Z0;y\yxIG%n 8) $udzr z4sJ6l !Nn,ܭء3Ls˯S0Trb-sQHA U0Kϩ 3H]zYN鋨a7$x!/V y(rݙ+sϐ\"Lcm+8ni:  ވ Vu;Ԅk=>7& lq~Cqyy?>J@H uCmYGE'Un\E>NS(E;x%##5ehP QwxxK_q?zy#_y>U6%$:L"3!?3ւQcWRvY{9G身 +n{bؗ?Ɲ4acxXXU8{U80 //h?bǝUUDY_nt|: 0rH>w^6 w@:mz+?Mv |6#$=Gro\nkkaL%~ y ?wI "xa+YK[J bƋ a`#GpˎwY;QӖsJE^/v> "%rUD@WY+[>㑏A=ř]= k&GnD,0lҠ3|}gF3>ϣN; ,F#-+b p-Ƌ#{f dЪx7Sɴ~3[ M z/cmZQ-GcVJVE_D@jw֥1|h a( thϰaMlR+9Rٌ0fj6sq1!*ޞMC݇6Nq%.!fɶ$P vM0cXm|C`26rn fmT[NVd z<cbugɃ鳛5/t~_iu~xrN-gb&Qߢ=9Aԭݒh{ig7pL=883 U/-\HtMEuz4e豣͟?3Lb~ZE=dܦӗ\|Y|pЉ|"'DT$kSLh$Fҿ'WS&i;[,ze A&\O.Wbj/bs "$v>!Nw>ь:UUuwZ#t虥Q DžuDsHEp**C͂|swf*loSq.P31T[*1bpNLp Nrp1:"D!~p!*݃5V:]Ԋ#~{ o 7S l>17zw)pBH" v2.X.d=rٞrFS/^1#'Qhka:B?x5%.)iL$-c&yHtvIb23l2> >K{ۃ|h| ,lP uv} $.;'>ҽ(؏(JzZh,Jn=&G 6-ס`@ 9!UQ鄗vD4dB>R]WSuymAUf?pt ddcir-kʜ:_|}3Zu{?O0F5MLcB p[ߌc[|$;nM@ySN3^%y2꙲LFt\Ix$[|쭬Tֆ'y ̌fQHBd */i,lP D|A;c*@HʽqڋTšUo1:8 : ,G+k1yd:2uvd9%,N4m 0U:YQdDlj8 uh{[,9 A0MQH wƂ6/zTYxAO6X"zY 0դ`n'VK* M؞7 uJ15&-fv%LN?x'ƱBxRѠ.AHُ1>'oՕʩ oπ6`LvjFSω]F@+-9"*;YiI>P=>*ʒn}u0In MֺHC-C&r 7 AmD)Vkۦ73+¾!sI[b%Z2],t r!y]/춖^HT1}5 RybҸ7=U-bCsT $3gj9.e˧hlJZlZU6*O(k,chemg+=VG阌ԇ0.&q{̵߼Ϩ>H4 Br+0MS' qعXQ+#gB?n 8[ %~W̤yG<\$˂%Ru u'HF;%rkʯYRޑ<kV]30Ld 0-]ؕɡ)ͣ+HX'j ,O:b[O `&Yk ?e$%R>{5Ai2z^Hq?s'4*w`Ӈ.B_- 㮗e%#f1 _ ZV,#<4# #o8~K{#ʥ$}sN_OU;5{n F-(Gg1vD.GqB]SC ͆Y (n^E{+նJ͒=M퉌0/Wfŀ$j;OxcfVQKs )gYeX~K]b&`Ee'=u]9 砙Q/wm:ɴs&D\,RS7#6{ij؋u$/dB|wp9coa{0C`9'^Zd:j9T6S9˳ܧf T׬Eɚu%nHɕKTIm7H+< թ{rT OifƭW7 Y#OP\l>c~8 [fڡb3w3zzJԡm6[~>624Rgv'RaP#'Ak55uzLjR_SaWrRabZ]KH$+- _B>)V/UzеbD mGi(Y[ vGNx6._h/ -(sl 5BbDZ -śŞ0xo -uz2q/i4W"u\]=6}/v-unż%)v6Qhj4d o^j?i" >rě9ŭ%ZiiBׯkJEc9f)o9tZ?Bi3`Q_yrP^ѫ'_"UOC_0 v, 臠EΞ=}`/ʵ^Z!9*Ӊs8*dj  !!c˩ mbQ`-ơۣLXxA_t' S$tBY5~_vPvhݰsS+?既i{q31΢I%Ax!hu."3~')ǃ׎BR\mX*8 r4./"n(ї1?2Tn54To>;|?XPJ# > >\9;|MU%HŹ0<7_HR[*V!XUox;q8:a2;-uC9E;hY!@d}]' +D]XOlkGG#- g )+UV&v PJ'~Ͼ֑ A}EIg?amEgO"¯|E"E.2P{Rجm3ޱ.MK3*j!\V{STL%k(y|sfy*Ӊ.w@IJ M?fˍ7Y}.X~{bs(6!FG3iZ*B#USxt;Cm5F ;{>꘢Yߨs/8CHzD.qt!%4q:t2`-V(S(>NM?/J%,^7m.:dp(!sPP']݊h翄u\c+܆/IVWI1λi`_X$>_"`HeE#,GNJ,3D6Ǧ9bLg"Pַ@Oz1 g'-ȗK~GYvM`f4Q 55<4>#(uI(">`?Ho1y 0|՛ c哽;|~e. 46`O1N:0ݍ~Opft@;% -Ia=Pދ8`e9wnY97=qׄ0bwtY1n#P=\$.ÿ¡aW51m ˥^]k*]J_ۚ9Ǖ~JEJ\ˠ G\?Pu)C͆]"n`VY5tvm%t->¬ZʴhvwEgZr-bRB# 3Ř#r"-ﮊ@=_8Lu:P,؝I-v*O͌EԾמiF}&X|#_ZDDHa,Ruz;v3~^tA8vfCwLej:+~1nC5[ZM1>D; `¤yMiF@c؏e}#_J1 ݐߨ}5}+d׭*tO#>[~=G33i֋BWoePV]*qԭc%59.> 1u"`wT3Iu¼GN[>$ZNpB"@?f["ƙ T]"U4k"MR%ͤ! d쁮4YY`?d=륖zn3"#\u|^GIC6\aJC3L X]@8=6̽aB7'G7ӝq0r\Q&hGdEny;M'S8(ڀ%= wJG )W{ LJ 85z|6ik=WJ caƇccVp}*@%U)Q=8`ľ?kKq,ȴ /Jf3-&HT `F|[$ce26nOB}Wx+'\][W4YVj-u-G/ A KPbҷ֡N&B $Fbx5D>WL(@ogde5P/̡,}c궒jtbuz6W{ !$m*ts)J<&Ku.;LӒ|Oc0.Y$@ C2Rޣ@ *%6.i @IFNlw9/ "u gf * C"w;I`A`L)?:|qIx؊c'9&5:/&}Xxޮ* (͞FL)h1SGݠGM F_ "Ӓ5;AaIO! B.]9kzĕ$(x)>TzNZfj ZUxfs6vQtuXA}e";'f"WsM8׈ׄG;ΠEC AxȤޔ[Goͮiby}A5)r[Oʀoix*m U mӛ!T~^*vOŰwȷ9vt/KRk?]Êp~K$CNc1;ܫ'V{M: fU:}d7{h(,xZpF=3$g;i? ~aYTaڢs ջj6f' a>stK''ܦZ¡tu='v/w 8uڒ엖Vw>fIWybfzM ?G?qymwSa=*2 3DA`{>/)x`|e.(P휰}3c9 ?yzB%S* za.ǎzBG7Vvr>|捤*Nt^ߜԃ?9r,# $O`f^ c(swq^WCgM>Fhw#o|Hli3?mG˝bȘԢ;4l_< f LWjlcr`sx BǬ͚^s`+r{ fUZJZLnN":pe.ա-9JײfYC.3=8dK*OH."5kkMLӝr /<{{{*gƅ[lhRDR--bnV'[hsYX6td?B  xFcR#j,u%*j2/.Ae@!1t}7 3[B=;[QHW~KyBhA4wY'-Y|q0kTu+[ZΤ.<`OV5ڋ(OXl040ϟKqt$6ʛ_75j.\qQBdߪeh-gXBjpvC 0x6SͩQ"'A>{Rx݀唶@a=JCn#?nUF%5:m'QӫhC0W;Dbk5A .Z=o$QVi{B9byΜ<ЄG#3 S| 6sxH]B6Kj1D7GH].unE`.U]u֝H$ 9F'eU8z2dJi>5n3B,P͊H 3Hqk2cA "< 9phS'ywC]TH.1P+!2Jhu/6| ޶f "uرp8$pCcT//7F*5V]Rȋ80w ԥ"$u~yh5 ;q8:a8N 9Op"1Xu\5䌾1ZwU4gpmyfl?0fjnbM㬂Ajxa}>aOk>h\x.2X|6,/&$814GYZ"n}@oÎS&=ppFdCovx"U3HB @׎OwgLaxx:B7rgs{L<$[@(az vQ VžT"x,AbE!rfiŹq\)aV5RAϣdFJ5zل;3kw!u:f ?ur)?LSo}y̺(ܮ .dga 0!{vugѕG%VUrtN0Vcu Q^HXvY}OoFpQ]k=F^KxXʠwŒwZ;0\?:sPS@nw3fT#%w S'7ҳ TpWM6N]xkJY^GxXJG~_1o(5[~D|Hś:L{,"0u6D6.F!"{{85"@e f(Zw\=7O ߰*tUX:JTeCڐ޼>l_Aabȸ)>>̯$&J+S- x[rES*3c"a JʿfP3`f1@Lmw b%$ز`! ;/Uq:RHrm ͓ mT$d'X#9ePK\w "| ]׵yT(\S&{/w%SaZQ=]$mW;Z}yoZ$@r%CݳlBs|mdӤ^]x]`\L6"{=3|}(s䪄w.:!N%e48#>U#ltYݰ\C㷒0rŮMtZqtvl˦8#E+H\B{tvEԲ6#=7.j1g=)LRC q%k)]b႔<<Ux µ)//vstcogSwbR[ڴ=n ?5_e?'ӜCA 8"U4Bx ӴEjiIYq<]ȈȨ"j%_mNwW7bl'z)M*j!8cl!.:Y}G/Œ4y!&lYEYR/E6 sR|g/T:0sjX ӞgUnz5V.Vᵛ>sɓBprpb-ewB1G,l!É ,,`S!gabHz`ͥgD>岯 ͡rp_l04˰=EZ BZ9\>]FU,"bߪ'A >S@BAs[؍ %e:".B{R "q\|~H-4wꑸfL8p-TuExfs^*wpێRf% ʾ/ lhR/ ^(`{IM).Slˡ%&O Frzi1lLIW~D!,+<5d„@L]]KܱpɠleN h akyp KYonTLRhT%hB | b3jC1ryRk5&qȠV$f s TZ<2Yb-7&%xf wqdjDZ aG,MvM s,)6Meg"hG݂~g Y>\;WO-t*m[^G*l^D@ҭs_q(73E-HR/Y$n7J4|5֡>d /'Xorsh{/y Eg_cokH|(eT~{;S`wq&~q#2v7[^!~8lbs8oܵ"q.@+(91q$0.4]1Y- j½Gl<ObQqS1Qs5#ҹ4^YvAh΋jE; >qc[n A Kq1|jc9O m:f3QFM{5pKez K _?jML_BYqrp?EdXu9SUdKt~}k$uR Ы Ṣ^wF+ܢQv}nNTgyɇef:Pť Q[<2ɰS>z0~AxZ<ԓS āk5~ҏxfWA2y1ߙSKW{JdV6ei.r-^O^z¨LTgӢ TLya*L͕a4-Rs=Jsj2x,wr"4,{VG?ظDyQ^o4p6eA=/1S ]dİtbҘc魑;:vVUUm?b&1rA¯"xۿO<m+-b]3\OO`;n/jUyÛ@b(?4Y@{quUhz2W.!|2svT~~}w-7,7:HAIhD}d>KA@Q%rKФG(%tuU9Kja~]DQ<&|[Ĺ2/S)+=Y#DZ3'zֻ @@;AܓRlYL[ےC aXCOaX/oFg}1NΒlt}]3BV Bdw~]/\0܉GD; ,s7)0t!WS*q3.B1]Eۓ[&*+1>j(Jԏw h̅i}3kiأpLǷ\E&92uSXD͋hs 2ީĆBC%i#mz|S{#}GUۢ'if)ЋS}3;nHyt1ߔml-"mؔ :YafQZ回@}Lbvx~J$z7N!P7-5u(!l']]G@Gٛ5!pE(ay/vdA#v\ ( ?J?Ļ 88@ Z,@ъ:~Bbƶa2ZS5r> ~OIӞ|,vUz7>T1.tVs>\KIю7HAa=љm!@j`>Jx,E&VLhdN&̽4f4ΞyeK t`6'0HJksN' 5 Rr0+PWv4E=(<#պ[vH0fdD'PD:-32i[:(%TޞJO3!Ic#Jã+btH1م JK ORD*y{=4SaAyS:5 J!Ө[BNxl%T}=Is VA /:9:V?'WmfWS|̯z.)L/қƿQ7R$ AiۻI{G5e:lZ4H(|igQt޺~[IȳIf {ۡ]Bj%y<.<怼U q$5F¡:qB@pWy9VAmY+Gr&7~|Yn}u'hE//6Qq&3Ro}TKߗߐ:}? Pr)wlZ,u/Ez,ipvA#C?BSϘ>X<|eYb-!T ?0^># h#,JV_?_h]y^ʝp Qn]R)v=<'l'#کbZ/ fj\>r-~R>}%#K+d&tIsƯ-!rIZz[v!<'ɿW+N1K p4┄fq)"O{) mw Hv_ &F[DR# ao?a;v=v}Dnl~ݲ EetpA#28Gv-M0 qgG=7~ I} (!?3I^wױFYS|Iwg埇e"k4B C[\}Ą.@,Ţ&9&+pJWOc/Kry.sW2CD}|ȻŸ]$MNBQ̂IeiDUyY!OUx@盾{WS- k0DIX;X-%3TE m 2s{3?JacWk|n%@Tf`l@.?f>Ŝ2o[[ ~"ML{3fE_zT̚}y b1m:;FAkQ:F !r'R#mz@W6&n8/ "q΅>GMb1]].5 e""}pΓFdp7v2Z&MуboF;_Pj+FЕ'E.sՕQRſ4w#bTn73pX׮Qb“3ҝ)G|daQYNS@ɿߡW~BD4HmY֨Cy$;TVGDg4|SVrR'[Kxt5AԹþ,-a+v l" *}r_8Q2˷tl6N 1껬)/Q>VPrg"+uYlݒ bϮLRi)БVaTi.ao_Xd=lZh+9|){3*(z nZs7QlȻ!dOj-鰲s>W'xjc]T;'g5]Q_BX 7@9 @=2.dQuxւum#mI*P7|lE27Jti!kcH78-׃]Sir.x6Ҕk#Ä/t"S\Q%x$}n}Aw(ڄj8z2Cscti]#$ԈL ;6cPσrl,~ !t˲=nfEbʗ j3!!q߮*L GBQ tJW'6ѾY u#顬8C,^}K*hsw *Z3 \fy)uLpdL%3HW?-0&= u`ܮC BNn O/Cn2&Z ( @O1Wz- QQ.^+ ] (36o)iTXW(]z:=7LM>%=M_ƿWH2-S%gڴW hur'#1Da۴+<0 ) ;$ɸLwyw|Y`{ Ԗ}}h1=|@䪥i%lk Oχ?X_>2MͲ~8Z_":aE$A* q݂E-i!bp( MF:D$Sy =7i!@Eykrme|̯|ŏgIhl&AyĠ͈iI ՅM(i`&& x0"?'fE8" hrGߞЖ 4|Ȇ|T\۸Ӡ ? ;.ZU&h r>N=vېH+omJKUq &I~b)^@b!rr0oE|,-s0 0v3 kȎK΅-7'`_ړ} mr+Faݗ|y;d=*&[*IsŐ:& ee=/&JJʑm f}%Qa:-"ŹYr)^Q!I( ;M.2'i8OZ} Vx$G-!#KccHU78P LD6 *48!8 ^ ]:"x r"[rlP y\j)vVM@KȖyq/Z +/>ߌ}l&5C4L،A< 0տ將"/kqRzgUE )qȟ+Yxgzhf %X8vrn/wO+MgYnU--7u$x7WOV7g0ųF/5Um>,i*1K%F>6MS[/;"U:Ё#C3gjIt7R8١?lM/ʵIiMOg$:JR-_)}q}?KܽX[Z|Ñ>vg"X'|6ݑ ҭ{US+)ipiRvX:/u+.Q˶tzjm| /֌'K)XNgsY4Y!U):LxȒՌ H(ܨsPǖ5f:xд10 ';P8'|=T.8p؍,G~50cC6(@5941x,=a -o4U$ GKɘ">B<0DvTx<%hݯPe2ʒc,>H U4ZaM^^Z- K+<͇5U?Hd!r*kH+Gb[Jlֲͤ4[@ѸY]qn~&S c%x$).M5 $زV tЁ?wRzk!vJ'J39 x<̞'TW3}aXY.=IICi-$16{UHg7V@ lȨc}O<5ˊ0#$\/JDE?4#-]5h*z&5h?X噹h+,rU1 -+uL2^(C!Bq^SLzס%bC쟃k{^\`mLD`U%eͲ?D~ĤhUjq4yqO]wgb3P2 xyI!ehC8x;+nye)Z&22HbAs1#F1 `x:}x'Κ@p9 脑Qy@X[Hqx ,8gp/w!ʁL d$RB3ː~#~E.÷}e{^ՒzY+dVځ~5ΣfiJg=Oq8}.C"~QN(>>/e+]wWAk3Ԇ#,oyY@JYapVyYz<ژ.BDGY96[w7kʃ N&ǣ=L3&4'mM(y0S{~3J!WSgCyx^Ί{&Y׶JY"^S%e ZDI">Z8l-uz ˺*ȃuktްJ4}ݏiwEϙt5Yew3*np? øA?R֓ɃpAX8X^/îT`v3:c`-hLN@"#8/,duq>5.4dыxjx\{ -;AHUڞq֐? u2B[',Ćj`ZUtUn7V=&F)S _w@!z`-Shxs=j·:@T3Bm8bzъ5K@a36 BdRjC |6B? :*<@xBA7GTmmhG{]0yG8,aq<r橖TVM !x9+gTh9q#^*MԂ,<&!P䵍QfREAdxx@PWɈ঑%5+K|hAUFϘ4]GlawV/z"w'P Qs6_6_2᧽%Բq2Cw'(ۼ[e*_&EE=+O}  N&sfzĦX{e~g'(k=%q 1Y lr%xnilΚ|Оff29@="Gދ"GG ..zgtY1n :qo 4v:8EI<84sL"ߥQG>GJ] E/CGhQ"\G~X㽢Z@lY2mvIPl܄*ik  EΠ >2\32c?,C+7C^""L `Y5I-\"LqqPlW͋l" P쏾9ޥ#jHA՜JQcSBvnJ" B.?*Wb,Yejc?.gݏ|Dhg<{ iW"|ZYlD1w=M#kto|v(X*E]_wɳq 3C/bpYP\pH-] S˭2psn Q yC1&׏7AK6ttP6?\sB ?9XݎLXp`横'+% . 3h6\ɖ)g -4c@ teB,9b GppBQ]s&B #&L)uSipP8üċxsKVy6! ^;Z5O GRzX4K7P24qy,5Xb4cUdZ(?5ӧǟ Fݍ2mgI:\Rs=Jgxq9NI[;!9rG2:amEkH1 տ<4re=׉ahо76]G)&$i=rM;Jj3&Us 408Meu`Hk}wlyz+[GIWډΣ=oWm-kVo$k89 S5-2&oFw{,~o)1v|A2zfW ҺNl=AsC^q߱[18xo/3@kN(cCdiaX~p5LBOG/b?^]c¨@9&Dj56$8/Z̓kёuU,iDc%D%YPb6 f"@^~_V:\2ѓ"[|G\h}u 7jwQ3C-w%Os#8x7T]ꋬyrgP%9F.$uf^QY;^qPd @"Z @n%zDy}^W߸ HܰgYP]AbevD!z΄T՘ aJH셈FK<3-zt"yЫKLWm  5"mqf;9dJ*,żIt/C.gWwsƸ a#sxlg< 16? bT vב? 0W.pV3{r (҉=/LJ}D:g.U #;2ua&I[H(P]hΧz-<}H*X.+=#H0PtKj^zrQcJg+$V7xXVJɞw32w8AY{﷟K~Tp yU`2ݸCŕSq(͢:hHܣ GN% c>аr=t? /" vEilaԠ9i_"cR*uNgXx[茿qiTQȣ,0Lb mLF5yThv#M;7"1Gh HY lW1 Q1I,*qJʳDN6(2,̟3!Fq݊VTd)GR6@9_2eöPO'x 0٤.tq-Em&-Ϙ $fM)ݩw: @[GC13$:JiG8SٯCaCea`j;wE   V |krڐէ]bD-`cX+ [ q,?%#uXB2z%$ ¸zG/$\P3Sxs<Ӕ3W6cjR<8|X%7ۃM0F ΋M>s7Alw_HO*툜.GD>;JGz"vqOIOk#[XLx]+ xf#Wfu%fNq? =[_6dU#0P-Q1=XSB_kfrT Y]b o>7ߺ|8#{EzaըG:ӌ۔7Mw‡&rbGDxLzvx/4CW:ܲngT>-es5e̟vm1]tz1={7w}M 0Fs r׭$ _gBhZW4 S^WCZPPHE&4Y,NDrR?! R6H3w<=ZDo pɵW10߲v?;A; zd "DZ…jbK ]COX,CoRyWuRM՛Z8groWcL4+jC郦%9CLK5.ԟ8PlRo8]| a(ݢSc=ҼALyft+O2>`D^r(ZF1&-i_ *<LO.ArWѪ7Ȼ/aMɭJ+/N?0l^Hz ue`U˥@Rύ:l&ҰEew$|qd'S 4%l֤WNRLzE|>Йr}V$'ӅEi' JP@@^5A[(0Ttҷ{/)'h _쨞 o+MP1(EW[ZnRt7fDXLH6_6nګȂg=촚F%r1sY8떨 `va_LOA QW}Q 7Wg#14 >V SΩMf᭰ٶwݎnBzͬq~}`EXx7?9ҚP3!>bPd%: #8) (&<,=IhTw [(V /ƶ;A!g\PQ Ē&_8TS/~?ٺ}ch+?u^>_wV~^b <^gBW$ӻR2-ld9 q(7V_XГ~yLFq{g,ɜ?ȃE7*62:OEbM:e*cm"G1Pr?Pf]ϥȷ|vkd8<PjςoLu*y]r Z@ycˆ֣oGxivgxq@q[bbNCg W?ƂSU"2{4&}`>W: Bm1-t|ȝ\iFK#Q0RyX;DZ{k(;H#ǝ 11n&S@|+ p gs.|c־^aʐw(2iQbKM58tD,܊t)30knO=nd(/IRi*p_:+uz Ȑopbm"LEm@ (&+ǿqeD]*WNne'Y;Vgaf/ZudRV66 A؏HOCUx=%@&H]BR'|abIsqX ߙx!ڞP5E07Mg|)A ><%Xi0Ry󨬚']=or ՙxYeL;y]]A4'a;*/OGZ *}˰xB<g2IOBZʹDծ5ҡh|->.(B񒖦*_^maM]Uv}@ʙ±Ŕ>rkY> @<dKs (̶$@ NbUQۉ_D[J4́E}FY2:WhEYbfSJVdrE/tma"<ag^#Y{Ljؐ@,]\xTsiZPV\\DEuD}w9Y{p6Mfس}+o&)9S^6{$Z΂D~“)4xu{;IsZ0W@N'3w1ZV ]2(h ΅a)UM֧-սl{Blda r ̺)[E0y*㦺[ΆS_fYN\ɶ}Js]Db 1"=X95 {<*5f( ~yч [M "-ʱ:X%+'7-έҭ bCh v6I M~@ M$KuY+3ٝN>q4J +1FdprF#x6 d8耐秝zc*Ж>isCIk_ivHxL0ycY_?Lԓ*Xg[,b_Jzѣ}Yu5O0_o9PϖO4!3`_,d#+өQ1 fȳg^'1SvqJƔ **8вuʹb˱(a;OaLC჏%{nHqVsnFR+?-sqKP Mm]CwePla{Gʣ`t`E $?\SۆUwD<Ék3>]WZ$:LۤA/|!Dh_)sV$-scʼrSutSK+}p+ҚɯLPI,-YuFݼ*T!:>S<8C@ =41 JQ#uHկV]~u{_..wM@Ew޾"檕}$XQߎiTZP;^":%`Qtc6n}CH >[h'f `1STLu*,}i ՙҸ\})ۅZ;O-(Gbt"򺴃ԉ)U!nt l(>hԪuJa7;^salЯ,j 4TyۡI1XbFE/?8zI@hE-Ch7/HWاK:;wעeLoHC4C}GNK9s(Z+v1tSu~E b]B^ J&/M,gk endstream endobj 573 0 obj 95228 endobj 574 0 obj << /Type /FontDescriptor /FontName /NimbusRomNo9L-MediItal /Flags 68 /FontBBox [ -200 -324 1229 964 ] /ItalicAngle -30 /Ascent 964 /Descent -324 /CapHeight 964 /StemV 80 /FontFile 572 0 R >> endobj 575 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 577 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZapfDingbats >> endobj 578 0 obj << /Length 579 0 R /Filter /FlateDecode /Length1 1508 /Length2 37451 /Length3 0 >> stream xeX-݂:www!$Xp˛}ιfjZU==$J ¦@ {;gFfd QN Pu(ػ^Vv^VG-@`Pٛl? Ks #'h pY=?@v&Q#[c9 /$lc W)_;3KS)d:<ΨTWQWPHT%T?|,,NfnF 23#?Ц.&΀ǡGPw 8X%0t2wr@wl?  G K">>:tك>,~ 휀#s|%U\ ,<j5GȃCn.RsglAU?;|x@b/..fJ0W胕KC4c3dkdG@4X8 'goC`feage_CcisK'g C2SH~o!߇6vL =_?/Jcedgh>HLl<@<?P\skUF/ǖ,%Kg ч#[KwzkB`5OX? ѝ,$,݁Jo)dciTwJ <\aXZk; f+aJX1+)Y91߸Ϲzt?j`px޿ъۙ؛ZڙǂLػxX <<NN67ϿY:,lܬ/@@; W(0B-0t.{No)I:i QOH AMiaQ/įYVDlS (1oF>W.v\k`9$M*T$f!!qtxwn}}M" +05xWlUVjQRk /Qr{MęFa?o'S޸͢=yF GqǪs7(:H & j¤+ Ո2%]7S%G7MTs̉s4:[7vOg{{_Z5871'b8ݝ?Tn`m#@5㬔ض } `$}rO#h]k7MH`^(eے(rbs-$jzfoyXޡGtEoi\YWXՠS!@i3ٕt[WɓRB"mj!.<l87Z.ؕ Sb?NUSV̘c'H28l +ud-5LHOInm:&v/7Ԯ7:^du2#={ʡ蝢ǐQ.CaxL2v0*JY0c,czX0 9t/gPɔ%et|pĂ %q" {, /W+l?=tUe}BOB %JWasJir:1E^+n)S&f $7^=r(,~6h-Ϙ[vL+gC4~^*b 塿f7JIзӁPo4S[BeI")F,HvyYRz [-VS`* Y'}^>Bܠ!;DբJ4c}̑pj L׺͐\[JvL?cA6i- ɮ̸zB($YGY+#7RSzIɥEb|5,+CvgQ7. m)iYFk4.G;; sar<7)wd^֎՗sa"Qrzϝ\@)R(p݈achG<6ddj{TƪfR7*:431:Gw, vh٤ O9AV 1cDc 8$C2[v>}_, Y l4WlZ70etgُb▴ҟgV)O.~\:8Hӄnn\šAfGgD0b ]m?+ d#j2&sلb$!0ȟJ,$2hqmD*ru`{P~/^ʡW5I?α3mN3Kܐ(\{sWN7,0`t` p@0[70hUWn7ri`䴢s1Gu/?1N]VfG,EH^iѫ*GênzD Eb.2#!(38tAz\8<ޔ"ym?m@uنSn5]̬FXZOT,bpjԙ%޷}7HsJ* Aݏմb51QϬQ/mIlz4@8*w/l=W7~,gn&)4Piqbg g&>],f*bj\'s1X%yZvw6cSuT_S֍ؑLдn/C1DpGU;0XJ%T =sWM,2 Ϡz$n?Z6`sv:c-"T;&N@MGOy`ZґRD?6a %z]Kp:?aZ2Q"yI*6ЯXqĄJ( *v_uxUW܄o7D'0ިg8֋UdM ů;Unso9>h ܀?W)G5vOnB?Ы)_!/NL8/ j6>,M;d$ǪM*KY_5=|}">][w8~g~i"\pe\S+Qt[#MF,J$JW? ʹ!x~eYL!KъEI*5]ẗe^8_2`0g%U|:$1d 'rAw1vK I$)>\A[ϓdHaj\2԰f{ˌA %xmoy+9ɘW(\xs&čP4jA%o|V3 :'qKkFW/ñ4w?TVۇ .HPڳ^ S(dLc~Z QrI#Ru+y%_;/%\z82/CVVEbSJ!c琺=,+@ͺRܾ:ʦ$1 GjV^9]2aX'4qe-^Mi*[+*"}mՍe f8-^SkBAW̛hF+RK1cnctcwi[UڥeqvWFnCROҍcp~p`D{/y9wbAståuNLau-ˎ2ǕUIB'DkN_5a71MN6ڙ8hҾ}n?ض3gkBV/~lKL7?oZ^ j~B1w`t\}r2PC&G>֋V=9$W-ŬOh z \,1r\ MaOMi#*߶O1ŽܻWD+JOw,D 4" ?'O(3?q#Qf9zskyjbͯ6@'mdd;UwpϏ1:b,+ xؐ~=WTDW]?Tv5G#36n-0;SQ F8fjGIX~oˎR/Q'twi0/ _5S*@#>0"|a80؁4ݓCSYR#3 b:;CXhjpC|ivu7u&~w;iXXi>#%Q\΀T1ȭh]Ia&yĞN7t~.qrRosf3N >{6kt("y/NZrbTCɯcgyg&܇0:YOƘEKu ^mN# 1yޔѡ?zeX&;׺TRZuQ 3pƓ6XtIףV~Q͗eK@hzx-}t+gV2&J~y0CxysL;SدL\ umC%Ycv W_Z$rODn+ =ZNUVFq+0S>l?@`bL܁W$Q\Թb ­ZIZ9İ펝VMHߚ0z.*LmL@ 1_m'b4)v# +Ϣ>{}m5womWs8k>橚wX's:%a|Lt7(zYaQľN  ,ѿS :>8}nwƆRVX-=߷GQ 0#IQ6qx* J~vJJUP1۠WFx&ME yH}2W  _RWd*,pׅ8*q0pubw”ŹR薜5[n+V.#z˳YG)&N"^ :+X"㘾Iw L"yĆVmN=R, % b'%i.-T|1(n­A\ FO>wƟh5Fmۘw?nG3vw_R3f6U(ۅ1rro.\O$ i@Y9Bbc%; XL7wB+3qdx P(~̄= m_ی"Mp0OT&f3jꂂ0V_L}DHg6P%NBts21~n{ZzuT"gs'6cסʑZtsO)4]{E 𝀩 Rاm:$ν Q3B X[YiX''S I?FE޵:\/]UI_xm=?i ^Ga|:~~IR<{o{{4xu ]OFj<[+cj)c(!@W+nKt@PJ?p%ݦ4Hx$a'Ij̄0$ek908Wה衮rZ4aĶxD]BѭEKY)9:[4}W~?wf7zz/Gkcxd~{]2o[nRmLK*'Ce([Mz<ӕ!u2 tdPS0PlV'M{kgob 1CM%[e+(LߡnǡsrCaxyS?8B}UCM*)BG37_,ܜrV7_,p6"&]I6/_(FEs8{zb3"F;2<~pjTS>G2`x#\+}>roSX>bmڙ|vC[0?iS/F/eM\1HbA-Dt"RVOQ[|6v6eNAn;'򇠟όullPgb:VN1^j^k_\.0'C-3 ZH!NR8_Fo M֍WX]{mA>[qQ]}J6AYN=l_9V *bW{wRxa]܀9b0:VDa1A^yux'}wC Uj4|a/ISk&YY_x KY]62I°g/䯡@|fM̢&}i⑑+_$iT'RY*>en_FX^(4qNSN1S(uQ TI֋=wW]4@+]X\~5pcx"B MZ %x8bD'Nuۍ+Ix1(WY`%FR+ 44<#Li)Y-"yl!MfZ%i5s < 8%F(j65WeS*A#ˡ.;?<xYA8*8Fߋ".GX? I*r{÷eCmΚ! kGsfd :#=5khKY@ Z\"IOlB^_lo^ܖP .rce$]P6J[sX۔ S ּ$:grCj#ncހ0\ct(@i!1M9S|V{n"Ӎ;f#EX(RXL@OO˝rRv K)xq~hVFu埘rRJ'TnhhFY){57R 1ooHy+ rjum>,?a%Ît-+D8fDd2JI'(q_F\\|3a>' ~ߡ_8 /ַ(|%˪ 0 ⾢`0'3oTVJ:.sf !r8>LHsp,E} u["Jn!qX4I5$e(/H\ȗ˿ZT/E}Ll>/ !>^籌'B\QOX6B֝.â<]tp+ŏM5vR|FJ,71n!ajASAz, g&qT 8 hPx_ݳx(LӱԄݦ3ʰ{s&\"A@f%NݚTKGpZ.Ya!mp0yZ0 ϺRa~Z$p*]>TG: HC7?Sl4> ҚRs-Eoqa)~5µ"㼇:ę|L`Mk72q1WRWj`<E^({L)?ٲ^[{CgIG{wPGE ă䗊_?g1r!\0k24uroj۹-j-𽱾}]8N!V2eUhbϒAM/l$"7~fB WG &)=kКoϣ Q2mKV..K m5 ϯ$4`.ժ[_ 劃p^!|d\^2faxbL;f4R &u0+q^n<2/]MmYee }=_'|?J҉ Mat3~¦.}h|0<)?D3gp܊ @beXD+x̍q/5m1^H5Og2p:T4YyM|!% ]5h eD5}8%=Ubi(0s,jQT4yHU U,cN%-X3GE EӨ^0oڋ*0)=ҺdO!򔑅,} @\S+֟3?̼h2- #,3\Hr}6QÔ\rN/ӘFUn e69phwF4/3-DžV$VR9+*+=o6^JSu[l=B){dʬ+w85iKXܫ5U'Da?:LVkI`(0ҧ?f7*$h"S5TX]rLrC2ڀ8;'dD0x {1<(LMU`nQΑQ-~xΦRJLIZZ`q|='5g` *(۶mnB;Og&D%.HƲ9IQ'bИi9*R򶔊87N<}ePs*^ _dfN灝iOxݾxR욿44S/ t|S6泐??LZq Rɨ'<px w Yy{ ,L H_v UxqONRYIhO_!ehܹiy犴iſ| Iٌ|}O~*jtaGBh~cxt(XŻm `RÂ,_m I(LPmkRa6ߠ5yE.Zԕ& XHTjBmrPTQ傥iL7$m-g{h/Dk)P>60t/-LP9**o+g(D&q//"N8jR_zF@>gG)MnͦVO9&q$ 7+Cq*@Vg֦床lyW?[:(X/UX C5ܪռR>)9n5Ar뵳B]^(y߹m7K*yW(Bd^s WJCfΰ2:(0Cu,x[0ZVk6~S&HGZh~Fau, :+UPh )%WEmhmII٩ockRE!z6'95;'ף nRy!e,,ŭ o ҴgP3monc1L='{ArǕ~Ulۗ?yGTwMr8S4σiHz[=IBx=u"Vr,/_-G!:`_EiSbҎ4]HZ/aM[^t׏!ϧvk\:>՝~CD~Bs"|5O"_ræ"i2wI,RO{\8YLhoRxüܯzԯ/~OoЁ6`M\' &/ F#c a׶k $FRƲ^>1L:>)1F:?0Q>5痣Kh\#4È/ !ݕt79bR`Cw}] r'lJK@}oUVS"AKeIl_,N,GWu}E{ҵjKճ$ Ke׶=]u W$6Fݫe?{B0+.bFrS]:]˱l!7\'4}[ڗ׀,.6'ORNuP:I+)#`;< `q tW$/^ I |(l=~M8Llv po#./S!>UZ_:#oKOT'>]Sc)K)C=u.fj1 Zì \B}Ð'Ӹ}OZ|o9^Όx +~C撠"l{cgYʝ?!m/xenۍ(-?ЋWg \ ^}d#.?_6FM~;Λ~G9Fisδ@VSe[A\xє o:+ OvG;aǀLGpb,DRc&WH`BG9ϴȨZYjq\Y~WJFD~nyyANEpIBjtaW^Kx$*ZKEZR ;{D  L2< |3x<"&*fftkRsb5t!; |-B8IFq]GeޥV!aBDD \J` ջ̐#'Zc15n`ȵs%EF5D!+>/_Ur¶4ݑƑzxo|<؞4bgc2$f|Nj"Ȼ r61 S3 *oyI\{ մm*ztԫhnS:Pz7B[<߆0;32!ZMJ;]:iup޿gn s)҃Ck2PoWtQ9tJ3'ec'RPF򸖼sn|TR%C϶-lܖ9Fe:pu|Y%cBWX#MMIjpHWnM FhNH(CBSx|l(IO_q]1o.VhX.wl #TIT=wBVeo]WdEB ,.f̘'(}"-rYa,?#Qۑ GJ70kF8/NSwX5~?bd{ T}""VMR .jܩ+̹!D%[ڌ؃S^|^}읖h@uZ>d,-! <^DҍY`Dguk:c~E%\eAQe\s\E6˂>q '%c+ 3Yo᣸̚4I$!IZ|[)ֶqFA?|7:O0~_$oZZVwEORPA۔l^_e )ܽh<ϪT ^s2>! L[fsx)#A:"G ^ar]Gz!.ڲt\ 12CebV x L[yuύ kf\H\M4 N0Mp⽪oH-;9sJQ+HH|Հ>=y&ttGr^:G]ۋR|դBEp5L;Dte_-݅I6N[ tN13z&< t9-\i%, TQBkԬ?UUB3HL܊"~Ls 0{aMoZdaWQq:se_=s၈ݟ>-?i ɘ7 \Xk}XE͟(qŋ?8sBe;Nۗ-D~b{O!3{>VpS6g˲ҭR捨mss:FϘQ~Dj*̫Z.HG űi'Χ{;Ax_4dٴ:h]*jSn--pFSi+?c,G{#o7;ڜx45g>egڗ%δ~D:L@J\$l}缯?P/yEE4 ˙|uJΚDk#k ?V</_3`\XZBYn5*Պ/,'FRndjͥ :꧘kGq{hi-iMEzzP˖YH:d<>pV02f6R[=d&v95m֌|LjV`IˣWr3Cp)}(uO|)[8Z{(/w o Tn-`NPUM%pd>Sס],1{I0 z݃NXyC[zdO 6,#B/I9&eC3saR7;JJR/}7}Ue24PgJq5_WH[c"u7NVb'<4%N73k3T1ua[9VVX_W˟򤸳 PTP 3 ]Cӳ[@IBwZudPy=`ƺLS\Tb=mxIoϚU n_Ӎ*Ђ]ȑT9)M/54/aخFsmksE6 X\I Mi jR\)\)1_=AEU:0luPhôWG @=t ۛwr};S\Ï fzTl<${J~/Ցdzfqt^` m=r UQtogn2 Ķԑv̓|2Ó9>vEήl5H:s,ZEBJjq}A`B^T< h[OH.NYyw`k)Dqkf1cBp=U ?H'JC4+x@np@a&AZGkd]-b2*I;?)QrI|LEL-Opr07"JG|ߎ6 ~?~fMG] &k[\U#noNzhԐ!i|z4IyAk"$ݕ%؜<#o;r.??^P߆L$h\!Ce]^^s=ge1o& 4tV1'cؐ:3)\rzbSqs c0 ?\ ey?1EʜњRF//!r]稘-^zf{%+ 5=7puX~g߁ {o "ƚ3$DpxpRsNJҠْb_֗dvz -kr% Xzj:v)tE^NK@9q!qm"6og+*1jn܄8zYL|}cSzWEIKiZ E_]a|@/oȘ$)cgBRRV+‘@K$FAŁ4$AuLrKH'g\P~m)eΨw=Z$OdFEle` Q/d70t*弞Aݢ>jUF2Ci'OP^d6&JZvjL)__tp{.tN$"RӹÎwb:/bkﺑiȡm/^JG׃4X.XN@p|wV^R4@G,Q #>v*b#^;іۗU+Q;7%G^Ԉ,6! EZ!CԦ)l93}&D @ ](*pyW(TpK#]TZƍ9!f l:qWGq6u9:T]LP w1m]λ/d7,zRx$,/΍"#bsȰgbxH[jn"2'!>ො({?Zr @FԞ2"2y8n!q>lqDڰL ;rZ EGQ)$xq4.&UTZ5NUB\ĂZ' tJg^}_Oț>ؼJ :H,3 +`'\.KqD(racտL-^^ )H#*mC{Ka~<[sOLUxHZB9~ڴzG(@I\"| iϣR4v-9ӖDZ8΢63~.q'K+Ykٌb_X=Q?N[b(ZbV,x" ڼhx;cW9;\- vN[kxşskFjVd퇝?AO=)ʆV@QbFeFVh,Z7vfй'@A_D{<, h6f3PH.V)b2,Thf䓧 TWN`Ī4@~ےFNy|uKV8`^LOÅHR8I(8 ?YνziM"*ٸ!;K- qe[y6h [ V(ͭg;J:X6I5Sjڽ\ 9l<%+/H q--\!ٝWY:4metckKURi fǵ95VkR d&m=8 \;$+Â`2;`YX,>DQtzTXRFsnjy;@{0UAg] MZH%.8Nd5}<{Yh`VNZvXXmd`%ڰA 3$h7,dŹD^j =vxWyM(ЫyһTڈzUYr SfŬgd+|9C\46 U3^ 30")u8㽆hݤ4&t^F6(:3䘮?\Yjt/ HS_8?Ն._YŤ feQ-6 Iޅz]4]p͓<h9>r&MVbvޭ Mϙו+D6M>t+5.i<5g҇`tD(@l9aC;IR4p:^HLwC$T o͒6|*Fr 1 O)Ӷal|<bTzRucpk"ڰ4(>'/ AtI!{EYJv9Af}zL/\`^vǦIߊ|Oq} F]e呔328 g1فӎ;Zc <8pF^#2TkFWFؽ`03T ic,DiD˚T}]r$>`Kh*FyLq{ Z`n/jo*l^ujє7Q^賌֛͊W" NdVNx\+V.FPܨC&!2~F`Q$d w(nퟛ 'GVsnl?xRܠ[]BQI%"4:$S/Ee2%rj~lh:*frc^rVo\E B$"uAs:kDPNr*Ej1Y|}48 l%Zzs (B"ȳ֬+1ֻb])|p\D6e2APKX:DSX*ylEB)"b_58 kyb67PW s Nͬ1k}<cĥJԉ絋ŕHhI gpmiK*6ZW;ܷ[zM?5?s)2/8dn?.CWT//ӬN/1g`c1e;b&7}uYirಟ܀lFЀ_b\+t>]+{~G(-Q OW+ӡ_ d(G^ &L`pBic~/.,yBCXe ^0!;'{lk/:1svv}OtG~s([%%Gښ%rܢVOzw%^\?A:Q~}4Tp]{mWn vQ -A15%zt-S04(/{z2v1,P囧Q#WD$.0 =wEgxt3 = 2_fCzԑqLYIط" Dϓ>7,0]Ń"ٲ[eŜ)vP4V3ں$a!1aRܛPZ-_{q nBN+ "-B 75g2y%aXv}K0g)SEvlŚd绢(uQIӳe$3؊IDח afuAQJ=F0_Vuv+mY%;` }zad|;/itI"sU毾?ye! #S2Ƹ1S5HtL.d/sSZ \x͚ &{Yc/6nA W2y.nzjyd8;1Ef6:"ryùjtGy(ur:ҕ@uPIp(6xq$Ae\T[wR,{U3.d'd(]߶cQûC3Dj~E6SH_goGQ)M5Sǀy:)& C\ґOm&݌bȞp.yI:5O6Ooْ55 юĝ[:<,-n?Ce͙*yqϣ#ܭhj K~= v" 6wOiCݢJDm \mwy&>d>E+oA`&74/XjBf(1-V_I0?i/wǮROUquNtLt=ݎHxB$_m\Ү_MM^0SJRG4DT.awtda}zvUNIWɶ \:4&>m^{'0oUwͻ9xZΰB mPp%'9w>Wβt96%6V<߸ 4ODoBM>l$W `otA$wIjZ`0Z'G)f VW" “i8C6y U6jg7 Z7ͬGL~`{AW89<3$qo&s; !KDc?WR'w_㝖1jeaS*䡊~  QVx)3"6ߨ#:e7cTa(cޛ&%ݧ&?x*Qb\I԰U_K/${Bͱ`qͽݝWZj (pW tRJ7>ie-zK b Q]г@~+gvuN QEIZ/ N(P0".>>z(G=,⭿2fRw=J}{^ϧ?;jP.I;#+PEB0DZzP.DHt @#fg/tt4ognNO>|}'19pb?5R22]KK[Wg|ߢe: dr@#!uhks0UB*tx3C@׃`gig*@~;BEF)xlKBs}O(qwC^qeVόVWp. caEcv)&*U Qb;ff?Pټq+fdhSr*Jgk&t)7jE$a()!gt^$YnwBɤPW1S˷j*4cOB4UTt6\1_%lsK~Ⱥ@-TI|DZk!_qc`}8Elki"P,][nw76P/~o!jIy0Sek um<̞ #pgL&朋hFP4ir;/H},x~K~٩::U$,kSp*́`yolF-2sk&ލVl`  |nlD Swl^?cV;[$ycmxg;VӮ>ِrwh)q]fxPlOm0sAm/MaFSC{6wu$^} V7I]rA!z ܱ!rzǩNq5ӜSZ$xSA#}2Lc-x]C|BS c.cE&]"a3+A듎|B#$Vj ;1z EhZ!ᰩ̥2[;q}8 LNZx-nq}+\$h_|$2Y;)PЧ7,y@,'/˷|<hm1t_zGPK.=-Tw]fK CK"j5v ojg(1O{,T"Z!zv$X'ʕ* n癡_{(qɌV_@pcEYqL9 MͲd1xYQ;TNB Å\"CIjWUU-i)#s]ƔDRXjXu bl&Ĵ!A  L37fҾC=m,qFsi>H!7)Iu12ȮNU<W8בަ,,nv IDF% ަFkz8mjIsǵX,p3t\a~DX!Ys7../EĖi # 2skR˩E`NfNE:҄mZ)lEȭ(ëk ]͑hgSy!EhA$3HWxiWs9 #"DMdਜ਼YuwE5#9-<_$(-jXxiC.qW9P廎B7/!=:27%?V5>cT4&8 .׋1;(xW"W]J(&J&[S߁s^>u"&E֨Ǡz$ # }u"xE%Mٰ0Q4p %b?|[GBa۸S~}prWlL*xhpHpUQ&~&z7#gWvPQ2߬koo5V <|LBd1ʤeTwnB[H?teI͟1Sщe'M_kʑ>MK WK|Op2!Lt/9#뗐$q!" w0#.a V@l+3T YOMô돐oc"ZS~\ LǰX9Ѹq^6wxuĖ\I K&-/ȈnA5`b$/Af'aqX@Tc8pvD("M`}.t\5FO)bVBxVzX[#0{ &|Q)v։G|Ү[Z&m nKkj[O+IDU_|(aۨa꿿mR9I܆ϯ\ι,Gbf~J(~Y,c_6 P |؂vgmq uv*Oxf3؜bY1/"𖆚a,n8qEԞA˽UjEP.RB.ac\e"Olr\m U[g-5sAt;" 3#sd#:ꍏ^Fh&ӛvpjO$5vx>B ."۝gYǨG 0ǘ ⁾Φ8*tCTY%OpOɌi:IpBOO| naHC=OzIqȴ r:URGLXiPԁGtBp:jjWKjqϼ3NU>1+|Ȯ ϼy#0"ڱ Bh6S;tW/a;ZzJ9ҧH. 5cʺ(O m]@#L'P<+0AacjX&FD`r3{$k-&dUr;7b Wj Dw}\ޕO7 2ٞ dEX4 Bqj*r}ahD$N 9ol(kU[a7E tJ X6'|G_{.Zvw3e>ݠݫZYᗃ (PCD + )pđ1W%0Do6?^.qW`2hb"BK)699?9}A͇erQ~?Tm='s|j;>o0aP/j]\cA*`PL䯨?)6EFmf26FMg|jL($L*GJ(͌wRv]uTKŗ!A\]۵W܀;4(p=4K7Wl}M6&ypfl7%<_v݇jҿW`uOx_(6o4=d!~m čB5#ק[弪XBA8PRrՖL Y? .DOO&1(by߃һ6ib6c#22t_fvqA tfJsR"Ue] d:5uz(1*"8\'%)9@jz.`,'fpCYhʨ=~pq'7FFaUL^z3 %Ɓ5ˏxդ{'4: b.՝_1wԧNUAiM;PEPD'cm@+TU,"@w^s-'x ^g^ecЎ馸oh$ÇՁZoPk&jDQ*AHQ| !!"b3.2e\ߡGhx6h$cQ>TWuDحq-, 3\WvEX K陝rMBL`<|~ImgblzqAv- ӕαK62Ddg"@źjY%WtyqG.Np'C<}ɾnbpabE'''}J}0 "z Q? [p~]^ cωc|=SebXv[OIGk3"u&߱0|j"7:ϵG1pXi9E@&<3]:-j'gJ1xrWcsq◧vR,UqY \,0x!I-6Rr-&3iI"1܌f5KUr?==TOaH൶?s/Iϗ(/vQYD9ʏ@HV_9ⳳt(U۫}D:oտ)e͡ЋWjk dȓazlR\ld{= Knao/`cT̘Y$eASw/dVt\f0E)?fFA㷻3G,I(zQTNkkަ>v>Zז'4o=\V4lw<#雌4,tw`$3Fq0a*yp =#|PnOxs|=NyNCwਗ[@4KXQ[.h`=2ՠ1sx8Z3okб2g'[̼~T|^Dɐݲ%Tb/![,TlrcK^HV*VJo]Ğ( U+_y%E̺Oމ#,d}4em=TDH(HlraMŌvW" inJXCɴcs9=|tĐMZ<ӺkU&!i\hPs: YqD1r?;TW D鰲bJ<=\YFUxm 0v4);d֖Poֈ>"F!Wi )@hS??:,QC=P֌{CZz9aw}ui$܃ҚRV5E U1KbT Z"ԥ!'dstF 3@c<ۉ(blgڎeCީ/mꌀBĺm,-@ 2|ԕ٤)DnŰh?t=גT0| Yg⺣q5\2kfUtt8'!Te9Wt}9adGA Jv8#j"zrAG)ߪcgBGV3{5Ԑ.SC>_!,F={\S asr_qSL12鐳c}dM3%2>x1g0/ )ʾRgD1bD% (_L63:Z0^ c0`e {Na*FkaT?W[C,!SO=';yx@CA>ouXDV,xgG14l$L7/bey3g%0TB-Y@"'ݫ5>k[|YVC70]4v"~$FuܱEbOgWQ|.nEy;71HgDtWJ>StSͮtv/J䊊2m"7D~dQv\aa5<~lxGlVrL> n}&wPn#aT?{^J$ڤK9uFe [llxP`TҪRkwOߞg 7=pӖ|ph4kI:F.FxMaS):«L>W,~x猻/0,%~%iOgdKȴBJPٯRLm:ѳU*J5 =3*6#IOR!Nq1>6+8HxTMπ_׮YJU* lX{:hac*t: H'+yOLU"emX*?ҶE| ŶBcxԸYu6 #MA-B֑xej+ :&)?"YEoʒRfVs82DTz FꪭVsRkq&U}Nn3~ pD`R |<A#6((Bts :?ZU~xG\EG9 P*#I[*5HyZ|ϓx(VFp8:fXxY jic<=J? )A 1b(Uɐ%ȑvBpalAh3ی<= \n5=D{pלBHeq?„}d$'$=irIȫn; C[ݬ43cǁU`jlV -.]LJHSFH Lw B;?[ÄO.pX-hCԱ|́X.6<+,z!O=yn2-VcjgJiTL:NJ+PM7'Q~`r;蕽IX9v1'Lw?˻~\xk M˴Z:M"UcO;1B?`a3BS^N%I&c%8byΙcg<t ._XAs% #NKe;r{El__Yz&)B8I]&:E&f kLއ[vk2jt IH\PuTٻ638{-u2L6+ƭVu. 1#q88h_9q>,MeI; i3Qu*F>]#1܇(V?ڢGx`iw86e_2KCuuvMKm;ECNj3:gBq*YJ)ݾY&$U͙v3YS[x)l5ln9; rs c'0"#$J :|% YGZt_-ǹ,X@xmY;\/LuB6G-GG]+'T!Pc,(hR&ԡʴ=;^ą-p12-TO-˳ [89=x({d㣜E#p]~]UjavtО_Xtm&*4_ MH}AEHdЇjc CCwl`0ĝ]m48EA\$h1h8 ՛ iٗ )>ExS!7p7.FQaj{< 1^PK90F&Hh(HDM/-_McD8P5Z.9++*#Cp") 6GΟ2^ 0SȑVEsGc!<$$,ڝy]8]"N+AZuh$5/|{Z"\m5P8X!ёv.4Ht' {J.{[@  N/d2i:a-“-?lZ80HQQ;*zʹ!0_nd)m4d wwNN*ގLԚ/F#(^Nώe_CzMyU3Eڞ7V@ģ^)* 'd6VzJ󅆴w҉>TMr-ickbj n'e *U]gT/8?g4%??~մKDǯ9%N^kuKhs~Il_ .dV24(t% Ļ*D54ՓIL\4YZ`>{ Bb\&fn1âK Dn> _ʙ }'cK.oEzMTا~v]<)КO#ӂmOA 5k1qQ -U〘|PSi,`A;I)g$-^1/aJiqe.!?_KJ:̿`-\U dv(΄pm7gTpU}f%Tt ?$Q-ĸƦz\6ˈۚp`$F[{)PK|;}CE,-@.Jcxi H}4?mh%HUZ6S||@A>mg6c(S|hgCVtk>S8>dUaSy0EFpqtQ` P}Qr;.Q(xSf!; /PTJl ?}!khÊX߫ZL_-r*>Q2!τ;򷕋CrC.a0b?K*.CfD֙ؼ^z;vsOAvtH?N$ʴn餢z!Z@ēv@>Gj6v`^ESAY"ѝg #2gQ÷mUe /b {y>6,}q<tmpkUrH W޿gBJk%؝.{]su$ZO09uhq noR@#vD-5|$mdBCC^( iM{ endstream endobj 579 0 obj 38490 endobj 580 0 obj << /Type /FontDescriptor /FontName /Courier10PitchBT-Italic /Flags 69 /FontBBox [ -92 -299 663 858 ] /ItalicAngle -30 /Ascent 858 /Descent -299 /CapHeight 858 /StemV 80 /FontFile 578 0 R >> endobj 581 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 583 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier /Encoding /WinAnsiEncoding >> endobj 584 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding >> endobj 585 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier-Bold /Encoding /WinAnsiEncoding >> endobj 586 0 obj << /Length 587 0 R /Filter /FlateDecode /Length1 1493 /Length2 38721 /Length3 0 >> stream xct].vVl6WlcvرӱmwlN:fǺ9}~qkΪjV.sWcg +3scS?fn/+~+WPw!9Z[K3 +gWK @lo?.n&/tu2W\s/>+~!]c g _ eVp2r1MiԬ__yc//h h0v7>ۯ:,]`QLQ_t/9X̬GKɹi!^\4_H#u]M]ݾTp?o O, +gWߚ4W-\\_j~팿Z+:,,_}icnOKۛ;xcK4L_Gj hz*fk`l/ה8XJV_c;+[ޚVpp3viW㯮j+ڴr U{7̀ζV@%fj_M?S`aMDA᫥K  =ͣ'@_+*no`feoՈ_il6'dpsp7 u{+'7k6usv߶Jͭj zMqG g1ҥ6_r|WDtlN;OM2v5x¯-+hs^1\=k(ٺm:TuQ)0oKXa5APCR-^>coBeJqVzo7oN=:~~7I"!};/ݼӓAN|^h8̦]BwQ*AA-=As=[D Y^&pqݺ2rPf/m1}߁* iCkl39{;Nj#מ%Pёy 42y$0"l[I0tUu^=zOn&{8\BV/x$m;UoY~\*x{q!҅q(~:!=s:M\{m S:u_[KڅPI"%-SOCjv +;yAu9/$8z!R|շSK:D"ӏEOҍey 3֪/I~=tZ\ov^n1xѴg<hŃZ 9 AhW{&; +|=19@*|,v *+ֿ#J|)EAm .K;U]L$M2Nm|SH>c`%b$B*t^*·;* x#Mx2&bTj_bBѮzqEOK:j Nkx'YEd?Oyջӡz:NBYWlLoiètus[Ta-p 13>=pg;gP@| kMCq(gB YEE>'Us$q|I$MhouP|[{A~ZPއ"D7?m1{%P~SCDݍŃ !*4ytVNF)U\w o嗜ߔX-?PlTeh|(ޜ;Zf(uX)átFT?:.G#FOt޸1]&4 e 105$C1!6lxEi6/wږocmcn%+!!:JXNonuS^qg2$ gtHa5R1 5 k Ι{Pd 6L0$7[tvԕ P/'LHz`׿oTge͟㚛2# Dۄtj} =h vⲘgz?g^!Y0a"H0Oz 5Zt Ih-Y6(]} *ֱqr@2 }CU,+[xmaϾ!p־2 $8WQ"?޻9a[#Rdk\ha(rՙAL|LUDrUWry^Gv'>\+)iI=Ismv^AiT CQQGc7yKڟ~`g|^mAmQǚF3HMaiD3#qLcX]NjH\&A:2(?4DW^McrD~?Y,(U'/W%g`e1Xwy}QRa_A0/VCdAt]SE 8LX3v20m~/ǨrZ0<"=u|P3Cz 寧bD<iIwR&^V|}a~~-Yros;(߰NA,ߑ@W5K! WFhe`i*l(BOI\V5~9c q/5!$.VGS\F)LHSQXTv&Qb>ѳb7^jy/\Ÿ L)"ѵpH얷1[BKYֈSRt9PϓJ6O_Bўrxo=]o253k\nو~Pacc(_"IFlzEIETVPR]CٛhrF3BH8mA43 A-ЉmStm0z4ÍcD~Jc+Lp ڏA n7M3j,fu0Ym\F\/g&܌(7rJ6H~T$ˊ׾[5͝ӫ^ &?0ᴝF෢dlU%P5p6){WZao 3a@¬ipvy[LYvtg(hګ补"w致 t]D ]q@wXXqtd~0l\'\V7͑L79#IN&^fUO˔FNT%K Z Hh :JbŦ,mw%Eg؀Ma9v,L s%q3|>3#vDžz՞[͂}dLХ; +ᕃ!4TEFʻ?)ߖ34Y{$#Nƌkkhq]k~e $#Kl"mmGXߓ c%0ۭ7 S\8FmH=Edޘ0ftȠ.fW\MPBW~\MRJIt"JTs"ai>'&FGKr$vd2Sb[uu`1q'x-Re1q>{&μ6jUzRIM3LNq*O gJ|dI*qN[~C2i: p8 Cm qvn_^5N7oTJ0~z멛mt}VJZȵjQYt%ZtD&\VBVEwy&CX2E,>zgGh?ÜT7h/[r $yk"'/D1)AQۅQK>N/NilY:c+= D/46 TfkQ;kzs@e3t#xl. DR+_*NnVl#겵3v]%&˽t' ^g GZq(g0o0z{h9xAE)9\l*HG&8UZlUjƩ2H&pYӈ'hb !IOu{P#G3ѝz|,9v tDaPcC~Mm8ATY%%c )f~(<KA#S14AiqQS1#! j~HR# PXf` lHV3(Xjtи591 Y-l3gs1 ŹWn ! %xp}OUTYV<*ETwGe@A\x].}m:h3±hz++vLN%@|A>4YNgYFbO ){+P &ƨH;۞ysY~f3s,7f2<3"zxp)d[Tʜw|EK'G'C(X&tԬsbū"q`{M-2@@xNmfllhWiFg ˱4#z礕 v^ݮ Ks;Bn-iG?5>˞AEbǏ\9M4:e*:8Ft06!~B8J/nٟÝѠk]/-42@,>χ_v~).}1Z"c^=`rđ4292%aA _OĸE>D&9o5;Ϗc6.7W?w(ff*6瘪>gH'ҼSA4xR>LsBm٠ɤ\vKn`.Խryl!C$E03C-#xjɏ=R\Jh}6{;aK@95D) M/4Bb9-wޓ"l6 @mf;ඟ@KE.깃 ʠ$eܠ|[nf0ƑF !L8S5 ,Bp~5}: ⼥0w '?tw5hx a{A.< 6/rZuٜjĞOICj֟&v_#ݞ7}5щz}r])-BHm7ʼnt,DRq't^ÍPDI!΂6GRG+)i؞0_G;)8t4\Nh=5FI6;zX ꠣbe4V(ϤNޝ#DH%.aF~_SճwWD| k!{Ү朼na~7(F#DN"WƮb|F&Q:jKw>R(ʩO7nɉrAOt #!l'Ю_^d0eDz%59l%lpts0,zvyL WdWF31Mܙ}h)b?nƄ۟jMAh_:MvbGFg_FఴSkUPAsnk$=fg%^.c_^qb*)w1R.XCd.fw_Na bꁽ㟲Ğ}Rq"Cٌ\:9>m(u$fZC AXHv1)%Y~Y-j gvds hIBjBJ8k֗ O:N@+e_fe=]j[KkcH@Q2;Gae=i9uu֍Cxkf͜)2\RG`6HA-842*ͤ+wSK@:bux2{L^cBh+1Fa:?j\L N~MKzLHkUۈ@Z6vg=ogEX'E6si DC#ԹA_RM1OTXuǾÛQ2^}˵8-gry" (u2E6Dqnr|v.-mh|?PrܚVkSق9wiha>Il cJ4[,c Hqvo.dSڈB)P 0g%3$f-/RXb4o\@Vr|R-BB}Ihb'D6KT% &jt&>P &@{Yw[SL GJgdžgN6hq sem 3ḶJZrDa=m4s;EQ(ed=8Pϰ|U{[xhG%xܜ2>Ku@ԋa~6C,F3捝e!Ih#EFCut٪ C CgARf̼·)6sυFk:ICW1G_}]Cl>Z{Il6G U:Uշ:QvC0Qyx$0ڙLAUG?M\Jyf<՗:v4ɪE.6ȩ@7b|wQD># ^MnmonPJI+inGmNߖ?4@Uwڴ@{!13e@s7M lBA Y\X\ ~$Ǭ(sV>nR&SK K}UzO%r\jhAJ 6oqyuFU'm/ .I<B,m~wsMbG,ЩYD'{4`BCxlDQ Bﭒεdj5!)?{{PABq ( W֞Z @!<i9b\ t; ;Ȑٴ:}w]m *>f=[R;frC 1 o@:ngq~\yJ78>SVSc9)]Ioͷʱ6}ByT{TֻR:Q ñRiw_*9}{uaD!4QO]>ZɄdAM^L7Nӳ5՘$:mIkv 3Z+;cT2յ y jv0fQ`xp \ŜQ3+072Nȥ]"cvi,Xw*%duqfZ#S9ۥf}m!%]2'tN9/Uzo'%F6;CaxFOzgZ>P$xk_7(ku=>G̝ E=UppLng`~Yfe\;Xg5Hg. BB3s+XUbޜc DEqeT!) KSKhmuUL[6cφJ&gߑ-ŧг-TJ4? i=V,fPX+Eil0n~2i*<xJ ԇ*%whq%nnb$Y 0ZZlqkpĜcKڎlDQeRN v~umR%V,*Tmv(Ouٍ|D蝋PѡOrlo<24u<#?Abʶ eNBFb),Ȯ7I<AFۍ1[֣x=|nR&ڕفYrʏЈ8}H+%m{D7Y1N8&O"_Y lslz(f%CA4\0n"[[Bz٦YƦ%)w> { qeT 1tl,Y`kB 20@}Sǃ̞{=8T:5M: DI`X"d/_lދ:7y\8g[Yn5%@xҠ\p}('<Ҷf`WvFڱ)l#c>WuzHZ"h1]+k^@H|EO#t62&yiSLQhm#E|(^=XUXa=N9&,mԠ *v\[y6Miю` i] x1K6.Cs|=\vj_4[wZGf L  C.\\"ۅ$G^0KN' ݈@`tg{ ?Qn%.2&͕ƜP 諜%"8ێ).L5B٩eAlP DqI"=#zlh,+׶l_i-gZ<т.39657KȜ(-x%aOZi3Xnݍ c4:+)dߨ֧. ^D.]⼯CRAm?Շr~lELt$Th0F'L NR߉&EW 0m?^'ӓX IVlɸacVOD.ɄP`f6}fojo Fy`% mMYqp ]|wVmWmVy9# !wո({ JXyH.&21𩈁J NAk{" }^#gLLE2#0KUNu]7'iL&# +1ӍIJ{'Fg5cnQ0Icb'ζ )]E|,!$M0u;I&"Yߐ!FYlE)^^(OEY*F2o&8㎉\Ea .3 aKߨ.cJWa~rs^ {JI.WvZgEӿB<"~8TQO}8֧MΐlCyiEc8QCهTSs.VE̅B&!;ɟ =\WY:^HNMAFB+fƻ=RSYe.q 7$Yw@#aΉT2ZJ|; A/orծ Cv$T@+#6ly~}.߸xe h^$TQ%?&'.n:h(BRc$BQj͎3-N[$aa1ni|SPaϷR$ۿ۴ܻEgDy$+p.=h3r«[R..wϐHϡu;i/ J՝t|*[ deC5u^bC/e1%˃k@cX :kPowy+ #e'pkSo2gA6̎͡`9U7 (S}!.od A y`12"U /1ffUcp:/dOǎ\Iă|*L?Ҽ9CrL$qIK2Q Wζ2SZ6sY#C :"|PrQ n,X-rdcMԥO,M-)qYw}8e@0z`/L5UrF;Z7 6|㉬ɾ_kNnY|gz}YQXq8ЩA -,kxPmՁLr<ˆs, G twjG'R)n¸nr3o⇢mI&In\JQ7yEiίT"cTdısqF1:-3][ؔd햰|vf |~U׌B*c^]QdMo ,T+[@H HnkA~sn$2suI_$%9T$ƗUX:p{ o-5 S(L /?@QDsQg-Hr6i/";>kaLMNtf?@0 nKunbL"fc?^Qڝ}E vA^߃Tܚ5x Zy~<,Xj['}4%v3%nEI~V{݋$ZF4^ka^%,9ځsEEh׶D*HTtTȫe`m,vc7z3mx :WR;HdH}F&VC!1Wa!#LewVWrpgڀwk${)$#6V=Vd) N ָ5}b=t!)o儰uSciz6b:-43]_i11q THЊKQ]{ th3T9g;܉lY-ݏU4oa}8O^V" n_鱦3(ΡW(OxmV&Xt7QS6! ISql~T09`FHb&S4hG3]S8ߍB%KQ:Z_idնߗem&"jw|-H5PܔG?բyyɁ>YXmVd!Uf!ѧc_,G 3%FLAA.Wj?Ys4t4E n=oGK~:>ԵrVfHS#\߭[XE+AʋmcwYkh|ЕvُLu )t)Vc1A9GRam&0rZ幣PF}, ;a5e+z$I-q8ShI_W)ZGZrÆEϦpmrxRYI^+K2-Jeɧm+Qw"Kّ|*uKVe_^95jܵj`D'svTZ8cI;_gʉlNZ )nzlVMe:tz?+qú0\8f&P_m'JU53pݣtʁ[ $.Ȩ<ǎ=='+%8rAZ|RSa2]=SkU2g ''X2x=ju kgg{ˊ͊e_ g,WP3.}l¤YčqE[oa1w_ݤo~tJ ?{Ĥ&fD(Qnk*3X>KRgB&@ )ƦFv=LGǤޓu0gIDۏ \^Fh6|nnxAv= Qy"'V6xј w3|sz'P-Y U.,n.nI&zBgR>uȠ'C?9 5z-LAx>+_j8'1$i\5[`_#~\6?e=0h5;OkޣcVUɜ "b^O3r0]!‘oŘz"@HO帶2h@( !?V0OHqbD2{f|'!3?af$ K^J@$YmX*hƽ9a?,O< r2.p]'AoaG-Ƶyfx/-%Y#E[ ۉ[:'7x Q5y0^U(aCq'e_'.`ɿͧHyi~.w cyc t4A/\+hmԆwN4x ߴ! =G1bBlJnjgc\pmbmr)M6ZD1iU8bt[oKƿrTg0-ȏpY'lWzoR^ju-VWM{swڈ=gbdqd GS_*#.F,hpgD_:*o, C3& VuALkFBUC *;iݬh:}ᣂp%y3tz&wf沓< %?S\vVvI8Gz٪' 0&C@vq)>O~Im3BnrĈQya TD8b[YsyL8"cvnqk\z;rec!t9J1?'J~,n^|i\H 8$l&*k708Rh@#Pvⓚ@BO}RTX l%WgE ]m:ke2m3,G[< [_;v2@1"V7X_}Ħaޣj &֐*')crPnY3mzY&%%`d=fFӲ'8IOI(m&ff-s7Wʋ3L9P{rszZ55`WA1J;-)6Jsh/@[hv_|9<2{P^K#\תu2mT7TTY׻fq9A?7Ze>KWce{}Bf0Gx9)fBYSháq 7}v\ | 0Nv90=. B_q~h'hOFMKW(:S r` ,,(:-+~_M x1 u|kE1bA X15 2fam N|M..m9= )\ZNO+cÙ3IFᰒ\Shr膲˿u BOFTjNn|s#fW4Cϙd"Mr"\R[&@T8[miObVڟ;VB ]w6OVA F1ZYBΜڢns/둖$~n#cNإE9s'Z0,_ٞ'd8(kTϕ9:2 2rkqgn#w&"\i9n@DzF<[S&ҽP+ Fɼ^~9> zG5e|օ$d^b&Wf9X;/ßH9q^冠a@~tz@]UP;_—r|T &o(m7)1J4/۶ ysR+_jԻٵ] 0!R?RJ ]k s?R%M$cF* KZp=RH`boD|M0fnֵ1)ݻM.)WӾ kñRxI~b ~X9it≱ɤ~\=ےN0Q @]S(="C k%, ᚓv/R?DCLХR2b"~RoZ2$ .Dw$m2x|O&?zK{T1ǟ;Rg[95FZ]+jf͸`Qx#o=G47%lT$-Ǽ73Ne,EE-:ͽ5ޭИЭB)ym@5\L[~ɾ!r&-8_JûYs.bV1> _C]Y?syEXDx#K[ 0a&S:wSGmǘ,:Aep`T" =oRG)EGg I̥h'Yjj]X*tPFUg1mXu KP:2M?}+Z4gD%ݿ!3#>,&730o~vtQur{&)O|ESHY OCR p9`DTxAq\ >_h񐕰X%T/ V%A+H5Cu1Y rPZM?w^;V2su~w?1]Jw=M -N8l6㳹_9PY-Du?Y>zrl;wUMu[6vu:!My⏇k7="pp \T1fxWhQPh<ID3H?@:7\:ϳѐ.pAARLKU`K{ 7rV]^5Zh.pHQǗW X F"MW$A"=ɼ|)DR-@7w8 RKMձ7wt;&>l/+ |37v4"A7zS21m.ؽXPBX{(+8g[6%$1LZH{ho L )IKPec[0b^9rCk^$x?wME˽œYW8r4!G2Z qLVݔwu:E@S G~ZiD-u3T+le#i^LLH ,t- 2 &us)xǯfo"8 *SvzvCye([iDL\T?dY4%K@np(չX/S2۬*o:P*Go!ﳬ ƷtfVs|큉պf%aCK@ZC,65KEVi":2dQKl#Xۃ0-JE (p+kE!RPi,q:yFlӓ,ԭPS&j=3ٽp AYv٢N(<9D @3:b_ SMK̝PNc}/4@Z '2eh'}G7;FB` J}V?Aߣd-wY̊ק;5iaYAՆojg*rFIوBX<"Bd^Kyגʣ:q7Npc+*Myz)RkBŅvpf[ biYbm(&"-Cp,cبR=+ۡl(I;L۝Cxk6b|TOQnFF+]Ri/UFTrsw&&`A)c!kY c/([YCsŲ`m'WvaݫCJOGڬMVPM*t" iMWN7la| '48k`$($#w;Ff3yP<ᖓ<HsAZ'ĒAi]ܱlN\V(iu{ Үbg9[/խDs`X0h;HߜN݅z9w7 i7w~&87Ƒ¨vwk)[r%TkuӁ[s[jY, :|*j@nCk2L;y5r h+GM-iB.n[h&E&_ hskuhL-ђa|R8_wɊKۆ>چ\x\NၺXX5!V6z3ef-X)0|>q释1jFb56t Sedi44cU7'Ц\a'+M`Hp"릵%-M}+ HWIIbYh\џ4 gu= ~ծiKtgDNNc񁉢ey8X'cp}4Ha2UDl܉Җ` )+v!A ^zoOɉh>1"j$E,DMѐHENʐЭ~2]V^Y}Ǧ΍;Ox6OQ)!$"pxn;*T~_SM%Zdkk曑2\V۶ByKiO+mdx3:1$$&RB(˨7}n/OaP:+fFEegB&P; ~\yĹ|6L[J螓!݊W~>tsLCNYe] 2_\ms#XX/=.q5l,sa 00=Mv/U KN]CwFcQDCl\7vHSVQ`ֿ ([ʇEB&0wf!(0W$m+ J/Ǟp1HA^2bƓeժZ^Ҡp( ƪ1 +j/RpTI1b.[߂P6b6FN`KL g/)lfYbt.w.o񇻏,]G#v TЄ# fKMٳY&N2gV"_\jo$4?ā5GEdOFXd`@vN^>੃pZCIXSi*_ /(IWʭӜX5oDϰU*0xXG4S_!8:ژWJ>Kgt_ quϢ;1\f$XlWA0Dxk6!6+ކE.MDlAl&U` ,-/.TXLzˋR2$ꚉLesXy}'ۈm ?Ǭ5MB4d`.Iáԛ$(7T_9?ps;q@fKt}۷1~0mLt5v+ q}tsMYιRwl*+p~; NYb;1ĨAȔYv K+g؀XdALOЁx1J;FTA}+"Pt`Dž89'8khdGys q$LWN7)Q@FGRқ]*qK{%>AчU& ~`vݜ'%J¿zf&VU ) 1:v( loQjyo/]\S0p8HdDyK[LD>A<1, .jD?:?XEeɼH\t ῨsA|͙,sgűњ( ޹6%exW?x)LM?|~~gP(BbB%v6i:ou=?Q:nxHhdO9: aE9@括t!wP*k]ʶTɨ_dp>YY% ;x]:>;{hG+I &0PW.j0bOW}gfdKR ?.>֧\ tz@*atg? wn}7x C1"G߇a h;:t)ćLp©^ !dA4^f.*Ye;/6R*'1~E }qܖN<7~:㺟\MoBI9qDz>k3HL9cpƑ&:>.MSNbm{] l `9`JJGi$KSI-Bg˖6=0SX[hbjkZT 5l$r(-MnJC:t/[>"dҴU KUQL_ETR;P}ږdtI?i0ԉVn8'D@~pvXI`6nlDU>-q?(1m4cޣ${0ˢNط[]rm!xB s9FsKO~Y0]ّT \z'51h in8mUJ@aFe)ӧ +EY'.4&~bOe!Hr"btdZ9a?^Bx?[9-Z.)U3˴fyFp p;;8}Po9ָ)9w.N-R^wRzQk8?kƋ+/h! Ľ6 Y `'|3&|EYU1h,YPOEeB᥈pT mkx L,VެW~1(%XϗẐűk9p]?ۖXFVުNÈR5T4 v:Ua*[Vk? Ƞ' U%L \؎m㞧*1 _ueߣt839p62hpB@6"\ևvf[.pvbٟHa/\dd9arYvQ$3:I_r? :^#@_(KtumZ#u=S{bR' "[D_a4٠ßu<6S hlۊ.c=kjך;Nv }a-KYvb3x@8uU/+SQA;H'#T2Q)x $n $ D`Qc7z$wĔ l$0!I&{{$IBYb,&+w-pSse(;q ,="q!?H0EpE ?v<~!}|$B.FT ԑ0tjxL.;I<_MC@'t'!#9-;霸AT2b eSm@s6HSUX_W[k36رJThp?媒m cZr"+t0(ē5tzYl95^J@?apa̬Fy<1/G;6`k: F Xi$FJ?s #K?-HT}oԦc#El/bDy}X ?oJbQTx8W6T%שt%pKfRJ%tڗgܑ#p`A?9hBW~=);k~~!;%x }=a}N kkv^.P)XB&"WByK;zh 7w_jb'@{8PvKW!vk}ng1 .IT4H"lf邺l:+%TR==Cg~~wUZU^lK_OOdrK$,]'\sS[-[4Wh9Zn{il7!)|HJh$='ՐT]'>3UV )[!}tRE G.aq qTMJ|Q"a&F\Qs}\Q"wFo |k`PXg ^* rL2Ҡ7Hv)nܴ9F 3A B+1sڰ5hVJޡT$,UVc%W+:(?rO]t\&_L4:uO@&PN] CNQ #-Skoڈ[LPBBWۻޒ8BjcɟTwL5Qѫ)_;I}\T\1,AQYx\K5pܒ ZL~2tʹ9DgvwʘQYSTsAk_sDf;R?uͻ!F Rsfʪð(yR=KyzxMutI c+wS yjP?*2췩a\j CxOo+#}o@ֈ#QPhiT_ SRz!M'[T+(u6pD+CW2\1hJL-Ԍ4Çೄ:'׽'Ph7AXZSvkw貾 + ܟf?Q"1E2(柝Hdxs-(yI+:u7ǽQ~U'2|)AG8\?ee%go;$y}+S_]# 8Ϭ1l37!r:ựQ82, ۰7Rh2qcEwziNqۿ<}]^eieYgMg ءVOY5:kE<2}T׆DExU΅>3/?¿=H!C9a5%U5;nyQW|mzhY[ ;.qK7U\OMCV VVFeVw!eKX5)ˈfrwqKB:Mۍ7{=asjFIjx4ֶ *; hC``jZ=7εKpT UUBM#`|Uaeyvo鬧9Q3, "Mwdrk:'''{3 VlA% ΛR]f0;8PZ4?*@=k~飝$ -~7us$BAXa\k{CB23}`,B_2Ыծ?5?"`>I/u2UG,X>2J+:I3ɰm jʓGq:G P;vvX3%%@ۮ?ıےx=˞8fK* (Zt+J iBx`/G*Mn7Tv*U@D6xvm3 WӅsUgbP7eO#WDJ}1sBp"=f< ˜$Xj,@nS-u=}"$ې#+nJV;ne+#g:2?WГJ4P`#ïTAfG@u`&!8cz-$@E:k]eܸw53?P]}BCLԸq'; E͚k/-`y<-{"90M_։7[ Cwt wNƖ_H֠1S?^}̱BOY6]tlY_.q$gz7< AAUS{E=_sYaɩ'bZퟔ ' )0G 1a=n??ZOeeiGD=T:m]Kk@58K%d_< 긘oԔ*&蟲~ZcQQaM|ǘp?q7o ABs2E3B($)  Q|Ө,o-WqtI4I}eÍN-mT#rY-,{Yy5$4 !j n&0hK$S[%K!v<\#ARRDP z4&WزM\n1- aLR JcE"$E+^^Foՠܒ'[:893T}(ދ?|yE_9taMTw>^RX;+wmTN~"| OVX쌐4>9k?.<1V3MU^wVHb)xl|ܸn9LWzⷧ(0b/f7|$tYyNvt942l\Ћ jjF=qGfvO[DK \^l< 5{5זc*0K}' SԅU4^~G'ї=595 L{,K;.?[Vk$I["=2v4VpXSgJ$k$dte!͍>ga8]*)ki @ԇ 6~G7BRu\@@ }F .!%1*n7a3d8?f)k@<|m@Cڕ u"Tcx,sTBQᩬ[OdU?,1WI ~\*^z*ʥ K75-L /7 n̚獙We؄YP~kwy R&KAiSիQ:fϠ noPH; g9>h01nCPaʂlOL 9z_ʵc3:i358Ѵ6DATϖi'$9yy(ܷ^|F B+.m>^?Z8}'ED+!k(qӻ-g, Gdپ\a g\RhBĎך+_VḰ @$T'$TrPac!N1vdA?%jt3uX]*חcUb[m4b.z :à?l{ż!HK!jarnKzrcKA |XIds(!Jh}%xyLy)N @TW(/x9SIw;+iDt4]g7qDj J\plY}#I,]%|P"AƜk)*MZMņ6=Yh-KG÷Z7T~AUѯ+7໻~;mqpI0@mY~G%n&P0k G2IBL$ҕ؋x-O'~;@DaH8C @$ሞS (wQp c9e{'g0A:?WT~N5F6Qp7pRPm=DQtgXjO:7B?o gm ߂6RRcXdWFnv^0<#*ђ2@#HRk\Uhas]/'tN Mbnu\9_NTC<=hIH1>|?]!S}9 *R"*OJCʖMw53Wp/ڈ0ȥ"~$r.Zp9@ݎQ:&/T{xFgfʕbH[mȣiJuqmͣ8Li9dUy}r>(QZLv>666,`O[Ə&i͵3{9"1*:xqg+aS9ww/J6Ҟz\(ۡZS`| vIXy:gGǩI'%͹5NI{zUdj@)YMC3w|3!0ֶe? t:5hY $S'D A1ю'0_}ŸkaVy_a*&%1ew \6ݭ*q~DKxBԓŨ\Q)%daZxh d'r(-,$JIe9=2Ex+E̫b2-TCͻ6gr*rTlƧD53rbasG0Rn.AKFl#qjʑ@*o<2m,!ӥhMo3Og0 -Z:m2o6p Yrb3K1 k`W|f`_QHi?oNsD$GCWJh^"J`= 7i(ҾZZ{8)G=v*Wf)+Z8tvI!"͙wF/j@kC;I~b6u?`B>j*_ Jw%pl: ySN *=ݒƄ&D0Lu~p-/w X"/ײSkwIkfp^hp3{) !Q% )ձD؃G?,v҉K@o%P ^2r߇ʶv/aǴl5|||ͬ\I+=8?~-'c d[YqSl/507)7ŚU;ߑIq܁z~:$_q CF33.1lb IͶ`^/p\c^WxPvyEl茀4]W9ֆ Gt\/#!-5.<8?94/$-pG>o';|FlwXNN0&߲CvӲK̡b(9;/N_C5]{Yϖm\B&S7ːS{UYBN!mzIvoxVi9!hRӪzrgh.dm^Z[̧7phtQd5[}Mc3k6Jss햲/sIK>+uR=#_DN&u$5d.⇛AsCYwA{ AWBQ#$1qr/8!4CVߋ|ds Vi@5^U4Ǥu!%偃7_c/νbKĒeuG?:$qAG{/V-;^@$R x~ %r{^A-MU1|muQ A5giII&a !~*9^X%{򄨩$w;n}A/*ut:zS~# l`1og`$env`1DTOq};0c |BV=YˬEI !v.~Y&,[35ƹNMdֹa5MqEfP*,~s;۵:n CJF"h/Oۛ%IwzCQ87:~QITl˄<^yƛ~p|Qn}F WDИDŽpEِɝFf#O<1M ݘ*qcE<z8ހD8-Amz TC N&k؋@Ko[cw^1 :F+鐎m=ѷtL50@O3=D;BJLz>!87k&Bi$+Fio >k;c1 9C@.m/puQ*]gFPW$*s,ˈp=F?t52]I8;84 ?Bs04LC¼Eaak="&Dxb[3/ՐLqC endstream endobj 587 0 obj 39747 endobj 588 0 obj << /Type /FontDescriptor /FontName /Courier10PitchBT-Roman /Flags 5 /FontBBox [ -44 -299 663 858 ] /ItalicAngle 0 /Ascent 858 /Descent -299 /CapHeight 858 /StemV 80 /FontFile 586 0 R >> endobj 589 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 591 0 obj << /Length 592 0 R /Filter /FlateDecode /Length1 1495 /Length2 37961 /Length3 0 >> stream xctl 6'vINl۶m۶m۶mض;'}gwf_w^{zzv^MB(D#`lgh"jgL@KOB"hblag+ll PrڹN&NoG @ hgh`mp03w7`0ڻZ[8 [#Zj 5@FI/Ę_[S c[g olc~*TEeeDd"JʊB"E 1qeoes ' 2S#]Co-7-@Ʉ^NFvN.ߨ5;\Mmm ;"-t3od['ɿ4(*`aeddaQ2:Q- ? vEwr?)?߬ ,ߚXKNbFo~uv40rs1uVw ?i0D-J1DzFfF68ߝ6pr6qV{$-߷6t ?.+&[(&10!ko@YE]e luG*[8/6fo%w, g5,h$jnb98;AD`_M55qrp0k4ހFP@0&LO$o`a-[91Hw=-==÷뿎t(~更^4&z++3Z8HXXYJ#Go⻵&&&F)ALA T+.P0՟X(NYɿؠaǓnu_WK[jdX63͆(-k">]Y=^ :O$6ŭtawa'V&9.7±xtkn?Sq9 % ϏR&rN:kqU{ ;b^e9DPj3otFhm@^hz)ARØ0wr6% ,ZEs۳E BH fNIWǜS#]Vu_mˑ:sv/S% pnicT ȴgl3pDhM3?=/.IDGj眔]ľăm φf@+jOԎpF >TD#\ap $Ԉ*}7L &AJ4ڝ1U, d5Ca@2 \Z/C"Ŀ!;eΪ+Ck+h\8hJ^l!TCL%syFG4F,TOzT]2o⛍ r+5 ?L@R TwLfٮÈ2a&Lӡ8nSr\yJf+f"yN%0aiVśfrQGe*Uw(Ee+pP`ٱRop7Oxˁa1b'{B[ɶHu]8 2BfX@k;Ri Ny< y/#XS#' P$=_dp%ᢧ=EQY$Hnf?af%q芎E;fBsp&-|do&*4WOO@8[@Al4iJe6S\Y7r`FBk}ssʆ؉"ּB~S%6J%KL5D `anmr(,t:\eQ_Uc%|㵗Bty5c^!?p8M4Wls'++t&Z w^4JxO''%tm;oje+5&8 {gЭq)ĔT I9Cao2<35av=(hS^nZ-M-^]oj^SKN /ѡ`OfOUyM@O!E\K8?2~ހǏ6O#щ^rA K$DKxœFt ꜠Sz`Q?c"Fe!nXm2nN*;Ѹt9hTxN3.x#]PRP4qoTyٙaJقxq\:(KgLa6zLIYy'xvnn@a,UpȈ##BRxcOQci%EI*9qb]ɕJ<;g'qRc%h|m뭁l "$ 5׼)H,6Z%G2ʲ,R=]G!Z ͫ + GINwG氿?ƓBӼ01PRy,AZ>0+ 3`)/2|Evv oFa~ݡ W)" :xf"wq9TT9;Ӻ7q`JۆZ|pK g!ۈAK"#>b!*}%mIAP{lBF@O8i$wqYFZYe&at 0;AS)sw8'vM9b"+FG/ˆ m fQgq$ YZ/&qyXia:Q-pYEQ;[^o[t+~'%Eu6ΐK$n\`Eu"!1KBjNgP)/HFAEKzPHJYo ND_QHBzԥ0{w"8O_"یzҫ\3*H:KGYbw\WA8A,%]myv\l/}lMnͷqtIS}K?Cmpc%v" LOT ;Pt +/7 vLJc}E lVu`WxE'3ok)u3gV59υ4IUKUq;-}er8eaLED^p{@^ӄnm=OSFA'} ^ɴewh "̹g(p9{tk& `k>i`jjTVc$ܰs46 dqz#91o 2b8ijv5ڊǠ$r_^96̦;sʺ[؞sa~gޒs(EzKb~p{Q.T){\_x-yX6ܡܖzWy% sY{]N׈˛*>.n` ^HvRr'.Lܽ}lI֖þ ݜ~9{P+$;SkN?Esi }޺ RaWCצ.t]T1%PeԾ [3Z$rքq,xJ hdDV*lx_aod`vDWG^@"qA=:LjpA$V+?E4;} ESj^jO̝1n5P*ҘRۋ}T)?`'xhkC. ѥ>2gj %z.8酂;~}1)[ .sڳ1srH3ɰx0<1z,"J m:(?fj!Ho{,Vsvw4~U&2/Dqf[ĵb* ɀo\s<`-b7sᣀ t$ Y$aqoc0(EqZ` p&uoXwvE\p=x4eoY!O:]` Z̨sHBYOQF&Slh[3-GM&mtgCbznᝡT 겹&*`Red=zPX"9䥭zO@=AQJoKRd^hlٙQ)`$<_ԣmK)Cv{!܀*{rFn rёD=P% Wš7DF'7|{ v^9?ktjCͧrrV0K m*TUN*.rnI YYc \iXgI&?^ryb'.B,hjFn@"* GnA%RH㱠+c>xِeV" T K)?o 72wj!5X}b J_xEQAMK`n.ׄ7R2QH u!H@1}pʢ A~D "Y^zih{ +SMۉKDu` " nA`, wey ҒH~KAc7;XdC:Pڡ`A~Gl#sbRm zW\GZ$ًICcG9=DJ@W_n9u"<7 +%aYC@pP$cqT{ch~ ! e`uߡ~IWkmNwZ.N~ Uކ~eJ;=m͝= d?ACPIpR%M,=WcDƅ,-\ yKhdIb#p_Euj`#qDpYƃΡ7`@D)N+?X|h~%jML,_[P]V2h=S둀_XEřfd FUօ0;${`iz`~r8E-mт=t蝻~ ?Vk5%=ЃS>Vt*M?q)0 @CsNn-!`-jY> oNU9cG, n6 &2_NE`dqkᨍLW<]T*y  TvZ lh***#珙8,hWwq%rڂ)W_tJb\eꬌ鑍Ji ^s)RSHڗnjC*s&:/'z]xs)Q@.'|)Ϛm%5 V<S= ,}Y$?!gELK9p5и{@H:6}䶷^Fr]Nߋο6BӇâ^!ߌaH[ЧwK*T%l( 4W=k7E"a籜Dsoe/Qk> Wo$)r<8j/buDt]HzQ8qìYCh 8qrP튥O@f-BdAv޶h'G$h?]]sT "KR= F&M<=OԴkǒ@xeԻAus$?7J8iн537ʆ.x{s}.N_|o"|g(1"dTAiV%_g2zq3  %``o{2&l0RB_F8"8 uYR:5<믴ZLjzkcG%S0"C1{m:v6e}Z-[Q+L> J_l RK}U8zi >y>xR.d7ɶ^R^19GYm| H[mNemk^SsD JY^Sv[ߥeco_~Uz*]wWY-iXxe&dF@vU P׸y/;}碵f҅1^7goƍI]kFL6,,يpi b\,n$:{^@!W)wv<`Q: ߠ A`c~2k{z6WYи]:i67<ĪMI=!<ܙϷ@?j͌GMs}9hmq>lxƘH/hfVI℺G?ȷW:$4YmO ]jƱL)D#׾lWĞ#pdw7Ņ^gr[/pW/:hz.kj?U5U)V.'OL{A5#YRP*q. Gu e6ၚ >v٭bELc~KF4uidY:L'˯gg7GQ'bI=fM7^Pkn ^* [>qLC-vSNW:YNj&4?3hG(Iu6396Ab %O%E|=[,ъhY_Ra$7|Wsʘ)ۉQI_5?Ho#, |&JLY,Ss`u i{6SCo1Jr ~`P'HR Uس=L5(cU >V,pȫS x?;$2i2 qbQDx;חہt|9z[sF<3S6kަ#Wsmǟ.XnE; @=VKjS۰K\&iU-3Cjo4ojU/!Nԯ}HahZuqNfcƦ"}ک#'Q^[yKX sc@OvYIO(Pa (z*-`r@(n, ՄV(AT b91B 1&2F$!Z Pgr@I,@_MAoVc8&$9#M0!M1̫7D(o5YwJBP/ HKxy.*[Ajs1*sn+=E`i,:^N͓#yuFz, ry#ēN"2>,ܥl Eniqj\vGvi`aM!=ۋ}:dvg=f!ӵqK&0"OܓC2BSH'[-#xf3pH?..zoJK'{caISFj\@T |V1#w/xR+yHO_?Hnd] L*TwGv"X\ks^IއK$2^@>*>;ܧ0OdtX8Ru5`;G]u˕ tI&qc|58}~G]6vJֳeP}Fk&V0VPANN=ii֝{?Iu6T.* ÒJU ¢keW_t W*؎<MscaՂ#k z􋁣vߎ5|ğ,\}>Foo\{9?EYJx ŵ (R!ޗ#j(f:_͂qN6yIWb]%b~ :}PX>R{V I9Qz_m\/ ExI7,Nϟ$Q(KI:v>1(_Mܸ_2{Y#(]B\RdX~QZGF O6E}1`@c]mvF[N>֊˾ˠP&]"k{jF_y ? JU'Y5VL^oX[[,堏 "TdTYT%[_ oBnQG6^9 ={.[h]ygԲ& .v)(؇<ݝC~1t#9(P]W>y)cȳLY|ě,Clt ?5R& 4ePl=3%wS$ւ5`ܥdAB5qRih/3CHEZhoVX8_>TAQ*uqs Y.V^ aKA| e,9uGD%3->fp 727oIYB'&GׅUJHX}|*ar$溍G`F9`gPpOϪycbEkҸ^:It*~s֛JL@Kt`S栳ϯoee3<)C_-qiPU󰫜mfos`l<žҴg}Xq4^x:im2*DT<ж#a?Sk ȩ3aYlYj/fz57Ԍ5ߵlia;XͦdPJscEB=KDfe *S> Ȝ&)Ecɟ1q#K"p7"ɢ{"PA֏+ОbĤw麎Ȉ/Oz _K[ XN R9N a/~DQ~qi%wֳ6.iJE ]LNd_$V}7\p/W`~qbVbr%c f0P |*qmK BHV,"m Ֆ'P[DL/Hk=]QԙZ[oM9{uxh+"N~mB7%=C+AT!qWOD+#82eVN<\uN:0^/McC3|Siڶ/‚M}"ϽLUTr< W2(G`3Hu@Q%sA^(˦ɻD,,}dyɵm, 7D;WP(ϡi!'67'kўϖ\o&&"r|ւ>B,i=5l߮<Ok>Ny!.(p]*m+A#ZEtM;}/d8;cF`g}u^Zߡ(]wr(%*T*$H\A97A-w.b ޫ[= 3cES+2.O6FSGѮ9(x[%_)1 'Ws>Wuwj~_ny'UM8NZoڤQ٩_9#.^ gTz56|B=qwaik3[hNA vE1B ȯ"DŽ]pZ4`o^'5`ٝS 'Ņ c%6`2&'d\zV]ln6?߂Ϧ3(6SyòձDvmZp_3Ol :uu^͉KtAdPx (ܯSa29<ΘP3,Iݧ%nrT(]TshPlVBTԥ-Mnas y ,,,An^ΜakΆbtHc)HXc>sb?N ?bBc@~.DB>u7킚,r.P^ew?7͖:ug5b9q{Kh@*+,>x))# BAz|ghKJ"{7#C0\e(Ta.!L 1r,_O]w!:AL*IOkE`9$q){>!Vy_!Bcfyo))O/ͮDԚi*ŋʼn&p-nNB ;.`k[޾oȹ2m)b,XBA! bʂٓk̝ᾫg&_b."0Rd7Y:BEe0i6̐sy#V!*\a{貖1QnOy"HLDd@+e '* Ӥ/~FBTↅz5TYj-yB8 hw|qv"yVXah:@E{6 Uâgxh%ɓAGC05Xs}?<"tzYV3K,)j^}G]Eve[ju?G3iϫmOTv$+E1AGo#՞* e@h,H.,?S6M3UMUN.42˱B[&5{Ճj7k׈Ѽ/F ږ^}Rx^RF!0KP0m~dK5?)&Dߩn'UIj*y$"*:s"F*%Xy*awuZ\Kb$y%q<6ܾ,lKI;kN8煆uRzlCDBc@̑ٲl lWFs +<@\0Z63k{i^U8>QevU 8Vp@ImiӺT[yrH6)r^2!m ]#8H*!:" e|mI&x5vM;XԴ Jpb]|Q="Qeڛ,\m%dDΦV=w 88//C`#;ڢE>_!;:œg IZOmXM"A;&SE%vH`8ޭ+̿3 LtUj)"x0EA5%tS%oky, ܸO J>YWED%#LhLe YYKo# RF工,VxJg& ՄD!yUtc`o56P׽OOu (Zq]xCf*'xaRnWrҨbHEwG4 PW¶1=/v;I/C~rJ']b< &I {QR [}!m rOij-*gL˼Vr 21hM# /w23i73l YIrIZiyQɻI.I'96lr_YF؂#~w6tN >%C?HOsVo_E~3=>90e>\+V90cB8IEvP_VkD\Y+?/y:wL)X ŵp>#iFUqD,t#$ΏPc< jGQ0p(ڠ0n!ľ;>t4'Ù?.rI a+]AXv`Y:$N N ny@5:pYW|W Cv'f EorY iBDwN;?l;3II3t/@M+\+x^lLt{AkPspJF+lHNo)c%vztN" 0@=M+0p'M D:1u{hN`v`Ǎ8a #G!-q?lZ1OR*Yݤb2j #~YCTj๿پ Pч]JF,/yx_.GP8M'JIYnlB( ,)(1W uSwFh;RTDUCYh?1Yz.& $q/ܕ<4' V(~m[JE(:3NǡĹ-/#B%Rܠm]JkAj@Pt|ڰhHJ2ZjM=,!_[w^1SK@r(?9@HiȃrN-n㲥OSO JƁgjdYO%c qwA@-V{֗q%(=lMvjI3p 6`$Z{#͠7$O̍X )Dʜx_x[OKRcckW;B] չ !kwzdՅ~;\Oyt8?`u"em ZC=%A+1͖+}#I iE]JZ:Gg"@Sګc@Dh~6z[O 7W9=/Tq4ѐXtJ`KBLiҷ/ϷS6K>SStv)WsqG%M#7Z5븸:9Ua ͅ@=<LSCq>afUUSoB9W)m)wê)v 9(ȸr?QG+Jt5|~[9mx<G#pDæ'ReQOf$830bZC<$/6Xx'~dVfLeȑ|$ZݞXz֥8Pid6a+8;@Tssa4 lϟxAY#E =2^dX-´*.mg_I|Eˍ}}]7 dF% /)(6B+1 U8%"Z[;@/ ">R)c{w+ǎ_dz5^)Ne #,1}ஓz#ŢPebr߷?PmB;ƫo ڥKV-C߁,v3JML"3q)"6{'G4h 0YF> poW>yXGz{OtD! 20-GL'V`[{+8lX;#`n,>D* ! dt]LNfׇ+v4zs qIƑ6dG&qxz@o_ ORk׀.+Ћ颧{yXӉ'2 ߖ:1޵YOOe!KczɰyQq#M @aSLXW73l:@P#@|o'2NԄҵ4czSGJʯ+Y{ep-ڨ]+V־S6sX HS$jv@^j4W3FQ;(J=\T"3_p,_4Sw$oXeEſӖ8E~8 8+4 Dy;68"J\'f:o~ Z7کt](uW|{+?',zs:glCxߤT|qO S˃q^Ңǟ٘NS%В2ؗfd X7gv,9xhW.lag ].~q}J]?cx _Dih1!e(v!FV ӏq 7X*6q3crQdhG8pߞ 3ceJTf%&MDiKY t:~=-ox|L,#3/4\JA^?Az]5h@Y/ʝtIXFF6}5GԷmJ5tlBfZ,:I-]cuJDƧw%ms&%g`ͧmMNlx;}~s%uKta*`C~ZZ?DC~=lY3qJݢ}M[8f9:ځ6N2 =[1$؟@eiLC8<׊ZS6U_3Lg3avA[04춅#Óp *#3k*I!MyJ 9AJyhtwRLz`$4qƾ8rޛMA( DPyXJM A.җa`S 'fe`fRDt冪OX}0~=m~~{.I*6:{o~v&vFËS՞b?`(Oaފ*?bi_a4ո4sA(k"D1]Ej"t}YI,*rA[\Zp2gpmN^KЬ𖸇UN'Q@xF ;q [/oKG-ou@gk4y1_ ȩ?֤Ū_To  h9IC@mh\KEfռ5w+XDsYv(L+aJ=WRN޷i0%a8& GQGɫAPjg3ps5C9| hh_ey*Ukp'9dݶ3"`Ne8? i+M0nm,_OuNǧQSwڜCJkK>ipADR L׈cfKMHb%Oc `ЇM?~kyڻ7t,^ut!5 J5$ s tNieRuz i_?ɓJ= ݑ=Z ϼAf[<@AC2YmWիj;M*#{ȷK~S(58捹Rn#$Te?T 1MY^9r+%[OwΝhyYf4ĸ0vk._]YQ's*@_p4q~"4N;PNBg}o݅{<X8fwN'I dP›lc%!KPo@s8DXE A*g);(]A,xAeih9z`t66bPP'EUy&*ɮPq 2eFh@o?l0=(LraK$=;!~C0x)FוؘYt}QdL~zi偮i'y`(G{cK 8X+F~Q*c (5-i]jmn^'L"kS4N'7Ro'6~baqr3)a(Y |FD5h̕u#)k O@來K?HAk[ *X-ng2۱a]]+j0Y.C,C XSz%s`Zmz 'n>|1y`Aj92b3۬mD k $H|;œ!MBGPFvC:K B Qukct!TyIspSEV0FפP@x >sc JIrK=:MHa>]MeI8NJ̖7эªXPU|4uR<9?,ڡɦ|x8Ҷxsź5qEh; |wlNǚ er<'r,b+M-Y #ItsE':(2ۥ;e~=”'2Vb^Z>.[Fn@6&Y3w @9p3B)|Ё$zY۴ qb+sT"fkƼ&いJ]LM/LpKG7_XiX: #l`"dIbF}- b:T(WP=iF.qZlѺS8B6+sA5*u۽yYKyDa)r&P¯ ]Fϵ[QMFڽ^y.44=E}*1AxwJ7-cXfb4M^C@;7I`%E8aAIv졤p' )0R-:d|ƶЃx{_Ue'K!@#Hb^2*`ҡ֊.'wMh|,̩$x!Ar6z bAy(n}ϖHU?L)O9*d3o& m!pf"Zن2q<MS phB.J 0mT55IE ap ~o-ҟ|j繗\nr90  ]t>Bե;5bk!w|=fY{L7Vi5Ѻ7VXɅzpB&kx=aJGg /!W42tQZ1|>f(X9]_cO焾$Ѓܔ-黶+eW6FVtb/F;hyM+ν"^ANe'IҪU= %h5$3XeY L R]]|j`2 Iqc z'*A }}Uj4L,=D6ьpV [q7k8 nyA 7~NBy^3.ѧEem(׌g1u^F 5Xc)[H{rs9Xf#>TJ"|6OfɌmo2 _om5@JƟ(~o~,Q wSmW ERJ>? w(_?K$,N7*7'%2)Qԭ?*Ǖs'Ԕ7I}sS"O,zs"]8 0kɟ8sz9kt\ԮwU|`—I*1y !Lд^P%ZHAb` Qva_p_nuq{H`InFym=</Q{uC*?NQq>S,ף zbvv lo#<- I͗$BS,S zNtUJ0lń%Or6ydN06,kr͸ $(oQ7m8͇b{.O UͼW w։h@o%ލ:Oܼ]|$z|h/5SQٟOi؊:bWw2%ԤBXm̷w Ԋ)x*\Op# B7Bt p3kM UZɿ&Nc Tl"qu1Šʔqht];ӂ̂AfQLjf>x1gmCWW,]ȕtUչDߙ"w*ye~ o"\?\hS>,jEʽcś7o jP丏qB%8ERn : tqaX^ X&딚"ZȩZh J8p񈴓fs$K;}-<'כ2J hI{Q0kWA:ɑk`x.y{l9e@9տI*1"cR i:+:[M=SWF8n^8 G96vV0a$U :{yK?#?7z-qmHkoO RHxP6h,nw2bB\V] tZb:dT G'ug\g .z5($`w/i;wAo`׆5 4Un[>0!1^,ã& 0eL- S~-:Ylj.]n[Ǭ+ AL8sl+WLݳۮaPzIו_}o OKo~zM1=_!5~TcYb\>{0ShJinք{Drv4{=xڟ.vf%A-IW0@Aаz0%+,af]}`k.{'ȃ{!GmD\;;.ءKj)a3kTJ'.R4+ IGJp=91 Lip [qzz͂fC3?%t3Il `ը'r&!}Ha}CbC~*xKXorJpkobb9dfT"·dIvkO3] D>rɏAf}Y71Hj m@5[gN~ab6$ĵMɇ$d۬F$j6Cu`_|Gi֒"W6ޔ&Q )G]2N7b\ i P$Z. ͿEQi耠[ S,ӴR!\ w=YX;2cs!>[ЌFuBb06=X}Z1(OKjPG*PJߑy*ݼj|2tb!` ONq4zƔ-&= H6wk&iMz!q/))"vd:`?  :f7J×b+}º$o d:y=e<*%Wfmc l`0u+P8Ipne{R{etWZka|4I"e-,8M@1!' { ;vSZ @1XnA6WDIϽJQ^8;AWS /CIl`ʠM/MT[ L `*g\ ̦%{3<mEbamf '`o{= }tjBu?qO,y k$qY+i[\B3 ;mŀ+Ud֪x/TC칍?KNW혿,!2zDKYf?P5}P"e78a%]Tt?mTcSܩ;R>YɮH3MZ3-O{L?Q[pB %g7h$&Q otT41~) 쎜2@pDȐdw i8[ Er[.5_~gcAVųe QO^|M?DMD 4B+l?k,E_Q jud.e=xb[T(2sJ!]1ُ9+[ZyInP)͊f)[ɬN+m[+)2`bkcNk4)ÐyPf_Rb։E \L/,AiT+ђgs{vT=IuƶLZ.[Y?/ V ''-cTM(m)Jv̰)\Q waKV R}k"0P.t$s${b6C'? $\|K(OI}_UBFsz~5 5?ΜivYu:$L[Q89pI7BPG4^=qziq!88:@oX0(-1]C-ŕu Tsl9ζFo MND>!;,+*c{aKzey+j{c[Pn0A]j0`REuR%mgJB1jn]q6Oznv6.gRעW\c*Ew^ͦ6WdFpaz2T+dޒe y8kv <`>z5elWp?m;q gԈRuRe|} '?!9D#^cD`Oy5ۥFz@:,DQ5*~( jrs0wքRTvF& >j.籸J:ۋ](Rdrap_E^O[qҐs" Í>cb$nɲpoɦs*~7Ey=z`32鉲n F_|gv'AD̕hҪX\Kf?-r+21V& ~<5|]yC{XTߪ2JIBmrr"&oY&c):]!HM]A``\lFv+F ĠmIYG4|8NB?g Tg..f2F" ҏr9Ig6l9~0) |>G>U&χ0N}¤'ӠRB{hE\P5, [GvNx&*IjDv`*N"i#8#Qi(vt![I d(k,]/ sB#q,[K(j^U-Hla4ro& |2c&Ҏ 1Ys1 [M]22 O7[pŲ֫eu0*f=^K.~ol+nm7`?(4YuTYV1C/6܌WG!U}51> (^Fcw.0ϗ|>@WmoU(;YxaVg7nIO(v} Cܷhiɭmi<% T)7Ðty0ΖkNvp3hLmVC(WEfi=30go#.]_yY jjT'1bp\qw%&c$҄r9}k%oo(^ H`jIrm:oZFPBG?6Q.,L,[c> D/"jko#]wAz7&V3,٠zԖ"jJ{(9t?? *|Do jK\J{P' @. E7[ V٩>l4穮(@o+<[CyTo_Bla&V+W"a+WVۊd> (,)s>Ҳx6 Zրe5DC Ygh9> M/aOB)4&Ivd![Ԇ{Ռɾm" 191cF@t~Cɢm7dZdzyV0Kv6jDPEV8 \b(pT>Bɧ{/Ey$2mC |8i ,D&.zyTBD߈  A ZFIev+rbķ]:F4#vI-_ E ]Y2Ɓ2. y"K攏h:& 9ȣ HY}Bv큝='xȳHtQG1>J'%bu46\4 ʛrgώXC))[ܳR5Z"Cg;ޟ N B[o5u5݆36p6FoJ\S׸BcT{lN?u+UEv+ 2`cU{Te׌vH}{1WciH~ u<)<@iP#~|%J_!2_?{B䖕I<1i,y/]mavo@0]#( 14{9̮Fgu{5 JDd.S5FiB0E0Xl{Z L,;ZM>0&o]t@@ G̓F6_Qa0".rh Cd(2[_A< {^]}ax cɖ&OXb8ϒYgDrT&`aװf*Ԫ4o{. d  S$s2&,%nUTNejʗL *X#PW~TQ,1wSk)@Slq.H3˃41a ( Qu`qvό=9M69~NdmLaBKOPY:|U;sq_ҐI?" VJ;ohw߬YdݕwiS6ٺvIPr%7i#a~P}$,,HF3ORk"o}Xr(,j}+n},ψ[n ŤRe4yÊCZnkh0;eE:EAkZ])$ I$s{C wNc0;e:ZޞvR,9\MG'RzG} @<8UMGU2SJifZ ɐ=e$݉䡖ryE`iLJJJwrln|1di~!-EE<%}»DDtl2K 8"CdZfd؅B`[K1FVV&7gKލ T${3# D@D `Ƙ j2hH>dA'v[ 1H_J<-O==Q4hW>P!?L](b&#i.;S^h|Q /[:/m3>N"3p +f:<  "x~P8(x8R<8SJgK;0uLXmvg}0P E};fC1bWuCZ+(Dk{.yby]c*p 5>h/ o|u d5`vSg4f,s΢ziclPy`(95Kj3~ АrA3[|k,>-9y}eQ5騱7+-Ԁ9{1\DJs@7?dDzsAGn,&f */ND?wIv2x%#:|mŇR/۴ MZ=g0xӺ ELI"~!ӊyh(G bkNPN5MՀr̊PkEᜏuGNj:FccKaD*u3J;-Ofe#t޹]}vS3W8 `nH4=}~Ϝ![ލvǙoUY+u6Z=uҤu/w3X*1`sͼk*;]zT^n8޻,nhҿ^& uz#Iqpɽ,Ci&luKa%X䄕걂*6>JO{ēiPy=_a-,3bN8:2O]tSQ}K_zQ8(j|e>s>tt.0喙[ra,R5`eW`L֞ F!5M$!~Lq;uAMF$v'MXo}d}?|wD'szȄKfĈa:~RDx!]m][O`:P,}s*X$o"8f@% 5Mf=BXxZWޔ[Q7fXt q!oWگ~l[uMP4.b]}i;H|y~(`sw -a${Պ>~j)Ys7(H`:A <ŷK[/I %g#u;1 2`f MF$0}&c[tه(ĊkC΀ǠObfrԹmH+!,сklREoPR.q)k@|YϮ/la<ܚ0ԑy7ie>erː>+(b1wj"sl3Y YBjb(n_'I[=8 Lk"0`qeO2g1|κ^dmoMoP ֠lHOqr74Hi?U&Y#,v#K9N)1Slh"OO=I2WRwywkI5;Y!fCr)AsHN]\C'0 eW4LcVwS Qys!H5a~X= S}tH`yF{NtjOs‰5M9Kv oB{0v-K3-Tޜ=a}[$Ł11h|RP7k=Ko75; AGS2c 󌑮1ʾ3/w|W'شv]^ppz)d䨤T3% j%%ULu,90_~ uYU*v_0nF=Gğ)i+>fǣduq(V镙eo `GD "HvR*#dΣBpF2Vn o  z%7i0̞Cf_:Vq!6-yK6G*u*kANcr>xjhԈox1^(B6δbzoΦ\l8CwL6=/-SK۠"hgSDX~=N+.NpZ% +^,N !8885Oh:|mB@u7aj 3o6=d8UOȗғa$_I jĻzo(\`-r}7B\A{,KK8lK%Kö*&R?uԔ7ǃY cӆl[I!,h^"fܯ9T1|''x-Ӕ~#,;u/El`ƥR{=?jW?_~ŜMG9X4f{kMXU$W l̲bmEW`keS,'ϯ $N>hg;!5`b%VZhݶO*~h"J9 ǣh#tԱ8( bVy(3.3MyխWl7>_ݲruR'*n!?/PD_C҂8xi#G1f - 0(:؅`+`1WGėDŻβ([n*~u9`-JPi1=(GkcM6glYseX?|"ENg75,BF.oXySNNG'5BƧACPiy93J.ҫ 4Z#KL?D%RMueF<@nVuuCWmS52߯M?e1!b"`b/ͷV?D Zmۨp.1b^M.A5VONmB$ O2Kay^\KmyR)V=O Q@cH,nX&@X_I0tM3x$H-xby-w={wZUS'oZX[OwͰýЬeTg巉%I ƥNHS@Ch=ONC¢ pZ䴽|(LvnHW KpT8Ы:nοu.=ؙ<^59 KGH& W9KBr灠S30V/k{8g;yMUYlG:t)09F'0DSS9g#4PkD kI-NqfFo0}C?1b)A8eFo3Y_I߲UW̨$0DT=m 8蟼l{ߺ7gSN{˵A‚2-j{`ܥ$ޅǹz d=<~ȱsf2_к-h32\6}&XmI"JzdӒ˹$%85m'1DG(^ď+[Nnd?MAS`1SbOF* iMuqIrXUNNn&HOYP>Tٷ|9dGЫÍ~ƉдQ C%Zʺ@.674S!m ߷+b7&ouqq@OjGL?<)kjHl( 8V4^<@̞kk kl3"-su3}m>$urSs\i8ϩ a(}Bp?Up:.3`Ю'8(up $i}ۨ"An^GUȬVB?cŅg<(at$MQf4UvSkTsz(ɕ"'UgįXۼ+^!MFֲfu epD͍~wL/b1HS5 blSC8@%{F2 K2{Du4 O(N_JpQv_k(nQOwJ6Kޛse1JZ}gPo'Ix!@AcV{CC@;݅-?u.Cg0XƝ(yU(AC%!P1xG B ZB߾ _7f2RzhaҔwQmSQ̖UY7^,aC+, M8Vtn1wRM~î[)q}Q@1xЅ!} [}EĶ3 ,6L!k픶W"M:Byr&x> qҭN8*FhXۅ"ㄈoyh'iZ<6ݱfo6NS`k(*> endobj 594 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 596 0 obj << /Length 597 0 R /Filter /FlateDecode /Length1 1301 /Length2 75869 /Length3 0 >> stream x|sxd_5tl]aǶmۮ$۶qǶm;mۿ=Osk] QR67J۹330@&Ϊvr"6fvf.6Ix 5 [ 4vۉSsĀVf3;+? xN&b@;UWLld t[$@ daRWѤ3777?38,o܀6 [HhtJf PY802:.ib3?*dߔw_ ;5lnrtJǤ!Y]L,L#aj5O࿒|6@_9 pqrzs 0L ;F{,o21011ם=6rc[ mDDb3Y@rsq% 񯨒1?27_7Wh trX?RwT)=&vv{a8d ttv6@k`/,96Ϳd:( GZ_߳mA6JM?7꿍&lgas3pG,)\L-Hd*;yTZr@;ɄQ dgPuk}c' 6uur߹96 zMh ceLh&H o4ZS,I)psH  j< 3̩tZW>Qe|4Zm76}Mv4{y!z\Os H `1vUlLR1Lqb* ,M-zY|.9gfםtIAc`b҉]K/=F}!6.ĐsW5ՂW5oJt*iyNj*R|';DOPDCZi MRQ) ! LX)WoSJo0~UFo Cy͐sK7? +FSqqy@} • ]GƒMH{ YڭnPhJr޼&W_\d5AA1Pl`yA`s]1F@(jbC_јԵs"x1t500⩃h|nݘz,;坜eRoOJ3 9ϝﯕUHXJC3ivF$KdN&i%Z4SͰ|eYXÁ9xC8k{inpy˭0' Rx_9[&tgKqeo 8LೌFqx|^*NAtdU~I% qN֡l$2$l .]Y4ds]L:1s?^,Së+fVhOf2٣?AK Q2 CZ7Tb5C^dD.M8zc \# R dp̂oѪO'CeTYfp =^1*SPN矌S)`Tԏ0l|/n#1ӴjR{ep$|LvJXVft?pxFcMt.zWKz CZ ѡ'6 @}klH"U7rJtDP>Io@2P"\r3ıXe{gM mQz-@d}6T]%Roe2(p>(z'~Ժ?Z2NBH fk1`KK#Ԩ~̨J)`?2޴zjxX1`WǖmXE7H@WzK:r֫Mɡ bO&(U3Y0NGLXOq}tPx(5us}b#KݩtiWi*\В_<Ą.)~ qh#۫|Nߣ$YYAcǴ}UHO솒s=%/::oCݞ??P (gm0El1|i  |x8roL/(/m[hqI=N\:>1̅ 5@/ެ+~3AI"VK'Dd ~%+hī|}X' 42:H9x3t@Ch=KˢiAnB{kpe[(t'Re}T/3BF qSUܵrEXP q‡ߌ+ANs&^}mo;jq7Ra_yKi) v@3]T߽ܥmHf\L)#(֚_g%juK,ꩦކJ3!/1ggdyVgaX{mS1J/(Uy%=#J] M~wR!wڈ҅[g+i@[g2m't}E❽QQН*B]Jrh+>Q v/ ?mB;՜)?|vod:hz)g[Aaʼދ ؗ\0&!nҠ(Gsf<.82Qxiz*w u|J!DӒ2w. D,{um)0X-EMcp@z!FQ- HRx`ikaE }5bTY%*׶7DmPB’$㭼!$/GwQʪˌ78jӋhdTs+C$ި(^PB)SØ 1 MR)D~ƌXP2l1K"*ʫVs-9+*q4t3r \>WmMC'k8~I;ؿ9vģL%q[IY|™'>ǍM'7u1k[NJK1 hlg 'G =&,SKns@j= 'l D]JϺ)Ʊ)nr|P" V.z90nH۾\Btܺڟ.N\$ ɺ-ehM>LB{X惛Ao٢2!4I:>_ԧEZ.$3R; PK Z,+SB.+ɉcs~qi^梛@elqsk(dro96v?`'Slx8:o4cY4]E3 WwJ]Sb(Dw;6do &}ӵz2sN4]^p-10@}E,?p` n/oFC /NLz:./潩U+dbcӹ=Z :~v'dlS{C%|fp~ Z"[Ͻ<60=T]c>s\aFn+8}͆i/NҪыk.{?yd < |I e5GR!yc 7Ѯc|.% 7^JEC-GCؕ9EEj|)Z+.eb 2Ϩf4AL{ۛS*]e7L7dzÐ|nD򑜓ƚVQ;(_z)?0[Tb?L ;U1`z,!~dqij/\=ضFG"=~N[a Q{rwk&!Eey=KN,6a2PsPm,kPq2lԆ9LLJcdм4.:ca G+lp9 q*r1[.#ͣ>~ @¹֎{2 Pr=Vf1nm67\; &# qњzϟ %}NAm_B1ć᪌p31\Ȓې8yGՆuz&Ȃ>WvhO5 ;)q/ZG$j)e!6(:G'\dxb4_e#488n DJʳ8ə@zP VoZS͊c9Ug胍~CѱD*q [BLa>֕ $ ~^ٲNG8FUa# 0V(E}|fT[BEJNWJ1+o07e84+L.x7NR}(d2U q9.3nf1q֕-d]ߝ&ؾۉ, j\&624Ѣ )(Qm^6iq&3\rWEaNrʇM-z@Dͪ쐁|CV3:4]l8w9)'$̋PϬrK&or[fyjԐ!U-?W^U\3^pՠ'O k;9(#>)0SV -q!r}mZ'fWcnHgcIU0pjV6?0?o]8h;VcG(˺Oybh๘%RM~[boʯX|#q,k9bY7[qG3w%GE0sY`R13vwF_h}h_u1f(nAD$QB쌮z% qo“抗^1UwP1;4aW;5"oN)뮵}p(urI 3C4؉󊒄RBE9ѣ=Cʤs!#^5ՀvD eqXbc!q2ۉ(rd  {L1ٔ46x1'" ;Ϫ볭h@:/p\glB%"R3;瘬}s΍Lbeg3t|yXHFߎ0s;<)'vCBR.h?߸iB^73:({NtHSuS6Yr%Dx ScI&CMDw_3Ҍ9iAgyݰbʂ׍<"fw. hV1 @_CaLݒL mƑζSG۱(1\)`T# %UgWE_ JN()5UK~XQPF{,,&9 y5)_iFc*>/@' g{fjnp)@~&,m;g_>VP(IX6?y*mC %H],L]nF R'?:U{;{bVTڥF Hy8Ş,.K9`FZ?ܐM8tOOΩf_S7*dkisz/&2#~)Q>9]Zj9Q)ۡx@, *23K{` rߠωԩpqPrrѣ(Y[uT}ږ8jMnNb' ߞFM?HqYUdD~iؤهFnۨšB9^-B:!X Q_5>,K`~OpXqNdEmw=īͰo!36(>iiCW@-hA:@`L|# a6~Ta&$rNs\zYl?2gfއ%(wFl]܄҈^vjR=&T_Hk*u.b#kߝ9 ,%oAXހWwc&~ `7P)g\PK5}0gѻې97Lx s`PBƥglՏdF+biEJ"^__Or]1@`-IPS!9^ R_{ҁR,rkIdG0 xMO tU4?)B⬦--լisD;FW6t1 ϗpAp N_.OZߓXйUddHsg!?WG3勫<&{)Ň |}}y=EB#gUXTX9 %ǧ- PRny&9lV~?ܐɛ6,1:&Z&o1Z|2m ?Az2DDq.ffPNO]R}2jlω&`R-oQ:~{ љ K0x6EN\[9m?L/jS7dw`J8&쐜Mݟ![eY?kfnIWh٨lhg÷cX񱛘d/"A\CIսcmѬ'W2-"l#c87K&ړJݚWKy<Y)qK`i>j.ԥ6 J=z#hʐa^dsΡ ߯F#^198nMf& .E|p<"Q(w?R @ Od/u`*2 WK#ߒCPv8E,"=S4,LZߙ4ޒ=kR PGn;"$5iʍ)`8v"݁fȂyvcτxJۇLI`7w`vu~X|ꤜTnt9/"/p]JDt-Lgup/[˵}_1XYuْ}zFܵGJBm{!&*]e'>[)E ЬsP yGYGW{~vdRŌ6y.0ȿuqV,/n>hE3z5E3Q N~8&'^FoXY|DƣL ؗ] uXy>_jF:qkzi,SQc>+ղlŁJ^"zꦎu|I1)SՐ9w1O"8Oh Օ70|1wGGG`[|2gBUĽOOɫ={,ytv^ߦy4Y."r aI^ݗS2ӷbUfh?"JB-J$>DpDhoJUfZ)9_HEH&BkT0z':w%A o5×Y02g}~G%+1rj'//R3džMu8v;?K%]X6cے}5O')t5;Mq%=[/hjf5 g -iCP/*6tV?{\?l&yP&z_5<>(.qҐj;NVKΰZX(z>!v<(x) S]Z.Ve2i:hZŽtI ?!KթG0:\jj=U1~Vq^)k0*ͦOi?sv|oԌ* {o^Bژn pW1 #W̿5M}09k(zdI8)ϸ4Q 4OQ\Y\R'q &QDULKyo(-cDJfzT 0r) ORBSE+= Y4k~]Ypq>Wzג!!G. nt0ZXJlQ_Cp Kd}*5ԙΐϔ){O#Maw9t@›r-\ =χu2KA:ZH.~/2Ѵ4tmԢ9n aJ/,]6emAp7zrz3:j9_r们3qzR`Ey<ۍUYgimt8WHEI~hr-)S XW&p՟H42cd"U?uǵ:=MEz h+U5qBvL6 )zn%Z{SKlә+4dڊ? &+4 _*.%_ě?]M8r_n7"?j#D_O%XAmi"f:02К"gWKgeېj̆^Q !45BC&Q3jr'KVj3mnN7q]]2tҦ5h[͎VL6.vRPT#&/XgQUߠlB Be]j'/+[a%ݟ&N-gG,8.jx„qH:`F ē@X4PULwpP^*>O%r/G@R;I_/d78zhMxy*];A]dJGȴ(v(:3eEA/SꪻͦeQn;N`P^ɊB:͠L?0 OgkhM@XTN#*X]\em!D/~2cs.$_TvgI6]F\,3"YpoRj4d x׻"Y֡?e”ս0 <53-#cP*H$|:4d?q: &{٬YjQqٌ-reܮH!&g23ibK V2[f}\Ut|>vߏyW[Sq6Wz`>VRN|OܻFh% noYRx#B)d;KkblRcM%.I i}X#/Ȗh_7(񔷥 0IZ>&|$,۠{KiՙP<0Ǟ[4/ROpS▅yh}͓*ȎLm L^ b?B]#6 ɛ"<=RvV|%NwGVKϦZasYr=Y_0e"yB,^s6E&ڭ0C<ΜR v4Jۃ(,MGDK%/UoW&YPQǿhG7(aF\Jkjndw/wH"o}e44R8,Q3ȑ=乳'j6`HAX)$)d͸XxhI$/eL5b2p{GK c}XbGs"[ ,DwQdk{#4SVs({!g7Y"C,e &N%FvDY~=Z=7B*NQ{!_aܲ{ Q՛K ˍ^ijsGڎJQ̱||?HAAH 6JX|q/0aM#K*R>+-@*ҞR1D_i}r ]9ffĖ'?mޛFʨh13tu}JB!N"DL4h/> c/\!$(ѷ;vXlQBoӵ>6)U2ʨ̫Q: yԁCCIjn1#ebW '[5t0rn3`SAlGz8OXW-ݼw!L㙟JCIQ\.U6KC[!cgY zA>f!\V?T7ګpe.)eCp\HS"2& %~&Hu$T>j"w+p"V:41e$g"r^pƃ5WU`H5jH kgNH (64;>YX" ܩfc񽛔GJ2!y`, }ϟavV׫gg0Cg(JP23|7Oj[e܏e/0R K`W p_t*,!"h34PɆ9"egbۀ?b6uܖ4_B;`,T2\}>SX.`_[E֏1iiJ+Dq8TG8L`Pb*we %" p@?eDuN.aoM)՜xC)gSjiM'R%3C@>S Use̕Jq2pyMP#u.(g 0e51D%l!l)o޽tFꧾ'X TljnOLEGS=˚xL9V[ۿ;sHYw(,4rRl29c#TH_[͊UЀܬ`vkh`Hr2c#o99Bf`8<9y9JVW`  Ll+K_`fB+ѣGZ.,_0:LxϑZyR\kewd 4Qև2G]s=phIH!r׶]z鼭9–rs)^݇&}i~hܡ uɇ0L:/f=ߥP)hBDZ:Ga3ej5u4MaWmlyaR'Æ;KY׋kY I0kpatq:Ʊ-?rufn[>=  =Ce,{3K /dNU2eҖf7&G41w?d{ wt>hy&#yʴK<왼lVOVڱueed ygv׵#oQxX`"^pՕk˽1a\XV]4~kGsRs+Ut+Aqo_񎭇Xmi|p;tud3n~hubA˨s@DI}\ܝ饒=!y@ DJa/wk^qcC$F`g}%? dӁ'Tppyg4R:BMܫU*iuji ]fN1(@iyS;m|D%H/%o ?M5Q+•lOw sds:!3i*6b4lean[7?̀|ߒpY×4sa}8=KSMt'3ؘP >z")y3{z#V0V~\igLywqOiɯӃp}Z'qQ@x\v~)ULSe S`yY٦rlmk⽚Dh ҿ UAdlyA"*B8Նwő+q\ 8'4qVXݿ nr.Q_\mˠ;Ca-_>+H.ͤ؝ ~񳏬.M8 7M2kl5玼%1%L;~}y;DM1[mC:-'ӣ/d &^ꖲ]nֈp&q7ȄuFҍ8AELm*c̯Y&D]U~s-D.A co^ ~U6n[r0--U,R?Y #WAً#lPbaiϵӺީ}蛗/aaAYssod>nC !!r?qtl& HGoNuRP'Ǧ%F(w}@,vliZD_@aP)mzI/~޷nk(2 3,&Lljjr0 $[FSmKfzS5qGnC)hIBvrx/BGNG^cuz4vy~f? 4_?Fo0L3o( e[u):%)ΝaĖӕ u dYYi\}'@ZV-}S+S6UZrC&xAB[VՎU*zm$Qhm@4mN87Ot3~³jyD[ p]A_em˦^QM"ۛ=9-!]%0Ytpw^|P"ch3\c]A!8̔O'u#)'Fm{#H};QkT<dB8%q7s2:+ŵK1XQ,OZF cdH@׷֝vHf O&-ksxYښABPz Mtߜ=9uiO99dzщBjH`:Sd@20籶H8$r:1{QSueї;Nƫ?>WչԨN$-PK}j e$}-I G>o4Up:ĠFUŨcawipU-?aFPE9bG^ɏt&"_zQ@Q5IVԷ kQWws f2rgܗNrSeۮ9ayY߁OZ;!(?qEvd $ L1qQYV&ۜg|vkO ;+ĪGu9oF L`a(f=ҵ*Em)tqmuUX{Z7G IgVR‹AE 7fQ"M7OO-#4"ZK>`#0z-P}L=}7FW4B)>z`8'5asoɱ R(VJx́cvaڠ7rE5^aNݝnV(̎Jp'6jv(TZҖclxBasV4NGE䜊򏷤۴5MAWX-QE虔EҔɘ^7׉XSz%TG4yZpo4e}5̶Y}˴dQ!{\+`:zpU/`!`msW*W#0o1mQ/_̓K#tUQPi\+1"?ݺu~NGK3E.ؙ(\>2eŒܚO+㸍 | P8k(ނzB/HndjU\zqᖃ+Q\콓 {])% I6pJPź lsM`xTcR˕*ሃQN] h\6;+?[ڠۮ66 B(7 Kw^R-W"Kp6O4/Lq?%@͖g%kّ`QYigݙ%,_d Џ(lBA.q |(BH*Ɋ&VؔIӿH@҉J>bK Ml]'bx}f^7r@ZRUz%t}pbtlenb\泞0 'b\X Mƹk%ƴkO IA#!2GzP^+[qR<=ܡ"7)0rr'6gO,fD@7HhRlqQZ [u# }(p3?(){נ#(֞vc4;)+2?i۵}EwTk[>fq9`4(K{yd* p,YW@"Bj[)#:k㪕Hk%+V+2u uX Mq:-l50CFYCKҲ2QKbK??1âxz:ߋ '_(0C'51Ґs.,_'+RsT☷V@Zڔh3 ˏwd; 2yd ?-qlq:MoFKr$ _ WU ܀-fΘ8 Skϱ5dw)|ToHo)զ?gdSrZ=aC r`T[>IR&{غۼ 1 ?U>F_vjS:(]|v[^U10F(;JVSuvva zE3//&QaI*?"螔d-T2@XkY%Vٰ?ƪ%FhUqIhcǀ҄WjС[d3ViPOZ5TFXk38OwФ)6.^ q=rfa<{߼z㎺~Zt867Ԅbּ60 =#AJUhj6vwqLb!VasD ` XXf%T?QdX*rL[}#$ ;#|b2e! X|^~ya'i&/$g$\tk.y ۚrLVU E%I'=`HjFyh]SR+3㎝O{4^Eruv T*ݬH:|EU+Ad][`+hs}>UV1` ,eATmG-%/r^Ƌ.K<ޖϹy g)y8;Y{Ѥ`8=K3? ֺf@U;FFXˁև͔LW*q`if\Ԍۣ?;5_pCόK. X>AZ79RNFl%]=dl;4;}7Vfq |eAm$xn{LSaӊjn-{?]oHS]pELǻ]]7OXeRx|ZeRq\w5W:,q5|A6aR;KRke!6F:)ە|3JeQbRA){\z ?`#6&oʛ_ސ6z+H [V8[ mY&5?׷u/}.SG+%3˛KYܘihbV`R(R0B61e3n ~>QjnwoI7O^>JJLD/$ѻooӈ`@OFɏbC[)-;0n!dM=nylR=ru绣Q!@C[8v:َ8ސMD)G$ZOq)q f#\I䤬^Z ~)ARf = (Fhu#%j[v##m3XySLLJ]ɩ.$ MH I@.!ʐ\bÙ9|:'4wX;p;nH:u :/?+P4",NQk3̟Jl"פ}@€7*RY?Iy~,=O $klKoZ f 3хe+!ckTI S.!lǒ W䦓9038MtA"KtPӎd#d=4Z'yʼnUڔ\u,jsU% Gsm;jzOdkBk)8mhKYjl؈ϕ,@ TDvMDg!,B4{bҊ) yy) >I3IFfۦ=7_ ͗;Whs$~=0c<+G35R&K-9I9wnU-;L2K@]Hꪬ Qk'hu]yB|Sd| O \a#3[| s}#%ͅR3y~Mt#"06dѾu\M%KUIɢwS=Μ3WvCĩ&&ط\;6_Tva> kxFuZ: %Y[UyPZC]bPKL 볖{&X8rhd;:@/[?砝zt|l\>T63VPyOV̒9!01|;w]{AZ ʴ;9o9[pp7= ^"!eV"!C*iua҅ ]k>6 ٪eoG8}(Pvt eug24KBta5b&哃b|ƒ,,/oAM<@d}L#+IG$|+B|Z6e:)5\<ÐQ9**o0l+_?ǯ C>۲/Nɼja>"0)y#654ێnu-+!g!V|j䫡W:{K22SQ$KEZzp1%ɑ9ec`9bRb^EHO@X_$9d6,>(7&4*N\69^CQL9w|cKh\/( l[ݯF 40/g16t&B0!S|aPW!Tg)RWJhB7Xtq[v|y*ƺ+y JwOEі5`.1a/u缈2NP/em ='vLYɣ#`:lҫ z TfⷹI:Ea.dٺY\VB(q)n\B YY>_\t砎A80f`1J~1 /v Py˾ x_l(2SR‚VYsNcrv7CQpzYF2:=&E 'vJD#ei X(;S<|WACsUow- y$iC!bu1js*I.TѫHUyAmixp;Jri )5Կˑ/}/h [Xl)yZjNe_J+QʈR{Z#Jq=*s 墔tG{yx`-^-'\<'l.??ߨI *'嶭:1.yA+v ΢/T-+t$z]S(xSAĉ%rSUW^=^{K油Qdf|RpX",Nϗqv3vF.KDP&t<ӂbaz==Su$:K1' 8hH*pr)NGEIL`;xm,OS|fI$P#OJW' r-?& ~aT>ڳp/\;ƚgQ{H0.[{*yȖ8/$mg;0eZ O!4Hl$udW+?A06} 6:gKUmW%I읖*TZL_Bo>wMmeƖ2}~^"vmè\X~㩰H \?>WWUetVG]}=X,D`$PCb!$湓0c+|[GYd8v™"L|>rqT'vG~'v"/:vn낵6r)G~2J4`ͪp+rp OTr ) -1 h{kd Dh٨3(St1Ms=ʛ2#c2ט|ppp<5ޛpwm6TkELΧ4Co/!K@}U֥` !3kIT #Xr)M(txg(a/06eW{Œz-mSGn(S*P|垉So`폂/4zRVa_3+2k:[qYdDǛ%r=sttt-%KUh3eϹxǘ҆׾8rAr:Z2 Ct?bxk35Km+/Ti1.KZm͆G"Ӆ j <ORpKl+v}6x&$%gewbt!HN74͜iR >E|d?RyP||j mK!vm9'~ð},i h@m]C-#Zf%U'Wy/Ԇ>e nGIkSd$(x uV514W%?9Rm{#s80-g}Opy1:umwW<:}l=j2d"U^el"- rxA ;Zkzi@Y[l[עVhB&nn#Xp/eۮ}6ҌF~dfEx,1>F-fd|"hYO %iϧgL=U, jZW]l $,NzC;vչމ* eekD[[s=9h1~%9#֦(BN:.ecVs5(X1^ϞqF+nHX:QZaj&b ( <~{uFjAS[*:vw Ua7:?YPfovA>%x.JQ@|oQ1v}jͤ\r.|4Cr;[1>ڡY"4#jHK@&[ XƤ}z~\gdž˶[r5zG4v֨d&ꇔU)܆#C!եmWoca)SaD4{XoCԿ wm#=59miOglCh&߮"`Lm7uvxDhIT6OۺiOX \%pc $wl}KbRFF$-D?FRR:H'=rMЖzriq=s}(4.9;P7xV#eABK,;FQ})L>nm{ۀEjql5t0ۺLueDBm_SO*Ym_bDz`~~8LD,ĥȇ.^ID)z]qn2p_˦wHBv9*9a,[Q%q~>ܻUc0 (6)ϚjnSc(b* P_&pA. )ꁆv8l*M~'t!{ wAi y.u.Sf ax>LZ4K(7_%<'}QËOx] W `K1F} @o^*`wO a 059Q}nJY5w"h PٟoEMl o#$璓>n0ڃ 7'CN^[o|9_o-jGR;GQCpI@0 ;_^ʪ]Ra(씛E&(<0E7x 5T;)%uh9xJOO5g>Fg>S!hټ&jjY?=N( ]"tG"m.6,o>HmnȩjDƮyAcytMTvLმJB ^A?`c3e[=#g՟" b#mу#F FI镪<ɟ@$SMEʲџam3ߠQǽ-:630'U=[)8?W"6U5?Ǹ-%)D-]^OiNy_rTϸLm\x5~C=BTF Ee69b6jQozkzx2N4D)oYXRwnQڻE$v\9cִ' &ar/FAO1s*A+̽e}̃/C uȊ|TG`ڂu, {ya:>,t՟X r:m@CkbЫw:,hrƷ( \=9e#iqjG]/]3 ؊FL@2d_\B[ʵ0pU0Ļr Ū}A_7n"s_u6+-я m̓~nC˿c Y)ڔh4s۫80I'wi \ Y| a"n 6F~N9.%ͫV-q߈v QEWvJ㼩BD;ma<%1f ' Br+6Ћx&g@` }`7ڡU³Gs)vwJ; fVAv[>'W"$>J P9lFSɺiJ+ջ螓+7lsw<]Fޛ_8 |iʼn'p x؍u=ᴟEdK^nJc{`CKÌ6偛 TNO^eFxNrX/Ʃ&F#3)Chl1n'kuwJUlIV2h|NVǎO{`pA1u5 9:Ag9đ `{v>Y#蒗(lN;bUvp"W.Heߪ<JSjE%6VeB(4wٿYŻ?}>)lK`5,6x 6{A&q6JEu VYJ,4UECZ;j μiJ+r, =(^6T4"^~ĺNdΗ4bj)*-z&sԅ9ͤ\Ha:dXÃ>rRqI0vR%./Mf[% R9 Q/@xN3cB%&:-ap͢ |)I:.Z@~٠l *{ 1/#E.,-F>y]ٚO#ӧ>_yN辣 WA~,Wsr0IY:!^c_Ё#*]q [oƆ'$#xNy 6M4nL|7khB1q+¤VQJRRQ[Qچ,mԄFD%L!w*L(8wXeȠ4Q6' & vW֏cQDDX<3YwDt!_WKՙr= 9 hL {I],Ԁ]U]\IY;$%! ;A:c %ac>Ĭ[UҪ>MfQt>sHߞl{+QK9Q<skbc/={wB{Rxd+9$D$^7a$PK <U, xT8C:LNr5JW(/0ӻ>ˆP˿p y)a(y7F.HETNKhOnH:qn+|Y^uV>Ja(%dCvH&XzM N6C1Z~eV~%a~Xa$0Ŧ.SՃtMeK\)b5ttky#->ߡ/2.>2K u}|BEVz/*#C }żpgZh#H+xJleӸEJvUm3Fg—uBΗX)f|BRhs]Z* tRʞkMUf8)'| ur!ZWș{]ѽ`ť H)ѵx%|#ꉊ2?ad/(ge[[X@xǃ=J+{kk *د&Hx{?I?׫r#ޝIyg*I%ڇ ՌKt^%0HyB<8kbgJSMXAk-k9g0EUvtҳ) Z+N,8HUW+Y4W+er= w=8!_l)NvA)˰Tе[Gh ݎ]Xr\p"ɯ78i *Hص:j3,u Yf|u\ sjauKHAG[YI5Ь+8t&dp5Y@Q1~3Fg`x(46^'3\І|t޻Q5(M))_dx ہ PuZR?y+F#GDGuU˟Ay fYJOLr9A4X]$'A dy @Z3pX[^qdzM(Q1n\^;V< WkH*smN+<=tYv|Ova]sG'^Pgfl@+˧ Yo7H1ͽ[ SUR?0ތX{f(L$_tW U*o7&yɨ,NVmS2 Kr8ȯ^ρD +/*lFϒwt|_+A|Dr%Yv][}\xx1q֓ $}9n:A [b0]@@ D SoYCi㸵 @!Ӻ_t?NԪLy2$l7εqJw1( J\6 }1 N+O&ؔEdzoL LXyqfzzll )l5n֪O4ެf/* 7#۶;!m5O* L5W.qmcK|B6`.H-NhC/,|փK݈?; YMyc i {Hޅ=<i -)0]}a{lI%n~(*EcTծN1P`7KFא^{.8"Wƭj͑;iAR"<64)61K_f?$FTI.eM[{[+܈۫ؑ&B-RqfAҸi((!k69IVǁr$KGuJ#Bih2*$覆<]:֟_tVO`(xS) i &{eT4O[w1d%K]5طReh1\ Xflvsptujf|>It,ǭ(;!mnt2MxQ+QhuFM,HVK)`&/N':s=9@o˅jDMSivK~Z'aC{I:+D:>%>*5M)&uU8H-V1Mx9[ /O9(h+2\Ap̕N=uFc_7H*hI|\X܅ϒIlm)]>\/1\wɄ٢`,DL‘/8)Yr\xف@tm޾IȴY)T,p#m*ۅAk!!et@x,#.̀k| *|Pp\4fEBnwiJo>+U 3A[oJ 'nq %uՊt;x8OB5=E%`hUhfdU{L*HeC% ¹>$[, 2RݨG"Ak=*_jRkro3Wb(|Y6w j :N^L[8-uL/jeYHafiD/Rh ם@n Z7־R8aJA*,^V?OsH_ $Hkm/^StihK:l1=,~ž+ԌZj_*iK4c [xgH^Ռ.2L!3at/U\᣾\wrGB=46>C+xڰw$DΘO_ZaxH7Σ]sfM&4~敷cݐb*K*)&8ŌjBiaK|>Ɖ޼ qۨQoJ~^Q\_x1@M &,! M'x!ZBYAvʥA5.LsGjLOg̭[xT>GO@b? (8&|>&Ds?.l ĄVF0teތ t1sf^sG",T Q'dHr̹AN*{MnwFXy"1HQ:ڂ%dF`_xmXm$KYRね `K7. -q<$QTg>"0ץb}wqT@G\PȰK<6Kb y.gW'V3TM&ec )C3uaБ‚+Ǔ}iI%p]@5@_sṂ?fJ"=xvvw?KQ b y\o!!eQ[ѽ-_r{rLmtlF~mhsSLJ /lk?Ba<_,K^DA<zAyړgU,7Yϼo=Mb*zD&Zm< 'A fSSd$<0'r#afG-r 6#@A&]v?uS%SFcWPgIsrTRRi[lk?IBNXUŝp =wE\M8#9V*3N+]tIq*ht.Ur u:DNWkS-gfYWl2A(]Jn]Cn`Vbi +b|51>ѰbHs3@B@=ӧ4"@mz½Aٝc3d 0vX3py+yBɳ&7."8`x&*ES?<`sq||Ce>Adk8tey%v="e^17¿5nL#cp 5R<2>Ӈ^8?EU*:&9`Y-ZA|U}u4d? ufMOڕ E(BgQc6$bNwVӥ1W˶(4RΖÐ'\F,2R5'x&.BF\ ,f\%VYSzb0.$[EX> qٸP IIۂg4@OtEuT2RVczoXʂoǙH, ;ZڛyS,hWV&R(`(>gM&͠5cAb ,}^DiAnͲVpPi[hOa3`oc6@Sf IĻ"5H6+R:aF)0}wۃŠF0?> 2r2ַ қAN-ӺG/F! #2Y"HV+c)S%e)(n~K^6K[3eٲ6tHQ巤Tl_# >5 ?x}pş,#~N׽3S0h kd':9.p/4ƎRA{~yYQ5:ci^ġAkuC!MޖFQP 3֎79ntbPI@"Y~+r4*6 N`b LQW[AINJTe0lyL6jEpSDcwCJmܪaEv^D?e!WF1hwm `^ehYׄ{p`HrJaSW""y fqm-ͧX;V>^-HV'KOO<]IQ`^,հĝ"m6IpXD zݩzWXRBT[T|+4sR%AQ t-H)IDme˓Oc4q1Gz}Sbv0,E=L^9t ܌IF<[N*AbGizI/bG6Hˣ2rȈJ6o_4%Aw[XyVE]ty7ޢn]58/!ۘ#O.Nh9pU>MoF!O 0vgx{5ƌ3m; zᚮ`_i̋}hށח"P1>d " UqKwV庉$D*H!2QKdpm"(' y(*k&WNG)PsB&bM=NܜgzjNlbYdFtl+}@Њ{K & L>$l۸C0Y;[g< L/}o(N^4Om1 05W(JWy3=Kԇ\so+,z$٦R^(GɈqRݽGB׽F%б3Fk?X̦;50;+4!╳饓l{-" }&,P6uֲ~[=25Z +4Ǟ@ﷅ"f#[T%jL%UPYES6-F' R<-ć/.:W17iwпo#ӇOƔ-`_t%^R#>HPv0m|45ѿ{1e"ɭ>O9j.x"U[2>Y&y3jsˊ>f"(B.Crȫ8!,4P񮗏[?&& =P1h:rrJegDJ "rO#6-6oiY"g'g~`eG+Q6#\cl&uq:>\e~˷0Q&¨Ů oɼ{I#OPyފ;o17J7ci+{tQgP[ʀCMWL%d;Nz h__!6K=ґ?SBQ iʰ<h&'ˆ1dD?^3ڊ ƒ~@V s5S~sU"lElK e-d]d Kp-Gq[kd-q^:+XdruptC$J=R nKUw/t3w<>\~CҮ?[͙Oq^c0G.\oU݃U2yj80cOqE]  Ai)/D {. (X򧮬58'"Yxesɼ];dk!t}*LaE`Yfz+35fC~zVMٍb./1h~2;H-yS"/[(` 0H鯽>Cϴ*JbՑ1T3 3d tdx-6JbW?E7ȴV,Г:? kX8<1rqGO5d8(dq̚RBjZc`~T`8z}Ys9-[~#fzJf[Wc"@^"TEN%~.3‡7 +#FnWb} o5;C} @WA:0pS{m~y%"[>~%*/fBCz?cb]te7{/)C ^F5t NЎjϯpk ]nֳC˗;vy&LJ/׈_/0 4-f0<'|Ujh} <67"V 1:ۡuCPhES7y*bZ'+<9I?y.cF~(zqG̑Tc;$v(JA{.՗ijld0엫b#rRTC^x*S0 ۸fU@{;h^2\AG$Bx)n9v&]={|l[ 2='IK/3"om Q (Uy*]zahzk7ƠH7P#AҤH 4 b2%vXHKTCB*\NI as|tP0hZէ,Az Z)noo6HdBIKMpf\q GMl=ˆ^g;V`"+zG~W `6v &|;92"69R{kO>Wm㚫`bL>|a4ͧa%}/ 5{u)-\Ne\79@.<^"40΋}8Ж=lE&0/tӲ#hv ;ZkP:}ug FL㸵ҡ yhPp2̡O"EW~׸4 cyQ&i ޠW`w0$AЎ]f:iOIDn2jVt8~2K.}7RӐ6*e b;T<STV_U-شr RYxWsr 8c&1p﵉F `Zoo GSm:.9KvD9sJu8KRľ5 xo#)bd8UeMpՉ0uf8>:u׊`)Q!G@ۋR 2UZՂ{ΰ9cۘ\hU')꾑V+A*q]2^ >"if ϾNk3}se/d,2O9>2E),C9I-$YbMxßJEmO>"`&!T-OrT{`n!Nɰn5WiB^rWS%jD$Bx 7hR !o{ i#jָ^LWRB}&PI"vGXs@(E ;E~'ǽ#Sǡ)+n>C Cor'2iyq( 8ĵPxgT*sG/E{T|&7*ҍ8]{<~w>]J.87sCD\ROͷu;B|/}14!On3;8u^'- HW=y!:ZqZ^\oIݝT O?8L<_F?0"z0J5u@mY5jx~sJ (4-DJ-&%ʗ4Vt7]% xJ` S2F,r#߇$#k^l|]_|d{6Ft*}t[-Tֻ{s#8"pgڡ6NtWYz)6O Sy $Pk\c2^h#:=}ZaVKWcffS葫R$ћ2=]R61G͜@HF'84T0nL\ŝPhqqF! S%Uuv`^Q?S'olgŔOHn8b[̒Ȓȇ М#!\,\i p7mn@l"5?A KչIԿ[ 8II䲟.4qՆ}R2$1Ne-jr;jITvL@n E<gEm0Ax9@Jip#y9Ajx݀ߊx HqȀ3eD* J6m `#+jΕRF0uW^}eT*[ &Y^Q8 @S[\ #4\\rB`fr+0喽1t# 7K + Vԗ϶VDG-d l2:Ta <q+l*V^Ōc^O+'CKg k:{ WFT{n>!a=!|N E ߍ>h(B<6=Ӗ0ah2[،R]9xLuX1 <o{_!ȢP|"BX -('l2 qW"}\]9`$| _B8O +B=)dL=Ȍ(. UAĜyhEpNة )a(nDl)DȐ7@Mg 6\rN*Yl *עBʞ`ceDcW~2`b<\͝ Ee,SatQxCU[ hLd0N[Hs@ yVב͢5[NIsAeY-<4(dc$G'V6,I_S/BEbhjZ;0># WYx͎{<΂ɉ$1q/L%qqU,S9q3moC-SR KN,Tnޘ)UWb0̔D&T |} \g_:з%EwFN\"G2q i"#FL*XɍnN3ʹղ/&u?TZ "'Yrz9ap7Kc \%r(sqa hƀN~9I(3W0QELeL~%\2V5+Ûrd,v!,Y曀ZV,eȊw_K\SQu "hz[a7Od7xI) RZpY4Jٶ2D@WEB 7|*o*K0sOk{սV|#G3a,^.؀HHH<Э}#EM~ޙt)]:5LW03o|0X$,[%{e,B66 O1+\9L`ANKԁ5.xl"u٦-yF_Qg9יĒ"=60DOfi9"|齅Uc +Ra]uu7)S`yGT Yc|GɆQZ~c[Aa /[ !+i[qeSkb-S 0Lک2B`J2N0({  V_fF#8m6 ޾ШXW\'<cNHFǤHO5q66''I6͔ȮJJΥcO6;Dejߩ@[zZz?%kemmAd&{dvC5LLm4d5< q߇uw|ђ/i0bgㅂ4#cVLљ蔁;Ҥ:㋜4D M3>{ *,pO}q,sf4FqIuUA\[?V(i[Χ GLƸ`sVOz58CqHK.DF2c5k&X+p"1Ɓ.6w-1Ԃy< S%?.Kߖ@T'OژkB_ 콴 %*|9}/z=?҇ҒHw(\*{cL*6ot%Zs>VEU9{ 4jHTHq "lcu}ȜQbٔ,T`~.50ƱAF=XdjncЂiF2 fں4/c'$\ n1oh 6Tr>H V}A*_Amj$SY ]05*S~{MJ*K*P}><mXF]!㵜 2yTR82iIt14/Qͧ ȎƄ.}]մW*v|_H\7ZL#Y3:>oE^)b?a0jNgi:hiUFxcc7zqTu;|17;DC <݋Έ9R$}5c8js^PbFT}HDf gt`9QٵɂfP ^ñABKwԷyi՗NGNmzqJSC^weYWб7?[?dT( 5R7.9oyK,ŕ]op$5ыcH > ~.qsi}~m+;F8`LFAWϴ"Cw k2ii)bɘ*B=M-E+О^XNzxHUפӯjPIXiC5MΑ/?йW^52Wƻ:ZV)5`r|-@ZHfw_:Cktz0zxbLΞC{`FGNP+yNަ4E[1+Vw_{j07CB {Xعt|/ֹ"72e)ޞ906psru\-:CHŭC12ۚ瓮:\rT-zG$>.{M;"gok8du!iyŐ(N8o!DyRo=_91 UroMK^CoM^i8~ջ~sZ8uWHᩊT9 _W,ͩHs3rVP/lA+\jɚyg,WVBsYOCm;m, '"4JJ"&<x4%`G o"_7zJNQi䓣kZg_:Ӱ(E=@$kf۴su55MQQ3&y k%łH(.I p˴p;-qjvEˌy~Yf & |o)' l|v*+oRS|(Vc-} P9 %0Q6DXgAZ1M!$JTg`󊈃e9Tq}%\8K&Ğނ Inf WϜRDCU6A\e sw>/`9u}t EؙH:bO{H#nע+跐_ Q^ޑsru""بL|- fRPXc/N($ȼ{&#uΒmYE ZU2֏np'' ![N[)(P4Ӌm;Tuڦ>n{ꥡH+O0ɿ:ΝdbE17V@絋~r7 /,f~f"4HJ~S(c\$8[ ʢ,ݑH0ɎsZ@~ۯ lJƸ5L9 zzЛjG`<9?$"9gcmʩ&И9i(-uN [kG~jW.IDao9c=47F.^v, 0`/pF+`2fD#o_\Pߔ.|qj)] eN& oV̊qH)9:lYKZ !UET4s#qdĤEOhr G 92_W7(rR7gFwn@Y1r"KԬh-̀(ȣTXr§O82xՙ'o Llz#ubaӞ[}%}|c\`|ReK++R4Ў*!kb kyɵh0xp}zПQN3͠yQZkfuB=V5=puk6nxP!9KӵO_e|v,U$I)q2{,)~/`/[`Ju4 Iu:QC=J\qڑnNT ű}IV9: i1x}b!G]ӓN/.[vr<$j{wcpaUeN??guaӣ9}{v?F0ȵU$OKCqfG!64\3۞&pb@=%M۟z׋0j֢-to 4l*tyR׌kC>ja"3a3塢winLdP \ּiirh@tzv\֎<XmVU w6G9eS8τpiWTn^?1jB P9ЇW"^"G 1?/x7[DnMZF%~ۅŵ%a(U7ROQpS[puлT/#j!1<} bǴ^ Aeߖ ^{y^dh9:E ,3T嗣5T1)I3if9hZ5h|j;tJƌ }A |ф3J{+ Xē _/K'yno,퇶lׅck0脔 pz Go|U;o>h҇MND0 Shx*<~cN719g!@.c TE]P~;.{EhKjYa;.KtU"@蒀B +i^_֔(DcB,K\gc\wWz6㌡2r19/UiKxbJ u F`זKWl",D䉳[+E?6J-wljZb(VPϕ1p֣L* +.ɳN.e8@ []bfݣfG¦඿5!I*ov}WgX-6E?|M-nC1'0@\nSˤa*b}i 7v6>uQd=;1ғMteRJ]{,SC#f6ɬ=}tN;)ڷ..eLVg(yȏ+tUUOG^Hea!(<`m~q-sgDvݸGNUJI)﹈ q8bA4~HUٵ҂ؠ}jM4(U?<,; 0ޯ5}BXGY B{iS.Mmoji/fX uU'k RA^UQęM"qNB>s0?|yƮb;_>--ґ/9@7xsgVXA։3]]YJQq( e:NxyFV|Ȁʾt1X!W]2a00<}'1}u_`s'l~LJripUX;V9GZ\nUGhlV#Tuf  >%J͈yw`)-ȒG`X3*c3S&[D ԭF"R!Ӡ(s#_2X`Ѣku^LlT?\^i*Ȣ꺝?1׉PWiP?|,uFPr>y-bQ"1if0R.({| cT'.x& ,4T W}$Ҳ1exp% .nm!b-z(e#e28k_?MET[x"/ƀl H%eÅ0Dz;`_eFitc1+,Tz[1 3- f#}nd;З`Mi;8hufC}:.*21Ƌ_@(ӵI8 P|>% IH9>y{.L4r9U~ '9} =< dOg2MԸѴ VYR{&ufYqÇ5PG?yI#_ZS߾Bv5!$:4>zcW@^tQu4|ဍdȮż  o#Uq%^呚r):=WheGNg٪^Rq##mon1ҍpDIbNL zWD:K@` &y\ZТ T o,걾L:~9fOڭ*њVk:B[A/ _Wgq8t6kvoG!69E )YMGot[ 4{f.Z}:4urs]/xJW,'7d&#bDmŧvH Vjq3K3U2S8ȤB8LaHZ'FdEgUN;` WE޴(F # 3l~ψ E:&SBUQuf$Gˈ @}cKj6AoLb(*W^\EvߕQIH5r]{fFx݋ +! r<x5p2|bkwJ\ $t1St;#Tg\s"ITw*FѡBeJ-a ?ByerFu}E)N]B]ݾF5ƟljK,=%Ş9گHiU KETAR? 6Ⱦ3cgx.?0ِ 8_UWlt)ױ֌Dw@kIV1X97L@Å^<3%h|ZI< 6N˩WPܶǷç%eDB.'d2ƛodk݀-"SG&9ks]YݜbJh\Μ.r`cher?{ Y/>9uλݹA5X; ^n,͋ /rn>\'`V\aWW.r'jK,Kσ>TN n= ]%h?tQ\iPƠ2 1 ql؈]v.x% OF2[Fie>6csIu\uG즊ͺ!_uq*G(t@Rj=4MbMDx,]8`m<JG#*0}Ygi"K &ZGW RvNG2+x Tl~w,J =UWl:Z\0G&+Qջn@ gHPmų6ϺR.^RܿvoJXae^Qh>֚HQ^g*i-if7pn_XbQ{O!!$'xl\uOEL*7ZwCGOFMnI-U r$9L{8j1g vr725h9iZT(DOMXe{z6ъbԠ N1GQxRdYYMEmPR?_r6|_ 8-"pF)X|s;hl{,c<'8Pcn ax_,NJKX{K*]؝C s/|_1ƥeof'<+[twv#':N9⍧h8VkWjfY龿ar\?*_OZ`:|,)l:[eQ{䪨G \Z Ƌ9U0{NPcszewC-Jďao|ppj#vȠ=7yW^7ӍO=imc/7eS&[Ymyuܕe4<'Bt!bўQwT*y"ami 7vD*&=*}b呱1"HNA'U 3% ͖fCOٝsSqqB5Uk|~o?xtaRĩ.$~B75Mjt6e5|uwy,TI6n~`yp/Ι2Ҷ ڠ0`K`0?ykAg2C1JlM!4A-naLv1] CƢsg "hᏙ/Rg1CEYp.ϲ50P,ܳ[Zwi;YyEIrFS>+/gy4}`3 aDZI+ !/|e f,7J0NGxzZ= |RZ}u\V^1UMcR=&p>ʀusgVəf*dgз!jnG;gPyi8S*_i䦽 hI;Miu3rl$ŋ) sц2:Ɨe<-k`rg X H'7v@~sDo#37/lf{;PcZ7~*|dG-t9 ^^7 ֿz.@4ÊRh8UMFUXcUߞ uK:^{ox`E}WؼyNZcj|=bpB?P#u-Q NK\17 Yp*߶f̊kr&\/o8|pp@pgwީ}6F"2geO 1q=%z.v?t]R3w !nƿw|g?JEЦT%"A\g[#[AIUpc.׼;_V\iABgМ"jh(e-O nOLMC~ "@,䧌dł~m_b%7dsx89B0ܳY0U_blI*tF4ű'$3w僓= mq`}\ћ<2pkvUZ\3tXM5w0'QhD˘e$oOE1@й *Q>HUz % 9ۦ*.3Vz9]rS`S/`Fwbհc-lzDzC _e [,R!] dQh^FNr%dS7PR^_^1[刘rc9_`'>7BKk}ou |:n=gG5sPQ0~ b.JYB⏃jtf/Bw*:!zW!沚M>$Lg&8SE:Ξ=8  z -b}`{ULg9Ƈ]"5_ޡ?Wt,upX[Xɔnז@}UQaǁ,\Q8$ 4Ҡqű>\.A򢁊+fQnoumDȴt PV_2oZ! Z29n'x>14 (4%l<`OVpy6]7s"FPL=om]ö!;Ǹ)DHxˎJ[ M(_qܷk\+\ףyO 銰,; ^%ȃ|MlaZWVDb\aРǯac=fU5.}zhڇvvfӥTŌJzYg˅Dҳнr?##x8[60% 6G`Tϡ!%t5Yuנ.^Ƨm9enbn:oO $rRޠm sO1"w+zh<>bD)ረIDEKCىַ-x k- S-e2mW&WSf{[0\c<0H܀̣TDՂa3WN0ZƱ#Bȍ+v= d45> P 7Rt:kJxӎ GG\荬yD>i@*&{pm_r@orN*HŨSS{QyxOO Bhc"=-MSC2נW'uZ 6%$Ha`:<lRmIY_sqwηʾ >b\byz3Մ$]i6q=6oJbHo8 CLm"1Aqot0Cף .1e8␾HQQا?\4"m3wgn>QdRBpg=z $BӸW&-[D-9f)TQfZkVgjۭ-}4/eQB7Pj`4iRVhT/tN^cPx7P4V @v%(rHUAVFAJF6}Xڻgt_y% 3`@^ d|, | T6뙁h9: }VrͦϘW&O沒&Y"h~zܡ)Sgqmd ^FZ(AC &Cc Ei8QNʐަlOX3Oju\{]`!} |U{ ܳiRwE=U۽J*QUc K`NoJ/aYF++]Btb,^iVZ‚0؝>yBF*tejZ\SO#7af, n;nt#(Ö2ElHPWk =pS,9Ȉt+m]6&q C['(S MϤ@b$q/*벙[Xn0)d2Td8|8tcVo!K*\˒3a ly=Jٻ3nHT@*)5H:"3࿦bVW~ 0moc/%@ 3z-ʭp5|]cdr?qFDb{T7a۠miu 䋻<bxo8&7bV%. <UeƒD+-zٝЋؾt0ȿy<Ǡ**rētT|3AFͪGOmE21@x9NhT#Ѕ_KZ$0?A_"Yz ?Qv&X|?#itĿȎ+9P9YO0uiAaӡJnaXX0L1 E {W׻ר\Wʆ;Ri ?_]@(;;¿D\*̉'xפXWۆk |Jz-jjٰxHtRcilҒ%4rЈM^qfS? y+a bL#\'Oz6GfPN&Hca 0t b*)9XtL$p+k44 { oR+3iE7Kӛ\40lYmIj*ge /ϪLM0[!g-8cd@ٝ(HVhc8X |q½n΋YrCO,0I3bw?}֗Ĥ/B/}21MaK LA;GYx*7*< QnQ|x{Z@dK"CSS54sFfW=]'9q g'T} =aǦkn`ZB$hQQBO 4Y2baPA #A2z!hfϘQ|{q*wgr%ƃ,AgMȩ""va,t dWx/BǮ2U]|cqG>>r?f훻UQܷ-j0xl %n}$ɱ:Nvg,cvq\wm(2cgE&3Υz޹MGU~C")+ 0jLʳ> E-HJiBKx ,[}IWůN%rf8 UNL,fdپD3Nߚ\E(7B䋭[QWqewjVQtgT2,2YU'w._pJbc76>,HH"A9;q}H1'톣n-0]בy-Y[ː$1Dh{6s[r!ܯ5 c,:BČ`?R#3?dMNIcӥ{G@iuR1d [Lo|aZ΄Sa'Có*/߳I(-O5g6cD wL(k>WݪKhe8?Ŝatz4a h Ȫ<{[9AgĆ&%k)Z6%tE4W̱=W젨X`ϗζ="!Pju0K"p^G{Ĺgjbl6Tx FA/HeB7"w 8bj[E÷ThxIzsiyӇUA1lK|r NLr?3w2n6[r*V^E51AF(J8sב^nc(krF*јaQ;fe}]o:LYf[q }ӔR=\lJ?Aݸ}m./R5:÷q{o9 G2xjKnnѵYj\=\YՈ譳u _ޢf֟l0j$%6|_wx"Y Su{SєQ`S:۵jV7iF. IqQ% OF8!5Dc8h !z2ʴAʎڿ$6I17z ]_QIof$xzu=>2X=?kUXP J6Z} hc2#rxDe=1ř臭ph4ƥP ?v`T:'8 W9@cӄp lɫy~s{Ԯt2wU`OSϤn0Эkij̃.q4x69L!f;dmsHV#jx.b8$Ig3Q7N&ЯI/ƚa bb1`Ў,%0[J FkpK_,bd!|{r;yރyqL_)~z"ܐe?%Io% G<]&o *e!Jv`U -,ZP,g!J>x_gZ@|-.X̍?gfL0ߢQFҡ,#pvlk d;E]kdh9d7IY֔9ؒr.uG`ut_A1g%{R:Or+ڢvm8\֖vGL!/U:Iу;wE|3UNzW !Ch\fiYQɦp$hJY/1@@?*ndqDÍ 5!R_ޛk`P ׉W\Pa`֣:~l }dm/_['xD7eo1Tjy!l "/8TrlpKE"RcrbFM=s=%mev|8avL|LUPV. Mo˜Ss6v=U< C;x=a8]p%}D5-s-M.z&D?Eʁ `ᏊPi,xlEâvw+oaݫ[@)ZB6{&})eRMlMABI띙ϤؙlŤnzqՅJ>Gc`cPnߎãsh+%zN`2ip 6Ф^ |\"[8UE{Peu_Bُʼ˃Y4lf%%Y`'$Ҝ5'>2NX }P+vY͔XlX0K 2@r `Ӽ"a*W b=$pgborͱ,'/\D ^4xh:]:p4̨޶pHnD;r S?[=c]97M݀ E $ecXzI5c[%솓q߬V1k*'-W*=ٗa'Oq2sL<̬_WoSsitЂQ,(7;e KC nlV#ݩ A5vQB+'}an". QP|m ]O )WC_Foyrhgb0^CAÀ gP)Fkԭ\#&kYHH*D97nblo e&Pc`A:%乹Nv^x%3wTXu` rAr!jPwܿMoDtZ6 \=\Eba W-F ?Ϫ79n, 8a?p,MЎfY1,俨ڸ,^mҺpD%ŬiYr3&IRgJ]7_K 5joofɑx-wMH(TEZz28h"|aU#7Bوtb P$0Bq.8G<'!wȝu;R!GOqtkV.4Qbp$=cq 4 EKt8Yδ)k+_NSjȔ4m ($6NYQ8P t,O_,tfF j bh2̣XûZVFǖL[Ve ~ЙT5e8mi-VUpLe;2"l0Vn%)8ɟ)b \u0v.Q?@1!"*K5kH(gY_R cJ!U"-iS{3!gѱ#HdxeXE}211sgRXeGJEilB N42r3@a/[ αyRmQ!(nS1]XFJ~Deh#X}z8!L Ȏ!ˊZĐVǤxwboz#͝vDrR󂬖xGF{9t7G{KK ΗzS.-'ӕOܬ]MϺi!٨,9kegG%sh6iͨt l(R}p1nAGfpKvS5B0-{ +.kX*F߯=첕fʙ]sR @ x5 ?ހ#, MݯOa"~/+iftc m,%u * &pwDP-m꟦r÷dI |hcK9Zˑ$(z"1Nx\'x*g`M>ݸRv!c%( VcE,'/? })1_v%N)WrywNZ!dts伸C(ҭWIE^'2'%C{(hY.:3{?4sczꮝ/{Џoc;VC(yR0qj< 1>!vri/an8%)r'F5>Fod&k _gF~ pE=;@`lao|p*cE^i i)cnWp!i{ɚ_}wDCD7fL3zG샒/P7c!xוs5 l0}~^}]ԻؕߦAnT X ňpV 7-/nHZjld0@J+!O⳸5NEbڶLʻ^ XtUzA`N~ W m!qؽ|{ҊxI 4YXx/ UJ2r2HIJ)*û ;$hgxgddO6Mep/vQ=dQ`O q*ptOH98&5<;9Yγ2BA$ّz4tDeqTU뛎,/ !LF(X⏤,U}#],D~փTډr=JsVN)O{R3Ѵ:&˶alǨKԲ,ʼ5uo fG(R.Xcd>EƠ7>,G*d_ҎF$ EMU~?ևEJHIE˝{!u^%zJAx@r6m48c$_>^xT:'OfӦ͚QS&+VZI4]j``̜!%NTm%DlS !6Q\gYM 5_&]DŽfɊV;e^jƎA_c[& M<;c,3쉁fѾU+F Q>]FEQAܪekLZ7-ޟNckڭÜ3ک! ΰ9`a\ԮܖNUq7,,s!yWhA^ܮ=ȋk9S5sHzhL ;U/mȚ&*#}9`2pSp,+DwXdeHɬLܕ m͎wFB*Lxx&GLjKG&IXnS+b\9-W@1% Et2q@ѥ.ac$얝oR3hvqCve$o-Ӑ#KZ)Jv9mk0YZv9j ˜G9ccuP'@4E/_8w>+~IJ A:3np:vo;Æ|jeE'dF%6lq 7k] 3UK訶DPgfzn pX:'ōv $= PCk%AfpufM[of@bıP#6L F-iP_zf HYHR IM,WEp"wDwW. *Oy nO2|sEXR2bcx2,Gg`_ >0;òaĂO/A*VП@ Ex"]ߝNaoN/_e"ܵmzIIf1QMS>#KjhyF "eIž #x !Fj4GLXC)0fJdZ%NB&GUس#_٢`'2ْ+>g:C |$s7HEd6(\My6#:mWm\+O<6K[^e}3JA5%PO\6H:Xx" ; (  o?!![o?|4Uay4r;Q}[]kx2$oV01Tr sۈc!OT5^$+Է&8lRy6$heE>9d*2< qm(ؽ}t]sQA))y3" <--Sa\O!=>ҘfQ=T jHBGijsdY\3gM]+#:GEn.jkCۥAow+|^S1;PKp7yޯ-O,4-f|? 簆;nTH(jStk;"mJzv#e},؊ϭbuކůoj#dx^u-֘O.4ѺrsfO4$ T-̧ͥ>}S M.+Tʟ@ !*ό[5kbh3㣧agkAJ~rf w۬= 2I,fKE'&s' -[Ҝ&3MX46T&;4M *}ʜMίOyO{:Q #w]fkX^0o\w Ԯĕ9p<={s4ў/rwlt|C#ɸ+آyMSVXzK,u~kbl6 =F1}ߙ8i+G%Sy@U9 _f "q(O^;W v&M:uU%2]~)%!O/N%GS}h$ZeqYshqi˚XfV k?@&'˦oh/ո°jfk]%dA ΝEcHbPtlP#1LvL tgldTvXyơU{ԙJ9 ?~Im]_aۀ \IF}$B>5MQFhWͶΦ7W&ߪ4x:DocԮL+<Ņըv<8]rKWsP/S[ND͜+[G$6n_~ySa Fm!+,]za8֒IT"© dVONb8]ucs[9vO/րB/rs3U{H0QHLp4rgm7@A:ޔAx @d:-8{!msƷcMJ@tf,*t6;F a 7xؽђ}Og3 Yt?}=םUhw/q%ΌHc9=m(JSibJk.DN/hVl:k[L BFg ~;U@gt6GP&ABgī(+ek4pXϺwT(Ɉz:1%o^]$2w Ak HAz=rmy m {:4-SDZf¸(ϮѧJ-+ƺהvXӵYbBu'Lk;ƠP[rH-hQc,׮/vZZːߨ%|=ωABqfΏ  2QW? *)i!n^U>!T2-n@q9M ;>p U1lAX z_qKZ9;?Czp/CERev.0lE+\HA#)li A޼K_و9e':r4V'1ڠqdS@ {^^<`$c/!O~tӟF= VHk(eBd;Ew40nL{k*<\\6ޣvmA7)S;*B:DݔzY/m #5ZC99d~nRz4߁wVԟ UJ;{Q6.NdJJ;&H^d%x {k 9L!yPo1_XN0~K2WYfOW_O^ϵC/3&:QAw}5v}|) sw\1`1, EF=Z˥^FNXIJL*^u0fa#",M;|b5hQLgg^Q[b .EٚW@zLSq! 5C%@RX#H\QlaC\N [X02?6f8;)KEF'+fE' -\V!0CQABlrg7aĶlb*Lˌ\^~!E &gˤޏ]mk,M04]0܃v !R@1dxC~/~8>A' j܎T"_΃flbҢgQq8&"ֶ́>{rhԩY%{ q<](JvUħUAAAtMAE;{XTPY?J l0e\jTnSNv0\>1wUǁԑ7,вkV#Fǘ)T dȐIa8(bs Q{aO@}F7`BaSGךR'+;WS֖C>c .%d k;lHpdb1J2){>I9 >Jx*ْOQX T1G8ܮ(m^Pɸ!szBT%GK@X6$1a(뻥2 ?e2O[P,fhT@*T+IMuE[/"gO5@© }5*̈8h'td..a}#.3 ZYJp)ٰ@1r0^VM)]Y` )AwB,=k'||=.Fy*Dl 8m1EHB-8#*8aFc8l*mnu|1,9 pY֛<dži@Mbq  n,ȠP8 ?*^Z!BMEFRYDP-9ǔ氓͓vcH0qM462_ҏgXv d~Lվ\ ԣeOE81umͻglď*\zs}3?N_GedFn1?>JU%G%2+4`PY*k-@R\$gB,F{0Ў`7Q Oh4nQ]ѝdydO?#e@!S.9:élf|?O݇>:}N+iS(KRF˜ޛ\ef_mkxd%P[Bp,Gܻ=Aȭ;K'8{wl(ls (qqa||J?E;z$߸~).E}Mj(Xp| ZBqwd~ytZh73z1 /;L{(E>@扯B-}[J,SSzfQMngJA£ԛIZWW 1O#Cgtw^ IvB;jʦ4}aRRpK+lih0 :6lEGNN+lh®LbMUJ@4mXnf )BA=>tc)!$y3VmJמ (QjCPsd.,vţq<\}_0vaRpfw>`;ZKP{ujVP:Ak# 9?/=y"DId:# 4"oEZxd]Oxȋ۠VY n-jkˈEZ+G5l>`w@Zz6žh{]͜0ʴQr'%j8S@)jg:LLb-א^46ڳ'C;%6 Lc#y s}k2Xz")>\GK&CNG;;FjQ~7.(50\y1 ^>K2CQKK!K`^%f; xi'U.xvaŅ8 `g(h@@ Ԕ<קj\d=GzGeeDG}U6tmPeIwnh ͦDhI ~[MNQᯥT+o 弗|g (bf* شꨓ";'P:ymǴ@lݞK:j]l5,l` s#\og8Ág8lIgs؀֌N!uLXr?ά&] *4^+:N%x1%6JVkN"EtXPu+@~Q)-ˎO?3 SU42GV3FzO_52V'@B ]6xt&N8ym9OKZ$@<:3(l(y"0F7Dz ?WpΫSzhW:Ѻ(hH/si ⃹&m%q\&9DWF"2W-XLG:uFDe`{_Ё--Y{0r `սWH` EaD͔Ey$< ~Q|p+"yn;|jE}s9#WsM4;ڔ94|9(eJڛO &7X=<<4; oE=e-a+fWYUL$ ٘$aQY1'&]Rc>`JdkhH(yޚ'vԅIq0:y)Q\/Ebvu qֽc/Uy `ivkޱpr~&r4(u$<R4Ӕ OpXIA%FZ9w&CW#U7 G1Dp3p\1l/inA.c.;psɶ?.QqN P{׋xQ9cam#s >AZH~$fZ~ Vr-л-X )1lu4ɺԴ4Tr,TV'c=X_G,úC^(:o,xlWLO#| 4kbЈ=?&eЌKK P]"wБ<;xBw*dbT)e0_R,؎v(#)/2\Lצ#& K=Lj뚼]eß4t688[5R~V9M }d ߤ:^4P1iŦ4+<UJ}v"nhgǀ j"KG  Z୓Ѽ(N9~NQ#LyĹ!oW( N{lg%,!@NmIIzU  XlYF§|\5*^> endobj 599 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 601 0 obj << /Type /Encoding /Differences [ 0 /eacute ] >> endobj 602 0 obj << /Length 229 /Filter /FlateDecode >> stream x] Eh+N!iF_2D,cLS(^\9A|5Fh3I#4Y{8!b_CQp 0D`f| YT/Q== W#*6Nd"o endstream endobj 603 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NimbusSanL-BoldCondItal /Encoding 601 0 R /ToUnicode 602 0 R /FirstChar 0 /LastChar 0 /Widths [ 560 ] /FontDescriptor 598 0 R >> endobj 604 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >> endobj 605 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Symbol >> endobj 606 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >> endobj 607 0 obj << /Length 608 0 R /Filter /FlateDecode /Length1 1301 /Length2 106352 /Length3 0 >> stream x|cxe߳-c'sǶmsǶӱm;ضmӱm=>5kTլs̵^dD*tB&vF@q;[g:&zFn,2Ec%#SpoNqG_7U @h `a0srrrΑ`hgw,jgbuVq(\N=p03wP)kP `Z,l\vL7l"M L,i@il`ojkw2:3PZD4NP(j4ۖBZؚ[{5[ 5 `cdfb@wcs P dlhkeog05vX` ]gG ,`4@:;Z\wMl=]zO/aa)عt&&&f3?eU4:+K`p::U+yS+s0(KP:l)`fao0417ͩZv%O ?T(bm/V)U_Z m3dSX0ۤBf@=ۿ--܁&&lM@E;'^!_PwmM{% bv&f7t4O?eo@;b DHu CZ yEuR^+JKϱ$vxǃA׻ T [ jj.Kxj77_zvRڈ,zs".,wOU7ژ¸9E2;^BVj]G6b3xح8IӄѮ_w_ћxIqU v j y \MQ,L&y:D%EIb UOcnG/v.R6(\:׵ !tFg!ySmͷ#(yiW߰Yb:w9V|aRn(ܤmcllm$VЬ(i rAdT;?ݨRRdʗ(Ȫ77Op"SA_?S `> cv7rBV6: a-ie8 nzˡAkޏPv"N z7t"s:(QiOs g]21oRXPJ4w`a@9I0ND:񀨻Dk#Φɉ^\!ǻi` xaߊxэaaJw1'Q0"/u3rZ0 O0}h$)<8Dz@ܛ'`2e;kCn2OůsB/ -`}w(46ΓlLaB[ByNEB ]gN]3זn,FHh/-Ȝ5 \ȓ`ȉ"NcpOHƮSPke7AQ/s= F&Q8n[kr5X<ੌbt$M텁؄^c_Wzs.4kRAFW3?abۀZ+ϰ왆2^- 85]ن7sIqWwfɾM(\YY~?*Y5,$_'qB@8ԭ ş!2aXaQJgeMCoItgIu>k)1RY:rq'%ģ,Y.#&L=f: exHHgO\}ܚ.u":y;Mv=?n ҷF}Y,IB8N|HX=+XH<^nE(wǑuL|K:#g J6E 4|&'BvfA4W'd=D j3Wv  %+tWiڂH41O=[ 8[%{I&Ѳ5$UX2O|ֹ09@uzA!vP)D[)4(kc5_o sb;>f&Ȑa/j' (*,Jɇo\p:_> Ae&)нK=!6Xb,G3I˷.3,XSi1t},7_8ek\uw`1j5 q ^5hCj^ÂuּY\ '(&ٴemƚq@ʨ,PrXG.|3YKwr%L\v ڇ( =KinNՑ!rυ^żL߅@?:0 sW's|PSNJJd@Yp u Z{N ;sӢOvQ6.u"WXiaC}s=(*q6FgҮ__,z;lce;e-9`AxJގ0!6`˯]6[9- Hd|@]r~A]~Z: ^_*O0kV쟰%Kp]%W2w/y7' Y6t2sYl:B]y!NPjNqp}0x_7Fп ]M,\?=xl}@&?˘8kvOal B7KPd/V ZnvAÑ:xȷ-ɑo*PSwZ'uflZop0F$.L--ClADׅSfaVrjø6_f ȓA} ?iCim;.܀salm;Ab'@2j嶟;:41L/wW>9\^ }YMA,aA bՃh'9MC2D7uPA,od; 5c:83/Nގ ^8F]JjX('_cz a"o5-r 8>%_<(}bONU^neX鎳7Aywq,Sf(߼Q^?肟8wz*Q{RJ'mr9JZOEJQ_y#'SןɈ2/c_}UZTd Em57/Ztkt&^E<|JaP2B0eˬH,*͉wVt~G'=C :)[!Q2n!ht6~] \aMP}ёxl `O{C~oxڀ׎rQ.ӑWg)h=0־|9Y!#8$֏ZA5 R—P?t 'gna]zfJ[:3Rɰާ" "́C?.go`uxnHO*.=U9Ee0(ZVį1e'cl2f ^3х ]*\zϜ-sR@Y:D`aOlcjM|ui h8~ 357:>RH%^w͑CZLA< t{6 IvCO:%-L COD4r J5Jj -B/n6'aʑ>ƛ KyJo,5:khoQkZYOtxYޠ&V\7lX-ɗ[P-7W[pgl_'7ͬaZ;~D{Ffr҄ lnYo C!վRKZi_QP>BqCᑢ+ۀTtrZ]~bOSE<} ebH s\R@d%dw'W4 oȡxCZQ ]u;2L,H,'*GBfmWrq(-M]ZGf9mߍ$eç&аN kRk\o}7$-%k~^WFX{w<L<=aw9VIeN*f _&S->>v(G /yExcRE~/vyN_|-O *_zI^jҬMTyAnԃy*9 OkMSH~=kߟ{ C/}K )ÊvNY\?pCop޼`#w0ܯu3 ~q?@Kgnl ]u|oRJBE%Վ:f40ՙXP 34'Hxj׎)=QS\Kn5}.y{s @ww<`~x4=w=gF˃N~~=7/CO=5~hTkYIϫKT#~E;ǐ!ǀ~mʾ]cGAhKqHgUi,G]Vrޟk?'K1JYc3CL-l:-2$9՚Ѩ$ .v2#IZ]4cltc."2'Y)OnҊ;6J-pU`bU-\K$l|\]up4>1&B2}'agy 3erhl6Bٟ'7@=dK0X Дc*wZpr'=%EYxcvIoYpU\oLS`b]52QS4\d$₇ k6.UH]&ujn+)D~op.ikw?\KHs5C?4"”$ծ0AxٺcZ 2o0SM+q78:+of CkDv[=J{RJ7mkFΤloB3-F$e hS=꽍8< W] <[LI?2/,Z.PbjeXdlhzQv_5QiTJ`fIq|_| F1Qc)VY{&DC#|0HvO7=\ Y,Zdăf}T,M xNWh U Ե{.3D@ $Y( -VЦ>B}۵79 !>)v {6*夦toS1m$g͚O+ĽxYjS\ wtҤ$S+`j.t[:ϩ)_c()Moh-T/Y|wQgs6-5 XdЖhD|Å+;BAUّ0PiIzXD0 ]=1 K2TT4Gd!Bmȗ]vW>뇑>f^ 7s|f0Gv/^tޔ V!?.E.a <ٿYxX^sHoȢ(kJ"F%ԏO7 PiX!o?t !}'fLMvF:"X jz쬋O(V> wP1?ٛYéXoKyI34 Z I@.(,]#!0N56s=٣}ƳgL"tG`[]̠[MpGqe v0lT0S# D-MpGSx +4=WP"B`>KL9s)^>ho_azoas<ΙP}Ŀ20 tόrJ*0OVJFSLuo;#*e&Dvd2@{hbJZ}"Ğ";EEmk?O7{/rQDF.|1vAQd+"*?""(ܙv7m}UQ vH_6jAZ]D!IQtKhJl |mS jRT~B(w0Ҕ&giWs^]MB8]{ Y5SŻ %v&ܢ;ŒU[]tks Q3lf݆˱r |}+Ic_|B-&"trMG`"s?dfnOݰԥ.K|cK$ZLUs Hw>[u؟-W3/N(7iEM ؄.+ ooٱ%znRZ et>A iof_*%ϝ7׷qnNJۤrfH5yH%b+@vgh/K]۪qO_vQ3r8=Fy%G+u1)XʦI1h83Vp=s,7%?^4x-b^#FZQ6ĽGၵV+jeSrpGYj1V:.a" L G> t Ëioeeh<کƖc(5PI/BBl踷c)"9 -c>"sٛ]p_j$xE~*O|enEz`'d/\B(KSjإTc?ic-NV2ub)ኽ +~{kK>+.]k16 nv}Jqe>j77.Y[{ORڬ`v#X!027S_4h[,w:/8c+ZZU in/u65!BPNz&l\EedS,v剁4EKFGq3\o#lʰXlx/>|{"NHD]ޣ/D9 (y!;z:gC!b _K1=Oo~Džwjٛ D3ɬpُH5iKZ(ola{bkEh=h ,i!K/Tu&_)UCh3 %ΒZg/?O#("RP`p ZB!%sǪ CՌR t ޞ8jI|6ؒuԡ%,t< !芳1>kDVTWx5UƉ_mX!`U[lzB|pʶzO"SB=mѶcn33)Ϗr{/Jkϋz%1bsHuxܾU ^j|mnԣw 딊O0#_ US@8 ح09pKwܒ;(Jj(E-̫\;lWp=Hcia'u>rHa7^v^=jnڼKOuתoTo{Wҁ@DIougYы;vYǎBT!T#tfF_dz WIS eo *4>:L!ƾ?V뷚v>80Q*{jd%m3椙4gGK_;f9+/ТAlqQH#45p]-Li[D62*g\iZM L7'Ҋ 4%OkvC'v6ե=ztVs1R\澉&SO>c2ل2~LhhQ6#ڍbbiL)'tf8 .aB!c׭)8~"`ɑv+)vhPeCu&ƳR89^ e0TjnX9!e\;⨋ վ ᜲ7t Dk-R̷ *9f8iҬݎǦdb-!w װHr1XdP>˽qxN9k/HYf.K4@H%$f@34~X]dL|E+eTL\C3K>|.qx]9-- iy{oF%:g!N|uMn%tkZi9@̱F.3ʇfUvTjeW^ir\GQCjR6_5* { B_:/&xs $YMfWz E rx {1!Yg>miU%/FKCJ#KS.OYDO#} .Wi .V V%R4m?p+ hw 6^.1QiV1]O>N~q{ѣd,vMP01H.EU_xIO|3@R8&fN"DӉ4}&)a]BHĹ*Ye%0MJ$pqlhC+<-˂:=d VH!sRvk}-At雚8A_)F9&sC8p7? p /!TXQW&1 )r@5%F<^Tz/BLMn*/́79^uROJ/1!RBТpgqDmM*^v,8;2XnxY$܌aZBmSQgos;"RQiµBDA+&oMalHˠE1*rHf!#/R|~M,Mq?.X39~PkZm$+n0[b_il0׹j%Pt; e{⬇hyw<C hDGUYW _HKLļHk}āq& K\|MbH#!Ԥ)pجXM}L6D9^CaN況R J']A! %92]!,k-.`2ר3 (y*dv hW66-F,$2ĺ 9HehI)Ak+ |BȘ7=G>iV =weH'Q.d0%s o^ qU+ }:fiJe*'TP9lw>ql8saNqH#2x6f<[Q;h 7&~ ֖!r;@)E4ޣLŀm7巴 r)U6/gnUiW\QN떓sȽ .g wQwwTaHxj)!6Wu\dR{,-?Ձa}OoU/&܁-ͭ8d]SBMV,k .hA= _ :bLCAM?/cbx!d -:pyQۭy}qQct %c<.eeưAЭP@}-617UZ,'@e{M?hs+^w2 "!;Zh(sإ= 2wD?K }kHCT$&SawA|U};=ۙIqqpVބd{jI;<K^rJ`z _ 8GlALb}TŸZT)~/=.H\,fԿ8XN ]sACZ 0&اF?d|ٙL !u8<+ɱw=2c<'G4 kF(Tz!*g<{icoGXzvjeޑf/#t0]%L̃(q,ެs+?oȽCPn5^2bZ^3yK򭁷tQ*INl;[gw4t^Muk%i2M2"VV;$!j?C'fP>| %BE6+t] w ۊYAq~ d2HNIz6t7=k_,dN1E]sdR O~pcjR~!^tC-CUUK'qIPdTpHNqsGպ1Й =LC-eƕWzc?YH*a.Ukum丐 SΠ}ꫨL (t۸.}u~̬qT0/H0p8и M0l3n3:ܵ< ?kQ,{*İoOF[mJQwCU ˗։rH{[rj~lһ,H '7/cv-)lis/jZ.粛aoMRk uOTc,)̈zr =6@Y?H}!*x%z Kz֒$:FQN#1%_00R,WcnMBPMvXK6Dɬ<3j$ЗAs_ .]l!qb5BYDc1iqer_c@l|&n%Q7c7Ql 0\6m_w=Jp3c]%6Hr &#Iܴ-m!?f ܙ3ѩ@ˀt@{\:REO@ܨlYC6Nwd@ PS֡eAikڭW¥0s*M$qo ABpNq=׎x ' @=7`9ѡPn *Uwrg-d߲?4 ~Uh'~N6i&We,#TҼPܮJr>QY_״Ԣ 2xl1Dzѧ6XDBS\4Y۞7CXrٍE.+ x*)8R@Z/|]nquy{8K.5?ST CObn~7m"Űf}}U"jӺs`Eư.ȍn5՝bPle2>uNuYz#%Dy^> VeW G +'QV'[+5=UksZIه0+Aspっg?4 Ga9^AH̋|I\Jε;2/n62vIp$_&ذs&"Ippp#iD#6c"\$+gwRA*M ?xᙋ|* fҍ]5g/ʩ7Ge[)b_c9y܉ ND-s7V 4U)PNkev#I{p!yP{oC10 G{6a%ž mtќayg?)}xJC︘ԃ\nIZNSr5N8N6rzr>Z*풻*@=S+s{0>Vk`p!|^6AeJ'k(}zn;@Vx_3BwD̄5ې2c~uCQ.N>l1D#}4Z5F]օM+_T-&La)#6'9]hl~<?s6OBG.@gsqaQYR{`eUL~WgG=_–ղ$Sd9'8ɴ 6 /,U# A]ꏭ<78CY%zSxgWX{ \8joHT$)w:[gk?py/Yy8ʚYᗪs^Na:5]2(kYp-Ig?Q%&R_$8}6Oϖ+3{fn%Ij8c,04Խ=CԲ`<4|ED.=ۣ;½O9&|[,yy7G&ztdz@w,3R-'sO&~;$o N["O/b5j~r^Ǩ<z!'P:E/z.d?B@Ɠ+dױ(f1VI y)ABSsLk,5qLWX2Yu5ub\Wp?$2GDמS )2t*PK<:Yn[%S«2xMiB/XQ&oQlp©`N ](rUJU8[Qbr Gi,? K\岗)4Ef~njuX_P596q*iKp{/ %bc0mL }7'zLTڡ"g~LZoI!UΞަcIȷڊjmg [ZbYE+;NL͇qFPr~(>-:GnIkFWBt`5u7u?1HϿͭkuήY )\y%l]Try :Y.6РH 5J5|Rh9@$p)](vDu5jfƭZWM\V@ft6+E AEՂ,KBT,ffqYJQ#Oէd=xg @T`<5uϱ ' k!נk?&O)MD/$%jH-OqəW*mm M˒v9}m9‰MbZLg!5PikF D9Gk&NʴhPj-hgo?n\hx̭.-(# y(քa6mՐQ&; 0(KI &87{:$_=Lw(zL{RZC%ֲ/b+F/<=7/Q3ſFP222g"׬Lw_.V,n#Bj;ҹnOcºQ/,8d.Z az2|C8ƝCAQ-SU!>F:$`RJvuץi}sQڱR,Jf*z>Hs[ޤl *`IXG&;p kXĠ. Jө#-B/mDooQCYVDE-6ifchL9]Xƛ虜F2x\M$+02o+_mN8mcvK X͆`B'e}_=m*Y i.7'Ǒt%~0A<ָ߇Ւ 0&;&aG,g- ;/) 7VP&3rs:t7zkOB;8?tn-s!= ѩj11ZwPK蝔Oם*+wW~N{t,Bd$ڒPp@#GMCoJbb$ظ௨Y,ˉJeyE^ jͺz̈́x9}C~3DA#:% 5F OU>ƧzW_59 NLiLO8)ml >WkȹhtGȁ>NGs L#lO[ѪOFHhEq L_c]N3o-&ل'=ޙgM8CP}LC4#7.@9rh!:}H=^ɥx~وNB͠;nY 2gpkY;[L7PVCE+0RtW +PUnџ}^wa3a٬&0won+n}V #b[Piml%i] i' g'R){M#Lk,[l.RT_CH^.p ߄y>{Ih#*ucm=y r`u;Sp+m'HP/1u9ݿ'x0dA{T3:vo3I{<}ďck[%!{.K%G=%# @U&&:n>Rc'7QUb_}wy ǰcgreq_Dz7򫸏05 ]$#lWm;X%[+(USj]-NU B_`e}W1@;XW98*P X]Lc]^e$= q4_eBk?̽6u>B?<Әiu0^2vvdKQmݸ~L,HV+a_ $MRq̃p$%vnP;_zM/tPilL&&_x x":39* 0xv vhF砪k<@)og[}&&ʂ: F5‡H/i-gux%x| kN\Y*y|c(J٥o#;Ox _E ꞼEv< &Q1$z/2>:fIs`W FG1d{]voS7gEE?Fe.<`'Tl`@Z7 _CŢY D2'Ӻٛh RNs# 鵭9fq[aRwt9xtd0 ·(-pEw~-M1%"/NA9UnYK}ѷp=*f0({vL8Y4ئ{󟆳䏺lg(eY5<@96dDbʺ0~m_º`yvXz²Y?J˵~Us$X ~[zmL ;x-70e($1k  Tࠣ;F]48 nB'DK cJ>֒s0cKx-wCS*7A8(Q~O +' GD-ZM}K5 ee7$Qؙ+ia@.ʚ GJL 2&P+xfMЀعr<ɒqG&[v|,^yIuC}:bzsA! [{$(#u5kG$mỉwRu쥷Kh0Q/kY%:Q=Ӓ`^' zRá9IhK Vrvgmw; P$QDُɏ`kj.srJ3! \{Lm@[VWspF "j~C 8g<]Fr y6.6}AKV8BP?)*]<x(r~>xS#*A&ѝފLt nV~4#Q[BWKz$UV>p`QG U~H|]&D%n´g2@Q:*[(#9]U0XT/t:. Ks HTHCϵkW^Z=|6eP<6L N@vNIߝ8h,IbnSwo~`xԝ hlTex/ޔVK)|Sb< Y搹 l~x&abv[2٨7J<BE91TةK`IHbS\5berd s8O_sqjl{#8R>O58F!ѕ6]75ivX? EWm]To^^Մ-rm]=-PDh$L|*Sd$Ig[ֺmAңX,M F%'?wY uuaCC61/5\_lhVRi+.8LV7+[q*\]eR>䧽辮I^u{b KjmrD;L嚋6J뉛JzSD~cUJM9Q#龶b· IoWIssu);64Io .Ð77wOc \d4}&3yI5@uˋ͇CBG<^\yz_9ByiJx\LuԙLps3ȓ$W2tzj%8"Wc0i|K|G_j lWW, ]l[7W)@[P b =/$nDV&&"d~FeY O3y"hƯߴskw*beJ11x5$ `8*M6U(P!մ2,gmZ7`9,)w@8Ny#\5Fs YbiJ)T92j`pl?֚GH\օUOm  MU =*',"J. ۺО<6k?Ε9b޴`i^6y&,X@^ҝe6͉J ],80܄~ Ӫ\zؔ7R^ݍ{ip϶#2ηbOTgdM^TK:SW0MgbF5{fL;ƹ$* irh& l=gTPi (sq F4H7;Zei giDJ4aQR:݄`A@wlߕ} ENz::P(g٨Hˠ;8S2HV\\hk0ev@Ql(StXDRBSE?QrCkC" Fţ*JV.'@ Yn*'&lbSn0~NG9["F7ilq4CM&},lcl[0k9Q($Bgxj&pԐ|q}Vxҝҟq8 ?8`q7tB)$Tޤ#@2fӟnvb>b(E,p sr%CV#Mi|/7yF]?x$+r W~#Xo-R.nsm/Qӥx#(қL:eRە/:p4#mؕܔ7.`^]s*+XYX)6vRUY* 2 |1/3C5l,ûX ee=$POZ6c3$@{yfB5:`*z=OFE_8xV߮Cre >SN'B]Izdʢi#8y\oks ȖI*`Z1TpߵoWA35iT%!//IuY^,X C/Nۊ\$Mr̈́Dk%]h@A.9-|8O؊x8$V8T6 %-vSSN`԰U.2d R5$$Zunu#c-ܡJ-YGA:6_ŠF%{,[ ¦w| ש~+o;bn[092@Аs͊c ^!-f{ ; !HuUGS8`YF!ٯiNN9O'e cڕa'܀ $MП V&ȑ/,/hg1*d<&: sa 4EFH>qsP y\ `Pq ɶ7nntƴ>ب ԃJ>Ay~O aU_\1qڷm\kEK:X.mA?R {g6F 5WKcMMO]̣ǼqK$Sf5.,شp#=Y3b8-l;)W1pz]Li+UE,P|spUo׊P?VK99c:b$7Az5C'3rlBmEì*t= Gn6ϛa/|4#Gl%%\t/*R*l!$_¼2*Ha+!{_{4}>mIYdǾ6G;7R:"kqmquEZﻑ"2M] A9vn`@bUPpkm=)WA|Ji*E\lPμ9$4H9*/Adr5b GTkj +-Ȑ9oY.a9"pNЪ |D4]ZoSxB3$XOX ;6T'ҳTtx[pXqQ AVErbsL, Z[Ζz(ia:U~H"\[~@ffb%$Xf2Oh$KCrx+!`}n׷<ݩBiBw[-Calx9Hkjiza“vCʘPd?C0a|FNLPy|h4m_†z {rVZ<;_ y;M"Ed4 PD_E"a& `ý,-nh lշ+3 /&X:o]c ioǜ%;Z$VJ f\ 9x^+ʘ _ǝ'xf.br2^v]Wi (Ǘ*0E\5:BST JY5b;FF^D$mG( rU_eVb괃[pnٺJ3]hFI4#jy fSrOckHjgpH94r 4 P!W | 8O G_tm]HpT r9<7F˶쵐l¥NYdZ{ mzqK w []qI;2cL9VCs (B1ڞ\m(8MDsKl>8ѡ2ZdfPg̳>HzrgURɡ_޿g*q<3T/zW/dOOíX*#z~m8 m,7h}MMgyhF_Kրd Ġ4S& S_sm+e5 ~擰0R} EGcgdž.C3W>.nZegbβf!1&-G,A:D @=iEoNBd kP gjöIqbgY*D#iiJ8 #^F|hg F^4y]zٕl[tRhfe脳%ԲYoNQOf߹pVd%%VqOUV4J?M`%T{N_bFA۞( Sp74.? da> HABM9<䝗!S0ّ It~jⳣHG݆ȏי$0nڊHռS7͂DplJ;ފ4uZ G;wx? O{6F>n[C5IVNNCҦf8q, 2'WZm OC+B>zNI_K?u8*z&9Z\$nv!eD~[BesbyPyKENܵO.U7Jz6G20+M[Ạr8.Kmk[t8്j4U"rnSd(gS)J,їO.5V; ~xyILuɐC3q<5{wq^h !MJ0RJ|jnI.bmcXZ0zzz^d0|wGڣ5x-IpmhfA"ȱbOz#)e.:8Iybl$ʦ2}FDU@l2ZX'TPR̶ -0U7'ab}ь7#; S2t Att #Pz>:׸O`nˎlaT[ AKiO/]tQK5.AiܛH( fNtWgvrhƏԃVQ$Ya_UpL]ea@'u H3P0L3rrjVI=ƻ䡏 jD"<#?9ʹQJ7% 䶏qnu"뽆&4~>AmW~3๟,ZX}w'»t@2L$F ~b*;[K([g4 Ts`#޿sX>EH~E*f࿋sWB))Жkڃ,֪*g½{pK8ɧ>@RTkǞ`}ÀmH'm0VۘY4U:W3{]0xCez dN gg7]i3̾G*5Xom"~Bp7) 0p , ĥ$DY9l }5\Dճ)x.(BPF`Iq<S(4h_gxV;*D}9R ~7$kJ>z%!jrAG!5Q`!>Pf_膸 l9R0yA!p%l@E?n͹2YGEHčU;]\ /9,2+ǥp ^6!Hv! =Y1!YnZluwf)czBʤJƀu,Ru@M;G]IftCy2+hR*3Cرnz&-vX@5P˽t[@RJ(Y,K-hkz0Ư*/K˹_x x6~@P5$ҷ5Y< T'`dyXՄ>u^v^/dG;j˘QeIn&߰~C{S7˭bZ,悇x _+ aM8%䶖yEq龘,طzI,/^0(Xfo|  0]A4lv5c"yz}l$2?0asstѫ`V6 v`pQCY-ۃ8n1|`qAφG-\D9nav䇌Qy SD8b$=Ԏ(k"K$B6ވ%ݾO@jYYF>H4 Axm&²d!~e({QrD8͖X %)^X^̕kxIl?Tۃ6DG&.F)e:cG V=s Ň DgWƽOy/; \$'B= ?VdܩHr aρyۃ6JiU[ @8u>j~51zvΕG ةVx"spn)ʘ>n[A܋Z%:i1ʠס*t* -|S/3zT}Jb*yzmYӣp r}iL"(ा&X({O.֐S ;cԏ T P T*sԮGa5u~9Hc\~})OZbܑry|z>дqL7HhJQNGG .թ.ӾC*Kᯐd*zf.OˮN/jh!ʑޏ$w{L,/Q.ڂbP8#Gl<-]vڙ/\ny& o´-QC!TB/)[䔨|܌k7 r.`A'ˣ#ptg'Վ$/M/]ua:`puȩem<n"n$]!HϙqB6EK )Lu}VRI eJ|Pe3t+Hkf+*\9,A{7Y+4l¸v#OJ;e֡y{5 Cqu螺XܿG50SbBhT~wOXjޗ'PYȫueTDlY>sl8n5 RfSo'\(eO7erc-G{JG~4x@:@d?*\MC3&CJE􀀒3}U6$۰xi$ͯvy*}}Ñ46]!w. !Cp,)+A?4B6>)XW;$S3t] ꋷn E|w':E/(Ĵvx#Hx(qȺT',@dQ]lgQs0(7 ʉ.&}\OI{j7۞ ҲE{A8KםoЧ/kr,<=(,՞YAQ"QLZ|\laT )- .50-c΍҃w脈ÏbA/vX-2Xԕs5oQkR YZ45J3zVΗDFL659˘O:B2ɲ5:!;ǁa"d" yą,;.Guض'ff Z׉,%]´mVU::a홷ƇH>yM@2Ε !$Gb\Mg?l*؋-ORB#[|O~9F>rW1Z,Cv3j}wLl yתq(lFU-{@Y)kC 㮕F$z儼_C!1U;>[&IBp&4V+ ¾@>w`d al,5N /%Ae%=M}P)o7PAW?%f It.2 Hp◖^x_M[74嵉qJ_FoM`lhS(~4q7=mgjt/kQӄ,h8!V9.zܭ {lFn]pDm>463&"yhQ0 KtH6l0ѵw/ F)h2(`B9R}̢!С0dK>9+m5p~6q4 Z^1P}]ףh Wt/z tT3H_zFȷ,D).rQ H+fA *AfUϊrdR CԎ{H.nWdHI0V(0YF_:: Yb`e˵ 3C|^mϝ8O~Ɉ3i`מּAGC ya{z퀤X_Cuo$$/mʔ<]jL*Vmy)$maLFb)@ҍ@CCFc,K#92Sǚcv_$8G ޗ_ ^r nzGɺ\Oܟ-G,\R17ӡz\)L9z,Eǘ6KgW޲:j78++tEP* =9G_j^X܁hu D\*I jF^yἇ3-HGb>Ey)h<B!5lY%g2/!3߇U_F?GP3/}}{6y>s.B *M 8Q1(s9KP&wZ"6%%*=Tzໄ{#ƄKE+k[ Ɓ. 6`nto^DBC:1Sz.K>Ȇ &# ه#,KՒ9jW&\xv(ݱdjOq/u8znSM7D.[.whThhߌtVoSEU U̓Z`W hoXgZ:hYOA e_2X=Ճ'lIz37`)?z/WD\X&yaQu&Ų㼹hÍZ{}EM˄~*Pv"\Z"P>w Sy [T6g aQ{N_Kgya3Rp0f㡻P׸5'f,'ch8!ou-p|f1RX>BRR#jCiRb.Þ)Va3SQ+'PQ5 !dIbasߍcx02 wXvWc@2$][|li6;% 3B3:^=-eFg>1|;(J^: pnFq=/͙(ns}Gp^9") UFcN Yo9O9.l>@Y5=]_N-h/rp~KiRP@à{(܏U)ԋaʂ(V/ZC*dm?4k)!4ww!U;I-.u:a A0HWԎqlxc߰/Br{4Zu}Υ\8嵞C&+j j`*_˴v̱Tωq[&gEqm47̧@{1Q"*W;䧁6>􇈆:Ӈ C+HhXȪ ~5: ȕ~P{_=;9d!;jyr˴ Yx q;jR-Ayo̬IK?Sr # 0 OZFri*m Iq&ӆ}wpȚJ+;Hsڑx њ lPZ}RDwT\^h8@ݞB: 4>O/ Cד<"0:^}<ŌG{ ޶Y=1?6]=u:+N' b-$h(!Q;1H)eTTe;^Kd:$4 @`jw\7\krzOdّ$5NHI8~Hhw)yN)"ͩ\,Nd_<2TUPraHe>۳5V,T6Wtt~DAMF0^&^gK0r͵.4m n^Ϭ;̚Rߏ 1jK6SᆃWzU=Y0#N WVlg IʹҠ;hR8^|8tQBj# L"N 5D/n3ߍt۰>\:'ם!%z=7D"~C;u49 yxj .AC%R:>&ۧ*>jj{Md \!l08`-)zT6-ţ(j|Ld鈍syNk9T3cNF_U@YDQ\x;YZX--* @vVvH`LS?mªԣJ۵AE8U{e@Nw4(6{ۖa~"&7sRx%faJy{0" 1aYƣ6T5ӘsZߣ]D)+ex _E׸QvNk"9Ğr w/K$xJ>TÝ.0˔bWqXfjDnuh/v5S"]_©V=3| ?90i1H{Qsv h!u -@idVtv;^#n&i4lՌ 8?Wk>#>S?x0 `?T>sK=vu,Xn[刵aȬ .VU_GċIF>~3lu$_K?.7oU26½OC! '3ηhn\dx ޥra.K0L'T {_ %~Xn6 _%$ M 6%,rMu%@<ѬX1Q ZmwR盗ϛ4wP{`_nIqpVX҅ lDN ew-ffқqZi`#FX$17T>g?w NHlU]-fH>v(ĥ'VӰܴTkwqR4`P1|CEƶ_>́g@ OSΤO⯊,p|ۮÊc2 :$qU8HI<~`dwz?T’ݜ>ƀq .ϘBV8X"HgEmt͐+!eTHFK# gЍGL{e+`̩he08jYk }lNs˛ ]Died;"CӎrLS(p=H" % .0A DU~Eܡfrq l䞀TߕF-D7#,zwSűeza_}ϟEdNq*̈6a%n3c )_WDD3b>Ru! }8iV;7NHc|=rtYAd4O5:oƴ'* uBrk7I" !hJ|-7+KeܮSӇA $:8.}TQ%M@SGK+*fq7!tsAl{'4d85% 7$+#J\M dNn#X"1]vNpayW8E^2@-6C -"uq}?zu`XKVC\Aj!W&L IeC>bi|ČP]袆+ Fw!eڸ=`,rdOJǐO2O[293j tPm㑛- }b "Ou3Vz-?0 : _$E: >' t Pll L$ O=6g=1+%Ft FQ?l_yo6>nȒ$ CrdV-QAElAisjjMaX/hx_;/?"@2#wQu$JW_̧>scY\f 0su23{_ی}S5I1eXatū&a8Q/>x-=b»'ugf3M9R;J(G9nNr|RjeuUSlȝhQœvCF ;Ɍs WdÁM7r~C(8ܵ󪢢NJ,15;!cXEdl+ '})*.tEvq᥊IIDkt9'E?\gm u:րjT(:>9U_#,x $Koq ܖ5nY]d{ay&o!߳M @a]>]D'uQ6j)n}(SwTM2?us@荶!Ydq\{TbT6ҝ-D+&>?#|dE5dHswztf'VjVWdNg0uXJd;>L|fi'D:+,DM},Wu|Fބ D."{6V9gUT+qM"~ћnRFM=C>;lkހ YL$Eƈal Ӳ14 AC.]ïl>x;#[;UP9m02¡o&(h3: iG<~ +)^r1 :p:bq$[; .R~/уp^Q,_Db@ \ZI!Vd4JCBuWY֏RI;:q7'/ ˽8NƼfRO\3s@*b.o΄D%K57JQó(j{e/·YD'z\6$BT樉Œ^S8U+ث[.%gHY 6c6ǘD [^M V~2|;I!|iijY5!޿ ܯ w7VCZLJQژo1an/R FG/ИmVY C6~:6/~{wx?4ٲT ; +! sJ%(ZSY+%`iJN W~w%@9F,$Cb(fA[bD";e7Ma .R7T U=fQ.s.R.R4tl䟮*(jRp6@9?F|ITZ%z|*`+qDM?NBHJFqO,kQ ~F#q?iD̏(ujkp(0<xM%D@XLLWΫ:oϢRr{7A9|SMZ3Sgqf/`y =kr56?6^vQ .U  @ F`fnw0א=h"IqI4 `cq;==G$` 6gMȏiO99c9,LBkMG"uS~i9匜`b&M/Rr AiRjv{j=6QT^ZA@nL!EK<: [<5äH3,,!K ZK,bѩ(yMe핚R{!G/Y Aﰷpm^K%hWaAJvpp!#}6N97)}S pv~nvPic}T6N*/H\P4r3_unLӰh",9 b\V1ɫXDI}XqQJJ{"I}3mw4COD+qIaϒE 6 h׍p ݦIFEw:\G%a%\Bova#[,4 U'D+2Ώsi !x^O^yK-(|uD!WuɆw)Jr|!D;4#ER#ud؋VK՟ A0{׹xE0MiRqE\>Q"iËEɔsx8ѿYB'VS43ys{M1g*TҡQVH>Tdts%LT9^eP3ja尦T*t-D"5oK L> >jpr\Hjs=薔mvqW$g+oO~CWE-ЇF&a#@Η\ | ݭ a hTMoEmscܒ5q!iӫ%2n1VQts1Njwg}Ĺp. !6\F;NτxKqs+:ĹZ7gť$`i81FSt9+̈́trOSε5|_pa!&oy5Qz5_ ؁>o90{IJ6' (K;8ڤn͆owҷE ɿ/˚|Q >}}Ev]F.%QTF: ^*gdR<0ݨǩOWVBö$&2oS&{ۭ-TY+ijfL~Zp炰4$},߾)l3\Qi !@k [ MeYH-L>Gv{W ۿN)$36#8F2kfOl+Y0 剠' P| #b%5\Ma4=0yb[!щ  M<G*C;Gw;2\M6-a#`cTҝ^iKMeӊݝ)3Q# ڇ# x\`%fȒQvn!f*=[Z' c1cg`ffa.\N vTߢ-ւ|MqQy^ X# N>%7аmߍ?D8~9 ѪltgG{.kT7;֌ϪdͼAOetI<4|P؇5obOY΁fBd#yUH[4S߽:RPGLKSdR9`EbdRH%~{Ǹ"10h@G)}vz~iBUdۥ&;耶z B'=ϰL?tڕReؽ^A`ݹu$ i)I?YΫ -9Z值\ Icbs_7qC]/U?V8(i-bR_\ Z"$հ=mAS%k" DINbN)i\o/LYJG~~)yi!N nU]#gGť= {WS=şQ7sC5j͂I=WSm2gK$8d* W+2;Ž5SNIeF:@i#Qnh8R;TP^ O/+p/ BwpPc7iQwSbag&ӐþtS?Tyh9ד98SC-{TZLJ΄h+ږ9ǔB 0o#OT70ŸmA%T<ʙqZl(-Đ|856gDoVlqN;b@{ܚW3=͠zók}R} 5۽k3n;x5^,(5=I8%_h=syUiN$@Y~z'T1f;#FcaόWpy+ EU3yjcyز9?C -\HE**3 -G %S,e5ZlA/Q$Ž'vEIUWp&p3"H\gBn|a S&\v 'kM]!b:U.ZuXZ#X4lJEǨi[ջOY49IH]MNM ;+ʝguWhw<*ݒS-|Cnb(j-xm0mi%ԺE- "_C~]u+o$ZDhBx,yywc/- ) CMo ^Ŋ.m`.%<3,L걄j?[IxA=%oѿ v*DžD "yaUb6g ȈVtyTH8ִZvdB@+y "ҮqӲOY:wqGG=Aע kSLiӅ g5i( N35E!MڠpIK-cM[tOD!Q=n5JK4ii&sSۑd'(l.K|S h,FuO2C`$Y1׮CTjl7Qg5fqǗgn]VCnP˝؞?>|Fy-VQr̳ 25b&yXl+Ks&dη$l׬ Yg/^zNpXtN/T9F1s؆Mg{,n.(gek / AV}M5N+>WfLih/lDY R893Xj47o,`)ogsBmT"a@F▿<#d dE1 fq֊íh6"'tؗB,c=X nw=wߞnľt/%l>6FԶ$nEd/_X*s.Whۛ #.lc O銅3&dQRÌs3~]<+)5!oݰ1`18~F`ˣF֍4@29 QU-k3?C7nTqg(~ !e-(xU l=`?)ɇMSZډ2 Klםe<`&`BVN׵*G\3OBuK#u]T_Kul;m"ag睴'ըns?F|f;` zm_;KBud"'?aV@mܕڊ(;z$zyV5 y F1U:PWPޙ9OuYc8.7,RhFn։*5O@I_D޲/$YczyiMѸ0j׉@-Nu"]FΩ'ʒ@X]JHbkuݝN_VO{XP@?hugYɒC:ÎKNA2@'OJis/G&@.U-['Xw6z 0gѾr׶/-]MnOg"5nK0;*H93c5LJ\eoc .bvhZaOi4b?K*m޼2}~*v&=N ݩGo gYpE;AG^hQ^BԛzdhYpq8gxE՛WCStԥCҢ.xcj~ڂ^lUn~pc beMX#}pi SЉnxkeq"ʈQN6,E1)6V=m|.j~jm(?4 [3?ۮ|# ?w$d$gmM鄆{(w1}SAX;:b<RЗd2HxR"5pE*Oς4 xo۳;IsnN=vDf2 JQNkh02ϱ ]C疨ǙR^x?֚#Ue('=@!Uϑ#Y>=2i+6ㆰ=ÎF5!٧g,=ү a pgSRxo<}[Bj9u'&cIa}ŸT8(+GL3n=ElRW@nS/Ow:&!ٽ&Y] YhHkm*k2lߌEuug]8"R&CIKxO9z~U1HL4MGF_B>ݍyqL !Q2ǘg&/ӆ9aG^ hM-CS~ 2uO`AF[mly96@+óaR`(W%k Gt.:"VXgCߦ|2zaA*'fGRByw«n4N .[\<^>OP> ?P #go? ש딨xC;ź4?@Y5.ArF!uT}7P#6޼[!H`8y~Nꦨ~;= 5.>` a,,cs haC4cX^xjݫ΢7kZǙpMBAsǙvNoLo>8 V rQJeXw axy-nA}fo\qS+/O)}k-OD _YΞÁcsɚzs& (!Y:hAxۏ`KNO-1>f斺`gW「*,iMd!V6|J^DR łո ŋ{L & #(N &[Ik*3k   {ԠYT',E5`wt4c[ u*I9D[Y`{xMi4 &AE$E!|'s@xo7&D/iX% D-*nل ᠊Oj*JW>5)᏿1qqT?>#Mgj6L)$^@>nD(3]ύ# u.,  6Kr6ȉcFzDRAZOQ ]0w96ns<`ad|g;S-iSla|;;=|f[X5ЗFԜ%=ӇZ/loءh9)egs*Xv Ir,􊽗yCc DED]yN:[׾f]L,d~ mĖ;[4O߅1<4ypYRF9[XL"KQY/jfxr>RB:W琙spiTZv6)f%Uskmvգ7Wswh{g]D"S'pG[mu#\!J'Mg&'ceY+ی9|--$SU?t_+L[N8kR6}WJdɉ2.4[Aq[u:k}a)@ʁ`,X%ӀrId.1Me^6)a2H ĩ\W[(1&< 26/k+Kg4ڜJ{ јЇUĈ;ڧfA-6ʠ5AÉ,:ؤs:d0nּ WNBHx9W8(wҪxgcd6@ъ*oNKH8{f^mҘl\5چoF鮅$S5iz9X%F |N~hf2+s06rSwZ_{MeV4K:n\T.WC3]ТD)9/sDmկ,">]:zL{v2-D 2DD9U9sn5]Sz7Z,v{9'AB't4P PpBfwmW7!$hj~;ug|#)2QGغ?S"ڒ]'i7Hʰ_jo0!ǣmу\sҤHsOA1,4x }HaTZ2U벆j8dt[$ P>`Sոɲ V{g.YRQ:q[eة2wNkL]*o'"=p'tl%5:D;zqm:lҴ9ـ_{o-lSn/OӞdּlSKPTL-aS~R\ _aw}qjFIZ4fL}J)6]%vVBpqvEs}6x h,Ǔ` Z?F Sc}S(bHgA/c eʃJ/Lܺ)יK#;\෢~*nEU+ .n9F̨b3uy/lX!t(&#Y||nZ𳪌mZZa!,\t^Ks>gb"OTK43=îh_-Cjv]k懆9֋~q>3ZLYܪ$sYz#R#EZ4^nb͐t|+t/Ƀ[0+Ȃ_~[ Rbfɓ"{X#PqʾMyp]U\m''UKYBOJ).BPCk`=Վx(3f.Ou%khloe/{*5m99AHR.@R‚ZJr:-v ;3}|#4|'b 7K^hq[t@ Al8F |6(h{:YHM[%mzT^6YL'0mum}FӢ&\*ITYƊv( W LR\hpk~95`rmj tB01jb$r3 _8]2^zP4OXnecX,~\hXs*> CdJL.Bp]cky3V\b]GU{CKK]o+2חv Z: a`Y'eJkqT-/t>tmdM$'5pߗ,oN7NIkfVV D5 Uƀ f$g)YOl>3dkgC*Yb)5ϛ4&?ϣQaINz'@=h+njAmfoYIO-y,mT#O'*|: M8u3Kj3g,v=uvRsB~,JE'Q l߫UEu`bV@tקO3Cvgmx>sϕ|`jcʎk0D~{Z+Sh }\ ,S(t!8G ?=|r24V!vt׽X q yiLw]b&Qj!ľT}GڲƷC?ן'׋iik?pN/I iQ|!"w?vQYIh"i @Up!Kd\89: !{ۄlM{[(eâܣv"LD%\fdD)d#bxyrS`oLrw2lسTi g"G-_8_4/Za9Sér\mVjφT VH#@K*hz a<UnQA28}EY|4zC Xwͣ]/T={߃_y&=>H줴g,%o`e4(EA|2Cc`KWQ)#BUY05:m8@XKؽqP\:]k& y1_ǓA mȎ Rnڍ:\Ը/fpyKu7HrIPO/ɨRČ8N~諩3*U08Yz8D^n ~FOȇ@Bދ,, +lL2U& fRtA×Ci 1]\58)pTlvA9 c)O5o ~ V:Gt W (a {[y *io>9+֨&@ܷy5%@ۻQz5EuMʀ)~<S wK3Hv߂:Ws\.xɞA64-" /c↨"v W*q!:]Z I¦)& }1AIT9R1aRAiyP iV)mU! 2&Z`̓v Gi}M Ǩa{F/[|7x.pП^boqyǍG*882fS9xUM]@.]Zm~ީ V}fh>-y8[ !7hw +~zipQwyVc7yJ~јØ_.>vqP [zZ4%-R/]R/b <.y"ja2|T7V6?Jc<^ *\؜7ѷUyn'srSS/@ɵs^N0|Mi`QY{T>[ҫuYY-{"#%שcP_~7*{'L "BErϑh$0͗}p vnߩ ,/s+Bk2F}L tɍA>u\Vzi|1߳zVܣXEˉIҕ{IH ȿI@ħQ@vO[l*Lwo.mj8Z褪HH:kl˱=aC` ;<"D |lЬ؎c{[6%[u>EdP횅[9pRk\)#X떳TUr'T =#ĥp(מ:?P܍]5z%#Йꟲ$\߮##Bȧ$iy$>U+5&}7}b=pX gB`tejά4W$C/x:.J*dJ|K %4؈E(V !~;}x!-Db:T| 5KhtPH4͜gW p# AnGZtOJ4Zh+,*mOx*m(eQ|ZO6P' ' a`¹p8RրnyZ H.@kiW@\_>Ti N$CR^t5|Ds߫^sO葴#^;,Q r6 Rr)<@Ob=hxPvf[~&qSep@Z!2^x|bo{T@^Шw)#Aj,3W%g "f.UWAݫr h|$/D!1l(i lz%|lCP9m ( ,Hb"#ִ`Pu=?8?I"8!wob[% K<̰OC2 4'zX뽫n߱LjhƮ> G Y/nQ*^q;눔. H$5+AR,RB4ؿaq~R? q9 d]R2J[>H8SYUƽk@)̘<%9d[;9?2'x"U^x}\&@lYYp#Pᝁ P:]mr*V{{ӳt/{ ֒S  DK#w>8D6ҡIyLcgg\ʣR?(_ .]o7[ TP?zNc, ZE kԸ?٪ߕ'ʈƵ 3țaMonQ~ Ľ%sm͟ kX~gˇ8 dYr8}UX? 2'hn;^ ȌKԄFO 7/gg"Nb;HM秲)]FCk͏=Mjz)ɓ>’UV@ iy ٕa ,2WXeՃ{K_FPiMף>Gm(FT$ȫ_-/ZmOS]C'̥?fPU^6ႋoa#!88Qgd+P ͎aDwZ[,K'z$R۱'q}r"0Zߊ> 2}՞d0@!;CHb|" ܚ1/>})kP2ޏ̝^讒*i*ҎKइ⭨>}ƦaC^s~ŅyJ?(9+f}} b!x `I"?V;MS{V3kP Jp6P#,9%kc!6\=Dk|%Ro4Q6m_W`(s<_EN*xC0bҴmwMl"LW(=I94*=5yOwSsNg Zc:X]oZЦ7/=i O[ s4 ެ݃ajId9ʷ+"QHF*#%E6V) 9GʉH2 \Q4W!~ ysڶzK/$GXb8R9|I?!Cfy7N-L&enĔ'QT'dpW~Ku )#inL"GHZ4.5k=rn'6xS[:*,bA'ûpYݱ"(ZFuzGp h_$jʌ-5 AOO>HfyjJCu{2Y*-[mGqp!$Yr7*b|xa坰?ųwV" &uǥhoj\CS v7ANR ?p; G(Ulg{GȆ>(R {p̠L>U #|rtG^.U|fRzVm*Cy=,E$I"ksn!6:2Udtew kk\# ;hJ7깍\e:qq#bf蔵@nPm`­5 9ȳ$3&fϸ ܒl4Oֆx@C&![#ن@_E: ?#,$g5d'o`xd,A"lh:#(d?NYfney:md%UOo7.na&湗JP,5"&N E.;*Z LR.OD&`/S}PyfSEX* ř4q ZtIȄsZ׼\}uO'h1]37bK0W Ÿ {Q ʯ$*ҳ ٦4 1[~phF}>B4lc^[rjxӯ>6a RB8Oc_-]0 .;.=ʝf!GMRSikf ,I߰S=pq kCQ?a?fTWv]QeCb:9iQ"n2pXHANIN8: "M-XhTV{ߎ1mM1Տ]1؋H%})vW]-N"ȸ"lD( ݆b([VYCA7=\I2D0R8]z#E{Z>4xGg,|whYѴSe`nǾarn :pU_܉9tj4?;sz&ȸ"Fdz2KM? 4\L؏rn+'0%_D24 Y 󸅣8 a=!yi<@,>{7G'V˲3%$>52뛚 ) ؍̏IKJ[߸Pv@\Qt(vObQ8 FK V +C)Oqɋ.]Tn6 94t~l#3UUf}wXT}e=A@/VIr Y?Ry-~sXl&!3ݳ d:3};y6 sכJm&Lj- b `'9#FwgpA q|Jܔ7!J>b{~b h1O$k"o@qD45Ҧ/-jأ@:IɛMdk3FDBl{Ȃ#J pLc?g{ ݏ\ \I|L08W]B^_L<~\~6epKƈ2s"4Xjy0Xq\s_LͷO(% x=)l:Lojm:Y? }j]㛴qG1 }'II܊{K`-}+g"s ؎2V}ђƟ(][%ܞw}^'k!ߜ#( F}ü=zy$ :#ӉaiAфp%#+Ihg'?vpƲƪc" Gf%IHG4>6Yx@N{~h!d0'y"SrL$ 'ZC+[WJ ݴDDlLQx,GǙmdC9K7PB܃s-bǍ}J7m͵eykzmY9亚w^1tׯҸv b?V*XobFg uZ2޾-^73Jg~ȑ7,M6kv0̬Y9)EDz` ߔE^krL9 ^l4 (`)7GGrVSaġL]ө8iYW^eNjJ Q 6"Sc^"`zeZN+ճ{ WRa-MiRQ"ȱ M 8_#1%(i8" =)o<x~tWt3%p>x #~f*=a=g,!qaH[k k󥼞pI0iK8燯\}A]YͷVF tXaGpAIkl~(OL?t|f@8 $s+q6NM5}/a Nb٨\8SToOzBg`/˖ G ʃ"+I"o- H2fE\Z(UAYg΋暑o Ao â< 7т8d;MwFQ2O"ІBY8qv&oݫ/ONoXq[68X>cգxT 2d"m2ݐB7űCt'Xig0mFPx P^͆J9¸'a7D2τjjif}ZR!NlZ $ԚY3&jZk&ѨjIiX<:;'lɵ|Āx/?T pV NoMQ+ObӃJu`Qy B-P# 1/1I=k^VΙ(nO{_r\q2ς09=`mBHέVM^cdi<$MHIr]!4;9t)- Oak}7×$v 1e5d PQ]zSf.ښ)~Tc` Yj.5nG5rx]g]Z87 OE) wă~!wCϴ?Ӝ0_~8 @ M4hQpb؇gI y4?骃L2`N))K__ dznK,n ]3V @{[,n"CwL̚s*q[qo:1tD)˯Λn<#Q?rDrШ̥hQ gPnf&IU )3?f`gw@M֎"/MmpC0&Zl'w(k2N&:)hg)'MFVdDA_ϳ4*5o2rdTb}yy9ʘFo@w04qw6d&QtoHPĸ/QϺ;1AG>_}3\fL \YClG6 d9ε !?2UL{ /0N O9 g"!xdGUV'E)jW#' ħJ<61-Q±aӪ`H+ad+:b+_l ʼ]p%d#|M9EX\Я8j$+56"\dDD귺4`CYWtf~z(DȐ86XxBeخ N;!VA?]_¨.k"l0 F$4C-Zv32{MqóXS?R?ٜ;c2fŀ *t[;F5ǑlT;]klh~=_~yYKxup s ޣ P1̵V~"U(O99y#% pmfq_p*6!u쭉s8.;yLx(:P~Mx_RM ֒$1Dgڼ0L{@*!;0YaȐi?_=skЙp31)r<5.ȗ] k<ڣi- >|9u|̸Apb)n@+a6gpݪ*{g`-y6@;s&VF^ o\Uxyo2<2>I7n҇p0ԄkOVLЋՍ]ώ7`BmZҼ [ϼ%OVSƢ "[?k9a== L F4wEʿK%knZ+$p\:Np{!*Š24 !û $`Pە$<$} 5q&_`3Kck| ɠj+Aּ#r85V^EqL?2&jߥ ؝6868detc&IBՓV8XG]2k]֭?- @%DC!3DfK J9yQn\cCݦͶxN6JK:Ce¥T&F`:* fX=I1pl^{10%lzU: L#A+Q N6P}R?={yTu?Y1G [o 4o%|NW' ;W RʦyL\fY SN,s/;A1 zII1^$L >q;y;u`4 S)Jv<B#"KbpF:FYj&~ӥY\;(<` p&0yW$̚rj4j[7QƎ]/eE) ZX~鑲5AqֹgHJK>+]R#< q AݝSӧ ~v#0lRޚv(aI*|qrCPpb1 C=!@`^bKu{h2R*2l7BRDuwۏM%*w\瓽a3S HZ&EY*gr:*MӇ]Ꭶ[wtgX ;c#ࢃϼr92F|tsoDu[z0dM8芖}\ELd@|>[$KxUjDjG0Jt6̎ ZZ?4/ַ c%;~p ã |&\w+wk[ô0}>nm,ZnSܛ25=?&^(o\ڱ`*.$]vaܔ^=3Ҩȸ0Wd;fӬ|{" 7@hkty/46B2idLzSl8 ].!'*SLAݳתoA\PMЍ_tB\z nkJX:`;q^-7n'U`39!@$“+] oZ?\19|gA,=F.K2%9|.N$[Uhc_TDp4"(1hj1I|Hm/a>yn%bۛg,X^MYr0qEǠ9=i΅$ ē 5Ɓ5|KE<'?!9@=#'Ĉ'  ^j>=s8*/SuX8n^#p)\.cKϹm~ΞTC>v8:mJΙRir+64bj\wq(NxyOP+9{*3f[ m^O#G= [ ( | 4Цcr ўm I[FbGI?\ǻSrSSEFԮH :lϟoV-pc 1)Wi5zouO2bkf{_c nd]Bcd^+$*Y=i$jݽGt5pX{%#q?h~s&.AK]GF r4bGٟ0?>nbkkHu;"%'61Hq,Ԑ a$/ˢ/Ąŷ,%S/&E.VYN\*]C^zcy 9^ ke"˩x+ CI 螳{)65 vk٪L}%SHRWq먦;nLK- pWz>=ʅ!ORΰ$?&9&.5L_F!fܺeG XҀ,imdb̘,* dJ1ø~&G3sg`0M!wsƳ4Kr{/oU.z꿷7l)Aμ<\tȁ\~/i4TgfM0ˮ_\e@9x6zaa8\+%- 08 2`-#j]X*E.4&U7ݓ"OE<%=UEchi'`Vx 5L)F bO }O_ fVTɬwҤ!ᛮ!HZ)&>mxoH9ƝXvGw.lڼ>J@Ap.m̡hDPm ])R,SWHK_2Q@TMhؗbQ% ?;1x8|O$rb >pV颋nY̒h㣛{QeSa7M^˿ !9D( i'$y:c%Mr_L ̑mlnPkob.3•W }ˀ;!jYd5D&P$]"TmQ?#U;bBCx8ML/Kz-Q4CvSJRH wZ~G)bYaC^'yTO0cK~  [X16+j%67@eL\R(BI_G~/ևn^|Yؔ':̿tj=S`bdi<0|o5*G A%; ~jVWE͌DZLT$2Hn[o '3Ɗ#[GZܭXanF.Vj 78EQa45Z'Yqb2oe}|`p;ܒtD1^8Zy̟0㭽i)?, F!+ߩKNdNL)$R.t D*RۢҒ[|TblS,&Y#ѱqFyS P@Rw)2jy(\M)MBN+(+]CJzff H$B?QWthz1Pm`i.E~9T;+3'x;sVQvj#/r쬢nLY!Sv1r/e\71Su[&ӿEdaBX{g~Wv ~@\Ϭ_tWc[ K"W3yxg'~Jdߒٸjjyoi *YI׉I/`e9sZA5ʁ׫.e=6Fk"h2onD `ar%[9+:;;@t, 6m >˯aMJͧx#ږSJt~$hH策Q|kxR9 `!qzX~%mt{>Ƌ<\'3TΝy<!-^Pw- Qf"bԲ@66ivֵ]oh+vz[%C|?H]EADTotbXgJO[v2(`y;3,YltN;6FRBY|͚sAFNT`|+vAk$P@ʘVZI+Rqp2߫rB Đ_uT$sD;ۢ!"tGMBtc3pMR!^! D 0m$:xۯ $գy$L:sD4`BKJ܀@-dT+~1K\|.}47su{7x'U{ީfo7LE !s з 2m@s'A[S'؅(`ue0 ˔e-^z|1}c0|x;xyx'e|VNNc-p5{t K*qi7pwXA"g"]6t}Ww}粰%FS4{3*iu‡a>Fz&BH1l56/$=o@B,+m;'ig&fZb(y|nTp7eL K,)QuenXj #Ab+x (/cR&^}ILpm\"J$orM4< `|Z E?UHuUlՍ6ū{hw܊Mڠg( 3>u8i+ZӏQ S乞`Y,r^5Fα5et 69^&q RƑ}u5ЧHrs_ul`AKSnHsSӫ 5lJ).=$ .jRuP2:FkE,:~qG}<5ulF=L{U˨^?9E@ )#4̍j-S?vӪbDDg|(xZp.XgTn^nD D-؆dB,}cRLؘp{s60VprYyy*s"Wk&:CxA Mz0S _c8CmΥ=ϋ aW%vNTY-C"9S! xAQ' _@/J&3,B87NycvE ŕ1Iq_ Uy@q<fht;U9]o١@Yw(VJ^H W3ȁL^nù&nIJF4bNv1R'/hu'U ݥB%.i6klN>$sWVL])#3pgf "񍤰R}u W6[6*~`OBeeqF$ wHl|B-yhQg‰ht&SfxefU5Iͣ523 )l~?lva8\7L>W;aChڌ!r̋9ԧR6`ehcĄ.O1 ؄lVc7(y] t3eb1USw7?> &j&5y) Uv:F*F`->Q (2MѡgqIs<"O>`{K6%g @ڰ"5p`R\{]T )}nS g*Ɯ-~d.N{J,pe}6gQ ;0x\'`+N)X/qynZ吝2YhQ%}Ӥ@m*QV 4BkH!r~!I˵9p8L&،*,Z ,NN.xΪ`u5vLf^~Bry6 P{®Fd֗EWq`^AmLA%>AOd$^ͰG~hӣ!3 NT_QFm.Vvлxko UK8$QOWVtɚaHݢ0(1P$ y8Wt>6T{Osd%/M88ƖJ <\{2\ϧN%Ȁ[SRaU-Wm4w-mX8% \c/ *}t< i'Q_OT/-u_Y/hWJJZ~8DGT5h vr;~cPȢ^`-}m^qlQz;?B\P @aIW\|;x4M@bfԯwaKt9潡w4%UPmI)EHChVY 1Fb`/tKPdKsl!w'DSVjs9/AJWɧZaC5ςѪZL &/A8c<(LQ2'!zy;=\. `>á3ΐV0SfkީGrzY] h쾺_jzMe 8~XK-3A}t*O=7^ֳM9'>]p{ I˙- va̱r1 Eji 9#>zS^kꗖ//=N&-?JK;MW2=u8iv?uD2,RNGv3C1e}BnVLz`-mKך܁ɆYޜH阘^7m+2}`U BdJ 8a$oHrC9)9!8<*tdh@>Wa g?3w,#bCxٞښO>X""\s ;2Qcc$X!I.) ذ\*Aj-]E1:@O}njpf Tj3\[.z jy2@pTWcޛjRr4<]0EqHBc%_ڄy-1߃xw pgOAey 묒#b3?4Uѩ07Ӡz42PfS,%E[t^]܂LO{,k#%5Sdۚ$3%i" W "iTi7TrWS0~#"tLl )+KAeD6BDԄI~&U<*[> N": ¶ jhKTNuζj9,}U6%Jf{ЊեW3ꥻ~e-4q""qvN#9ƛs9&CˏԀAY;e@y#z $|S> 9a+*B.,o Xpap?bà=l;ʝJX? 1ᑞ9< $&_:xڝogHTBZ'zy hS&sb,hbʒaXpٺgw!>,ɯ!Z!V (TjKJ?Of2}+t!YkETJ*VI%<_nL4_^=32$Ijk%F{( ? 2D -R޲I3R@'r|po龎!^8pɗF\IoڥSjCi˔w$%qS^0=tqj|KbIH=̍-\E`uҚ&{@ U@jȻ4O96g.֊^(~Ǚ{&DpX-" }k;XKFBs^c~9U He{5-|>έ`-VнT/mIZ=&O χy%X\}[3kk=Y$8p$)'H'=u?d?𨭝,{B(k )˩ż]PC5DjrE9?J+8,'Ӹ3zvܨrŠć/7J_WȮ9@3>t‘TC$ǨZA9dF*N5;v"Hijش/Uh ϑZD% \fk1*uBG`_R̷ }g5Xq-9/g=r:@ܣg8vaGv&//HWm5!vNY26uacIo:`qӣ\V~D⥢}پp3X@ tC^.CqGW9r>Ut3RaFU\rb}DqR|$sf=Fu{}%uRHCܰ~aDc駨v|岅$LoE$Nd$;s?ƿ? fZnj|?Mc2hBv#3Zyo{%<r~dL`\;l@}4ϊ(5}`5Dp\80r>Rg?B8H!\'mulCC ,կ7Zh.nR,hd޻7$ڶc3)cλlG!]ƟNhמW8aS_aoStb?mLUj̰|6џFlhgHϏ*rR.k|]Swձ{:eUV殚-n%ŽG' _vCiy5;g/Ԫ{6eN椒9!)Rާ#K%&%KKTHgܠhYVObGE`t:ݡf)K lLKwIҖ@ o:b+QnBr]Mک_Qk$S-Sw2&lE0s7ҋ^f xÏysV EceUO}KTj&Ⱞҵ:Hb{I'LjJ&w[r`]MZpvN);v&F^gz|i v [3V.pcZҴo>0^Oflooxg6WԺ:?"iJXo2g>Vٿq?s{M-^#UPk(vaKJr=9/bJ*WVK װfIz ̾xݺ lZ·^tm!#Stx01P<w&QR(0͸< 5uU2lR&5p[v<-5\i=')˦ҁu#ؘ'apZ9+Ϗھqf`~0(>a rmtGb(Z9~@e!7I4}40ih^gCPd/qxǪtG5*6evDa5X=!/_.R/+$ӹg qP+} ~MHAv˰|E$&FCCH< UM'!T z*BD(y"2dFqujc.VV,LhKWw1E(:}' WJc8V%@8 xej|;#EC]-3##$TNKb!&6 ;Lj3'D$XrMuv[)Y98a{6wOᄔê!:1!{Mc~DcOuwBKI{!ov9~ t2N Bq:'k@zoֻ[#@V= >"J;X/njHZX0L;G[&d0/xbYrؓApS*{J[DU ڛQtl2;,yD"r6 *\u#v%/K$zj%AZLmWo;N Y +4u-Gޏav>*wяvrlA$! 4F^10QT9~sUp*J%;42,q%;-Q~B^XRBk̖DV/k>ګ8Uv6B7W=д^kj&s1t=C6 xyj^@paľSڅj2z 6p9ڷ,s81~ K'ViFrgq npG+Z+K6-3zn^:Y ً Մӧk9vTLAQyw^A|AM2SzZj#'F?ԊD[jjky7 BM~F5LKJb3>_]~Skl љC_F|dzБ-e@ZwK:A9@q~ Taz=B?>#{{eOZ骐Y/b:(w=| m̃oqrh\GlgIûF]D<;hyJ薦y]\sZ [#i?azڇ kŷI?1@m)7=qѓHp.lpÉH~R~2w89RC*8<ڣD:}AE E/L ' p  zkr xZ/@=wCgg m%N혒hR;'6ȹ (pYh:ڄǪ2PϦ ]&=J֍-JReU .R!ӨLgS:Fhw<D-uұG-R?eiV¸!*j0 ePENF*sr$;TOjN.ơw<;g6/Y! +e#[F^]hSnvyE;QPxKve~>f`P6< ҶT.|62K(E4ǘE>RD۬ˉ\zZIAe1U;xN_ !ֽL AMøkǗM&2:Yڪ$hVa.W>'k<- Rbz`h=_XhvZ#T? >%f0ܰW윑rz::MHǗTx\3cfPRl<]r⁧.@c*IT#nKc 278q,r9fk/v\} gE P5&M'2a'X߽*KH3M8Vy.YXӈ6GI9(ԡ *52-i"c3l26ǥdDUM6Mc(r |6R%}%T suZ/%W^͍;J*=7]үuKcd ֈ\⇊?w@hpó1h ~pu+HW"1ol`ۺ㒴PRyĺۡ+FV ~|.*qboJ)BJ@Pk_3R Y\Nkf8Fʔp;h":uj啡%>SWtehMhl<47xwV 0&+4UϬE :Q7r_'/%heFB]Lckqԍ0fxKI5v U;w+6H ^޸T|Q/4Dh.abbc= ]kVWkS^XnNA:At.C9/3K-1:z\fWukL.VWkyB|5oC Ig@@>_?`FfkJ!}qӪAŨ1uIQC%lA rCWseK;9#; aBٸe~Z"B+{yy AatշeQ'0ez0HJ O?:9i-&D+Qm4pG ::>Wm\=a͖\3t]r^*pl-c$ _IVueL/&!|+SœȌ1v;zz (<W\F{-itۙ'E= pwq)^L٩IRfxl](Xg3 tB/ Y\ cdfN^,\ިHQڔW#_\XO0[C0H\s\HTBw:e3qt/KN?ם[AoTUE23i_F*4%2,6K̋}Tt G\,Iiy[A?!X]J-{ q x(9a#DS3DZdvT=V{&>m{Ą1fVƫJJ&?ʌlEN2AUwhiɇ0|],?l_ط6"p-}Ӄ!?!a e G6+ h5J tupG ovKW1L<ܼtM˞;ߵSpukbf5yO3>yϡ܇c(8DN9 Go0R8>vNxoɓ`PCr6<+/e/ZpkaڦٙODDȯj'$T'ܟ1ŁC#?%&HpDg]*boG+="׵@de=R3K|_Q@<'̔u/;]^|L5+rfdѢ i)qe#J%Y۬MKPH"Zw=^$FYaI5&GڳlZAc4+]Y_-Kt'.^"F|h/:hv/ Y{CEc>|쿧Z8,BǮSNDavsS'o7m9,0՝lŲHma'G^Xr0r$ }2Z/~8i!_鎦R%4卐!?p`f}1TAnO Q8&YlԱi}>zgsl O;1Ɍ҅"'VRV\owх;]aA ;?} C6A368_SSΝȂCG^`>:ͷBژH*ɷhj',ta~d>.>v Fy-m+l* GWuG$cof)5Lԫ6}Fqs6fOw:-5y?y؄wExiZ&f]@{>5g;J@Oh5AFo.cȀ'j8,m*eVչ2 %|].rSY{ !qm-loUW!Zu1V)v@%!6 ' N{1RǨsp'%؝UXgIo7fku5%`?lS y]C}WW-I t]҆v9Zu+9#VD0-#cPJW`F %0FwDMB/3z7MW?lwejℜ!x,1K*;vrj]߸֜~^@rHc(<)~yA:)t)e4cBW:PdlwP oa 3BcKƯh}14~6a" 8&#?[_G+Dh Hy瞯nI4u/-i -Pa 3 s9D݃p5 ٪YGU Hxޓ|W:w^{J_+'j]! 4НLὪ(rVK !:G"K46KzH;pTK+DlLLg\DηбWkާϪPyp&Pi@3fp}8O!.l@eMPMngȇ*EaZgCtr Lf͖ʺ$O"ʹQR`*mv˞#ʟ#d:CsjM~d`;=uیbӘFt+tb5$KW&[SI|%g.>_Q/;}B Fe7w"7@}ǣS7.) `jb9.c :JC[.2*'۸Rh ?{|8f2kNiG_Z$+r'=va%g@և=k7[~G%Rn-C?9Z>nNMK}9-(:e].Y>yg90M$-s^XP-Ks;]f!X#A|Wg*{!Wvsu{{4¯dAQ{LeNpTd06 AN/HF"ѓ8rqK3H0@rrl"{ &V)ztVn\0=aE>8L:P??ZKwЕo I'Cr{ȝ`@KDR.dΡcse7zϩy4.yRGG1ײw-&Wo$̻~m|k6 !%۴ h;Թ3Psa~>xupRu@c-%|{dlb,yAzAB!{4|HOx+ .׎)O] zto,f8 J.{ma=IɐG4Gp?M8Gr49uoŁ͂fjwARpl4 dQuz1mC}[($;)o2^hrgsHTZS/vKXܳ6,䇭9r %0yZ@ѭ`w@ʠ/ګ tn$AYzs$.ɛ~Q3E4t݌t,"0D 44n+n#OZ!Bִ: it6(56"[W\?8$JNv':5@#33{ |?,g_$f  tuR0a6]ʂ@?`>h.PK\5lhov%gCYaNؘ`FQpkʺ(o=ƼMU4>w#s~`x*VP*4 ?)&T$1GW@2%GHQs:\¶#cjŎEi"=ˀ%i5S[89V|h6BR|Omk[=p^LT}'hB<>_Ӿ^ 6g]dmQhCSFAySek7f}D|Dm3sʝ/dZ$j" E -rK5@9]\`=v񢘾dva[8zqyi:bScxȓ [u\eƎF3 HQRWt,?f1Ѧo29LQ΂ .^XG5d#@ȷU.`~()Q%d4ܫ5j?iT< L'T%wT7ry`3њl'5y{e< Aj8ziOuP~=G.( 1 lU$ =y?^a6jڈ"v8}-6WO6ڇn 6EwX^w@삣Q9O; x /V]8 oQTcgUqڙLNnldaڌhtǽQh) Eȟ6Lq~s˚3R13ln6'V ~H\>RA_a4ҏ2]Tey-<SFwawxH!ͫ~ & ,΍mOT3ša`wN_nYwP}ѓ vh{-?+ ~ _OSnk~$&֦;j]Ce@{0Yw ti'lڿ9'L_N:38 (V/( 6Қr6̒@$5Tf}}.ӽ74[~zBAʗ3 š:o0ƭrGuN^q6JbGRG0=ryum~"!k%:Lkɕt`n%v͋1T-<μ-%zK ڷohDJwqJ2=Õ`0.+VIRc::R?j\>Wʖ.b>%,AU {v/밐)iӹSU33ec .`0`%(v6xˁS?Y=@.wK/YdNP*ADFJ0EiioQmA⋄$ܶ+3o|pU|7ٷMwʠ&*fk``Ȣ m8ŝ47 0o˙(u Vn49\ĺZpy[1آ@F_Ynn4K|%+Uq P;bP0O! `Ӄ{- #<}, cK8vRM*7/JK[m{Z9^'a;˱ȚDVCS ء-R^>tvhΐ rS'/t3I&ԢX>;TԠ ^ *_ qX>.|nY-P *ysz$s680YՎhb7r3`P(u-|Y]n^Sؾ`x6L?7ƹ?DY~Z^a &nc*V䭫RgoiZEW$ao-&`R/{IoD;&$A䀼YXOn堣/a8!-J(;VetY8^XL&*Ggd C@TLZJYh ea{lS7KNj~&$p=kTN/J9c|xKc  E>FU *^WWBrh˚U?i6Ļy#T/aro`D½)klE 4:{H:DL)<$7OfZy' 1-dσ3rr쫥3[EMUi;)Eۀ99!ZYb/BF.sJq!H֫Om|[Mu<޷S%7Ya)3fxZSӮYɘo58zh8›yOqM> iPP7+\_lS \c@ФIdFEj&kw`Þ#E|V*_Azz?g0^t7GvIz=ĈwbsRr PɛFS7{>cSʁuWnkUr*&ucZI=EByxDWgap-ecbk '&Aȓ/iėpbhSOROyb.Gptz$s ĸ'~nO㹼Vyƿ>'F B=weɀRIM xS/ 7F1G'[o V ϥl<-nP` ~5&6AxY+Ӧ.r2khyP׳h#Q;sK o\SwKt̘ecW .X0q*r L8:"`]v QV e#iYlhPU$1J, V[R%DAYfųz3o^WZQ_ՊY"Cō`l8lD;r(AпŔr",n79 UVFY=qP0E! )99q.q-}tڢ>tT?/q2,*w̟#^I}PyX9״%UtU9cmp|)∢Gmb@G$Σ8S:}UoPme~a+iލ*^xѝZF;KZDLE +'(͕y58Tm,\p(BHh40+,.e\-LzDQ=h][rF0Q7Nm|Ttqűrٰ XIW99ͼ/*fɄDp9l(U:JX3վsCɰly:-/X놭 Wj>'ޒvOmzޝrG pXg|3]Her#Mꕖ]=|7$5 ɞtɚxAw 3yzPUؙ:_t9tLF7/2rw;9m\6lw;?i3?X ,(m/|W&LP%_auiPssۘʆũ[ɬXӾ@#/(@|>ŊB 2uv\e">bX*- )j {wB.D޴(4RK>m%v Qm$Fh 7hn?$o\99&M! |桳f_5*iJE{BU/P-ҡGA !%kVQW-27? @Y_{3]~,_Re3Gc*5 HM&\/ܤ>I֜v ?F3!roV]lvlZu!=*]q>;64{%! @P-8~br7μإX[4o>uDMWkk>{ z`Td ?U ߫c6+sƜDf <9;-҅c}*-:Ao8M퍐7g~a{f|iޢEzXEd۳:0߾~eqr{OHrtS7+2pQX4g "T;}eDʤ1eP@۳adM\ԿW!bE"&@:eq1}i[㦧Htֲ,ݦ ;X:J…'.bW6T *:S :A\g.#>uww/7ο/r(s0ҺΈFHkHwkm93T;N1m,eYZ./Tފtñf*MT7l44dXi}IΩf%ZN;1uډ,,JW}%%'< r{nLC*O eX`E;-(nPSzH!l0FF]6E0 [ s\,n-P;8qe`%۫Xx! Ɍv4>I!& =Yտc;׆C&1a[׌9ng cbUhzǣq(v ĕz$Xl4+͉JO0n$N,m"1 $4EJi Lj >>_aL]o&Ãy](5|#ԛakPʕUB 04]D4.hMxO H)\nt0_k:coM&, ~ H 1Ԡnŷ~ u-NuyK6ޯ'PH:Sh~5ӓg0+!H`gTxҧ'vJ a6`>5͑Hl'4ZgHl4EBvA¨ bޅNno1y5lc6((TRoyDތ(,x`xLLG6 X˃xDEcjh>gj2R)Aԉ?3D;Nych7BA)TM"5%P޿pn+Z ga+ htĪ;jyt[d^ ;˦VAGBAE*=;9Νt:!# G"U)|]~0K.r&|PYz1[m~̞?ɅIh LyPe,?q-jXky*ʬ[=uԎL.V*fkQ4e ڻpU; >xfOnS0@-姹˚s  YEɨ8iT= ]殌5U}!0͖.u7Д}z9_wIk*Ad0KYa_]Ĥ^oHAJO[xϙ*ҡB/֑v>=µo(3~2FO)gI.gت#RQhXqY*!e$ O&&9 |Ai}YBL66Fr t .cKk+fp 2u/iH^vmtfbaW,4M8lg]]?>Gi^ y U:v,8c\tU#(>.rTXuq2, /|g7TVۓ ( :,0} @y^w95@ޣW.0N U`*&h":L`cB\4HX NHZFM%!PRX +'g_|;v5偱b&c t_xBN]JR!0M>6˺]" r=[zfU,r6=cR[P>ZS3c,-ɺwF1m`܊H?Қ^Ķ1H5k[Tɨ˚Gy/~ѥ4snKMt*>\IHا9X7?z1HEjTb!`TGA<+ !-m*9Q9WT@zgN%R;*<"Fҫ_8/ǥK4we $w}EҎDMvh9I@A!`fS&RFGxZ3v(6y>)Z݈ &'5&e!p?U݉d˗Th|fal M{Si3*%Wy-Vxs h7V~h r%'Ri+Z}CC4YǼ%Jk,/Pf^C@tX !Y [>Zҩg&$)Ik{+PDYym ۡ˂&;(.Ǟ؛ eU1۾?uTJϳ)o+N^ִaTibC;2%ڵ˸2THX~RԇbCNu]L k(x^<942+X~*eAQkQ{32k %djO~؈EQS3!t(a}ͪxzv%mc|BS'$\Xq4A<ٜШLi Fe>̒Y;ɯ߹S>x/!T+Ohc[vYgE6{7ϧQ}/SAE*-IҎJ⤾+'eBWudw'޼'^'48qH.A f 5xA hN4a" SV^}b?ڝOKbet v6{M@P*HcpaQe0u9@T@ ;IxLmwJ]M =ǞmתK`61M0 ~4X~^ tADl/p5'by; ׯ_҉LKԙJzJ$)?⒀!ʶ ^$| mkڮ6~IQ~yRsHG+ߟ)VH/x_n%ȋW/%,ț)-ُtS [샯|;С >D=OdqS6 )y<=8U+JIC `󩮺͛]Wu?R/M#A9ӴŏS"u2s]?]/P[4v {O։s񗶷lP\Zh:pTdZ+},)Y>d5dc*7UqCcs%k_GeR{2e1>e `߁ςOzGrlyӣRמ1YV:E $ܢw-σU7"2lz9aw &KfXf-mg1x,̅`{oQy9NÕ5[}h9ü_TjC_2[f11_[ h*Нt}9u(EiIT2c"45 2lD}ܜIV#SI,p[LQLkeᣮ>= նφUXމ$ECGֿ\U؜ޕ8;[m?k PEq_추KH&0z P3yӺیӽ eĉ _sxY$P_DEҔ|c"O-RkQQ6Qyڱ:if2g܃r\Y.;oJq~-KJc:m̀lZ͝ x%kEri]Op΂`+!b֪a)DVYFt%%nTt~}۱gJc+G#&W[C.=l t垑)<PI`5}ߢUʴ;G25`ȼ>ɷU5Q | ë!ЏuY=|l, %iDyOAאuM K)wkz&Vz,"S"h4мlQC[_Cɝuf_N$zIl(.*-[$SVf)Uκ8`Ѫ:A#Ft$q-r%__4B(Ot6#59(Tq*/ŚC&[#3P12o^*Zpd/TҸw$QQsrV.Z'(qY$a1Kc GV싇@QG8@?45SVT-JW8W13 l&M*R<`>fs3 iu?YYb*#Y%j(r!oq[(+ۢx2M.c B){N]тSM*VՍ&8?Ah+ S#g.!dI̕jhņRK! <%tݥqQŤ]N5`R-ez̿߼-_LYat6,(r5n?fW#E4t:š7nu*x5I sz-lBXF<kT:+&ste =1{T( À=:F7Md0e^uhCF*GIvO`KЛ]H(1252Y3"[ι3`+xɈI8};K5ʡzIZs%x\pƈL@k8M0mw$AKvk4,;;= "?˭4KiG8j2C=@b蛴y[J=Jt.!'%9w“y,B]:ؙD*E u8d̢Rſ\C;Ȯ(ܴԴ1 Z :7J1=[[p;We7ux`])`TW' Do 3!wc^'Ac&".6qDf:t;S1Ht)WYi7S'Q#ֆ`5=R.x'(ʚ,6E:.W_bOpĖCevqH^cH9I+x$LJ|MdٯDȃ1괈o2r0ڡ\FjC[NHp# ojXMCLjR Xm󠵐#u3vs٠gW$n2<,* /L?CՊ)ͩU d|ΥoHYpȬwcT a a- h=j9/]\"?oGD*s dW'|ڰ#.rm_sk0ɟm4CTVLWO]#UXx@lw0Qhh),۬F4ŵsz Fqk l)I -+iÃlai~Gx6@BJwt.:hBh>bv /qh8LoK,vnkŪ!yQaSrPvk Vʸ }MAfN%m) vtOPܫNq!CJ0]]TКxݓw1@q8 v3YQa0g6.ypSHa20hf".7GjE!*7WɅZ/ePnH/[>iwnܟu7AUU>8@S!jp5 !U.&q.B׃MSx_a/_ژ^a]DpɄBax̕|jEma Td"^P+&r%Ljvgu7PgLoU,_OG[z_BmV=l&sz6(ӝ#w9Кp>1~F5ɇ2߹9*Cp_gߕ)].&S;v~zL[6M2E'.r21,` VEr۔* ;Dk}bk9#ޱJ'1vsẌ́|k}7L%ERFy1zcvn:q]«^ցl`EZ%?².uP]ƃG@I FT*^c l fC Gهӡgΰ RV$g 8cϮ[嶦s 6"Ћ6M0~xDҦdHW2YVX D_^F#qg$UоhJ4v@W l><%utfHV h]lT}0![{T` Usc?bJ`-c8pr<Tj )Bx6IH0s8Mݙ6jTy7AlWƦ8E,:Wq2[_]&A &nG"EALz3hzw81zuR"$Teid:M劚"|n "Oִ]n(0tx?PS<oiYY|~*~Q PK+=lW4OE4 rXZoaT1=)(‹ESJ=@\@n4H}u@$9X IKAQ%2nWD.<"ԻMx9Q2D/ᜃ!T+&5<3 Gr:~6O0eEc3?%%ې U*8Eޮyұ|+bŜ{^p٥ ;vc_7Uȳʐ*G7Mrkse{sK|*. dIc(ihJQ;GR(.fo6G6#Wi`V-#F[[!* hmMGpP8N<ݣ]uʚx@nz~~Ǘ7ӟ?ORA_&J3^It-XbY{9ه7tT\`zE.Ύ.#cYJEXhV|`dM]H<)lQAaH3s\s)T7a.ĊKPe {BL}uu43#cTӒڱt22V:tS5? ;xq?UpFA>bj:Oj؎} SYѰ;n9wE۠~~uQ 7@Q`CB0nb&-{U|+Ǒ789DK- ʟ-m1‘]_ɬOf0" 9JF`"6gw'IXNoK2),~jǢ 2y0%ws ע|@EG ހ Ge`vb4owμW-~363y묻}-DƆ .>zLњC= 7ht>0*ˑ,fe,zq7/ȈW ^\M1r6\3i]&YhiR+`ϿbOiKUEAXfCi(y Z"hƈGsVώ!]B_#M…F%1bQ&Ey'ɁqrTSF L/=Պς޹%e(BObߛ>TQ@ j =i"[0͞3z}Bbp=^).^>%\e ~;>@^Lo2(XaZ:Xr{'*pa#%ɸm[1 kMpU4?V0IOTJ4CD#08C*~S>/SIFݩ_p_Z~0ap6{PXWTdY'Wy$S&qW}}%@0쬭>1RTJ!|XNH9.j-6HoI8% hqub.h>Iʱy[.5# ۝^F%3RwD)He(fEܵ1^N17iN=IoNj6KTH ڋ8s҇pa|FHDu+zL!ԩT*Ŷ ;zz(vJ9b5aQLة8E7HR7~D% AE,@mS4t+A4،)Z5zllD|$ YgaY#zkjs!ĥcݜf8T >-0/zhڛL>T}&d,9SJ"gZ,=0tĥأu~`F61jT;$ρ"kqFSZˊjY;Lu9βຜ,I"uC` "Xm52fpVT%ܤ|\Bh6ąy?a=LB&ZAZCv`HrNghyMƻ:i0t?Rp >ja a危{= oO\u᳋)7BFٰ{Hz4:HX37* E& \ yu!oWo,CCUU7 ;ϒd܆ ~(2[11? Qn A_~1*wN6\X3.l^£cf靤wz m\=,oa DL=H+`2>x|x]Oض'0% kX$kPf]J0i՝,ZS~n(5lm:i:^3Kҳ~G<ۏBlq,.&f}1dMSv&8F,tuǢ81nZd>Jv*Dݏ,fɚBeY*#@z}X۔fdNJNrDZai=lui֎^i. ,W⃏dc87{n:7;0z9{3$yi|6d?DPjF>jj=uh#ۙz xmZ)G·OeEM65 bLi,̶b<p/qP-z)v'zl\ gJ/k=]E'B|$!yOMEj͢bMX6K1+ö8رF٤1e"!"f/'\w^ntx ͕8kb e?EjSmK9 y*wg~யnf Λ0 a%37$ i4ARes^XY< dys4n] KXC1x^ft1GNT+ŏנ(M`A{hZX{<d'+DO/I]HQfOIpv3'ƱBxQ*iӕcUgվm9Pç(wzks+ W@a3a[*uc[w-DU01[Y{h_-ns ,`y-YUr~IOV|~UTelKB5=ױ}[K鸭K eBx\$ygz0ҩH.6B6*` ]l6i_xx(jMLMP}J@  ]MJ ra\\𳽡0bJA0PLO7$C $i0C0֑@ oy=5F]v}ve%h`lt鲌wW^Qx?M}WP[Ew;4rzW,aMR7!Si~瀚g&v| }gFf63~jT2%3U~F^6Ua*  lڙ " lq Ԏ&es>@xϠTY# z3Sh 翍KOPZՂD T">GYX8]kW%~ϓ}u|LGv&Q9~5 2詛Xw0oD~~ύiXM@&[Ձfm}ZS_ĵeJGʡV\E9qNIg8VK?HI޾(Nʶʗ#ƭO2/ fd[OџbY1}sܨ[:os%Ssa:1Rد?lQ@?ﳫM=L /ab?z2cap80EԮn¶ .2][2£szF * ibG7WV?$U(YurN1hG rFBI(q2-CF Z8a.lIܖ&%ӟLǮh[ՈT#A̮扩NhV}FLL+~FO߄iC0$a ɋB>&%KfLD ѓx4i{?փߐ%-Iۡȃ(AO(l*?5^ƎqZhALd nOsa`yA^5 ~<+l'ځDg 4bԾ34Mx`TVY"~!r&tvλ?r6j֙K tW5c,ZMlszg@kVn7RרⰘ_8StBT5Dה^ɧr5˛7 5V;d} zF< Gs>xI5)g{RF BF!DM ) '[Z`}QfB!3O"8e2OJT\9s>IX Cp[V}YB]D_)!T)zY&%ڏa~>ʙ#d !Ŏ_̖o-3؜[:G@ʥ/h!>QrO?UKwFՏuD9a WGX]K[݃P`:2,I^.=6?kчy!ڟb;*R8OOrrVDYS_IĽ l0bɶ~Y[7Ao*"dx#H1tDQ ;F1-/1#!HFi8s{:!D~^(BFg"F";GpigXvl=qM|#`t6k{QAuKCnV8ʜ/olk_r/e4V:rRHZ}xpz$ѕ46=`V8B}|YL+ʴ)_E^׻c|8mvRa]ë |) ; @Z F?6#iM/ɺhQ;z'h0gEm*A_7T  Qي MK_iH/x3U" ~ 6w$/q> NGtgx:.ƭ^T>tYRLY]S~j [qݵ5[`BJ8[˦܈=o=z~1gCZG Ǧ~j׉$мh (n9*3>N?:3ՒKmh ޴nSnaOMYlɞ@ aP]3̭ԬaXeX7IaKT $HUqLS{4 I,V6 >e[%niDIO)!Z 4pfKk`" |$ߤ+kByGl4mLï|tDHnsTS[%a$$\-͉.)Fx:fVk$Na1lp;3GέVQOB߁i,j0t!m6 F]J Y%*ju쥑M6St8l4`3A#:]ܰy"ݸڴtr{CYܔ 'ÈBϔ+7RBy>\#MSjh  z+(d;`qKvOZHg A&OAN G/貫lqXKy bF' gb+ ]Cq"eRIMNW"dk,ؠl:0EA=G^kBV+ݬ; x|P#-WzR!EXR?7y13z0=qa%ɧYj\{6V\7 0Ej%EUNɲ 9a\!~(aut4_eI?V*d^aៃ?WY<[[d4U Gk̜bHWg' 4?khIj۵e[M]ѼF#fuf^)*PGXwްH[C+ZHrt=:8M%dK6zc͡~|CimiȈ w#ǜ)[_zIU(2c?k]S\Kv[+QqΡ8'Vg*ؘO ?{)k|!ܨk_Tk<ٮ‹<ܶؗd'.uQCs+z494+#j3wظ$NL {1S)ncmNt}etjqyҕ ͛y@):sK`-pD,ψd9{¨W\Op?f8q”6rř%lij}7}/1xaٿ),L͡h OYpWW}HgFoue͹[ "SO6`hi_dά,'!\ވ^A={Q ĉ^qB4wy0m=Jm,ُRCZ{\Nl}+`eFUiY)uAtz?WM{7)θ-2Tf|1Һ&<a5xr\a>ܩVߤ‰H,elb{%h&- (2J޺g5 MX꬘r+m⼵[ endstream endobj 608 0 obj 107221 endobj 609 0 obj << /Type /FontDescriptor /FontName /NimbusRomNo9L-ReguItal /Flags 68 /FontBBox [ -169 -270 1111 924 ] /ItalicAngle -30 /Ascent 924 /Descent -270 /CapHeight 924 /StemV 80 /FontFile 607 0 R >> endobj 610 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 612 0 obj << /Length 613 0 R /Filter /FlateDecode /Length1 1329 /Length2 111313 /Length3 0 >> stream x|s|]߻-llp'ٱm۶8il۶F=~k191צ UTa65J8102@FΎʶ r @3g_Bdr@C'Ug @ h `cps|c23GZhlgg(m#sw;Ք5h a7G x ImS6g rNNv͗ߌo7xZ$J :1+5K['qrUY[n;Ld4C;'6_7W[ДǯL?l3ƂȳaP04$`kI{3ټdA"B ~7?Zn$NG7oJRiι 6^/"s oϼ`].+)Iۈ4  fޥ/{|a{&#ڔJ9y{o|G~8zì8s#%.y*N} #օ&|v\*1%ͬ xk.u+^Exԇy ȫ @JB_[jk8yojѠjo(T"Lry(İI;1mTv0W)ĚN?)|4 ozykW4%;Y,}ThNK'zRn|hFsXZKK |vRL`ϱ@xͫB*W'M/]=ׇ+z]Vqc]ۦ)~'5W΁%kҦVY~XVUǙ(ζ*nOYoJ8`u^[ߛ˴fJnQb4>eoa27d lr)ջlNrz;1rpkp KZ86C!{sqS6ch3 1mM֘g"~R q&K82ZxT7 $`)X)U%'\"ug}*,CiD|b+"髁`IU-õ!s`,ʲw19 '摅sy<]Zbѕ cdμa@hkOf8C}~7Wz 'a~7w pµ6 A"G'9]9nv^JϠ8~Wd–qMB 2m)m-)3ht=Ӆ;"oT2VYakHP E a=8zu5 Tg?MBn,ұ08+23\|a&/hͲk6Zm ,U(S{ XFrxl(zնa/F"<֩ND:d+3)1}™|xvX 2p.e{7D20p_ʭNC-ejW2zѱ>a𽢡h$'WkjI*ng83?njǧ)iÙ!lwƧZeCIOFyZnP]&@/sGgX46^壣_鍕7t'։:5_XWvm3Z+7LvQ ¦FΎ jd0StwIZU)V&oð< Eh?% ]qR3W67&B磸2:دB"(׎t>:_IKS'#oA ܃@Y:>.AeY_ S`[m4-譅*<ԣiY!<~.-d5܁s2a.1y32{u> tVO>}A%*w z?kֵ U^aTv/is$z:zɭ})yhw\8QEI*덙%iĚ + CR8!WX0Z,22ݝ_d|0qRhJ z {[K,1P^(h sXysڮwNWL~F"EJpDW# | .^ =fʥ{I^Hqdx;s[̬?U"$4J2{\, ZBYe:C=hyg>r#܎UJ -<"52m#k!Ҟy+.PU&0x),"4W@+JtA.6Y n-L,x&=U4KXhSqT[C~{k}&qVlfy oئ!H rcc%zҭڐ|䅐L=+wK-c`L^~ ] لUƻ8C/V& M{SJLHfKqmEAu``:MGK3`f\&٘PKv'#yi&&|'x^&*"4F"FG2总|tr U5yQNX>]B''Eޡa_0Xh,cyD5"--v^I.J@\jf-ukaNCA>LΞA0q#ݍ?~jy{b0@H)I@qVqWoq'EC*5D 4 ʝ@%kP..~${Ԥ`/F%trULR>N<a-y<;hb}'̆+ll+눱$ʥsڬ534..cFr w2Xa=:Ac,`|(@ 驩GZbmxIH݉z2Luko~x` چx s%eti?mpˊ<[ER|3Ndo).nQ+RBʹo_4mIamvԕfy7]K3,{$* eo~~^!/?v]CV-\s(H}\|hU .f, `HY.f]9`;!JUIZ%+f 6g:9P#`=s:ѯpWIv&q%- ?W*ןWNo#RrӷȾͬEF0 '8iUOeƞ0G&hٽ>#Z9yTzhY(V{+$fgBPxJWG6aG;WExNOQ9EAm5 pzf4\6*M\waGPy D`r̞vi54>N[s'ԢiM8jVPoC׮_3 G8M0y8WJ<4y8VPJcՐ-WUN?(auGX({3}U,Vf̊$pM,UmFxŠ'-F cmWiE<yWnko֚ٓ GhBS`D3oل9bP䙊z'3#iVL Rz յf']%UR":>DwO3k7m5achl(4#RWIO|9wl ;M;ج/v2 36̞zmm @ɿ-25ۅ%'18K3rNDAӪ^ v7IB͝t Vx6WNe[7hCFeSο%KD} "SmnhwM?I7*Jz.rRMP`]PMB{~eo#žu*.C)Oc%41F %ˎ4hKlq&n {vӘoT`cWD{"Nt`& EbZ"e.iNhm u1<HAt|Nnkq#E?;/Ph O&?UJU 2'Ku{hvFYsw۷ QhGLBv`!~:ā_͛E 2{r1GS\jġ:FA@WN>X⍨QS_^븍D^]E eO8v)_*0y-u;c.xZGc]| myuQoΞQMRwߓ j}ݸAhJϕG!AU$lG0O>seV SgL2%N -:m7nR;zi T89xTOQDN\KI r"YQٜQBIz̜:} pJ<B`)nBЅc}<)g(gb#kׯs,H(RGYKyr"<፩QD#mލxCY* ?gZ/B.Εj?>xku\'U-Q+K{0d=M-GgY" [k"\\2yӝ /CKaU< _!&sѬq@F$D! t9wVa~UHPWvfڜfMZIENI_!Þ>0q4zf)*D42_4rM< Y?5sT=ɟeo#.?]a-"&l.C!2wtKp¡ YhZ}=͔/Rs)/ sLRٗG>:b#$9~ozWŗB@ pl9G(I 8̍A1KڇGYƱ,#H)̹ >v{-M)vc f/znv KÊcÚ`~BqJM0,G[;5Fqzr)(uA!А~7M6he9'+MQ-Yzp3TM*Iٺ |EJn~11燈ZЩYl>=:kQ̫]hZo@?u֛VbϪpTV\GRԘۥ+)SHDە:r\ 0^lA Dr8%x0HVe=50c&'fECFY N!([ Ll)cd58`fi6@n3|%W͏$62>VþǦGPy@:ƎYXbHDJ'#,h=xwuf8IVza͟T]JqL2%IyYSL4~}:׶X<[j37|:'XͶ8-+2^ˊ SA8zIlaElWiQ~%$`B[&Zu2e/R:bvZir?\˱a7wLh*Z~~,|($2J(>" ,i9Δ}(~ i`xFvRi * vwZx~ 1sBIU-`x^oV=Ԙ*6Gg&8 sp$iW#P61Jk1?G)[7/ٻF : Pcǯ-;D=RkgZOgCL3|Ҋ#A}+-R3G Oa&ΣjAKQ R@21ǍH~* WK: ;1*gݶ *sPZs TkJ2ZZJŲ@T:eol/rhbS"e~(#aKkY;} UFUYs&ŸN`GICxrsoF#ɯ1 ""}~ ۘņ,{;f޲UmMT黛D1ˮdl2 3QoX[R3X@O˻DyQceFnXCa ;ʓ]R:24^ZclI^B@/K9^(|K&E4ojG'tţUL .s2fDSX-0S.ŠϜWH0@ug tm'zYr$|N_m瓇[ WǿUpZ -(<7@b´ d# uuWlm͢рgMjdxT$Y ։bJwz%$|[?P4)}?8"2$F skuzRK4yhPRO^W߅:Ŧ}Ԝ"1D-9O$`lC]L|)ao5o$Ȭ?-s LB-gA"%uYzEza]wAϕ-8#O'֩ b+&F?Vv,{q%F_: UٓCl[O-]({Ik'yH%-IsjZNـi.3iGo@H+b+)YdfD,voR4/g!Ƃ|AvSlY86`tG3Qnu:vT9K+;b`oj]e0{T' 2S&+{AKWVa2[K=F~Q\[|B7Cl^*-Cs8'2Bg7W& -_[Hl ̸%Rn A}mAZ6j#qrH9e2UMw!.*@rɛ^KbA٭9]](JFT`;2˄g64"dl/Z0 eS=\,h*go͹ٶpq~w3 .2+ઞHo Ʈ,_}K+ K%{H,hۼU_ܰj9s6*_•#mEU߇l-w/j>Ŷ4FQ XGzǁXa\֪]7֭f k<YPx!Ku6!uPs2L衲~URպ;`(*UN>Nz;>jo[K]*tE>޶Ky#']ј3BHY^Ud8r\mNG:x2YGZc\+ %Aء \YoW([#r>79?kVe_ʭ1'`mEbm_PN)4$QiԿYYTeCZfv%N'H$Q͵^!RBG86 Ƀpz1q!pS& ,GݱDcw H/k:Y6~w1ʄLiaVh$WcςӇNdh}|<J9&8 [N߅}l)qɓٍ6g %RӷwMy++Zm H"H.m(lZsTT<-(l;1j躄P!D#$^D;]'/Du+1 8Şo훟p?%.e*?iqv؍?11/ُ̕$8BgŔa*|"!d%5G5MQjLJ3:)ʟi-RIh{X|DϔI2gQ0׻&ϕ3@2$p&JEVԏ*S߱ pD3Zb| qn'cFRZM Ђ" :6ԧY!ct`w ܴfW0F3?]T(P$%\|\1FIUXӂ}fWp@>KUl6muXz8(qYdeo@)q5FkD f2Ao[ &€.2#G Znc:&.ŐIoC8^/ydY+ L褨菀]o FDZlSG쁇囙QuΔ=Tey[&tx0WvaL#|uwu+eێI{#1*Eц]1W vЄqkU7) X˫+'=Hz0TCCS~mdj o|ڲ OE GYi~~{%Xĥ_`mXm=oGr*H,m{^c6pܢӪ{Uʩ Y'bAme*␎^$"35eрoA?Ѿd}脦(V"Q_TO"Z#)K@D}Fmo pTQ/PG215[@!58Cğ~1v0'z5vȯʮm*$zB45:BDži?1s⬑HU&刘v%hlY mɾy1nQ/G!]-[ =?uksEF e3NxGf { 1;J:-%Cu eplc6}|Qƣ[Cb|:sOo앷&T#o4)kCÒZ/_5TbӍ]=0(s'B`)w?I ䷎!a/Dr!ɽؿp/. % rj8.}+y>5t+1t),sXS,JW\x':ʼ4`sK*#DjsC@ˊ!'2ۅ)Tם5Nh}qJ"R"ҧ2eOe&S}aVi7I]a~8̊I#Mq/- l[bbL.7A!ne?ތ r3uGk:oWL=]*۾=M)/55L*A}m9=[Bv:mJYȟTt~|QL#ywd}|%U>) ;u,K$Ja N,r!l/q0qE 0_jb$:y 8s 7+#J7 hOҒYTEFR[آ^>j[Aށ.~sLxPD~<"su 88Vۇ/hunnV+ɗ vDٽo~RȪ58@}cwp~>Ic{䇽Q0G6Ta zՐq9_}i!vMS m$װ0vD_04 NM,ʤ'1ܣbhv1mxkܵd46M` &&@^;Lj8>2Ph@4Kg5q<w}z_@b Qo?ߢ ]!YDfΤӋ,:_Lf|$/:d>S˼M 5QC*H{h3*Ejn 7pLgŀ SXcqĔt,|e#YhjE'T@ҷƵt;.dNVa%=OԟAY9(ޡ^:Iob?Zįb`qCՓ!u:偣I̳Q %J݃o3#ty9.17QuZHjx>k-*c$⡥׆!h > NXB\ÆqH߯v/2BiS̋ٸUL^=hEb3/--{k9[%l@5)~eR>CLZîa^/nk#͒ۼR16C~7_/RR_XLQuTyzݻ-݁ /_3*gu]RVfZ8HwuOnrq"paKyCM:?6~eޱ8 ld]}j'E6_fSŊNuO0uF4vSBG:1y1AˎG8נԯvPʩV^#3M4xM>d4@R'rQU@RMTؑ 5)De`Ov^IoJ$.  1tt ǩ :Y#937͓0 t̚DžX)<6FIN9ĝ{wxK@Mڗ5 6:!|2c߆ƪ8 DXolyaTDd}m*$'K,dnxK-C(vCP`9YDOtg]m#u$|R'HBMx TXsƦ"=(@V~&|=maJvL[p<,g7os|R[ _T\5La 0`P i|Y%9F'4PQQ2R\a><┋i>{]AРW~,<DZ;'vi;sQoGmC1+흳V`G-+~"Q`Ɯ޹ltUsyyI|*/>ڸ?R :/'a&) !&mfVxP~yeѲ<;ÀhZj6,ĶkW5Xm,-BFdGPP0ɾdlU xiDGLaCN|cof /[/5=Ŋ2(PD |HCI[ws/>!Ky2UaUީ>ZA'Vk8 [9}Z6&tܜH,^X&*&<,H9Xv2N]j:_=(Ua* MʱU7M1 o[2o" nd4_ KtSYkȼG*~0ÿq"Qi7kka@utElؓ|j1m؝Lrm9&)7qxٙ,=khbZypyڮHTZfmфw*<@9 ;7~*Pԭ>ev|"ϳkގg>u=> > ${,p ["U_Q L\s`5}l-J @4dưB$Wo(g.s瘃vQ'i->|+Q B>_wF}CE ێw>;hU&l@SVf( e<89{0IPYK_[kqD̂s[ 2b#ȗ+x??w/N"Yk`#9kJl"_\yH[H̝(Q*;gAg.5|-(-YNCqYJX7 8*!9hSʊlzB g5jhV u5y x{Σv"'BV.6h!X rş\И$`b.ߨؗOW&4A=JY!J}7K=libg C;Rv@#VNWS1gnw ":S3[3@{O7M~mvWsbc@ΦUqS4{Ew%lm-#gsqOՙghX&0Ki e>PiږycY GItE6 "ܬB&&=iYCHԷm!>[=Jv"rHԯ>enb;h-]YB| #sXCmYݜ9F/Q$s1G}&UfEmBK_jꃞgN^gjhD#U O|wȋGW w0p"耓5ZDaaciBEZ3Mibm='eY.] R? }-3 jM! ?ǒíqfU~hw&,k}FC a7qN=l!i߀!SMOlg/txWǁ;3lnVodt_r&nŐd&X-<`!~R"U* ǕEC$Z2u2iYF"Grض`ozdn[Bťcv+X G(U J"GN3^ %^tm]<)],SF+ml6:LB$wUf:sFrE|ɡj1/x.p!+W*t7SpQ2`Gݕ%\qyD R 8D+%ܐU=ODC^"5CZhJk4X\O[>'T#.\JޜdY-c,&PEa?AUԇݭy&5]Ѕ'_L^ov?tIxc蜪4qҶ Brs ٮy竷^CEbywjY˶Wc\ !-!D6!<H*g^rhSLgvjդ@ 2o S0r^֓Sd^E( y $*w/ w;FyDp+7[<;UwiH7p?U&S* 6ha󋄭&jŲ%0|kcIwС74-HJIǣ6T՟&R ʱ,ϒ^s,rf4+GO$wnJ!iVth7J:m=Zs_Z5*1*/}ׯaIۢB1@7ȸ^$DS]~ъdCbvőRims RI?3ic:K^}X5>Z9N8 1l5:o.[DsJ/ ɥ%e;Iߍ\n17C🲯)vrWݽx՘D,dK{@$iPR܃܎-FZ)F7c-Rff]-uuq=&3c"I |, i[DFu<5f ܳϧ{Wt[< @"cy pJ) ㄗL{I90 Œ@ޫ*rD?"L>{aWX+9OXPv (J"`Z5a?x#?k7Q.6(=|Nˉ\""tqQ#kɝk8BJ <_oO !`枚g.8̇$jMNĿ-@cYB9lsd񋝧vJu>˥/PU9nXhΧǾD ix^]cNcSM!~ʚ̅QFt0uH-2Dv.ty5Eg ]>slHQ[toQ2!{ɍ]E%* 33QRa |Ln -Z3c<*_̫7)/~w$,'Ј6Ȱ9MÒa#N贅[6#qlh@( s@9SIDB WA_ aB4`vۅKbŮ<'h\ʪca2'ƔĘAEQPC3n$Qߨ8-9YD~0/$fD/j{rc^/yU3FK(] B#az1Ӥq2Bm/2*feTGYCf0E] o9C+ezn |<% sJTצj(ϼ_7d VX}z^F"Yma఩=̦>z87=rüc`yT3U{l\$;Ac@rG:- l>&Dnk랸IHy VS9>vQqk[yMɋ=1&148Dg%K{Aٜ G]:Q{o)?m{ކBF{ᤒ7sAŖKZsa(?S% (/nϰoӦeDѬ4<1A&PKMϝҺ-k;vəDŽjYe׳ɤ"`-.=x-DpH0_jlUdTXr@$ojG&׫*QǑlŚ_e2$A\S\'Q%)4yPD_*S,;Eh/X8v}*'s=/@"'O\CBޡww%Q$n==xq?Bd?\V8ڦkۯ^>'C2>|֮N5@:ͩ*~ѭ?ZnB YjY4:rsv|cD`‹Gέ-G} ǚ⌖ ?xsd¬)Xqylݯd{]Duq_B7~.H{p,}ċ J/ack* K[/QnV}?oۑgD'>̲{]VSnNNdцxYK"{{W!]-[/sQ5u,3B@N`MlGb_^+>WJK<1$7EL'as.l>298p38< [bc.HNRZ%ϛG9t= Fci cJ>_$O]i[0^/GcUI6;A]w k_G Oޒ4`s|;{¨`RL p(;A$c'YpuF֖ ^m?"LVz~J]Z@8mI"Y o8Uځ&3'7ɉ: ZlL*/ccf絳:H\y^8MGk& G!R+{&y.@XM$ %ƛacT$_P65_o+<SCb)QyUJ5麰x.aˠkT)nz4 !CYgGs:V"D@kO,/$Նɍ;-ՄSFGV&g%+9>Kz}oJ%dtO4 kw8nxH/jO"YՋ]<jy&jB& ١HH@L !8bq?s~ԨD$8eZ~У&~z-5WnH/"r]]\¢37B5ۭɎ`K!7(*I$ AɶɃZ> 4-rE-/;Q`Q6r 8+-a>{)(vّ>(FpsAk(nkIEhԸ2Q+oL[åt>(^lR>+i0i ̶%)60KdJ,ae$4vhr7P(vcAJYϏ/{Prlu$Z9R|)Qh'zf!H7"d)r8{ 3⮅al6k.-??\N{Ũ?Wt+~E{G2ƅ]g}UTR mQ8ԛ\_Xg"gQiQr ³#Tǣa^eqTym1apz â S:U?Ysm OEW.@$V|c7XߺO80&J!aaWa$ܡUjy?SL[)㎸T-.jq^VicPsJ/;㷡Poz7ȗ١'zRTL[˾xLTS) 9@lB3L`-I\ AtorO&NyuUYz}bz\ @u-C H$-k 3R:g\(eF@nK:ydDA5dX״_IՋe7iD]\t0l6v.yX,Nbe3f4A"Lr&3virM{lYy4 7ѫ#|LH}Uhi~ƒy]@%^`zq`J]*"&pf<$7ç庣,2v!~hUyK(~p0vuZפSyS#x,2S`XtpBzPАOM{XX,ʐ؟C|$+[-J67$5ԂT+;rfLyYVѶ:~ˌa;cwbssC2u$UQ?n7VٗV=62Yqt/|wK6}MoxO/塅M, vx Q 1>{-LY>cL[ߤs1_XƤ5(5#ÝOy3]] *~ (7̥?V]#Pә{(6IGW7PhX[,%KUgHMAmUf gM;}.0!‘{E(rDYƑh`Nƭ#E6A{q BE<MQJ@v PV' SyUE?=˟먩u0zA$t/aqALW++di6X$U%C rtQQDCHʉ 6!_n1[jwWVv@n>! t_M*Pv^q }Y {#xTEbiv I naVBEBfB],gH缉98^_S#&Q`Ծ* )˗ebٮt8'! kNU<iT{I)CԍQ_[N杊ӱ97i/R zol;b@H ,X}N _yU؁`)xK!7符jy7F+d _.4^")K_ v#_s ~(ǀP&ШL*Y77)^c[/dYg)Z1hU](XH_Wֳ%<͞2%1&o gojF|jOW'-qCV~ J=Wo&y̾!!Y39 NxJLʿ0 1 &.e_K}3 d \uzl]BX:̸SL|9xSXjm4[}]{.)JdKn=>d-SˆgP7X},H '>ߒxvB˵'̆&`=jՄ{\?(D$ x1Sqe^hFH5!\p'Nc|gNOr≱r0vm\NW:ZJ% zїt{"rZJYaڇl9Ax[oGX +u>Oǿ?nlP#~Kp9f_KHv3+I0n=bAO4R7ȩOd꣜Ң#(eٱt #Դ$&pm.W].Y Hu6^/× ‚hJq"f7cJ!=[Q5ا )`+18C0J)L|:/l2oyS- NT\|fEK=rR`#ɐKyJo,ݧSf"vbKWN-3vx1aH34Λ7~6`;p-ᣝMkC ζ`0*JxQҍ:\x3sp|{>%yP n'f}Fuή\pZT  ̍o#WBj.[iǪ2 ɏ8Jws^ aڷMBV90me,:Ic 僬&=l9Z \)~[c*VPpKzcJPka\lhcgCwW_Rw)!L=?GuI~U-bwMic"]yJ ^m4MH3\+y&ҷۼbs1f!˛(5FTmfn[UGӦE'jkz6*ޅ`KAh\uLMB@$5VܩyEGy:\TEsi'~$ed(8oVQ@lȋj _A2TA sr1<d |G2\YVg+թ6䋏A "gFQ#'g%Ýi=Sb]#ǟBu =р𩬽_b^e\3-;3ך޲JLUDJKEbNs?jfUdž-}!G,JN| bdjWgbz{g5W60l>`Ӕ+(ys[(tM%(ծSH&c@6@\{~V_"*MT-!"oT /gR3zip$%qΝ@0H_HIq6ifpI3D8~d.AOLop3Rz$)-jNHY}H:BMY"*?CE"!mQgl]I խv/ `ҎXjy"cg"jSSh%X6&t^TMK0U-R/ˬ Ts=#Zz|`S:}b %5Sw?hl-`3X޸n- 9?VK;gv6ds[`h4 H+'HogNefOx{)r JINsL"޲׸{ a'lyI y5IDٶk-;ײGW |qEA>0**!!mZsRg5.[睘C`Pݣ6J꠷U׬J@2ϔPG`osվ8¾؟sE0Rc:ψBxJrbb1'Ni־v*%pw:`Rq짹ѣ(Z= .пP5Jp^~ fz)~CP}"5l}%@>g(!ȋWL5Zvy-@P`UI8#(1Y|H5cx$m%cqxL'z#)&^$fy,F!-xud]}}Cmnծ*G)H!@@Jዪ 2,OѣԿܿGh[[,{oAvPzPZD=Y Y\^{Y)clc^F%$rXNQTD[5H)@ҕ!4JrAX\ ɗdIeHK@`*HFR4+[+A'p cLKtl"y"?gL| f4q$WbaId E hhP4DV9f0g)zD_Q 4Ỡ7d!Is~beWێ; JC mL(x z鷨QZ;MI_go<&$bc+RfSXcbbrϜ0.?Gj}:NKb$Te Wd\d-ʢ$%"?4/>Qkџ,b(bhݝ7(=i]ڇ/ 7#+bv  / `>< IO$$s}NJĺ2 Cef4T\|@NW4uZpōyYZNobxB/h_c yz>[ʡsFנ%%E\V1D(aI 9S_J2I/Hȁͅ %ؠ7zLlI_9=B(ܩG}.:鰐#q<#K`94 VT֜o*8MߙԃBf ZY=!LȖNH<(>Li` lR-Qn֕,E_5q\e0}lD܎ B l032X۳FUxwT_i.>{+j+-V: $ۆ{}AҴSбM wZ&4)@|u$ǪekZ`o͂/6#| 9x)(, b]%}ڲa˗SrӃ2bbOUO/ O 2pܛ=I,- EPaw杪wC,KbMO%(< { 0ir`Z# < #}.vpbr}'ijUc.+->Gy'/ ֫7XSyN(NjM;).p2Ly@ [ I]by6gCAX+斱Zomf+!xQ4սY3 ?:X+ D\3Wߙ]D,.)i]^)H3 v&Yea2L#,,I?Ǯ[/C7LZlNo0Up4`~_t2&"#-̈\an]~NVf(ob= (goha|_DKc>%Zl,~Smk܉ tk/&n] s`I~:B(V܉)@y!cP覩&~ѵMrRYl}eu1<IG#!3xe9WI$JzȎ}+>}י.M9s^7R<$NOjm7r׮1 {Py*'>'fd-/~]w 7*پdcM||'U\ܺF.m4;떽RU;/U?"I9D`- z.^Ҽߕ ;$p' ]qR5~m¤Qo*!e*R T3,JRiR|M7u6dw{ ZI %ll[Ӕ| Y{vx„ܝu!jmL_&T+ϫ>C: O(Jt^21,g:Z*04ewx): 3=w 1LP閽?}!.B`z&8t;*W)K%o-7{Hܔ 29 kQS: =3RxxUP;0Ez"Qz@mRw'uGewr3G~G&&3G#hX4wBAB&5"(]9ϐ{0c=^l5Q7㢋VM3"]L5=tH%lq T&:A'q ,ˍ]hyQ6e Os9F8ն<{Dp(LtL?pI,·.`Rα;t\̻*pƮʼi9[ }vuͽ3Hᵕ}ǑFO#n=MixVPhn62&W.VX6fU^qJF"qKe<$ 4$ i, ߑ:GocWc٨❍@OѤ|s7G]Z9\ _V'09|H1@{LJ}/-܏Ǜ5E2e4\g2ِs؜/+ 0/͕zhb]mDT*?̲~?"w ,!L;m3Y;1ӇX<<]q6^j@h }vgki*AkSsX{T+c(' @tRB("1?]_գR Ӂjg\AA C!R~ih_S撬=H+rAӷW(糍 HT\9?"Gsf-Ʈ<=UWߴgUp(^]ȣ [9bW 1-" %e5 @;=k[塓_5ԕw<vopC (mon~p#a/@;-EL5yQݠw@@pK`Y/z?k-8qaQab ͂ɓmZ 3<`ƍz@+w?t~h$a.f-FPobsB<]iz#l=&[FX 9itώj©IvIbmq.ZFԠP;KzNġַ_oW)͝z7蕇08'{Pg+6/y[7jul,UtO~aA;6Ro0Z> ;b!q-6Kv [_ "O\;5Xȳh7('=3e.ŀTмUNUv)XIֈwlZ $ڹT:ag=5u)WO w2"yo x;Q2-F٥79q?hńͧ{8[ɤbr7xiFb/6zK$İ!ƚUɪ0q`d SK'Q2RA̓(\c)5rn]Ry ͍ݳdiR.wJxȝf{8V018ѹV81n{U#'fb# U=[\7eܚni̳AO6a*[kΈof []z@fZ{/2uNSZqm\ep/|]Ujѵg1ҼVkf-v'=5 ge6<ml_2C>Yl ObT3d TOshĴv@>+I͢LJd u0EYq¥'YclwRsBEo2>`,=ſ8ɒP|qHTQ$[{-sϠ6_Xmt  6Q[dRӹ6rE‘pkqNRI.9ڶ 5޹nfn#\q^O19I; [V,ט g?X#Re@=fGaC.4"fXReR58Oaf*_8Ֆ"o$f S̎kk3/x_=g ߇gu[wCR}?i1' ("uObXTX*J12o|Ԋ %OAt?6+ۆ;w ;mE :JOwsVp!Semmb`!>G:y?磉p;7t=!E^Oh@ܕ|d77mז=]W $Feo &ל" c> a|²o?zPց0CDg |eB`gQWpN8T;A2칔riU@µNsC<=Ċxq)}mlGSx(KU/F6/#Cch!քI)8f-JOmeXXq`)DA l겼F6aE~u%cm9.VoR9 3M''="T\z:"ϡe&PgON3~RyH0q\ݩw|QL{$MڰB3-Gϸ[˺ybTC.W.? ᱕a?% HM?:DD?vxida*Sb8v ~\5B{pxfLT۷+Q M[2T(?bl'yH* "!,ZK80C2U0a>J3Ù젦!ʯ Ĺ7vIT S2r})[}H[E~R;^+/CPf\lɂ/[Ub9qE.Rz/`'6[7շsqxm-fb|s(O!*H2>NxqE-?Xyrko|3~,Ғl9Ѹ]mLx8s- J\8zٽhpD.9eY]z)@j_rQ)_PeKD58p`] "NZ&oZxEю*8͔erc2޼{]~{cm28cHJ{Rp8Rs*2<d !PD|iiM0(>8)h':XMk94in̡`IJXCÂBc?H7сQiԒǂ4yHt==퐸l|GIK=Ipi^3~8nDڸ'yH,!횷t.ASA]],a~l<@`ü,S%|W@ l[b01ٟIiVp ,"M f b'؍DWlR̗Դ _48ɱ+skj9)9Io/P`[ihN~Nʏ 9g{MfZd_։+=g۸Y3>Pe׺0}h-qT)GsxJxJ x Q5:[sSsHCTÂyAs jIl{;mYeO;shQ:703@Eb_뭵ְL:ͷBkqDS' 7~˟RKMgT^4^OD8Z?w4RFV\2GS .搗^rotLfcX\! w4yr !@Q@||p {(зFf]ime : R: :ÏV_bw+^’'5Ř8IT8#IX]mD} |RU;҅X *rfL nd7foϦctwP:`hu{峆85/>DXz­V8]?V=<<6.O ˕Jg=8Sv]8*MdG'_6:Q<3DF#G8MvSYR %OT𠭂g<%D/P7PC:`JSo9%U@P  "֥3D? hdQڪT@miŒ} iYq$|h"):Ab_\G Nj;YhkH&\~ܱ͘fek᫽^;@#U씬f놎/HyRx㖯Ga[@dN/Fc`ϭlp߈pʛo3v\X;^#Nj^>UۿC%O,8dQc Og9@ !d޷EYf{2K7b,(3+ć6xuaSu|o՗<} xQJ=J|D֋m\50"\$#h1u`j :ίb;gSexqfH ;.@?Aj`-8^OOBҎ(ȯGlK u>6Yl_A)g{G7;Fn@exy ٱ܄PV|/zonz6'_A [ h@m갳0&?-{[eU֑A#;[WB^Ze>hUY*`- z; اUBH^E9qi WFDbeΥۄx> _W_``:Nxn&QsURf#$u;bgF/p|vda5CkV>3'pRގr 7Fo#pf DH wfu KUt<^HxbY&Q('gٲ}ioyrgk#c\xkvH8+VRTpU{}7=xB^{*0)pS]ZdjG[ jǓtG=F\n8X6X4Ԉ M/tM?AvdfUqS8nxN`c"sK\vΧxG7KV@0 PB󮑇4w'8ɝfuTpkv N`GSGEy(h5N퇠p6e o .؁ rC_?aC;)rRB"ޑG oj[2O2w]c`'Cg^13hwLզ#45Ln'y.PFwro|@PҀ@Hra 05/j8ۏC5:# ^\LN*JF TЃ"ˣ𢡄d" U73cEtZ+W1q\͟ctp]~eV1azqJO v 5ICӁ+&&%GAsۡmQ@)7D}'r-Y렮vb\x>%5ZmO)f&Ql55-6A) ʚz8_, pX?h~HeM$'@oFPMb=$מؾYepKb׊?l)0sՎ}Uڅ._o:/&J*_zoʨt.MdE~~ 9?y 0zǚշ3(ɱYx r4œ&vH|D;dDtp!ϕ${Eݍ(WP8H ~s2o4ǫs(cKw`Y6&]2-,!`J܅׈a YG<̜v=3X}l hQIxLj6n|t7QJ ppր~W-NrC7hChoI6CvkX^'u%b:RTٹ>=,}٘c&WNAb(F^$ {& ɔ6."^ŅGۧ4Q,rRYc{<d&GW $SQĺoq`]ަܢ{$[;|;~|`[m",;؅;Lc}LmuBp^:G*g^ A ky$G.D"+61IG'g_to: X#;l8%~TD㫰m\&f;flڈhk*?(T+CpIU^lpS .ϓЩtIOPBK~,xR] 0Xp7w*zk{QڲDϓ_ۇKQZV^)cSUT]м O-|v}dUxƭ` V:p69> Z۸n =+Itsk AFـMQ!yiz9 j"(*jXȭy}4scysv+y=Y>7]{NJnHgWi[ HN-G9R6m)ROr6:m6`G.,te%z@XL+aΘXA +/F2K{a3y!5ϒo]'A #C+-QtYdh$3e#= "c! Ϲr-_ܠDմ}󔷧gНD%촘0+.fi:{XqǍ%hnl\ξN:1x8*g.6R92nˬEIJz@oln{<;30tt\g>k_8k{YP H%}AnI NA5źV\긁OC~Mz#9b*Z?νLy1-}b?c_ PG^wb(paXbfrKU[]xSf&gMΤ-NĹ"HXlɏLgZJ4XeG'T-0eE̦#oUΧ%P%yObei!xr^7W0 QrO bc9UyxuoFx[1t&$MS!bQCեp #ZSRtÔY9D Db4vnǞw0i`@EpbI<'_"2;$,f <{:f4iIl|Q!y96B5ojEB*'c5c uډmL^/Ķ9hxR7՜%D5jaJ7Ė?GU1gK)|i5p_Q cN.D O;ٓ8B$cec@jC,Xlk_g]*)H4ɒegub\-sxloHDB;K*.cze$ >e UX>6ʊ/f$\SM"z|wr_A\ ͽ3K$:dq$:ǃn%Ȥl/'dxj(d_txڜ^`"FsDWs8_whnaފ۠f;=0!0\ D:f\mz tet%hϧTkE\&NB2BCB AsJ=s ηE5V:S0= :wpS֯KU"s;gW R3krNsJv?xэl,'|_D1TE%کZtԞ@ 0Ρ\# \| ϩ"'29`1Pg82†}}bjݖFN O sA|5H7}\P*keG)H|԰, _34r>9i)MκhCZƕD[ȝ58il[ԉQ^dYh5ZX|J߉Elx1SbYk\y,Grg< n0C_VWiݪ(IBE1QpH4lhY)IDtdcM䃏}o")B0_WZkDBexX,=U8ba1eyP(Ovb,4uZGu͵Lȼ˘05[9Ey+.?nNa:M}Ewֆ7LhKf ) <,dW#; uqaD+K8Ft?UEUߗc3u0,u+3D&hh3!He t~ Gz.?Yo XBجW}!4SQ?8PI۪ Ogftwe#) CpD1qulf W:J*)X餫6\MݜaTP޳Mσ)||APY:dy@G.܄3l[d_uCSN銦R:pt4O轃TG]m7FP|L dq>`,ulhرU$esӟK4օ#=34:nC.gq:J]iEVus ]]IՂ yA ;Eroi*A訲 5X㤔qoOxp0ܰD>E"%OGa~nDp ~`ik?+I8AP \OɯnкiUph \@7/3c+=[cOЂ`áG)P 3*A}IcJXK7H=O1f,ɗl}7,,v CZ-j'wv&{#مo.+ 6hӑ].hF0cOdc~ťEwl9g{2WnL">3uGPfo Ќ\қv%@(4stUbKKèHuPes$n:|=2+DžQd䑌H=剌䇸NW@x&q1$%A6yQZ]Yϸzwl V9!޹! Ȝ6u=F="Yg.8Oufc<#Ǝzws¤Da7N[ k)L^9h}H!iCZn4!8;]N?VO(?R=w)J/4W*~$2lJ#K7|t=|E^ōCq~δ';l):~w<]eݪsHcJu5xgq M[Nvۡ-N5 wqZwmb_0ad-`0*BJx K6Ώ_~\c6'kR]?4ۦQh.0Dmcl B#Q2&C¡T{^ZT|[X\ƒ$#beSH#el0#XmhsRe[&asvc =>F!Ys\H'@O?T+QO"r$%h _&ˈZS! " 6x) .=YYC|V%5Ɯaiu̼ MδM9)KD|ɠ4;Pƙ*,JNmMD$;S ~=n|k4%d.mދ1 :å4sb 14e(+0HNLA5٨iԧ <è4+3a<Ԅލ6R4aD>iR@b 0zUjeԩY3]͓}~TҊ$\T\cXuug/)+7H`,LkidAI`q 8>W~=uɸDO-lq[x$fnb omJ t?5sl`nۭU@o&Dwpi=_ &噊mIsr&d%bҼT"AҸNb.$!f\!*JB,Y.cYbM1 ,>~lEAQw}2ͣ}@p]oӮ[:~#eBo;(n -p5{L=w Im-ZojB<,5}B@ETWjjGYG'mQ27zIgGO%;;<'h k 2AWY=2)iW)γs4(3r0x:k5'b2*~)H mNaOa9FC{:neB+~1RejVAǯ6xpN!@5f -2$͉O:1qa)!ԯ>cu=eǽx[T=RϿpF<۬zBwXq¼|.YwsGpXUlEγ-Z>Y(2Ȋ<:7co͢mc֣$ѦsuLqMXENaDעt+6L=eogFڃ_:*x7!9k}؉Is`YVNJB/f% ۩k{FU#!Ci.'sEƵ2{H"M> -;:f7R^XwpK˔ ['Оj/kk: u$V` X~")ӜNm}P EyBIKX ,8.wCzGgmE x c(ӊЩ{oq`-m-=lHJ#J?([)&4z.*q,FM$$y1H!rUq"[a+(a6iܥ7tkN-sS^x;r/ggZ ^5Ek5j{3{V1٥(.o<p|dR6@ I>o!?!@ld:ݖ.[*<(|.%ԟ :*4iC+\kgpa>ʹN9\ -zw>R]r}C؟ށ-+`3z˒4/o'"(L'K5>̖0 'l}MV/4M ϊkP'w"ȢyJ.hvs*X|2Z&cpP_4/L}n0ihv'tҞs!y`f0[]r;8䀡ԩxN#x`[zjߩ0sIjcԔ!0!gϳՎcGgՄ!ǫPФO^Щ ֦fYdINf{hQM)'x2ːac 5 #nVIլ&@9/EP0e#GbsT'~b$jl PaƂ܈_ʟAS*#l8zv Y1j'"LRp>>Z ԑs8VZ&[/:8A$Rk9x.JYg,ΠuEa5_Lڑ)棑\ $@mu"`B1֘fv&ԠL&*38kVnJONIdƞlBBO^є=Wir^2į:hwv" Yyr5frVZkb?s riet#L`ZEV-~f-Ƀ^uFY73Cާ(5jI )ҕ-qU  G6Vj{PF^]SE|khdD$/m.)`Y}\i=uf>_Of …"w&QWcw<~3\ ۫ѡ` nA谬:8(sl(i #?5B?n;HUȀ@pҭg_ClcΪ!B$JT6r4巜M3di ]W*m5EQzL:Bo2#RDMA(5 2R\aw=|b>p ӓjф"Q0hf6Oȝ '?D 11*Fai$ *_(;xU&{y8j TNb6ٍͽ+#Bf..JBɺ-M8fh kԍw[DmI4Bs󀲓?la5,| g. ް!tU \e(} /oҧ[R:=]f {5Z[ߨhȓMWb(_&51 zO=@üܩ^ -SX hܢ "`3̑M{W)<# #b֚V~üy!c.i #Uߏ3[z{/ᖣ|NC5 $&,+)6j=/0Yf6Isw?Z g"*ǒM絖ji ,u]N' FJ%$Z+XȹJ,U C%3tHKA+ߦ`wاvx(ϐE ..^٪jLk HĦuԙڏ ӟYmAjhϲ0N6tH3]y.>*ڥlRr״N *BfX ajѓ%PI Z4, Tc!zuȊ}U@WIt~ GPj]8tb#-Ϣ:lK?yf#CZNžA| .\jkQ|r~\/1t\ee}.5՝\Rz\: e]*y|cZAޱ@\|TaRm``[1ZEipBudyVEZ)D+Rq1,x8Hė#6D  ` }NJ B`-E7rlx)$|0QHMmw˨k`騜[|u;5ư7O!*a>*y}3^]Dln'LkfɅ>Qscñk8#zw[ TlufVTGj}Xkꥑ@g>wr܍'`mP=`(O;CJPdZ"W)ibe]gwX(d#X/\%"Y)D?fv?3Qh|p.1eU;`xε!$pQ bmtE&n"nc*)x+k:9:z7c~~jK3ot_VUd |^ W/OM?繁G @G<> $}'E 4nc~, 1+ut@IÀHs1͞g{ VtŮ$ Z*%׍Y >FF}jsH$YC_9cSQ;vuV#8W{nR@.&bzxA-7lؔ107ط#\ďm<[cPP#O' K2֝: }= $`st\,YoGxȺE+ll(/Z5 MGQZQCL*'. ۔΁!w& IG& BwoU#@X\oGt=)NUi_R(VF5gV ةp:bB{(n̰gz*raM?7N%Iq|!ꍫfa _<8BԠO·FcG,QaA%MB(VGm~u=vLqCE1D^RK #-Oۭ 1Yy߯\Z0D -}+ riQӕ=<} 2ȡ_mK #OB㲂Ǣs*X S \6Wis8尡!q(&CRB_{+44ݧÅж˜떏. #:̋Qiϵ+e|tpTe;&ƒֿA?,D -ԡ`\c@ʤ]P>^ `S hEdp&ho?'Q{#bsg`e7=:+ߏ>\ۇ?v|=m8k0X~wkw!čj f&')g Kt"$8<1B똶X75EcQ2S NC.?_t[#Ph9(\*"vZgےUQ b30\zl!`^UAkM˝i)=Dd!3Xh|ڙĒoz+`E xj|?q RUooKbQCRC VT3}9fg-jlm >c,R  x> |3315D12"=\H)ǧh>Wfs̑HZ -߁+/ʨǺnJrƑ}6}sDA򅨏(<1mai^tHǣTU{Ϭ 'NᛤԤETLd>MzObM^iB;:*sUx0Q+LuXyxX+'$ LTu'rt5RXR ?XQ2p:,kH2AJVČzlskoy tSD^0gK¶(ИpTJ# ݵBqtD|@G|VAgMq\;OLvSH(D;lCg 'H-d:j ]"Mذe]ҷH1O[stT|w;Ƈɣ.F3ӂ(ky + xF&Elw֮9dTBer]=I$αH9aJK.W̙JhDٲv9.a*m4sy!9\E׫f>9\ '} zJYF?lg+5?4KzK ?`afuqp{|39As'K""C_4-l ]SwCiburneP5^ LR%fx,WNL1yVb,%A<͏ZǙ RWoB_:Κ֎+V1}ljd$ZS}8@Fxy8"~XC -bsF S9&[x_~Und(Z4Rۊ$:޵m7j,jF/9q؞ŋFXi$Y}Qxөs;b64a[3⡧FY)ae`{Hj&1GVf^#Kz,>siqChЍDp5}$t70H2-S3adV|LŪ9LyBOVa-wĜ姿YW!C:Y;pם? hV@PMճƺq{h.8x( C{{'̮^~CGC[bDдO-Qc5ƧE$jv`(F2))3ip~܀ bn #٠m2rƫƪ5>9UZJǂGz+A'vڭ9j=cu-QqWc֒ # ٽKWNP]YC7} ڡd&%v‚\f.:afBj6UbN -OsAax,+Of4.n TfN,-2L4m$,6< =jg*TiJ_4sxS[]Wje, -}~x p OXX zzSJq Y$ާwRص`ض8L)V:|v Ni.7o V i C>qm!BxGEΔeE]+,`3&rF tsO@$-I¿5j6)c!`5E,4&%Y6#E@6XnJ ܈Dm.=$kH‚7q;"{N`!'t< c;9N9ܳ:KXE 8!1N2pu-YNƋulV !b> HWϲp w )taJY-3wl">.m’z8U^x"HQ5.xOw!1`[wrdjnMA!I;Ɵ|@u 5'rpj|NE[J{(@" r NVorm6)ZKl .B9hJWmmwSvaf&Q9.n DaB|,VEƂz5w?~& pO Yu2d~Ʀ$> 0 P"0ۼ܌eK E{`ɫlUrbו\^hB>o x Ҭ!3ї4M\*7Շ\" %\6 3QpCRھvem_GZOkVSc[nyq_$NG(hye+Y; u崅S59IY^ ٢2vU2%Z(_@y%]yL0V)ʶ!NH"K͌3~Ր6Ekil6oy^a;bB\ r}p6]ҋ{6^3H"-Ff*'u]͙иDj:rѯ2,^_paDۨdz$:,첑 &mC 7j_x.s=[>eWML0_=h񷖪,4+Z9ZyB7 E."{/;vUW$G6&S(#7"̓?2DZlr7u,{)=խAFa"Nsi@j9̨F^P)} G #At"c-o}%E~jO{!FL;;VQ(lB#-.N*d)4)S!bgZdb 5*n;0ݍ}L"orEX @]:ʖmfVN@1Jk]h]U[{d"|7ڊ hi1uNuV.Vks"!mc3 3wEB- o2 }g|oY`)3B&Ir;"$?Ɵ4XԚi[V!v7Eb7/I“z+ CD.L\:T9jJ xnY6O >Kײ T;ͮ׌ [9€aETi 3K H=I"0"ܐo^9I: I鄯zX(v, l{O퍩m2&<1dmYAkS:]V4>SӃ}YdB#d Q\ XVfNlt٢y'W]uDEw=;a3&#{;ٴ9fl)R,X:sm~P)'׽)Au]9+&%A?MܪDR| 1!ѥ.aq"0523|O}0<QΗCKà=%\e\kLSșZG~yuz\ Sb`#SaFdwqO@Hz4g)F{ƻya@ciەjSx3YPUXJm+DA ln|woߎkrt{ Ň\V%8f!Z/|`|WFд(sV WU- ~5`+.Ţ1n $_/$_˰LYkF5+>*#(1Y gm87.3}%IЛL>1剨EeJ (-95ݭ}h=6jCz<SĎabu=9K^MV$stpNQ'ޙB (W9{!G.+雫0HUUISQ;a%zAp!@asJJ%7걩Ce@ 1qZh [0Rrfڠ[g "rD1d?I=_j >(ѴF"ܚl*"o%F6 "GŒhg+ٷ Hp @7vK %ۏi Q^&chty )]5'uf,P/?0dMBFZK!W0265Ș eyyq1+Y!co H;4Bռi~Ѩ_;2jyeo!/UX [_+~>q©|pLN.< HJ/NX☡ޭCޓ_Q`*vJx\a.ֲ5,S cXaV<^̳-{$ yQ{sɁv ;^{Q:)L[q+ ?jrv *E9_;O}R _Q(φڑ1%%Gt=2|.̗wN5mW*Wa10娲Qwlʴ7M*L\}6V @6p-7L~` z5HV-nZs} ʋ,,ײ,D+g3${ 6quh(:7C1O (F~<ŷ|qLw-IWě%k=LL*RH=nE>Ov}?Qk{|]1+Z3'w J% ~bGڥi𐍏 8;w v6+5y_BnQZm򰉂^+Hq1;MN\"d)2e`y\Θgta:.3<~܌3&~7hΕWaS vFi%.a^L;y=Y!8lE-ҩicF<˫W}(Xt$̕vy6`q}~*HTpAKT ߼K%L]^%{k{T|yM-QB$|01D7/ݺ JX~FM ![?мzz Acq rj!sɚ fʮ@[jϢSH4|"/yΰ$~C'*ȘSlLQO?&}t qp!\^ \l3{}Vr޾e6u36&"*NVMde}\{.$&Gk ( EZ_JZJfW UyhK/ǩJYQ,v6NGV:Y\u:i/l.Ff԰`rLy1>? >_ nߏ7[P# #F$"wTo7vyp4,tP>0ѿ# g~;X/eb<ߠeۖVjNO\4"Hwj_P|,fUv`;-!Y *Nbl5#rO -eyBo>U輦|T0 'kE2:U!^]9181NƦ~7F4BJteE pDv--c좓'OQ{ ?.l1?<ܳ Dӵ@6Da **oӀ*ϬZ@ ?HV)NQðG"D&jKձ/)SP=a2gW72Ai^P~AM 4z,yJC\#̲D){L0>q* gS؎Fu5քV_WН,:&m0z<pERT]oFR #lsFd@"~ط}kl;'9 Erj ; 6E6ʦ.NG`1bm)Bc=nQ37*7;ap#+dphy\nU2%`?j+v0b tiL5]mC0BIEg3UASk@Bh>0vwc ƈAh<{P B&t7QX%W*v0'E!w&pږăuq{G퇝娦ZpR2cmƂXW ݙLFz~6ubS⒰[E+ly1'S 0G:Ll#r9K#M0d';L36'37u"! YFʫF߈oDZeAK36u*0N{|])ڀzp\dYOh7[L; 9|ߦ |5%JX5.r/Z !σ@+6G4oaT0$;_ jGAu&u.=46]hzs>BUP.;kAx~n1=a$HB؛Rsr׏G7m;.%m55_/`|C;ܠ_zicq] n;ߢh(ad`| > 8Xw([Wo*cWZw-P0 CWAᣨhGSBÞC8ԭa%yHQqZL `ࠔLsJY:NX9Y #ECǭ3C.&@?>[=KfJJ$>V}e4vGǻ$⼏⹒O <?a"n;t: MUrAwF6ꆛ|ޱE CPb6rK٥ໍfځ6"0q`oQ$ȱ3ȎRzP8m`kŬ߉zAv IEx piEcaQ"e$&9Z5톅cˊ}&3MZګ%@԰0M-,_!b(w_b% ;<clT3KbF JUuL3s% ˏ6zf3 ȄVXmARtnJಋ&@C4@OK[!C~?=W~h>#dP ?kh2?M|_A&g&Gfs3;[k :^8AszA/" [J,6 BcULa%'ʈO-}}k7t 7EW hMocM<ʂo D&޽ysSj?nbAtz'Q)?A+? €֐j{->6vvٌЧۈ ijhN쩦5p d}`2?vUcJ=YVNI^D̤^0Gm wv ' 6)'=S*`m оf< njCϲN_wSܢDYYO; lݖanT֛O%7kz)qixStJj`Rs0}ST#ѿI)v5>!ZCjo޼P]le֝ WߎV2tTsoHt>aΌ\X)Rf&9(??K0 C]p>-@c +x(grxeUvH3`YhH$ )+zh09t5,v[uA?@zH怂ҏF%S7\46ttcȵy,˘ռ\^v=1'KH&"xŖ|hN\%LH7q%!aR'GBD̓ HrV¿f H-hb﫵B'@ nWL},tBQ55ɮ %Jf#ՠS󑜕2fθ"?o%?10̓Ly$F'i?3l;p:_;WbYs4iJJ Rǒ>B]oVaϟL`KkŖm Z[RBJO-DZLqח0LW;\#ojB1t0Q3Wr`J-I,OX@Wa\YGSCczFмOWc^4O:UD1]ff2LWz qcNcJ~CRi a4=nx8:P仦nE@eg9c*pued~nE\5c/P5e)40_2<(XW>ç!ڍS7kR|u1V6g0Yzqbo,}XeK`o>K`wc-XpO#EC%膧W Xfve*WΕs,E42Cgk;"鳃< w= ag` Y&L8[ ygAw1MbkD] t-2FemId#oat 1W\b Nnm9&zchQY"*ЧmVtɉvچZ1]ܺf:mA8c}nV!W;@>I|UPY&8O;% ֮̌FNOU}v.7WʹeAJGɕ~h9`G< K | ʍ܆ ny흧C_})6 Nl\*n8E{hbyX ˝z9oB]_jc aշ)D2O> V!qBW[s^w mfx51%лDzµl9(H̚*_,1hg6t1Uo^_k"I63i +J)D9ȫS(d,zB^ҁ*٪=!"Xdzb%H)9GJ Nv;¬8eZf+O5xǂ.Φ~3;%Xs[_IL KWꉹKU׫# ^@迣çV0<q25I<(.N\vm67Fsc6rvQ{"0:WAlx<檾߃]VG*%zd#S~QKH%Ek*bΕLg{Ik)κ`^wZ@wdm2Xd{Ks>Ή%|}x UUi)vu#wY lk|+a3Z̙pV>ֹ*Z\6ƥWXVl?P~bXV?7/xX%Y{_…sl q0fU*Tj @>"6}="X,`d:l+dNr92_gj|$ssYjIl Bn 0.ݨ&7<7>fT _DAx[k0cܽ q@ZH\(nmtũ.Vr/=Ftxߚo]t)tz HDtl? l~[bk%N,!߃J&.F͟\Z'(~Z_^_etK4.{ 8,~egsgWo6"׸MNRT"{Uf m3|qM{e˞nsVjfڢ_`ߙ08GwqULx _99T$[6A|Isay|G̻4=ZSF%_m]|Kd=ebE&1'V3y˱I?k/@g-7st<7#bLnZW ^DL-SyYo¹hO3t~|7u1RRsj^g|5 d&Ux1Ovw1fxj]u!v$!WUz`U E{Z~L;߫!蘏ė7 ]%9pYϒ9FfdfTɼ!;hM2.'~lvWbH3!-B߂c `jB.\m?i^m8O4>'* `iQUStĄm"|_/~,֤xE5>*|p_c\ia{n]+wi.qoɧp]s@dcE6T0Ī:{K1yӱSn1 H+-`hEрk[a6B -ք~oӻC.T-КWJWq"} Qa[J>77?P11r f~.blmXuB 7j1x^ J z~${W[ȆX.%93N +y~ϢOsuG@zU0nZ)r+4-I~]'Mё@[kav 'fj!0 [5[CϘ򙡠1GOmmh|V圮0\#t;B:>n S# }y@>Trgdz$eO#}1Wq(T9Z3Dq R~5wN,Gی|Վ 37pA$1-YryV iV@aƅ$⊕w5doCȒN08 :rnߤ/{{ ǀU6n xV_s&BHӄ"t2}`v?W?Qi`Nr=*sl)IܰhJ{C}{2,p_0%=T Y#BܑJ2YZ4yq*љqʰ2Tlxi"T+S&W%{+Ff3ʳ 7g(aFQŗZ5: 4SNaD^rGX"vJB- T4'kt`e@ ;:ҐR 8P׷-,_UE' t9is/A;X~i*Ql#C(gE$w̛'UBq$E)*-nd6(^Bx,59D(.BQ $Y:-n", IPĥMf7zQ߹| ALv3P Sy_M护UY 2HS!+eI!t4Nӷ8kHfp݌nߥ+䰋Ts aRRtO,]~$gPvGyMLOh/p4lkqZ]&**i;he*%HR߉yX'0꓈*HNz9jaG7Wdџ޲_I= xdq49t:kșNA5zd|Q^A۵΋wj竣BrA@* UX XYYyuZZ#lg6r?QVlQ{VVe2.bWK> a԰?c qyΛ\PSvxتzAä:'( -qhRS?y؈..0뗗Y&ZX)$` "ʰێx&W~t#3RtDs#c>6">  ?MMfvyu+{Yp>?`J|E2j [ &Vb2؅.Nf tl9}1nc:L,_H^WR'Ja` O]m-[3#;D{PCbK6=\x%8I/1:S l%yk8rTY?|UMRhK%l#JK[zLNU;f|g(j7,f9; c$G<8SNYAC$2UoDWÖ< ϿvhX"uE8LDzz\%+PFT1x?~?:k6`V;Јލ, /QB|!&g'L;a5{o35 [rtl ⡫ فeѠ$kB/WHx)0Ox}LEO&YSsKu|{{= IbL{9n aNjxքL#~nmgO%;lf,%T #eވ5-/ s|3a *QFx@i$\;UmNKyjbN*nC|i]W]iֲ$+1* 8#BKys;wͣέzAܾ -QaOd]{BTEFl̀j io`Tݙ+w"+~:Mp-P.=cJ=s-Hh;C.`L``8Bڽ6-T!]i,]ݭ\^{=Y"4n$5Ӟ]dFOFZ.]n|8Xu"=[Xoo;Cc( 7J\H"]gm؟{:mjT!ϒJ$*'kpu@"o)IgƟA@6nd^$}WΘxgMS + YԦgqqrɧL=?z]0nI@ExU!|P|9gb48~nRhRWRMp8xF K\Naqm5h/tw>J)I)xتE|Н(N^?CE$-Nkӽdg4Fz`lD6I9ۢ=ނ=nL^)c=lX۔/rF3SanmCoC@ j'zD?1DHsy]~KX<"yj, U~-K#o. gwe >7,6cΣM^TAlc:LΏOsYid(VeR&J)M,f8v"EQQ[To6._x!=ba 5,Wlb"`\Yä b3j#-`bAZp#Pl^Jea;odQvENګبFk@VZ* ze^LD1)7J"=]2-q,G=(9f30N[ Թ.jSbYF^[S" qgRDVDzٻ" [jřo=%QtEpe*Ơ7PyELλ{s2d`4Lx^S,>AI""+{iڥw<+v v>p=c?f0p ؕ_ sSfs+!H de%,|T) \>:cIx 2٭Wl/Bfۥ?Mңtц*Na37dFDxeʿP&qx迋̰J2c&,Y5dX=Qep!"&1C`8xv{Kh҃qLr%v ,SxI}Tĺ39hŔLQF m|T-9;^߫뒅;QFb5myF1z~?0MV9%`za]MMJSAw1j(@ʨx}| Y!a#á yJB46/C- CaL2!!w(&NU =;.ck^ AiF3[G.KdL-eaM0bh>7u'+S,C5$b U&)/~t _ֽeB,ԓHqI%[&L6zAkX;fzrz4DF^w#`k) FG~2?mxƀ.J0=95tGݬUK{HjQ'Up.ff?I!" z? Z]ŽCAapIRWѫ:Vy9jv8q)AԞf'5䷱ {xԣ*kuӃ"_eH+g y؞U\T?P GT䃞m MXsZo[\fdpo{\jkQD5b~!~spZM/lb$s*mr 6DI}*?斷˾pɞ0xO^JKgưlp^%Yi3;8qiƶᮿG6)@p̙#;CAJƥO R׃C GZߜVm (NE!ji&zT;!Z#SX8b(\Y缂֧~ m$瞶XIWR]vI ưKGQ )L6ӫDh"vfҩR֡F@G9Bț)^v$Փp{aVER2yqZdŲ'%}2 ]A|bD&yvgյ!wdhTM^ {RItyh}c`?e"$s]%_ [8z a$kNDg 0c̅Xr\pH ̊.V0 >Ce [Eǩ=x)(h=Q$vOQAf1WMU-el5;!'@uW:|oCF֘恰r#) Yx<~zF $(_%Iy _Mh>1K=te]BiNm]4id~{/|[mtЙsڌeRkUq-(mG;A$]D7,;ՋuǛ!TGeJ:!׿Jx.;0ׯpG= ]m> ޔp"h hUpN5bCoҥS/Ls%Vg? D7~ ,, ̒ v3c*hV1tz)z|ŅVĵc 22cX} zH-9 (+۷fw_ue'?9iWP˱;۪C7%TUޭaUI0YiubTnˎkkȏ}[hw}d# g3@> J/Ɋ[R"+GIo2Kj(>/.1\ 8r.9S|PDD  A :^ǎyȸ˼rr Q4(t͎OcY0BSEd"a=3(/C.mD_F/gҏz ơۻJmv=E*׺bAׯ/+g|:Iꏀ]Z# Y~)^\pv67gțgŇ|Ks$LţQR;2l"iw$FCh +ױue%,Yvoi̺ g+|U P)v)pK5 $P!&6kj΢@,xQ:ys|KK FH9-`xb%]KkҭK^!<&!09 l9ēKme(l+xB\NuUV7&H>Nh2ۘc*˳އ 7CB  1295pP2Vu`ƕw!l D?jFm'AE<&uF5LP]]gb5^z׽{^/=_oOw#!gw+SMu<1p Ɠ~_܊̱Uv3&$BmsmRgm2}cTzުVӻ#L0BTyy#S:KAݦ|vDɥe ډ߾YFp6\Gd[F5b&s>tq'7E~ǙF-Y뉗1u0u%e:\uR-lͫeÙ1mezD&C. mva_[qvTN_!]jQ~W][pW08U~C 7 ̇Wwc`!y\d46> ].7vcO4$e؛=@ztFy)CQكKٸjx"}n5t\%Fw fr)޾}:H/s$t ]j=||0R8].qwB1@##,Ϻ>mnIc$4dpE uTNG/m\oHvUۯhҟ?QjIK.Kʂ#@vlVP9f= ۦlT5@[)x2_)$^A(M p-rp'ұ^LP>lM($GXTKo vK>ٴRiH1&.b欲(U6ٶ $Eezyz:(\2 vi(xn~ESmNd3yZvM %QIM|j.ҷ#3h;՛.dK%~3e k桾],9`j -6MMأӌӠwʕ%!Vt:4AgKc9rgWnR58۬\SlG>A zI*1Y$uu5 T^ )RNhm(VW"dLT'ĹCQ꟩qPBvGq4O ;^^e  –񄺷a~Whu*I,|Ha9ISgcV/p& v,뤾Y&~Z;qp]N`qʍ-~~\ ! TUҎ}zJr|tHw`(&sCμf3Q%3T2'9ueRNuk7[nh(ѧtc}H -wgf؎Soqz>8߰VԴ9Ǩ 0ge9DDT2]K2gj I X5\i$j};$3dSYH82<iL)%綛M45X׵«Tםqt8g&zz q,\d3w;l5+-'IdG?3ޤWE/#(zkz(O?i~z`obdeS-ӧoش`gEU [̡QCC,#r 1%"c35 }DGTNR%JA1A<ߧz+*2}4~^68_H >qɘ=Wj,8qK!DxFX& E>FGTn{}~ee)Xaȩ#٦8? 7Wru ɼ͒ISzMǔQ]pp$,3mǿ:n".ȡ~dVmj/ 402st8 _1"6xߨwN\5K_ P5doKax6j3DX l-L#QcHՅj@1jGc o$I(ֳ>ˁzi*Znn\;o,q6{=xU~mT_!t9$-f[U@JB phsP(P0S}eRJڜIn{/Nu Hܘyn)-6R8b$+A=Axr-!79"mnԯP #α @: qH8Aͭ҂N1Gj9a W׈!/%SпcZ;gҜ:`,]5;@r-JB424c/ ?Ž/DĹf#A\[!P-[hUP&`M~Sia{5ͅ-ɭ,fF6TzAQNY0d[&!_npˬ56~mk D\/뼮*$N8t&dְABߘ#/,xxV߁D*&%x(-Pل  R5 lǀjt%ls<FRLx sׂ |[sYfbWX&>K{#`:C3y%_ #><KNIl).\gYw-D'Q}exA ܅W_ -~!؍\_j0MSxD#L?ȟs.ԞmGp8 ~ivX){0^[[F3jyZoI-XQls)ģzqMOo.h P!U-L9z{7rَG;*=v"ȷ|]/G稰ѭ- P }U;\~wyJKGT$kq1C(6}h鮹"| oҥ~[Gf@O9QDKA-OC~kN7-="q "ղ)30`HZ AJwi9 _V=R|lѭW7GVKݮgbpjAQZ rE2Պ{bY> g􆼾 1vY;N7Jv! TR&۔|u3o*U(XIJՙCXkn(okqOdsuA,^gv>tp2$VR$w*'hR?np$E6z/@roK IY'j ]_Dp)#`ËGϋ x;0Sb)SLANz0ͳQaԺq=9a/cÒ:䣌@|9 hJ 43ɦ[Ѕ\NuNrOl@}%EP%ilAʙ!Ȥ!ק.#ptXG7q?7AԳ.F۾y@{m(llndK+M (5)uZv,>7jyݳL |Y(+ Άݥ)<{wDN/ߏ>+^7qJ &ȨiO8A8l+oa~LRͫZRgU^s2ߢɛS@k1S]~Т_8.qM q!Jm8hJ-? !59+eTӐ+^oݐӇֲLI0A$vwD-+ {[HUZ;USq<S9qh Nj:һ2]M n,pk?Rc$Rf2 1}ޤ=bI\>K.%j!=?YV65\o}#+K0fLR\rM!I=!|}wq~P8QGP-)9&G>9z%އȊS xr챭 ? lnrY07/7B0B5/'d^d pee˖䏒 n9۪!'(8Ji"]h 9p FA%~ uMah{iM\TPCpXz|+v5Q|Nx#\)j፯I-})2}P{mV-:>6D~?\]#LيV+Yw#Wʩz4+~½I/?A@5샣C_M6G_= m+ {ƿnvuCy}7Xd#O0,`uiC@\]^2MsLXH)f7sQjDu::Dd&l\0ႃ^4i09|?9~,Ȝ@]$.j{k<)\NmPOl.QѡIV"lx|r W$+Q53g.c&!( y `kZC.}VJ7gz*&F5~[D3RX2!N\qwts "짙&8nͺ'Mݦ0wni}.DA0لh|~MHўG  $ܱd a %19sRc\ϙٓ7-H|NWY sMfO_Ҧwv(qp1\HK˽Zr8 ؅R/+\a-2%vC0Jia_}gg-U2'\"zҶ&N/A [9ܮ_pScq|}S#*ZO29Hֹ*34@pYTQє$H0Z&ڢԯTk@c~Ruώg&ndjwNC+*o߹E SPs $ZKA6Sןf2Or=n}ܫwqiޫ@ތIOZ $t6J9I^M@66 "C1ͪ[l F.H :MZJ>-~k"N8\4:_-/Z-`eer7D Sdk\ 5uOb2c_: g9:hBFWv!7yzgP ^;#;wta Tr)Ko$|w3\.<&v2~n"I6؆M]>5 +jAiGȜ5uH"D&r];{C*M]^ A!A'{]~aJ3zT H a3cPIJBa=]$9|9[h:U 86`h>ٰIeFTht `` r*Ȃ`îL4c<@Yh $=Ie?5|Ȝ]vCDaux0anqD݆ݘ&ХgOuTc>ۀ+nd BUƹ̪]KIW~tdͶ>{ .i4\ 7SWhΆ= /U(48`UTiTd3\hݩ LsQHPa3K|8*rhUW^5eJuVɐ* yJq? 8s_0P\@G50o-6}cA;0&u`}[Sm_Fd Ky\2-?Gv.ԮN%=_uP^Cm$HO,sMwC,c&:lFp4+Q{r݉L,8obDS BNHIwHHׄR@H*wa廲+&S(oL/&YXE&3E~c3u"e >>|9)fRŽ utPSFk7 d_=Z:Lwd 4i GguCPM``9?zE[M:gw,'@1 j԰}ʹJڔ Okf"бV@p"b۫3 v͢|n1XZ{c#_`A3=I5$/V3AMqN rw]FSp3A{`S:CrrO!fzGt~fԧmAģN<>'" n֙,%iꂧ"FQIy0=ȔQA)4 Nm"J;+qr\6m~iZ*!4HY(! q6{MD6|І V>M)5H9L9gs`o0b d~M(]sNWDY8žC~B'$2f{؂v&#]7}0}jN`p?2I'\G-n5 (I4Z&Aܾtiuܞ$;Cr@}ae¬?ܨ# ’)sa%RWǕv2ͷ$9϶ MHT %n[zƻ]呷Övˍ ֭<hhA͗bį]b?.z6ѹiWKw\ 8 >,.OomVE¹Gnaﱮ04lJ=I bMkw22׍ب@YF_~򩉯zp_̤\;,nRmQˁM"f2Okrf(Qj+i ]1+6$!BY橣 ΂~O)8 F`YQ]lMդ&Ih{e0T[nse6G)|eS*<(d1%2I`DG4M %p&Ë9AR"ƫVkV5RdOD8O$'7?賐 U%5C7K\a/*DS$Yր|4|͓iNDhc"0`][.}2 دjV\ :2<+ύrb} q|[lϫ'f0 ,5Ci M k[SyqCq~TWIjXOR }&Yxh:r"UG H=ql ͭ2wTFy0`%LtS89 =c,9;BL pמ(]Ϡ^ a4T;53u<7@JMwٚAT}I01Q~LMj#oSRɌڋmx0m7hu*(r(v0;N*(P}\ɸ>!0=QJԅ|.^5Pn k_[}aJI~qSۈ:lYu}\tBZOCa>l@eDG}E\^U7q`3q=;f…jbkɧ0k'kzF>^g[<7oz/hTe0w]y%|!vTh@d/uN6;=R8Z6:e3&$m$m]b_nT;DGs4K~M3&bk?S@=9aJ:H"Oz[$˕+%9+aVjإg i}2 2Dw(wYXN#ixڽX-zV[yosn+*v}L|Fl'GW[._Qy&]ueVoDM.NDSR> bM!]3%/XCIlzx H/՜SIUK"}J!W|0>z"?ual'ډOqf@k%QffѰPvp$u;RAY7M&IX*(%BEǜ<-ֱQ7h`j}J^T`n8h`5VwŃx~lèpsfL0K\){}V:< Cf2dׄTGhBbP,Z0;*=Z 'o4!kI0vK;+)f}MS9fǗa/G[WPjNk!B6E*.} $-$i5m_jM ._=G.P g!1s5Ҝ~#rl93`mRo: Rx<q,ѽ-m ؚ;-0?w\H{-3u\zC-JVخ?!/D&n@N`Qv{\v|W:I'#5 \ҥf$[KM F A~N ΀Wy"a}ڰf c{]ɲsE;sɩaq쁈Tb0GB|>/eLIZ3$>5Gpw*G>Vk=A%<599YRWEeƸ .Xg/ThH%R*{zv\)^~uI|yW%Щ׏({xP3fqpWe>;вG||%7:wyJƣqaw _9HEa-}"5X3Q$];eۿP.UuGr8JCI|.obGgFA#f_k ` P,a^؞dpBlƈ,*PeQcr=eYφG$|c3 SQ49;?Ν 2e D"n )(;8G[)&s?jFL"s=jo-wt;|Ķhg2[7z 3Svsܫ>#J*aƆX jǁ?FGg&*n0Ig=ob<-#<߼<jcl[us -)6ДWi3ex9_>P6ocn3DEZ@Mht>d;̖󦡆tĵ«nucNNt+~gUx*x҄d菝ʸ S;l>D>~ѿE3h[|m//oPvrC]2T-V67VnE;h{~X ҘW9|J%k50$k%nl%UBAi娔ɚ]` zkZϠ\ȿ"^Rͨ:vd18oBә#v0U@J\<D c %I}+1&uϷna#(r fH>g2u]/}0-SU//f!WAWܿFEKLdeDBJ`ԁs3Ǎ:H ;yO3x6z61r].;۽t}'T,3E^Z.ƥP?;[xcTgeʡn+9'>e VF&O*Z[N*/!B:Aw?!kJh7]hFw[uW4!I2X'JLѨEMW,+$`<"r!-hzj[BZKh{8鶜/Vkt]CKp5pFƴ2.h 5U3-2qrB^5 ^ ]^[ێEB.-؂$yNlITokBoT>X1bDHRtZ{;FctVm۳o<UW&b {7#GޝjSI>x9} A֏g&q?u[S*Lx4">Z"iu29HS8?ꁋrO6Rs(EاFVzu0Td}yu P;aM R_wE VBRwcWRS{޽5/AJ҃=1D{l%*y ZPϡ"<`c%l"icX14F|H|;n/+0߼Lehu]Ewua0 59> [f3^^ L{ƌpY` _MWv{V7Lh7du!pi9NT,uV&F|(B jnEmJCfOi 3ڄnш36U5JBḯ#G K'FrAnfso3il~/Y:TװTi$$J ބuw™FS%U8ݻ,ƑDޕ}GTC! mgóU"jIixsZ0ߑ͊`;Xcَd)E^%`6Cv\N@R7 ڝ#`5v/ωGi5\nȃif¤<_]Vg.x'kx;78AP6ɇsroW2AUbIYr:?Vp@u:ą33{HZJUzK)gbСR$ ~ǗɨUt]OB%9O\gm}_eq]KtdMhŌz,r&`fCyH$R/s`#N%uQOz;χΧT$EQ ~w?l Eg:Qv&C5Ѫ_R|WT[$>83Y΋10{PQTZ MoqHڏMa,C7Hh@}_,iNkxtڅoe;lnkoaV05\ \&#nU} R2$M=%X;'"Q/K%wAiwrڧ,rf'OrB3NC8k-1}?GJ{8P4bP*c. pҚ^ϪLmHsgƾ2gehNtd<4ɜ#eTp䨈mi=W 2^R{Wn6aJK<*!CkbU"N%_ѢoS-~k/ eX[<`Hk}* W43iW}FoD1` :o"`.,r,xs dnS8-S ͹C.* PW*1Џ{|rdbu|,_@r]~~* + FdH{6DG IlRt tpadRChadj3n)/!\CҘ{ZL/O<*{yxjۨ)%{H)|b+Fd)1pI(Rߡ_#w/< ];AVHn³-(ԅ}K4h`Ce Lm?_,Fdyza%UVj!fR͞'[˥ROOS*Lb1U*uqfSMȵNQ'x$¤]#-xQ${ #R,JæEns$: $3.b#)t'*38?' }a,V 3VQCqZE+qZ ZO">M'Q?e?D@S)F/{Rx_Ce5tHiXR ;H_VeRgi^K+L*x F{5pS'G53Zօ쾋X_LڒAU ZUlՁ^G{Tk*/Z=]-ϰ_QCN||-B&!i qR/dޛ(Yڐ1~ל8n1)WN.0:co+2hy P+7bA8& *R0NvhXsVEL + >PG{B Sۉj ls|OL`08,etv`u*ZNaHC]m?$1)q[ZTA|vFIgY@ 66ur`.ōq] ovu[x:}'&qt8aֱSo7&j~]ta2L濯L5CD](g }Yg$w F*s( nKlpl,ؼ`Ӳkjr oSCES$Fz15PV9wk0kG0v@M}~ǐUAL4ݒ >0# %͋z\+z HWU|~d!NL?C2`9Ɛ@E20[EyxP&XG:_MFVёH X'ux9u.h=>w;QZ\f;:1q2+O%_TFǷISK/'<â]UO,Ւ_oDy(s:,C"{/|zGgR?e9p(5 2MIaY6s},Iն ;BD>BZnd,e/bdNK!I8't~ƛ栏tr[U 3s7N۹[SDO&II=v+%IU;N1},נY CV3jB65F@$YI8,x 80"!22=Ex"4짟1Btآo<@vM8kJ/IĞclEi >i^#ŕm"Zsw5ULSoVq CfjfIU~~-աkU+7ԓjF{!ۼ*]%6*7wBMfnthN4|R귏 0S0T{M.m-u@{_۷_?fiu[0rH uH4hzW<߶즓ϥQ`1I0+,-ۣX ֵ'#n|wE{b:q!1ws(VlFݰK;MuCgԀW s; p ED2% 9G'*W]hW>旯<O+56 Z# 'v'S\+jZ4w5 :~,VTq>Mr7] Y){lC\IYvhJgFۛkcF4șskvv_Q'#4+.+*m&_w@$ +gBhӪ2\-d7k^Q%P_^Rh ï0$ o>F|dCc=AπQzo@I$VMQuŃzѧ})"Ծd KGQDޯ$JWl$PފmS/w[4 v#"T_xA 2bHR HhN=ۘZl4Q 詹 [<2xUװ)[]H]{8Tf~0"ⶖMzM9bb9g8eBXiAg; E[UG7Ɠ)=.P>JCvIg|čAWPTӣ.ؗ5$bȍ\a8Mƒ:%GlT;VՇ :47>6:xwO}C>w ݃綒QF=tc1+),f,Ȧ3򁍔WΆ'D2صg%noN3:&Cy)vl"f<a ƃuy_ Ԯ.3h;Org@ {®Y+C;)K ^.I/H[8݀S]噊a5sdJbG3_jB 9XT 3E3:,WXe(pås/}Oxanp՗͗Ea9c8w2v 3%U8Bn|&0!-Ӽɏ UXmWQ'59J]GAx!\|. Ho]j2"K(M jp8L{ZWt5I,yC(9t ZA /\S"mGZKCaGik{4q[p6^ai;ov nQq 0NCG1lCd^Z-b-p(([boinSZ}uީMI{ M!KLVY ^&?EA438@wӒ#EkXF Y?B-;8C'x X3 G_=Gq(w{:ڻhkb &Y*.^p*caL7ʨ}v0[tDHO)gºLYlCE|O &Evd DkvΉyu6{JOyBbl tߞ|qbIw62:e%eahyZ Q/L/KMgBRzkHu#09}g#Է,绚\S$]_ BL߮PB֮l+6UPԚǔ:cO`p%Y,8A58ON>I0 Ę] 7f՟,}H+.?oCm*6.N -hZ0ZUDke$3[""Zb1M0QFKT&.,Q8T+BNZ NDv|r1G`NcUqJ$~cz;&x"/1cgXq>֒X-f%ضq-lSt啑{K4O4!X&'}iG_WP?omﻜ%Xb1n][Q5z? Kx3tQۄw6pygQoST^QA إTqAJϘi_65rS~n|׍]"_O[$е+wT+~&l4S42ϯCBj~ilHg?c{o>n_E0SLFff:Ј`:pq3SP3ߑp&i 4b:ǑӃJp %[-1lODQu:ex tXd%و8H8Oc Lx(pF2oy ,X+-\m" PZn)N-zuEaP9F6Ƶ:CEd"vJNJD2 .$f̮HJE`w nJ}9H)ʌvHV5gKW ]72ysA g"ZZ m顡 9|LI!P5P@"dZm5c"ܻ9Q@—u z:`Z;(2d˗%ĈX"r5"? ˵rę!sMHi`@}z,yz)JA޿%D]56PZ!K~]誉F⹝a2ZM5G.Cd<'/wy5U2TY/kzL*: Myb;[~i}w(8ѫ+UzN{S^-v0yOTQ#**NYjr\x6V?LT aέ[^L/cŁpg!|(1/%h&q*ssaws8݅c=>-6VcKMi;h`GHPQ=Lj}uaO߮:xQ.ٮ#JqBDn6*75k~FzeԪ8NZ2Td@ W05紤{f쀠?\un}~c!% d4kO$t3F5QeJ+rѦ$M$G2kLyys:gfrAKA;"Ss}m"^4ȥ/V6mHU'}?0~\:$ 7`;›Eul:eDY>DQCNyhIVGuq/iFVkkr;,ԏ*L#"AvIanٞhe&Oʫi27ׯiQ0OXYT{ޓwjZ\.5m= *KjUpX535E nL: ׏|Fe;G?.YTz*'~!E-1`=qu؇+tO-s\ibo!3Vidhe6̄@.s6䀋P{,(*{ Bg%gdpz]=g#g=x]H`t.o?)8'g 2/e[ObAr;Vʹ1"9椡T22A<Xtn H.g=P#V˄fDi2ᣖqVL!|d"ggbV 1at m!\) o ݋́;##6niG_fzq-Ȉ /_ QZ_`;9I0+IUfHCYȥ?se} &J_[X:``2wOPHhNEas 1qGϖ*u%o?nKYKas`/m[*t0Q)vGQJ̙/3 '0~&4i@sjQLwAfc}/-$)H& $V&&@A%nL2v?4j bwiF T[G= -'0Q+q)I=Jf&r#FO;Uvw!'YSG~bGǓStck Q7?&𶴓% S(*|K`:rd-*lB $wjmzY+)ˆA=p>1j#?*Ԏ "]T0 YeڭsIf"_)}h1ʋY5đg/iYy^#/ǹG*JT!Z<ξ|RIvui^FhL8KrԢ„+x&O~!݅2JyND+#r GArOn8?5D_ dI{ Dl?)?OYFB`ە pPghH7>!j# hZs?k yyvGD_SbzL]9HmYրV+-z+/qpP%Ix[/3 ๋8(fS PޠfP>)#O5C=R6l& -ų 6j WI=u\ 8 ,ArV[ zk_& ]o46b"MO&[^;b U ˜y?Dupm5]z 5 I7H0KI0vSSL2Ja/Ҳ^4#}vo.C}8" InhB'sƇR$gN9f>=)$-8û9u*"p2\:5CU0y8 x펗kw8'ckGǀd!+ 7G.VC"enىZ#F7]þh?Ⱥ?c&ZR&mhx[,0r%D;Z12&O˞WZR%0۷mGhq:&WJձz<ŏƥ^N&5Uhjd^Z\c@ 5tI)GWM1xM@M؉~ft$x`'I=CYJ' .=Nl|s1 jC+2}OYQ[rE{# #*j’FmttwKo@XP_icGtuSR)s!:Q5OZ|%ee_ά[,)p7ߑ)aV.Nspf؆Nj+affAl+ϽwR|\^Aw\"s)Ȣ Ʊhʕr?FPNQ3靇_j 8ps\uZ4, -OEEPa/ k?ȯ.4ohkSbCBK7jp*Q"o2`G)SbήMkOC٧5G s2a}o~ P-# &Q (/,O TGɒ387]\N"ո'I'\:R*2(Et%8M&['EOdIњ?AxV 94~܎Jι,O,[UuR.">q}m|Jf`W ت&#Y1l7X˝2@9&ufMr0do 5wUlu; $Qp_ p#PʻN;}VL9i@CI.!JLa-<\!{̒z6I;8-E;ߘ\=I!"  d =K,l&df )q|R-#,OowSgO8=ԁxJSxo=Ԇp E"v0` Oٲ/3V#[, #:цkmUq6J@aBL)$cݭHDq do9Y .韕9hh-I\0UAJƊ.v 3ձ#bUk}ت3GP[Olc`eC .sh)Va ʂ>[ӟuS|a<A*wm2gj5L̐t1<kgHo}Ű1?k)MMaxvN#RaH5}6En,1h@ԹV= w :63ÄgsWJ,0C߷Pre'OEIZVX7? ;s_Ž;RCM )v+oju]&?9bBzV5_;Figʹυ|GP`5,?eR;zQ:&ؽ2 ]riPr(??rVhIxgv$0C'Bh6h u`U)GcS!֫.DEKui>M/܅WF.Q;VK >ɵmÁ5wN1,A\1V-_R (=橍߫[jh#P,YŹ22zW*[w'j47e,i_F<+պyL&D/(>٩gTC*7ڼǻ2/aIblHMVMSk?<~hd{z?0Ȁ ְ|uWUoի0bKC(fg+9;5*X]nFɆSpvC*Am%Q֥"dӱ=5=%`܂J<ںz7F@5*.rnF^HVo]Q:z 4 R;n? E #Pxl?mB {۶?@QJsF zYj!\[ )W5-?mo6ݣ իL3TJw$!78k|O)S8BL(oϞҼsܴNjLqc9maZ̢O? }^iF<+V"Y =$^[-ƽ5Amś{No@G+KQi˥vSk \5{C] 48JOsݫ9!x.^1[#dzlBtƘ.MZ;4 a4, ^vPA"I]هY['Zyܔgw:a?¨!"Nrm7]HdkBzPDz}q2SQo8@&aؐS@rHdOlVo#a`3x >N\xf氝X_źҐK rB϶If n({# y$L6葙U3GXkQ #¸4ĩk۵$HSTk<|IL!k8Az"-4ӷs+z5ڐ,(jm#:䖐lgS{f0W `O QA r#TQxvi,کie˜`I5^3s w`6BIiBg.K[l5IvyyXx!8+7VJpoV>G%1V쯐x !,fUQoTz)ISNϼ꼅=/0Z Z=iyVo&驍z$p<1%$_K? 7,Op1iҖ/8!=577])Q{.g_4W%M "CݴBǥk8AEȥ=p~BDLnL#\5J J~rN'.[o;sRbЬY?Ȉ{ݢ ɏY{E}V45 VMjYx>K.}&GDi4KFtt8ʭo`qϗk=dK7 i0N,U(82=N9Irjp9v0>GsvA WҪhuS~YXJSBY;e$jns wa>njnU`'!XN.nzMRJ%8,5j'; J'h4hkNa0BdypBR1ɸݍvg(BP3ddcٌRQ3(Atz ZZE;: !k {]/#jN,Џ1o c,_%"VkiJ(,yiͪ۽= &q-Ό`Jt窲+Tje 7+[Xu{UoBˎzƓ\"U?·km-& 9H貎66?: d0 %>EvcAs9c/ȮqD OTxKr 0PkZsp9,jk$<(w/Y6-]"uv1eD4g1=Iq\ Jo9r-7*[8"J{t7bQߜB2eq<~-%ļjH<ˮ'lr"Cui9Ёfc4:dJ %}wYo<;1w3oI4u P0ک<8 C^a>1 g fܰvY0 c4nvdyK]ğjrM|͚:iQ3"{AV` AUEN?U7 4 ȍ6{ŞC}ȏa v V+˳ۿdƓ${^ ,Yt-LO.S$rÉlsc֢]MQiJJH^z5/9&; \Oʺ[vV$5f.eFVAӂoa'!@|TWaw5P[!5ۄ CkbSk# !1!qx51ǴUs1Cnd8?2 !4Hދ@bV~7 n-6ݾ]7<p!p t H2ȧ!8v %مv+;+q哈F2@TRD': N\E>&|_CK]wb"@ Qi@mh/ﳾooTzCG3>Ϥs/CB4{ 姜uI*t2|sT `Ka+y|C e 7䥛YOGqqU=۠dF=N?."KH)vvr(~I r&q[,PK`#h֑W֏ܔp^ jNQ`h[A@o}H n_]-d{(7yk X*3qf*iH1L7e24T(S s&RT]4=?ڄIEGZ 텍g,{MmnF=~OR5< _\ g튯Bڵ]#$Ǫ`\4\İmvNn"#yhkbׯqW`|*}G֩^ep7\jOR/"&|{b&upRPѣJ&ESb~&>\_6Pa {&$u}l'RrCgсB5$RT28|E4ޠVWM+1 0Qg"$RFHHdg- BUOs + <9PRd0 epj&b3q77z[:O'%!4 8ߡvw ؘp^mvHB ;MD5|ld2t\-wdgb,bkI<ז6R i|m)17=W q>mȳ\鳸2Ͼ|"282qшv=?7!dF{E K&TǪ}Y\aіkh!5-q'kULW%\>*=bTeshm' /n8;9AI|+Į}&`N } ?DSv<V(iQ_1g>#a<*'l%s'#ttFoxMr%2]~5]2>?LZ8u[b^; :55 3fnD}2P.ST5ҧ&#-KOy|yΧBɱbk/'m'8`y˼vbQU1w8HnV 3]UnX])l?a hdMZʚ軿U:. tёktr=gqjrq.H>9JoC:7gxD#2eJe4}xltxڹ9[7w˛;jۂ+LwK`']n-Ň?m8ІuxcBfq?~Bo^/Ceʳ~_f*=Y&+؉ A@O#]y<*!>^*$xaS 4% Ǹ᳇. h;KPR1-Br ? NӋ`-'hga-SΣr@ FR+{^ܰUBr5Z|g[MP` UL i߰!³/? q%gî-#0X8ghH֣sR_egG+8mп.d`E|gCI|`mL :qtu \Be}RYƃzgFN C jWVC|Dw"#z4eBiǒ+[:k?Zor 8;? x=SWKڱS( j+S],5ι{+'?yZP=n`WDS12/Uu=*X͂adVGꤨ.8ڭ#Ihw[]z!^OV oj]yk./hJc 84r)C 5rFNk8}(C q[= JU} e)䦞SP^ )D"cȈH/$^r#s QHA2MAߋTPc- q8 xƊut݃:>FSIt-}s]mA;cZinHq?'9:gh81g"81a~"ԤRվ43kX V"]d Md.\i`X!&]rٺ*B~=M !9}v)S$:|`|y@5O;/\2F YX\% w=^I 򏰤^UMN14d1C2Lq7`eH,$\[i-Q`Do3刈\#H&Tijj: xNMCV]o7+m@2$=^gS4:g MɿGp462|'nNoc8zNR/Z;FCAX]s(XL}3\5;i0|f(N6S;! ?NMU0R;3kV(g'hY{,ėwEА:d1uVfAX>[{eR_g֯C ʛJyX}YY64ޗ"Yk H^?]! MF NRt8HfxecN/8\bλ$0TP,yV~=eYo`L#|%Ρؓ˟dӔ]A$ Ccp vK^Q sE}ejCC`vŪ&+ބy #=PSr0NϦ][ j'Ǣ'Bj 2HH~~hT7@tyэAb94ȋ:?kV=ib[1 %~(y(NXD(Տw֠堼ϪVDuw7 НHQ!#Z<ƮT9e\J#Т~e>=Kӧ[/!g>(`nan1˼&rd5ђL9)ɲƾ6,cW]`&JMZ'.}u4J9f7۹|/oW_n.NbsѳK(D.9b7,)m&T z+Q[> endobj 615 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 617 0 obj << /F1 600 0 R /F2 603 0 R /F3 566 0 R /F4 571 0 R /F5 577 0 R /F6 616 0 R /F7 551 0 R /F8 611 0 R /F9 604 0 R /F10 561 0 R /F11 605 0 R /F12 585 0 R /F13 583 0 R /F14 584 0 R /F15 590 0 R /F16 556 0 R /F17 595 0 R /F18 582 0 R /F19 606 0 R /F20 576 0 R >> endobj 618 0 obj << /Im534 534 0 R /Im387 387 0 R /Im374 374 0 R /Im373 373 0 R /Im372 372 0 R /Im365 365 0 R /Im355 355 0 R /Im354 354 0 R /Im347 347 0 R /Im331 331 0 R /Im330 330 0 R /Im329 329 0 R /Im328 328 0 R /Im318 318 0 R /Im317 317 0 R /Im310 310 0 R /Im303 303 0 R /Im290 290 0 R /Im289 289 0 R /Im288 288 0 R /Im275 275 0 R /Im274 274 0 R /Im273 273 0 R /Im263 263 0 R /Im262 262 0 R /Im252 252 0 R /Im251 251 0 R /Im244 244 0 R /Im237 237 0 R /Im229 229 0 R /Im224 224 0 R /Im219 219 0 R /Im214 214 0 R /Im204 204 0 R /Im197 197 0 R /Im190 190 0 R /Im183 183 0 R /Im176 176 0 R /Im169 169 0 R /Im156 156 0 R /Im155 155 0 R /Im154 154 0 R /Im125 125 0 R /Im110 110 0 R /Tr10 10 0 R /Tr12 12 0 R /Tr14 14 0 R /Tr16 16 0 R /Tr18 18 0 R /Tr20 20 0 R /Tr25 25 0 R /Tr27 27 0 R /Tr29 29 0 R /Tr31 31 0 R /Tr33 33 0 R /Tr35 35 0 R /Tr40 40 0 R /Tr42 42 0 R /Tr44 44 0 R /Tr46 46 0 R /Tr48 48 0 R /Tr50 50 0 R /Tr55 55 0 R /Tr57 57 0 R /Tr62 62 0 R /Tr64 64 0 R /Tr66 66 0 R /Tr68 68 0 R /Tr70 70 0 R /Tr72 72 0 R /Tr74 74 0 R /Tr76 76 0 R /Tr78 78 0 R /Tr80 80 0 R /Tr82 82 0 R /Tr84 84 0 R /Tr86 86 0 R /Tr88 88 0 R /Tr90 90 0 R /Tr92 92 0 R /Tr94 94 0 R /Tr96 96 0 R /Tr117 117 0 R /Tr119 119 0 R /Tr121 121 0 R /Tr123 123 0 R /Tr132 132 0 R /Tr134 134 0 R /Tr136 136 0 R /Tr138 138 0 R /Tr140 140 0 R /Tr142 142 0 R /Tr144 144 0 R /Tr146 146 0 R /Tr397 397 0 R /Tr399 399 0 R /Tr404 404 0 R /Tr406 406 0 R /Tr408 408 0 R /Tr410 410 0 R /Tr412 412 0 R /Tr414 414 0 R /Tr416 416 0 R /Tr418 418 0 R /Tr420 420 0 R /Tr422 422 0 R /Tr424 424 0 R /Tr426 426 0 R /Tr428 428 0 R /Tr430 430 0 R /Tr432 432 0 R /Tr434 434 0 R /Tr439 439 0 R /Tr441 441 0 R /Tr443 443 0 R /Tr445 445 0 R /Tr447 447 0 R /Tr449 449 0 R /Tr451 451 0 R /Tr453 453 0 R /Tr461 461 0 R /Tr463 463 0 R /Tr465 465 0 R /Tr467 467 0 R /Tr469 469 0 R /Tr471 471 0 R /Tr473 473 0 R /Tr475 475 0 R /Tr477 477 0 R /Tr479 479 0 R /Tr481 481 0 R /Tr483 483 0 R /Tr485 485 0 R /Tr487 487 0 R /Tr489 489 0 R /Tr491 491 0 R /Tr496 496 0 R /Tr498 498 0 R /Tr500 500 0 R /Tr502 502 0 R /Tr504 504 0 R /Tr506 506 0 R /Tr508 508 0 R /Tr510 510 0 R /Tr512 512 0 R /Tr514 514 0 R /Tr516 516 0 R /Tr518 518 0 R /Tr523 523 0 R /Tr525 525 0 R /Tr527 527 0 R /Tr529 529 0 R /Tr539 539 0 R /Tr541 541 0 R >> endobj 619 0 obj << /EGS11 11 0 R /EGS13 13 0 R /EGS15 15 0 R /EGS17 17 0 R /EGS19 19 0 R /EGS21 21 0 R /EGS26 26 0 R /EGS28 28 0 R /EGS30 30 0 R /EGS32 32 0 R /EGS34 34 0 R /EGS36 36 0 R /EGS41 41 0 R /EGS43 43 0 R /EGS45 45 0 R /EGS47 47 0 R /EGS49 49 0 R /EGS51 51 0 R /EGS56 56 0 R /EGS58 58 0 R /EGS63 63 0 R /EGS65 65 0 R /EGS67 67 0 R /EGS69 69 0 R /EGS71 71 0 R /EGS73 73 0 R /EGS75 75 0 R /EGS77 77 0 R /EGS79 79 0 R /EGS81 81 0 R /EGS83 83 0 R /EGS85 85 0 R /EGS87 87 0 R /EGS89 89 0 R /EGS91 91 0 R /EGS93 93 0 R /EGS95 95 0 R /EGS97 97 0 R /EGS118 118 0 R /EGS120 120 0 R /EGS122 122 0 R /EGS124 124 0 R /EGS133 133 0 R /EGS135 135 0 R /EGS137 137 0 R /EGS139 139 0 R /EGS141 141 0 R /EGS143 143 0 R /EGS145 145 0 R /EGS147 147 0 R /EGS398 398 0 R /EGS400 400 0 R /EGS405 405 0 R /EGS407 407 0 R /EGS409 409 0 R /EGS411 411 0 R /EGS413 413 0 R /EGS415 415 0 R /EGS417 417 0 R /EGS419 419 0 R /EGS421 421 0 R /EGS423 423 0 R /EGS425 425 0 R /EGS427 427 0 R /EGS429 429 0 R /EGS431 431 0 R /EGS433 433 0 R /EGS435 435 0 R /EGS440 440 0 R /EGS442 442 0 R /EGS444 444 0 R /EGS446 446 0 R /EGS448 448 0 R /EGS450 450 0 R /EGS452 452 0 R /EGS454 454 0 R /EGS462 462 0 R /EGS464 464 0 R /EGS466 466 0 R /EGS468 468 0 R /EGS470 470 0 R /EGS472 472 0 R /EGS474 474 0 R /EGS476 476 0 R /EGS478 478 0 R /EGS480 480 0 R /EGS482 482 0 R /EGS484 484 0 R /EGS486 486 0 R /EGS488 488 0 R /EGS490 490 0 R /EGS492 492 0 R /EGS497 497 0 R /EGS499 499 0 R /EGS501 501 0 R /EGS503 503 0 R /EGS505 505 0 R /EGS507 507 0 R /EGS509 509 0 R /EGS511 511 0 R /EGS513 513 0 R /EGS515 515 0 R /EGS517 517 0 R /EGS519 519 0 R /EGS524 524 0 R /EGS526 526 0 R /EGS528 528 0 R /EGS530 530 0 R /EGS540 540 0 R /EGS542 542 0 R >> endobj 620 0 obj << /Font 617 0 R /XObject 618 0 R /ExtGState 619 0 R /ProcSet [ /PDF /Text /ImageC /ImageI /ImageB ] >> endobj 1 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 2 0 R >> endobj 4 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 5 0 R >> endobj 7 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 8 0 R >> endobj 22 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 23 0 R >> endobj 37 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 38 0 R >> endobj 52 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 53 0 R >> endobj 59 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 60 0 R >> endobj 98 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 99 0 R >> endobj 101 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 102 0 R >> endobj 104 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 105 0 R >> endobj 107 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 108 0 R >> endobj 114 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 115 0 R >> endobj 129 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 130 0 R >> endobj 148 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 149 0 R >> endobj 151 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 152 0 R >> endobj 166 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 167 0 R >> endobj 173 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 174 0 R >> endobj 180 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 181 0 R >> endobj 187 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 188 0 R >> endobj 194 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 195 0 R >> endobj 201 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 202 0 R >> endobj 208 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 209 0 R >> endobj 211 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 212 0 R >> endobj 216 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 217 0 R >> endobj 221 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 222 0 R >> endobj 226 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 227 0 R >> endobj 231 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 232 0 R >> endobj 234 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 235 0 R >> endobj 241 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 242 0 R >> endobj 248 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 249 0 R >> endobj 259 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 260 0 R >> endobj 270 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 271 0 R >> endobj 285 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 286 0 R >> endobj 300 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 301 0 R >> endobj 307 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 308 0 R >> endobj 314 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 315 0 R >> endobj 325 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 326 0 R >> endobj 344 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 345 0 R >> endobj 351 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 352 0 R >> endobj 362 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 363 0 R >> endobj 369 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 370 0 R >> endobj 384 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 385 0 R >> endobj 391 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 392 0 R >> endobj 394 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 395 0 R >> endobj 401 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 402 0 R >> endobj 436 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 437 0 R >> endobj 455 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 456 0 R >> endobj 458 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 459 0 R >> endobj 493 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 494 0 R >> endobj 520 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 521 0 R >> endobj 531 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 532 0 R >> endobj 536 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 537 0 R >> endobj 543 0 obj << /Type /Page /Parent 546 0 R /Resources 620 0 R /MediaBox [ 0 0 842 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 544 0 R >> endobj 546 0 obj << /Type /Pages /Resources 620 0 R /MediaBox [ 0 0 595 842 ] /Kids [ 1 0 R 4 0 R 7 0 R 22 0 R 37 0 R 52 0 R 59 0 R 98 0 R 101 0 R 104 0 R 107 0 R 114 0 R 129 0 R 148 0 R 151 0 R 166 0 R 173 0 R 180 0 R 187 0 R 194 0 R 201 0 R 208 0 R 211 0 R 216 0 R 221 0 R 226 0 R 231 0 R 234 0 R 241 0 R 248 0 R 259 0 R 270 0 R 285 0 R 300 0 R 307 0 R 314 0 R 325 0 R 344 0 R 351 0 R 362 0 R 369 0 R 384 0 R 391 0 R 394 0 R 401 0 R 436 0 R 455 0 R 458 0 R 493 0 R 520 0 R 531 0 R 536 0 R 543 0 R ] /Count 53 >> endobj 621 0 obj << /Type /Catalog /Pages 546 0 R >> endobj 622 0 obj << /Creator /Producer /CreationDate (D:20060412094306+02'00') >> endobj xref 0 623 0000000000 65535 f 0001358424 00000 n 0000000021 00000 n 0000001221 00000 n 0001358613 00000 n 0000001248 00000 n 0000002032 00000 n 0001358802 00000 n 0000002058 00000 n 0000005466 00000 n 0000005493 00000 n 0000005709 00000 n 0000005765 00000 n 0000006000 00000 n 0000006056 00000 n 0000006269 00000 n 0000006325 00000 n 0000006559 00000 n 0000006615 00000 n 0000006830 00000 n 0000006886 00000 n 0000007121 00000 n 0001358991 00000 n 0000007177 00000 n 0000010560 00000 n 0000010588 00000 n 0000010806 00000 n 0000010862 00000 n 0000011099 00000 n 0000011155 00000 n 0000011371 00000 n 0000011427 00000 n 0000011663 00000 n 0000011719 00000 n 0000011936 00000 n 0000011992 00000 n 0000012228 00000 n 0001359182 00000 n 0000012284 00000 n 0000015534 00000 n 0000015562 00000 n 0000015780 00000 n 0000015836 00000 n 0000016072 00000 n 0000016128 00000 n 0000016344 00000 n 0000016400 00000 n 0000016636 00000 n 0000016692 00000 n 0000016909 00000 n 0000016965 00000 n 0000017201 00000 n 0001359373 00000 n 0000017257 00000 n 0000021727 00000 n 0000021755 00000 n 0000021970 00000 n 0000022026 00000 n 0000022260 00000 n 0001359564 00000 n 0000022316 00000 n 0000026109 00000 n 0000026137 00000 n 0000026353 00000 n 0000026409 00000 n 0000026643 00000 n 0000026699 00000 n 0000026912 00000 n 0000026968 00000 n 0000027198 00000 n 0000027254 00000 n 0000027471 00000 n 0000027527 00000 n 0000027762 00000 n 0000027818 00000 n 0000028027 00000 n 0000028083 00000 n 0000028313 00000 n 0000028369 00000 n 0000028579 00000 n 0000028635 00000 n 0000028860 00000 n 0000028916 00000 n 0000029133 00000 n 0000029189 00000 n 0000029423 00000 n 0000029479 00000 n 0000029689 00000 n 0000029745 00000 n 0000029970 00000 n 0000030026 00000 n 0000030240 00000 n 0000030296 00000 n 0000030527 00000 n 0000030583 00000 n 0000030797 00000 n 0000030853 00000 n 0000031082 00000 n 0001359755 00000 n 0000031138 00000 n 0000032900 00000 n 0001359946 00000 n 0000032929 00000 n 0000034396 00000 n 0001360139 00000 n 0000034425 00000 n 0000035196 00000 n 0001360332 00000 n 0000035224 00000 n 0000035967 00000 n 0000035995 00000 n 0000073383 00000 n 0000073411 00000 n 0000074668 00000 n 0001360525 00000 n 0000074695 00000 n 0000075793 00000 n 0000082220 00000 n 0000082438 00000 n 0000082495 00000 n 0000082732 00000 n 0000082789 00000 n 0000083004 00000 n 0000083061 00000 n 0000083295 00000 n 0000075822 00000 n 0000081807 00000 n 0000081834 00000 n 0000082194 00000 n 0001360718 00000 n 0000083352 00000 n 0000087394 00000 n 0000087423 00000 n 0000087642 00000 n 0000087699 00000 n 0000087935 00000 n 0000087992 00000 n 0000088209 00000 n 0000088266 00000 n 0000088501 00000 n 0000088558 00000 n 0000088777 00000 n 0000088834 00000 n 0000089072 00000 n 0000089129 00000 n 0000089348 00000 n 0000089405 00000 n 0000089643 00000 n 0001360911 00000 n 0000089700 00000 n 0000108457 00000 n 0001361104 00000 n 0000108487 00000 n 0000110535 00000 n 0000116960 00000 n 0000113891 00000 n 0000110564 00000 n 0000113531 00000 n 0000113558 00000 n 0000113866 00000 n 0000116601 00000 n 0000116628 00000 n 0000116935 00000 n 0000119925 00000 n 0000119952 00000 n 0000120260 00000 n 0001361297 00000 n 0000120285 00000 n 0000121971 00000 n 0000122000 00000 n 0000124897 00000 n 0000124924 00000 n 0000125226 00000 n 0001361490 00000 n 0000125251 00000 n 0000127011 00000 n 0000127040 00000 n 0000131345 00000 n 0000131372 00000 n 0000131691 00000 n 0001361683 00000 n 0000131716 00000 n 0000133462 00000 n 0000133491 00000 n 0000137624 00000 n 0000137651 00000 n 0000137970 00000 n 0001361876 00000 n 0000137995 00000 n 0000139748 00000 n 0000139777 00000 n 0000143178 00000 n 0000143205 00000 n 0000143520 00000 n 0001362069 00000 n 0000143545 00000 n 0000145090 00000 n 0000145119 00000 n 0000145721 00000 n 0000145747 00000 n 0000146029 00000 n 0001362262 00000 n 0000146054 00000 n 0000147595 00000 n 0000147624 00000 n 0000148185 00000 n 0000148211 00000 n 0000148493 00000 n 0001362455 00000 n 0000148518 00000 n 0000149274 00000 n 0001362648 00000 n 0000149302 00000 n 0000150039 00000 n 0000150067 00000 n 0000214411 00000 n 0001362841 00000 n 0000214439 00000 n 0000215196 00000 n 0000215224 00000 n 0000284144 00000 n 0001363034 00000 n 0000284172 00000 n 0000284903 00000 n 0000284931 00000 n 0000315932 00000 n 0001363227 00000 n 0000315960 00000 n 0000316706 00000 n 0000316734 00000 n 0000349782 00000 n 0001363420 00000 n 0000349810 00000 n 0000350542 00000 n 0001363613 00000 n 0000350570 00000 n 0000351697 00000 n 0000351726 00000 n 0000353801 00000 n 0000353828 00000 n 0000354124 00000 n 0001363806 00000 n 0000354149 00000 n 0000355288 00000 n 0000355317 00000 n 0000364091 00000 n 0000364118 00000 n 0000364517 00000 n 0001363999 00000 n 0000364543 00000 n 0000365870 00000 n 0000371977 00000 n 0000365899 00000 n 0000371612 00000 n 0000371639 00000 n 0000371952 00000 n 0000391050 00000 n 0000391078 00000 n 0000391647 00000 n 0001364192 00000 n 0000391673 00000 n 0000392844 00000 n 0000397422 00000 n 0000392873 00000 n 0000397060 00000 n 0000397087 00000 n 0000397397 00000 n 0000408820 00000 n 0000408848 00000 n 0000409334 00000 n 0001364385 00000 n 0000409360 00000 n 0000410569 00000 n 0000428339 00000 n 0000417829 00000 n 0000410598 00000 n 0000417419 00000 n 0000417446 00000 n 0000417803 00000 n 0000427826 00000 n 0000427853 00000 n 0000428313 00000 n 0000432798 00000 n 0000432825 00000 n 0000433151 00000 n 0001364578 00000 n 0000433176 00000 n 0000434350 00000 n 0000444449 00000 n 0000437510 00000 n 0000434379 00000 n 0000437163 00000 n 0000437190 00000 n 0000437485 00000 n 0000444002 00000 n 0000444029 00000 n 0000444423 00000 n 0000450941 00000 n 0000450968 00000 n 0000451340 00000 n 0001364771 00000 n 0000451366 00000 n 0000452587 00000 n 0000452616 00000 n 0000480346 00000 n 0000480374 00000 n 0000481085 00000 n 0001364964 00000 n 0000481111 00000 n 0000482875 00000 n 0000482904 00000 n 0000490686 00000 n 0000490713 00000 n 0000491032 00000 n 0001365157 00000 n 0000491057 00000 n 0000491805 00000 n 0000504558 00000 n 0000491833 00000 n 0000504071 00000 n 0000504099 00000 n 0000504532 00000 n 0000515485 00000 n 0000515513 00000 n 0000515940 00000 n 0001365350 00000 n 0000515966 00000 n 0000516747 00000 n 0000544749 00000 n 0000525785 00000 n 0000521573 00000 n 0000516775 00000 n 0000521178 00000 n 0000521205 00000 n 0000521547 00000 n 0000525389 00000 n 0000525416 00000 n 0000525759 00000 n 0000544158 00000 n 0000544186 00000 n 0000544723 00000 n 0000557219 00000 n 0000557247 00000 n 0000557689 00000 n 0001365543 00000 n 0000557715 00000 n 0000558976 00000 n 0000559005 00000 n 0000565500 00000 n 0000565527 00000 n 0000565835 00000 n 0001365736 00000 n 0000565860 00000 n 0000566616 00000 n 0000574118 00000 n 0000566644 00000 n 0000573678 00000 n 0000573705 00000 n 0000574092 00000 n 0000596236 00000 n 0000596264 00000 n 0000597132 00000 n 0001365929 00000 n 0000597158 00000 n 0000599047 00000 n 0000599076 00000 n 0000613860 00000 n 0000613888 00000 n 0000614259 00000 n 0001366122 00000 n 0000614285 00000 n 0000615083 00000 n 0000638224 00000 n 0000624593 00000 n 0000615111 00000 n 0000624156 00000 n 0000624183 00000 n 0000624567 00000 n 0000637678 00000 n 0000637706 00000 n 0000638198 00000 n 0000643832 00000 n 0000643859 00000 n 0000644202 00000 n 0001366315 00000 n 0000644228 00000 n 0000644988 00000 n 0000645016 00000 n 0000657471 00000 n 0000657499 00000 n 0000657931 00000 n 0001366508 00000 n 0000657957 00000 n 0000658715 00000 n 0001366701 00000 n 0000658743 00000 n 0000663066 00000 n 0000663095 00000 n 0000663309 00000 n 0000663366 00000 n 0000663599 00000 n 0001366894 00000 n 0000663656 00000 n 0000670200 00000 n 0000670229 00000 n 0000670447 00000 n 0000670504 00000 n 0000670738 00000 n 0000670795 00000 n 0000671009 00000 n 0000671066 00000 n 0000671297 00000 n 0000671354 00000 n 0000671573 00000 n 0000671630 00000 n 0000671868 00000 n 0000671925 00000 n 0000672140 00000 n 0000672197 00000 n 0000672432 00000 n 0000672489 00000 n 0000672707 00000 n 0000672764 00000 n 0000673000 00000 n 0000673057 00000 n 0000673271 00000 n 0000673328 00000 n 0000673561 00000 n 0000673618 00000 n 0000673837 00000 n 0000673894 00000 n 0000674130 00000 n 0000674187 00000 n 0000674399 00000 n 0000674456 00000 n 0000674687 00000 n 0001367087 00000 n 0000674744 00000 n 0000678663 00000 n 0000678692 00000 n 0000678906 00000 n 0000678963 00000 n 0000679196 00000 n 0000679253 00000 n 0000679461 00000 n 0000679518 00000 n 0000679747 00000 n 0000679804 00000 n 0000680021 00000 n 0000680078 00000 n 0000680313 00000 n 0000680370 00000 n 0000680586 00000 n 0000680643 00000 n 0000680878 00000 n 0001367280 00000 n 0000680935 00000 n 0000681669 00000 n 0001367473 00000 n 0000681697 00000 n 0000688273 00000 n 0000688302 00000 n 0000688520 00000 n 0000688577 00000 n 0000688811 00000 n 0000688868 00000 n 0000689082 00000 n 0000689139 00000 n 0000689370 00000 n 0000689427 00000 n 0000689646 00000 n 0000689703 00000 n 0000689941 00000 n 0000689998 00000 n 0000690213 00000 n 0000690270 00000 n 0000690505 00000 n 0000690562 00000 n 0000690780 00000 n 0000690837 00000 n 0000691073 00000 n 0000691130 00000 n 0000691344 00000 n 0000691401 00000 n 0000691634 00000 n 0000691691 00000 n 0000691910 00000 n 0000691967 00000 n 0000692203 00000 n 0000692260 00000 n 0000692472 00000 n 0000692529 00000 n 0000692760 00000 n 0001367666 00000 n 0000692817 00000 n 0000698036 00000 n 0000698065 00000 n 0000698283 00000 n 0000698340 00000 n 0000698574 00000 n 0000698631 00000 n 0000698845 00000 n 0000698902 00000 n 0000699133 00000 n 0000699190 00000 n 0000699409 00000 n 0000699466 00000 n 0000699704 00000 n 0000699761 00000 n 0000699980 00000 n 0000700037 00000 n 0000700274 00000 n 0000700331 00000 n 0000700549 00000 n 0000700606 00000 n 0000700842 00000 n 0000700899 00000 n 0000701116 00000 n 0000701173 00000 n 0000701408 00000 n 0001367859 00000 n 0000701465 00000 n 0000703769 00000 n 0000703798 00000 n 0000704016 00000 n 0000704073 00000 n 0000704310 00000 n 0000704367 00000 n 0000704581 00000 n 0000704638 00000 n 0000704871 00000 n 0001368052 00000 n 0000704928 00000 n 0000705737 00000 n 0000705765 00000 n 0000748210 00000 n 0001368245 00000 n 0000748238 00000 n 0000749334 00000 n 0000749363 00000 n 0000749582 00000 n 0000749639 00000 n 0000749877 00000 n 0001368438 00000 n 0000749934 00000 n 0000750660 00000 n 0001368631 00000 n 0000750688 00000 n 0000756869 00000 n 0000756896 00000 n 0000757153 00000 n 0000757509 00000 n 0000757766 00000 n 0000765595 00000 n 0000765622 00000 n 0000765869 00000 n 0000766218 00000 n 0000766457 00000 n 0000769958 00000 n 0000769985 00000 n 0000770228 00000 n 0000770544 00000 n 0000770750 00000 n 0000803279 00000 n 0000803307 00000 n 0000803559 00000 n 0000804194 00000 n 0000804753 00000 n 0000823942 00000 n 0000823970 00000 n 0000824232 00000 n 0000824704 00000 n 0000825084 00000 n 0000920455 00000 n 0000920483 00000 n 0000920733 00000 n 0000921700 00000 n 0000922907 00000 n 0000922996 00000 n 0000961629 00000 n 0000961657 00000 n 0000961906 00000 n 0000962873 00000 n 0000964078 00000 n 0000964193 00000 n 0000964316 00000 n 0000964436 00000 n 0001004326 00000 n 0001004354 00000 n 0001004599 00000 n 0001005566 00000 n 0001006770 00000 n 0001045897 00000 n 0001045925 00000 n 0001046169 00000 n 0001047136 00000 n 0001048339 00000 n 0001125223 00000 n 0001125251 00000 n 0001125502 00000 n 0001126469 00000 n 0001127674 00000 n 0001127752 00000 n 0001128067 00000 n 0001128294 00000 n 0001128413 00000 n 0001128496 00000 n 0001128614 00000 n 0001235979 00000 n 0001236008 00000 n 0001236258 00000 n 0001237225 00000 n 0001238430 00000 n 0001350799 00000 n 0001350828 00000 n 0001351071 00000 n 0001352038 00000 n 0001353241 00000 n 0001353601 00000 n 0001356479 00000 n 0001358281 00000 n 0001369803 00000 n 0001369866 00000 n trailer << /Size 623 /Root 621 0 R /Info 622 0 R /ID [ ] >> startxref 1370070 %%EOF faust-0.9.46/documentation/faust_tutorial.pdf0000644000175000017500000313677311702130733021302 0ustar orlareyorlarey%PDF-1.2 %쏢 6 0 obj <> stream xmRMo0 YB>.kذ/En )jwq(EZrHEȣTRUΧAQb~ 7-? Q?JD!Hc _ς4)݋! [愚(́" -k5Q&KB{@Qc$o"Dymvb,i^XL>v7N^ё3)"P4Y }_YV)bt@1AG*sɩsv _2f@ vM*>)c.gLON9W}~ !ܠ٠`)>".#-"hl,{"XUCX}H(1yQ_v mX|#bˏ^m*S;s2.'TwFJӗ_7endstream endobj 7 0 obj 438 endobj 29 0 obj <> stream x}MN0 F9EĘ8َ`r0L4! ya}3QHYڛLdXޚ^> stream xYKܸ|ͽs)z0dMĘ:M[Y=zx<"tc%J_v"wÿݗ]lCOIE N'vQZۻ݇4 #ǻЛ$S0ս}')H m7߫4*w<i; D؛a_dtD50F: G<$Xʶra5ԑ$b\:~'I^;ڠ$*.]e0(znn1w6fk7e[ہ?yX*")µQqϘ[Edΰ!!CwANHl;U4b"2-BMg %}<{uK 09!FDIE kԣ=,TLQAcQEz~bv.G*;lX_U9.)UeIVX~yζǤS ;-QxGo<dBxp_D:`RUצfJ֋OZٹO$^/. 3_rA`@@@kc/j^Iؖ f1ZZ(" ķoTyOy8oIF p|jo)0IWVj V >YqCӷ=aȐ9H]{]Sy?]%HDSCbHeQ| EϜC}K"nm@3"RNE倐W_ҵܟ mFbkpbJ17 1"D[Ms>$ MM@A>-2(r@߭v؇ߣTYcnҍ̃WČqe U,da(f"^l٬]hZq1BEb>PlO%)*X[PiNZCU\{˦yEI>> stream xVnF͙Gsc2\`txPԈYdOnʦ$ b-ޫ#c !{sl|o^ #zHN8Ai~.VFZ mok$ aIL0n罼! #(uyҘi{Asl*[~v/9ɖOwX_X)!(b\ҹ61C̵y+жfc1US܈@5mws}/@R IsX$!7Tcy ]wRhk5{_)UXu$PyG 5тU[gXPPd& L|Gǵ5c>`4luy@:y},P3aȑ6eչVcw.AJݡV͇zc\~j'<)a:W`QmW=ͬHP[Nr)\rQHN27w>eqc" 9Ao v- ӌĘ8ǫ&-]qO*눁(TgY4_flMfH8~_Ջ,MX0nd߽d"aJ#7W#9BxZb.O2M,֛ ?g#w&4"AX||Vqp]t{x&"WWKUm&~0NB r+Em"mC쇶ZX|tT#rendstream endobj 53 0 obj 1068 endobj 71 0 obj <> stream x[rF͙_ܜ[/Y*N96rEHBL2Z{ XdӢKU"k0KMN?/ɧɧqQ$;@*E"̊ɳ@!&L|\#U@qmN1hݼS%1 yFc T*F+(@0盋*P#+~R'f9qKQN+_Mr뱿˫Mz'Y.[_MXH X!uc&SAEϠ>٭&gH?5͜sլr^x-JPUL(F.We_sd0 4-(L2Oʴp]լp6)HNݚ^96 -F/zZDE֚];}etYzirgl rY6 vQiB"Z@})sNӀ ң˄.#`#LyWg/":bp2Dk2.6Wu+"Fae34bZ(n1QxBtYEۈ =%neWnj = n{n^͒? 5$yOcTH瓓7IUn_ f=3/&g2otC@]l8 !wC?|=PLd6vֈPL1{(uh8 u(RY[D eLoڵH0nj߼feZJFRa=mx Ee^]Yms6)Է`&#s-tClUܤeU@]-̐whrBtIx`js0RrI56_nukt?"l7X_gX?XDȵw @MZLUtU2fk]#~ B{dƟe $[s,N,d8ʓ%[AQclO*hz2pÉ(T$ =B=r(7 PnUͳxI r+Y;&0P&\b5 e|Z.cND#G!ăb-Yss2QC= !g>1y-xS{}Wl J"L@{(5fx8+#WLoǨMYge .K/UV^0YÓ(@E5G m=TU}Yi G!ĝ@Ѓ]Y]$|tw70w70->BY"gٙ}>AH]` ?6EV܈nobKA.-' ⛠1\mnA J=t8ؿA%79)e$w_}jR`endstream endobj 72 0 obj 1511 endobj 78 0 obj <> stream x\[o6ݳ)>Yk gV]mHv",'k"ȣr>:(&61_E{# $ǜF&! ~5yyUk`0~1yMm#5V=j* Dz`1}r}`syP=0VsS?]-wC&o%ir}cD H y(UVBxmfCA$pwa㖃ĸnKd[fM0UGi}u,E(aITq2KrN*bKO6XB~ Qb89y릤L<%ߧ]Ye_ E}U-b?iߨ@ }-yHs8\Q&&SB H S\n[]i8 ًO\>1M*~_ KALv =ES?ؔŲLV G \4_' \۔iU@v>aX{)CgFJpDX'*V++Q T9#:! h`iZQ&e`^ 9ؓd_~e2wD>иGm דcX4]7{nO\(#AQU Hcӑ剳e:bpFlJN׺"ha BuUC&S`:VJ).s;UZ8/f=jaw]dF` @6ĬiC١(Q%<[Po )TV[y0<x|)mӠ'PP[ޗԭ18$*{`"v=_-dc[Q%:Xc}땔}5Mܸf[(:5q[A"!NyPs*r/@=+ φ3bIHQE2N9%*V _75= nojS[4 >#tDiG>Qͳ<~8nXѦWeu}G!&>Y@BQ/#:!l.2R)K2xbR/mCO *~ Lw 'ԓGYIU843YoPt,=EVmꌷv^v+A:zpSWľ-)7mbn]*Oc&Ց^seZ:J> R:IA0k Co%k3dzeԘW *qAd+! %OG@ srƍٌqϳpv56kZڿ,qgpn<&x`W'e\g */2z2kye1[[Ğ_۴X[G!@{_(8>؎@v >yJLoJmd'ͳYm?vvOJyuE6#k/'ldk1zp+ce=uR+*b]CO7貙fEêxA }}oȇ\6GǷm4xCԴ߳}}]Vb$TpfvVUt΂@N.`+5=듌u(ϓ<:f(QWG 0w8Ida=Qyl=IV`D3s &2|C ^Vendstream endobj 79 0 obj 1794 endobj 85 0 obj <> stream x50 y:kWJmTsm5:MlAt:z:C Tj9ƣ%hs661מ2"!Qץvh_ 55%p۩{st((Fb8֖.Ie}8endstream endobj 86 0 obj 180 endobj 90 0 obj <> stream xZnͳ1yh `'{N"mjD0 $G~a@m:uϫUa~ߛ+j6ջ۫W7_H}@W-WnW/S3ϕ6 _ѫ.VLU)jvY5*c|q3.]N% J"]`ъp^1Pm6/xEdť["CA*n#A?oP͛!ipSmF BYW EJ*I8G1”i?6 e~)ME$Z"y?}9yv),:(v>}"ow 8?>T<%hZYJR^|Y}?v;oDI$;L "T1|~Jwv9X}͑@56x(#lݑk *MF qLShT)}{Z,zQ݌ji DH7>RD@Bۃ+i!PFE\ fc:9vp4E>{|µo֒&bY\(꾸L9[MϬG*rI!pUB׶}cGcv5tښ ΦD"! ƨŴ>TeJ}>+EtSЙX2qPx#AUݗ,5GĚ2F-$2YD0 KEgU*Ü8p4iej JFnaЌy)7|s,"YP\}9TzU)Q_@/ +v>㾊Z(p] ^DjO:RGg.-n5-YʸA 4T'e Le&) XӬ 'z) s2V2"m=S)I!c\N0T BFj!%=k)/*D"wC<NJNi$vaKp[]@?|tOF(1G^ Zc)s59Y-4MT%fZ .2] O{piI>N3ɘZe !X))QO{|tGo -ʺN<(bF0gd,&Zbo2|pܵ]?]83=)>v/PyoUeg>SWQGTɅ*Ʌ]݅Kߌp \s3pj>\خS",Pqf㦱۱~A*,@o ӂsveޕl6{m*#<2ygLbf3S]$o7z׹xTZI威@G!z>%e-xpK4SJvrf-nɟr@Vђ.@&E:h7D4? ~UP $0I6}53ہt3œУCE D!$=bjeY 5Q $E,zmf$:ªzʗ}MS9k oY>PG>m#uSFYLJ c6ȳT޹I6tg3Pe6KpB\f#kI,SQ_n58RgϢfҘ1\ѯ=%f*ϳ5'35ڨ믙 1&RZۅ %^Nװ( 31r*vfLlw 5|HK (OO]yߖ ΅ҿO*@hVT|3Y#ןԱN'MZ6?/ 2/]0endstream endobj 91 0 obj 2431 endobj 109 0 obj <> stream x\KoeqΚ$ oUlDF ZP<xh\rFC>}.%9lI @ۏzuUufgvg_{ys7;Kf˳ͮkr)^>vgg˾/o~7 .TWg?@YOچ≯Zg-h˗|,i_8P ,/>W>Ξ}_\|_K5%}eJ-, ņ޿e㴷I˫(7k[@ս5Քz-~ N}ɯh(|j?xw"޻D+~jdνK\ğI*;I_]^]U8i}TR2kUV1;nt t]Fqv_]8^2&_}}!tU1>_\5[T PM> K:;-mT,׭d,Ð3R:MԽZ!|s)j>ljT&22ҁ۷WT1bhoUF;qчݵ.If%<{|$Њ}ƶYENX63J;\]4!.aY3wV{va/`/QN-Ȯ.϶UX^ݼgS/IQ ݏ1}ӞRІ*v&'E92rerGKe7uuNaq=۞C~ONӁQV^,~d$[k7m,ʞ%$(OeZ;^& @K,vib2Q`K\i&eHv}Wi.Jc' 'Zgo"||a@לA^fj5TLw-uG{7nr5:Y6K^$+ ;i)[:%=fGu2Th4ċRg&̴QxAbe.JsѿXvC?oքpl;̡?ϚBхO8VuOs onkAk-kv\ fnOh[S sD|rNa_͹)s'F'n?bDqD9,4IbK dH\HTEvYp? y퇃q0h>+%P3k6<yaͶ9Ft}f@<6OQBŕ{c=#ن-bpyݫ&ߞύFOI4Ÿ]ae{IGnz151H-rNADA}Mf.upVě(oK ۙ[*H5˓,3Miy1ϰq]nMRF~:[g-=d5#yw~MPs {w b ֥%[H%2^q_B_-3sdqT cw>Zb|'lWIDNt~粫 ؝ Y}B7ՓNJ|l?<"D 5^YMSa?Ab9,=ͧS{Z)\N4tm]H} gvw-^ƽ(&w"VȌ脲k ny49wBdEa-^cKBft806qg/3z[P_c8"Y wVE&.ŷ[ݥt #[سedds !1C$,{H+;`2Z=Zk@I"rf!`dUDV;xh`-$NJ,[H,IH."qruh![o1ց|D\$!:`a_/UXN pQz du+JP( ԐL|\1f *l2:JCXÀ?* {큜lQ!T)l(J-h:TRj!20>*(LN0o[0 UNֵp)L!).bJTFBX:egj ڎB7qª#! QHom*˥F$a` ,K]ZUCb+ո^ ^ì^J8~7Bׇ.C7jh 2to2ދTN5]Lxo3G{Ao5g {ol}Ζjbu,VKIU.N} Uf!MYa1 ޺8n;8ݼA/Ftn,7hW04Nb6٤%B^aԯJLLG_WZ[ruTI1$;]MX"FSaBULuY] !tY8YM"DߘX'Lq P S 3UfoTI@CeI :'Mt`e8CWJAW;,P9MTӒlQ1-g]M̑Q)hjT*E-M⯱1,0%h)PCtEɕyPw\O m6UA?jŌ E&CHDI 1Ji4s}3 nf骄yR81 6 [@ iW|:G^L&Gz> K> K\uq0+4u$qAӁ*ܒ=?cxWUxx#yeY{,YF(\gm# H.;C8BDZ+xhG`T(P[u31EIVbshp΋G iue1"2"Ϻt\U+Le֍=Jm(h'֬ ﻥ;{5QAFhṶR,itLqxL sOu K KH7\YY]vkĤBo[Z|A[J}@'f\4i6YcJKlKoA"i}ži <xzn.d.J{1 % cc̅{x悽\7tyN 8`ӰpsAd.K\Rbj1ݱddOa:2@Q]0BXlV5dF^wOZpI`ʢIͅy\V{ȎQjhQ9YΤ01TVբxlbbb(Yg(E&4"aHL/GQ?| 7fZPt ¨[/ \Kd- `EgH6 ֫"W K"f5CL}D2˜uG1P0EkYUYm N ,-/.Vu?D=SX2Z뢑1Ͱi;sZO"#GMP8fG%8h47nnWi-76ڜ_)Tɵ@ˎ[q@ j1}8BV& ɇo{YlÇ#zt GxI\8Bs:/ۄZĂP}qZ8.|4S˛Q[ÅȫpM..| yuH5]8y GޱD1|8as>-ԇiw,ir)8^pmDa-֦&FN {g1ewd9@ˠ|UZ?M^ϲHSRKHSf&k`zWr;zF"@BЄc@Q:C?x.k[N\&QI.+84Oo!`njhD*H2xLfQF.?`Qq&Ln'_u \H UgѩtRV.--P@ߦlQ4-tj;V}pZ2y`xԅ1.>yJ,2aQzo0=Ecn{H1Cf$-e[Rg%!{bb'q+7|KJE=w!lQ-KAw:N-Ub0kko;=Eoͯi/n-?~+t?χ59o Oxtby8=ϋWEίv N׷F)-rrz${sDfRƛʇ/ڤqԥEb߯,OمL]kz o% ]m5/ ;"/=vjKa1Jpzm&hBj1o I:MBP^ΩmhBg +!qD8`%.J`fZ2O՚j@ȁV ]*s=]iaΔGMU7<7m5ŧ䱷3.~Wݫg,d8GT/*=!Ww>7֞'W'$߳OA6lx -Tm|ˠnQYMoEɇJgJ"oNnU|zkf69ﷆOo|૘+:G-1!ב(POZ3l\9*HqUTtu|` Ķ$yfJҮ?vZ|v? }r-Yk^} ~[n~]CN_l'+827W}>rt?LgâP9g_[}-֕.wrpLl9f;.~|1rsgZ@xv!ѡ1l3endstream endobj 110 0 obj 6907 endobj 119 0 obj <> stream x[Is\qV'8'7/AdC ‡zM5hg̬5Ȫ}zq&R/~qWlW_1LYez! *)U [\/ȿ ZeG)W_ΓU"n4jǂ`3Saa` H=*&b(UL>IBġ,p:) Pμ*CC,;4K 9,+ iW͢?MIf 3e p%N}ߤչ´KW5 { [C%0v;QjD˲[ =0m#lSX}4EGK~<2 'DYb\wwL8Q[) UTmɗ5Dԝ:?S\ѷВ_z}Fny!ўD3jk(P_)3% ׳aY Ǹt<[2 qk:a@3-kdUXIR``Fk S$d@0vfءr((;8TFQl;Wv($ WjqX//]60.P4h S8*ZB|a;iȣi,GY"lPJ)a;D:pmad;]iHbY C"aD]!cܭK!s:ǴEUˏ1ns O* I( VsǢ=ؒT:vt[ [\)O չqe08qeB1%$"QZ0h!G:`X'eTff䟑A 7m|u@Zo͂ O`2S(c chО䒤И 8 c"Nti#mhQt7nx1|^eR)ȹ?x1|45(. dZscx_3 1Kwp$0}׹h@{T\zb3\($-#ʪ-$QYBhMÅ&έ1_Py#?.KEg}$cwV3̹+68I%۠ZVhBb%G>|~&tטK~ݟvI46x]ˮM??Uk|M`דkJҤ#09RYZ]R.pO7vI㖊hsnfOKLr_:(ҿkT M,B|n;x=:vbEQXef] '<=߮bnZ?޲{9jl}æӱU ,O3Zn? y86LM~u = ezA1{B5=' #TD^A5AީKV<^^0tخ/Y"Lg*u2;ѽi'˿gv]5a+ Qaji>4fge@_]M<" @XNc"h3p%vq.hPSM7y)kF)+·1z5]: Gq3mPS-E=N%n|O pRﱆ(t5Y`ixwZ7_Z%ឭN,PС;~_f}\Lt](Bzw+nt_n*]/Ntێk+.ZssLOM1ί%yh֛kMA *nx**~]cVyㆩR[DtcZ7oc^֍m"}Y%;эxs\46qRx0:e-Usc0+$)rLϨNUhv %?o"V̥UVvsvEoѧOaL+3)1.7"z>ӻT w*=e嬞@M{IڽuQ=~r%kfG3N]P~/_U/n\ n⨒U3ˑpxzդBz(y9oXl,g—˃@K9HU9YR4da{ZWͲ@:b_TG3ysοB=M+  &g4;D҉࢞9׬6%۪-Ptb3Y8w_5|U]qܳ d_S4N\%[j+>7HoƖΧ&XKqwvaSDɫbnl9B>yJql KCs'^zl E&:RvB}~mKQcS݇/7yYmhV6۟E]Gu-^# JE: M100.7 a~"^EL:bn}Ot^y-оǬD\/ߋǧɩ>yjf)Ů+NcR~Zev蘢Z'endstream endobj 120 0 obj 4441 endobj 123 0 obj <> stream x[Kqy~E,bҀ^Yy,cCio?f{DpGa*:"2#Jz+ʹg_퟽Z!ç;W!U#{Z4!a܇h"i=u&v~xgcTҴIqU4V 0fpBwwoqu9=oe'ß~?}Ow[}8;3F7Ĵ*!*c(Dۨ:F+5 )sWƄ!=m0)Z(=xD:w㆑z8.R%wݬ[7C(HiL_[HK;=Fƪ%"u?TCCgB c;͗Qmku+Yam^=BJyuo᭦9;$[1|_o8~=L|O; fCa{ΑXm??2e Efx6,H}ۜyK"qH M<.L<L;1Um0)b/pBmYҒX&1#  2|VEϧ`4ay(!=1Gfbc%cR~Z@vi&yq[_̪Ɂ~ɬ<0\v@6IYл CuutȾe S|۞?(S١ѷ2vOW>yXc֑sKOOE8aV dž ЅkD`6# }ݡ.-!ֈ<_{!< F>~/n7|NHNxPg=vec)\YTTwǬٱؚCƮ3ZpD&pPn0b3 ^‡9*5Ҏ3QUR1hGRIl( ,XXc+:CTNI* 7X>M}mo A `8c47X0V`X7k*R7&̓!q6KmxeK&[r>,&88vKMvuo`ٌ(M 'd4Mq˵xӮ}>7%,z$_+e %C㕛$7$I<4*c4er:CvPLkZ..nțb8m+ 1)+o@Nk(ah`=n3V[U| "B y+秧j"8e7ӥ vWO|%u5҉lE7|Z>we bzlss^W ~(ϿosŚvY*fۑmV 3Jۛԃso U޿d-ʡ{.2vz(6t~Jy|N E=?nJپYBM\ dZ|`m~Vm=L| }춇=/ɿeV)Wm)D&Eu^uZ *t\yZQ eRe\Jv l¥7%\ :#U5t9|>7($`[yT p_.s0wsݡb)fpOzF ].N>?KaU3 7/q=7 +g/aW·.ynNKp՜\ByKsL|ɭZe)$O7ﬣ"(uAsC) ˁF)Qѽt7M{*}O+(+{KE\!dBзd Wkzђ( Axn0~wTwOw?P?t& 薟,SzEbVrDzwJ(` 7A8c uO> gC)c"eXjoXfY3vx9 &=V oEw jX;b:%o:RbzwjHA3ҝ5}Cq&{(vգNC@Ia)34O̷4 > 1qPi1Ug(vV3rqZRVwfS '-)#7P{ V5JdXWh߲ͨF|zdEt| r!p;Xnj"6@aCbgA#JH3$cQh;z/(= :kJ$Jp8И  3g,3X7s\ X* 1$ 5[TNM2~e: g2vs<[ fHǧ`%hiG=Q @vZxmxD䑊Y -ϰ*{fMHko e &Kf+_W ʹ1~6vF0O)EyRN%PK BWܳ\xBU'DŽ&ǔh&DŽ\lK)I]Uc.ɑȵHjHe4Jز㜱].[Eԧ }{$a^Rni$4yA\ytg-߶k`CcFcB=xFDe㨻=f.ʈw^a.,; Y'Ji|mv|pT Ku.,QQY.tt=휢>:ꩱV NbgI~XVkA8#UpP=*XoMX}g, GqQ)XS]%לQ9L0eH$rtcӍKg Yռ.0ډw4>C Ag:~FhA^6O v)&(Е*M@n=H|k>q*;Ҍ^%Qo[gAyBKM2#S(\^S̡x'u)'#DV?41)2s.o?eVTIRvRDߞET|S[B e@bKgP^ 9}r͚Peh.!YQ*d((RTFa҉AEFtsN b%~B􈑿JLɑD H-$Ԥ33PSЎ!t#b\\Q!Ca̪M|NT3Ⱥ yN]MK.YG5JI%J+'rY׎Qw9Oa\)O~Vs!y1t4R0Oے(;I-ja^>!q}_y򾣕%yG=X5:i`/jUGлڨ f|{vu| ݋$ ^{ط0=7=Twք/_-j<mWk3-5hn:|~>˝1u[/sGFvWor7=6~M'fԷޘRlt]ksv ڭqL-gq@]锟cS-,i{ օɝBy]{GR4c ^d+B搼,\)h.?K."b{~܌iyXGC=y ̵1]rGޡM쟑|:hr-/gC2Dendstream endobj 124 0 obj 4079 endobj 127 0 obj <> stream xXr͚@VԄ~Ne;3-R̰*,` c+i"J辏s=*JXEOVV*ůzY]`D)Qjs bUxM$6ի܎ln;5ط٭^qtD1g] Bge88bgIl-4P?/YeYx~X%1RuKm׻06kX?yww%˪%V"6s-)h^jV F㗻n8QqͲac kxɃܡtòJ,uy3_j+ke(Cs$%^/1TxJ-M[k,Q{oX`1'UHvKm7_z Vq$&`7׫UxlWWͻKwORtɜ2{l2 kTJ.s݇#87bt(2('D N)x>k(.u">eOݮ}pd7Sph93ZJ_|KZ`5Cbpp+y0Glvݡ]{kuqC[clt6n63&SkSC>3hȘAϰ9 HZ{Jp"|ޡ駃B%cˀjS5s,X:Ƕ9,IIim`$N?b35ɢ p]{'tIw86pN 9QEƃ֩;n]V #^墌W\/L&xa{ d D&V83Yn+E|Kb1uq룂 FW׹6•ݢSxN'|]$ڧ9~>eKmz7p,Ttydi)m3N>SkEP&oκ.p_s8+6l9E\ʷ+ M.Sj6) 6ivםfhI=/Cinڝ<!fZfnyh@)#OΊ` GKOp]nRɑ%id  MՍ p?Bˡ\+:@oS2챋‚bͲSbgc VnUPI|$+8 VHq$dgvh4|t 3=n>BA;w cq;#/u"Aiԉ^vK舯^TtA_.N^%4: ObKݞ֏~ yJMY G<4 vlk]n#?:+<1h N/9k@qڟ=204SauF[HY`i&:vT!]IJ$?EC \i׮mv!";;2:^鶉!>'"/v]H#lI6^oRŕhw;a ي8  dtnr!{SrA3 ȍcpz2ӜdYޟ! OJʠa&A0Ч-'")f²LZ+ L 7 }Qُ !8Ftri+,Q/Eendstream endobj 128 0 obj 1977 endobj 134 0 obj <> stream x\Ko6r\GlG>Dc`WKRZ.- ȏWUPeIBS[]Wwl9j9ҟy|xxT +'r2 ko/dZ*Dxtz/ '=a&R7JeЗf19}5Ҙ1^ jG1O- ~,ԑ,cGj.=b]T{?|[!hY=Rk?nxLMп^5}2v˓!zU![`c 0mqC2<à{bvnWm0?yA8x! <&OuV1 XbH,R^٤& ѓ5Fk lW[Tx~[O9t$KyNQ/~"~ }c}c/ :9wU-()L;Nׂ FY`YD55/6Gx60)\k7 8!:ipMcqw77eMTᗚ; } 7|=Qv0; 㡴1=ڨ+/ )dRw.W,9'|.v)ٔsɧLmegN xF vHµd5]2of(AȠjvv2̥asZZ|2/Kk:T#l[5Zip }u L,g ַjq&17* Р|clQPS]v.W$WTIZccY*ٜopPOϲ/]YYhZ0M_z,!sizLhRJwwfXbVo =[Ymϲ%AVnY YmkCh:W4/XI0T!~sD kz77cZ?)ق?SS'pZCRKh؋).T צJDqMצׇH#PsaU[u>ˊlᐄ =Ou$DZ@Ѣ3)&GixCj1G5Z" @6+X@eBdz.b䒚A4):X-hI*V~Xi|zRz>Ǘ t vt!|8X;u}ΐI1`ktjLktZo\oLU3\R)AcN#=U9K .GCm~ӫӫ:7Xqzմb5Zk^aW9$:X.Q ]AA)E>pT╧-Ptu ᖪQ6Rc&<*xdcR(%P8Xz\zt搟iATX\@dzGfu]4 9ҴR3~ e(}ãjs:O"Rt@2[Yjn^Zl' 1b'’#(˾`V XL`'<ډ!IXz$6=#|Yr tjgpԙG%+EqȘǴl:3/?;u/#7=KP# ={4{R Q$" >[g*)Gd ŐQνcXJhsѧv-wT=۪Z.v Y!F0tBtCu,A%8Q:GMUCe NUa,OxE"!Etw% B 5FaQ!fp* DR0,uV™7ckb,V#6 (9W0PPb$,TKtDoMqyM̞wXoqV,C2]8 fLNY\DVO/5R :\{T<<(\0`m: FUeF "ֻl/|ʖaiMo(PM=qF-MSXߕcFiՖZu/'G3j֎^N;]Zh"\@tC*'UF(/`¯uugPfӻN8~g~*3c4KnW!v.diNW/<Nqk'|8_CWez2eZd Q˟5=vnQ>U՚Qr)l'jUѻX J[Byi3ȩ8E~}]ɡ ;֫s9^9h? 9vdJh5`1|D|ݩD6HhO&2n3OPp=HW/{isc>ηzwlTM?9hAۅlv#!*:m.i_eп2|/jA^rɒ_su I~͵KPU~}}UTzrvxa&yR"^dxMu$sn̺MnkzS?윮Q73c˭rh%UO%[Hn7?ծC]M۶}Yf߮TqG2Nti0ae~an~J׽lS,[YަN9*+)^b9*Pe:{{WyKG*oktt*Z^QμQc>7 #cX! ʤL-77ȴܙU$xM)rWOGT}-knW[+Cm_y}%'m_m6׶Vۼ&M ݨws/2[۞ssn{o. |=ϥzNx_˃ǭo}1CN~WEkVn{/9^. ;3y]x @2F*qiw4SMd!A!>nR^$wS7Ե-t16/ںendstream endobj 135 0 obj 3786 endobj 138 0 obj <> stream x[[oO[3uHnECi$M2C2܋lC JF;f3b쇳f= .ggO< 1tv~u_3k01% kVk˳Ǭv>GC~٧RSOIjegݺ?`\N̊$4*HMgO_u6oѳ_9zٯξ|ᦺ iX;Do:N-ٚټYmZwQSƐ0G bI^g6JImЀtj" n~QQbZVnqQDuCZ'Va闢 \ i˗(%#$/%R] MD΄LDX T^쳊 cWU0l&!Iח~hZdE9>X h׷ +x׍55cdZoPMcv1t>`T s:`BdYzvahغ{ hᅧFuh o<4cQQo=::CgݵsX8rNfWO8°w [ IZT/ڸuA)re5e٭{"\0zE2d"/ K1_vl*xムu#,>ѵ$zݏ7H:Ͷ~irNȺa4(`藈,MW!(D?aMq3Al" /͈ BR̀\[\p CŘZ>A]dvڣV4>+  ,xe (!flO ? XKibծD _! 8۩6+rq1Ã,(m; /&HޔlOCA?"~!lfGwscN;Da")u 7K P@a!n`Beg"z)!z q8ֲ34 1r<)M ٞ v44y}yQ[w`[nDv<.Z}120 ڵK>bIeQ̢ep@Zhx UE~+6"cBp CPhhXB 7x|fNnMS?0܎* +߮"cŎd*HLcwSPMF[dr\5r0Z/cuj?]BM) 7 zašN4L!xc7h*Ad[&+G4ȬFAe="_dQqo#}%-N-!m`<WR@H'^mR4W[™$JR !Y=>*K=N*m,Px&OάxuW<~Gv ]|cmMV/p؞Up lq;z4y^fb֍/ t9EX4a\r iClb{6=}B$]d%XiSLxa $p q&$EL4ywbUO$Dfhhp1^d8mIuD;$qs1ge)xWѶ}v`!2DSGK4#t{[Y&3O|3NA 4ma MѰX0% ]LPZbyr*3PtCrMiݜ抽=*jiӬ JtF%s oQ+rr{yogwYI7*g_yUŴ Hʤ]Jփiae]B?qInG~[XCVrUGu׎ݺoZێ 山HEЦDޓ_R@N*5xgT= #MNPZtkO–y0<m[#% KU$X9GcTnD oX_JF]=)P(DrZJݞlƊվ!)Ĵ7s,sl{_D~:- * )P su"PXPH2=LLd+#| .܍xxp+9|C:|QƼ7Q{y196!\h:\s.opyQ7<^OETKn7=/ eKLaٽ> stream x\[[GrȃmokgG@95g(ʯO}U};ii߼yoq{W[xo?Voݍ^cX`Jk?q{1&ՇkHck!Od'3)cFGԃ+l< `CRK#8` ZC` 1LVr)h,Lj $L9`=}ʜ99;x ܐl:Ffɚ=1XH*/*`ׁ) 62> ݠ#0qJb,B\s8& qKs /Ϥ+ڏ n)~} C`"npoICl%!y57$ 8 >RD^hQZ #DL3kCF8b3Dv2aIdk$4kPH>U=& I70Wv`^c,7Z@T,$%ڰ֒e!#sMܞaD2 %F# y+S$|aG&K0y]¢ x92Ar` [3(ڀBa`YȘѳ@C,9+oy ܶBn08 !Ә£cl\,\Ħr=+[1cbٓKm803LZ6͎c4#< DP0B$bx"&"Z5M!5p̣WFEDSyFOPV:"F'6/9 )$baƳQFcS9]XFX82x I94Dh#! 0""3SD QCGhu$>z1D]9ƲkrvisDcF#d3, y 4"Kp! J^Q൭0x] 9<OkfThƱwM1vu# ̑pl2w BëV"Fˡ3<"kr8`OO  Ű334ҙ簀-HhHd6B-"vPn-M#ayHE4`-ӻcD{ B%ȀMHBmC9{S?_I]1+(D42U~ @Q$P-.ꖔZt _nz'(["(b*r"5V *vh&};;[;m qx~x·IT8>'o);i~n'itJ| cըg4346^aa4 a#QH aӦ:+B7ʛ$Yݮ7N!Q356;yi,ɛR47'?+$CcH*roGAF,ryZc}4&qS>ISZؙM4[#a=ו4+JW-?W-c<sشiA3eIM DCQum:'unf9eij41||.)fHYɕN۱[(}>lYdC >-Xxe|}YcU{+OgS{E6ݰhz/ϦS}'ҩ.{>}&gN~_5IB:6z w *U۫{ VǼ)y ^њ*{8h_M0.FܙT}1}Bބ,nsҨ5[rGՃYhutxxŹt=;G'B8 e7蠻eոҭwgwgZ·f mMٳygQ sg*C_XvXvIJ_4>;4nͧ|7o/KmLMCKw+IlyMiIvaMP^5_KʼnuuIi{+ՉrH|/~hůEYf}g5v aҬ݆nїjaaq/{!􌯧i 8'{+?%L})R Tx{!EChӔ^; G^d3'47ЇCImӜWlYcN).uSƚ? <nd~w?Đ/}eQK%A\tO[dϪzl,RR["%#^ќ?N'@d~>ȗޒ}qUr͹,Kw?HH}T+f/ V~Sn o[|g (6S1*U}.~l%2Qj1%GSwUinPY~Wj;"N@fc>V|"PUkulv|̣`=VwV@nH[CqiIuwՋwڝ>@x>T&Ed$P2$Jp8>yDsU9/f\N*m3 W!nCj Q? בSۅqS@CnR|NdmG!}_{jW:v#iLOMcJlO,N-#S.ݝ6WºyL|jįg)˯Z LnͧT=s}򜘥 Wߟl$>qxd#z\U=6Vw{tGX;q4ȥ|DۓGJ=(y|)#u95YO->ET(;hKj`j)fa+>E!6]iNUFcڔownY.qǣB )ۈ+~opbh2"65Z﵀ (1r9Y"K# 0Bu_4qrH͟\E΀7(#yx-峑S 00bxB\1خx$W^z(y3Q>HԿUEya*;~34^sLE~e\wK4ĉeD'c!pa4C8 P1u܄ikK@!<@‚<*@pxd&T~. MY@1>C@C;-@2+'$3Kxdyzds)(ר`D6^ė }l-}Q܋z12:N!c Rs_R'u(chM k6?S,`xWfe xy%U8?&kA#Q02BrԫqP;+)JŸU OU;GyXZh@3# i4\qĩ)~hH)Uuxd qc`dJͰ)^ 9+"k$Pv }A2}Q؛)Mk~xI(݌N" "<7VY?) IWS5,ubYy)!8*ȳAo$֢ zK)ώRB)fv;DA{ )KNz#OOx c_HEs(>dɦ˚]` ecz,Fr-Q&"{̰{˥z'(YM.K#CuQL֎֋K[# YE]ZV,6tJ%P4]~>T~^sLl3 }AF>}a+8 E]|b&.ur@*i/| 1-bBη֋1cEq%q'nfH gc{dLûƮaz#?:a/a0f 6;0Nk"`n߫ w ses1~6L8D('|)ѨcJT#ڕl EDK6w3ǔ(ar>Urk9O>KF r} cIrws} >,.MQÕHTAmڴPD.?FmOF::|GmBsC̗_dwɹr-?>HpqD<%P]Jy؟kjע_VC_4ϣwuC U8`җɥo$J_[^vr> stream xZY?P,8"lj@b #rv1K&U`)QWnwl?|}݌yZ3_^z3twl*L`3':gFX,z}^U?skIӝ33^/ :3?n9^ >~kI:i/^^=;W5cW/]/5-6fM/:eS[YDFH'b!K/"r;?&kI1SPQֲ]o84ɻ^frW N+wķue$`̒g:s4YgC7r_&D$EGt{"Nɼ&(ZfѮO~,3ϣ ?F.jB2=JyVo&dǵJK엛77_MY@N9ns=uTBa`v]d21zfsUvn\u^ j =bMl3<hI^Yգ٧u!Fatf~Ya S8TYu:mBoTKx0X;mzC gT¡EݸlMȸ :zhjGs61Ta[;of;dr|^L)kO#3 X}م + i@ݬ>FPQG>/txe!,azb:u҆:b`}ٛ!EmӃVu`,U1@_P^R'1uOqVL,'{S|,C}lRj"3y"~cнJ]zܝpa2o] M *TI p%XnS J+ޗlZ_γ_I&6 7Yn%(%E=/f;߮&.A櫘۪vi(YA5Qwq1&O%#sZ!ZtarN k`bbQJ90je|^_p IwhHR= ]u}ɒ߭]wOoхXQTXw-;/6}}Ը U*CtFWsS&sa٠t:R/WԍZDae󹱨p.ڨrRubݞJ kIg7ڲ)%隲ݰ#QqzV5_ֳMp(&cELl q>rNOVMC.^ʢvvMJj H;x ơ]2})}˩48VWQ<ˋx`fqgSa?3h䂿*&% Ή!t54rسMt]n6}_|b癰Y}Z?pG9 hټE q3C(.XKpOpP=r|?WLeoBdxpdƏŒFS"NJO!dZn~RNy-JɇRvE6\ܛq rݏ9`EbmXDՇx!sN_GǪb1v]eBb*4@d9I'1ʌO$R)ͮ)vo}g[stJXJEQKl]WH:RmV)c_c2/=Z@3-P ŸbګLl?lw)[lCبnw݌>+,KV1lTP>q+j5]tIC̚F̀N)P]Zv7 ί9z!m LwZTM^$ V^{`:^Xzkgg~3('S<,]\GzΕxUl[zg ;tg VMvwm ETnIػAvĹ<&NY·UD,SƯ \JZ?N3x8Uմ>L-#E8$^{ӳ38 Wni5Hl[sjY/^]N5 r/ 7>$*UcV=0/U:<εJ(x 6;|2&_M-]"(sƹk`سx& 3UNX]W( 5(4뜢 8I^:ESMYR4EҚ6~qç?o`8#aruӷ;z~I&0o!~MR0NM~I8d~o:RVLZb8̨u܄5 "٠sJX pNPh.2۫ ^b1~{qE7iҨн +{ ̌*%Fᆚ4 { +VLOBwat$U&)E*i(ګJt0rN#8y AP)f 6-£OT⸙_3x6l-gy&j8{Z0ULɡaMPr&˳)9_2%g70[қ:NLo``MތN6 VH669@zRқp7J G!wҐLV9u=\f, :;f xtp֕nq.;d[&d+ڞw|!?V(!{KL^X#tH1v$sOL*broY6} V[-[9he$%B jOU_Z{ (@ r)ULShoW`X3gU1"lxrHkC(+,40$u)2udTNYQCVʘ: G~JK/۶P8zIM!~y[k[6,}EFIgPVv\^*66ԅ+Cd7zM` W( =8ЕTjloen4F5}xyX>y\-,*Ecy-٨詒._ 7*ճjomY.]p6HB`ߔ]A6B?i"@-wa\}wIgۇ\N|2t邴.+ƾmD endstream endobj 150 0 obj 3884 endobj 153 0 obj <> stream x}Kf׍/6N]Y{$ ۋTFVz4_os"HޯeE||`ǧ9<]|ǧ@y_}w绉kYwwk P퇏>~O,\cH~#pg755<[PQ?>sgjϳhK9w}Ox oa]o޺_Ss>|?~P*NbC{(=нw𪢳\X'#o/=:?WXD뿰<~.Ԛ?~~Vkzy_?~kjsz> 8{>l_}>Y|DYɽq_?AsVW޳4iNgɝ}& ȯ~;mjJTAc?|x)#zt/P~/ᡉʫ[,elo㽼bR3N?3RWj0Y8fCdᄒXQޞIɂigNR~e t6o 7NbY[N铙ӏb)2gD:5IOSgwۢыxc/?]2T )P+D j}i΋Khw.m.^[ $n\f} [3.qӄQNn-ΥqBROFԵS-: fyݤ~{> ٿvUdNsh]0ڴy*T5 ?a~;kϓ^U0@D ^(J>۰ ʒ81M{meKkves&Mt-Z[Rqy6(ծ9GY3UI2 04s=1Lۘiمh=g[1Y70YYALE\1%|hV>N:3 αO:mEҽq+1MH8\È'J%V}7d<X=v,+w8ټL2ۤxE6=Pb29@^s^)p'nZL8lԣ. U,]Bf? dw3:`)1%"lK[σ9`=dl`tW0i\:V1=:/ߠSßn0KT.n_Y ~8o1K=:8]:=<҈ m#+:wcњ+w) <Q|Yy; aR W7OA= 2|H}I [L>$d)"$/6<ͅ?$UJ=0'Eo{]¡0⶗k.aONc5rBfQy=1ݬ@qɎ|lԴuʙh=t5gpD'V0WO>E;13XV8gZħN#0'悻I /6_A{Q#h=0D!4 f'\@ G({`0VDg|0H9aW՚yo 4 aɄ@N m1 *iQ@k -D%WDVp8j-L{#VꛉH„? pjg&]\pb1v!>eXvQN3h/)KY!c ܬ`rRfb< W.A`Eo60W zb FլKRNVqEd0 ZM>ѹe1NAkW"5^Հ>5:  ,11HW025cJMj_hʃq " :x 1xGHBAx]_p,ǜF0d*&<#†cX%.YC4)#E$[3ȳ5(f<=jT\4 N`- fPs <1Y£^=yjmv7\i MXOL_zh]ﷺCKM*k.oƖ#BQd;MOtD4ME(L0dN0va/.d \A:K7 Pg$n9yøsOyecX8tY_L0Y2xfV*™qG`Gg/Y4e ȀF-'&eWŻNٙ0U[Ę@=6NK8l1& 5 ڬKKzeu~58#۠F3{7f(ѹs֛zM\*Ng ,tn69R"DgBU 6Fq 2aHtSKļ #}^)Rq*u$su KIK{D ݶe˱yK=JLn Gs%3 Rj4_a b0ieG\; 2VSh8SU%6%h͖ W)SOj\삃OT73-A e`NJWU0b2 7P=&0"Tyt'FL--]페pBN Ըfӹ\@5X#$˖ztt …:m}Ѹ.FDOC1Ӕl8ra/C5@ `8%~X0kzP;%2K(1 hy>>kHA4 &`p։)NiœjaĴrLy@ԫ11nĹY2CD)E7A y`W)31g1XSԺaw9ף^مZ.&I+ŊeQr#N0 _0H$ ZvFL.mQ*}{!*D9dpc2tqb# N {U5Srr'?1kB |j7=;ֳ 5BUN(t`@4qpAU}*I,al/b>d5GIIBYM)M](MLo& get:$"vJ) d!n#jъ'W8b~(%BR)U%.蜹Dd$%?s'0L. RbYYq\L$4H %A +лg~@w7>- =J/3Q!\BQ$L6/"4hoVOb֦m~XEa(R v1]DTsȜ`Őc9i%k(ٛ"Ì(!))h_6,m0YT%Ӻ`1)yՉFBL Gv>st(ђ)ۂO^LqTҲ,a Rmx S:hzph-g腼 ôKl)ТXldLW4X֘MpR0¤"uQ9`t]ĭW -)APWO\mqdKMn"V<|dw'wAv(˃jaz54ŗ7NL꼸ʋEo~ajfBEU$~[ L5x&Qu6=M9aMs hIy-ڲ:tMUq&$RDH-n'\1{` -;M\&3JE׎:6b6m%;zQ6`Mɗm[0(0+"bA'%kۆ_8 -:QcVKfm xLL-S/XpU0uizԬ%(R(tLY ?=VRXȶ5m80MĽ`JAi*SNtE-PlDux VQ&vt5 s(aA~M{:w E pN% ",[AŠy]U$\m/G mSL=J6Sn#Ja(J8Ό(aivD E`CE8JXFE K2x+JXp8c<(ai͖Lbihq H8AK<'zbx"PHάm 全'/!+ J s?$ QYD#NdTdvum3Li׼lT]~Zd Ϛ:)/$ޥ :yusd[PL)rj2^W-.k#m]t88%1Cu^ḇ5*݋f7&$sNwH]ۡH f;@fՏSSɰխcni{BmCW1IiEfÄ&D􏜉q*wH #R⛦Yg(7U}4v;T9Ly8 ) T'u5qٔ)D'0~V~실$;-A!2QYI3WgWJ RZ Gc[h Ru>n yftbi$21+&Cz/j '[/Vj%,30v)*np1 L=3 ~1.u|2X&h9yN<ÈzWb@Ð8KdW"R+V ͼyj3wYMv̠3Cx)D 9._5] l-7FdlG<2Z%3?` ,je2r9QLfic}3|_%od$HvkA93"Z%[Z%oW c*VHF(WJFZ`6Qe_&*G*)FbQqZd2ՒxahY2`)la_)oVʨx{[_([bZ(#fOs4¹PFzBŸ%]-DC4RFBùP^y=̐MOB4SCZ̩d.a$u.x]loa/R+ J^g#/l/¾R$Rf.mc\uX)s8氥2*YؿhEVf h̬֧Tfx:̡=2r2+ǽR8۱ : ms8J4}Ln|)KBAR6r[`OoA-0dBgg.mGk'#0UOGޚGt{pv};}cȘ Vo](dG֦w qxNG2,WQ'О 6ѝjͳ= hO5X!Y@9ia RYؕGuQvZj6Zj(90uF۔qS%6\oG9XR17=r;s=e'EY-9dUuRE#aWۋnV_^ ,SdtS msUm)IB%qᨇ r 7&!⼈D!Ih)i:"Ú!ʢ敽cgݨg,\@!-Kh4Q|1}AaqS>'t^"<J>t *`C ;Fc^H^3=U;՜|cv1gUGPt:RSla?+p(6JթA7'.D0ɠtpr8ڰ,Vu܅B֓ţӪ[\  G=Pcatd54ȰѴ:ޒ%>o%|fx6{O-/[#RѵL2G9huYZ6p}8v+:Xu"-|urxs3rJ6ŕΜX+QPt( 힘lÞy`^Q5/;f0/YF[RNHu}o8y9-Є)ژB'h~tD\W3IRa6S'Lʺ4HS˕RRs{Qm3XO6֓n\ R#jKc`CԦ $p]KQAf3JQ,P |.xxc__ݲOݳO MM)u-^"]‹I$ɣ$MS>xьŌa,cFX*NbN/JR(&EfRq;״0YDTB5eׇ Y#HK83V%[Wd,[|3sT{J eUP591˱ursNBPyቁ ik8+wv#TnxnxySӛukE*J̺pa<2LieEl Bn\4dүD&m̫0d rبyOA Ktbr7v:: Y7PkMU >2ŤK~ ot VTɴ-*"h:eʗNÖ L|Z Wňim{ 7[nU"Ek3i)EKt!z6m^ɨ6^M 99>ȱO.Kd(_s%,m6nFffcD=hPZQDy0=\rD8^,LS:P1[nBQq*~[M(:̵`Jy=B/7]ޜO$_Eݱt3+AunYQ!pTehpm€Qٝ>*ddh%=T)[NdWdߝ˲钾gl"OW P2[*JqP6HK]#t R-Fz{ B^=9{|,*FPBc`t^.C&dm#'22a" /զH ͚_yc$ܣnӬiatc 0 f?);+ls%(DeFL6l RFdY%}M5C"'-*tIRoP,6Q:tTê) 2U̅ܗբ8A#(:R|Sa{[ݵIP7=EVJ$`f8ja^}-m1nTqT[UBٖXdIMWvVKbV)cfN{c5J^t"g6.L*7{I|xNmF~H-g` JȊ2O~DK)'%7ܥN;ǣ5ƆiYqָ5u5n#uH]85ޘfy.UѬ1̼YcdKza^RagZc$ ܭ1 .1n昹 7s,1ڹ){U^o]{ isc%|c^>1wc4wcQog=ns}~ءeB+cc]qw{܆-\ǣ=YnxǼvl{|aɘAnf9K7lW8A.:b͸{4rn_ͺ c,>E9XsfŚ{RROz~M=37w;Գ]Bk|FkR g/-Pf$(coq+߂0 6wAo{n0=E3ئ?uai#=났mƔv<mEWyym^6nO^Cޱ%~(殷VpxZ( m7h3ا_KKh/QVm$esOTuu ٛܰSqmo pePÅPWٱv},a+lwT_,%xcY-k,e.DH$=|n |+o.,VT05]̄"+Y?-Y(0kΰPюzU8vϻUvLټD$K$TsAss]ѳ;gО~X}==}׀gXw}zUϼ^q=zuO?Qr [o쯷ԫ^b滬X>2oj? {՞ǿ8 <+G.~t6U/'Y3>g?^*gӻm~w}b-~fp ܻ~~/,}KGnZOֳo15%?'|E>I/C*bY'dLO5땹7tv9j?!D%\UQOOL:k4BGy^o|U%W2t T\8fnA^zOgP.0Fo 'ʞz #x|-Vݷo1KLx k/̫+72G; #ϖ-L˞I\[#f>^Z en)CGICIOy:l񑳄"m5˙ d\@8`>pʗ0,zx"H2'ūٍDJ9. CӝfF8r:sa= kdAT)^  uv ~Q(obSP#%V.']2ӂz"sq65^%%*.Rdڥ6~UI zT>+CMLv SzUG}ҋsobVo0)tNM1u]#4PHLy>yўd|0 L>;+E/YΧxj $q=弚y^9J0J)[Udg}3;^#u󆻢>4v(1&{gvgD 钄.U1FEi5 D7 Sp0UySy5S0*QZH҆Zu(8W'c,:܉Y6!07aTt`RŁ1gIRTёs+:0jTtlHgR)Ɔ7uGCk|rtNgGJ/p7 J6b<'f=^7D#)jI՗1;Uar=Vc; O]7lPܨv3er +_8QX6.1QK+Yfs ODԆf+~ l0ս1Kw f3-fqyٸ0ff ݽ(ωwNqTyi;8物W9a usWe䢃A/16'>$6!bzXuR%r5g>2792|,*!-K O$m]Q/7gQХdK̅$ۈng5,Ѥ 풎4m)-A]aX,9&+meR:`~crET; мDu>  'Osrmܙfs|8-Ozoayfņvf␞W=F 9B"ŁI>,x>-[oz|˾.><1MwnלS\YՌA 3aN*ycH%+T'sˆ%18D+(|3b7my%QSXdzwX&t(2=˂/tr 'n*(b¼Zt*!]L٘I}b 7n:XeyMEOB!׼FvPH5;rV mjo_J 5Yrwha/% `:~`xBP5xT %s6t,) =?{۾[Qpx1& ^7E;йA9]OG݋E]79lrP-q90|ɁN2x&܄OŋMN BcHhOiYqTK‚8%kpI6$4We5tgty)yPS}bp [ęR$$/fF% uPFK^(7I.0PF*;v6r܁dݣ j.Et˱Ε%\V΂y EjY}/Ix*Rb `S96(GUVݵl Li+E ֍N o>.X/ʼg.} Mjňsѳtg@n!i&曤4폧7TI'⧅u*z YJ0}01#, #t Oe$OR7vkGLN]ve1 zsuM<# WndKFj%+e酝"Љ}cИu_,6uV]I&n藃cڂTt`YGAr/:*CF3(`0ޮq;Bq_~ ;&Ll6Pp>h~u'b<n, Vu⡩ fte&Bc3iUDxkEw3NV&u@}f+`u[bL$pq0(<#㰕fAW725`=GqX9gW$s?8ކN/{⽗,uǫG`#]rjpF^Ir(9PcX.ՈQS[lcKQ%KpW3N)Y=2p/oǕd+g |z"dԵ$=] -VIљDSCW9˜FvY nF0u9ti3!"7e$_KhD_]#hFjFU¨)?&\Ԩ+QDEfPrX%wph`ad4Fۢ\`&$1nb}z0롶ző$ˤgB1#`rU(.É2'\`JVuA0U\HƔS-#`57W @'c+{bw¾P@WT''N7'"#Jjj:lL\1׊gl\vJ8}t}I?G.R-! 7kcrI]*e)fNy@% 01k'ܻsT~ jBBcNvD N6@M_;=RV/pg,ZYWazh.5r7۰W5\!ϠFZKRl @JcCYJ+L)= m$3zrZ-]]Pzw9FY1W #7DZBE6]7:^uG/rZ;ǹZ6qp%ޛ`SY&<#zta?X<},士M.fhp 900TH7Ae3A;.-W/"_cR`'s sSg/)Dl]x]BxQ[/an3I`Ft[k^!=IrEAU,=" Vzm 0YG/E *$V.PlN!F*pc&_ ]('šAy-Ż=CGKwpM$ts Pb )P**i&g\r,=0T'܀0fȽ$/$aLѲ.;8K 1vQJ3Q,&H M& YeSXGƪMx-4c/WIƋ7%3-A.#-o9]yt-d]% b^bX5ZO' 0C>eZR0E/mY;AiKlDzwF=K4 pb)~Q0,Coa-<ߥ`sl%fpQw&q#<,zՑ+S;ԠZ]Yc>Uh+hQu[21T'"D@*k2-Pwhۖi\E u?f͂^qt]E B@Mz_};~/$huyfa7m e^'o lkH|ݎk~{ky3㿈.s}?h'g_zN=ЩU_va? Eu3 ?3d:/b-9Yp7CP@?. SW/&Ғ{aͮo˻޸7zE8 M(EoI??_fyu3H%_.HnK[^rbSu!/oendstream endobj 154 0 obj 18732 endobj 157 0 obj <> stream xͽϯf9r%6& xz}YfhW]9xYժVIכq Q@xyy`D0")<.O|/ï.ƉyoHO>Z곋o|UhXu<6oԭQO C|z?O9>]={1xoǿׇ5WzJ_jO>ָԧ9G;S5 P~FОբ`븚P OGvV>ϟ~' <Œa~^q_?Oxz.|O+/J.{?}KBWio~OeO:|/@fDMHO>Oꦌ9=n3p隟ç$!:餇6i׏h˺_KՏ>GY3lF%M}_obkOa鱴xRLkAXӸi^%iqRd??ĜS-27u=0/~spA:i(V~8~VӜ+c14?)?~N9\[~clZ?[6c.nxuM%fo!ڞRX{]V1nShY-Vlȳ;?G߻]Lz2e终̜;2Y9z_2>2o fJ`ju)6lߓ6^/ &\&Yo]52SHp4"' rgkLX橃`>FSw|G}whѺ fb?nhs\IrB}{ Xw~Jɜ4Z~""s1DIьOyw1rSo1ګ~Rs+8LauazÄJ*Oݗ7Y"^Vm&F1) O6Oiz0"٨О>WbSlaSh& a1!O̯#6aSsÇ>f}=vD̀'8”[3۴sQ^e3۴x큹X5 ojOnS|⨇$m~cęr~N 1L b4N|k!ALvAbpf&?`|pq"t@>5bpM,r`',Ͻ<ዽ8(W9wM>0La| p7K#hh̶}TB+)S!<@@EXlR jb&1p2ua^Vhz真1uK J ?gg{ >afLPlbC=d]Ť+-b!1MQvc,lC*H}j y&9 j\sfV|bj p^XnDp 87^$o9mӎ6mI؎ Ɨ!(jnlcl3 0`Ok?[=z4`G"STXmfٱ#IX͹Gmz6ʔ[=2܌2%4ʬV{~;lO8A)7( LL#j$JR}5%Qr{v2- H 3i$@!UW }ʆe!M+DѠsQp6[KSs蕝0D0M_l4;[9"MIn/Cju=ł^TlRJ\c'zyӏaBi=MmKLO煣PE2vJgEV#P&CteB)pstR^;;S[!v'LLn؞H< +b>P SOLĶi!swYMIosgDDvƒ8fyᢙ]OI+, 欓a=XXi{>l!M{M#=innlք HSl|n&\0+oembOh.j tsbD<ǜ 1fnXږD |c_҇$i8PHp6ijG } x!ֽJYgmuI3dʌ x1VC'ϣ#%. 1jw85H3j5 +_pMtea_K} kg Ao̒T(0I!aӎj6TT T~a^|!0op;fX{i3Fg$@4 ;ٗĭYkuUFR|HXT WOYdm&`*3Qc:NzM?gV=RL3`^8\PG( v*F4b (I4f5[ tSd 'IvĐ v{wL0a Z{,=a\h &CQD zJ3+%6&V*nT`^ﺦΦH `dJ5Z{$m\56Ț}Zas;ɷan/WNb-:dn,lpN׃'EhN,fdO(qq3€to؆<14mLts$Af7D {lWpIƂ olIJ%* i_x&̀a`#ũ)TAK`@)'¬ P;Β-a3=h'I$9ǩf 6LwLeč6*x$A_8W=5_aLM9_nvWH`t-O7̅jMc M68hᴔrepM '{#5qAqny$(7_}۔[ޏt t v㎸0{ iҮ~ԙ31z/ "Y9Oa3cm}|qȒXj/lfѵ0 7q؍X7vxyIYh< TS x>VpsaD~3 xb$ tzYH3' 3W'o`v5`OIC)3?`3-Dq`)dʣń+t`~NdJQ֠`>,I*X燒F _Z$aRT@}U8&(V1IjOR#qt5ƾ +e'8ʯ01vtV;BGIFI,mhLO ^ɠx\)]-%#iN=06蔵+j!sBL)b g+͠ئ;%tp Nk= #ňctAȶ*hhdm[6 jƏ 7XHcbg4M P%R #(|m )bXJqDzUK5KKG#:X%Ϝ3!DaIM mNT)WMYitx]5pe>ڽX. C Os/S\Iވ@y6zXD30/BR4Kk\G`q.i3pII+c&[ HDQ+gQDͅe`͈9"3^Y#^Nق tX.U bc@\⾡%ah\ ͳ+8W J̀pe}On)+P0Qrk@g$TkYL.ll  t5vMXƛ>h, %QHi.'`Yq#~Ugu'L:u R%tI^;c1鸤zЏb44GPmWL <\"i-J&Kd oI_I&4# +5Q%%6Ro.#-ِ- Att/`cA XCeFK@7nBoQEu`-u-aq SC !=%63i(ت"_(|0cVB}[[I9a/ C#I A{`t9Π8>%ya\YeJ]=xdDn3"^0H{Qh&kΜb!,^Xī"9#3rZ̪cu'tܝ~  ~LF]'tRI<r`8\59a rK 1UnK,*NO/0sJ=<5)f7*1)#AߧgQDAmVHtN PG4ΐݖ!věNדG%%~WZquǃ agc K{=g,0t@.ްR,(Gx=0I ]uL4az0H%d0ć&G8L$EDvIDwGT`M82jhlMsߞl F"g^ =<0"HSI(lR.s3FEF#3 Ĉ! #}d@u t43/{p|&Xe3_qR20>]to'fwî4l ˆvNJMnvM#\v+GW5(g0al r3wL;]=DgS:㈰ EIAۂ eYx"Iv"EzXQD!:21tHU-0h ;ms]+C9;4Ee""^;L !$&69xҔ:l1ܤDgTMjѰTS+k~;T0.P"S kܜ%~oy/0Mnq U" quL:r&Lt X1I]xшr3{(SIɮr~ĐwW0)B)Zn}\4a<1Het;jjYEe}" 3<#*a7r]ꡦt#fF v.ʌKS]Ć ϸUDZ,MW&Vu3АPxb쵦t)gҸͤn(vT&zoEQUċ 1~}=(޺(M-۞>կ6mIG3"/oD?vcEM-#8683k3MQ X Who!L=a¾-.c^seU(w!3u"6 lhLx=nnbܘJ8+-pE¶11s ÇOB(7*bu5oZ؉m{Pb6ҽP^@X1S B8^,،؅i$IK1/Ā`nG{*ꢸB"Y5KdbjT6XxgFaa; Cb&NN7p3զ۶yftgay|ai Wp^1F#ƶ`cx~DΒ -OH$)<=h[1ټbe:VT3O*\[ 8̔,TP)-1A(J9EfAûE N>0|b6^9pZEPC#(eLyo;8 d%)PÍN<n`.U Žf84` <z"Kܴ 2oL%HLN ^^0'Bd6f8F(ꬁzQoA{#pŧܬD)bHh;>1)jqݺ8UJ~  AFy3u|S,]Ѣ]M34en z^VH=0T @FM-Q C}mP*sC^nav=H#1ء5yؘ2„d\A>Bb6<霰;~_{k/c%yU؁M^98_uPt~+[(\F]KZ6ܔ[scD!jTc.[vZj߻^,v^F)5kfZ%;lAx2=3^`YYB&+n-q -EFiQCb0zy4?q)PSĵq5 xEC"&JĽ8B-U%^߸Et֖LFU\U1)0E-LĄ 4Zkےن_K;җs1j2K-%T"^j!v:%f,i7'.ơ;2AcPhȼg/*MdRM;b~ 0wL \WR-~.l!/?Uo:tlс>7*7" HiiMODnpKBĥ H<]>g!egW;cOَI5aS]醱`ėu]`kİ`M?/u;_v[)D0atQK ;]r%"yZusiYZ݊a M5Y8 "'N^ liϸ I|.z(|= 4OJgm%.׼מ&l:kd`!|k` Xcrpl}x]qF%F\eZr\7!{Vc.esִ20 'M.*].Z.:tGםre`li95lEdPvw.9>aAN ?Fz[%23r3"<`ip0""ْ [4Y 6fKW1/x٘76f٘M\c72'^[Ffsu>C**`2E6m*hdb6Z Q DvtcLC3 C½L4(0I'i41ph0j)3ZqSq2M̉^?qZ1 Mko9:U1.dc~oK6fgOL{l%ܑbbHޑن!D\Ǫ<bT5XG*a!L̶6|&W@cԺCc'g ey概H+!箩!<4^R}sdNs(hBHRY& / \!i<|gyu V}Uਯq^_q5Xv]_q/k<{P}YQ9-V1(apEOVp;u Xf}Y0҈0#~lCT> n.Sx$Q] ">3ЖvO鼋択TA֔ Wz^v)!>>[])' b< c[x #cza7D`F] yF: +Z6@.Okj\wb9Mjaz%Z5'M7a^ܿ AaL tt`3=1 f ,4a&`g>ZDf>Me60 fP) b1*Z&؀͔̍AIOLG^*"t;]%;hT{Xc ʕ00^JFva>ڙ΋bEȸoLf+4LN /</j(`m ہ.wWܕ1&@ `L< 5&:cTVP nK!XEů3htA˺J2oP0Uj0N|$M1R. 1."na%Y}+ @P~]A@Ծ/ZBvvAC"bK}.7EMc3|lAJU'L 7/LDʡ ?Flc\4&ͧ;h=dwS{RQ CIL5rv;uhՏ= {gX[Wvy "nAV^c5+8fORbalpwI2Vuln!g{I_G >MTnYlW%m"HE`"2^IF=8ѷ"l-1- oWJTk}1.Z EjVa&[8[C+,t,Y[z-Owrե.|Bx$e1vK .yLc|vA|;E{&Fu-x^U<&4R>&3*J<luI"WB&RAy*i=Z⚯L~[OLy(=/K'7,,8t&KlOI9[&?)AVo^\owc>u~\[OLt AK7~6зoy+ɍAn"VuZ&7Jog#Eߌ؅KOQl߮$?U7.ctJ~O0tHG C`5\(whY֟>fsE[߰nav~s~I]PWj] q4<v*#`R"ip"3"#fa'-26+Io3Ob[߿Oru47T,u0v';YtRw%)bF2ON*]ӏ +*9mޜE.sĂ   䪎Gx]znL|z:ָysxc71ua>f01`vpׁXY!`.uLdzW)(D Is0| wa mZ# `Xe:o%㽰>b%&-HFw/Ø.90ZGz\7LX>"8_Gi55hLoVCfRAոTEEˢx)uqr~`sdpiL#OЀxG*kToA^-p% xS=s*,];I} Wc A1Q\X) Rb!M=-cY, Ɗ۫zMNA XLX'zu/Xoo8m3ǐ9 ǛpfQw,"@-~ƪ,Q/m5R?[q) M236+xj%% 0 N1d3_4Ѡӈ)I-* j!?^׭l$pl UM81ĭ]$pEs{7 p=&(1lir 5/`wRP% 6W$1xBx+&*`^ . 1Ej S܁UcaE]sx7BY8TDuL }<K;,rb;0KX8DZHR FP3jj ΔTl }, ]tdU[ 㬶︪-R U[ݮ3RW6Gj $ _җyp"vC@LB-w0.G02* up[-s[nBb*`aTnfd2`*ZQ(+˒xEL5ko 1 JDqZ\𓏗]p nR VKUS0x_ k)#J/=PBbUzW%*qxVj V/@ b/ '>Vq^z4P{3k-8*`3x-Wީ'p,UqSf?}x yGWѸ`(;5&)x?xؚ?}MCKSVhh:r3K]{ efGbT'>}>3ހy|oǟg?FP}7;E}QvC,I_ēO?jr^Ooebݏ;|G .o5O]~Y|AZD')R7/(ϕ=Ɏ{j|E[?F?9ڏo#ikw>~ͧHHϿe1vz}I>gߌSI~˓Vso͙1y}\ ZO:rqͧOFtjT~g}F;&`e?`,_J^dGHqge='O?k;o)ߓN }&YS=oMf|o,\,uo|w{@',i\W|ݿJbs09vhw&M m||j.>}AKNo7?]1<;yKtR~!f^3|WZw9$HƬkߙ0l~3dŢ \eHz|׫O<ԌFK^n~9^޿<@9[s"H3z8Sf``(b*J~6.`1쫸3 ᚻ0hQM 3@~rbb%6̌B SӉl܂NvɉD +neb7QmCSs*!ԈKڳ!*.ևB.Z.{"mB%[ 5Q&2AzX6Iu pDM)=EquZLwJ&_@DSS')3=S;Mcš_;̩.]KOy917SZ/T9j~^#/V7r5 : Y"k-GEeʰJӝ )J xJ.#HKjYTHzBgYW3O|-quϸ݋v&w{b2II[b.*1;D3s [ hㆁc㥆4+ a_;Gf>KWEcc ʶtӆļTSzRKz]S},jgt^&r2P /^:Z\tnS^Q+ʼn"Uo)FzaZ^"L# /0?BWT1ƬZe9e^EDYaZ?闈 6rr$V>9 ]ukiND?k8ZtK$AcNH+F+oE/^.K;x8/^:H5*縑,-ʖXbx-`scf48U Y \"7 g(2P n#1Kn٬r$v3YoIk%<KapM4{w; SvAAV$p풄gbȘBVO3lX&c~b@n U󓙗(*#4fшJPGڥ\ r_h?b[z)Eee}OE8 a3_hVYɃpVPÅBKΩHg}UhstVMqf*3)" 7۱uee{XS)`a跅CR_anzcŔvmJq]C_^>X9,cW?<˵ph|_&0O.b[1 wF(Ǫh>+<\UѢ@gd&1G"j+8z t $=;# {YUb[tBakQJXkhaõmyY&U0 HҥI=Ii\;Lu~NLrw&wׁBaLf2/u2p]|;}OxA_omkޡZN7f 9JJ.gzZ ,yU.}'CRv {(SzeU|9=X+=ta$={bf;Bf| =X:d=l-rUٜD0e7.j[(e$'</ࣕ|ۆÙUj\Y"_3~ˡ;+je-="(fzR:Gsh >n1vJ,+P_*[,x0CK],xF͝h+ii=.ٽWE_AGmPgIw)$/3|«.e/^֢Cp)OOOdaahɘq3`Cv$Y7+zp*yM~yJO\]e2ٙ  SfHU:y+i3pswvip'9XkO'31P}fPO7ދ4j<^m|E<ϐ.,〫2oXep\wUmljHcr肝+KyZlǖu7r!Dp֕Xr2%,8ZE yV]\ ;A&EtKw+\WP'VS'ֹ,n o-wAX3QNk{ ?t7D!II/E!l0P֔TZ5y]AAqu{WPRU:keb2BÖ^p\0Y8^bp@}I.,]+B =\AiF8S!+ ]{;I=ź1@+L?a e$\:AZea 3F^|`|?V Yn^T GN p3iqbHU AͪYntٲ@3uU1y-~9Ȟep6 3 .1a).غfI ŘG80#"meଙdkO\@65ecʘx~ B]ϫM m66 3`[|w2TZж5!$^Y:+3}ks/af!6W־$ d ^̔ ۚ)K1n3jr-3HMe 05MCa W%cZu-ƫp5Q2zgYMׁż s-|)-־pmmZ-vof#@4l>t1d`Ŧ[XU L*nDRc@T6TWoWϼt&1`q2' {y3^8Mx{'6,r@ˤ{~nU[*R<&'j(8X V\Dk<숾EW1[hk܉-05:k'nwp'ZaoD{C FIFlѷ*YKܽ1MhKwҖlN\7;Ѧ2[މ'Rbӵ1coEd;>fD4J-\|mLP'Q;4Ń;7]QHT)*F )][p`!ͰxPPƞ۩Ywjl*@OyS=Ѫ8n. ƴ\(̕< 8U)!I" 5͉L+qλ$cJ=-x{:)eƦתlqüM>OMwm/=!m9cj&|1tH.q;K@!gPg]G9x~uJFMݵ`oqѣ@]mc g} CH70mY|z;~@^zwf{=c6L`aQ"ӋF2th㒩yxу-T*#x +U5ړ[pDɒ=_>ڳEa<=Ӄߘޓy`7${D=5Uط3I)V^0j OV^%!Ox`ruXA6=+mOC fWI8-066UPwb\ +F^B[4l^镖 l976&r{j3Ryze̋ԸH1K)K}+"O2P ps^+_W]w?|?|v!`g睭,aJShp+Tŵ+}}?'Wl3q~+1v0;2+Ȧo kп}C KWqd#'j7~xo&?NB2Z߼;.K{TkJ簾9w7 |c?le?,LQm}{)=ԑd9X?I#^sVJڈ $aTqEUs6U]nN{y/o{S+ޫ:>w3|%T\C{WwbʛuKבY?kߛ?cSs6u?o' Sendstream endobj 158 0 obj 25540 endobj 161 0 obj <> stream x]m%+2|r;[{3ر{RZqV]9$̔PA@s| ?ˇO8ӗï<[j>)Sc}/~7ǯoׇ}U2T-(/_и=gSZxaF4P8~wk̹<0osqմ5͇_<}~>?f|[q(sGCH?;`T[o`t<ֽ鏿|/_A\j]Q'=[ e\~r/K~n\V'0j(ƫEɋ6*=jf'=6C;5،⽻k?GLOļU^{2'reږ[L9[Uc<瘟ژϽ`~[6>Oh^{^]"2r ˺ie2@} ,f%Q8]s_ Aa}n"ǟhތI[7l&Pu-`>O3?SX?5|я~Ka)dJٓO_{Ys+{}~V"hl0RO[?~Z.&"q `ZƧ{isym@W9R-& e/է7?Ӌh{_I#<?׋>ǿkR;d3^{vn ~Υ%[o71QxH#,Y_~~]'jߙe`m>~3}߬edr,/|_ J}^8܎_~oi񗟿xgn9 GslY'Qv(G]yo*ZZ_ݷ_ޛ7i.=ssfbJݞߊ/8Z{ >ǿ|wzFSVܻ&[\Yx{~YӞK]>֝9eucC~jY6T~^ͮkReQ|Mxy]۞?ȆVkYl#F5~Ƽ\0}L_iFTR6x`~Ѧi&E/5p7u~+LsK kV kS3ڏB,DR(cnvA/u!- /ј,MF-D;1R.GXZ L,iYjtZן,˅Y^rc1Ҭ] nH[2ja"g(\8X7w0涤X*b.vöF/8\;1Jh`{h⡦fSicKXջE`fFAdlcks|zl,b-}1L~l3Ku:|=G Cqp6+_,^뻋:7l0mZàK6Kǖf/r8hy\)#H$?ufdu!n-nQQ]YpYѡa y4.QݼC׆]ZL͖h6ma-"?4#Yq> 3 v.xn4-Bڬ\*YD`/;rγzPENNˁ"q `۫#Lv+WjB dK5M9UÖsg'<_D2tm&* b:`A8m|0[w@_C$x>^i]f6VC۩1.[) FP\A-ɦM-~HOA<&- XL8`p ~xkMy@Th L`n۬M1f _׀L["V,0Ml_0ԼuD0H蕌^uuhiô q*-rD3XO1ŷY%D^G$MԶG2{H ¢ƆI ;pj%+yXBç#f7kO Ӎ׸I/(g2m byl ]Yb!&5. .G{1pByBnxqg`/L˒/q4w N#H qu(6Ƽ~cm$_"MlHcSR i+ _Wax@| j U$ROW ::$[TL& zLi `[q6;k~Zth2X q_čb L $hۆA2 "Eir M Ktl9la-hHRx5gfaplxQs˜s|B+E ܶ&u5qNd %׈^ދ,I[m.W#x;n9TMZue!>SNޘ67SPhgnq;a 1 < %,s21s;a2 WgS2wi4D)cCvA3[Qj,-\ٌܲK.I_$_X9[vaD wxB\l;9,f53HC1ҎApVbk^㾼A@<oeގy0N "]A]2 &9A2I%7=)vO}q0A5W[ap{޶BĊ8aLmIP8]Ĝ#fV:~Cg]ڟ@5ݘ8hASӦ|`il'aGLCaÀSHU(cweN Q)&co{t@8Яi0Q&<ALX<1$ކl{čC}ٯ  fLe@̫;Ow(W CuC&b?ƒcMU9ƈ>B/@ 9y+ٗ"W9f2*ƶcǕ6gp<\S5x̘kˤI{TK[ƻ1%ǂGmM•=qNzp=X^K{+h0'E hl@x6jU3Mۙ` FW { = .:]kiY0X^/ gI7&!z S%BWl*YXj#@چA|!#F}mLWE'lvBI))B6 C}D6ļf֙{(_pZYjOĄ^pN⃩tjn<64H,J.q"NP` si"J٢:׹ .ZDɍ rT&À[킳H AtzpLYf0Xo 5[:nz?: cS>CF(gmzMnPut1 K:l6.hAYel,Ȫ vVƃqRvKxdSܞZ% CCМ3R6h8 M9n ,ht8 a7z8% hmRӾH$qZ _a'l}*س S (2 -P5ܭӐc2%@' )*zv"u*00 Aj!Q6i_@P̔K-| |+ ;UT7 ' Ӏ=naP{+[LigX,Cub"}c2rAcO- `TPL[CegH| xP1e46=]<=y3MQ5<91p<0+59o8pc|>\ƘJjA㦝 UF 7nmY2r&P?`|SCf^<:-)!{E\zAh`f\JJbL_tѮ`'[481~GLKZa}DQ QF-S%)[diЧ \eǼZ!v^aFqP(# MF@i f#<5 re[jCebS6Pp%igjob5S _w"ԻE̺>uv\ |03ra'=C_ (XKY2ư-՚ A9++^Fת;Ex屼x{)a ^n̖U ۴őuO_~f9ٱb_pZ(38 wFj"fR͋'/dc:/DʞG>Ne/];yK8zqo#Emw g.3 r'6"\"9q8} xSkVgfZ7,3O >\5ش}7pB#^C2}F8?et0Pn3`dm)m[pVeM@ڦE Z0sރm(bB"# 02Yyoqk,HAD>P(@{~uW^dl+"$]y~b)ed(+%Mr` ]QUjegi +>g' ABD1hV`Vĕ\@m#mhQD.ZV>}~[VeB:s&|BcSFko\ȷ>f܏(4Y8DTyH~JC,9 kf(:lsЗSZlC*DӚtɼ⭊,U\y e b$sAb&T77"Ai,J*MeF8HIYƻ9ɬXΑui[Z;A3YLGmXUi=!7Ekke:|>$pvA+rZ$pp1ݸ1\]tm6vY+/JƵ4ӂ8_ 6jV<::ko=L5`Z1`n$ S2 Hf>MGJra( ,4D%/4+@>ߙ0|~cvy\!Wx4(iLDv\#j6sCgIt;rE\Ι37P򖠃zAP*iCt ;1\k "lKk_ltE=2˸F-6p#ܢLU1Tx'0F,Wyi{;I~KR͡-n>Ub'ZDlv<1JÐ=[! 9t0GG4Jw>bՋ C/|Dy>bX}?)ʍ)3=avr=mH?lx/Ԃ9)|-Q;'8?:rflnpw{Fw9 xD| D b>6ε?[ؑvHvϹIs14I-f{Fv) H`{΍5rkbQәn! a|XN07PV#7Pڡnl<]sCՅ6>6!QqSBnýKr{О.`ҫ0]WqQ~;:t(7CI60`V1! "bb\e$|E6ˍrhnya>FgZ?td.+14a[IĉJ/a=ZD=Fxh3rB< 4#9П}_Qwx 3}(_pZmZ(3J|!ʞz~3C6`"^y?Yc,%kO|iv>uwULa$x_=f7xCchr!9D 0ݿ3, s{ti2 v Ra~`w;F4ωOqb$vć]cnڹ7y57.󙩸c>ͮwLKN px}L]Aenpk+o#PGRo+r(?2zw\6.\"e]De>-Osa$Le;gS`0<Õrӽ4X趕s+qcNˍ5<#no-ka!b$ ((rϒub|gavٞd+E7Yn]-$K|1,Zٝ囑,I+HN2SwsaOXb 2M4\9 `$')Ewmа+A`]T/i~9Ʌtyˍr<[nta@od-LX[l;q>]r[ޡt\l{7FrYh<}F{*i6#URxj'˙n+mLar< +7A|Nj9]1++7LLi4km_PϮh I7\,tWN*|V>)yg-BS{=cj|DzI?Bvgﺢ5%d9+x 6L/ sc֡L]ƦI}Ž&tF۵oۏt=N6{5Q$YK_Ѯ+n:n&ռp+G"B"G>e !XbBI4NM-ǺXӽ`*3biU8-yh>E>#?+ycve+-`h틺!&Mb^Lo=eK[,GtǺf3:9ف3̶ۘk|*\ڐ_B L9ʭfS1 &PS>B\6s8f=AAbufZ Ski_`(/eKM692ߞn1bsbUڮx+t_,Abdz*6EmwbKM^e GmM:x&\vBg;9DV %\p8/a*x6Ɣu.\ƂA^W>j帄,g2.5-L31q=Vyhyɒlk][0䙗7\tsk_nL8 16 c<6~ځv&_[jᛙ&6UK-XQ:\@v7&F^N5C{u6KX6 EY.?,PKbe~O[2fa%Բm_|;Bj/A)K[^z~VTΏ^݆czH^ү*# HVJ%Yk'UN~K?̍>y[8~뿿I-sU/P?Q{ sJJ1WHUιNS7f}=ͱg/w*$i;_/,bOS&*LΟ-.MF鯲9^"%TU:;%X.k?SۜtȒ]voWu0}{lߖּޙ2xVK8NƏ?ڐfcG/ht3Ua?Sgh.gɔRqb{ˈ5T++ԟ6R_&΋X:\`HR|gwZ6۪B>v>uTVB>F*>D3_D$! ׸h#~, |q2`jWi6N|ZPd12'.j1/ ?UeQV:cm-!*Hf":``3bXbƉgO!\f{TEvh98(<<sz-*`a4qVM`d:a1V77Keꘅj̀fmWMھP!l# ֥Q#5؜P{K*a-J4%r0w +,iG;<Ũ g`zRϖ$)g}[b/M{q!ySf1*%m\`jQZ#]Ox7Ov u"~~c2$5SZ%#dzm CاfU*@p3/{`O1$ƋZyt2%D"蛙;p # 3bAة%݌C{V2r$a0(5|Uby*l&N9#|(E2aU FV^I`~))-\*|/ 5.2bN K/U%ՍR&Xe,#pҳmL~A|n[\46ozz#완?[@g e*rG&NǵZ.6Ơ&.[lSH #=l`Lūw ">6O)$vزkL#b^ƛ&HpQ@ $ʠNV9Ğ \ʹ*}\:Wt:Wfsإs%:W߻shy s=m+1u\St+1uε1ҹRsT&!9\ʔ{|7 V͖ȭ1X\DcbnTش͐ɰr[*̺ t_ĪHBM4đvl+  7)?ఋ)ۚ1XEU+|K $q^| RY*)< jNJ76rwOuYQ0uD'.Q[`(^6Y@OZ0 SxgyraPtd4-`!olro8a`Sb~xhcJŧip !Q>vE%LtblT`.koUoK9 ; vIxE`/7ĭWsbqy ipb5r5-X0B!9H8 56 {e_pt0q 4W>jp9ࣨL?Qr}v F<5A%R,J=,Kj<]/ wG{Zq͖=}͓rHX덁byHx̠lin:SQVmZQEA,&baqi-D*y&&͔ 3~x2\> 6H qo%ZN,mDU03jXؽ8nR caw-b]0 ='-s榊 QW) =CD*]2R")t\gy< 8q7ꠅ3|F~{wD{"G\~"S}p9c&r"4 ʋ& "x}]WٴxxgF*Sg ƿRXz!FnG`M` h=To5­Rh&_[d87d(p4d5 Co/ rNaI~ضc0`9|Tv,S&%,j98mk*g^l#]46]law0H8/HY]4I}  /;o%n_q&N4kb^18kO0dVAٜMk r+MGhwZ4|cavT_m^3`6g(<`L!:p aY ˍࡨTezR,_KNYd?uW=GhQ+S j 12_ bDIu8Tsf^Tl"BE\|]q;Ѻcz5Gn@!/JaC2RM\6hi9HLbm&<xy_ދoL&ȍsb/e!fڽʀ73ʟc">kݢF*!0Շiu2S| cΈ) ůPD):czfZ'z(#0fFiPIJwvĈS"C01o:.¸rtMA;L!X򶔨+ +TZrsM_/iBSEH|wݙ[[$II)m>!]gxݧ' ؘCGG)\vEhY7yqL3b]V(]e*'2\"s2bK[tF8l0:e(Lc2Hx}/ҍey3ǿe]Y }Ye&GDywU6BcDFl~ nQ'_yUMUGaB<#eSԕ>BPm,Mn֦ißX>-FˎFMqi&98٘Co=0&a[,#93W4c%֌a5[݋iED]~gHzN=26asߗa.C10"B %t cEw),LK\L׵~M!_$yݼE4{Q,8W- yhB X`Xa(Mc\cQYm+d!0aMUPTi xwfMt4{E'23&``!ZZ=1 ~^!#K3X5O8!e>-,KMo6RTQt9S,ãuv:\ppc#Qb ,6Oc=Oot8RUMxMkU_{- }(LK2fskǬ7Ej䌏29$xK;"KiZ@eJa^[cӹ(xL6{,lUobXeKe2yQG$U۸F\ϡ@!oY7/@l])k~`aqc4dSHYqMU6搲M 7}dbVW[d%2HZ河JI3H@nNDrb KM/)E02&yULrC/h, kq*ۇc0(3-f{LT99 CαM鉶Bz.ӗ^XHNcIYV Ro 3˽}uҠ>6$8k$ޢn= )*5)Bno$0\0miãqߑwrGA)f!^̕n* -,$ 6u㎟ҞtpT;bbUt#N!헌8LgpILD5y,y $S9rNS2"TLtØo:"$Hfߺrl+1G`If-Lj"s0ȗ5ӣfȂMrcm<:=[0-<2U*ݾX|l{}Ir/h3uMٌ qLliنnX& ȩf0r0%3ˎL>Ʋ*{~ZD- 0m{arHfd^^KO- &/ n?qFU7X9K% ͠zEd!UuwN/ƶ,D]W:RTG:OЂ޺׳7)o~үg5o'tf=~=~=,Uq{PPvIʱgAg/EZkݱ1ۖf|{C(=E\Rː[N#)}DI#_{|JIcPRSnǞ..N )~ݱg;nd_{CǞ2YG1WwY2t߳sOnIVI@.>Iߞa Yt!=ˠ۷16"eZ+m|{Vg?I,F[*W{vn\;+[#; kf^vjyP$k7 :כL~zC/Uuwf^ |zCIT 2w~٘`]v z3\O!PV*>]>6J%yԆx0ω%Z;n%Rj\.24n=ӃO֩,3 2>U**tnzsHϊW9qm̗Go!G*E=a+~ӷ(jihe7^snI-mxV|픉}R ʢ A-slS vey=Y=ײgyԛqmR>]>=$*8fO7>Q_Duuc0uB KϦuEzc'Q}*.Yc%ZBOCfˣۥg隫 oeJ׻RO.ɧKo7O0Mj(GynQrF>T):ьNRZ~1ƘN%ke5bIݟwczM77rjXxVάo:UjtA>=t͢gɩLۗgK=}u$}婖3 ) eÆݗ1!; $/1B2ۗ#UJ}pp͒E "ͷj ͠m<&7&Su ZyBw}簠;0G/M/C[mTx$35~Q46+m 5mQ;6^޼ 3:vUm5,鄱!RA@zm"ˎ"TSLzsC~PwaEmo2GաRĨrƁJ!b7Z[st9_8,n]gȤTU|^R9>=Cd* gC9<}z|JndkOYoc]>=I}p齚 WE.izS3,l >wf/"OYmAI1z7"f˲Q"k^?b 6&=>?FCnz75RqGQs7`6 V"7F2G86쁉,e5jƴ¬y0C[vdSg܃aIio!+|Ft'FG6,i:H K[ = #1eBm/v(I4AnFXMDfy8rWz+[Ren薒æϯS/oeY V>I6Ւ\=>^nV!9˅)~ep_J';a/ns{_#Ӂ-F#ݢ7A;C/dg3UVB6s3-}.)wqQrٙo*[h,M]a( @OOb%-:>kw\l@vZ:nM:ԤJTU6Szc_duX" ^O6[ \to%l>B4CrSX Eu^/ w96BJvYJ|0ϟU }JמX$n,a\zDd-ݤׁ هL|h);i>dN}Na)bT6Ҕnfï LSsFTҾؿ$B9wuaCzQ} 0>4 AB-8)40ծ*@&wpǙAOeaopS S[&mzC &.ɋSR*nSw5Zc7'8뵁2€iF Li~ {69y cɋ٨K'XO3Cl ӸFIK >1;}Qo)79^Fv0^p/ 6/OM,]ȼcӶ#vԔzc({K lwgo!߂08sOH],j$[mw "^ӍAYV'8m2 ށ3LWz{hз;ziԋQ zybJH}0LH/(%/3Z.yQ}oc>)-К~׫,t|)ܶn't[x`,ow Ø UpI:$Q3Pύ샂3)uAM$YH`wfn$K/QvƛQk!x{٨/ =wqh<=QȀHe. NF ZŚU*C,-߷۳! bMbVLsnzQ SL~l I;YfZDrÊ?ME^#Wqj ;h_2΢GbPCā}d Ht b@(} gwLG]x܃߰+r_&9.Qm9? g.cԐt0# $&m\, ǗT?: dF}a8ɾ@ 3ߤ&u0OUtB[6>9V:X^ᖟ]/;%)kMGWxEK9MQ*) fꤰ OJCn<5:aC358SPciֶT9%OU`) pa : -[ڵh4c+jWF)6$ ̵^*EW P]wI؞|O.6|LDS"bU@-SʬjH†;&SPODQT"GFi8zS8QSx4^)ُ!;3gG@ձ@D_ Pv7JP{P *tm:_PMX_w&^=*S50/4qJ/e8eMTZ.:q iױ<k@ޝ_D)h.6jNYaPo' QPy6O%']iL3Ԯԣ6<;C̔ s?TBtŵyUrcΗb/IWcWu澩nojȣYAh/^]O±Ol+!~HĤPv鮵kR0fD<saڕ'oBk UYNiX*@լ6x (#9Jڢ-DbҰC_dyKvmG혨7Wf/7_a>$_rw cAMfd{7-LM94mM44zrLɔSU<3yQzt~y`1AߕJ6O FWEmz3J^˅Iz ϼq?~}Kv. gj2[ m O_͛~w"<,bKVWOϟ!vqxw~ iZA"7l_ 뿷g K:9}OE|Eu/{] qD__Z>?Iendstream endobj 162 0 obj 23754 endobj 168 0 obj <> stream x[Isdqѡ7ӒGsòF /-Lhh Iz痙-# qb ۫nw~z9\}ow[j[&9]jnC&/eB]< vQ,ZKڅZyR OwW#ϼ ,AJKH49>Uʏ=<֕jB?vb|7_><^UXkGo~:55%oHUIuv|iS)wX"6.!: k#LuwmN4;.9)d/'-.6Ġ1U]gpzֹ>Tlu+D7x? sk&{{gl&c17}leK.%GOF g_ Z\mqڳU[IQtXl/v??byg{'D5{'شU6u?g?f!v?O|><~!\Iɖ*Iq(ƘSxM lܽ8bۧyAKRSϐ)M^0~ub?3R0— f`vnlNekG#u@Ua l$IV)ԡ Ot7#O/r<͵ ɍmvTCamDkM;/)S.LUrBb"dzZ,uvx>Yy #|ϛB$K[8J)5unEI0CbٖG}YM6:0ҧfBaȉV326 _rW6 W0yPi 2oqJ!-v24Fp0h>Ĭ2ݨ8l 3#)bvzҲ"Bn[S&M3yRWxF(#FBUD%$h-}OR+1>GI& ډhFa4!ؖ9夒QnMsU'+2 6)RVJГ!OyhtEp2ęs #XhfR܈^MQFJ$aqx0hI&n\dqR( _a,ꀬۊ]TnC.4R7dTPEkDBeMkm0>$j!c z(>ٓ e^sGqAQQ eA=hrWW,E2W(Z_D u~DaHx0: KV;ܶ N!`~'6-8`aw3q6gq$I&4,( ڟh?թ֙r)F,z}^$D:wD/j _[y`1Y6 Nu隚0v,2SV҄q'\$yGkRT-Ϙbp2\,3MBavҪ)BF7E)%*M/Fl #2%>7I RMXN}hz q/s,0l3hk-o֫i{[ZIȨ}ɊuN)O Bt*ScSmts3Nwo!3Nb0NWh%))iQ _)iƒ:[ĔQdC"D6*'9;KsZлC=ݯ~υˇ[/5$T<~ K6[d~׭Th<>An2:Z,R_tOU>}D,W8pz?]-23~Ƿ^gb4 ҅JzDMv+pUs;GYdռF>̍FX/YAermEϩ'= `N 鋈 ?/4^;P \0 ~(3 ?>AX+e nH'TԧTD9w .pA(R#FI-E_#fx8#׎) OcS0洞ϔW3*e_bPF3'>E,vDEYWx?x.qC˯6l K 2d.NU1t(c8TNJ$IVV"ޖ((xJRhuIn{oNV*1VP<ðcOuc*由" &JkY?QܔJY۞tE Aڄ.ȋtS,~pdM=zqx?IndSy3Q-}bQ;h cHƈV6<šъcQQC}wmz1Vh }PH]ktRipj(xwE:qRaZ,~br- p% ڴ2e Ml55]<=d<ȆX~11PdsH0lm;^cx /0=btJA&NѐqbFBՈ2b +~s̀xr8l{eFH+~oS5b&J[!I f+GGEYbl%uA6s2= ;?FwoZ˲"!tao@C;!<&;N}SqF`q{m%1w+N>z@ 7;Y<Q3QWX fw6| $c҈W33Em]搘4T|}|V %:ð6e7 rQ+ !cV-nDxjh\Xe4%G DY+QzN)Q{b{a%x!w>Y2N3НYS~j[ڿ>j3,-o5dW,:NEd#y:FAA::ٕYR"w @NFrI͉fp-&rg~+gޞ\nf]QWXb#A28eHIj֨m#x .2C q?hΉ5,f3v ,A~0~\h.e^eKHP꿨sA.IΨUڿkQw/o^?['ǟs?l1yEE^fuT|۟oo n7|EiӇV3͹O)4]; Z te?nR]vn)%0 |ڷKa^IV /_d9endstream endobj 169 0 obj 5087 endobj 175 0 obj <> stream xVKo@_)fߏ"<!-A\rq1"qj<=FG7|;D0E}u;DhȦW bJM=@k47cF|[6͔:1g+Ni0}mٖ?ŒrMK]R(y@K& Kcp\wfl:Ȧ_ͦg.Yfc! ׿cA`y Tqv1*xe ('k0g[j=}LbbU[{ۼ뀀&.ĕ: W>``"ZlS~ߴP$U𯽯Z,M<$ *T;s.kcJ~;s 4u]D.vU{t ]}BY8L*AXh A1=1~y;̗5Ǩba98X8L\Ma/Rf_ qTXs (X {,߭jd`gݰ#iBo*lEF4 Y> ô~2+n+rr=;֯ u $FxWAI%2M\rteSl=d,ɘ)g(X!cc-a4/6&&mNѫlaUp]5aTa6 E'Q:dA&Mͪ< g+$VO)0mц-h_~lȯҙ|+57<ϻNAs9 ZW0_gw <"n,-bҥH(aA|ZUv?Bendstream endobj 176 0 obj 912 endobj 181 0 obj <> stream x[Ic?GxI$Mн0nw߀S_>GPsl~٘n iwwv^}cg\ڼ~{' 1?*B^ʃ͏>l\Xr5-}/ٲ|AKx7.7 YbN}st(@cb;{},9xoKk &P~|qř+C{ dž۟ٓ-DFn?9p[Yhtn$q=ѽ'f`}xHȑz~z';GrK8wNgq*{_ߓkxzo; Ύ8aeh{>?5݁RåTw^ltAiH͛w}>u~*[{?m!C!drY::d:pF>P+/Ӻ%DulnW:"튮CrySuAYݟHWrD0SNxlxt툤@e&h]-!)fsΎ]:ЛuqL! iКWUU՝%>>4FT3HJ9 ^ubŋPq|-vDdL`+N PYZûqAÇu)^6 T^]1ymvaҒ $)4XqzoO,O;  wCPd1ӽސ[s2DRmKkSц @ PDɲ4(R9N>DS>M Wфwj*ete1hM᠄ Itw fM4'Q#؈D[2ƦwXHYQTQ"jPS$E(:k(h:)M x'EwXH2Th $ E_I<=(F 2h3FCY*DLd/jjY% XIQ%fA(CQ/=4#nCVNΥ6J5!=4Kb[:V&R[4r 1N!+=`N Gݕi>@OmJY嵢^Ԍ7 )0)ӳ EY@Ϩx45[4X &pytD']-#I4663zIH_49kh3j>U\!fseΈqE{ed(u"SNZ#p/4Kxv ;(NEtb(X l /R&+&FT抢awnpFm0mnQLjr-#}|Pp=ZQZbADF]IteQkP 7b]͞:& Պ;o>7{ \#6Ɉ+K b, 5a3ٞĜ@͕߀Pd]PdLV#@޵g+#&9Ȱ*7 ܅pA\E^ h~5_1lrc&D%5Ek1` 'DL c0c'sNp 1X7q x~d AD1lF[-)K*A0x+c0qe16pZ1hR;A~q q #8q`Dwp4cDv<ez auaqD8e*(fKn@=l:U`9[NPFt(# N2f4A v  jhA1c'!2.Xqj2 3DD2^Hn"HF\[j>&9ɘ^$PtHg't1ʰxiԡ ;p _g($C\XFZeHQ 1%`KpNOsM;xT9ձ;gvyxAu[ awobƠ Ur1_3ԊF7\լ0Fg(21]ƘGwcnRo\5m^7C"iejc2![&hA0 =BPb4cYˡ 8~8 0xD_ 佂3kpIq/ @]sYP)B3hW(a8(Az1ݱ:e];t.4G%@.@8 n(Ec(s$삧#; Ւ4v~5^zL2vB϶L 3iS?zK003<-| / 0Rp,0@%L} -kw0xG[/܎[_`v0N`[H BˈRp{ Z4-gi&!&HagMn8Nc<@ h8RC-RM?djZSD-PgZ4Zsm/fZ4B-g-@ŤA m{ h: ZjX 0Y) \ 0^c{Iʼnp-Pck vDH~5Т hkJIG9I67H%X=؇ T4],d "D ?6endstream endobj 182 0 obj 4132 endobj 185 0 obj <> stream x[[s\q3~žE~q%8|p1YrI"ƅ3s`J%*ݘK===?bwۋ/~Y/ͮ.5v^./ۋ{xx^vʸo.`Y$omc}w\\hWp6_p5K><\rN^":WsDCKZ UtKy1E?o_^xşw;vt񻗲_viWY 'ZiInBK;k_1╌{wᲀb*K;'hTvFz+_`b.e#ݭpd+f)ew#61c`-G#'% 'ͬ<1bMy^~I9y%ae -Nfqyc2B% R]jD4,^&qՎ}I+Aj mGX Nj-ˋǦ>FCϙ9aB%Z.TN5>B᠜ >_,gD*tH) 8~#e8:iTD8CuXCNOI;ҙterؠ{`’R #G̠jjNiRu1mSBGb A:S\B,ru1TQLq ag.5rj%-i8B;Ehj@,+bb -Akĩ3},$lN $k(!<2 av!rk7rN=uGI>.=9Khlq08_X@WH/$9AеIJ)@:ݣ LapnGW'cI eWcQNb1Pc3I5+d="Vr?pn{mP+"@V+XUFX۱᎞X TQiboSp\]sQnjQW)LWOb8}O|忿jhyJE4IôsdГd $>ڪq"XD%0 Ϋg,3 OuVuGdF0]6dehBq"7 $LjHYl83 uN0NLiĨ6#l rS7 )$$Os6r!#aAT8*$+72(t4P`q?BK>pViQg1<4,.CZb8#=B08]POHV:"X^0,ots 8R!?'KAؤd੕I 7&**e켰Yj9hYh<Æ(q8FxjicjCNH.I!$kOM P*A\ <CO 6@ɖe&qxe)R|)NZ"%8E*er kMQ.3"obFx\@ FtE#R*zU&dȉ}W[9 Lld?&PTf5l"pdSy6`nYA`S;Q'zzY rS%KЧt  IA|NH匂$1hX\fxfJrFt!_VV'(E.Z+2LT>0<$Q!hʠ )^XuN5lFPTհ =AN^wI9k#hs"꣦o%Ԟ!NbH45-N5P"O4S`3r fbHB~zNTPi-'OO9nꟑxeoiȚcM(Nms`uIW"=٨˃3Z4Rƺz9h&Os(\:CUI\m߶Ҽ$-w! |<45Iҡ+*O8emp#1"DVځn3}M'^E~-V)t)bT2»J0fDʱ@+X:YA>y1KP^<-ݠ hpOڨ)pC@MSA V!w΍"jdYҎOJCW訮`DuY×C>Px\8&_UMjtj>:׬N:<8e14(t"6zɡ9wZ$M'sc>K&r2ggSgވdw\pW6lpCW?p>#n䙮WeQ) (ޤrf&D FbJ*H{v fg?=@SО U|F:),CHm@HL<Ƴ*^wXG~9!td;dUu 65mS}KV4aD[E vF4 m7ҭs< ڮXȗ9T\@N*ޚm x 2'*A2 I+Q= 앮c5f('`Śl"XT"f e\  ZcAA(tR'E >o -ISYұ9ʱ p:'j[JmV5W@.aǎ2ki;bk&>#޳m cP 6 np0e9|\Eᛇ`'BԔx(diyt$xSuqq3ˈVKwK:_~ڠHG!pEuEߕX!ep+]7PC . a39atQC}AyWQ Pl?WXUT? 63J?O;6YqKhAnCW Q|Xo蜁g')o:7CS|7eOvLLKNPGq:ϣC 28Ӽ9 ~g᣷zϷuFl[\!$ě޳Ԧ?mps}3t\[=l璬h}}h||7}@n~>mkU퇛O-N3[}ftOB+hh9E|pzӺ~^޵f`Byn=̩i zFr+F~h;M1oWwC+=z%վuWǃXIpU*>d^8+R|@=hb=]~wnWשbM9ՊGN`~;ɹq Wy/;yx+f]Z O7?! ŧlQ!TYfӽ\ İ( -C߯ߨ/J)fݯx|;gblR6ٸӗ*g̗CjVϚ&mYGy2Has6g"ݥ>e|B31WyO\QEW5%b~^>\DV>~s7ρʗD:Cn ϭi\_}|<QfU mv <##Ezڳ[5;%ldә~r+}s7pEMxxwx8صz.$ TZ!2,a/h8 )kU/2ӛ䰅鬿uL.aZT'_mM_3]7$Vwǯ[wz8]A+k7F|hflKO={ sLu=h+KӔ~{rG-1 OԶD-]Ɩe4[&p>w?noOӢno9kI^M顥`6UbȻnmO83]~-^7C?4/o,`SܢմJWN]!D^k[~+Yx|uӥ#g;7ݥQ}=n2$vUM v_Ϣ%riPd4[} " ?S"endstream endobj 186 0 obj 5088 endobj 189 0 obj <> stream xMo]9r#.u `$,,Yvk Y=[oH+=A0tW5?bii<\'G{h7wzJ+S [˧*xpP:s eP۫߄-J!׶]?~|+߽>+R[e/~+zW?^}OO?^}'w~?~_]G6g[|^ty-k}ZĹp*[+cK9]-*}xZOORCϟ>>͕wP7TpcoonmOunٷVI]i m+w.pҋ|'Ejۭ7ͅͷһǏT-1p?O7n1 zmq?,\+3Hh'="UWXƭ[/H}n6T6x.0'+lu5~.S˾rÆrޚ?}zrm(jr:yIvK,i_/j6CJwJ-_Aþ"v4^P l(-æ; rK1VJ k`D;T ,) Ԃx"]ʳaej ܗ  { j",\ &mSlWNt7PdjRC 3֬10=^} m [ƍ[b8&5p+'ʍrbNfkP漖e}z.pAYCV(jh ;fjFNJQ<LǮHcDzQZP6q/Ge@C @mKgu8jc ؙKY26gK͙g`զC _44TJвY%7K%2\m5D8Z_A_b_xȡFjpGt< 1:NZn%&sY.*5g7dpӜ[ޏm0n)9&/A!3acޠplIG#~Pqi/gVjתd a狌*ztyep]@XHa,E52]@5P+tGQQUW6By=()GXIvIMcмZtȧ&{6I:~ceVizCt#sKw!K3 Z 1A KYEsFeZI\:(p):*HntaGN\O|ܤcD8,e_Nڵ=OIi%fޜ 6^tEFdDIr~_#dtƈ LF5lאA;0#($gdD)QƮd@DTD9U ARD "hd` crϊ M6 y"ojrnD]a|((xQ˂)K8( .0i!Jr;ua"Pis-I ;oz㠆4TZ"2y""ӜjB [IL3 \T%D jQ~!D(^!! Aq"RIF]5DDk8fI /2dDIi!"^R鎈 F١qY)"*"2y""Ӝ[9"苅VD,i""SL25{R~ED4DDY  uҁ,ѽ,(IڱUj FtP%MuH*-fb.:p^.2y"Sg [IL3i\IEIQN~EԴ:piyEt.Zd@\^W>4qUbɋdkʋu]ɋ E5 4`dF97Ju&qxC3T*<Džג8@dLh8d跕&Tct'YQ@Fk][gҺGkkcwlњNoi~@R6]>5wtX=\ZB_XO3wB/!_d=_({d=ee=WN"kgtc&Y4`4 0 {VҞq<`GF{L3im?N3FwxwCbh\?X{BcPqd }Ƒ|r$gawᆬБ ~GN4i)b2PCه@=}&R{͜a( rr~=$CaŐw=8~ࣸrcpdkhGJo@.̲l\(&) xdʀ=^{܁,WE bfW~'rVP751KY4ks=&ߜ9$ 1=1ܳ{ A՝7)9s ]ƒhrC9${VJ&@¥_x5 Q{ ׎]pgM*HH@v5y_@̊{ A;{i,[qa:~=k5&e pq+:1yӜ[9cygg>ɼ cISբ^+{d{p&fBRh&]v 1D>QH@i Aݵ3T"|QD9˱ ĠaŐOt>-gb&^â) ͓԰菚SH+$:v(PV4=Vy3,yƓOsh]{;wsTjPWyO>CEHDRh'J8R@$FqOpOd=gKœ(*19L:ׁ{'ʭ9 ]Rq]U=Qn~q*~'ʗ %vn=QĘ0' zt‰{ Pn2 Q7pO7aCӿ[($ 11c͙KMQ/{L1i:M0W#D)] Di &=6hƍUviV7C?iОد$02pe'=&csL a4yi&KrľP=8ؿ96E˃D"P4yQӴaғ0= [hw 7Ҟ(o&d=]qn0i 銁ljjՑl8?YҚ3"|1qfDI<|^S[ZGl-ndIuhֻOyr[15IJ^GݴP}鈴4V37OwXqޚEG]lQB3|׮scS.|ŻI0n? rwOUy |0ʳշa×wA]:3Fߟnn;$`;3$:P۷%]0׺sqﳻ?Fw>~{yi 0e_QÕ8ZE)߾$!G Y./vٳ~U_ըs̿=t!]ɻ{NT嗻{~f&$`d.D.Ic49W5ʲ=RG%oH3!yWϽڳF˿r.di1끅ˁus%#i=_Z 'w-V ǹ2*]cvֈg~-XM?[}͇D٧~;.f,nn/VXsK>IÚ^:4$ouDz~uOw?++'b w endstream endobj 190 0 obj 5956 endobj 193 0 obj <> stream x[Kfb<{X!E* `!4h4;>["8}w OwueK'Yt_X< ]胕Vw/SwY| М^\.>VDJDjwsGTi{iNasn %loC7n?<^J0݇!bQJΥRӞ_tx{Bp!_(gӿwb[/yp^Qv?KO)WPr)[Y)U]'¿sAn^<Ɨ ]$} ߰bۼ :kn@n s#wl9{c p zLqc[$j{f =,Cs# D:E :ph/=ӮqVtb'v+@kPNsGi5 '("L2#6E(#PҘG,5Un8F5G+l `8Z>RL%ukO0"*: qR (W\׎鍼'""^mxɁX%HV:B/a`QLxB@̶P]LT*M\ ,.Hc0cf:Stkޞ$cmwX u,,TO\V(#9]֫ 1:^֝`dc*wO2W:Z#1eGH5$Kzv}%@*7$ST.FHІkD I;<= ТhMLTES c$tl:ehJ6a}xPq" (THq, C5'X_N"z{,6.]1wޞjx7Aslo׮=iߞ8@'PeHF; 9d75Mfy,*exxX;>Ȗ^25<;jw{YFmIۙ&@14%Iezj|1撚Z/Faȣ~ Qϔ~&BmG}DP]#(ea.\-/oַ+UfH$D1[j8Ȥ]}!z}eiTPv^m׬%DjY&w1Yڂ4I‹-^_j2}\h .t~O#^f}8,_(}Edž@Q^Tv,wT }}Y *pv7w3fFj_.< ߃~PpYuWm@w.Oyw2{+RROtpn[8> R_%HC˹1[ 4h㋈(I-*7*rB(f?k? Mk> D> j̔7ovc£%fkk#P˽hwZyvL(+ 2?ST]~9ErH^kj֛3x60wOB }~Q0FZz&p1J fUpL (քӶ^o34;iUn(U\̤Fv[/W[!xbU,f&)M|9:/|qݓN fcMk,4X[({vxFx@mjnYP:g}6dY5kic% 7'xqÃ)grFSdꈚ'QАYjTczć hOςB0m=7gňvW˚2d|pgA;dN ?)dFf"( %O"J4FߢP ŒzGuz V y2%xQѯ6Xjh5jsrem)Thˤ2RX(:1~>CkYyx;@'}n6\xvi%T={zBxVj2J#2HԖǒuFN;׋YGn6 3h핑"]GWU~57 V0<Lzz(K7uY/L G_RJ~7{K-w* @?@1%m$}(/p`/1p33˖H*Ӕi@&4hHt~nm}T }J7Ů_үB#vǬ(nj]I}1% \TbYL?t(ڢu~Rf-M'XGҸvyFП(@$H49GζM@~hb r&扉zW's4#75eD2jLIs==$ĸfs as˹η=akHGuP' Ja&h`S\P$p&~8fsd@)f&#eg䨒YlPt)5߭?endstream endobj 194 0 obj 4059 endobj 197 0 obj <> stream x\Ksm]n9IU8I9Tea{A_Q3LCr9@?.y!B*q4Nwo;ǻo.98᳗{lmo -l-J2˻%~h}۷PxOÖȵ-W//^C$ rKEmtq y?O.>W_?2on!d//BYͅmc,.zxBF_^i!GMVD?dZp[.oh>8Mw>Դ 0RDžZ70NL ks)cZRD?,g/ղ_&|CSχCq.XxG'/0z#0\e/a۱8EQEVvz" ;U[* S#+'Bii!.慬=;%6߷@7 [ D,2dLQ;GvNCQ}.d%wha= ɠeIiEhU.:EbkE #B.h9!HtvɱC lFRJ4;ȿڢHg(XDGWRd?yb!ˍ5P.+I3=a!٩V:Ӵ:{8l楅פt?ꈲb-VȨMH oN!CY4 C \J^kj~wF fT0*GFpMwXq vӷG6-,m9r+8 /]-op&l;|1y|}3ݻ$_U 4u3u7跀ug0C# 68kj;/9t|o>"plcN`"aPD`4: EdȬ?֕GCk9}1pX{% %JHX3cH,rLHr"39Dq+GKԠȽ8投D\{=t3䝎p8WB͈7zP3E?z3QB]iB#z0eF=$) iG?I"dYv{nHC'1QOF˸9h8[`-i:{tNc#D9ѥ-6:V$GHl0maG6\>6Z;AD۔mjN8ɍCwl=}V٠™|H茅 -W;TGax.n)v_ 6UBIV8B{@cmA# TIT &av(WNB(b %l*9Dm7L;Q ": mNfnX8F(*"LUטb":D!w.($M %bok >H/BS|UP>-pffH:l֊ _B&ȹB9Ґ 88^?{NPK(tQ^pSh^8. C9y,rx FMbSX+]h!7l `CZ=`QQ HQũce9|E7oPO&rcd~ͦa@.n:c*Q3n M.ۍJ;yL:\xn< 3=V-FcVy[@98 9FטCŔROq)D~O+No4Rcʿܼ#Jǃ\Gأ__}xo|-d'Bk!1!oܿy)+E?G/8|vO.1!'Kܑ `,o3Ǣy?0QQ{MrGLZQQz"DV9GX%μ4"V[P<[x((^vDxqp2'NO;[(|#tZ76IIy\y}40z¤#,-)O^o?ȿSHcX>Em ?wN˓m|A0,OTл=OqJ;*W0/4 G"u!;U=7Pk#rvEo<'<- ۡpp>ږD /dhAL8%yqv5l w1?MhJΙ8s:Ox@e@>展^r]90?nh<(iM7pYZte7$n8Fe"+ImM@zתNϪnuTU݈Upz EB^naU7 n-U7'VtN!!RuD[U7TU7BFvi+X 0N-%7±v-otHsV`hɍz%7BVf%7(ѽWG 7BK J7j6*nh▊:k Fu v^r#t_#G=SXɍXY]JnVxt1Y-В2gN5HXΙE7ӫn(=|\nh07jlJV 4Jn"iT0kL Z+nZqC/Uܐ(anbtzt3U͒nYs9fUknH8jnH냌܈_L$VsCZov'0Y͍*j,8.57M7klVe7aG YvK  ېnYmc]KOd&}53mxhy)Yl_K͹~X"L,~4` 3/ɉqX69G^P(( dib$W;sgh1db-~l-~@E-ٛ˱apoq5[yည}ɱ+C`[d,n*[g\9@W0G -8 X >5fഖbO M#c!! !mi}y#pI/my6)0EwMzqku\|7j"k(UºN[lu)ЉOS9ڧDUzI1WH`^v0FKf.*C:/Xw;u#ݞcM3 U y#  0nGU(rLa煠5n.$sƤĽj1צev\׭YHcUɑ)Tcm+*Q.蕘8aQڨy !`PSXވ>{[$bJ9Ymx!MP5sΣur#Ƣ!L~KsCA<4B~2gHm5b@Ŭzv(Z6bU`SaKDPyB*3Ze&43fjmg+u۽ ؾET)dOJg{9\VN3w pFNu4to|U(Rpvo45pY׀NC:_)TwL.j NJ~1-FcMbRYyWTQG%dc1͖U]N07!nIA,=VnL~=>zj˿oCG`>`&?`xK(K̥G_F6|و+ys,Ƀ˲jԍƯtA.`Qh<ߪ3՛lA6٩?AXo8xW|o_<>/F:Y~*疏Ǥ _h+,7֛{ 1` ^+q?y[FyC|uDw ,fGNrTȆ[.Y$N8鄇ݱ rX8ڹChsU˂2?sjhF0W$wC4 trg??oզ3Pj ,6wyKjcra7%UjqK`}d{^gtrWN8v?̪ɴ?ѨjqF3)sѨ;M,>#KGyO sH&ώtS\\KO~-ŗ䣨A\z\~|\鏽<U_ @Oǫo'&NkyI _??hr[Gjg ?7B1% @vtGWomLWnh4* f"{|a|*1Qpo)`4$>^Q(89,XI{psGQ*ԨC}p(xkM"0Ĺyh29W%QGS=0kÍnӄ;nS>ULD| oX%ͽ>b^”™aLJǛ7Gt18=|`9t!h=!nLA.w69kKX~^ q)fX+ `]{SQ(Ӡ)?pXRf⏺;sV>Y-t|߯??7[}oO8rI[[gץ@f}Bo]vzz4,};t]3.!Vg,,1mnJ\wUք~MN(GZ 5\CNOsNZ}:\sx~D뇛Qyҡ7%w̔ns" 5~(o.,,gO>rӹXm,Ae+Q<~d 9@Hendstream endobj 198 0 obj 6321 endobj 201 0 obj <> stream xVn6Z_e4 0hd tfbMG$9n6HJ̴Ea y9#c *{Ξsm1_Y687H*y>{̺$' Es41[e7br9n.3$#$n6Rn<%(4DZ _!YfxS4#=]Z8Lw`b:.W7뇋_n.B!S8TyFz w|ovO+by״Jg2Zuړ|$_EZ'kTPh)LPxF dtzӱ؀d,:,CzhP*ƴ-j¸=)}3>|ia q(^nr綶MNP$<6]2$z]ӄ"#WEg$e2vm r^H" ӹ`|"TpC, OaLqPحnbMHHer\Ҷ~ "m٪[nBAlg#u<Υ|qDE搜h\Dӎv,95Xf>!|[C]t%0pUpA7j[Vr8kOQu L"].mzj?֝Q>5zC:hB#Dr3/|)۰ P=P K(a,J*^T0$,XC\pۋisJt{uŠeUTaP+Z&$+ȷ5Ye9\qI? ^,_N &`nWa|쵝| 6&H [Z=K t9}Þ*V!0i2@D NV͕)~j:uDGQ OXk$M(b"oPf4s}|ll]w0lUz;U0_cNc R\Swendstream endobj 202 0 obj 1098 endobj 205 0 obj <> stream xY[oܸ @޲24IQdnmj[lkwFK8{xyt3  Z";xQ2ja16W:8%Rr]n ,3912EByvu}y/Wm}jxfKsqAVnНvé E{krFTEX+D=.սXΌ:]Ok <&o5Ta1= GI¨~GY r( {&sͱO`񠾾kʽs>*{lj|W}ۅ5?٥Cz "+#9{vձ%7c5kfd{g"9bc.msm!%.m{I"Z:te8(3GC%]^*AT;w k BCaE\~&S/*=m6`T{ޥ(OǬ_4t\ϡ)A+7&Oou磑C+mɮmj7mIaFH› n*b4^C01>5,McN%Yuv>N>s_K9ci)nbE|x(7եDuyfÛƤ2Ec!G$ m(nۇNnslDu 0[&598keL&] U>Rf0'ƬR*S*%R*0:Jթi `uH4NUs,KbUdԬԃA6UJ8WhwFFg;0NM}/PG+:{{0XAv`ƚ(-XK-vFۣܓ`ù܉"e%$ZE#>|1F:*jڑ*p&ڑ:>Ѕؤ]~p/WѶ&aHz ]@[DAE,P |I(Qu5n[A@A[w&e)C']oԨØ/ Wo23ćZxj/nף{Ji5)U3I`70,C.(E`;J JΕ"ڻý!.4SU}Ji}:hؕ~uH9^/j?ۥWٿ6mho2V4θ'_;Udls7 ?.pvZL9.n6fޮeeP A w']%]4o"B5(oQ~YS/r >+"*CK/!lƿBz}uw>4/:g3b]-Py]VC˹t"7>^8]w"(8_|irOknP)X6݁P$\`I1Xk/cV[ U⠋S瑟A>D"4NSg8d(4O jMIxL}!YlEnig.hpho @PrKu]Z$ T{6(G^N]hV" i̤%b q:&eBZS9{{64? SO O];0֌-$!4էQa4K4sɻ9a1אBs#@J/c~60y?ͪ]!^Dr蜦B5˂RxiXQfvaB"haeX~$ 8PBi]*F4> stream x\IscGrm1SsPq&;PA6F@>eB*YKKKP^(S~v7? ?Vśw7_"O9nd^hh&߽_~8o7&d `.yuz>+&)?Aa PLԺNHBV b0@:ZY.FNE3uGHVrDRLx@#:[?qdk=I;)w܃ڶa&XEhXW段h&QXwƙӲmZ1jxeyXx/GQ[’,߽rn%H4Hqq-6O?jP_;pS{>-NL5]p ^I88:nS3L'mYL(.YOfqX? IYtٍ~]I[U=]wZ~dUsy1KEVTׂT4ͨ)FJWŧΨ! ζyG^S:Np; bF>AL&4O)ـIA8?"~Y@q9 \^^<өrt5C":Pɉk#/τ#+ Ȥiݍu^aCiA&$+Jw|[so uBH!aj wX'W0#r",@`!ڼUdkcRx+S2`'iBx$Dc‡ w|${Ȫ12{`Í"|n͢'4 Ll_BLzA tKɻ Dum!)'CB 3<?[5LJWQB܊j0g" z@O 000]M^&8`dI,Ә"Qsl"1XIx`RN qE ,5T7H*bې:c /FPI$"Zc.M+5ƱНC]²cyy؁0؃dEdØ8jm]!d`O prǑO8|Pr$ˀHc"+ P!tMEA\~GO"dzR1LBSf;T$u@X Qg9f)U !ynQa$R5 Lc=hLk iqo\-$g bd5kT@/T} $Tq( % q̸Y֒?42Q !cDDApcC ?PD)]f#ɔd Thc, r\! ǮBOV*T91" *Kj;4>C`ʈ8Udc=JZʢH6Gx]uulI l8eCHٝ-E-5ȜfXp2b?"s#ܧq}!:䒹GM_uL60DVnoÂCgyRa s4"46f38gD <6c!#6",0$b: ca򉼃8= A8 Fzڋ>.rϳ^l >WTXj=V8lP\E<b oiX{ɀ8B/8iLV137X_xIyNFx jX 9&5al{^Q `ʞ=GOxEUBf5%":f-:伌zfȒVF>I lSMgoL"NxNYBX\8wGI\*)hfL@?&E>ҏNkH2&1¾>3%i/ETe $H 41^Ɯx$ UGT?sB$weE07RNy-@ٗ(Rs:B>+4d7 .\82,/0;, d`JjnR SaSHk#)!`8\p`MdB1Cb(WCe9>mh=[!Bh̑r.Aïk 5E0Ör37 P{S/"f%!~y_ZiPG^̸gZb^1+Kh@<u9ÀgM[,z,D2kag*4x+M)DYǥ*eȥM%$n"478 Bh* J9OAkDgXS!kj+ jb!;k<rʺ`D Ykk 󘴛ac \ZM*2M,50 eo?Kiv7Ί 8R.3VueVL32PV2Wg]"3S"•̎L1ǻ'ܧ.G .uʸ  |^eE -f#UڎRmD5k>|$l@I̱t"Qqa%!KD$(H^,xG@/R3d^#$qQq5ݨg^V|^= Dqp$oia%ҕL&#:;dcϷ#E9 RQ灇W 1e %24.x30ciPс/6Жw/2bK1&cW?L(A !FΓA,rrsRc$oDͷo r@Lƺs.L%[V VaĈL"bɜVUUepRH$($c WYK d+rT$'Cx`/J2$y Uk2,V^B6`9Pmduhq laH|')XPֈB%qi4F3=|DPYV+VԔelJ\e} Q嵌%+$p7x+;.[46j<ʫbFH10g0el,CK ݎ[rL%O|#FcϾYT1bFd8I\9ђ1Eڞ6Xt(q 3NAd +9 e\gɔ qǬQLa΀Ƒ&k*tK t٦Թ2,;6d(Y96錘A?gI6: ˭X.(u`Yr3Vv2 _oCH~8O 3KO5Ҝ/w yFmҿnރpX?I:9GOh%~[I y֥ڍ Q$8)zϱ;UjB:?l+IAoy'{69Yr[ˣ6}Tq]+ʩ|?4(pKG~>gԷ{ez7Bz!֍кxfyri:??l7)_5CyICS*y./{}A _eJtqp(7tWšEGtBwςNhO7o 2gTTyin=69|Z|7~fk;Tas-z𻗚򊋻xl65ƻT( gHz||=<>{䖿Gt]n:/i+5!Gx?u#Ø!45zmFdyUĘijEc eGz_aZzaf]y1_m]c>6LTRe7j_ ng|GRt a^' ӉqMn L#á#'*x;Nl4SMSK{o%Ϥu0%ݔ>EO3/}fR]nīQ;̏W"էi$p{bODX@=0$T7ιٔrgiR/˚ǮoO;a| nsN 7h7_9cˍF8[tA 9UU5C)P9m?ޑ+'t7n[1(58Cp`n;QW*z:Wf0 *juf!*W7We=&gUC%|ca-^oǞ7_ޯN?Ut4H%,n(3% 5Pp"8ke>,O"saࣖ-SJ> stream x[][q`߼kkvoֆ 0( gŘ3%9ߧNUR _UutLveO^^rʲ]z{ߜ#TL72JZ>oo/u廷EYĥޮ)L#^_|&NLآ;iP¬?]vcNS/h2L3zsͿ˿?W~M?%<+idlvuGHIUz>l^8M1:o6u?B&kZ?ꤶIo?nw=> a>mw;O:PWsyvOm᛽׻|s=nXh2G]ioWSs~VO1w)j~WkΦYNJ0}S ^w?Oϴ"}4RV>MiJf>ir).@>M֓دLV\eepoPR\+c4?-]ŁW<޻All)tl7 9iϞitܮUfJ<4O.f3NP08&Юu[__+LqQYB3Đ|K2<#7rN^>4iWTڮ&q<(VqEƀK" zɦ-~\V.<j{ @igVb6qF yٵdgK.<M#T|XW4A%i>ii·4xb7d;X-2[<hۈkZyPԃս,ņ3#ݫ|itPr:*<[=G>ۏ;+:av|92'`K _ j_{aPos͍$>g/g'BrXL4p[zsZf(iz۽^ 6_ iR/!Ey㤱RsĿ7 ^9-j~JpxΝ}yn!xTu߮gjmZg%Ҵ$i, j#PVCƄj#Q{GÔTRi~ۜ.Xz\NJ;x8"wgy&XgpO9O"s\:]]:b^kP4¢o pKZٙP*̞ߟn;[;FipZHIVL8TޟTlS~qn%=2ג2o:ֲ˻*!Jm?նy6#ph\tYlp3%_?l$R[\A[ZrU\Ga[̭ɧyie裌0IΓ`F:[Tzlz~P&쵴{ b`pW68O4Ϊ3^|^*k 槎$Q;kd9?]%8t}8 .}\7ߟKqPݷ_*7 Ck}22s||@Y&^ԅzcaơ*eprK3E 0`~Ōe?v;]Zd^ D<>,My2Nŭ%L.-|NGD$O[*x fyr޵8oN:k/ թEz__E//~|.W/^Ph2/Tj׎qy/; =\j Fc\I:'}tS?SRq&yE[p<O; ZD,񆖒5 YCƕ>-IhetΓ[Y|ᰔDbhMBm\2H 6ȭhG9%.j)azrCIОy\ttD۰7<&hyiHu-S6cGT gmʚ4!.'Bi]It<ځΠhm):" Vᰒfo>!I/z⹌m *:lϘcYU5`n74ˎaa8jSς6^;*̘֛ XRMf!Jl>gf' {i>K~dr/;7nvp"gE!S7Y&>{gY~>B±q"FmQwx|eh!s.*ˬe )IDDk/sjh.iAG!x*F%KBIl U[;k$7[3S7K ffۜ' ڬCN=h3V:MɎ_+)9+7.\o ! Aa()TSƝd+9ȋ ˇUvbYiM6Eaf:P 2*2PQJJ3*3HX0K gZB v{#B ()d-yUq ̌,'WQh>Miީ&+0d [ M\ZJǡFaB8245+lЅP49 ee ){raR8)Ɉrࣝ9CO|ĄJfЂ)PF-qntA;MP1>RÙ`t+Iz/28DѰ!ۨ8m's!AoY_bS9`_I&33l+D1j SVS:^:VR`lM@ &1_l*UCҰ`숨IpƓ #+RW 8EcUX/E_`Ep3Dܦ0S$Ιoi9xfD"85NSQuHIvbJ&C G%zYY7Ћ f9h>A[у,Ӎ#> stream xYkoDsď^f:wϔ$X $.RxSgcHBs>&]TiNsy9vc?W9kc\ή~xTr=s/9t^0{,wo6]_?gVP삛%Bdme1)YaCi!͒=ECכU ]ۼi˝WJ9&%8<ȰyJ"e]]Pč |B^]iTdvǫo;{eДbCZ0L2o. ׸KƯ1E_[{@L >|[R_76tD#c@_%LTUz[dQHC,ݕPQpTB*@Og i8$eFq_ˮHrF ٗLP@/CB/nu_7PvCo:;B aW!H9h "ĉ E1 ̑.}  6H&ڀm[=y)fB֮ l4`;80h@,V-?9p#܋Ze[NNun[y9 \"r. Vұ ΂d$w8pyaPɥ-Ʃ A&اWYcz?6x@ $ܽi( $]?['D_q=z۔hհ{oo.m6wmr"`|6Ԕ`ArĘ0 c0qXcy\8'V:(HO" ~N!Θy _L2װ\7[7Q4Mz_ch?vIc~|4'uFGHͮ?H'BYU]X cty$BBq.HO88ov$'FV]n] 3:G{'Pw-J{>" 9//{ARY .K٘@fS0&Ȣ|tgI7q" ZP<z/M04I6ht:4-7XUq.es1f‚K$M991_5]n :endstream endobj 221 0 obj 2052 endobj 224 0 obj <> stream xYKs+[k1O\וG{H^  V_wieKU mW+_=|Q/jcQ 'F_Nyǟx0vwaᣴKrc}ܳneM[SU0xBBcd}eݲ"BIlAIIY~ymoPӥin$HTvIYdWwUVR(ϛV xEKRe8t>2]s.}iy^ƪ RU.I5<,  qg ,;(Hݞr"r8v!%rXvu:Σa-zAB޶@-;e>>4o!e!eXdl%S$5ɚWP V;w ؿ%E(A°Pb=~4!qyCQ&kOˋ8[}$d yf"S& Pq[:S&>% YħQap -5pbKYF)ܺ(° ՔY@W4BXoyeO=0 T /[\>alÀT=L i̅Iŧ'x/GZ]@yL^:;ݥ{;z~ J=R:NrL`MXeϗQ6l컶YHްg1rVÍ9沇C!Q5l_C@/X_薷);q|sS#R_]JJ"ق ,leer O[~>3J@:gzst{_GE5q[B-EZ4 -m"&oS=ڃ{qŗ_IA5P7 DDd;)u"`-+ٍKS]!@A_"5Nf>4IW^Ehv')/DP^M6SZ_ :wܧL`Q<>t:3B=1(mp5ۆ&Rmn$ywr#ʳ[bv_2c9 FdnuzJ[B}o!uUǡC8uVǡr?%g8"."[Ңj7S Cr1v{ _F2(CT^Lp $h4\zt֪ >:R҅gu~%n?^>CUPnm~v҅[!㎭s}o =~̑פPlbtpm?l+Hy~6ܮ#?vLq)56ڻ—TîE7LqJ/W]O bHxw),-6fd.n녊H.S$ȍ=LI5p.bj>q?$endstream endobj 225 0 obj 2423 endobj 231 0 obj <> stream xZ[s6gæq!9n;mcOZmƒ\Jtw<g 8|SΩqٗٗyjֆ_lAҹ"*c_y*Ry 8z3{U,Sz5{%R[zlvf?\|` n%TTNxZ͜=?\,2RF#'9տA}ftQw~4ge\bYpo=Ub.&H2Vݠ8PB][U8#`mڛRFh8bAKcT!HX>1J -Um7I i737G(G'̗Մ)`2nLz1zmvS7[yr_ 6fR*7?#i8dYuVkqSVU_-?r_;QŠB͓hG4λ+be#K 6UtrFB}Y?ՄSPD__ڭ9_#ܖ*!A$#"DP,ȥ7V{):\ &ҾV"q,f3kTyЧZַO=K3˔g:sITB\ZfGc(fNC[Hػw۸SE8V-8A̬r8y}Ȉ,<1# `ō^ Ƅ5)Mtb ve BZ2vSKL,8{ lQ6ظp :kG^Y(!W!Q[^ f) } P2~.n*# }f8QR$/8$r(9[zOI,5B(`C&]'JWSbXl灈Y{"JοTP*^RbkNzhw`:W_+-(dvBO`[s͎qs:)q17!PHZ$᮰, f.頉ˁDg H LJm8:>7#HXϙe\#"x3Qdf癯\wvV-jឰ-2@vHĪusǐ'#6/W),ǧWG2ZnC /@2*4W^߿p SSGP9N`=mw}{Xbl!S}kHc Kh|; ECpw_/LЁB؆H1^M {]7 +>z_ov.fזU"kܬd ohjڨSQ#cFUdt)(ONK_6FhUGF?KBxd? Q(a bW;|la Y&ع m]_v*a-uOly 7Ns/A!b8IPhɢ#Gt?TkQ+4_ZMˠ&nlU-u\q Q+n_4 cC:q"AqzJS!rTUGbt,? sԦGhKX޺mpͼ:-/C@'`b4wSy](귯c7q}H;!![(kv}дVCOC$;b/$T't.C=l[Qy^ T= HS7kMpRxTGO9z5> `PߗՓK9zCC}v3J]JmO6{9QZI&گ$QF(egܟ^7a^xaA&ãl"v/T|^]9\"zEr{qׇ#C8|gY$֤U[c %V%Db2~ \eD3ؤEendstream endobj 232 0 obj 2709 endobj 238 0 obj <> stream xZے>ohf9N9RMRaI.,}z01(%)Uy]\N>%lA?wti1gYzOad+[z\=0[E p-l4)EOܬ)"$VYm1N8!Jd,FuƖf׬kDJ _'{>.B2Ua FJN)g~]*L'vo*4)Ft2N$,!I - /^\}}݂]囟_z\:c* }v.;1K7$Έ.rv]RU9"Z~1F Uޙsc߾%V\swY'^Bݍs"ʰF5cp(Q0Oe$%RG;|~lW#"T ϭCOS3(Ɯ(=U18Z&4".p{han] wm1@B{ތCj8jP0=9w('W#O? /JYi0°/X<sZFsyh3fA33ENpJܐs#pTEyt1Ar'Pv2"%a| 5[+I %ύ bb$`V>md!~ZvHD~ﷵIJ³ [m[Kb r9EqrGBnw 39QB{G;.a6svelCDYE~(ٛ(W6*G:^nl] bFYYީ|c_Mu,|Υ?ͪDžBj )nf"r7dKg< N#E*@zw7%B@nfnhm#*AnhG/KMejn?#RȍW)VK{gBc !rD,K ]@H\߹1CNiR,G/S(fNuaQ =Zʿ-[lG+n`=)k;*Ӿ5$0~q?48YR@'ض ƔN`)v zqS_H;zll`uJ m2As_4+6BtG(+9@ %놦㶳WMXe<޹1n]T9gQ Q(llgaںs gqƟpCڣ߮\A"nT3pB]>xJ}дܚT+3Q}:3Qb'`ҫ(g;{dt.!ӘX9&-a]GYUȑv] kts(yeL\NO Hw*;8{6|.H4뵏*L_rg1c]Mp,cLUOsrt%<HPb PA<]2S5Q>)7Z"XW"k|ǧ)4 \^%6s+>۟h;qFBB[CTɴfSl*8L<=Y4٣(#c {trhGjVOڣsG_lf(TN1B1z C=MfD_dx͇D69!Eo( i$_kV-bBHtfp檳(9zT%|S\\ܵ>$KPc]S&i~u}3.löٻFu!^ܵ{+ʣ3ˬ>+2";sH7uH Z:c)Bl1;%8#lN>_NBh뛀(&?Q@`1ViND?&z[wPn쓭Z#<}Mx"}Rǥf(@9XSK]b6 S2L@|C MTg1 (&8iꮙ|vL[33Gf1x׌AM$,[ޭ{[3=ğig> stream xuUM09[bqV*R++^dY% U}ǎ6U$&c{o8#cuWeˮʗl$pnT| $' Es4P:o~fSTۼd3B  UScѕM^.(`C\ jbDd]ΧM 2%Ü"`(5حdy^ml,`YeiPB#@a9X :Pt ZU! wG{K}d5˪8N b2$Nzw:6ݤKSiT#HT u.a:Bqi WJݕw;"tPus[ nN5A|Ng, j~h v1DRcY=!ˤWJ5|-^ N4|v!7V J Q}izc;Dl狀ؽz )mpH,cB\OFm&RaH † vPPt]'Zeo^Q1k1lM<.}D0oewQf!S b=_,@m4уBe]k ,cz܍f.z^89aTK;`L|$#tpJLni aFwA<fCp&Tp4Dl}pJendstream endobj 246 0 obj 731 endobj 249 0 obj <> stream xM0 Ew2M8TD'ipc3*Ҩj20^د "aº`QTP.@ 1{)J:C3>U4 *EXdK>x]/AHi _^\~!e5Βmz}|R4endstream endobj 250 0 obj 170 endobj 254 0 obj <> stream xWM6BԦ=$A{Lҍ(֒`/)GrY yo|1!@b߻jxL vUfX0J1lX48d*A#X{X}ȏȬ;1/ʚw\$L6k' {!?5mgOPk_{kd]y_kOiF1,c_hu;d$sP%xC)޿&eD\Bc[tE @j35UҐQ%zks_RC~rtwV D'kR TFtor0#ӹ++w؀bRz0K͍ t..#eIR}pp9<>ٕ]vӄ7P\(t"8UrTxVIEEx ɽHfnM(.JȐϞ!4gc0o+5ɐURSՠ<|PFOeS cji_$ 2잪8(&4TE`ۄ7xRKQg<` R<4σPypU R;!BEWM5eToyLC- PA'Xy)((izPM.~N}!hHI^~N0x,׾)\1/G(i0*QI ==((֊s.B>)cFinb ,SYla#ɼ͠[5j텓E]snw^x6]1B}Q} $z\t0 VLѡ -op]) d_pFii7^n :Θg`݆).Qg|tʮ*$[P\B\P}E?xobg7S>Pv|hfbEWd !0b7U y#^hQLS]Vf4fn4e|,z kmY 8R6~ؾq򀶬tyu<<vaک+(Ř_*mh( T\/ǽ|2Os~Za/z&Ȇm<$K6uPW9X !- B0#|sZımvE$FbNz kŒz<5N}]ڋ.>sapjp|͗؋ 72v>=kt_m^¨e0o㶅+ߞb}a߳.1۵E%>ϧ9gs>rخ*Nr56/D[R<ʦ<u_7 7[endstream endobj 255 0 obj 1375 endobj 258 0 obj <> stream xܽMf;sq3t9&vD % WrpډeaZgonX_,L?O?G_|s|!}>Ge6׏oo?cFk?_uCKJB,7F>k?ǿ2|yui/]λY3gh̿s?'?j㩏//>ҏ_7_ÏM_7iÏsOv?|9GyF^>Si,k졿S>xv'R34n[ Qnbji>Pw.+ f糶{V_lxm>pKuSMdiV0}9fwT6x3ϲ!/ZщS7a}Q/ h_sܟۓH{YIo8_{m3ޕi('d6g)T:pLDHc1p6F0gw+&j|,7pc6Yv(x?H/tqtm~xzND9vŌ="'=JI{h.iJ=HW3F 0 8gRح:SkSL ^'n`U ?0mrs5P ߝ&FE! 2ə 04j/z8;Y|U׷)YAiۊlA;3 P+A@vWj&‡k\LBLAJcUqh 5CXZo>`>n8 * ,R6Q|Ee cSv&&4m<`W+}a$)ȭR+(W?%H3MįC4BgrSjMcLRTEmVh.]f`.{="|u0 gfSQ}]EcX3LS.L~L"zgV/UeeLpD%o.o8DF/pƤIz_oV{ÜI{61/ 7/v3QlUh"iΌ6%Q|jmkOlBZ6z؏3SbAw f#(4o`5-jn-FcyD:Lhsqښ\FSFNftNVo>̈́Y4y7.~16t|6[1{#Yw{.(glA}yk#-aV7BlZYKzP MX7R9Xa/R=j͕@+B๱kdDkVex=0/q1g RӨŞY8ְ fr`Qo̞uDn/#g7F/%n+>-Fs` e"hԚg+pBN˭9#Dɧ@s&ZʼnbS%ߤ6<f 08yrm+U(WdlאF\b h8- .r4X/m3lwҙL)}Ꙥstj j0A \í{)G ~3c(+ug`q=p04.qǠ?:tc6|Cq hnjvR~ɏ9`3%`2).A#5=.*sf6>[An͙5;GgnK " x @OڐEx`^թje*IT/,:@A[GԖޯ:1xPeMm]ɜԷ fer90(y"zUg[R'ڔWA=NĘQ /tUdAuaI\ݍȍZr9.Kʩн`jfsW*s€69ۻWSˊ'w[:̅se[tph"!U1kN/M<}<h~ep]%G.(4pܓ1n0U5.؃D'?lސB[`10' zcbRY4pX R?qvcq=D][ף6`MJ* y XMxY$[u'{e+UNVlg %7(/k{YN֢_ٗUH֢bc0 ]3{L {Sѹ=̱}t[1Ed+ e+Vw2v‚s|h)l fc4seFC1lX}X3b!_^WQQbWRLĎ]VXtm +h([:V1Z XpT340 T'd*6(LHT lV^WyZ k-{3Gk1+-[ `-Cni5˃J_k.6L%sA8̅p;bq\{Au텉tbOiqBS~؂ $k0o F! hkl|/٢ !۪#`j*;*fGCvuv_WfբiaoO?FٿXJY(6jV&+"1L|a/loy/.6s6sxb,uC j ,M14:Y6XpX7( L>n@b6&0E7o "'#:8.":Ur9xS1`3[p\g$p5k*:{cۭ/7d&i3bav;2lۨXx1657<%,F)b;mBm՚e6˃@ Cl䋉i\Z5N?9(D7Fl ƹEOTrV٘Q&EBgHM)ȊqR!!3yy U؀ Z7<8Btٲ0[O@6kr=0 Y,F37R%/$fB%ME76H+UB-bN9dV)uPt ,0ʉ+c ʾ)qeAw28"C0F^ !ghf0vFY*(S q}X >M2ck"ţCYϽm\|NR%S:&*ȂsָJOTMm3' p&o;QMAΣc"$LhvH|(cٞT6лB魚NKoL,vlpmxPqjo|ӌ )ඍh-*& ޓHJ;NW+m> ΀&8`{ HTkE6Rլ{Xj+&d3UlK>0DyU7kaU-pkښtJ¨AxLQ]A1k OlMn-D*4% ӓ^w,ΩKVg6b"mbFR{˔Di%~[;`55~~ \fKWr_ÀF/HNZyKXܕ5 fa' uzX:-<YD %HTRd_^C/\퍃A94f.ݧLѢ6F\XNK$3&#?W|O 'A ֋Q`3ҷlņ~jTrڲ>Z%ȄΦ4nR4#RmEalxX#}d?l` Kno궜*)BM|?vCwY__?l+\0qAYz!{38Re.wD0vmiX?4p*L,R o(֨rhp qz}͍-5]n탥0~˵k#S+P( p5mj"kzZ ]U3Zٖ2Zik(- K^N B.AB FOӉa׷SC5TVߋ3+?9fu&Klz2f_ց=Ti33*Ξ+[uGSẀ o]ixYg~TD /ŏĭo w5~beJO)EgdÀR B_t!b%/z*U]c}[DV(۵Q t0[E0ݥG=dg-`8pUh A/ْ'2t>$3.´ZXpeWr,ظD/0ܻ`kiVk1ycm:@a2 O'mf"ĶJ3I;49TnK¸/:1tGBOP#:3(Vl nxJ#z>"hN˂~b:(?{OTqK/-}ż7A騇H}O"fr㋷!gYYD b|ULLNF,s>ɢ.Ŗ0bb!BYtxD!Apq4`MVm8L, xuar)Vd8۸ I Fu|J9-뚞z"U\J1,yk4_;fsjU\wO^;1X;tlFOi,S\ֻh9xl1SZq.p;Eš. ,U}Va/4 ڒ-q0UE.&iR)9/8]MТ9x1ֹܨ(4);X#RmX3R֤66Ō(,8ā;eL eZBΆ[;mQ GM@z 2^[v*ӆMǻ1)szRt0w;`Vyj2pK,K.Eln-R,W@ HV '*`ԧ~f4"}Q|0|Qe.~?BC\wNK#Xis'$$`2̀%FB[vSg`8o &**)7-.jxjl>C@+/iuj>qw _ :̻S:HtJ(R{ H::N:6-%)2:TPXfITf"*󀔊k^R]tJ-R˒PXnj:VHc:^9Տ^L+PF:hStJUxuMUOAԆ)(`GΒ:jOx )uJiSENSrNA fF:BV?^۫A`*T*F)SiϥRA{,mX嚹d!,1 Yg8Q1dNAqk)`E2JlxZDxtN,D@Q1kEA/! Y! c=nc*eQ aʅ bF0,fp=aa1d*bb|}C*";|;d s5k \-Vl('o%Mdn~ cELԦ7KȃM$%QBf&U¾{=}/;['aRsv[ {6+mS9363&dž$b r$ls&-TO"w[d5.Z)\ 3~@DB(A,>l"Sf+h[N2\"x2mNUFT `@l78U |E4 ԓ)r"#,]Xgz}3Юf0Dm?pc&tLR׶'gE6o2Q&ZiS57fhŰLf*\`t(eF\q Z>E"2&(abLCmȡ\gkPٗ;Q%BgxfڵRg6\f2,!]Ř/6֨Me88<"1TXhZ@)KLFcb} K !I`&{!|ELbd9obd5?1΍8<.g>j]O,vi;?[g홳rmH@4)3[RtV„tk!y1;ޒ1-J`CG3s6Lk4Jֱ)$paXbEΆRdMY@Tfa /pz~ ނ2ut`0C+Ќ[\?KKzF;z4Oi\AئB$:ʹiSytmek]6"(!s'5{R0S9J%I2i~dž+;B[`?sj5`ӻDɎ&|J˃ݷsvg7Z9xU|@N&! Ǩ c3H+CFqgȝ[BAA&S6/[y/EL%~rzcŜ[^zE6gM/Ĕhl**cC=t']^MlmMPb#2WE`m 0pVX#Pat!=TJ9&1ܓyG *ؐP]n(;g3 eOf NRt#4+t,cM}KZLr_L>6]жyx?|rnyX?]!"'ܝrof*_9|GIG' 8ϮPF@X2V܋(\i.(ǡyw_LaLT"#q[86! sBίyPJp<٧UxjR7Mn卬vPw&OQ#bÝ^y0lFy~y1MţA,*Aڍd1'%<Ѹna%q::2dBfx8~"39r"Ĝ'Xu]'>QNĞNČ%QČQEґ /mFrbԱI91c0:1581a,1<NN lj13f:{ctb%sT宅Y[ȉ1i1%!Kpb]Jpb'k S|)6~:Y[ j)lzL\b?C<׉W sL}2Km`){AQuRB7Xtʗ<@Fh6*"m>٥SR>`@<<kʚs2+dY̚CzB.. ܫxLB'7;^g2`iy{R-aL> qO'|r| g`lN9r ~.pc;M.tIflɎGkȎ$[rQt"c_7# Ӝ&5 C 9x Fіd2fb%;G)^r0  1w"'=p%<&&e|R(YDt'1 L'E@y.*%-VHI >2`֗úch DQ ]k~&v7a}t(PA3nxAr6P{㶺^oa!X1TS ,6BŒc|aiYu&klUOToe&+d% az$FW1AɑX$]~5s@'OfTƽ$B,x=2)ZOui$|-M99q2pL e*:İ{z7 -`"Fg*W MS[ZL]%Ӂ딃m '%@&B>b)66ǧ"J#\7+rV(Aus$o`Q8m_)m=辷{P39#mݟW,N, li~y)[v Su -w++`Ow*VZA ْu1MX^+0Ut3Wxm{?ۃS67a#kbZGEON{Biluc|3*,9&[++*\8W8 s4  V'4?`%̌ .x1@{?H-N/VzX7DvɂȀ+ f;ռuaK Q?@l{Ss|Εof(Vb@K20 O]S -^v~;+WVIXc^ I-^`}¼뜏O`bh}VX5; !x9π+, %SFƊ:(vg4|rer̳X^, ڭ>~CJ(pS$`\e5Xd5eX~uC]w:'FmW|s{;&*YLky2 W Gwe.hOYLdiUdJL!i[M!mLmseK6}bQ- W"`.1b]?d\]XeW&AeqWWڸɡqQsũ1 +n%+χ!`n"NpXK5{Ğ c'k= tAm6vgSg7=؈V4_LJ&\(y=2\go(X|>!Z8|7!ss}dlɔ_כσxiXozpmzj wŧ2N{ZKWF61`nQA,̻F, b_sK YŻa/i=k2B} mO:Ahf-]`S1ސusiz*->Pw`{^a"ńB?„Bų1BD )ADNV??%81`/-ѳEzd8mAwv}-H,=?B#Fe f œ<1Ȱdo;]qc.hMơ74yLWw+T_& ܁gG:/٘ŰWxx_&˿A#! bo\~mÂ|̨>\n;ce<vԴp;`x?R 3l! nÚ)Sʼ80T5/YIvISg^YS@䋙H6L)ˈuω+Ka >.5sH'Z|,^2XTK"1!@G') "Zqw@Y Zp$7'_mkuUʍt!qĄ$)&۲GɆGN_-<[[Vzt<):8 PbWb.yD@|UT$YrTi^x@&KĘ*1ĺblvSe" 3y{~hiHձK Qd08o$v;SҧIj?0H*'^k!YQ<vf(,,>AN7 Jd<0P8`0ި N[pHp9"昆KGLCE JNJN>q P!1t22 ulƩ18M|9r~հ,a̴keq]iģ8 LyX!WcO 0ma$@ːMMJ32RPS㸝@YPyqON"s\>gLK7Cqƛpm1di  .toi={X"iVQ n j 0M};C-ӿ8o}[ E1z. p>1Cx?v+;BG/xx2hPp#ox!CF;0IAEbT $Xahd" , f Ç+9`*ݔ$i! ab:Mi0[t>kh8μ|ELc 1 2hTXNzb.L*D/@]}1/e|ɛh6:l&G}j^8ahr},Ǩnԁ.콘й}IҰ*[5Syע@BZIplMPjU F[t6Ч;8pN>Ry%υ2"0U'?x"fL6lUY*}UϙV F Yz0XW yDLc6wJ:}xi0AsH\2}m}rׁe O^_odN :1`~ȣt!Sx U%auZtʤ>r ;m ;]I=d9Uy߉N{Fp4S FHMg\6v]RB>!`O-:sZ1&s+ע'&G LZ # RmAYIQs&/᪒b82F]wD`ZYK,-(.7pBEßPb:M:VI !zfeRXfaGp3zg=$I8D6t3{Ga چ jz۬E1ʮ9쀢H]iXa ,鼊גk$z14Qѩ k y_2]AU= Wk-Y(PeCa}1yi奆S?\˳}@CIԙ0N+KTue~GWxbN3gz#6V&kh/}#px333oka8D] x& v1IqGԈ\dmOddN]~Vy# y9Ƌ!Fpj=1>rc:{'S1ؤ\بYWt38z9R?LDpH>v#YC+QV-k] 8fH"'6#Fغ?lƸ^x ׳ÂJg؎Clp!ba~ůs0x+ezY,rqmD5"8k˚=pPޏNq K':5b;e8 G #cͤĺvrI1NHSv]U6BaX{{<ߤ'tqTPd*>ri3wdq;B](bg"P"){L{>{({dR󒲭wN[ǣ}Y9q' J\ Ȍ~_w}tF `>Zp" du۩wBfgB%<v-UE,x&`ʧ"xr^YEy[wsh"L}VpƜvRBgn:mCVlXiKm:Lq6lW۔=7q5jNc]룭efn+Xf}Y類`\ >c (mE vl;=;Rpf(($/GԔ5Y ? \0BU  tH4caX?qtLSH5גM7̓z2Z9_F莪tg}'.l޽Rt(ieXlaNJ=yMXٓz9i&/Šxi{fHp8'6% 1Xc# R {õGe*@DN<%W;"_J\F鑣N#;5EֽƬ>o'yJhJ,ֆ"+7=JfF-H ̆XZʅ̌_/ʱk9Ń)r̫FEVnd捹чw}]ԪD ֪#=&F&3l[e2۠2')Y1c^$f P/BOIV-"Eٽ5b5θw99Q9s'bSmؓ\0(a@Dx,qV7mfUI [˃nY{h2Ka6N/ܓuoaX 7,X#k)>f]u-YtijGse1/NlÂ:f3$KbH,f{)y6 s)̘NxuLatZ9`.ü 4$1;g1'lG 0yaZuS{>=~c+X0LY~<[kXR<~yFnI!d h' !C+bt14z臛+#)<2z"1̤ˍr}r3O~-&3-6>:abuNQV%Ɇec 5 Ų?|at -tVNګiZ0f X=]?CJ}IfnwvMW#Lmu1oE HS#lYP_߾n}eZ>V43_x1ƌLbO5lWXQPV2wn% nWi絋3ߛvz0N)]1N~[D鵠~ELRRJTe-X|Cmd)Ch_g?vL+NC.Jxԧc+N@pf mBnЅurz 'Q'Wfkp73|Ny,ٙb(aAbg#b1ӋRR&X,%9ddb)a1(X:Pddf7G ~GbZNC^7|pwM!hÙ!U=6\݀?tZS)} Wd^A%>C=o$nK#|6!sZsȬAT Yӹ|"sQK-4~޿h3v'Ĺ]y(V" 4uDR](TNu{.sޛN"9|b$9~|h::8bm&SC'wD(Ϊ5L%cԇ˝!|"MicHS/Is>wv~7U떻8^PsE'B昲t|ZI2t9X;ΝVY=a89S-d1 14AiyOj4qLPEg4L P¹dY |“كQ>BdMZϟ h:/ j5B ,մt(bF|-PgX(廋@ ImZRdYz&('i5cIe ӯ7G 8I)/Iƻ~ELv_L1d\Ӊ~沴 !Y!Q,ri'ј,ۡcx& x̚z,3.puqXqYx*sDoF;u0۠ν/ e;ŲڹOυCa2l9z# x06íA DWp&R \}Mr,n679 J9|L0 ! Npgt wƵn]&Op no@;|AAv<"}`*wdAv-ʃܘr-!{&~F_# ?1W]JM2!" ՃubPˣät.Nۗ 0 /n$%-# %c\%%g(%IF7Hs7*0y@o +o}w#XA BMkvI:xCVдLt\n5V ߙMAQ/ }_/z8S09eS*7B %b IiA!?p#+:ƶĿ!{.^{k֟q 7Tē1#>nh - -'7J#ωnhrC jϤ|P*=a~(>ڮ*7D q3hҫ+siw2\ת}ykաS3NxFڜҪxkh]ªU.ߖVS@iչN"h]4ItV\kZu.Zu*bj0תl@HfF{iz0E;T_iuBO$Qԧt>=iWӑB `(1'T(B8mYL1re:zi2'\J|u5Xx(M *#J-EU:9#U׉ZS\ ɅixR*IӚq(,O#ӚyOTpyj⵼i}[:aߊ]ZH$7ăR=J+RܣJOn蚒VI)0RMii9MYq3R"kqh۔hNmSZUnjQEئH6ee{i=OVe;l`e$J]]emSkAidrQ%S>H켝D?;dI~L 3}g5LG+|!?j8IUދw?f˂j MVa='j_^uo)^~*d RouV>B~.w loOV~zv8($1p!aJ"ʱ+ܝN^NؠOq]*xDl{8mm;cu`Ƀؼ9?K? &uzt jx>dSǫ`OIǩYlȡqKR)dujowTp%ω#n["oYT9䨚99fv\a'ER88gq1kajB'~pL2:+@mlq+QNV*=#CrDf5j4P(#4GN!D'vma+D?CxzUַy#;W;|+zQ RϋN(G' zۥ.H7^pκSW-%Z_S=o8) =1Wf8B?S L-,`̅~<-\  h/^'B?Bo+0\%Gg^5ˈBoK'z#UȯpIWW}s}ӣT}rZW1ėzvs#T=^~b{]r';) ޼OɛhO,O\0wE{/;&K\mA[x0]Bp.h[[¿0W'o:?{.qw*_:0%; <ɥr{haXWCTK/zjU:QRl6ռL_[?h;+]C=4i4D u)W +M+%qh*Ki %MvQJkJD)$8ʨ$(#zNڃ ;%l%a,%9ZxPZ‚r¥%p^` a`Z1GK8kFD[r~'xp~@z=~>_K 2_ExGOHzB)8t~s2}GZo?_{yǹGTۋ1l(lx0yU($}0?1)LSo`m֋B>N׉-ÖO}c o&5%_o>ǜ>oqBߟsWW=f4՛X`3<֟TkY˳ΒDdެ[7$T' . >%4/fhb )ZyH2 ::] `p:к'P͒Ȉ2 N:UJ KNW1 `tHTxxRMɰ54GXY.R@-b`j0텝}܏KZy?g6Ȭ@)I1,XlRTev^\ThiyūL\Z*X=#TH0 ,`l)ژ[ng7;e+v F6?1bٕ5" tVҵ6/a;< u<ݸ%;-̣ڌ?a[]6d;0v /vE[w&.GtddJt!h/_O̕%R"t`ДJ;E` -}{Pvxy)TlWNő~ɿAQz"EOAQ?8\GߎsG 8P}# 4 zA`/ Wm۴Gz0[G,^Nv4X5˛06hj `= r l L58u~Pah]Azp 8-HoP .b̃F(Z}Ft!{2JcřMNj B('rˮZ+H`p輦7꼬 kE1yRwE1]{-GSBbGUL檊YN\AUR8WU:U\U1KwT`Q)0^ ttpEhW` )2oʢ!/* b+ 'ajP;c*G_e1>bsM/m1!i- ނk i u(fU0ƙ0G<(œ* '{2|CZ[ ?%}x#b%+[Q c4X,3poXB)JRELMs"A"~]+LCg>M>7y5K܁/&2[f73 B.1n5C`d+ϑvET҆"Oѭ& lڞjۇ7xnROFj*kSa@ԩû4 cYfiHB~\-18yp)[Pԋ0_UseD 8o}[O-Z>{_+e4GEuf2V%kJge'a`#[L; RCO뭟GA͌-)?9ȎUOY0Q@?b"rݔȇt >#!!,157m/^Q%V} ]^}rp0ӎ2 y2 Z=< 0c#Ȑ2 ,þ?$mEiX$Z_Ռj0sip#/Xw~'T`OGl.U|ẸTG?œ~ax7 CBǯܷJ%;6` Fbed` l=\VuH 'ym ͇pfz #aA@K_ L#-f;ZJ[e1vԦb,#WxQol5|`DzU zu`Iyy;Nb]/97 c7}&~ގmzցJ3 )&vl8>v O%n׌ZE)an6*K|C4+ 76~ݧ]ǭtV?⵽ŏ|~t},+MaK Ajec9QQ0W/̼(T*Hb"FUK񲈩G2NO\zu1CJ2Γ3A!P{dֲrjt򼈰Ak Z}$}?5 #H;ꤼ0/p̆+H?Yz6Y&Wmj~~ ɚ-ytmzT 0{6ެX7Qקv)}Ny$e73 xְµJC&vWA)~2J@/ˣ5•KtfBSvm?P =\ZUt:̴|xOt: NO NǍaG%1VDCxW'׮;')voVP,*) 'SIS):x zkF"9:'`/\҇GIL__< !X#普R kR1^D kg~fiIu8**6\Y! q/mAܝśr4' =֖u`㢆hApq~ ?a,iXN3o-x8[b{p_#+bTo}ǜdBup3s9o}? <'o5gGYCm&^x,[9đ&d/;##Q9Q.0$`!'H?%@/@kw)jA[=MY݅R'F!OWV ռQffKRNQ u N\50Gu" cO-c;&r;:2IpdeŜ"qT*f~,R"[pṬS]21f`dl30݇A xq2|S$^G]ءi&a7yٮZl ōS&pcS8aP=TNҌUFGrSIgÈҶKS``70Nޘ΁J3/[j͇݀U^cJE[JOXqo8̷ezkhfFzp]'4cC 0&d5+Gr2!ř}^'x¸t0v2si( soL~uJG:PRK&FX.7`U29p9>j&>[52Ο(&_Ƀ!)yyaqrcec FiuxfMD i59MЬ>ZY\+btS YQr594f&RncY8hmD9=ezx5i`"[,D)*Gu{,K)|1* G͓gl09級S2$i]t3m~sºsOWY%eku1^Ǒ+h4ÈV`ӌ*O ˤ =KrXacZ&QVY,U \YpNA(f9ɖ0Q%f=db"]oEc%\xXU?vWb_z=3Y?4cG/4F-[So9sܶKa Bq/ /n =Pх&RTd|r I"XX 6,&U^x{hcccW {`)} &D>y*fgs\¤(1+ ?^eoJ~EMt|}мf.cr<5VcNyBIr=X ќ$ڧ=i2"o SIS02BpVu':Ê=]p D#ƃ0j=4TهƉ W[[6ܬ|jxb%4p8~fst2G `4ӁAH&%*J~OKׅD^&/) 3;3:BUOB/T P{]}pͬaw<݅K} s>P} .(ChЃQ|Q uv7a{m.LB]Y֕\;ZWق=5}84\WYRZWm8U@4oUKˤVª6 +aau OZXY'J&ƅV3OdDl|V<$Vʂ'3l4]횯+8,\X]˨0v kAj:I &.ZR%_=SoLnr jyx^ +cn-paeԃf԰j6,E*m)GV@P6ZemW 5mrZoKڮ<wW+f;ɱ'*v6g;˴jb#b2v)nY9:$’"9͖9`S. C(YnAc r zȭG}gjU}<4%ݴtiK|T},!r2^3}[tJrkN˭t2F-G-c5Ģ{}-t̳r[n~?]:r/ۘ U_-r[\+eyC}j}9:ZF_^K: X9 ot@ruZƧct;<VR|[6#T0giPki*f:g+(N+J41WԎ)PcyA&ĴzLdDx%-x2`s"wV-{; rS#ܴN|[]gV9-qWo4>mO\޾\ZSw =Yfe|OguGSg4w2,&gy%dom,g˒wM,sX%Q0YnhK25ݐ!*ZgE@D/ч*Z1e Fx Vepچ <[ɥAG[qmęiFotF K\C&,_ZZqth*_F5G?ИY=N h>ݯߵsN{;'|*9o)g/'s>6<4_b+\|,G:$XѮzXgQ_Vdi)K)]~܈>tƒ9u!4 {b*Dfrn\:ިaӅ.'?&TEQ#g# wƪo8]^R &pKta'U(5% E^ɜˮJmq=gJ;/2qEt*8^fá]^gPm;~,],ai,qǾ 1k)_Zg-Qöl4mFb2ZDsC: _tc+qt,9uGFެpCSAڵBIč(ft=NG%]L8M$;@b7eסt|)(+\Qqvp 5PnBȒ*uvMṈzSs3/ZoʵTɭ롶cҒk)_0}haI,lUv24aPL%na#/eJy%OE_|M/UƑl]\w+*˜NǸa%l˽kfX/J•;e {'_~V@Όl;]B[C ]#oY ?*ޟO6Cib !!S{H}boC;Gԑ!&>9mC.t}y]ClK{y\kͥsBǩ>=vz@rr{OkCl3[n>dNC(@C1RsCH}<\>~a8P1f~s96c3n3ԒSAp^dZh;G Jk.4&(=Bck_h |Zc-4fjB3g[hHkϵ޲:c2RΘu-3UVymSڂm랡?֍׵nsmݬ&m߻Q @UE*6wr޼7P!m޳a=9ӛ7ղ6o=:y;fޠ{wo -tE@̚g oLw\ )g ݖB;8y[8{ٺsrSm.>kk\[8~k ^Sάc-I6Knkr[8+~l[6+Q%JTuȲ^g/:yzmo>.="csZMM&y e6qL]&_ 0A@Ñ{cd^ r PX> 09^ù\Ԋma@9t[P/ (1TdcÀL~ca@9"(RIuǀZb9w `zb}, a. T^Ytm`f9!``6ưیa {U00/]0 ΂]Pa`:6|Z-zXr_(Gqq% p6炁)E=   9;N z \̰i f*H f 5|AbO~8_;I> #?u2}qx2 O$œCq\ܢiA!yȞٱx2-d TLdgRћ>SY` 2lA6I>oCIcW\bQ:0K;FW!TaJ{^9 Jx-[9+g2hչ[Ş/2nl؂:yclGebg^b:y]b 3-+ "h3lؚndR+Oqe6^l`3r)Y3_ۗ1hb}3&M'-o$L^@_UìY5٧W+6'5od|=s3̚1ed?|7g"uN֚rЇǒpf'[d5ϲi*k0i-USJsɤY)~Lܷhc㔦@ԔW Od7i͌zDw>S̥Q|h,3j$uZjSz* _NRU۸,Iys\۠0Ays:j GTu(r Edj-"RA\?`o@An aٔ< >Dא{ie—9MԿ*PrwjPs8~pmAy75U᩟ FO;`s>Wƣ]5X>#%CUA6>46(С-֋MPв ( %ó(Rh#AevUE7B%IP4C- ^㤈(=FW9&[{2 csfgxϧȄX*Isg&彠>{yPTPN2pZbC*Q0(CK%'. H;آsd) I/Z4կZ4@ܣɪEsݟ0Ds 0Y_w`3;*ǝ"eqƃ?p{1t58^\ f<_TeMn@ 7>%C~l#,+!sg\A@oVC%@g.WorM@ƍD-䗷 ]zdM J[XocVGŒ+gUX*Ŵ;XP 4Kļ9pk_Cbʿ"2w~BbKpʁ- . 7Aq}%Q??6_Y(c;KӚP.SdS?T*?V{-?#*:ߚ3Kg}T~nd];K"ãmTLK61__^xN_>g.+?-f.`*Ep@Ls.E׫]O.gPœD ԻB\$RJ[ږ@QLĀsXTIM(VOKF6uaf@3} K%Z@%rV{cINDl ;yvh2g&0X{tNH@1np#mWY@彜6qB$ XWa<ˆ  -h=%N@^8ц? Nq-'  "Qy3 :-"'8s*;İ*p"&1|L`cFAaF9_NSZ ]6TVVE9 UE4v#+e\/Tϟ>|lIJQZIM/xZ FgXo﷜o)țpoiWOQ5͛|gǜ*"Rr<]Π3w8*;T[N8 e~`g2NέRXO/y5]x*J+䲁rk\Rm^` w6ysi{v%-IxOU"Lf㛹| eJO`NA! ހ(&*tuo˰ D@Yl;aWFɫ 3X3OOT- S{]e]C֓!cy{7/Y~{FXplNRg~ZZVq9p+-՝_D߯w`3;9i{o*-?z?$s ՅJ<<]q.;Yy[z?nT&󒿋?n52ʌKprKP(&oE!{.X?JZʀn?Jzӛg ?~q. K٥%ؤc|I?A6r:ҋM)~|V3%MsW&/7'8QH?t@%lPȂs|m7g%q?Z/wG/B˲ӑ89K Fw|> \CP{=-C~WJPfXDY(cC Ltl}Am~m81'ʸDab5aJLLO0`bjS„#sZ3O'>)Hd__U`R|;<4y'<?tX l< 'uo h *jheUwg_i(M'θVB3GKW1ti'ٽ+B=E׋،(&r9}CS ID%ܺ+`Pwx稕tY[(p:΢bݭx>x 4p;w| Vͺ/!|C boJAhhoq+VR|9Z|A9;'FC.!SNÂUP[u-D1Aq`ˏYhUԊo07 yw=ƌR]o7cF1EJhLA]@y mB@o!ɢQdcc<:8̷|hp_Ys? cDA^,W'N\T;=5\09w2#wfݸFuV-= C=aNyg=h $*iϴV*,]( s84s6*HCJvyM鏍>\O7C)puPXVbefMc,[:aee".TEtJz sqd8 ~ע"2m"9C6ߏafSZ"'Y7VG }.I̪ TW᪪*Y a g (("J*cR5J1bG5 3}h-wq&( ][2i|W+hڅpi[($9(t;9lW)B(ME%c|?&/ɀJ-lHV#59OX\ɳ lUGkty8x :}qK olP}1䉈Ttvn|lOSS4TOzTo>y*$"^)_9Z&:C? 'Ʉ'w7Fe`\\]IP*;( f(qɏoZ7a7ɛ==Jp4AgK6Bs{"PL'aId ˼v"剿Ѡo'144h).8TYX߫5Q 5f]!~Ux>}# ƩDzQoe}u e "ɴ T߯۷{)3}EڛPd2_߅Y?Py|q5>hX"tWه3lYEGln5)fN9lB~dTgGx$c͸R#9sco줝 ]ȠIAN\z/e]j$q y7U}hrn_J܍nޯn$,M?([3V=PdHTI$[[v>̴m>cज@ڻ@J8sNN&7{sbڶ8Ϊٷժ~5Ľ;3' ΌgX=p87Z= KBmBm,$_nهRWr`.%[QY Z;R]Ϭ@sm: ;vHo|~\a tQ/qnmUy:>­c_m;Fˆ ˭\@#2B#_E^3ڤ V ՞PafnDpAo?a+U.^η6Ѻj_[4*, L:LVw)TX5żi]dձtG/ʫ\a:SD_D(@+-i #$OZo#gT,'"QZЯVAYC 9f5-D)9WIyK(փl={wVj+^aMc>֦*Đw>pGcoO>M#zNPW@rp'n1zE vSGfEu<`ӆo&csn~Y#lLTS>NkO<OsMƘ’~)7#>BnAOy|O;4xyV?:H~V=DLу,|yAs0/lzv?_~Ov> EŇY5(?r1WY.bo+gN/?G'fu/՜_~3wendstream endobj 259 0 obj 35082 endobj 265 0 obj <> stream xZIoF.zH Tϳ ݇igEcb-u_7ТbĊ Xp}o#?^U x_W[3UGBsx$8]iilHFj*GGFZ c,1:<"wv] hU_{$4&8hӛ0fc {PJJMdzy9,VسQ3jP#e2`jփ*>8y=~~NV_ \ *$oK8Hx 'Aq>y7N!yx3]< "[?2(ȹȼϫz5]4#K&JfiP H.bilڱnJ^̛, 밌*7~l[l7h1]1ؤ̖z<[^8\>t޶ti͗}q c6{0uI%?m|!`t!IU[,_ԍ4o:fkSrnWPmĊ*D Cjg.JN&29l9C՗:Ip]]jfPB m𬤾iK?AZ&Ps%<Êϩ>>#\gΦ\7rױcJ:uԱZl`,9l3(5^Դ#*߬>?F溼ofCC z BmQ/3=2cDk4T9%b} `u navĎgznjyHfF.ipQ\b "lg>,ۈ_fB{f( ݎw>1+QI{A1:wn|@Vr{ELrOMZ;}Mb:I71ʣta陽I^jҡ$o'&)˘p} n4_  nf/`nFpYx^nӡܐY~ n4=>n-Iz87IqK. 9;;O"2J-&9w*#C װ\+ل~{edpEN.'nBhn~s9}6'M*'cJ{M7Odӭ;`T 5o{>}Z'4靺C{&<Ә`ku]K;ZvY i4![Q' R 6_/K&*_ W(cAm9^8 iϋxyш u]A?^ΊFP%*^'uoD+:zSeeAI [ʬ\4J c=Cwi89Qj^?Jnˇ&L(УGTEdw4 (8"n.q]4vIOoT^nr_LT)Zգ .JbYeV&  6` =`TE]~ʞZ}it7R(8VTުʲj,fzFend!H,dxup\Y8BiQĮHz  OήdUSkvd^nӔ.6hѕu_vKݘjlȞLTSIΦ+ -Ri|S*ދXd^Q_,6B%߆opVngh ś>,NHCe$3 vݾD-Q>_-fF" ՕsHendstream endobj 266 0 obj 1820 endobj 271 0 obj <> stream xŽ]9g J+i{ij]TL:{Z dfώ bC2_ p=wӛzw7C㨱o CŇƷ_fZc7 ᱦ?>O>ۏy<^~|h1h~><8O;Cs1F4_Vo}9Tz}1t|e'Fo|×O?|_ŷ^G}(v}Oӧ_Jxr@sxOO/ã&A' <>|ʪ뵪@1ql=X8|Q>jqX2_~csxOc>q˸u!}&UqEUWO~|/Ku1ε:ROҜ?3,$ԍ!?DK5c;n?<'O]J_`6{ k 'kXkk_?8ꦢ߼/V}/~'59|1?6įczcix q/)ZMU?Z_gՔx_"ԊcKq1|#vCdP}|mZ B_>ӖjϚisN]ۿG&Ĩ%D[TD$Q;.Hurxz7aXb{߿eՇү)+>0_mrz{ (9Ч eX#M{ yAܐTljVjcm !2tć19gYϨz=OkHr$φNA&qG9$Aβ!nה\G:TfŬ.Yֳr~Z8X9Nfw~'9zJ- "\جj2 $\1>L2+G\Pkc$ؒGs8j /oT}@.cdg"f&exCk19/\T dVSyl.1gD(*gQ2*7aӋ5-l¦W_Z#p,6C!WH K8&r3Ww=JNvi,@n̒sxJLJh$ر/L5!g +wJtк_)TQϠ+v Pk.,_]/5qQ* V#<%!k_]]0:t j~xޙȓfQ쁦hSͯȼ N(\Ȟ'tzzUgʁ }0R'kg=sal=c>$Oxhn̶tU3(j$D}&}s*4&em;8.S7BŐIƵAJ]z k"[TSO)f2-f(m)q06DmŐ|ViUrSŵ M [Jd_I0j1Xr6#79HNI AAl:`ZbC&Y2r}d#|bQg1.w|){EZJ8 i֔Cül:PȘv<(Ԩm#z(> egY34m+ݜp(i3m]ԣA2y (6v":Q2/ts#5glVJN10ziR^^9i݈TZM,GuNE,G1zK'Mhwm}ĎFU4>BM Z;[a𢡄#ee6bjA= YΧcLq'Yen=b1{l9 ≟nFvfZDܮ0G;kDn UҞRA MG! CDKT.D2a57x_COEfբc|ڑ)q@\h"4zI[mds_YΦibnKT"9t. PM՟mEXZ4 &g1qH'"U\Aj/1'{Bԓ!3,則ibf`PQ -bihq޽X..av oK}79:d,*h`O/2H(ٽO#w*NVk^(Y7dۇE.RZ%dY]aq-=!FS%B5U+10(fU),{ar]\-S7Y81p56Fr^cr*%nl2 +` Ȑ5KPl vbIӆO/VlU~lM旡 T9X/5ӄܶC[+7k˛m&Kp]}5Y4k ڼ>U]HcF|Z ui bV2uk}1U1l;&H*|6岬a+Akxvȶ-#n Tܿ:]Ͼs@:D;/ ǨvL,7n+ 5Vq?Og뙖Mw\5"/^&6GTkR '٠]"9Dw!v25`D[&XZi5dTR,NYOuYvԸ9:l,;w]갢/ K:|nwGᎱr&- aӚK:suIpUvu^R8i;>4鯉ia }4P4ىÆC=(lՆ M6-:Z,ۑC ّC XG\+ǑC#fg.~`ȡQQG6x9,G6O? ,rxo Swf3;5ȡx;qh&[3 %aA~M~-AB|v!-qt<gm4C{̡' ۑ~`>$x䰋~?r:roGM!?r1^7n>I<ݐp9w#8rp<ó #Wb-V-V ;V΋}զz>Z#Vʳ#VۑCmi)S)`vܐk}b eoy\bxpIt]m$IKvvMo]]usM7 6|M$oV dX7/no_D4rm ~Kt.零[cP+iȯoڧ} ;%=NuH0 C;:Oǫu(G3Rvh/l[ZP>|GW nGp _m6UY[i,Y;}xlzjRt:i%;F/efq2bтmXHas8eA. /4qspQ|9ˎsdqi5/\,Y֑ɝEˠ^3)< pvmC y 13 [eL eM!eS9C,NfU84+~-/V2u jN">tCM ͓H| U˗aN iw 7W Xr&A&,I/s&1XN`CN`]g:4 r9 0;8 Lʬ{Xϣ\k8U^_(z $W;8GYP|>q{0I8!Hqq$Y` 93 ,nq`2Kw>Dm-ށXgǵ8kqɌMW_RdA,uO(Yv\7 $m4uU.HMȐ }l1SMH}KbhwXn(OM&3 qt@P[%O (X{S|E ҩP'/EbX*喷 Bq UQ z1r0l uOA`F8$0oA`%m¹Cq# ˚M^P676yC\ڊP!u`϶'ҡC殺C.@au8m+PdmeŋӺ+ ;k r8*XKMPa{Ã,䭱wu׆Pc]cǛz5vu(ܫ%?խCȉW1-}=S3RBQdh#:d>3֨A55:"&塾6du?[_/@{cnzV/GaFanvguD~(*.6X=3'6|ai놶Xwod~ş3cݖ4֝R滑݌XQ{̯OE3h'f9{gZH׍h{>dٚ1],sCh}8ψez7fg~nzX(eNӆٷi-ayiymye<TLjNjDyH8.QA.QSIԸ'JX/7JT/o qYWÖ>!Qm&Qm吨vHTCT:%au^ZPh?!QO{gmsꐽ9MWx<qqsn4 Ex޷vq4sNIxXSD}866Hxڟ+SbO︁DM&w$9t:9!]رEttx"‡pr0$p8ނf*N,eNY5u8aFRHN'g(FCW4*x(|rAt@Q28ϔ <`NρjA~fYƿXρN& [^b7yzriXFujnoNi^.sXXkpiZ$UK8PsHY4Xlo@R p2iEBI/;ĺ@q;0Ypg2(FpNvAt6yzs֮" !qCxcV`G,u,bo|Heao$@-֑Swy-p aհ&L0d.'b#knk+, ` v..] r񤻼NVr^>^cP&$̰ LFw m-/QWWD}p^f+&E#$هKQ͝Тs̍ub3G/8|^mF9B&Vى̒asuv~وlI,vk(bOXLH+E7ܯ;4VC PV #V49UA}z|e5P$K ;o~ޢZЍ~{ M{{KI7)@T>iXF|p`}l7[9I-omϙ~א|E|6gnϒNΩs7ߧJ&)I^{{[q-d-~;~9q:/nGҍm(]DY|b9>aKI:{}q}$/;{"fq5°n|o 17v{s} |]q}_;ߗ,$7/"u=iƻe-Q[7s`loUş|oOԝ|{H8ߛVɓۓ$s \uP9W6ՎsO/nSK\X|_5[n|{Iם-`} EBCM\>li6¢} ԭ-"{qスwwwbvr}]]c[8ŝK5 w "u7 ʇQ0n Aး(@6 r9Ҝ6ѹ6xݍl`a f l g7(`<GyFpf`PQ-8S8TXv.u y3 Q99EbH8l;]q3 0J7 Wu)H,їQF"`K8 rppS8p|A<0 mC7(˞k+r!?"ŭcpq{"S+rث+QwN(h, _Y2oxTnM?.|dAb^-x)NxpkI j7/\{sH*ok ;!}ٚyA!wlg0 5)sX`ςTSEϢ`c_K>Yvulk>'t;̥c.|0dp|`v2F}Fsf/ ZK˜?`H IE $ T Īy k]^dV8$܇v2[ܲ(:U7XX0OخCYD]mF;\A wDydHʸ]c$97 Q8&!mOZ*zuFH,1h(c9 dQU]!uAژ1G @u1KxNw5gP5 鷲!Dy|Fk@۾]bD߈Gg5 f67 Hl=0RY5d|v2fQA]\'/:`|أd|Xy1> GY !d|f|tqe1@fd|߹^l-Y5N77]߸]X'(ds-4ugSŻ=Q}Z;Š'۱d}//_>X_]A,f-EÍ;n_wַ;wo8߬.޿-Yй[8@B` [ kTiIt%ܛw 1ˉ%ĄK 1f?]9r.!&s[Ga$CJU0QaMRM \Cm&QQd(ƈKU^!.!J#\BDBμ]d%-YC@LL L°7u y Xa Bc K `خH>`=5mg*K,,@@;óeX!+'텼4]J5zCT=L)}2@j5хiꜸ .b?:C1l,*!՜U\̠wQdh'J)FP[5 *+T^aM ( ] ,r,z@L +CrϘ|ŃY:v cngJXð"Y_wjSh߬|jFjڴ̙o2=񚫩Dld}㼓"ؕzڳF%m E/!h+`%lv@|Hw%^|axvg6e%<*RL[d!;֣\/ۜt@8-zx eo8a2*hm-1`/41J@ r I-\YL2w9E Hȡd>>t@ ;ocpdYs/lQqbf nWBږbek`m !(xADǤxB0 Y1re 9w$Qie7o 䪨?c(JƺTx~$lj;u\a{5 .QΔ{H0: Õ3蕘.W !(N\X(*|tzi872٭Z|]_@rfލ "-\gZrh+cQ|)老XQa)p\3#S|]|^|"ab )l̲1?iTuwp$nv Ұn|p> |?2<2[:rqYt{0sZ6t+Έsd7A0넥[xի˹vKTW2`_>!p׸qՆID* I0n5vsNyzCEN s,fxѮIuOdN_?2vʚ' 7CzBuy᯿ X&}k2X[5Rkևo??\mnoʠCzV;VwfoOa6ᝁ,TbA~_x==|o?biA fέ0qMؗPl=}@~zh\M@oXo 4SԜfӟKsT=>9x6Eʋī#>h3vF5_Þ}zۄVG_6n:˖tu?<8}0/=Ǘ>?A[^Zѷ/ᕅeۍUzXXuE ߿۟0x5E {Q>m4^?<=]P߿$S|$ΩN|PU0%-0?$_MO?]l7+\s2&eM/F3{;w-o޿3Œ6ӄڬ6%k`uMd5+O_[\oO}p_~5Uw7gS"OoD3!-}s!׳ͷKknK!S^ ' [db Rԕ cvIKv." rM]Ѕra/Z  [&YB$ӎR1 @j, Uzrc*UNz!BR!+wHeN$^ޚeXz8b|M& 3f+yEƆQ93櫫](ї-HȘņ!as]03q㋻;@͝ydG. ΝD*|R5rS݊P1':FU*5 5ȸ9d?r%9D~x"d l0K&\YS(L*^UW,9W;4$\ $2<6Ĭ|s;tXM>o +Fv'pEYC*:/Azvj_[FHl8ښԂdR5-?t}E#z ;QotCCZI\C+-(| ̽?E:Nfaz'%|5SŸbN׉@saKdE -e~ ~Ae|e$}$0J/JTwȫ,RI"\^ԇ焊Q]ܭz s'IѨ(U:<x2ag`U#0Q`1 D#>w` W-J|dyAsav(i?JNB5![>GzV*W% lPh̪,hÁɍVK㲂րR'p]8OZD4J]f% ]CC=ה} y)WE 7#?j6=|qSߩXu U.F.'Ju9$)T^J-#PsΧ?  Bp_LR015ME?򙎜 -v1x9U 5pcb-~lKM!q Rг= r^}w uj$~'tEsG{ZoNu+jF}p',\D`r5*LԀhz%Ĭ^0ayh%yKI gev\BGYxCETE'Q:I|:獷5/n vgWy0S"1ŇGW4.)]ac @'j !Q'& LI|^)UJD%woU 4Ozg$}q3WDr}򇙚~ޏ=ű ]T B<.ErQ!f  Cͺ셇@E[K'HepE]7]bQch#Ո@#B0j(B+VIb!/OrOc^ҕ%$[K*t\YIWFÇ4W=HkEsz]h_532(&Q$CΥs$_a`TRk ƲN{$V2حLkqګ&]$/JEs2zW0S#8YY]nԉtdT:BAtЭ+ϔ/7~XaIq$S3&5`> |VFzCh|䥲GЎcezɅv{vLy8 vָd܁fz5I]ڒ-H$Œnx\2!y+ڵCKe!DtB]=G_i< @qdasw;fLD^ I1F.qqX鮑Gfa3HP8Cu_&}ĜbI1tW@v0Y_Oʟ8nG?\߉]:d_KueG~4iz*$7l/&.U8!$諊)#ta~lTsyw[IV4 v-K'6*zyw_E4h4^cwH/kC,!v ]P[SqnfIxXG?kYd,ւvV5r55hPD+=*-~tظ5Q9c3~°_(m@Ν+ebV _JL4?xWQ:v1J`CNfB2/Z^@ e Q}imtnґrQaJ|ԓ eOmrGb/B}f,.eXJ@\$1^4r*?{.#Uh[&-q*܌-Tݜyp;fAdXcir1l3&$fL*A!9nƤPm@i<ь6%3cfu#2c6cVy1ϰgl;O;fAd$#;&* TwC&iȤưmȤ2d0%+ _xvLr-C&u!Fг4d҈%LRfdnɤQaҽݱ)dLU^ }Ad7+l4elT,@2g>ME۔ұv/wdvÒ1,%/"nSfAdˤ?Oz=s2hˤ'i5u(rЖ1T|2/=ȖIC'BeVy2 "[f}Awm26TlqGV )cNeWnQBlgљsC$)s˪~XO9D3EItf\3ќsWwz|i:alٙcN+CtfgviEJrϐəs}!,1jlR{y\nL:ˌiAH.NC+rQroCh] `Fü #B $eBS;0fB< U:m_^9 /HnV&'sE"h!̓*-16}SXf^wlD?*/ݼ >侒i<+ P͆'>0Y/´T󳵀j. %~{%]KGs\9dk huKڨ7JO1Gڨĵ}[Y/TG6udc1R][Q3@Z>n|_ߒ}Y!2(  ʈQI" " i`tRIx߫.D 3mF{!3Ag^!Z(91m[+\ƈ,c`g(E]W4l-8 yvq0,Kgb2d=@٘EZekC=dEvA1ݍg>ҫګvYDNy-^#.$3Fh'lvQa<$n{ʄlqK )Zmj0,G-si|y%eSc~T$U 9KeԆ־±Yz^fr6!AJz=.+\sCxe`-v^f#W'/eD$Ubgw)^hq_z)zCX 1+ڍF9/  wG"gUy)WL (rV &@21@AcP~nNj\K؀eJ9 YcX>K抵5(2r`888K%)UJIeIqpWR[(koKbICDSnNS#ȷmmr YJn|n>> )$>gMC"6M_'fK!ٰefK e;ۃޣ[:i?t3ޖ~DJq>Yݫދwx8b=-św?̷U^ޜ)/?1O?4~'L2Jzw)Cv$zq=\S]ٞs>k;2ݯFq/9WٶnT=$ BZ_x!Lxßݯw>?1Хw4>ݯ_h[ȖwOS_m#sRÏoy!ZkkM/i뫗onc$ӻ?6T{ sz|l~%~'p|uҞxۿ^_k"qN~3vpO~t}C-c<{24o5A6DZŕՖZ}B}Zb G.d;V_@U Rҁ~!x`z A@\Y/ڲ-ݿ~Us&Ǘ35'A̅nwN7sWV9|m'Ӥ}|~}-kt.~O6o*khtjOr?5%%R3Ń~ZlDF Xendstream endobj 272 0 obj 20698 endobj 278 0 obj <> stream x]Isqofl_hA5Ā$ƀ"2ki`̮%+ʪ{u{OOsu{`u ={9do/>K7_PZ71|7䗗woK\h~pus:]>}w1VD $thMI(=e%_|uWzxO'?_Pq\]_d7zP\B9zGit}VЎ! ҦԞۋbbT%ӄan W4~_T#\%&)0obRhe~C5ӽOnjn.c"0,ar?0:DJzDEwأvyb[Dz;: &Li"j*X J7 W53F~_uLػ?0Q0>. UOKyj,{YBulԬ) fYBG([tpbu`:z XM9Bu c9 F%b64WqJW>Q ڼpЀU/S 41]55 ĄWىDGW0+- '*fM ̚:D N/DcKO,uNL&qU?(.ANHc*xly.~+ut1maP0ZLu%@͓YӯrvE.UZO㜈| B_W`K<sl^ +2KLfd1p>: :Omo k: ]o121 K@TWڛm IQgD Te]A0 Vo-o#x\(c3"fX@Tv41"xo*c9U@dXvM$"uVg躆!j*txXPZn-1PiOD# TWQ btHj PЍvl$aLv6M϶i&pBtz> x3k톨tt`d܄;LP`'$uˮyhcESZ% 6E) vZ'/=O#a$7+|0:@HU;(qIE'<FؕI $+(g!!uJU[tl0u F0d-PN"RlZ::u)~T ^iVd.q /1 e0܉(jc0gEߔ$!ܘ|&fERDPTXQ\W}WXf-hz[-r0191C/ 1 ~Kxf%*cRF hpm81ۆgm8_'N[vyfr!_<|OȨBܨ i)q^0݋QEU.ڟoي z9gf6 #ٔ= #sW¬-1juDTmpVOy+xԶ@fU .'7L=x(}om}߿O̶j޷/EMK eMK̔xodjPaP֘F0AR TAHJJ=LF~06*bct=dP`ꎅn~a !u"$pY$JdN2!( UL)Cp,d0ܙ2Ғ nF*V bbbu L`)aѡW0n|N/͵ @H(fw '#4&a[+] eϘc3 C rp=F- f 0o>5yƃ̃0ɈN’OHpO< gI. 20B"D:iLD& NHQfAc8D}4D}}B؋ S1@tHр/%K@qӑ4q%%M(0&aC1 34Þ`*z0aFR΀5owm4_0LHbd MBD]gU:,"TlfC`fdSfVfUFlJUdrB]JA`L= jszHԆ`T.:2$g#"kh5sI-X=q9EՕ@m("֐Zva27H::sP"FK0T#ew3];&q i(:b65h)8:;!rR- *0nZ%c!W 2SbDH(KDbJ'.~!S{zjhQ&BgzD+{ Rmos:TT0l'Q\gaC:@TE}\̀W0]RIssw>Y"9YwXeAʲuf8’iԢr)f%Q_b]*VVE,0 i"YaJT,r!Y)fu‘c&UڄqҠ B4 B8=iGϑ E),s2 Fbo.> K[42BnY 4K8[d$m`"EѠ-a,Č`ߢN#ϖ޵2GtXX ffzL>THȸ8fRSJ̜D|VEp=j#P=xsxs".)k_e%0n'PLx8KfpJE/r=աxHY1EUp,UTiNsw1RF΢TM CfPME!u q`S"pgQYFSV Ne4Tvw,$qFYIC8ZÙCo1o3Ö_/DEU e=ts@HJFEt9K" <ZDWŧS)oMM)(*uz;f,"y]fΖ# j*^fC4VaM[FE>r-@YVV'` I09Cʥq ۾- G8" lfrq&cChV?'N@I  NZv.f+0YM.30":aK*n mVtu tϕ]m5r}4eOWPo`ڋ<" ŚO1Tց⥱40TL8,,w=6D OkS*aR-$>U&>0O(9fzѫ̓+2}Bt2A&Bq5NY>DW R'AgFF?ML` 'EܽYFdB42)Q#t>'3Tu |Ӗ0)Kuʽ@yфsVSL"@BMƩK-4taXFr",Ƴ6ۺvS=̘W"0檄}+{uRDŽ1"xLupqӰ.@l,\ S_og<،s`6iWg((n/brl\Aar(x6^\kS}.xb+]-^I5Oh ϋ x*:ݫԮx07h0p_G;0E`gt x3_`Mz> QʋѣE 3FtEHd%9T&sOF9FQ]7zQw5x 2^9(z=p}=qܴgrz 4mF b}[=o yk:4_q ̈a^2‚?kV@Icx+qfFQ6,9> LR䱇k:cʣ vy$2%r_PVgGcZM [%XeALy= XdIwh^:rhށi$)CciA-j.G.L7+֍@(ܨsN.{5-Ѩ݃xw\6nl " sN1N|9+MI9Qt#C>2Ն%]/ kS21鞕Ny\EQ \ZE!/D/;yj9`^* <fIvfML?A򌷘anׅp/7=0QO}Prj> .sv/B]L)\ΕR vn1bh:qIV~]\ ]8,ZTX,~MK7!.G2N~mS3)fQBq)Ʈ^Y^xR **2r$I)ahWVSsE6i* 3Ffr`p@4w.ޑI<\VTyI1H0lqb}z0  E8,2Cjr:ء1z:ql< 7?~{A)n>pN/o<5ÛX ʯ 8X<|D<"\_<+#3/~gFQrK. ܚ}-{NE76HaW#P, o(kM anU ٦Hhx1~1u|[o:t]~^.;:q?r6)wҸh}T~¥$Jr{inBpPw&wIԐ~/%Hk^^=ڳ۶qMn-jNm7֚ 3]bc$fsΏnW_‘o &}}k|i42i07j W樷W&l7T]lT'qCN^4G^-7Ryb;澋'U lJt\KO;T4cGYt|բP"`qJ=5KoK_4-)_ۯ5_\~{=O-{C%[d$x}4G5OOPVnSط3.ę~\>E~i"&[n@O-QW xw:˙5w7 H@!s+nQnRl,,OYڳ1F]gr#i7c8>mhG?crv~޽ ~Pׅ;Oyj<=zaD7I5$Dv\G]K?=75fK?cs&;p%pƢ:iv7䶚^*nѯ\+oGlY [no.?.,ǝ鯺vl6H*pmIZXI,u˾Flח#U xMGBƵztøKA diN|ww;Ĵvd{9 #(|d1N%y͌p9}ӏ?iy*KIQZe"3ڍ+g>]LM ?ro6g='8%kZf{W~D,™E3ѼƦRwO}2anEwz7!X4ֿJQ <^8F$G%8fxN+>RrŷR.c6>q#op9J:}8~moT=$ߩ?g5_OI> stream xYKsRR~N2.)6S&x 9;L*JBVg_=x?ňL M_N? <5H*n7)):ULMql?&4 w\ID^UmNĴbv;`~_l:Ո}yjYD)h 6J1FƇrje LeBK-s5G!+xdq9ݔL??޾o|wʻMjpTab1q^ܸJ) Ѯ:QU?([~` d6"΢IŅހAVppWWӰj[lZʐQih_73+`\SGTQh6h<>_5aPqџB J@)M8Řʜc c> T$Q^FKM?j(#%x˫h7=)H/g.6pSn毳6ٳ#XjJM/@ `'ӂYTg ,dXjҭzRC}pp6{2f2*QQpK^a5V P`S9ariOW6Y݌Dl29' 6DBA+l˺W @q ?.@E[>TD6p@/xu;nݩ|J4) 6N+ JZq_j#!T;:hd,Ci/m1҆v̾S$T` >P3vhuQ0~{adoõThCJ=£Y뻮DaJ>+pVvKXrYF'{NoMrmy'԰$OeީCci!\)4?sxyR 0dķtZEyܺZ2+L½a.xl6X;1, ĶKsХ)Xy8h}Zu Uendstream endobj 283 0 obj 2170 endobj 286 0 obj <> stream xܽˎ.;yW'T`m5P/˨FeXkEY~8#-"7L_?#~}˿o7s=+}_ c?FQw~=k{s+5?EPZ5%we}o9щ!ݏ;Rɿ?ooGo_ǿ[I!?QG#U?WGͽ}i?C*y}g>fMhcpxQ/ҞџlۘK+ȩϹ>\e|R} .TJIc<k;9?g5}=e٦*}u٨>UzF2kti #fW jOybLi,#ڳIϱ6:?{60˖>S ܯ){L4,鳏T|}>ja/HjQ~6{yfHn*<ňa2搹{ށwJ`}~ jCkMӂ]|s`HyR;U7пق?cn q\&<}aJ4?Ü6m9g-@1{ʶ[s ~Cx ϓMbH=0["Ͻ{g7\M}qaϼޥ6 B\l0MFNߣ0Z7[rc46izN}$R25Ϝoܕ ב;yւxV7&7=^_pq0 ŏg:FH9&i/EiI<߬\FnLN]L~>vf6)5_LFֻC& ^=ZyF*&XYpsRB75iXt#mW $|6-O[ԭ!ȓ2V l1no3. 2(`#ᛍ;VR6 ~7fȗudND3][d6QYL6LZޘA+6Lݞ=y1;^d lM'zVbwJ0Q pk~?151jڶV݆Vw^=,?I [vLfmǀV6qmy%fl*yk#b3 J~zie?C^Zhk~t lM/twfjf@pQ`z`l5l McR #[aket M)`{I{'n60)6aYL馣iv50PwɆ ,cq͟ :f if4Fn&1{:XRIm,WTmFan8qvM6$B$ƏBgs5}3?A'a~mfgTX;6\YsT3<5a15 zt"T(3gpj )16ߤc~qv<|j{fǢM#::{4V VRFR2@P0=lP56m3(.u͌vR{k|ai1CHOJФ͖jbwqK`x;D;m|LX+'mƞ\ n-o4c+Ec<Ġ;G忏rhw5M/qkmRtcΞ٬' 6l\"$;>f&5JWpBbS7ɥ"5ًMvtԫN{5Lh}^-1#T- Zް/iW?!z4]M* ֏#{D?{Dkp3[{-؏i#Wίo$Z[RF俦*$d F0Wyv˫O[yn\neؖt‰מqrK̈́ 5̃e"=jSNaysi=ן65Ds``ط)Q.Z4}hQs_ SK.9Ot{M0{m6s7Y䰓7R"1#ݰk҈0 0L*spBLӜZF i7̛q? 45q_Duf?j/-7J9pixH{kHi nq , /1 u="wQ$L2Ȇ ^ p>p6K'g$͚yAuN=DwRN;IEDķ_6An_qBuvQ;d8̝^Gv!`;|2ߔYѠ:,MGz g[4p2h{Vud Rpbu6ۂR`M̦$좻GkѩH~$ʠ-nKw ݛîolXg8+ml\, 3/TIvvEZf)Xct}Aw0l`%`bk@K,$qu7X j %ՌEm(3ؘWlV_lgcuU)~[l1@hc*HmqZ0)8ZQ/z14M 1qB',9J?^ΘBb(Mo/nF|_s%b`Y?i-onwy+;q?'og,Emet&(ˆL^eFMQ rST%ZV{d9= sSZ=9e?!>c3sj8[WO:bbHDFx"}sjd/L@]YSK7.h1` ZiMBOl*&jTBx=>)A^rQoи74Jbx\)kjUE$7v1ӆYyجVvݵIw+c2v#h151~SZHXƆfa.fe&7i_͘,G 6cUzgW]H3aҥ[[h=Uh˳>rÇdۡaEh$=ȱ֣It׿8{VwʳK{)n+LW``;q7Ð1Ȟ,`'3mx5^,&=a1f _˗;=֩f 3a 2'@q#0\[E2lG"3h@uod뉤No j́nYK5q5{RL<:4q͙ bk2hS|?KYz5Y tc.!_: K Urf% [n Q95I/Ư?&)q!JTYP9ZlT!0/nX{{:gEF)qc!È7`$ƠGTb, dCPmp19gL¸=M_2ʼnboI|2kCBH>"DrprE=QDŽndhuoq;1x@8ݡsq6`Eq1p& %M4ZV3O,hQ4o- #|4M[>H][lΖ5~-̜b< M|_\ 7X%0DxYVGsKfM#Ck,bS,ivAkNmx*G$QwukMX$# P=HtJXDQdaG8\腻.̕A^1(.vsZwFq4ϋqNa.- rsnZZνnt:$|ӱ)p"yŐz(kI}S=AO?- Vr-* FyBܸ; mĹi@g`l{-RZ"|k)qR4k~Vpk./_Zyv_ҊCdHsT vW(`@Yr dכ-"deF>'5{Fӵ, #$@ Z#ME8oLy pHےD& a}&I>'&;V. 0/ZFuY*_w6I_Z 9ݳL!^l9RpKV-%1]a,T ]Ӳ8 Xq齄5PG[B 61C_LN/Hme-m7:H Z}rfcة!͇XNպ{!"64uS˻H9残1b.fcz: EDO `5]tL= Әct7veR %ZcO%dއ>Qw~ĘeDu>!R@sYڤtSzZWsNp΅ ĽH5N.J&icZ s5GDĮDHOF&qd4LNɰC'qws#io!yo|sHx{qq2O?hnK\y>uB(}{n8LQ@RCk N!\_M5.&G1DGI)&.7p? ijސ|+FԤ(U&m8rh86ˮ<4Ϥ荺4 _Raliq!ˉ)J]c{)8b$;4CIIGRp8*8X>\FQj|ѡcr`U'2DB%J?5%"# gXm){G6,I%;zpMUΣ}ӂ"6NM7rmmk@ʹ} 1 tz>a51p"MξN2ب}&7m[qb'?H"4|XD<:޶k!lnh|`w_gwhؖ &BzH3HA%jHYլT5rCF<7sζA,n{tr4H4ה0DQ-pKSEQXO5,HQ~=LiqZ|QOPMK9.Ȫ=s:k$R[bzWלEODftn.-P~KÐ8IMR_ܗpS%lzzblDJ;xژaiy^^>d7t`=T+kߒю}ė絀ď4̕,)߉i`]),6`Gqdvg~J0xWsSv+#- ?3.${lnƇ~ ']^xNy"n<(icNA]i|ÏqL;eӡď4%ѩ(I~ogdi3<’]]tyGyX&P!bއ}lO?J6%4v0:,_? nJ3u??F: D }\t~svU\Hta}̄P}0tM,Q80ƑNOC96ʦsS.ZaVk*َ ΠK"zk{|Is7wݪ->q^_ߥ .Ii̼ aa.s1N)T;ya`lLcEu5*9tmNKD=$El'1鞓R,V &y:9g`_kmvY`su 0 6D8fl3kpg|m牤>on$Zk: \>1mšDz6\ 6"&7X+` mTKӁ;`v6TLs30Uc67ymV禬V%]lakz`&ε6c{ߵ]ݵ%֨]4FxSt)K^*jp]}ޢ\3ݛ0blFOY8yb] p8&)ӳ(W$`=>b i-К(qK)#L0np7PC?.LǞ~,3tE+Xkw2ĢG+sQW+sw&}+KO_r[(.ç<^kC+"F*ŹjF&dTlo;e}d1YI-!*sgǂy]`9o ף~D"ZiSyY"`)+bet6O57lAtX<"wCL4)"q0,\5O#f#KȃF>1K;Y5wK 'jGJG-JA+D- ZfdasfLΙ] gv1zE-Mn'ΊaKG ̬jyj޿gHd|d/q%{+(Gm'd-Wui]^V ^^/)d_W5Y^^T7c^^dk\ŒKm"y*<++'GñZK L=)faLy u:'N Gމ5#cH<+5 w2X9 Z$ *Ղ6ujjT_'$~k*+39"TzXµ̼vЎ]DA7UډO-rAv:i'NJ롘ck*ף^_0.>N tbډ: zkSd(<@De`cS3_)\tWR`+wډ0NJrN ʾN j_fm:ట?I*UUrrfj65YhHlHd818)Wߓ=:Z`IiIC隯qr& _'KagDNK 07xܣ#P`5+y{8r87&)rؖ]ǰ+3N2NJ0qї{*桓pxcn Bކ߃%8)*'gy^ J@.=E(& ( TR$(fcD([-t4 L'2jI >D<ڠ5Y`PϬJ0N2@JL7,XQˆVPMˁÔFK>ޏ c\E co{^¦&]nJhS1uǴ'˃lEML_v#K|;)9ou;^=puHSJ|r/kmyZoW%u^!*0FMh{(t.ϛh>85B Jtk7vDŝ(3E^_$9Ůbh[pD9I161dWfQkj[dnp#~1L0Mi_BrS7ݰF L>ИAz' 2R8J M_*po#Lg^9 fͯ鈰OZ52'F xKLNV#>nmtLn1p.:N .livʼn^H<d_MʱªC.3csK+nsؙN #DCj%J)tL(G5Lk0*aࡂل?5@VaU6(0&U]A8yR$4zmIR& /n)9]OG{Dg=ezl̑@&X]Ո*qJ6 O<,1L-CSTMQ\G{ uzi(.>/Gf  Usɰ$xp xoLF^ )w 'C+:X;3"RFS!KbcD `RZ 4~CGkcǴ̹t^I[5Z^s ﰆ91SB!qކ˄T9AeB4ufۨcc$yKYq1EbSԒTTijBR3j6cgQvb\&]LɄ̀E &,_Nl~yu?:x8R7qmGu!I\ Bς F4'2:7 !Adtl!-`iVY &+ΓhbDB'.T6,/ V]43}V/4"b2;y0^45Ry^dRuCaU`eBm*h ߐm%ΜynbI]漙 γLaUvpΛ9 *@`Qs4򂇡>m1]g X 5N ĒnemOs͓O.fB{;؀Xyppx`Xnv&5,x&i9O&pbM6,\|JX& lT}@ֽcI Eܮ&#|%sg<띳sH0#~XG0; H^C  'B-E܋md',)MLTi3oX2F)Mx%[7"zDx; ?,Y2Ϧ:Iuk%r_|ɦf"LK\=1S_„E=u4 3䆙vdTp @I >oE"J8۷#Ke<>׮+EDv)O x&ȗ婢1/l.AA/:\lYL-1%@dMgA"MVE?l!=pfΫ,4JKu)1cc=#LpUݘ t?u/ )Srr$~P*Yƾ| WEL.e#ET^`4 M$_hK~tѿf&q򼟘zr\,\l"k6qP.vi#ŧ`k"C^]w<]֦]Y9+΃Ap>/iXcI`onRV:ńEUO[!휩g?),*vahc4:E3sm׆|NxݿN%١\eJ\~鯑s!$5˒>)lFO M7FvK31Ħx\3äpClǝR9s" K32. x c7rϽZ:ÙY %/r-hX&f?ax#xJԎ2li ]rG)`k]nZ1,c twa ,^wک8OX) SXuX)!Kod /{{K6S%+yK;i @EZ% 2c ,?cRVV&S`ޙl—)Oc E`; XΕ5o[Ӻf!kWZO&` Bh;\r1]JR3r1{Դ4R=mHA/Y}x# FZT *.E`̷op8s О=U颶gܯp٣P.),mxYwDb ^4a\ă fQiF@*aʑX^%d&ejcЏO.eU-uK5K P& :$F3ZIǸyP: YD&B *zQ=L` ir,yCZQSr:|x u>1̋GsytS?ŕg9{J <0.xNh3`D`Ubo=o}wx]ߟp_Mt)_ f+q9~<. J`h|?ER7TG XGXgx#fPh&D\1,~uDB=3 · ݟ"8"}8>YZz:4Ǐ0cG7[y5'r Bd}$muXX_`}}Y?Wz3,i}U:o0fT9̟y/?w;j6_@) pw?!;=_3? !bs>Ջk&\${@24oOC)PKT6ּ5nYG<- {?>[!xI"GLr)b`, >۸s?}+,.s_&a~]iR_LO6sI_?OYԆRa~pt~S9btG|DJ7奭?Ŝ 04$#LL<RX6190.瀯b^z0۲h.Ɍ/"1L1xH&(_,YFHY](Up\_p֞,cvYb^Y `:M ÜtB`fR7DBSs/!n\xˆ~93E 3qҡpY:T .!g5&8hA? A0#g" YIm~#A?,"x' Ƃs/Bk]G;N!|Q4xҴ^0^)ۍPv oRC_\IQ wFpǍ7PezvT̓쀳@}cx;b`"!~:3 4+fE6I4cڰ5B{p,:^_\B}hT5Glx(4&gVj$M3. %^R47 0ō+n>4yCOz؃9GF$嬟fV` XVՎe[?/͵^>*AsBlxT^-|"ycΓbV3}D\3l3d%ۅA1IAtG֯IYE#)!'(6q|앳['gh &U LA(ɂ 4Ud>PMMTC!M}0Jo(1aagoxےVÎ%֐Qk׶NxH۞x+uLBA OMCcc+UK^{ch9`ȭĢ/P<5L@U8fuRDLD.89I3>+'.Idٽ‰zys..\1)ZDl2GJ=Aq)ӴIWL@rcIM,>bnpzYD]Z&b/I}6Sqܰ"0'p!uO0LZۙKu$V kΛ/ PRxzg,o:dtCE[݂zH8X$_ϪTs vZN0%H5[KHn -a"1xZo0<! +gTIqS]HfWa[ME&p1$|?r&$73h}-ޢa"3yfOѪq6tX4 >7p sFqy:*6>p~a 5c7fTQVCY"g-Q .Kc++K/O\cn//OП#BЏKDqq{L?n\rq4awrܸ tn\MoƯ{`ÍrqQ\n\s /U󆻒7IwV~qQY??%̽@k)7/G t8MV9R/uj((]jV G hpD]5Zn8XRfSr8X[5CrOr8{Z-nЪaQkrJV-CdUȪ!ol %LOrhSQy2X]ʡ-Jr(L(fVOI܆]Q°w<װz3£/xwCV>l xBj!_N0v]%<*ϟTB  SGP܉gǷMǏ95l<^Ɏ%^c&+1}0z9Ăubf)vI5q8ͧᗘ ꤇uzE%Z|E;M`m}!m#\ly YUǚGR+4 l``>:@kް%F5zQA#yŜ39t5W&c,OGe["axh 6sΜRzUTݰRx}5DTDŽP% s;m*`6&En]R',o!xZ)ڜBkB.$]LOFI,S˭a`LT+hu2AL8J2AX!Rd߫Bps0  p36-$ ̦+:m3[Y"_dz|dUBW\Ofi mRqSryCXz?J{sT|`8G³Vql;<+E|coI?>c3o/3'ì;cq1k_!Ð0CF8­~ F24 kS X!,pE 2 "EsxhDHb!)|+zcE BQZ/a2qpĊQ?KќuxDJGb>AYg;j$y- <NOQ#Aڀ@OWJWaL>y3#OãFQFhFtQ#WH{xDzzpҵ$G()|N4P#,e $¥pEWr WGv 8jS7/0nbGN.s+1s%9@1f G\#ǃG{=T#]<ؑAsFnΜ(W`_R7ί#*''ȡš,F 4 'G>r1#20?Zoaj; #~$ďVw+Iw#+=a ?ݫ.#GDEq ^llQROྮ-S#Rd`k5cµD(?I` 'èEf7ʛJ؊ t,<9P0%0|D %|k'%SR\MY;2l|eGj2[N>+zAmWʎ+XY9 /`Ir0180KQJWr%$@Q}ԕ>ߞGm507O.^zccz(yLB0䄤f?p(Ն4DǼXuQ ?&d5l˟cg*.aE~_?gGg{2g$XUmpC ۹0,~I30~j^Ž4vAT)ZeS٧TZlY^K0 gUHwL7<¿HLۣth4l\pCC;x-6MKdzD@fU' # 1C^(ݾaϮEDዊV&/d 3C q/ѽ.Ȇ_4P<#0J87]\\fJɚ-\?U@fFKpVzm&|Q@\s5# C|y5R =pѩŃzb ,1#J:\CIӇ7a!#y#J J+"J˛RFzNx36"IER#`T7ccΐBܰʐ\"1goFK dK 봛'i̛ABpf< ] c+_+reͶ уÕq%-<]KOG8/WƤx˜+ܡ\ͮ28 Ey2㞌 z2dQ2F%c$Gv1FJȁJu R{ Oe] ]N?v.q)M `U v; ,([Y@7SYY"(lox|ޞ 0"'" "EZ26)PDF_(B_`toD2%|K _Ǘˈw|`u2}:7<)UsnQtd e|iuJ? ̾_-HˀlZ3 ]X{~( G8y2@MÓAyqgjx2@'ɸ'#(V tD !;*@^820]c*%:rx2@ҧ<@#\:×HB!e\b {-hr|l—/}^D0eTt }_0GWK%ctf}=/pp8|YL2gx:٨7~pC;rh0UV D:70eKp/|Jx$^`cf 珟uĩ.pc/LCofnL&lIm?.X{ǔ8afAa$n=vmO9F ɭ/uQ(+a'C ;ʁ/L290lC>$bsgr螔gw8N: 8]ߨ +qPK\MVC#p3diIdN-,7-;^HMk( 0@;{,QZcUu0~*7#D]6P`vW9g~?NPaf>=U(LgRon<A~be$?U7SH\k1,m2kQ_Hao䃼0A >[y0.̓2㒗ijvA#x sS~ =Iy ip9stʛ`_xkv"wI?4w[/zaz>h7*[_kv7OLy.L|9GyW[/1L̉j` ֝-Je. 5'ܲ)5-="ZwI!dO\#ƏP 0Z^Pˆdf\~3c8牶і *і (9}c > RTnq[ ["ܲҀ-"  0G(j/&A5<&Sgk#5(0ް%ϝC6P7;"x6;ߕ|0Yfg6CĂ1&TP*qMmӍ3ZkS')fb QF4v'F-ll%鵒S+eyyd46zfxA_A s%M 4eeʟ1ecTxdQac .ĥSR6&f<+sP cB*0j~|s 9\EZ<|0KV6?pMөvTG$)1>i|P֛qm!{eQԵӍ找lKaaV4(h3VCF>%rPgyLsjN?0i逘1$Z佀L|+%dϸAJBv~S Z#C Y?X;j? O&7im@P8fY@G/Exx?/l=Ej~dSo"P^"o/:%TsL&FjCnz` f=xn v?H%H0raǮ6iylh'x VYS?3ޠvnmx" o-d^@5Y 6 vxz ip͖v1P7$<7M{߄J뢣}{>3뒾 Ynׄ/`f;3#!YXINت#$L% ¤.c#}\p7{hU$38Nc /S~0LT6aI XⓝDUrT_z'xr`p]؄Zb>h' FӖS<=jX`n:W] 8$-yhLHG/CXiPЇ7,e˜~e#%&!`7[Q_{|H>rc"(DO m(gd"yVjA Ls:7G ͓͸Y&YIg+~0M'[K^xϚgbq/O(M]qXNJ 'j5t He0x1*Zi(Ux^r`X5 bm#A+[+ By7XfOP9/@#VNVAm&YŃQYIRZ_I0:ƌD/!V?nh`2Oh.`7F(4Z_yaJF6&3zU+w~޿UR/v2MANYt߾0}%Uf@_yT(%a2MOJ`Sbi(/6k`Cg0ħ _)lxX*n +W.B d@Lu! 0e`yWyx lAs|hc>QXEnRFCpm2U_ƾaraS߆D hFf4IIoG5Tƺge6YqԒN.Bk&TgN<ZX/Q%35t0MWzX\#>DMKT.QN*4`Vd8腯Qp lRh2/(/d/CCC9ԵC-##ʭ"k|w*-^D}k{:*t1RxL^A+K<4.櫏4WT8X77Z@l 8Rd`abGHso<ޘy4!]uukVQ+qU.8ognY\1/60 'Qyu V{BS|>CPA <թ@_l`Bt|q7 kMp)dx,Z2LD AAʼ8>_ 𾵷:˒ɘm`z~Ɲv@^q$?A#ҩ3'k/ >^e(Ý@cg{RXqq5Q. u&L"i" +k+( &uBHK x/ʂo*%DœҥčǤfH7qSoG`^/.ϔvyDQNS%U7g6 yQ`V1) ưLʌNjepI?0LD*RqD܋'ɨS˩1%0cRJ dpbLr$&]Rs'_f8`ZA4G)ǻ-sWuiN5|S_<cEQ ^ٜ|bǟyӌ6N\T[C؃ts;N\o{VQpB{<30f>Hk Y#h:F֏w=8ܻ̒ "P.&pEUhMdx c:'rcΆq%뼽 )(3+(X b)^ &:-oWu*ZTGܽ;%%Q2qثU\7@{dS܎? ?pVҼI/Eɕ%Q , uGy9tUu U0 +K3.lY,|M%`=*6p ޠ$Po0Zv{c **|ACَˮP0 :~G Xh/8'-"'a&4x+YsUsV uxO7PJ4xvϿ蕚c`?bEdG,%Qsæt/D4z@k7;oBuw XdꢺQ" #-Ow}vu\j$VWuF}&+?U&*3PkQUFȤD4χ`٥EsW="5@F7 ^"aj̣"]ƽǕѡM5~U* ?Lx?VJisÄ:O,Wlz9{x2 (?0͛D+O$-6d4\7|EЙ_FiVkEh"0 c2RMu)Z!3:Yh\' :;1_SX?+A|WQv8/0P[xJ`  `Rd1cu~`6nsJXx ?, h8[?n!=Cx,:֤UMK&QkV]i?$J&00Ap#B0~A?ش UQ4 .҇jȀ6F *jd :d1Vf64ÕA` hIfC8  fwv>RƲ@fD^DXn0 >7 t=\ \d 1O[Lnh:7u(7kfJ8λ3M9 C.N`c5;aBx֚_ib~A9A$d7ٮC_@@W"7 a&[&ːu~u^#acAJRJ+Íbc Jv'1>/a.#>;]!𲿖^UlX\L*}W?17CӛﹿuPVx#<0s#Gc-nƁgo?7IGQ OR2H[+`ex pBh1? ~=pXn >Yh6_lݜ-lO'y%X das3v^!E2'ơAV|mY$zQ08VBh>HJt(\"PvD4nBL=@{. ̶ y`RDU1)G+ ,>&[I%x ((I#D(VRW˹k}/~L=-rQ2`4f|Ę1^.%n wI /0~V8oE`U bˬ$ #ut֡_銥ζ5$maԬTi_:!qp)A=Dhlºw~ 0u%,uǥ$Oy'wpbJ b-̐u va#?b/2;S=Fy:y& @Nq!ZXL6I+\"s)O~.P ';>^,&7@C'V1YNLM |J h,=Հ TĠ! t:Q,,lQ+$Wb솑reP.~۰/: I,HQ4Q䦟+%ދJ_?>zׇ~bk]wK'C(W4IΤby(ò-)A{A2Q*ZTkҼf"E&a ,0TpVR&Lu,R? Gq[.Qb\,Eee 1zIn!LX2¿n,տ`WA?15aYU5]k*S5}ʽ"75'Ú箖`oE0TuY{ڢw-k5=fa+&bꑽj|- f+n6.\J7.'McN{u .+k"3I*p*BmR), &)i Q3d\Xs?BSN!vU ISU(5 ! g 00CHE_΂UXaj}I–*Bq5?ąB!L(BXYX TV Q,مJFcTcW_ߩ46>JU <x*b(VR)6H] ̔M}HNa9JadE/U Rg#PA;EQ\E5Pi0&S1b e]u=8TiۊoE3Si˾ƟPE+w"J໿;[\$c&CԮr||lHL,"$&_{LԟTHˆy~H /b٣+_԰BZ=k|(U_ǗM$g5ɁF6&9͟|kVt*;ͣGXa=vT}qmUmR2(i\ʇj]o;;EPoakd'5 =K ۛΜח~b}x_z g%40_ S(2E(T~SN33Kuʍ<@ۅ q1QXt'Rd?!KPC 3t"+IlLXtQO#;c!>)MK#H4}[Q(ii%fYkՙkcZb 7:ififsAдMA;(kaƟy5fXDƠfl},<Swi3JH`BP^7Y7`O>mV|b&'0(aϤ-nc*+aJ"0 gi遡W8ݫO9[o&mԣp$x90Ƀ<#I.|Kc%X9\i~,'ѷϱ_0uv If%(c<е9jäig*M}kgx`YSt7Нt 089҂AKn'FN߸+KfթI,kz&{ÎqAZqEsf\j{?Y3H$6Jv$ yz^Wk}j\vo!}A+j gV5W5ﻅj d9 1B--+>ѳj1c>s%:7pXًAC[֓8!]zySԕ/I5vKzUA VEclOp+09\Jz˪@I9v iWDrJz .I/}B^ Br92¢JzX\ T'IyZHzv \͛Op+1q-ϭ~!.`}niAG N &#.2k8 .(LTq&P<WL][0kzO &`b' ݧk+d6hφ3&yy@a87ݤ8:@ozyۨ'`\إ7=%`mN<@ͧ\`WEan~^V|'bO<fb+$`F1iN< 7O8A KǢÊ`!~(ܗbۍ7hoo]Q zXJ3L:cDH`BYN2A97N7K2%x~4 Gߎ":mI ІT%1O{A>}"oGY$:Q0[^# o͹t;-d~{5q3t ?D| "u02g{{ #GbZ֞Nfd;OE[lqW,]; â¸0hcv`ʵTk\;ONndϴkV ;ѓǾF|^#ÿ׋Wʚ~]s9&ۮ<;Ƅ1ML \IP b +&0>R $~Sj1~XUb}_W+rɘUYPP:UjP4 1N]U2Qd}?7ƎXeUx@!֣/ o i˛^´X12ڬ*y1;ѕ2~1%v7|9Ti>ޗU_O|`!ag+(. Wlמ1}{ %I͢= pMek&AMu;;ŖG>^RbbqR3M\@l Q] JX%P9!xa<}C7baO Eɇ]G% J DTWTWz z  l37Şۋ1ۘ)DŽj{bR5\5&x @>%2nӗ645&qxq,j<+q ٝd/#\!W6]M'q .Ž>OTp }0 ~)h^} |fgHSO8(@0JĊ9\N`fT-ٕqNU؁8ƭ2AŢvڬ2F >i6Z~M: )UGl2߹R 4 ||?eTYOf[iaK.1xC-E3u/l. uh sC>|I>Mx3 .}>,g`>UPxºh:56s$DV~A%Kb(FY9,!fg?;եܿ s ju_߶[7S9-`äR |&}XJ!Pjތ 0~gBYV3N=,!%0*F~HD&(p岓+&㢦chЄ%SGJ@+mD%A=(0n4.m j9aoz+;)r \ ĚϒV'ͩki Gd`JWI 3P 8&Q*eaPOskeq`Fѝ]xGdyQV+.yQ.V" AQ  ] Tq!0ӅMWlJVm>Coo/6h7 * ‹tMIo!pZ1*x,R 5Z: l`w34ސó?dS=aLUp)l`V.4+7k nTxW*/jiaEIaHǞ9X3.M8q,g!5i+ҾAE&3kXB,(kes:0+vnƕ}$y:7,ep*vȡyC mKM*4etrO2`@&Hu2_ UDeU֙\G҃t gjL$5W*@ث޲8g9=:oIrɪ܆]iGA FrKZ4Xզ)f95Wn`#TYz˺͍$s鞟WEdv 3Yq=C~t nJ '[7'`{݋iWv$ɵ?|Wa(a{:5X'aZU0𸰻qwzBPΞi 3 kh~1=X*Ӝn`RZY^eypBZI-_3g4N`5NJ2qQE 6gDzG0=bd Y(v{`3s `7[H @Ux  @MȂ#ot0N X6s x XUoE>BaZ=f$KL,`S `ON:>3 ' 7(i;vrj Q j|׎ڿ5f33 aYٶ&yK^9 ~_u/P(02Z@Ư> TXT+𡕦 sGőg/R{Z 9E1獠ÆLܡV/En0% ~aj~E ǭχ 8rZ6>PȒͶohYPq O5X/ qZgIfM1Xg}yᢋ :[^:TmۦA:|nGT<dчFf*1<(UaQZq(ʵZ5< țet f7͵]/`xhb N (WPp%+}.y 1M1l&ap#"ӠM 1_ Rvwo0+fV|ԑ@)gָs)~j[sᡀaܿq,0I_}lvP`kEHXxb +@@lɊmխp-߫XCgJA( %x1$Vӏ~!xf/!O` S'!7ҬX{`PoYJUK _UZgxZ̷GC[d0D܋ibgHxjgX&ag-o@Nc[SK;g*6a`FGv1Na}X^\s.FŔ.SBLMO4EM D</=h`ǿu,lA¯-Q-n~R]9dS!%0G7˭ǝ84 !XPѮ1q4dp6 gAgW>tar1.qvue\6>Anss-L)~XQvSysk1-OBOĺt+9sa'*Le8H2etię6k.'ڃ0'1~躯8k4#džg2nS;;&Vnk ۾ѽ$a狋  ba1xy:C&R}T؞1]soкM&Rv~&L*X1C X'P-6x:GQUBfH\R bWotKCbXIzr5 ZKwŦTU0 lp8̪$N饙'qQ`󅷂R/*n/ˡbkĆ\&"_.q=yOY7(eH=`HfU Tf $qa_Q|g:2 ]Tv͔P4+a\6!>( ^|4J㵋O?MkE}k悏ATfˉpKN 2DۄivXƥ=' :qPJ,T81x&ZNjJq% d^бHn\k" uTymr\X G/f_mz2cS'ۅU ̩[k7Ye{U_``Ӑq\?wT^{AUO]j,H)x7 NG>P2=El ;Z%yǂ l og OLހYRn3 At FEDL͜<[C !N_mS)lsu&?B֠7R1 `ogV<#F(ZZa<`TExQ.mĈ63xVGPvGJB (|5iop0(#IuDAU<:GX4PAuN̟ÿ 1ފ~e1t =SW \#opiQypUZE pvet~vKŠ X]*Gި2:,e=0:Nk%w#%2ڟaL)C)AFծ"n ]PqSu;$MR ;vvbB#0"Mu6L74t馈Q@}< c7P:gB%pu-mTXƦdF&81m }; /N!MⰠui\7j܋ XFTVA"}ztBE}Ի pJ -5-읺ieecЫg)/f=ʯ2R9YX[=[%-B`M]\ICf[f!3~xy=40S6nc VlgԾѽ}݆^626/a zU# ,O%g#ȕI0I0u/VHÂm.tOX$愡I""q\JK܏47+Gaqp /ـl}8di! u[o~bNgs_B穩f aN1ns֌xrԂ Sͅn MKɶёlN6a1Vd>c>Av87KnVKa au 7b9ev#>mc"}c;[{ٸ5fg}w,[G jEް$)}cw`ZM>y]@&%l Fwq u&<|%:Z!jvI,گUq %&ek;gVFYGڑ#/_`#{50 mMNVf) UW VҠԕiYW[1!me2/<),( B0D|eD<~i+CmEVpq_m`eKR[1R9GxAQEvVlmLRBܞ&6J]s^}}[W[3.+K#_&c󫍯c`m12e/o::i Ԁ1R<騲4x"ϮY5hlmRj ۟fyN?`y\sX{ʕ`Zaw(ѶX!,v0fIc=ްcvz$0_y_0+}3v_ak&GCw,dv~g_(` WgazNEֻw[Z Snqr]m"^J㯍2u>=ُ|,4\LޠqKuh[b<~br7*cΣ4B8s] diZ[P^.+Ώ˕yBR8Ow8jcHV|edEWVF$eyJԡXc(ʊ6a˂sy;fm=AiqKsUhk?[޻$,쓅EaBXldq$,2t.UqIXԯh{v^ahyF5͐'Y1oo,+ΐ&u9o]8BbZ*ɊbC",w OĨ~0,fkf[JW2Zy}3"?6hqZQWBa0^O f=_JNaƱ-%cv_A~`mGי>? y\`BβW> -Fz~oFE)mCif_pq%EhCS;<jx\>8z* -쪹A*AOc_u1-k% [)4YS/l >:2}s#v֨,$19V /18zT_҆l/o*M)٨U}8gAbeBSHRdlWU9>#I~>P!0e`j!r똘4)lm'|7q[Ă*kKX 5aXPp.[[j.&B"1WO68`bçw>K'~=PE$2o%1ZQ&qgaLB[le^5?a /2?qlÊ~Y.&x{#XҘ~D[~q\DL0[ː܊nݾD՘4@Ͽ̷^M'5W;&sjIP2:<¨.30M]N 'j1Fj5vutwS2N&ya2f*aW2'L6_0[`W2g M¸I{&&v 3~E"o%Z8Σg>3e,Aֶ$ Wc ef1Ԍ xs4c+"jҐkVJ+cuL1**&'s̅W "k]1F+c`.Y1Fܖct8\WGtČdes]bP)kh¢l)`ҋȻ3jǞ?rJ1کSHJ[^YL'V[ÓwEYV9QNHR%J'ϐT*~TԨ *}MX]|-HXT@Utn:ojMn1+غl7ॲT43K:1* :}~)<Ո+²2FP=ӭǁKool%vOP)2R,8)x!JQ$LVpbzD+ՑVBrZ+)űRjw>p]".nJۅ9q] {iĉk9f3צ{̵fq9rJ\+1Wv0=Q,.8\8 R6VIky褵F84OOZt*ra-19U15%KڄLNJa2f)}Xpd}B+b'+&ɘ&w%܍wԽ 2mmF{Lm`mi~0M_! f*#72ܢcT㹳-50Jɦu`` h6զq';r{_=z㷧jCI=~O\ƃ+<~i׀/o{gz6;$̛Vc-W,kq^O9ny6wo+ ~[}g19_r["~~L;rmvcIj0_3 Z1Tk `ޠ+]j2j*+f 5{7 Iiuurfoorf=M'QRj+wK@ iuJ: kR1sNcS\*5V#Lޝ}*/OUla5V9V&9Kq[ef?(1a}H>JujUMNYOu޾rQ;NT“ue`WвTSJFS:VY6Q@NPIQx10Bbyy+I<턒Σbg[$-n%i }+ 0dìylD{@ly(F!J:ݤ-vL]V\>в!Xk gM_ a+-XH[w_[r6w2JrA ls"Ӥwԉ=}'Zu)6RgpvJzؕ#zg<@O IXxt٘"PPLWͱEux^V0 NWwN? svo"|}^1x>=?Ȩ$ߞ ?\aKēFNsM4bɎ>L6 w&g$1x.o7cX=}MK__3}}ͫwFXzG  Tz}- g&97r`Ϲz .'᰿jR2l)vv\=51q'g6 g(=LؠjHoX{tHoO4@U:$)ԛ>c,E{Ppr' ڕȬeɌ7w:RlVix:u;2bC__p%zmwX'wܛhE8|3Y@3;szd6 ,Sp;wP3Uf W >IįKlsu_/c]}.Y!'{<Q^]}va=@keK Dkac~gƱ"4lz:K>j-|j`- 2>F'Ecy}3(ފ0F)$헳tC2x`JmqnIh1Ъ?gq.h@E=ɾdKڧD!"+0agWl-`$UO0k>p눖Y"+m&|ڃ6C LtX% X8 .)>yv twbF{n[{K@PնlĊU K3辂Ef[ Sf*X:2pBʃ]X8kF@/4n S,O Ȏ{Qo 3!ƕ:~"hNdGxbuVlA<+|qOkKa߀Ȅ#譴``Ҡ񁻶 24[½ym=v9 /x'UԒK0鰊Ls 1_ʼn@LiWuN)Jz =ؗQ!PVykq˝?4j`G=t]& ,㎰yohpPDiruBФytLlǚJe) 7M8/7i8|M&4{l'Ft9.0AՓsȬ ^̽Pf(& Ma~M܀Me,/7i"y̗Ѥ:bMqdqQ>AנqnKg540 yIMAp4J C䡢Yi`ËE08Ms634ɢѭ hܿ6åH/YnV0|+ ǥHy޾X&z՝ FuE  Z41=GR&~EFТѭy/*g7Df=,ӞK6hn2`L/Lʽ p K{|aG 6Tm"WV;J[J_ 1TXj ݬohiRR M\m{'Rjg֣[vpЛN@Qs_t™7dMC19}}8iSq[,&ѕhpMU礐'+XǂS/C;5C*TЇX/Tf+Gy m?6ąD{;:oLu +S`ϯ=>5R] ydg}SiZDvB˥\VR)@0Av}U_TwtTQڀ};NS<ݩɃ;Xtwiڢ;3&mxt*IfpȲgRk\SB(U[uU[vM[7~C_?>2SUP1_s&&CcXg(CcUKS74V;jhhᦤ5Y +P@=2#G1%:|[+ƊꂕT*p;; ba/~lKܗ?&0ZDx{A_O7bFC Ӟaz ў~0חrhod l3I̷]O^IГx\O؇ L~I]t` 3]'>L^o :7ZiUT*,r|zkןrCoס7CcxCc/ ,f<Qt ":*V (LQ`* rtQy!Z* "cɪ)/4א/Lea|a[؇O'7y'Pms(ƽHOüضSyx`_ KZ4=G;ٞyYJ4~cؚE-3|VX>?6sPȨ ןW{0G(و=ج~P} m"M*g݄~n6]|r);KXxd{ +zyZ], X7nCoM Оg"טzaD>ugG<[שbfpb`*4UPR5踫>`孧^nj0&AytA7RU@v(3RQPX2?:fQ#!Ei:Ceh.%=+0s;sED6VAW?APF ޕl0{8:S(<0Yu 矘EOڨgk`E8}(ibUh"ߙ 2Ă 4*CYb_:򠆞>4SЄbAY:ɂLqyqr,n$D8xBLHT;wyP~񠈽s,v]Zǜٚ'or!\0dS'z,d1LsE1R/fJaG殦6_0fUpECjc:66Чz4guS@c[^aĎF7i{]fDd)zWO])ovcPM88c0`pcv%!  tt'biL},Ѿ;ͷ96;w?Y[ƹ͑ýO<3r3M~/Z(# FYz L`>cj-Pg9#3k}+OB/c 0&U>b~qhgp5ktvNo0L6so"w47+*@}Fl- zAi7ЇU0APЮĭ fĄZhݎ8X h(5/og1u-bOo:YywpB:Gl|O a۠ǚ|F`Y yG9"N0j.텦K+Ln?ebo}?)Ӂ2 X oOǶh pw9/\gp1} Bq:& Vek+:wkZK,hXߙ,W~hߙ"^TuM^},^W6d!/1x'UNtȯK$+|R># *NKJֽrs# g&xщ0 Mar)!tA-dZu8s-x EeFXWx=aaxՌаI1x69De aɚa,`rY>1+\6Tj$v$T8WMGҀ7G| 4_1$h~ 5=kAm$q!F(W.AojqpʏADY  c:0t7f5:wRMr&GcչX'jNJ}Cr -o?=mHkI%/HZ` (LYpye8&&L/t) a1烿~tMD إ7¬W(8ZA*e>,}ERE9|[n5!'؝lBs(5(/~L6-oK,fyX)vgưwקn[TC,h3Ky4o0K٣ d[i'[lj>r y$Îk˫k:\Y_lK-Η-}UUc4 N֟6Mnj0] -y1!J 흲"K)/7Q2FcfGk>71/ $%_s6oߖǵڦ0m7\|ls?mh8Xfȕ ?7:?7}"˟>COE[TKOd TpCʢF'. 8P#Wl`,]Ajf'hO\#VgVI՟.Y/ 8FIf`8%$췦eaKi[} 6%o.s.ع8 o٩{#YSL.5QC?cş%$7R؄K8RosԙNv{u|#/&`&D'\[bޭ# 7>hza}[{..> k%ۤAj#\#vo/ Kx= ܂O$_پCjWAG!Xq~ (*V .x {$ e1N HzD #zwRWKg?/,n.АqN^=-\gKJa{ɾ`걵K\oCG;]Ep~oϹ?~o'gC]"W ѩ,\Gl.^B"{$CpUYDdXQ.3 >;ߋ -H'ٟ>?wؐ%m2x_UBtkt1P~f8¿Y1?r3KIEytݪF|[%o>gͿSCxmӸ=X_I<$W^t+z/@Q(s\! âS7<: `N `R(b>큖++ ¥{ᩫ^[,UoGz*I^ooZ]mE%v:#8a :lL/#6^G?!7{7([r@0كi82;3ֶ{!*S >0Fl_`O}: xD-+ 9ub<nN Iri^#1\NKuA@{HSnj >A2TRHp<]@f9,/<3'OI䘮? /tܕ"/Xͦ;Yʳ}Fx67ϑb?4l^[?&t4hl <k3O&,bp,ijד<'aɪ"/΂o|j}`X(us*YfHϘ+3Tp' h|};|~Pᅁ1qߢ'Yvfפ/ދ٬O21^*6xf(l欟d./b>v=W;$wpH=J5>[(7ӏ&' MEoP6*Vk1QT٢-*ɋm{\ށy |` 1E2}݃ƛ"SKw0Ne9&-0{`̒ؿ0e.GJbnfsת<ͫsr%JMW+Q1E_Ω_H3O/0fg9^d Fg}'u0K 6p͙kգN)P:ܐlRK.Aa,YPq&scxl5Jg 䉷pQnQ.x%.8*ۜܖT.kjڸy^(>$oϗ>j3R22CŗBLʗJI~&0#HI^$Е$앓zhlwҲ.&qPgQcӋ\af<.xe:&:5M1r$v#GhGwԶr)k >Ȋ%:\6ۄLMgI,U"&9ah`fi601wWV2 2+̅ o.VA3KW屧/If@.lweQ>߀Vi⯣w`tD=ө$ǎ9HJk&CP2kLlႽLb2`+i߄~uJbޓB}ژK+:[2RU{i=F#d{,t:s <Ԣg,>񋪣 RgxgAFhqgq>qF)Ĝ '=(SzveU &E^n_/J!_~|>.gQ~bw[0sfp]wQܛ"쿀3$#;2`nGm,bV49CþxgӬ89A{ot?žg*s4pD XZGQ;cS@0*|^-^bTI\vhݴq{N[[mܙ O靘%7DdS1jpaoKo Kǃu4B*u2U'R (r7Z;'I  Fqf.4u b c bO]c; bpQr#[ Ѥ5kh[09w+-]iӋ ' t#a)^>mřaݚX /\¿nLU |t?3&[|B`s$f'Utl܅x1]Lɚ̯YhL-{{9p=!04 ?>w@:HELo4/[{P<ӸK$NtE.e+LBv#NJAz0κ>o̔7 .yq6RM3/LuM[x?=>ҒG:H;m^ .?S/]n;d:*\>ۛ_sI[_D丝4d_4y)#1wj34ߖ 3]v᰻,48pppݱ Ge4FTY G[!*(,EZ]f"oU8 nX/[U85,|Q>f9cQNb2ug&ƍV`in Gcv Grk,|مŎ}p*2 aha8X 0< `t~bahh I̸Or C##B.F|rKn.І۔0Ye  qV70]0V XaZn խ0ezUZXFZnU8N蠛R$c4&2n, 8 8e=8L[O}FqK*X#kșdvH9:%>qu͌n8FIS TRبNc;'̋ڕMa0|e7&++ڇe@T{Ig-Y\y$}r`/v0HPC20Lr <$}x J`kqO>܃C ,)E d7W m-f{0ۦLJK z7:r 洕H᚛Z+\̼b& eL9,9`r<)1M@ݱ6$kшi*Y`ikŀ Q fp6GQquyxA17у@$@;\An>s2tt.Ь6nT)qh4gc6s+R^X=9W0xf@Z\_@u=0r/}e8<3&x|Q$_#0];I\ >J8 V@d\볇N 9%aL6݂`} ƨW$v)ǐ;Ac$Ax) _,RbL0~6>'dLhBYU ۘoX5/ .W@5,I̕ հp6M҇kl䬌iGT劖/”؍|^,L01m,Ftb06E&2,@ /ۤ0ʐesrB4YyJ9~a6v\0x 6AeM0elmƺqȰaRK`\ܤEYɇF@Tf<CtAUښT 1k&ʧ1t`nJn!r5)D&mJ;g^1s|SpQv@ltX!%zjH(E"؁0Wow9CgDSB{\*s0V->4bpu6_֍!pvy Ƃ],!PE]zvfg`鵰v1i-]@q''2e%tF\0ĠDZM7z%t|:F.X)R6Zs@)>1!)o-" MOͧM&:A -a B{@4)d $I* f>㈡TL7nMMp$?hM {;8 $_ sgjxؘ%,ON7Z:I\]kAX&ȶijpZa Vr2Ӿ^ՁÝ. ,@vPhMkBvJ5yQi9,=ƒ鄥X Aj%`_R ]lMU n0YuZ|tDDxo> ,C7"HnYjD`XWcE zh2KUºt xY0[z${H-L% $||5ǫx/)Yv`hwβS6@2Xh v0:~X(ƱI.R5(hP/.u17M a, @ ;>R~$6h" 6%Jic${|U83n^y. @fic3`vH_ :>p(n/DtpyaPS0 k.޸F&ȊfQ_W&3j'FBUyƟ%0lQ EȊb!,]qp1 ڒs yn1Y'ѯp=gSDT >ed~@֍a.`*X?5Zz`Ѓ9gIn/& XrԶo& bܾ&mj`Lzg7MI;(1iel#f^AF[ KĸmčuxWfqe0XXKm>Bu?p-c~w7R _=D P-ąr|x`5Q[q< bXz´ޤ Ԕx#m2X/ZwCX,}TKcLH*WVٜvVpZi Y4[nO[P{4oS(2[8KE՝>Wo-Y-o zv&$mU49&]*b^('|50,s |T7{_Ϳ-Y=5 @k /~4 -E][ob&,+\-s)b 1!-`fN#7)$7b O?<,ʄ*;O|/[AʀF#0|pa1Zc&wB?(̖>ӆ1 0aOLi n:dt2ޑ,;޲FPtȞe+6*{fmL,5a YrZWDw-d5LU\OeVn:uݾxNrL=ąaݙ†lj^€LLᰟ--f xa{کNUH .:sXox!} J$[2 tQf&`Z<3%* 𢈔h n~Z<Ւ=Cq C41-vҗ{0FGʭQ߰KLɲ5:%8 8S;5]Y|A6(SD g9I[1ſ9t9/) ߄c"4e]6ȑ|D#&R5O8PK[cq}l l'ؤE 95ƪZqbJ!u ]qs&e kjzp2\z䍊0Q\GJ:T$ 8!;LTi8u$:ʬL`P[XrT2~e/ګ-؃//=mZO9Y:eGp/=f+)7, }ˆ bﳿYxpܴ)v'c׈iPY 749mݬ_Fh3p 3J|Uh> 8NOp9s 0E9}%\aɱ/ԗ̡c-cj񋋻td EY=g{r#`ڈ34e >gӀgjqSxݦ<`N+u.oׁoUA;.t~o_;9X<ٸ@4`j<̢u,f@^WȄ@9#bs%[mK>Б'8-VOƿ1}0 : )>'!pi|NRjs\a d8\{0t4lkN~dՙgd5lux 3q,:7T@.gMa, ņ$CԱKFׯ6W L.ȓwo5i9{H\y"Y@J +` àZ2b/e3H,?ysG+$7 }"{5>_:6f=:*s!O[@*O;a\4t9o S@0b聦[#=끮 Ho8C0i+ݗ(\j]Yx_J tii)j# >d7 2ehRu1Q.'/N%DGN.:~ EC{YI{F̒ =Ϣ?{ ~ucpnpM`:d#-{\ ? ;ߋ/C9?2[]GQe?EFwT%cLp}CdV2>>W}pve$n:C2wg|IŬLAV·{ }A:oߜ/їil=?EE[uX\Gw`^?6T@pˋn0eRD0*`xW@{bȳɿHNlTv%CI9Lw W>ooE[lB+1:s0-~/[W&-W|pRw|T" NpT5lGn2/G A)s1pAҏ@hT R;JrÂ/%-&M706lU'^RvA4nv&q]lJ R1/] (%Kly]·Y9s41ih)XHU RуT  xpSw]eXrNPT9*^Dν\qyF: ɲZ,0 ({09\sΙo,f˙Is̢J- c:%Y Qe6˙W@ BoTڂ[Q4tl!' ګ,KDրύ>XF(71{aGw1 `Y_UG jĈ:WZ$3#BiO~{?95¯v }'!f1qNMZ/i0iђJآAv B"LPK&њMdYG`ahAcβiN%h_4"I *܃A~ELaCJP4&`;.`PcfXJ0U\*8ʸ>0 jXW?[Uorfƛbd/ Ł+|'uR`$qaC[ԂlLg 'X _ZuTj mI0OZ` Eڭq7Y2= W @n1'Ÿu]w ƊY_dNiEYd8t,o]C>'5dgub:&r]B`noO/zX:,t}]a#\zD $e EiҳW91k;dr T Ɯ1-I6KyRRzjKg!-O0!Zbi-Y 5-hdS7Paa!Cql_=( z Qrm}F'h'Qz)ZMYYtab'Lo4Icv"ddYu g變[`yP⊥k[;] 3Z C-Y jlI)> m3PQIwm4t]KRZLj$,Ŗբќkz|;l"#2[rUE<+b…SŃ$waTqu碹#lȨͷ` l`{`EzE V{!fS.#$+)`72i]jG y hdkxPqV m ^10̢ym&;sZ kjeQ#cPBgxcEH^L˱kykkR0$O T~nˏw8S jdoF> kث+P7%t*ꋇ?!P-cwW Oc/KrjIr+wZΗ!S E_'Pa~b+KU\ևTy*傚8&Sā3YW{_gdk'#fj5Jnϳ-nWVn&+5wy@Ol7Vӯ&WdATdI,tRWDoc +.ZWRjbbҍ-ܤdBʊO>{HKZ"+Vzou2B_f"Z1V?t\[ZE ]c~0_!#LѦ74b~mˮĉԞu!Jfژ k3Eu~߰6惩̩vY1^h1, ٨jHlTvd]H5j{xc08Ru!/ķ ߹96<(- 4/|a}` /vt`q"!Ҁ'`ŇMQ9& ;so+W'EQv khuX/@>T; "u#AQ`xU`/ܦv~L!}'@S{jp{^a#z|0j,^ER<: Fȭ^z%ݺGW:.:H*Ü *rZ0g;gIs `hMxiu]Ir3||CZf 㑝Ql╹}PPX!>Xw[BfT)TH 𓚐+O- ܸ07N[9HPCQ3bV@y,c鉻U[2}1vw]\f7kBK Rb5{k'Sj{߿c0\t=~psZ\י{4MwgBpG|%UY"KqWʱdδa]^V_*J$w=rJb|$Kd="$@X=d@6n84v`q(hd}^֮pE}!??dZ'JdbHk0 M}8љq5.ż%8pa~:מRmԥ,a'ӵ,2ci\C>-:>P//Z !eM-\bzw<сZwvR`m$fh l,8Z̓yBLN 6bY63ztĪ62cznpa9Ϯڐ27P*M\43=x! FLʲ?z‘[4-JqApKjujdZe23,ʓ;17Gc uc6i7ktѺ=$y`n%o):iZsaƯ:Tt9p|`!: Z %.V Nx ~as9ll)DQ?*)ev ܎|Ps.Sqr*h"-&&ZwU_5h9d6 ax}QAƇk.wDĀ'pTL)#![!=> A`JLOͬ {&,-@T:ɴt(T){OI>EV^#K=Ko8g㷅3f,/#,w+/ m+1(KSO_l5YR#ߺ-p)"ve`CO#He̖it /bv*L~? nwgt&F9{ qv ھ&]=?B4Z2P'ΜzmyyaNTڰ,&+!R^xۇY]!Xu*Z pa\a.`>c\ezv2o8]Ŷ͆palI|Zysvi*:'O.Կb 4:+i˗EQDZ\rL!nkya2q |P38}*21/6pRe@eK]QeC7:T aeDuB[Wst%'t\EkU2t%µqxYd4KYniW[C܋5)˜R"/ef!TԖz}pi0-Ϩ$K[F iKa-s{vjKUe:*37=*`9*`6 '{1|e"JiIKHkN=_Қ|<<ք8VΣD\њ:#6]R8ZHzUn%;PT)YAܺ^6TzVTvzUwV1*ӫ؂JRgȡ~tz}17>c8Wq-" IX526hX OnK݂I&c%/9hW< bǟUSElS=-?Rs!XR-U[=sRa)3I(dza._$cbX8vG,24LNFS1 kʶ['aJHjI-|ë{Α0 5ƁYU.i;"DaZn;<=nY&UE o/-Tbz|#9zPTq>z`VĨd *Vx(#J^7W,=`f&JˢQձq@x*Ǫ̅YTȼ4g!_ ,V5X ^bI4|Օp!6q dl1ˌx4h"` {DoiZ>ReBE,O*>(yygS+I _-"V."ez3iyMNmxYŏLfF1Xy/X!35Ux/;;+ 47 =>fE23Aą٬Py~e}~a؏?.V$WaC#>.VԶ9{5Wx+G;Fҡ8vp,hO 5({Kp;bi"]=@x+E(Cj6D>Őm IMe?J$)6 be`2( |%1[7oHQ?+D/XFWt1m]/z B *,C){|5]~XS/kʫLgvYwә 3hBĕaiTVNNZr"a -88Œ.wB ږ0J.wM,0mH,kYjq=DBhe0/ \ kT{(4e&ˮa Kc!8!IJsQ┐]hN2G¤d[Iu0b (-ȁ=E4"اGKgHt$d)wjn:23qb:4! [00D!]h"R>3#(;(UbZpQmlLLqViFhWkX k 8o_L(/dg98ˊ(qaXa!1*`IK͒PآhF+dˆɍN&8$ı223}SQߴGؑY-}jᡢ ӵ$gX٦hFCɒl"QڢXSD ΂,Lp SS%5p~2K' n |T[QHL hi93r}<9OX|}j`IP;d1zU/tl(ƀЎ`7yM|(8IJNVTCzLf.!4 8)a`2vw礪 _ޅEeesark%fĬP—Ee\\))i0TnḙJZfNujU6рMҺ Db 1F/ҵ-` -YzHL'y}/ Sc,TN¡)t_kAVyb {- GP9Ms3jA8uXоU& 3kC J{0WWwH_Ƅ7 -^wdWn蠝>sp e| t]ߒ:J^{YQUìdVjW_b xo^A! V1ORk~AΠ;G ڂ(90fZ+%?p\-G)kC`7 kW.P.+8,(u2STQ3⣺Gd(Ft!s}>č9P|g3ǣޤ؎H Jvuxt5Jw /¤FA7Ml~[M*j|ݢXVR`h>,)Qڊ<=X);ӎ2u0,a0pncDM{H 0)13Mz 8UBVAy_$,[0O{YgQ q{Ub13큝uHԱHMRfOW6yfphbH7޾_S$(ꐧUDUxrDqo*sf3~T魲xQUL`[8c HQ}1.88X8ܥt/ }-(ڤ4U֊]}4[h68MU i{ჩW.{+K~(+렣ߊ-ZHuJY(6f|FQl:KbSPlw֊^b<߷bSMBWlo *ބbkLJ}[Q(.[rcWl}v6bn?K1qQl[L%PdcJuYG*^jف{GYݗ[BO4r'3=-ZHoJ5/MnEq+^mPI(6s궄b]{)$-\&ώvb[&>q8yB5 LhV.VwشU>1m#} cViA?G",TO濕_+8Ll_a??>xםkv &+9o'ݿŒ֟f_a`XC}ސOӑ̝7aШp/~?9(_Oyb$[|>JDm'lÚKC=2_,%{oנcOƆo?v 29Zfr\^K,[?_~WϿ7#dg?>՟_>{W )5?~714:`iendstream endobj 287 0 obj 74812 endobj 293 0 obj <> stream x[Y?@"fo߇% AbGY ;ZMR<$+>]I H*t_U(a3Wg,׊qk9y{`3&1|f=n=7۫gړ#Z0H?j?lwC鈰Z3k֋sKӉ|׬m5 =q1/+pJp3*]H!Ԃ>`_]]l=4W?~wW? {f26DheytpiWM0 h EVwIaϣRq(YBqB%2,DLƽ vqO{ 7=tWnD)-mqx]?qE)KoMXkvmַy)yiuXTe&TbvVcxTN翊 )b6_(>?P`,! ~knI M1{I0OM]oVͷ0m#XDa7"j{Hih8{54d/o뙸]Dž児o˨WtA*f &?ıe >*&BBn]lf4q8.~4Ynmtiѓ QزgC \^i|Y*ew1-@ H9 hA&&3_8uX;B9? ̘Hχje kK/C^k])y,u W&̮]vv@ #M8=h[ˌB\| l Jx& 5+A*}o!MBF-:VVa9+E7e].V&"&R 6tBׯ!5QCIceI.26%6?jrRw~:z8;/:/nDe}$i !p]-4P4 mͶ5z_XD+V/OʘXZw.rܧR;*y[j%=@=8`F @p4j< ls6!<0$E>j [yUQP8gǕ4u>2y_qД8yL3B| )?2'}t`\4=9rrR9Ŏ 0I @PMA͖:v, UM@.<ה>){D#O[j}#O[(r>֏#PwZ=b&l/ xD$o>\%4pUSSe.MP뾄nN=R. ur:OP\iMz. urK%&Ie.Etl|qYsAYWY&f!I亨$._܉go z rg!+sίӀ9uDϫ5Z91R1^MÇ舠j-X>둎Qk9kxVaMLje+m(q^ 1֜OQ@[>n0<'YgKhLEbN=X-n9uDc9^ /<Ł/8pX]ܷvO-|lQ5 (9#96x׊V8/eIZbseq8:`PcteK}wVƨ7_V!j?w]wiMu>/o0Pa ݮpj %hוQ6)0Ǚm?l׸o sfό8Bx+[FܡV VzL铚p*xc%W.#ز٤ =fG8:=͎rkaʽXxR*R O4j']bf5TP ҝ&*s|h{Í cHHx< HH8,u7; !&E!D&Kt B[ o_?fQ endstream endobj 294 0 obj 3270 endobj 306 0 obj <> stream xZYsNPH>cʹh:~0ƸXH}zfg!TBVԲw1Fd9[ޏޏ{~̖;J 2ؐ| CFӰrt@ZుPɭ4 qB"jAMz_@B β")ֹWLhSbB=`5 pM8_EKGfխ[jF5OKp^s`uH2%ټ6(Rp$+F%"嫝 Sⅲ2YVD4HƤw:Hpt$ UqEIwfW,F&$nz^g-RW2R2J mE&$ FL#%47B,8J0g_/ )jѭ6 `fWW ÜE70#͸袒Cx(z,56òk #*>HĎaw?z4ݧ<-]y JIA"7T?"/+A ֤$͠9bFfEI) Ҁ4H>BqG$'Q$ Ӑ6͈Ղz`Akz9djҪ"z[>EbetE+8[ rn0#$r8Ww_h}| n.OA(YIqi9U8)=Tbl]TL8.0C̆1F$N4 9h bU(NQE JaQ== !Lw2LƘrkJ.q,P|"Snyge]}"<-v*x^GS8Q )|Pȿd>fH&΁$y Z")_I Uba2'TdYdHڂUi Gw-'CHjܬR= 2.Vx+G9~bؒTÃ4Oq[!&f!Px|ҫ6ܥ `D_9n|2uQN[e rNldKe]Tǹץnp/Uiс\GA rtw#47T[kc7.*\54^|lF_BLOgŅH d:}' h kz74 C$ASċM1[!*ۯJڐs:nR؟r| /(:һ~/[M1 wdGeCWW ށ71Xű%'\ySbg0!# _q AΓͳ읶=z6}3BV$:0mtd 18ؔu5dM>c87!@^XJlÄn6fų{!T*xmy˖vTfMp%R7`b'l?+%J3m"EQ?!^ɾY/;bjϋuu"Y%E^mc\o;eJ,en ׶Hy5> stream x[8yw} 0vxf %u*Juf=ތV086o`).}׿Wx5|rxjRoǯ?77boP!<P//~S~_L5_>w/)*_]sO)F4c 7eN{O߹"o~o~?W}· Tj2+P󕟮a?˿KݧoO}cNO1jOc~+R˾rFm6-Y 6-#b9W}H璥smX)?DO5>]-/|kǿzJ%11D>eK6+Z۳~w'_w\m/ރfH!:b+Sr?G({AQW_? s>Çgt՞rZ]}Zt?q%(LbۼMs۷J|q}Ig5O_X9Ϭm"|?w {F_Wݱb~jھd疯_w/VOZ+'5޿e7q7}kZ_>pӕ/ͭ +[%^~| ':'ݗVjZݿJizZkǯO 86YKL?ihwñ Nu}y(ksbDyoЗwObmjxyXxW$Nu8IbyJ?w#1$Ir.:χ0&7ZM߿2 DB0Լ3S-痿o_<{yŶRw//{_{ysA~.cQ?(ykAD[s[>ESnHNڂ<(: c$vx(ίz~J|(o?|U&m>O޿LirLd?˧+L''G#IN֒zp"Du|Q',79ǯF>7rZ&6o㕦t12(X|⾽|w-i*dw_TuqT~a|~RFggNY\?Z6VwB3goHN/΅[X,?K;7%zW\2%)IN^Isb)?'#s5Cs/~檄ƬzU|)wZ=f[wOS S?{8:YfϿGI8+[+2ɟƺ>|y^[J7jsx8r,oWܖxc?qe-þL}eG[<=g{vt_t!?u5 _uNyw;Iw"Tk.~۷D<;a^aä2f^CҼxoф>{6Eo훂lX$~1{n/S71Բ׈yZq6N.Nt=s-\j ~o 6๮_Oo?ٓILvO3s_tj1? ^yL`&'3d1aZE &~G$`YlIvh6,Lb=&DL 1Yx^ undx-SFZ^&S(Ha^cր׈EAq ͬ:&\ tT&)K=,rE?xP(qP1TL' 7ql>-Z:)\f:̕OʕI.N?e~\ЂmvX[y9X@@e^6M@ 3 0R6sm㦄=s`K`i,G8%v G5.í3b&|LxQqtOys$vj~jb1*Z4# <'6#9=9θcPT4u:8bɑALن%ĩb76_a ,>HSjkPA?[4i98"_\6lu'2܏9iŢU '0{5:MJdg Wj5B|1 xު [Itm?ѢgUt ּ'ld&]wL6g?8mo7>v`DzMdvv9VL=ND̺f2ںMg =pPƯ8s:np|⸇mV̼3>![kc*l e.ex8B\ۓf yb/=kH}4M0YbG*<a @)$9j5;8n :"p uάlM Om^%HZt\7 Ƽސ&!֔(+Ty~abJ^l~"؆>'LB 0#M/,o178UBqr}!hnDQ͖mӷGIt;&fBhZ;=&q]>6IEl\'{zu‡bwurQ{ٛ WOֆWػݚJ(YJ>OYav0M;\ZLR7L¥2 =.rW("K0H T;9>H.թt_oc[BNhu.Js0#-kٿykc8&j 4riwͫe-*Hun~ >I^¢ZŸH^$xi?q5߼ef~oz4qcuRAItd)4R 9?!ٍv1fcB"~akþPEm6!k:m )qm_"RW됮ay' JRg4w̥ ]m:F=nbj%zJ7& |x96 bu.uAà`M?o?/]ԩI)h'\1vcE_! '2% ]qjPR -&Fndo w:cֹ5pDu,c>p9.)I|N&Rv NR\'i% CMVYI Iqi%C+ٰk%ʛJZJڼG>`;JC+iR[ZIzi%m^ f/wC1i +&mʠN11;V;#[1q^{ovV퐖a(I4y(Uhd5:ӦDM=UA~a"[`iMʜ^]: '2U6 dDE ͚6^xw7AxX[^Zka2朩Q8cqfڸȇqf ;#؈SĽ0wfy~[Acw-f53671Wx!4S5lC֌e5L-nd 5M6dX~Ⱦۯ$ͷ,~&/2ǀ;M#ʷo1jƳ ǵ-P]-t]kNZj},9N͔kAdƻ1w!֞o^apG+ >ɻԅ35s ޫؓ~iɇqHaqʇ8`aVZQ/O躮z){+al|ka7Ҷ|7F{1S[>_Lxkv&x\8eО^5+ȕ)pEx nJlhK:QC mdÇdK8J}*3edLKtQ@ q+¡ͻA][?PEu͎\- p o?]N-bpq}z2/Ж } ]&%v~ N?F$/,8F^xv>{o#hiD3ct[pM썁*(v7m;|{`X; AqpgT2N z0@3UQȤPc\]c[q n#W{0|Mk>f32oA2?,'U釉" 08uRr*FJN[2 \v؊c2^[3{l2U[P8l,v^96 #xF3.B#VJ>$ҴFB.Ftɶe $a;!W{yo}$3>"S~#Xh$Yu5b .7#,iF/#E% q;ɒTBlki-yTxbm4GH{o^a}chv7-RIk]KFC~?}q#:5IQݶ>IFB,fUfa0>n0bh,{%F {ko$Ki=< 'pNַ06p4ۣpY&|CxOt`'^bUt$$F0>s`<c,61Lyj:ppYέR ,ƟcB[l1F!98;b[%@SU"$K.DM"ꃖtM-^LsKO8w g6,keŒy`hRΰkK1 ":#J\W1q3F%w"(HVˁyDs,#;h2 }qܖ!Ê 6Ub5#ðי 5%EC.! R{Kd*UjmlB5Qu~wijW#%)glR$70s) x;E Qmy_3 )%/n3 ni{}M{ȅ VE vdHXDxw.UݶSv!;r/ƸW6b`W 7K~~6^K '@_!#..;JQnzkԟN(]C&pwM Qmb+q!LtC:Ip 0]'܆_sy+jŷ1r -B-s_2޶[pmy-4ł3` ljZ(^3t4M+VyH#@ m^{R#ѽC#t-ysۊoarb2u2&@` -\C(/܅/@TC54et Y,AL n}kTp)!| !$11L}""K8E !|Xk]BY,~qGxd!c]T/5*kp6'=Q k(DtM؟ZA4wY tMx`ƝL,k\A4NiDӈqE{v#'̫s9&&0Ρ14A4132tmDF[b o{WW h(eCҁoZ&p9-m&f%O ;z򏯻*zWRV }EnM׌QԬZ1^ísSpwM̵fP6ʤH2;hFS̗41G-A`pt T'!zk$an.@~>"_983dg:¼ a\_GN 7Z':`Fޢ 8D 徢}iʗjyb[[ޢ݀4\3-y9&/oe 1)w^I#2=Mtg&) }!gȸFgфm,:pI!#̛V6ܢ(!h5)u/ A|K澢9K|+Y+pG(+:+Lf2:q?wgсs|qºc60\ (x<;&&/g5"6ˌ"ge\ #åť: $~["m6tr%nZA1iY]{*<2;ge;]3Π^bȾ)7M8䞢Ik #uz(bR1Auq-m D,, cuG0-te xZq@`@:C;|^"?VEHX`v'(~s'iQEm'ha['g6XO:?Y8b#Ť%2pR}  lNT2K#lb&C1U=KWۨ8KYf:O`kGQr`~y/-Gc)fIˈ-H$S^sl nJzcO +V0 :y2ERb9*gn|)#AAƿu\g(\!ohl;($?-ݖmYrd%csV(ǝUba:MEi0 qq5i#SMfGFQk* -$JIȲO <* l/d {%=X| xwb LlT^/zEvl" q6dOkݎJY^ J2/Acu} ^I'1Y=&,A2L ܋@CjWf^oA px%]2VQ(׻59+)zUQ*CY77\|8f=/9u#BEEvC#lurg BwLIN:(V ˊbٵیaw I&?1@YϜMˎ%K;FAtnȑ1rTc~܎u6;vcôc0C;)o;h'#j5a%,)ryşr!l;-fj[f9 7['N;gf Զ#qK(Sa1pC/lCFwWEq,]-dX}АsX | 9g-2r.n3E -y ң)09oSOM٦)@˜ õx2 R2Kڲi` 췌:nl m̰ߑ5H3lCJN6n˜aGg tmJ>FU5LCQcMlel xZ36֌!s9_* $:o9qGm] O{^W-v&)jT *.>Te rƆݢ񰝼̜ j[h3F,9ӭtd3[U-ryV\djLV\/c\\iܬaKA&.)pW`ؠ5¸\>zXf g|ʯgf76 =U\kjΦ K }M\eZZ0$1z A&ɚ,y$kbY$-*HZʲ!* ,5ArI%5kNId9)C)2 a (ۊlZ\G.#sbҗs~VϽ-#vG;=b}2ŷ[Ͼa9K- ;!bwБa)Ⱥʠ~#9'N.n ' n/WxxوI‡xvl%3wE <bK@%fk2DZ`|GEdvvɇ(Y={0(;ƛoLW>q ^ [xJ%~ hb, 9GxUY d9 <zT 3E-dշlHJ =5T,^.L]V7CәJ V=2Ӗi=x, [j;36MNO"^ ԔSz bp: c#i+-hY" %+{7O]i܆_kLdj>U˸ЇS8MؘAfkzf)̘ ͨɝ2MҤ؃\d  T#*xeCE*|[Jad?VlfJ$ZdQ#kY:Ee M28^g7>K~``PUY#s͛gyS8?1:zyq'vdw1y30v`*YqИ6Y>1]I"d݁Qfǧ!`U FZ^`c]}PNZm4e0jO] 8""/#rW;l,58 M 91W1Cr ?0gaX2u}~UQvQ ݗu(F/4]S*;/>*Sξ{>9Y}kasϚSW׎lyWOtT7d)+9E 1d]+7M2RXwGs&*QLP<81IOfAFxV؜%Bq,]6eSF_~Pi~aᾅ:pK|+OqRo0 nݴ`I_hPs1@d _mXDZnʘ1܌ʋ{_aD/'sR͜kL5LgGJk#дm3bqf&"%2$\aW[٤p~Iչ"d h;.rQ k}@d~,fbBP׫mC(THF 31Ȇ9 N(p/7 q,la טa92 nk-E7rt5BfIfЩ{,ha>yIvZ$̺`Xidg1'`'J̱2j~d`q 7q0#Bo Wf "w4srݏZtqSb[㞃{ԠQ64p Wd[[=\kCtIg@z@6&a em$8,-lb셅@Qq/(uP8EEJ"ꋠ[RB<Šwc𸛀F6كU4iLdzm_t#qɆ0Jb, f ix\יv(Y";f̻o\۽LeAA{V}4L 1o+J19ZuElyRTu'ԘtEY#qT*_5$0l ]*)vy" ~IXB<"Kch"]M /Ty,d>>Go ' 4"Щ@SJ YP^P/7ֈI`.w{-q ?p{(QYm]1Yz~e#- ྍednJzLBXTQ$٘r!aNZoL,SrvIdq& n_0 PAύ21ނuPJ\;1vD,E>LIFFdvv$ ؂\nϘ(Rl&l]jar\\rه9Ark=3287s~b]?o6lxrL5KRWQJIre挃q8[uJOrfmÙc @;PHnIƾG}PRN\Qب  O}aatjiG A@1l Ăb`Cv6 ik\Yŗ tR[ACiIErB]K.*HcC1L*Ro,x)!ټ=[,a wZ`ʡZC ȇ6QLn1>1&X6Ttgd^MT5Ȯ%kC-/~P&fQfi40ns:lV `*zef bEqF@?&E^>Ra 8jUU||  {wYM0v@WW%!9LT-R4.LnᰋS 1w_*$ɱ9#=L1 7&@k ([\W%0]}ZptѪ8zfI;~T W:K ]\h 8/AUљy!(3>W.꿠+ʲ.v1@[4 hEYtmFOkH\-Y\iJMg#]̈ӎzt--Djݟ*[( dg=ֿr,ՑZM[0ҺXMx{g'_Y1[Ӎe+!Ⱦh8DI`up'&l؅;`W=H) le1PNw9! tOK@0A=vyg&FqN $N6 *,gjbE '}ol$k1e aY(/m*|zz^y@ߠlT8V+'/PYb6`P[mL5\u+Ek{{-[_ae}cTl 2R|48LG/eY7ﰪsu_\Tu 2S /~ځ>n11{'+ #oKkTzGf5WzG trwdLSC4hP {>J]AM*/V0aiBk]Q-rS0*;LU λ1yD-p醴ٗ9p?_:HJC0J絒3OZ:BR!PvGa/tjˎ|F iJMW@OvwaNZ`f:(:YBJ:/kɄSc,^Jww\?u^+Ѫ%ĵ?>3ˤbJ#\Rɢ2CYaa0Xlmy]טy>[P/̵s kՂ*/Vy})]kO~/X-Iu6Gec>rԼȡ8MGlTnT)3Yӏ?rbtu90ȕ,\KL/L֑]GPG.W+#7g:N#Қ:rXCB܄\ӑ[#؏L#BȡGB;V+80)y8|; 0uQhǝo^k%.D(օ)Q^NG>:^sg4Kvs0[VX$t>O2 9zf* *a֨emdӵXaL7(8U/z`Q,qX6}PnxփGHѭrB1`/ocD}WU&LC%p&\Ş4GccPjHV7&L|y驖/ җIejרKkI{g8OyB<Q)}˕_*}Tŕ1KƝk 3>yl T"sUXBĺ!t9\>DY\(KfCT#U/lXWZ 7 7ť\,->j&|>Hev׳GzF9V:Ir=oQ꽊,yY>^{7+>tBImC~JAazymD,+F)bY1z'bYIsm,muƝe%S٢_2RBь|X7)bYxX ^"c\ ־$,T긓+. +x$$/^*pZ2̡ìyo+X!`Y0|nKR%`b#\`PNcۏ7v9; g&k~ sVݟP z[o@*4wq|epNY)><\||+^zW[1- DCZ͙n\@C뽓F|0ⵃIvVWg hqd,2NG uaE%Ѕ/XWwKtdb_ 'Sߤ! Ƹoa }x^or}GtM9xXI`fqswaぎAEpaC2^9@P|CpOxܓgxd +(bnCFxy30n,kTK7088Gn<=/Q; >VTug^2}ŃbzXNJc{MV*&w3DHgJ^oX'1M(smIYy"WQqaWi@|RFQ&0TQ.rVfKV(71'0M*:Oۿ,ށQLG7uhS?f7ӁHٽJ;%;l҇^¥HT$}Y0bbבQ' znf K-&LM!8-,cO K[HʕafUH]UR Q˪9'u]h0TՆafH[k(y1 -e!fT7/mNc-\d !^椇!30f\Rtw=37XA$.to Ư4zCІվT ߄JM~HkCx=?@̱u/ UYS%rc,yU^Hm@ĸݏ؂3CM+`Lj5LSŦbXT? F *'e5nXΔ`WٕʌYG]g֧Z]c=*F]qB_ -\@dJV[rzq 3G -zM)VU&1zld?a?^-b}  ٦OrϬd.5\n8RT顾:;\hĔ )/(c“SA'x5VW x c3{ 뀣M+xluKf9Žf'ۯS QhT6bhũO( L<)ͯa\+#n8X{fZ#嶌̒w˖DIy2,M-dn˰LI!,[%{ -7htaBz@%.cUĉf zӲKk۠arҠaY$/=F ZXm3*ꢮLMF25l³=#'gnϰz{zD)W;KSkd]'Zܠ;,F׾>p&ҞYEY^}R`p)UDjh tX%*[h,#dt-;- ,qFF:e@q4,Wl۠b xخuJUA n%?2ԗAÖ4h)ӏ2֍a06&IblܹMA]f a43i0^?(wpYL14i8ʤa#:3ʤah;+k L:m2w@Qze<4%I ^Z M[nػ&Uf_Ӥd[4iXF2ܸwX qGQ^8WVIz4,UI6iX22N˕mҰv I1xxC~}.j&'ZGp_aIccT[LH=NaF&,#7JK4Ucl{m-"kuEYaEm1+ H&&(0zY RH*q%*xJX0]IYãh)^pڭe <:RQ*GuVa&w~Ȝ1ha\Elf}ՓG] ?KǟK Or^H=3jI+ 9YFY'/X{b%VU=lW5\L+Ƹ!ʊL5)Uym7yUwhqJ_ehD&f7GYXkm6-U>B8Nɭ1F-LAO]v4?Z"7pƝ1–̼\{.V'Tx7vm ˫~PɉcuwQ`\]W1;EA;]L?`G):V*Eb=u+H6h.SnWkK ¸sWiK2ؔ_U5Ǿ&+&z UYwUx'#XmW|ۿ@KrXOY,ObJ\tx9X;Œoib]e91[B; =*-KY.i?ctpg ``yUBެAyuCgO_}B©L![4.h VzQ[:Bfg+KK JT刦蠞U [/t?5W) #7^DyV@(%ŘLJWΫEaDD5wC]OUپxm$+6R8VL1zn06*S^Z:*`$W``Ze |V SE%TCzD2= $ʓRg&}Eب6*i%kiYAz \)Q؟^mP(X9J=A6FBWJdvyK܊yҠTvةVt0ųEze#1bd:XKigB\[iD-R{B)ʒ ޒEuztO.e`I#%ml:c$XVf8lOdNeƇ9*xr"G$+S,agJ #dJfZ\ [56W28J_?͕P'n 6JeGokq11S|sJ.4(\iPY\7Slnc/ f_Bv%r*"]َDcLpP3&/!Sa)ŘP ʒ!c2b1~vg$Ș2}:c* ی0`bLV%ƴŘ6F+);c1 -T&۱BiŘrX 糞"]Řl{K8"gL\4y`LƴN YQf5pjȇ|KS&(a1\hK dgkk_IzbgճX %}!ҡ&W}KՖ21 jǺj0>܊JaA 8`^WM21/TY?}fHqb~qto~Klӫ1hb\RSEk?](nnAܵy?Y3oUUTdkl?;OUq*ƙq,f>4wSe1Abϟ~k wW*= 5&h۟a;WF˕ow%ߤomBЄ5O 5@["aZF2^d]endstream endobj 314 0 obj 19682 endobj 319 0 obj <> stream xKf%uYb=jiƆfzDJfvfB]sQlʬ.w<\y(?>>o,yw <8CK}6]n7Fca\K/9ǘJxlρq~9g}_C~/&nxPiNJ\q.ݳv-r6cVocbjSby<2QjGE]ǤIPD 3a00VfpDf5D# Na.ahrV^%s0Ք" +n`qa Y:Ƙ.]?X]$F`Ӎ䗼P'`_,Ҕ!$:)M[gmmi}2a&g f SdA(^BQge\I&mZg=!M(P MDs Pd3v+k^Ah(*)6QKz{=s@Fcd.V"&z١uъiU爒drjM6n /I&1)6$RJ&Sd)CpK6,5ڃ~JV NՀ$~"GJ&H}bϊ،L!'↕>ZI|viX`M'Lu1I4xq.(Ry;e6)9$Prc( `(&iOL8Qǹ(Mm$Txɇ0%߽,B#V< [d__Me˿zY>-(x}ם&[g*$e6If˸H*sJAR"$47z#UH*1AR6t#9~I$)sI4(O` $(Sڑ *A MpyjЍr@ÇnGPMF s(ζ#@+QߛD('nUҌqWE_t D(L2kbRY` ۭB2I䄉K$ޡ4ݘ8ZF5v6UD+_Q1/ UT*(06YI?MFb\ƦbGml*.tgT:k9桠ތMeʊ $cS3Che ZDQ?Mvk*4*k&EYl mdm*Uem*ySHzX fm*<֦bTödc(&*ml*vsHTel*=-C\zM7ilڰVMgel.dcd#c&õ&,GyXƦR26J&cMw"MN%]zD$wq%wZ{Q}שvJDjz8ZPL:j ]5ȣ\unZp}g7U"׷%L>B.׷bhhS&,9k,war}^h>63Ujc߷k]x\2R]}}[ym}ی85 t;j(=]ߠ]i'0Z8\v*-Nr\6za@r}pmnaYaCW~|~|߻6uۺ7߷ ;o[xhXUC };ˠDUWܚp&yqc%PqTTSS385 .N-rqƜj;TjǍSK*NRq6**Sa*uѝ8[,Vh0ﲜFU85iShZ*!6a*!HSũIT 8u.Kί^`cUqVh'8OSli8L![énؖapV4ku1n0cٷ- iF8T,DY*-OzX*Νn (1~3˪6XtG@ ȒzvOrp-%傇 ݫd 0-TwF^)paSᶹ 8v ll0wl@. ] 5 iNutmbQhk;;{+:7 4L@o2G'l =%e!XxSKh*j'%Fr_L4-J֡|;k/0&Q4]XGmn3 |qkH"&mܥɨ=(w/4˴GIG3* EwEE5']|Ji"6QcȰb-{ĆPEA3c8Ň^2D.U9ꊠMl4j3?h`e"(:} QJ%$kVsh/봧ɴ!\BêvKmv좕5p;>ǩWaܩ1m;),rdsM6UbN-=r7 :#lA P4fvAAO& 0nμyeVAcW $bP,ő{,tٰA] kG:C.lA:Lt5$żՃCXDmŻJu l3y kF~kA2爂(*ch3`XjS66i,J$][Q,p4 W"lAiDJ* 6(\|3-[E3ү hl>$oSZ ߽X[}v}5boc{њ6:a_r[Fҵif_EFqnNΝ[h ta4PFp۵98VjlGlNf;"7[?fٮm#} g\[Pos!{ lA!I U!]qac:JhmGXn{Zۜ)OMQ~ʞ\wP>d]nnaam6\Q:OW>v?*Zf{(?ebN?eӠαN637{F[y%IKVӈvs chcܲx M.%y%=6wiz]Tz*4\USiOmU<ܖB7१+H SiXhN8*bw=V2\Jy<Q14[},O-e8"l1kFFT J#Ѫ,q=5rVvgewW<,gYJ䬴H^Wi#px[嫴9D?cpDYi*ɤlm6jUH5-U%JR\6f&tU<){3f6lOx*{H4k=SU򙐥@V K{R1 'GE/xEI[EQ aCnm  dv[JQ aEJOGr콅;M:-ޫ$+x<,I<jԸtuңxQңJ5.5ңY"4GVLQ#*Q#f% Rnaףa5=Ze}5bD=FyFsGb8kx%yrHףaQOTҒ n7=jc+Eb(У CZңv (`aQ|S얝qQ6(PV@aQ#{THFyQFPƊs5j\j4Ō5,1FYuQ6q)=pT2qEBM--jDB5O۵'mv9 JEY ŵ(@QdRA-F-p4ơEYA[fTҢ^Ee En6(ZiQҁZVEږC5,"ԢƥrjQ&SE=ТFvxI(Fb#G|=ed*edu`w}X YBsÁBPFlj.YEN ?9bPL0S15AU4]k`xܪͩ@A(0x B* vVjPἕd  B%UH K+JKP b5ar 0E!Ry'qPP6Q(Q(a `c ByBJbp [;I~1Ũ42ݷRv ` &P!kT*A[l@xq(-ć5JCJċG[wa 0B"M03 *+(.ppe0'6cuU DJZۥbBi85~֐S(waN1˳%.ROCQVBQЂ3UASw]=6R.T[,Aۥ*dMCbt>Q(}Fwq1&RҠ7t_dP<}nv.43mE˔$86nI$EV w ـqPՐgu óVn7>`|f'~fux㏡+ giC㈩$<dFD+~HW [t\K:РdCXYWos&7=yHsG MA>`  GaUl^TpB:bJ\]Y[2cmhC1zlk5\ZXqh bd]Q/+KquųSqwTW?/Ovsԡ?9R4՜_γmۃ|o~<]/d2obr2wiٓiP;' Fim!R0l$p*sc- Qopo"6F;NhEpEu=>5GH5w}lϤhw?}GZo_q YNߢsضJkEva< w_?}RG7$`_ǀ^~X3i$$u6Wwc?^sFf~h%ٵ5ԯomJ}scrìf/1e瞐> ۷~z)=E(OZ;eX_o@H|Hυ^_"}G:FLkëpEEg):`*o| m!Dd~z%+?/To?m_˅`B;2D~|d?G($EG_~_Y mVן>fUlaΙUL35g% $F.ymF_$:/uǹOxFBQ7ޱޏZBZ9y8dĿ6&c˫5!LheakӧwlgH|~q81C>ak*mSC%>*|v-ni# q1H Nܮ]#}, eσO=?XF ~7nAmvvQ/bql0+ #qG[<`O >Ήs+)vvu(. .[ ΥnEp &dȣB;7{!K~'9 \߯L p-:~-t5 p \93K"jf'`sZ;ňgJp=,;FOk1jHo_I!B+ c"ц8Z"eno9X&p- Č{&(P^.D1 lj'%@Jd À} eѳi`  T c,XN#䜅kb$t蠘lN#jܭ$j4k$]Im `93ӾE6kHĝQ.n8J &̎J+Q8#Ip' &g礖bqvp'+gٝVf+yyyMbΌ͸MB!Tt `zÌF_;2MGDf D93_k142239p_%<48+Г>)>!m ,( 'I]| 6ȇc|` ȼt<6h` RQr~q1Ԁ̓J4g2/3&X`{ݨ4*K f:0\A|6J.eKNo6EL[ 2@$&+J7[t_-[sAqX;M5d1dc|Q6 ȵt2q9v؅,tX^/9!iȠ4Joe[;$Kc VDz8 (E­1z@+ckzv;e UI5kcQ-[\ZpzL;38GRv/f2K[¶.]E(waeM@^O`J^E@y5RC|K #u4x5?R- ZJ#r ! oCC.\^/h[mHh[$հ[`:tʗ2WPj#֬/}{SiSkxeꂭ i-p.$ /@쉒q| Y:{ t|u,|#4V*BeViךs#ŭע1l*1_5H2 fa`%py.x tw-dIaBa,K" {q >ꅞ/%_tl.XjA a wb=jqfpT-X|.o5d<avK`_\]Ԝ`9+Y,b,I~‰G hKLngI-]:n娤Ve;j]T?dLT\R\@! u=Eo(`0tssɆq Сn 0 ƛ F|`fIĉf/@pFL;MR҃v>8!ډ:Cfjc(MbA&wnx2t:KR^g xn0!8wu gJ8I,ʐ邔pa?(3JK -=m hcuKӠ]"[q 2(=GY1v \LGMIi@եk0  w26Ifja[Mj*׫%)ψ  Nw Gi`X;ORf-9],1X>X$aĸ D, xd}&23#!0& \SY,4/,$\Cgȕ̑RbQVH MB6FiGՄ!x8&=ulF>=IC)ԝ0yɇqzRf"l3>vrcuD8֪s~8#1 :H͉N#h,n>}Wd4E~YL%Æ A[+U!t-Z.#5~Uϧ q7~҈Q4b`4=ɍ5m|-q ?,KbJ9tZj굴R K҉b J@g^ɂwyJ;*9'>:uZ%H |` _R8M^tث: H55]qlچR4c-ػ  wfKOexC.4!!-ؾ:en|*F@|-ɒJuC!K{Q/XɌx> ꩐P1Q \4C%T- Z~ ua \z?n'z~@LW?9dYgH:9YZN!4]zKN1ZTr9~ w'Z BK[`}[> ޏQ۸jzM{ޏc[C4tԠ1~j#3?oe+vK\7 r"Y{=E/pܚ7?-~//mi3-Zni)lpI!)#пmϊĭ?cOP?a-P*y6ORom=i@(鐑ŅX\-LxYpقM4 x+e`f^N]p N䵒dd<+C(9~d_,?Y–y;uv+s fǣd zS9e}g[,G|BnsAC2K] nݮz u`[ 2 un] i{Ӵe/Y|yWV1z35`0/Xw\ͥoT;cPv]2ԱyR'yP&\8ƊW:("&\pޅC Ԭ9S jwrBx %9Wɥ(0o5>d4a(.VY%a}{hmc;6E/ `lr ! 骢Lj,XvF#hƬ5M&/SCƏjHSx%$[J Y"r"M*A- H>E­Fûp0;."NN["`P ,`n"`\XؒえF-\ʉ)ڒvM.!aD"[p}lp>DMD3FZ" V"rM!xD-R$?4x" Wwb q\;72.W9|XF up+WJ;lY<zb!"6>ž;}sCVl"f"\fq \% 6EFdFہ^gI^bp O^ Spuj.2Kvk# W+{c3inz`ʄ 8J^N2q(mE sV Й"E[=K!}7e߯Y2xdʜMSI+N ( u7{xFgd̒*5 V=ge*AYAI rQ+e(!_ _ٞA\-A{*i<J܋"(TIWJ'{j +&C # ;-A9+hr£l8ųoyF)+,RVfISy&}]|KWALXAIPEVQNA;+"fݑw0F}H$<0R(V@\E*)dMUX jS /KII?%0a\uiSCE0aˏtΡzv X{(eMҳJMؕ3F=c(iƓLIH5-G8< ar++55ZV̦:ߌѕS$Ǧ|@)*L)9r4 w[I#b[ m1h|(UQgrIZl_"j$Z#g!pžeQS_> ´QM}Ԭ> 5tQC+GA ٧16O]hUx OCPI RDRS$ w 'o(>J:7*miFxbH˔?m\a:%U~HKn7>ym.C5rX 0ᢨ3PhYK7B",zv~8plx&J][ZbADF80^ Svl(y)FSǥ/8nz`27 HUC1 K QwQɠA5@:)Hu@ԅ۬,U|iMT c6A5%i3ؐRQ, d!1M}D]5zIK'g 3%7F^Gv8Jfy WO0Ar>tf!S0F7zGbAU 眶ֈi\G`h\'x'bkupعC_&\uvdD^y@ &dtxhH{Cf*.皝! %kSDgტO6r^0aFva9MtZ%Gx MMK{s7~}! rM+j+T bKBַlDؔe'+K;r9!g&뙗%b1lív)CXL2O11aeNG2R` :W &U^)ݧ;('euJJ6b@II"%mvJ1<=q81g7;)A.B$]Cܝlė:^2@&u,m@vmOť"uT¼` .2 oPRR6j-,BefWA!Kj5,<*]J0'aTx{+ lIw$p#P7EףFPBs٢> )s=vrLIAX)=zѹASb?T,pRFbfT 34.FM0l; .M@Mnwj;Ib^,fTr{P}|;'\eJTI.I 05ʎF]=ɍ} ǼM”- SP=kǠc%o֩K-ݜp KWE$JTx_10*Ce~͒vC/B^J2%";ߒ( y<3U`yMGnl [riB`1 ƇЇHƇ/Sjk%l_4_f$kxnl ,X}?[J(k<D+J 6u$h3:J9"40q/c2yIR>ZVs.dѹ R˓Ǐz]wxIbn(i %?\RC >vsJ6B>Fjر?\U).Q,ct2 |.DJ15u_KiD&{!T? l8ܗde@c2"zpLFCS/"<,?5$QkF90My]TFy`~1 2,Sc<Ñ$x&H [G[ՀF^ҹY||fNpĠyְopo'"͍Qus 3U)"ƉâܺA50"EB"A~V7F/Pz#@GlFLHez# ˛:7y -FwtI_Ϲcrw0}_,6rµa]D]qc]!9(}js>ozf].s,@3i 4:gX$Jũd.Zf͌ZނX= 4d5qk)̬ #pXfi10/i10m濨kq+3 DMD ",agSC0]CSC0ԩ!,x.賟"g-"qjl<$DN(wa lO S(4]"b퉄+5Pʭ¸i} aD[p}lpQ¦qt 1h5QoB r@@N׃[SJ8/Xnuk W;+vcпk v=W]2=ty^o=o.2o{^+jo"\Mcj?97^/vEY¬Ѝ|zo1 m?oIhJkIO1o|Ѵ=/z5t GޘiO%IGO_>_iٯ*Γ{VJ~LGn#~kdi!5̟yԎ8Kޚ{eƴ[OA'Շ7_z7[˃9֛ƸQs_w-.r!e0&8co^b)Cn!ad/)N89?~~~SO8e~[ӟo?gM,͉~ Hr~W<7amV矾~(c~ =sltgfvOY牅rʁg]Q2+(q?Q9Y^J73m17_xJ)̿_|fKSگS>k벳}/}suXO^ | Dޟs/_؛k#: v 7^v><`_|!S"c|/?%f džwm?}+kdCk} {o/DF;'rlO2׵Y{=۟?|z᫫[{KQ lY룶^2 /n׋!Mx&fg"^|⥞u]^%Yc 2o!d[rq}-5 @eN wMF\xj6r0+XG鱿W%9Yhx ҿA;ez[~foIyIwI%@;0Iτ^Nn}~m~nj{/ 4~$n7q+LrGk0Ud>}(Uڐr(7:Q?JFYG-l| oG?ٲg7r9T$DžHo}Ýh3j^?>}5\.pSxGZ>^>E-yĎ OO?5xNw%u 3$G%Prdoxӣo{G;^ohX^މooέei8TRϪyxō.%0ϨwMuSח[xkثT7 7],[·("6wc?N?>}{rc&vAK{[B-A󿯥oQvcaEb_lBZݳWtY1mipWLhwqi*Ϙal)`ߦL*YQ5NY',mJM{qY(VDI5-?j<u(9ldaovoCcWO/+GntٖՅPw;T|N~^jZH{g=1?p>,e*bZ+=endstream endobj 320 0 obj 19916 endobj 323 0 obj <> stream x}KGrmxW;e6,ذ,BEO3dSc;9孮!i@ #n>##㕑!C߿C$ny|_kxR+_|FC,C_7~?1\OmZ/|TctwX-Vwd C÷_x |4~n糿NFaF5pKiuZͦhM[6(~ٯ|zo>Oߟ_؟_/mmCjxؗo2r}7Jyh[@?ߌ4ݺEz59y+0o>K1Z΍y>01r'f[ WfYCf[W|0_]6'7rnSۅy- [>^7md PnD/|bƭ9FPQ|#x^ip-B9t.l]O:}~J BM >|m=tKk(q lM36tjā_%z>ZX@ `4]bQ 7eVdLcJ% l~A4S%3.1@2ko3j}1e'jyU gɼGF1in5r.L/F5Mdto)oj%Lz` n ^ڟ*o{w?xy%S*?/-yݰy9$݆`Jz(9+Hq؆8 nFvT,/MI|CnCX%I/?)r!j -m_J'~ j:Bݛ4'CW2B\͌lΐL`_&j[d+βQacoQf+O"7MӁ@T&= `VU c <PJE=`vd4LB106.fNS/غ.bV@ Y!,\0뀻"чz ZgR 9k^vI=noCw>=۲5Y+X 'ƴmD܍t^, (嘄1MҲ<ئo 3Є֝U"LZG |wgp~J%=Lzy#Z_")~I+Nc1buq:fwPDQǘ=Z}p*@N3ҏ(;mEV|h{Nqp dk /m6-5:J%&t3ۜXr13ˡ2 gp3栬} T86 k0 m"D j Q(.1 s)I99"o'?aX;j_5J8%XEi#L:Mg&ϝUg: E>ەTi{lW ߃[zW҇.b-Rθ$Y\t e!H+[ a2E{-\ԼkudXoR~{/kW16D1_NށZAxVRGM 6BÊi4WTa=Ɍ@pZ4>b0Uz*C ꔲ iGne%1^NxbY1ݔ1κ]>J ;Bņ aCsq6#2i k`PXeär0%ׇ$n\@.P8͚d$ب)jlJY50I=c-IYL|海!LV$Jj,GD7(@Xq,46Ncy HۏJ!SiSC*a%Ad`̋G3ܹOxOhzsP>,ق(*iq 2& PeFV%W/A,uO 2#ۭ;ӎ9sDeGRX^qUA}]D``7&#dVM.,Cd {{w9dk<_EC` : wіWL_B2% 60@78cCb™I'u5~A a'CF_z}cŎkۍQM <B;q`%H /nEJ)^'S}e;Q{o'zf{zYVR&C)SmX^>~գ+X~o;eοy|f2lS}{bZۊO}̍:fU) "Ȍ  3?F#q"3={Ro,(h) U6MG&6Q ͰN&qԿz~~y$nt"o~ ּ]4ww?>pf6ktScomj3ge/3\SӔ-ӿM[OxW*Gg88o~~@16bbo4Mv!iDg,̌tLd<69WjӚba5f,x1[i#WӲPUSS2NSM|J3\ )bˀڊGFkdN  {kXՅ0nB4C}3Wcv֊BkkūjZnδʜM f4lbbyec6_nw+yj/X!&Sl93OlD/7'zAiOQ0BMCM?[t\}EǽM&͵}k?|k(yls1LY-hz6 OWO7*e~ӫyg߯Ć2.Տ?~K"Sc27fԲ]zMJ2 }0Vw2e/wmOیsV"Z}8 336!`'C2%}{:S׾=D8 f׿ϸjk#<yi9-.!!V"fM )RC90*KWG渷pLm`(Y. _P DqGHtsLÚZK"-w~赜%chG-3' ~!gt;"Z&ܤ)epF b^ԙvyVKN|nìf2=f06`q+Y.LVJǮT\oWb. ggLÈ=,mDd p."b͂9<&.s wFKx1m@j3=%6WWF#@ֿ=StqPW7a1#?wIq5*G iEtāF{з~+miN>إfuZN5 d* QMּţ&3f<_iȟ]18d^L&VRo1[a~"2n.{rW\7+h<ڜpx9V*:OLc$-f<\l`gvL"O9di@0dqꞒzՓa.LtPXG2Ǧ04d%`/jz6a5sHL$ H411?WABLFVdhk4yKƧ̵FU-gp N.΂Q$LiItw֊>UVLENC.co4|3l+26xt璵Z6%gpJq r6߼4nj)d 1Re1W^s^*1ep mħ-]6;=t2ܯ};[&DT_Ʉ/2!'\V˅aD#A~ޫ_WsMTr.U w O=Ir \1R i<#h:挝g}d :Fu# vT*Ħ&: kcpwk^A d-ZtFr/GZR"pH AL yC}(>x{Ȥ lx3r Cl56|mfWȓU .%$W `-59G75H{sJ{8Mbd1ys/L-u -b\)䄫br b&=#e;dtS-(<*rZD=1D2%' m`Wl;xˉ:4k_Phaso3J%E e'_@*BEae.wW2BU_̊As'NzLZ\IQ%C>e[ۚcŨ5/U@/ 9 0щgak@bp"H=2534L]cw78zŎku9zzTOru5a߈{-kyܣhjt󌿩Ҽ<_d[>Fu1Lw߯kd`1"lhc1W5ha\6 x5#G602ʌ!vC 9´ n{yt>⹈2zaO nLSu+oϩ&sj2%wWdEPv>ktت(\G;š2x"hY:tGx1rE㬆lW\ʈ.ېAF.B$lWa4.'-qRu8 YLlOQ{ >!!ul's/xa.x)˿08X_^)J7'$?^B+!8Tebo ^>56f@0]F $vm ICw|~+35A?#h wKs*|z]qCUCOaf)νD2#:yZ,E^ـd@>@⨙E,~F a5'&;##mۼFG*z!( vQi,Qc 'xMSw 'bӨ<ƍU\L]VLH'ZURB>0*`IB4ݺM 4\NֈK-N'D`Kb, ɔGlAe Cd6&+$H7lⰁ }@,aX^DZL|BЫ7儨S )HqY ֢zё'Dn_L'i^y{<=fg#o-֞81 σPJ4`]UC>%lH3ӭ-Us*=Dx'@`؋Wdx`ix7q2p+[x'B)؂rX{7ݴ1@EͤS؂s)wb; "1:C  $CHC (Zl>\4gP@$Jϐ;4P̛Kq*+PA]pc lؑf*XeׁӢ]57FHk"'Ry!n`қ|gAf!\IA\;7\,QWnaUIKnu~%ÓH6&+MMJ(%])#ۤh-Dĕ=x`ڏu͹VaMYu )b_.RԐSw}u^J*  rAH01u78WM#!Ǭo1g6l'rOz$AaLqyK..Lɒe S_aJ@xu/q@)W<G5msV >ʵk&!$5*jT+e^`PL3AɌ(S4) {".P|NA9: D}Id)ǸBSR0TI#5pWhq&3֦4[a3P|apRCUU!?$>|5RΥMQzR-d.ߒ>ͽ@z`=_~SRkI= T؆YكSc0=[`m'ŻiǍ @ra Btg tfK7d z z16r7blƬ]!Ѯ qG^j60 i<| OoZOcf;ەSthQ%D~:[[nY_. ٢-,wnܓ^7 ?Su^ 37-e1:8fU1'&<dءamC%5l53 ÃSE9}ԎwX 13By=5h!LPKz05u]fQۛ P*|y`F&8.6ī#н TuGq~͖7QHp!J6T쐗y YLk8 Suh!Vw7%Fҹa\)]Md:J =q@nub%~Q .}^y>0U.S*m`O\Zt2H}%)R5s)]'M %b4ȃ]fK xń߃$muM_R!1(Y%HŐw8ɭ+E7+T`~`',9}?>ZE 𒣩 wbD Atx]wNLfdk=[78zFke1b`Ȝ| bWg:+kgL:ۑȼQ5|s\6 ꒮Kӻ.]í{, `5腂@NE˺;DZh2a S8sT)Ϩ5 ɿ DNȻH3^V/@w/s4_pL(HeǷU I֓#W Dkl3Vc(\DQxe`S *I50E{v28EjCq_ EMO.W9jQ=Wv=#>h7ՒU"|+{/OBo!nwza?a~u=oVGKJ#y }rf&pQK%QNJϸ\=wa k)0dSPఉta@ET(QQkVPQJ|™qa ZV J+ =LhvF(GYɓYo\\%E -i?KRd.<B !sƧR?u1FO@B 1#ks@Ogfj%:!3MXߙ?0VרDI/PeUvtw;B80c )L v ,0fm7(@ILV#:h&41.髅X]'%l.turJtyP}Z2ðZdsG ]]'eŐ;\I'֒q21܇H+<]i7u0Qˬ.E<_jCePKI5U&Snw.d!R}:ʠk YbĤ'' iZftse-3G<e#q;^b\HOH`~;G7|h/e5zPQ1 %_pk}`dќ..JZ>HZ܎DxQ,k-<>a/+-zBuWG FW+vI%w'W+`%sd-iT%grdIg AwC(AҖRY,˒Omϸ gy!V)jq:ߏB/@>1Նj=lte2Pki0yȿl< ^Ƹg3;W$7^x `G ~`yz<pr<̪>S gpal=gpa?Psπ@<4,ӛzk|Mr6c%ҖZ=tDZp/h\ZYnxw6f=;f5=Eٱw^v}? > b|ؒ18mG?׃R|P?z3Rq^|)ϿO}Sý\w}/]X~o޵o?rǤ%߼M?q4~L“nק3{?k\_sz?L|ǧɘxm`Gt 0_~z bw,~G̸w}MWyd^|I_$W?ǧϟI}oZf_ೕ&Fr}@wGW_?}xG ߢw|H_/j 5MGZ?Σ8k?Yw;4Z=kݬdYͷ{"͒&'믕> */z) v‡\{}_F(O>g[w?~p!k<.j{5)Wo.9ǧyZ/DNӇ/z1endstream endobj 324 0 obj 13663 endobj 327 0 obj <> stream x\[dqN^y7˱N:񃯰8H  3g,9x9gG+K0hl^uWy2ߛn6|}l^fST&LC̗jM_lhmgqhd)Zq_|Bkp>?߼'BSf"-!~'_^}7Oϻ/1W_|?\KoX&˽?JdR6JӇ./d)Xy~i˵~2%:oẉyr:='x;OI,s;ak1 \eks9lNqέqowk7g\Gw!OVtHv77;Y \Z}8Ovjou~ԟ^ [hI.׺QЩ5T1)=XkzGAkUerè$=R}kU[hrwGCȄS 3јkl>|+XDv7;\ZipJئoE ܈1rieB xj3Ӧ-iHI M.If]i2IKsQ%1iy݉u':-,̥!i\^. ]WmY shnn<"AU4ϥ٪*.si'qgƇKoO 7,SrB!x *(̑4MC,RnHo:U0I}E>3ٽl[UWcu$[tl \dmם GG|R!ӌo6aa IJEluھOm5TGWЍMZT:yӥv';rm%*"9=PsU(s4?䵡)Z%*EN qQ.aR1sCqd-=)oi=`^̆N!$2+/c4B;sMj1Oγ_˸ -sV#z&lC81tvOe+fEQ4u؝Ζ\v,8l")^u{^(j.ãri>P.\W4LԙZD#Iqip_lG_PR~T#?.T] E>[~5ňi62\W(pLP$O;rgνx֭h Ҫ=\2BrJo.e9)؞:ˬ#\bFc:sTeSOY1,ťXFçþqBސ0 08;fc l˺R%|;< XcQ!NȮ,Ol%'3B&_5!u|˱Ms?}? 5e*sӔW]Wǵ} lLiC97E?BU#~5y=1OOƄLlbƈ~zE|Hzfdžjc.+ *;2Y/PИ ({V*80b u BIt50F<AC"\ʀ4 b`DG$ EED.eb1Y'BB?Q`6Q$}&/@51p1P'|,..kB q54rKβk IHeZ#mfb-"ǎ+ɜQ:6NPIet eAHZE5 abrH_8ȡes2 ң¢Űޡ\NEl§&<Ƕ_+uQl8kD҅PᘻV$JT"= *[8LĕDgf)A%<\En u^B;J7g=AP <0{ z'1"2yU J,vY!R#,BE!P)gp/!xf (:A,`x* MV%T.^].ɌE6h"a%x+ @^,*'(`))q5$ VT$"C $@^%"شZ/m6R9٨&Zq 6ajjc@t*rA8'@4(fu%S*[hf[6E$lRD}`K 3>ˠ*? /B`C0Irc,8jM,5D:窊x^:ia4S1̜#*y/eyF}c@MYMO\Vg,0uç;( ya99g c2 >_ PV! bUa:XO-絩! g!XÆc?tDxkKJ.qe6͌e%]æ#pԕY/NXÎcy,5l4WA{\ReI=H5.\Ty9DMW[bH93OX [lukjDS ^qГ3Ȫ8I!0&:%RDZlʏn.*frN[<8n.g@4 * 'qCR7CiEn0pDt}RYC%v'K/`ZI-'D]ǀȚt "kAԁHHX"Ŏ(ص'LB,#KF9l@@/8!$Ȗ-[2>b[i Ipŋ㢆M/p֡5^ eyQΒ5Ex霦 ,I9FcEtHm,Cf.(Y s<4X0KcL^*Ž [DYI|% *8i1C5Y3欁rv(Rxj8C.cj $PosbDv`;3"^0vȉ e,p4`;lðk)"UJ/*g8krѫ]Zg1$ז} vI.YQq+Tk FvVFlvM%Rw3DI.%a۩QbE)P$cC)TQ׊{è7q&ua%MF$$32(hxe1#h1,j0#?g-k]QE ( +^:h|nЃa $#*ՈӫFDH>Z0ގ-8ȑPAh ^҇yKdZZB5yX]Pgr3xY3@xpꄟ[*pB=QCЅDp0u"^aQAld5Qd`9:KPj@isra/Ta4U8Gق%>pF儁j=oDsTF}iĨ!fPMeD!e 1:p@蔦"JP’p %Γs6YH3La@DZ)lJ0E2I 099Y*L 3'CS΃ly?\LMfxT cf*QPpVfYxuXe2@G p$@4 _WEG(K5w?ѝ<,oي&٪S0bE@/B&ghGA-SMW ,#'/ Yϡ5^tjx^ڈA  "<Q͹r ;jMEbE**$:SQ)ΡRUsJ 'NJ@Q)٨WQ)JQ2^j?J [`q%Lh14dycd8ZmıU쐓,h(nlad J%KdAD6%|WK om~@&[EʲRQT*(*yVD N *nCw(1 Je#(A頔LWPJy3䦁N*Ƽ@)YuS J&PBJ$Rڿ+& $Cfi$(G 88C$1ء\$SHY;B$:{l IK#$I)&,]$|-N&5RLZj cRr, _ kID!hJ4^_Q: dkE+ŢϺɉl?% 0 ٶ)K[(i.Ǟ̬a ad[2y'gx,$)sVV6aGPqg+ b"0`#HjbZj|+":2W0Bk55ﱌki5 ">+l (pŶErK0~7humrY׷)ە`|1C A|vdGPk!Sx?]~z~{q_9}}߾ƽv@Nrxygx%I_HaHrFEuO7aZnschr/굯y;k_ H7ܤLvq{W,aJzʵkZv:8͔~lT#l>lO7<)w:"~q=|%s_'|Y}}OUDEz](m5x)%%>z6k)b3w-#}UKҌkJ Wo_r`֠Kp^9%6nz]w(k7Nݠϧ Kѯ8eȲҬO-fi3b<}gBq~G!zWcU@=xx-76ō^tExo}@|im36ő^3/;,Kx_=b^qzƚ?~6NɜGo|ڽ|:/ݸ!f ջd؍_^P@s-i|EcRE ݼ Uzam&p[W+)KzEN.^an{7(3vLk'+^m{f|W<=nVcUjUp>, ƺ> ^ED5TN++Oh,2 UV ٞTsq9q_8y4]w?~}%vkV8^H^E.zs0m}Z?Pϱ?_[vj6$x|FDZcRZO}a&+ ]#rk}a nAZ> ) c)l@ܵgvMhe n$Mq[ U26J#+n٦!)61lS~ -B Qqmu _]!['K 3,bҍqJ\''3<  JգUFSC5+Њ&7 ˯Y!J% }Β}Q!?gAw ҍg(\HlC\q(V=[eXɱLE\C ցgą_Ǭ棙*U7.ΞOlV /WS7 R^$ ` y/?!q|/I n1u+c|ʺCexEU?7Ϋ 8@<ߟIcrdyIy,aԮik4!|!u]>۵ jw ;k4XbB}ԓ[3L-Vh]gopϧ_ H"e@m_/=V?<9<{5?s1,Z=Wec|*IxcI,7(\%{oa @ c0endstream endobj 328 0 obj 7164 endobj 331 0 obj <> stream xܽ[e9ry;Gl$Ąׄ'zz{.$a>5DMxDL1YOI%|#e39Ŧa~5xH5 1'&M.oe8|bR ~~IW86砧Q_KE׮*790aP@Lj::aa<6w)HI S|c!)~& 9g]SX "N!0 O09bALf篠/j*&]٢әS:#44f!9չg^@K-zAͭRh~RBN t{]l+k s֨nl&U0}渋L03`f9+aoE:cAq)CMRAp?i?g0i]0EӶ15$jb_ޭr5Sazjܘlj1p-p7&tNn,Iud22y=va&jH"nyŸ%K3D& xiDԜ>S];srsˁ]EӶ[7d=)1X5z:48+ KFj}jV̈f$D/& {=G5`{ʽ@sk/p''g-&5Ӣ OLK[]"WU6u^צ.Ե'lLnQcA τ+ _b^qW[&4b)N &qxF HO (4845'qdz\qreYĆ awb $݃tQtO+zb:v Nx@da G |̹Hj|.D V|"nƤBOSS}LP7`2"kU&!;"Q0ݔ \uRL=熯׽L,7(/xSӸQE+jzF QSkzzNd\&Ji,`T.˜ 'sɹxc_s9 >tÚ;BXK5pL=ăPܕE@ RA\5j(nĖ,U)kg֮ "OϧS(#̏Fjkw{Hs.x8L:V5AS=?AUh "TS6&7Y^!{Ua D~+$R8,q ISeI@& EՊcot-;j\6I0$+ح θw(iRs$>߀neY)Z(- 0YTf)v!dނ'Uˆ;uXP!lx bby.Hᄩh+LnıBYUg\?nX EmZ1^0hyi )/ԐO-{kI}vl)SQ(̾jָdGZ'LXKfOW'vH849=sE, CRB~[E'#h!BdjoZX4=p+_TAlG8:RnLx]jJ"!YJZ%-35ibxmL֜6̉g/&^岝zmS ~SD-k OPB!q%JW$?ralɩu4,bpJp]mj?,mKpsXVl7U >|afTVP2Y${\C^c) #a65->)Yh;7{ml0BQlS-u%:6Z|bmbfo!J0.Yx!ہhm}eVz`q;bB-p8ks[ nN/c1{M68u#wަ\-1⥱ fv-+&+M4b0%3lCǬhk?GکGu?,ƅ{  $iSY҆c:.M\nvY Vc~ o zo0^ (* -MUiNP`gQ{ⰾ+ '+2ؙtfe`Za r\5v+L\yKQ_lS} )0fKBXeW ^?OPYjC6xurt=O@X(rx $oR@ ө*a}#@OUwq^C߃[z-n/ $d4+] -r B+t莈[ n%K-pf55L!3%XOAǐWa u1|-7Z*cFn։|#<;bׄQˍ_bUOnk^Պ>b q|IQ]VX;CAN dO n禭y 5`?τol$E}fLX !^fF9}N3`$#df0\’78omDQ8CQ Ίr;{u@l..yR Hƈ :哫JPD;"=?zci\HhD&Jz245K֨4)Ej7|܀fJixJZ&҄W\]T0HFH+LoR/ǓÕ?.39!SՀ^U ڕ{'UifPidKe(paqPC~̘k5 MM}.l!eXt3aiRzYqaq51XRv{c90C'VܧeFuJ OF[9IfW@ZfNmn]0Zw{gTrjDƒrA3VZdj1K2eԍ T1摟1hB0ޤ sR *drq|V^jѷh^1 Lѳ*8U!G go.7GX*|=Ns1n.1R/:. W'ݘDKa!Ӱ̵ݎQWJ|@G 6X-<ǐpOݲ0I0P,$6 xPNl8k;`eBܘ6KT'xC{zL4aOnQ=1..5yfq1.qܜL( ɡ]W>ܢ܏u9?d/D\gǀR })nDPf.&l`@/(VcyDŽSP4bzamM.5 8{ڤQxGvm| >P1<9 Dcǧ譈\e/L}OJ-r`xBZOpOkf*q7)c&Лk&&M^k,z}xy7+s7mqHQz_f )c7ao2sc^W382`QNLUw==%PNc(ΐqcr cWC=M=cMs e1:zzu`@ʹ?LƑV=%Aju ƭ&Z_Mb{ːZ<"pƭ [u Sd:;FfGz]:Sxa^a,`*MԗF05ȿ퇾@h/DONvsc轈8m>%7ᴁ)kp 7 cw|}?w#x{Sӿn}L<8v!7"M0qcp̅f^l;bjtYݧB|W2X`X?HtIȐE۔ToMo~v*ax>zZ~ v;6Rԟ)M&GEVׁaroF<s#ఁ?'.inL~CcF? `6_?w#xU,b]3JSTM)|YC,%8җOD [{TA#_UBNj6QʢLcPhf'uNN<&&r G'<ʡjA0a~# 'fi Зj4Z L;0YW)Of7yH4egC'HF@#&Mo)?1ǡn7rJ:HYti9yuw* 0-9GR la!vrg._c+aS/סf2j2 BS" s A5 /6JL?<51!Cj& A6G&oNDbЀu`nvJ0@"1՜D94@)w%15{ԉܹ Xao7c%y:,"TᱥPtd$"^T6]y;dFJy7 Qyґ5@b4a5- 2w\j9E/؂SLSdt*"]:\kv,hJKOʄ/sN 6qh%4%'%XkdDnd ]fE㘓LJU \8IY-`<eL.UO..Evk8C [;gppλ_Y4C!T9̞M|C-bx'4 1BЖؑ[$)_AŦ-0I|3`yI)%W|OL+G>Ą;" ¼Zڌc>!Ԑ&y2J)+2)âZ:,DgVX/.X :BUuIpX!zEmU@p'd_](Jݢ| 7-:|`E0]\9xctt([xM׽Qa@*.:Yp,5H,#1zϏeݛK ?#`\-Ehh`Bu<K>V $d d UacU [p.Jb 3[e)E-MTۤ@%68hcϜ,1aNjXU_Q0$v(j2+SmGԜl~@z$U O6ڰЙ[81E{uc0J9[vӁe\_*}bc΅ R*XDܼ,b#Y@|c-a~+>TW$;0IJ:b*-#*A5bVqpIK(.&m>U/aE6Y9^ټJNnc%qB-W۵"]g2mw!N7btIEX:yt-uIiG.YQ$ >:-6;Qև&Q4ڏߘPKv[ZͿ%ȮۢV6 V1+\TAԢvjd/CSLW<"0wmE_ }]ׄ~EicUP[=N}+$*2qe1p/i*}X+EZK1%4I!K97zm̞\M|QM%d&n +dX% ^ʰ}U @em/cNu)v+pde9+1rI(^BmYQb5\5EZ)Y|:nIڵ.yS:t YYuG^r+.;Vh.'6wOQ8Nϔ9I Ug-<;|hJSI $ovP ut A\u!u1{B).ϩp*,j9!7)eurʈb^d & Yb#UF[" ^GtXLTK. .*1ӽ28N*^>zLI, 4W.7&g `:3ϲ$_,/M)%[k)҄U\ p-0=5;bgx.^>"|-7c;ZĂO~c7ta])Ą:+ET4)gŤpEvEɪAaإ4!2?.B"y[0֝P5ld-b`H6zX缨$->PyKo@;0Zp)ILEC(3yÕRE#8yprP|nѧ݂>1 `E ,0>R3`ґi~*,{^8029A0c;ZnS(2Q%wc1]_lզHJ5a[@FrK<G.aQ?[bzK|LNǤԂ)UyѭTեey '. .D])sș򬟤O" R?Ѭ퐷NB93_|7q [%[A7B@ցƟ}wT|&II T<9ԟulRN8m/Y|g1COӄU3~X2D ۴\k›_ | |%7ppKI:u\CۚKu;^<U;2{[ܕNp`,>U뺭-~,ţ:)~Ҝ03aY/1(tlb*G7ڳi,v}VR~{A+#!3!=vxׇeAfՅ$'b\t3ΉIfj.'/s׮KI' *]~7 dVR¯d*pQ_d`abc NK)8&\e2L)S GQwX6V)L8=$JVnuWaV:qfVƉO2j@)Â|^ɃW+Hi20n1K,C5uV"ۮsIR/3(iВfu/-Œ+N["zsȍy8˧5hف "&(HvŸT Ʉ/uS3X&( 08{7y7t M Ufu9}c8~{msSZ㦮n^Y+=HN)Yd(C,(K^֙ZST5E\nKT_oZ8:Q *W/^Vc8.3]wrhK,/hxAɒܪwTKLU\!5yC%:w)RLNvɠ=;o|0SiĤ]^{6C7ƙ]-)UM(~Ov% .>[VL G{NlZB W> }Q]g0Ńk}Q}%R/ 9'BUPLvH4Qn+յDptm4m\%6"̇ќ-bl{}DO]ˤgu& ;y` T=G#䦪X"r8^F$Ƀ=n&lh7!LZBX&umˇ VŤ *1јveIS|ِAR]ڽP=K\zE\\{8/ZIJJ6.%Br yB+yD葀t^bYC/ qu)ea{>RCJ{jїi@%BReN͕/2 q.RbA~iP1g%4@Qb¿{ir!V'_(9Vİ8 P{h$F%]%jRR0u'f-"cӄ^І1Qׇ~Y { l /9% 7LBΕN{,{`\WG9xщ ޑUd^FU39ꖮǷSQÐOe)5 MA&;)]6Nz`4w(n]1~iA;`ּ =٠_5Rtg<n8ƛJt)EspseGE&?󝈬AopPG~dB@~ʀjc*m65P|`+P4+эtMyad( <ɒپZb(%gJ{?ὒE7^Z+ _$/+.+7f)O //battQB% դ j,"vAX-ϊ/ԴʯDPʪϒQ]ÆNhۓCRֺD\MAQ6 6%R8ZKשXYX$:zQ|cҌ\1Y{f/E~@U2{- '"0۱TYW#LQn @FN S kh]M)5\Rt`z"S,bB3v/aM_˾(I0 C(^pYvc9/b!.K_N;>^S%D'#;{g wzC왶F^Nb.ag# NkI* mMqGl =Ke :(tb|]."ym}׆_.P kg. tL5s;W~仁RJXEA&-ȋ|X((S,[@ UTt@| R|<R %hb2^`c:U9BKQe6aE8ɻiQݢ8 ,pAӇP5]<Ǵ)!XC]$fNQjMm7 ֔{c2?蝧 >T=$doZ.R0(`k vV C |?a-Z^vA v U _^{o J?W #IoKQG@m 鏗bK(DSp|.Y601v ]o]$P'+E2JKdU%0m'$C. JO0`X(jz~ⶍin1$/pͥݩnfN)-ۃ6Z SnsNgšxq1Ԡٞ Oh$. XLl\7%zeol,ĴNYK)Nl>rUH()HmZڽ=N*UDk}0 ='\lgߘNV]]+s?ީA唃c%)A|cRu#ߐ_x=p|u90liP:́~cv?=tnK( y850\H ZsL/m7 xot+qF*hҡZf3'$Zߋ##١$yj>"U*#)eslpLYI)mD`XǝˆrT/_%rY"RZq=ΚUߡte]AEpPڄ2aYX]>gJi;u@)‘ő>V=]g=-HZ5UzƝ@9mЋ[^}Y(e'r=0HѬXoC|aiƗGQ_#+R/X+z_J.eȭd3 xB=i'tUExb džrrXxC} P2`'e>tpȖAu2@ pX(ml mmZ,7l nLsja'`Ӏ:L;4@dԶ4 P% <U*ҵMz,Oc[ժŲ nxYu+ 2N5WiT_=,^tX'lialTUݖA]ne XD dOh[ˠ:aY(#x)UgsU۲ -)p6*C} lmw5۠eya JT﹕hhRHm \g(3![%\/>[N#ؿEܛMPB{$?o㧿}%7Pcc7}?~_z1?FJPAoc\p?W~%|~zտ7W|i'5BϴOoC78Ĝ*˸^sǵhOJ$){q&kOf8WT+1_`Dfg]'vuzr)(7 !'g55߹ٸgB6}O}84 iw-]>?~'Ϣywď3vO:A1W7v -<{Z>O?'|ccFlBvvÎ wqj?G {FL<ӿA3[z|ɳHr2ݣ" tdK9tӺ+N 7➺Sb4/S2"TM17tǛQ䢁+z/M=GM>\(pҽpW^-KdϦ/\7}.?6oɳWuOo(0?6<|~?}ᄒXߴsf'o߱_?J ힳ-ڞouS9hW_iL^^rਅ|O㧏hGgz/FvThE}_PVX_tAE5,wP %CŸe?h)^\b?n>l9ymQHaIk/?{3[ȹAMc_OR ?I~-w[9 HMjo->zCl{nՊoz6 ,_^z૯L8W<p'R7~λի ?|+;`'?pؿlp JշçJH36{Sϊn[Ebuju  󬙑Ye9;_ܻqu)?W»>MGnlWإLݼh;3ooDJe: m`P+q:0e=>.zAjAmuL-ޞ0rs?}xAcL2S ~bt`?|#.,VL |̌|`P3`4%GL2 M뉘Ĺoe| ",`Gݙv <B:wa\N] hq5=U:viWk-eO, l F.<|XU"pbUhxgPv4d*Dc|* Zz~5LmadH؞af;ஂP~ ¬/3iB "Tȓ1p]0w/&LX ' %ӝa(~(c˺JKòC aW'G504utr\-nؔlCY|AJHIQ\D5\@}݋07 aѲ iwXd8U7\;0̤&,Y`¬k"jt DapQk0cx r{%ZZ;*Rr~"sTpZ`ZmXtAР,DQ@r’ʒ_j.Ӓԥkx-VD>_J|U}W-K,F6g۱`Lu>F=ZP At_"6sEn%xNPnmG%\FT "Fqs`-p0E X%˰zіTO!W+f({Ѡ]Uڢjļ$y+$jIN8a-K .G2Y6(w0C b"iΠM8sW<]Ʀ[Ԣt( URtQ7ѿ#h"|?ZW>u"Y41*6(Ub,) kV. ,=)""n&{|vxuH/ژ*;ҲWDRWcҗLa%q+uZ/-*O 5YŬzm r\,Yf +S=Vkl8āRPǭI7T;`*rDK%qouox/bZS nZ%Zq2V. c>Y=H@!۞2:2R֍MEnz~w?SkP01:^r9₄R'$o E'=fl2 `d&\l2ZPu¼'BkP\,w|=&i+ce P$}3Xѕծ=dNb(j\-25$cSc $p 7[2EW`Pb^7wQ ;G4QFS5elR,~!LX*/{㥨=Dj%h2߰x3[ ! r -l < 0p~!Fɇ4}zا";0ir l8Q9~,L#lk#FxcI[- l`O;]"AͶMZj9'NвɉϤ(Uz)ŦLyiͮw]Z9[Eyv!]UD0sF|}PqG>4Vd{;[ ;=R~>j*dGNhcxR dWG}4Ygba5an̉"aTmhs\ЧIU3knx\ o!kQe+;f{cKw^6C|rokxeq$bYqzZ^la,kتB'U%%]~aYCxe1 G) w],c Y4[^eE}tXɢb+mƷ_Ez trV9XIFp(Q~NȌհfQjvH>o\1] CoXpP2Adc-,_>:PⰃzM;׸9Yg OF"+ɪR=4y:\Ժ{*]1L[QE!\Fzki.ۥ:g9nHOs\ӟwRw0*6r#XZkx]dm=]TĖa!^ .z=LғSL,^^K\"svᗢ9>mu)8IpWB^lO39 =@4`z(˟Σ*ηe7}TA|=ZݕeSy>nà0]ov.Аi"v`^vn!d޲ |6 ҡmZY4Z9 z,ٵRrnq~c\ oW2y^+nf.YpcdlefY^mYp,12 H~V(mzphn`täݲV"G+s p#FΧ]. @nSA6 0A<1,8a7Ff.%ݍUMj͂ W9LvZBm|' ~f;Rp:A5!`bqcxP?_߸@gEzHVY5}-۬zds)-3[2qbbI/+JQX'O '>^*T&&U*Gi†DVi g{>;BT *@bN09j>ARQ9慈7УS3&ȨN -i؉nv0;_2s>uo qܬĤ0qO'UWn^.k!0bdbd6ɨh?u/ҮXQUX|ks4wN UE,^ fr1SbCK`_Vۥ@ |æ,6 IXIJJ,!K,[A$NP3Tlڨ ީֽ:.lC k,i*!DCYi+]ؿfB Nn6cyIRY9.,_Jf4/YFvcS l(But#ǭgJ 1覻'm!ypi7aq|M &S/Kr|MT ޭ!@쮺$ilY n8d-j`v3jn ~>nvv0^,֩qb 3sy+\,˞J]nپYvN酌"_]!8NG뺻c@D,g^у?J"@- O?ikU9GzUƀ+؈vQ)_ 3=6 ۊ7YzΒxIDЕR#D=eWz29 d9wSL~!:88H7Uk&xIΚR騊,հ8ZG.F! ?ຮJ>1y8zUWbPPfE>d[5x\-YLFK2N:Yu{R<vt |VY2feߡ= ޺Ͷc"ٝnFoԠUC(}99i![nbʄ쭙$KIJI<I`|I*u =i?f'"dDyQ>Du݁PySS4aV枅Ł095q=z40 =9tϺ9RWA^ Ը~Z܈L.^ݥTVS$|ubDyDRrVxCڗ퍧1GDj[ud\1}5[=Gn/9D8;) !q']K;8AU^-mbUH- 8Xl S9e19ݘEic7Vsc$a5i9;)Py$: Q} juq %䔝`X草&L+e?)JFAV-$[4w k8l6[jv . ֳ_t—iLbh(C;vUVI(]>p &[S C)QN2|(Ffw-Qy?Y"~`phʈΡ'=0Z}Li,A,^H:%,@τpp jI R.}#g7sҾ,To͑~\ ̥)d]!bX@xHRL,JXxp]Zlutd'W/p:߯K8D>%=g 5]чCAk+uӵ $ccw +%mxlC4z٪XU P֜t("j(ġQ4u"F oi0yHDTeCrnN\A;7mmr)zD2=h5/5DȰpa%?;:KG$v:8eэ\~1f>\nҼҼK)>t$`H$C` &w(h!#.qIU̪F&bWU^ORjbKjvHOmHg%%Z"۟Z$P'\L~9cRO=`^Jm1XJiU4)+l8*SXjyU٣tFAvGߘljaНp=iqƆ;Sךxap`> IT]fJ1} EK$nWCHѮ<Qn8qZN楄M7@I9b>' @2ՃW4ٯ;ky2bYG64/J!l9˄m.ג-RSAeWrl)9en l?!v9)+ǰ]<Xec{aN 3Fr&q.QtQRx?$klB;Wc&][{]UAI!wn88wc.>CwdM7u8jvV\v55ayK@78Z"7mp-Ly Wœ.kpu5ifo^a[r7oN=46lE+,4 KYg.!o> V ?+J[\MS|Q[ZTbu`vDb9xd'5Wx|cdǼge8QZGsY! YUmkeTmmLnQ%sUvJ]%\Va*h-Y&%痟p$_ؘF5mnOdqG9YARPXWgOZC rT%4xK.RW]}9 ao  uۍɪ"JZYq->E}e7@YnנRW\D>V;M:\NqjZ3Y퀇FgQjޒ&[h4RޡlUokO,[^kv[Y S=5Xj9`CK[0ϳ}8BGm@Ge\/%m.+iQ%EzCi_Y.:!-lCɥq\uTWw9e7bGdQܬ-ITCl&ƨ:0i'ɺgyr4$^Y6z ;T2\XF߮e% .-jKn>x 4{u3Fg#0/mԚχ!nMFWh^o"ծK"uG=E>Voo=E[b0MB®$k+Z]Cu|ޔ}|e<=(xLtVLx]"yF0GX,V`'`;f0;:Omq!/d\UjFN:nvI[2oNgńЊixO,5WIfky&9( 8n*7AϠ;` p ~ wQGH}=\v!|h` ͂0oAJ'cڅ%Z Iݡ2պ {&ǘIͩ/ٹbèi;Q^w)٭5B/v90, XoQxlE9S/j@p:!t&LsP∕a Ɛt ͣӅ*\yKO7cD\P]ca?{t1r` CaJδ',¬0xChڸ7[>05U6'q6*(|]g)14JtVo*宥c"EbQDŽpafn_z#_b9r.?%eOWʆFAUs@BcLxC'9FQ`ؿ|ّyTX(o%FxMwsܦzQgYǥF脘 QI¡w.cM@ٸ:1iJwD0 N‹r@/Xe!{נ2&r) IQT<(hʊ"DJ(irN7)\֯Ɣ\P.4b6FoKc^)/)ԗ 3 \ok5$) ʸR+w-NT7Tl%낫q@ijը`N WLFYP5D8kޅ;YvsW@l]Yi2-02e*78 |T Zl2&3y6(Yc$`T+g!>bojUэj&+vJ rgA~TTA99 9ywa(eŝ/HF#S@>:B7h絜'(DBסpq5n]69G k0v'NW&sGVSՊ"m#8+cmM2oljT eZ؈!17룙p%v͞8T{tJʂ2d7hvc:{ IzқP 7]ID5zTy:hQJXy-o0LN Ÿҿ0 3XK"{->Mœ(ĺ4gloL% S0qxoۅ?q&va<5'܈أ8pr.&I7aLO:V Bb+V%nGѥ_P eq?iBb1g,Zng)^O](\ãGʻ@ÐXE8D2~f9ygG T`\BP@iv1B:Cjހ,K܀d56}5<{PC{iV읍|`X`U@`{"Qs+mBd$T *6*Cv ( kJq$S oR#(f1jBJ zk*r( +Ef-4rk'ktűehe6ߜ!hp72@H}${}A q0:ޚKeΞ?_'O&{Oq[6Q=,3J^hLQ)Rlݤ#][0T"YdN#8{lgZz"!KfŽj] G lx(j2s椢,59a\ߣFo(TMΦU$hZkԘJcj]NC >ӍVi:J፦nڍwTfzӠRAeᵔ,5.5ӌݖoh(c";Slt"ƱM l`Mlw-Æv?̸TBAsܸ$&3rO, C xR &teG3+QɼRYZmO^aE'>vB/צ^G{TsBI\:ƈB:KS/XioƩE0%b1C~q!0-3v)BH܄D0&0ozGQ:|^9(ѱr&r%ZP( g3rְqdd[$r3QxV,kя&f ?Q%$64c0ht9YR2}|1`&6/Sb0I`{Վr %%^掏&M R&܌;kٓY} &̶]nnW]6nVfw6^%rZ(h9a?Y)ly  /.@FNeqA˧F%iQ\HYI@)}Q2/g J*T5@ue]2a2rÿCSh#ڡ)g.B>3D' 8ffCK$:-Tlt=asƼFD"Fkm1E z$ǐ Lm-cRUmo@/2AVKq[fnV|&s_cA{^)2c@npb{ Ax jqb$,$ND(R$3bQYiʼVFYQHm$,+OMmg~3Tc >C9$$p;rL֦7d.$(gQP2Vy͑eyǐΙ|d͋3YLu3hu Lʌe|{A{^ XYe} ߣG uk\u;rv_IڄS%ݖGY*v&UD&J=@z` /U[spbV8S]{&H|1YVưHؓmJB0|j\=FZ3fg5TY]رJ[*ZIHq؏>p^e}KHݑ['Y s94k Φ )-̤'Yiٰt0 ŭ @"G;TMPrk9WGchRr9\}3XΎ(~;Ph+'$3*ΜŮрt˦5:.Wt`ϸ+jgx70<{ۤ)`QrS;D)L>ܾ@\i]ZVBԅ9ƑP܆m:zK4tΌC|ܔtC.iyWY͵k<ƒGx֙8A.g-˻:!GaB";fU$G1q22)H'T.e@KPFt8Tc7U-"K(q"QTVj_{/qi& f8q9l~) W C*K= 6)5J{ c2hPc9P.pc}3o$F3fЀ%-:Һ@)(@%~2/deA+X(Z@)K~`=L-[^j1p\MAv3jG\l]D~<%w>j$}9~ A`=iPrFV[ע8VM:m 4*@6fGFBLB0Үr9(c-܋: wUXch۪ tO$E7P"F!J>SHuXR.A`R <@D9 ç1\<7F:toNz9DޚI|}lTShcL_?x{G60Og֌>@],G|.Q^P1(s[fi?"V|z\ ;boް3Qlӧ{M2ǡ_oO|mK-]bF+ >o^GVx徍o?Q7UkLO?{koJ%&"-{:1VibEX|䢷hzG_۫&ZCdsR/&p8g-WG_ױ4^zv[ƈ`$lzǏ6ZdA ۨw0;QdC-Dzۅ٤+9Z)n},8y鱜ryK-K}_ "Sv'O-6H չ^E[}CO/GVia7=*i6۟|$-տ:2ZO$9"?~ֺ O/>nendstream endobj 332 0 obj 31858 endobj 335 0 obj <> stream x|sq#:ti-zbp#,LNZ0X`_~Yzd'sz;?7ǃ׶o|]?ˡ&SJBP1&#޾r1߭>>ʱexbnG7pI 35DrGp~>7?ӛNkꥭ2.s}Pcqu4>ԞKN71G8I]bƗcIsZ[[͟Sǘ 1WAГ8Ss 7]cc[y77y)9M%c*7pcY_|ʭS*$u1hߟ{\^ҥ e'֎ηɞ?sG<==cCϐ8*y *G| tc]dPlx{E$tvX,3Υ-qLzO~f0)W1QpL̒' ,߱Ec5=X)hžݸM{s} @>r~\8X(_ǐG<O\UZK]3my˳Q%PU| d /xۏ{Uyurv^<6uvdhidhD K^? nm,oDO7p{}DbqK vo(6?XFհUBWa,´_у$web򁴟5Xlǹokt݉ Zݝ?BM׃y!NX3Uԗ[xp}g6MU7)7WQ,Qtgh8SxݘƤJ[dET '2N -P*DUi.z T/-̷ynNOO졨^jyu2y= OǴ&nw-&-] nW}݃eKn/Er\J/ϯ״ۨ! jWZ΢f /mh.. dXbx'ZC>O*Ja==?^Z0F86UCJ3yd t@s2COTXՓc㮂Beae!ףqL0S $D TvDD+!M)7trADlQ q*籾ێD:Ԧ tJar2nGjtCHeyzH T<Е̖E 6Aҩ5 3cJ , ̃ϔB)Guٌ7PN3:lQ Y#PL۲Y.i G)j6{>ϭNPBһ'ZeMx^Q&DMhM0`7h졘dT(ͽ6TSH ٌ#SB@>tur3L!BFE4']LաJEzUmtBm8j(.Ap25hAPFAݰ汉G귃L\σv{kf l&668i [;z,XNRi"Z!D?ķDd:X®5pWf0Y(Dv%̪;rT"I4F(|CǽC3-hU@_޸F#`m`aNh_gR`;@cSP#p.lqeۆ2xH.*e~f{[Ic$4B]=TD;۶Iq N⇨N{?OEG%xv},:ZItk yq:f~v(tꋺwVF'N[O. EcaSH2h|$p@MRHxƵcNZ}n3L4F7DZh;Hp&qth`GA9?ؒQIWS`a]05Eh\B[ْm}0Z}cS)&1-{JHs#I'm\TJy"o9(WC.z6#).B|l-B- 'PL Ū)5Jtb(h2D!36t#L1Ezv egs 8-QW" &ئD]Z&Xfspd61cz9Dpc~+|zT' u U>& ^E  MRoV蔠 ,"st4NBXl,&Hfzt(\gs`n9pvA_59E'L !jZb27NE5ź_F~X!rUR #A H&\ݶ4 gVKIeKO)_&]oh,Ū8Vk׶@zPb.Ri:%G`*.M5F4ENl < jyӍKz0ax۞TeHǯr $]erUt -8e\zsH!vxB՟3^JY+^RqQOޛV.5E܋Uyje-ئ*422)pH"'ĹpE߾zha Tϳn+JK3yqkC\cOx{=:M_ar@Zřwx&8GS@FxRN!)b=88OғG~ZpMDž-U UWo2ff?1)mp;&l]DuDx` K8=Muth][2{sD-LX* -ۈЖ\I4 Éh랚.CU;e@(vzJmє|9q⪾򤝑&U1NsPt贅:ZjT';R1{ԷWgN-9O5h-| qUs `Mc:lգmaxV0:8vHv=Q=qW]ZrpGrMwg誤7z(:jk]tl6"4nљ-%k\yq̫zRl2@wao3[^OPv`gS%8bf=iz&>q30CCz[5JF\(\Sa5[}Ejҍ)KO=xy"GfdKM6i3>'zf u[U쉓uo[yWQS8H2)|1l*SaDl u^h6~?eTq,Y"bRjl+ *Hԙg$AT ȨXgM7zPQJAoSH5J8^͖ħ}xx޽skPKqC6[%"JЦ"O7>CT  \iA0mlIžҒ@6}3ǧvY,ʪ;sPg*QKBiЩFx,7Ɛ m{qw,h$_0ZYۦɢG;#ѰGҦg.ՀgӮZ +]vx1;#_a@XH VUL%l rgf h9T5Rz<r쟦Uԁ:8=|()o *"`t'|PZV?y9=ƨdbtdHTo[G\2`v6x>C$aڃcΔ}0yYHBFz K6Hq7\oQ=tb}=Cn3g՝E7y8s*v5禁 |= s |@2T1@iT8f.%\{fB?YynEl-H%n"f.)a.R4#gb\3)ҵ7\u4A1sj6{_e/~a=\M/R2"edy0L^OZ3\`4~k3̅~Un-pG_B?/껱B_ f b7 GV_-k݆Lk,J6cib3(Hof.RPq44Rf.pwїH|YًR^1󖶆0"ػÙUS{\4l1y0U`, l0e10a@,;/-d"[C73EuٌK2"d2hi3Ha4hfczFjf%Hv#Yf؍ՖH*r { :7x. }OG¢9oZyXG\,#r O'0ӈS᪰, j8$KHGʼŌ dq[+N;ݫA._xό+VAS}/' f xXpѬ=`4Íhbo/#2vCSs*-'eG2[ U6Ӏ?!X54w{12lS=.qYn>f,Ư^+L9a:H?k~Zy|q]55ʂ8Q7WTdX i6 |DT]YBtK(7ZE3B }dq/sqVWךx`r\E=_poa"BgCg9x} 4Y/Z/^t`ek*n*n& \ت=f<8vgÓ>\aIwV FqaVXD"Ri+|YKQ ]a<=>n)YP6&}qi闟oY|i~jʶlKa*~+wܗO6/Z`{{M.WÓ.Gwm:*Ⅾ}7ʚn5D1d cgXv[0rtEЮgސDTcωe WE$g[V4B i= n ŪwQ: ~UFʪWD Jh'kحO sz-@N_?\ܚEJa)>h{tj|vR:wrӲؿE^0#{^-kRG%o>}~LHt ̻.6yQ*6kYţnsrL+-9||3vHK^bg_m%!__Q|w6B PūOf]ad[e2Y/VW-} _ϖGPN ۫#8h{ɒVoxݻB38//MutE}۟ƺIQSnG7Q|~iSʄ=47jOA>endstream endobj 336 0 obj 8957 endobj 339 0 obj <> stream xZKsY?Kd[a^`j$:l6*9Q$hߞw}\Pge(I\, J (3g6~<%컾;;$町_UӶP\ݝ,fefZae9ۓ2++2˜dzO׋\(c˒)HWgW?/P]}A.{wo~2gp[ܖ+8mˏ?I{~& vQQsQΚ >, 3EF;%6!ݖ>Rjly (QrsB?H'hBN8P {I;oS(Jh.w1ll[u}7ŭF!Tih-oyůqvu$ESw)}z G%QQjTT>(mwz{ 2qJb/x@<&tF6wuԵm\|a].FS H.^)!@dc?$j!  簍43xJF C6m27/&bv!ds.n<$ !%$~o +Ϳn* 8ԣ`--فȊ7wS9MPƽ-vFJ1ȿR79cflωT M1x17J)fs7@<0}W'MhsYP;L)GҹБ6C pypk +|k3a6&y~W[f ~iM Cov=Vh]0nЋhUHXPHd ϕ T=*Γ,B9])x6k/s=SbxXU(y76@"MR`/C u)Ѻ<(AzW,<#vrmT,pŖyYbAkzdP{_2ѩ';zPjdSt6XJ8`:ӡEK.|l92Ki\ALZP'f7ue{ W/|fQO; Id&Dpcxn]g}:w%7Г5s{"-vΉ]w@eh.4w$iH= 8?97>ӶJdX;PٙK*ux8H»dV(nnOjMIZJ>5<5mt8^#\eo|e@hчJX /]O OO)TIٻl+P(4z E܁U|&Mșg P#"/*ޭItȧ|`c- h1a}{RlS#LK"r/8vܴ>k-b1iRN\S';nhh;@8\sSM_e_N IݴA'y]g4IJm5d'/1Dψ6.sNTp{{]F F߬7De~ P}7s#ŻoɈuendstream endobj 340 0 obj 2948 endobj 343 0 obj <> stream xܽK.=r8+ji/[3 x!xa}A O>`:Rkm|W'd`0n ._߿%__9ߘu? mFw/Zz[/W<Ƽ^sZF_ǟ}TOo??Ƿ_i~?{p4N_ͯ_ү_7ono>_㽷_~{.oi[W~[_C-ޯrLZ Ҝ\5}uJM߿"Lz_Ϥn~lYo|>0=q=xu{~U{ɜVtC**;{J}^ZXlpFpSpAR 8P:/ iRq~ cDyn&u{B&rts=07 dZtLuAHN&㽿AX'2_%uvSWuK{ eB"#g67؉iK]~8'kpqNS[ė!+U|?*XT JUi XemY L&)j]c7mn> U y /Uu቎oMp‚@70(׺h;5sq2{jTlLIJi۔1=1/ٿ>yUj ,~X.`nN&>6> D\i6(Y'ZժNR7a68&C͚+i[eE=:7b._`pff)>A^tNza:$t>96!)>L >Ϸ NO؁WFybo;~M3ITLçe0J ko㛱mie\^X1cm@zmq7kRk-n, I‰p^OPh{JkIot -r(5~Cge\R͔>{%](^h7oo"I4,V1mKn /-,]Ro@_ J*^[ c엖t)x4Z^ =يM&9 ًJfƒ`؆fjb_4[n~ȭNUKBH&'yMlO3)˔"8u>1𨂃(<۲ " <3bc- eb[-/ tb$<Ľ4Ἆ|XmP_ZSTTYC͡T%<՜Nt97-6Ԟb] ,p7j,.[?Bޒe%aOō,> E"(-ˎ@$=܊yy/StӤ WhKƽMW }ËrcU2b&ÌaJzTb͝} ~S*e(.$U-Un > \Rl..b&Me; BnXY?Q ?"`NϭrdPf5: 8qo |hR"#IjCG?y' V>7-N-0{=Dl6] w ોw74ZzUi3 L&j1@ oYMT?z!(@BgG cd}hr5-v"ҒL^# OE%Lם"i%IuCd-D耫yeFK}R{& nAbyQZ~Ф-FjQlaUȲn1&[@$s]C^ߍIKъ(%O-dI/Ih際x%n XJI -%L\eJNp&<|)[Ț:Шyj"˔䝙NiPmۓ1eؠ`ؙo,zUN"l~lo=+އշoЫ*O/Vmq2/ 69ɈGS <}j}3)Zj2X,VmL2A[2uRVzw(髗ӱxH n%%0Oab\E|TfH,Ԯ_ZL< Gc> l KPˆ %w}_m1G,XΤ=M.fbH Q3*R6qխ} -޸ x= Tz;*~@CbhhSKY|9BՌLWTiAir0#T@BΥ@ek#$A'mI] cXsЇLg90㞏dJ'nCtd{ؔ 57R )<š6TgttxA6~}OOEg5Dͮ/ l|0~5mu7,b bZുDKwRbXN<:m.9=dnlQ-hB:0 ʃѢ8mSB:RIcV0>BV9$e[!8Ze1cHϙ/ `[9?}^NNCߞ5fM؄E^;(xy2Æ؂f6o+ӾErpa8eȰ7kO0 0&3JS9AhzYK'lt٪6٘A>͎mOP=`rpm&5u&q2!Kӭע 3Ue3?OLI{}6Yr)iukRY}3\@-" Nnsۃ#]!aEs3,-تTYSL%ۋɒCj|֓Rn>`6’5{})Z} Yqok*e%y/ +MN`e ㄦl)*CX<~= %Zne 8ZyJ`}0I{ajDNHHXl5A90-ذ05]cv4=AUvs"tIO(m6PϰlP'%K4Z &9%[R|;YŸ`yINh'oI*ԭ^fU,UİuՎ'\ɞrbP9T`>n#S_dۿrn{V^B”eZ|>ve(T*[t0`[矘3.~LS/ScM9q}zb>qj5[@`{qu8Oqf7ճUK;OqtpzM"x|>84^Ƅ'}gۋGͤ\=!)S ȷ;zNqrw} w!{e!HudsJybYHʿT g _o`߯_rz]EyF;x|! ,牪h͝r+t~M>. Rk"1>|X@ާMZ"+)\&o (t.㘐Q#x1 ^E'Mawtt]5Fx.`Q]";gWpbH1x4Ѓ)E#O|g>`ޘu`2CG.w*3ݘ=oEOypM`aU4U6`We´Wx)2/w '5 'uKNss /btwrd  &C plAae\ᓍYrKH (cbce%Ou`nK|~ͧ2CYz^J'Ms)cIREO$3dU6^J/^BFD:EHAPE #WU9.: q T3ZW>e4G1(W-DBB)@M΍ni ac*/>v`R ,ԬxT9`'GOe`zDsd馱kn̐!-٫Xt_ܒgnUqpv;'/;SHIHxo6ŶuJ$a>>+Sc;qEB}lgDni`9:pXLalXtBc;. I',kxX/H|ڻ `:0΃t2VˇLEC~c(yS*GB1[wHzLM.P?A U\ډ7.³lazݒ.=dSjyw[Na4N4sw<ඔ{`Jhs#!H?؜Crܲ(;bG̻\S9/ !A'Bu.gNczZ:`RsZK9b$~jvy3?8UoI1ދ/e 7D.[Ow鿮1:X',K&8T<6~y/򉣁R"Ƥ?LŎxfIlLw '6RyfE7oF[9 $(AM= փfq!A{z!Ç&4K–*2Ge/z%yx óYH ;]ЂxXh a!l{/,4}XH U ~"Ё!c<,4& Yh\~XΙX( 'qB/S_ٌP#)jO7p:'|!91$̢;0߁kL;Yݳ$Y}}59P%j܈5_MPL@'f/[BK^SɡNF`r ߃L2Dq̇͗]b5b6k| uΆ)|Xn*UV u`Xe9Ђ% Wrn>oF O)7ȑ9Gtϙ(AS\.=YV`-׬Ꮓvœ4-Í10(aT@?77с6ic0%~B+D#_ne/?9<Ƀk5 >'& )95N;I^`O*6c$0ߙOhXnM哛-\"8IZؒrF{*/57=p{z0 2$:%e;Oel*Cl)MOvyks17 +ӱfgJ |Fj:Lq\uc$+$XmwO{^%.zi|, %KA@e3Jq9aHSN PҦ>9I:s te8[a(O}+;zQ'Oאؘ'3Y@͎,+4Y;̣( K],izCydizH ?ЪU =tCDGXʒTܫ|5"N?w5iil<1)ylz%}0Eղ}~'ywqQ*1@ɤ.ǽ#%>ˤ\ڴV7 3XLpYx΁xLZK:xL|WFqSw<y`fvOVl.O˛<[?1W2j I1Bn.gT9S<DCDr o(:,y\-^3G$(@3Üp'!-*ѶYQz'{OQTB?@^Z՜/W-QxyƸC('sQ=^S]:+πmh'13s٬)%[Fɗ_Wse36Z]ER19t u2w i" 3h-#て'j݉Eٹ{l -lB4U8:Hժ9lVV6_4SJb1c1s,撳\P906TJ2ccQ\(`tM)S!R nͩ)v O;䰙BwlKp} -!O3L1f))Ri>`LB$RT q򙻊D=px$vJV씒[xUm\lnN3EI,">%&B?ӲU6lؿu ˋ s$:븟h*,6YRJW yK+z?p\԰ݍ,zs-\UeA 1M, Cic hP5[C x#? xR3yC0l~b[3O!g6f[(LS:l{^*ipf-t~ ~df@B<jXF5\l BdGP# ~ǶぱXY|'T>Ld@nbc6{8flIEl\i63c&bj7xׅrOj_\/`-Mq9ɅdS^0UejM]A>@5eU9Z 4W05xT*RQpfT{Jy9CdLqmV. `t֦d c6sӸ;}Ǩ)*ֵ,IZK)9g|EnԾ\2\<<@.jE}Wڋ mL`pNEjCU[k+:k^.8\n퀇 ୚s\f-EVӖCv"ېI 5[ؕv]TtimfȦ왪Dl'p8x.)D0Fn Z _Km3/bv.ƊXm=g>4ȥlxhs}Se=x8wÕs:HyUF~;T%t4ͱMoܛD.:h^(7dN ,Fr`ueŌ*uoO~q+ 䆓mG`KoЏtpߺJ 9`o}H0ށ/q@Qg*Q5J&<#PEɕC7FZPTΧ:|7qpt2Muu@z7.;}v nY,8o`SZYBbКG#hnyZԟy˸t/7$ex[_Za4NK*).'X3:EBW>̍&Lި:/Z{TT9ٶ"cXCU)&^,p`\VrCKEUܰx7|5{].ZaΆmvb5=o"j@csj Ns@Zbk,k7˿?;ꏱkc׳r†w{c.KEXm50EhXl5,a> KT2,ja6-\ḧccԦ!;)-1]t yi.ªEܗv>eoێѮq1qCl=t~H x ֜y'neWni8/ԸZc|?`X~˲\W%'HRWVo?$%A9e 1vb0O34<-1yN,YvP#ydS9X0erPȼPXw-xOs0d+KS!٦^faȦLG#]}L'Ggtp򠔣B>~S,phs\%ukaN%5|"h̳fS3-m -gv_׷;1bх8mb,UI,gc7t.0aVLE/Mg0?Klg9b=Vl Ɔ{jhslbMWa; l 'pOuQlnpOSo8a)pϡ+6y {CàIJN6 Y"͝pOv (4{M{#4phg'N$&sh/;oe̗A~ 1:$_k8*ʠ b츘²WƔFcF(sdF)Rكy&/=>*8I|9^^2%bE]$m^6kfKk*;giyEC0%0Jȅ6t .mIcvMGLu/$wrHZ垁!`E\Rܦ9kfpO31 Men CVPTkOk,6BѦĩ^TMVWgHŘ#2P_q\oFh_sKR3<)CNp#P8cI'lʾQ8|J><~S4 kԽjVsPD8kZ"K;c>O̊c~b6؃qS~D;g^76ʲ'Wdz^}@ص7wlL>.jMi'vn*s^ Ql C0 x򾬬wH*n0^Ⱦ,i y&h-_X" KZrМە#` Y\ koxu5ԃQ)0p[jhHr&/ODL>%갯 R]wps{;tZh˫C+lffLZՂ&e'Y46XQeIҊL+X~>Cy >R,-k٘7)C:p*af'Z3aq'| abP.Զ.8kq@ Xf,KH2HM9_sgJYk{ss+\ɮ6M,S˘2 hzA-F16R6SUU/1rFr`XTeI"< 3"k'W-fe!!(xqQT'  *]r@)Qt;P lxc'O8cHI|w*laڎqK)c ڵ2^'n)@Ye ځ%B(mh7|\YϬejSS6vqߌ}X֞E=/~F9~M t˼\UٕX}/\y^(eLڍ.7vc):4Ɏ%X|"kO RL>OP{`=pMNIVEM7Q"Zd]sYeцXޡ,\pdٻκ]%96uM܂2fdyN9fYlmj=퍕AbSJŨ\7x9r|eMuyRuL('_jWo<'6 &A:_+,wJ1]*^sM 3_ЄuɷK9 ٵ%l5ː9ާm6fG;gڼtC&Kl㬩 e<|>"sWhmraxm xtW>{0j7T{]î) iFk}ZOT|D#E+A]"L.tiʵ p'>ҤKl0Iv0=#n*a rQic12w-!КQw$u%ܖ^6s!Tgl]]Y QMKuxc~YWp7|# WSTlMu1%h%Mu7jO t^G.&xH|~0 Mћ$p)5 mai^{"uS9܄Ȝc]z9-ZWHYT?AL݈OxoO Yy$~PV7ʊS(Y/}C:ͧ.hA%1q\K򐀧J/q,٫n'{0mstoy; ,zׁ_Wm1y>!OvA 2R&X'}uI`;vMdзч+9~6.V*߲\~CiGT`շ2˴3Z*^A%.=һ57Wq"ब1]""=jbQiG} FR GlFQNAcr#= ~ mD[^?/ĵb [:CwbH`P7ߘvQ7wbWYb qu~\`bug93k-`?=sw3?[ٟ0u`jLs0]7.}Oia{o3| xg։(\>;7=08ǯMU**{|o_Odc?~A3CY H=^ #Np&l bFG'tsNOr~ɩb9G4)ͨ/Ke]6ybfȸwÞ.ӺB_&_AqP߿uR T2e;+oһuDZ!/e%i#31y҄r'FNɕui2(Yy7dWζFu|A3ZMɕ@<'c uR=*1| ]K29tfiucD wKs$o0KMyƐF0FH3eR{XCd^*r\bOn n%2SjoGsRHsCG;13ac$ 49]j/Gr6Y.L#7ݴ?O,IV[LH`Bé>_ׅo8}lY<9_`B-%d!##骄vp|:jߴ\n+G}ǜAdP'I!tsTe6YT8jafE,MdArecO49w u9hR|ze;K5 /nz|>gwNK& t}rlsng^ S{7H 'BkȨh0Up$9]p"ɽsT:3G\;q եY7A7ѭj[00lNUd[*h},}?xM3tLz鞔7<Y-:ll2qO3y9xEgdW x-e> l)+Q=naF EN&OR2~= ݨ St%X#=)r6^+<qOt`csKXVqt`?X8dj=Ԯ#/c/9F!ϗ7<;DP =C5XJEqM Cצms,N&XRM0t`IG6 [m8`D.gp*4=O:o:v։}ԝnJ]}' Wk>vf:s 3@b:7sCR'ࠠ넞tJ' O%(Q,e:iBm `} w%Ӗ|J'!#'._K\s7\)J,#Tw СsI`8`28isJTΌe. ҇m0OQGa UyK~۬R"N)vCW[sb34n5)*upp&85unv6(kq5z4pfZu k@e7c:I_+KZ"eeymSu.:*&bd)EiTeR RHLf;O<>'v!D'o\Lɝ0qxRG1{DȀ?uLBO(->,2/EKRpv/Ad}`<|Iu\33e[D] ڈ;˻ -{-_>0?9;S021f7l"6LBL[6LZɒ]ZنrkL1_ZK!9D53u!^IRkCT4|m@#}W=s`S+/َFfa<0݃@0gW*/fsytxT]4RRA)ə Ya>sY-tes"t:Yax_'m*m§u' MUgQKV&Jq1S)㉜]t'}oÁˍ-t1@D_xAY(˻ נ|efVgikVfxwSl$-\d?{`:fM2.zo_|h.DrbmsÜcyHj3ɡĭ-\ ϐxmr".a@: 2e~²/HU[5زJ1G*p-0wb*]Ȫ6cVzdU][VUN;%J81cUC2Ĵ([V1UX5*\,R|k"CZ7Hjla5+'BXbj(Ȫvh001}%@iUH[”*:³,|.2\÷3ra(Vȿr2}c뼼:xpihe4 c6)5hE7ţȱK/E UKeѼG!#r ?*+>NX'ٻV35hl2O,au=K嬼eK %t>>Y ^%N]2Wb߸2s2\POAzӅtUUmoPa8?;.пy"]{E(yUQkm5ef{B(u;IfZ=R"xQ |E7m5TfǣfQ3 jDrm{>aZ:QӣU-paumLe-ԦaYaI]*". S(eV*.z>1P*~Q:ءf۵jFQDN{kcZޑUEk$d~% շ]>teUQfuZ+V( AzCn#P @NiH_]Q<dwV#0LB,f]p'oMZ+TyDI y(?sVy0f?iZ;6S2 < HI"N-;f?]JsxR<78?,Z,.' >(”,Sưd"4+_E ڤ\䫦T!C-`L_BͳNJ }Ir!keUð] E2)|݆.2L`W81k:I筟縿Dž{dULҳ;U%Dsz[Ry=DޝhkR)bi/xtKY}i:gk nvĕ]rR=nI\BմW;.x$jT-K^n>Yx`Ai Y]"Vz@J2%AzeB|=m%un/.%ӪCQON*.ϛa /;7F;ĦW"+ʈޔZ&QT^>@O UNb~c:CudaÍadMV.vŖ26%:|a)/ˋ^n͔7NNmLN:jSŸɍ?S=xN<;Wj*_ʊG;Z qU:~/Q9-Cn \2M8`a=飅k(07}̧ OfwB >L={oYޮ+/2[BJǙ~nj~슴F7Ԡ)V1\"β2f7UvKm]>\pLئGBj -E.5Ϣ <6[h[}  ߦ\;EӴxooB %ȖOl?w,Ց[8Nاec%kǴyC $rAAnʨf|C%'x,zD$z&_W9.U]lNHCotu=}dCRuKOW"WFF#$:Ĵz+&'0lpr#^WZ B4bMj /IC{\,XS$d ]!0%*ZRY .IXv .: 3Ry`7~Hq\Ԓ,% +_G5(_t팩KX0m\#Vm2~T;J/rXƜêXxWlN\Mļ+]NY$D˵'+_:?AzX:cÉZ|b4yM*rӞNט[!6Ř99e޺vy{Ų'Iaeyz5&(^̡}T3=y0%QbrOiy7=3"$rS=5wP_sFLre.}4*t{᭼r)p$h0Rt'x .GRC,u{H l9_R%C;T|pq>!C l:-@l'|Ttx}:w^Mi$ '0^H<#eqCK&画bh7זbvELӊS~G+Z:~J]e&;H~BGM/_jU4隷KW>kRb׮dMgh_$i50C˃VOl]3+ nEƫYJ@5G }ybfɂ9:S" ;=%ܴkCrv,me -`Hpm7a>0OUYT[] ȩٳWT*{ 1jZPadL6g&sh}Q1Ryԧ/&0CS[vy罰w o:lnf.Y-O tvN$?aQ8^Uo͠ dƦ ͗nj0=KL̼?!'j ɇtnccS6$APFʭ#9 IOuEҷ;`M$V  2SᶚZ7s/FNuX7Ppҭ+Vyڻ_WaE$<~+:0O^uۦM'|/*Wn[Y3ۓUO|~{&Tβ+`@S QӋt)]p&e`A mQuܦ=hZ_=HoV}rIz0zem5*Aprc;fU d톯bS& bUN.XW8˚;*U/Eow=EX}HNmEV'˻%MD]gƹTX?X3ʨUZ#JLK.J w(+DW*FqWB!0-ܮU}H5^MVG~‚YRRKH橦ivnFF'd%סkkCaߢHQdrr&+ }$ErxU.ߗhҶ`MVұT$!_Ɗ%4K-m, [*<4$4RAV`9Ȫ ?rMY2\*Ǐ씽V%@ g ف9Ew(g &bt  *[va\,Z]ԕ3c#GԮbLhA&f6E҈<,Fu >Ldy t!(}ķ%|8|y󭟘㟘T '^hSK˜3pOSz\'BI#"%kA{8!"Vaf}o$ r )x_G9֘gFg{rsԪ;TPѷDsO~om5Yv}='G*š[3&)#$.ķq}]_U& ŜįyU6+RkY-/b!+yK\&L(Ԥ7?7L w6!0b[s!jݜK \1VAeTB+^*A̳xw2[g,`O% .*5ןcڢT"ZzeSub7؃1L,Al: 0|`FRF|cDkl2㘉}O/K B6P7A^-=o(;%-Ғ̌0-!m\;G1X}2 r[B'4J@vV@ H0s(00Z>ްC\]_0  fL.WoY#?NY&oꃸR} 8fnhu|RaCy.m.?VC|1z [6srhn daq;br"T41CaLe+68BPOb0Sl/y,:|v}J_jrqt ;0eO aitX¢AI8Xq,es':N';|Ğz}p-l.9JT Ia`Q o:1L) X*$ma Y(;s CZeSG%dlMWV(JN#aP=+d&aPqBP)L_l}*/oe! Z=}93yw̼,j % 5 s`,݄0Yg3&;XѦVv%?IԥPqC*2S- iF%ŶFdպxՃuGB&D:'?{A>8:nKa$S Q1u*^ 94`܈丩GIR6 ݎ|.fq!g居.vTrnp Ŋ(b5zWk59t\,#U,g޵ʘgOj@4H G <aX4<ڜ-'j!`фNqcZHU/:@h5XlA_ X6;'v"s(]QYjK)V1CWfݤU/LHp=~X e!peimYdV~Cu)Ȼ[1=?:TFY;n F :~u8cZ.ʨimPO7Vqw(n2aaГlZEp.1٣h$FZ԰2nGPpeq3S>1~9̏OxĀ>%~}w#ɏX"QI~}ݑ13噧'ut O>5QgQf*=ݸuo /Q٣+Aprnv HnTa܍j7!9=OaHrʉj_NXl_-qG'>l:њ] ~BP nD۱]߱ jXbͷwa(5a<ލRA ?3%pүD>t}%~EQd@ N䌿qauq_" @[1}L00Tigc%^LvjqAl $] iU},ٖθO]Q{xj:X,`/Iie^[ '1 ٪A?`ɍ86nO\b6X|AÛow2Ww1d۾t|Q0K~#)Ȍh(Ə4z6nFW`;> eq`i[`ayb<[6oDΧX K4&N/e1f. +W۰m6}R; s&,.:őݪ6oCZ~(` vVg*Cuć)}<΍WJ/;vv+H Oi *j\w?dZqvd_]p_бVGeΘ&wC"4{z$C~Vd5VC1Qt+j,xaXh@oϑ]n#K4iǹUXo؟vnθ=6]ƥ8J4R ySP;39*~`PmYYTA_,hejQN;`/eq14Yv_xQZm2 /v9֥aPpQ._[EmԥZ9/6у_fn,'~q`'ؿ sQ;F7v|]PM WPc{Ĉ5*l+ 3Êкa*^ KZ[`kU?/aXMIF .؁AKn[r$0V7EOl_hE˵Q4qp {aucI^TCO9Moe0^z3]Bg|E&~1t8vț$awM305TC=w{QP;ջ[n ~ F"qs61+>3aX}sln^8AaHΊM֓_YʾUb &}j*bBѲ^Mbt]g-bPC8KL&F98s#e+8tmm=YbwF68L.l2h=BB04iQ̫d٥ޖh\x?33 /į&c2s=797,I =CXCa/d&A!v42BS<̰fύ2\?2YJf9hm68ÙɬǬf_8To5kY96/Yy/v58эP L&όy}&~%^ӯ~ oiCN&8 ti(=|2Yk蕧\Vrn3,l7xmReO"mkQP510<|pWU {Fԓ֐c{B<.<-aL%D QӨ#f?-Y}Q2[coz\q[`{IXAu1ab7W !1]OʒvZ^-rn.44g`@o6-lQ}^k14P+>XۗIZٲ1㤩/͙($ DZzH/F;hk3\ĉi%"97&+.izdG`l\jb8T<qrq`rޗP |PI=\]^^<*SOm&ޅ-%|oν*O8l p4գsd;A. 20MNB)HLo-Mh?$=QNueOc85Ї}ƣVn/l[ ¦< ߗ?0:ayLJ"T)~ef+{5fg^kx/9Pr BnԱ}fU2Xæ܉xD-dc_1C8٧zկ*|wPzYNb.ׇ\>}}K%gFgp  (_Rv7&_0?3V7|}CSf|w/c&2mT%_az!+\} I>k9xJ4Y.^$a^]Z\FT0W5d 풟8N#hv\WPaг)s6%+Z]Xp} F/ݗpEIT[LD`nhn`z(y3xcʒgvr&AX,icꇤT- #q?q׎|/׾Яr [iUBw6O ֶ6qęV5g^BkRVSF>IcUr=99-w(Č% p;Z`\3yL1·7?ys0=kLH)a~fLMe 1yiǒp'N?XUYer X &m<°cڏ+X4-B?$/i`/xfR/%|12c]w1p2f!)}{Ŀ̔?/ _D)ͨ~5 VްsEz,af}Bxܽ)I\K8|\<]WKy[>Ӊbdy*^H}U6G#]ȋ~/~]j/䆵8`VJOkoh:r{x3)F,Ao"u+ 6 e׳_D:8nn@R ~ >8;i[Hڼtm'z&^ސ[h҅ݯA=?揍^0) d* B!P֨2}De!m-ô BoUh'fZ6![F3V!Df]CZ:S]&7x9 gap?0@9A4'Сk&n&?&kϻ .V`wK3ՍGOBw:e)r`\Mp;Ub5$)wbL'&X 53}Q3؜5Q8l݅B h􇼘i#݌5I^Y3xta]}QcX- KyjϘ`ɆƇx^־ѭ{77=A U xa}zKp!*{ V0{oX7{xrDe)w᫲ yƭ-T/H|/pj7}!J_H/ /X+/M_(M_x\H_@,ȍ9M\s셄aGϗS_@o%2.2b<}9B>oe /\a eN\v8{NmQ\.`mg]ڮk73ksBa]Tx zYZ#W|4udx ͬY ?e.08g\f.PNLRN~r `3Ux7sI!?̅a4~=f.Ѽ!j}30(Re33FX5.H]"A `VuM+ߖ| MՌ"Q!\,7xu '.|NDꂿ%;xE{Kw9 5U0}ԅp)ulyS.( 4. ԅ1u!D.$ L Krԅo%rQxR  ]k0ȹ <܅˃]p46ss˹ ]](޺Orȹ t s[.e{hNa00e>]EqnLjzn-@?M] b~'.$  ]' ss ̄nIOTA2w!@ TB_b2w!}DZ[.4T]K 7ۇy "=aԩ?F ݮ.Wx:mrCg ף(o'SȰ'0n¥.$L0N `f|ƣQ|K3ur*S<fܿP:UdѽVn;(!fj+u#I7%/ff-q8^gJÑSB|x }8IAr\nɊ"JB<s}p%R~?)- &=bvx둖\eAR^wՓef0X,0Ϛ?ojRdʤfAotm껋x36-V?#SW2A'qFX P0ƴ8[ɛ6i:2ֿ`)aKO s`)?۔)}5ɜV.d Lkd_l҃4Y=`mZ#6wn'y7iM<=7M͞4j56=;FvSWZVy7H&<ᥭSxj\~m'OT ujGb4O%0Ȳ]ɻBAƨ OERȉ*v i),  <[h< 1 gJ9CiBƦT L'w1 |Eղoϓ^`  &L/ d/=+=8xDp KID`mpu2bQеCHAu&n ,@#UU+m7UgpvDp/9?1ƒ f%~8ko!4\E A:,=0 0;+~'GXo`iN?9b>ZGk7ڕaŘkEI @c?3Ҏ0:?=蕏4` 8YSr?j/q橴df9iE#l W$qŕ-ލy5d8=B?fk6A:4`3V2Ō`9k`w ;03 'n1Si+?m>j~>Tj eld0l69'*J@^̦b€"W@M*P+?LkNbND^X^/Θ\A]$aY=?r˦v-dX;$jcɒ1^+0^a5^Y3T `\EG-CXuN2ɦ#Md3P'e;Yu%x8fHJF QNb +?5 4h]Xӂ'&2FngQ(h? nVd8D aeOTJy>z3UAto(DtMd>ژwv7—ը8,w?kAVx4_14zB<>KYz.0K;ڲq5!Z:aFS" kʍSLcXL`Gp Fvc/p;)ttg#a!JF!SL\zrѷ3;|VŐYW,xz'AZP|e10/V]Yg+pwBEŸi3]Qg!^Q;=g~ŧ?]%_E˼xk>8\Q0/0]~+.Aq, 5> :Y@_/9mo نdX$+j,Ŗy&2rZ~ԁ5>^Q;¯W [ zXf4JVX BTYe]Ȭ`ޝz~E s+ke]R |ƺM, 50svl/UZ x\V sOcu"aPXrLSTV2xK}6K-5wM:EԀ8kj`-iQy`ς)|ӯ~{=d߶:d[eů Q}ORf#*Ads1-%dy61CFkPr+{1̦w00Z,Op{u u/8rs!xI"TAu,i%?xQܺLNMSmA W$ wC#!ĨSQLy! =y2M*K谶ݻH8V:sOlzޥaYB6 ʗ;^prq::! u5h㠯 :bxC<1W:@e٬+hơle* ]~2K@N~xB~6e^[GȱWG+ث$rPH7]`"^empU/7::WT`'gk?'}={V@ Ɖx\8l~agKɯw_aO!R$93=$l6l+W#8S"Ы[4k{#-3 *QרK.*tsҰ3/Vs3+u <bjaӗW=RHe qwgvw:ɗg;ԭ\ +\yuGUxܲ)\'x6d?^+E=܏'L ^~n.22xk-܏JGZElHPJDxcF$ xTBX{LN;}xM1yk5_$݇g㩊)k?5)ߖ!oC3I\kEaTQ),6WhϷ&y8|蜽0IifrxByZ V.yZ5'#"w>g =>=7Bu̧Ψ,/wt '}tk`ykHrm\F,yZoa ]Q/ w(q:Dє#g=X[xh'^A/MΫ׼֏.^蘡"?t4i}xF}6KtpYzځ!ԺQ_|f(}POĒAAd̨p΀/c.Yy6NC{RNխ+2B"Fԛm39&oG]?Id;^ k?V\%9P41{nySTM'ςȣ$;}k`IXbǙrY/T a-%n۰~7_J FvbH?R`GX'~Ҕzʧ/6!+Vcexy%Q5I:|J߇ Wx ' "/d~,ǿC/ Q` L@E0a9.?eU@;`S/w5#^Y6lY@13Z_ mY>(<o*:CL kٺ6]񗄙co ^y~ aqhYN<Gc%Em]RL||{0L8}}bыAM|l~9?NN7#f1-’ (腿1G؝zS〃?xe!oY\+% L^3,7$XG@9?3xTߓ}MtkoJK$a(Qްolګ 90fS[8V#+pU+W0ȞT gB Dr :aZuU099BxtO(} x+'0qCM#` E '2[UD p;a&‚>tU 33~RJx>*V+a}<$nC ÐN% ~웇B 5m1ب@YZUؤa ?8U}|}[oTNj9bwCi7g!ƍmB`Y"%Gr΀ \ %T0񁂤aW" y.u%_@&@,G F] HUK@[!r cT)=VB}53xg0t[rBo.GQa/IYjPf0¸m/7츢[uR^ (Io!0HghQU/a x Y }jO.F؃`.=VWxbQ -'`'RM݂SBlsYʀ[rU瀳bmu䱾mr-.>>X͇th8̪ dƝk/P>$1 ;!y$!VJHbV+/aU+Zo>.n YrZS?"CzylU]+ZhҠ]MVh?#gLf4__I͏&^?E  _ sSu4>vLi&'ҝ690{t[a:0;PMNީ'Y)x 8Z :8JXZF !={KVpwɥIi{[.J;L=*͕Rl(tl_n#&W!OZ +4<:aB W#u(lPdPm}#1alZC2xو d;I %@G`\bK1l}e8x`XѴ RM$/s9!'2?Xʼw\)Ѿ>l+¸/v &}1}GM xn"aboME*^xmD}]pd܄vԀEtO0o Af0; !h_Y]$ )5Rh?GF hx|0[?y` ̏wN䣃 jhR`+32N3'}-j[%s/!rMӨ̐6UYWfVWC.KުMZbVs}Єqjddyb_#N >GL~dM{ts8aBc2&vx+~/ECx.|< {.n g,ޥэC!7hp\ gckip8ۮ)(AIhƜn@s8,QV ߗk}Qp!fL,/]z pe:7~'Uz~h4WK@=6~u~bqB7@/aL #A̡#A /+T+1 |aבʀpL;15_s|aWؕhbo0Gs!߾dg~"aěw? FI7VH#`+" bxbp] ׍U#dm`<> pɖ`01ܺ,VO67u̖BPF'.x<"믤\J M) |p &_}zabr!^(7km[8tyڵ/ #: VC"ENpߧ !bNNiT1a:c.__&e@VҔRTTO]f4YdqNM;tJʒs8ܺA<Ɋiyޣb3ls芌1 gZ[۲(#l wV^M}JPD. ~fzS^z[ +FXT֣O?= ܇V]Fͭ'\Sgԓh3n=[O!3&c[toM>fg#qbĵ\`zZʪ'tGri&g#Mt^v>asBo^G[S]fWU`̙l,p0!~fab`;GO`:|/]\vz#7W-,m裃!/D0jgcLbMڑ~|Z=`1ԧ?lp>t-rgvWq`tp1_]PMR&jԟ/m,x$1YdEfHdsE]esE=-u܅"s-5b6i\Wfn?Kfni$5NOI3KMB]lZLb8Kl/zօWlgBGC$6Ѷy^im%6M3ש!&xb~Դ^R0\$ NR3*fRIjژR-ەRXݏ8 y3R]Լ.5YJ`r :Mbܴ+{pyP cy^ir*SjϬs&Z{,54Il "2\G!D.6Ϣpy7MZdiGbS3Yk+fPl b?kJlZq~$67!CjnIRs3-1IM!WjK io}$idhyPovf?/p /ʛΫ+\^ KD,ðf[J4İμ;.@lb4w@=1BVZl$Ve 1bY0?Z%b2wͣ\pWˆ55'kMykwz:oMl[s5Q&YkFT\\%V3i>uIս0* z*@W!oףBV8f]ՍXH T AΤtlC!-%/|57m4]lJIp423FơE4 GfkS>53""ڕjHFSI#Y!C<6Tָx |W90zp,*y+WAuUrs1)m>Q+ZghKBXY|e++r@ɲD$UbO%Q0+)'K 4;WR@+) OGk\RgH !)Ju&.wIO荱ܒNe tr[/eX7Vre1a_Y>) %1!L .WN(# {$OwOpcnR('t?r Q}i>'$'1Nn8:S!(@}"߳-ϕAȦul%g)1` 'E8-zP<5Ej;n񱻈I^K-jt:ڢ66-jgIL)~~GTcu32Ѻ-Eę>j9FdHO(-y@\"Cɶvx9`&`PǍ \v|qf\Qsn6(d5p*0]a ʞPO1x[ =,Z}ŔDarbL'RRUx*: UiZ 2lk;O}UC6Gty?=Y7CH{}J79᫉Ioִ}~}ߏ]w4ON>8yvL#;&=~߮}=jKA2WY*c@&Р]BFR,: 3aZe@zUV?%c9~YG`xy xE4 `b`0{/[I7UKnn\  ŹP}bAgJYY/+h0>1X]b}w|'LYAe',fh0gA*ͥVB*"ilb3D7v-oz1tcF3`'[VVJ !/,dbc<0:2" @}$C/ÚMae/u|GЊ6^ilP'ꅧVkJqNGl!ǩ+D\3Z "aL[O"R X;gQJ \-Ig"mq3lbhoj^]P%3/bkϲn>h\m]Z`a}RͤO~6n 9U I93)o X&5£*JV,k#1?YCTuHXO~J ۯ riЋ~˃XZ/J*:%xeg#F;E0`4LH2t|(@C gDnɋQX]$Tp8fW.Ӆ6pFQawa>riFTC5&ֹr;$h I)GL4H/`CQsG]Re1"?SPߠBFSp:PE+(8((.e'SfAl6Sev}T;&K]֬EJ>ɐ (nL]YR$].@Vp=mɁ[H4F<8̥B=xC ե68Cr}ZwV(TyJA4&M V /Q)Ņid?LiFM[.Gf/X']CO;5ڑ%wRH Iue'uCvD;ŴA 3'5lO_#UU,X40l " +c1*/L[w.19Y'&B&w_3G.h;p gT#;<[0s>#,;'d_ <J451 G5wu;)*r5F0͍NR^V0>1d ^? UT0ؚ1<llasn+i:: 7}Y`[z£V6wP#s$)ɢD0d&S(Y^{:qrX=IBd8C:uI4S6 ֨6q'mN7ٔga,f'j2p an5v۳`|&ۀ\xvkt}v^ͽ u_LגIfEW( }7 $.fZg VE^t74O=E؛qWO-,=IzxsgW]C &'OYdӸ~3'=OHOW='Tygq!Ua WZ؛um4;N+v3LuU:WWs/]jtޅSR:׵ey eea8Oܤ,쇴}APvO]86 eaWcdeaw0@#\!TQDR0WY`X#)sBJ[8KI_ T񮋨)RRQw*} [V.-1b`.V$}qsU'?azWFU~[V..l)Յa().ES cgB?վÿ{ƿ?3?b .0 zDgC?s^n eg/͗p__ׯ/6endstream endobj 344 0 obj 50377 endobj 347 0 obj <> stream x_%q1o#AWg?=Rm<8lPU0$a̯sN+WFOWeUeVzt<#~?So}>~<=O_ohO+dL v4G>wC1j1x5sX#OZCO'y0\9Ru |X#24lU2>\o̭1&hMm#:SG]@~*yv0oٙ#-Nc4-cgOvdت6'Gqmo^JL>p_ jKYGV~Qg m1VzAPKLce> ,rfГPwV3QKC>~~PwouzshG:k;;Qן;fnE#=ܺjlFˑϣJ>D$g]c3CO*v_1#FT[n EF9(Odm4KsĞCI5>~t|ٹ_sH0OzުN̮m`.+1wSOLtIH3tCSFXNawT+tjt>l,Z*^W{FyF;gzxxzm!&^}߆>>3I{ #ha ߪli58h궤vسyKcɵ5q8i 4m[KW;<<}Znr [Lhӈ[¨Y5RSR]>fN1}a#$ci#zr+K^H|h&iw>tXh\4wM>{cZO?Ni2g⥶q.>%mcp֬Z3hS+" >j >޺"r0޵F0gݿ3Jd}P6||ml ^,mr >Kk; {+;c28'\T1Ue1~8^pD)8߷fƫPQOC;W3$&bּV3S6nԵk 7rɏ#<4]Vo-!y#pWm&ZXy[f6v1"ϐ[tY!luql5kv^6tl U!+юe馷V>ZHUrעkuLae<̑D䤑y~XzFS܏y5,3q˛,Tnoɬ3Oރ".ӱβ# bvgSkYǂs c}؞ֻ"8Aoz >jumu!n7Cؙ/̏i 1M38kA@ʎW7x+^ ;kZzslD2T1Y~s|"?v#'(@'-x%~[D}W$5Q9PÆw.5ݚFVf̝Y~M#mLĺZ1T9c_2ǿ2,]w=9rA˗Ěu7gEC3k+3p1|hU~v$1!X';(cUlnj=htK4r|HHlvW[1eg\Za2G ,^,?雩oNfsa\/|6iѷ.{ûUY6jsd;wFOy2G^o!XhOāõ=i̤g}CGe z)DYZ3kӜ*rl/eΘSLڐxl|Ҳ-Bd)k[ul?bv3Ys$i#xHdwR2ǔ5l~ڢ$͝r8K,8ϛ{ ;x<?峝s qͱvo~lDN$`<u gg!~~ FǢ__#R T>:ߒݟ;q?0ީ :/΍Xa?}~/߿Ppp8K i^ w_|:ou_~c "K#Qa]DL<wpoőoUyInҧaq)M훸*/qU^1q77qת(qU^⪼Ucr4,}W%K\?&.SO =,.wKU.qWCzGzQq7]U^tUC.v>W4웸*/qU^1qiTG&K\*L\|}W%K\?&.qO>{7[⪼UyE>_,+HC6QT2*^*Yo.YYBeEKWYMW٥K?K%^e0]0⯄E%j%%@X>J훰KDPWޢ%F&&T^Td%*$Z%W>"G+9oQTVI}Uv*~/#xeYmMe_[)aB_ {_ f]t = *7*R_>lyBˑVn+y`q` X݉G:R?BM|⑷N*nGT`ŽxD/Su-*F6@qV7WgmGP.Ut+@1\x+0Ͼ|"~֧+Dĭ|zCp۠֊ Y01!qc R] [ѹ qBw/[}AH*`90qXxڽh- cf!&-uHjc^'rwA}OH"$5\gyy8.7/ǜ#'~w=@5(*GwFZ)`'6 2X4G7Agxxkš5xxJgFSk$;z1P 2 J煞#^Xq? ل;4$~"ݚb 3!NBI H#"Aalcdz9sH$n>~!$M'$N%N}VxHHP$n.<ڀĝ&]3$OGzۊ4#!tLe&nӻ[]?FLy!1]Ib▇\/ Zx(gwV6b v$$n]B@u1ʄ;g32Ra_UI̻Gg [~JxF]a8p}4GAsOU60qhbQYD\R9T>7 Gt0o`qI pD/G"!\WTKDg}\IDl nLm_ a ]crMs+g/lC]mXH8M=:}Z|-^ <<#˞۪OHZ'}Z{>ÍI wn}*GD5i&뉆Ǻh Yhxޣ1 gM~="A[pj죠oDlP3yP8腁ac*V!Z^ 3R3">聄"|ǬY-e쁄{9>($kDmχ ޕpdwCGHxxfd", >]8p’ ] |pm\ ٩(JǏB;s(p,~Hxmm g}$K$ܼV"4D}b""bMo pB9 63ppϏu鈈By   KyFM VLc/.ȔdcIE+~Y'^IX3p@ wmyQ8pL, GǑGĔD±r kApFĽH@¯[H8"."h6QFp繤ZHyp  $܏c>I;8D@8NXh`+Y^&{|6ppm GΖ qׇB=j>HxLx/wc #牵s _'nyǠӻ bNK݄/r$6Dop$wǟC Lj1MU*#s5>Myq?&nUEHendstream endobj 348 0 obj 7877 endobj 355 0 obj <> stream xXKoFYvվ rȣA4EhEbm64\;JZA/^|7T`D lfi n-ZnRb$%ω@ Ð,"LfrzqW쯉Xl59QvizxA9RZ릌6sgfެo}n+KȂpĸvĈA?SDNND czV]}>f~ 6> )!%U(fו5 7Q)Mb}mzNHK.)$IƝs@4Ma1jN3C@jpծh$qgȠ Ȧ oK#g)VDBG[b4s8Jva@&ȮLd8d0Hfn£ R@4rhBhU5U]8NhutL/Phrgi@DXVe׷O KmVݹAj'VI~PQW3 ՗jJ/mpy:@ntʹ)G) .U.BOV_+t@31-Y&,/OQ@<6 E!5 xq9T;2CU#tr`t2\.=<r }-0`4Uﺾ>0]B![/뫺_hLJ daF KнrYۥgAZX`HU5A3|]C&[^9 h 2|% 6!X)Cz`+xf6pFtyJIM5qV |J׹JtA[]0OmmѷdkA&^/&IhT.'9M~2y>ϰ>Qj;3ЪCnq0!jQ$:~i5^+e\nTN4?HQv' R)q/:HbLߧS( @yy)zByFXDnDbWreD6AmUAoL$%v4*G9RsE" ]LZ_Y==l~BNP.槮G?ïz7,ڹB;-U.\笼 :G1V 0FM=1ەi\1 q󂨘TuN/>PF ⶽ:vxLKcرSxSbhPG"Pd΂`zz(!Tߑ NfL8`֧ڼKU^|=$nnV1]ɑ &=*숺YU_'ϯN3ӣ$F2 wp,.Fe;1L;R>\S &|;p-WR&݆I'ef;OѾrHҳz\V$̛:#H pJX#TOR/jXdG!Eq2OwgdS't'ǐuxgۗuc{~3|X9I&Xŏ 48$a~a] Md\^}?V:U`շU5>?B$uTJzLKgJ6Ċ2U K7'> stream x}Iqgq恶$GXlDx cvwK(ş_j>^}O~_ X z/^?D _~_|?0t= ^5?9ʥq%aژHr;?<Ӈ}ǟ?x`_߳~Nd]?cj%\zŦwlӜ+@Zk^ϛÞj_Yu@6 W4;h<_2$?Yry?k͡ѿ5ͨ-~{.I{\﹁b['j}/I5bX% lnY_L$(._zk.)OdJF/cxɅ?__~wj0iO&݆0zȖ֜_N[cJ=5N%=<%"N.EL_rt<\rM7~1gxkCY+͒;s.O7#wڿ\r?fm1-zhUpɅ?}x~:_:!~bA?,4~ǢHK_A ~AO?Z\|)p CoG.^:J l;_j?C>ʘD"7خo܌4a)dY˿,'>}z~f7[ (Ca׵g{^ƿM'&טG޼k1Cc~kڻ5-k|r7!%V|\hqsqh)J{DŽ=00|3>N(q)^1B\OZM|}}b6ߛ=w|-jwO/΍'A+7H`K}F(|XiUG8\I|R'cc$[ka n=7S2\gW>.>l~sfmO?zn^}94QS&YLcAcTNOT[3)3N~CrbI `?qKY 2$(>^}ʩ<+a*&^|Cc*ŕS{1fLۘE(pq[#~zoFLڰ|=UɊBB:ǽgLh8! AߋL_4uIlهgo!ͻ ߾bฑ|9NW 2̻5^~Wo&a%1?ORd&OmT6Lgj_}̃aL?kxt>/pYᵱGfǧo4حp>Na~ܒ g1.2yJcѵukQd haTLc}GzƴO=sW^^ K}hv񻯞oQ#⡌2l C)6nֺ,{zH}͘rb>ß>jEx˰bz1j}@b/rǞ(◂b LOZ ئIE#56"C2xdV9oG#f"U$*E>h }Hp(lXN )C,oQBmz5V~tR=_%l1xK] IA'{D-GcU@vtt,X=H&hE aX. kی~T-l?:IrQEP:2(/<߆d ='iք([U͉$5&yU1'j '*ޭ@i5+34zռeVP(ȇy%Ҵʔ@\Ba.'> % i$IF7ƟNbqi!I8[v=E=Na Q=MM RuF)dI!e ՌLskDp'_Gi5}!e rT ,]}8+ρ2T-\yL>Q{2!ADAtgr6Oe1fgYDDT7M&V#'K0^5S}, %"^ Vp?y~9`4)`Z\2(:1Q*mjjXC,4J*gj 6H302hФ>`bpae-j4ha{W@(!@)#jeXLe*{Bj4{,(c6|Z*vaFk`HS e Zc!eql@*f9XYfW1eCK2P@!uB#`L )kFLI'AƾdS!>6⍟Pɘ r% r= p#d0r5C~Qĝ!Y^qګ` eDzýL0foK$Ix+/8~y!S0?؅3A=q gB!oyWՋ&O iT?&W؉HR ie sęN@" cn1i?c39/ =~,8N"?mCau9p& W34Yaf$L (AbLs>@Ӯ8ӓ}1i݌r$:)j%0)؀} xCxeR1!)ii38X& p.V*C\SPܫe#VppHad?B$R h]֓g r,@nІ9 *bXe05|]qdiNA&=l8ij޶=Qz2@![V8|C2jVjhX]J*Z8jys3{a;gBNQMi ؄ Q.2]̊YEo8y܎  l1RlR|&+y` _\7`CŐy\ YmC6oŐ(u\ ZŐa:Rf'aP b(XT8BVBtJ!dNSR-ԔTTrm-IݰjDЅU9%Ut+MT16E]jALTEHUTwUq-uD頷EU/fģڢ1EL|*8j< Ƶ?Rŏ!K.h qtt"=)nV[PE7}sSPE;NA}[Z%6D =-"Y)є&0t75.9wp")'ŹTK&LNhi(bvkx4[)o$ dJK`Y9K3G֨N+TlԏQ/Ehc1y qG(E`^$>Ge}qCcˍet,٬' 0'~iئdjU' kdU|K$ݮ⦕0ԓvnY AsHO^vFrFfg7;#4wH3|6+#y(2vyZ bV{h@ce` 20zXpH6w՘VG54$]~,+LH˲VF l3ň04dKk6͌>n+/ gafF‰f&3#!.03Vy"3#1k ~3;3􇙱q|g ɨifDSň ̈v8͌L3#2>t3.+ KTDW>tKT·r\>n([%0k?.Q#=co4aQMdx n *f>F8RSޒp5 A:D&,6S"()iCP,EFNI#1Bs#C#i!_oOBYc,5^F(NʻtkH3, =.=Bp&K밈U([)@ڕK:ۍ/,XyH>!wPQrCՂ$A9oYJIRQ˸'Yj`\ì*1īUY Y.fbw`#0E-,t }(=c IV7Ze<]oFX1D|4$Ev[epsA 1r4cvPBfe ]o9DIA:?d7-#vrN@"n|#wY <:wρ7 wYQ*+f  ^pHFu`@$Q.@*>QCY ԫeAdIYs pvUv4z d@WkIίko!kvHDe$FCtn )B B^a0kXaC̛`- ]ISSr7h/$* D .f`U~ʚx>OHA:(ژ`+=ZCNl'Le,+0L%-'I x6^1R%I ,%z 1)ʖ]QoW0P,ں[ Qzjj2 dŷp3LQ=*>uтЁ)+Cץ@PГ+b*rL.$bR$x~TZF!jِd,j1"A;κ$m0HXWĂbDVy pj:pWfp05(I44X:tkxL3^>sk)tɆ[#nAv.B~CQ` 'D=JMT ME4VŐAw[J*|[MVW_BdWD*W Z)5tW4p qfe֞m5z+ UF\ΊЀB 0C = g9Pn9r@%AbL2mtZN?NTŜ剭p|c$XȒpv[͢ H ZEe` 1/^~+Z3yIHi[lB2{H-IV3-Zg?~{ %xpث×}}_%2 ٽ6 N4_Dj(]![vn^' 5jx]jr٘ nY>?+ެ\)e;㸊l@PDW|ǪY..5U>Ь^ׇ`ʊճ[@us[`KTL.Ի1anѦ 'cT)6*h5jF/ǣ-؋^yl$YQ[%>?6Zeb3ԛ%u< p|! 6gl6Grnj1zQ%gUQ#ã,Pǰ9 >}!e[1QhT&+.^FtX)5a/nA}uQz]p@޺fIYCVY{eg$Yn0;ռJ`t6|292r ^z֙HJ3&%[4!%8H` ELF]e`"]5>_wZ2Awx:vVoV$rf<,;cXL@G_r&i[ wP%e1ȕɇDw%=b(c7#aY#聹C| JL*d%h|X6,O=7$S|ۓz-c=,&΢|d E#85zYDP! X^[A4!攘Lspcc`rCײMRqotʢvz5-$Jz; E*/M:4ei&/smbKx߬AfXWTT[paBϟ(_ 2W}2{-3Ňb='tb'Dyj.!Zހ$:|2MB^Pa&[^ҿͽ6/KV_,EMsRF) 悧ZR2T -G eW2 ȳqq^T&keIGY3A+&tXd L$^ ;/[rbAk(s#xu85 wsU*Yw8"%UH r5(*bpͣVsreO$\40?'[ȹ_X"H(q:'Y)4,`wfVME}8.7AmQNߦ(jw0c &Be ̍5 @f[T9ڜA쀷n3ƒ{lV݌űZsL#<%Ե $$f 1Ij\%6M #^ƧST-t6tA׋ޛ&L/#.s41OY/vpS؁AH.u$#9oV)A r(Yvo(2tjG@ӋOY\,jB{h)[&$(Q,!J)FB{.#P/L]fdN.S^bV{"bs.9(d^=ԇKA6 &$'hUc&DX{i#%OD8e(WQ Z沝&[Jkwn.[V͙$$FtAy3YE)hejev͊gditܦ5H'd%"ID=u΄@y24p,-WL蚸Ce[U=6KS@\p/ nX\&(Y&٬Ta ceUZ_ON=@ZJHskq] YD"(Er-Hףv0i$,"v*#ԔS\$w#jx>z9IJu-*Fk_x,!98}U"@#k[eԏs;:jAr7n!ĞU =TӬ6|$"'_>=\HCE9qfX<$4A)qFMH'[z}bϨ*<7W!"f4:p͌?sGkf`7݋aqeՎN+[sX,H2M3-]5!IiI_o%_u 8ί#(6ĽrN܂ۉZȄ^7n!FA3JɾѢ2ufRc )x"VR MFR-#SMuf**G˦ (Χ zr"MJ339& j3=[ rb bE!3MуZI! ښ4dG b6Y3r n}ȌU6ySx$4z1+-&٢+AZlYOj\X5 uZdô+T2AC>?CR%+!0.u[Q;! J!ţrwVj%yT6L|Ԩz\S43 ["B4rXҵ pEs~/sEk\M3+\(Fh4jAE9 VC)JYCRDlɱ"UQEos$reNA|uMeLQ-Qޔs50@ DC/6Ѳ^* 5s2Ԃd2Ž0c؄xؕ' $)1ZV' `0ʦǐ=lv'D=IV1_չFBP|9S d?TGķD#w+ݙĴSM=`R[ӣQ|J\,A/濫ЫVjx9TZ5YPx]x Dc ^:Uiz7χ)TRƄc*;/zK&ɗX|e|%HeSʭu!>ܟD;FdCv3̈́(u*&mckz Yz(v&2x]D1tQt qECGEAr- >%K5,G{!;v1$M1/ m+R=)S+oYj7Q% L$^*{ rK%%R:v9(;VtIF=ƅNzҋbֈJP٨.Q֜6-*J|PS(^ʀ{`n [z#hJ`fNB%@s=J -vUF غ+CHJ6 :˯2g 'Db(l)5dZ2JӁhD0$8!^%izi;AXp3َ*EV%3&f,5HId>uC~ܞU^c\H30mSz&=E`BojL.@"*6eaZ۝`bG!bx̲^`܋4`Y[M9NnI7Q6I@l?."*~~}䪐 (ɐ nӠ|LHTQ0m3TJ׆PeƬ+֬g0>5RߧMwٻkmo6v;Il}YY3HU-F"RyqJ`RL L:nFd>U)cְܔF;uY#F%(#c5+e,*̗/E59LyoIO߃aTgO SHeaC$4[hdYg jdXLՙj=(GNWx[W2S e?)۱nnYu-;)"H,C/Ll0X RvJz6 a1=@ \G{?LR%=lX6ԥfvY>=V\5xBX'Y$Z5 C@3!".v,Ur#(sCXRNUAMzc( +&LPdcvHVbj0Xλe_pm&Dw KY^:+:uլ̤.!yRD5Z12ftQ\4saˀq &D5(ָkc_DG:*%1bӣ Mb0&.]0'Ȑ,&K;V"1A/P^k}wC)9) e'%_P-dO嬑+V%FviԎvOQ  `e,,MVvgLIc%pH&m5V|P4`g]07,,22x=NnA1Y6 G`.1Ӧg*N0o(ۖQ';l Eg T[C4-*rx+XpߵQF +Yh8(ijV6ᾋxI01}NaO"H8iKb9y>lj*g*Y~d_#")Ƥh>ݨ>,EepڞYތB[5F0œڜ6>j"o:6dz" ғ$CE|{Å'!Uя!{1d:LԆs*2$.n*L$`Q#9Ô2Xa| G|5z{hg~ԈEӏ3',GG"?*@Gޙ~ԈXyVG(Gl"'B.?92!1(Be2Owc*'.1ǃ7$yݏQ>)$O#P̺Wɾy3o2—bVLBT Y7'U%Ly `_Iq2i!d¢w#GC2MF0h6R k:6(G^RDe՟p5Qb1 f*k3Okk]LQN0Qf"N(ZLR U2!z`9ᨼ!+(Z^Lx>0:&J`|HrI3dΔ>-Lq R$EUtX0 opj{Ž+qSuDސƃ3O"rRen@zkpw? (W $Yy`wE3FG҂r Q'-8s L rC/ȡ`|'uKo`s>O^>Ԟ?^I !3#yb)Q |H9Pdq.*^ Y e@ ͣXWghð, ǐ `L/yn1]o,qr[hzV1=|$Ա뀏N߶4ʜ3n FG<+!V.1 WH嬏$܂#Ѓ$S36ZT4l/KDr3]B !q,ҥ\pѮ@1U6dHIV<:Rd%BY㝵bU_^s$s~lElR V˨}x#Vl- ]yܓWa0aƏrX#}m pf銕Ku?/D ӂ>ϫsTShV$⋁3X_;bi @)F1bj>.bcze'Ǭd}:6emkξ# Yd,񃎚}ФYhNu-`tU3lBdu??w8w.i=ϓ ұs!(wuU:?%غ܏M nӹ Řs@C=ˌK 6$kᛔD ܭnsUJ8N qB8VF rlT̘  ^兮lϕfHL7p*eWʣC1KU²"QGq-( CJ7^rLٖY5btoSm0TXMTiM&{ה8 zHyU(Iv)cҧ,ҊJxR(hTʛʘ_|$c⢪ۭRct}(]!{9>9g+4G r; EgWjmOmjgl(ګdeXkyoUhP0ͽٮ]7DY}h ٛ (YIRP;WNWLK<3e DȾðޔ-gʂu!>:}>ٓ}r>{ 1g,)do eQ %]T1j؇X--kl~ТxCM7HR:k*ٙ`JUC"YDa!K:LW&O}ZFܿGW4a0^v(+mMJ xӵ? | A'cd2Mc*ـ1$Na\ŚEԧ=n7$}@'bXp`QF} fBHg4#8/ibA?ԧ!Hq0@nS>\x)c+0_n-A(lro"A۲x FB|s@m @LDjs; BH?sJL Qr Bd6>NZN|H. vѡ=i8PK wR;eµ*2%Pr ڠpnc[A5!(&ڐjwYV|Db'7cMP ΂% JjQ#M+ѯ2I1iѨz ԮKknw;;y/}G$suc_C*p3xg7_7/mww/^?l:$N+{o^~[aO1?D67UvбbT~ {f~sQGUۗ_z4W[hmp1G*>X}eDq75'zO^P<3:ߢ˿|ٻ߾7Oɤǿm 1'޾Hۗc?||j~5ֻI3t\O7{.B?l{ahabn5/iendstream endobj 360 0 obj 15722 endobj 363 0 obj <> stream x}IInWe cl[{a+ ˋr{nfvU T>`0ߟ%>߾˟W}?df||/3yX}5E[@8;FwXƸ{bQLL!-L-/S<ҊN.E\g]ıY)/-gzakbgrKJvo!gji,)13%kn5M^=t2ɇ`lȶE(cÜM mFRUqrr uBx_W9&c,k\ك{lɱvN8 Hht8#)b܎`zK HRH;-)Z@=%s֒tڢ56mr0Z%+L0HtlYѳܒ dIR-Ya-'QacY|r E-[TD)^%wE֓g 8bsKw< ]L%HR2V%ޒ"z<"֊9u$LW lI ȷ0b|I [G%)|$¸X ,Izؒb aI bIvK l9KHT`+[R`B:b%ŻxːB֧#E1[{1n8~˴9KT{ n#/ ں3Lf;m)S nFL~NlFpꬱ1և:.F)I {6^3x`] '7Ea>ͨ 6%iөZSIi*Ҙ 1u,</ gnhKV3NE!ôڞpAdkAI?g[G`z)rz{"s rzS#0Yc]kM/ Ċ " >?Vcfo&A `em8drZ\VXz`4@9=D5}٫?OZ->ɕ_O(cX;3 Di`G%uc%bM}J4Φ>kjf 8RnASs†4E1r=CNm ]0:ip/p`~^$M%s&0U#Ι]lVYmo$:+&TēTTW݋3 i GyKk&1cl 4 mAf)Q.8y 1#]% x&6M;!sҺ.*soZip Q rF>p +UChiNhV2^;!`Y/b3Eg.}oid[D~|n}mnUABx!kxtƦ13*٘2Nн k8ƤUp׈gf n7\!7gkp0aRK߮G:G r/xZ)`ΝD·'T1@hRwO.18L %pɧ`Vx)"Άy`V)lL?Cm"0W>iue1΅S:{Q  ܊ק:]/as`4D#ϥ%4!o30A%U+LwC4C-ji}YN^0%f\;h1jL|YӅVy:D)hcfmgIK-L)GPĀV6rDztB\>LY#O"My"ơ05xa x5(=I %_I{%mYt0NXť93$Ig^s^i?ox1<#¼=cx\0",9YR=xJ lq!Y!;'iWʨcĥnKJu-P"0eӥ4ä.qLթOJ3О1I 1yo. r:si?$4GR4ԂSrsDw]pvGOaWϤvlr=ySoVwZ`hOl̄6N7G &Usq\B,^!g╄SYg8bPt0rwK؇GЉr(ѧc_ȪSQ8>6LMJQ~Y3# ՒmpoJOl9xg~XްͶt $t:P7+n XGͰu5äm (섊72;켑@j&nxz#C0VZ0aӭrO F]\օ,&g2 GB8١ cǙQQ6z7f;X 0GO\՚ B`R5/ r 2OGS1.ja˅DWӅ`j>/qFg3~;LBGܓpPM-P-4cS.1ؾ LNBbԊ #7T鎺`(% ڨwjM ām{[(#E:$}LZgڌG54pW`*|wxe<*95}:-$0ξMQ6l׸1-hTׄPN[RpLҀ?0:% ~Z4h¿8xr&q$톣4T&tL#gu A5lM |-9[NY֌a).P#L4y k:,3\:{"8$2W{+&EElS +G"^;Qy.Yg;2Axj^.]/k`ZblW+VY# CΘ907«@y5kXm<ǪA|ѷF0aiJ)L͢*0nTdἍoϋmU Ǿ\&4MĈkf`]eH6ɉH~G ՅbԲdjqr2$B>|Zn{>sv~gܛY0v) ||O6:z-}0ossiqtAz5sV#Hȯ V09r:p|x;'W*jVqFѥ¯M b|Br5KS%\-,X}\;>>_*qƭ㯨?Y>;,:t'^3h1oSBbpɛwSy3l0Ϫѯ3^foF. ½Cy@M0#K ԇ†j, ૸Z%yq~FJQz AF OX (t?*޿]FMTNO0oWeFoaN-=v|ٽZ1ۇy\9[nC$! RZ .F>-¾3)tZp1W ``@)Qu݀\qKc(&0o\Tg`\3T1hv|iۖC4`z^)&%Mmd=Vq@E5x(~/;VK ,t)UV.1<pF s@s\1Oc'\''ޖS0_/\adkƏJie6[3#A ހ8{0LSj}h.f4l +C+fBtD:[1kެPAL[S-QW'.vU;hV [=hn;n0jӅtQ5d̊9(-"V#'K #;'[-b#5qQyX#3A8G%oUNNmQa(s {0 ) oKp h԰D +<8AX$;#G[./"BT& ;1L@ON- zA.v8 )Jjbh pN|0U,|q8R' Βg jkp Zi%J 0&-iV浻QiY`۽'Ӛ].n`O}1Dr~)O6"j٩4YeB{y`R~,&Y9B n85r-B$Ƌ9+ C'T0oo0BUA"GڕH }+'߫#j9pĞHvQ9ɇaI}:a:$I8pOJ]$ 'k勯oз$v,6Siz|nbqm-ô._HAߌ#:ooѫ*y:c)Knl91\ kӎWDn לʞ:|57{L;䑴¹dMcrQ4ub{7 ,ڧ"$ٜoQ@yxL.:*$!~ضrqJ 0]ݢܳ6"#Bqbةg= vZ/<9ӱ4\O1;rʉ y $J~l匿ynA4\%I(ETᐢT8HLQ0o7&O uCj,Lҁ1I+`yHy$Qʖt$ ,E2EewaAY4?. !V; 4,:͉i|D׆g,?!vw`nhGS'[KT>RZA}Vj [{V wd`A"#rg\WpZ~RW-EC *ܤCpzoLAIK .QnѺ3s~߶Nd3}Gg+_INi9Z~ђtk Tz"Ibgz΍S~n=U>Br57++JPH+U80#D9.Wm.L_56ɼd1t͚rRKS:aY k\3 yNw00gԟɫxN]*}&̩!#SLRi(Hk+/F saR#v/,CW p͚rd#6MXN\8K X/*yV&a7s |0z)|̦&Փ$ٔu̘/C[W;U{.p Z  2kT?b[> :ATo̮q:^u>bvH%puzDM\_/>q?TfNWAiZ_[ މpೣ$fꟇB~ Azχs" vafPr MF'hSpdJh#*3@ބTŃi zH 9aI4Iy" ctg>o9$.Oy@DNtoJ ?Uǜu;.0Yꕩhh?iMFm\Ѹ^wvB- *0_/tE4g?Vz]ݟY۹yn?w\j?PI5{xFj: #y+ /{X6%'ȄlGAkV6 =wE_%>\)/b cS ϼF} 32*R9K3H3 OLx#OQ<x C34֨ ̓G3f5B6{"Ec ۛ<"?^4J(a`8̅cSһ-L35 *gw( f; 2o fx+rE> HkY{qb1zYJ0'4v}rlS԰Tm2w٧!=H=ԳG6N1y(C '~LD0{w db)ߎtG۔7=);jEG"Z?v1/Ι$1&nZWHS(JoSkz䨏7vߘ=XNcf@L[C,$(:X%='^Y3R2r nY-5䒾Y!A!+w-Xu ]lF䴥/IU)WfS"6Z Q7K%9blH[AIߓLxVT}?iCi BQ*7tWPɧl ֎hs9$ם2a=~#!?ab`"8θ*u9TopIgHb4rF№}"Eya\`ZwOD/e igI'ʨ*‘K=ñ )9ړ%{TFڵ5:52V\&SqF8~Em$IRI2ʱ L)E^OąV~͓ SEQnW0(6:SOK#Oh[NxO|3PM3iz/bʆtH&i =g2ҫ)̄8E ea LRlټQB/E~].nL9W瘽4ircNEO0]}` ]wEjͺ;8 b2;8Ǚ)0(]N80EFFv.`9V\7K$1Vؔ:;)u..J̛0QU`N)xiONR.KrL Fv%kC,=89,o+ O.NdRvo AJ{|KYuLgR_4OXzV ]BϓҴ_w l9Ou%!t,".99IkUcMw)Sթܛgfr7e4f,١9|mwurZSht(P&q/tCk]Їblۍх $$0+ MH$ 9X锨QY͏4, ; sOJQ1oNP[a)*M L|YgslYNVJDɻ$fۤfL4yD|=iKdtƔǕWr!t]_Q~zyݯ/|3֨ qx٘{(:qRo$S; W'nY\#=oGI=0D4%g ӵ] NI_hI}VC-W j8vF&382 ä6xQC-Y#aTukP)&b`/Fxgr^Ϳ͙ӐA.lAIv F\%(&R##`_bVw Ep>|}c|)QUd7e""9[!(41jgʀ5o>_oDl t;s;ݛ$W=jLM吱.7SS!oCrHmB¶gDIa=t).ϔ=+ OS?a5iH$6848x]1o=Ë Csl$ CAHnOr~d |tڸYU^#|HyEVqųG)~ǰMj'2C[uO@>(;ހ>*nkږA(r->iu/I ]ҢXBjjm0eJ mןUfҢ:(2,㑟ܩr&(ވ/9B&Ŕ׫iZGt%g&xT_z0  +߂'!A3]BU2cA<`E#'R]bW1Hu Y'l'1_iGϤj2YkFoPA0؂om?I0vR UYH rǠyJt~DO-4K^}Hi:sAO8k ax4*'tn0Yu"F p `Pkm-kI\1i ocɚnM5&jD]>ȱC#ֲ>X^*us4:L7J;ùn`F~d\OѿEp0ݿ#-v("j2|Aĺ+MDVXNl#^Mc%.}roAaP!ƣSYTf/ѫ/t3?N fL0ܘf6u@iyF%wd<#\9\3B,OBVߩ+H6یTbzNDtvk;SCBfRTW:Y*B`M0dWI$c%N.FޔU lL|::zc:UQ/u4rD"%1~@Ǘc_ռ,I;ٚ҅u42HZږ2oL9wqZ^yZ7nVsSh~Mu 4 Gce۲h&fGڒG$C*cMЂH()?84c}\UhXY8Dyڗ\C:"YPPBca9ޖ+$y H.AetM!e4RNtM$.Vh,K`c-_.z/EcW}+K@H`~&4V*І=*`*R85"~N)}f#S"eLk!{.Q lT*?z0iW5)a$N4"jG< n ˬ8WV^.̄;*7س]YEQ3O% 7l߾ 8&`b0o_ rla^RQ˹]OΣ?켁`YN c T?Hm+x~6@_5 3$g{r'XܘiU8`2tXlS7^3,5*AB1QQeuESGMlrVb ED(G"$6Q9pP0+v;c偋 ݍE=ܐ#_L%&vM.;&km`_ nE6<4* pbHq݉LJhj,sNBɥjQW햫(vcx{dFz<~mTHˎIp{oGws&S*<6G<ϊgxv*Ӓawx0JS1sx]e{ ƅ Z~.xCޅG%Eib_,~`_K+6W@o&4ꤏ™)S9̈́'uDAb^yb'Non _g^0~"##E)YNB) ZP髄|k*U% "-d̬0)BE0{;;g1MpU)*G v͡+} o((j^\%蝮O=Ӕ"&U]h ]C`{pWK|OA p}]:qE8L˝c2R5ʼ5`ҊӸ n*74cWU\11T.O|Hb핋/FR.RG+4.rp.C^/axzOO(t$ç' |JSÞIn c70tHSɼSSx dÉAeDRx*IY0 }D&Y ANsH E%!$QGJybša6KȍԘUzx\/Xǯijj{,cw߾wo,>MWo%| o3:_7~èG?wlw?c?qX߿W3QROendstream endobj 364 0 obj 15801 endobj 367 0 obj <> stream x}Kn;n]WkS;$2020ʾv:ݱqEInփH~ ?}[|_6_V~~bzgO?6Wݏ?놊rB?}Wj5ÌLU+W}𢡊ğW~W#%5_o?U߼!*ki׏8ZĞӫ;V'c{͏b{jjR|VSBW-oy-1^sM#FeC~Zz)k,-\^-ߨyeuW*F=EjxLI+ՏJsRcarxx}˗Rw3W=/j~iR>k-^kB>-U✯>yՕv_uq.~NۼLVc{FS7?Ֆzf3ǍYlh1cj^ Wc_^ŕV4gôWV:>.x-XcG7x&sV!>$rN&\Œ (PK)Ej/Ur(gQ٣b?aZ%l_`}_b}_ZlV3?|\mEyb5W `\'qcYv}lN- f `kqZUM |$Y LIupk ߤ"&^f1h7f¡mVɈg1ْ`~, kSwu23l˒=px11|T=WUxQe)|!]RMP{aҵ"Hhc>:UlGpwYʹ]ܭK&\y2Ry Ĭ07&f+o{9ʻ\VEVQ_Py.,%O̬=l$Cy˩% -(nrtRܔZ,"^1 lmpGwlAOm|xb#]`~v<6O(o[k7C^368[w NGw)1iCrmQ|A1}q~N?v,- F(vP6_s~^eӄ5`~\>+@Ln}|y|~K~# i *Z*,Q drN!^ZϦ$u]jVIg1y;ST1l2MHY̸(7bG[gsp`a>"K֘2i0Ǘ9-*1׈“o4653RM,@T̻bs`Feژ5*. ^۳P{: Qw?+h=owCId5X +f iL;d-/ wVhfBDe _ v'Kf}oT hY'؞+0.T򋁭XԲVq: 1k+0gi"h3k.&̿y?QHa`oSl7 [l)%6Z+ϒկD1]y32tk˴6*YjAςJ0ڌg. x^bYTljMy:aK :o"A 1hjFbv,n{MOX,a6a~[PNlYaGVLۘ[V`IV0FٲbFwcQjG6ũ^R"d(*9sfuܲb.#+f53'$,C.,S.GX\Mx\bfa\ZlIKH /ªH kT6 -,&[e#,l<&iȊ/OdŴ{e0[VLp:boY1#ΖӬzwі3YaFN(Ɋc d.AY8MN$Nyt [sYB#+l)[TtDlp>ki.Llo0gfe"nzxE;\2dg)J;@~_uǗz cNq/ s;Hb7Èvy.zks`)j֦IȭU&3$ձT  9uK Uj8@&aMth 41ff4%|`bqS`=>@(ѬSknm0u{-R%eac#ch܂g0?6Bk1Yu6E3/F6uΥsLa|3*1UHD~`b/q/ Ua61ר5*rcF0zUHJ3'v ˶Ivcrwa:7aTѠ1R{>krrI:6/`wRs8ŭW fnVˀC ܈%Q*q:a|\FXН=] A$n.F `MJ;ܰUIo:?"ǣS-m_@8 B*I2m 5se-Kڨ6-W4nBQ ^Fn?LLysa-j7 *h8_m&)-N_jSy (B/v҂q;E2JGWthAyào_8A KtO#U.o! *V,7+b#l,5k\0UiK D^538OAV;p0_c^Ĭ&0[<'\,x)'99% NH!*Ͱ2Vhg#0}Vp.f+ȸjߛ迸*v|7^_dsg-7.IpZ-k 3{x$ &CLi`h)NӜA8y@ $]Ɋ)>\@/e@% ;yvQL`;D+ T11Qq&+gaVOcæfqjs3r $\uw^];ijNj@BdTݦ0wj5$+$< "2)*LU`Ey_Xˤ"52 k|>$5:2nXi'f{5,t r 6]5Ѵ&7K3i%9IVA̓O,6t؆:HZ5^ - 嘄xE ; =1«Ge>/s*{'NﺗAzXډy0#0~1_0>ȾbpQlb lgfC ga{tD_{Vh6 zw.k In4dhk@֤iJQF)l%)h){H,SUIUrVhc$;qb E2uO`(ԑunیS /-R}3jErʨZ?yԨ1?NX2mLyr00s%`,>]Y)0*ItG-AF鉫'n$16yqo͛ W iA':$LYeWjfC5<̞nHhIpS@~磆kT,Q cabAXx %mjrK$% 7Ud-JcihKtȯpE^% Eɲ.qHi0h v\!F&lc-lʶoA}7Z4uj å 摰Y 4X7ڵ*Hpa@F U/RIM]. ^aٚh3c56 O۝QLY 1)~A{!2l65fRiBar;C!^%4r߸:f{(.\]v]pw.(*hlLs W@CgŃW)f+ڿ_,~3m`$YڸqMhqvGsUB+/oC1azq i7pӐ y -s0 hsab )aǣaû x/sXKeկ?.~W 45&0⪊Q}i~#o~2i鸳k O;_K̭fA/Ҳ b".]`0$3ŗtM+NI+pW}|ܟ35QsE +S!#X,n~é¿0]Cyn}qqJtK6pk^>|HϫZH Ru)J {߫V3\aߔ,nbY0ƀ`y"Kkn}K$F(>mlz5x/b|VJ96ݷ+TRRKvj|GB8cZ=錺9JlI/N;=ep"pJlϭ vl`׉ 4O6JI S5'>eAؾsJX ijn1 {ǧE';"qK{ ,x|] vv2*̍]x ُ8*;fM~!J:|'i&_ , [.L9vK)IU": ZĐxt^xuGgcoת^O5!a:]|= 0TZӴ)Z[#_%n`*;~Emr nWpLvHj\2h \.L2ނ;O7du"| },ʃ&q[{BkXJ-tyXU jTϾzu.ZW\+`FWoMp؉HRc.8a4YDO mhTvٖZ-/!KHHX -$S /)y-h wN7|1!%6W.&T\L8<wPnAAs ņ_4_Fo a9&&FHL -‘F>o)a꒔xFUp /)KHJ$%6$%c0]0QB–Qh0B~9<Lgexcܸ Y=no3X_[qPc+~8Խ1o{A\khW^괯)]{'0L t9&~R;V~Hݶ#Nk!;~վ:בxعr{57fv/BV=0|Suz{V^c|Qᆓ۶IZkHIF |&wO^x 8߁v`7B<[~;[?\/dW+DoqX\,w]1z^^G!ܥhd$Dr:.?'? >>S]w >xc߻U^9gY븫T.M9cv[W';&^m[{rJ0|CS Cy-LU d'Q %B`Z9, nZ!:bu\ V ]2 : q{٢1t޶ x[yUaj[5 8x/Y'nLscq5m!mxk{>Lq~O}|Ng'1=2^5#q]҄Z̈"ys*/,ʟmE҆T"L^3'`18!Feu ۖOXjc4R7K NwGS ')o`#0{Z~.L:TSu-z#xȱ^)$,Ny6TS.ebvì]B&!Vb*Iib I1Ъ]%v I1a#ŬIcwpp/m)VXCR-[nbFtXRْb1~H1E.)fy%Rl3NX>!`6[bbU( }KX \mcmJIMyb¼ز9Sy1b`1·cvb=b .2B䁛Kb@%ŘYbrHO '@ϕsE.,-8 Aܰd܍22FbVqUMRzdNw`@]""!`L8lƏl4kCYP|X;lbƍ>q甬`Vo";I|9(#Y !W P :W8'ºSbrӖ6 \Yb`,,ΛV$pFxJe ֬AP#y21тf, 0.S3tJH\0au GD[1ӡ]߸ 3DeV$ F:1-r(E;1% A)2ʣD)*q]&# mPKdΆw0ɱ5_XmYQ =ۅ s.Z} xYpܹCL ˦*WPml;cNÖT2#R 6B{giI} ̿*|4چXcȠK&<+ {kjMr t 24.4&9+ܫ@d2)ɖ=vQX 1ӲɌ+0 _lT(iD3ո PBQ%g]bj2?@ƪ+&EYJQ`J 68"q5դFԘ}'yf-񖠟%X(aD9-XXS69F2 .tOш5玅֟t|"!,X#,8kaa< ,f˵VKRv>STkM۵N=ܵ6;s Whr-,QM‚DZ\ZXT>Ġ:&MGB1GV] g] 4Qvt-\%4ln\ g;F x ^Lnێk\َka{ZZ@6p\ vkksTnׂcܵCq-p-9ܵ^۵@>7a8׍2kK@v] p\ N ʚB GuJq5'Vb]F;dK}Y*[9@d%R杰^wڗ!Fw_f+a#)RBJX8&_-ֹ&u7fx&mbex`[PtHH3~fp64KlV9&6k֯%1|Й۞9a: |&ODܴ"ظ仴)'h8|y[đ<86R7,m 6|/N $ HE"}`ƐnWQz s*pq YbOF^%f.J\ Ԃs;hךFz|".M[ b xDʒ K@Y$f 9buKhHā6&snuXaswɢ89E7Jr{\^" =QA>i)ſi.v0p4ptF8f_a^yX:!mNU%Lkwhu70:^Z͞ihYwH67c Lm3Z]܁=FT´`x.A;&Ծ#'Eava G%!NrB8ċ' kz@/RB-p9"`: Vn 3x{j$z%ٺ`cu^ng׾95G&ћAqDDlx ."p|$$q.!У# Lݖ~Fo` lu/a 1^|K'/_>#!&vGBLO|%.`a-{`.!p6|mGF !dBR{27ܹ09\J-/)1gI]J؟RBl?n5R^;utĞ\WԹ`EW<]͘DIa縻 |MS؝Q5-23kFtatb'0 S .^p*-GOF3_z"ZX2D35JfK6WTo 3ʛ%Ip7DL`˟v>)0UkMw{&j1m#Np{ްHT]GY}UVJFx3. prx; m)0e0[+ZaXaP`\2kLԺ&|&~F fJ SeEHqc ]b 3x GkիF8|t ܈e#a $"&:.jlZ-6J">B/|'6udjc&= z>rdxxwďj_ky1T}5qc\h\FIGܲIU> .b25rD5oLܨoK<$OFnf)71b ^׉HnZ 9D:I6'N\`a%( lvBU j`Tj뒏5[96~$,2N2[vY7g.?#j1XavMX+zbvgF"V:o٣VN B2-ް&ݜ~+L8Hu+ rƢJ0WT|rd|IµgT7(Gvpo}di([Dc9 뼝LRw60)pd).6;6I҅&A=ﵡŇj Lgޝ҄n7>)dv ;x`X\5F>Ld,ȅbr3٥afDٰN%/ *oZԊh2$k`|كDJa838aD\F 6ճ7>N?`[;$s:s ̗1?t受1_:$}4 .;[;M19"A9e09e09Xz+Xru:-rir:$!\ZGuv i |s1U3{&KF%ѣ`<ۙ]Am]\״{bjy3B0ɰ]o<}ڤڨkG.ʛxNf u>N*"ۼ779s?T_mK|3=NAJMӘo&Q ?0#NI!9_rք塺 ԿN.JvAyÃNMr#>Nힰ35"=AɁhr؛G>;)2ɸר\TpL##,"YH\e-k, MI^"mWm|{l:c3=媳"r!7z[GUg'岔X'Nt0WgoBWg^`Wg>(]< H1ÁM]ux҈:+ΞWh aNЫCF$sJҠz@ԗ';LҨ@c"{O^l-*S/bdL:.<|~Z̩-xR.aWJe)xET S{O;@N 0hڐpѮ3+mNNg4M[u&{SSǓUQ4pݛݍS Kt<5lS^c|3 )wOo@͕OvY[8&aZ^ L ̭]Lm1~c< FEpYhov3$>Y/0Jpfp)0TTT, |U6 8A`tI.DT mمxyv!.;؅e' $ɔÎ$s6> G$-̈@QuȃpߠB`񚵌IohN:Lfԅf2bzq^fK8t|Oޢhݐe9 1q`f^Ӛ3iaڱƼ]2F'T'Vp!:)L„ɋm>0&0}brc5K(xN 3vbpsTN24S+-XߑJ̺,Py2i=asxt"r0!wNE9<2AK̶%ZƳDg:H.=csv{F^0MtنvO 3emn\_g[H n C0E?nroۍ5 dN_©+* viZY7[QIۓqzŤ2q^2/Q$^<*f*\dUyG ax+] K|> H~ȀSy~N p5Τs׎z'z`v߅Q^a}ekg^?ic*22oWG&9NJF b/.6fpƼibbl% .Rz5\_.ćC'&ND` lsasIG" )סNua2#ں'(0Z4!hM7h9|ӗ#\ww"^kJH9%>:E¨{,Jc~ Wx8!a]"сiss}9Y -K= .VەRلvγR5\euXnDž=$?Jڱ_  .4bӸ1R^ZE޶0{yǖZtW w/RquYH'b?6TS[Fp'`2 0u6y~{ܢH*T (ˈxn"R8# [Y")JUVF :llqa6ĔSbYr K2\aGW!aBG՘i>XkvUh"&۔S8M/ kn(q-dhΠvq}xN2eDtWr\r1@ճKh"h$oe"ȘLHZ;"a >؈vbK5|—F3z67zQ֓ 9)3Zg=YX )Q7컢~蓫*==Ec8E  )J=bjܛ%}u0^s  = @ MۅLkf~mmE2˶ƌWuaj&',Q4hH!Xv79DpOYvuL-Ȼg\MrrqhX|a̸<%`PJCv247e%Ln z34I]Leŧ<- f/L} BNwD%cRTad[T˄3]_+'B˾=O¸:ĺƴ & t뙝g' wMSh#b_V,ks23'im;2̗+:\b@58s)lR)7͸YNuo;g?V雾IvT ~cbAXꉰrXeY;V A%>i ضm$-m_ R- CjzUCvwj "@\ٸ!A\gau:W3/X:R|0.p 70qZ%OsideRJxSFɄjZN.ȣ^s9]mY΃(bbcY38(dk?C/䃟eI  ^^8|!*޲xDŽ>LĘ$l$6pzXi m OF>̒I}oih.̤ iL$r{^]i~45mJ#|>j Pfs> 8g 6>jG)oL|pLYGd+'nO1'kj cޭO:}0˼{eϯ{aJq3l$s5 xC Y ?C9igSidžčS/hͷϜ~A3t6Sm7X|u0^=J@1OYOS`:]_m̮Y9L>pdTya2\xsҷ5Vچe?J0 "wpum#]ΥPe3'fdYO@yI+l_ZZ\)zsEHU6 }#R$f)r8ʼʼɉ%B)흸1a`H-G \+;hS &vϡkM/!xF";<k1nz°3h1v֋S \hhCO-aIJ0y5jdhqr-̌hah鉑hlGZ[ؓu;*./ Tr|3Z̦/oln(3W&aZlİ"Ihdɝ0C,JZY7 ݲ롽gPq"-]\u)`3Cb1d+NĻ6CnN2/"|WH!Fr1pFfiKd3G oY L@c`83HSԉѹ3YdR2Aߑ{sa7G @ɶ >3JViX076ffݾ_7`8?=krOee1FirjL$ըvX";Tx pb G8T8g Y`Z^`0d↓.lLI!tYxb+B%EV| =S\Й?4gv6P{fPRcݬ=[U 2^br_ݰw7aTal_: "b1e!TatؗڸKTǠpFxB }(,v`({$iQ8Y=*d\> hΦ`pCچi0ل0`wtHuq,>SuާWsl}FT f05\*ő"9zklg.D@F&31_61fv#ź&m9C#H %g͔0avg;XJ0p0b/h6_ХI|z hnMPXvibl?*g1^8?ذ,ܡmЈ[h ذAq;?I%Zx0M5eIny] X-L{AMq]},L'M@Ŋ'FqS9 ~gM=4`qi/' kEΫ@$eky -W/,ڑKRWY pr fp0Fup6Dpr/>L#fMRVuZ+gŻ0U'ŦCPE?وC܈ѬeZ&32)&Jwv0&LILɬcc6BMb!)z"M &W4=&_HoQrSXV?r 5uCn{?pv1L=CHY+Gm{zRdlďJ|˔}pg97v"čD5+XdʵKWh[] iuF|d}3u2Ӓ `Ph'K23\P[MnȝLb#\k{*䝡i  fd]*C@,o)] 3ȊScϡ>EML 4aL&0C,(6sDiN>e;%s>nwq/{p#FMk77. yp'=)`V]תY7'i^%<]j)bNjW.bq"UfO7Wܶ[KHIe[ERuru9)kkܸaq0]E@򔵧kL%t |a.73]O%Yi2]LRM9Bw;JwG] 2rʐA?xuҦ|TdBW.od:S*?MA^ZN oՋ;S,`T[vmd #{CQ{5GԉAM{YHʈGn#xN03P+[C0ځsX;eem2Icb*z[Yܚ8,;s>O (N³i<' . bBz^?@Y~.LMa>nG3buS7# '&#>#40j]|j 4}x"2խVaYXdJ0^,Q$=dW)0w*l C@Wu\ӭ ZVB Jb\I|Ds>{&evŸp䵐1eSdݮ0 IuLxSG:q/LFW(N6> K`Β2`qaZ] . l$A55j؍n/K!uG/>9r-\Eye EH>mxIW ƪb.] *D3e "JAd0*ĵa| F^"_Mm&ɚ]}i^3YQ `msژq nnZ̪e t17 W_1+jf ә2_}DH:< s|0bw`$83 y϶st _ ŨGDӡ5gCѺܢcnp~|%`yAb¨A F jI |%7hPnprLvf"U%{D9<=F|A7C|Ŝoh($yǡ6Fz*%2͞j`06<7K3*D!=$v0Źxex'FV͈{E-@*QM&{-r4:DɁf"bȮHHďIxw6lX0@ÇEoɖ% RD}ҏNi,掽ār]B|i-ڵ;+lI3Q yàN%5Db7UcƵZyE |,EޘO,|TRX5c w.uÉ2BZX JLůh{Un9k5{ % J"s;b+-`î+3Je,6=$ !cf*ն1559D7:v/ǎ7؆ `Q k `*Q|CNL孶R@^Έ >aLT{s7Dp V>a'Ayޟ=QCO b~jѿA?ӴX++h2M!xÅ /S@815x;sR@ ZiI!odږ{v?O"mw+/Z`}4 03*W{wJ(|5|;E*=PPl6;~$J<<$&oUa\~)?k-)]|c`Eԏ]lu9n\OYl)G)816U_m'~m^\ ߋ QHZFq+oQlnFneh+e'>bb1 ^61ϙT1lڟ,{Ä^rGsFoudl#]Dps-DK#" ,:8٣DF>i"*;At 6}v?#õd \mr+ ۬c.鎪։$*BcBܮ8B|;D51#Y1s%7JÝvy[LBΘ.ڍ5QZ)tr!c .upKFAЩ6_~EK:lʩe)y5 C.+yTAd?~03^7=ƕbҊ4n|Ld!:5]'VO &ɐ*0Z"`t8> -}O"1Y;d3OOc9d?zdY:u31FhZl6IkuedcxN[kAlVY3]nVK8:lu&o\m旽gF VlPF ֿv:Zԙw2 (/G 2C5uE(nAzF |˧*8˪z`DS[b ̀@=LrޡA#s~i-[ponя &Δ2bЗ#& - 17012@=08mWa&ޭ_ȍ?ᙂJdCUTyyx@;?|7vD̔+<7n'1C\9<}'{X>2α}:2ڹKD端DUq̩ǿ~_&#Ycs }?9 C9,Y|7KPnPL@3..cvc5{X@+Nn$!0𵟮ԿOLBq~\yqW2(a /xycH8YiAUatGg^3}:+`[(.9_,7:r{ s'|d yOo\t~͓i$ݫ{ Ps ݘכF4JucW&TNcr,L";><xoa*j_'PkUچf-/`w/O[躤vNՅ!c]89ک [4Q#( eL2CAf9ح73-ЧG#jv@-\Q]}8|S/w?[G[_}g_*Y ?tfM3 osM*N?pV2S|ܘُ@. /:&[ 5,*\3h,O}g 5+0OxV0F &&|lꢆL'K1bf<П<0'J 'VEK~e@ 2Vx&+c ۫YWd_;{S"Fe e˙N_1"`Qkm`\ՠíl#\=#\} f5kOW 2ke1L̂BٹpMQqX`=LWػAM*`ӥ+~礕zȈG 028цOg 2M{k1Q{t>Է {]`209`?/a)N;iq8ӤdEa~ 3ͧc5[LfA~mLչ>"eH6lS]st/\Ǝa[(##on;D-ۼK~58J]{ C)bE$ˊ C.[Nө)0$kJ"8þ^ *c!eOs!sqW27_kj (lYeӶZ<ʉõdH\3e_1=Ӯq 2}NS㬔pnV:viLf0F m7R .:ZKjy&k#yy?9/fMN>0Y&}*{ Pu3@-bX@=K3XABt" v5.mkKüpmm^PbN+1"qg/X;z<|_;q3}f`LBt Ґfd+=LU?9*f] 9nxc9d 8o:cɣb"N~ @{ʤVo-_.Oz>31n47(* 8(С7:sچAB I4p[/ӷ BvT(iV?bGB۹`rGg=5sˌݹpʫxpNB&/ӽD|M2%dY 4`A&:\ *.R_c΅:pbzi1k04ciOSpߪ4uthOSGq-M}ԁkKcEL׼4oR-5%-8h~L$Bo t".d n+>7cϛݰ>oq2nAy;a4[rsycmm̘xY-]d<.VҾˆ/|yފbd[rrGdnQ9g@G>V$d2sȓмyJSQ4<'gnei7;C>M%]%qlSmnLQ6mnt4ooC97ix# ~)ZǗ撃!FrP- G `kH &mH9~AVlu0Gr>/9Zp[Lr-8 <:䦙趭δ!fg9fZVdu4 4,gk0ޙ2-4A3Me2 iF4Q`} m!/rA'[m YheX>2lZhvJg)w}KLN 4:~b@ 9AĐ<|g 4ɪ= 4KkN 4KeJ))4:vHَu拷ufSYʱΌP)m YwxooUCcu%D<0yf)Bͳ #Lm!)d:e'A}f9pB )Y]bb3+=3˵{k $Fҵc ~B'f%]ww6Kr@S9XerL se@ěe)g< =lu,KO_5Z1E1KE(a\5<"DuX.9,@i6.Nݻ ŵ\Fn,c;kvG[sF=hc;.o˰O57,{ƀSmTv*XyI~W|O( 啢υ4Y\:]\kSs 5wjn.v78w)v<4Ms;k,{IaW0LO6U-Osv%mm/0P/4W 3,A^kE*@t=_0\BAcQXȻɸ"S s@ʈWq@o AshؙeT;4UvMUU#"0Qnyճ}}2K* ҴCw3A* WVgiyVLvh [Vt(jc ύU23`VGb(͇(n]Gރ oPxd9/X!0Gmb& ]=BD4PRCv#"0  nky~(`pnR]h@R&6:Z]٣)ص a[djLDR=M ~0t>k.fu~*<ݘu3 ۰+UC@,Qݬ?9 #ΑG%ou~Eqs]]u m$ktY.)xBXT3ҳF:D$Xrtr{$Y̰DP.e⺒{,lǤH ܧa޲(6ɓ#2nYrNgvŔ/^3.:" mtMة@{WYlG}*9#z&WM2fXse- k b벏4iF:@<֞L9y< 9$ʲV:U6 U#6KUpь3U}gp$Mj6^R16n4i"հ&m{,:{]y#ϟjD=k\C+m=:{q-?~:1q?Χ7 ~}(i8g$3Ϗ>˫o'h)THu%BkSC&k|_ס~eFKѥzϗW=F@b%}WHy,endstream endobj 368 0 obj 26955 endobj 371 0 obj <> stream xܽK=r(Z珞Jċg,,H>5aۇ /k }|x-VŪ|{ۃq_oocHg7e,]15tl}>' ==a@dyOF*? ?߽Tz}џ<;5s1?_o7?z ??տUۿuB r|yɋIuE̎rxKMb1'ob"W0h掌I+pU%qH$ȗ6/ DŽddi ԞF+Z4fJ#/2Xa$k`n  zT-)5Mv}0f,E殿OʌF6Ȭ(24iTVy~?{=ev;+F_}|hch^BI(,r?0#5 SQJO+A''ZyN83'+X;i<5pYsSz iyJR]](m?sduqdjB'wf K+6 cm`af#$TOVuNxA'˥abڐO~F->I9Fwk<'Eu)LT`0N-T+m1EԊ[ ))˵ 8)Mͳ 6LYr`L3TF6箺S}Tgu8KM>FM+Sl5y5m2fg _pE0u ̖ h>EuQ[ #i #Nmm'ɝ{+&aԵ .b34e}0fE{cyND61 W1ǫD +s7~H=B% > nC*ATd  e:FV͙iv$)Cܝ-$M\GHuJnjsiTF;:5 j”6Wb‘{|x(W3<,$8UG15VP| n"&ճȐ\S ߂#?͊(Hʲ1H)8?}ӥh eeʸjl9*-t4&sU3d`ژG6y|4-B+`uCils}U}2a^fn989mMyؿC\4XK{]zPCd;h0Ċr,Y@K "!B,TK_(%??л%wW ck<ﲓ~`ʶʓ9+ _7AK#dX$Ye5E$ņ^[b{d[l)@ &aɂUK2NLRfncY6Ma7P;"Uq)jj٭lXif/e)]bʹVIhpfwCyQ&o2%0f^Eg:&U L fW+'kMemȊi %[5򑤜ճi{Kkl gia?I7-zFҒ@6dqNdpa8FẆ074E.DDY%tJ(bޭQ(^gπuR'}c"gJ)j7kAx֢MӵM!$P!@qXfy N͌ry.l%IM|6y}lqNc6V)mzшic *e[| 6=_Ql.z_v-$OYRrT(&+#FQh˪zky һ*>֔%UR(|2ե@Ԫ"P/-F2Ճﯘu8_}$PJV0g{ fXmLP#6.=L$ݹ.|F;'eBZRtR:vߊ6W³ b%,j(,bPMlrBJt{iN4 *tibU_.ZMkUVMk i6ZN(,8_},ZXi&]Ķw fS+&*o`EEs{hK97EUh馹**m}/\fWˣCܶ{$YeYWM0U'l2Gȧ]%`{HW4c8mk_=`d>>-Xw}>մ֥b< YEAC͋eV`Y9:%ܘ os_Z־F_Wb}5I^ƾMuܜfs*1lEWal5UzX@Z6V߶ƷmcVe.+}5u:h`̱~x/vkև>qi`ڧSe|[cSIybM;-N7ߥ _oni>mtrnNQ-;_ c+ңuN ggTwu~A've/Orax^1x-.k*z2&MSѐu/W jԷt<\S"_ZR6ڂ7uQ$fBS IsM+Q+nqɲEC3kpAmȗn̾Cnн㷘 s0V3/Gm; e2\˿(?ȝ0Gb!]bH WY}`'0p>iUd.8]<׀B8F)d0дW&G&_LÏ1ЏuΙ[|z} }5ddpO/0_JT_hdGH> Q<pz%X\'5N>[[耯oTj[0z!6h@^nXS/=/JW-p@jYcVu?Axa";ۀ:׬=(TOtLc3,&'bx0x $8Ǿ z1<&>U]@/rrhGVgDZ2 ,wm~e1lXL}$cn"у_$;N6mm&FLϧDtB5)ufULuAbP}=aٯ_1-晓53zqͮ=}qux;\\1nqMX^fT٫o57k'( z*Vo1>ΜƧbW1X+j6.3T5W)' U-n& 7h3GBFh N4ib~S .xe:a?[{MfGSyR8c #QDxij,&fySM~ D%&ƞDvSO'c=Mf]bX$a=\hbt(pmdфE[ML;*eɢ -bEKڲ+_"9ʖElET]c%((LEќnc0؞-&y #)%фeߒhbЋ$gbyܢ`$sdф%&)b&b*籵4-d] l؞"aS%z.OMVWIp5*beR<ĪJF(QE:*yn5Fն_0u&W]$c(CP/&Ro8`E:::6]lOHFQ3,[ذGUzk)8O i[Ă3>V(Jܛ"kܩYUM>-()e\'/절*i^(< TD|w%.JgQ-6X훷MT\3EyW_ @@0yRtm/_0v|QO*%}ңל7+qZf񘈓V ZI?p WT0'0dYBNhm?UWRא,C|QcCqy.&)Eqy]lOI.=\zdFd&mj$nc^V59ITKoU!;č&;^ r]4< Ww";t6%?[twEw7& #֧Ш>q}* ;/Dc1O L9*zS'?H"р0B]#0<=d+OF^aZs/x?,Ǎ8.MBը z1<JyZpg' 1U2D_e9#SNQ,W\ֱ).l< :?1aN+iOIaoJۄ.Sgv5H=Ъ|/LԅR5Mcia4zɖ5i}(iY~l2#Pd0h<.| cr}#60I:fr>GǗ1}&ߟ?^h͜:Ì?50?ܗN0 ƖGԀ?xGRtzDŽn8+/UQ"^Hq:ؘHbb>51t>؆2.0Xc7a:Mʊ`}'[8I?y^?A100Ri+2 \Ij>@w{' Mp^;!M˜/{7ZmLdDό︺NJjȾte,SV^] +St3]EVW#rQ{8Iq&1OF#]UjWSC/L z,4@m=*aR с5BF!̹zȟX$\b^zX~:8!ú2oM R:Lfװ/^KDBъ:*M4ud/X01AD*.*kW'554htw*ޥ̠QqI4P܉.RԵs ; Rrmޫ&uor:@zCxy1>jގz>4nGOsr)x]*~v,.P4 nl.;fU4tqG]\* MO..tzJ(UM7o.Уlq.\/`.I]Q 7p^s.W_\ܸ@症 tx@c>T=2@eປ L"7XD+Y ڂn.1n2\ů\MN <\Spx tE\`Û ,`q 4Mި]\ʕj{q"2o.yqׅXFXzth Yá1Vur-[S_1L'Y`LUzRDDnG:yB(u. !1a< O V/vA_d遜 "D,T2m7=Pyc 03DY?NV sN9!M0$($ϋ622~n!W43-$̴.ݗ{j^KЖκ.}JD,( ,osjJ~14@5W 5Q )`Ԁ>Kq)l3d]%¹e@-us}7R?CT0|8@%},@js8D5GDɁ\4n\PNU.İ>uN4InEZ ^ %?3crkJY޺VXKQC/Zx$HPE> NS0 p\{ @Mmkyn*|1qLc{Stp7V%lp(8@eCku醇UY7aPUs"6";DݠNF2ISjT 8-% 0L6z 'a8&àY"+O)d/НpncL抍ݥa }m.U|S5*K@XfWUNbsq鬅R'x(jPRMf81*"~tLp%=ƻXl>-(S-/ t"rC,XAĄ#W}^$H%]N 1R&k}7j'dN-{"ؘajw 3%i솭Մ d0.'!>MOoV$ +@0'zӅNɃk*6CD;6GFM22aa_5KPr͈eK} 1qglr[Ex%G/zKPbAk[ӭ7% QWo-/KF%AQ%)x2bni}mJqU0%*eABy=΃im1U7OJ}* 慄+{poG'qNyLx/ Ƴ<ݱ@P"FyDe2llh`(C纃wt}z|ܘȨށNW RxA?ig%'a*+~օ(>c2Wvd&\l@  { l@h|J.{:'.50włzYb«*U.q,n z8 #6yF~^RDkT&G/y"=9nu$'^0,CKH7*rЋMl,TUջ(jc⒏<[!2qc 0zkhSO^.,m*"/]дF!Rns%##ˌX]T\903_#ȒM*یGewԦGK|LO0plo>h]jޘZynjژydߛ7A˒fPZmq"Nʶqyov>ޞ|HB\_mbo>C2 ʘ뻍S7%8yi7grK`σfoKQ=GhJ6ѷGq8@uW,U|@qX:scr5nPsOH2TxDQ'bsLU:e1VHJr0tP\BO@8/=s^]ԒL؊2sLg.FAPAC!6EeNwuttNvrrf`(' VH7dT 6BoJr&"|YdGP "Bvd{f6Ts6L[E%eS Ld*ʥvQI.t#*ɕ~7y:Tr0JP$sl*%Y/*AG9TsW?M%Q LT&HvJ#Ac*~EJcn^`VBی8ySorK øʕa+.:Yjŧs%٤CEopg61Fϗw|ܘ`ET*/IPHW`~E$?bPiDiKUBMIEb%qj3Ђ̕D6O0}9}C|Tg'f>ǝ Wi*>&&E*iiC}˶tϠQӋm^X*y}Sྒ5U.LdЄi]H%i 8,  g4d ¹63.oL^7 М資uy^˼#ݘkqL[5W`1{+Ԝo0g|QI1G)LfUuR$zw 3 8ds b V%ؤI;CЃCʱ0tYɲ%tA L[Vl6 ^Fk l̡&];̦ʚ_ |^uu/$bIG'$9L[^.+/ Mw0V1|a9!zծ 2HzW%fKl[v‡}آӾgaG}Xs0cն0ݘ{+8-fŜBx 'av*8=f,t#Ui!ƺ׵Qbģ9+sMP|zPcAɭpxяii)^G?&z6VV E9&D$g,BCPn#bD s&E)I=, ;4߅ُuó߄/}c' 5UP5N] ՝@ :$kuLue :*S_4_&_ŠڔY+K,tP$Miih.T&ր+S6MX|0mJ~swtN!8͹(p"T¿" wZxǬ=~I2\b rE߻nKr&KcP?RgJu4Q;.Dr6 H)EzSd'}m*Km,ւspE4ѓ@}'N}. /IH &sle7]6)/Ҽ?omnEi̲Ơlqbv}ɘ1o1#-o`31)^>.gCY%.Z"}틽HYl_Ru2!E,H.Y̑"]\/Y. /Y KW|Q%#SnQk0[{YW- `IXW-QfJ_S\vSnV8u\_h}{zZŷsc6ȞJҴZ&uŹZ"S-ujɇwj:#֑5"}cdоψC7bݶ\+"ٶr aF=bȢ~ݷ\p^*7QFhrM1T.{ 2,a z}wvZl>lץksףLcBêݪʓ|sGYX3g/W-On7+UNB̒s=Zx[`Rl|jcz+)v$H`cLO|OAjw ef-@x爬<*u)J< 鏫"À"_҇z`8kbjg*ڇkeJnT,O=5O$9'/`AlIo`]^Tvp7_`o4>;k*mj\`\! 7,\vu*ʤn;k^Dr;iT!oX>; `(&/Ϊ`mk#tyu7B+qDXn umj^vB ;+fsx":&mve3[\S}-O-eo4[r,6BRNFza{qyč*Xa5q6ҋFh1 @x쩣fmC6B_{#b0{[n$ٗE`d jw2g2́ymG\#Mv akԷ12ʳ6(^ `)F5m0GN|[&H}d\?c kE kD)Cai C->Ӱ0G[zFִt(|Q [XEC*szX`Y?Ӄhdȗ򢑍Y42|.^46 1@7 (Dk@UȆlI5\&fSȰUh([$D+ y,.%3{Bf_df6woǿ{C8gv~*N?;Rl?W" s\vg27Ω03~J;'PdG4LK,1P*_9 EѰ=P-90Dl)C ? qR: we;Ir aq3s\x[P"VUT栎aL]pԅӣ2wމE]z 箃Bo^>3+2ڬ+aD0r}CˆssNns`q< .0V~Q!DdkWb*!{iUg5Gra04ѱQ4PWpdN|XzIXx긎!0"-+##喔$^*̙RS‡Lei !嶲_OdrYt+&* ?; O / #S9Ti0n$ xa ]q3uT K_Sߔܘ|K=`Ci)%f฼ lK_V*(|rW *+:A% ޽bq;? [XV&D/w$*mx*ڜ+NLGY{FU~QޛDVlUTm~S }viEsz㰆QembH'M[dFQ`lcuSLyy(-h+O8jeeő'ёGVik`k=V3Ek%VéLɦ-L.0UV>"\>YhJ[F|\ , 8-A,mVG|F%t12,p *ːRcru%G yYAz6x(Q [-DO#8چToL)J݋~EʲTi CRt5vl *ÄDTokxh=b*:١|Lf ^^~ApdȢ8sX4&1.PItKS`)ҧZH>x"vdegb Unˆ2 $FgƲ%w@[}yr9vց*vCD9U0㤀g; )YAOͭW5 8)yJp2&ո<|Q\/[R^P6fV>XZ`P%=CU~á&caEuc) شF3^#y7/2 ^Q> [@6s)W t|IH9?f%q!U2@ޡX.:&o;+)tw{1wMs Ww^}Hmf3 yTVB]^鹨[!^4d,L|(J(oFsဏ#Jq zq41 z0M(A[j&> `N-lk3E >Щ6 31; r"{ tT(v5ZjZfDrn:^c^j^JMH@\^QEddE_0;ᮤEj\+[Ge#IqOgHRkUaN \%ׇlz:9ʇu3 l~>TCX] aya ̂-jK<ZҾly8-Myԑ-Y "xA}gP*Or -]}̆XZz: "#ML~ݴM<9)RsBTMǗjdH@D LҦx,z\3bmn7UޘDT` YZI >XcUfI-ɉ1(PwxL"6 z3g 8aBO.wKtF]'n7񉩢: hCpJ[?#H#-IvQ  ;7ąᑌ0“thi!d7O"-X̮5ށ#).g--=c*7`g]HJZ*`4DYb#,UNv#[&/永h!Iia#+jӴKzF Wpiټx :8ʘki. TIL&M7y-jP{*"tuҫ+`Ձ`@HbֺfǍ{ yb6i +' Ha\lDU=Auk(}|EwkAJoBd* 6̥Pc6`]JTBwtljhW.u}Iէ %kɳ+#d]^˺ Rt1>/9%\7Wc^bOՠJkDf7B60G|L,fN.C N4qX0Supݔ|¸{rk@x,Iw͊Dﻋ=UM]n? IJ؍KSuC/ xاIfy@m\,E/EEHQqa:sTO_V{tzƐ('ŋΜ? %N:t%K:مb!_Vm]p^]}ʠ%9&$; fLܑ1j1GQrB 䴝INMk8XOA~P)DL:T-:\dlJ2t ֖ixmMwU1G?^o~*N(w$RhT_<"E}K`V_#yq.n!Nj.)?;OѓudbWH/z< S<p|ố >"UOo${IpoC]xD7JS%@5y2G'^-XrA}46x䓑QӃ3হ&v;ܘP}S.K7sᑉ7mʌ$gX(J`Ȃ޽kfMTG0KxHv;%FSo P" ]jn搕h.C]}.wh+(+6oA :n뢬z%y}2BIiAF_*͓>E=ژB(k*IɌ[a*[Y8-VdL(vhm>/DUib81bW#7ݢ{j{Hw܈3q.۾ PfGc^2(ﺄO(Cj-eDYtC 3" |U[n}A||:M Yxio 6Q)kn|!MR3.Fwz|о[Nӻ* o\K缒@~ٙ-V ސYOr]ϗ1I## Rm(o&&f ,Omawkn1o|c,ipa=LKF7S2fpqW!,Isڂi,(d|o8T}؉ pp4')|'quHpH0vGbqcq4'JqT,nνLLӭO $0Ǘ lӎ/ZSZ$:`6 fl(Hӂ ꥼM./|b:ULy`4kaV6z *U6UŔ閈Uʑ ;61[,H"qsFլ(-ukr8M/(M(PłAC]uHlyzBLx/g8lo Tu,FP> zzds]$CYJ$:m$)nB,Hf#1!!찅L!kVY,Xt<6i$% au7:ԖmkK4Mh@]m#_bmL|7d ;*b:Z, m+ak$6YlXv?\W*Y+ʇyec>Wa3:uX#L/U'Eb?oƣ[TbDҡ_4 43?7x7Y1@( YgLKXf(A֗[5h/K-V#7n1[q>:U]ŵ#skWOEUnaץs#5ߨW{PTЪ"HEGy.3^0GH[]rYMw[I:WǍB+*]tL5%p >6kB ;DKQ~(CjmZi~=sraTZ,PzI`4iFF.܀XO ٟuXGPVX: !ЕHS0ZjA%' Sn"a IPOQtH.+.낃4=TD,m5b IQӊQW" ټIJzw12UG&c/V&']ғL /e!9mAz<$=4" VKD-PV-Nۯizi8i~fhu*CRnTv$&O^CQRnΟ VO:(MD)h:lrhxtRG*+j}SdWU(HEEA-Ҥ˻߿ukEA=;v` 1a{ ?ŁFW! Wy[W` ث`ޮg?&cH(B/}:t@8̹~l,22i`ѹLjT61<VJ$Igij݄R%j!`X ףUBiYXXO\F|~NgM}cf|TLyѡ5d wC? xO@ eXK>j]L]DFC"@L2oiәݯը bzlbuX_vV'Ylk%3Yݐ/yf-"E@,#R5ۂ\6 Z}!#b%dm66P2,])W]wR3bⲂbe C&6[ˈÄT5A7KƐR `qβ0j(-Ok Q|i<-`}Pa@)/ȁFɆwڮo9$'qQmGqXm$]˼05`c5-(GhL2þ\Em:ڐ"ʊͦSOC\6p&{= )o<|jzUZF!RUe;|ik#0݄bۅ-K}kqպZM$o>G2K"|Ϻ[PmE'}%-S7\`v)zWmtG:N|X#;~y8̚ߟaCwEz̾ix\v\+Q+CģCy bA,)7){#ya^7^d Lbeں1icy٘| 2"ueٿwߧUOChh%s sz623T٬ttNU q%Ä׾z6zmlv %ԬTǧ-GV W06o޼Cbh5fX%4cR؏E*Je_N7\PeIdx?UfBWqZ rju]g&F_E?dCc8@W \[H<(Ѫт%P֩Z gH9{uF>v~nW.ѤW{L^IjӲ,RrutBKgkl,+ևJNdg_Cj::cսgO+-^02ȾdF[[ńO}kP0U"}.eǬI0eݸ6zbu(~׾%Kv}}YjS I-e6YRL ;@l;.' AC% ?%2wKD986kZcGe]$ɝ 2+ڱ_%ޞ¯7eբu_kr;;nIS8Ue-c-WFE'zFŲH8\Fz_="1OQPwF5;t0Iy˼ +D"܍&KnrwHdpE'74#6R g%#)w%^S)m@O C'^aO QNDWzk[":aO躼=wyt@&H'4կ&`rnl.6|" T*Ǧ=3J[A@x;l*JqFꉣrK'AO, CE>0U}ScOCUM-[OŊztQ!%]j[,4&yp>AeƾoQ,T!ɋ_F%sOX3a !3C7b67"պ%Jz U]DZѹ  TYũ{pe#Q>#S}:4_@ɍDvӎ}]~Ǜ; dnaWӺgGb_]\jDYG`pHBvᖔ^,9(%=%~ x7~Y 3\aY 0Ν8H^B]s_uBFлO]^mʎc,gmKг:ը1P{ ޳>?(rļAѠ# ,j%E!QV0Ho@XEzoĢ|d29sGR $v3$4 eiU x`vqk61ګ#"Xefr \ p|c,11[q <ؠw译w8$hݙ@[22 Pn;t$/ B$~%Q8@ʟL4ϴ%1JYJw"JHC4:L QA#AGt8)H#HT q ,UPpS5mȅ<$-bNgm [:щKbв0<\8FJRl=q1an`wB6@tLM#l\S H/\Ӝ(rK QUcSUX}c1YD5b3Ҧa5N6O.pkq]$S1|!2)Pg*• K/+ERǨ|K@/'@Sl{ʠԂ4wbT_JLz+A^D瓴8rQ$2&$Zqml.HY (k)0 ˓Aj,-`ė_$-q\k A|Qyt4 {דx#,4ĕ{Gp})|9CR饊h0a:`FNP$1dK/FLN20@1",rLrֱ ɵ;/m#_KĔlSX]n_(#bD|l5C` cM 'FD |'cĉLĈ'#L.h"I;=XǞy1WodЉ񖈑Kh[8Q/Y2ױDF#Fm.*?arV!&h}qVĻ-Sݘ쬈,3;#;P$9+唈w!8-I2p"%f#D2sKH?Do2>!Il?JSq")3IN?q"!K J+.X.M0iXA>E$wze.mar7SXc+O.kGӏ :' B˄M$%Ԗ(Zi%Yp3M?,<ť.5Y 0臷p]:"z&zt&7.]"&v1~\jR$N TʱXvHVxTQ&e2xdtKRu>zŅeMF&+X_bOo)lJ=2uj,?%]/"~xe!Zȏu|E=-:Ng1 IDE?5txbW$o#~S `]seӁ=4KaywBHcڰBtD5(Kb@+'^~swr'(X- z7~7 /^۝/sfW`kte~bjUkРY[qB@iJG\? o XV[/vv[/ ͤ.-'yȹs;Y1PRچ`fW$s|@d)11d _{<,o:ќHf fj爢T⪣p#4 tۧO\SP'׭) _XK%"ZBWV!J``T)ԫW[,Xum\,yFDڈiss{ WJ P/fbu+"Q)[]LqSO)13mF?qPDuFnbNp}Er*>.˃|#ǵy͟nٙ]GnAcM߸~6:5eg\B~?n=bdCVQ91>Bor"ZbZTI EPl@8;2)z'.7n U!xPed [8τS +qIUahPw\\h(˽O3d'`y0X qEdN nenk𝞟Ǡ!BD¡P&;tgk1 JPtXұnZ<By<ъW%Bo[QlS|EmT(J"<t /)u@񉖵uhI")LTN/D?,V}XZ/3nV#ͫgl*]]7 >$Ϛ3eX3ֳhZǼ7}?.wifܒF$%tbaPQ]J3n=Y0oܛD4:໨_:(V$3dn?oGhfyx,u2c"D&ʘ*nL ɕth[pE"-h~+uAHqu,Lp}td"uC琈9jFD˖<ԕt=-PTϔx\D"|%ebt9rKxb~nm@z>Qioy(wF1>;%k |(5Et3w3É;m^HM^w\i$`Zθ%Lo!Xc8:a3,NJbx=\"t"ʾ3{1ʥr[Cv"iƤf fࣾJ֥BP/EJ03"CI3,ӱH#Ϗ/#K1[XE_lg_ԣK2aD17bb FvSŸz vݻgO?ϿV~> b Iۦl#Xuqu- % aǘ=cgQDkK ~ @ix)e0ӏZEޞwI/~oK"T_DTYoxk6Q2)7i%et_&?,Ɨø{=S//B.ޠl/ D<<[! mZ$X{% ??:9qHcy9VW_$L$&[ίyF__}_C "-(bܿB$+-%A]Г8%_%ї o g_ %+^NYΪ['E Nlj]Sb_l3/b {uÅcϮ.6^0Vۧ[AV+KӉANUrR+],yJMZ9*E|\P >bU.vׄވ]0N#,:u1c(j]Mw] \|Ju1y7 ϻ%K>N\D]M Vk8p:!i3aa(~pIo:F s4#d#8z#|ZeCGja@H-E#ԑZ.NБ;H:RsJGj [Ijr,dsB"%PJRiQ%>aJR5mR6Tʌ$O$["%]T& %9 w%VJP(~pހU^Zb߀څ"Gj W$jT&] F>ߎ;CkCl8)DHu,~⭞^,`( m_ -ŋl]Iy7 [ItR}48E[WI[ *8n8:67XOYq6Qhunɤߟ%%جvZB.\%'Bmco(ZJH 跸n)rý9XFE+O5~joqvA9SUG0T]}]@ŹQAM<>v.L]qJ^Σ&F6D| &N>& Ǽ|Qc|O_k17@M5*k4cx'n)A/9";`f櫎Й'{,gYp3M~c{:)D'r$f!Q´vŨ1&չr >,`ʛHsA%e J>I-aej{ [skZJi=WN=śQJJ~ Sc8Z^5>cj4XWWkjjy*BO҂ߢ\(!q75v{7=䱴ؙX35A:lD7N`xT2kϞYڋ_񵸇=j_%lͯŨ?E_OxsS`9ϝ .CU`y&VTjUXw,:vއ,?E[s!!@\a\\ͨ,-eOS6r߆t}r]RHhD?$f vʘ `Ȁ%*NGRj-c+!kYŵeu(e"zC&  p:>dEZkVL5J zsI3VLLn:1ţ$)nWN-`('h `[Ճ?Qh։-o@…H Ihԭ!Ig!œ O KySU瓸m͙3ИkђE@&~zQgX*t)\K`tuZ$W˕d@EPQb05+p.<9qr=1J3枋!ysAi[];wM&ZH-qlI-т~#^2۷xF__}8]hkN[ex$̗N<퉎$q' [ oKyUrv*W/JwYW%D*YU ԵIw"ndQdJvGUɖU!U]:\*%g=eaĺ)%GmuVJ8<Z?ݒ&?1]IZw%$<]ճ̻-.g1aN#.yh)c\mHzzHV)_ft% ( azuUrHpWrs\b0;+\PhkQJLks42э{~SkFhD'XrO 6= λJsRƄigQr Sv1~dį\__%mqI QZ&5iJZ2`R&Z P䢳c.d1;Tušn:p.CX緢 ;$ݿ!kW>᭞{5M]w-)h;X a̵(WqZxC% 7 dv&51-W:5 \]8VK/%R`|[B(ΞĮLϱȽsqt|[Venp4lhOyZ#%8!{xBVQG[5*pbz6Dcty\ AQ -=Q#*Cortz,_P)zٯ3&8 MhNilgwWD33gWgB)aBKZDaq*TPu``:Te !TUZt]UsU_6-^VmWx^11 _hxyMHkܧ޿gAl|4 Z~jտ?Aǟ]/ G2:bٮ~(JI{%R6YJҘPU)Id \IDJ$[G V[Nuoy aCɝc$-ƾVB;8w "/R6ʨkwp>(nkFe.*ȇzQ+UM ɈP ]ckaՌ 2NEmA˓U"$9>p:OdH ;3cN:FLkE2g|`A6> 3s=ɰ~QU6˖@g,~p%:ű1 iRzE-ͲC;u %= vkwKeE@ >p|O :t/`SA__(h̳8x U¯QhI0BU`I_a,niFl㉻ sj۽'pa݈q]lV<)ϯ-Y _=h__Z{X&m'8Ew‰.#>&|0xַ KKOo7"S`d#++ɄkПg~Ѿoh6:wEpp`2: H]~mMLU,`ڒm`ݛ}9#6WGV-f:tZ2ϤU$gY 5^Nҥqtcb11jyXGa`ÜAF0&2y/m.cYXHdl(ɪ}.e @ߺ66*n&F#Xј.1dǻmFg5+`5fRt1KJGd?؞@! ג2^Mvzcq7kls/Ǔ6lsҟ @,(;dXI %NI^Mܩ6&Q[KbݼXO kXgXQJ!}HxA͗>}' |Jr0\?5O".ӷc \ )ŀomaOoɰgcq Fd@Ӑt<۲d]>ɠiIkoX w=条Z>`kλnsc|K*Jv Gji 4%$adڣua9@z(J] MV }HLvNGR3$]&:7y0:lpex"1>AbLЍ5l5U #Ϥk*i0 p)J #k9%iV̦}LB'H:0}]f D7,!$[S+ROJ9U9U^6[S+Z>4hl:ǰ5X>I.3ja aEB[2q@X;|ccs¨|X/PMgrsZȔYeoHĝL_"' ;\8h35i9QG7[2،DB<5~#ٌ*/QBpkA7Ru*N|X:*|A廉cZTt!Sk: pL^P23G2jwN.JA$oLIHmuIjs/ XG=bҷ,4?oWlS.MǢѼwF9GYaˇ`J-D&>1uBD_%O-* _{3$0R7Ɩ̓8K:IIkhYٗ*Gt:r©1TKK\xkK5 쏝d}uXȮZDb_NN.l;ot1X aY=Mﻞ WԪ `k=?MrLFU\Nr,poJڥG͹?+˱6n9 G|m9+r[rdXږcx/,F-*\ķ`m9fA@N+a9t^ 1 m:1dtD9LGHd:vMgԷڴSԟCgz[.dV։5A9Eo'mům{۶âi:l2@Xuˍtdqºo5gڦC:c1; \9¸\>LԁMǬjLGtDvk1"la;?)@:l"eI؎Ea;a;i h;l:m q!!nmEm:Fb-ߣ2Pz| ,ajY6xER0L# *\ SGl=aya;fb?lam:a:fL/O|z?X㑗-6-~җ{^㏿?7&wMhQpᇉn5D?/K3= 6_=<~F4O{,endstream endobj 372 0 obj 39506 endobj 375 0 obj <> stream x}[e7r^Qxq|IFx@`^Z}$M}X9؁0sjsqbӛ?7|xݛݭ{ %}O^í6x櫿|wfj(}{ݛPϏ_y͗?C/w׽&zj]wc{ ކ{qԻkc 1׿o/qo7o?}>@1.?~at/m~:& DZV۟2'Z{m#:wC/_~AtM~˾}--C{ }>~?/9Ǭ~{uPثz/_>O?res? 6tx@W?7XאbQwkv<^z{=ܽ0zRcGc=`=D~۷ZҚwkM\7Aչ f1BC2} {kv}|buqӏWr_ԍ^OW&i._[wƔ^+/*/_Α`&ΐo}αlKU`EKƗK;`>ן N)?{`_2[yΏϤٱ>/;L(>Ƥ]Lk;D n|~?a{w_d-ԟ~z>m(C$v_7^?Q3%ǿ~ jqT$+NuRl _0#a+9sIz E?x{IAV_Dܼ19m ?=>~//{C=fwv>6c?kCMg*~#>zMއ񏟖P1x!__YWx#"E+,O ,bga쥷1߇>dugOOOeXk!fk ^C=~n)٢㇟>Σ(mKn;O|_0^\Xwu,ʺ=Lh4&&2/ᅰ7AV{nAceu_\σ?aCboǠ?~] |/#m4>npi f00c,97~+_}\lJt0?|;;mev\GR]胵֚q“xG(b%. C> S7X1ao7Ys ?{ƍCKcBVnCΖc 3fbPּC>'Zh0tȂ=8b`k]0c^ !0uxCY ^Y sPi &'[=E=t8dmUC8#C4_mP$*ĘNlmP̦= \ bxmdS ً=11!f2X2s&S c#eNpr ƙ[A"OBx̀hmU QlF7Mdóԍ@k|ҳɘX+1hWT p $ĻYe1cۓS^\_wG#/BݏOc9~l,bNBW0n'-yI ! ay&/|,xm#>XCyG.5CgE۠=0U>~w{eTz`WFa~9OBnց"v]lxZ+XoaJ\Ak؇qtV-):7 5h=lw1O>90ls>*K103sÍ%i5N3 >V7#q9A G6Wv1 ;&0Љh@ jy$o<4j2 H^{ip{6Aag-XƼ`fg@&zFP%U:Gݰym,٤>` )1OLW9! Q va8-fC+¹?qwXءp6b#{¤C\Ln၉& 8ƯaHmӓ`1Fpj "bAT@+.{sA*[m{|4Lkcqm;=1,F=Q;ạA]2` '3Brq33T `R) ؃FMdaL'T 9b8a+Gܯ{l*JRT R8P ,RʌR!RpޠR˩,9€#FS3v5¤AWFiNwK{Tm`"%dz#6B2NScޓ3azVE+ie[f2kQ7˶\haMY-=بg 񄅴8`1X]"4D78.y0%߀x eK2L"waa2,tÅ3%*QsT3g`ldVȀ =mޢr=a{o>ii?@Gh p/  t}14-ؕΌY?h_E 7ZA-@'O$d0f0HAOd؁DzG6 bR~.4dM<FENbgt 3Ffŧ,9>eF{WHi]-Il|e2X?ǓV#Q[0C 9 N8OZJ't$b{[{ƦA?Q*,ݎ aG|N Vlp#тK&ѸK\ql~k&WIˑe1]a PixUi0,p&* GC`w+\C[l4UIoڹ5 !2Xh-E\ zZ-E0&1j#7ܩ2o͊W3B 9Jh[џ(8ew뉉qqN]2ٴ )LAg.jSNj̘ߚuHGy,jAbNI*n ,M/I%ߢ!դn6ߧ6m*O4EkXYEEf ha 0T]Ѧ^'IWTx@|6 )*f6fbpp~NrDvi ~^`ih1' pMB  0-5,Q3"CRԒ(«l%-hѹBCM ' 3L;rL?9(Z؂yXUq m0 EL L`Ѣ]_6o8ZقfKV'#|Btȟ R&C+D0a4BE86p6(KXvg2/+u!qY|5MNi]sXl10{tA֢dӢ}AZ@N{1_ŘŝY' QUս̨<[<&rws Q&Ac@tQ2ʛq:s,Q$gsV$0 b {yN`b@1*LkQ!5NѮnaY^Z O0+=a\R0Dc?[,d.WxD)â6J*l\XR$MQVPNz$]1bTd@<Pn&a.pїHY )'&0d(msސ3df3-&,)ܕ78*)Fh'' *1XaO[a>D aki`I  G,FLf#r%((oF LP$e4Z ,/ŖU{[dc+P{Q셹S-2 >Ip!hX!4x*y劭-<ـL6hlP|%%27(]&FX!WACߒ:PRP1CoŸȗi)'oT3#m. ZTt36>B8xz4vE@Wz$qZ`eBO F51ެ2>$eԏI`|nQ%B-#쥅N 7GEƺ*19DvP٦F5SaAyjzH z]feD+ f0*:#:%r&L*f {VCĤ Ҡ2Fa]WB`J`EA6*kp$&kC](S0M=nȥ#yGdqV~QUu'qc-+v D-ȴ/#yqX}&|:iylմ,ȲNJ1^r@Q5!4?h LK dHlb}3L*=W&C P:+dr;ÆMSYy׵n$ԅH2i_y Ԍʫmns\g e2ic4a8m:U32x@ӖM/%8zi]aIK%[fey'f= f}=,z1ZI(AU|aFf0F奶 w!& 1?kRb7ݦ[nt!5!&fr6fuCp)s.>(`RiBW_ E+9 LSȭ{&Nn^ .M-̫Êv+1NߦS^wxYvzV/Y˔ ѫ\@[ :h(Z^F=oˈ=.fkc`:pvf~J $ҫCm˜G_(Jfv+zuuAK Ne`g@`czšW05LdaL\_^b#(&mr5i;Lrt,Ii2ǔ,Ewy(0|+E޸PѠhyg'FBdʸA1U."RGZ֬T>-&݂h#F['a >ީHłgb#8ad"<#V?vE*6&(urCRqF*l3Pl!E}nB[P٦!*_ZTK 6>#4AIjxƦUeT0bK)Pa=2 H+T9OE*@ lqt#˜D,p2]lE߃=+ǥ 8pL-3fF`T/v1&킱@ īqrY)B[.@f&ER2 :2jjTtE yX~`@bui1՞,ŕyLЬPtbX]eqn蝇l\ʚv=+s/8θY30ѩ{Z(LP64فhFֈ|=i;fq6)8/g i#1_;k҂A&DdSȲu Dg4Ѽf&0`&.&ƜՌ#NvFrǧ jeZ0ֲE6\=xF@AkRN2&cl 'ac2#jd =lS=@OhĈV`u!o6 # 虙"Uf9b&B V`IC J/B=ţL7f9&"QEʺ"AGu#/J1yTDb&)ER;앸Z,`,x2`@ZL80i̔07 . Pգ 넫 HaHh"ap^-dM(HIw`9 =Y0v&Zd[h s&Vmm&v ;Jcc[N^VF2k*F]'hS-!&I?~{b"G<8 ]0KYhj̝ͣ)snHMaw;vPW*%0|P';-ڥi<ā} zaX:64{z(9rx֎G118=lwYd&E ,8ʛ$6L_̥OlF2:~ a*f1~NbхĬQ?뇣Vh&Ǿ-E #x;r$ Be:q*CW{ɬM!%Ct$b8sN2kϫ6X[Iy?2TmȲ Bw6a'@mWyoM[3u媍B0n+ / X[+иR|wg˱LS \yuшh2QGi/u~tVֵf5+[u>yLf mf}f(Z!;`N u3d0/|[6#QEH _1v(/' c`$W;13Z9ص8 &<+)emƨ8Z\Njz815&Ր0Nj `} 7dF䂇h EZT8 #a ϳ@fޕH C<pj=1'B+esx7-QDQ0J)qm^r"g ~Ζp3m`blPspHi9LUւ N/x#,f$@ :9,-am  h8[=fJ+i̙wd-"9Fb JY!yH+*XEd!DW b Jbv0RMZ{u5pE$⦊cmϼ5ylڌXC\`h,ALyDok'10Rie@T|hb!녋{g®VvOz6FSk:ઃXu M :04778$-Exob`ЛfCaqm$Uyp`T*NC]=(Ō nBlYǐ6fA\zTw4ձ$ry0(~n=ig5sϙ d0$\ǹ}Pv(Dv+ [|p9ja,R:Fs'~"ˬ0$8I,I = [$.Ȉ6HdCC<` ZK4qhUs'IB5 XiWE[T2xE U砻\$:&qV,wTъ3Mk4F$1ܪKp3=DʮǂC'bA;ǨƎȋYma Zx8Ś +WL+4; zv~:ka54im 8ǰchi;Wu [H(9Z L@8(Slx).˰"]T:+>cZ1ّxY[UWG&9lM\:xm_HifޚMj` mŊo4gpi<虌p!Z?g`EMl[6!؞`>hK?C3 EY+`JQ81f0[|!`[nk V*@VXI*Xj0KmjpL=e/1m(t%M.Z*ec) %xٿG4Gg5\u [ 0R}v:w}&caYt܇/0F/90-iᒏEz/ S]c$ZQ0نl@UٚF,mc{-X_Z$=XVđok.Q1$5ꅀy -afb0B"LcueAa~džZO[c x?EKk6KtqjUc SS` +;80D8i+6t?kZ0tWC_Y8UET0Ÿ<-0D otJ:SA]3H.! ohpڂL5ZV63-8^UMuwFe%\4GX_FRN|b%l[Fص~W)SBE}! ΂wLrmԼc4y.Ɓ*'U_pM̈́ylLY7PPێLԊkAY)J[0HAKj0&(:GwKpQuޔU51,5|b$n z@#MK+ pvG{?i3vlӬjeWbEY #vJos >wi+\/姍1WZIe]-roIm0?Xl/M|dl6 ҉)Bjۚ|Tb4TPx%+y9~896af\Q{]1^E <=7ukI8)A¨WQD/^ l^>3sRe.Q`1W8)XNveZ5lFSSkOKkfZ#Cknf([' =Z"")SiX4oaU1&B O0{>߷@)RaxӺ$NS9j>5FKcii80%xiM\ OaI13 WSa>n8N}CgUlS_Zʣm.=ԅaR/t6.@jE<7q` Mwd*x"k3t4]MGg&H뮔FǠ^^Vh3Ȗp0n&^WS$ ?.e:9>,XriQ`4j]YVHaz(V 4 \7,w6OU躂1TnYH%t?\$ q. eKZ(SZģv U& f9k%LLuN~D> *30( 4U(ȼ $/ӃaT` }UIgCtcw(cTU,Wp>πZFHZul^y#fyC;,l),"pƴY=v>g0[i"".t-G\Q]Z`oZAG\^td{)A(%LP 15S$Mrsi4.d[lZڽi+QB+ɏ##© vsc0e`pQ.)Mw !p0Ġ\:y^eaX5zMϤL..ph }Zz.}+)8 P՗0"qt=>,C?8v3KAiSqf;~cJ8/&ok &]](2fNq^ݚ0"un) L(;\nҔ!@L6*Mݶf]`]vgQx#Lv1Q <\,IO4h4XnmrRY)^drn lDob^;>Zkt EҦh|嬏&pe +ⳢrjefAi%)_bVx=c yt_ϧ^` )PkI(8#S*Lz0,ç,3³N_+B˰ҳ p 1[h2<[iG,S {M.c1#gwcK0nv~KAcLۍw$ ݬBD){gp~+ ssxǎc=1a|/y4ϯ,Q$P3?jQˑm/W6-\S/ϷgkS\W1:%Ir nuoweN³gE]y5/UY\fL.1>0];ԙ f:MK27MⰜ8ՠN7mE}~-#~<|ωٞfRa|ePgIp)eL,]g RHpn4Sig Zh6D~)n./}pϷ2v@R&_h"M<< OtbleOC$ ́{i UR.JpU,nw6s4sЧWkgo9ue=m Qgqp[yC^_{p,3ZpD(z~Q(v= `:&3 @pl;8gpw~8hx7[|H"z?7G}K\QcZ}f!SL~FŊ"Z( potD&,ZUP"&`Q|C;~gK0{NoncڮޒPAm ԟDdbpɕ?ǎ W q!(~ni˧ٜd q \0PR0tUDB JK, jӂ夫Lp5,NWLU,UR82NWu0&gVԑdE^>9`Gnc,lhQ.3exMDk)aN)E¡ѩJ)~TbNF̄ }at^.$Id.6sHHbD+;U>AfayG1d-̃-zS\f5bd:#Di ҜX=lBZ'Uc-ZyX':kEp6EYJ9(dwW1^W&|//K_hR.ڎ@8ZblhxQ\٤6;Ohjމ f1b 6L]A80 "쌭醓Ҏ[,ͨ^6(ޠf1 ʻrv4L/EۛeZ{7v@K,Dn܍J(㖸dD+CչX1d &:TO[ Äy̬cduy TqFʢou:oƚw'Q>e Ի>aȡ`xmX.Rt&w/,[اP AZTZ*R5t_{w()~lfxO!w2Xso'}:gʣ_c]%0&~`b ))ēp (F 륟ͯ0Pp,LpZS淌Em~=41O'FWxikmXbnJ꺇lQ`hյu<8yI{Ce끵1}',8U#y+y6}K=BNv/8@7>?Wx'"(U !by(oY^W1Ah>Vy8ͅ ә^-4q3;I $ƀgIvB֘;HraR$',&͕̜ͻ?n}ߛ)?؍f\4 ̯wOoO?o;SQwopƅ/~뉇Ũ~~~' ?}?ᇱ3?}o8ەy= |?}#p?ӗ?xw7kendstream endobj 376 0 obj 16419 endobj 381 0 obj <> stream x}[sq'#m)Kh~ul`Ůor@9Ffuitϐ6Pk^NfVWݶwMgܿÛ?h/}ʾm ] w%T7_foMjm/>G]Tŷo,\GxxP[_QuíuVx% }l>ʄe*3^:%7_}/7_ν7߼_'*laotVs,|jo%~|wcS踯n8<`VL굒cmekp 9p\bom4xDۺm0[7s>PW.SnD ٴn!rg{ Kno?sA;苼KȹN^~ak-T{l{)6z|^m,tvO,ItsRWaGPCڿ}{F'Axbg̢6{% |&yT mST%β}uɏ+)c:|Z xp{^aܼwt|-Z׏QIIy njeMd^hlFi5Q*ᙋQ4|F'mد~ XaK+ Cb;m.{J_Ġ˔dcZqsO>'%.~yz|x%$4A_x%M .4V 0'% zy *:(%Hvw~ŹeNK"0+>/zrxkK$ pwݘeۛy։֩՟6F~ZuI)],{w?Ҫ .>E:Â͡'KD`K8ohS;D%TUHT){EQ9hw_w_JK>~54,yпĞ 5Jj^!{N3LOSF #|C@cug'qgDԽ(yv-3.n ˒y wO7H\  dM֣A+8O͛M{Yb < H'$,񺖅m'E1 &Zv7o@qZCbf}IȲ }ЬsL̯eE!7=E&+GQ>KY$?joeDyڼOc^D☄I4bª6r du)t2*OF4чEUb'Ah2B*h5p2r~y*Heh|l0⌛hsf?5aIY!BѝBʦ"J]e^NK$D(NLk AA-&QTK*͝K(sB/0"{"MeFhP{)+6 7H8f@}Mm[VZY& u{Z8&uXX dM;XL51%a.ü08&e48&leFgkg2n:p\~TrL֫ 1F̎_MoJVnoՈ@iH-F-T([%K|q䬒vE1HY96q0M9w:k[0J.*_Nm͆Uʹ)j LM.E$4,CkIc +cu_,C_r O5 C8jRhNʢ)c'ΥBO),Q3iJiful ZC7MD#/Sie"vnX_ݳ F;n g12\z A6 Zn4 2AYv'hͫIprC$hW1ڏ7V_(TR3krCLb[Uq.uy!f)i49D&{j}P@Qݖ%C #WڻD]Sh/cٕ"5p.qAdjmq$%;PlV!'XFkT- bL7eR]ʺKR(44|*hC*4\yQ=T" \cβFȅX͏sAYP9Q!:D1$lX,6 N6~KV 5 UR@-uo1ZN6\ *˫r H VUG4~aX%r*A߲I34uq1GȈ5ӬX""rP_FQGs `Jsl &9~:p=Y6|5#$ʾ y(ѶO!^,ImȔRB)OV [nk/Cݭ\g!YľDg.rΙ-ypGjDk =I9(_3r :B^>&"tT3XIy:kH, X2BVz*e$dÓ\(ybwp (%8Cs #%N[3RU : O/WUzҐ2Q輢Eץ,Bd8=jjf| ^ԄVQ-<n54q^ckT)g DXQ3+W&FҎROeb]`avoiHhHуĢZD FojjDw*bڕV+2:iiEʮ@ɩ3 mm 7<;ڛˠޜ1T"Ṍ-$B.~f (\(K:/NH9Jӛidk#.E#PBM3ŴPxYiJK@[Pul; gAògOi$ Ezi@m-bRS:c iE)t-ΘB'PCX$c ]hZeUS^`d-]*c e}kLk}Sl3G(=йt;FPujAod*϶h?=RC3:I3clLԍ(jA(bRTblWl*yF)tK 1q%P *֠挛AdL]NsQ'%ѝ[=e9+#Vֳ *a2.OҠ{PQҿqҤ6 >fsJxt2Zi 1xotF gkfx4O ǫ軪xX%5hCRMIRxWbxF9N8-4YS0^I;PwsPY=Qȃr\(z@HI":zu8aoI2ݜNg{-GOg7H´ȭEMb`N)v]Ybx%stZ8,U4ŬpB )Rd@)3@ZqB&ep0ҾD/G9QwQz.lruRj1 Fd:Cɢ3;ƭPV15K$Tl-l)w\Zđ tJUw4Xkǔ;<+gOT&X-b!cf=vQK1Fvt [RdME5M0a{rQ 'DkM4 ( 2 K*DTߣ-R}Z, 3GIJW4ɜ`-$qI:ğ{u RZӆKh]W9oWpkX0.|g if:U6EͺiXyMtkRf7gKX[NIC'36׎(R^ӏV۲$I*F{yg_xM.[VI ^Իe+cw,.`).A2>] 8t/cTyC " *V)ކ(7!+e\grc.[7hWGRGC}lV7}e̓WG be4gBE:[6&!5UxNT6?"0V8~&@l'^ 潂 >Q'56GuDuu 84v 51ƴA/g;]08G?%&d R+z|X[𢡊VP T_b@hzUk!/I~-C5АeC X"̐Vy!UO› fdp*GXiI}QlVY0ZN<I `-Oˡ%kSQ(~meT>㞽avdy *  rͅf9(;K Gާ-ӟbb9VLcVgڽZJa*IºVLm3Z'ۧPHs/IOhެs@qNB?fl8T4U_*8$;@w*I:P/"nE/dm J}ZYx\zJf G-O0iɣ˨m (#ǒm]ЛJ-Ux`Vߍx}#.P<_H#V׊C^+DX ȼ]sRC?y C%E6 /Kte ' QE,Wj8țZ8;S;2M5dj=rD?=5Ĭ!qEDnm/cT!72N8NG [Ifdg 8oWo RII"w"&aFh,y5 Fcsmua7Kw+k^q ғ %B<PP*c}F Ȓ8X,OIt' 8 Nqk XBҝOqRFLh45< eqR|ZTPg$T #7+UĨb.'с/O,K@mˈ4LHt7v$i;ݳJRčW%T?zqp#lIٓ<2v=zY[  ΁tWڵ_a|H[KGo%\]愓R!T28J_BSZ!`3RC0Ol&}*V]a;)RiJ*gǒLLMC>}s`Eg XNĮ',7oJ:1Fr5wsA9j[0&`k0P(PD_ QU(OPLBK#%%S:miY%&\}oz9fCL'|6PVkA- (ยiGy-Qװ0,A)rʅ|Y@!6pO2)uoUQ9^^HCl*T!lH7#N` RG+ׁ/iHLK~ Vtݸi5c5S /L/sjV;RnףOw(Ш@4~wԀܐs`-bREX9jSĥbdNJ۞>\Y x-!(/J l8mLZW/d PzIue5h[3s7,桼ZS$B:-,6׿bDśKʉД N)d 뗟(&swR5K@]u*U͠oYoX۶DcդMӓ/,z\e 0ld^eR58z`08.E/ ^:tja`7],#,56 ZbҟIm޴2XzħX-IݜzL<%7jE4{~EDR*%ߋtN-nT=2'\CȄ[ðXSFtkW—$#)S֖">>nas!Sz@m0I>giӇBI8g4dY;KC}/vR*Ji͉qʹD/춄jUiX 5TSkf"r;Rw̉!o %{*Qz0JU̠~@Qnf=&W/Uog{lxT0_듲 dHbMuъb <\{\ζmzH6lc7|Y W  .I8wx^ʁr_P@QlBجoo Edh)^6Ԍ>ud+&e?L0—׼MϔhA[O76(6sRl(`džhqR]iiOCNqXyd(A[C5,sOu)95 a /H/q5j޵mp`)gB p-ES(?zF0_h,t})`E!oOwvcQd*8}5txKס ܘ?P;>}%[aw~m}?cO7Z4N_hqizGwS/5*Ԗ./ίLO% Hˑt@_/+y^s "6xw<Z/\BRTL&آtg t7Qň߽-4,Q_M~;y~~?[^ρ.9=w_͝OYĒ$+}R{9e ¤Je&&P֡w _`jSnx{C/91s^UwgHe!K_%=hmiўO ?8Lן~ +Vc uΟ__Dzgh"§^y'BYWzp5U)SǏnK>zZwf\KtA|SR"/?dT~cXoN&܌5#opm%9[ьh؊_#siN+fժ9s=ۻV zL'%x{M8+K:=?5֟k凋??2c 6u*ʅOǚs6hͣa@NU-fǧs9> stream xZݏPMQHDKL$LQv܇~͊;ۉa'ofvQ(?wx{vA5g_B7-J^7gmJ4Y_<+DqJ?~w<,_CmW׌.45a$Vf/JjbɈ0r@QWWcsqӂ^\ϫ_]j:댾 UaQ2^s,2ul.2UH^! gkivZ}xn3Na_^|?,\RɄ| lル@=9-K&T7`w%Ӟ9ݺN#BtKd|F +]&aR *Ьݪau4}oJ"E0amV$)XX`V4.[zSkIe5YXi#!d[J0" EJ/B΅y'!R%YbTw꺔 xRKɬq NYrdl$\=һ~v! i+D|mpjqWm- Ks+y{t<ph;'47j)(16- 2}-LkgZ lL>`*F̿ZIZF**!. zmo Bp6/4 iXDA H=4q{]”aoe3;>P~9L.YeTP :}3niE喞 vk6 Pe>VTdˠCۭpKwvIxDۭ_'Ao`q[N%vsYsc_\'Gɳ9uc^;򗆢@D(z?Eybr= G&ĪbȭFL歶-( ?_$7q7PPPȴa55)VDnņJ-ͧpW9{hH q I1qԡ$8*.5ወRqR3U1T8eӼ ʶ;:Sx&wqdYw}R4$D=Gp&Y%ļ=+XE7$B3f/rIW0iy ه(fH*s 7•6PRj $Yn!L>{ g%QĢ|@$h2}קӓ,>hB4Εi>3M0ĒZSiӨRB*{D,7Ci  Z&1Gj:8O=%{< %KJp+&fƱwq" RH̰3e&є۪ukB}_;BPЧz-`ԙkH\ngΝ]1<x˳ɡ0 6&2'|I\B@>br[g`_R+.>Û%^̝!G$\BJ5|]&$¡?i\ڱwBz2nqhwMj.}t!!.~Ǖ`QUAUfh/ LH Mw[U "W(m{O'3HS̲ QP36 mM|ȩehi0 L#(kg_2Kq)*2B*2EN*i4D0"q"ךt`]Ew9"O qZ攡8 Ge4&&.팤AB9$qz[NE"ۀ+c../| -e,mL0}bZ"< oޥ@yE*E1Te{5sgQ6&GAIRIإ> H1RaqhycT3v*rIczp%q҉j׮U/.iV?ka ?#e4hYPbܥ&L̓ビ P2+މ\iAqVUP4c`: 5!i:33aJW@7n:;cDڜ8Fsqw;GYxcNbC(9Jeuv hH;O4ly@ɾMI}[%kx.&8 ¤OFͽ/o*Bq{3 wn Lۡae~Yo,탷cC3(IU43}xKri(rljlޙ ۨv87\%#dr}J %)m񂛱i7Vy C%>/,4tΊ{wfBL;?u8̨wp[6)T2>4:-rϒ!풼d5WDKP+x9v~3{{xb^ޤb:P( |k׎7qw='=$ ZČ܇tܡ676 N<ÚQü8 h:RK%d*&,\h3g|)?J3zT'>"9q x>g%^i|6DT|QEYY!Qqa.ғ̽{6eS򘋸]=l|tN 735C5e/Å~,3ڱ} d2K1dhKRjf@68Fvl8;+Y ՞f-xrŪI~iDovp2wVDl$o *v[RYr\q6X]e5[MC;Rw? @$"9*ܬU@bE4{;fzFTμKrLϸ+bi-d0Z( 4I$$Fejg4r"lNTM}(3x5ՍuGQ>nXAendstream endobj 386 0 obj 3167 endobj 389 0 obj <> stream x\K$qy9|?(2Dl:x}h4wGY̓k^_D䣺k@@ʌYYY?/Ynw}}:Gjw]x}{U_fWF; =⫼D u Vep>jhy]7 Y}n߿mǒ^%l!YhBo==<.^|owOS΅wCs]_ ɓuiw]a 9hy&Z:]5/[iЮ˃TM|{a3 ^\c/l!Ӓ.^vM[K^ IZ4/lWdɃǤi*g20&<\z1v ٍ-)^]-%*ѹ%q]<,I&'ƥ%Þ1/o-A0 n:ir T^\m$ ▨Bb Loe|Z"*Exy;yit(,ш.BdFpBAU4G.3ݲv猂\n1zn M ԜJ49Nَ|վbD|3&lDx5%c#l8DJ:A(H؃n sRVϭI{2"a- 9̭sT}*s1ZfqЊ3&eJ4GgOPA=!F2CI\:gZ:tYQєȗ?evam|AiTjiv^fK£3*lbn\ȓ=b([>O$[ܙ"\%Me;{dJWXkec|QēÒs~qP7vȅĐU)e`D Qk-,85B܏R0=r x1<G JU*MapR7JrƔs *:@Z fQeڡ;˦TqV!t3.<2ՄvX3gW"&h2{C_bŲiTWF,ĕ3'.I^\53cqN=DteToE2Gzi,<16J * (udMG6MiE4O;Bd[Cȶpd!ڭ%$]f|s"eB*jB0(v }xNKGŶI66KXTqTB3~M>nzzj B~;jRoj9ːLg3kJŨޞG)Z,(5KA8k-;#ESBy"HG테'k {Y6Pn(s btAlSlzKrKvHMEjjN"c {IcҎWǦ3PjZ!1fFl?ю,Y9j@k${p1-7KR({qBb+":%eѩdЪ 7tv^#p )p#:?'1*ɧoN֜'`<o0ՓȎ !'Y RqZ&'>=G،j1%z*_=__7DŗN6u8z̖5UzJ\=ow;њhۻ޻ߦ!ȬfItxs}8I%b^=û+wC} ?~z#UdfR?=0t}NGE?V30&\bW=1fق+Gݖǰ0CY.Ni%n[5 sg:Ÿ8Wג9q ֥y4ގS$i  Q 9X|G:~_m4l]@r{8Gs4|狇G IV!n~(Q7SsWꃟ9h$\5v)?'7x{}!n}:L; ^l\% ,;P%ߑK3R~=)g^_1pHp>K<`*VsdyDo}N)Өp -3*vfn۽Xi3$OBwO7>rGf޾ͭ4XO#()tI.dFC_(y9$R~׏绫VbL-s1T<XwLV ?+}myAp:4` e6?0MpRbZFxrԢetnHaw$xp1s~_zRNs)[v)]p'[xoRkZ+íMVF6FZ¨ (b683e'wϳ?>9%KkiԷZH_jzǭ>YH>?UӞ.-pr,g}*7UNc&b~5/"o"e(":@iߋKX:qqٿ7S!#dxC{Z"!Á2THoc֦<ujXP~rNV^knىruGOOqro6>iKA~/{F1x iozz˧KHPS7zytοT Χ:?\kCۤ6܎֠zT'BWZ};BۺQ2LxʐÃ'M77aNxh~s+Fm,Zzsx| R+ 7hQM4aǁvw?vYm>N͟LiL먓^Sѭ6>7i:i Icbѐ^%wrlx*&?V\.G}z iZ-2(h/7woT5 Slk޵C:ApyܳƊE-5V kʵ1]5CE>UnY3U[|ݚ4 5@=(ypuŕZ/ U5wlQt8vgE~FSrwyy5G{ cbendstream endobj 390 0 obj 7268 endobj 393 0 obj <> stream xWKoFY`NUbsI( ^|ń"jK{g%%@ Q0o2H_VV2lڬn i%<<Nbܱ9֯q0͇mv&BdoewO}~Ѯ߼FkbZ!vKnwdLΉ"nPByu=YͯW_oVon]Oīxe d 3@õuPq =RTj\ APo) $p<޴Uo^v+$Ua5s$5rnn@k,fF#1fڭnF Ęa?Zy嗻5Zsg) ||y FrHĹ[':f(f!K<7? qR$ ܭ` gn 8},VlMߗ"sso: HJȭp`ٴ.(տ#@Ipa4&(5U69 }p6#Rľ@Ur~ls'k>vT_jL?۫tWM>9m3ËTXgZlIhSb`PC;vLsjy[X?Rt\rexRS95! E(,ClQ7l%<m'8AWiZM=d_endstream endobj 394 0 obj 1523 endobj 397 0 obj <> stream x10 EcN$#H lP-HE-peFl3h$%[F5haҍpHi(6I!7FUw!wYIOƣ<DX`>x*k҄Yf 6mzxnx;Ku\v#9ڈEk[\ . -=Mendstream endobj 398 0 obj 180 endobj 402 0 obj <> stream xXM6zM" 3E"(1]$$g7oږlQaw)yQFn v,jfFb$n^ bHBtWכW#L(LlWtm̨HrGߛw7JVĬ&X )H.a[?%F\a_~. 'I~kf0J?ovv'p\A 1E!bf*uxv768P2vr*%Y|T UQqݳhW"L/vb R$n-8 0K[!f@JSD8kBB+U8ˆ~qpB}f3fBC =!ui3tvGgh AFfQov[ Hh;/g?x3QQ^"LIV#GR:H85RGlD뀪|݈SA\5JaO|BGDcg$01N;S`HE&1ȝz0=pg1,4\"uf"Yw(BИ3$UQS<(l՟,/ n¶sWZt.VʫM:l~↟^;T66|gA1u3, 5 oy2Xqx )iByzl{ߋĂpl=6W&͊JET!$6xC倝2˵r]n8+TU)Mn$P8m͛E]3Ml/e2[,?,LzNϪ痖!vzJ2M]g! u,n[_2Y޳b8gܪTk|yR%𧈝7P(dvLKkг$*iNc,/+ί0IUko]V9ł7dI;:1";:9v; R@N?DRV@=@y5qބj$2`@NYoFbj$*{ BLt&'c@L{% 60uxEt' +}3 ˒nM%b?Q'7ş++endstream endobj 403 0 obj 1770 endobj 406 0 obj <> stream xUMF Yп[7LϷf4@ @%5Y%$w7|J8@!hy( В'x(TGIJF1%"%*VV\cys>SP %MLTG)pF}?PI0hO>",Dk7Հ`&eS;s;#c 1AaU2:+|˿ .n C9[l?~nzǺΪzVJfU"~UVvpI}:ZOB+hLmy2Ȩ'g2PCR3޳°MH-:;M>cBg\EarШ0}~|4dGOA7)r` hgnBϋzنNp! H2Lﳏ$@.C.u*els&b.[IaY" _ΎcÜH]KdsjYf byF(xx+w\v},i $]3~Ba2sNn"ߊ F ɖ0Fu*Tw;oϬ %NM:GFA{p\>,`͸p:q( (qo{;shpk;.P%jvUhTɰلP%Vaj'h)BXOqrV󐮜y\U;Cʬ`X:tSD1qti5cʜ@qå̑e0ilK7Irjهp0l_vnrUuw\  ȁ H$*{9Y.C|o;Cendstream endobj 407 0 obj 917 endobj 410 0 obj <> stream xXMF_ 0jI{Xl$z[ˑw)Q&)S]Ք8Jfw}z? WwWܯ?RDft>Jʬjs) .`fw}sܵ_ݪTw+o?JrwZ0Sn[xUff 1dkmlH<dRhV˔4 Ww Q:`j>V˴'_2˓%>ZR6.xQ<Ư˙qk /dVhu [K IU5jU9MS-Қ˧( `dtnwC;__7{ot&^ i닇*x۪Y?<k%pMʒk@ DLB S*$bJ'L= @O!x1~:T+TZ &z VV s.?3aLvjvOeS>w=>SCǜakLߐJMybKH!%E aKh2h[x )Ԓ2UmbEZQi7鸮C@$@lJ `Yt؟m˸kt'T\Ex\<6QZ¹ʰh4ѿ)r  ̡djsDe7b邗 !H4drވ*y@Ij`l-2PVi$}E:hbQL({+m!:՜Lʹ-1i|PuӁ2-\,;Sl {&4.+X S q\wNwތ%~&.ZTfTFc;*CX~ hRp@0qc MIGUaIqw=s˼,=Y{wb Y ?{(a׺ ?7Q)c3;71]zpY맱92zmT]o|uuѷ"MTy_rǥ"^&-!oPhbFISXq d POJR ʰ'ÔNu 7CA1{.p'kbn)_kaWkuՓ^8W0Z@_h=ӳW.?vk&kZ3wBmi^؅l-7Gb2 %杊sbAsA&@_POT@'u!D}rȆ}3U̞Bc=^~TfT]Q˹,{c @<zA-sѱzk=Okmg 9.A)1B'҂-׿eCGYf2n*f;O^+endstream endobj 411 0 obj 2131 endobj 414 0 obj <> stream xY]o#Aؗb%nu$6ۭWE#[4#όbCR_( H8{9{;Ĉ vp;$v'C{ 'Hѡb1] > )̙^ jqoD:#>3q?tVUg*FhhBlHcML$T$36sΦÿF$lc V!AOdp+<I!ʤ1ǯ}x頋y@恳! {#O&_^Xl8o_HPPýE4=0o. Gs-{ zvW;=4v?"O>9fEmkIb3e{ɣeLSƃA^p1`}/,n⪨/|_,H1ftYݏ`yHeաߩk-YGx땧? Ti, #I,|Ny(,So;t,ʡCp{u`1VQz݉35M:QE5&]qŽM1IT]6#?QNKi*B W."9[oJ(ʱfE r6jGmohGS+;n]\Ee8/d6dze7(gK7MܰzgA]`endstream endobj 415 0 obj 2047 endobj 418 0 obj <> stream xZ[o3 KSDgTt]D(P#h&.KQs>K.eg; ?W9vkj7_̞]+HWo63<i1T7߰Ws n"4X7nֳϗM#& Fc֬ Qi>0}]y3;XLH91J#,VJYWgW_={=dzg_ٿ{?<;jy1b|(OrFU`ZK|iwsp@oVw`L"FR擶94]Rnc0ExҲ;]jm? FZ`z~kS.Ɣ!^炦Ug5֨b2^. Hd9*q]BDXj:HfR(K,DF$Q̦Csf` fյ@:Sȶi(ńoE]GgALsmg hwoѯ<3Y##.(^ ?U ܐ*[O[s0!*Ӹӷ[ù+I22@B qxt+ 1?!-jܽ O'AI r[;e`:9eڋ}l0gC財Ɗ lts(w۶#2KuAZ͟;qM̡<@ZObƁ ݙ~޳'ۯcWofEH)mˣ[^483-󣧴)X\8]"%skhGHK cv{*-=?Yyd.RHW@sd~E|װwa`}!` y̞&0uܩy)xKU6xRʝphP``!݀"qǟ\^; i7&B<۶n/~H4_.0%4lcMoPtx?-y|'-s9=_m |r DtT 5&<8>)x?׽ȻR7ڡ"8 nyN%cP%dV AJHUCu$NԗmkMR-=;E+"m:.ef)K[g^fd9XLvޥ_e w @?wGN?R?endstream endobj 419 0 obj 2387 endobj 422 0 obj <> stream x5Ok0 w֧б=LlKXvm66H$<z$~Pza y8bA7a~FvL`#lmX' SݮIK>XWn/sMey1N,$35`$e|)&z+!'t,NT{ QZ+ܒF'Aendstream endobj 423 0 obj 212 endobj 426 0 obj <> stream xVMoFW=9liXHj:Z%)d4R:ξ>?M'׋ɛ; ʑҊ[@ ÐQZ,vq[C߼Z9! !4.Vc 6viș 㗡1˜I MBS 141X?)FL*}ut#C}+^vcpoI )Op1Xp(hm42)fmS)҆ C4aq٬r]u?4%avwF^`ʘDS(sʂC;xjnSMS?n,r:n)QG*#(pUB:K #H1=@1m)HH_6=rGusJT1U(K _=T[uȐ.C)v[|8*%\v^ s"DHPcPR!xK" KWʊbU4M6 FbO4yO.LT~uo+Ƿch)<ߘ8߿8iݧ8Ua[*K$ Xh); NDj-FG)Krr*PZ>@p~ܶc ˓fk2rԮ @546S_Y74 K^<ԈN#+7K> stream xY[o5y8}RuwOH  Bl&;̄un"5>>|}Wqٻٻ5k.^̎~ I%qqr>pFIDDqoΚ'^T9"b8yvw+GU'gìUU en!EUܖr RQJj&9sQESą%ToVuž]s(t}A4}b/M1jJ’q)Ue5}ly~a0b=绊)$Ͷo$=H n[ 2 bUpk_ώ)YO_?_^g%JKGRlԷѷ@L!ΆC*;G9ȟc(U Ptz1ƜT~1ң@2 t$[Id= )JəY!&&3te͙2f|<]uF;4^jH}n'VJ~ٷvlߩB$^fȚ WZ}͍Cxj{Q9sc\R=x+F/rx'B -ߨX1qڎFA꺵ނJlѭ/Au$8Rk F^E9H0n^;\f3@grS52tQcYzTs93^p(!I cm.A}VPLN7]3+Q'1ocJ/Qr֬jK?R)*anPLy7: Z :LH8PGihFB6}$0Ǡ#Vf_g!wtiQ99ˆCR($N>]l?Ii"k;}(AAJŮ\7ohC&oE/S=),w7ټ۬l>*zl'jI"h#pq]NٝH#$M܅QCjL*tՆv\8pT{YFagmmd[%(@~28UZeW_6u\FָƟ(ș`Yj7%:|c[72UoO> stream xVj@G豅xkBPhϊ*4!?].XNC1X0Ҝs{bDR~3>%y^n`Ano@RÐb uA ciMa)6LhXQ cr7d3% C*fT˝I#HTfyqެGΨl୅^@Ml ZiP$&}VkD%Կʺ첮lvT($:J,wWٻŬjO1T1!.2 e2Jg1 `^]KqB+yrdb٧ #nx!B &z)>Ty> i%,tA8oPBfl5 `I42lC; $cMP;1c+TtNdtƆi!C \^P1ٴm0ؔx$\%5m^VՠTrٺE txi4e l:v<0 plfb)Sqͱ{VFpL8{i{Vřuc1kmm0NT臖1, pqfzg/O9RfWaO*eoZTU'm Q\16U[brh#U? m[TE[Be*o Ɠ…f@鏎h< =.a˂VC{Fqeĭ{~Z_#|B$6Yg&ŧ'rd5aGwh$|9s:HCɎ{C(ydNMkE>.d/`)<|3c^endstream endobj 435 0 obj 883 endobj 438 0 obj <> stream x5 @ E]+ 3c[-8 AehB盩J BIfPP`2P έHig1_ (TVM`G.Ф8Ƅ(LNMŸdԓ l&%kqAb_[wrO,qendstream endobj 439 0 obj 163 endobj 5 0 obj <> /Contents 6 0 R >> endobj 28 0 obj <> /Contents 29 0 R >> endobj 35 0 obj <> /Contents 36 0 R >> endobj 51 0 obj <> /Contents 52 0 R >> endobj 70 0 obj <> /Contents 71 0 R >> endobj 77 0 obj <> /Contents 78 0 R >> endobj 84 0 obj <> /Contents 85 0 R >> endobj 88 0 obj <> >> endobj 89 0 obj <> /Contents 90 0 R >> endobj 108 0 obj <> /Contents 109 0 R >> endobj 118 0 obj <> /Contents 119 0 R >> endobj 122 0 obj <> /Contents 123 0 R >> endobj 126 0 obj <> /Contents 127 0 R >> endobj 133 0 obj <> /Contents 134 0 R >> endobj 137 0 obj <> /Contents 138 0 R >> endobj 144 0 obj <> /Contents 145 0 R >> endobj 148 0 obj <> /Contents 149 0 R >> endobj 152 0 obj <> /Contents 153 0 R >> endobj 156 0 obj <> /Contents 157 0 R >> endobj 160 0 obj <> /Contents 161 0 R >> endobj 167 0 obj <> /Contents 168 0 R >> endobj 174 0 obj <> /Contents 175 0 R >> endobj 180 0 obj <> /Contents 181 0 R >> endobj 184 0 obj <> /Contents 185 0 R >> endobj 188 0 obj <> /Contents 189 0 R >> endobj 192 0 obj <> /Contents 193 0 R >> endobj 196 0 obj <> /Contents 197 0 R >> endobj 200 0 obj <> /Contents 201 0 R >> endobj 204 0 obj <> /Contents 205 0 R >> endobj 208 0 obj <> /Contents 209 0 R >> endobj 212 0 obj <> /Contents 213 0 R >> endobj 219 0 obj <> /Contents 220 0 R >> endobj 223 0 obj <> /Contents 224 0 R >> endobj 230 0 obj <> /Contents 231 0 R >> endobj 237 0 obj <> /Contents 238 0 R >> endobj 244 0 obj <> /Contents 245 0 R >> endobj 248 0 obj <> /Contents 249 0 R >> endobj 252 0 obj <> >> endobj 253 0 obj <> /Contents 254 0 R >> endobj 257 0 obj <> /Contents 258 0 R >> endobj 264 0 obj <> /Contents 265 0 R >> endobj 270 0 obj <> /Contents 271 0 R >> endobj 277 0 obj <> /Contents 278 0 R >> endobj 281 0 obj <> /Contents 282 0 R >> endobj 285 0 obj <> /Contents 286 0 R >> endobj 292 0 obj <> /Contents 293 0 R >> endobj 305 0 obj <> /Contents 306 0 R >> endobj 312 0 obj <> /Contents 313 0 R >> endobj 318 0 obj <> /Contents 319 0 R >> endobj 322 0 obj <> /Contents 323 0 R >> endobj 326 0 obj <> /Contents 327 0 R >> endobj 330 0 obj <> /Contents 331 0 R >> endobj 334 0 obj <> /Contents 335 0 R >> endobj 338 0 obj <> /Contents 339 0 R >> endobj 342 0 obj <> /Contents 343 0 R >> endobj 346 0 obj <> /Contents 347 0 R >> endobj 354 0 obj <> /Contents 355 0 R >> endobj 358 0 obj <> /Contents 359 0 R >> endobj 362 0 obj <> /Contents 363 0 R >> endobj 366 0 obj <> /Contents 367 0 R >> endobj 370 0 obj <> /Contents 371 0 R >> endobj 374 0 obj <> /Contents 375 0 R >> endobj 380 0 obj <> /Contents 381 0 R >> endobj 384 0 obj <> /Contents 385 0 R >> endobj 388 0 obj <> /Contents 389 0 R >> endobj 392 0 obj <> /Contents 393 0 R >> endobj 396 0 obj <> /Contents 397 0 R >> endobj 400 0 obj <> >> endobj 401 0 obj <> /Contents 402 0 R >> endobj 405 0 obj <> /Contents 406 0 R >> endobj 409 0 obj <> /Contents 410 0 R >> endobj 413 0 obj <> /Contents 414 0 R >> endobj 417 0 obj <> /Contents 418 0 R >> endobj 421 0 obj <> /Contents 422 0 R >> endobj 425 0 obj <> /Contents 426 0 R >> endobj 429 0 obj <> /Contents 430 0 R >> endobj 433 0 obj <> /Contents 434 0 R >> endobj 437 0 obj <> /Contents 438 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 5 0 R 28 0 R 35 0 R 51 0 R 70 0 R 77 0 R 84 0 R 88 0 R 89 0 R 108 0 R 118 0 R 122 0 R 126 0 R 133 0 R 137 0 R 144 0 R 148 0 R 152 0 R 156 0 R 160 0 R 167 0 R 174 0 R 180 0 R 184 0 R 188 0 R 192 0 R 196 0 R 200 0 R 204 0 R 208 0 R 212 0 R 219 0 R 223 0 R 230 0 R 237 0 R 244 0 R 248 0 R 252 0 R 253 0 R 257 0 R 264 0 R 270 0 R 277 0 R 281 0 R 285 0 R 292 0 R 305 0 R 312 0 R 318 0 R 322 0 R 326 0 R 330 0 R 334 0 R 338 0 R 342 0 R 346 0 R 354 0 R 358 0 R 362 0 R 366 0 R 370 0 R 374 0 R 380 0 R 384 0 R 388 0 R 392 0 R 396 0 R 400 0 R 401 0 R 405 0 R 409 0 R 413 0 R 417 0 R 421 0 R 425 0 R 429 0 R 433 0 R 437 0 R ] /Count 78 >> endobj 1 0 obj <> endobj 4 0 obj <> endobj 23 0 obj <> endobj 24 0 obj <> endobj 31 0 obj <> endobj 47 0 obj <> endobj 69 0 obj <> endobj 76 0 obj <> endobj 80 0 obj <> endobj 87 0 obj <> endobj 107 0 obj <> endobj 117 0 obj <> endobj 121 0 obj <> endobj 125 0 obj <> endobj 132 0 obj <> endobj 136 0 obj <> endobj 143 0 obj <> endobj 147 0 obj <> endobj 151 0 obj <> endobj 155 0 obj <> endobj 159 0 obj <> endobj 163 0 obj <>/Length 402>>stream xKEiЖІ`m2,A ʧ|"K+J[gԙ(JT@œgVyh%:C(}\E+q<Fbhߣ8OnC+qEvVzFD~5ZA++h\.JtU4Z,h%:"шh4JtDߢl6C+DtV#FDGBKFDFDG2!ZT:% LZ4mDG##}Y=+z=FnDiFNDG̉Fe0hnJt yѨj(|[vRA+2tY;Z0P\Vÿfzs  to endstream endobj 164 0 obj <>/Length 251>>stream x[ EY܅˨;+>]B&NQ,-I4(|1؈5 T΂ۈg2@F d@%fu۶RɋO)+#tsw}AeB5T:ML{2-# 0Bo-,'P#V"Krrp7ǜ=KExp,GHIlɋ_4GFw"BA!nbO"OG0a@#~_S { endstream endobj 165 0 obj <> endobj 166 0 obj <> endobj 170 0 obj <>/Length 596>>stream xJAǷKz|@{ 3PCK-DQDANlٚUjH"p/.{KSrڥmgBNGrKnT߂pN[W ㌯y@\k1_muu0ؑzq[fc{s0 {{yuqp{\^.p/\}v"޷e{%ý l?{Y/m7^{s+{r{H?>?D,(=nRHp zX, oӦH` }r g2(Ђ$iœ{f8{ 7.PYGϢ7HGgs9s+%}>/Length 582>>stream xJAg[AP4SҔ||@{CLUîQ l`jn4b=?!v;䉓ETtGe % ,C\pt8{L^sDxLshzWE*GٟVvr9BGg"LBbuė5\ѽ_~2t&:K ~G*"˲Z~6xrv|x,&LqV֚uHs[E\< 4' endstream endobj 172 0 obj <> endobj 173 0 obj <> endobj 177 0 obj <>stream AdobedC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY~" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ѽ:}ܗVHxYM It³>}i2 g+tUфevmLL1:]v )$*Qmm 9EŸGߚސO4S+ivg'/P֚ZV,)Ug|5]ê98=kjq+#O3N#wr`+M)EE ܯm+_?›=ɦڮp~XQ桂FEBݥ1+#'U[V_DB `fx%*$ c@osۊRT`E Yقw9K۹,/P27H$=/k\W) ç0:q]^X]o: 턍dsFtȏ54꜑R>ݧiZBrs^Α>ƏFtȏ4,E8ɞqg֐=zW3ϧD#}?#?C8*2ǵ'&#}?#h;0RZ9b 1 Fz-AbD@5 ьe>Ɨ͏5ֱKH0˒j^B:|0xL+n#>ZclWvNѼ^YUcI4>3IehP 8O><?#XU1'"X2tsz.[c<R PoǦp9z4T`NAk ׺xH@c bgc2=kR=Y?ʥo?xC/:u1ti+[OWF}~* >Z9Ր`+ kM[6 Hg)jp:xxN$Q:h 31P:jo!󠺂Xޒ] =b>~Q팓iH[QXd`sv3V&}ZI 9-q"(;=$RѺTpGAG"K2+klTi>_G~(U%| 0;ZB1ժiu0,<1lPYD6wmym-ۇmkaѴwc$ַ.G` 'ٗz7נn;TB'rg׊%ҮY%f7bR9^1(Gx9qg2F}?zIJӞ{WceewH[rN2{MB'x#h4RP)0c_=e|.aC"WpSFpp3U[nefUEP6Фs[9ok5ǘÐ~֗=>tR#C#Rbz׭:=>.~̷Ĝc/Ce|2FáM&f> Q3GDO*FRMpqs=e|* urFFˀHwniЍ/ٗz7ש!bn<>=fp*{8 NO?ƙsp~6Kh?x{y+OQ\燺טb4:_vpb;$aNeKt0h/.,yb G~Ws#Eۻ 8qY4:8m/e j*8!aj(3OW}WT敄siordf?ߣQOTw[syI2P(8 =S*TGjl^Eށjzylt>6=S*TG@ 'O6=S*E3l?'O}ͲTGl?Pu,n@b P1}i?7S>tr_E6Khm?1]}<=ѧ_x!ORXCȊ|; _A=KEE?Уh@Q}(D?PT_h{G} >-ejn-乂QMjBJc䃌=Eh+e;T/(A9ҝ7;7u鲺Ke{.;pR2*6.98㧦yc}hT qyP0b9`A=KEE?Уh@Q}(D?PT_h{G} >>=fp*2 l􎤹Y?ʀ8?x%Qo֊<=ѧ_gD%ձj +ןz2G+ڰdՔfeAd_:ty0#cP o֊y}PI#c(Ԛ)`4<+I%ɓ۰l9㲂{WK us$h2qO`^eN2wZXHt[?+DQ@c<֬ao> endobj 179 0 obj <> endobj 183 0 obj <> endobj 187 0 obj <> endobj 191 0 obj <> endobj 195 0 obj <> endobj 199 0 obj <> endobj 203 0 obj <> endobj 207 0 obj <> endobj 211 0 obj <> endobj 218 0 obj <> endobj 222 0 obj <> endobj 229 0 obj <> endobj 236 0 obj <> endobj 243 0 obj <> endobj 247 0 obj <> endobj 251 0 obj <> endobj 256 0 obj <> endobj 260 0 obj <>/Length 733>>stream xjPO^zcW ]:vNFDA}#m.9ONGK-KcU.sz''*'/m>͚u%q-\Ԃ}qcGkSnɻ(="W vn}yQuHHtn}:3_mpe+[{q/}.EK*WGôRw *&bM{(bxgwڏOٸ |T"T| #oETp\~׫wd˻76RAr|SIQ+N(RT1#uO'HڞRTHP J7"V [lwRa#@TRTHP!@eT6=pn=B* *$W,XHT:ZEAFwTEA ^P(('_~$dQP*~_irUTETWr( r?T]G,)?rv5K CIE9ݞ]prRaѬ2%6v*S2Ifd"('6kVUZft*('WH;kzljfrrWwEAo7 \RQN~= ((zYbXH*ɏIYJV|O'RAŀJ*iok ր_Z endstream endobj 261 0 obj <>/Length 765>>stream xNP2̟f2$Ź8cbB ~j-vmuھrwV\.K:U;INwrI&5[K3Ռ!"!ϰ"|cg> endobj 263 0 obj <> endobj 267 0 obj <>stream AdobedC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY-" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ѽ:}ܗVHxYM It³>}i2 g+tUфevmLL1:]v )$*Qmm 9EŸGߚސO4S+KlL88x)>ͥ:'V\U( )Ó~u9hH$2)#Uv1Pι$Zm+_?i_ n<#.f8'•#HdJYK.LvEӊVj?Wfҿe~)&-VX&FfE;Q,uzUmRf/l#<6` 1,:sB[m?HvlSQov1*:ap}֏ZLRoc{m7Ot<dOե4l`wsđ@9mȻ:pvfђ>'Q>'Un(>'Q>'Un ZwZwXF>'Q>'Un ZwZwXF>'Q>'Un ZwZwXF.Ļ/UPQl6_%?®\ic2rI%F25e#qFnl,?™=,'Sr1 dk8ZDV$Jg鶃= fafA Fb_5eC") ny`8;>dX[!o {M*}>BEZSӬدSu#T2;UJ I1,ƀݟN֚j}lkeia?± ]-2/sm2O1I^pF;`$J5k/_88dӊmynl$o[# l3ϧDLT:;H oFtȏ43ϧDb)&7NL >m}q^Α>ƏFtȏ4^G4ADq3ۜ"ظяzG#:GG??"?k{)p€3Ftȏ43ϧDPH+ѿ?"?Α>Ɵ֡هgO@4N+?"?ӣݑFY汭Z#nB.y֏0z_6?/GMKW!/=hEksRTdTUKZ ss=AGksRTdTU!f[;.d tGWE ڊ0AksRTdTU6,IgMfgMfgMfgMfgMfgMfEf۽'PWS@W Noq kM7lx{y+r=p*[OV{KT;x#wyrpQЎ3mQEQEQEQEQEQEQEBTGVYQftۈP9 ('3~5{KdX`iE+(09|qA<:dFY['DnID{H®T$~KSĪtwG(-\m?2n8͎{fM& -9Wa- *08EPEPEPEPEPEPL\>/Z}p4otPLJטb._?u1n\Ǵ@ 5i3-y“LT^|7S3HG]͒Nڛ'ڢE/Ky{?@ _oQzKA/P}/W(T^|7R{?GKj > A/Q'ڢE/Ky{?@ _oQzKA/P}/W(T^|7R{?GK"O.XB|@P>琐P9_Aiz'@DqcZ|Qƫ7$ZO= Ȍ[ pΗQzQS#` |=_T^|7Q_o g(> }/W)|=_?% OEj _ g(€QzGڢ—?% <=_T^|7Q_o g(> Ȳϔ$A֏ g(1xdbIǪJotWs\7:i(cm?1]=si^cߕ񝠜Py0L?Y m6'&f>[~Ni=A*]閰~QȡW'y) &_ɇx~+OIRFfʊ%C`)}v4e)P݄4 #rU8_pzltL?GW?\K,XQXJIE&A,{hkKVᲵoWW$CPH@?&_fmOR;EeQ/&U1aW99c$>+ZL"=os@L?GU-"INU,$0$s; $䐹'֮<?&_ސmHha0ߵ <?zC}G!ɇx~(a0ߵ ?}Mo&&_ɇx~(?4~<?&_ސmHha0ߵ <?zC}G!ɇx~(a0ߵ ?}Mo&&_ɇx~(?4~<?&_ސmHha0ߵ <?zC}G!ɇx~(a0ߵ ?}Mo&&_TDI%T OzC}B KOBp=hxӦ\»iM?@i^cܹi?ʰ=sK4hdV(ŔdzpHjAvIhPr>l`OVF?EǕO3hݷɔ=qq@d+4EP&v,jp0a)iaqom,pX nqa3mv|,Ř\ Ƕw/_ZCOfu'u=ZW*G ph[I8Kx`n>{kT+rHv@# j e*Ԃ,?Kt24Kvc1H@= 5 ZZe f=9$$Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@3^soghxӦ\»iM?@i^cܹi?ʰ=sI)c9E!x-3Ё#֛OU!w |H=̠ 6Id6I=*s֛P%ԐJd gz~4"󥕼,=;*************gjDbV )YƝ4 Noq rmZ0*y㎵ȞdlF}+ \a6+JFx']7A[Oy]ur4MQ_ѿVh?+c 5,}_ѿ>?]W?+c 4nk@dTG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*TG?ۺGl!?Ə#?@=S*B{H*Lu JVh?+c 4^{⋇KdT QON WcVkεYDŽ~q}ݚCΘbpM/?E}<ް״K (11O>i>~OQEbJ i>~OQE!$ZOߓE?EE?G$ZOߓQ@$ZOߓE?EE?G$ZOߓQ@$ZOߓE?EE?G$ZOߓQ@$ZOߓE?EE?G$ZOߓQ@$ZOߓE?EE?G$ZOߓQ@$ZOߓE?EE?G$ZOߓQ@$ZOߓE?EE?G$ZOߓQ@$ZOߓjVw1T&U+hpwBjo{jAV{Er)+2Tw? endstream endobj 268 0 obj <> endobj 269 0 obj <> endobj 273 0 obj <>/Length 733>>stream xjPO^zcW ]:vNFDA}#m.9ONGK-KcU.sz''*'/m>͚u%q-\Ԃ}qcGkSnɻ(="W vn}yQuHHtn}:3_mpe+[{q/}.EK*WGôRw *&bM{(bxgwڏOٸ |T"T| #oETp\~׫wd˻76RAr|SIQ+N(RT1#uO'HڞRTHP J7"V [lwRa#@TRTHP!@eT6=pn=B* *$W,XHT:ZEAFwTEA ^P(('_~$dQP*~_irUTETWr( r?T]G,)?rv5K CIE9ݞ]prRaѬ2%6v*S2Ifd"('6kVUZft*('WH;kzljfrrWwEAo7 \RQN~= ((zYbXH*ɏIYJV|O'RAŀJ*iok ր_Z endstream endobj 274 0 obj <>/Length 765>>stream xNP2̟f2$Ź8cbB ~j-vmuھrwV\.K:U;INwrI&5[K3Ռ!"!ϰ"|cg> endobj 276 0 obj <> endobj 280 0 obj <> endobj 284 0 obj <> endobj 288 0 obj <>/Length 680>>stream xNP.W0?C9ԤU. Gu8ˁTu2L"4Zހtcޣq'%Ο67?:1X[Hxf sB o̽m[d~?ųYҨT*qVoy+0BBC;``[?C4MdbN._;Z`i4#\QmK>/Length 733>>stream xJ`/o뉏1 gqj])Pj(R()1ICkbtK._JM<== ]BA)l\Nk{[GǀȺD߼u8RZm-y(`5M:qD7V+ox'lF=zm#c҇[<0rx'&4)`YUUK<ɁD<()qwnɍ+ %=A`D<, x#0"x#0"HQ7콀wT7~6ݧc?X>8A1`RG<(xrqăˉ'%AX>&<_F9Xa`Dq; "%Okѡډ캺Ҭx/(ƎBHgztH\ɮK͊@Q: tOrNvm͊PQOw{'9~j4ˍF#G9\]6xMOԬ (Oi4%ٟ3TyN<wUF<`D<F`ϢO?) endstream endobj 290 0 obj <> endobj 291 0 obj <> endobj 304 0 obj <> endobj 311 0 obj <> endobj 315 0 obj <>stream AdobedC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ѽ:}ܗVHxYM It³>}i2 g+tUфevmLL1:]v )$*Qmm 9EŸGߚސO4S+KlL88x([M-*lOYR$:{T\2"猧Oֻ/KF!#F(XxQC@}Jm_gt͍ƁqP[\"k ?,\'UiN? -j"Fp a@J:OqOZwCy*J0HtҮalҀ3J:͏qO[iS >7Q(yHҠ=i4F9|`2nڮ].+K@\*iH]6ѿ튏Z2aEޠW"7B,|űv>F.NrJ|}>BI&bx-N1˃ޫYwu, ǮGMԞ9S㙭K_;n2y_2@uz6atm7o7-?"?{{srGJv}i z7#:GG??"?б&ysZ6>GgHOG#:GGZf/e#6cTg^Α>ƏFtȏ4}j{)qg8-z7#:GG??"?vaexCQ-h~dOo:U"RgSo_[ Zԗy֢ɵ?m}n*_*d`-bu|oC:RdTU6?/FEcYX*X䎙&y66?/GMKSmXl%՝ī.V;pWKK{IZp wlc=Η&ɵ.aXf gMfgMfgMfGlB4Q! @χטb._?u1n\Ǵ@oqlX'*G4cyP$Rb 95#A\$zȭb 7Ȋ@Q@GG./G5R! 0j?= >\X֏./G5\E8 }/W)|=_?% OEj _ g(€QzGڢ—?% <=_T^|7Q_o g(> }/W)|=_?% OE2K/KoJ_`@CllB4Q! @d=-ޞ =hEXm,=rV%3ϭ7gMDDd:_&_ɇx~+ STeMhۡiu'۵iufQ6D,w1>4QEr=͏ endstream endobj 316 0 obj <> endobj 317 0 obj <> endobj 321 0 obj <> endobj 325 0 obj <> endobj 329 0 obj <> endobj 333 0 obj <> endobj 337 0 obj <> endobj 341 0 obj <> endobj 345 0 obj <> endobj 351 0 obj <>stream AdobedC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ѽ:}ܗVHxYM It³>}i2 g+tUфevmLL1:]v )$*Qmm 9EŸGߚސO4S+Kl,N _IemP7M3VbIqVYe"Uu 1m'Q>'Un ZwVJ>͏pOq֪A)dgl ^4[iӬ >'T7YcԌ7N*f(:h4hӬ u9zy)X"ݡG䌿*#֘M.cfx) ?ݪ⹠t4 >?©Kmب.Zd] yR Ict![cDb쁻-4˧ك'Ti,Aۨ =굙wxWR0z*I3>9{4alm'Q\!+H $ WWhF΃va#|2kg#}?#wM7g:$yԬϷiA֐ף3ϧD#}?# N.1rg`g8*HgHOG#:GGZa{)qz8*GgHOG#:GG>=83 ‡z>#}?#h; G̶F?=Tl Z&#IN?m}n*_*ekR_0zZ&ɵy֢La@lwIksRTdTUebKDv)c:d|۳sPdTU6?/MaVvXgg^ ---%i3(ݱc:__[ &⨻bu+d=jYLd.pJO_[ & }pZn#"TZ&Od3Xy'暇:uhB?տ;u1t5x{y+vv))# (.q4r1X́vlVY JV&y!iN$p8'@7Vx Ev\ORW0-oV7JGm[%NFw99r)fkZN-Լ²!]h$t0}vPKEr1Z^)$䴳o9^Mlہ9sW/ݢe-FXؒ qIr@5yowM>gMfgMfgMflII9aJI?MyM.3E{y+r=p*[OV{KT;m9}M6 (#;kygv8d*Ks$<VhN*HwJ5Kgү-c*$Kt?V s{%# F0xi'hQp O'c=y>ұZg{`sǖ2vx+`krĖ:/ I9YZECqq*gE#)fp[ti`IFrvڵh(((((?i$[A4?i$[A47_B4Ps?˟m?1[?/PVxZHn`G|6ðx%[Uۇq)ߟ>o6P+z]lӀv1$e9a9.[W۷Pct9v?uSo?t}rluSo?t}rlZݺmáv}}/n-_nB6݌a;q۾Pm"cr˙%o6G7x2 u$ƕn-_nB6݌a;q۾P*ڮ=ˌfIOMy*ڮ=ˌfIOMyqjvc9ێ}uv1Cn_Q@jp_.1%=6G-ȫjp_.1%=6G-ʭūۨF۱:n;wޟ#msO}E"|d\"|d\*nn0szK([W۷Pct9v?uSo?t}rluSo?t}rlZݺmáv}}/n-_nB6݌a;q۾P*ڮ=ˌfIOMy Ђ;9Z)näd%$;6~squ}uv1Cn_QU領OUP2N/  8C4XC4\Vf/!s][([OW@@#c\טbgQ{Aۯ@Vٯ;u~a(5n?EnQXf׿0Ea_"^vPkߘ>{Aۯ@Vٯ;u~a(5n?EnVO=rvL\kzoENij!}~UcBwMhe\'ܷha4Ww?SE}~]En?4Q@ۮhuO P>w?SE!袺̆ɢ+j endstream endobj 352 0 obj <> endobj 353 0 obj <> endobj 357 0 obj <> endobj 361 0 obj <> endobj 365 0 obj <> endobj 369 0 obj <> endobj 373 0 obj <> endobj 377 0 obj <>stream AdobedC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?hEYZ`ĤɪM It³>}i2 g+++ڙ4c.tF`RI:TJ !l+r%_5ȋ?̎5! hMKQV7ƙfp2qR}JuO0b1s4HI|;oW%m{~֠3K0İ ;XdͧX#"lteQ.a<"=7(*"djȋ#m>Fϡ;0{Tn;(mKZ%Ӈ;F3׮)(& K`t2dx'ٴY߄ ]@yYu[\nP*1|dp*GpI}JuO[M-*lOLYJGI59mц%rGL56Ykė;QFN<ӔDWfҿe~*&vY7;}!Vb0]NHg5Xw#IG)rù,~:m>}0;+</`bUt8wγ 6j.dI@q!I=>Pt{/ Pez(`rq;?@i{ *}.et#OOեs$} zwV nE sT4;?;?¬nuAE;?;?¬nuPҠٓ'TQE;mm:YPt @Ͽz/&IaaQ0hZi}OiPgٱ v-4o4b#I{B@VnxX ҥmNS\S*V@?Y\ȣF`P2}Vf(jgMmuNҧ8}oO%? m>8#>##- '/i;$7|c֟+0d4mal)"WsjFRz㨯X =kLs )&3 $ WWhF΃va#|2kg#}?#wƏCe#fe h"cߓ}1JhgHOGaه綳Kn#U/ PG?ҡD 1uHgHOG#:GG>O{*8.""p{qz7#:GG??"?vappEKd~nEV 8Q^+??"?Α>ƅH󍫌`c0+?"?Α>ƏCe#{tO. s,dd%ОUmP@1^Α>ƏFtȏ4&wg#k~cK'oq[iwKn,sY֭ R Ee#^i}W:ىo FmQ6 z2/es%{.D%Sи8yS'>d6_5hS*OЅy` 5/A@oטb._?u1n\Ǵ@ 5i3-y“LT^|7S3HG]͒Nڛ'ڢE/Ky{?@ _oQzKA/P%A,izU;Eb0&1#xҒ[ĈFB'~H_hU!""`0'zO= edp~fn0{Q_owQ6I\pj g(> }/W)|=_?% OEj _ g(€QzGڢ—?% <=_T^|7Q_o g(> }/W)|=_?% OEj _ g(€QzGڢ—?% <=_T^|7Q_o g(> }/W)|=_?% OE>2|=_P3| }?!^k_/*+|K#P[?Fƹu1t4&_ɇx~)#H7I;nYAN߱@ QO߆CמaN{+.`KtDlIr'Q.Jg ]ҙ9$_a@Y&/4)_5h@Y&/4)_5h@Y&/4)_5h@Y&/4)_5h@Y&/4)_5h@Y&m|qmOЅy` 5/A@oטb._?u1n\Ǵ@oӟh((((((wHH%@̱ŴNXe~jxkȭX&6Pb#B_y1@yIk9A, ߨ$YRi;mf;}߱ 8'G#Z+$tT%FX3p=I ( ( ( ( ( ( dOG-ʴ}?!^k_/*+|K#P[?˟m?1[?/PVxZHn`G|6ðx%[Uۇq)ߟ>o6P+z]lӀv1$e9a9.[W۷Pct9v?uSo?t}rluSo?t}rlZݺmáv}}/n-_nB6݌a;q۾P*ڮ=ˌfIOMy*ڮ=ˌfIOMyqjvc9ێ}uv1Cn_Q@jp_.1%=6G-ȫjp_.1%=6G-ʭūۨF۱:n;wޟ#msO}E"|d\"|d\*nn0szK([W۷Pct9v?uSo?t}rluSo?t}rlZݺmáv}}/n-_nB6݌a;q۾P*ڮ=ˌfIOMy*ڮ=ˌfIOMyqjvc9ێ}uv1Cn_Q@ @&c{Hr6(skˋSKf69xf9?蟝YI~ֿˋW[lȜ>1DB.p0 Y{dt',U]{̒}eЛcܪ_e!)qjvc9ێVv\c2Jzm[͑Vv\c2Jzm[͕[W۷Pct9v?-ūۨF۱:n;wޟE[Uۇq)ߟ>o6E[Uۇq)ߟ>o6Un-_nB6݌a;q۾Pnn0szK(mWn3$~~忼mWn3$~~忼U}uv1Cn_QBZݺmáv}}/U]{̒}dU]{̒}eV#msO}E qjvc9ێVv\c2Jzm[͑Vv\c2Jzm[͕[W۷Pct9v?-ūۨF۱:n;wޟE[Uۇq)ߟ>o6_nU9'9wūۨF۱:n;wޟv pۆ9[?b+|K#WOЅy` +$n,YmX]1=yD*ne(1됧Ҷ)}l1k:n"#%mY0L?Xj+,:mFHC>ݬ.O5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?œUv VO۵iu?.`OTtǟUl[ڻlӤm̸+ʜڬ.3bb;/|O%iJ,`\q[ ԕ+ @ڼ tSu?*(ԝ&ѷ kS5'%aOErvhJ5|C'ha F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F5598+jM~Uv,@QEUV"? endstream endobj 378 0 obj <> endobj 379 0 obj <> endobj 383 0 obj <> endobj 387 0 obj <> endobj 391 0 obj <> endobj 395 0 obj <> endobj 399 0 obj <> endobj 404 0 obj <> endobj 408 0 obj <> endobj 412 0 obj <> endobj 416 0 obj <> endobj 420 0 obj <> endobj 424 0 obj <> endobj 428 0 obj <> endobj 432 0 obj <> endobj 436 0 obj <> endobj 440 0 obj <> endobj 18 0 obj <> endobj 17 0 obj <>stream xXyxSe?!4"D砢 pAepX X[6+KW隴ifϛ=MҦK;-eiXdS`t@EQѹs\NEq<}GsqSb+,0Naˮf-N-k!{!alp'z.<syi) o\pO^>+9/-1>{aD|AjrV|#s᎜Ĵ gf.|#伢ݘ%,,H[M%//NؐQ/*/Ԃ;_(ڒ/Jl3+VzEd2~"$#QD8FūvCG=zxNxK"N 4A :).UiT@ QCͬdW_FduA/7j*cUK+| 2i\p-(&lq`.ډBqӥFc IbF*mV mPVDkL)f@S^`$3!|yB+󀥻=T't;{Bh@Ǎ~E:FAf\~J `#W"Vu-ļ9ߢF~2|Uc3LyI}iW@Lv ,+Rg pȜ?d#Ėj?iyYgZXz ny*XtdR@ӗ@|PD箇hチ ~fFNԜol!0UT\ !slQ^v4ˠۜrFZbs@-CR KYdV6oMQ_(Ѵ8HQ$K(9Yoj.  ^ƨ@,y*SQ~\D׸&n $$nzѸ],}h~~_^ʭJ~*] FGi}7 j r8 _G-?:c|ݼ97>3/r@;hkS>hv>eQho{;QgYŞ4.gӍ>447n,م|ۆ"Ax7O.];^$qs=_F]xV7݅x)IkDܶt#<ڼ7*pQF$ o[;ȁ\Jbv,XTzѨF *J^Fj++ qw Q'/u;Kc:(^/8rPCIw_L2*Q|UKkvGuXM9H7<NoqI\ Qgಧ5Ɩa ~[7YMvfSiЂzq}܅mUqm l[٧Q(qP5+Zv֧\ t Bs趘䡱/У aֿ7'2̕jфcȘh=JvhCazfhɟ#FĥeXO?@s|g^r=#^J_rl'=IB?Z!ti{H$Vxr68rp߁<ĆIنŀ iBZRV.n TN>ewR$զhqy ?79ߠFE5E9i=P 2A5YQV[)MJ..Rlz VA]M)/Pe9_Hq ة4v1{ߓ7]xsnQev'v.uQYZ ܬ4؁c\twTXMFI +fZ:bMnNfk$y|"ajDŽ0gz6JB T5fj? 4jJP,soTeFPJizA8܃g $AS ր79@ao4~N%%W7zNOx$sf uH9]dp͢m! 5dxkeE9%/-AI(r)N'_iV&rM@ 20奵un e͓fdi0kSS2z.>N\Tڤ^7ZlĘM`.OYNb yWr\md{:Y*uہBC$sMð_h]Eo@X^Mߨ?| K?~X[ViE"[U KiST0E;Zj|e "H(*}͵-7-34<{;6Ǻ5.Hz9,N<*zƫ;*?\WBH!W}xպu]_5YMf whVd`( 9Y{FzfWO:"0l7梙\(VirȯK#3QF0˂Ř-5m2Y1[AR.;xMqiV6?,l6\}udo?{jCA2c~&QЈa8 [ t)Of=XVľ+RPfV2&m 8_&d_, @A`,̧4{x*LEePpA_ߋe0T ۄÄw[h﹌ d]MZ20Ya]cm4C٪O"alIA?Xsdx_q6'fi/& != _4b՟%Uh=FQE> t<_̏B|g^q좴"(ܵH{U+U.,'*a75C<;cJgbLtLU6ڂ|yL>Z`)^l)Z)J*[ %첼G{Z)F BnnIONR$ ׻rxXJL+GoQ0wGq̞cأJPm(woЋ|Gw/ZyuoO{(ՅXEH/qڨW&@`Mh:Z䴢4J?KthG=ޞ W7$ޝ\iэ7qQ hm1|1qePB*\ !oo$ĩ;Xr}{*^q<;Qc\)$9$z=49'W@v.zEkHX; Oike?n>8fԔu4ZK@V}$Wښ]BQ()W/bTO;kZ E %ŁBLuh W:Zy3@SbMq&g cpD^j{χU2 \ZĀ+N#v nUg2nT "Q-jEH]jZ mr|3wO 8?1uotY7r endstream endobj 441 0 obj 4830 endobj 15 0 obj <> endobj 14 0 obj <>stream xuViXȌ*qwB-n+ ԲKXBRe([ʒDb@@A7幔k[Ѻ Vۺayzz{?y&3s{alDxN^_ym[ac=q]v>]` q& UhLd=x[|S$ёQRNK,mZ:%ѡ!n!Ҩpqg.MYag1"#<9\MxdUqL.tK 15%~zTvVXخ\z A|Hė3I,&Gb.1 LyLb6aF9MC\I/x;ƋLD&9&HKZmʍe?yn_2 հ>7P-g@ M"0yݧkNWe xR_-˧H"$[b>* ТڤLD'Doxsswey%8o\*Ca*ڝ]ށkղk0&2Ȁ 26!#+d\89j".r%_ 2P6a yp q-1 n8ߕđߖdLY\ZxpgcQ X3쥘QOXOCB'a:'$p Ztֶ֝A'VH}_NZPDWz\:Ko"UhtC`Y*(!I:##9NvgCi{uL}7ȴ KԹ{9YJQ" >zX*> Bk"PK0W"Ϡ}/ VwX *5PȄ$*Aҗ765;Fg0ȈĢYx+czhnhSPoHeY W?̰G$}(9(B½W9Gb59|P m! $lƾ:|VF@U@VvP,˃,!ѻo1X/lCpZW"k7k/ #g9Ƿ%: #vB*ĖK(]@3[뇯0%^$s.0ZL:FNv چD*coU~uf>/%?k\gfT=83~ch50M@օttG9'U# :Xdk1 ?.75Uܦ|Q]sOY#P=lEWs>Z JOuW3hmE.w{6+%ӲWkxhMd_A Z )(USA nT_^\4By''cާvCUʜ"lْCu^p夷ٿ= :?_% QNJyT޼7n Jr{hTJbRRebKEyQI$W3f+D^sNk:p.]veG{Ks1VV;V>sw#Ghww0;i[(>[|2~g٭v|B㕻ݜL& rTG ȝ[bq(lCa̅|4Lǒx€#LgIC!,M'̥o]D#SŊM fJC³^/w\8Y RZzuG7 h ,-tj]ҕ_K#3tCrM||rr||MrCCMͤ"eWs'3K`t7 xlW}Es1ڴo8ڎ?h;50RXcp`I_5>=4`JRO`[җ{f\~:9ՙGݯ52n[VB,pO}t- ȴab?q?A3Nubu4>(hz#Gn犳vggmPE9FL<@8|d )QYJP)CWZ/5z|>x˹hO`I.# -:>42^ }<ṹ8o]cs>!F5C:cTYMrkRHTlRe`7%|#C%)պq ^l_y1JԜkQ%Qdp!g\GjIN<1C?6>Gv4^%N,7q\th;zB X?=oM ;dqdr!f?!po@ivO0ɠm&) $4E*%(rE;pfB@6@QEV)uX]PTȔUAPRJ=9$9,");exIX*PqSR_SɈX=#c$Me;t{mŒ(ll3g7h.!Qr#'ZǤB`\McA'9x>wH܈5!?['}#i{9S&TQ#OT7S_/Oj= WI3De4LL5^>Eo!ۧ endstream endobj 442 0 obj 2743 endobj 12 0 obj <> endobj 11 0 obj <>stream x=mH[wM{ĺvٔm1f NYMuֶф$jQ$iRMBL{S5)VMeKB{_+}ahVnhO t<*mө5l&٬WwcFq,HCDqs #d ۤmk:Ѐ dt\̡Sj*w~LP] XqTpcVⱂ u0z_Q$;|iIt]? B]AG /Ѥzsn}~b6k~* {Fv R,P.tS0qE o~ȅy/sηrqLC#8;v~ 01Z݇LMZj@&+0&֠Ėm›Gx0O?bctZu 5y-d{q`Xðety=>|MG&@lEY22>ã>p. ZtZM{W:SLti̐衘P3!RuH!Hfv(c%: ˏIe͓i.; JN߈E3 _!*0G`^)I^D@#rtVS'j7<'S 9Yp;,$ƊJ:Aͥ@*ٻ6|NH(Y ܭ endstream endobj 443 0 obj 914 endobj 9 0 obj <> endobj 8 0 obj <>stream x5}LSWiwڵ풑mƏ@## [-N:) C%`KLj%[Pd:DJ沄,[|O<98kvX,jfKψ褗BzEYD[dFUWh{lBZ*EUTlhbdBdFYH-#- v|HVlT;͢yC h 1Aأ>ݣ9CMG!Ĵ it\8<$!dJ^X'@m (ZF_-#?:qo|Me*Jo##a2Uf.Xp`ܣh+s'R(s{. h.E8ODW/a+D(n ¦4f7_㺁cGI H>,w^+s+o Is3 -$7qrz>(&$G J$q<$DfSz~sׅ;U.P͞' %[FR0shT,s # ĺΗ^+e2c(v[Z`&f\tL~1~{d#?`8#,?<)a":i$ϳ lyJI,JgLKkA` d 5\s'l8`N~G4Wn9XĊd3w왟GwLx'}PÄ+q^&;bWowcB˅eq3Cju],BSE endstream endobj 444 0 obj 909 endobj 33 0 obj <> endobj 32 0 obj <>stream xWiPT׶>mC1=*W=Qqq8k  ؍ dRDl^ QhI8DPj#yzq5wS2zG7ַomc7d.+Q;ieLW msV6 Ln=͊~Jjvh8%mp!dl.vΒbKI|F}w.9G0\C#G|LFxļ+p,ob?+HUu[Hp"k')KrMfFt(Š_CVNZ188#1=z`D.k/$s{'lzC8’Ʃ8bVRdĂu^x/ECY\t/AKE|>zz9u}j^'қ8d:O0E ]LXmnCe(rtێc"fD'dL, oDx2YM=a.A[Ěh0n!Єx3?7y- >Rx8Vɗ5q<$~z]/CX-8%l, >իCi(7?׶-{dXr9LCjόlN@| ҄V{+O&d;d:YtAǣƽcL‡?W|5}@~}⵻Ou]@gu3Yf+rT/Ҝ+[$H<,d igSPxk6PCBI @hJIt) 2H%Rmw4|噛z\Q5 *0-gFu%@ϓtS1[1"rr󨰒O> "aonH綵fm8ݹ̃ȣ'{zD}<_KFs^юRgiB؄y|W탧|@3Ndzmt=&8-_ l-Iøq+$E-;_H7BbbhK~*THqqq` ?hJZHTIG1Mb^ڿuRaALAf)e%f~)9ۖP7_y{VXTZ]YsnÅӒ 8ac2!p0Uo2֦l6尽k_-bz)Gx{6]>UNKqkl)f()8-qr8Q䄲:'g 7&i endstream endobj 445 0 obj 3317 endobj 26 0 obj <> endobj 25 0 obj <>stream x{tU' C)E3ЈTYX9"lE)ȻJy5I+-m5IڦMH_Zެ Ȯ,E@WX]uNz;G]잳G3s>JqD" [e-s& !Lb?Ш>SPhd!HV߶<+8Wx|숨ŋE,S+r{veFҤ+Ի4*"1kR)LHS(RV](r#bRAL؛Q&gvG "xxXI"Fb D%D,C4xbP2E LjRlTr!K OY}lgzTU95Gl`Kar)[QdbAnR}AO؛nۚǀWs |oo弤e9tגc9*[RYa*5u͇Z޽?C4`:&8 VS%ǖ}~Di_4eӻQ3IGo{ADx}2 8B>X=WWps\m*(00]~$w܌>['0kuY]8QӦiWD ~ߠV[#3(V{1q&X*BGEP)$}}LpxHAAH(fҸE.r=?75mVu./9 .P4f7iJFMc \z=~CfӉL^N>_OΠ ?{mСa7:JNA}l޼J?th @޸ 1q g̉Xy%NSRaKZtXfJr(q_q:$7jIӢe:4#!r#+F4rgkCX0*s[Zin)uE{r[f2sIZ8N!Y%,cBk8[-po5E +e!퀈Lӽ~zSܾBϢD,-PN=㿭H 7*GϴHĆ3,5CvJCbQf874*\}5U /\Ǟ{TA :~ÑKN!b0*-LbTUn޹C҉|3_ŜEw~E]>jg ]"q|.s)?ZP&ߛDNN)(jrޮu?27bd- QlFuxChINKNۖ~Y -++X7/1mvKkA9Y26:s@pB2w!ApT"KOw v8|Că[b/"PfR.R]TV d9fg=mh*xV_4kW\ӵ@N~IgH2[cAF<1K?-9zH^ uw:^&;eRTyyt wftJ]@_> endobj 20 0 obj <>stream xYXT׶>82PjXc7bAE(ґF:0e ; r1hl/1111rswcSֿXPݻQ׬vtZ5vu&O&uTxͲnh5??DKVnY'|𨅣O5k`НWx/wzGMl?xpGua<=:0( X:xugh EWG^B,^niNe2w9wݰ22mc6s|̬ fpIs't2jiCN˪{Ez* gыSC-@ Rklj8ZBMFP먥$}ʑZFS˩)(ʉZAMFS4j ZEMRj5L}L-fR-ՇFRQvD Rݩ=5O)k$CޡzP,ՓzP6ToJmѓ,s=IESۨDܻE7~r 5z KFDZc{{r}"޵rjϪ_@//_`ϺA2J~g; ~_mNٮ5 xwg4W2:^{8 ~ f|t!C6kؓÕ#$#\Gz)Xƪsf7"aCq?^,:VBw\Y쭚nsG7uroi{ąbDrًmؔװՌ4"f&oZh y9}Pnw'"wY7"♐∪ CўS~QAjPݠJT+j.pŠ/`6L9wNd]xבe`n تnm4hR1x:*:wl樮jᨺNphZ)-->-1r@4m}l]7?hP10#uN/u9723+$Gs$ ^6fwљg Hxwce4sY +"DYɕ%;]ۛ՗ђ__C=z_f\j|;U5M-8kxW衜d|?fR$uO,\Ҁb\'QjH DwE2T{r iOMB>~ȗE|ciHcCpIONu a$*Nҥ$IjI6O23Z#F+ ̋l;Vjk ʥU<PiRBx;02AT%r1yF#i&Jh$kRwR ;'k8GaӢͣ,j#Yl6#Y\_ zm~4 N4_wn߱4ޕb4 1GK!|e⧗XCi'([W `JMVu"w:t=m c D yir1чObc`q)KA:5ړ2:\_*)քe!sUB3*B./n ~mYyuI8cwV ܞiB<d&!YPv`2 hƔ!3O,h ('\f$O+$WyCbm^8#p^ ړzMv^ףsG=fhu9hzwf33a[6gˡ}TDf{߻j[P<ƅ P .k~-[;Mi$?;FydGmK[.ln7]gZA5Ysa"顪ϪξOx|X I˯+$^!/of L1ޞ8meJ8p|d* AAQ!? :}㳋9I{ۄaeaaeaeeSK07ˈ,e>DOhŶ#q$CԢPL%[mTÝ7s G qB^I&/N!T|{u_TIA @)qzdA#ӵpX0Uޚ[uoLŷr " A"t b?Axs-{* Aq.|6a/ï.jO3qS,}J0+;z3 t "%kLQ)q(T&r?#5anBuv|"' #rN )”Pp1U!kmZ>I@.=-'To3nH @߉No?I ]9 c S+}b[WHbWl{k30:kCr_49Ӥnؿp+08/0DWT*rSjiuGs?zcԋl&bժ;C7 3YGKd4I[scY3c![Em6sm8!kТ1@8$j^پ;:E~GUíO'meʃ"Х30e>3Z;3# `' ݨIDٽeb;B1ZY`똳9+R KQ${;ZVa?P,+D xaFuf<Đ%ǧ(VϵS0zI,C`WAivv^u. '*tfm!&u%>9 T]{jL͙RhyS8=;҅W 0yu_VўqsΞ-7;pQ]Q4âOi63Ć4mrxȍ&(Tf2 7:p/C]Nh,!HZC1fwѹ~]e*Lj) S,h a)TIlƴ|&UN8l(ޡs8 F6-v{lgM[35iri r8CDKU# .^+ e "^2YSR'JdV߁u>_n~V+8 ~KR‡0?uҁyg_Pw5WZu֔G}/?O,\˙'KPYP JFe;8{և_-뱯\xf.K;n}\gNO:V ~ W&$ݯPO!o'?TTo^#{x)gyQ?{a#:~eTJgʧcߟ0Ym69C,g>z9dkC\[wB5I0u2$i5PiX:Zc~Yi]`C`_ħˑz;ZQ _9{8%zO]#k?x@ /׵G^{R,Ymٹ9)ly"T}Fbhw5XH~BXT2Uxo&1-5ILˈiSH~+xzLJjs;-QX%F*?,- koBzZzdNRP$Jèx `O"[w"EL~9厣nH:x u2!V3|(J'Ef=1>HċW祫Ғ8TH#D,wؖlLҫɣ Kt$g\Na2 tps F\gD S[T^V]瓼mڕ1;b~I8K ?% r)1=k-SwCK>ntxvdne4JGꏗ5)vXw_k*ܓ'3;x fq؀EO"I&EK6mP/|]Q5*5f 6b7G{8lK .>ӈ7#8Ex͢jHT+·p-(MsVb;d֫ѫAf-F&_i<(Mx.?} uL<#~I?|Zq2 lpL ff6b_2%;{"KٝKG"QEc>62Q`~k;ӓ.ye_mڢLJ;=J&i6MSֹFqu=7/.eu)A:1 "@SX2τ+P`Wzq=0awovYU endstream endobj 447 0 obj 7936 endobj 45 0 obj <> endobj 44 0 obj <>stream xViX[EA'Q {/qĩ7vv!bc0xe #a&vJG.H" 8x㵍Ig?q춓餟g2W4O湿!8%pHٕmeB"(!3n~sxZ8(䏐T}#eTUj%K3L_kW j%bIX¾Lϩ* $<K jك3*%̪RA`q囥r!L]/*ʨ~lcDX /Oc 3g'sN6g NN.u9?#Li9s8DABZ9{]$vV>3J"{箙?yy=oܬi5DQ~4!DMhdsiK!0I]Z: ?tzf--Թ|+W$g"P4(}`9v Ǩ |5 t1695AS>ڃnۉ)7qqHlyU%nL{o dGYդkVSFAV TCsц-@VAFm*iesG|#ʙ'ڮr.f,nuBNlq#b]f[[t@D{6jIJrp]50*`T&Q^ ZOW;Ǐ oXwDN}3X5 [@qP#@")lEEaIq=FD\ˏR%xSAiz%?~crs܂-Wq2gic0M ( /#{b=iϛ gz)B: ~VңNo)XswhDͥ߻y tL0&P*/`鰳'P:ES3})|Ш-RFgE> CqQg4e8ݾhHz=q/=hՅp 2u;0`@#0J;{{:چ G˳DxL@ 7aNQbϸhgV\P)+OPzt5z/T90|t;bҜ pj@^ZyO8E ~@nrcc|*KJrBi{xɓ3?<1=2BEx!Ti 9&BAa+`9Wx;-4Zn(xtǀxAۉ\5'1'ΩXu-w.7ƍ)/-y'MF-;maS)+4ʡt(:G:pli%2:#rvyвe q6Kk N{ŷ:+]hM VގSCz}7&Jڨ7Hj,eAV/k'4ѭRMJD6N:C DHTVk j^Bzk-1A+;;20ƩͲ)mM>߲B?;=qӥfF@=,b+cc[[9Z?&ГXP$놑HwptZZ[:v558Po{jIk*%գhHcGU'MՖg[(Ǯpћl}t7C 2R*qyF B/1AF%𧉸i61J=UX^H:[D?CtNZ%5Սyw@A2*A+dwRԠ55l*Rմ@J*?ͺ*&zcwtw;߸EwC]w;tCJP ud72q|V@3nb-{:;7t)t,{$v\Y[SVW6Rz ȯ&'^hiQ:VJ؝{N&amb_?6ZmV7( Te&ZdhP u nQ2"<.ƼK= d`cF cSyum.]ONVԸfΩt(6x?ǽ N> endobj 41 0 obj <>stream xcd`ab`dd vv 2~H3a!\Oe&u }7n]W+9(3=DAYS\17(391O7$#57QOL-SpQ(VJ-N-*KM霟[PZZZd =xgJ)cs${sxx.ؕ endstream endobj 449 0 obj 375 endobj 39 0 obj <> endobj 38 0 obj <>stream xX X֞7TM\^u+ `EVA(#uC[UǶn֥3z!93ߜ=܉d V-Z2gN+Ǝ1c/I:IYbYE +lL9$46|}@`Pavc'Od7ku>v}"7D6- Y?2}Y7-1_a??<߯\MQvCÃ;+6xSP?Y~iԜ}l4r7~ƞY,df3E 3,f\1ƍ80KGf3,g2f8ɸ3+3Y,`ccz2+Fa/c͌5c8&YZ'NSgvCrVήgopc >%i]mx{gtOvˁ{&R:{jVnVVE E>3|+L M|orPDt2h/[' B`gXo&e&yjpDËvz$@{8XaƧP5hp|/ Ȓ ZiM".2@N.Bf1*{Fh7!34@ngN"Z ڱ:}5_tÅm#WGr @O6fC8b;W&Ҵ[T[]GV44;d8J=EWPvJ)z9 {%+”;pdfk?i,6 4FYCsN[m!v6kbW2'|b6&GA3ARN s_xtl/ UM8OC5VȠ5E{¡B 8k3kU }v MG&*\ȴ=b/ X/MFe&q`AJ> }`tfn.ȥc,`-dpbKz=tďp$@̃8UX*:Rgj:RhZ`5?CqJ$Jj\||B:e"Nz! w1#.ܓS4[陱?qOF'UVq8/ÂW1r(%`/N}Tubv`WG 33r<:QHE]b!J Dh|)94Rs5uz(bNJm&;A+UnsP05e"Y~ke(іk:ۆQJɧEWs4MֱBdnjw$+,=n`K dF|W4Bo8jGz,pi0ie>5"s>sOg1F-~ްOՁ q`$;vCaa)<}1Hϯ=QO+2s65]J=)h-'z*=YGКn,0Z7"V[i29vW5[o04QpՔgDC;}ULὫbB0S}LU~-].MC8|RЅ7 v-jخE4?L/p>a&&p<fF8T%bsq(o "ʐqd>w$Vce{RXfgm\8ʼnϩEv#X[f~oSZщ%[N3ZZS?ۗVƙ -Tt[ =rOu+#Ȕ%;"JqYk߻gܷVp0545k*b$4FҖ|b&C^)|xa}E{K㪼5k>YMs-= LѰ5mUMhe5NVjt{W>T.=F@xA~mfQi3vd] ~I_}Uc+oFn3"FeQ`lZ m?1EC 'gYLqZ%hgƩtn҅DaPR-?du>701I'Ptht~>^H/UbS 1~ʰuo"Cǩj+U܎_ohv>A ۀHq1}OvTw A |С~sU_yPƴhɖ *}+ tO4z=ϧ7X+nI8 X.h^z2T74yEHk.naLQU;P+<)ԔDZF;_:hYÒ=rs)e0dR66~IJ-fhAޘ3omcqa!rI Q:aZM^4]SvV߿6݄J7K,˱$dEW3  k.Rg\-Fv^H: \PTIց.5IE.rpny`[lqHDŽypI(/ݕQ_Ss'+`3hTs P J-/qޠI/ 0de^[ ՄS- H3Q+,&l$hI,:MEC5ts}^W$oHKu\HEл Qg55FeO-> vu>-4"gZ ZNsTsaZ_/la8kf\ZRؖAZvf+̵yEryKңs2Url+mCt4OFm:8b e: f6׿'\[zW)OȰ%r7 A偌C\oWPr4[C2!F`ںeFr#FLJXWuΘq'oNr)V,T1mȮF;([֊$?hj,<7 yE1+”6X&ȝW|+$4m_>p4Dw)(ɻ?~n4F}O8  ԌqNH5, Sz% MM\vf )DBXl0ACu5Y;U'W; /߲ۧ-whF:I6λfh2wn -'Bv'l$mii,m6fIff iبب3d()d+98a<)f]3]}Äp ]qCLds=cSR5j@rv~yU[~@uO*.4[%:=^ Ʌ9znWǨ "ߣFX(/ں>{+BaSqH>4"N-/f)^%I~*=/*W |~Xꑔ@z=lȤ7=1rL+VyUUaR?ǑVI)EͶҬn{G "=h;)=Jw;ڏ/pt5eE([a-3jWdv6=$Zۚ$?ͱPc-fYg^qxB#`E{q~h>WR4y"IS>ug|CkvH0G\> endobj 54 0 obj <>stream xXX֞uagD: I+bAQA,H&]Div.H( b&j1MF{D!,j'/}yvۯyL&lzlL3mtZ|[&C*_O1 L0=ťU 31r~mЎ_o0+1VS̙e03w[[g[o3,jB5/BxzDxztl#<3!3$a⦯\aQ*BC}, uZ6/mgsY'̙8e3f c620pƑc&1#Ռ=3Y,a0'f)3Y,c16:f93ìgf0Jƅq`1U-3NiX2[L_f3`f31?-ѻG{odnbBx.f؟=L%KAQ=փ8Ջ*cWjpA\^&tKB!ɉQD"1A!)\J_wjA3 Ai٠ӥw` ,W\ M'  TӁYrO#ͦdn|uC6KL.YNwjXCj &55I$=>2LO%tEF& Lgo) q:m]4qM>uX`iJ#g]Anp߻Hz:,4CA5Uf|ab+u_zu}Ydnv\<\:_ 5IFz޸ >ZMwX: 8b 8sdF(SScvCvpWuyS~mf#v#,yI8#)j2z+ϥep OC ė5(u& 0RqJ1M LhOkYz/.#,!#g_.uJRAz=ck e# "8.rX)/#?ҹ@ܺWHl%9pڸnYG>m%=d ǏЕŞńٲ]*)14o1rx|{2̚> &CN)8 Y͓=oGʊ%8 ;ʼ\@KIәq]q |*&[kiF'3t[ҙE SGYmK7pgt&es Ǣ[Uɤ69:gm$YD=+[nVUQoPO/ѕiK4((=ddk@U)Z s]3%й ZkQ"WBZҪj{D2xwCƠEs4+N82'XJ.4kmg.xsnq#u ِG7*%YozMg3hZEuЗ(&'o;DmSd7#Ef#]:H,H[*UE,٪FtP.`0_u76)ZWL9 V&8p7$EkRc˗E#5eY{P^B6 }iǁ;)M1ekц2h;Fؗ8*/Cx*c{aZҍ@x =w;lټt^웨X,golXF3& AOgES{և') {1ہ[9|G׭n9wB?0T/>rr G0^?+4 aw|.5Dh,<ݲx2{NPul\]nA]w>& ;6c-~ ϐQvVj%mb-1`Βe0LR%vHeŀE's(h5,r-r+[M mE8Y@\"MAWh4S.<&y}&Nޞ]ŹwUW닛۝kﶇcc8$#p sP1Em93PH emQUz.5.`UQ n*#ۅSX{r(UWythC/-ŕS7[]'Vi(ld*3 J!K[a ~:\9~ܻ7t_"g5PbؙRk_wuw&p:>|HO,4(kd,ڻuBaA҇&FDC۪Ncr8/IjH-%&yeP5 c 듕5t8p4ܸ'CʢABRF H S :(*D~7c]Ίrw><.D'hc$=+Jk!Ֆ?[QHpA{? ʗcLHN=59e<鉍t6qf:KA [xW8Ll<⿖l*XheB,3AB"c` 8\h j<+ 7ʃ~gCӀ˃"IZ52->-rm@'7&~Գַþ~u͙]\L6;NGGA@ry{go}}@eZP}. c)jb Qͅeռ)է|6}9eue*poDaJNt$2ZIM[(˺#R=v ܔjM>ΚMzUI*"oцǜ,LϺ 5dE^e  {[lhzh8ힴ@vCge~,=PCS!=%^9LJ"HB@ǜcIOHK dP&jRRit wPph?3*=,sd(;\jYi%k#йs0qvtE$*Ed/#ͤ7*hVgh|Ɵ_rdK/)#>;x+ IWs87vTd9Y_fg|Ki2m̭c 06rK! ?3S/t>8M.^xTO;xdM9 _s&#2bxu5\醝-W6nR6fg|dnP%͗ʻ',sR.3TuQPZ6 qZ5 ?!KH:&*4;JM@Arq퀬$"ڌrhwToߵ3:tⷘ{0Da\2(--^mb=o~xPvrM\2'@9@Ymu #ǝ_vwweoMh4NUpKwJ#h>UA*Eh 𓡯 hѲ]2u(Q~JHt7q}$ES_Ro?oGY]]vW7o/OH/ۺ$D'ЪeK&GPࠖFY=@Y,;=p%ZSB> endobj 48 0 obj <>stream xYgxTպØaΠbTH/HH' i^ソ==Oz&"D 4AGzY׻&z6@|\[z>ǘ#GahpJ*,Xi^|BFRtdz3& 3̍ Oݶsmmj&vLP|ht:c򘹱cV{V$Y}uxҘaI;)*ܝVK_jR䨅E)-NIݶ4=n:ߙ&0y3'|j2$HJMVQ (?j5J=MQkbj AMR&Rezj9@=GmVPYdCRaj$0%FQP3HTd~@ngOAH}?␶a}<|^zF5r7vȣFŎ Aq[t~r yc%Ղmp%л@*.U5 de}(RE%.NsayT;\ooQhWY9\T;\D#5 +hUX I*^ ,ΒN㥢]~ _)?xnQ针~JQ&~2f1Acq a9}ց1V.77@y[A Gqt;ݶC4v:ms6]D͆,XJcwok)g읖*{ L^371[5gz \F HŗQuq;hw}S՞sZDZ/~3Xve_hHSo6x.ϠڱpU@o\ށ(JOqQПpJ[;^n2o];T=u>֔ J/Xas,nE80N#)5E,{͉~d>2pyA"3vZއݠ .tevEn-VkEPd6% }7B;R41WrR\ S2gLg!̓ G?1&}wP,8ʾ+9~x7Pc9}r݊iS"_/$p L*:C/})JR>,R"9ET3 4}9|鼵SQկŮ|8Ʌ"IT<ӻDGh8y^r$`iyгL$єG %x0~?xo.x`4K e (-fk=X<[JfIM>356b @-CT >t;^˵8.o~2vI)r]/ f'STX} S.d "]KmzbT}W9Wblʯ k_tSɰ+ba86{'ݑHr,xqk+t:y |ruJrx^3RľOw~ut^0:r*}\+W_I}Oť^ gq[)TǓ3 v0{pnKX/SHQ*)_ kSrl2 )`Wfg̔Q}h.,j14QFNWze3w5q5(sRqʒבsZ,.(;wÏbz?pehY$r3iMS|lYԌ{i kM0!-כ<3gxJC,lߋu9Z!Kx8zeT}gDShyD1 ПNƏNaN|q>3eX-gGp&/+Rzur vBNN% pkI,g9 ![D߼Y4.lO7$RĉOɑ_n9Z;5 M.7@dujȠ R[+:m{ə*]1F'sA_o̓͠ #ݑa4g P *TsՀ/RԆޗeh4z[4KQ{()x2{NWD/dz^a5aLEQ~~9L%]Ix5x*(ٯr:.{%omf2nT$y6>ue{j$ a GYR|z<5s.֧zKLky%?&璘<c;ץHWj3xXSp'n2%/̅BNȳJ[ѫjoπ4:^_R_WҚPtu*2HZZ|QQX ȍ\N.d쪒†BC[X̸h0a5<-,9PmI[{-XU}[X1#hBpA7:| s-y2LRf%Nzlrއ&>dl.?BC n@K"Ft=tWIGAǥDE#LfgÎQ4~2bruu&Өn1vk{`4 4ĠY6CG+8-Q6AQm%6[Ctf7~:֕UQlI) .*#_U/V--E¢;7C+Iyy|~i*^8nEWwUѹX/_, v~xN ^j?e`oS7ʍfUK:It{IٽOZ2B׬Ik²)`fs/Z핪Js:I@7Q zfws`*=!CC~q!E]Rymfm\|LrΚws[rӡ%C s(wA'UiP["%G~MkTv!x*xuj.ExȘ')m!;p9RDbȤ=#HVbbUg1UE~ֳJtBSuKݽ?H?r GʲBEmG޼4ҟ:~el&_ Y* -6L.ϸQr?ɽQD(v2 AwX8Ȭ|{U\o,+I k"uh6I# u[C11"|WM)twjR(S cA:½7_Юh?M^MwIE+)F(ܠ \2H4ʣH) (#p6AMe5 c ;pRzs7ԃ {Y%qF糜."OwD?p/g3#\| _$y{ W+{Wj; Aܟ=/x`'V5^[5hӴR1]#vjH-tqQ&.ObbfʖPN~3'{bipW]5[ЗIւ{ΕԙJb+yp]Crl,,)r{[(" '͕)Ckssv͑#7E]ko#Mt=\}*~":eIK( 3mȣrt*clcV# 6C= %ʽ*흉nw:p| B9rp)8͚h\Xx [ u?Tl~=JvI  z[5 FFTDVT[/@ 8ϊ0w kXL,i/FϠN fc'cZbJDq$\#\?@wI[!=MmV tUUXp\[k(pџ.<2Kv}&-U$Q\ns O 鄑Ny } B!/Mi78&0iV=e{&s#Y b֢ $3AyqykEuLMa@͌-iNkI({R!'t|;u᣶&?K㉧lq _C2fe'm[ mxBQQY٫Kbbt e+S:sI( ޕ6Y2]_aD^PT)ߜͅE)mLߗ VR0]Gúΐ@/z s붦1@O9퇚l11A [vf ȴҞޱtteyq] T/] OUOA?ZR#4~TjexPR$Ħ|Y k-]@ȶn;;b1+RB˙:$uUUqͻ5y@Sz 8D]D&Hڪɥ7JRi IO]C3tq*4L_֔^UT {3z`ů΋T2R[հxб?9s D+OaELyqLUOZz*~&g䚕9Ӷ,ڱqc22ۚՅ Χvo1av4h슋p<~+aV #gEKQxF+\߸UZ8YYFt=:Ḷـܿg!!UǾ'>}5MF,elXae{EW@8O-﨩sŬ, =Fo~-ip]j7i BNɋ)MG.o*d @LV%Wel{AAx^g϶⇑H7V|6}l^]:/C76|eg;1.ٮW29R\pcY$ۋ_|P5վ\g# endstream endobj 452 0 obj 6139 endobj 64 0 obj <> endobj 63 0 obj <>stream xM}PTe߻W@T^s, @ ]]FQs+nʂZ~MI 'w Dte&(VP$Ol4m<^fl-?[9X16.i? _ʠ (* 6umJ|Ӌ b}9-rgNʕ|$8mM a~/,bV\{f[* #b801p`K*ZHZT֙l]RƊ5J^`m>ռd+ioMqA]DŽs ;="É?a#;Yi0:mI2LÁ,4(x)@ `0L YtĬw߆7;X9T=%lTjӣvTҦMV:`O|;wx%l{eJeMJMG}ydWMO6mwCpOّKŋ6$a2dy_BK+{BmԻ.3P4-[M۬a 缣+uuCTOm%k,b9Idho V}X n*1É᝜:c#`e'h}k>˂"MY]F~nAk~=7X!m1=k|SA<˺b<ƳI,U`@N|^n(653dR}. +,iDa_@y~qL4J`(0,y`"A46r̶)ᐏh9$!=/ endstream endobj 453 0 obj 1142 endobj 61 0 obj <> endobj 60 0 obj <>stream xT}peMdX]I"A)2-)N)/=$FfS!iv4Iܴe )48CU7p(81̜ܻ[6ޟ7y~ϳCe2$mϼxcs˵KgğbL\ gjeWEKlԷYH7:cu+W,F`5F!m̺[[k0ugoкFhcl/eoY:Fn[=F;m0{Mhu fCgk6id6 vgHslH6G`[]w+=2r8aOAN"d2DɓQ2FTIm#d* Iqc:ٸL76*_P~RHv%C\|xgI! ߐ=8 jfh+%U˷H%G[PDsV+M[9:RlqWN4eHTϫ#  <(E˶54I O]6s#GyAA*=鿲QJxLgw|9T:Bjؐvuti1a8J*0H |t]@)S,q%~꫅[P oȊ]_w0|S5X?oO0 KY--=w+Ll~V Mz8n\}RXþÇSx(UiG. 7oH/H@& No^9ҹdVlG.I"=jpjd<vkp~Z!e݌n-KY?j&N%aAРم[Slu:0#HIeGvgťD=''5hm5,t9~OQ|CuVL.-o?A=|(\+֪ИWc 0⢂\䊋Uyjf0~"; %hޤA a 71&lX; Qm:ӖԵ˟|eYo5u_>zROʻWOp%rF&;5|+Zzsq3mQ_oͧzrz,ZP@ Y$[^]ʝ֌Lٍ3X8q*> j^{k\2eznϯW|E{;'u?ዥKLI+ka՝?fa}nJx<$ /M7igFQ\L^LAN粑#ٶ9S%'(ҨU\G@\q īh!BZT)Vͅ~,NV݉Dz.i|-dxFua4z zZ}!?x!tn5}XJpg/hftv̈́(VHE%]54ܛyZiӯI U=ZŨWE+j*3)̛GK| endstream endobj 454 0 obj 1616 endobj 58 0 obj <> endobj 57 0 obj <>stream xY X׷vWVZ7T\ } &7HM)*uźP5qmmնj A%ߝs΄GX#x<ސk]98ΞebǍqcqQ6ƱZCP8{Vo 8|`7{ѢC|D{B휼>!^b<s ̰s6<a#g\A)9 B ش>&tv}|6 ݼJ:Y5:K~8cьgx%'-3y)>?uׂi!1Il"VxbXE$&[,b"L!fb-1p%Vb1F'S 7bN8+FXH~2–BOP‚C #쉱p$#N05A,1Ox41I $Af +q̻܏W_?kag*2,TQj :P;h͠MCF Qi̡YìE ?|V֡#F9t=}u$;rg:7/966l9a̐1Dy0<53֌sMvsd\8p5w @cS8cRCj@ -5A䁼fKŬF{p|C2U0R A62 $OԂ2%Y^~l՟pY5//U ٗdY-h,J۟æfE8@!.}elH$踃:^C>#F[R'D $ MI UirmJ bS}'l"8&; ((DE~8%P"&\upoЦ09=Թ衫~7p17n%{TMׂb84\I7 Wǟ>b&E̫3|^b%k=$ú:0B] RI&5^P t a gUj@Uknh&4v.Dhك}(<PlYIcѷU]&-,5UQdob?VpD2?f"}Y#y˰4t6xg;`M,?yhj($N΅jEnRbܑ42APTG W ݯ |qONJn:E @q~~qV>Kw>,4k{OBzt<20J=tV0N ǝp&J@ ǩnW*ԭAQ κni* JZ^꺫uuq4Q!4عo<-xzئs[ZQe2`$0)Ⱥ $ ` jZ)@WQ{T2T JV (.*@%hU QU`|# d1c ~ NwtꍛW͚ܞ1᪃tRgbN~@vE`wM&sH@=cotd=㳺zYx,\rӍ__~ŕݤej je")EPE EZ`ۨ:r5 \-T{tpwRP(ҁ"^XَIƞ֡#!c Q. 6ހ55 ?xylVlP܉D:8P#y.e g/߾b޴UV-tA,ڼʛy~pZ?kPH#^#)oŠ|n tC#iP4$HCk !Ia#o rGJu.uuS@T02]?@Ϣr CGg07T@M89x΃NpD&}pK\ջJX5%6X: P}:'VvR/n * X ԭO?FM7vBF5۶Y= 'xzꬰQ=f68#H#pH[ im7FAOF1-A{t7'iV`=\pq(/ 3@UjJ4 -ܾ>f+k?h4(\lbӑG\_/Y C?|aQep%/;sۜ==t␸POnj7ֳZuuv*7*e?ʪ U;пP\`OY`FDT2 =H#^u>h9 Ud2əq $'+5 dgg@tf [SZn ZL1O`= ǒXhg nۚcWMFY|Z% ^_/ bTMx7"]`<@3c"bXo8kK]V^(ة)5ZLYE=&9ߟڠ^/1^sIn XZvz:=R8 cw2u kekQ?~r `*B]4w0>}YX"XB*BuC͸D%AMV AIhke1dthxpHjI-Oey&^z2inݾwhQ/G-gj4νVpOa'76f83NDhNrtiSXGV Baed}}ee=XUvXGק~ Qn{6/̮xե,W)˃zlzS[\ I`P7u],>~KN~~Pap.Y-16-6$n٪/_` #l3qqVFuW3 ҂r@(x**'-Xor>V[V>]^Yy}?8Cp0`օ̸LA3AU/.GƆ~h?0;aҸ i|y1&Q{v `m[}2-C<`( 7Ʌ}&;Xֿl$=UV*Pxu.\`փCl3q-@-+_֙o4+VfmL3uOYH4]oקͪ+sts۶1F6YhÙϟ?|z71Ϲhh"@ \dLDOCY;J26DB[B9=12#e/bңq?l79IZ^B]⬸#*(\}ppb)\D"pw:PuO^XnNxo):Bh [5]6phj)|۶{}k5^_tSqiEc4T%Z):~QK<21 pd[Uq:?&S9!LAay !^fBӠ>x۠.lh5=QXhjv6^WwvX+%k!=\o qnujMz7)J2nS+9Nh`7ڝ(+RιqvﰖU Xy[_n[[s0>Nls(FՂ<|4dZ_wцP?J[  ?+t5噙2,ˠ@vGy/aK[ز`?ݾÞ{!A> y̼-U>-{o A33=7ؗ ESy$LypV,Խ8xhƙI=Lt7d3gv+w8/v9;y` ;/A-Y|bǷˣo^>zӹp8zٝuL/t.\6vtYhXV_ǘjZZZAn ߿{&\_‡:d@~<,"iˊ5 \UFAgMrA<)NKP(ihM\rr:RUg Vo+g':lQ'l58̭ &Z: [:e*4;''Q1pQtlHPJ7d_TOGI `D>9SvA۾FͣR6Pg Ҳ@Nnu^؃$?ûtkHm(8ط1PMSS}-wNa'r;\?5nGN Y pDŗ!>~a{~7ØB 6NP?d1UƗh-O/]w0N~d4eՅp\';y5979X"IHcP߫ғi VR*+/f?۾wloߺ֋y+IݱcujuE$ gV.}w_Ǯ>[/=rЅ;ƙC=%î:Ƙ9)]W**Z*Pe S㓁'O?"by uUǢ#Ҩt^^=~WzVJR|%JRe)QyZIE[cLYSm4z vm>ª4o[&-cV}+pTQW1yOveB)wꓓ_ik>ĔJn/:46S/\mќ_C p*wFycBmm̵.L4}9m~i2@y$];U>y5uߌՠh'߂^mt~@Ǯ| >0 +]/N8+4.nw Db aVظ*@˓SӀ2 'BSFE"dwq &ACЀ%'iiE<ɦU;8ԄZ99֟TV01/G2l Od8,qgӒpŔɊ_O9c.5@%& C%T ),<&Q\PZ*(fz+%Ï$kS 5TNQW|hЪ]kdSgd1MM7 i?8H6(\S8JYa( nae'ٜ\%82.hγ-z Y}yq+ JRch@ dJ A E{ *@On]qǥP9|8s5]W*MLMKMaBRmhmB86:.4PiianNnX_[Z |yQBQ& UeJP:?NC0O)M A+s]h)|EH`dHSGSn"avx/tzۭF'dp!╠`X4fV\Rrsk\ zޤ Aߦ3;ҠBRLJ20EĢ A 7ggq[|źWnH>7?ǷA\"߷U1X`XOpyEy8A^ sȬU} ,>*pe lc$EӼ͈؜ mAW:P[9> endobj 81 0 obj <>stream xU{TT>3sS;*s~$PYIR(EIFD^: <a3*Q`F% )KS{[fޮ]^݇co|Z_k5{cò/DGL㉹?}12C-'{Ǫ6OL0b(>ñlؒYƤ)S~AAT1)^g73mTz|!#k68%Ef2fq!~ԍ6"=`LcfdpZHBFCq}FR~[yOgf!3Yʄ1~LD3iL gF023Ō |F8n IUK]|pC ? [jւ 縔E?H2j޷`e"wGr^l, f,g9̢KWeoV[a=^n~VC P{V m\DZ\{3Sb r/!2Nln_ &Ihpuʅ dL%̚%IOAhcf>wӯ2@$Gd­nW]^!`X%D]VKbv$GG|o7[O)Atf9֊،|&υ+q\R %<拍CvYdYGp*f Cѳt{AȅdV"jǓ͚ϻN_ܷM 8DǓeJ@#/<(xTz>]&[sG:6EpkDe]d"F)SVϾih|Rt)n礎 q)ICkRGCC'E>-pe{ bQ9l%''dH:T NhF DE x900͞OI7B(+@$zjvQu ~a2[K9(n[zy~t hBM$iif@V8i2ᱴ#PDW%D͐it A2Qk6eSp3/FH{Cdr^>:T)Nhq;-KBC5rdZ-SNCϽnJR*yE =9š$U 8DțLݗg15Wz~/_imUeU WpwGNJd$ `b7T4U,/`yhN&dkA!!'[ |H׉vc6=0-U#L]h쪬ibG=NMߦ~{#ݬG+ry"UP+s^;i+8J xRSwN7%m2y%[Kv2ށߑq;uѐ8Aϖ6{ q!? >sgwpۊ9QLl8򚣶l0`~H C-j}Ao] 5Ȓb0"_CC{NOMOMx9@+qm=OV .Odk> endobj 73 0 obj <>stream xXiXS!Eũ[;uPC[E $ LD(ZDmjkkV{kӏoǡ}NϹ>O~${oZwE12lǒ=ޘwTwL|N!_O_t8уA}3O M`Dmv8.AG}tHrͮKG\';ga8.GJ6u7DsIe'nִx.&aɋOű8VRVm KP/ʏ,Tۗ9׿K_jwNpwf}A|c=.cnXA(x%o}ee+UҲMOgySbFd> %Li8},#Y͓}nkڔuGU[hYY>z ^GlhIt'lm9fq!D3'j,G>,z(E%ۼzoj8#ʖLZd'9!fg&Q7$Ǣh.* NM%U)ꍟҘ|8ŠYߕezx:ao~P \UK A,n=Fh6Δx9)IO-.7W!q!/N҆L2l'8Gz"NXm؝ze&DxifT0p@~k"cf AIkA[qEB4$yO|Sp8/q S!/x&nSbɂg|-W:xݕGpΛ '=|WTu'$dVugf|12E_Mи_sm cmjZ` 'c*vCv^Z,ޏF gvs[M:+ EaT-/R)sX|Qx2 o%uOt{ .igOKwĻj1bO 'pq4 +PG^gvgd&A<5qo][Eg{P"7"$0z*Ŗk4kp()&n;XyR{Cަdd8[?OفՊꉂ7V'eyEf8ǁj|'RCi[ pR5I[-U]>^ TPu+U?܊\k21L78'Bőp毗"Ҋ͕ UFmm7\|{k j|bPK)beҮ`UvsrLW,/,ŕ׾^]*5m 0@þ&.?n͛]y^N ^M:<Bŧd7Ce >bq_u[զkrMTr CGeS%;f5)d IŃ6VIXvh* PY+9| *EQjӺ%oI7`FiqQ0J5C^iC=mER~Pzo%¡4KY:!ŽmO4`M%:Vb֝nUXh׬Il଼9oɫV~Ysd20L . `򋮣Ym ajXʽ> 8> xXuXI`g9yEw@;1yBq[ e8Vv֩$xJ^µj~߸qZnuºވj٫Bڇ]\ _6;]G|V1=r}GKXH``KHKK@eC/Q%Nd)jҬ=QOo˱@\ɏ~\ܽ{6af!/5Opެ{V)6F7@>j4"[ڶ6GgegU){1熫p*^Q]cC3_! ":V@2:E(+ _zdJ!/(~Ko*"vTViMװᾞa<[AXg{ث6h#įVԯ࿗]g+K>> ڬ[ڠd9 ?s[w\zҊjO܆dQ2 EP Əh`C! )yyRT{YE6h#\=6sĒQcVG⑋Ͽ+Y z<Md#b&2n(,V}g*]iJХ!ՖV-HՃ>7C9;#ݛh96/kOj~f^vq Nk 5Rt,)vRqp[4NTJGXMwWY'}u4jGg|)_bE2LDyw>xJ@qpp eפ+Í^[1n~K[-q'V#vj۳0s7J'ϳvE9af V.U tquDb;zdl2I<:wI1 x,\M=ToRQ/?:\aŠI뭻[;aft_$$!#Jjs8YY:d-h^*rI[ _wOi-h\{D:"B=::moEO6 _7|](W6I|x}ƁMBG` Ly ԥl-h K2AK KF}~tv ^*[b/ݧ݇WǎWG Ni= KIAnUe}GY(e91 endstream endobj 457 0 obj 4618 endobj 67 0 obj <> endobj 66 0 obj <>stream xuV XGfn+$fĬrn 0nAnQT(@eQPQΠbTG"0:B Q!kݍV#^~3|_TW+աh6qR:}gi! D}.|>G', j#z, ) M.rJLJKYjjysM#SbCL=CS#CSC_bxLdjLS8S_qJSȕ)##*5231"2%T =%F$Ez'G)]RMY:vM\0Ϙicnai5kv}dj M9S3)T\(ʕ|)7ʒ3G}F-ܩY?T ZDyRbʋr"ePP;{!eDQSb4:-:NCS(ʝ311 iWP ;rR<&m>xe-ʌ57$CP:_Ca\@N%:KN$%utE( D+c#l`msi0@ 썚'α2|Z$U,39HLzRKE!kg'.ټIn0Dx {HZ>b)6T-%lȨ_ [ V1X:P̎ Mo3`;|dUyCv@vfjQ/<%)䏪Ԩ{lzOᙸcY{;asZ}k,L ϨULVO"L>7J%$qZg0A*f a B݋aƏc wƣ;ӱ_(7/Ix> c`L흁]=74T"%\IpoW`O\|Ye@Σ yi kR6'#񃓗J)*`~j%Y.t={A~:"X~~huj@\Oͧ:G$׮gAh7 5X}`<:q%׮DAIɠqy٩d>ymov7~ӂ.RsQ'&."X~|xCfc  f|,!J[q&,t{ b `p! AYqfۓ47V}uJs=wwا"RDG) _=f?-R)d𒔾5v;fxR>j n&{B&D  A!7!eF#,C5VEg[$.{2@ 98y[#^N j)@k.gme1{7"tyy{yp'"<#$Z>ɣZ$u:!7/ғv_<29w"Ax\(Ņߥ?RwcP72L([:޺wr +8A"(KQ!*vm*Vm̑~uܺ\U]Y(# Wi.rv?\01t7О.EH\¬V8nF6C'>NjAѵozp|Da_LoɻRִcͽŧEigi -cGFjal9 J QzYr>_|S a#FbC8JA'&&&q”i]8ߙ3}X3~vWJm*)ݹqoh! vs|}aJ6HSp_Xl~L=”^Yy9`.Wۣ7?oxyA_\uwMy _wVI9ϧGONDۏ ylz`U倢הA`%JXvLOwn(Mv' endstream endobj 458 0 obj 3232 endobj 105 0 obj <> endobj 104 0 obj <>stream x-}HSa߻veZ jeҌ4 :6۲lΚ#):kST K (Rw lRxq=PhQ%߳'|<.ag (B{?X~zy.mba#>EENkNi2U$_ņlF(Yi\6N9 k~MZ;RلD>Wjui\wSj8MR߀2$Fh.GAy)*uo7u]tQ}IIl`-*1IFevv@r{o%Qy8YjaY3c$눿|1ЛHBn5x1L"NXVR t5\xs#@(xPV$k2A2ZVtm>t{-OK ڦ,11Z=""!AanI>xp[\fFx#ԗISӒe@g &Ur*=O4QxC%檎0H꺁t{%@nFЈc|Ic1 &т5 a>I5Mԟ||܋_B;2#U̍ZW W{"lil?^yLza㲝 }!J^,0PDBOD8 k(|gI}gE3.D6lel endstream endobj 459 0 obj 802 endobj 102 0 obj <> endobj 101 0 obj <>stream xcd`ab`ddur v (f!C9 ŸY~&]wsFF7Dʢ gMCKKsԢ<Ē 'G!8?93RO1'G!X!(8,5ls~nAiIjo~JjQ^qfnfNbCBe fFF&NVi w2vf\tEJk\f-.)Y=Swӌݫf9KeSkJmͻ#6 8å7o3O.hE >w;<_[h2N';g00' endstream endobj 460 0 obj 345 endobj 99 0 obj <> endobj 98 0 obj <>stream xcd`ab`ddsrq v5 (f!CO _ }]U;9(3=DAYS\17(391O7$#57QOL-SpQ(VJ-N-*KM[ZZȲL,T,\:G~m]'hކ߹پ?[?\R?cRsd>CUbfcGwo'JҚYu̫Z]񧆽;2rv\lsguϝ]S+Ӽ{?_~'Mgõ[|>纙<<@4ޖ= endstream endobj 461 0 obj 383 endobj 96 0 obj <> endobj 95 0 obj <>stream xu{L[U[ẃ7*@C#-D态# :p` -+mZʣ 2؅{y-3gNQgNm!sro "A9%䧦v >.1/#nWӤѧ?G7Q³D@VAvm9['f"NLgɥʊ eT^/d=$ΒąBiTj՜eRA!'ND2JFN!Ĝ@d Ae̠^%-h'{(9Dr Lߏ!Tc:;Dn>!}qF3 n([&_b&޻8ukm7D&όYe0Ez}Sth(@Ḕ86o: Nt띵bAZNVys  yvRyTX)aI\ME6 > tt(,$}0bz endstream endobj 462 0 obj 1058 endobj 93 0 obj <> endobj 92 0 obj <>stream x=mL[um{EdV!5Ɍq+:5nVhSn[d-];hy;J.%EReėO31M0?s~%#H:a}uAgj}.'H/ėWpڦ_Qx\[=yWrl59<ӽmjj4Xx[Wc0-=&T5FG4횶 vYxaA(,!SAFbB!(b&ٽ-ceŖU-hP@yTBZA. 5O a? &P|C ='v4&j9/(@;IFѻUxay&k+Q3V8@跱yX|h}(yC-o~G 978 }ֳ|~lR F0L0=:/|SQZ)bTRsq9s[rp Z C)tRuFB'ԁ5؋qXFK::~l3 9]g g_< v6~ wԈЙ{E.^J3 SQ2'Ǥ h#KbR%G `ȇ˵#}C? 3<-Ds07mL%0[zȠ.*g Xj, KUq#"{EJ*QJk,y~]Nu`6Ϩv.8s 97#BXBQt|?OAM 'QhFe["z)F"yJA|X]maĦ] YSBR,(U endstream endobj 463 0 obj 917 endobj 130 0 obj <> endobj 129 0 obj <>stream xcd`ab`dd v 14f!Cwݏ?YW+F)wfFF7hʢ gMCKKsԢ<Ē 'G!8?93RO1'G!X!(8,5bs~nAiIjo~JjQsj"ؙ Ɍ̌2֣}>}?L.׽;߂9'K'v.̩hmi/ j̥+Vta3b~7W,*B_Cg>cS~ݛԘU3ʞuk{g;}X'8,dYR>h~%/㫟!S~WNb?u[2(^[ endstream endobj 464 0 obj 505 endobj 115 0 obj <> endobj 114 0 obj <>stream xmmhSWI41kVXVN[W/Rjk M&Koj6iyRmVs|" d&_NޤádPJ/=_WlɝjN sl1 b큶7g8& eBEuvaW:Kn]¾@O{6 ~!Gt R>KT ΰokjǀ G <L(Kmwg kb, "UepFO'`$]ОE \?Uu>¿U*}gF;pXT?ٟq8L =ƍ64RsxlYH tB}?llg7p n39Pj{#xllq GdPʘx֓1ON*)\LX7Vٸ endstream endobj 465 0 obj 818 endobj 112 0 obj <> endobj 111 0 obj <>stream xkL[es( A0T]8@6ֱKCai)ziKi9+זK3u%3&l,D26x7?7y>88~߁={ KDYx4-.0OŹڒ0F(3=s?tux'D,G*] ]^ Z6SZ#hCE(u+_>BDKq1,~bq6'2 VfsᚃMh F셌 Ap˂ ^q#ko5&pmf6_EFVgƻ]5$)^6Z1Y+oXRYY9F{dvCq|I '4-uq{#Û o5\lǠu#g"oC*0ekiQ4M6e`r&jRL %wGTt4}_[ `(p)TRP,(kV_ٮ.>wMXr}|fҺp{R |h endstream endobj 466 0 obj 1126 endobj 227 0 obj <> endobj 226 0 obj <>stream xcd`ab`ddt rvu0 (f!C9w kV'}7n]_;9(3=DAYS\17(391O7$#57QOL-SpQ(VJ-N-*KM[ꜟ[PZZZJ,:M Cj>[?.~OmMSvoIINn  )ɛ6m> endobj 215 0 obj <>stream xWyxSe?!$V=J9"ȃ,QZҖKdiiM&im-iBV*֕QA:::usOR+=8iùX}uk < <<-n5VYweW-D{ .;~ _Z! _6mz:|knjafJR^$aFjn_* ߚ/FQԢBqꑻ. S w z4/e6{ " Ӌ2EINK[u7boW#Ab/XC,!"牥DA%;u~"E/W'SD,F&sy=|bAĽ}Lb1xm1pl5~:5{gy383Rf|H"Y%ޜ9g殜弭.ܳo篜w`ow ".^0p 4 4`~R7^)!KFcD{ &՚D`">|+"<| @_T bW5xC }"lR<~ѓ~Eun+0փdġ x[SM]U}]2npo$w$:jN_E?Yk--U5B&QE$_nXiOE T6]ZL׋ʒ{\D3o{?ktnqu2( ĥlU6>hus9 5eY Ixe-0L,+1|ԵWO9L%u8-ڦ UP,/a5P;Wg<ɽrJGT;R *jMH)J2G\q@)|'yז]%zFST*IWHܔǏDѼ%&1y`sZXz-Џ3e{?IO'xpjw,gsyW0!GeGAO(! l+P:)"KAZj_5嬌qۿmɃ~0ZE 7~u‰rHWi,j57vל{tDʣY Wlm1U}ClU w;~G16x ݲ\!5"K?z1 d4 g1MR(+e|(Oa-fC%#-4mk'1o;~G/mVk,5١wIªJʣQ5B";S^l%DC yh ]\yFفUaS}qNgiv*{GwC88YNeuVϯ{bY<Bfg&*OLb`w鿜D'#_Yg*wVj;(x|7wwLr,= WV_Ni3=eEXN/+Jޚ)࿀{xoG| j'&%)|6Xmc^1T;; u"I㔉J4jAB2w#hVIFeK"Ss]vT;֋\l7b3 mtWҭ6lQL)** uΔ4:ZWSՉ{s>bWeЬ2b /lZiTfihHA< vH]6G6[j+lo(kzЙ.F]>מ茫ɋ\dMFYtV3O/SV-:a:^ejSh&S%/R$cJ[.+pdžݪS j] Xȍ#==GjI8CWsed+:Z/-Rat ym';z:ug|bZ` ~aո&G":dN*[v]E9ehe'nc(J7RL Ȫ+4fHi {$Z}nUY Mٴ`KJþz:T-fVH@<г{C$)%p=hTIRO/k6| O- F3ysM6@Owa/7F.q(w tMKIB6syWDw?8xX h qpQ`SYhW6%vnHt T%bP0ˆͿ[Lz)/2 g]YM֛uMhv 5]h ȱd_R|ZAfo(> )+)Qۊ+t,cihcAJL9!JB9-`a͎\;N\l;وfE=D~iO ;;hk#)oN>&0A;`aHUz<(Sx'd'lϿKbNgL,Ȩٷ̙$bj?dG'߭d;F)!:)2})ŃN X*,L[UKag؛> endobj 140 0 obj <>stream x{PTua5Rћ`2FJV;E|#H1> ,,S]=, ,|]ERmbGR[9wv&ǝ=|HmAǯmڲ: $|Sc$L\2^~7l* B^'$HQJU>!?yPPO\ƉS|ŪD\?d>qR*gOLI.QfJ4C D#Q1='E!W'3dby;" 6Zb3XOl%ˆ_ۈH"XMXAxSe×EPD9,"M tX-}AVXLyQ]N~Fn|6M#[m$8W[Lm{c߈Q:dQzHRPjJp7vCz^6*ZʼnA`OpuhS[Z_-em(!פ37t^=AٛwCm, l71?&p&*>.!UaWh ]F].f*F Yud8ĝeWCQ__;s):{_q2ύ|ݍN\+ w;g62wa/<OS#/4C,Dت:fB?ak_iafi b,1*g՝( ]8g,_m1]:~s'xZ,K9w~ޤiCS؀$L~ȷ݆Vƕ/> mx r8ᨩїְҽӚrMG%=[mbj󋆝5 qeQuGDN?~gʗW !Qzo:jmʻwF*{$ij+<#k$չA?(@KP]CA>he-J);iudr}ZkWvxpPs@ג[Sd |n+`u5\eyP#ө\(4ZSE}w 4r\=Ց*$TקU60}~UFP%&롪I_EW9xD'6ӆ#oi6;u.66(\`:ZywQ衑+b+,KHX5HK`<S;M.S)SRZnጌ.QZ^vh1ÀO-)Pm|A' #?^AL3/(渂b6?Ɣ=yy<Ɂ |QmԢ)덇U V`ATrf̟%[,(2XS&̇74a a+'7׬eZ !>keQ7Hc/YMkr٘%o `e>3e|e 8Rjxwe{ml [`dkXǏ? endstream endobj 469 0 obj 2048 endobj 299 0 obj <> endobj 298 0 obj <>stream xXw\T׶>(㉢F+(]C4tAЋPlˠ&51%Dfw{}f{:{}k# @`q u;9M3u;n@o8mICe`3AP Xjbi`Kb5nxgaC--D ;=B"&[-rr=vvX!a&Rsuǚ OWorg?l9_N:f޴f2s"Al&KQb-XG,#r‘XA8Ӊq3aG  b&aO_bb1$BœA|L &,bbяG\b(aF"H`එQSfxq&[LΒ%)WesW?L4YLxj[GA e 7x`eQ..?b=y :>SԩqFנ?lt$]KVں`~BQ[M.1I~dri*t2$x<*WBm.R-Qlv,+E2s~"Dְ1p th4?kI;T QƆqKWpՏ`:YP9 pͧH08lˮNAxd p~$ | -w u PRԮD&)&|"D\|щjAϦIJU*5 kӱ`lolapX\ӂB;fZiLq~J>zuPVB .\ЫE7M%R]햫sJY[Oc1ȁ!qټs 7"-h:gxKi騘jE ~B$$D(L%᫸MEZzQ)3'YH R y"hUp{wɿccl &Nb< h?\US͂ˬK|~+mNEkWA.M:"=Qx-ӏǵL'M#aջ=%EȲ6?eU,>4Y%́b3o_1qy'<ƸH|=@|olqf/jR <;~;5_!\vnB n.8ҪRGtXl4 kyDžD6ts-D OFB] n]2XM?0iaR+gm\ʉkD]`Fzs#(o]0Ο.Y nPq Khg3=}ة:=9 Qo쬍fUӲ!,,9ns66*OR Q-Y8s{Oa8+D\T|p$).rAQef5 !o:~n8vSOER2Š b Rh/[S|ђz%[Qn!Lc^ SCd22磃Te}ݳ ҙȽuՊPU9|27Y񓶄b1ﮌI.ٝ(^ ($-JkgڼΤTsV㉿cZv1a|U-jݴJQ0klvY7]L/uSP,3xLpb7SR|.YjQT-G !RbD].> AlBg?sė15!nt "SeW˺tÎSXlyzDY~nL{#b+{ lWXq FRЍ ٧xū-2%^-L Amf'zn={ȉ׼nݾw$>H&ށ;35+s^ZЗ˸ <p@# xi;^'I_RCRihTV^@WU~6~ C3 ΕnΨU>ZZZۃ< @ꬂ\搿&  +^cPWsJ=Q婶7g~YLzh^7úA7:p.;sqٌ!{(.CQٖaOf % r`Aq|o}[8NUDsܛ٦Ή3P&" ҲI_a<|?EbAwј07׻O bpǤZDIe)*Cyzjxqs;VV6;'OkEe;|`n]q ԗ|uFDj3՜2pەO*:)A9iiʽiQ.={×]{ԑ]q  A^.(Q ~i<TݑJPFv>>|AvѸ8irX_qyWϣ *Tr鼅pd40YPՋQĥW&= E"?ak_w`ȏ;4H{0 η)Bn4R"?y{x؍]9baHRVihQx{F$YD@Nw)e Cnh:{;9a4}HwYds`mn-\3;^o2%[Va!4 QwHFa0Y0<#ףFv +;mo6,Q8{Il djҿFIc[@vn}w߉6yz?~wo`j~GPu ϼMs8}#c|څ'<w..R1sq==˶]pV/uo 9NfC9߈%(7X HQ~=d)gB][sb&& .u?vHW YVLl-xq~BA7Wzqsc9*39=-,0z] {ɞOnb7Vqf]h!$x3R2%Ƅqםw7_ע>aG7pF`W#JK,,(mc'f)] HA%dUv,: XY.YKRV>,.E}9LU}K rl\ ʜsR.9\kB ~Z 0_AjoOy;b۽˿Vv50&ߦ͹=Dwnz7Q*L>I( . P׶y)p<07x~3 wb "]-IJ~rSSQeǥ;bbϻ|un\)Qd>jp%!HQ_ux$q>30.Oy1"M)8BjOcf5@ q endstream endobj 470 0 obj 4559 endobj 296 0 obj <> endobj 295 0 obj <>stream xmyPwǻfue$Fb5f P"F4r r# ̛A" ^\( x@5nLT?bژ2b^gT?]ݯOòu1qQsC#C-z5y+Og(iO9\_\7Od,vKhvN!-Uo ZdveΐL0u Fzݘ3׮FFt|]S̜FA3d1LoVRvr.ŐgLۙ͞eUz&3L4`bX& aBi#s b=yt(&*r={&z^PNS*]U. gz'%ߕ#WJBچb(+4J*4kODY}NF^oՎkqB,.!; g)dwO{#8AC>&kd3bY\*j @_^bKOޒ?MH$'mCU4I!4Y, Wl-:Gb#a`XZhom:G?i";wuڝW7ņ%m^kԨ{Qɑw_vj+Q)w:@*JBJmAkCйCKPsLk&(HmIg@swN;żzQ>T~3 VMECF\=ZkvZW[ү@380gWULnK-wze '.of/)0S0P"1^eU|]rOoiq7ctaW2 :p!^($gϽ[]MHN=R'!\H=]߾Kr| Sc 创RlJuLES6rKbBUWsɛu[cJ7_z,Pu3kǷA㖡//#d_4U͇(Y1ӹU'sO0^Xeմ:-JX.qjiUKfN o|#whvc0u\p1 ݸC)`0} qGi=>4< <c[̐YDp?wb exMC$ƨѬRrq9>3[BEd2#p,oH9rN/~rD[m2iCٟLPr> 9Hlp]ErxTN3sq8gZ-^> _  endstream endobj 471 0 obj 1865 endobj 241 0 obj <> endobj 240 0 obj <>stream xcd`ab`dd r v (f!C9w Mn*݈3#ws~AeQfzFcnjQfrbobIFjnb ZRQZZT9?$H7?%(Q=?cVi |?򾗋~6cQE%u򿷱wjwOw䴦卝rV[]R{mlQwuղ6N9o^9?^:{4߉p=b1ù| r endstream endobj 472 0 obj 308 endobj 234 0 obj <> endobj 233 0 obj <>stream xW XS׶>1xrV=ЪZq\TQM@BHB@J@8+Z-^UmVvַ *w} {ֿ_2ƭ#ɺ/]8m^ܷ_x隷W&zu_ ǫ^\& pzTtB0C}&L=5"$vCpP UXHD8*xC*aM76{l Y׶h*${~ԺHь`jBdu G,wfla~6,Vo\2'.|ieD24p}F3 3|,df0_f&3YbF0o03>̛bf63YaF1\f4njab30cf>3 etlW=Ɠqg1}LOf23Q0S# 2[Eg>\nin8c1ۑ d/(z*pc|:wyk燯K@._uҵOjnn)u뫫{X޳K=Y/]sd5gfXrx\8HOx#]Z?Y/Ð7˒%1v9;Gإf '\4 꿢Slk7Lg0FOZnM:v4 imx¬bbi*Wx_so|igRDPɆAv9';vr@"682dL2L3y\{Y.1ƹx30ݴ6 Gy.߾;ٯbP>Oh< 78M6@ #'y NgmW,2' : d-8i+aPybKS.f5[ Ѧ $^!&a5%Yj(: kkrOI*cpokکҺ76&ʰ5DH޾[v:W+ n CgE;RaRpN]tu[k>;"&sTAPɇ14|ґ%S9h$l&O| Ȣ]Y447_Ł8A QBZ,%.Le`~HYaKN\D.ۼ!T؛b@쌺E[mOep?I@z4asVYk5ס\.NǍ|!C>d(p;sj"vjL@5Z_p !3[>)-| %,rکK J Ƈ<Né%<XxG!wd/O| }q?@Boۤ?j2 M/)?.EsiE&a/n* É!|[Eքӛd(1Jg꡾>UpG[ʕ \1J n2oFA2pSHD0IP!7(MKa 2P}|N#{{%2\ ?b.y_+^8sf#wt]mpo.eAlMTmR7 7B+Z^wt߹8Թ]q\a2LToR (+'j6(  2h.?7Ϛn Y!;6A@Zje5Q@&(Du-yə`l*Yi˦c]ŀq}gZ_j Yİnp=: W@T` HX4/ k5j_.A%8\j}){#~؏su ayAKl;'XuҦ'e*]fc[EaEB]~y.tXͭ\[zqJ} Z02)i~gW*lA(KܦyPନKڡ?fW44Wx3i}!p@"`/~ܵx)8o. ne,ʣ{+sMYJ N]V?ơH"4Ax2cdc2Jyct!YQZVdT Pp~!h1}ɷ.Yն;O/YV{-1`w*\bOu[RݛP^.{14g^79CRhSҩ"o֯RpJO+r? bf:Ƽt ~)3Snsr4zeJ;y|xRfUf}5%_FX`:*Jq>Ν_ ۷kϝL]qBYl6SMu$đ3nN-?p.B_o: 6ưqܴ#ʴ"#L ɣ=T 44x9*[.;6֠672t]VF7cqQG[Θ*?xK}LeJ*AsıQ.ߺZ;F'@hKQRkNE-D}R\xoE L\3nu^RRj8Oejje;+"b);[kxJm2N1$r.q'ܦ (' bOdqZ-FH14ϓ7xC$K+!͐\j2"o,6zdV*}PA*=y5F:Mzmp-pCԯ-<` { K T~SOw,^Y$p_ `+rm}̥$/z\=W j|NXWxIVdEVƥ ]"s93Wob#'+DҍB"ɠ~W{v߮Aׯ`7ítf"jKmjҷEᱜ 7Y4u=XqqRCMRǐS2IP$hÜmy-'C7B(*6q9FJWj]2Y򿣊4ƕPr:~X&3 e+YO{b n$sG'lx$:4fpT5u,kod$YC ȶTuaW9|[E':P+\Z*_nw_y1,XqN2XK Xq*>\CO8^Ľcο 4 87H3q@?;! P.XݕG{L C[PFiV$S鴢v]}c>-V2{jjm> endobj 308 0 obj <>stream xcd`ab`ddrvqvv44346f!C9w߯5?XW~*VwfFF7hʢ gMCKKsԢ<Ē 'G!8?93RO1'G!X!(8,5bs~nAiIjo~JjQ ,.vI}C~t[+x>cq?cD'4Cmu] S4gf) ~;Om'N= NϾ3ښۺ%'Mk1mʔiZ&O{+_Ÿ /6mi쫸.sq\20 endstream endobj 474 0 obj 356 endobj 302 0 obj <> endobj 301 0 obj <>stream x5YLqw9_$M]G4F 1QSPbTTPVXhv[$t{AKPn/HbNj1"A_|0A_ķF"63|! $IpRybtmI1[RJ/N:_ol]s>=> endobj 131 0 obj <> endobj 46 0 obj <> endobj 116 0 obj <> endobj 43 0 obj <> endobj 113 0 obj <> endobj 40 0 obj <> endobj 106 0 obj <> endobj 34 0 obj <> endobj 350 0 obj <> endobj 103 0 obj <> endobj 349 0 obj <> endobj 100 0 obj <> endobj 27 0 obj <> endobj 22 0 obj <> endobj 310 0 obj <> endobj 97 0 obj <> endobj 19 0 obj <> endobj 303 0 obj <> endobj 94 0 obj <> endobj 83 0 obj <> endobj 300 0 obj <> endobj 16 0 obj <> endobj 75 0 obj <> endobj 297 0 obj <> endobj 13 0 obj <> endobj 68 0 obj <> endobj 242 0 obj <> endobj 10 0 obj <> endobj 235 0 obj <> endobj 65 0 obj <> endobj 62 0 obj <> endobj 228 0 obj <> endobj 59 0 obj <> endobj 217 0 obj <> endobj 56 0 obj <> endobj 142 0 obj <> endobj 2 0 obj <>endobj xref 0 476 0000000000 65535 f 0000653752 00000 n 0000825415 00000 n 0000653084 00000 n 0000653800 00000 n 0000640986 00000 n 0000000015 00000 n 0000000523 00000 n 0000714123 00000 n 0000713896 00000 n 0000821176 00000 n 0000712874 00000 n 0000712653 00000 n 0000819933 00000 n 0000709801 00000 n 0000709496 00000 n 0000817534 00000 n 0000704557 00000 n 0000704236 00000 n 0000814547 00000 n 0000722470 00000 n 0000721912 00000 n 0000812748 00000 n 0000653855 00000 n 0000653885 00000 n 0000719117 00000 n 0000718851 00000 n 0000811956 00000 n 0000641154 00000 n 0000000542 00000 n 0000000856 00000 n 0000653961 00000 n 0000715425 00000 n 0000715139 00000 n 0000810368 00000 n 0000641298 00000 n 0000000876 00000 n 0000003419 00000 n 0000735257 00000 n 0000734905 00000 n 0000809361 00000 n 0000734422 00000 n 0000734203 00000 n 0000808860 00000 n 0000730800 00000 n 0000730515 00000 n 0000807736 00000 n 0000653993 00000 n 0000746350 00000 n 0000745994 00000 n 0000806495 00000 n 0000641442 00000 n 0000003440 00000 n 0000004580 00000 n 0000740783 00000 n 0000740425 00000 n 0000824179 00000 n 0000756741 00000 n 0000756178 00000 n 0000823193 00000 n 0000754453 00000 n 0000754107 00000 n 0000822491 00000 n 0000752856 00000 n 0000752598 00000 n 0000822318 00000 n 0000771646 00000 n 0000771283 00000 n 0000820245 00000 n 0000654080 00000 n 0000641594 00000 n 0000004601 00000 n 0000006184 00000 n 0000766556 00000 n 0000766209 00000 n 0000818338 00000 n 0000654211 00000 n 0000641746 00000 n 0000006205 00000 n 0000008071 00000 n 0000654287 00000 n 0000763772 00000 n 0000763492 00000 n 0000816220 00000 n 0000641898 00000 n 0000008092 00000 n 0000008344 00000 n 0000654363 00000 n 0000642042 00000 n 0000642150 00000 n 0000008364 00000 n 0000010867 00000 n 0000779096 00000 n 0000778872 00000 n 0000815905 00000 n 0000777705 00000 n 0000777487 00000 n 0000814389 00000 n 0000776996 00000 n 0000776785 00000 n 0000811817 00000 n 0000776331 00000 n 0000776129 00000 n 0000811236 00000 n 0000775218 00000 n 0000774987 00000 n 0000810153 00000 n 0000654417 00000 n 0000642295 00000 n 0000010888 00000 n 0000017869 00000 n 0000782444 00000 n 0000782221 00000 n 0000809020 00000 n 0000781294 00000 n 0000780955 00000 n 0000808563 00000 n 0000654566 00000 n 0000642450 00000 n 0000017891 00000 n 0000022406 00000 n 0000654682 00000 n 0000642605 00000 n 0000022428 00000 n 0000026581 00000 n 0000654816 00000 n 0000642760 00000 n 0000026603 00000 n 0000028654 00000 n 0000780341 00000 n 0000780121 00000 n 0000807290 00000 n 0000654893 00000 n 0000642915 00000 n 0000028676 00000 n 0000032536 00000 n 0000655040 00000 n 0000643070 00000 n 0000032558 00000 n 0000035973 00000 n 0000789718 00000 n 0000789437 00000 n 0000824975 00000 n 0000655185 00000 n 0000643225 00000 n 0000035995 00000 n 0000041951 00000 n 0000655356 00000 n 0000643380 00000 n 0000041973 00000 n 0000045931 00000 n 0000655477 00000 n 0000643535 00000 n 0000045953 00000 n 0000064759 00000 n 0000655648 00000 n 0000643690 00000 n 0000064782 00000 n 0000090396 00000 n 0000655725 00000 n 0000643845 00000 n 0000090419 00000 n 0000114247 00000 n 0000655837 00000 n 0000656438 00000 n 0000656888 00000 n 0000656936 00000 n 0000644025 00000 n 0000114270 00000 n 0000119431 00000 n 0000657024 00000 n 0000657821 00000 n 0000658602 00000 n 0000658650 00000 n 0000644205 00000 n 0000119453 00000 n 0000120439 00000 n 0000658738 00000 n 0000664711 00000 n 0000664746 00000 n 0000644385 00000 n 0000120460 00000 n 0000124666 00000 n 0000664834 00000 n 0000644532 00000 n 0000124688 00000 n 0000129850 00000 n 0000664933 00000 n 0000644687 00000 n 0000129872 00000 n 0000135902 00000 n 0000665045 00000 n 0000644842 00000 n 0000135924 00000 n 0000140057 00000 n 0000665146 00000 n 0000644997 00000 n 0000140079 00000 n 0000146474 00000 n 0000665284 00000 n 0000645152 00000 n 0000146496 00000 n 0000147668 00000 n 0000665409 00000 n 0000645307 00000 n 0000147690 00000 n 0000150083 00000 n 0000665464 00000 n 0000645462 00000 n 0000150105 00000 n 0000156481 00000 n 0000665563 00000 n 0000645617 00000 n 0000156503 00000 n 0000161164 00000 n 0000784672 00000 n 0000784304 00000 n 0000823704 00000 n 0000665629 00000 n 0000645772 00000 n 0000161186 00000 n 0000163312 00000 n 0000665741 00000 n 0000645927 00000 n 0000163334 00000 n 0000165831 00000 n 0000783898 00000 n 0000783680 00000 n 0000823052 00000 n 0000665829 00000 n 0000646074 00000 n 0000165853 00000 n 0000168636 00000 n 0000800211 00000 n 0000799842 00000 n 0000821522 00000 n 0000665941 00000 n 0000646229 00000 n 0000168658 00000 n 0000171692 00000 n 0000799425 00000 n 0000799206 00000 n 0000821036 00000 n 0000666053 00000 n 0000646384 00000 n 0000171714 00000 n 0000172519 00000 n 0000666202 00000 n 0000646539 00000 n 0000172540 00000 n 0000172784 00000 n 0000666279 00000 n 0000646686 00000 n 0000646795 00000 n 0000172805 00000 n 0000174254 00000 n 0000666334 00000 n 0000646942 00000 n 0000174276 00000 n 0000209432 00000 n 0000666446 00000 n 0000667380 00000 n 0000668346 00000 n 0000668394 00000 n 0000647122 00000 n 0000209455 00000 n 0000211349 00000 n 0000668449 00000 n 0000676415 00000 n 0000676450 00000 n 0000647302 00000 n 0000211371 00000 n 0000232143 00000 n 0000676560 00000 n 0000677494 00000 n 0000678460 00000 n 0000678508 00000 n 0000647482 00000 n 0000232166 00000 n 0000240907 00000 n 0000678587 00000 n 0000647637 00000 n 0000240929 00000 n 0000243173 00000 n 0000678675 00000 n 0000647792 00000 n 0000243195 00000 n 0000318081 00000 n 0000678787 00000 n 0000679668 00000 n 0000680602 00000 n 0000680650 00000 n 0000647972 00000 n 0000318104 00000 n 0000321448 00000 n 0000797231 00000 n 0000796977 00000 n 0000819134 00000 n 0000792308 00000 n 0000791876 00000 n 0000817016 00000 n 0000805630 00000 n 0000805386 00000 n 0000815338 00000 n 0000680705 00000 n 0000648127 00000 n 0000321470 00000 n 0000324027 00000 n 0000804921 00000 n 0000804691 00000 n 0000813555 00000 n 0000680867 00000 n 0000648282 00000 n 0000324049 00000 n 0000343805 00000 n 0000681007 00000 n 0000685587 00000 n 0000685622 00000 n 0000648462 00000 n 0000343828 00000 n 0000363818 00000 n 0000685710 00000 n 0000648617 00000 n 0000363841 00000 n 0000377578 00000 n 0000685800 00000 n 0000648772 00000 n 0000377601 00000 n 0000384839 00000 n 0000685940 00000 n 0000648927 00000 n 0000384861 00000 n 0000416793 00000 n 0000686052 00000 n 0000649082 00000 n 0000416816 00000 n 0000425847 00000 n 0000686129 00000 n 0000649237 00000 n 0000425869 00000 n 0000428891 00000 n 0000686252 00000 n 0000649392 00000 n 0000428913 00000 n 0000479364 00000 n 0000686351 00000 n 0000649547 00000 n 0000479387 00000 n 0000487338 00000 n 0000811756 00000 n 0000811161 00000 n 0000686406 00000 n 0000692342 00000 n 0000692377 00000 n 0000649727 00000 n 0000487360 00000 n 0000489069 00000 n 0000692445 00000 n 0000649882 00000 n 0000489091 00000 n 0000504887 00000 n 0000692557 00000 n 0000650037 00000 n 0000504910 00000 n 0000520785 00000 n 0000692647 00000 n 0000650192 00000 n 0000520808 00000 n 0000547837 00000 n 0000692702 00000 n 0000650347 00000 n 0000547860 00000 n 0000587440 00000 n 0000692757 00000 n 0000650502 00000 n 0000587463 00000 n 0000603956 00000 n 0000692812 00000 n 0000702882 00000 n 0000702917 00000 n 0000650682 00000 n 0000603979 00000 n 0000614048 00000 n 0000702983 00000 n 0000650837 00000 n 0000614070 00000 n 0000617311 00000 n 0000703093 00000 n 0000650992 00000 n 0000617333 00000 n 0000624675 00000 n 0000703207 00000 n 0000651147 00000 n 0000624697 00000 n 0000626294 00000 n 0000703273 00000 n 0000651302 00000 n 0000626316 00000 n 0000626570 00000 n 0000703339 00000 n 0000651449 00000 n 0000651558 00000 n 0000626591 00000 n 0000628435 00000 n 0000703394 00000 n 0000651705 00000 n 0000628457 00000 n 0000629448 00000 n 0000703515 00000 n 0000651860 00000 n 0000629469 00000 n 0000631674 00000 n 0000703592 00000 n 0000652007 00000 n 0000631696 00000 n 0000633817 00000 n 0000703726 00000 n 0000652162 00000 n 0000633839 00000 n 0000636300 00000 n 0000703827 00000 n 0000652317 00000 n 0000636322 00000 n 0000636608 00000 n 0000703950 00000 n 0000652472 00000 n 0000636629 00000 n 0000637773 00000 n 0000703994 00000 n 0000652619 00000 n 0000637795 00000 n 0000639728 00000 n 0000704049 00000 n 0000652774 00000 n 0000639750 00000 n 0000640707 00000 n 0000704137 00000 n 0000652929 00000 n 0000640728 00000 n 0000640965 00000 n 0000704192 00000 n 0000709474 00000 n 0000712631 00000 n 0000713875 00000 n 0000715118 00000 n 0000718829 00000 n 0000721890 00000 n 0000730493 00000 n 0000734181 00000 n 0000734884 00000 n 0000740403 00000 n 0000745972 00000 n 0000752576 00000 n 0000754085 00000 n 0000756156 00000 n 0000763470 00000 n 0000766187 00000 n 0000771261 00000 n 0000774965 00000 n 0000776108 00000 n 0000776764 00000 n 0000777466 00000 n 0000778850 00000 n 0000780100 00000 n 0000780934 00000 n 0000782200 00000 n 0000783658 00000 n 0000784283 00000 n 0000789415 00000 n 0000791854 00000 n 0000796955 00000 n 0000799184 00000 n 0000799821 00000 n 0000804669 00000 n 0000805365 00000 n 0000806474 00000 n trailer << /Size 476 /Root 1 0 R /Info 2 0 R >> startxref 825465 %%EOF faust-0.9.46/documentation/faust-quick-reference.pdf0000644000175000017500000427636411702130733022427 0ustar orlareyorlarey%PDF-1.4 % 1 0 obj << /S /GoTo /D (chapter.1) >> endobj 4 0 obj (Introduction) endobj 5 0 obj << /S /GoTo /D (section.1.1) >> endobj 8 0 obj (Design Principles) endobj 9 0 obj << /S /GoTo /D (section.1.2) >> endobj 12 0 obj (Signal Processor Semantic) endobj 13 0 obj << /S /GoTo /D (chapter.2) >> endobj 16 0 obj (Compiling and installing Faust) endobj 17 0 obj << /S /GoTo /D (section.2.1) >> endobj 20 0 obj (Organization of the distribution) endobj 21 0 obj << /S /GoTo /D (section.2.2) >> endobj 24 0 obj (Compilation) endobj 25 0 obj << /S /GoTo /D (section.2.3) >> endobj 28 0 obj (Installation) endobj 29 0 obj << /S /GoTo /D (section.2.4) >> endobj 32 0 obj (Compilation of the examples) endobj 33 0 obj << /S /GoTo /D (chapter.3) >> endobj 36 0 obj (Faust syntax) endobj 37 0 obj << /S /GoTo /D (section.3.1) >> endobj 40 0 obj (Faust program) endobj 41 0 obj << /S /GoTo /D (section.3.2) >> endobj 44 0 obj (Statements) endobj 45 0 obj << /S /GoTo /D (subsection.3.2.1) >> endobj 48 0 obj (Declarations) endobj 49 0 obj << /S /GoTo /D (subsection.3.2.2) >> endobj 52 0 obj (Imports) endobj 53 0 obj << /S /GoTo /D (subsection.3.2.3) >> endobj 56 0 obj (Documentation) endobj 57 0 obj << /S /GoTo /D (section.3.3) >> endobj 60 0 obj (Definitions) endobj 61 0 obj << /S /GoTo /D (subsection.3.3.1) >> endobj 64 0 obj (Simple Definitions) endobj 65 0 obj << /S /GoTo /D (subsection.3.3.2) >> endobj 68 0 obj (Function Definitions) endobj 69 0 obj << /S /GoTo /D (subsection.3.3.3) >> endobj 72 0 obj (Definitions with pattern matching) endobj 73 0 obj << /S /GoTo /D (section.3.4) >> endobj 76 0 obj (Expressions) endobj 77 0 obj << /S /GoTo /D (subsection.3.4.1) >> endobj 80 0 obj (Diagram Expressions) endobj 81 0 obj << /S /GoTo /D (subsection.3.4.2) >> endobj 84 0 obj (Numerical Expressions) endobj 85 0 obj << /S /GoTo /D (subsection.3.4.3) >> endobj 88 0 obj (Time expressions) endobj 89 0 obj << /S /GoTo /D (subsection.3.4.4) >> endobj 92 0 obj (Environment expressions) endobj 93 0 obj << /S /GoTo /D (subsection.3.4.5) >> endobj 96 0 obj (Foreign expressions) endobj 97 0 obj << /S /GoTo /D (subsection.3.4.6) >> endobj 100 0 obj (Applications and Abstractions) endobj 101 0 obj << /S /GoTo /D (section.3.5) >> endobj 104 0 obj (Primitives) endobj 105 0 obj << /S /GoTo /D (subsection.3.5.1) >> endobj 108 0 obj (Numbers) endobj 109 0 obj << /S /GoTo /D (subsection.3.5.2) >> endobj 112 0 obj (C-equivalent primitives) endobj 113 0 obj << /S /GoTo /D (subsection.3.5.3) >> endobj 116 0 obj (math.h-equivalent primitives) endobj 117 0 obj << /S /GoTo /D (subsection.3.5.4) >> endobj 120 0 obj (Delay, Table, Selector primitives) endobj 121 0 obj << /S /GoTo /D (subsection.3.5.5) >> endobj 124 0 obj (User Interface Elements) endobj 125 0 obj << /S /GoTo /D (chapter.4) >> endobj 128 0 obj (Invoking the Faust compiler) endobj 129 0 obj << /S /GoTo /D (section.4.1) >> endobj 132 0 obj (Compilation options) endobj 133 0 obj << /S /GoTo /D (chapter.5) >> endobj 136 0 obj (Architecture files) endobj 137 0 obj << /S /GoTo /D (section.5.1) >> endobj 140 0 obj (Audio architecture modules) endobj 141 0 obj << /S /GoTo /D (section.5.2) >> endobj 144 0 obj (UI architecture modules) endobj 145 0 obj << /S /GoTo /D (subsection.5.2.1) >> endobj 148 0 obj (Active widgets) endobj 149 0 obj << /S /GoTo /D (subsection.5.2.2) >> endobj 152 0 obj (Passive widgets) endobj 153 0 obj << /S /GoTo /D (subsection.5.2.3) >> endobj 156 0 obj (Widgets layout) endobj 157 0 obj << /S /GoTo /D (subsection.5.2.4) >> endobj 160 0 obj (Metadata) endobj 161 0 obj << /S /GoTo /D (section.5.3) >> endobj 164 0 obj (OSC architecture modules) endobj 165 0 obj << /S /GoTo /D (subsection.5.3.1) >> endobj 168 0 obj (OSC GUI architecture module) endobj 169 0 obj << /S /GoTo /D (subsection.5.3.2) >> endobj 172 0 obj (OSC message aliases) endobj 173 0 obj << /S /GoTo /D (subsection.5.3.3) >> endobj 176 0 obj (OSC audio architecture) endobj 177 0 obj << /S /GoTo /D (chapter.6) >> endobj 180 0 obj (Controlling the code generation) endobj 181 0 obj << /S /GoTo /D (section.6.1) >> endobj 184 0 obj (Vector Code generation) endobj 185 0 obj << /S /GoTo /D (section.6.2) >> endobj 188 0 obj (Parallel Code generation) endobj 189 0 obj << /S /GoTo /D (subsection.6.2.1) >> endobj 192 0 obj (The OpenMP code generator) endobj 193 0 obj << /S /GoTo /D (subsection.6.2.2) >> endobj 196 0 obj (Adding OpenMP directives) endobj 197 0 obj << /S /GoTo /D (subsection.6.2.3) >> endobj 200 0 obj (Example of parallel OpenMP code) endobj 201 0 obj << /S /GoTo /D (subsection.6.2.4) >> endobj 204 0 obj (The scheduler code generator) endobj 205 0 obj << /S /GoTo /D (subsection.6.2.5) >> endobj 208 0 obj (Example of parallel scheduler code) endobj 209 0 obj << /S /GoTo /D (chapter.7) >> endobj 212 0 obj (Mathematical Documentation) endobj 213 0 obj << /S /GoTo /D (section.7.1) >> endobj 216 0 obj (Goals of the mathdoc) endobj 217 0 obj << /S /GoTo /D (section.7.2) >> endobj 220 0 obj (Installation requirements) endobj 221 0 obj << /S /GoTo /D (section.7.3) >> endobj 224 0 obj (Generating the mathdoc) endobj 225 0 obj << /S /GoTo /D (subsection.7.3.1) >> endobj 228 0 obj (Invoking the -mdoc option) endobj 229 0 obj << /S /GoTo /D (subsection.7.3.2) >> endobj 232 0 obj (Invoking faust2mathdoc) endobj 233 0 obj << /S /GoTo /D (subsection.7.3.3) >> endobj 236 0 obj (Online examples) endobj 237 0 obj << /S /GoTo /D (section.7.4) >> endobj 240 0 obj (Automatic documentation) endobj 241 0 obj << /S /GoTo /D (section.7.5) >> endobj 244 0 obj (Manual documentation) endobj 245 0 obj << /S /GoTo /D (subsection.7.5.1) >> endobj 248 0 obj (Six tags) endobj 249 0 obj << /S /GoTo /D (subsection.7.5.2) >> endobj 252 0 obj (The mdoc top-level tags) endobj 253 0 obj << /S /GoTo /D (subsection.7.5.3) >> endobj 256 0 obj (An example of manual mathdoc) endobj 257 0 obj << /S /GoTo /D (subsection.7.5.4) >> endobj 260 0 obj (The -stripmdoc option) endobj 261 0 obj << /S /GoTo /D (section.7.6) >> endobj 264 0 obj (Localization of mathdoc files) endobj 265 0 obj << /S /GoTo /D (section.7.7) >> endobj 268 0 obj (Summary of the mathdoc generation steps) endobj 269 0 obj << /S /GoTo /D (chapter.8) >> endobj 272 0 obj (Acknowledgments) endobj 273 0 obj << /S /GoTo /D [274 0 R /Fit ] >> endobj 276 0 obj << /Length 302 /Filter /FlateDecode >> stream xڕMk0 >ڇh,q+mt 1ؿcw+^i)XLBNAx'T|'sv|sV 3/a@+xs|TʷW$kU|9"_[)4*bDznh;Q/Tv4N( (C0&Xk`y过L]L㈺ZL`mb KДq2R3W1ֽ!} .sd^Y1첲9glm,tWC6t(D!0xDzNM<[H#ݝlz endstream endobj 274 0 obj << /Type /Page /Contents 276 0 R /Resources 275 0 R /MediaBox [0 0 595.276 841.89] /Parent 280 0 R >> endobj 277 0 obj << /D [274 0 R /XYZ 98.895 747.976 null] >> endobj 278 0 obj << /D [274 0 R /XYZ 99.895 717.021 null] >> endobj 275 0 obj << /Font << /F46 279 0 R >> /ProcSet [ /PDF /Text ] >> endobj 283 0 obj << /Length 68 /Filter /FlateDecode >> stream x3PHW0Ppr w31SԳ432SIS045370U076302TIQ0Ҍ 2jB]C" endstream endobj 282 0 obj << /Type /Page /Contents 283 0 R /Resources 281 0 R /MediaBox [0 0 595.276 841.89] /Parent 280 0 R >> endobj 284 0 obj << /D [282 0 R /XYZ 149.705 747.976 null] >> endobj 281 0 obj << /Font << /F46 279 0 R >> /ProcSet [ /PDF /Text ] >> endobj 313 0 obj << /Length 982 /Filter /FlateDecode >> stream xrH~ ͂N/Ldkt}L2!=f)T`+0"t C.nKmhTYqP +!\$a0U򺮶uI˦cIcŃ, xWmbJ].[@5JRu(ԸGQ=töhl53l-yOhuHV#s LcFL\0D ‚9 ānӲ7mʣMܟuf ?qF?o4!") Oy3`kWe k!?}ЍEc? r8`'Ox'S 0N ]2$MZ3x/Œތ w3I7 LbjeW(/9ڂ@B[jش e\\,:曃BkP#gPQ1vxngնg!uy{ſx1|]2mL]*bv9#}.G<KWݗٮ?Ogt <-oEwiZ۶L7iԢnsh4-I0I}ح/\5P^SVl!I(S'>> endobj 285 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 513.936 172.124 524.033] /A << /S /GoTo /D (chapter.1) >> >> endobj 286 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 495.295 210.461 507.758] /A << /S /GoTo /D (section.1.1) >> >> endobj 287 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 479.041 244.961 491.504] /A << /S /GoTo /D (section.1.2) >> >> endobj 288 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 452.723 257.175 465.266] /A << /S /GoTo /D (chapter.2) >> >> endobj 289 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 436.529 271.492 448.992] /A << /S /GoTo /D (section.2.1) >> >> endobj 290 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 420.274 191.512 432.737] /A << /S /GoTo /D (section.2.2) >> >> endobj 291 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 406.41 185.315 416.483] /A << /S /GoTo /D (section.2.3) >> >> endobj 292 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 387.765 257.405 400.228] /A << /S /GoTo /D (section.2.4) >> >> endobj 293 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 361.448 176.189 372.75] /A << /S /GoTo /D (chapter.3) >> >> endobj 294 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 345.253 204.642 356.949] /A << /S /GoTo /D (section.3.1) >> >> endobj 295 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 331.389 183.332 340.829] /A << /S /GoTo /D (section.3.2) >> >> endobj 296 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 315.135 222.356 325.207] /A << /S /GoTo /D (subsection.3.2.1) >> >> endobj 297 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 296.489 203.656 307.722] /A << /S /GoTo /D (subsection.3.2.2) >> >> endobj 298 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 282.625 235.845 292.065] /A << /S /GoTo /D (subsection.3.2.3) >> >> endobj 299 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 266.371 185.066 276.443] /A << /S /GoTo /D (section.3.3) >> >> endobj 300 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 247.725 247.302 260.188] /A << /S /GoTo /D (subsection.3.3.1) >> >> endobj 301 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 233.861 257.026 243.934] /A << /S /GoTo /D (subsection.3.3.2) >> >> endobj 302 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 215.216 311.163 227.679] /A << /S /GoTo /D (subsection.3.3.3) >> >> endobj 303 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 198.961 187.327 210.792] /A << /S /GoTo /D (section.3.4) >> >> endobj 304 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 182.707 257.385 194.537] /A << /S /GoTo /D (subsection.3.4.1) >> >> endobj 305 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 166.452 265.484 178.915] /A << /S /GoTo /D (subsection.3.4.2) >> >> endobj 306 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 150.197 241.375 162.028] /A << /S /GoTo /D (subsection.3.4.3) >> >> endobj 307 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 133.943 274.58 145.773] /A << /S /GoTo /D (subsection.3.4.4) >> >> endobj 308 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 117.688 251.258 129.519] /A << /S /GoTo /D (subsection.3.4.5) >> >> endobj 314 0 obj << /D [312 0 R /XYZ 98.895 747.976 null] >> endobj 311 0 obj << /Font << /F87 315 0 R /F46 279 0 R >> /ProcSet [ /PDF /Text ] >> endobj 353 0 obj << /Length 1306 /Filter /FlateDecode >> stream xn6y -INjz rⴋi$Beeھ}EJ%93(سd?<4 \89t.Tb*<TPh.Ch0I/H&?}:6dFN%1zrv=OIٺӈ Jc`C×]"TxDt>/$^lpY6N1X8qm82{G\1A 0,FTDom]F4__1S(=H;wC`"ilnF DL!3TN U`5?@k+m"\]AZuj/ !>AKȯ*rBrygwV${;tAȷBӮ(YcFX+C3Z]Vd SPxbe_$QG#Rg":4`<݉Muh?F J;a@ SbNQ{>{`ZXmX+y҄+(4!;Ǡic#A&ΎOI)4 {шv"o;v?04s"(8BM׵0fG7tCE usԍ rSͯb ' w yǖXi^z!9hT=A?-uσר vq:oè>`zcot~j xRb<}AHG82n]6FC=*Jh4(@p*` ;N׾ʑxw:D];dj+JW(ԨŞNc" ̑): i\u<^MKҁ7%^<֚o+?U5*wzoLu5mO` $Ͼ|@ffGNcwت_ߟ1sUΎ1ĸwȊ}JItDgfͮnvҏ %H{2.8KΞ$)))tͪXx唏ގێړ(#U?PZzYWxKlqa|u#ߢ],;]7 09ڛ9)$.\&i2HCc} ne\,GZ+YSX2yR\ A Pwy69 endstream endobj 352 0 obj << /Type /Page /Contents 353 0 R /Resources 351 0 R /MediaBox [0 0 595.276 841.89] /Parent 280 0 R /Annots [ 309 0 R 310 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R ] >> endobj 309 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 703.491 345.913 715.955] /A << /S /GoTo /D (subsection.3.4.6) >> >> endobj 310 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 689.825 231.611 699.264] /A << /S /GoTo /D (section.3.5) >> >> endobj 316 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 673.767 260.164 683.84] /A << /S /GoTo /D (subsection.3.5.1) >> >> endobj 317 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 655.319 317.429 667.782] /A << /S /GoTo /D (subsection.3.5.2) >> >> endobj 318 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 639.262 340.667 651.725] /A << /S /GoTo /D (subsection.3.5.3) >> >> endobj 319 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 623.204 353.883 635.667] /A << /S /GoTo /D (subsection.3.5.4) >> >> endobj 320 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 609.538 319.91 619.61] /A << /S /GoTo /D (subsection.3.5.5) >> >> endobj 321 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.709 581.067 295.721 593.61] /A << /S /GoTo /D (chapter.4) >> >> endobj 322 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 565.069 275.686 577.532] /A << /S /GoTo /D (section.4.1) >> >> endobj 323 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.709 541.435 241.385 551.532] /A << /S /GoTo /D (chapter.5) >> >> endobj 324 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 525.383 303.203 535.455] /A << /S /GoTo /D (section.5.1) >> >> endobj 325 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 509.325 288.807 519.398] /A << /S /GoTo /D (section.5.2) >> >> endobj 326 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 490.877 281.385 503.34] /A << /S /GoTo /D (subsection.5.2.1) >> >> endobj 327 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 474.819 283.198 487.283] /A << /S /GoTo /D (subsection.5.2.2) >> >> endobj 328 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 458.762 282.75 471.225] /A << /S /GoTo /D (subsection.5.2.3) >> >> endobj 329 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 445.096 259.108 455.168] /A << /S /GoTo /D (subsection.5.2.4) >> >> endobj 330 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 429.038 297.982 439.11] /A << /S /GoTo /D (section.5.3) >> >> endobj 331 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 412.981 348.064 423.053] /A << /S /GoTo /D (subsection.5.3.1) >> >> endobj 332 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 394.532 304.448 406.995] /A << /S /GoTo /D (subsection.5.3.2) >> >> endobj 333 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 380.866 318.097 390.938] /A << /S /GoTo /D (subsection.5.3.3) >> >> endobj 334 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.709 352.395 306.819 364.938] /A << /S /GoTo /D (chapter.6) >> >> endobj 335 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 336.397 287.014 348.861] /A << /S /GoTo /D (section.6.1) >> >> endobj 336 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 320.34 289.972 332.803] /A << /S /GoTo /D (section.6.2) >> >> endobj 337 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 304.282 341.33 316.746] /A << /S /GoTo /D (subsection.6.2.1) >> >> endobj 338 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 288.225 333.629 300.688] /A << /S /GoTo /D (subsection.6.2.2) >> >> endobj 339 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 272.168 362.7 284.631] /A << /S /GoTo /D (subsection.6.2.3) >> >> endobj 340 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 256.11 341.509 268.573] /A << /S /GoTo /D (subsection.6.2.4) >> >> endobj 341 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 240.053 362.879 252.516] /A << /S /GoTo /D (subsection.6.2.5) >> >> endobj 342 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.709 216.419 297.703 226.516] /A << /S /GoTo /D (chapter.7) >> >> endobj 343 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 200.366 277.828 210.438] /A << /S /GoTo /D (section.7.1) >> >> endobj 344 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 181.918 292.433 194.381] /A << /S /GoTo /D (section.7.2) >> >> endobj 345 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 165.86 289.295 178.324] /A << /S /GoTo /D (section.7.3) >> >> endobj 346 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 149.803 331.527 162.266] /A << /S /GoTo /D (subsection.7.3.1) >> >> endobj 347 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 133.745 320.877 146.209] /A << /S /GoTo /D (subsection.7.3.2) >> >> endobj 348 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.567 117.688 290.291 130.151] /A << /S /GoTo /D (subsection.7.3.3) >> >> endobj 354 0 obj << /D [352 0 R /XYZ 149.705 747.976 null] >> endobj 351 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R /F87 315 0 R >> /ProcSet [ /PDF /Text ] >> endobj 366 0 obj << /Length 511 /Filter /FlateDecode >> stream xݖnA~>Vr (FB[0;lJxzj;ۉ4V_ +"Ȼɛt2KVYސ q:BI.5>]W)0_ә/n'mD gliy͙rTʤ. i4PY^Pelp*L 2meQ<{l8R&-f 0, 50Cx@HT$R CVDםL:Hoc@YcQe!f8""yD9+Zdu>n#@5A o;GU5 p O?[jꙺ;]6ڡ~Y׉=%Ӎ? ixgf/P<О|S Ovq+W;>:!WQRәwސIÃA)'Ϸ [>iaA |-+$|2@u9t;ze:t6 endstream endobj 365 0 obj << /Type /Page /Contents 366 0 R /Resources 364 0 R /MediaBox [0 0 595.276 841.89] /Parent 280 0 R /Annots [ 349 0 R 350 0 R 357 0 R 358 0 R 359 0 R 360 0 R 361 0 R 362 0 R 363 0 R ] >> endobj 349 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 705.882 247.452 715.955] /A << /S /GoTo /D (section.7.4) >> >> endobj 350 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 689.743 234.64 699.815] /A << /S /GoTo /D (section.7.5) >> >> endobj 357 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 671.212 201.136 683.043] /A << /S /GoTo /D (subsection.7.5.1) >> >> endobj 358 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 655.073 267.965 667.536] /A << /S /GoTo /D (subsection.7.5.2) >> >> endobj 359 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 638.933 301.738 651.397] /A << /S /GoTo /D (subsection.7.5.3) >> >> endobj 360 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 622.794 263.87 635.257] /A << /S /GoTo /D (subsection.7.5.4) >> >> endobj 361 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 609.045 257.405 619.118] /A << /S /GoTo /D (section.7.6) >> >> endobj 362 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 590.515 311.741 602.978] /A << /S /GoTo /D (section.7.7) >> >> endobj 363 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 564.353 195.696 576.896] /A << /S /GoTo /D (chapter.8) >> >> endobj 367 0 obj << /D [365 0 R /XYZ 98.895 747.976 null] >> endobj 364 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F87 315 0 R >> /ProcSet [ /PDF /Text ] >> endobj 370 0 obj << /Length 100 /Filter /FlateDecode >> stream x3PHW0Ppr w31SԳ432SIS045370U076302TIQ0ӌ wDVhdagjQii Rev =% endstream endobj 369 0 obj << /Type /Page /Contents 370 0 R /Resources 368 0 R /MediaBox [0 0 595.276 841.89] /Parent 280 0 R >> endobj 371 0 obj << /D [369 0 R /XYZ 149.705 747.976 null] >> endobj 368 0 obj << /Font << /F46 279 0 R /F96 355 0 R >> /ProcSet [ /PDF /Text ] >> endobj 374 0 obj << /Length 2317 /Filter /FlateDecode >> stream xYKܸW-%)Q @/ "A0֣3R{2ԃmyA6riJYVN~xW߾-(wife]nRYZw=T$S7yLvWJ:SR]M@9@™DRJ)•Hem.Iw{kцDk1ԗ+G;|6w,s3"<"QZddeE~L9xw󆅴#'e/ʭW2-㢷Nť'\PR_'MmpJ̕+7 B߰9Qs1}*zu?Oaxn'cն%c8 eYodT'Ɖ_Qjµ(>8,8WO P%6f+ϥrsEL!b?=ϐ"{JUasQAOĹ|nBߌaUW {Z,3#jZ} T}'mԍW+ۿ u&,7hdBʩ"A-rmGn5v$0-l%ːKHwaSsf 痴(_f3!SUBeB :U63.+4Ofb"-=FI9D9+;b!U|q`Td) g1-dn/Uɸd[n9H >AQn|t)6jjE3X|E"*_AYLFkA H (KÈ `'/Ntz @`zyvN+:2P iJ-KuK]q9vJ#uvs2C&4B^> endobj 375 0 obj << /D [373 0 R /XYZ 98.895 747.976 null] >> endobj 2 0 obj << /D [373 0 R /XYZ 99.895 717.021 null] >> endobj 6 0 obj << /D [373 0 R /XYZ 99.895 463.616 null] >> endobj 372 0 obj << /Font << /F87 315 0 R /F46 279 0 R /F107 376 0 R /F111 377 0 R /F56 378 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 382 0 obj << /Length 2718 /Filter /FlateDecode >> stream xZYܶ~ׯ?,<((ˊv]yVSd|8H!ETC@].=y!!IJ JB9[\^/Qzd &dܔj^oK]1R7R7˗?Ѱc,0ev Wl?Q3 Q|\7U]u㳪y1Q K[B/ wۤ_OA3ģ>>FU/PQw#'>Y[X7][]ԍ0e6r\r_nrW U_덝ɿ_;_V8-4)&NSX?>Ԝ[ 5ZۡτjzmU|S9vtoqr:+-aUL;JGs&x8>p8,Y{(?0llLVt9i0h#QJnJUmW0Xe١~׫g0!VҎH-EIˊ舠v+]ʛU?e"|qKncBT E{6thiX0jLiq ѩi7]E ʴ~ȹ~ðo~k7=z ]-4R!%'*ώ_# OB95 XsI[C$Uw.F&NL1%ˬT듕[-GslR>lqCl_;p"^0TN2ltUU'p#_ZZ Pp38>℁`c[˧oU9~ j;FՇM,@;apTy)B`x>lpϻl} ;i~xEz{kѼ !_V롟 Og9A|dAd"t :3,E$@^[DBzoOUș0v,jm:+.:1KODW -f)рo |@w<#g6S},R?Kn{ˣ'<"Re ț`1:7j"#혿0A1V3YĤnc ߇O>dp3=mpLOv-N\FB}cq}&lR.` I3P$ND9N{ dl1*DbPtF;.HOw[tU>}/6yZ(h4eWs"qX];鸭-^g844Dg,=>9, (Dơ+:@Ӳdh > $C2>ap&B_-"$fU3ƔJK$~M&z73kqzMPB1C=2%NUTԒӾy:!:žh<>ɤ"wTp$gݮC1b;h/܀4] 1C0!-|ϻwi"v}\N1IS6zLFZQXͯt@#Qzg~:pwPuIxK~VE6[蔏IIѮf&EqH&XŚPr8 샗;|TޟY{4r\ B^xCjP {ZOڧ+ɺe ڭqfM˵#BnbXd#[1U>|*Xb dd|F8-d=l XvmW1:~KtƼ+pAo^+*iui_ڈpvI-P_\km,zJ1<.o[?nXrbк{">P5sN`) w]MSk GQC$eɀ%^{~_(M/ endstream endobj 381 0 obj << /Type /Page /Contents 382 0 R /Resources 380 0 R /MediaBox [0 0 595.276 841.89] /Parent 379 0 R >> endobj 383 0 obj << /D [381 0 R /XYZ 149.705 747.976 null] >> endobj 10 0 obj << /D [381 0 R /XYZ 150.705 668.323 null] >> endobj 380 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F111 377 0 R /F107 376 0 R /F87 315 0 R /F117 384 0 R /F56 378 0 R /F116 385 0 R /F130 386 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 390 0 obj << /Length 1684 /Filter /FlateDecode >> stream xXKF-x+6).Kڔ|^ڿEӢj~[g/p.>ݪ%oHI)B˺\M=x4w@U] zؖg!b@B9Aّv $`ORWW[, ɳd tKhsU6:߾{ ?'r̻NXv6/*v%SmBkQ~ķ>vS 6Ǫi4˲C7z>J1Ǯ; ݍ[oMS6"I`̑ӺH7U\`6z3Vs> endobj 387 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [151.342 465.382 336.146 474.401] /Subtype/Link/A<> >> endobj 391 0 obj << /D [389 0 R /XYZ 98.895 747.976 null] >> endobj 14 0 obj << /D [389 0 R /XYZ 99.895 717.021 null] >> endobj 18 0 obj << /D [389 0 R /XYZ 99.895 447.893 null] >> endobj 393 0 obj << /D [389 0 R /XYZ 99.895 393.56 null] >> endobj 394 0 obj << /D [389 0 R /XYZ 99.895 396.13 null] >> endobj 22 0 obj << /D [389 0 R /XYZ 99.895 218.495 null] >> endobj 395 0 obj << /D [389 0 R /XYZ 99.895 142.595 null] >> endobj 396 0 obj << /D [389 0 R /XYZ 99.895 145.165 null] >> endobj 397 0 obj << /D [389 0 R /XYZ 99.895 133.21 null] >> endobj 388 0 obj << /Font << /F87 315 0 R /F46 279 0 R /F95 356 0 R /F57 392 0 R >> /ProcSet [ /PDF /Text ] >> endobj 400 0 obj << /Length 2215 /Filter /FlateDecode >> stream xZ[s6~#8\蛛MҬvf-6'bR=)d\Wq=#D$oN~XF[.<."̚p vnf;AaT28o<8 ~Bh.dARbB^K&^K2'jrArJwT~pghVnE%#%pA ߇M~ME~QǁH p ',BHꈉf%7M\KGL\`qKC\r)(Ža,!- р5{*W5,]>=˺rXEu, iKWNMi9MV]9}x,h!{-,uKqYE{ rg#wQ\\BsL,t.$slH:Fo*Evb9X6wR)20)]KF0SB.kߑwf->?^ɿiΌ";R^s>D Y@A@#dA qTy<i~7dMǞ\xS&,[Oix~5i/ȏϸ>/ΠH>7EJWV- n?mjFWkHf%)U)+IRJGhNWxVIAfФw*I#. kކԮ*J7E`ڲ"}JeqEichRBăi8~vTUZ>zF4ڋvb|*rUҔ65[A,ojܘ4l& S؝}6Qw Oj{z\2Hԡ\O~۷lXa0Q@ HV~{!pˡNV_H#=ncu7!ZpPZɔA}Sc.%1jr[`?bR$AWU\,l­TCY-MSI+'d0Qdh;B*hA?x[X}M, Hl٘Dq1n RkG2>m K^_E`#n{ q"H{Xkr|N/9kJW?#n7`fBJ*+TQ< 1V6:X&Ɩͼ록z`8XOQd:prX Vp;+j45%uHZ:3tcqG“=X9)]e@O a aI Ϛz.#=75d p_m3a4ol<쇃v艙ѨT]d'@ˋRAb(O42!QA{ C?(>M2>X3&!J6 AǎMYWnA5}\JS_"EĀV䥴,c?3ާGYr>M:P=2> ՃЯ>?}w@}ê=@M2ޮ(41*#NchzJ.)4 W`! ^8:ۛ幘zd\}ăF9<|o9_ /d#k endstream endobj 399 0 obj << /Type /Page /Contents 400 0 R /Resources 398 0 R /MediaBox [0 0 595.276 841.89] /Parent 379 0 R >> endobj 401 0 obj << /D [399 0 R /XYZ 149.705 747.976 null] >> endobj 402 0 obj << /D [399 0 R /XYZ 150.705 698.51 null] >> endobj 403 0 obj << /D [399 0 R /XYZ 150.705 701.08 null] >> endobj 404 0 obj << /D [399 0 R /XYZ 150.705 689.125 null] >> endobj 405 0 obj << /D [399 0 R /XYZ 150.705 646.505 null] >> endobj 406 0 obj << /D [399 0 R /XYZ 150.705 649.075 null] >> endobj 407 0 obj << /D [399 0 R /XYZ 150.705 637.12 null] >> endobj 408 0 obj << /D [399 0 R /XYZ 150.705 594.5 null] >> endobj 409 0 obj << /D [399 0 R /XYZ 150.705 597.07 null] >> endobj 410 0 obj << /D [399 0 R /XYZ 150.705 585.115 null] >> endobj 26 0 obj << /D [399 0 R /XYZ 150.705 533.828 null] >> endobj 411 0 obj << /D [399 0 R /XYZ 150.705 482.361 null] >> endobj 412 0 obj << /D [399 0 R /XYZ 150.705 482.54 null] >> endobj 413 0 obj << /D [399 0 R /XYZ 150.705 470.585 null] >> endobj 414 0 obj << /D [399 0 R /XYZ 150.705 430.356 null] >> endobj 415 0 obj << /D [399 0 R /XYZ 150.705 430.535 null] >> endobj 416 0 obj << /D [399 0 R /XYZ 150.705 418.58 null] >> endobj 417 0 obj << /D [399 0 R /XYZ 150.705 406.625 null] >> endobj 30 0 obj << /D [399 0 R /XYZ 150.705 355.337 null] >> endobj 398 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R /F56 378 0 R /F87 315 0 R /F107 376 0 R >> /ProcSet [ /PDF /Text ] >> endobj 423 0 obj << /Length 651 /Filter /FlateDecode >> stream xڕTMo0 W(+Jd}.6%jc8m?ʖKlY'*v\}W-.Jϴe539AydՊ]^8R dTƷˌ\/5+ w4B P>$3IAEBL:6Ss!=!j} hI[⌊O/LwEXֶkI(Z7=(yۦkO/7)w|GsJSLh5x;G37>T{9M{h$lmysHY!;Qh'u h!:& wnja$2E"x zZ;&= /vEۼQq[cQ W¢ٵi| G?V =I*AC0lyC"*`/#o}C[|gȌ*g&2ټt {rˁumC_ i)K{,4N Bˊ>,^JRQ4Q\cNMoƠATPnۤ'r, XIA' iQ&$9`^O>Z`!08TgV3ǻEL*Lq1KAj endstream endobj 422 0 obj << /Type /Page /Contents 423 0 R /Resources 421 0 R /MediaBox [0 0 595.276 841.89] /Parent 379 0 R /Group 420 0 R /Annots [ 418 0 R ] >> endobj 419 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./illustrations/syntax-chart.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 426 0 R /BBox [0 0 1065 628] /Group 420 0 R /Resources << /ExtGState << /a0 << /CA 1 /ca 1 >> >>/Font << /f-0-0 427 0 R>> >> /Length 3266 /Filter /FlateDecode >> stream xZˮܸ+W@Ћd@YxoLS|ݺmw.VQ*X/*ߋk(v-ů/!-_>4]#slfYb&׵u|_,3&n"i7%~>R"~MܢU˚&!Kqe Nb ylgm.'wemb5Y uA 1XƱJi `͕]^?.?|y1/xfexNN/nhpzd#)f.p^$*˧瓵rz)sÏ?m9A5{1\`7 k73nh6;Ujo4:q^.m`Xgih:0>o zNӀ+ỳ1OM;>Hhsa=N]1ٲCDavʛf-By\#%m)}2%</;acwT;썸n#C>Kxp nzƒMX2Ov[gaL[c jK&\DPYm S*wXe|cbe)dl ɵtOlEV2ҚB`gvl)o$t@ zddzِj4i#,(Kcj |3JA5P32b$8#8V}҃G#^ƻȐϒ3^WX,;Vr9;&tHf]-V ~z-aCtk< zaӴg:5شߣ<|^doTq @1HfN1;HDV+6Am؇EƻȐϒEWֈޝRo6Gxv8?IJuttte߬X!"/V+V/həRS$f) kzLb~s`;/VO/4Z4JJô/KnLL\2ٙ;ͩ/;%5no8w'.}`H٘gZcn#6s2`E}t],KۼII.eka)΍ZdXGBE _CyN\׶!V㞅V \-1 d>O7s\C˧'EH?lkx }AsfnP^þ%_Ns]$X6E IIƃuC½ (ɢXl2!ztZ+DP&!23x΋+͟:q\Լ,{L@[TonCNٹ;ۉ֍=gbnr5IfဿsL똰~T7S;;tnn*G)SK=߂=H(㩡gM'M\m'z֋ڴɀ=ow'N6%;w'Ոhyr6jܓ %<~gZk-Z6^7<(e$I|DG ZM({=F?aۖzJ+Ęy'ZOKK *tci9@9> xe<-wA5;#C>KN^Ƀ$齐)[ji[c,Iܩ($vl"#Yq̝TW]ܻۋ1Rk^1}ށurrWi)ǖjvTWiFcu&$¢L?dQp誶A5vaξ IkKj%e0goFàc%ޣǚQ Qnkdk)xj/~ vdD NW iqp&}`Wt4J, (-l+-F)xD:]F|klb'cؔuְҲ[U]nV ۢxnB6Ifρzɦz)1k^@5# bdDѐw ܃t`բUkBGm~~\H qHȇY10D_Yk I(8fHݱ<$=o(+uTvZqYũ'6;}l];ePO0xe.QطlGlW`Bc!gZv12.*/tUS&);{\(Jy[^vKr 3ImLwnG0 imF>2[tvD۱A@O%ўv3xN_"WQg _wm+AA葛kc0YTϔBET0pvX-R'$H k8TjݮDmx(2*0ZQDl=,b#f12WߥXv+Tg!#ٔp>IB)'v7)n7nn:p q0~v#{\tnWwaN󺏼ܯ'B#ehO"ףUYco5vU%a:(J:ݫr/%4E O&;^yrJwuV3ERy?KwyHz_*EuQ/{"AG$E=`JsΡy4TDEUOn䌸LI=F#,nG>6DOmLGG_uDYT"MmRbaPS6%{zĕ :Ax/W!d? ȚɡfR-pK})72AR勶h ZF$[Ă^Ń=$$ym},ٚ-k,s&"qgKF km{ DeRw=H鯔0G5GM7~#y[ABYUaSymKa 3UnctȇCrVз*ܵf*G[kra K H~y‘S<7;PÁe endstream endobj 426 0 obj << /Creator (cairo 1.10.0 \(http://cairographics.org\)) /Producer (cairo 1.10.0 \(http://cairographics.org\)) >> endobj 427 0 obj << /Type /Font /Subtype /Type0 /BaseFont /TBFYFW+DejaVuSans /Encoding /Identity-H /DescendantFonts [ 428 0 R] /ToUnicode 429 0 R >> endobj 428 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /TBFYFW+DejaVuSans /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> /FontDescriptor 430 0 R /W [ 0 [ 600 636 317 636 636 317 770 615 549 277 612 411 392 277 611 633 520 575 294 974 634 633 634 636 631 591 603 634 862 633 636 591 686 817 698 610 557 636 634 634 629]] >> endobj 429 0 obj << /Length 431 0 R /Filter /FlateDecode >> stream x]n0E|"tâ5=HA,5T*R"xڇcܺq黟̉V1zZ7$z:.JѬL\9IC鶬ti0%u-ҏ&vOv!BoޒY쾎't]ȭ"KFXBK7vil޷6m*>o3 YHf̝!߹3%uFCx3|,<򼉤")XS 5TGpP>RgZT@@.AH+-~$*8H '\ 3WV iޝ~9g¯[R𫐩T+pN?7s&J6 O6Z=ϭzF6^8۔i+~~ endstream endobj 430 0 obj << /Type /FontDescriptor /FontName /TBFYFW+DejaVuSans /FontFamily (DejaVu Sans) /Flags 4 /FontBBox [ -1020 -415 1680 1166] /ItalicAngle 0 /Ascent 928 /Descent -235 /CapHeight 1166 /StemV 80 /StemH 80 /FontFile2 432 0 R >> endobj 431 0 obj 400 endobj 432 0 obj << /Length 433 0 R /Filter /FlateDecode /Length1 9836 >> stream xZ{\Tվ_kڳ3 1 B *>瘚2T40T$)hG43%E3|AH{Kc!%&eЌShf$>N2dQ`Cդ3rcÑVuu|Sͯx{ҿ#; 7DDv=wJQdK R=FԄ {Mh y Qkc p vo m\ ,q 'wre -ʂU%,ҜN܊hGAeeeRD 42f%XOt-I=sҭy6RoϧBw ?+gEA\h IRy9sIYL+. ;e2B v:6jjmnхѕFߌf:@b] rEIfҙLL; 9pVi:Ѝj[.qzirŽj-¤Nwᆵsڋ4?ppM\G"墥Լ\(L:GY[ӛLXo!.ĵUb:1NGXqײ>uF>#DRi61sOJʵ T'$Bwn['@r&*!le~X!$a?H6iz*B=uET#ucb!oKs]H8D18g?)=ݦN}dDY,M_OEŤyҼiiq㲣c=¤ee1e2oY첸5II7b:^xㅼ۳d+{ZoS yr7)sLuIu9n/~[ꤤMG(+I;$،Pf (uU<)t^3܃١[C.o[-é=úl~epnk8z@W01]=QA?-$GZoT` vo=۽/jI;SeD #uj@d|Zė;-[+WܴBjڟ{Ǧ $oI,!2. hUJ*,h^ȣfbwRr|݁sQvFNCZ;5+#{(;G50"HTl(bXd*6[CŶ"{eH]ZG-'k>$a=ٳ&7Q|v_9f~7oiׯ4HPXTfLu*d2RM(#}o7<NMȻnmw)Z,ZTvsOZlr U=-;\w&i\7\5q'5lPx<1UcGt"ެ);ŨF@FdAv ߥF4<Ӄ@zh` $ m[uݦn]]L}>jcK4Av2vMu:;uI&&$RSٮIN$U2 `B$D b< 5ɕ7#0κ=STR[4E4|q䮉+VLY?~?2&/]9mƿ_pPSXKWVl>,3s¨پ[] x IۥrQ('KĽ2pQz>Q(h-,Ll-[kα|huk9:H-DXN/x5$AΞùSm#]!Ri*BUiE e)&d#!---M/i k*ng m ڥnλiK:V;{ꝵY[;fݰbѼjFfh-^}wnMYĊ#|XG^fCh:&RMцO6EZgT Aɲaj(w~&ȒI+"xX"nNւ-Q=nQ_֪CyK:Wv. w|`KYZv߱c}͓efX~Kd~g>O>__GǼݥ;>xYb=^~nNa"䍘+7ycSG`9Ƕ%k[݂1%eM&(UipTZWJļP*bjb-]%{V /iYη%^[LNU*O!.4_M:9}';w9o{pOڡ͛%$rr+FmD&j6ôHԆF5P8i"C:r,mHcC/ fEBP*k*M\H3l'(1G2$^9d[L!t _!LR@t)OKEP$e ed]+T t 6i{C˟mr2h|tt?,ە"Ծ%"BrU)/^( F,0] %}0؄, 1+LӁXkyMYvzn%w[ζ~ZeB?s6l,<ƪӬ@]ֳ2a#[ u}4|$*LN!(]4 I+XgIJk7eAeJ /d~o˃A hv7NGhCY1)QBT֕^;I '((B-EubIG/D;L h&N*UfHp,#sq$m+8 OFr % -CYAz#H8Z 8G s(&lۉ- 9| P'-3 \EjREI1u# 3^DeDa(B/#_ '<ŘHdHiAA^*B ! ]e{9J HC ˫N}B|zw z#_zѐ?ř>;|Բ<[2<фQw>h,l^$c_s<'R29+6Yb%duRRIO 217#䬡alv2+Yp:GH,:ۂbrVzchښŹx?-ȡ5APl9(llǃ !Tqr<~+|p E$!yBTu:!FLj&oJ}͒OHo4BPw,'ًpģp/"vYBHTt&CI!DW4mN! {1 nshv?}s:~nq`+{w;7* hjo _ L/ǰ/*l׮kp5>7ÿ; vbr#|p}bt\]gÇ>> p!,Sl z'9 9w8q8 jK}C0e|P ? +j8a_>>'vWnTM$f ;9C,l{:lPTVV[^3-^3W#|xu 9l0 *P/WuͰvQÚչlQXS"~VjVqXb7ËdFˍPeP*2KmyKmC b/fqXCQ`!|Sa.gaN3nYPa&9< Opaf9L_ Ei9L0ސ La9L 0^"C0X\y@qjec"`F e8dA#F0,̆Ya0W  ]ٽ0(n9 пw@!1c8`g+F FfH9cT#K3CuUX7+tUK:t|lg}lNI>wD% 9ą@,ko>x!Yɇh3Qnfx!"QRHprpp`lȫm XCH>X8MaOAAdH M- 8  ]ZplM!̮ endstream endobj 433 0 obj 7294 endobj 420 0 obj << /Type /Group /S /Transparency /CS /DeviceRGB >>endobj 418 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [308.949 499.49 323.066 511.953] /A << /S /GoTo /D (figure.3.1) >> >> endobj 424 0 obj << /D [422 0 R /XYZ 98.895 747.976 null] >> endobj 34 0 obj << /D [422 0 R /XYZ 99.895 717.021 null] >> endobj 425 0 obj << /D [422 0 R /XYZ 239.088 182.967 null] >> endobj 38 0 obj << /D [422 0 R /XYZ 99.895 121.255 null] >> endobj 421 0 obj << /Font << /F87 315 0 R /F46 279 0 R /F107 376 0 R >> /XObject << /Im1 419 0 R >> /ProcSet [ /PDF /Text ] >> endobj 437 0 obj << /Length 2799 /Filter /FlateDecode >> stream x[Y~_1YpNaHr\T"+I~#-k+e}>3႗EY İb?݁ׯ.hş.piwSLUa"j\-~Kםɩ [ sx߮^\RMZ|2*zS1^^eI(o*QW? zp_#DH=āM1hDTF)U #dm Ax!eXx%pOŧD5ᖷhn|oΰkDi}+"쒧yO^@6Yzp:0L$Fu|\5]Hђy9R|!|u7b1 0>cC Ѣq=tpCDT,9";q=+™"ib2L8pR;:RYg5(u0e,xռ9YYrpb/5Jی,p 2ݧ/1 wkA*8p͉(vbQ p|_/} ѳ;qgՍwH\̌Dbeb2{ <0a{Dr;m9CL!֖vN|/&}_鲞O²ԮKQw^X߄L'Pyr !\(r\/L0ӝkĸg%G06Gvrh PVn9 ;^t\d "rTFA>NcoUiܥe|Zd9g}CfoG%Ȥ!Dlz#Lyo>lDj$-/LXmY`~sz#S r^S(a'ǁ\`юB q[QXK̰ B RIU>pH& *F Яk? '3uot\ W)(C7j F[* c@KYɃ4N_Rd, uf"uD\r^`ThoC2SIdfA8Bxf^/o^ǡ'=Bs $R/ywod|#"df`hZn|w_vF? iס?~|?Zߣ$jsF_8mŤHBΩn;YW=!1Fj 4=Cih'w(^7,M,q˅?1̔ jmN - m i¬B1qIupN|uOcYZ"Dy!)vnmIDΩbT3Cؐ]7rȈp RZn r([k0N͆ y{e6GJs7{ | JTi9)ζ̩gۚg]re[wh:^Sɴד<ܫq~7Gϩ0bٗTںͦaSӖ~TKցٝ]tT66- :G>GA ?"+¾C&vpo H@\y *n2>U~`H%[Şվ &a-qK%Vy!Y?"4to[qm*mtC2qi~HER/$vWC}mj<cOI2aEҗi Vp$ygvsH9Tݢ*Ð$TX>9[ jU;g [-coS&Ϗ:$nUc{I%kvk:d\IG+G| J endstream endobj 436 0 obj << /Type /Page /Contents 437 0 R /Resources 435 0 R /MediaBox [0 0 595.276 841.89] /Parent 379 0 R /Annots [ 434 0 R ] >> endobj 434 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.43 522.685 407.88 535.243] /A << /S /GoTo /D (subsection.3.2.3) >> >> endobj 438 0 obj << /D [436 0 R /XYZ 149.705 747.976 null] >> endobj 441 0 obj << /D [436 0 R /XYZ 150.705 517.351 null] >> endobj 442 0 obj << /D [436 0 R /XYZ 150.705 520.016 null] >> endobj 443 0 obj << /D [436 0 R /XYZ 150.705 508.061 null] >> endobj 444 0 obj << /D [436 0 R /XYZ 150.705 496.106 null] >> endobj 445 0 obj << /D [436 0 R /XYZ 150.705 484.15 null] >> endobj 446 0 obj << /D [436 0 R /XYZ 150.705 472.195 null] >> endobj 447 0 obj << /D [436 0 R /XYZ 150.705 460.24 null] >> endobj 448 0 obj << /D [436 0 R /XYZ 150.705 448.285 null] >> endobj 42 0 obj << /D [436 0 R /XYZ 150.705 383.992 null] >> endobj 46 0 obj << /D [436 0 R /XYZ 150.705 171.199 null] >> endobj 435 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F107 376 0 R /F56 378 0 R /F2 439 0 R /F4 440 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 452 0 obj << /Length 2387 /Filter /FlateDecode >> stream xZ[oF~ DdE^EvѦ^`DJWwfHiKy0E̙sy6xϳo/ޜedNƥ.&\1Ɋq>2(̿),/_B?9}JJi&:P47+9f#ШI5BegDx&Z7Kg}?f8rI΂xg$!{ 7#}bPi 'ȋ>U#4S^e -l3w. '#aX]Z31lw@yYD<us?;}f :,@E d>P <2#ɭ\ i{.ﳞ3_ gwli p0X6?;!Y|$;QA@B:>= wq#z)V4DVګE-bԴ{tihk'Ԡ@,y~]F&[o9@.h{^HĽy,AZux~>S -.crtP"}8#*5 Yϫ5; 3+0_z,uZRTg y.) /.+j@,5^q,ӑ}lDRg0V@qRa kdVB3<;q Ye/6io."`PV])ڮ~"U|2]3X0aC.uѸK&g\_QO4ae8Z4HM2Œk7\疢q:+#V5]ԏḮNcy+ѐ[%0/ND*@:<$F\҅ Z1pX%=|[-C ']b4sj_NI(.liIQSSO!ue~7wvBu7$O qfvi)."Uh*q&}S5 4ywO]pm7>86o8 {B'3~ַM;25'1ҦQ0<.Cy9W5S_U"()pU˶,]md[%h  endstream endobj 451 0 obj << /Type /Page /Contents 452 0 R /Resources 450 0 R /MediaBox [0 0 595.276 841.89] /Parent 460 0 R /Annots [ 449 0 R ] >> endobj 449 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [193.725 175.075 200.489 187.538] /A << /S /GoTo /D (chapter.7) >> >> endobj 453 0 obj << /D [451 0 R /XYZ 98.895 747.976 null] >> endobj 454 0 obj << /D [451 0 R /XYZ 99.895 547.898 null] >> endobj 455 0 obj << /D [451 0 R /XYZ 99.895 548.077 null] >> endobj 456 0 obj << /D [451 0 R /XYZ 99.895 536.122 null] >> endobj 457 0 obj << /D [451 0 R /XYZ 99.895 524.167 null] >> endobj 458 0 obj << /D [451 0 R /XYZ 99.895 512.212 null] >> endobj 459 0 obj << /D [451 0 R /XYZ 99.895 500.256 null] >> endobj 50 0 obj << /D [451 0 R /XYZ 99.895 449.25 null] >> endobj 54 0 obj << /D [451 0 R /XYZ 99.895 253.445 null] >> endobj 450 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F107 376 0 R /F2 439 0 R /F95 356 0 R /F4 440 0 R /F56 378 0 R /F87 315 0 R >> /ProcSet [ /PDF /Text ] >> endobj 463 0 obj << /Length 2694 /Filter /FlateDecode >> stream xZmo#_@;@PZ-hch,Ɏp|ܿ3$WҮ/i>IrÙgf&6͟nnEi<k}7;aq';쑜d`NbPyrE6{_m7^w7n8 [8]8wr/l'|S_`zr`]ql\ c^aw1r&+}6=ޘ*S HS>i"r]j?ltEIJe$cm4˽A2JY]$C` rbPec&8+o] J,uRm0R1>:ҺNBko$ԲA7s-^JZ̜Ga;a/[(@ˆjĘ'NwID$%̒w~EI@`ݛT ]@haKCS-YS֝xa+ +-hl"-lXc%J t(8`0/ G,b(P1`vT0SQ%BTJJtBEnl`^)g@-`g0Dpf0‰%JlSȖCF'NKUGZ+4'A"jvnp;.< Ϲ:#j`:jܐL;e]PYԦ`O`nd]dQ8iUHX\aq4|hp s% eD!XM>v,Gbd[:3[KY_֚7,/́ÇjPoj2f*zs2Dh)̌a1j?%B)|mhmsad˷\FζyQcs} gq>WޟBo-Icq-n&z-O{\e=[+&꼎wY5m[w|:WO]?]m;)[\aozC]0P)<4K8UQC?׶U޷95 0\%,(e}&x6ۿL܆q2BY!21S,XNh$S~u6@bڣ~5mJ6 փu=;q NJbJJuXj!+J`fN~1T*Qg%姠aOr.*(C9!qqJ,L:L pIZE"N'|s/U鵶ܨA Jj]¿nzύ0FD*d-^ef!#v-=oUHX"d8:غ7L\L:#P1 Ze`K$uY\:5ҺEDO^:=)Pܝ ӊ>X G@0^g 3yz/-wfLC@š(h22v"C s!;뜪HGBr_,}]nydy{4F~[6:ʽ%UP>:mBi`4$> }Snoo#+ XԷgR7iB i Nw]#2n^`~T v\d~5N2?wãó&nrx[Zd>8/OpQh-~= %CuNN_]Sߤ;}Z)ko 0F8 \lei:[1X Jc8 q{QpE}[}](c@tЦd>I78L:m:]X9z_uIt7S6,B(= )'oKSJNd\Ji>%jTg B!A,s"ؑ7C܂Xz]e˾|v Gޒ.ۿttWrZ]:+l^ClH%M]UGp:L?E endstream endobj 462 0 obj << /Type /Page /Contents 463 0 R /Resources 461 0 R /MediaBox [0 0 595.276 841.89] /Parent 460 0 R >> endobj 464 0 obj << /D [462 0 R /XYZ 149.705 747.976 null] >> endobj 461 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F107 376 0 R /F2 439 0 R /F95 356 0 R /F4 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 467 0 obj << /Length 2724 /Filter /FlateDecode >> stream xZKܶ`I4[vURTI񁚡$Vc=3kY| UIU;@Ãg2Wf+mv> `2 Rd\1&S|Wo~|so?rWV)̈́q CuxW6mOCj,S5EVm>d^X sBD`ڦ4z}";QCu'r"t0 D|Z.eMқ|W|H/Ֆ:ܖ[r3qyOTq}^M0&jOb5tSLx(XIC^լXy(UժApfS0_j!6;RD fϿlO?@*S$gAJ.wHPHN(4 kj ZX*  Ânm,5Yoa!g6)D)&m2" Q  G:+K&$:E\gpgwKx7AK<iƎII_PrI8G)Ǒ 7b ,q!$XF $kn!17~6 n3z\`֋3Ⱦcލ0M 2'0nMljj^b^b=) caw5xSkps܎_v HaĴ"ъ;{=aO@*kD|m5l vS*4k[*f>~,O ʊx@ JS*9UHUҩUn&um-jL\H)P_NVoߏYFFG}-٥4Lݬe-i"B{U1[7ʡUnQcbIG^)Fj"v Jۇrҁڂ I#~r^XWn]Nx]Z>C0u0$Q_Ob /Lb[)*ՉAjfEJ%IIBO(<ĪǺT6[Dz,ZВ,6mr#o$%݂mp/i$&ŒgJ>eI\U逾s˴M鲿7/Gr+ee#v=:7FDt}dCQɧ*WZH[Hag6 `r<,S8mj'PW4bQT#}߀5MiUTDm FPwX~ #qa /S@tfD֪E=Aa|n:Y-ۙZ҅rh2/ZFj(>ؗTSZtGާ 5lQ"DzG=Hq4&}oK 1-жED=* Ƒ]nnT\YQ"VuU]v "bI/9єX{U{]gURvRd,c[,k1SZM#3ǐ|sXOSV?K+dm=|9%:Ob7#?Vm[_3D8vY8:Kco+ "r7 !|KjWIo䟋rj0")v =5" H ytQ`XCk;~y2^0.@"i=쏜v9}%wlJ'qVrr{tNn<`:0c\$#Ŋ,9Bl=}^M^ZAhFtRvu8 t8,ޏjEvAц r^QNTU&M:ɩ;AS}ƢǟH~z}eQ> u*M٦z=6eЭC!Z-Dڈy]_6F_@e|WWTٿ2b״S5iĢ盋<|”0 endstream endobj 466 0 obj << /Type /Page /Contents 467 0 R /Resources 465 0 R /MediaBox [0 0 595.276 841.89] /Parent 460 0 R >> endobj 468 0 obj << /D [466 0 R /XYZ 98.895 747.976 null] >> endobj 58 0 obj << /D [466 0 R /XYZ 99.895 414.94 null] >> endobj 62 0 obj << /D [466 0 R /XYZ 99.895 284.319 null] >> endobj 469 0 obj << /D [466 0 R /XYZ 99.895 143.087 null] >> endobj 470 0 obj << /D [466 0 R /XYZ 99.895 143.266 null] >> endobj 465 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F95 356 0 R /F107 376 0 R /F2 439 0 R /F4 440 0 R /F87 315 0 R >> /ProcSet [ /PDF /Text ] >> endobj 473 0 obj << /Length 2716 /Filter /FlateDecode >> stream x[[۸~_JE%yxmvbd $Fe{vlo=<-egI\4<noyL7dМY3 q)ac.L߼3%&C:a ߽/J],Ӣns6-VPvq.7>oNg<=bg;<(,ZK\8lRZ\ ɢsܟr:XgS<nO\z7ʑdFH^)ȿ?LJB|X>Tu{qB5cNsG8`ol:B|W`mN!8a1)9&Ln~gCe_ ZgnPk"V/;IA$N[RY-٦pi&mtͼZuxfNܶ`Vp4]q(HaBGI$&6%;ݢIEв5N0p  '5OF  ΄Dai")hdJ*2Jd!B㪗&+|;4.*4i(2Z!@^BE]xu@syŊfECx i[6IR[Q6twD 5gp*~NX-{) )ƭyBsU/GRR7`|7b:N1z5!En޿;W#ȈQ5iTt5ҁG=j㯿m?Ph,^!Zg.J1ihB Ж= `\ևpߗ4v5^.I9ZQSh&JIחR2̠R ~G՜|:+L_YqgRU"MBkO2c n7Sg4tj?k,G@ӬS]MUYBVBA xzAW<Tu=RjJ#Ofy^eH OcBgx)3NV8ms8, D@c+a؊1_YxB<6\ş'X:JN9׋vʡpg eQ P1P( m2<6g%\x8ڧL8LfEkk|x J ʹ<%'bP8SédE4^rP k3QN ;QNk`eHl P7"?tcN,ԡ|:F|:*]"ĸcGcEg{Ȯg>}[tȧgͧ~C${(2bǛIyB:+<guy;3`s gA{ t@(ɦ:B]Y%=ͦ(ҶO6]>O6]ڢf۔eӁq:d{nCm"ĥmf^@8p\6Y5_%C^|{0`7+ av'ӑ'."6sgqڝKm OId'__^&K@p;PS$5"@ǡ}1 Mv@΢pP^|p4DiqSȣ_B^1@1^} Dcb8In4σJ5g͚2Wz߈<ڭ S>ǧjtHCGV+\)³wQ0iO@ۇ KcH3guE'Hu.;_Qmo*j ]/8: HYJ(7rKd݆ ,}Z }rZǡhP$vUM9u+X}j)?{6NTHe;XMzpe>vWq8.WwZUTa(c\ +Jmx`*`\ţ/(]Gu=8!9zp =^ ɴ ЮC{ڃB")SZ*#e2: TAxNit딆xIku4VqgЁ7`Ʈ2_JEuXtZ^vڋxf(}l5uz+惎JUIhQ5]UûTթ=Iťn֜JNPcdjи B)B(}M;onLǧ($ފxmKEu~07!~S{R6dO@,܉$_ugcIT( endstream endobj 472 0 obj << /Type /Page /Contents 473 0 R /Resources 471 0 R /MediaBox [0 0 595.276 841.89] /Parent 460 0 R >> endobj 474 0 obj << /D [472 0 R /XYZ 149.705 747.976 null] >> endobj 66 0 obj << /D [472 0 R /XYZ 150.705 717.021 null] >> endobj 475 0 obj << /D [472 0 R /XYZ 150.705 559.161 null] >> endobj 476 0 obj << /D [472 0 R /XYZ 150.705 560.696 null] >> endobj 477 0 obj << /D [472 0 R /XYZ 150.705 493.681 null] >> endobj 478 0 obj << /D [472 0 R /XYZ 150.705 496.251 null] >> endobj 70 0 obj << /D [472 0 R /XYZ 150.705 460.641 null] >> endobj 479 0 obj << /D [472 0 R /XYZ 150.705 218.994 null] >> endobj 480 0 obj << /D [472 0 R /XYZ 150.705 221.565 null] >> endobj 481 0 obj << /D [472 0 R /XYZ 150.705 209.609 null] >> endobj 482 0 obj << /D [472 0 R /XYZ 150.705 168.896 null] >> endobj 483 0 obj << /D [472 0 R /XYZ 150.705 169.075 null] >> endobj 484 0 obj << /D [472 0 R /XYZ 150.705 157.12 null] >> endobj 485 0 obj << /D [472 0 R /XYZ 150.705 145.165 null] >> endobj 486 0 obj << /D [472 0 R /XYZ 150.705 133.21 null] >> endobj 471 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F107 376 0 R /F2 439 0 R /F95 356 0 R /F4 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 489 0 obj << /Length 2620 /Filter /FlateDecode >> stream xZn}WDΚA&% I f恖hR,)9QESithKnunT6ydWQCbjr{?1FN4$ctr;p"H::OǷ77?o7鯷\*5(mT5WYN&O4Қ2 SsR)FER'Ofdn&""Yե_OKd6oK.RY.eYwGERڊAdquY`-0*6,PsJ)1Rz>,w Ob[q;k`uU ɓb dYRjG;j8=#qYJHj?ӵ4_L'MJuWgS[x&'BuU^Y?kg46A1GwFÎ8w┻@~:>||oosGuWr2[\q.8єN9?|;p)rRhH믤$4Kynq۸.á<,|/RƓkf~KS3S혊vCH )$Z?S?^,*|q 0'D(j88+aO{޳R$ f .q)8t퇋j*"Zo<#\俇fVͬr ]~-ayuGC!X?P#LY[&;?ٖvU3?broB8 uq3[qInϼ9.1 M1kx_Դ6˒6ƪb{F֞*{ŏ!xo=_MpM޵eX y.ؚarPb8t%;e6(3o DjlðI|cZC/z].j&aѽ/~rIG_5]Oyy*ڛfc |s٤MD\\oh/lr/9 p@($$"EHw e+ya@ƺ>cΈ:vt,,tH&sA$[pW SOn۸̃($8Hʉ0=<pÈKw,iHɮ44\ՑzCgxii/(ꠑ\M0Hpc0ס_BgYG[4 8*A#[OrvIxgDjTJG!-q-YK!dD嗁 Sz/6T} !r2#D#9kVq^T%P:iLj /,'Z_/Y{($|ʃeG EpB|,Ep( , uI&OEpBmzp% @Be&hAʌC_-(f'.5L_-1"@8PGPky0YBVi u2A pv =Cfm $E ( FMed$`'.gdB2w@} 0{A sb=jqNO;$MXnNؽZ~)iЗs3&(x/\U焸M . Gpa_HO!,~>9|53u# zy`9\gSNiO&.QNNIwIR\w_T:Ҷ|[Y3鷨3+#bQ͋NCm^ 6/{YnUn*u1k&̾~n7zNN ]8׾qd[>e9_]zbgvS./5eTQ{ֈx#UJ^"1wE<^CIB VJngsA*" gkB|}2C2N?RH(ʠ%7(CbX̾aa20s Lf{`f5|!laq=[9oU> endobj 490 0 obj << /D [488 0 R /XYZ 98.895 747.976 null] >> endobj 491 0 obj << /D [488 0 R /XYZ 99.895 664.516 null] >> endobj 492 0 obj << /D [488 0 R /XYZ 99.895 667.087 null] >> endobj 493 0 obj << /D [488 0 R /XYZ 99.895 655.131 null] >> endobj 494 0 obj << /D [488 0 R /XYZ 99.895 589.733 null] >> endobj 495 0 obj << /D [488 0 R /XYZ 99.895 592.303 null] >> endobj 496 0 obj << /D [488 0 R /XYZ 99.895 580.348 null] >> endobj 74 0 obj << /D [488 0 R /XYZ 99.895 532.504 null] >> endobj 78 0 obj << /D [488 0 R /XYZ 99.895 244.234 null] >> endobj 487 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F95 356 0 R /F87 315 0 R /F107 376 0 R /F2 439 0 R /F4 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 503 0 obj << /Length 3240 /Filter /FlateDecode >> stream xڵ[Ys~ׯ`fD,CUdg$hih_5knt_JAW8&#@cᗟ`!eݒ3d $1SQT-,fQ]W 5W?~S9A+ND($tD0 Qf|RS4T5bS^,}` "崤2?8m1Жm}(Pe/̦[cA Ƅ8i]@uVk5|>gQʱֳbSMrA&7J 9Y<Xg@˜$LDXM`'Ʀ\Ӊ;U^{j4+%I9 nZbS},EDe x5MMNJH"Jyg?V/YQ FEՄ%9KRp=(rİo@`게gDenߘ0ӐA64v$DJlٶQ Ͽ 2FQyQ\$g`)<{^=VXկ~ !I]W?:E7gϙQ ʇd)j6u 05xky$i٫ =.%Q2mAlUG: SPpy( =08 +rc#e@8l6]+*OO[’7?=L%̉4Dr:@Rw¯?$Q+݉ZYa3gF~>ugEE;.jL8;ju/ad}>JcDՀ'y0R=8}{8L,z,jæ_3`u~R٘bssu+ .j{/X̷uNl^O˒S)_Hf4ԉ[Xbb/z~-:%ɛ$*lgo jQUo3Xi'&f:y\ڋr {f!t蝤vYJ;|ؑ5SR98'CIH@HȐ~&Bua༎RRfop2»?ZҥYY^][7AQ["Y[g5 N~i#LE*[ʽ1['F`>k#=o.0AoXҺLB_.OFFgpHyWDw8ܜ!'Pt}:XRlK9? Ze:],!1ΒB|za޳x5ף z4ț<]S +k5No3yزl G,#:[,@:[ ֓Py(;T>0*5q[]QQ<LY?ɋ̓ac~v oA1E)QPU1aL!pc/M+]F`'ёͨT#; d%8d>oVLmNE.EQS'YaSdc+!CPS⮊&IHZ÷oba,r;"Ԟ&R)z܆dS'dηRrC]|{@J֐[fS{Cd> Y@xOb!@_Bj>>L'Choܚ1).h *4~K)Ms"ʵ-VZ[uV CGPx'!MxSg 5x&8wC`RAxgJ9iSiz7ԟ9DUt7n7xѮ99dn>8ewu .uycK\T5y3lj?=DbD& t˂5O|Va;dn7g؜/kuCFn]65UE/798k+@1GJtNOLsn]UlG*]W s(gvL%馶y ~7@R֭iF=I D|.G_˱dG&m/PDz{4Ԭ:6#RCN8p/%U ?3݈I?xcOunRO[CB]ºY%[nC3YT `Vϱ"πQmMdٽ(ۢ>whT>Œv]d7>O6hDmb\48{n_FX7+d endstream endobj 502 0 obj << /Type /Page /Contents 503 0 R /Resources 501 0 R /MediaBox [0 0 595.276 841.89] /Parent 460 0 R /Annots [ 497 0 R 498 0 R ] >> endobj 497 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.324 364.249 439.441 376.712] /A << /S /GoTo /D (table.3.1) >> >> endobj 498 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [412.761 208.409 426.868 220.987] /A << /S /GoTo /D (figure.3.2) >> >> endobj 504 0 obj << /D [502 0 R /XYZ 149.705 747.976 null] >> endobj 505 0 obj << /D [502 0 R /XYZ 150.705 696.973 null] >> endobj 506 0 obj << /D [502 0 R /XYZ 244.991 270.23 null] >> endobj 507 0 obj << /D [502 0 R /XYZ 150.705 228.585 null] >> endobj 501 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F107 376 0 R /F2 439 0 R /F111 377 0 R /F4 440 0 R /F95 356 0 R /F116 385 0 R >> /ProcSet [ /PDF /Text ] >> endobj 515 0 obj << /Length 1489 /Filter /FlateDecode >> stream xXKo8WhoRf~C&EƋ]D-\~"%QI LoyG7LN擣s##2AڈH10%|( z{vyyɇG<1P f^x6x(0$-`#UnzO]i FndHb%R h$ A3yBElB4RNtOg_/ fݸY%*^VM\naQfUV j?Ah05aNMM=/`$}t zhf<:*@WsMCHe9!,ަy-OqC G6oSpCYTF4c %dzG84+HoL]~A"#TKJH>)nl͜HHRFʜlolN#S50#PdȜ6xP$f_<~}$:ʁ &ˢArcmSdl,lQe_*-vؤu9RK|Q $3!32;> IZWM*64%̦GG &fTRɧVAhx{.!Բ.[BO2,L<qp5(OKLB(4XFΟ GAvL0]mղIv),$Dv3+|"/(xrK?侔f-O3Ƞz }9uYe` Z}- xjs6|N;Zc*:rsaF)ܲeV6)R'^9Ϲ|%pӅ6~B= Z{AORJ}@PB(sZM0ȭ[}J{oWl ;#ǣTAKϒ`-Tu[8=UX1)$SQ?FȃyZ_ 4?A;rJA n>>mFӯx5jLOT %/l_SM<]:R)D/5"ia9'Ao_[(05;b9(̀RQQ{`ZGAg@/8ݒ,|Bp?8f endstream endobj 514 0 obj << /Type /Page /Contents 515 0 R /Resources 513 0 R /MediaBox [0 0 595.276 841.89] /Parent 524 0 R /Annots [ 500 0 R 510 0 R ] >> endobj 499 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/par1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 525 0 R /BBox [0 0 103 148] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 526 0 R >>/Font << /R8 527 0 R>> >> /Length 713 /Filter /FlateDecode >> stream xVn1 *^6@].ÇvP]9i Xm<2$7/dY#p >ikLm@?; ;M >TY( {ɹCeucK/IU]Qf`g]Ի"tT"GI5wN}UC$9?@}ˋ$#h0+4EF{5xc_7(kI%TDy#x^#O`((F+&^ĭGAye8D(>LCAιñ %3o-K&!&!0 (&p#IDZ7! PgX$ Pimm]#UDr}.iZc%8"%!FargE6iƘ/94&QgIoʘF;7ZZCGFW[L!{m3{gfPK;h#81 r/eajL]cKE%ڦݯ+S͠:WWXJh ˕"*C 8+6L]ُM젒!ȷظ jyRuЩEEn:DA1˿}\9k> oCfk\dI?t?.|vԙfPl<"*m#> endstream endobj 525 0 obj << /Producer (GPL Ghostscript 8.64) /CreationDate (D:20090928153029+02'00') /ModDate (D:20090928153029+02'00') /Creator (inkscape 0.46) >> endobj 526 0 obj << /Type /ExtGState /OPM 1 >> endobj 527 0 obj << /BaseFont /SNGJNS+LiberationSans-Regular /FontDescriptor 528 0 R /Type /Font /FirstChar 42 /LastChar 115 /Widths [ 389 0 0 0 0 0 556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 556 0 0 0 0 0 0 0 0 0 556 556 0 333 500] /Encoding /WinAnsiEncoding /Subtype /TrueType >> endobj 528 0 obj << /Type /FontDescriptor /FontName /SNGJNS+LiberationSans-Regular /FontBBox [ 16 -207 649 698] /Flags 131076 /Ascent 698 /CapHeight 698 /Descent -207 /ItalicAngle 0 /StemV 97 /MissingWidth 750 /XHeight 538 /FontFile2 529 0 R >> endobj 529 0 obj << /Filter /FlateDecode /Length1 15240 /Length 8016 >> stream x{ xSו9i. .y6l 6`Yz$' &! qH ICCI@2MCLh2d:.%.0[<-zt曯{{ d$p0p-=zm G= + v_o6f{'o[J9/0 7E%}Dl!@K| _!K&\7F 'Iyh'[W- _)N!ٯ>[$(<aQcJaevL;dINs-S{,dLۓh4vq[+}x?U/].::׮]jeϊΎeKm׵,YP_[S]UYl~iu^07ۜb2:!TtZ||h\7U)խ."qH+y_ 8 CD3-|'qÚ!wwXyn\ɠJq1; }|GθsosKKm p,5`k.hE10eHj\i[3QT\<\YϴvM.FY$Lc4hyq]?\w뜚#]_h/B\WX;:Ԟ*1/5[ܱJKJީ)wNNNNOYyuXzT" }CkwŝQ.Vu8gN" Y<}  ŴXrJ|r͐Ra88ˇlTj9hZ&-ZQ+fOT\WvRr'(HCa53STl7W˼l^T⟍~m~+! ΩAaD:(oX,MgUl]܀M^)PqTU*΀3[b] n-0\8bF\ÚM*A>b= *6@b#mR po8lTq4閨8ݧ 8Buttݒx\TwHx)DMAj Bv[E ,]Vɼ:yK}kR*/w ]_u ACp(`4#~O!*D 42/[C?Ղ VE a-z!FֹS)e8b# k\Lן_%WS PIwݕ86PPt"^U,UVIiܼZndQMBb=!X'DRڪz*?ZRSwmR~rOD ꐔ]4oD M}rvEdQpeك/s:yTypk{I8wˣt˲yH\x~ ߢRN'Mqy Wd+](VAw%A~sBP]A?u"CfȖXݒ(s')\kENv9dvQr~Q.\(D%fTs|VQ+-pd4A;vTT3dE;4Q+fXANp/*^%˜dŝa#D ̈́*8A+R({W"qB;$RQrHC\'&aP"'R&94;d{tI}ܲX|dx5=uDzZZ:hݐ2Ikrznv A_ kOϿAZ j#\# 6JGa/? >Oc0Ȑ%>axއ_o3| )_p7gZo[%E ޡ!;iJY, NFHϣs';F >'ӰVރ_kh@#0S1 >KY0fG{,ę8 p6;=ZbV,Re", *| kцvzlFlf\KЁKqcvcv c Wc/\8?wq=0nx=&܌1tG/Џ[p+op0(o o;]푿 g&w$[V܋x;q »p?ލ<}x?a>'!<0G| |§|?|^qx_ėe|OI|_ÿy|O%[2=~_ïi<7-&?/.~g?W) </E7;ow{~N308z33S Kei,eLENla,VfYfs\f7b6YY +eY[qx-b e _[p< *Y|`լ>j쬎ճYkf®cՖeu> xcNzs9O㬛`=l%[V^ְ AgClm`lmb(s1f&qe>g[V`,B,̶2vv]F1vflUv;cw)vf ga {}=ĎOQ4 {=gO'Sic,诩YfSK>Fzl\:rGBAK) K"#1¸4 FRwlb< ܐ澌S=!QZ~b[KQBAUة(" AN A) DA.Җ'M2jeY^ /h¥VI$9X5|t3tG0حzW=V<+Vm+%^[V$r$[M +](r2/T1T J^a?_??8 }rBkU*·" z]D3B5Zņbd"6Ul(E+*iIa&q Y,m@#*TtPҘ2W1իAū\#WWxKաf};py6( xPM]*٢4h\ک.AVo4MO[R\z1 E3<~zKTK]\2LqCpO&dSwT;TS{'”'+te]e/wFUn8ңI=pESfbbblu fB~w bF ӻ,RTx쮐pןp77veWnLr+9eTevI.I$LUv)4e/dJ'U/&tQU۬K%N,ytB褸ښ=k5d: kACjPs5hHѐQ[ɫդjRj5)6MMb,i4y6>&٦Iid&ٮIk1k:îk:욎:MGNQt\KNQ騻gG֣AѠhz4jV5j4j4j4j5ɍFMr&Iܤۤht4i:4M&MGIѬht4k:5͚fMG$tPܭkNCjP4t\oMވֱJ^Y_vEĴOّ@aq\HOSq7<*Ք!A52BGpۉ$x x nzȤ7 F\@{R6:ue Qyd 65W cPkcZBT(xRh}颏6M 'pzL W$EbT?W=AD_ kh,*PDI +'i¶+ ݂E K ]Z/S%fs@ kpL4;i@ j4`O[%@S4'@C4&@ rl  [bKr% 3lHh%k TPQ)MH%LӘi~%$%kjrd c{FR*J-0Qgznl˔q @Eij딢^&Rs(F.o, *e` mܑV pXRRCa!~JZ[<ۮUh,hnhlԹ1OpR5A/m"UsOLtҒ6 졭ZSkWFl2y;þ%=>149*hIZc)ϣ,(>[`sߜ,v_`Yz/lp ixG?tZ~:-?8紼y 89{~:n,r-YXa"_OX7/L}'''Or'O9Oΰ9-'N}N9?eǃ/cezMY/xEn2~0S\ m/G?N=smeGSϼ }Ӭo<=C%0t8s,?T`}C\ͽ{>0y<u߼?9m9z"F,Q lYX88^8hsy6uֲqCe9z 88vaXSt)]|1ЇNE2:/8٤my٘5he 2AXڲ6geeUgfd͚2BG=ă{Nč}/^/k6 0a1{onX6'n{8$0I,b\:P GBVˣLlQ1J1ѨQQD8QtE$o"t(GpM80Bl A9s:jl;S}G_mMNqvqNvqC+3=ح@38dfVG*~B6e&n7t.ctxVˬNmKe)72` >e\Y=d鑑2cNOo(hc569;~M~Gv~駕O]ȦwݷoŅr Y! .2gbn]x.0 ܞ}{6ۙqgKK44id۹ۥt}$.lKԙ,5 mΓg;2|mͦsY&ZU!ъv\aby,/w.Zκ궗ƽoޕ'ֵR]7ҽ<[ξKxvŊg0;XD{~Sgokl쓟K}#,Tb 4 x33fd]Guj:`0䘭n/c{Hz6R{vq^"z?k3~P'㾦[MQ94tCi`JBXnk, ?u};~-:oʍ8g=%C}sWԳb:o @t,3ql{l;gO3]zn:KK)Jai"=M\4X8Y%5%X"9KΞ--&4q<)kz'Zb3z{Ǘ~ޱƹo~llo~|lA{/'V|X f&_sp #9r]ݖa 6aq#eX2Y;; f|Ѭ3-ւᖃ-҂-x\ ]7ϜUdjӬn82m[$B3͖@9^.'s&<:˶fSY0`X|JtHO{LZ-Ȃ h[5;q/)dn|5K\ʺ,JJguW{fHiwD/> > :jX^^qyJj\ f.>l̂< wggʶl<ҥ<%G]Ni3j涮oŵ[lqA֍K&k>~yEcP[Byq[a^Ycis沒n|NM;HN&YEeښ܌9}<3%9O?Nci&2W( .Mm*?ٍ-1ƹ( n*AfAz%G>Y5h.gYژs^|{gRj:vK7 4ck8+-ט˖Զ-d/_u衛]lZS\6ǜ6ZlHWϾѵW361/9}(7y]5& endstream endobj 509 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/seq1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 530 0 R /BBox [0 0 216 176] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 531 0 R >>/Font << /R8 532 0 R>> >> /Length 1284 /Filter /FlateDecode >> stream xWɎ$5W"y/GFBH}c\7ĩFBS><%7#/QNX[%^FcA|{"^K"!*I% NЌpC7VⅤQ$#6Rة\㇑i(s⥥Sl퇟_bCAG< Cnq[B#0 Ƒcoo,?ޖLN-USkɣpQ9\fħ0t42褳kVbJu))2png$JF^֠ 3âFu_h`lQ/fP4dZ%SL!;ۘ dχ@͠SL!G$PNʔ 2L9E7W.TNp|5:b鿻,} sTzWKߺReJHJt C]*Z;Cwâ[WD6lKrNf\ݕ5Vnn2ll[؅}V m*}eP፿!v/fP̍y;o| 6e6-~# jMtV7\TjMОx@4BVfƹk)՝z*,bh}Hm !*M~E6;dc0Lot̠APņ5:fS5 E!Pgv͠.| oaf~hx wkc8Gh(esvǛ+Ѓk.:&:0QMPR8b@!9яciC4KHwyj:n(6jbٿq!\ (G xXom#¥Yl<.]5W9 *TfmL*rW mNJw:Bv|Hua \Vx%q݊NUIu >(ˇ7j\]twF(p9LxNwI\f,2  sߧ^O1Q\|c x h;tjk>9%}Qt8t:-u6%5ڔ*dC \#TJ.4nOk=5:iLuߍ5~?w<# er%&`ǔ1%Wc 79dg{3p5jBsЙsLXnj bN zycC[?__[[8l krboa;l d0;s: : endstream endobj 530 0 obj << /Producer (GPL Ghostscript 8.64) /CreationDate (D:20090928153031+02'00') /ModDate (D:20090928153031+02'00') /Creator (inkscape 0.46) >> endobj 531 0 obj << /Type /ExtGState /OPM 1 >> endobj 532 0 obj << /BaseFont /KXFEUZ+LiberationSans-Regular /FontDescriptor 533 0 R /Type /Font /FirstChar 42 /LastChar 115 /Widths [ 389 584 0 0 0 278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 556 0 0 0 0 0 0 0 0 0 556 556 0 333 500] /Encoding /WinAnsiEncoding /Subtype /TrueType >> endobj 533 0 obj << /Type /FontDescriptor /FontName /KXFEUZ+LiberationSans-Regular /FontBBox [ 0 -207 665 724] /Flags 131076 /Ascent 724 /CapHeight 687 /Descent -207 /ItalicAngle 0 /StemV 99 /MissingWidth 750 /XHeight 538 /FontFile2 534 0 R >> endobj 534 0 obj << /Filter /FlateDecode /Length1 15720 /Length 8429 >> stream x{y|Sו9I.cl x‹cmM gK KF `CI(I i@:MtM2.[tI;oPef~{'K ಮn {tu*|,nk]1^~ӵ5,,.>f mp o¿ #:X\A;OP[7 <T}&.Rrm ƸLsT^<7NJ= d,(چH>HrX nAHP e>guMM#:3]_qBl#>}rFx ^cM{?w <+p*<|6| u;{.G ʱD\%t㰃2\;]SI|,KrL~(l^ib6n{KS^ˉ4R{k_oOwך՝VXq]{2GkKsR{ TWV+[X`oH5$'% z^1VcPZJI4`T J0( Wrډs*Ni8$4@Cijg[,)_KK=/2͕+ITϧBkEulL ͖f1'L g; ؼօ$Qvmm+-i&[Z&hEFQ,RJ]N`h8mq;rN;NLM-ηDyy.FK,-bIjMOe Ma} w,߻T)B AwbaSSCd881J^ujwFA.Tu鈦^e$ 5ZrSb<  4?_rSvJt|uR`(ˋlPj9kZc-ZA fGWDTWRrFLJ(6ICa1E?ͷL }2@VBKa^;PH]&Lr%8K 榦 #i[=9$@(-+C;1j=^QN=4Dy喱hIOɬVoWEh K-om4 - ,W6ux Ebj:s4ӆ+IFұN5Di [cUPEFr}h" `ij{PhDR65 1n2#:_h[T>~P^J涘4T%9m}QZ¨YPSԶXWH+IR,sz-^7)[N4`E?e EDz82}b4"6E,MQ7*tD7Pf`0Z)7r'LfG':5 'cMP>lYT⟅k~+!ΩATaP:縉$b=de*6[F>Tq$JTt'B`ެd(^XG[dK$0NEsAuPOxAz(a3Tl߱ *6BJ2G)Y1-#~ e( V,)Pډ=."aB$Q QrH\ǧ&_$'R92ml.jdcйI[mt R҆=z0!osE)CM+,+ >JV?uuEqTJ爜k<^GNK SK$쿟 kWOFB>&Cp=*?0Yuoi6~Op"bTHtȀLȂlȁ0rasŸsPs|XŴHKQ 5A=e4bXBOCvM4[enuAV iM6u }tiw£n_p1~dH%10<<_(.8@7M8g+J-8FI}·;4$a/M /-4Ayi=d;7Mp > ;jv{<рFxLK0ɘShTLCtLz631gaΆ?hFqZ q.< K#cVmXXXa.p 6b6c au؁! qU؉q va73G9a/a?q7FD' (0 7Gяwq >O>>/1x^ 8/K2'/k:%2~_ï7 o ~ ow=W>?;x?ş.;</EO-?x 'q1ѻ@Oq,%DĒY ;42X&b,`3Y.lf7|6YX+dsY x-` /x ^ERVUX%YUjVjacl![b5һRĚY 7#$gmp>u-g+Jul bݬeX/cl= l#dN6\D6Fy&(c[XXEVFvvqnc*l=l?;eA)v=dO {eϲϱGcq{=Ş6Dފ&ZݫZa N/ )_lp*eBtEF} 8Kۏ?ҠD;ÆVU*lUrzYACjVE( ˦52ͨeeh0qGN226M2ֵ 9:a-rahW=񪞴+xе6{_Ǽce1ݪWTTK銄EO.OM+Ʌn9yMRW?J_ )'\#UUHZGȨ 'k knņRt)Br5-ia.-<]Z"&D[Ұ4=ʐF!Q^(^E z#|D'\adzУ}D5Ym_~r9wh#- SJh !qbhUZT-PKoW!zɒjK}c @X^gbXK&dckXmo(qըW RjTQR~.^֥kN~5ztDH!α1'M!5Y[ ]ޑQ'T+Nk3MlfA;51w1w3"WvU$gF$gx ; ,%1,$ 7.v&!əJ^.0]TR6*G'2}t9ʊ -+5d* UkFCP} ThHQQYɫԤTjR*5)VMUb,jY5yV>&٪Ijmd&٦Ii1i:læi:l*MGJQt\KJQ騺gG֣FQzjVjjjjk5ɵZMr&N\[ti:4u:MGNQtk:5zMGtPܭiJCP4t\ouu#A'c۔blui-} vV+SaH$(iUH3.I46j%mItG~y]ĉ7h#.EU)k:7ԏ!ikJԱU[f XXtf+Jf{zhRp(aػ5Cd_9686(2/J;ͯ@ d&> { KÒ' █w']" DBb>/%f/jb6UPcuIXckS3*la@L5fMJMiL5fj\J+&*ֽZsP#Sh\ 4R+5߰Rj=LLnf|mZJ)i"5) 9SʠZw7|ܑv P%4DJ z)i.lVB~ު|N1QEx$ns_h$枘< A[ZZղ&=j:_ceZ֪eqķ}S][@U T@M ƀ&^u1P p<:,ߏ~.!\U19[<:/:/R. . l~0?udra~;.l5s\;2|&uE|t;皿<ԫyj)iԩ4|䪓;O=ya#''xe)/1/ȍGDY4z:V+?x=|yvg5>ǎ>yOOӺ# ̝1p8yO6;h'_qW vd&f{ ~zfd\cd͆.)J60E:N`xg|#$fJXExɊ3dۙLˮ|!j kyΆ_Cc仯n;tdk,ń=!?߱%2Ðeo' CN0ћ@}aCt}׀; yUjK%5:?ՖɎ?ًOݏOn|>|n>[Sz fÜԶ xĝX^wvd Ó G4:5wd`l+q[H缸"؞7 o3Q7x0 \c5Znuئ.3`:02jJ=@f <y瓒t3a,.WM`0p L8=rp;{CtY,V5u t,< mHOߚIR Ab]_N1Ɓ--[Rm[$V&ӟ2ӏ|.-˸d-*k>)/+Yrv^K,LֱykKyeͼJtgA>apγ9~oR^vL|2 8=bslMi7ݕƥJ϶Xggχ~yNvlΩ5_v=gЧ۸sΚ5?wQO18x>|z,0p:Á-3%RzQw1#YhZgLV͕ KXzUS|s "ƛz&s;&~W gŻ7?UԽgqJm)84ٔxכ74̚4)cM}C b_݄۳U.lt<qqa9-3Na&8f7eP4o<;󩶛˷: 3f36;)cUKt6F -sڽ+w0rйDZw$p=#W#\6gȖ%_bM>p'oe[mmId9.|[6YXMY'rnyW4^H^bjE颷"iNmi#ߠ:L-bymĭp,j \"GfXڃg:} mq6|݋zkGijɻnZ/K9/.XxYlkYl{4v(DKHd qq,i`@L)( rlDcFgiv'x+@͙mɃh /){OIoq)▓׊:|-KVx\fO|-*džLJ =!{runmc; 02=n3vCK7<|+g8d2U.tFSp@37Tn8ft1ek:yokccm mE|/M9s,L](E6%7X2x vs q졁y,aӪ>GkQs[zzLX7- l gVgv{vnw/==fXbgʬdfii2AaƼi&C dFh;[,a[[EvKYٙJg#Y Y⅝Y*f/YW;[2gYEK3_g:՗Hj5{Olw dܟm\UȳLff مtv h:^?o1->mU<&?]^E T%N @Eʙ&%LHFZZLՂv)&Z_1iv+COѩVK*㪫j8h륁Ϟs,{Ի:Eek"#۳>WS#\·.o[]g.7[m*ZZQٸux÷ܕޒr]GI}Q)aWĂO2qf~S~RuAL'ItKrA_6 邞NNŐ ͋ iM[y!}+z8j]Vʓp*pq k JA9pO 7.~-zENBŞ=Է^1&9=) Yl'VN^8bhGL.d9 endstream endobj 500 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [370.503 554.226 384.61 566.803] /A << /S /GoTo /D (figure.3.3) >> >> endobj 510 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [330.892 230.708 345.009 243.286] /A << /S /GoTo /D (figure.3.4) >> >> endobj 516 0 obj << /D [514 0 R /XYZ 98.895 747.976 null] >> endobj 508 0 obj << /D [514 0 R /XYZ 211.898 603.459 null] >> endobj 517 0 obj << /D [514 0 R /XYZ 99.895 567.849 null] >> endobj 518 0 obj << /D [514 0 R /XYZ 224.286 546.766 null] >> endobj 519 0 obj << /D [514 0 R /XYZ 245.939 500.613 null] >> endobj 520 0 obj << /D [514 0 R /XYZ 197.61 328.642 null] >> endobj 521 0 obj << /D [514 0 R /XYZ 99.895 249.155 null] >> endobj 522 0 obj << /D [514 0 R /XYZ 220.022 181.982 null] >> endobj 523 0 obj << /D [514 0 R /XYZ 230.39 135.83 null] >> endobj 513 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F95 356 0 R /F87 315 0 R /F107 376 0 R /F116 385 0 R /F111 377 0 R >> /XObject << /Im2 499 0 R /Im3 509 0 R >> /ProcSet [ /PDF /Text ] >> endobj 540 0 obj << /Length 1259 /Filter /FlateDecode >> stream xڵX[oD~ϯ0o%RJ.n@e$Z8FoŎ:%\;R\&gB%[T2PI&2\bh2[&컳k=ǔϼIM1iNO\NF)eh6 LknO9Y*ŝI3^&&$ c sJ(V%byf͍p7'i6GFj;%Dr h]&Qw$($af-,hGJѼH@xatQ#er`, $KvdrLLԔ̴F$qL4:w_N_M܎a\ƈ†$ ~KZC=,qX5D z7_3tQo-堇R6k-1Dsq_7p1, 6ɺZ[rBxW=d}`Y7a'aw P*0SmSY \85%J;pOh,lؕ ;$ŝrITz_FB yqHqmnǢP3Ϸ)[b%mGG'hVW@ 4$((?b^ߥX^^1uc_m#Q$>8&6páffyrtgļ0-Wx,ǯ拔Zt[Θђãض|ŜVFEy}gvZ^-޽Fe3i6<9>Hl>rL #>1>c{4A&0Ԋ&|̠:6?4'hO a/dN} y-J fr0 O6'Yw-߮#sӹvX#zheF;0(NߌźKFf0h$#vDpXOhyv Z`(r2QdKí؉nu^Ի*=e{/OaT/qyvm]ifӗY"ӐX_/ƥ#d.\#\E. c]cR:,ԹIdeW(瀋?SfbҬ~l_ZmE 2?¢lϡpޭ*lAtUUT>X K*Y+]0+%z feãdgٖ+P+ϖ_<9B5`ґ A5 endstream endobj 539 0 obj << /Type /Page /Contents 540 0 R /Resources 538 0 R /MediaBox [0 0 595.276 841.89] /Parent 524 0 R /Annots [ 512 0 R 537 0 R ] >> endobj 511 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/split1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 547 0 R /BBox [0 0 275 222] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 548 0 R >>/Font << /R8 549 0 R>> >> /Length 1531 /Filter /FlateDecode >> stream xY7+&P YY`xaK .rasWbwOWǙ31/ӛwnys<̇|0 ̈́a,8k,2LY`7ӟ| 9[9 abVb)q\řKb4qxg\K|Ku$RNx>#/~,H!%lN=%R/w2H4^jpK1.1Zd:^x\EF'3A3?|Q}8U[և7,(ևiCKA 1lپ~f j]I}Dq2A1' P=KH*)*YqꡖI͔BBBg MTZ2#~GL^)hT7#`Bĭ%ZRh1ddJ9qNWj$T )W8vG&jVq%Bㆋ=HrlB0S?[Jp<0Zb,  6 ښƏfla55 3VCC8#{!#!aHEr2Ŗ-4W)nhdZGw$ϸ96 eC5nT %q%7qׄA|޸oLR|PR؛7Kuyw(eԺGRJA'_ YYQ?tt/eRRKh^WN[$D"Q:}ڍ++Y~C CE|'-cNjVWKҧ!$[/8|#(wTj8G H֓k s[Try9s,A|ʺo$tϔ3"MX77B8[g]иM{fx|˸*"Tu\֨RqڄE| e\^<ʼ\j˩{Z{/%{9rN7b Y\ﴴ|4Ké*wkqO7"b˽oSnwK|(UMcTA춣"\[{o}t> endobj 548 0 obj << /Type /ExtGState /OPM 1 >> endobj 549 0 obj << /BaseFont /UAOBSB+LiberationSans-Regular /FontDescriptor 550 0 R /Type /Font /FirstChar 42 /LastChar 115 /Widths [ 389 584 0 0 0 278 556 556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 556 0 0 0 0 0 0 0 0 0 556 556 0 333 500] /Encoding /WinAnsiEncoding /Subtype /TrueType >> endobj 550 0 obj << /Type /FontDescriptor /FontName /UAOBSB+LiberationSans-Regular /FontBBox [ 0 -207 665 724] /Flags 131076 /Ascent 724 /CapHeight 687 /Descent -207 /ItalicAngle 0 /StemV 99 /MissingWidth 750 /XHeight 538 /FontFile2 551 0 R >> endobj 551 0 obj << /Filter /FlateDecode /Length1 16372 /Length 8987 >> stream x{y|Sו9I.zF66xc l lmb,ɲ@ɂICI(I iAHI:m MiLti{[04I>}{{ 0/ZtwmDfz==V;#rFLG7Mn)w{GeyErٝh*ئ Cá}$ZaUau#:}L:|>Q,7F{#`EՏ\#[#|XX Ad[ /Pⵇ|PQ$=>şOÍvHQyťi?ω52h 7+h7) ?GK}pgm[HäOQ4h$gnTZtQs.]phԮg*qfC>A#~x::p*o/H=$ x`Ӕbg=ڨk6t7U7vnZ{:;Vl_|Ҷ%-mMZꯩ[0 N^iv1+-ِiy M~!2?cji)&;SH+y"B&\i%82UDPuEBIi2 'we7ۛL=B伄IX3G$P%'zYCMBmxs;hjt8q"cXP`1'j#\^i_ܔS\I45IM(h#:IMۄcE4@a_wk5\kj,)255G EmT=mUb31J]h mqION iX|H3EڻɯܖpmU[$u˳ CvпSNMvNrOA᠘䈎v T dkiaO--]bXEolhZfmq(LHG9dGȪVGs(,kj˸A$~$IDbD9ͦ~, EZ XX5++~"O4|RH$ʹHOѬfOGEIk@C)mn5 M ,2yX*Idh<4윈"4ˑ4FXcgw[meowb 5_%ԝ-B7z@F]n\NlrBIWtjlJӊUؒӓ#_EE1ЋAm6qy$2Ky2[M e%R̕꼢6%X&ȡhE fV=5R]\mqQIdyk$gK_&&1hi>ZŹ<$NqSs]'q rcVQW a["Z3Ǭ%Svwvg˥De"U$AVQE/gdZ5A;N"H4}8d!JcD4D/!1͂Sz{ ):cȴXkQ$δH7: ⢭fӇYFNdrhԟ-^kD {WA'5@)Ү{?Wh1BS095?R0 ,NZ`\}H)8fh E'6QPh&j7IaR0# ` @ >`kMS~)X !5 k5w)8&xa4YMwtZr@vB`2T^Ap] J#0"=?H^DQ[Pn44yܞg)8!o.+.}%BWxCp].' XJ$-j>K=.Yaa!L٩r^;3$p3YXF|?_p\O9TB1=HoI6/d.\R&PP,rs1E/yT7WK2rJBK*OWDuŪO7#,WHjiXh~TsMR_]I(%$ɖ9=.萸%.iTpS4 !z!,OxH z@)szJ=A:vk(i$B V \"z|BWIGn|!s jK":\!!Oqڂis (rb6KqX&9+u6ePJRl>%J  ' B#KKlRbWp%p/6Do#R.w%aJUq9]AG3d(4L]҂MJ1TA -RԤR P%"WIBNNd&rxnqS &qH2FsNLtIDփ A`h=<rx]G]5,sXʵ-Cǐ0 v5?Krߟ OLjҹB&){H:0Y5oki~Kp"TB5PKAYup iJSM&h=l1hЗrZa%u&NWkZuvz;<;`'L>vp| an!#!6p?< #x?óta; |ޣzހN!+EC8{hJxh-pm H%Dx(\7 p l5-|C=`,%xLDLI4`2 b*a:M31 t8gc498My8<,",K ьJjZ _/Њ q6b6 c låc lǕ ;L 7 5؍=؋kZuю@'p8܀ C? 1a܌[:ŭx=oOgtF1&܆co[p]x+=8mo;p;. ރ}EOY"RZ0=+Zntv.ЉDk Bsm2 8Ã^uq8ۏ/PaE:墉CfEKQ,+tIEleA.3\rm%"nSZ|Y[i?+J\9Ce Cx.G*t'œVVf\%̳!n.Vm">/S=R#riRt*wJETW*4K{r}r}v?}!ss.[Bqޯ8Bv/ +>=áԚvlC@aTSmX%WP*:18%SJńtCKҰ<]Waū.٫T]͇gBt]ЇYf[)x2ʾniUsclv6˥%GkEkwLVpJEZ r\6!Lpz*H/Yb-vwd.ry]{|HC&Jd}sHio+(~ŰG \b喙=~.^ҥY v2W#=|!oi 8lY-nN=ܪ!?q۹N{XXyFۃ)$) z]u<5]W]Oݴ]eg tyCv"KUtIl I.K^%_] (ڠL9/\|Rr#䏃n~1Scty::~utbOyYE*2rk*UTjը6Tꨊ(P啫RU)*ŬJ1U̪4D&=8>H&J=oC: GbRB\ntd4 (lN_.\V B7qMafs!8Jxn2Vd8{C#*;l4rt\e*D9 *& j* RQ9hʨʨdKT9J1GyQ9QS+̖fDXTm(WF%VQQ{*T++UU9v߱QG#)\e CtfrxsnʘAKNBh[k*+R&bs@ x\'Ax󺤎[x|7$")?)ఇpQmV+\0[ץ|pl8~e'N}_p8+q V&L4+e%M`'=j2_eRV+e.sX" ** @S((8c}u`GPcO]£.aOP?l/0V`O_26c/ [lϝ=wg=gevٮ"SnҘ-&=ee^:|9ƯR`| O;ɝ[q:fuMdu,\|t_k+7m1RjN)&30k؅+ueeͺ2[md. .ؘ 3]ɘe0'u1.4'mK$%&H'K:4k څ$8<:; N&WEtk#;!>+{#]} 񎞝fEݑ=m'fˀE=`(\(^("BV(I LlP*0 ! C ="9ԃ`,$u$!Yt0HAZ'/~7ہ[3h ZAiy qiL,;CRssRsh\Zʝi_I=sqvd&Fk26ZF HJu:R%`5c ,6Fj ̐ $<xɊ}}}dFi龟Hɬ-/y|.y΂A}Ļ/m9xx.Ƹݚ^? ?ڈs%{f~֒7pgT'&i?fXv31?aVArl"ؒlJΩI$礳#wOtw K?MX`2!31 SKkՐ¾t “Ɵ eaޓc99l֓dܜ+&I`qQGgݟ@K;6ӂI:S Γ~7|yٺ)D4.AVYR,LU0D6YLcZA[v۷.Xp$ʱXXgMFˉAd:S -M|'9^Z= 37X,B,]חi)+37ѡG0'5i~;d'叛l O9m5+WܜO1 NKpl>:g^U7K 11Пgi;Ro )\lچ})XZgJCp \Z*JeXt OVMW_R;(FÛ,]#[o^n ?w 7^]8gA]nנ>y]кGib v1n0usT΃9Ohڞ4.E\Z˳ p1⯒tL :2ҹ<}1U ӴgD2XYFS3 D>-5us&a 4PՖ|n߷iS2e&^Sjk韼(Lr΄,9K7=mcVuY̌$d3gIxx).VKVLӪ8 ȁ8dz*-N.pb5w<iYøRH nL>.eFBo̹֝k5.͎ec3ہU)3fqskS tZqΜ7K)7]$O%Df]CN6aPRl;:t 's]]tLWqagEXY~lnjog}=s{kbnarY}uu3&4YuNk&?^,1l]9jLt䡃Cf4m`L\XlLTStM'40 Gc7< ~z:oO0>8 qdˍx^%:3Ez82u%(NELͶzoOz1}ߜ5ĀgۚfT?oa]{\7؍]LM,#_5Y ȣ״zgmź811ًƙ&#1,T\2oО xؖb!:fGG\QDgbLOf>O8w~%iŎC>w⵭8 ݇~5k/\m@o57K.,4c 9cWMٓ?4i,.&;͚M{l{:G 1[sh:`5xjFkg<+`.#YSu-#k. ^"_7V>#pѠ"uP#u똱'Tݹ:6}!#))[_gH[aCm mF|/NsMt:P--v)o$l t=H'K4*W}}/g-XRaEɜVͱ ;]N&-9k[̋r-Wyffv ݔFYzzNvJ<= E0 5eZ|AtjM"N{.ed|hd=jR fĥͪ_S=xikq|cKEjiyQ+TӷK6f`^ Y:cqgV ZBjY*۟@j$KkN[ԲbL _{b4ԢS܋3!ccq'`+R(.MMjbrVStg8Y"+>sϽ`!Ϻ{Rdo嗬 oܛ3)k**\]XVK,i,5Yi_XV0Ϙ +\y{_)A<|#俀Hw v:Og] HIMgsRGxUt[_4jCZ>/Font << /R8 554 0 R>> >> /Length 1251 /Filter /FlateDecode >> stream xX7+ hg(eRO&(K d}WͣXl0WC(z~ŷIɠd}y6i#QXim pVIu҂)kqLtR9: J ֺPDN`&5Q\I\|1P) 7PZRR/ElGY>0^Uڳ>>WN4}hGj%֣+&buu8hꠛlUCŲnꨈBNWU~.VNgQ=DpE3z οT,H*M` d'Ԑ m;5SLX;'C ;1D 0_ǿ҂\p˱NZ0ʹ ?D02b0cG-Q* AVY79K)Lah!eUA죬 *"Y IpK;b9T|Ss^aTѦC\gy quԦ:CZ#iH@mI*W޹IVG_??ӡ9{nS4i$\A;[Cku+u\s-FPGqu| D|Dh4m"qxbjc @i1HHPh4t@#3-IP^$H}J;K(TtQ,ZlimoY_!(>k ?Ecwy;JQ, lw6BYj:T!Q=x+yrt1׊&>q ӵs\`]-E^7Xv {wxGP3Eͣi endstream endobj 552 0 obj << /Producer (GPL Ghostscript 8.64) /CreationDate (D:20090928153026+02'00') /ModDate (D:20090928153026+02'00') /Creator (inkscape 0.46) >> endobj 553 0 obj << /Type /ExtGState /OPM 1 >> endobj 554 0 obj << /BaseFont /EKPPXV+LiberationSans-Regular /FontDescriptor 555 0 R /Type /Font /FirstChar 42 /LastChar 115 /Widths [ 389 0 0 0 0 0 556 556 556 556 556 0 0 0 0 0 0 0 0 0 0 0 0 667 667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 556 0 0 0 0 0 0 0 0 0 556 556 0 333 500] /Encoding /WinAnsiEncoding /Subtype /TrueType >> endobj 555 0 obj << /Type /FontDescriptor /FontName /EKPPXV+LiberationSans-Regular /FontBBox [ 1 -207 665 698] /Flags 131076 /Ascent 698 /CapHeight 687 /Descent -207 /ItalicAngle 0 /StemV 99 /MissingWidth 750 /XHeight 538 /FontFile2 556 0 R >> endobj 556 0 obj << /Filter /FlateDecode /Length1 16756 /Length 9319 >> stream x{y|Sםw$nl7"[ -l 1Xe,Z &  d)I if!m#A:MC;3L3NgBיvBatI1w]L&LgG{v~g0 o}T.uVWAzltO&Mg[aaEil3zVxozL_ZNBEoV=ԍSEr)>*OoQ]$7nRn |I1.%:Pad vy͓Aqr׷PB; a-ڝ =A'(J+I]Gtoo^Ȅiyå[ߕhϹM2*K<tn{q珰}NAxXp'y_v&gih';o|4+!~g~8C4j_lw 8D6D/!axVU BCLg(|vSk? Sz<2L^ v cW}Bncpwuk׬^չֺ|Se uUʊҒBsNF)%9)!>h:!wXBx8+tvVHe*\*U9o 2p#(>DP(%&h(:,B|E82(D/xur! Co8,tD;g;ۉ6K_Q&Z&Oci3ʀv,;$rEhh]n6eT5,:-.?7{ FG-rwESˢK,%CrK{GLڽA}]$F"E}˥woq5"{ A'wviófF,2{:1qv< =/ޝuqjsCw4}(+r .KAC^A`㚁A H}#TάPk` K-b-RLE>lꊺF-]љPXL ,iBuPHQ-k~ˬI.$dH@qjh!6Kǰs<2ev:F5LCm/jLF3,xJjux{.jhF[j],t+*H,^kPqVUqX<7J3mL+:i-h%I\,1{-74( ;]QLJX6rQcQ`y Bp63j(2R2Z)T[̃5]"t*T)/S[g^*μ(g,Qrjg+$_H1/ XDˠe\:z$$^V!\JEnj$gFey])b燚b¬;+1 4Ž J1Y(Z;xMJ-R}R gMr*䍜湵f<77yͿ6I5 }pxRVL΢Bܨk[)pQ **A6~G<$!Tvs}*6B;A\ PQq"Tꮨ8 *N2o$uqTCDQ]Q1hT*i󐋗Ur@5۪b#ro8tKVq4薫8nݯ$*NNg0tZ.B`* O"VA.CZ+eZKǩ-$Dʥ;eI^7- KUU +Bn?*@p2t^x8$Ő)$aDy]z'Y;"* ^*6"8a9H\la(q9‡*}*iGlU2C FR][Qm 4gf~X4370aNʱ !Z%+eTtxzRC^fBxx+R(с=."1B QPrH*_Ƨ_"#R92olw)jeЍL S 1ZÄP`, EF((X 9v{t "nq2La/~0>b4m5w9Ϊ}[O{xڇiM R! !2! !@.Bȧs_PPB|ii?jh$,& 4䠩J:h[Ifn5VXOkj/ l`+lO> ^> “0 wȐ{Q8}x>߀/po_o›o)ކy +p=CCop єZ, ᚢ %L.Bin,|j»K"рFxL0ɘЄ阁t6\ 1owhF p1ZKR,rJ=|XhC;`-a=6`#.؄7،-؊m؎ĕ؉] q5D4{p=n^~:~Oq n-x3V܆t(8G/n胿 c'g/8OaC]x Nn~?tF.\܃3?w>܏.c>8OI|Oc|'>x <_9`exYY|UoY euȖ嬉ĚY `ì>e,Ϝr#O.ul [ֱm`l`l3nfCl+Ɔ07e"c6μl;|lYM)d!fbinc;6O;>^e] ;f0ˎ>v?{=>Ɏ)v`f18{=>˞bOgس[UjSs;gZj4p#A:]rfXKޠ;21oIp_mn .娒WС U@Q;35hP\ߡp,a<ױsԍCFEW ]%^Ւ..UgU̻=a<ۯZ ~Snj;>9K\=7_8'gdGZ_v~k~~O``r\:N{ Trn< +N /7(:6!8_ A%Uz,wC7[x>>MXH4aiH!(CگZQW=|Dz&`ad~Я}D5ikcfrz =. KJo \q +ȫz*y[#Q/]%K*ůMd¢O;&C^RQ6vMx%+y&DB%d,]v+]ALU $A|krESfbdDTɬm^τsE \ϸk&v E%]|sŘޘ*u#1~T]ndM;d|IKP !ɘj^θ0٤&7%*}!G'2tĹƼ*=j5d jNCjPc UiHQQ]ָTk\5.6Mb4i4~6M?٦qigٮqk>k2 &îɰk2욌MF&FQɨd\K&FQɨgG֣NQzkZkkkk5zsƹAܠ۠hd4h24 MF&AѨhd4j25FMF&׹dPحkFCP4ɨd\׹m M]JI_vYܦشCApZΤFԼ:~QGdjH?MF|ISNG^ynZd[ܴޡNt'ŐuD}]MUBUkm|VM3T GhthRp(a̻3C_-Ĺ.86(2/Jh`_A#xJ6OHH$=lUu`x\]D?,. NE;]>@$$&_|~/}I N9$P* c511P1P[{mLDm=hl1>1Ukb6 Ĥb5kք8bh151}j4bkbk55>r #{FRyS`X-4*0CƼ>E{}'9ޮnQZiHA C8uy"JTˣ~%ßO;nP߰W+C^ Z[8۩Pį*|htԹ}~\tQk_D$ƞ<I[Լ&(=b:_cy׫y㛞[ c&jc.c@Ө82,?Oq/_E>@|+gߝKWem\f)]v/ ?"4?rfxi~⅋/r:Eg7]M\]3c~7so~_;dJOK_.5_{{N9˝vqli>rfݙ=gNya^G_˘2S^lyLhEoE9-ϳ><;>Ϭk;;)#2볁g_ڳ =1p _?ǜO>m=U縏܇GfGܑu8O}wVás,~g9ss v_O6S6J7;[6w7SnK':0k3c}QMG_v9s'\Iy'^p^v'f2S1dKgh6lKٓKIK Ir-BuSLx-+>k;jŃѢ^X9?[N#;{5;jvGG 8$0C: ZápLP.+ $RLiB !n% I!Be {@z֡ч(gy Pf7=3qq<Ɩh:OUuWs~J9d}vaOnƦ-EMSWFn]9y1o#YK|,"l?ce}E,?.-b[Rw%iĝ*J_zۂVdA|௮4[OsG1xnA87tO1\+/-fŖPڛ P|&H,lRwK価)u9ԴFuKSUAvLH&7VE:ɫeX+ymMe~{!s[2bh,[[uxg>6boY]$s룃;O;kذ֯q+nM;Yk݁-Ńk}M:`xF6D=JGxPM4&YeqY#1#x.ވl$Ș4yXA@2fea^p-vrM,SA;!ې>4`TKjA-S환TM:̔i{O㯰e+r{vEW5d`[cl';9/N!2N=xgy aE6rcY:7J33 S_B?ӿgR~swtog6lO޼9V]ٺTٲ6/ھs"nj]qqy+|<%3Edu*V+y+EN zx'$Yo[+Qk#nmRkdb>(60ܳԛ]`3SU[4neE>jψlF/Kv, ,pB&l:P;T"%f$8tHʠStM™B, c/ₕf3zMz,4T6Mh7Zᰔ_Np g" t;k6wL]d>ª}'GJώ<%ٷonٷiza6L70@BFJ_t;̃fe41Z' +)N0LU+&m–&l:Mx 5]lb {RRu=||jiQֵ`Pٶt^\\bYeҎA(+tH#/THK~d[ L>2TZUMUw9loeBA^_ҹ|iWh_[e:9RR:$0CԔY23 s7kMP FXPչ 1dHL[%F3LWie=Y iU7r͋W.^ܘѼey,7[#?躡^s+U@#܎,,åyY\v22rCĹbx/5e lejU-KK;> >> endobj 537 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [412.736 141.504 426.853 154.062] /A << /S /GoTo /D (figure.3.6) >> >> endobj 541 0 obj << /D [539 0 R /XYZ 149.705 747.976 null] >> endobj 535 0 obj << /D [539 0 R /XYZ 236.566 551.659 null] >> endobj 542 0 obj << /D [539 0 R /XYZ 150.705 516.852 null] >> endobj 543 0 obj << /D [539 0 R /XYZ 270.756 482.445 null] >> endobj 544 0 obj << /D [539 0 R /XYZ 281.199 441.705 null] >> endobj 545 0 obj << /D [539 0 R /XYZ 233.085 195.733 null] >> endobj 546 0 obj << /D [539 0 R /XYZ 150.705 159.108 null] >> endobj 538 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R /F87 315 0 R /F107 376 0 R /F116 385 0 R /F111 377 0 R >> /XObject << /Im4 511 0 R /Im5 536 0 R >> /ProcSet [ /PDF /Text ] >> endobj 561 0 obj << /Length 2587 /Filter /FlateDecode >> stream x[K۸ϯ`ndh݊X!ZǪhhN.iEo&?ƅ%QJ} P.Ax!}7mѝy}{m:DȨ |B=X dsvV?XWfyڰvͣ /!dT\(yCeݏ RD4jy=0^.O ǘy GQ (%j0n 5 _ Gt&p k|찏 2CՊwwzA{B~F\3qO4㵟1%w> U[H+2XG)T1(u"Ph>K#ۅ!uSh XќV+d%< 4.t`g!=&pn:`HN Jx{&%s&CN~9 좔sp}JpB9A, 'nDZ8Тc:vz YjŒ>܀u8C-݊nXfs5/(1T Į`j2lHp'$:=cGCF)ˤE7]Qoq~;M>t2Aڬ+) ɼ 2;A(8%8Is08<9؇s\.{m &i$"cZ/N kr03F~uD6`:X Q\ qv2Sa1@uGKy Ϫbك9LtJdJP{|,j}^ՍCrX[TSݣըAؽDuóUw{͙nRuOݨ;G'Uժ{Bs2oGQ fI=k݁{H @rZu_l\+kH H>!AB i2&ֵ5=#$ 锼"JXIk>!FJ4Kk-߄JIK=oUKa}'D)62 ݴZZ;HZ_&iizJ񡨥u L#8-#m_"Gr4zEi}gFZ+tO"kWWr5.zWq3F[]jk= @9qNiJtVRR!PcT]dAj}=T׸q8%\5FIIB1'͑@NkMvwq=G`Օ [W1tNac NBR€%$ox(l6x+m$6wi3M>熆)XSDW1+@0w/)J;UyNZ tS"M[F Dg$Z)g܆_{x7F <KP~!uj2҉3Wq҉ݶ+-> endobj 558 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/rec1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 567 0 R /BBox [0 0 249 227] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 568 0 R >>/Font << /R8 569 0 R>> >> /Length 1514 /Filter /FlateDecode >> stream xXɎ$'Wp"a,K}7˧x$Kt~ I.Ik4C5Q/LyO?}$xw~WJǔ;˔[^?MMЂIǍ3̬ay~y%Eݧ6 䨵d!!4I%7bT萏7xܹAzK4FMK bU||]X:e> !x8?⍠R`! v̙]ᖼpqq` z5`ü,70/jiE^nڛcJ;}ǨgtDZP[/ٹŤ% MFP)ȥ^jrRנ49K I'p*"Mhwfp5y 1jTT!>:5JSdX:kwEyeIF]Q:~Ӗ`eyrӤPՆisEDFw]wpU,(ĒrZXK킍5Ȋ8 O)J>Vˎ-э:tzQigғ8yN- ^O=jQݺ{epJMt+Y*M"ߎjEG<#igN>r5(mM f sTuMi-w@BN%ʗՇvY%Rv+!ZU8J;PX0:AC{ ْ+:gPG[~k9{YOt,:uB# NJ+zTQO紳QPJACrkQݡPĘO#M-+l>}m9شț)&ͺ!DH @L#,QwS endstream endobj 567 0 obj << /Producer (GPL Ghostscript 8.64) /CreationDate (D:20090928153031+02'00') /ModDate (D:20090928153031+02'00') /Creator (inkscape 0.46) >> endobj 568 0 obj << /Type /ExtGState /OPM 1 >> endobj 569 0 obj << /BaseFont /OPJJDT+LiberationSans-Regular /FontDescriptor 570 0 R /Type /Font /FirstChar 42 /LastChar 115 /Widths [ 389 584 0 0 0 0 556 556 556 556 556 556 0 0 0 0 0 0 0 0 0 0 0 667 667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 556 0 0 0 0 0 0 0 0 0 556 556 0 333 500] /Encoding /WinAnsiEncoding /Subtype /TrueType >> endobj 570 0 obj << /Type /FontDescriptor /FontName /OPJJDT+LiberationSans-Regular /FontBBox [ 1 -207 665 698] /Flags 131076 /Ascent 698 /CapHeight 687 /Descent -207 /ItalicAngle 0 /StemV 99 /MissingWidth 750 /XHeight 538 /FontFile2 571 0 R >> endobj 571 0 obj << /Filter /FlateDecode /Length1 17192 /Length 9667 >> stream x{y|Sו9IEލ3^dK^M6&˲, dbY0e 8$PhH4 t&LL[:N(LI{{zz4Lg~G}{=l $ p0OtR{zLfzzltL'#F~1 !LL?6c pk4˳s,B 7NoRe8U$tjrDY1yG+ -mLыt>V,7C;'}7KHIHm;'w}eğ ցն;sۡczTyziD&&4)=oT+ v{R9 ^H2/74; uo_ó: w 32:'?J Hkjwƒ$#D? fBk 8p]!s0S[1 gnOQmc2v~* .Jv暬m}=ww[suG*[[kKs+jk*Me%Eyƥ$}bB.6FQ*!mB`8*0e* *Un p#(>BiPZJ P_Z"Vp8 /KxUR! Cho8,mmí.--3::B",j@ ghEa.>^֚;PZN0JM" [U3%gpqܨq~sSYmvpRqx5l׏3rg.vnPt^a>_of2xkr:_>F̈QgNz]aၰ~xW6tSo|0nk4f& DiX3#\Ya #/T<fbhKZ2mQi4;{gêQc.{xfi8F}8\lrPghҪc-r Z؁"E2 D$ )Y3OmX$BiI82ak+]3&a!rJ6'éfeTLjT%2Sy4Dž_Mte꽡Y&ȥhAtfVйURY)#,j="sH0!lMʖf86;Mb|=csy\ƎYcODM+ٻDYЉͥ%51gxg5=SȐ 7ɣTZR,bA䴁 Z>5+Ԫ*T!8αH>ZǨNJuE9N>M綁1!oqlTV:()(T3]C  /;O5-täK|Z&z^>Nm\;-I*huA.0jڅasyyp8NO-<vp` Ix^@*yIq8# *6 B+I=R' 'q1唯SUPJO3=#~%A>o󻜂\X!|DCAֈZ*J+̥̏قbFG@P!XE6:CEYyJ葨%NiTIqc$v1F=Jx Gx\md_`T- t( 1X"txe.w S+ QW56v8J/8N3d[NR99cӒJAiJ]zi :"z d>Ǥ4t :S8b)aB7a; F9A!#Z`RWtNbmǸ1. R؋s<<c3 <6r H 隻\QhgUѾ=ZKq,q& EI ) i a1й@υ`<ȇ("XˡVRRDUPMq-ԑSVB= to muVC' ZXG+\75ֿ>6A? j3 CNoGap1p?2n#$5|yxW<Wta:9+5x ބ ;6=@A}wiH .!nZ4\S4~ii=?[|n68t=>jԠc0up 01aɈFg Eٸsp ~00 p.b,R,ЄXf`%Va5`- \x~ ؈VlflVlCv؉k gp-.{L!~ ?M؏8f-ю#Qtpݸ  'Ћ>¿<~ `C8;܉V6ogp~>܏N*,UjVY-c+JVnb ՚X3ka kO }Fo.I8|uլak:źz^6M Ă 3;a6ʜl8sml; e>6ɦX4na;.v+` >}l?;AvͲav7aGٽ>v?;>Ɏ؃;NOi0 {=c'ؓ)&u7‡Y%4Mv#iO']4M>ܮGr]w&<[t8eo0֡@u.dԴ@Ŷ]gTMVmN)ӭZkRr)0nGvZPе/3~G~8=AgԩvKC-[q];̽Mzmq\BP{nz :)[γ^qGTkzuHu {_8kM;6sz].xl|Wxw.?4᱇%_ÆH2]7w!Bn6Gz! CPdHdBU}BR^}7XZXCgͦXױz0b.)ƻ{|^W I%BfW-۝ouuMEG } c&QoKTΠ_e'u5 Uq$'I;MQ;[bB߭%n7a]vZpnRwױ@D Z+9댚뎚kjD4%Ï:=AF%$6%Dfv$O$o (}hL/e\lrdyฅMzqZ8:>etbcnwEyEU 2+zkT*.ȨʨTU(\*. Ŭp1+ ?YlV8ElQ8[XEEaQdXEF"RQȨTdT*2RQȨTdT^ңZQVzT+=jj]j]j]j5 s¹F\pUUd*2jZEF"VQȨSd)2u:EF"NQwݎ\2+BAJ[T*U+FA RdT(2\uݶZ&N؎H)쐲Mi#R&f'cnW}D!άxDa?MSsT=JAL`Dahi56'qk } 䱫Tf3X9CS0{<.8NQ r!vxcABR.} iFЈ/8#z4pX?8.nvO >A9Biu8q_('x|.2V$&?{  j{l4rtB D9 *6 ꢠ: jJQ>h(gK9ZcҘ|VF-Q5 J7G( TQr6GUT+T*vE9WFW)*|!G<>v g,r9HgQ'/=5ۥu2- 31/ 4k5k! E_ڊ n[nj+6l Kue#W^~%fH!ZhK7֥\⬗,նKLn}7$kxI2mo} _?_obw_(2̿&͜͟ΟK6 gv}j&_|\x 6Ɨ̈́Y8|>v3{o?L5>N?yio<=SԶͶ v )>|2s}>F]Y?YWڬloY{&ډ*J/튍0ݜ֗}zsbCC@!1qkDUb)+їx$b|$r>t=S\yN33ƃi]?V C3 nh {9QVI` */"BTi!!n!āo!FXD-/f~pBk^-958956^0]@(OMMIMr~xr w|ՇE^d׈glv TmVmWq Z֢ѐ8.~ UVK06Ʋo3}xGO -"5޴97,oN3*ʇ >CšWP[:v?-E]Aՠk_ڑCo:lej!*k;:ܯpV1ZR; kAz>5XS4Kh\6%Ⱥ$rr,Iisz}=(Ik@;r7rDz@;q:@(PŝC6?k=p*K]6c_/Vʺ\Qeh,KːUU&7ż5e̸4.asSy}/osٷlѺ5e]Ubů۳W?ioO<1wv'+W})U"D,l BL zQ}ARsin5K<ǫ8=TZ daFd*FӖ i4l6 !W勞?/'p Uɇ'v.q"umHYl~VϜ1s9qQg3u6xZkvhQ|&ٛ,WR Ј˰aIA;h Iƛ=ɷ%sY,9>u)lT/:a`XD ,Iu[NAb)PD ySrr9iduqK«6gͿd9k2&.SVn[]Ε]]M]%sMU#XE{R1160n,e:@ Ɲx9wC\@W͜j?̳mj:oJGd[SSR1^N\(Vg3R /ef>4]StVgt2nO5d.yq`5>=#c Z KMK Kqieʪ4䢭˲je[ҎL9%.][.嵋)$FeD"+i+Xy=7 BfZr[-}{~qlWܼ{:n0Z)3r;Xd9׾в~*~$d]S;3Б=11`ucwA-. *A Im%-ZvX* Vw'd"9%ri**/˧(R]SA%ξ k))V=Իw35+6ƿwuYҡSS 㞸۶m|-Og0onMfq=UI.|: mKX䘶#&&{ՐGs0p&N¤or⶟NAw~>/tE+Mckbye͒YReMˆL5vCw/z(馱=xg\;K+T#-;L|gܕ9sV(d_,uN-fv&Jf㞈c8Ɏa:>f*\|4f0O46V_ͥ+͡?]:66Fֵ)_t^ZPh\¥nK(D萢ϖH~mLȺ8yb̕#utxlloeBʜ^]ؾry gYUaJžSڥO8=R{Z<$0@HVr ⷡP*ZXT޾(.YI4:Q4Z.Hgfqs&gE"8-QgH{TK/%/iT5,]ռ"#ceC]j9quZMQ:Z^UuB n +ciGҸ_˳1yƘnIa4BUH)OaGSN p)u3X%%]9[s@x|:1.ooC}˺ãyW)f}B7?Ա:Tđ,e9] //0/8S`LQXUUV~ҔW^]9{ɧ3ά 6lM3.;_{ŏĔ 4ubs5MM )I;y]댉;K sEFSs+o BJEK"n>zTCG!:r[:YE~5J)Y?v'ϔԴyUG+xCms_TUt__].܋ߪ^ Ue1ⷪAV3< |'pu n@9nJ((dIFPQzu@$;mOL8H}$cܛg/|nkb` nx4v֥iFL-&K? endstream endobj 562 0 obj << /D [560 0 R /XYZ 98.895 747.976 null] >> endobj 563 0 obj << /D [560 0 R /XYZ 167.979 696.273 null] >> endobj 564 0 obj << /D [560 0 R /XYZ 245.021 643.492 null] >> endobj 565 0 obj << /D [560 0 R /XYZ 245.939 601.585 null] >> endobj 557 0 obj << /D [560 0 R /XYZ 166.085 365.677 null] >> endobj 566 0 obj << /D [560 0 R /XYZ 99.895 306.856 null] >> endobj 559 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F116 385 0 R /F107 376 0 R /F111 377 0 R /F95 356 0 R /F87 315 0 R /F2 439 0 R /F4 440 0 R >> /XObject << /Im6 558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 575 0 obj << /Length 2108 /Filter /FlateDecode >> stream xYoFq@6~r.9>i Ȳ%הov4%ZB07X?vqꭶE`J[\\p)2KQ\\J)_.~|6ϔ\1!=9d?]9FRf{.y[9W)4\+W߻i;ጋ"?,os i8?v0 @(&g4bN`X`Lq?-Y;9V PwBe+M8ƍOU \OQNcϨ+>k5 To'ʟȻƷTԦȪSE_b5kϩY6` fxyχS&)Bt%q| &MfG5~⇵C]Nlu>33Xؾ:gibA!+9K(s己!bwڶ ҩe~ѠA&}}!a|6-5JArkEax\on_ܭ#:LXF2/tb<qL} &'}*/ூ/[C NʬxdzfeVHE0 )-L^F2a& -]a^nXRo&,Ry-zZ=%mӦm-^ a "~RJ>hա-FpRi[;7, :aϕ%lRCCG8}^fy4<;jaՉwIAV<pndL/wp- d@#ƿ!6m6: MU2=@RW4fiF|9,I<`MZ;-*z~ДC6:guGmͮKOW`uHO hpsKvL8;cٹinin`О_,nEcM}3VO82"n3}GiQ7kG3c1o5C_l9]8o{%I1c'ebAԵuHAmj3hj6$]V> endobj 572 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [198.237 455.453 212.344 466.915] /A << /S /GoTo /D (section.3.5) >> >> endobj 576 0 obj << /D [574 0 R /XYZ 149.705 747.976 null] >> endobj 577 0 obj << /D [574 0 R /XYZ 150.705 717.021 null] >> endobj 578 0 obj << /D [574 0 R /XYZ 150.705 719.013 null] >> endobj 579 0 obj << /D [574 0 R /XYZ 150.705 707.058 null] >> endobj 580 0 obj << /D [574 0 R /XYZ 150.705 695.103 null] >> endobj 581 0 obj << /D [574 0 R /XYZ 150.705 683.148 null] >> endobj 582 0 obj << /D [574 0 R /XYZ 150.705 671.192 null] >> endobj 82 0 obj << /D [574 0 R /XYZ 150.705 547.809 null] >> endobj 583 0 obj << /D [574 0 R /XYZ 150.705 311.76 null] >> endobj 573 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R /F107 376 0 R /F2 439 0 R /F87 315 0 R /F4 440 0 R /F111 377 0 R >> /ProcSet [ /PDF /Text ] >> endobj 586 0 obj << /Length 2260 /Filter /FlateDecode >> stream x[[o~`_'sICf@٢,dɱΐ). h̙\O4M'4~p:qi9bJPrܬ_SA$ɮw۷oo~yVI6\.Ϲq/J K(_~*]sA~_><àIL;vر NA9c<$KIn)gC)Zmק6=^5u&rq+\qX*jI:{wO^8|(g>&9^nW6dd-tGAY̳D շAbeS2ǂ^1]'n؝q2L QA]tclmt:eH@ f(J"1D;F]$Y.W07ʌ3@R r85? T9|->!t-cYDU ;vFH:^04o8.LwOȴr0QбapvD)C4 ?;,4E)ĂS|ba]1†DTn UKƹjDAS7ʝɑ83Avm"K?QD'ʄXc BiE)㸝Ę1 S_rfM1On:'əC7DwPj[9OV|v2o%GT"4cgG'l789톗 j"mp 9F Čn;E,KjbLWq!^ njw.-qWx2AF/d dUd 0a_߮6Njh!*qBxJ/`,HKR`U-RY!VJCu!Utv]>tp-f?Qr8#>c}~ C!X0Zm.B B.AVT )!+$KpY!=Edb H@1HV18~ןVH4BlDzu׈2O24[Ee^2 ʯ Q9p;)hք(/SY *ASϧSFaqE#F.~4%0YO ^QYQ8ŠQ( #GTMqo>\^[> M88ax0Tr`KxA4 yye8 MqJw4HNB庴ӋcnNZVU 4#ݬGKvxQў|v=ޯn}zOMzϾj[TST޳kw+.T'z2+ %NY4,B#p)L#pcrP#1Fj$(#t@#YHC2Ohp|MqǓn2f$&NM 9y#1ep\, *4o=Qv%/a5*ĩ1Rը3@;$ػm= 6, LH1VIǪNo5H^xM KZ J4M,.SҦ)_3Wz]zLP1~RFZξx.h n,x͆ly{>&?&oEe] 7Rmbx+رvq5*c9Y+jHz\Ƴ9QYт]FQC-ˌ!ұYd% ԰dEɈ[v H@w2$crm |\w\ pU8tB?y ,?23[*4vlr@@3F& '/>'azptw4OR9?. FI\$Ƥ[ᨈ<_u6|+B /k\5a!(T>2?8-1o؏Gݺҏ% (a˾|#W+vPʯoSv/uF!B٤&~aU_MΟy-Q i~wdL0.B{}XnYb^t<ꉞb>>dXZ5,"Tr endstream endobj 585 0 obj << /Type /Page /Contents 586 0 R /Resources 584 0 R /MediaBox [0 0 595.276 841.89] /Parent 524 0 R >> endobj 587 0 obj << /D [585 0 R /XYZ 98.895 747.976 null] >> endobj 588 0 obj << /D [585 0 R /XYZ 99.895 698.151 null] >> endobj 589 0 obj << /D [585 0 R /XYZ 99.895 502.589 null] >> endobj 86 0 obj << /D [585 0 R /XYZ 99.895 289.557 null] >> endobj 584 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F87 315 0 R /F107 376 0 R /F2 439 0 R /F111 377 0 R /F4 440 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 592 0 obj << /Length 3323 /Filter /FlateDecode >> stream x\[o~ D/) t[d{ZmYZYȒk,;3$-QI0L3g̅uv޼- P UJ`&8 1n|"}1 2up!5MJA-V4DiBNG*S ~rWLj!m[>4W4I6l)Ip*XABe;B4@;͜-S|Y@T*I >=90Ok|qX!M/ɴF)eL!vWiuF8Z:@(Np&!j|zZ"0jņPjur]Hux1a6DALnM,%R/c, +M4i<ɬ J/7OBr6T"_ }Q!—O }j-H}9(c;)eORZbSZmʒb", lM ~D.i[_=-jYܬخ_MtIU'*?Lkd1"wyvB ]ube5mtYkPIK1a}f$E9K#0r}!,haAoczEjyaHQhhD !H=$ 'hZ׌R5AT>.oK p:&VsMDѐUYLhcZb v[d^6V0NޜYH9_B+0ƀj1?p0p($='cvJ 9kcnClLJA:Qk)6ʸ$7. $w!RVT6ZfRq w!9r0Y,4$)i#} \gpmra HG HC2\Ecdv͇1?0!2 @( `pH`̴ (ABRsf ԩ`v&*HǸ p_}|0x6u H*C7Q U0yDa0":rsz{B1BgEd:B}W/K!?]Q嚑Z8.g]B ѝ"8 b}^-G˪+fFr5Dosh9͙vWWeڌDLwFn=~=8qHA#=O(dR0xcRY4A1: "=u<CBCk qj_3(~RޑbA 9ۧƾ `Twl$$2ZQ5gk P  nfH}@YC$ 4|1/@)VM)/'UdqY;J3ȼS,潄ty׫牚zPa=}Eicȥ6~;Zļew̚F/ 5ZVHjw͘9h‰&dC$?b '߹b⅋[{ 6̂;ӔoXspmM0\ 3SsRߤ vw҂61iAgހ2|hZ(JQ7lb}*LZ Cٸ+ȒاA>`@0dIAY1Pp2\_{W `{VmB)GT}JAnN\dDPlwwx@#'E;$Q :7Զ` : S5zN9GFo$6 5hYCvĩK慚j6/ȥV.ǯԨ7RZ%LAJ;0='Z!ޜm]dĴaE@||_#[X7 }@|t[#-kAۀ5%:mxHf˂IX I;Ao8B;߇Hj[X9W6tNn(BG}=1[{>G~>[\Jֳ }9S\ h[n_IDۘ‹tlk:CݧjW?^VSxp:K],M9p-czX.݇rf~UU,ɡp:˧<@_ o}yˑ!%zigA&|-\#|ڃOkVWfX&}Wi#-J@4j^ 4e;H`  abXח8Jϸp30): Ő9G,y{!6wANMJǶ?:˩`Rh81)=IƤcқ˔K)љ£qdˆ Rxswӡ\/Pumȴ~ P wXOR<>Ѥ ַaGM'0&FVZa*P+D>~YrpY?M!dCi$*U/& ru2*7}}j::%\xǒ?H|y 0?Y%?~! ^,Bt ?=x jmTV!~WuRKʆf"B endstream endobj 591 0 obj << /Type /Page /Contents 592 0 R /Resources 590 0 R /MediaBox [0 0 595.276 841.89] /Parent 524 0 R >> endobj 593 0 obj << /D [591 0 R /XYZ 149.705 747.976 null] >> endobj 594 0 obj << /D [591 0 R /XYZ 150.705 717.021 null] >> endobj 595 0 obj << /D [591 0 R /XYZ 150.705 719.013 null] >> endobj 90 0 obj << /D [591 0 R /XYZ 150.705 683.14 null] >> endobj 596 0 obj << /D [591 0 R /XYZ 150.705 285.605 null] >> endobj 597 0 obj << /D [591 0 R /XYZ 150.705 142.595 null] >> endobj 598 0 obj << /D [591 0 R /XYZ 150.705 145.165 null] >> endobj 599 0 obj << /D [591 0 R /XYZ 150.705 133.21 null] >> endobj 590 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R /F87 315 0 R /F107 376 0 R /F2 439 0 R /F4 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 602 0 obj << /Length 2534 /Filter /FlateDecode >> stream xZMs8WrgǤrحM2ىv2s`$9f,y"yT*5@RE[,;*I FCqt12єPt^EdNƥ'\1͊q>_~}M?wLXkP3<,d/Ru#9TN tqm/?B浾gq9KB|q TLtG6{|Qq†3~Me=rf@_:t֢\4B|V'XrWA1>\ [ 钢fz^-m0`w0Q:% 5{)3( 8Wq|z,u oH2/gbdoBYhcjӕ:V2kawDXX.CPB1T wAp 7^bG Iv0[ .- rCX(r^Ya _ʻBx[`APsSŶ8(?C̮tODʹ38r& nD*m "4D zb~sO׳j\Rt^C,6 e_+UYB|0BKGЮ !vh4 @HoTɨrk&`zrS"BɻvXp U 6ؗ&q%nr4b@ȃ: ck@fJcJ!A-A10)rH)qi[&:jšqf[͉vXV!n]u==I\PiC~$GJkɤ [d4l1Fn) m7(@Ǔ6V!$SLYɄ]d\"2^Wā¿[@kQp ]x9^kP˓(mw:M\)Cq7;3032nj¢*EUC>8u PڙbFpvqS7&{'ZUL6'ZHvu%(hOw<R=kj/FNt`jqXҭFT=OnzMq:yj2L (!Nӏy$uLM27[dRht}I|31W1t|߷IW5_VvӰTŻ(kYFm|Vh(K-d\V xqMW9:g+=k f` J}x`@$:"])ey;^9u4`ipz9Ny۽f~MhҔ};q,9{>8Vp}X#ҕ1"P]]*Tv{8t RDSл9 f8&UWtƒsH=9p7wgjZֳXL+n> E!uNS:zHRD QHIy!-CZr65|F;uu˒Q9}|N8.nڎ7m}IE1դJf$L8v<8Ҷ`τH7:I-Lx~MӑN~CG?C endstream endobj 601 0 obj << /Type /Page /Contents 602 0 R /Resources 600 0 R /MediaBox [0 0 595.276 841.89] /Parent 617 0 R >> endobj 603 0 obj << /D [601 0 R /XYZ 98.895 747.976 null] >> endobj 604 0 obj << /D [601 0 R /XYZ 99.895 719.013 null] >> endobj 605 0 obj << /D [601 0 R /XYZ 99.895 707.058 null] >> endobj 606 0 obj << /D [601 0 R /XYZ 99.895 695.103 null] >> endobj 607 0 obj << /D [601 0 R /XYZ 99.895 683.148 null] >> endobj 608 0 obj << /D [601 0 R /XYZ 99.895 671.192 null] >> endobj 609 0 obj << /D [601 0 R /XYZ 99.895 536.689 null] >> endobj 610 0 obj << /D [601 0 R /XYZ 99.895 373.899 null] >> endobj 611 0 obj << /D [601 0 R /XYZ 99.895 374.079 null] >> endobj 612 0 obj << /D [601 0 R /XYZ 99.895 362.123 null] >> endobj 613 0 obj << /D [601 0 R /XYZ 99.895 350.168 null] >> endobj 614 0 obj << /D [601 0 R /XYZ 99.895 338.213 null] >> endobj 615 0 obj << /D [601 0 R /XYZ 99.895 326.258 null] >> endobj 616 0 obj << /D [601 0 R /XYZ 99.895 246.957 null] >> endobj 600 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F95 356 0 R /F87 315 0 R /F107 376 0 R /F2 439 0 R /F4 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 620 0 obj << /Length 2517 /Filter /FlateDecode >> stream x[IsWLs@ũؕr9"\4elƀdt $@BR*4zz}X`ŻyL7I5JME\J)[R0Ip'o~ 툤FQlmi-ySZM~) HEmR/ oZ_(Vܩx̛{ |EOXT4?d&3^z *N=:OZԼ{Sz,/[:LvT:vNt -M㌬ ˞ E)/-iB!+HGj*w5/&w5ZϪ:BQ>REci\Ƹ:)zQ]z95I3 =ݕ=k0T~Wh_yʈ2ͮ~c|tX}l:VQ/O&i8AuC\3suAQTF$f^>BA1+DjAS'ێ(Ɛ217NGex#@s`k~c V&NcK|W^"ތ*C?2CPH#demz -F&Z64V:~ϣi>y$LJxX |s:k+"Zaq0{;P&EWf#Y5p,O/  Ȃ?1dt=jEe9gCɭ/ӫoZiwp'bjh![K` w@D¸n.a|TD*% :/L<@0δ|YdgTGz\֗gvqu" `Toٕh.3Oh ygp փ94TǬm#yUj.24 uӨh{@ XO~z|۶܅j4°ؖFiB Di{S,kzqۤy?(XZ~j3MPhpaw(NAӜK!vj(MdEդ@c ʓ(Hۣ3pզ#ywxƺxnW6ʚʲl%hXms+yIM"]_rBdȠܕE=NU]lգ$[KuRM)PBBhogwb[2mY'%"K/ +1 4cf'j|IʀE394F`{{rh5uf6FT.& Ti9G$ wX,dWU1~5?-4j*%.{Y|.s<k)O5KI2YyYB/qw:>: a[,%5YΕL?P(8Я@,\@bxBl 1nA/ ZRQn'q=ӆ Q(#"Ra/T8VX3Y: 20X}ج-% ޢH'c4R5on@4\.d<6|TzPyY`RG(MjA)4oVeV0>W9*:}/qr*拾oW~R\$TH`.s@͝ q\2˿80a-f%bb.%.'gQ6J)=獀xHI8/ )SIBU{2 g6Un^o#CaaDSt7%䗲g$){tzBKe7<} z4\"w^ }ZZm;"(3$NL*jaOqM$2Qd{0q.pԔ3 CkOL?OAdcl/LKveoDR.R)WH 6aZm⠥Lj^37Ćxd3}vB? endstream endobj 619 0 obj << /Type /Page /Contents 620 0 R /Resources 618 0 R /MediaBox [0 0 595.276 841.89] /Parent 617 0 R >> endobj 621 0 obj << /D [619 0 R /XYZ 149.705 747.976 null] >> endobj 622 0 obj << /D [619 0 R /XYZ 150.705 698.151 null] >> endobj 623 0 obj << /D [619 0 R /XYZ 150.705 507.055 null] >> endobj 624 0 obj << /D [619 0 R /XYZ 150.705 510.641 null] >> endobj 625 0 obj << /D [619 0 R /XYZ 150.705 498.686 null] >> endobj 626 0 obj << /D [619 0 R /XYZ 150.705 486.731 null] >> endobj 627 0 obj << /D [619 0 R /XYZ 150.705 474.776 null] >> endobj 628 0 obj << /D [619 0 R /XYZ 150.705 462.821 null] >> endobj 629 0 obj << /D [619 0 R /XYZ 150.705 420.437 null] >> endobj 630 0 obj << /D [619 0 R /XYZ 150.705 423.007 null] >> endobj 631 0 obj << /D [619 0 R /XYZ 150.705 411.052 null] >> endobj 632 0 obj << /D [619 0 R /XYZ 150.705 399.097 null] >> endobj 633 0 obj << /D [619 0 R /XYZ 150.705 387.141 null] >> endobj 634 0 obj << /D [619 0 R /XYZ 150.705 375.186 null] >> endobj 635 0 obj << /D [619 0 R /XYZ 150.705 318.788 null] >> endobj 636 0 obj << /D [619 0 R /XYZ 150.705 176.528 null] >> endobj 637 0 obj << /D [619 0 R /XYZ 150.705 179.099 null] >> endobj 618 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R /F107 376 0 R /F2 439 0 R /F4 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 640 0 obj << /Length 3238 /Filter /FlateDecode >> stream x\[۸~_aIbxn@Hۇ^(Ack2|{r),ٲ%_cKuxxÏaѧQ:o~x㲑c.9fY*l!LD߾~׿F5ߕR1H CunV ,G UiT& P>i$x%r)WV;I n%i/n.fj3*YjOe_(kjAVb[=˱Ȓo㘋Xk%@IW"E ,e,bRu򹄨,Y-Y۱5T ҤCbd[Fe,GFu͠NCH K, no >P5āICTԨg 4V!~@x bl, /_ @3_OT dC+Y11 d!Hd嘀G22"s&k:z9]0cЃfR˔ NQ8f-u0M_b(]HbliFB2y;p0 b2{T1L,G@Wq/' k +β>72wyPRT݁5`'~KZf 5ߌ ș0y4/B㯳P8 UI(=F6 >"x(}h8j-X|o}V'- .1Bxŋ#ڦwN_=/Pw1FATD*)mE[nL6Nz ƾ[#n=ۊjޭVd4o 5I394Y /y˅owq[0abĘr$ގ9ڊbw[CxoُJ?wut~ZN7ZQ6t+L1+:Ƀ e~;/:ez ˗.0eB=/~;72Aնz{/HҖH`=M]u%1Q]jLhOwdd.;˴QE1]|YvN&QB?1]JT)PdfwmvlE@բh eZ,n>ށcm| ֘q^#Hj)M,ska_\%qD>7}#fk8~kA+8)v7H$ʘk{ QBPZ3_c\盧 C`֗g/5%0CIl@`pJbX S]$Obf,um)- Z0xk# h >rϭ&cX*5 LU-Ռ;yc"ƴ1<]-.PKy%%//Bo1Pxpݕ}0,0yw>αRh$H p ݴ U8oƭ@/Ȟ}!we?wPN/6EMLM?v' ä6Gw?o'c |{b:eJ[:$h:=/هr *\+@{ eRX9,].m ct`J2 ɸg;%^"/qm~0XM,m1sN {*V K+ dCh%Z~Z%D+|FJ~W%W2~w3~ e޹"Yn֨5%#e?Kn~ryj]츄~ry*r篊W;\^clzl s]O./v]M.k+㸟_^_76LP hVlcKLU\p( m#z`z_LkwwT^#BYpTtHr!,):ƎVnW"Ձ")W-.סtVLyzԙqf4&&|V/j!x>onsyv,UTnuw &FFiUz~:,@Ug'X{6/o_\+VӯPi> :GK7uZ^r2"#(zEDO2O4ޑD8R[2+cvȴN= 7y\u1u:I!m$ͭҚ?! n(pkBWb:k@2kJj^NCٺ\;X)W'AP 4,uVv- evQPY<` xϥ/44 hcLGOLe+' hR#Pt^_,OJj6bGҬfi6q̊y;("?,mw+k EKUT6Hŭn3Dnpn&aO^I5Yd1av׷yZ XL:'$ycz*.4#*=5{Jw.Os}SN<92y.|^Z-l-X6oU'ʡN/0W<.-UGɖ:wҼ:եڡ-azETǂ'a AFjW:YBae0үBͷx\ΉPET1Q) Z<ƄnIrUCIMe'"NC% zKrNVeфNGP⡻Bz)vaVvgcny endstream endobj 639 0 obj << /Type /Page /Contents 640 0 R /Resources 638 0 R /MediaBox [0 0 595.276 841.89] /Parent 617 0 R >> endobj 641 0 obj << /D [639 0 R /XYZ 98.895 747.976 null] >> endobj 642 0 obj << /D [639 0 R /XYZ 99.895 697.498 null] >> endobj 643 0 obj << /D [639 0 R /XYZ 99.895 523.648 null] >> endobj 644 0 obj << /D [639 0 R /XYZ 99.895 526.218 null] >> endobj 645 0 obj << /D [639 0 R /XYZ 99.895 514.263 null] >> endobj 94 0 obj << /D [639 0 R /XYZ 99.895 474.325 null] >> endobj 646 0 obj << /D [639 0 R /XYZ 99.895 273.137 null] >> endobj 647 0 obj << /D [639 0 R /XYZ 99.895 221.536 null] >> endobj 648 0 obj << /D [639 0 R /XYZ 99.895 224.107 null] >> endobj 638 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F87 315 0 R /F107 376 0 R /F2 439 0 R /F95 356 0 R /F4 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 651 0 obj << /Length 2379 /Filter /FlateDecode >> stream xn6=_!t_(f;ս3d>Ŵ$:rٙI~9dVP4ux<*YrddzӳoεMr[iu"L]f ϤH>u7yRf |JO?\iIo z-]tӳjOtgf+p٧_d/ê' -%ErypeVpkuOFH:%~+,7ʸhe܋ u{:ýBJ#<ɼ=BJs561Y&Ջ&drm׈C{ INe~Ʉ+@Tr^:6'sk A5d"~N3B9n %]Lk";̈M8R =l6{ ͯ՛BZU}MQX2d- p =ޓE] jʽDxͥ7C_ܢ a^9׹ :8? /%pzã$#_#d?;ۘ"QvCHCnh s~TtߘC3y b?,D#NQ*1@E[/-^3zRnQ%})3,u'|/]YKm߄@g*o«jth.V4ٲe &{-N,hbEק͊b}Ng圧lL%4<PRqN˄7=/VE69 lu*hr9@MO'a 4a(ji'nT{1ruXZA,@ b!b6fHPDC`f6wRv-@ѱcB3&DZDj9>t4Tv_!H s 7llD:"nHOh~{[Yx/|+߯-_TW_b(8ŏA *#CT:\usmuoLsC28PBeC[nhf,Kũ%LFTo)VH![PW,'qTm/?VyJ(Q/OI@rqG+? y@/mo<er Q02 ekT)`$@|8sC5h^_&q" 8l&>ˈ@`,h574@cIoJ3[4z#*'A`EF )V W&!Q?ᜀr;{O |= _|Ad<9#GqMcM#vڙ8PYr s : FU 79m~u ; uw74oKj%( sI2gOW(sNNH'>j5UdFg1Cz W1ôZa-&[ec DY4?Sow"mƆҲ]kq>{ؿ M}npTMX+iѶWYc8>/z>zi-:v==Vifn6+Ək5@-JeXQ]ڵ~1jx0˺ ".BޑhYuԾy[a{X3@0bj bϵJ]*(( PTNGGbֺՂ, &v]6zJ=F,iuW)s~6;l tSnd ^IB/B-S endstream endobj 650 0 obj << /Type /Page /Contents 651 0 R /Resources 649 0 R /MediaBox [0 0 595.276 841.89] /Parent 617 0 R >> endobj 652 0 obj << /D [650 0 R /XYZ 149.705 747.976 null] >> endobj 653 0 obj << /D [650 0 R /XYZ 150.705 696.646 null] >> endobj 654 0 obj << /D [650 0 R /XYZ 150.705 530.332 null] >> endobj 655 0 obj << /D [650 0 R /XYZ 150.705 352.292 null] >> endobj 656 0 obj << /D [650 0 R /XYZ 150.705 298.924 null] >> endobj 657 0 obj << /D [650 0 R /XYZ 150.705 299.104 null] >> endobj 658 0 obj << /D [650 0 R /XYZ 150.705 287.148 null] >> endobj 659 0 obj << /D [650 0 R /XYZ 150.705 152.927 null] >> endobj 649 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R /F107 376 0 R /F2 439 0 R /F4 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 662 0 obj << /Length 2674 /Filter /FlateDecode >> stream xZm~藒Ep ;p}Z$Axg!zIg;}DÝ33;˒%[o{#Lr{x;+uOn'OUu/߿|Jrn,(WÄ>7,j|˙=E DiR̸77 ^k̅x~/, ˥w<&wFq|GcυɭW[RQ%8r:\:)A>*蛨8Ì"-LR?0 Mښ_T}En r|&͙D5a.1J^Э۱lp0cU+6ٓa}cEcsqePz$9w($8g( HйʍΙMi]2IyBp${R2G R jym=@N4[gx藓$NIp{_kl!C6?:]n r̾ L(8qbe$;jm<Т9S)rmCW{X|#s@O_V`P?Pǂq!Ñ+ǯhc;‰`z0\s~L$.tP4_:-ԇ-B#։@r@D[=r_ P+eXYPcտJ=%.&0FI^-5}A&j5tXgolZ,&uf;4tNS;S,v3@Õ߂R 3_i@m};(\]g/2Ii1)bSB _M|[)t+pF >9I'@wb"Z:W\b f]&pXݤfOkdc.CX=LtIdL1:bhi Qtl2@{Ә1(tzBh,xT[|:_fq&bOHe t+U̱S'Ӽ3Y2=xJ1rN eu4GW]#GI b@Hj(*P|G<%13) nk`6ڎ`Ѕź9w.`nHޠJ/hj!~uC*BPS:igygg@S|ûLw$ug0@vo kLV얉n-P--! aSbDF^yW Lxp9@bTz$G1\bH8^Lz|YT2`6o gm,:"(۠h^Z94?$ƴ -"Iz{^cM+"`1!`7}|~xuK y]:R#,\=*{ T$]9p!X؟-JFd8oΔ.n$M(?āK;Ik,OV+gm\r0mUl(^/r,E~~Ln֟Cu3n5hRvu)Nj-w+vru؆@hĻ4cA7¯-d0U/Ь&uΙ\؝o2\.MߩUY`?_0؊ 2SEP\t-XLo;! TO4 ؒbK]\l:#ɱ| k?tq­E^m5_*l s>Iޞƫچ%&wJީIj*~QWer  JTѿΦd#-Wxy* |X܅Ȃt-ޤ+Y-V= Rn0Kwҗ*ēKӇEu߁z5Ih&0 K@ϟ3)B7WO-lPyM!ڵ3}ȴ\ӦM*M4Cޡ̧_BÉVU Ji!vܡOMc!q?% +='DYLݼx.Ht캭-E8Xlew<=I9Rq luA ]MJf&}.3u"wҶ:KSajV6eA"LoE%YquE]E^uHF endstream endobj 661 0 obj << /Type /Page /Contents 662 0 R /Resources 660 0 R /MediaBox [0 0 595.276 841.89] /Parent 617 0 R >> endobj 663 0 obj << /D [661 0 R /XYZ 98.895 747.976 null] >> endobj 98 0 obj << /D [661 0 R /XYZ 99.895 590.282 null] >> endobj 664 0 obj << /D [661 0 R /XYZ 99.895 417.736 null] >> endobj 665 0 obj << /D [661 0 R /XYZ 99.895 203.404 null] >> endobj 666 0 obj << /D [661 0 R /XYZ 99.895 205.974 null] >> endobj 660 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F107 376 0 R /F2 439 0 R /F95 356 0 R /F4 440 0 R /F87 315 0 R >> /ProcSet [ /PDF /Text ] >> endobj 669 0 obj << /Length 2495 /Filter /FlateDecode >> stream xZkI6 nQ$koqPp%MDJc= ERV#,V"w9νیf/q:cCUf"r Zt/^$0n'|]_^~pesAbv-0&^`<EHB)oz.D/ 4ʲxv62.,>nn^=7\@lg@GMnj8*gua`QDaU4* YL PE ".&Ny~}6\T+9<XLq_^tˤ}%>ЏQ wBz.yo$8[ 10 sSb.@h7ml*~0y9ԫiXmIͭzu՝9`gal1INR:L_f:_ݼ4k0E3Lǃ>u5 BXW>0:oUo4A!̄eU_r·u|? a$܏|g\8ΉL#ORƍF\6FG"dl~*>\llخmYWΟ%oЫ_ ot@I`AZJ}ТOԣlǰ)S#Fn(m̢(2e?i4hݛ4@]2= IAe`ެF_lylKߣS粑FӪ Kly9># 64*$\<us$]T eJq]MפY5jhBak>Xҧ Lx'"C]%sY3lU'#CF8caR!*!Arb\6ᚲ;~]%))X_M#$G-9|+?K8b rV #7 u{!h"  %LF]Ifc[FvD{O$1C=^)́ec,<} [KqU)qB7ę;d&r6 -\`ƈ {+w4҆={+þ8;MhWR/ !_%w1s@GُFP:DΘI}V)њZha"f ؒXDaӸjvnșWyMH,_mMd1Y$,]\/vG3% ٹDiR̆ g5L'OL+<ьo'%̹*C8F!Ț7'UƬiu 'Us2ny>-Hy.QQ@ks@8rd9bƉXdDB);eg {cy/ǁqI(.a7ƐXDSPTB5rC(r#s`&u{ڈ8FҋP{ bfV~6f[6D-.&8L>n"ڟTDM}+]A~5/7}5AkR0w ?d/~> endobj 670 0 obj << /D [668 0 R /XYZ 149.705 747.976 null] >> endobj 671 0 obj << /D [668 0 R /XYZ 150.705 717.021 null] >> endobj 672 0 obj << /D [668 0 R /XYZ 150.705 719.013 null] >> endobj 673 0 obj << /D [668 0 R /XYZ 150.705 654.872 null] >> endobj 674 0 obj << /D [668 0 R /XYZ 150.705 655.051 null] >> endobj 675 0 obj << /D [668 0 R /XYZ 150.705 612.429 null] >> endobj 676 0 obj << /D [668 0 R /XYZ 150.705 615 null] >> endobj 677 0 obj << /D [668 0 R /XYZ 150.705 572.378 null] >> endobj 678 0 obj << /D [668 0 R /XYZ 150.705 574.948 null] >> endobj 679 0 obj << /D [668 0 R /XYZ 150.705 518.368 null] >> endobj 680 0 obj << /D [668 0 R /XYZ 150.705 369.975 null] >> endobj 681 0 obj << /D [668 0 R /XYZ 150.705 370.154 null] >> endobj 682 0 obj << /D [668 0 R /XYZ 150.705 327.532 null] >> endobj 683 0 obj << /D [668 0 R /XYZ 150.705 330.103 null] >> endobj 685 0 obj << /D [668 0 R /XYZ 150.705 275.431 null] >> endobj 686 0 obj << /D [668 0 R /XYZ 150.705 278.096 null] >> endobj 687 0 obj << /D [668 0 R /XYZ 150.705 221.515 null] >> endobj 667 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R /F87 315 0 R /F107 376 0 R /F2 439 0 R /F4 440 0 R /F122 684 0 R >> /ProcSet [ /PDF /Text ] >> endobj 690 0 obj << /Length 2653 /Filter /FlateDecode >> stream xZ[o#~Zqy"R 6@ۗ4cIvűu~FXm`Cs!)^/7Wo- V` R7R1C|y? ~͵NUJ3aY\jZpי=lCJD>,I$oWy!A7K_fW?‹1Xp/đBrDsZ|[Yv8 7%* 4Ly A>l.YY8hLmݩo`mN1f0 zrf-XBpX*۰ܦቆsX4xMG- k$4(KR?TPrޣ0$g!UA{ MF nv@C-O ƂWA0 j[mG 9 ̐$H_{&9EG*T}%b'Ķ/ng64L9w9rp~9ͤT@.ᥡZ<1q~/T:Nbϔ=d Ekp@v[[hl0?!KCtC"2kF͞Ξ=DUԗ=q5tv w~}xl\֋eJKhk YKBG) EmyԻ߿T3 EB\+3 7Pz7걡"S}YS#`{$)=[ł"KrWłr-S\Tj3qx2_=kWM{[5 Z 5C_Pf&`;X*0FRpAM1P:*ѩրxHkPM%"X$vد69 +II`&mY~_Ɲ dž&  3>Kw=\ 8+#Bfˇ| ugdx_|awg4@4Bj9`hg'_>Q]j4v=)} l2ն_ zLگ ,"JXDZ:Z1wͯ4rVw1B*(ۂQ_K=bSZ"*=\#U{5MS`HIU( >GڭJxy8hdE0D&KzF)B:tP!Ũ$>us5H%%RWJ5 0X'f1!Љ,R;Mi,ZۓA l'+w _t-8){{i1 ZfGVa (Mu v< SMS&u|ޞҷLrOD8MCNwaP!JvbQ p؞"]b{ۏirskՐ( jF99G?&̵Txud0ۄ&}1A3uYUN>I)y9_ l gJwїiHF[Ii*QYMh#8*)yxWca_bQ̧O沰ʺEbO1ic$>%RV= }`@ՕඞF :u5z0ZUN$޵ (ݎXC4Il}@,Y!1@xH&Pd"2!{Ycܑ׈jRwW}=26Ʊ-sо]Րޭ#_M|,0sTXT2;ArI ,oz k)7WCMVb-xЮR}3G}GErrgs=N[>i5_Wp Hs]~sG;lٔIadKlƓN>r&dKb\qrrcN9dǜ vo4K/`gaG44 ^%:e0Y/7j1p0n)Q6U36gTNw_G |pzv;y<؈5)ZN*fBaqЄhn|ΣJ} NK]xy?ǐStZ(}-x:6|Qzٹp/_GU1{6笚Z9T^z olo-8y})\<%fMhof~Y.L;rST:m}w;&bDDddIz4aچ"?eiR>n,O/y+]O(9ǐeVnI9Ɨvt@0J=)N攓t/Z_kf(H =>ڗ 6j>{Gi'6ιӋ~X \͈|a)_*-\C%"+,@t _vtxpHf;\3˝ w.s@s׶G1ȽIpH Ϡv~d#-g/d@{(lZ m@iA_t!mq}s'fۣ},ﯲOp՛9|4G4> endobj 691 0 obj << /D [689 0 R /XYZ 98.895 747.976 null] >> endobj 692 0 obj << /D [689 0 R /XYZ 99.895 525.139 null] >> endobj 693 0 obj << /D [689 0 R /XYZ 99.895 527.71 null] >> endobj 694 0 obj << /D [689 0 R /XYZ 99.895 481.139 null] >> endobj 695 0 obj << /D [689 0 R /XYZ 99.895 483.709 null] >> endobj 102 0 obj << /D [689 0 R /XYZ 99.895 403.136 null] >> endobj 106 0 obj << /D [689 0 R /XYZ 99.895 299.712 null] >> endobj 688 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F107 376 0 R /F2 439 0 R /F95 356 0 R /F4 440 0 R /F87 315 0 R >> /ProcSet [ /PDF /Text ] >> endobj 699 0 obj << /Length 2581 /Filter /FlateDecode >> stream xZKsW 7lfzއ+q%]Z䭈\K:ֿx`Ŧ0w=}d?\6.":rLY)VHRͻ\Sͷ/c%I-Щּ*(˿|}Q ;Έ|u}6u(IpFHI 뻛RJ6VZg%y57R汑V,"-6on~R`#3)oQ9֔'o3)t w>GcAΜBt A Z$O#T0ǔLpt*e^&. DWf+p%ux^JF 5˚;vF C'<U']'K\ƪKy. eMfQ a#G8'2NԻ WGe'ATRAo$?T bTqIuG9ls1zR 9$ zXu@5(KN@j&6m?l'gR ABI@c7ķɬRk.Ps:Y4 MpN@X5qwt𾛗+㩢0q*!\@r?+KNxV+w478s`"~^(@qwsҹ6AӈU'*fAr ABM8a푗+dd5,S-&! с%qN0#U2~r!]'M^r*QO%Np6 )dGH2 *J[nF V%GM Դc S]pnj`u͵ 'RwN@!9MGjHJp^/jr Qn28kBu0NЄRG>NrXj0HZ>Zqį%u.0&$WXdڡB aa90P ™txD: TwTC6Ht{|{z*`4v)N6UP K ۪3A o%U0.D(N a {sMگk=&UTzRf,Z183ƻuZQ:%A!00h;YI4 b_BGW I?hOAȇ0gr ~W(t݄ ƽ`i W*M UԒmٓr*Bvuȯ8s! rNK,*}R~*QZ▯|;ߢT~qck}B`,c6~Ci˳?͋hIrˣt8y!cV^喝zw^At:&3sT?o 4C 0uT$D^ջF4 bڛ1ڡ\Bor KM2Ul63|| `_.HKg8;z3'W477h 8WNd C脤0m'=0Ktb-c*Fc%R]=utՁ ( <B_FW0W9In /v1rP߸r:ID9gtl{Y`Et(Ml?-i_grv3lbpX/|DQZܺ.(FO]LcCV>KxsT7еbrZVe؃s>×*&ˍFVIąTRUy+(|-gpA"mﶏ1 ÁȨ<Yݞ #{VK>g ; X1@ ><5W]Р~y{ *6V?>n9GkD}wLڎ e1 \4TJB$Ybb$@6c |;V?o{ERmv|oeJVu|6zŧo=%}= }<g~O(hގ+*~^3t)VϊR?/S6.W/R—+zds/Eϭ(zCjѺ T .Z1{ NobO.[DrGr_ endstream endobj 698 0 obj << /Type /Page /Contents 699 0 R /Resources 697 0 R /MediaBox [0 0 595.276 841.89] /Parent 696 0 R >> endobj 700 0 obj << /D [698 0 R /XYZ 149.705 747.976 null] >> endobj 110 0 obj << /D [698 0 R /XYZ 150.705 212.816 null] >> endobj 697 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F107 376 0 R /F4 440 0 R /F2 439 0 R /F95 356 0 R /F117 384 0 R /F111 377 0 R /F116 385 0 R /F87 315 0 R >> /ProcSet [ /PDF /Text ] >> endobj 703 0 obj << /Length 2558 /Filter /FlateDecode >> stream x[o)&H EnX=,y-y7{8c =z $M"ٷ'>=yAFRg mD@t3$d*oOO{ wGD*eNpmӓO|Y!)A~]ٯe*y?G ̑ (L:&kM@Z1J#BhϫdJp>T6sp ƹ7~:1"|Xi EiWdjz"m^}`'zΣB<%q P@*x$^L5%QLۂ)f2$,B:_(5uhyV}dS0) 0 PT[@&RNG4K4sr]XP= MmVɝjI:T6MSCF}ؖ+14twL"u*#W2Js;#()a!a ^϶RJA`&(1@j{StN}I *٧=aެD*rJQk;5NIݯ0F/Vb΍Q00G8ޥSCq쪶 ZR 2aʕ>M#*K2kQCfZCfIq 6,1~tpRy+J41P퀹 !7n  ͨ&/<&F@0Fl)wEjڞ <_W?Vߖ6j 1)"Ld_^;f*` Ma3qD0?(3Q"gQ(?ʙJ=/aҡ$v&8 kծMWr7 'S&X j,p>>ɵzD7wQc?:!$6R"}:FIq l>/[֋+GlJaqlu_hPUVn[{zO#Cx'H$lk0[״ I&#qm Iq fY|LP [q<)MXz02Hs`ˆ[dA)4ML0d<ېOC2^nzY͢1e nLS1Z~qaN6i489ՠH<ٓIB+E:Ph33iq zpԜ$0}𞫋DkSJݾ0 QXjNA=g=E}w J%>%}>ß(+_v$d$ͱ$)aaފ=sk ^5qhaѱN6[DixH߫/:ؒd2ؒ0[0\u, ɒH.,_h$VKl:!"H/;Ȓd2BضZ&8-S?./ y~2_)FKTmsI03fA~3I&#qmm0g0xۻ f8WzO"L0=g[LTmsrACp*$u=~Zt&h4ձ&)aҸaH1܈z+ϩ,L\mP5"o:Xd5X0k0n&SK6&\5.clP d_ػMի`TyH7pfqB# (P\cPRrpa #<+6޼96*7[Z# q%`*N4ay6GF8 al*Д9F(`0‡^0;SۘdT<{$ٌp5:Ӫ89aϙuFnM F|Gp"WBB sJ&dwZd[ \*Z|$&66ICIn.&S+BŬ|3!Bt࣮7ww <%n#Ml(f<ѱ')aa砹4H盽Ĉ?1bo1tsLDyE860F=T!N3|O)虃m|P]FI6#q Iq ܞ`O(S;YmcZxE(2.ϓ;dAـ"\\d/}{Ce:oXAj<[!PZ hjDUAV]Ma',-~PϖJ{$sNJM}"akW_;Ϡ5YTK堇i˖vY> endobj 704 0 obj << /D [702 0 R /XYZ 98.895 747.976 null] >> endobj 114 0 obj << /D [702 0 R /XYZ 99.895 258.644 null] >> endobj 701 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F87 315 0 R /F107 376 0 R /F117 384 0 R /F111 377 0 R /F116 385 0 R /F95 356 0 R /F122 684 0 R /F146 705 0 R >> /ProcSet [ /PDF /Text ] >> endobj 714 0 obj << /Length 3735 /Filter /FlateDecode >> stream x][s۸~ϯP ;^fv7C83d KY]N{@(ӎeQ|n]^ Ո#”.fNj}S))fP TiyO 1d]r&W*{+]007,?.rA6_aW/^xD )AFh8H}r9bD!M%ws$hRTᲨ0JJ$54"|Ym1sUF(\)1Yٗ2`Y0 ދeQ Hwfzl~l;_Kֽ ֣B<dAf( k8,DY$&&IF |+%*&@#$0JDl"B@5Npv4{žj.I04$&9 a**pIܗ N38LDhTr/e$s@DY 3i*#씒:pi~vVc腶U:6j١6 0qčҖIN{iK D~>ڊ^i۵5Y^h|u6hvXzb:¤m`F~j.xA!.T!b=nǶ0xGd?=.-M2!o>F M!a+Jz5Yl.4e8~b0Em N0H@e3.F^>xCd N [hb'V߁IWr䍃MҋqTUim6CX  9UlOU1CdžQD }Дgw`?hա4 0QӔ,CL4t#s0YE O)TP;l'Է:4&ms{&'ٛNUSW5M [F[[pՇr)ǥ>߬W@ddƈ^3X!P2X1K+ uiF nXغzA7` 1*oA+PgaGr tqK,F&IV#  N!L`?'0Ut&P)媟>XIn- N2aou`ci8)?g8ϩJ/bӳ歫H oK%%N<{咸>Kr([vۢ\IF#Y# p5yvg6ik+ljX x_AʶкB4>X́XRbAM.[ӌFX[pL)&;8|5^c3q aAtfE;r>"گf#zW ^O]XdzUNjbkޔ#)魨Fs[e[$GHo[=i lWp.šOm8 l _CrEOT; mӌFʷ:Ž$ru~\Ҋs4sV8EV]=V^y?+̫ӖvD\Z*jD|C$rfDv-qXY>灖N$+d/EOډ/; WW(\\EL9-jV+tX^i8իCCD&mUiZT,k\=_6X%k 5%YqZu%How`3i8%͇aaWLĦ˩| ՝̽QBB%<g=2<38o{;)My sT\>vZ-rd5"١Aa9a,'iJQi)Ö㏱Xɡ @W  U@p9\DF7;i8aXo?& q3Zi$P۵Buw \^~za՚m0DjfH n| r1 &_cTv+M.{\m^dx  Zr3v=p 3U/> `TGU^,lT|um*oێMIҾݚBWfϘ9ac9fCE1UbM'z0A_f~5T651쨂 ^>.$ $cśrB1}Y#ur_wkO` ;mL2T\x̠T.<&9Xaqaca*޴|ʅv9pq,LTw0`L#%岥哌 =eQa͡G> d,,3jn=1׫>0(OuHWF1 q5Q}d}4P|GT4e [7Ԉ1h/_A@ܖW(nD|C) 0AJgӓrG(Wj&Z86ѲWӮT )!n[jj0'Gi$!mMHp CsF|B.y:zpJ|t yoId]yTg(;u ">#_w|#`1;c6\* 1EuxԬZ|وힴϾ'i(%?Y-'̓wb"bCXɧ8i;7zZ!&z;?F$a6,4Xg36K!HfD6 $Nv<<.M̴y4+1y dQzTFYE20{PMک6h&ٍg$Qc磡I05V3/vf[{V:gHe8k*;6SS9i‚c9O ~ҥT^z]*ΫEGONJM &'#@29HB _XKWd8Og~6i8 3xlS81ȹΣ'rL]\Wy wqD^0ĨG a~SRs&~\m@7;'V@=(c停:',{%j̋A7Ζ؅v25\UQVչllFt*]٤b*67l3L_a#oe·K]ً99ȡuAssGsΌz@=)f%o]|oPss?Oy8im޼}C] :^2nHY3:BbT׫ h$w[ i7Z|9by B4~>d~d}=x qOݵ5_nj,{"Tuk> v7Χ@+QeF"œ9pOk!]ƈÿ[,>VM}c3I\ k05E͌ɬ㲖ꝳ>h (zXyie3.CK49TŋpMK7d]N(Qq#P݁l nA̋t?-ZKIO4|)xڨE9󁍑O}.}oppför2>^Y;r Fs$5P_bl endstream endobj 713 0 obj << /Type /Page /Contents 714 0 R /Resources 712 0 R /MediaBox [0 0 595.276 841.89] /Parent 696 0 R /Annots [ 706 0 R 710 0 R ] >> endobj 706 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [295.91 375.415 310.017 387.878] /A << /S /GoTo /D (figure.3.7) >> >> endobj 710 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [458.463 141.598 472.57 154.062] /A << /S /GoTo /D (figure.3.8) >> >> endobj 715 0 obj << /D [713 0 R /XYZ 149.705 747.976 null] >> endobj 118 0 obj << /D [713 0 R /XYZ 150.705 427.727 null] >> endobj 122 0 obj << /D [713 0 R /XYZ 150.705 237.252 null] >> endobj 712 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R /F117 384 0 R /F111 377 0 R /F107 376 0 R /F116 385 0 R /F122 684 0 R >> /ProcSet [ /PDF /Text ] >> endobj 720 0 obj << /Length 290 /Filter /FlateDecode >> stream xڕQMO0 WHԋ|#ڊGq[* Ŀ'k׉@9%5,@åĨ`썇1;Ԇãѡ\殼.arQaJ"{jI%( 5ːs@0kŻ]p 0^t^fP&ɢG )F~׃+% 31DF4? kbm?B'Zʌp˩2Z~)'7g}v;}^֛O_=zUdj2+t im󩌗Iwjg'v I{| endstream endobj 719 0 obj << /Type /Page /Contents 720 0 R /Resources 718 0 R /MediaBox [0 0 595.276 841.89] /Parent 696 0 R >> endobj 707 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./illustrations/faust-diagram4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 722 0 R /BBox [0 0 283 425] /Resources << /Font << /F1 723 0 R>> /ProcSet [ /PDF ] >> /Length 8274 /Filter /FlateDecode >> stream xݎ,;r8Pofki Xa ]k3` 0Ψ?,&3#a_t=c^? 5~Dh ^wa\ϻ8~Ʊ cjˇ^MM 0MࣃP/6!⨞.6! 1hHfpHHe2mTA"0gS=2.j5фa,Zf-b+jYHGRҘU0 B",jgZE-ȢRmjD50ґDiLT$Qʥ&$D G{ D"7l3>H䂜}xv @#g$VڄGB5=qBZ#gLJjn17:y>ˀjsmƤ8I:Q۳ v c N9F`c"9`c%96`c'9`S$ٿGP JHY,rD93\G,rCH$JdN%#RS$Q(ITn‘53g_m xC&!9IbPD4&!I<{d"xbZEMSڴ$z@=1D*Hw&CFf"!Lbt$xTI䨝9ZD@suIY֣ )ϲu2#].ŧ> KϷL@52س2!78Պ,0ڑEB", BА4Z8Z̢%$ hY,ZG=0E$zeN!ޙHbD&12I (hLbt$1T"9N7h# y<ƀDbIWz3_UKL=_tP͌&Bl\lR#6i\lr 69]lrƖ|dU\n<] MRMMM*@ljLljU!6_l 6ª$b#b#؈\l~MĮMóziBlZشAlzDlzUĦ]DΈDg(DgԋhDgtBBd>)dT I"I3;bvC="=6dbgv)dRdv)edR$!6]l=M&M.زRMn.M Ħ%R.6EMi2M `&bSŮb٪\ꪛj=l{˃-<<z3ڛ_=<v0\kG5kM4b#b#]ֻbS;bS+bSbS_lJ#6$BlJؕHlNl2+bbߣ~/b_E'EE'v+ 0h0OࣃP/:!.:! ":Is IM<0$7f33fllbj@6;xY/L$WoNYp%Oٟ%{VJrr$#5?#'pIN4#]P=I=F@6)^4w/vr)^IyDй1x%S89i1P])$bU!Gg6slsI%rQS¤S<{N͠prsͳI=29Ǚ֙|7VNl<ŧ!DG#='=Wѩ|tbSMgj 6e\l 7VfSl%_l ᄭύv; 6ϦMݬ5&o[ni#56MlXͮɾͺ7LV?s]_O|,7J^QmF jz~@0oB+(e ( A~o*nw{׽_"(dhoA:u5~={P`ӫ*Hp2 AyT N'(AU0 T@WvEVn2VQn+UkyooAƠNW_=~}BSHkIߙ}<Ë-vw~*Bxĝ- ־'lajDh(g9WR6ߚQ({44Ҵ[6ƭlQ$ig(._+#]iQ>M_uB7 Q+W>:nKȧ5so6kW?0:͖^gadk3KSK%YQ:Q@}TF~^DQ k?-3Y7/c&h@8@XQ\C`ƿr ~89^r]O''<]i4L߭uosG٠ǡkBW.>흿[ƵI;7VXww]9*U?ܔ>U@ՙt`kj9qjfPeBպJj^P52 gj]P53 sl50 ,5Б8Ze:z$tuY| qnδ7,+hס5hj߱:y3l|6Kl-Bb59k"Po-C\s6kjzWX| (%b)-E0B bH"5&:ȁI$27$+5HΜJ@%2DƟڡ%Rg{>n:V3i}Wշƣfjߥt; %R|!UaPý]S.ŧa@U;Q P;Q6:|`$$1'M2'53fP3 ۄaPI0:WGLB0GLB0[I樅[̀Ɣ U3Àlf303 8FP*a73ÐaHbfr13 NјtFdfN0Gbfj]l4)ttM^'3Ð^]MĮa^EfSE ѩSё._]*w#"i iӰn_l v=^lzhvv،@feBlF؍FlFgvf9OM5ÐQ-07f3SĎzdLj CzgzV\?) 3ÐMJbؤjaE.Gbfy4bbS)|tت C v5\l zTzM˙j-Qa=Ӣ~S&iQH3Ǒ~꒚`I / ;mYEsOu\lb%61_lb"61\l 6؄r {f F3`FA.#3- #za =#GHuhtVD܈ZD-0'HB٣&!PLBM[I騕I騉IԈ$j@t$v&T+(I$JФ9p^ ^?7 *"_]1(__ڟi;Y_4|>a o|7ɡ6Ho+x3oe~z ]A ܦ+rLX! k\DcE֚_ljUv^)c@o5:S_YOWtnWs=A{ucۭe0Ū莎rq8ܭOwu@ !|9(讠+zݗ3arG<؟;;f@ӭ>Y51W#O7f>Ž(ֽl2Db.Wt }fg>aѡo:}K(>;f6YQ#tqr(hc=EFγ脒eW [} ~G]5˼~$PR~y׳gi&ttHym~&jNDuk [עn+y2o;sE`Kٔo[E8OOluQӶ/#؟,Gg3G,(ز34J<fZ]U]sT]GZWeG zQ=¸AU ja]va\8狍k.6jd9zjبtQ;5 &f*tc3Z@U[Vׂ {5#N[*B .GLB-.G LB@S j$jFtA5 fyr$rZ^T+R^E B/娕Y娉YeU 0Gh Q٠+ga-nt$] 4!iDaFtjD^جrTk)TXذ1_a~cFulĎٴ;6T2qI m : &1ȷ1ط19HEƜ'sThkü[H1 4!9%JY$tn̅"sc. sPܘEȢfQ"(Y,0ҐE!5 SHTIT:- )IH6#$!'LAğsU]U].cXj&MP-UuQua}ӝ3ϭPTAMl2:v)>9:gZ:gJQ.=#P I$1 Il(-M3%$T+ uΠڑ@UQ鼚>Ze9jg٪PHB3B9ZGٜ3gaЅqst9g9f33 T9C@.A=!uΐވ:gPW9Cz&6PF3GW =_lJ%vE.62.:9zMN*DNDGղ$K%:Ntd\tZ$:-]tZ!:^t֭MĮNj:g@/͘.6H،tQͨшΜ3穩3٘sl9sGvΜ3zGa!sΠ1 ٘st!6qΙpˑبstdFlؔ@l ]2*sΐ.Į{5] u΀/6^bS`}jc%s\H1NЏcN?VYP+X#c%6ƕZx*X?+>ܮ&6%^l 6_l2X 9|R&_pIk_%_"_*2DUfkB$gS|t$_Siv4H'^dЈNM~הB"v5fξqf=aM3w6Ş]nc(]eqd.'L.SF섯.trYDb#)Vr;dwOЯ1d6 Wr{n@ 4 ղ=/cYmRؗg+J1GdRt8lUG#l;)ƶ ecP5*O"[AtǪ醊_#1/FKƖ*Í)]Q_£H>BsN9M~G_hb]ܿϑB[_^AY8®;OUm?i:OChUf6S%O߳ZdϲV9~[!ٍ~2Ʀ1Nm.ׅf_,o~C>-؃V:~#Fu";ګOǗ ab_\~y]eRd+`Ee}r/>tC6rzA}O B';gmNEW`+%@lצssWоشjBڑA u ΦMmOzxci۠bPl+u3t ]Aˁ/g5pF k a ܥ%N7";H/_RƀNW%+X+A[KY<@ } s]#:rZuW1(m˱햸ybrQ8ܭOwi@ m!|9a=~W z}tZw6 ܓ)`5H6&,eXac-,Ø˰rh kO+L~|zcm3y?DzmKzC^~` 5/D}mƤqz=#?qZ=d.56Gr[ܬL-Ot, xrS`$_](Ì}v~kC4 {}i͑ ov;cn'Ikz͆kBh$oYZW endstream endobj 722 0 obj << /Creator /Producer /CreationDate (D:20050330030528+02'00') >> endobj 723 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier10PitchBT-Roman /ToUnicode 724 0 R /FirstChar 0 /LastChar 255 /Widths [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 0 602 602 602 602 0 602 602 602 602 602 602 602 602 0 602 0 602 602 602 602 602 602 602 602 0 602 602 0 602 602 602 602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 602 0 0 0 0 602 602 602 602 0 0 0 0 0 602 0 0 0 602 0 0 602 602 602 602 0 0 0 0] /FontDescriptor 725 0 R >> endobj 724 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 726 0 obj << /Length 727 0 R /Filter /FlateDecode /Length1 1493 /Length2 38721 /Length3 0 >> stream xct].vVl6WlcvرӱmwlN:fǺ9}~qkΪjV.sWcg +3scS?fn/+~+WPw!9Z[K3 +gWK @lo?.n&/tu2W\s/>+~!]c g _ eVp2r1MiԬ__yc//h h0v7>ۯ:,]`QLQ_t/9X̬GKɹi!^\4_H#u]M]ݾTp?o O, +gWߚ4W-\\_j~팿Z+:,,_}icnOKۛ;xcK4L_Gj hz*fk`l/ה8XJV_c;+[ޚVpp3viW㯮j+ڴr U{7̀ζV@%fj_M?S`aMDA᫥K  =ͣ'@_+*no`feoՈ_il6'dpsp7 u{+'7k6usv߶Jͭj zMqG g1ҥ6_r|WDtlN;OM2v5x¯-+hs^1\=k(ٺm:TuQ)0oKXa5APCR-^>coBeJqVzo7oN=:~~7I"!};/ݼӓAN|^h8̦]BwQ*AA-=As=[D Y^&pqݺ2rPf/m1}߁* iCkl39{;Nj#מ%Pёy 42y$0"l[I0tUu^=zOn&{8\BV/x$m;UoY~\*x{q!҅q(~:!=s:M\{m S:u_[KڅPI"%-SOCjv +;yAu9/$8z!R|շSK:D"ӏEOҍey 3֪/I~=tZ\ov^n1xѴg<hŃZ 9 AhW{&; +|=19@*|,v *+ֿ#J|)EAm .K;U]L$M2Nm|SH>c`%b$B*t^*·;* x#Mx2&bTj_bBѮzqEOK:j Nkx'YEd?Oyջӡz:NBYWlLoiètus[Ta-p 13>=pg;gP@| kMCq(gB YEE>'Us$q|I$MhouP|[{A~ZPއ"D7?m1{%P~SCDݍŃ !*4ytVNF)U\w o嗜ߔX-?PlTeh|(ޜ;Zf(uX)átFT?:.G#FOt޸1]&4 e 105$C1!6lxEi6/wږocmcn%+!!:JXNonuS^qg2$ gtHa5R1 5 k Ι{Pd 6L0$7[tvԕ P/'LHz`׿oTge͟㚛2# Dۄtj} =h vⲘgz?g^!Y0a"H0Oz 5Zt Ih-Y6(]} *ֱqr@2 }CU,+[xmaϾ!p־2 $8WQ"?޻9a[#Rdk\ha(rՙAL|LUDrUWry^Gv'>\+)iI=Ismv^AiT CQQGc7yKڟ~`g|^mAmQǚF3HMaiD3#qLcX]NjH\&A:2(?4DW^McrD~?Y,(U'/W%g`e1Xwy}QRa_A0/VCdAt]SE 8LX3v20m~/ǨrZ0<"=u|P3Cz 寧bD<iIwR&^V|}a~~-Yros;(߰NA,ߑ@W5K! WFhe`i*l(BOI\V5~9c q/5!$.VGS\F)LHSQXTv&Qb>ѳb7^jy/\Ÿ L)"ѵpH얷1[BKYֈSRt9PϓJ6O_Bўrxo=]o253k\nو~Pacc(_"IFlzEIETVPR]CٛhrF3BH8mA43 A-ЉmStm0z4ÍcD~Jc+Lp ڏA n7M3j,fu0Ym\F\/g&܌(7rJ6H~T$ˊ׾[5͝ӫ^ &?0ᴝF෢dlU%P5p6){WZao 3a@¬ipvy[LYvtg(hګ补"w致 t]D ]q@wXXqtd~0l\'\V7͑L79#IN&^fUO˔FNT%K Z Hh :JbŦ,mw%Eg؀Ma9v,L s%q3|>3#vDžz՞[͂}dLХ; +ᕃ!4TEFʻ?)ߖ34Y{$#Nƌkkhq]k~e $#Kl"mmGXߓ c%0ۭ7 S\8FmH=Edޘ0ftȠ.fW\MPBW~\MRJIt"JTs"ai>'&FGKr$vd2Sb[uu`1q'x-Re1q>{&μ6jUzRIM3LNq*O gJ|dI*qN[~C2i: p8 Cm qvn_^5N7oTJ0~z멛mt}VJZȵjQYt%ZtD&\VBVEwy&CX2E,>zgGh?ÜT7h/[r $yk"'/D1)AQۅQK>N/NilY:c+= D/46 TfkQ;kzs@e3t#xl. DR+_*NnVl#겵3v]%&˽t' ^g GZq(g0o0z{h9xAE)9\l*HG&8UZlUjƩ2H&pYӈ'hb !IOu{P#G3ѝz|,9v tDaPcC~Mm8ATY%%c )f~(<KA#S14AiqQS1#! j~HR# PXf` lHV3(Xjtи591 Y-l3gs1 ŹWn ! %xp}OUTYV<*ETwGe@A\x].}m:h3±hz++vLN%@|A>4YNgYFbO ){+P &ƨH;۞ysY~f3s,7f2<3"zxp)d[Tʜw|EK'G'C(X&tԬsbū"q`{M-2@@xNmfllhWiFg ˱4#z礕 v^ݮ Ks;Bn-iG?5>˞AEbǏ\9M4:e*:8Ft06!~B8J/nٟÝѠk]/-42@,>χ_v~).}1Z"c^=`rđ4292%aA _OĸE>D&9o5;Ϗc6.7W?w(ff*6瘪>gH'ҼSA4xR>LsBm٠ɤ\vKn`.Խryl!C$E03C-#xjɏ=R\Jh}6{;aK@95D) M/4Bb9-wޓ"l6 @mf;ඟ@KE.깃 ʠ$eܠ|[nf0ƑF !L8S5 ,Bp~5}: ⼥0w '?tw5hx a{A.< 6/rZuٜjĞOICj֟&v_#ݞ7}5щz}r])-BHm7ʼnt,DRq't^ÍPDI!΂6GRG+)i؞0_G;)8t4\Nh=5FI6;zX ꠣbe4V(ϤNޝ#DH%.aF~_SճwWD| k!{Ү朼na~7(F#DN"WƮb|F&Q:jKw>R(ʩO7nɉrAOt #!l'Ю_^d0eDz%59l%lpts0,zvyL WdWF31Mܙ}h)b?nƄ۟jMAh_:MvbGFg_FఴSkUPAsnk$=fg%^.c_^qb*)w1R.XCd.fw_Na bꁽ㟲Ğ}Rq"Cٌ\:9>m(u$fZC AXHv1)%Y~Y-j gvds hIBjBJ8k֗ O:N@+e_fe=]j[KkcH@Q2;Gae=i9uu֍Cxkf͜)2\RG`6HA-842*ͤ+wSK@:bux2{L^cBh+1Fa:?j\L N~MKzLHkUۈ@Z6vg=ogEX'E6si DC#ԹA_RM1OTXuǾÛQ2^}˵8-gry" (u2E6Dqnr|v.-mh|?PrܚVkSق9wiha>Il cJ4[,c Hqvo.dSڈB)P 0g%3$f-/RXb4o\@Vr|R-BB}Ihb'D6KT% &jt&>P &@{Yw[SL GJgdžgN6hq sem 3ḶJZrDa=m4s;EQ(ed=8Pϰ|U{[xhG%xܜ2>Ku@ԋa~6C,F3捝e!Ih#EFCut٪ C CgARf̼·)6sυFk:ICW1G_}]Cl>Z{Il6G U:Uշ:QvC0Qyx$0ڙLAUG?M\Jyf<՗:v4ɪE.6ȩ@7b|wQD># ^MnmonPJI+inGmNߖ?4@Uwڴ@{!13e@s7M lBA Y\X\ ~$Ǭ(sV>nR&SK K}UzO%r\jhAJ 6oqyuFU'm/ .I<B,m~wsMbG,ЩYD'{4`BCxlDQ Bﭒεdj5!)?{{PABq ( W֞Z @!<i9b\ t; ;Ȑٴ:}w]m *>f=[R;frC 1 o@:ngq~\yJ78>SVSc9)]Ioͷʱ6}ByT{TֻR:Q ñRiw_*9}{uaD!4QO]>ZɄdAM^L7Nӳ5՘$:mIkv 3Z+;cT2յ y jv0fQ`xp \ŜQ3+072Nȥ]"cvi,Xw*%duqfZ#S9ۥf}m!%]2'tN9/Uzo'%F6;CaxFOzgZ>P$xk_7(ku=>G̝ E=UppLng`~Yfe\;Xg5Hg. BB3s+XUbޜc DEqeT!) KSKhmuUL[6cφJ&gߑ-ŧг-TJ4? i=V,fPX+Eil0n~2i*<xJ ԇ*%whq%nnb$Y 0ZZlqkpĜcKڎlDQeRN v~umR%V,*Tmv(Ouٍ|D蝋PѡOrlo<24u<#?Abʶ eNBFb),Ȯ7I<AFۍ1[֣x=|nR&ڕفYrʏЈ8}H+%m{D7Y1N8&O"_Y lslz(f%CA4\0n"[[Bz٦YƦ%)w> { qeT 1tl,Y`kB 20@}Sǃ̞{=8T:5M: DI`X"d/_lދ:7y\8g[Yn5%@xҠ\p}('<Ҷf`WvFڱ)l#c>WuzHZ"h1]+k^@H|EO#t62&yiSLQhm#E|(^=XUXa=N9&,mԠ *v\[y6Miю` i] x1K6.Cs|=\vj_4[wZGf L  C.\\"ۅ$G^0KN' ݈@`tg{ ?Qn%.2&͕ƜP 諜%"8ێ).L5B٩eAlP DqI"=#zlh,+׶l_i-gZ<т.39657KȜ(-x%aOZi3Xnݍ c4:+)dߨ֧. ^D.]⼯CRAm?Շr~lELt$Th0F'L NR߉&EW 0m?^'ӓX IVlɸacVOD.ɄP`f6}fojo Fy`% mMYqp ]|wVmWmVy9# !wո({ JXyH.&21𩈁J NAk{" }^#gLLE2#0KUNu]7'iL&# +1ӍIJ{'Fg5cnQ0Icb'ζ )]E|,!$M0u;I&"Yߐ!FYlE)^^(OEY*F2o&8㎉\Ea .3 aKߨ.cJWa~rs^ {JI.WvZgEӿB<"~8TQO}8֧MΐlCyiEc8QCهTSs.VE̅B&!;ɟ =\WY:^HNMAFB+fƻ=RSYe.q 7$Yw@#aΉT2ZJ|; A/orծ Cv$T@+#6ly~}.߸xe h^$TQ%?&'.n:h(BRc$BQj͎3-N[$aa1ni|SPaϷR$ۿ۴ܻEgDy$+p.=h3r«[R..wϐHϡu;i/ J՝t|*[ deC5u^bC/e1%˃k@cX :kPowy+ #e'pkSo2gA6̎͡`9U7 (S}!.od A y`12"U /1ffUcp:/dOǎ\Iă|*L?Ҽ9CrL$qIK2Q Wζ2SZ6sY#C :"|PrQ n,X-rdcMԥO,M-)qYw}8e@0z`/L5UrF;Z7 6|㉬ɾ_kNnY|gz}YQXq8ЩA -,kxPmՁLr<ˆs, G twjG'R)n¸nr3o⇢mI&In\JQ7yEiίT"cTdısqF1:-3][ؔd햰|vf |~U׌B*c^]QdMo ,T+[@H HnkA~sn$2suI_$%9T$ƗUX:p{ o-5 S(L /?@QDsQg-Hr6i/";>kaLMNtf?@0 nKunbL"fc?^Qڝ}E vA^߃Tܚ5x Zy~<,Xj['}4%v3%nEI~V{݋$ZF4^ka^%,9ځsEEh׶D*HTtTȫe`m,vc7z3mx :WR;HdH}F&VC!1Wa!#LewVWrpgڀwk${)$#6V=Vd) N ָ5}b=t!)o儰uSciz6b:-43]_i11q THЊKQ]{ th3T9g;܉lY-ݏU4oa}8O^V" n_鱦3(ΡW(OxmV&Xt7QS6! ISql~T09`FHb&S4hG3]S8ߍB%KQ:Z_idնߗem&"jw|-H5PܔG?բyyɁ>YXmVd!Uf!ѧc_,G 3%FLAA.Wj?Ys4t4E n=oGK~:>ԵrVfHS#\߭[XE+AʋmcwYkh|ЕvُLu )t)Vc1A9GRam&0rZ幣PF}, ;a5e+z$I-q8ShI_W)ZGZrÆEϦpmrxRYI^+K2-Jeɧm+Qw"Kّ|*uKVe_^95jܵj`D'svTZ8cI;_gʉlNZ )nzlVMe:tz?+qú0\8f&P_m'JU53pݣtʁ[ $.Ȩ<ǎ=='+%8rAZ|RSa2]=SkU2g ''X2x=ju kgg{ˊ͊e_ g,WP3.}l¤YčqE[oa1w_ݤo~tJ ?{Ĥ&fD(Qnk*3X>KRgB&@ )ƦFv=LGǤޓu0gIDۏ \^Fh6|nnxAv= Qy"'V6xј w3|sz'P-Y U.,n.nI&zBgR>uȠ'C?9 5z-LAx>+_j8'1$i\5[`_#~\6?e=0h5;OkޣcVUɜ "b^O3r0]!‘oŘz"@HO帶2h@( !?V0OHqbD2{f|'!3?af$ K^J@$YmX*hƽ9a?,O< r2.p]'AoaG-Ƶyfx/-%Y#E[ ۉ[:'7x Q5y0^U(aCq'e_'.`ɿͧHyi~.w cyc t4A/\+hmԆwN4x ߴ! =G1bBlJnjgc\pmbmr)M6ZD1iU8bt[oKƿrTg0-ȏpY'lWzoR^ju-VWM{swڈ=gbdqd GS_*#.F,hpgD_:*o, C3& VuALkFBUC *;iݬh:}ᣂp%y3tz&wf沓< %?S\vVvI8Gz٪' 0&C@vq)>O~Im3BnrĈQya TD8b[YsyL8"cvnqk\z;rec!t9J1?'J~,n^|i\H 8$l&*k708Rh@#Pvⓚ@BO}RTX l%WgE ]m:ke2m3,G[< [_;v2@1"V7X_}Ħaޣj &֐*')crPnY3mzY&%%`d=fFӲ'8IOI(m&ff-s7Wʋ3L9P{rszZ55`WA1J;-)6Jsh/@[hv_|9<2{P^K#\תu2mT7TTY׻fq9A?7Ze>KWce{}Bf0Gx9)fBYSháq 7}v\ | 0Nv90=. B_q~h'hOFMKW(:S r` ,,(:-+~_M x1 u|kE1bA X15 2fam N|M..m9= )\ZNO+cÙ3IFᰒ\Shr膲˿u BOFTjNn|s#fW4Cϙd"Mr"\R[&@T8[miObVڟ;VB ]w6OVA F1ZYBΜڢns/둖$~n#cNإE9s'Z0,_ٞ'd8(kTϕ9:2 2rkqgn#w&"\i9n@DzF<[S&ҽP+ Fɼ^~9> zG5e|օ$d^b&Wf9X;/ßH9q^冠a@~tz@]UP;_—r|T &o(m7)1J4/۶ ysR+_jԻٵ] 0!R?RJ ]k s?R%M$cF* KZp=RH`boD|M0fnֵ1)ݻM.)WӾ kñRxI~b ~X9it≱ɤ~\=ےN0Q @]S(="C k%, ᚓv/R?DCLХR2b"~RoZ2$ .Dw$m2x|O&?zK{T1ǟ;Rg[95FZ]+jf͸`Qx#o=G47%lT$-Ǽ73Ne,EE-:ͽ5ޭИЭB)ym@5\L[~ɾ!r&-8_JûYs.bV1> _C]Y?syEXDx#K[ 0a&S:wSGmǘ,:Aep`T" =oRG)EGg I̥h'Yjj]X*tPFUg1mXu KP:2M?}+Z4gD%ݿ!3#>,&730o~vtQur{&)O|ESHY OCR p9`DTxAq\ >_h񐕰X%T/ V%A+H5Cu1Y rPZM?w^;V2su~w?1]Jw=M -N8l6㳹_9PY-Du?Y>zrl;wUMu[6vu:!My⏇k7="pp \T1fxWhQPh<ID3H?@:7\:ϳѐ.pAARLKU`K{ 7rV]^5Zh.pHQǗW X F"MW$A"=ɼ|)DR-@7w8 RKMձ7wt;&>l/+ |37v4"A7zS21m.ؽXPBX{(+8g[6%$1LZH{ho L )IKPec[0b^9rCk^$x?wME˽œYW8r4!G2Z qLVݔwu:E@S G~ZiD-u3T+le#i^LLH ,t- 2 &us)xǯfo"8 *SvzvCye([iDL\T?dY4%K@np(չX/S2۬*o:P*Go!ﳬ ƷtfVs|큉պf%aCK@ZC,65KEVi":2dQKl#Xۃ0-JE (p+kE!RPi,q:yFlӓ,ԭPS&j=3ٽp AYv٢N(<9D @3:b_ SMK̝PNc}/4@Z '2eh'}G7;FB` J}V?Aߣd-wY̊ק;5iaYAՆojg*rFIوBX<"Bd^Kyגʣ:q7Npc+*Myz)RkBŅvpf[ biYbm(&"-Cp,cبR=+ۡl(I;L۝Cxk6b|TOQnFF+]Ri/UFTrsw&&`A)c!kY c/([YCsŲ`m'WvaݫCJOGڬMVPM*t" iMWN7la| '48k`$($#w;Ff3yP<ᖓ<HsAZ'ĒAi]ܱlN\V(iu{ Үbg9[/խDs`X0h;HߜN݅z9w7 i7w~&87Ƒ¨vwk)[r%TkuӁ[s[jY, :|*j@nCk2L;y5r h+GM-iB.n[h&E&_ hskuhL-ђa|R8_wɊKۆ>چ\x\NၺXX5!V6z3ef-X)0|>q释1jFb56t Sedi44cU7'Ц\a'+M`Hp"릵%-M}+ HWIIbYh\џ4 gu= ~ծiKtgDNNc񁉢ey8X'cp}4Ha2UDl܉Җ` )+v!A ^zoOɉh>1"j$E,DMѐHENʐЭ~2]V^Y}Ǧ΍;Ox6OQ)!$"pxn;*T~_SM%Zdkk曑2\V۶ByKiO+mdx3:1$$&RB(˨7}n/OaP:+fFEegB&P; ~\yĹ|6L[J螓!݊W~>tsLCNYe] 2_\ms#XX/=.q5l,sa 00=Mv/U KN]CwFcQDCl\7vHSVQ`ֿ ([ʇEB&0wf!(0W$m+ J/Ǟp1HA^2bƓeժZ^Ҡp( ƪ1 +j/RpTI1b.[߂P6b6FN`KL g/)lfYbt.w.o񇻏,]G#v TЄ# fKMٳY&N2gV"_\jo$4?ā5GEdOFXd`@vN^>੃pZCIXSi*_ /(IWʭӜX5oDϰU*0xXG4S_!8:ژWJ>Kgt_ quϢ;1\f$XlWA0Dxk6!6+ކE.MDlAl&U` ,-/.TXLzˋR2$ꚉLesXy}'ۈm ?Ǭ5MB4d`.Iáԛ$(7T_9?ps;q@fKt}۷1~0mLt5v+ q}tsMYιRwl*+p~; NYb;1ĨAȔYv K+g؀XdALOЁx1J;FTA}+"Pt`Dž89'8khdGys q$LWN7)Q@FGRқ]*qK{%>AчU& ~`vݜ'%J¿zf&VU ) 1:v( loQjyo/]\S0p8HdDyK[LD>A<1, .jD?:?XEeɼH\t ῨsA|͙,sgűњ( ޹6%exW?x)LM?|~~gP(BbB%v6i:ou=?Q:nxHhdO9: aE9@括t!wP*k]ʶTɨ_dp>YY% ;x]:>;{hG+I &0PW.j0bOW}gfdKR ?.>֧\ tz@*atg? wn}7x C1"G߇a h;:t)ćLp©^ !dA4^f.*Ye;/6R*'1~E }qܖN<7~:㺟\MoBI9qDz>k3HL9cpƑ&:>.MSNbm{] l `9`JJGi$KSI-Bg˖6=0SX[hbjkZT 5l$r(-MnJC:t/[>"dҴU KUQL_ETR;P}ږdtI?i0ԉVn8'D@~pvXI`6nlDU>-q?(1m4cޣ${0ˢNط[]rm!xB s9FsKO~Y0]ّT \z'51h in8mUJ@aFe)ӧ +EY'.4&~bOe!Hr"btdZ9a?^Bx?[9-Z.)U3˴fyFp p;;8}Po9ָ)9w.N-R^wRzQk8?kƋ+/h! Ľ6 Y `'|3&|EYU1h,YPOEeB᥈pT mkx L,VެW~1(%XϗẐűk9p]?ۖXFVުNÈR5T4 v:Ua*[Vk? Ƞ' U%L \؎m㞧*1 _ueߣt839p62hpB@6"\ևvf[.pvbٟHa/\dd9arYvQ$3:I_r? :^#@_(KtumZ#u=S{bR' "[D_a4٠ßu<6S hlۊ.c=kjך;Nv }a-KYvb3x@8uU/+SQA;H'#T2Q)x $n $ D`Qc7z$wĔ l$0!I&{{$IBYb,&+w-pSse(;q ,="q!?H0EpE ?v<~!}|$B.FT ԑ0tjxL.;I<_MC@'t'!#9-;霸AT2b eSm@s6HSUX_W[k36رJThp?媒m cZr"+t0(ē5tzYl95^J@?apa̬Fy<1/G;6`k: F Xi$FJ?s #K?-HT}oԦc#El/bDy}X ?oJbQTx8W6T%שt%pKfRJ%tڗgܑ#p`A?9hBW~=);k~~!;%x }=a}N kkv^.P)XB&"WByK;zh 7w_jb'@{8PvKW!vk}ng1 .IT4H"lf邺l:+%TR==Cg~~wUZU^lK_OOdrK$,]'\sS[-[4Wh9Zn{il7!)|HJh$='ՐT]'>3UV )[!}tRE G.aq qTMJ|Q"a&F\Qs}\Q"wFo |k`PXg ^* rL2Ҡ7Hv)nܴ9F 3A B+1sڰ5hVJޡT$,UVc%W+:(?rO]t\&_L4:uO@&PN] CNQ #-Skoڈ[LPBBWۻޒ8BjcɟTwL5Qѫ)_;I}\T\1,AQYx\K5pܒ ZL~2tʹ9DgvwʘQYSTsAk_sDf;R?uͻ!F Rsfʪð(yR=KyzxMutI c+wS yjP?*2췩a\j CxOo+#}o@ֈ#QPhiT_ SRz!M'[T+(u6pD+CW2\1hJL-Ԍ4Çೄ:'׽'Ph7AXZSvkw貾 + ܟf?Q"1E2(柝Hdxs-(yI+:u7ǽQ~U'2|)AG8\?ee%go;$y}+S_]# 8Ϭ1l37!r:ựQ82, ۰7Rh2qcEwziNqۿ<}]^eieYgMg ءVOY5:kE<2}T׆DExU΅>3/?¿=H!C9a5%U5;nyQW|mzhY[ ;.qK7U\OMCV VVFeVw!eKX5)ˈfrwqKB:Mۍ7{=asjFIjx4ֶ *; hC``jZ=7εKpT UUBM#`|Uaeyvo鬧9Q3, "Mwdrk:'''{3 VlA% ΛR]f0;8PZ4?*@=k~飝$ -~7us$BAXa\k{CB23}`,B_2Ыծ?5?"`>I/u2UG,X>2J+:I3ɰm jʓGq:G P;vvX3%%@ۮ?ıےx=˞8fK* (Zt+J iBx`/G*Mn7Tv*U@D6xvm3 WӅsUgbP7eO#WDJ}1sBp"=f< ˜$Xj,@nS-u=}"$ې#+nJV;ne+#g:2?WГJ4P`#ïTAfG@u`&!8cz-$@E:k]eܸw53?P]}BCLԸq'; E͚k/-`y<-{"90M_։7[ Cwt wNƖ_H֠1S?^}̱BOY6]tlY_.q$gz7< AAUS{E=_sYaɩ'bZퟔ ' )0G 1a=n??ZOeeiGD=T:m]Kk@58K%d_< 긘oԔ*&蟲~ZcQQaM|ǘp?q7o ABs2E3B($)  Q|Ө,o-WqtI4I}eÍN-mT#rY-,{Yy5$4 !j n&0hK$S[%K!v<\#ARRDP z4&WزM\n1- aLR JcE"$E+^^Foՠܒ'[:893T}(ދ?|yE_9taMTw>^RX;+wmTN~"| OVX쌐4>9k?.<1V3MU^wVHb)xl|ܸn9LWzⷧ(0b/f7|$tYyNvt942l\Ћ jjF=qGfvO[DK \^l< 5{5זc*0K}' SԅU4^~G'ї=595 L{,K;.?[Vk$I["=2v4VpXSgJ$k$dte!͍>ga8]*)ki @ԇ 6~G7BRu\@@ }F .!%1*n7a3d8?f)k@<|m@Cڕ u"Tcx,sTBQᩬ[OdU?,1WI ~\*^z*ʥ K75-L /7 n̚獙We؄YP~kwy R&KAiSիQ:fϠ noPH; g9>h01nCPaʂlOL 9z_ʵc3:i358Ѵ6DATϖi'$9yy(ܷ^|F B+.m>^?Z8}'ED+!k(qӻ-g, Gdپ\a g\RhBĎך+_VḰ @$T'$TrPac!N1vdA?%jt3uX]*חcUb[m4b.z :à?l{ż!HK!jarnKzrcKA |XIds(!Jh}%xyLy)N @TW(/x9SIw;+iDt4]g7qDj J\plY}#I,]%|P"AƜk)*MZMņ6=Yh-KG÷Z7T~AUѯ+7໻~;mqpI0@mY~G%n&P0k G2IBL$ҕ؋x-O'~;@DaH8C @$ሞS (wQp c9e{'g0A:?WT~N5F6Qp7pRPm=DQtgXjO:7B?o gm ߂6RRcXdWFnv^0<#*ђ2@#HRk\Uhas]/'tN Mbnu\9_NTC<=hIH1>|?]!S}9 *R"*OJCʖMw53Wp/ڈ0ȥ"~$r.Zp9@ݎQ:&/T{xFgfʕbH[mȣiJuqmͣ8Li9dUy}r>(QZLv>666,`O[Ə&i͵3{9"1*:xqg+aS9ww/J6Ҟz\(ۡZS`| vIXy:gGǩI'%͹5NI{zUdj@)YMC3w|3!0ֶe? t:5hY $S'D A1ю'0_}ŸkaVy_a*&%1ew \6ݭ*q~DKxBԓŨ\Q)%daZxh d'r(-,$JIe9=2Ex+E̫b2-TCͻ6gr*rTlƧD53rbasG0Rn.AKFl#qjʑ@*o<2m,!ӥhMo3Og0 -Z:m2o6p Yrb3K1 k`W|f`_QHi?oNsD$GCWJh^"J`= 7i(ҾZZ{8)G=v*Wf)+Z8tvI!"͙wF/j@kC;I~b6u?`B>j*_ Jw%pl: ySN *=ݒƄ&D0Lu~p-/w X"/ײSkwIkfp^hp3{) !Q% )ձD؃G?,v҉K@o%P ^2r߇ʶv/aǴl5|||ͬ\I+=8?~-'c d[YqSl/507)7ŚU;ߑIq܁z~:$_q CF33.1lb IͶ`^/p\c^WxPvyEl茀4]W9ֆ Gt\/#!-5.<8?94/$-pG>o';|FlwXNN0&߲CvӲK̡b(9;/N_C5]{Yϖm\B&S7ːS{UYBN!mzIvoxVi9!hRӪzrgh.dm^Z[̧7phtQd5[}Mc3k6Jss햲/sIK>+uR=#_DN&u$5d.⇛AsCYwA{ AWBQ#$1qr/8!4CVߋ|ds Vi@5^U4Ǥu!%偃7_c/νbKĒeuG?:$qAG{/V-;^@$R x~ %r{^A-MU1|muQ A5giII&a !~*9^X%{򄨩$w;n}A/*ut:zS~# l`1og`$env`1DTOq};0c |BV=YˬEI !v.~Y&,[35ƹNMdֹa5MqEfP*,~s;۵:n CJF"h/Oۛ%IwzCQ87:~QITl˄<^yƛ~p|Qn}F WDИDŽpEِɝFf#O<1M ݘ*qcE<z8ހD8-Amz TC N&k؋@Ko[cw^1 :F+鐎m=ѷtL50@O3=D;BJLz>!87k&Bi$+Fio >k;c1 9C@.m/puQ*]gFPW$*s,ˈp=F?t52]I8;84 ?Bs04LC¼Eaak="&Dxb[3/ՐLqC endstream endobj 727 0 obj 39747 endobj 708 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./illustrations/faust-diagram5.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 728 0 R /BBox [0 0 283 425] /Resources << /Font << /F1 729 0 R>> /ProcSet [ /PDF ] >> /Length 6941 /Filter /FlateDecode >> stream x[,r7C= pd~.~dX/*okv391\*Qwx#J~Ӆ \蛸C}J󰟐;災~tQ=b=ų|4HKxZ5߾K-b?wAy[/Jx^C^ԡ<"HCNBQ䙨S5uQA糞ung]x2Zeӡ8K;dbbΎz ٵhZA2-3Wn4E*-0ڐI-;H&V#¸j@1RJ0JBϧ(QTI3]zы" YXeV5fa YIX`Nn*L*MH]$3HĄ"I<DHJ>%RLLC-|܈#zWr6eCհySqB\Zko@m/78WSDLt9$b@/1D"2]ۈDN&ňE ,TbB,5RM3Q Yh!Ru1t`tYD^y\HwVgɟV| 72 kIX'v0'71?х$ -1TL'/1-L6q#GL{2Sqh窕:3nDpfZ>xq)nٹn\oZƝUS޹Fn۹`"asoo&a,3 Yde9"l"gd+ Yٹ5(EZ Y,JE1*Ȣ* YTcJS+ 95aMDKLhI$p4%u~B_/b`\DD<(&3 Xz{G40gk Ɨܳn!6Z/61(MNil|,7MBlRؤDlRؤBlRX 6g[tL\l.6YMWb 튫Mы]ĦŮdbSl.6UMjĦMW]lNNDՋNkV t4(ѐ84PvE^mIVc:*TUa6TQ5dZ.6ZM (&r1hY bIrW"Ib0\lR%6.6&Ƹfbc]aYͳf; z񔺫0kCuD̻>?0tOw~jS ْT^N|~SrJxvɅ|ɉxBlrvBLl,],b&b8M$W)\lb%v\l.6bzBl4ب^TT##Ft$]tDE'4P/:!`z t5"mh3-2mt hoVc6Z#ѪFk@6ZтglFx)JJdzSW`W|3,c"gX1;rqqBv-a!Ϡϰx_] e3,uzLl.6F3(4kPx䋜x%6.6P.6!W؄3:cTeyQT0ߵDw-2gelzUja6k7p M +O.:˖bz)1X"6WbBt,*IbU$a6ذY/I<$cvp☑04 K"P91k*ê 7Ygۜڜb8mYms6o23359ԗ*+GKuh0Cun P̏hY1ۏ_B)' U mE DBP󊵄"P~xP pVi Q(kB/Ⱥ+ e[|y Aj86M>fZv$7g:oHz"qPN<DD {/f iH$}|I)}LꜫֿIb|/޿k$I8yt^WF 8 kX;:Xtka/oU o1}K-݅nuN>*?z>hlo.)aǢhC%<6ED31Yi݇^2?KPVA+#HbEx-t&7+2~xcb;!Dy)2 B.Њ/Ɂg]gdfv^r :kB,9L-?KQB@ q?yuk^y`Q=F.3PH cH/Ȕ\FthGfٸXޒK>H;D6+? tW~*}\ׯdq?NV|@S ^G'FGg:t}=^}.\L:m-@8(:m4giL*2Rq_7+qC͡?u' TJVrqggu!_#sԗvQOGHqvvH(D?|^K5r*33UES=_+?}^ eߥ:W.qvs/Yc}+fݨTdV=%!Iaw#'ZTy;FQIaO=ɂ1e7,g}{rnt{渉up}!v} y][9n\pWW+Ǔ0<_xܼ0][p72 _w$|vI?tYioQ`kP~o $KH T|j#/B}]xCqe-}1v"ۗl/O b侒xh{F%JKkK)R$JEXiRy33ep_})pSOWg_}d\g_}@%å~OyVG~Oy_(wU*wPK2Ck%&AP͠-S[F%puTv H0*^Kh@DD D  Rh@O0*1MBԘ$s ]ǀ$0$AH,L"VH$Rd)!DMI$, Å}]G$a9YFVAYs`YDLbO*3=Iw$J@N%&UĞ&QI$*\fZDmiOJĞ=1=|(*Mk@OCtH$FHL DDG5"gUp+ELwH5 ȩ&⤾dYhEژ/nTfk2Y$|kJ"HY,,0 daO/;1'v$r@`z;6nSSc"r~xMpf;ã0ܲs*v.~UbaY2>6$Ȋ$rdِDL"CYsc%\ŪDDTI$Je!J^U$Q#$j戩IƜ ̩U1DL5$1*a`zXA?1^v+Ȩ_PF Xz*>V~bpFlZF~%61\lM&&Q=C?bbu4&aRؤJl,\lLEQW?_kNND'_^kC:\tr*Sx)/:^{]tj :U/:5jNFlZ5%6^#߈MVMkF2Gn93Ce6"K[WC6*ٌ0 Uevv1;U̻Wm&&*brJS 7 KzsoweT/60uKWT+;QPZ|FZhSj N7pvq)٨+77Ν Ow~xHl"-bLN SOF'.6,1b'#\t$P/:`N+ָԒ14t3NfWoorZγ1 Qa_])acߐ{QbS#Kr#6^r&6.v9evJl,_l|פMj.)dMҋM &M,&+"޷/rQM mFF3tHl˦JF |D$^lD\gsP.6! 1biѵd%ri4A*-0ZI-FSM *@j@2RF1Q(, 8rE͆,rbRYEfa YXe0ȯ]1x8Wmf?<+[UYE@(|1pXS&:kbMTeNZi ^kW=m $l:jcJǰtYEյ0Ϸk9pZ8/[m~e1 +3rLP_SURW 8Ȭ :`Ǵ7NA}Bݗgn̾XOY0{s?V&9ܘ7_x{;!st sC]63>%wbНK4Hk K67<\h>s68H..%c7WzJimXXz""EOsõOY+QPUj_,G"b~o%HIɾ+(/EFv?jlC56c{qa,ܪ-pht ?Bb$1@*; $;,11|b-6ZVGdscDQ$iȐ%DEVЀ[!ޗǰf᎓Eޏюw{<"VEb z>z7FMbW(Ux;i endstream endobj 728 0 obj << /Creator /Producer /CreationDate (D:20050329205041+02'00') >> endobj 729 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier10PitchBT-Roman /ToUnicode 730 0 R /FirstChar 0 /LastChar 255 /Widths [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 0 602 602 602 602 0 602 602 602 602 602 602 602 602 0 602 0 602 602 602 602 602 602 602 602 0 602 602 0 602 602 602 602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 602 0 0 0 0 602 602 602 602 0 0 0 0 0 602 0 0 0 602 0 0 602 602 602 602 0 0 0 0] /FontDescriptor 731 0 R >> endobj 730 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 732 0 obj << /Length 733 0 R /Filter /FlateDecode /Length1 1493 /Length2 38721 /Length3 0 >> stream xct].vVl6WlcvرӱmwlN:fǺ9}~qkΪjV.sWcg +3scS?fn/+~+WPw!9Z[K3 +gWK @lo?.n&/tu2W\s/>+~!]c g _ eVp2r1MiԬ__yc//h h0v7>ۯ:,]`QLQ_t/9X̬GKɹi!^\4_H#u]M]ݾTp?o O, +gWߚ4W-\\_j~팿Z+:,,_}icnOKۛ;xcK4L_Gj hz*fk`l/ה8XJV_c;+[ޚVpp3viW㯮j+ڴr U{7̀ζV@%fj_M?S`aMDA᫥K  =ͣ'@_+*no`feoՈ_il6'dpsp7 u{+'7k6usv߶Jͭj zMqG g1ҥ6_r|WDtlN;OM2v5x¯-+hs^1\=k(ٺm:TuQ)0oKXa5APCR-^>coBeJqVzo7oN=:~~7I"!};/ݼӓAN|^h8̦]BwQ*AA-=As=[D Y^&pqݺ2rPf/m1}߁* iCkl39{;Nj#מ%Pёy 42y$0"l[I0tUu^=zOn&{8\BV/x$m;UoY~\*x{q!҅q(~:!=s:M\{m S:u_[KڅPI"%-SOCjv +;yAu9/$8z!R|շSK:D"ӏEOҍey 3֪/I~=tZ\ov^n1xѴg<hŃZ 9 AhW{&; +|=19@*|,v *+ֿ#J|)EAm .K;U]L$M2Nm|SH>c`%b$B*t^*·;* x#Mx2&bTj_bBѮzqEOK:j Nkx'YEd?Oyջӡz:NBYWlLoiètus[Ta-p 13>=pg;gP@| kMCq(gB YEE>'Us$q|I$MhouP|[{A~ZPއ"D7?m1{%P~SCDݍŃ !*4ytVNF)U\w o嗜ߔX-?PlTeh|(ޜ;Zf(uX)átFT?:.G#FOt޸1]&4 e 105$C1!6lxEi6/wږocmcn%+!!:JXNonuS^qg2$ gtHa5R1 5 k Ι{Pd 6L0$7[tvԕ P/'LHz`׿oTge͟㚛2# Dۄtj} =h vⲘgz?g^!Y0a"H0Oz 5Zt Ih-Y6(]} *ֱqr@2 }CU,+[xmaϾ!p־2 $8WQ"?޻9a[#Rdk\ha(rՙAL|LUDrUWry^Gv'>\+)iI=Ismv^AiT CQQGc7yKڟ~`g|^mAmQǚF3HMaiD3#qLcX]NjH\&A:2(?4DW^McrD~?Y,(U'/W%g`e1Xwy}QRa_A0/VCdAt]SE 8LX3v20m~/ǨrZ0<"=u|P3Cz 寧bD<iIwR&^V|}a~~-Yros;(߰NA,ߑ@W5K! WFhe`i*l(BOI\V5~9c q/5!$.VGS\F)LHSQXTv&Qb>ѳb7^jy/\Ÿ L)"ѵpH얷1[BKYֈSRt9PϓJ6O_Bўrxo=]o253k\nو~Pacc(_"IFlzEIETVPR]CٛhrF3BH8mA43 A-ЉmStm0z4ÍcD~Jc+Lp ڏA n7M3j,fu0Ym\F\/g&܌(7rJ6H~T$ˊ׾[5͝ӫ^ &?0ᴝF෢dlU%P5p6){WZao 3a@¬ipvy[LYvtg(hګ补"w致 t]D ]q@wXXqtd~0l\'\V7͑L79#IN&^fUO˔FNT%K Z Hh :JbŦ,mw%Eg؀Ma9v,L s%q3|>3#vDžz՞[͂}dLХ; +ᕃ!4TEFʻ?)ߖ34Y{$#Nƌkkhq]k~e $#Kl"mmGXߓ c%0ۭ7 S\8FmH=Edޘ0ftȠ.fW\MPBW~\MRJIt"JTs"ai>'&FGKr$vd2Sb[uu`1q'x-Re1q>{&μ6jUzRIM3LNq*O gJ|dI*qN[~C2i: p8 Cm qvn_^5N7oTJ0~z멛mt}VJZȵjQYt%ZtD&\VBVEwy&CX2E,>zgGh?ÜT7h/[r $yk"'/D1)AQۅQK>N/NilY:c+= D/46 TfkQ;kzs@e3t#xl. DR+_*NnVl#겵3v]%&˽t' ^g GZq(g0o0z{h9xAE)9\l*HG&8UZlUjƩ2H&pYӈ'hb !IOu{P#G3ѝz|,9v tDaPcC~Mm8ATY%%c )f~(<KA#S14AiqQS1#! j~HR# PXf` lHV3(Xjtи591 Y-l3gs1 ŹWn ! %xp}OUTYV<*ETwGe@A\x].}m:h3±hz++vLN%@|A>4YNgYFbO ){+P &ƨH;۞ysY~f3s,7f2<3"zxp)d[Tʜw|EK'G'C(X&tԬsbū"q`{M-2@@xNmfllhWiFg ˱4#z礕 v^ݮ Ks;Bn-iG?5>˞AEbǏ\9M4:e*:8Ft06!~B8J/nٟÝѠk]/-42@,>χ_v~).}1Z"c^=`rđ4292%aA _OĸE>D&9o5;Ϗc6.7W?w(ff*6瘪>gH'ҼSA4xR>LsBm٠ɤ\vKn`.Խryl!C$E03C-#xjɏ=R\Jh}6{;aK@95D) M/4Bb9-wޓ"l6 @mf;ඟ@KE.깃 ʠ$eܠ|[nf0ƑF !L8S5 ,Bp~5}: ⼥0w '?tw5hx a{A.< 6/rZuٜjĞOICj֟&v_#ݞ7}5щz}r])-BHm7ʼnt,DRq't^ÍPDI!΂6GRG+)i؞0_G;)8t4\Nh=5FI6;zX ꠣbe4V(ϤNޝ#DH%.aF~_SճwWD| k!{Ү朼na~7(F#DN"WƮb|F&Q:jKw>R(ʩO7nɉrAOt #!l'Ю_^d0eDz%59l%lpts0,zvyL WdWF31Mܙ}h)b?nƄ۟jMAh_:MvbGFg_FఴSkUPAsnk$=fg%^.c_^qb*)w1R.XCd.fw_Na bꁽ㟲Ğ}Rq"Cٌ\:9>m(u$fZC AXHv1)%Y~Y-j gvds hIBjBJ8k֗ O:N@+e_fe=]j[KkcH@Q2;Gae=i9uu֍Cxkf͜)2\RG`6HA-842*ͤ+wSK@:bux2{L^cBh+1Fa:?j\L N~MKzLHkUۈ@Z6vg=ogEX'E6si DC#ԹA_RM1OTXuǾÛQ2^}˵8-gry" (u2E6Dqnr|v.-mh|?PrܚVkSق9wiha>Il cJ4[,c Hqvo.dSڈB)P 0g%3$f-/RXb4o\@Vr|R-BB}Ihb'D6KT% &jt&>P &@{Yw[SL GJgdžgN6hq sem 3ḶJZrDa=m4s;EQ(ed=8Pϰ|U{[xhG%xܜ2>Ku@ԋa~6C,F3捝e!Ih#EFCut٪ C CgARf̼·)6sυFk:ICW1G_}]Cl>Z{Il6G U:Uշ:QvC0Qyx$0ڙLAUG?M\Jyf<՗:v4ɪE.6ȩ@7b|wQD># ^MnmonPJI+inGmNߖ?4@Uwڴ@{!13e@s7M lBA Y\X\ ~$Ǭ(sV>nR&SK K}UzO%r\jhAJ 6oqyuFU'm/ .I<B,m~wsMbG,ЩYD'{4`BCxlDQ Bﭒεdj5!)?{{PABq ( W֞Z @!<i9b\ t; ;Ȑٴ:}w]m *>f=[R;frC 1 o@:ngq~\yJ78>SVSc9)]Ioͷʱ6}ByT{TֻR:Q ñRiw_*9}{uaD!4QO]>ZɄdAM^L7Nӳ5՘$:mIkv 3Z+;cT2յ y jv0fQ`xp \ŜQ3+072Nȥ]"cvi,Xw*%duqfZ#S9ۥf}m!%]2'tN9/Uzo'%F6;CaxFOzgZ>P$xk_7(ku=>G̝ E=UppLng`~Yfe\;Xg5Hg. BB3s+XUbޜc DEqeT!) KSKhmuUL[6cφJ&gߑ-ŧг-TJ4? i=V,fPX+Eil0n~2i*<xJ ԇ*%whq%nnb$Y 0ZZlqkpĜcKڎlDQeRN v~umR%V,*Tmv(Ouٍ|D蝋PѡOrlo<24u<#?Abʶ eNBFb),Ȯ7I<AFۍ1[֣x=|nR&ڕفYrʏЈ8}H+%m{D7Y1N8&O"_Y lslz(f%CA4\0n"[[Bz٦YƦ%)w> { qeT 1tl,Y`kB 20@}Sǃ̞{=8T:5M: DI`X"d/_lދ:7y\8g[Yn5%@xҠ\p}('<Ҷf`WvFڱ)l#c>WuzHZ"h1]+k^@H|EO#t62&yiSLQhm#E|(^=XUXa=N9&,mԠ *v\[y6Miю` i] x1K6.Cs|=\vj_4[wZGf L  C.\\"ۅ$G^0KN' ݈@`tg{ ?Qn%.2&͕ƜP 諜%"8ێ).L5B٩eAlP DqI"=#zlh,+׶l_i-gZ<т.39657KȜ(-x%aOZi3Xnݍ c4:+)dߨ֧. ^D.]⼯CRAm?Շr~lELt$Th0F'L NR߉&EW 0m?^'ӓX IVlɸacVOD.ɄP`f6}fojo Fy`% mMYqp ]|wVmWmVy9# !wո({ JXyH.&21𩈁J NAk{" }^#gLLE2#0KUNu]7'iL&# +1ӍIJ{'Fg5cnQ0Icb'ζ )]E|,!$M0u;I&"Yߐ!FYlE)^^(OEY*F2o&8㎉\Ea .3 aKߨ.cJWa~rs^ {JI.WvZgEӿB<"~8TQO}8֧MΐlCyiEc8QCهTSs.VE̅B&!;ɟ =\WY:^HNMAFB+fƻ=RSYe.q 7$Yw@#aΉT2ZJ|; A/orծ Cv$T@+#6ly~}.߸xe h^$TQ%?&'.n:h(BRc$BQj͎3-N[$aa1ni|SPaϷR$ۿ۴ܻEgDy$+p.=h3r«[R..wϐHϡu;i/ J՝t|*[ deC5u^bC/e1%˃k@cX :kPowy+ #e'pkSo2gA6̎͡`9U7 (S}!.od A y`12"U /1ffUcp:/dOǎ\Iă|*L?Ҽ9CrL$qIK2Q Wζ2SZ6sY#C :"|PrQ n,X-rdcMԥO,M-)qYw}8e@0z`/L5UrF;Z7 6|㉬ɾ_kNnY|gz}YQXq8ЩA -,kxPmՁLr<ˆs, G twjG'R)n¸nr3o⇢mI&In\JQ7yEiίT"cTdısqF1:-3][ؔd햰|vf |~U׌B*c^]QdMo ,T+[@H HnkA~sn$2suI_$%9T$ƗUX:p{ o-5 S(L /?@QDsQg-Hr6i/";>kaLMNtf?@0 nKunbL"fc?^Qڝ}E vA^߃Tܚ5x Zy~<,Xj['}4%v3%nEI~V{݋$ZF4^ka^%,9ځsEEh׶D*HTtTȫe`m,vc7z3mx :WR;HdH}F&VC!1Wa!#LewVWrpgڀwk${)$#6V=Vd) N ָ5}b=t!)o儰uSciz6b:-43]_i11q THЊKQ]{ th3T9g;܉lY-ݏU4oa}8O^V" n_鱦3(ΡW(OxmV&Xt7QS6! ISql~T09`FHb&S4hG3]S8ߍB%KQ:Z_idնߗem&"jw|-H5PܔG?բyyɁ>YXmVd!Uf!ѧc_,G 3%FLAA.Wj?Ys4t4E n=oGK~:>ԵrVfHS#\߭[XE+AʋmcwYkh|ЕvُLu )t)Vc1A9GRam&0rZ幣PF}, ;a5e+z$I-q8ShI_W)ZGZrÆEϦpmrxRYI^+K2-Jeɧm+Qw"Kّ|*uKVe_^95jܵj`D'svTZ8cI;_gʉlNZ )nzlVMe:tz?+qú0\8f&P_m'JU53pݣtʁ[ $.Ȩ<ǎ=='+%8rAZ|RSa2]=SkU2g ''X2x=ju kgg{ˊ͊e_ g,WP3.}l¤YčqE[oa1w_ݤo~tJ ?{Ĥ&fD(Qnk*3X>KRgB&@ )ƦFv=LGǤޓu0gIDۏ \^Fh6|nnxAv= Qy"'V6xј w3|sz'P-Y U.,n.nI&zBgR>uȠ'C?9 5z-LAx>+_j8'1$i\5[`_#~\6?e=0h5;OkޣcVUɜ "b^O3r0]!‘oŘz"@HO帶2h@( !?V0OHqbD2{f|'!3?af$ K^J@$YmX*hƽ9a?,O< r2.p]'AoaG-Ƶyfx/-%Y#E[ ۉ[:'7x Q5y0^U(aCq'e_'.`ɿͧHyi~.w cyc t4A/\+hmԆwN4x ߴ! =G1bBlJnjgc\pmbmr)M6ZD1iU8bt[oKƿrTg0-ȏpY'lWzoR^ju-VWM{swڈ=gbdqd GS_*#.F,hpgD_:*o, C3& VuALkFBUC *;iݬh:}ᣂp%y3tz&wf沓< %?S\vVvI8Gz٪' 0&C@vq)>O~Im3BnrĈQya TD8b[YsyL8"cvnqk\z;rec!t9J1?'J~,n^|i\H 8$l&*k708Rh@#Pvⓚ@BO}RTX l%WgE ]m:ke2m3,G[< [_;v2@1"V7X_}Ħaޣj &֐*')crPnY3mzY&%%`d=fFӲ'8IOI(m&ff-s7Wʋ3L9P{rszZ55`WA1J;-)6Jsh/@[hv_|9<2{P^K#\תu2mT7TTY׻fq9A?7Ze>KWce{}Bf0Gx9)fBYSháq 7}v\ | 0Nv90=. B_q~h'hOFMKW(:S r` ,,(:-+~_M x1 u|kE1bA X15 2fam N|M..m9= )\ZNO+cÙ3IFᰒ\Shr膲˿u BOFTjNn|s#fW4Cϙd"Mr"\R[&@T8[miObVڟ;VB ]w6OVA F1ZYBΜڢns/둖$~n#cNإE9s'Z0,_ٞ'd8(kTϕ9:2 2rkqgn#w&"\i9n@DzF<[S&ҽP+ Fɼ^~9> zG5e|օ$d^b&Wf9X;/ßH9q^冠a@~tz@]UP;_—r|T &o(m7)1J4/۶ ysR+_jԻٵ] 0!R?RJ ]k s?R%M$cF* KZp=RH`boD|M0fnֵ1)ݻM.)WӾ kñRxI~b ~X9it≱ɤ~\=ےN0Q @]S(="C k%, ᚓv/R?DCLХR2b"~RoZ2$ .Dw$m2x|O&?zK{T1ǟ;Rg[95FZ]+jf͸`Qx#o=G47%lT$-Ǽ73Ne,EE-:ͽ5ޭИЭB)ym@5\L[~ɾ!r&-8_JûYs.bV1> _C]Y?syEXDx#K[ 0a&S:wSGmǘ,:Aep`T" =oRG)EGg I̥h'Yjj]X*tPFUg1mXu KP:2M?}+Z4gD%ݿ!3#>,&730o~vtQur{&)O|ESHY OCR p9`DTxAq\ >_h񐕰X%T/ V%A+H5Cu1Y rPZM?w^;V2su~w?1]Jw=M -N8l6㳹_9PY-Du?Y>zrl;wUMu[6vu:!My⏇k7="pp \T1fxWhQPh<ID3H?@:7\:ϳѐ.pAARLKU`K{ 7rV]^5Zh.pHQǗW X F"MW$A"=ɼ|)DR-@7w8 RKMձ7wt;&>l/+ |37v4"A7zS21m.ؽXPBX{(+8g[6%$1LZH{ho L )IKPec[0b^9rCk^$x?wME˽œYW8r4!G2Z qLVݔwu:E@S G~ZiD-u3T+le#i^LLH ,t- 2 &us)xǯfo"8 *SvzvCye([iDL\T?dY4%K@np(չX/S2۬*o:P*Go!ﳬ ƷtfVs|큉պf%aCK@ZC,65KEVi":2dQKl#Xۃ0-JE (p+kE!RPi,q:yFlӓ,ԭPS&j=3ٽp AYv٢N(<9D @3:b_ SMK̝PNc}/4@Z '2eh'}G7;FB` J}V?Aߣd-wY̊ק;5iaYAՆojg*rFIوBX<"Bd^Kyגʣ:q7Npc+*Myz)RkBŅvpf[ biYbm(&"-Cp,cبR=+ۡl(I;L۝Cxk6b|TOQnFF+]Ri/UFTrsw&&`A)c!kY c/([YCsŲ`m'WvaݫCJOGڬMVPM*t" iMWN7la| '48k`$($#w;Ff3yP<ᖓ<HsAZ'ĒAi]ܱlN\V(iu{ Үbg9[/խDs`X0h;HߜN݅z9w7 i7w~&87Ƒ¨vwk)[r%TkuӁ[s[jY, :|*j@nCk2L;y5r h+GM-iB.n[h&E&_ hskuhL-ђa|R8_wɊKۆ>چ\x\NၺXX5!V6z3ef-X)0|>q释1jFb56t Sedi44cU7'Ц\a'+M`Hp"릵%-M}+ HWIIbYh\џ4 gu= ~ծiKtgDNNc񁉢ey8X'cp}4Ha2UDl܉Җ` )+v!A ^zoOɉh>1"j$E,DMѐHENʐЭ~2]V^Y}Ǧ΍;Ox6OQ)!$"pxn;*T~_SM%Zdkk曑2\V۶ByKiO+mdx3:1$$&RB(˨7}n/OaP:+fFEegB&P; ~\yĹ|6L[J螓!݊W~>tsLCNYe] 2_\ms#XX/=.q5l,sa 00=Mv/U KN]CwFcQDCl\7vHSVQ`ֿ ([ʇEB&0wf!(0W$m+ J/Ǟp1HA^2bƓeժZ^Ҡp( ƪ1 +j/RpTI1b.[߂P6b6FN`KL g/)lfYbt.w.o񇻏,]G#v TЄ# fKMٳY&N2gV"_\jo$4?ā5GEdOFXd`@vN^>੃pZCIXSi*_ /(IWʭӜX5oDϰU*0xXG4S_!8:ژWJ>Kgt_ quϢ;1\f$XlWA0Dxk6!6+ކE.MDlAl&U` ,-/.TXLzˋR2$ꚉLesXy}'ۈm ?Ǭ5MB4d`.Iáԛ$(7T_9?ps;q@fKt}۷1~0mLt5v+ q}tsMYιRwl*+p~; NYb;1ĨAȔYv K+g؀XdALOЁx1J;FTA}+"Pt`Dž89'8khdGys q$LWN7)Q@FGRқ]*qK{%>AчU& ~`vݜ'%J¿zf&VU ) 1:v( loQjyo/]\S0p8HdDyK[LD>A<1, .jD?:?XEeɼH\t ῨsA|͙,sgűњ( ޹6%exW?x)LM?|~~gP(BbB%v6i:ou=?Q:nxHhdO9: aE9@括t!wP*k]ʶTɨ_dp>YY% ;x]:>;{hG+I &0PW.j0bOW}gfdKR ?.>֧\ tz@*atg? wn}7x C1"G߇a h;:t)ćLp©^ !dA4^f.*Ye;/6R*'1~E }qܖN<7~:㺟\MoBI9qDz>k3HL9cpƑ&:>.MSNbm{] l `9`JJGi$KSI-Bg˖6=0SX[hbjkZT 5l$r(-MnJC:t/[>"dҴU KUQL_ETR;P}ږdtI?i0ԉVn8'D@~pvXI`6nlDU>-q?(1m4cޣ${0ˢNط[]rm!xB s9FsKO~Y0]ّT \z'51h in8mUJ@aFe)ӧ +EY'.4&~bOe!Hr"btdZ9a?^Bx?[9-Z.)U3˴fyFp p;;8}Po9ָ)9w.N-R^wRzQk8?kƋ+/h! Ľ6 Y `'|3&|EYU1h,YPOEeB᥈pT mkx L,VެW~1(%XϗẐűk9p]?ۖXFVުNÈR5T4 v:Ua*[Vk? Ƞ' U%L \؎m㞧*1 _ueߣt839p62hpB@6"\ևvf[.pvbٟHa/\dd9arYvQ$3:I_r? :^#@_(KtumZ#u=S{bR' "[D_a4٠ßu<6S hlۊ.c=kjך;Nv }a-KYvb3x@8uU/+SQA;H'#T2Q)x $n $ D`Qc7z$wĔ l$0!I&{{$IBYb,&+w-pSse(;q ,="q!?H0EpE ?v<~!}|$B.FT ԑ0tjxL.;I<_MC@'t'!#9-;霸AT2b eSm@s6HSUX_W[k36رJThp?媒m cZr"+t0(ē5tzYl95^J@?apa̬Fy<1/G;6`k: F Xi$FJ?s #K?-HT}oԦc#El/bDy}X ?oJbQTx8W6T%שt%pKfRJ%tڗgܑ#p`A?9hBW~=);k~~!;%x }=a}N kkv^.P)XB&"WByK;zh 7w_jb'@{8PvKW!vk}ng1 .IT4H"lf邺l:+%TR==Cg~~wUZU^lK_OOdrK$,]'\sS[-[4Wh9Zn{il7!)|HJh$='ՐT]'>3UV )[!}tRE G.aq qTMJ|Q"a&F\Qs}\Q"wFo |k`PXg ^* rL2Ҡ7Hv)nܴ9F 3A B+1sڰ5hVJޡT$,UVc%W+:(?rO]t\&_L4:uO@&PN] CNQ #-Skoڈ[LPBBWۻޒ8BjcɟTwL5Qѫ)_;I}\T\1,AQYx\K5pܒ ZL~2tʹ9DgvwʘQYSTsAk_sDf;R?uͻ!F Rsfʪð(yR=KyzxMutI c+wS yjP?*2췩a\j CxOo+#}o@ֈ#QPhiT_ SRz!M'[T+(u6pD+CW2\1hJL-Ԍ4Çೄ:'׽'Ph7AXZSvkw貾 + ܟf?Q"1E2(柝Hdxs-(yI+:u7ǽQ~U'2|)AG8\?ee%go;$y}+S_]# 8Ϭ1l37!r:ựQ82, ۰7Rh2qcEwziNqۿ<}]^eieYgMg ءVOY5:kE<2}T׆DExU΅>3/?¿=H!C9a5%U5;nyQW|mzhY[ ;.qK7U\OMCV VVFeVw!eKX5)ˈfrwqKB:Mۍ7{=asjFIjx4ֶ *; hC``jZ=7εKpT UUBM#`|Uaeyvo鬧9Q3, "Mwdrk:'''{3 VlA% ΛR]f0;8PZ4?*@=k~飝$ -~7us$BAXa\k{CB23}`,B_2Ыծ?5?"`>I/u2UG,X>2J+:I3ɰm jʓGq:G P;vvX3%%@ۮ?ıےx=˞8fK* (Zt+J iBx`/G*Mn7Tv*U@D6xvm3 WӅsUgbP7eO#WDJ}1sBp"=f< ˜$Xj,@nS-u=}"$ې#+nJV;ne+#g:2?WГJ4P`#ïTAfG@u`&!8cz-$@E:k]eܸw53?P]}BCLԸq'; E͚k/-`y<-{"90M_։7[ Cwt wNƖ_H֠1S?^}̱BOY6]tlY_.q$gz7< AAUS{E=_sYaɩ'bZퟔ ' )0G 1a=n??ZOeeiGD=T:m]Kk@58K%d_< 긘oԔ*&蟲~ZcQQaM|ǘp?q7o ABs2E3B($)  Q|Ө,o-WqtI4I}eÍN-mT#rY-,{Yy5$4 !j n&0hK$S[%K!v<\#ARRDP z4&WزM\n1- aLR JcE"$E+^^Foՠܒ'[:893T}(ދ?|yE_9taMTw>^RX;+wmTN~"| OVX쌐4>9k?.<1V3MU^wVHb)xl|ܸn9LWzⷧ(0b/f7|$tYyNvt942l\Ћ jjF=qGfvO[DK \^l< 5{5זc*0K}' SԅU4^~G'ї=595 L{,K;.?[Vk$I["=2v4VpXSgJ$k$dte!͍>ga8]*)ki @ԇ 6~G7BRu\@@ }F .!%1*n7a3d8?f)k@<|m@Cڕ u"Tcx,sTBQᩬ[OdU?,1WI ~\*^z*ʥ K75-L /7 n̚獙We؄YP~kwy R&KAiSիQ:fϠ noPH; g9>h01nCPaʂlOL 9z_ʵc3:i358Ѵ6DATϖi'$9yy(ܷ^|F B+.m>^?Z8}'ED+!k(qӻ-g, Gdپ\a g\RhBĎך+_VḰ @$T'$TrPac!N1vdA?%jt3uX]*חcUb[m4b.z :à?l{ż!HK!jarnKzrcKA |XIds(!Jh}%xyLy)N @TW(/x9SIw;+iDt4]g7qDj J\plY}#I,]%|P"AƜk)*MZMņ6=Yh-KG÷Z7T~AUѯ+7໻~;mqpI0@mY~G%n&P0k G2IBL$ҕ؋x-O'~;@DaH8C @$ሞS (wQp c9e{'g0A:?WT~N5F6Qp7pRPm=DQtgXjO:7B?o gm ߂6RRcXdWFnv^0<#*ђ2@#HRk\Uhas]/'tN Mbnu\9_NTC<=hIH1>|?]!S}9 *R"*OJCʖMw53Wp/ڈ0ȥ"~$r.Zp9@ݎQ:&/T{xFgfʕbH[mȣiJuqmͣ8Li9dUy}r>(QZLv>666,`O[Ə&i͵3{9"1*:xqg+aS9ww/J6Ҟz\(ۡZS`| vIXy:gGǩI'%͹5NI{zUdj@)YMC3w|3!0ֶe? t:5hY $S'D A1ю'0_}ŸkaVy_a*&%1ew \6ݭ*q~DKxBԓŨ\Q)%daZxh d'r(-,$JIe9=2Ex+E̫b2-TCͻ6gr*rTlƧD53rbasG0Rn.AKFl#qjʑ@*o<2m,!ӥhMo3Og0 -Z:m2o6p Yrb3K1 k`W|f`_QHi?oNsD$GCWJh^"J`= 7i(ҾZZ{8)G=v*Wf)+Z8tvI!"͙wF/j@kC;I~b6u?`B>j*_ Jw%pl: ySN *=ݒƄ&D0Lu~p-/w X"/ײSkwIkfp^hp3{) !Q% )ձD؃G?,v҉K@o%P ^2r߇ʶv/aǴl5|||ͬ\I+=8?~-'c d[YqSl/507)7ŚU;ߑIq܁z~:$_q CF33.1lb IͶ`^/p\c^WxPvyEl茀4]W9ֆ Gt\/#!-5.<8?94/$-pG>o';|FlwXNN0&߲CvӲK̡b(9;/N_C5]{Yϖm\B&S7ːS{UYBN!mzIvoxVi9!hRӪzrgh.dm^Z[̧7phtQd5[}Mc3k6Jss햲/sIK>+uR=#_DN&u$5d.⇛AsCYwA{ AWBQ#$1qr/8!4CVߋ|ds Vi@5^U4Ǥu!%偃7_c/νbKĒeuG?:$qAG{/V-;^@$R x~ %r{^A-MU1|muQ A5giII&a !~*9^X%{򄨩$w;n}A/*ut:zS~# l`1og`$env`1DTOq};0c |BV=YˬEI !v.~Y&,[35ƹNMdֹa5MqEfP*,~s;۵:n CJF"h/Oۛ%IwzCQ87:~QITl˄<^yƛ~p|Qn}F WDИDŽpEِɝFf#O<1M ݘ*qcE<z8ހD8-Amz TC N&k؋@Ko[cw^1 :F+鐎m=ѷtL50@O3=D;BJLz>!87k&Bi$+Fio >k;c1 9C@.m/puQ*]gFPW$*s,ˈp=F?t52]I8;84 ?Bs04LC¼Eaak="&Dxb[3/ՐLqC endstream endobj 733 0 obj 39747 endobj 709 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./illustrations/faust-diagram6.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 734 0 R /BBox [0 0 283 312] /Resources << /Font << /F1 735 0 R>> /ProcSet [ /PDF ] >> /Length 6184 /Filter /FlateDecode >> stream xˎ$9rE ?z)̌ZZSfWY-`lhyq N7GxH5#??$Ħ?ۏ?fʛ>[~x QҞt#r?Y^QAϳsz׍FUyY]x^A}}y YIQm?>[3:T{CgvҪ+lE?ΞS |^Do憢҆QDZ7zԗůdh04n0:Vҳ 5< u{UU6Rn>:;t[?l˿>~odzIOsJmߙܞazb@gI A/'8PӢ욁nu7uٍzq=S5ݘF>BlbDlb؄Fl؄z؄Zc4͐LS-3sP#(! HGaq! SaYXfы,0 HJi(\U Ќ,42 B*#Ud!HBs*IcED)DL=G" }]T rY Ո$#YTs8@UĴ[}|?j~{T9:iUЏVjs2AQyԶ&a>n% Wm$Z؏ZDk@"H$RH@"B$R VD g$RL)$R┢+H)-E"R}}I>TSLbMӢz}?0lH"DLd$Q yL*ТbLT$!IHD$!$ĐP_5hd&$Ԙ6T-0 C-3$Lc̐5T9Ռ$s!i5~끚4ܯjQ$G݊>;7RKڭjmXNUw֜Am s;$&!90 Q$!IHC&$tU$۰@Bs$3q$LAo2 kHF&QzL-L r$jEN-"hI$0fHU&ї">\ZT_M7ԍy</݉Hd ӟ3KL=RLͱt%6.6 ƟAIg8bbv+ؔKĦMQbSbSpn%_lDEGHh :.:EGh%3YF=0>|ɪ">F3d9MC6jm/6~ؖk>K?c]1^_M?z֕?[)=9{gغ|zvǴlR#6@G =}Ok/JMԋM,&M&M@5&(n2 ߗ{&dH-ȦuM&`kE6^;獯ja6_;Mlo_e0hEbgTMvQ!6Z.6Ƌ4b#z'XEN t~ZW_hWV(ou! e.}x[;B=yVHz'e JŢ\R^͵Ԩ<[ I8m+! Pg$I(s6Bd2#$AƋ̃^ɌE93D!QO ϫ(2/}u>ò2//X}RxG_Fʃ'cXc9fX8F2ϋ: r-"bJ J,ػ;bT>tǺ|SN/B[|Qlum~=67G8'>C|n!0}A=cĹ:+}c깍%7f>Ytcef8fUҫt-߾w?ndoV|ú1ѷ4+vz_gx9aγ'd;QmDkma0>C(GX N5VVj<+쨺0UYp53 ;j`@gE jF jk)ai۹/J-[Z5QO[+}xvNGH)u P'"ۣG&PQMeߞu41`ɴL(EP&۠G5&! Ih`v+}5A$T*PC g1oճQ³QUdY̨6QI,efYGUfYGm³Y̨U=5ENFՆƃ(A/ c{zL>%̛#<㨼bG[MS|w|V肧殐4"+'!cFvc+$7 kHq27W7VCGN;}_q iR~inYʹsd%=beyd㐧,P.PNř,͏qf͎74/j]7olˈXF9VV\?& 81t\Gd(-R1(c_Е.T^G}>y߸԰y.pŨTe/{s>v6ZIG}>yܷT$̯6v(Ǘl#ayf~ʖLZJl;bq~dR Rճisp)٤Aq$M&>̯oŦFQ421ճZ[+ʋqދrkYg\ű 9-Eu>~ mFEc/vW:!&˘19>*;(nJbL^݂?z`Cq&?N1Bmqy y [=Ȼ64 1G-U/h2򖙷}gxԖzvE}YS,TܵF1u[!(n,6䅡n/|0.kKc0_JS|jU(ahO]`q AcSvCmld3(.ho`|,vHg^F4e+ܮ>(zy6bNqr{y]xZ ߈t:Qn?=QqH6 endstream endobj 734 0 obj << /Creator /Producer /CreationDate (D:20050330103538+02'00') >> endobj 735 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier10PitchBT-Roman /ToUnicode 736 0 R /FirstChar 0 /LastChar 255 /Widths [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 0 602 602 602 602 0 602 602 602 602 602 602 602 602 0 602 0 602 602 602 602 602 602 602 602 0 602 602 0 602 602 602 602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 602 0 0 0 0 602 602 602 602 0 0 0 0 0 602 0 0 0 602 0 0 602 602 602 602 0 0 0 0] /FontDescriptor 737 0 R >> endobj 736 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 738 0 obj << /Length 739 0 R /Filter /FlateDecode /Length1 1493 /Length2 38721 /Length3 0 >> stream xct].vVl6WlcvرӱmwlN:fǺ9}~qkΪjV.sWcg +3scS?fn/+~+WPw!9Z[K3 +gWK @lo?.n&/tu2W\s/>+~!]c g _ eVp2r1MiԬ__yc//h h0v7>ۯ:,]`QLQ_t/9X̬GKɹi!^\4_H#u]M]ݾTp?o O, +gWߚ4W-\\_j~팿Z+:,,_}icnOKۛ;xcK4L_Gj hz*fk`l/ה8XJV_c;+[ޚVpp3viW㯮j+ڴr U{7̀ζV@%fj_M?S`aMDA᫥K  =ͣ'@_+*no`feoՈ_il6'dpsp7 u{+'7k6usv߶Jͭj zMqG g1ҥ6_r|WDtlN;OM2v5x¯-+hs^1\=k(ٺm:TuQ)0oKXa5APCR-^>coBeJqVzo7oN=:~~7I"!};/ݼӓAN|^h8̦]BwQ*AA-=As=[D Y^&pqݺ2rPf/m1}߁* iCkl39{;Nj#מ%Pёy 42y$0"l[I0tUu^=zOn&{8\BV/x$m;UoY~\*x{q!҅q(~:!=s:M\{m S:u_[KڅPI"%-SOCjv +;yAu9/$8z!R|շSK:D"ӏEOҍey 3֪/I~=tZ\ov^n1xѴg<hŃZ 9 AhW{&; +|=19@*|,v *+ֿ#J|)EAm .K;U]L$M2Nm|SH>c`%b$B*t^*·;* x#Mx2&bTj_bBѮzqEOK:j Nkx'YEd?Oyջӡz:NBYWlLoiètus[Ta-p 13>=pg;gP@| kMCq(gB YEE>'Us$q|I$MhouP|[{A~ZPއ"D7?m1{%P~SCDݍŃ !*4ytVNF)U\w o嗜ߔX-?PlTeh|(ޜ;Zf(uX)átFT?:.G#FOt޸1]&4 e 105$C1!6lxEi6/wږocmcn%+!!:JXNonuS^qg2$ gtHa5R1 5 k Ι{Pd 6L0$7[tvԕ P/'LHz`׿oTge͟㚛2# Dۄtj} =h vⲘgz?g^!Y0a"H0Oz 5Zt Ih-Y6(]} *ֱqr@2 }CU,+[xmaϾ!p־2 $8WQ"?޻9a[#Rdk\ha(rՙAL|LUDrUWry^Gv'>\+)iI=Ismv^AiT CQQGc7yKڟ~`g|^mAmQǚF3HMaiD3#qLcX]NjH\&A:2(?4DW^McrD~?Y,(U'/W%g`e1Xwy}QRa_A0/VCdAt]SE 8LX3v20m~/ǨrZ0<"=u|P3Cz 寧bD<iIwR&^V|}a~~-Yros;(߰NA,ߑ@W5K! WFhe`i*l(BOI\V5~9c q/5!$.VGS\F)LHSQXTv&Qb>ѳb7^jy/\Ÿ L)"ѵpH얷1[BKYֈSRt9PϓJ6O_Bўrxo=]o253k\nو~Pacc(_"IFlzEIETVPR]CٛhrF3BH8mA43 A-ЉmStm0z4ÍcD~Jc+Lp ڏA n7M3j,fu0Ym\F\/g&܌(7rJ6H~T$ˊ׾[5͝ӫ^ &?0ᴝF෢dlU%P5p6){WZao 3a@¬ipvy[LYvtg(hګ补"w致 t]D ]q@wXXqtd~0l\'\V7͑L79#IN&^fUO˔FNT%K Z Hh :JbŦ,mw%Eg؀Ma9v,L s%q3|>3#vDžz՞[͂}dLХ; +ᕃ!4TEFʻ?)ߖ34Y{$#Nƌkkhq]k~e $#Kl"mmGXߓ c%0ۭ7 S\8FmH=Edޘ0ftȠ.fW\MPBW~\MRJIt"JTs"ai>'&FGKr$vd2Sb[uu`1q'x-Re1q>{&μ6jUzRIM3LNq*O gJ|dI*qN[~C2i: p8 Cm qvn_^5N7oTJ0~z멛mt}VJZȵjQYt%ZtD&\VBVEwy&CX2E,>zgGh?ÜT7h/[r $yk"'/D1)AQۅQK>N/NilY:c+= D/46 TfkQ;kzs@e3t#xl. DR+_*NnVl#겵3v]%&˽t' ^g GZq(g0o0z{h9xAE)9\l*HG&8UZlUjƩ2H&pYӈ'hb !IOu{P#G3ѝz|,9v tDaPcC~Mm8ATY%%c )f~(<KA#S14AiqQS1#! j~HR# PXf` lHV3(Xjtи591 Y-l3gs1 ŹWn ! %xp}OUTYV<*ETwGe@A\x].}m:h3±hz++vLN%@|A>4YNgYFbO ){+P &ƨH;۞ysY~f3s,7f2<3"zxp)d[Tʜw|EK'G'C(X&tԬsbū"q`{M-2@@xNmfllhWiFg ˱4#z礕 v^ݮ Ks;Bn-iG?5>˞AEbǏ\9M4:e*:8Ft06!~B8J/nٟÝѠk]/-42@,>χ_v~).}1Z"c^=`rđ4292%aA _OĸE>D&9o5;Ϗc6.7W?w(ff*6瘪>gH'ҼSA4xR>LsBm٠ɤ\vKn`.Խryl!C$E03C-#xjɏ=R\Jh}6{;aK@95D) M/4Bb9-wޓ"l6 @mf;ඟ@KE.깃 ʠ$eܠ|[nf0ƑF !L8S5 ,Bp~5}: ⼥0w '?tw5hx a{A.< 6/rZuٜjĞOICj֟&v_#ݞ7}5щz}r])-BHm7ʼnt,DRq't^ÍPDI!΂6GRG+)i؞0_G;)8t4\Nh=5FI6;zX ꠣbe4V(ϤNޝ#DH%.aF~_SճwWD| k!{Ү朼na~7(F#DN"WƮb|F&Q:jKw>R(ʩO7nɉrAOt #!l'Ю_^d0eDz%59l%lpts0,zvyL WdWF31Mܙ}h)b?nƄ۟jMAh_:MvbGFg_FఴSkUPAsnk$=fg%^.c_^qb*)w1R.XCd.fw_Na bꁽ㟲Ğ}Rq"Cٌ\:9>m(u$fZC AXHv1)%Y~Y-j gvds hIBjBJ8k֗ O:N@+e_fe=]j[KkcH@Q2;Gae=i9uu֍Cxkf͜)2\RG`6HA-842*ͤ+wSK@:bux2{L^cBh+1Fa:?j\L N~MKzLHkUۈ@Z6vg=ogEX'E6si DC#ԹA_RM1OTXuǾÛQ2^}˵8-gry" (u2E6Dqnr|v.-mh|?PrܚVkSق9wiha>Il cJ4[,c Hqvo.dSڈB)P 0g%3$f-/RXb4o\@Vr|R-BB}Ihb'D6KT% &jt&>P &@{Yw[SL GJgdžgN6hq sem 3ḶJZrDa=m4s;EQ(ed=8Pϰ|U{[xhG%xܜ2>Ku@ԋa~6C,F3捝e!Ih#EFCut٪ C CgARf̼·)6sυFk:ICW1G_}]Cl>Z{Il6G U:Uշ:QvC0Qyx$0ڙLAUG?M\Jyf<՗:v4ɪE.6ȩ@7b|wQD># ^MnmonPJI+inGmNߖ?4@Uwڴ@{!13e@s7M lBA Y\X\ ~$Ǭ(sV>nR&SK K}UzO%r\jhAJ 6oqyuFU'm/ .I<B,m~wsMbG,ЩYD'{4`BCxlDQ Bﭒεdj5!)?{{PABq ( W֞Z @!<i9b\ t; ;Ȑٴ:}w]m *>f=[R;frC 1 o@:ngq~\yJ78>SVSc9)]Ioͷʱ6}ByT{TֻR:Q ñRiw_*9}{uaD!4QO]>ZɄdAM^L7Nӳ5՘$:mIkv 3Z+;cT2յ y jv0fQ`xp \ŜQ3+072Nȥ]"cvi,Xw*%duqfZ#S9ۥf}m!%]2'tN9/Uzo'%F6;CaxFOzgZ>P$xk_7(ku=>G̝ E=UppLng`~Yfe\;Xg5Hg. BB3s+XUbޜc DEqeT!) KSKhmuUL[6cφJ&gߑ-ŧг-TJ4? i=V,fPX+Eil0n~2i*<xJ ԇ*%whq%nnb$Y 0ZZlqkpĜcKڎlDQeRN v~umR%V,*Tmv(Ouٍ|D蝋PѡOrlo<24u<#?Abʶ eNBFb),Ȯ7I<AFۍ1[֣x=|nR&ڕفYrʏЈ8}H+%m{D7Y1N8&O"_Y lslz(f%CA4\0n"[[Bz٦YƦ%)w> { qeT 1tl,Y`kB 20@}Sǃ̞{=8T:5M: DI`X"d/_lދ:7y\8g[Yn5%@xҠ\p}('<Ҷf`WvFڱ)l#c>WuzHZ"h1]+k^@H|EO#t62&yiSLQhm#E|(^=XUXa=N9&,mԠ *v\[y6Miю` i] x1K6.Cs|=\vj_4[wZGf L  C.\\"ۅ$G^0KN' ݈@`tg{ ?Qn%.2&͕ƜP 諜%"8ێ).L5B٩eAlP DqI"=#zlh,+׶l_i-gZ<т.39657KȜ(-x%aOZi3Xnݍ c4:+)dߨ֧. ^D.]⼯CRAm?Շr~lELt$Th0F'L NR߉&EW 0m?^'ӓX IVlɸacVOD.ɄP`f6}fojo Fy`% mMYqp ]|wVmWmVy9# !wո({ JXyH.&21𩈁J NAk{" }^#gLLE2#0KUNu]7'iL&# +1ӍIJ{'Fg5cnQ0Icb'ζ )]E|,!$M0u;I&"Yߐ!FYlE)^^(OEY*F2o&8㎉\Ea .3 aKߨ.cJWa~rs^ {JI.WvZgEӿB<"~8TQO}8֧MΐlCyiEc8QCهTSs.VE̅B&!;ɟ =\WY:^HNMAFB+fƻ=RSYe.q 7$Yw@#aΉT2ZJ|; A/orծ Cv$T@+#6ly~}.߸xe h^$TQ%?&'.n:h(BRc$BQj͎3-N[$aa1ni|SPaϷR$ۿ۴ܻEgDy$+p.=h3r«[R..wϐHϡu;i/ J՝t|*[ deC5u^bC/e1%˃k@cX :kPowy+ #e'pkSo2gA6̎͡`9U7 (S}!.od A y`12"U /1ffUcp:/dOǎ\Iă|*L?Ҽ9CrL$qIK2Q Wζ2SZ6sY#C :"|PrQ n,X-rdcMԥO,M-)qYw}8e@0z`/L5UrF;Z7 6|㉬ɾ_kNnY|gz}YQXq8ЩA -,kxPmՁLr<ˆs, G twjG'R)n¸nr3o⇢mI&In\JQ7yEiίT"cTdısqF1:-3][ؔd햰|vf |~U׌B*c^]QdMo ,T+[@H HnkA~sn$2suI_$%9T$ƗUX:p{ o-5 S(L /?@QDsQg-Hr6i/";>kaLMNtf?@0 nKunbL"fc?^Qڝ}E vA^߃Tܚ5x Zy~<,Xj['}4%v3%nEI~V{݋$ZF4^ka^%,9ځsEEh׶D*HTtTȫe`m,vc7z3mx :WR;HdH}F&VC!1Wa!#LewVWrpgڀwk${)$#6V=Vd) N ָ5}b=t!)o儰uSciz6b:-43]_i11q THЊKQ]{ th3T9g;܉lY-ݏU4oa}8O^V" n_鱦3(ΡW(OxmV&Xt7QS6! ISql~T09`FHb&S4hG3]S8ߍB%KQ:Z_idնߗem&"jw|-H5PܔG?բyyɁ>YXmVd!Uf!ѧc_,G 3%FLAA.Wj?Ys4t4E n=oGK~:>ԵrVfHS#\߭[XE+AʋmcwYkh|ЕvُLu )t)Vc1A9GRam&0rZ幣PF}, ;a5e+z$I-q8ShI_W)ZGZrÆEϦpmrxRYI^+K2-Jeɧm+Qw"Kّ|*uKVe_^95jܵj`D'svTZ8cI;_gʉlNZ )nzlVMe:tz?+qú0\8f&P_m'JU53pݣtʁ[ $.Ȩ<ǎ=='+%8rAZ|RSa2]=SkU2g ''X2x=ju kgg{ˊ͊e_ g,WP3.}l¤YčqE[oa1w_ݤo~tJ ?{Ĥ&fD(Qnk*3X>KRgB&@ )ƦFv=LGǤޓu0gIDۏ \^Fh6|nnxAv= Qy"'V6xј w3|sz'P-Y U.,n.nI&zBgR>uȠ'C?9 5z-LAx>+_j8'1$i\5[`_#~\6?e=0h5;OkޣcVUɜ "b^O3r0]!‘oŘz"@HO帶2h@( !?V0OHqbD2{f|'!3?af$ K^J@$YmX*hƽ9a?,O< r2.p]'AoaG-Ƶyfx/-%Y#E[ ۉ[:'7x Q5y0^U(aCq'e_'.`ɿͧHyi~.w cyc t4A/\+hmԆwN4x ߴ! =G1bBlJnjgc\pmbmr)M6ZD1iU8bt[oKƿrTg0-ȏpY'lWzoR^ju-VWM{swڈ=gbdqd GS_*#.F,hpgD_:*o, C3& VuALkFBUC *;iݬh:}ᣂp%y3tz&wf沓< %?S\vVvI8Gz٪' 0&C@vq)>O~Im3BnrĈQya TD8b[YsyL8"cvnqk\z;rec!t9J1?'J~,n^|i\H 8$l&*k708Rh@#Pvⓚ@BO}RTX l%WgE ]m:ke2m3,G[< [_;v2@1"V7X_}Ħaޣj &֐*')crPnY3mzY&%%`d=fFӲ'8IOI(m&ff-s7Wʋ3L9P{rszZ55`WA1J;-)6Jsh/@[hv_|9<2{P^K#\תu2mT7TTY׻fq9A?7Ze>KWce{}Bf0Gx9)fBYSháq 7}v\ | 0Nv90=. B_q~h'hOFMKW(:S r` ,,(:-+~_M x1 u|kE1bA X15 2fam N|M..m9= )\ZNO+cÙ3IFᰒ\Shr膲˿u BOFTjNn|s#fW4Cϙd"Mr"\R[&@T8[miObVڟ;VB ]w6OVA F1ZYBΜڢns/둖$~n#cNإE9s'Z0,_ٞ'd8(kTϕ9:2 2rkqgn#w&"\i9n@DzF<[S&ҽP+ Fɼ^~9> zG5e|օ$d^b&Wf9X;/ßH9q^冠a@~tz@]UP;_—r|T &o(m7)1J4/۶ ysR+_jԻٵ] 0!R?RJ ]k s?R%M$cF* KZp=RH`boD|M0fnֵ1)ݻM.)WӾ kñRxI~b ~X9it≱ɤ~\=ےN0Q @]S(="C k%, ᚓv/R?DCLХR2b"~RoZ2$ .Dw$m2x|O&?zK{T1ǟ;Rg[95FZ]+jf͸`Qx#o=G47%lT$-Ǽ73Ne,EE-:ͽ5ޭИЭB)ym@5\L[~ɾ!r&-8_JûYs.bV1> _C]Y?syEXDx#K[ 0a&S:wSGmǘ,:Aep`T" =oRG)EGg I̥h'Yjj]X*tPFUg1mXu KP:2M?}+Z4gD%ݿ!3#>,&730o~vtQur{&)O|ESHY OCR p9`DTxAq\ >_h񐕰X%T/ V%A+H5Cu1Y rPZM?w^;V2su~w?1]Jw=M -N8l6㳹_9PY-Du?Y>zrl;wUMu[6vu:!My⏇k7="pp \T1fxWhQPh<ID3H?@:7\:ϳѐ.pAARLKU`K{ 7rV]^5Zh.pHQǗW X F"MW$A"=ɼ|)DR-@7w8 RKMձ7wt;&>l/+ |37v4"A7zS21m.ؽXPBX{(+8g[6%$1LZH{ho L )IKPec[0b^9rCk^$x?wME˽œYW8r4!G2Z qLVݔwu:E@S G~ZiD-u3T+le#i^LLH ,t- 2 &us)xǯfo"8 *SvzvCye([iDL\T?dY4%K@np(չX/S2۬*o:P*Go!ﳬ ƷtfVs|큉պf%aCK@ZC,65KEVi":2dQKl#Xۃ0-JE (p+kE!RPi,q:yFlӓ,ԭPS&j=3ٽp AYv٢N(<9D @3:b_ SMK̝PNc}/4@Z '2eh'}G7;FB` J}V?Aߣd-wY̊ק;5iaYAՆojg*rFIوBX<"Bd^Kyגʣ:q7Npc+*Myz)RkBŅvpf[ biYbm(&"-Cp,cبR=+ۡl(I;L۝Cxk6b|TOQnFF+]Ri/UFTrsw&&`A)c!kY c/([YCsŲ`m'WvaݫCJOGڬMVPM*t" iMWN7la| '48k`$($#w;Ff3yP<ᖓ<HsAZ'ĒAi]ܱlN\V(iu{ Үbg9[/խDs`X0h;HߜN݅z9w7 i7w~&87Ƒ¨vwk)[r%TkuӁ[s[jY, :|*j@nCk2L;y5r h+GM-iB.n[h&E&_ hskuhL-ђa|R8_wɊKۆ>چ\x\NၺXX5!V6z3ef-X)0|>q释1jFb56t Sedi44cU7'Ц\a'+M`Hp"릵%-M}+ HWIIbYh\џ4 gu= ~ծiKtgDNNc񁉢ey8X'cp}4Ha2UDl܉Җ` )+v!A ^zoOɉh>1"j$E,DMѐHENʐЭ~2]V^Y}Ǧ΍;Ox6OQ)!$"pxn;*T~_SM%Zdkk曑2\V۶ByKiO+mdx3:1$$&RB(˨7}n/OaP:+fFEegB&P; ~\yĹ|6L[J螓!݊W~>tsLCNYe] 2_\ms#XX/=.q5l,sa 00=Mv/U KN]CwFcQDCl\7vHSVQ`ֿ ([ʇEB&0wf!(0W$m+ J/Ǟp1HA^2bƓeժZ^Ҡp( ƪ1 +j/RpTI1b.[߂P6b6FN`KL g/)lfYbt.w.o񇻏,]G#v TЄ# fKMٳY&N2gV"_\jo$4?ā5GEdOFXd`@vN^>੃pZCIXSi*_ /(IWʭӜX5oDϰU*0xXG4S_!8:ژWJ>Kgt_ quϢ;1\f$XlWA0Dxk6!6+ކE.MDlAl&U` ,-/.TXLzˋR2$ꚉLesXy}'ۈm ?Ǭ5MB4d`.Iáԛ$(7T_9?ps;q@fKt}۷1~0mLt5v+ q}tsMYιRwl*+p~; NYb;1ĨAȔYv K+g؀XdALOЁx1J;FTA}+"Pt`Dž89'8khdGys q$LWN7)Q@FGRқ]*qK{%>AчU& ~`vݜ'%J¿zf&VU ) 1:v( loQjyo/]\S0p8HdDyK[LD>A<1, .jD?:?XEeɼH\t ῨsA|͙,sgűњ( ޹6%exW?x)LM?|~~gP(BbB%v6i:ou=?Q:nxHhdO9: aE9@括t!wP*k]ʶTɨ_dp>YY% ;x]:>;{hG+I &0PW.j0bOW}gfdKR ?.>֧\ tz@*atg? wn}7x C1"G߇a h;:t)ćLp©^ !dA4^f.*Ye;/6R*'1~E }qܖN<7~:㺟\MoBI9qDz>k3HL9cpƑ&:>.MSNbm{] l `9`JJGi$KSI-Bg˖6=0SX[hbjkZT 5l$r(-MnJC:t/[>"dҴU KUQL_ETR;P}ږdtI?i0ԉVn8'D@~pvXI`6nlDU>-q?(1m4cޣ${0ˢNط[]rm!xB s9FsKO~Y0]ّT \z'51h in8mUJ@aFe)ӧ +EY'.4&~bOe!Hr"btdZ9a?^Bx?[9-Z.)U3˴fyFp p;;8}Po9ָ)9w.N-R^wRzQk8?kƋ+/h! Ľ6 Y `'|3&|EYU1h,YPOEeB᥈pT mkx L,VެW~1(%XϗẐűk9p]?ۖXFVުNÈR5T4 v:Ua*[Vk? Ƞ' U%L \؎m㞧*1 _ueߣt839p62hpB@6"\ևvf[.pvbٟHa/\dd9arYvQ$3:I_r? :^#@_(KtumZ#u=S{bR' "[D_a4٠ßu<6S hlۊ.c=kjך;Nv }a-KYvb3x@8uU/+SQA;H'#T2Q)x $n $ D`Qc7z$wĔ l$0!I&{{$IBYb,&+w-pSse(;q ,="q!?H0EpE ?v<~!}|$B.FT ԑ0tjxL.;I<_MC@'t'!#9-;霸AT2b eSm@s6HSUX_W[k36رJThp?媒m cZr"+t0(ē5tzYl95^J@?apa̬Fy<1/G;6`k: F Xi$FJ?s #K?-HT}oԦc#El/bDy}X ?oJbQTx8W6T%שt%pKfRJ%tڗgܑ#p`A?9hBW~=);k~~!;%x }=a}N kkv^.P)XB&"WByK;zh 7w_jb'@{8PvKW!vk}ng1 .IT4H"lf邺l:+%TR==Cg~~wUZU^lK_OOdrK$,]'\sS[-[4Wh9Zn{il7!)|HJh$='ՐT]'>3UV )[!}tRE G.aq qTMJ|Q"a&F\Qs}\Q"wFo |k`PXg ^* rL2Ҡ7Hv)nܴ9F 3A B+1sڰ5hVJޡT$,UVc%W+:(?rO]t\&_L4:uO@&PN] CNQ #-Skoڈ[LPBBWۻޒ8BjcɟTwL5Qѫ)_;I}\T\1,AQYx\K5pܒ ZL~2tʹ9DgvwʘQYSTsAk_sDf;R?uͻ!F Rsfʪð(yR=KyzxMutI c+wS yjP?*2췩a\j CxOo+#}o@ֈ#QPhiT_ SRz!M'[T+(u6pD+CW2\1hJL-Ԍ4Çೄ:'׽'Ph7AXZSvkw貾 + ܟf?Q"1E2(柝Hdxs-(yI+:u7ǽQ~U'2|)AG8\?ee%go;$y}+S_]# 8Ϭ1l37!r:ựQ82, ۰7Rh2qcEwziNqۿ<}]^eieYgMg ءVOY5:kE<2}T׆DExU΅>3/?¿=H!C9a5%U5;nyQW|mzhY[ ;.qK7U\OMCV VVFeVw!eKX5)ˈfrwqKB:Mۍ7{=asjFIjx4ֶ *; hC``jZ=7εKpT UUBM#`|Uaeyvo鬧9Q3, "Mwdrk:'''{3 VlA% ΛR]f0;8PZ4?*@=k~飝$ -~7us$BAXa\k{CB23}`,B_2Ыծ?5?"`>I/u2UG,X>2J+:I3ɰm jʓGq:G P;vvX3%%@ۮ?ıےx=˞8fK* (Zt+J iBx`/G*Mn7Tv*U@D6xvm3 WӅsUgbP7eO#WDJ}1sBp"=f< ˜$Xj,@nS-u=}"$ې#+nJV;ne+#g:2?WГJ4P`#ïTAfG@u`&!8cz-$@E:k]eܸw53?P]}BCLԸq'; E͚k/-`y<-{"90M_։7[ Cwt wNƖ_H֠1S?^}̱BOY6]tlY_.q$gz7< AAUS{E=_sYaɩ'bZퟔ ' )0G 1a=n??ZOeeiGD=T:m]Kk@58K%d_< 긘oԔ*&蟲~ZcQQaM|ǘp?q7o ABs2E3B($)  Q|Ө,o-WqtI4I}eÍN-mT#rY-,{Yy5$4 !j n&0hK$S[%K!v<\#ARRDP z4&WزM\n1- aLR JcE"$E+^^Foՠܒ'[:893T}(ދ?|yE_9taMTw>^RX;+wmTN~"| OVX쌐4>9k?.<1V3MU^wVHb)xl|ܸn9LWzⷧ(0b/f7|$tYyNvt942l\Ћ jjF=qGfvO[DK \^l< 5{5זc*0K}' SԅU4^~G'ї=595 L{,K;.?[Vk$I["=2v4VpXSgJ$k$dte!͍>ga8]*)ki @ԇ 6~G7BRu\@@ }F .!%1*n7a3d8?f)k@<|m@Cڕ u"Tcx,sTBQᩬ[OdU?,1WI ~\*^z*ʥ K75-L /7 n̚獙We؄YP~kwy R&KAiSիQ:fϠ noPH; g9>h01nCPaʂlOL 9z_ʵc3:i358Ѵ6DATϖi'$9yy(ܷ^|F B+.m>^?Z8}'ED+!k(qӻ-g, Gdپ\a g\RhBĎך+_VḰ @$T'$TrPac!N1vdA?%jt3uX]*חcUb[m4b.z :à?l{ż!HK!jarnKzrcKA |XIds(!Jh}%xyLy)N @TW(/x9SIw;+iDt4]g7qDj J\plY}#I,]%|P"AƜk)*MZMņ6=Yh-KG÷Z7T~AUѯ+7໻~;mqpI0@mY~G%n&P0k G2IBL$ҕ؋x-O'~;@DaH8C @$ሞS (wQp c9e{'g0A:?WT~N5F6Qp7pRPm=DQtgXjO:7B?o gm ߂6RRcXdWFnv^0<#*ђ2@#HRk\Uhas]/'tN Mbnu\9_NTC<=hIH1>|?]!S}9 *R"*OJCʖMw53Wp/ڈ0ȥ"~$r.Zp9@ݎQ:&/T{xFgfʕbH[mȣiJuqmͣ8Li9dUy}r>(QZLv>666,`O[Ə&i͵3{9"1*:xqg+aS9ww/J6Ҟz\(ۡZS`| vIXy:gGǩI'%͹5NI{zUdj@)YMC3w|3!0ֶe? t:5hY $S'D A1ю'0_}ŸkaVy_a*&%1ew \6ݭ*q~DKxBԓŨ\Q)%daZxh d'r(-,$JIe9=2Ex+E̫b2-TCͻ6gr*rTlƧD53rbasG0Rn.AKFl#qjʑ@*o<2m,!ӥhMo3Og0 -Z:m2o6p Yrb3K1 k`W|f`_QHi?oNsD$GCWJh^"J`= 7i(ҾZZ{8)G=v*Wf)+Z8tvI!"͙wF/j@kC;I~b6u?`B>j*_ Jw%pl: ySN *=ݒƄ&D0Lu~p-/w X"/ײSkwIkfp^hp3{) !Q% )ձD؃G?,v҉K@o%P ^2r߇ʶv/aǴl5|||ͬ\I+=8?~-'c d[YqSl/507)7ŚU;ߑIq܁z~:$_q CF33.1lb IͶ`^/p\c^WxPvyEl茀4]W9ֆ Gt\/#!-5.<8?94/$-pG>o';|FlwXNN0&߲CvӲK̡b(9;/N_C5]{Yϖm\B&S7ːS{UYBN!mzIvoxVi9!hRӪzrgh.dm^Z[̧7phtQd5[}Mc3k6Jss햲/sIK>+uR=#_DN&u$5d.⇛AsCYwA{ AWBQ#$1qr/8!4CVߋ|ds Vi@5^U4Ǥu!%偃7_c/νbKĒeuG?:$qAG{/V-;^@$R x~ %r{^A-MU1|muQ A5giII&a !~*9^X%{򄨩$w;n}A/*ut:zS~# l`1og`$env`1DTOq};0c |BV=YˬEI !v.~Y&,[35ƹNMdֹa5MqEfP*,~s;۵:n CJF"h/Oۛ%IwzCQ87:~QITl˄<^yƛ~p|Qn}F WDИDŽpEِɝFf#O<1M ݘ*qcE<z8ހD8-Amz TC N&k؋@Ko[cw^1 :F+鐎m=ѷtL50@O3=D;BJLz>!87k&Bi$+Fio >k;c1 9C@.m/puQ*]gFPW$*s,ˈp=F?t52]I8;84 ?Bs04LC¼Eaak="&Dxb[3/ՐLqC endstream endobj 739 0 obj 39747 endobj 721 0 obj << /D [719 0 R /XYZ 98.895 747.976 null] >> endobj 716 0 obj << /D [719 0 R /XYZ 216.528 199.819 null] >> endobj 718 0 obj << /Font << /F96 355 0 R /F46 279 0 R >> /XObject << /Im7 707 0 R /Im8 708 0 R /Im9 709 0 R >> /ProcSet [ /PDF /Text ] >> endobj 742 0 obj << /Length 2513 /Filter /FlateDecode >> stream x[mo7_ X ͷR-ZZً^l ]i-EE$/C3Ù˒%oξ8{Z$&$\3jNԔ \_4?>mLR.s x. 툤aMQ9,yZK^Vߧ\]fT"Ղ7>cK8Qmxb$XM8n}g"v<;,a~/!6d[tQh`UldðФZ/8ɽVbV%'[׫UvaѥvZ,(fЮt +0LH‹t -C@pDGu l>ax%ݡ[or=Rt95$:qVVˏHWO\p*nqۯdY18W c{xO[ƽ8n$z:&7Wz񔸽4#0''STeܧ!|O/VR,by98OzW.$9unBjCHiyW,Q;BLE,-/VRڲȨjYQTBhx ̗W|q I=YDBmѲSrX!{''ZRN&LFBmqS } ((SNj/ .5Xb sT9os#Y^%ݎwoz_!nJf,"΋'9, 'ܤ„|wG[RxI*5Bu^ey]aB_HkHCZUƸ*"2q2’9P4D->@sTy>IR!:43ab^4nuctsķݎa/ _H%܋%kR j]{hCY2g12[~3~pYWحB^,gr5%F`S Bw}!:F}և@)qUSm*7 ܭ nB mgɌ֍iy0زW<2TXy@Y9a"bZd l5Aey؍mC:wa0*mF2u]5n2㛾C8V7/̪}an'"ZwolH \y#AX vzPBXK7&ghioEx;m{|SӲ cDJE\n6W*d)QPqíSUboɁpuxս! dbԄRI obeL|q5腰. ط y\iebp1 C,҇ȷO桕;aCd hLd:Cvv㧄 8l&s_l\qo l(DCO"'MLHW_'31 uEa#>oϏ ]/u՟ Bʲ6;M%d3 3 ! ngg&c\uwYS "C d!n\r^-֫vPBN2 iE1I_$b&"&gy=y3.ʕ_2fT;I('fNL ѷ{S 9%uVEB"#dğԍrHI\+4u祯q@.S/Eny, u5p;INp9.%T/wJ;SO <udVuQMα|;o˪S#lTM 2 xMuj6uU 6?d$U[4)e>, ]gdOfXQL1vT?%-4![Z'xRid endstream endobj 741 0 obj << /Type /Page /Contents 742 0 R /Resources 740 0 R /MediaBox [0 0 595.276 841.89] /Parent 696 0 R >> endobj 711 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./illustrations/button.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 751 0 R /BBox [0 0 456 173] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R4 752 0 R >>/XObject << /R8 753 0 R >>>> /Length 9854 /Filter /FlateDecode >> stream x\Ie9r) ~sjGH "!9ďZdу|$}z+>~{~2Gezb01qC>?QJ XZf椘^uVKKÖjv3WLۆ͐_̧ 3kY̘G~aMrgz!a%fl55kɵrQRz1K|f ^3=ihyJ9R{6p! ܐܱd-O~Ir byZzxJhOk@5 Wc`<A9])gmM| ^o P EG+zgxmO঄crv`ֹ들k} ޭhCV$=WRR npɾر\8MJc̯a\3Jz+W ,N!~) ? <3-r 1u<ۑ!881[G=39/JyYDr6?p EFg ѵ!7L `," {Fn-ؑr 8|@{5 dwLT,cB\ i_jsl7ӧ¨L߯:,՜_!Ze3ȠJ ג}\Ѧmo 8Uț.-v}uG} poN:y#,.wA\?'QR2_밿o }]g= 8FG2;>Kf219@We[$PD3Yb = WKSL6T$:c ][9X;Dv՝ M|CUYW}~OlQ DoD06" ?a "e^ q( 0iFdtchtHB~:E4&I@l)~%%]&(k3>geү3Wa^!` N6qt_E4DA1\wsE0*H˨26$`{oyڸt)3 I/ f~%Knp=f#EԠ88 ,.: K0IBp xB|$uDט.rf4vj6$B3Pa"3Rg%O톝ؓںQsg$>uI#=a$h;y^SO}L4A ¼J`]*,AlD(uLm2p*WAgk*wA"Sl/Ђ ֢_HʬX~n3VRDNGҘ9x*AoJ4q &md]ZQFMS[HW op״%`?H9 F :=YfYBmR.=V|zN fbNa yVZ5Lrn/m%@@-g[@f1$x:hW O$KL2 XB v6->swRtJt&25,L; <qq %x d"o_i%J܎ee8˓0u5UB_Vs&wi!01rpbR!g]{Kg fն䯨|ϐN&EKcB!&Gv1є-sP[oH-fi, ڈ$1 1'݂ybOp1CQR*J1r|mŠI? Tgi[{i X -M$SE0V e:O PΔՠ㵻enݡwWCưYy_y!Ɓ~KtPQ%}=#aKB$GP/U2  %:dFTBcfØl3vGb3*?Dsp2 'i(^98eDݼA&lR.8 T P)!@W{4L'C2Um*i%eNEՌ s諪2kɌk$Ȩ-BRPŅpE|}w:&Ern @x##kLUs_AdCh"v8sm=. Ga $rRkLWbCr>wfZ 6sc}ɰR̲t "6=Qkӏ bR&O^3hߢ)(ŒSRFi3dǖvƩ ca㠽:o> ^b҅bDyOHbw)xX70 VgjE,T3_ 5@8e"iOKUI^һyj` }zې,oCt:c_׊u&9+dQIG7%s&)>3 پ@'"]{E`0ץOT4x.*,ݎP~17H2mwƔ珏L&ZL[0!w; -Y,Φ &LIB/älDa; ZA: ПnrD#4&iOO?ûJ%"1la]l|FɱR7F[ahXo:cț@aB>)a=6%DAdQiui:T+ѩiBg7җ jj.kk+?u&C,c>7ZТ̦Db/T OPX<=YhcEKBl1d]BɞmhHt-Bbi3**t̏qz4l^dB KNDt 'p"=#fz1*ʅWPdn7.f7J;b(6$nI鸹BQfoCrHn,0b$&KdEg} ,ƶ/HL!4NRPזM+.ެf0#b+!bSSXn 0tM4v4vFFRɔ͋gFꙻz\koҝb$}DeL{xlZ W|t.rA ¤2gYX d2M8ً`W95Z?Ʈ@2eiEȸTE+6$x!rEDh~<0=8zA(v  -lmy.cP'5WULxZd{,v>5 \uH0άb&5F7 C9XM) )k֞02SI%` 4ٌƤZ-.b_h& )݅P=mO]F%[ o`) ƣ@4-Gky{d^@L{2Aw ޱ\T =AJIb X81Q"Ʉ#}xb!|+aTNx)Lt8TKC T",GOsdF?%]̭>*f6IHV"-ӗ3a進!)iKEIW@8MsCid~{e =B,؊G=F6setDS&2VQ[ Nd`*ߐ7J3 Y<˯Pk&U AeE%NH>fH ZÎL6K-ޓʒQusq׼;+_-Ў)U]nMCO}7f=b[lȢ^륋ZD+fg-Mrub,k 0R_B*!s75JZ+HLdB2V(uC>FfD=iM4vX Jbfr)=N 2T攐1?cj |Ck5٪Ga.5U2׍{ޒ#4v䞯Ճ9N3_?29ncIK0 Zg1dTGwpS::H)Qt@3;f:^J6to.h *"wӥE Jj72b>vL4mQ%sx3fsܜaS?[W5cllʌ2x+w x)>Wս|EVŲ,v !f^R#j} ];2S+Zqoeһ|ƥ슛A i٭`9uPlB~ē} YoSɟ.퐭O!ߡѼ*cb5k$Jf& k(zB"f 99'JfAvc.jK8gZ;jEOQdh4A^A[:C|ħڢ #̱C#]9ԉ-גHG1OΎl|'5]c]ِ*r|96g\BT"S!#pk]tҧP1f{mм{&s$&5N {k`k>jxbONǕ " J  CexT&MHbgDMezsa?Ls jw0#kPKǧۍ {|oi<0H9d+LHł~LSTaf'm ]'ZfvV$=;^k](Kє :ӫgωR=|/p 18  S(ۅBi-Yo(#y,tU84b_meLih2-i3\lBj1lcCMq*iVE5&3ƅ zf8\a`E7Zz\ʪcLq93_S%3FuE4M6m4ftƑ b~1w`3f^):.H-Wi F !C[z~ oFͥ^3ZN{M233&xQoK>64tU.|?V1=y gC"n1/J|qCe3h^=l ^Ld3: u4!`.tP(x᪠oȅoj zOL/HbMH]!h3&a2/g=`+F\)SYc+ D/1ɷ\KppUH) {r\7+tyt)O=+D(%iX93Jx}yUAehX= :XOmY+贕itZpRx'79JiŽm D~j7ɘ}sAVS?gt[9 K.{|WU."x׌lU@7*ӑ)X k| t}9[Lygu+u.qDo'8V}~7B /A >U?K5,S_rC]SM3F~'di6zϕH|NvS=;|LXsjs)`: s&v|ڳ]='Ns&z^B!ya¶rAaz*ꮞc!waO\Un%U[VH/z} w}^ؠhjڠY2cQR Fy(D'50HI(n- ScIazNh1gxVDՙAYEú3uk3`Bs׃b6SΎ!O=[3RSQr Gb4_" "9=:̽jdSwyrK)J[4ADkqYJA!!D{B0ꇀ /sf-QU%)~Ec!2> endobj 752 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 753 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 97 /Height 31 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 97 /Colors 3 >> /Length 402 >> stream xKEiЖІ`m2,A ʧ|"K+J[gԙ(JT@œgVyh%:C(}\E+q<Fbhߣ8OnC+qEvVzFD~5ZA++h\.JtU4Z,h%:"шh4JtDߢl6C+DtV#FDGBKFDFDG2!ZT:% LZ4mDG##}Y=+z=FnDiFNDG̉Fe0hnJt yѨj(|[vRA+2tY;Z0P\Vÿfzs  to endstream endobj 743 0 obj << /D [741 0 R /XYZ 149.705 747.976 null] >> endobj 717 0 obj << /D [741 0 R /XYZ 301.151 620.558 null] >> endobj 744 0 obj << /D [741 0 R /XYZ 150.705 395.408 null] >> endobj 745 0 obj << /D [741 0 R /XYZ 150.705 339.038 null] >> endobj 746 0 obj << /D [741 0 R /XYZ 150.705 269.038 null] >> endobj 747 0 obj << /D [741 0 R /XYZ 150.705 271.609 null] >> endobj 748 0 obj << /D [741 0 R /XYZ 150.705 259.654 null] >> endobj 749 0 obj << /D [741 0 R /XYZ 150.705 247.698 null] >> endobj 750 0 obj << /D [741 0 R /XYZ 150.705 235.743 null] >> endobj 740 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R /F107 376 0 R >> /XObject << /Im10 711 0 R >> /ProcSet [ /PDF /Text ] >> endobj 756 0 obj << /Length 2421 /Filter /FlateDecode >> stream x[KoHW9@f}\ df3\2s%"l*DQϱ $GWUEO'En..J,.+%)MnהI\j?>|oٟ7 BJ9EduymtkrΙ k~8Me|,HG).7r,4]d eeFE:S|,4:}ɘJ'OnFFe斳q$PFRYӧt˟aI2ӁM2r4KeFmd;UcsDrV(muɆٻP2 U,(iCh$b{Uh( 9Ff s6c,G(jvFԩIp/:ƀ0\BܮL+UmQyǬ^[^wSEnӦuUe)Dɍr),IQGP>O|~jGJ'$ *b 9>gi$̇ opnVu F)5HAHPpo Der4$ tIhKݵ8]\PBlG/gܣ?H#ՇYVCƤфnIIbI JMEf+Q`zwkBHz/0=׮xcG|9_M_X Vg[#> f Jsx5c֎+ "!H!͊:Ler Ԉ ehcG׳r1iܶg B!UtnUqVt dX0fuu~}&H(`[RrӶjB bh{q@@f Ѱ祾݇.KVwLNxeSK ɂ:bVF#.+*ݳ Qs@ vCsF \j;P薊pO(% 5J !g ` (qEٵ_(NVRnԎY  jƏ-CqRʀ."R$->aM;=EۿCqC!=2Hjx=tdزF,p(!2qd| g  =s %>I%5ӒJanI*)}OzV!ؙ^mNtgfR8)BˣӐm].ĆR6s$pȢ-ISrB<ip)!46Qu'Q]0` 0 R:#a@ppӘQ$>!awE җ#`on׌>Cj^ Br@C#^Ƚ5CrqP7„SwAl!`T >n&rVj#CL;> endobj 757 0 obj << /D [755 0 R /XYZ 98.895 747.976 null] >> endobj 758 0 obj << /D [755 0 R /XYZ 99.895 717.021 null] >> endobj 759 0 obj << /D [755 0 R /XYZ 99.895 647.942 null] >> endobj 760 0 obj << /D [755 0 R /XYZ 99.895 650.512 null] >> endobj 761 0 obj << /D [755 0 R /XYZ 99.895 638.557 null] >> endobj 762 0 obj << /D [755 0 R /XYZ 99.895 626.602 null] >> endobj 763 0 obj << /D [755 0 R /XYZ 99.895 614.647 null] >> endobj 764 0 obj << /D [755 0 R /XYZ 99.895 602.692 null] >> endobj 765 0 obj << /D [755 0 R /XYZ 99.895 590.737 null] >> endobj 766 0 obj << /D [755 0 R /XYZ 99.895 578.781 null] >> endobj 767 0 obj << /D [755 0 R /XYZ 99.895 566.826 null] >> endobj 768 0 obj << /D [755 0 R /XYZ 99.895 554.871 null] >> endobj 769 0 obj << /D [755 0 R /XYZ 99.895 471.316 null] >> endobj 770 0 obj << /D [755 0 R /XYZ 99.895 473.887 null] >> endobj 771 0 obj << /D [755 0 R /XYZ 99.895 433.716 null] >> endobj 772 0 obj << /D [755 0 R /XYZ 99.895 436.286 null] >> endobj 754 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F87 315 0 R /F107 376 0 R /F95 356 0 R /F2 439 0 R /F4 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 776 0 obj << /Length 3009 /Filter /FlateDecode >> stream xrܸ]_1 ݁qJ썽T6-(g(搳KJ*!G!{lMR)@#f31ç&MǐJh.qHhb4}&';g.O#k٣H*vr,p!TEpŊ=BOam igseR? ʲ7UO]պj@Us*lamMLw5"a2bG2e2_oCHS nCc^/x0Xs+]l]WcY ̨ƌꀘQ%J{S:6`/{i{9nj|a=v6zaUSFʳVG,5(۴AgW--HIoAA10[@c/$O>c/buM%β& ќMVg:INƥ?Sw> ;z 4e8bxO=+ʼVw1IǵD%mv0}4,]$3q (/#48GQ̺lve!Aϫisu@~$65FcQQhj&M-`h r9MH g.eFɔ8bFZˈ@F^T XVzP)-MBEhejb*uK~ׂMȱ~I(|H߁'P ԡB3|Ko (G .={B N87NQG2Ǝ)_^|3XoP;2r1C0PUz"&14O7 ڔZSO;`(KE[9խuӞB ȤَR)WB І UMGx3+|o@^xU8waEjF iwR n*ۨP^$T,i);Ego\^Dʱ_i<`odݮ[B?A4DK}dl7l [V~AMS% :fL#р<}7a0w 3b"WW2UnG4/qrZFRh Oq>b p esSrY"gnS5lz_~;6H&;!|JsuWq)v:4 @pcW:\v”@ՁGŪ;##nz]-Oa` 2^ S2YQL9phc]Fq ;+lvCê: er'E{qEK6mo$w] \WY8aCkT> 9d#N67i?RRFAg5PK:^odN}7l[{̓?m 4H=.='~QH oݓ7v@W<{"܁+;ȱߊL)b/|ȭM{^gŇ鬣50܂'Sw N 71](^FBѱ 8ɺ/!33u+BpP/*(nY K5ŵ$rvX.![D%a8z%#`n{Iv/\`ָ; `\9`"/cKEtn"V endstream endobj 775 0 obj << /Type /Page /Contents 776 0 R /Resources 774 0 R /MediaBox [0 0 595.276 841.89] /Parent 773 0 R >> endobj 777 0 obj << /D [775 0 R /XYZ 149.705 747.976 null] >> endobj 778 0 obj << /D [775 0 R /XYZ 150.705 717.021 null] >> endobj 779 0 obj << /D [775 0 R /XYZ 150.705 664.933 null] >> endobj 780 0 obj << /D [775 0 R /XYZ 150.705 665.113 null] >> endobj 781 0 obj << /D [775 0 R /XYZ 150.705 653.158 null] >> endobj 782 0 obj << /D [775 0 R /XYZ 150.705 610.226 null] >> endobj 783 0 obj << /D [775 0 R /XYZ 150.705 612.797 null] >> endobj 784 0 obj << /D [775 0 R /XYZ 150.705 600.841 null] >> endobj 785 0 obj << /D [775 0 R /XYZ 150.705 588.886 null] >> endobj 786 0 obj << /D [775 0 R /XYZ 150.705 576.931 null] >> endobj 787 0 obj << /D [775 0 R /XYZ 150.705 564.976 null] >> endobj 788 0 obj << /D [775 0 R /XYZ 150.705 553.021 null] >> endobj 789 0 obj << /D [775 0 R /XYZ 150.705 541.066 null] >> endobj 790 0 obj << /D [775 0 R /XYZ 150.705 529.11 null] >> endobj 791 0 obj << /D [775 0 R /XYZ 150.705 517.155 null] >> endobj 792 0 obj << /D [775 0 R /XYZ 150.705 505.2 null] >> endobj 793 0 obj << /D [775 0 R /XYZ 150.705 493.245 null] >> endobj 794 0 obj << /D [775 0 R /XYZ 150.705 481.29 null] >> endobj 795 0 obj << /D [775 0 R /XYZ 150.705 372.094 null] >> endobj 796 0 obj << /D [775 0 R /XYZ 150.705 340.009 null] >> endobj 797 0 obj << /D [775 0 R /XYZ 150.705 307.925 null] >> endobj 798 0 obj << /D [775 0 R /XYZ 150.705 275.84 null] >> endobj 799 0 obj << /D [775 0 R /XYZ 150.705 255.711 null] >> endobj 800 0 obj << /D [775 0 R /XYZ 150.705 235.582 null] >> endobj 801 0 obj << /D [775 0 R /XYZ 150.705 149.272 null] >> endobj 774 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R /F56 378 0 R >> /ProcSet [ /PDF /Text ] >> endobj 804 0 obj << /Length 934 /Filter /FlateDecode >> stream xڵVMs8 WHv+")3M';әNAX3䵤8_ @ɱL^LAL|\\*\Ri,yaoZ%uaO/ן>ʞ_5&y0L$pǐmS<[u[2jM'zmh=O3TIFV]qS=WMlK2k*v2qGC]q侐*?V'c99H\ye0WlU9 ji'XI_o=ςK\`7El*% kIX36\kV6&: ^YNӥ> @Kv+ $!d nc8֒t!ѱNj)dq8@g!;1{R{* !'bR)xz[[869 #%s3LPH^ qBetJ ffY>R u[a (K%ĀTFɁ+mXmJi+npb^$֏\+ݮ6]Nx)v6ь6q -1nr.A(vH']o˦ nYd疱kD_7!OQ[(_'jz ytZs)'kp5Tm aaH&0%աe;bmSmco'kA㝟:12EZ5ŰN}"|Cq# 8BwZ#4t UI+Q(S)UsVjY"Ndɑ9l6".?N'^mCŻ9Fc7ج) ysػ΢r3 endstream endobj 803 0 obj << /Type /Page /Contents 804 0 R /Resources 802 0 R /MediaBox [0 0 595.276 841.89] /Parent 773 0 R >> endobj 805 0 obj << /D [803 0 R /XYZ 98.895 747.976 null] >> endobj 802 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 808 0 obj << /Length 146 /Filter /FlateDecode >> stream xm Q D)˜r]BčiΙa p3s>fhɚ.p%$`g8b:j7J`d椸l7mib՞#ZFRp7W?+!@k5 1f endstream endobj 807 0 obj << /Type /Page /Contents 808 0 R /Resources 806 0 R /MediaBox [0 0 595.276 841.89] /Parent 773 0 R >> endobj 809 0 obj << /D [807 0 R /XYZ 149.705 747.976 null] >> endobj 806 0 obj << /Font << /F46 279 0 R /F96 355 0 R >> /ProcSet [ /PDF /Text ] >> endobj 812 0 obj << /Length 1949 /Filter /FlateDecode >> stream xYKsFW y?u]I岉rʦ*4II(SW ɿoz @#+.43+x\}λBrf4maVJńͪ|{VU,׏o7?\qDxO3e͜ P I J-d6}V—(M{9_w]X\EZ"@:3Hm U\Ɩ7=Z3^ ̥63xw+mT(j˙7 Xp [:uAAi$βlJzdbU.xN(!`fvwDLX?aѮXU+/w#,~ܞ0EprSl+aˮ_i`jyVRVEu?_M<̔QL¥1cFVk@]6wHu&dUbצE>OxMK%M]mP]l`4gAL$%o<`'^cЛ,6R Fj r3fϭj~nn ԝn8>*džF&<䒟\** #E4GX>\/Vx D+b52ߩHiGRĻ> w-A^&T͔W [@$a&Y D1K ͟p(<8D>\8)Tg k8N*Hv혳_A v~}fqDT(:js$8j#xr+J  y-;(8\g_A#2T#s^-ʢ?qHk٣gdV5jo> Uҗ]ęNYh$Elz1 9Ҭ k5@gйAcG,l& %: _]n]%nߥ :.]O*I6x w&/Z7$kQ2sAUZdd&>!(}ݽ?D)}sDPcYPw] ΑParK퀂N<`/ 4^n_-~ƹeF=:Zh(Ŏ6'+[97{p?r79+1qݼ݊26]1ug]=8@'q.`-]lE}Hn{/ ㇴa<1n*y,߬:c0ΟBrv!t ?`vס&4GԳHz_mfIjZ~}cHSҕ>/b>w)jKyVΗ/1㑅?^ wkLvJ+&㺸\&@tteh)8C鹧g$ :V^;#釗{1#ɥD,͒l lrG,z!4OE<67J=lt=M5T(D 5 75shC!eyMNF!:>hEpr==?ҸqA59G " {[W_+h Tv C!FAHcSJU @HxKcC#z)qɪ am\MvHWំ4w]T0(q\)$F^ݍXB}F+%#qm|=W+Ka΅=nk)#.0f"vG=oQG`}o>xƜ: }LwSir6|\ƛ dpUtSIpjo-BwZ7 endstream endobj 811 0 obj << /Type /Page /Contents 812 0 R /Resources 810 0 R /MediaBox [0 0 595.276 841.89] /Parent 773 0 R >> endobj 813 0 obj << /D [811 0 R /XYZ 98.895 747.976 null] >> endobj 126 0 obj << /D [811 0 R /XYZ 99.895 717.021 null] >> endobj 814 0 obj << /D [811 0 R /XYZ 99.895 273.25 null] >> endobj 815 0 obj << /D [811 0 R /XYZ 99.895 275.82 null] >> endobj 816 0 obj << /D [811 0 R /XYZ 99.895 263.865 null] >> endobj 817 0 obj << /D [811 0 R /XYZ 99.895 251.91 null] >> endobj 818 0 obj << /D [811 0 R /XYZ 99.895 239.955 null] >> endobj 130 0 obj << /D [811 0 R /XYZ 99.895 203.79 null] >> endobj 810 0 obj << /Font << /F87 315 0 R /F46 279 0 R /F95 356 0 R /F56 378 0 R /F107 376 0 R /F2 439 0 R /F4 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 821 0 obj << /Length 2851 /Filter /FlateDecode >> stream xڵM6)|'x[6;L6e2n`==>% tCkO`Knn7槫__}E6׻ !C)G!|crѝ#xGx?cxxϹq^V=rl1&w~{?1Ļ !}}|+{¾ow4.o_Mل̓s".^m>]#N3<!xoAPxT0UtM^'1O&N\&B_(hUJ#dlE^y#+RK"ኞF8y#tS5͡UpT7"#Pyh/A.bVhIR718zFpmy zUș "ǞCNuGQV  wg˜EEݡ65tMݡi;HC7vL2 I Ml}?}˜^fOޫ;@D3XT'@scXU儁0EMs?zXVe蹟ilix{1ݾK_z*rqoq.7Jey0ap:VǛ<x)u_) ~@}{3_"s'Ob0nUPG:f:v2@LB (Eôf"MP2RRtV#DvтSc#(AI$f<;U^:IQl= Y"ShTMdFFk:;Z}UTiT2,G,rVxAcZx%em,Rٯ [S[TYౕhz$63N5n52ӝFz髵 evTJ}Z{}ӯץ6u EЖ (A I_vM mνS.Xm'[Nmi,ZxbRDlMpjy F5AQ=Au;p987 F~Oey(؜:u8i_ԝ,40N1Vrw\50(Mo@A=ljEz>-~#$rX LjGVGVVÚU [r'^Vc,RRe=b4uGq&mX}yRN-f Yc $ ; =$r? Ӫ1̥8mx0VɱcQA`BHRgOD",ɶPPGr(9ԒV5ɘmiFzn#!b\g#}E[ -&Y],$QPخ* jLrQPiI[cixAi1sZ72Щ.S UYJq^7Mr MUvB&CU7¬&4+H ,E$}>涸LB5902~BF6ԟ1/&S,Uu:2ebG;$D,ȝ>IU#ćãDU~*L RzvqضhRGp6?.~GvNW]@:Έ=$40";$.j jkux'ƾ"k²@mU[1L9[GsH?nQΟp.t `tdL1.kχu E ]Qj$z/Y/u]ї3-9w/P:춯_]9SLϚCf՝uI^/{ uDک35 } ш ;J3eUl)JC~ΒBsur*{ g JWH7P 8A!&"O,EZE\ _S=!f%uS i腧VIHκ+S/N}8<}clY endstream endobj 820 0 obj << /Type /Page /Contents 821 0 R /Resources 819 0 R /MediaBox [0 0 595.276 841.89] /Parent 773 0 R >> endobj 822 0 obj << /D [820 0 R /XYZ 149.705 747.976 null] >> endobj 819 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F158 823 0 R /F107 376 0 R /F56 378 0 R >> /ProcSet [ /PDF /Text ] >> endobj 826 0 obj << /Length 1623 /Filter /FlateDecode >> stream xڭϗ6Wp E?ҴۗIߺ$.8H"Ae-K2 {yv^K$ ;?B!o_B?b^3)}|ؽzvd X4cj 5tC=2'1x0ÈGg=qdcʻt0'^HIGJ7GHQIw VL=bb1F,_ׇQ*$*29kd/Ae}j,Ikprzc-%DAeD g}r[]Uy8S ?mOa1=UUT#~kJT7O~P-ԄiYY[$Ԉ9.cU (H`cz7 ؞MTy9 dT =K.ȶ<0 oOAwš-t . 5*ך@04'3cq0sUl 2:\+t, h=P]S H gLžmX% jUH۰jvx<YCnQiE܀zo`-1>B㣆ʃ`USMظhT,/`y2AZ).T Ay . LDK^wpmXbl"An\l=<>2Eh`)*P@1U~| Vʰ @U\[?.&ю>p"]ACMY8)\><eblM fH}t̺$s6}UiSeyxt&Tͤ>35cm.*ǿ8t(͟+.K̿ '($~r4]8)“&8r8"#Ujkb_o5zfϴY̆s"hAE"hi4u]1#4|KL50m?Y#f-nU.lor{E ?;w8R Bh9[S9F ?#hOq9 oa{۶ke^_a>,\藩pk0 pnEjj(ZE# P7!3 bvET i2B2'v*!}N!7qOnvpyx`~jD-MUiӄI`Cr$"nmjH#OCPvMC/dWeLc?OEѭSS(LYɓ}@lU3XL!qp]EI}7jsx幽i#SGD`C8ayїoh:Z >S-J endstream endobj 825 0 obj << /Type /Page /Contents 826 0 R /Resources 824 0 R /MediaBox [0 0 595.276 841.89] /Parent 828 0 R >> endobj 827 0 obj << /D [825 0 R /XYZ 98.895 747.976 null] >> endobj 824 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F87 315 0 R /F158 823 0 R /F107 376 0 R /F56 378 0 R >> /ProcSet [ /PDF /Text ] >> endobj 831 0 obj << /Length 165 /Filter /FlateDecode >> stream xm;0 @£=4MR7T> endobj 832 0 obj << /D [830 0 R /XYZ 149.705 747.976 null] >> endobj 829 0 obj << /Font << /F46 279 0 R /F96 355 0 R >> /ProcSet [ /PDF /Text ] >> endobj 836 0 obj << /Length 2496 /Filter /FlateDecode >> stream xY[s۸~#٩$n!Mnggӵ/}EfC)ٛvsHIqI` sp߁z!odً7-jZVمՅ..Ojl/uL RHz,no#R8¥D$R;Ħ@5OU=sY۞gk6]-ԲL oxw@unځ v.*׎>  ݵuSe55CeRгz0s{@ NLCI$^&D=>Jj3{]O;JI`J8as\ K.s$t.q%e6H+tiB9%#BIHB8=9_/t8\?FP>joS& (co Tվ+Gͻ6oM$nQ4W9Z5Lr]Nk,QG*W!]M2y,6d 3`΂E4Aф(lxn zyS*C욫a,Wl]$+ޑjdu3@Tc,6GR+X^qߝZuvMp}EaxL׮(1߂Zާ`KYڣV&W4w0de2ٖģ -, m v?fbEFU>:v^{wPd2P#.2 3(xvw&~ ˊ % ^NaostW@B\03 d8vU}o-W~@G +Z_^ދv3W}/aTaPNFDXLc43.'Ʒ.?ˌFW "\b6!jywt/0#PX;Rvj7w}0BL* 6;o7Hqzi+ԔH2_71dsZ\j7 ^=Ћ~}͠_.M6`GT͂D]8FSKD "f `EPXu,2G,7]=E^EcR!sP1jSQCcv30|Z1\ )vGt6~9=&_sۈ׸%x:Bix̊|3XStʮ'$])q vElOP%V;@ z`!%H)cKH[,PCۀ'~,a =yMPU|6`͘?@캡gE[,G ӕ=wW`:@;ᄒ?cu/d{0sGMK%Lm(yFJ`pC 3E< oUռQtwe;)'ccg:t endstream endobj 835 0 obj << /Type /Page /Contents 836 0 R /Resources 834 0 R /MediaBox [0 0 595.276 841.89] /Parent 828 0 R /Annots [ 833 0 R ] >> endobj 833 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.543 366.276 330.66 376.348] /A << /S /GoTo /D (table.5.1) >> >> endobj 837 0 obj << /D [835 0 R /XYZ 98.895 747.976 null] >> endobj 134 0 obj << /D [835 0 R /XYZ 99.895 717.021 null] >> endobj 138 0 obj << /D [835 0 R /XYZ 99.895 302.468 null] >> endobj 838 0 obj << /D [835 0 R /XYZ 99.895 187.327 null] >> endobj 839 0 obj << /D [835 0 R /XYZ 99.895 187.506 null] >> endobj 841 0 obj << /D [835 0 R /XYZ 99.895 178.042 null] >> endobj 842 0 obj << /D [835 0 R /XYZ 99.895 168.577 null] >> endobj 843 0 obj << /D [835 0 R /XYZ 99.895 159.113 null] >> endobj 844 0 obj << /D [835 0 R /XYZ 99.895 149.648 null] >> endobj 845 0 obj << /D [835 0 R /XYZ 99.895 140.184 null] >> endobj 846 0 obj << /D [835 0 R /XYZ 99.895 130.719 null] >> endobj 834 0 obj << /Font << /F87 315 0 R /F46 279 0 R /F107 376 0 R /F56 378 0 R /F95 356 0 R /F170 840 0 R >> /ProcSet [ /PDF /Text ] >> endobj 850 0 obj << /Length 1593 /Filter /FlateDecode >> stream xڭK{8,*!ivܦ^؝M i„[ t nQEymT} ?zۻ×/׋_ŋ+z됆GDe <(#iŕ BA?6>Eݬ/o% /Tևo/ח]/Wm?%p O¼8_|x8{[ K[-ޛP + B]Y*9$ 9$w|Q%AJTDyg08@u$cIo%5iY< =QD=o8$L3KZ Ix8$ZEI2q\UGbhjU ew8ivPV v4jUKM+&$>h]0|PUO9Zlڶf a]Mt3 ОYfC1lamk2,1 ,2K&hr`=t0y/Yj֡3x&Ӏ 0El(<˂˜sbOC|rhk1`5q0Pxtznf;T?{ O.scrUe@r|*G7;Hn R'ƌ!V =KL{(nrն> v&C:%6cjM5T׮Z7Tq7.T ?MfIwVlmnY~E.n X3ˣ˼&nyo410Qp3Eb>}7n8_ iK"m֎ %*a%`-ewA꩙4K<C|`U&O) B˙phP"YfCG)'ud -WNxϠLyYH稛ՇDSltҢO2]ʖ&Cǂ:Z&,UtOhiǀjѐH {UdYnYPVB*IuR '-lkZG'8嶙޾̒73ʯ@b:$D坿dhO9q? Ҳ98Ns ȊrWl&6j}x{a,#h,v X8nlfj͚n8TQ[1R?kGǠdMPSߣ2ɗt> endobj 851 0 obj << /D [849 0 R /XYZ 149.705 747.976 null] >> endobj 847 0 obj << /D [849 0 R /XYZ 296.528 254.027 null] >> endobj 848 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R /F56 378 0 R >> /ProcSet [ /PDF /Text ] >> endobj 857 0 obj << /Length 2774 /Filter /FlateDecode >> stream xڽZs8_ᷳ/K6p Z {[M3= lR_3-֯[ݭnQBGOȽ棩yzP=?ayYĊ+oыcšEH(g2!$X:߽<Klx黟.˗BHB 96}Kbg|ؖ)/gAG}SI8 )fJ]}<_@e DkDjBA_"XJO`2o cK,o`!"柿ya +u-26jRbM{I\%w~+e4 %΋`.͛" Ub6aTw8_l[x` Hu:/7H $`LX4#*f`g&pASkfe E-,yRdf;E<`ʯYȡwP? Xj6#keFmu $ocݼ4eURM`ʈP6[N\X2 2bY^ BTH4L`!#wD4y<$VGYELk>~xM|.C{SFdy0XI^X;f~^*Xn;X N  ;0 LsBBK,}S#%r]99 7:#85V)I,܈ザ4ezpO\p*砈(&6,a-K(Vj~:Q@S*Bv"2ãG](,pf1ê<$p՟!\Ip!8@aE (QU8n~5(@Gīd뿾_9Rs*r jh%3$F`e+{QOe uuS;'ybйrr&˘H:yznO-f t5qW `7>55߻*sӬlͥ<ڀlo}j:٤Jnm23v)HT@@A묪Tӄ#V^TB) eq@YɾNd|IޙmnVvau(M D%7j .& ĒPЊHpUUʛcS8 e'0Wi:r2ʰSVd&#a`mfz2Of$ؤubg^ jU-v˦KB2 M+o&h+78$w+O҅Hqȵkؔ Iv 'OM sˋlŦ>gʟ`bl0s@~ͺPc4q֭2oGw=:%&#{9]r'R#]Sقӓx5Rw wH+&8f5ti4*8 u%Jn)EPM jV6ڭ},F9 p #l< s`׋崲 giO5L9WM\vtg~ ,L[-nAa5S=&߁)(jzsl\ZvHN\rWJ9Y!ZLpho Сln.jw9&8p vHxNT6tU85<Mscl,R霹t,ǂ; A;*@Qf9+̗2 o"o=0羘lO beϼypb>z gH~ւь@͛aU^fKwh{~"6o,!dO-϶Tܜ1:h`$z#ݓ7jbe&}| WPѾaWf. )ŏl>؞eysSd@QDl:m4/!,Ѕ!Z.X7m&S VYmp,?@Mt$y"~ȑ҄V`[_ :HԞm4h3Ͽ_Qo>x5|$@w|4c~suFQ?2E,ʤv X6]8{90{įy+O|^ӹɇRh ȅYYfuɖn~9IN7{Xq"tל'h ğUŭmsD%-l HcM1 ;ۓO}uk!xKUg,8%;qQeu endstream endobj 856 0 obj << /Type /Page /Contents 857 0 R /Resources 855 0 R /MediaBox [0 0 595.276 841.89] /Parent 828 0 R /Annots [ 852 0 R 853 0 R 854 0 R ] >> endobj 852 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [124.437 641.998 138.544 654.461] /A << /S /GoTo /D (table.5.2) >> >> endobj 853 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.913 548.034 233.472 561.982] /A << /S /GoTo /D (subsection.5.3.3) >> >> endobj 854 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [346.889 255.06 361.006 267.523] /A << /S /GoTo /D (figure.5.1) >> >> endobj 858 0 obj << /D [856 0 R /XYZ 98.895 747.976 null] >> endobj 859 0 obj << /D [856 0 R /XYZ 99.895 716.522 null] >> endobj 860 0 obj << /D [856 0 R /XYZ 237.878 459.892 null] >> endobj 142 0 obj << /D [856 0 R /XYZ 99.895 421.678 null] >> endobj 146 0 obj << /D [856 0 R /XYZ 99.895 242.611 null] >> endobj 855 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F170 840 0 R /F95 356 0 R /F87 315 0 R /F56 378 0 R /F107 376 0 R >> /ProcSet [ /PDF /Text ] >> endobj 864 0 obj << /Length 2042 /Filter /FlateDecode >> stream x\[s7~ϯutIKôBy0quBʬqH%r㦌f{4M,,`-qf9H/qC1J(>8Jm?Q i";h0GiL8@ tt9<_|CrLrDA%GE5QZiqbqxӌQ[ESnuX4Hyy\a|_vNG{ʥ˿CA䗷Tu\k2jPkL1SВ¥#]}nm¸ * F*C3Fy7&1R0&Ɣ%1+i1zPZ{3[0V~&{%`î c! [Lb)V@{BM($$ ,W~; Xɯ.l+A;w4+ u$x#jxC2f<1k!ՏAQ}S+BhZcZU7O73s]z )~ic :j.AK3a*6!n Ìj{shT2cEYQ̯BE~KsςeRuElz ӌV1`ƞk&1(Ng N'CK(]$U}f̬gWHo}<-wzҭ\NR6'GAK##x61? [NfT/(>( xEj05](ގiz=VXB,2[ipm'G#--yV_f۬b+Y}ņh-heXK1uVށcF{I|%A `hέ6&ژno'~ fBE&oFʃ5Bx0bp 'U.?Ŝk3I.I an;]W~g:]3 w[󥹮=+>*^PJVtyT*tQٶp4 c(\ӼQ y_PA^Ζys6CkGWMp$ۺ#v<րs9XtZ(]9խ)WrΉ(Э߀۟n*["\I,SkaAH-H.*IVC HII*2F$$'$[b`R$囹G_ug-&j~=ilԔOڂR|L+Ao*6@$n iD;聕]̗(Mn*RPZpxIG ЇYYC}1T^<}(~M;t9d,Y& PqZqo> ( endstream endobj 863 0 obj << /Type /Page /Contents 864 0 R /Resources 862 0 R /MediaBox [0 0 595.276 841.89] /Parent 828 0 R >> endobj 865 0 obj << /D [863 0 R /XYZ 149.705 747.976 null] >> endobj 866 0 obj << /D [863 0 R /XYZ 150.705 633.698 null] >> endobj 867 0 obj << /D [863 0 R /XYZ 150.705 636.537 null] >> endobj 868 0 obj << /D [863 0 R /XYZ 150.705 627.073 null] >> endobj 869 0 obj << /D [863 0 R /XYZ 150.705 617.608 null] >> endobj 870 0 obj << /D [863 0 R /XYZ 150.705 608.144 null] >> endobj 871 0 obj << /D [863 0 R /XYZ 150.705 598.679 null] >> endobj 872 0 obj << /D [863 0 R /XYZ 150.705 589.215 null] >> endobj 873 0 obj << /D [863 0 R /XYZ 150.705 579.75 null] >> endobj 874 0 obj << /D [863 0 R /XYZ 150.705 570.286 null] >> endobj 875 0 obj << /D [863 0 R /XYZ 150.705 560.821 null] >> endobj 876 0 obj << /D [863 0 R /XYZ 150.705 551.357 null] >> endobj 877 0 obj << /D [863 0 R /XYZ 150.705 541.892 null] >> endobj 878 0 obj << /D [863 0 R /XYZ 150.705 532.428 null] >> endobj 879 0 obj << /D [863 0 R /XYZ 150.705 522.963 null] >> endobj 880 0 obj << /D [863 0 R /XYZ 150.705 513.499 null] >> endobj 881 0 obj << /D [863 0 R /XYZ 150.705 504.034 null] >> endobj 882 0 obj << /D [863 0 R /XYZ 150.705 494.57 null] >> endobj 883 0 obj << /D [863 0 R /XYZ 150.705 485.105 null] >> endobj 884 0 obj << /D [863 0 R /XYZ 150.705 475.641 null] >> endobj 885 0 obj << /D [863 0 R /XYZ 150.705 466.176 null] >> endobj 886 0 obj << /D [863 0 R /XYZ 150.705 456.712 null] >> endobj 887 0 obj << /D [863 0 R /XYZ 150.705 447.247 null] >> endobj 888 0 obj << /D [863 0 R /XYZ 150.705 437.783 null] >> endobj 889 0 obj << /D [863 0 R /XYZ 150.705 428.318 null] >> endobj 890 0 obj << /D [863 0 R /XYZ 150.705 418.854 null] >> endobj 891 0 obj << /D [863 0 R /XYZ 150.705 409.389 null] >> endobj 892 0 obj << /D [863 0 R /XYZ 150.705 399.925 null] >> endobj 893 0 obj << /D [863 0 R /XYZ 150.705 390.46 null] >> endobj 894 0 obj << /D [863 0 R /XYZ 150.705 380.996 null] >> endobj 895 0 obj << /D [863 0 R /XYZ 150.705 371.531 null] >> endobj 896 0 obj << /D [863 0 R /XYZ 150.705 362.067 null] >> endobj 897 0 obj << /D [863 0 R /XYZ 150.705 352.602 null] >> endobj 898 0 obj << /D [863 0 R /XYZ 150.705 343.138 null] >> endobj 899 0 obj << /D [863 0 R /XYZ 150.705 333.673 null] >> endobj 900 0 obj << /D [863 0 R /XYZ 150.705 324.209 null] >> endobj 901 0 obj << /D [863 0 R /XYZ 150.705 314.744 null] >> endobj 902 0 obj << /D [863 0 R /XYZ 150.705 305.28 null] >> endobj 903 0 obj << /D [863 0 R /XYZ 150.705 295.815 null] >> endobj 904 0 obj << /D [863 0 R /XYZ 150.705 286.351 null] >> endobj 905 0 obj << /D [863 0 R /XYZ 150.705 276.886 null] >> endobj 906 0 obj << /D [863 0 R /XYZ 150.705 267.422 null] >> endobj 907 0 obj << /D [863 0 R /XYZ 150.705 257.957 null] >> endobj 908 0 obj << /D [863 0 R /XYZ 150.705 248.493 null] >> endobj 861 0 obj << /D [863 0 R /XYZ 280.912 213.125 null] >> endobj 862 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F170 840 0 R >> /ProcSet [ /PDF /Text ] >> endobj 912 0 obj << /Length 2433 /Filter /FlateDecode >> stream xZ[w8~ϯR{j\ںmKMt*KH$E%y% âE'/'O_*i_mwjh%'ʲ-,mzS0gǒ6Oh"w!EF3GD8N:7Nxɇ7&Usra}g2Nz|VkՍC2O~5D!O,e褽\]˿W'/ukz SB)XS-m&-bY Xe2f:R>IvzVE>m\@ԆKjnG3(Mg5*ۋrS6E՜϶q|-I lJHCEp#16M&i1lJVBS3kyJN; :pQcX pNM#Nn@gm,'tbM #)*82`4֛3w l*Q̺9qJq!] nlv2 Ff㜡A&&,l]N.@o7#7h7bMFSLЂW,ًT֏”Cob/'?+/9b~Ancw.G>`B۾v;هlc{Gb.'vnƿ/3I^8 aJS6y%$ykrZ[|kR H*)ُ8Hރ}~Z5n@\qecp_a\{(ɜYL\!$Y& y󦝍@DڅXs> Нjr ={slLZn㳐t8 ߇'cGTQckuћ.¡.:]5X;WS1Cɩy 3/8w$D]/C3x;sP=)@t4e' ER3'?Οb]ّk8):zvF4{h0̞-\﬜+WIôv*ÒqXpvm[%Yr8yuq$Y\Xx*)H4;Muy8(~~2l uՔCM:T 5,)   ޣ#0 3 ,L@^u*Ҍ:CUDhXRm"2(r3u_-6 s\=Tr\,s $!x{y}/>eP혧W'Ɠ0T 'ٺ`$XWCֲnm]vݳ?28;Ġ((oܠc0 ;ԣr_b%æ+ɩ%hu3;/Kl|7yK*cga܉y;:=xE(wEi- JL EYqf%Y/ We$r vyUďnXP̐4K|L6 t2dl{B%las2ΥJ䇥)14M] 1gg7%vpu )f Z-i_?`cL -<76xv"Jff]ֽvRӍ\ǗEX8MQ/Y Z~f>+ [ `6Ai -WUjS^j^je!u6q|/ƕ& V\.W`lFld5jRv)al\2 owdջ}8-* }ξp6M6|&h/y$TPgRlo@;B` 쯰l+ֳ`=tfJI lոtG |AwqU2Fe&n*B91ۢj},v(˃n ʓDI7ur tU7v(Ba^W#^n{k1 U[ endstream endobj 911 0 obj << /Type /Page /Contents 912 0 R /Resources 910 0 R /MediaBox [0 0 595.276 841.89] /Parent 915 0 R /Annots [ 909 0 R ] >> endobj 909 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [267.826 297.079 289.285 311.026] /A << /S /GoTo /D (subsection.5.3.1) >> >> endobj 913 0 obj << /D [911 0 R /XYZ 98.895 747.976 null] >> endobj 150 0 obj << /D [911 0 R /XYZ 99.895 717.021 null] >> endobj 154 0 obj << /D [911 0 R /XYZ 99.895 596.064 null] >> endobj 158 0 obj << /D [911 0 R /XYZ 99.895 469.308 null] >> endobj 914 0 obj << /D [911 0 R /XYZ 238.815 280.668 null] >> endobj 162 0 obj << /D [911 0 R /XYZ 99.895 245.729 null] >> endobj 910 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F87 315 0 R /F95 356 0 R /F56 378 0 R >> /ProcSet [ /PDF /Text ] >> endobj 918 0 obj << /Length 2632 /Filter /FlateDecode >> stream xڽZYoH~ے@yYdN6YL&Vd@KԊRxȴMvUuU8p˷\FiIe#"#E@h'_^ս;eHa{ϛ|qy)YP% fvKw?_^}/(#lE{ػ0E`bA0 m RVD|O Ye qqSV8,6hxuC?k0fiU(};v6`x]^vSugcS9Lg3 '*pu=;:bE=OU"ldQQ@FYXGb3Ĺiĩv;6 vzZmf7 32uqiqOY.bv6oЮ'k jbu$bرU3-rkϘPZc|ם%suVc$;Z5b)"b]06j2!OTy! ~9q3G5X |Uҭn卿 YY[s sdDY|:WNͮr7=$H2ѳ5lN-JE㬿 "Ur+ŀwtkSF(`wn]6KVuKgypΦnxR`Fn͘Q9]3.ɃPp\Ca=qV"ҝjWmIĢv'~]l+5..xZUŒrl*hf}К3@4+^WIdwv{{utYl! A}=\^HDHC!`PB_h i޹(n_ )Roa_zD > $uQkA.ö&~r(q^Y`9, W6wr38 * \׺Di)X:arEr9 {2CF#F?bf"I F-YM=n3Pe O^8# ໍhrMx@f)A rI2tniyor<#(ܡ֥|*7?xSu?O Kq:?<-ű(YIPR Hx?&!yH]z\h,K@aE8IW/D.!c `_og9ӰyA$6;A^|K[#!}jtA$t(JgBL"?f OyDܙA#.Om,A ̸3ֺl$к$H2# ^cH)l5.,6,( +2Q"ή7;@ܖt^3߷M)H!0q3b| W|@DnS2۰p7Sт$Aт2-TyBp|0jjLG$۸yofS5P0|+SVCH2H)p@|ʑiM؞Ua  qUnV*.IY@M!™:.:WHFuA mZ2nͦ6 Cyu(L{RSmٞ*;v Sc{N}ɶUhH2O:M!mڢˡ;\9<镽Pǚb9?z dy^7QƤǛS\,]9u6qu:i[υI Fshs6Ggms m]*6&?ֵ=4Ej*چ*[4 ]x((ۄ!/?Dߥc2~tF:}9ᴬ:(M_WփS#Ʉζx#`Z!nF7#:_o㥧D.:6d=<eS =T/yxki endstream endobj 917 0 obj << /Type /Page /Contents 918 0 R /Resources 916 0 R /MediaBox [0 0 595.276 841.89] /Parent 915 0 R >> endobj 919 0 obj << /D [917 0 R /XYZ 149.705 747.976 null] >> endobj 166 0 obj << /D [917 0 R /XYZ 150.705 717.021 null] >> endobj 920 0 obj << /D [917 0 R /XYZ 150.705 622.552 null] >> endobj 921 0 obj << /D [917 0 R /XYZ 240.175 341.597 null] >> endobj 916 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R /F56 378 0 R /F107 376 0 R /F111 377 0 R >> /ProcSet [ /PDF /Text ] >> endobj 925 0 obj << /Length 2629 /Filter /FlateDecode >> stream xڵZK۸W| X57k'Nf]89>p$ k)RR{+?>& j4}g7 OVd<"eEjT^\nFFKf/e2]_FۛW//?{Eˇ__>_}چ;cv)KjDM:X4:J2Nhh'rT>jVl6ŋ0>cWM[umߖM섒РsGYKesWEGq&;Su6)sS۲늛(%c}Cghe4@dr9mPKJ"zL{i'HTlN4ܖM/C T@- Thl;f#(;;׃TRq Ȧ!((<jXS? 7يVS}8sQ!K:#JHʦjnmx,D59ɿ%m7ԾÊ͆r3܅u*o(D$Ηq,1 XnnS;@31͈[l;bM=߈4 E+6g͞ZLZ]uu,wߵҮ*qy$/Es!I"3xDDȽ )X["{-b]5$mۂ;Z!FЙxK|yCԂ/QY 1@1THT6БDSãiKF] E+WxdD'SM;n!8jJ sHT8si$f|$|b(@6r\&ZGDtiRњ"$ ~0H{z~$.4`Ѻn0QK2~m 3t5c<1}lZN(`o#ţ낷k1?6&A5}'=OEF,p]=ܳSD`Yl% S,9ъeywDexΕ/7CAfgl̤HoT#%M轙dz@s ga>]߶mdcar'f ku(#@+]=ڝS V/tτ_ˠ21}@KzLغ߼djg `=ƛ(ž JgE]AH=4D\5?'.xơ')byUPZZUݖWSj OzsןۀJ3M9&2xhCzA=bp$}G`3R@bOJXL Hqi4BY}w 6g"G>x :arb{t'RT*tNF.qAu)KLs[@|2fxks0BALHrī={6| ipi  ǚ|uxP$?4 bEelm~ 9 +m2 p.Ur%cY6b.'3f[~j3d?pq)\?`3v 9;bu_=ٹ2,lSL :|g!^œBЉN.MO<^br"|:Agg?SFIHlgpy.l{na&tT^WWa_dƒa =$ABQ(yvPl0kq 5,]91F/W4=C0QzVN-|F xL?0 O` ǶV&-Xlf endstream endobj 924 0 obj << /Type /Page /Contents 925 0 R /Resources 923 0 R /MediaBox [0 0 595.276 841.89] /Parent 915 0 R /Annots [ 922 0 R ] >> endobj 922 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [407.917 218.989 422.024 231.084] /A << /S /GoTo /D (table.5.5) >> >> endobj 926 0 obj << /D [924 0 R /XYZ 98.895 747.976 null] >> endobj 927 0 obj << /D [924 0 R /XYZ 99.895 652.695 null] >> endobj 170 0 obj << /D [924 0 R /XYZ 99.895 366.144 null] >> endobj 923 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F111 377 0 R /F95 356 0 R /F87 315 0 R /F107 376 0 R /F116 385 0 R >> /ProcSet [ /PDF /Text ] >> endobj 931 0 obj << /Length 1543 /Filter /FlateDecode >> stream xڽKSF:aޏ$TpN,a Pb ` ȣyX$IHTbJ k"%&&ir$K/ߎNmR,~*_!I6,Oݯﳑ38w@j5ƃ.IBj$&(M&%Ip[B2^M-wKj_Mo,qWWahjAH4@ Ť%y=t+)p/6F 8A$ahWDkV[9Y:ڳARZ)ν?(e{FaCiyYiSus HcU{vT lV^g|y: #eӰd3|RJ/,cXle[W sMWў:TF!9+T@E$v]+@Usdw3V'/Q) BzJvpcMa{J:+=3(O LB_>ֱ@4D*Vt|H$Z"Dz;OQvM1ֳŦfb]ܖ?9a"|U @lt2Z%`Jn#~'ٸ3h`.ѮhDNH:aAtr z̎u,Mў8]HxZ.6 }(7Ks1BM&OG$J&ѐtV^P~CU?*xp۴Gc-6a>=/Wi GVX,X`c==5m7`%H8X}SY̘/c٧4M7`5(dVaf3TK]Cؘ#x&=er26Lk0rΚD4*'rRB~Rn8N$e)#P3x`ptBb r%> endobj 932 0 obj << /D [930 0 R /XYZ 149.705 747.976 null] >> endobj 928 0 obj << /D [930 0 R /XYZ 197.005 308.235 null] >> endobj 929 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R /F107 376 0 R /F116 385 0 R /F111 377 0 R >> /ProcSet [ /PDF /Text ] >> endobj 937 0 obj << /Length 1561 /Filter /FlateDecode >> stream xڵn6_G i^D 6 ]tuk(TKIɒM;Yr.Z0) n"=[^γ4h4Z_GYFM"-eG""J/6iʐb=t}]xgodLYʄT_GT"̂yITsԈiex _HW4ynL[LtMu./`Hpw, !(_{^ 6R`ܒbt6}WpW[rby-#c=e7oߡo8pzmRd6)>]T!\fÍIn 9?b,Y@>ݹ䘔u1]Zc\SkfLK&=I66!4:W}ch_LNlÀFA"pΨLPVwmۯ&T?!J@fVPPo%T$CaC:5u?hG{DdF:GbF/5MRuTNڐ!q?d7_3Ū(9[hbg3L3ףnyjejs_յG_xƊ f1Nu0$޻:1C糤ɣ)cf8+HcwpNU23 sJ_~ 'z=ԯΣK7 i:N@I8L*%BqӈƟ8 )Ykיe Ӥd X Gi&~2|ƚ=pRW5_B!$K6 ~Ndܿ?&=GCV3 ڈOG sȽc5Vzn* qiǃ8S0x~$M3_DI /GWN%'*4 *4c ͬQ!$4FWL]R0 l+ O?I o#8ܾ;:zj_!.A<&vqEAQBn:XVP=F'0%T 3avc3%q6t`0o~wZUMwWE64> endstream endobj 936 0 obj << /Type /Page /Contents 937 0 R /Resources 935 0 R /MediaBox [0 0 595.276 841.89] /Parent 915 0 R /Annots [ 933 0 R 934 0 R ] >> endobj 933 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [404.02 441.374 409.858 454.302] /A << /S /GoTo /D (Hfootnote.1) >> >> endobj 934 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [113.245 117.419 182.762 129.21] /Subtype/Link/A<> >> endobj 938 0 obj << /D [936 0 R /XYZ 98.895 747.976 null] >> endobj 174 0 obj << /D [936 0 R /XYZ 99.895 717.021 null] >> endobj 939 0 obj << /D [936 0 R /XYZ 114.242 130.719 null] >> endobj 935 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F87 315 0 R /F95 356 0 R /F107 376 0 R /F56 378 0 R /F172 940 0 R >> /ProcSet [ /PDF /Text ] >> endobj 943 0 obj << /Length 129 /Filter /FlateDecode >> stream x];0D{bKogc!ZC2K@h4OOC٪kP\>>``r҆Wozk!cvY ݏ'la)۱uV( $f endstream endobj 942 0 obj << /Type /Page /Contents 943 0 R /Resources 941 0 R /MediaBox [0 0 595.276 841.89] /Parent 915 0 R >> endobj 944 0 obj << /D [942 0 R /XYZ 149.705 747.976 null] >> endobj 941 0 obj << /Font << /F46 279 0 R /F96 355 0 R >> /ProcSet [ /PDF /Text ] >> endobj 947 0 obj << /Length 2290 /Filter /FlateDecode >> stream xZKܶ-dlBxpUJ69pg+\r4Y{3CIkemrH6F??'7 O^\|zyyə$׉҆Ya+'rt2ٿ/~ gd _Dɚ&@r}IYR<+ QJ.-2!uTkwLk=uU n]ᎉP\ )Z8H]ݵm0&y+mP+VX䠪Ui7lrItid26OqׁTiQ18YSpP›ɄJVo\r\3)&b~̈́N7u >et鏃 0݅U0'|6j= :9W_-) f&t#JJ&Lr!&>݊t]]g47@T,wh"-HuF MʤL6}Tu.>}? O1;$ڼlK]x;tnn>w>VDv9, ]/ uL'L,HrZ8.4SJ%e b`N9Oقl0m9! x#VW d{_cYk!?} tSW?@Y#UXLV\Zs~ Vº?*}wz_#[TY3'6ݯDbeoj 1qkPmGj~X,e+6@an3O(*<1:cctV2 bO2bMFS @&oU {.xV,]TD>06UѪ8QΘ|XCAqFc-l7R[YU9 )PFc,tӇD==>jdA K2OcۄV)Em:h]Zz FM4&Pwg{rtp ~y/'`ھa&pMYgV@P)2ɇIBBDII8oK f{'ʓN_nWPcOĥ?!Q345x3"J?a%+IXtaV~~,%h-ŬE&dF瘛qbƁq ~*la?D8w ޅٟ* ˇ@I8 tW4j$?<A#_MUA#+46$ͱuxwWZ>sFX!qzS v&a} -`2 oErK.@ZBql_:P)QYhjQ[u"܁E0>jAO=\7٥w@wQwq)2 fhǙ4 i`P2<؇Bx_l󅚌-+uP ̟2:nvT?XY15U0~~מz˅5+E6nx.4r9 @u&56x`? Wm p &j r_D:) X "M.n+RIYg[QcDKY^z ?9쫊0#Ly{=69${W!#x NR!#;eI% 3ol, !0P¬cB@ X<MqЏu~+ǰx 0azx\ˋw9|{ (:Y^ ]i%F$Ѡ*ǯAo@yq?0+1\s%Ѷ~,9w+4D`^N٪ WWbEcIc{;44ni vVE#t.hE{ 0=w^xy5EAǐ2qCcC#zy6k.n0Z҈ 3D;W`pBL`@#'L'x8IX!oa-6cĥ=qM!WQ̨3 j8$m&@$/mCEi@s}Nzf:>,PI1o[RSD@;:/ ;+˼󉷌gW<8,8z endstream endobj 946 0 obj << /Type /Page /Contents 947 0 R /Resources 945 0 R /MediaBox [0 0 595.276 841.89] /Parent 956 0 R >> endobj 948 0 obj << /D [946 0 R /XYZ 98.895 747.976 null] >> endobj 178 0 obj << /D [946 0 R /XYZ 99.895 717.021 null] >> endobj 182 0 obj << /D [946 0 R /XYZ 99.895 432.591 null] >> endobj 949 0 obj << /D [946 0 R /XYZ 99.895 190.415 null] >> endobj 950 0 obj << /D [946 0 R /XYZ 99.895 192.986 null] >> endobj 951 0 obj << /D [946 0 R /XYZ 99.895 181.031 null] >> endobj 952 0 obj << /D [946 0 R /XYZ 99.895 169.075 null] >> endobj 953 0 obj << /D [946 0 R /XYZ 99.895 157.12 null] >> endobj 954 0 obj << /D [946 0 R /XYZ 99.895 145.165 null] >> endobj 955 0 obj << /D [946 0 R /XYZ 99.895 133.21 null] >> endobj 945 0 obj << /Font << /F87 315 0 R /F46 279 0 R /F56 378 0 R /F107 376 0 R /F111 377 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 959 0 obj << /Length 2829 /Filter /FlateDecode >> stream x\ks[_OK;~LqIVɰpF"e=M;o%ʦEl {`/9Ǔ0w~=pw V' gSq)z~cl`߅J'KeqEpoL޽ ߼M Oo޿{ݷ>~+1 t w>ЅO,g+Ow sN OzG;}Q**L%''t9? 9Aj3zTxs,Kr1WST<[Qvn+=P.WPOz/ЖS Ȫ)86t ,QK> 4"4Z_EYG>>[C[QJ)řv[S'qVl.\]'yoj? {&;_5ų\_厕9H_1a]ϥl>p1ډ!x[ȡ!Y|U ֺb}xjcܳ'@%J0 ;n*M:Mm)alAgPKExb*V[$HtyI?ZA~D]CUIBZÂÈzRhKA(f7Q΄.i[j!adwZؼ([T!Asi:y=U!M\)aY[;݇vy; B[-S*bRlsj6=(t?m}#]ŔY[1-$Anc6W+H[>tcHm endstream endobj 958 0 obj << /Type /Page /Contents 959 0 R /Resources 957 0 R /MediaBox [0 0 595.276 841.89] /Parent 956 0 R >> endobj 960 0 obj << /D [958 0 R /XYZ 149.705 747.976 null] >> endobj 961 0 obj << /D [958 0 R /XYZ 150.705 719.013 null] >> endobj 962 0 obj << /D [958 0 R /XYZ 150.705 707.058 null] >> endobj 963 0 obj << /D [958 0 R /XYZ 150.705 695.103 null] >> endobj 964 0 obj << /D [958 0 R /XYZ 150.705 683.148 null] >> endobj 965 0 obj << /D [958 0 R /XYZ 150.705 671.192 null] >> endobj 966 0 obj << /D [958 0 R /XYZ 150.705 659.237 null] >> endobj 967 0 obj << /D [958 0 R /XYZ 150.705 647.282 null] >> endobj 968 0 obj << /D [958 0 R /XYZ 150.705 635.327 null] >> endobj 969 0 obj << /D [958 0 R /XYZ 150.705 623.372 null] >> endobj 970 0 obj << /D [958 0 R /XYZ 150.705 611.417 null] >> endobj 971 0 obj << /D [958 0 R /XYZ 150.705 599.461 null] >> endobj 972 0 obj << /D [958 0 R /XYZ 150.705 587.506 null] >> endobj 973 0 obj << /D [958 0 R /XYZ 150.705 575.551 null] >> endobj 974 0 obj << /D [958 0 R /XYZ 150.705 563.596 null] >> endobj 975 0 obj << /D [958 0 R /XYZ 150.705 551.641 null] >> endobj 976 0 obj << /D [958 0 R /XYZ 150.705 507.227 null] >> endobj 977 0 obj << /D [958 0 R /XYZ 150.705 509.798 null] >> endobj 978 0 obj << /D [958 0 R /XYZ 150.705 497.842 null] >> endobj 979 0 obj << /D [958 0 R /XYZ 150.705 485.887 null] >> endobj 980 0 obj << /D [958 0 R /XYZ 150.705 473.932 null] >> endobj 981 0 obj << /D [958 0 R /XYZ 150.705 461.977 null] >> endobj 982 0 obj << /D [958 0 R /XYZ 150.705 450.022 null] >> endobj 983 0 obj << /D [958 0 R /XYZ 150.705 438.067 null] >> endobj 984 0 obj << /D [958 0 R /XYZ 150.705 426.111 null] >> endobj 985 0 obj << /D [958 0 R /XYZ 150.705 414.156 null] >> endobj 986 0 obj << /D [958 0 R /XYZ 150.705 402.201 null] >> endobj 987 0 obj << /D [958 0 R /XYZ 150.705 390.246 null] >> endobj 988 0 obj << /D [958 0 R /XYZ 150.705 378.291 null] >> endobj 989 0 obj << /D [958 0 R /XYZ 150.705 366.336 null] >> endobj 990 0 obj << /D [958 0 R /XYZ 150.705 354.38 null] >> endobj 991 0 obj << /D [958 0 R /XYZ 150.705 342.425 null] >> endobj 992 0 obj << /D [958 0 R /XYZ 150.705 330.47 null] >> endobj 993 0 obj << /D [958 0 R /XYZ 150.705 318.515 null] >> endobj 994 0 obj << /D [958 0 R /XYZ 150.705 306.56 null] >> endobj 995 0 obj << /D [958 0 R /XYZ 150.705 294.605 null] >> endobj 996 0 obj << /D [958 0 R /XYZ 150.705 250.191 null] >> endobj 997 0 obj << /D [958 0 R /XYZ 150.705 252.762 null] >> endobj 998 0 obj << /D [958 0 R /XYZ 150.705 240.806 null] >> endobj 999 0 obj << /D [958 0 R /XYZ 150.705 228.851 null] >> endobj 1000 0 obj << /D [958 0 R /XYZ 150.705 216.896 null] >> endobj 1001 0 obj << /D [958 0 R /XYZ 150.705 204.941 null] >> endobj 1002 0 obj << /D [958 0 R /XYZ 150.705 192.986 null] >> endobj 1003 0 obj << /D [958 0 R /XYZ 150.705 181.031 null] >> endobj 1004 0 obj << /D [958 0 R /XYZ 150.705 169.075 null] >> endobj 1005 0 obj << /D [958 0 R /XYZ 150.705 157.12 null] >> endobj 1006 0 obj << /D [958 0 R /XYZ 150.705 145.165 null] >> endobj 1007 0 obj << /D [958 0 R /XYZ 150.705 133.21 null] >> endobj 957 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1019 0 obj << /Length 2942 /Filter /FlateDecode >> stream x\is#_|Iwa)`c*٢dilO%؅T{ޣ,^{b(z>y[mTz8ftujG_|yrpUF, QQȼhTFNf"H#>+xroiqdAgϿ^+ןZ'u6M#9PocY?MZ>dᕕ.뭳2j=Zޏ`R[ Rxc! `ĿWX[-*^P56RF<E-C\|Aumih85tq&ZzC2gjǐzQR~JyE)%WH(^Gy1P[!t4{34zEKy?{Bp(ijnq\> C;Ļ;%y2=?)nN|6Y/ aQ CRcxC_ThgͣP57ɜ$?wokaKl]Y_YK3ёy"w}qw>3ʿaahgğRE4R29 g*H4iY G .ws{GJ?93Od(Pnxl@ 'xdn<bК{hR#Gc=>GfQEG؊<^/x< /P+&87,%`͊ƾyJO)lȱv4N@W&v ϭ0jH@n-c!s$ E4]C  xƘ>z齾/ VD郕cĘRy7\ L@u UQ d6XȐ'$tM MF[] &Lhwuwu׎0ie$Ety# , ļ'蜒Q:t}pOw^z]FCD^TsPc嵨r1_2 D]-\< #YU5^.2mD~i'V`o>J@z:B4tip̒i{i q夦fB6 it)Wo%w+1֏`Vb=trik3]:3L>3jzOў7]>o|K C]-yg \sNyu8+x3-&pf$l"۴'%ttX\eXƧّZqm6Ƌ.uʟkrx2&5WK97McfF4ݬdt2kr8 {$*d2U''P=Mܜ_H(zE=HbTbZr+)|)z'=b&_pNFRxԶak7y.ͮS¡RUefS/w9Cž9pIԫmV\ h !zdOvW--gиGNa馚bpKu"!ʺ,3ڗM2}˾k/ 6JzV<4Z& e]ZL\Cڿjf5V/u%{iRIiJ5$94 HWg/̉Mve|\Xr5aRf=͗ 5%} ٚ'ռByit]>df=]Hg43m1O]c./8î|k^)FI ˔nrv|%at68.%Oo}lOPLRn@-O]3B`;;Vo9q[t8^ŷVP4|g`*BtN[ , 6]w;|2^B}K\hc~kw->ĭ&M-cr#oB!}n;PmʐaW% |m`Urrp`k˪4s׭ l&оhl}$70HfFb:i`t.PLhF-0=cȽ!Y6j/\41Y3DLM eau)8Op8XI҃dt@5 /]-C3(/'4D-?7P($PhPOس)E: jNh\OG`!zٞE %}?yY_?YB3I%7q\rG'dI endstream endobj 1018 0 obj << /Type /Page /Contents 1019 0 R /Resources 1017 0 R /MediaBox [0 0 595.276 841.89] /Parent 956 0 R /Annots [ 1010 0 R 1011 0 R ] >> endobj 1010 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 343.868 113.026 356.331] /A << /S /GoTo /D (figure.6.1) >> >> endobj 1011 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 280.233 113.016 292.696] /A << /S /GoTo /D (figure.6.2) >> >> endobj 1020 0 obj << /D [1018 0 R /XYZ 98.895 747.976 null] >> endobj 1021 0 obj << /D [1018 0 R /XYZ 99.895 719.013 null] >> endobj 1022 0 obj << /D [1018 0 R /XYZ 99.895 707.058 null] >> endobj 1023 0 obj << /D [1018 0 R /XYZ 99.895 695.103 null] >> endobj 1024 0 obj << /D [1018 0 R /XYZ 99.895 683.148 null] >> endobj 1025 0 obj << /D [1018 0 R /XYZ 99.895 671.192 null] >> endobj 1026 0 obj << /D [1018 0 R /XYZ 99.895 659.237 null] >> endobj 1027 0 obj << /D [1018 0 R /XYZ 99.895 647.282 null] >> endobj 1028 0 obj << /D [1018 0 R /XYZ 99.895 635.327 null] >> endobj 1029 0 obj << /D [1018 0 R /XYZ 99.895 623.372 null] >> endobj 1030 0 obj << /D [1018 0 R /XYZ 99.895 611.417 null] >> endobj 1031 0 obj << /D [1018 0 R /XYZ 99.895 599.461 null] >> endobj 1032 0 obj << /D [1018 0 R /XYZ 99.895 587.506 null] >> endobj 1033 0 obj << /D [1018 0 R /XYZ 99.895 575.551 null] >> endobj 1034 0 obj << /D [1018 0 R /XYZ 99.895 563.596 null] >> endobj 1035 0 obj << /D [1018 0 R /XYZ 99.895 551.641 null] >> endobj 1036 0 obj << /D [1018 0 R /XYZ 99.895 539.686 null] >> endobj 1037 0 obj << /D [1018 0 R /XYZ 99.895 527.73 null] >> endobj 1038 0 obj << /D [1018 0 R /XYZ 99.895 515.775 null] >> endobj 1039 0 obj << /D [1018 0 R /XYZ 99.895 503.82 null] >> endobj 1040 0 obj << /D [1018 0 R /XYZ 99.895 491.865 null] >> endobj 1041 0 obj << /D [1018 0 R /XYZ 99.895 479.91 null] >> endobj 1042 0 obj << /D [1018 0 R /XYZ 99.895 467.955 null] >> endobj 1043 0 obj << /D [1018 0 R /XYZ 99.895 455.999 null] >> endobj 186 0 obj << /D [1018 0 R /XYZ 99.895 254.953 null] >> endobj 190 0 obj << /D [1018 0 R /XYZ 99.895 170.538 null] >> endobj 1017 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F95 356 0 R /F56 378 0 R /F87 315 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1048 0 obj << /Length 1780 /Filter /FlateDecode >> stream xZKs6Wp3'A6NjzJzEZf"R(t߻ )tֵ1 `-"i${/MyDHZӖ %qa6oK:ō |+l|xMYu)Kvz2>e_2eGAf0dHEqtxrx~'OOp=Ѫ$dD$#e$m`Pqצ-?^~]ם̨x]s)+:e,+e,+b !C{%[B7{'$vc%wi ~GƳqdkdŝ]ociY)*Jl~~'Uh'eXa%3x46"HkUF*el_* spv2+ F$ٲ 릓 =ŬY,1[!M] fBm*ȟABY0@ʧluffRSx*QutEFcѼEYCcݼl%*pìmtv uoMQtm'EoH8V1F̀03XzZ 4:c-(\V%%R`*Īh9nA\=wRҧ7e6rbg^-B' ^݄T'R1i E="B %֬IoE'M\5?ǂwYǝ;oBYfUyɂp-YXP(J{ GFJ۰ H?}y)A((&* ?X]%1]\]P$6C@>AJ֔_mmP*UҊ53JWf֔TAْ8\pDP}J9ע]KK_Ʈ:ZWSv i_R~ᐊ77A..V9_vQZ t (v핁b rBT+7*ꏇGPcjܼXzCVZ X%kdPuC~AQ>/iȶDγf}ȸI$MVU7qgXd風~}:J83D:˓ԁ%z?R$*" |Xny-|x.}:Zͭiʅ7` ǥb^Q`dr^Υ^k@DHk L:$Cƨ>XI ['f endstream endobj 1047 0 obj << /Type /Page /Contents 1048 0 R /Resources 1046 0 R /MediaBox [0 0 595.276 841.89] /Parent 956 0 R /Group 1009 0 R /Annots [ 1016 0 R ] >> endobj 1008 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/compiler-stack.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1068 0 R /BBox [0 0 216 288] /Group 1009 0 R /Resources << /Font << /F1 1069 0 R/F2 1070 0 R>> /ProcSet [ /PDF /Text ] >> /Length 638 /Filter /FlateDecode >> stream xTn1+XЅ| رT3 EJ nɣNp.6@KrvkiYǔh|f>ߙ;Ll2>\LS9 4uPVex^4iy8=G0eoaޢNF?baz4Nӆ/;>(W.aQgbe`oӜ6˗v@Mk}d~)1QMxSXd&F`3rcv0-A03#ȹבwĴ |;"rSl`iC(a? HR:aH:Eہ--u'/&Q#z)_[dY`AHզ:jo)gV 4@ʴ2݈Tm(Rn bM j]C;8;WGk'Ř"N$Ym$+Mjz"$|b$=x5 ä&A /Producer /CreationDate (D:20090302151034+01'00') >> endobj 1069 0 obj << /Type /Font /Subtype /TrueType /BaseFont /BAAAAA+Arial-BoldItalicMT /FirstChar 0 /LastChar 10 /Widths [ 750 556 556 556 277 389 556 556 333 610 610] /FontDescriptor 1071 0 R /ToUnicode 1072 0 R >> endobj 1070 0 obj << /Type /Font /Subtype /TrueType /BaseFont /CAAAAA+Arial-ItalicMT /FirstChar 0 /LastChar 20 /Widths [ 750 277 500 556 556 556 556 556 333 556 277 333 222 556 500 222 333 777 833 666 500] /FontDescriptor 1073 0 R /ToUnicode 1074 0 R >> endobj 1071 0 obj << /Type /FontDescriptor /FontName /BAAAAA+Arial-BoldItalicMT /Flags 68 /FontBBox [ -559 -376 1155 1030] /ItalicAngle -30 /Ascent 905 /Descent -211 /CapHeight 1030 /StemV 80 /FontFile2 1075 0 R >> endobj 1072 0 obj << /Length 267 /Filter /FlateDecode >> stream x]j >Ask!),zi$cy:zB73/3#k^=:j<,v6(2ܢtY8¢ߖsgF[UFwWe#+Lt1W`('uM' ,e} 7Lq[V/⼦UW+x >J(r#ω c%95'?"?||yu-Fr>I߿p֡+o endstream endobj 1073 0 obj << /Type /FontDescriptor /FontName /CAAAAA+Arial-ItalicMT /Flags 68 /FontBBox [ -517 -324 1080 1024] /ItalicAngle -30 /Ascent 905 /Descent -211 /CapHeight 1024 /StemV 80 /FontFile2 1076 0 R >> endobj 1074 0 obj << /Length 315 /Filter /FlateDecode >> stream x]Mn0>"&$$BJIXG=R1! n_'m.@c95ɫU 3 \e2ڨ^ŷ:ǒmiX,y {:,yWP7`;sʒkC=w$ѵnt6?‧E&)+(yQ%,^}v>He 2pyAq%"sZGZ}=rE DLԤ9)9%NȔ}$wq /aq?F|缙 endstream endobj 1075 0 obj << /Length 1077 0 R /Filter /FlateDecode /Length1 23888 >> stream x|{@T{޻<\]X%%"***Xay$Ҧ46/64m7OSmy51iLjmbߙw~ssf̙3|{Ѱ xp5w(o |[6v m> ٴɋbNj[ 0.1 +n|m͏t,JzǛ&cuwL,˝.7c]@2P{w=]]iEXGK?HF(9,RLHIcҶ{h4%kb'f8Ka/ U-i$9.dP9"A ߇`-|(. ٰXDj,#S{…O9P $Qӫy|4n A a~O q.b ]8p%pa+|p6t9P VḍpGGs{5-z耟/ViDЎ? /)VZU1VcNB(5p? S$rG-skwŸ51j4lM;ÚٜcE)v׋7# Yҷ[{H/i6.8,LR&ROl'u$ H["9=S,B4yA0!0n |=Bte=!~[@0,H |Ø2Z$ a [s5jQ'<wp MB@жooY7>U! B g01d$\.|2[I Γ}Ǖ}nE%p`X$ܭY)^&<f(Hn囄c5]A>ܜw!q3I 0B=-*H wb,|:![cY/bDaw~ Dc/Y0 &n|} ?0 bp%Vi܏Qy7  "^b\IxF0Mqw1Ƈ$tch'{0^x2FS&|knx#P+5? }Fp pψŵt2"Wp OI)A'kI\yW͝SZ2{VqQaܜlcF=3#6*[MMKMI6'$& 1(V5fW4ɡ̦i[(mnpOh X|9]%N$F rjz&V#}[A2z)LVՊ=js["MruhAo@uSۧUzra_I=R$[>40Km jJUUmUTQn ծJZrCٶ!!@%&$V$6Ӂ:b M[{]}w718nU(隓" >56{eZ.j׆}M p[yUNEVMk)to6CRB::džjyf Uia`epKN>%'{1NXJDL&O2k[1j``M^04 o`xnx$|;6$ȜAc>͑( շ&\xЛʓ'I#ܺ>>n|ˮߞk2< 14MwE/7񸑓8BΙx} Q(3G ‡ j8'IɳY>d/'~Nf423ͅliq4.JgнYSBTX@w_{=ݞY\4{ɴgڦSL;%QM! sgL1s_}=^x1m)yZ| [dFviΩI&yM;Ιj/go=Hr-DK*wGtoصܵ57/RL"są&8JEO!6̫O z2-ró(ޣqaB!vCxeXcǦL5dd4Mxft^{y+', V$Q@ŧ2QЪ$z6HcE5,Z5t]u62s7KRȮ u[>m)CTMl0ۜuSʷSoL (C!_R~s-)ϦL)Ÿ;l|m'ωoƷ%_|Iy{J򩔿?2'iX)5NGɕJJ;v"Mf5D9 93`2G"g4w"ϱ',Bq<@ +bJiu!JVbuTeFiܴڕ226p`0dC!lРBB9͎$WyqcOr%Kz;IHJ.ىk}sQJόÕZХ3J Jvc &Pݤ./#qE&a--XO2fBzfE!bYtaQ@lTT̚M;p$a{?N(o x/T/Yͭou_~_j՜y j~y]eĔ+ ˛t="~91ZWhd͠fJ! P7]QYYo< ϐWSS^ $>6eZbWp@H!`v*kI7\2k8݅ĊqLg |vGL .#H4FJo ȌɋS#7.q;yybcxwXatqKp_+ `n< A"oŵ"1Xe9B&NHMƑؕC<cFCA12Ǔ#TXf/)-DK#Z:y7e=J$ED;;oa={k 2خGF |,d{|)q5ėDcVG$B&؈SSHC%YuHzc~߭;.`̃y6TI Я!ayNB(/^s"?]}QχFt 1M1]1| Q^_+6]( 9!RFL+̣n1 cюGǖ9f(M~tZm5D|2Ikc2f>6/$r#fF.DWUwopI17ĎQgӴ)Q9.yJ%^nj-սVKQ;sF(-Uj9jMLk5͖[-Lwc!1kQߗ>~&Sqig,&gZFOxYk>$2sG$ F\\-A<"O'HZ@3h+cg'Oe3͆ے87}ۯ_k[{ ˚;!uc9$iCnnޘ,bf | c)5 f[8IЧᒨ&Τ$wJ{b۩'IQx[zMvkAxD{(yZޯyTmKCS{n ֛7m68=ZXu SLlL˙i1 k5'&$ɛ Qq\\3A/zT"K a3i\}=""cģҠD IDz[g8-݉ iTO4LMæ3& w%)t3Ɠc;s$M7N- 0ѣW^ ac{L|P0pv_(x;5N'VYtovh}cv•9K5xySc/UY3 =m3=c`;X4C>Og|s) ή͊'/_\*lN9tH׋.Գ]XdcE#Ht-,]{c"(aQ,֊E8Bj\&9%m*Mq=ObuJS Ml?F+ZS:=3MPgBD;;OnO;i⍱7IjZ gpcWFn[(~:5^S_h[^ýgاn5rQ&N :ސw\pq¥8[%lD#H0bf;a-ר/k]4^Gdl Q|k0'[Fȝ֨Dғ_4&v*{>.l:rmSYPӟ"ˎrSB4&ky~/=0yWn_"dv,cC'՟Riwp6btGJ Pl@mجhN4GHreJ>N3MT"FN:Uu1:<Ҩ3FOȖU1o]g3:=Ҩg/`/494UZZfqe4WNJ^JG+T?h旜S* < nh\1A:1U.#Hӫ뽌Cƚv쟋Tw%k&*liq-\o&7rTV`vWbCZЋc91Z /k=gR}0~'2#Q ^eBǏ-Loא'z<_I<1Pk<[ ~؄uTd_a{OP(C-OqV17~J}zRiIAǥ:u!o%< iq|\ lP^ZژEݨM~e^/L rn~EF.`^fKN6dD4L7ڳIzLb}if5PZn6G_R=a 0*xȭFxچIh>&K;RX;ZYEj 0x1Wd75=QkҭF ӔCUG3UV*0aVҔ zUԙx+Mx5Pδ8&"90>MȠd[3J#6kacodJ¼غR1+]ѽ {JAlج˼xSz*3n8߬ziCJiף&>160 =-aX,v [e̶x3iepO\GXKwxWc*Rl RV[1xFSCS"XuXKF.6HDykG1chrT"DU֯WuModR<1u4{Xa|7R ~e"o<:yǴŏ[U<^^UH-$eb_8^Rn`QzNU|ޏ?ztS܅~T5qbmf2/\dVp5 = ;,<l3JC=/0}jTN3HgC!&kMTm/Yo|?򴺛=r]G^J|~w딻ڛs*w/0yŝofii~^ rvywc[0 <^OKnko9A2Ё rK 䬥f/k θs$F֘CUuntd_WNJ{6zA"{; ^%׺r\T^ښ+;[dO{׆l~wW[*\wy;7Ҿ^|ҷE/6݁l*mUZtPrFz[O3[V ь\n/6v݉mnosߋ z=r6٫}`3CB{S"h@. z=݌D?Wf'v`܃pS=~BkO{;LWÇx;[zA6@3:d~&F{p Ł-^FmkCm.O0"r;C:;=8bn/5ٌv*TX@{l=*L/p(' R{n <ۉ=lhؽjw!hNO_݅!K `uܶ`kN^^___n f_G^[=#H,#ϥ_Ck=˲u,[|||e劅+V/kCFFML} ̢Ybl2t~_LцvfH%a˯Eb܀gQ&|5gzH *ǖM@ƥZצIR'XY箋(38?} G_,M\ߍ\~7rw#ߍ\~7rw#ߍ\~7rw#ߍ\~7rsFƟ|xAGH.y% }bf Z;Y_"rwUdIZci|W-Y5/=GWDrlȽoDNjqi5j|'˸8"˞}UO=VOٚ,OFO;*|E'*YBjRq X75'qW=4ׂa狵62?MOzu痬U|l_x/&<73y~мB W/V8ty T8C~)l&LaLvrL4=`8~peeCb؉mL\'wH<$q{ŽS)qg jb=? 4 4g9r>Z|>4bڋ00&YZ0њrL1!LZ؋W"-o,oԋ S.&&;&+ˇnټafiWVL;0 |lX0 lK%Nt?Q2?y?)SeiH(%[de鯘^ԇZLWbtbL ğ EA:HJu=ʙq yPCYqW%axY$ݘCc>~35,桬|CYC[*td-صTp{0_=lՐ3"aP = ^n򦂝 Y>dOgSr_#ZrG\K/X^`y2+/r,O t&ZvX@0b5kc Ep> {~ɎFò6wd YV0x%Ձ:*9db](R-WXOZs;Zf枴Ֆ^eu.F7{p\?J~ip4X$ INi0S̐ISDm֨FkZ#lWf@Е#Z@|(jV8kFlgMH[}@kCfdmD*'oq7G7qwIT5oh?1$rsyU4W Dh|,@(>\]O x6s4B:r+\H#"]+dvdɵ3v&NKUeigid,N8~wߍ,3ڻj>ߧ dǐ<ԃ" (ކi,#yVB70#J!$LT\ԃhQr*r*hb66kM=HPX^l @\qQsJ1  'P]?A 9VՄJV\UOCˍ<ۧajg'12Ӆ\x^pa'\pv}ۅ w]QX endstream endobj 1076 0 obj << /Length 1078 0 R /Filter /FlateDecode /Length1 23100 >> stream x|y|TE{oIҝ7tB:If$Da3#i:%I!8`DaqGDܛM3l:(8:~t<ܪSUN}RU}BA/Vs.(ų!$;{~@5egNhތu?'I5-sRk:!.h͖DGu RsRlDϟiE?mr+$p0DN4FG lH?A`ZPDk0\KA x^'$RpiPKqxܥ**9x6Ch+QQg$GU} 2pa]/VDYp$-dC#+C\LJDO&8\L(ZhA\3 gdr~@P 19a!~ k` "v7wFO>J]UU+b&)$$2#q*>?eq[߄F]!mD7FEOG!.1mp=@m݅a(S+x ?KH5"d#y''ȫ\;~Ľ;U8za~HEdgpQcH1Dӎg! ^wc)-#Db%d',!-d&!2LEn!.&GQgoȟGcDa s3<.+nn;{;=׸_sop7g!/o $y·DŽW [T{UWzG jQ}zG}zT״h4ihy\ Za8qW:釻_A>{,'#ou&dl  |Ad?<[mL a_ (<V Ӣ?G^џ+".!"d]1,[^01r]WcGH4s3`WԸmhf\V_RUYQ>xvQaA~3wVLnj >=}ZZj͚`1&c|Aj*T"Gc َi USyRcr+.$T yRC RFɪVowIs^h!ⱐ=[O&RCqCHCG=wؠsyypXo@ҀT8Ls #8kCa(U8QNqS|V3>-#-?/L5i$Z.Nn͠i[}ƎFz'EVPREy j)ss\݁ I #ѷ!AYפ9').)ejK~a,yhRɄ7(N18 ȱ ,y$Ձ F<Ȇ?m{;Q cDX%:O8R?JRa3KBSD \c@0C`I+vk*D32VouZ,e ֦W-uЖ3-I+hX1v"L kcLbrBCOU$f޴ԲUjPmZ>$W*Pʧq ť-3-ƅ,f9Ѣ)"5ŎrڦF^,覈rN-_2ʳP-%xQHO}q5YGe+D+:3yI+]zU)W'5yIjg0$ ͮӘD;ghZc(|x,#EyW/ow֮~R4w)[[nzq5QNp$d :.aLQisfd)E\ixʳ)x63 nOBZ*b6Cvã}ܼԞrݛȦiq;GD3\Dl~fy1Ef'[nE7{UheJjg)99ޚ@)F[\%D-ǪαtͦKIi!.9Ygb%vkuUJJ\1Q%qҮ ]''KklNXtV;3r;s|Rt)Mk,K`بj3ϡnn78U׊8*gheuZd+3I[^9YI VjeŎNp3f7_cy=o>XyuG\pߞuYWa;ל]}EOrV%Vu../&XI|`WkQq9s6n8*b抯'b5x! Z7:bm%+j`1mg ֕hNXhl=f4nWbuRijۈZ@ʆ$Rn|^P)éw$(~p`Sm{S9iAMot ':w^eZsEF_f^O?}^9r RDc4q<޸M>n!jS9NgeKAG"~SDF!2.<֗NjT4Ϗ2d4s zhbF FϸtFk YhG[j {Sv g6!@dmv8V !w/-[b 77oyhƯ#"+iT]Q siW|28B.VjJr BaNvnizd{ۍ,qk2]8b u*%DyUk<(>ྫ:Õe`nuig9Ab!NALW!).hb.nK;2<ɥaMȐ)vx(hZQzllw~r<~TޱǪk̕JEUH'8Kw K{]Ev*ÛY{gฎ$k#;>,=iU“Xt#i?ӌOr0rK1m9u 55To$1,{˷V>u` H i%>&k#U<!Z曎#"*XUPO*p<86:4C|?,Pw*p[э9p*{+#8lsksf%r,%`bqΜQ.lyWL6EGѡ}v_|@ )!exS7}/O!>wh2JZgRU%ͱ7L TYBəT.TT"ޟ\-xFmdv#>Pز*|- b1s|3PEјKh0Q'BT.upe6[A-+:CAN䉼OY&ƣMxUy< =cA;Ob GL^w$Rr}пӾ)lh??`ON j5']痸f<7,:}(<=\ qk]w7Rn3'(=aAꑸvp0^h ; |n\f GE  Ě42 jOШ K$bJBTi4H+Ae}LMМ9dm O|Z>w.}l;sl8+XK hblLzHP[[dIJdg8^mƍY?տp_WO総nF;j ss7Ͽ:Vg*]6WF7=?y?]u[uxPO.Su[ <*>hI5*&GAth 2JA-A9LビBp-*@95 4P4P"9V(V  Z:ァaWbC5MOQUWk bs=)/ѐ489#8+| dH WbyӓEej4w5ϥqweǔގ!#Ө52yr|'o`PȡmtsF ?{+u&c$Ji4IdKSWݴ䄴iBo"Ox]jbYQ,wnUuK9HRQ+/˦tY#A ̉L]OH ]bGl{#Mŏo?M\ sbWJ,P`;1ʭ) ݒdG^`csd'.k l_;}B7|%5g*R.qF~s<5cxjo.Sթ/>7r/Zm?6zhPʾiJ;] 7ZjJbRZgN5Y@ԌT+^kFRnFDݡPoUվiv"MxEgsP1cPCj{l?g_+5r!(N=ϗjGކ[y#p,\wȞk'WWtPZp2r}j'֏=,dv5YfR\$FָA bPTdaTzDJDWQq*-WB ڵZz]+hE-WlmG]Y.8tj(U.ʙn};n%Ǵz82ɒGëMɥ-szl=v;~ysgkL՟jSU佁-I;Ɠ_"t~f͔Ijd*/N|z9sB=櫐'#y(K{ՕAXZ XC~!>R> #*;uvR+9k (CZ L;+n\dŒ=J CZԄMg?O5>ߠSV*y8 ]{ \} ~e%>?JZ 2+e]&co0/8:4nSu+{XT/Ǭj|{ (6ǔzmyt%[0(12{5J&[/fY7*cPܠwzcr҄c>2Z6 Csmza=֏#Km[amFm](OdSe)QCbeSncq&_a&`^2[,fv7C"A}HF1K<>>7e+`{c۪p-q駀qM,:!G^gR05^;;ifqOlħ-ҋ^f6/Ý?Xr}3k ^֤X'2 6v ͌Gq=e?m=OG9&>%ffxc1zk2 J,]ۍ9C9N^1RK 51Q&:ZZe*WFfUMEJ[36Y{J )+f" rʘ|撣I4)'osIIm|^I:ҾIH`Y:/d{GJ+1mN> N?'A8'YݧDT٫Sm߭h>s M^|0E=1rV鉤Sه6L>]/|ʝB(5qb1quI ϟa~?U"r 3>Ԃ|3|)=Lt6&YOoOV@YTˡګ ]>t^ ^l?\>--swR:Ge KA7Noݟ' ۇ}Wsp{pXywmt>T.~.ȍzz$2]`Wz }~'Mi;xx]hyۃ``@bH7xn(uv dTkI&+NI|[j04띌 3F=8NOۇzs;n/c`nzϋ<"/N"`Iލ>oﰄk 1| ސXAe>XhR MA*젇/uq8".*vKxQ!4 TS!c>w{` <žP_oa_na_p.V~C^.͋/h\PW|fiqte ReK54/ QNPP\A!zcL׼vXҞjm3#,8~z%HmحǍf_K{CsH qe,Lű~޵!GMZPh1(bIܽha ZҊ~f5) -W.!h_wgZeE]NuAH=J`ǒCCEQUÒl BS'bx,X^A6 =7Я ͘=N >[>CMz1tNQ,X= Ӆ.<,9A{e  +&SQZ>K*]_TZTӭhʢٳKK1-/)TΩ[gBE\5<Q$x2ϔ . + . + . + . W[$XS bz҂:!=U-k-[=̬B\r ]t0" uK*ɷsiJ}~3Ob3~ E>Q|S[vF/> >36Op1|N!>a5Ul ˎ6o勊Y5_rwhFZ>pJ.Ζ˙Y[jE&L g >N~hRMH{45t9~2uٲXX}X[Nt Kװ,5)4Kci!KkX~2~r?=e<v"N\ye''^ ً).angs|{>>ro_ZZQ35J>?=tHZS # %Vؿ%+?jq%?SBO"Grr7ٗpg~5f`2=iU*{4Jgi,q X;JvF{I>ZL>nm l'fiwNfA4k5/.잣]]N$j-ZQkiZV?"MFM9ou8`!&i<>てRD߲*r#aK4-g W8F5ѥrgSXduaBni0cQBnHoIj 74G)ߣ4C>PCF:`|hv2_HM'P\!m[ߞw1>)sJ+\Xvdɰ3t;c4N+,16O&x2O4Ogr~FDydm MF0 :b endstream endobj 1077 0 obj 11289 endobj 1078 0 obj 11240 endobj 1009 0 obj << /S /Transparency /CS /DeviceRGB /I true >>endobj 1016 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [475.786 430.253 489.903 442.716] /A << /S /GoTo /D (figure.6.3) >> >> endobj 1049 0 obj << /D [1047 0 R /XYZ 149.705 747.976 null] >> endobj 1044 0 obj << /D [1047 0 R /XYZ 278.556 491.058 null] >> endobj 1050 0 obj << /D [1047 0 R /XYZ 150.705 376.581 null] >> endobj 1051 0 obj << /D [1047 0 R /XYZ 150.705 379.151 null] >> endobj 1052 0 obj << /D [1047 0 R /XYZ 150.705 367.196 null] >> endobj 1053 0 obj << /D [1047 0 R /XYZ 150.705 355.241 null] >> endobj 1054 0 obj << /D [1047 0 R /XYZ 150.705 343.286 null] >> endobj 1055 0 obj << /D [1047 0 R /XYZ 150.705 331.331 null] >> endobj 1056 0 obj << /D [1047 0 R /XYZ 150.705 319.376 null] >> endobj 1057 0 obj << /D [1047 0 R /XYZ 150.705 238.236 null] >> endobj 1058 0 obj << /D [1047 0 R /XYZ 150.705 240.806 null] >> endobj 1059 0 obj << /D [1047 0 R /XYZ 150.705 228.851 null] >> endobj 1060 0 obj << /D [1047 0 R /XYZ 150.705 216.896 null] >> endobj 1061 0 obj << /D [1047 0 R /XYZ 150.705 204.941 null] >> endobj 1062 0 obj << /D [1047 0 R /XYZ 150.705 192.986 null] >> endobj 1063 0 obj << /D [1047 0 R /XYZ 150.705 181.031 null] >> endobj 1064 0 obj << /D [1047 0 R /XYZ 150.705 169.075 null] >> endobj 1065 0 obj << /D [1047 0 R /XYZ 150.705 157.12 null] >> endobj 1066 0 obj << /D [1047 0 R /XYZ 150.705 145.165 null] >> endobj 1067 0 obj << /D [1047 0 R /XYZ 150.705 133.21 null] >> endobj 1046 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R /F107 376 0 R >> /XObject << /Im11 1008 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1083 0 obj << /Length 1535 /Filter /FlateDecode >> stream xYnF}WConc-$MAdL (={Dj4#̙3 ,](C/yu9b›So)7y]X)OPAJ[G^WgWWWe%#?xv.ϟ:+ #_,Vِ&W%Ng) YdtmlwFMXiߗ“zI0dr6i4Hei<#OCbrTSuZhݖ\$y%'[I!|@&9Ii$2ȥr '~V Ot6: I%Xe,  O5}ZVzx֞n ZO~tzr}qb*l_{(qZ,5$8C121>r)ᠦFr hҌr0V\P%(3ۏ+ H༅9sJazVd)t{=’P gE nũD QVrKӦ}֒w>W Ȳr{ Ĝ4YВ,'4]nJaI!rAv'ݯ]K\xv1N6FŦDS1ݢ7uh30}kY7 oBaML}'i(8"K1'p^ZV#^#:`$YL)Mn8dӈL:N򗫠~M:ڤ!JA;9 :äYcYC N,>oMV'3WE,7H5XŕBgcC4Δ>LuvN@BfxVԐ:#]cK1|ub ,.a}R@o7I+ mڹ(0qeNuz?ƶ /8&#*U46^OާqF#N><8%q9 n%p#Nc+k)8"TOX endstream endobj 1082 0 obj << /Type /Page /Contents 1083 0 R /Resources 1081 0 R /MediaBox [0 0 595.276 841.89] /Parent 956 0 R /Group 1013 0 R /Annots [ 1080 0 R ] >> endobj 1012 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./graphs/loopgraph2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1096 0 R /BBox [0 0 277 347] /Group 1013 0 R /Resources << /ExtGState << /a0 << /CA 1 /ca 1 >> >>/Font << /f-0-0 1097 0 R>> >> /Length 1264 /Filter /FlateDecode >> stream xWˎ7 WV7`@@If`t`A`O;3>o{%|bv'}'>Jej=/R$h!@^JqqR!5}'>'w"k@(vmRC& lbܳ(vd/J;^Nˇ޹mw姗/4Ҩ$F=戲J,E9U5I N{[5n^5gI{UUjPs v:"Qx''TOIީPIL֪gBᇉ;= )+SJuҒsM9hU+l_Pn ḘCb+8-:}-ۯ- *H9ZH/zt ,@Ⱦ^*>9d> endobj 1097 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NimbusRomanNo9L /FirstChar 0 /LastChar 10 /FontDescriptor 1098 0 R /Widths [ 1000 611 500 500 500 500 500 500 500 500 500] /ToUnicode 1099 0 R >> endobj 1098 0 obj << /Type /FontDescriptor /FontName /NimbusRomanNo9L /Flags 4 /FontBBox [ -168 -281 1031 1098] /ItalicAngle 0 /Ascent 1098 /Descent -281 /CapHeight 500 /StemV 80 /StemH 80 /FontFile 1100 0 R >> endobj 1099 0 obj << /Length 1101 0 R /Filter /FlateDecode >> stream x]Kk ໿bb^(K}д?clȧ3#3^^+>pq'IYPwi3a[<ν-\`,̈O蔞`}ѰZ3j:(u̾}/B\m26P}[FbG-Z);ZE.%1RːZ 二&}>Gѧ*}d,w[o΅ӃyJXccU~ endstream endobj 1100 0 obj << /Length 1102 0 R /Filter /FlateDecode /Length1 1557 /Length2 26589 /Length3 0 >> stream xycteݶmlٱmU*mcǶm[ۨTm{ιZks1m)HUL\Xy@[cWge{[y{Ye3 WBEhflldb 0xqRؘoQpfN@{;N df5r"go31Xyyٙhg^'{c8 {O' /_j5e ::#,<<<c2Q3g?Al* ,l<,FfP71mnj'Qd 03sSߎ5ZZ\jK^&hlhg'&_8, t23S'Rvvc3{L]쀎fR5o'-f6#Ē鯉U=&L}F6f@s?78og#73'ӂcaM\f@;GÖ3rqztt'?ojogFf&#Rff`7),lf`0rXg*+S2J0C4M&y{K$Gn,XdTW,"[#CqWIGHY_J1rNF@a 'b!; tz*]L,"L͜lvfN 3MZM̜,ߜN$fgbo rp<<,7 1{3]\]|}Np dog`rqǴt27]e0n `ri1ݿ?Odod6LW'?[zOfff&p̌+_c90ݵtcA3%Aޥ#I`?_'6[H {Z4evxpSMvi<,}'=.0ꍞ6r OSJM$hV9@r:VMEȭErWdJBqGn@J,v>\i\f8oe#htCzp1o~$3Xo#oNa ~K =?-6ki {"?e[[a]8O*IJJN%EfegST{}L[^rUE2gmO*]mEd:dńdb AI>΅[ ~Ppn$cGɿ\(r q'VoFT ڐ!";)lF6Ԗg^Z6X"ͩ{;x/5^%BS&Sp2xtZcH"D+×ie8_ hRI+TΓ]>-obh(V~Ig֮ u<.kzݵmK=!qmJ3{? F pzCrȟ~-yxgj6["Kָ >x|tl:]+Shy>/F?F5ZEl25RYq7H G,5Qan?b]?s[ VtXE*PDP (9*!ma!C`:kf-~c{=lY/Ԇc "t-O=< G[44/,5@mhi[,-N= yck٢ 0UЦsoSIRcYu~9Ʃ~RkpV|e4+XA#LZHcC $WsP7#1瞻eU< >]ɝ+`.xdJY$n5 ӵomƿn_(j/._:2g$8uҟ*xpYj3Q7G<Q@?|pÚkJ" cfŮD٫FR =GxSU#P*qx}8Ǻ NY `$t8QK]eV۠$쥩֡ڸ{Q@- ^9aJ9V^w]' ED Z~xb):k\9 )}x_5m^6b&0\ػ㔺G R*۝2߲_aV >8߅/n}/aLwxrTA<&2}3z4~>}DsKFf aXX~X; -ՂW9hXhpއo[V%`.4_#w=eQ-Q)zU*-2;|g#  pVk^3aF#ɻP|˕CC:@+х΀&GT%!>5MՈFAL#,dRQ(-qyx:ۼ]!BaQ鷊F^t;3a)kj -6] {)9c݀ Pj+&{\Xe? ܧ 674Fׅ°EP4Zr8Vw(nm-~arw7'+L.W;kvGqyDcJc_9&;tY3ld /ka(+0T6(p4AR]BdνʥT?_2:OnJ;>??;)K(q;30 ?Nev«?BWPQۓfW-5bsqO;yMxqEN,~eg,]5*o'۠C"qE=l`Hխ(mf.fJ꒏]4wDBQ'`uVbn5=~>X>OfA-e)}/޷y:xֱ{t!WU"!;H[Δ쬆]A,um?qXjГ;J(4ven\_p-s`Qř=Ӭ[M:PmS,%3-?0)UEz܅W|\ڳd+`5_ ΄ͮqntp2aYԵ~U1[<3Y_&gZtBkѲNI %$V |vm<_R1#b: [fU^?yu +%ڟ5d9Pw{1l=Bez JWD!F%d>4迱;YMIRc*6ś^Na *OSfNOc n,Fʁbd-%ĬJ;L%K2dkbe E2>2ARfQK Njzr1/zĽ(k8[Oq*LIۮ AucvM׬2BG V'} @3D\ܱ ge0e  țQ4U ٹǵTT~>6ۘ]T ʷY;S'ɻد_iH-uvX59|~Ϯ#.C.+}pJE^ȴEXpUmF˝#w-ZՇrtgMxRoUTv@gEXb\b ~NяFg 0.ߛW/%Zjf(0\]Q]$FfэvN bkǨ)0F|L,wjh03c܉\J'T H t B{ Bgɳo 2#ήv<*G#4qxǮ[e\>W nT<[fLt֊JpMc'3B])"\-a74 o{q"q@{չf=,}b)Tͤ֞C_C}=+XE_+O2T&+9sx~CozXPQW^qsA?)i`K #UG.DDm+WAisi=/TmZ 4rFjLM1E֩bF_<*YbJ\r@7V4hfmujFVS/$•_13Ga)[?d xޞku[!KjӸc#F<{Ԋg*TߖG{Jβh_6"51H_3{BQA2pyqL|LpbEouVʶ_%ekHў3E^$'z`#^Ƽrő6^Y$O7 v;ͦBJ"̍ƝFڳUgm?x]-%:#eB90^Sx傤;<HXrEn>r S dJTdCK>Yvf̵'_~4kNL3UeEu#vXj"0.-y&LSzyCg0iDIoAg/—ᣫhU#qh1[K_0[-,61a(ixq{dd8@J63Vh8m|:vAaHɯў:]s:5lp<l?dD| b V<1P{=jj_)űXMH/yy&R.̃yAu8x$HJlZUT,~ݓ^Z^N)/2;n\.GIYQvs1H|74`얇7p'~_ Yp{}C%dUp/nFoeiȶW'`3⥮8_ j\b/#3/yrmpw,8=Y0ҷ-\4!f (_ äКPztFk,oXNj)U+%+!y})zWKx,w'YrükJ`ejh>voS⸚\GxQwB-Lkk=J7ezjIK#<˭-PM>VZ# VCNLXH,& QJ夠Vq%-.X C㉣K1/ǖӹZMdk k'^ yyR׻Pg1AcSć71T K_aYr>NDlni DL2\lU"/C %IF3& L`pw j.V#[\P FEzܟm݀1)i{8j!<+|aWl+,C5'qW ik+,ȁ AG1cɕ?%|ܖ5šzCkMX7ڑgiJW qod8=]~5&fr<<:D3A];Df0ᐊ7$TAqxZ1fyTu|bbawvLmT}K[QxTҿ0š51pʔ2vatr3I;\l"Y>]=[8jl ۠ʸS<9Eu3%w p3qV)kvD Of\\g Ec"4Qc%h눧e٣8ړtpK#QU #IM-j-|T ,n;T`0_sܕxie^wFm'8 ĸ)+]bEo1k_ ?؀7ҽO}gM:Bh.> _Q@ -'yA ]By 狍nb] `*?1<16=} !o ^H (=F%mbʪA!aDK!v2|1 ' HݕŞeǽ#B\3zܲG"~O]`׃\IThL4r%@ܵg@ѕ<.jFa6~(eC\wM@1uoU;Lϳ,?rY1Ս>!#$w*Io܂N1-94q\D.^[%Dd(>TAѤMX8ĹȓxsS5no2eoQ;PTr˯GRC|U~5;ܾ mͅ| @*}z~G/\=ײc26 |ܒݽX *E\@[suӨBB# <leCԲtbFޮ E]}{|BlXɞ6*vs_\-TJz2X`2ydfrUB;psQ(hhab8ִbDPqз-pw*W9Imf~FF$ֺ]c"Cx6W|?VkOa{L+xLx&Woxii& [صYߜdzpsJE`pi"/dy1T<,8(S/ɨhAԇ1!Rz{Yq?)L$9u8b+[@^,``KB e$fX72 0uOI̽ g6&Ocg'ձ!(SGnsmb[s\iJu- o8ԡ}Ȫ;\tjU(c'Fz.fTm߀nަ'wOք? Fвn^˔]>8fqY#/ woSMAU-u_SK}kAZ3Ǿl#n㦺7p Xo͜%%86ݴ=ˬ)۬  Bz诼$v_30|)rYe|Y v@^ k:7<֑KH*S  8ҭѬVzNߐ1n]83N8NA;Sթ, ›!,/ҡ|8h<Ǟϗt-AC̈ BW%2l$( w2\]T,g 8]epglۋ\ $,]s!`HHe y6M[};J5t]E>1MTJѥ\,𑡝Hś|pºV>34.,޹R}q+9G:g@wƒ{ō]$+ zÒ [n cZxd6J:y8{.͋nEZ7RS hmc)HP9[fA;`JO^bI ZKi#Nq pPJfh>2O}; &}bӞ5#^xG%jg5ӠKܣ5L,Y=Jjj) "& >&&oG (NZoʏKtUTX#*/Z:S7R`]J^=5twǪQ`% fxʞ@i+p#!Bڏ]yiŝCLTŋ!mRm g_z:Du=hG+hѨ"eqizbd$Е>m dY $d,\G' L?D~$Fyy*;83vMFCCڇWΈ 8 o/Vw3v>A\պY#ZcxT^'d[ iWLe!s]wf㔦|dޛ0+J?{U 邻?MmC7DobF1kp8R5ɜԯޤXX=&V1(Qp-^$yylqf#ZEnT/CxXSU#k+?h!ӑG<\' ہ>TVAZ"n3XrG(X4z@=jLLH٭bϊBup(/3½INRw vՔ4_e% B`wSvB[7#tZm,KuJOq[L~~= +m9N;ì聭vg< k a'!L9`{-!*6<ʞ-b4 ގFu!u}Mvn}=_vPLqF҇#( r.u3u2PH = f w =lYzj6X1BmEMM˶E9wm%& #}2pFH[sA T" jȘ_x%"cI%pVŇRb+DմFz`żB}%KݚC;M4j˯Egg$`ZM^[3rL]T`H.xÍU&]f:VhGW"Vb#(B'[!~c=^mE~aQ.z'=x;:PEDJlDwʤbSgF6I衜3 E %]Rr;)w&>V?_tpÑhe7(3!lE%S5R1{A$n^*wtP"{dN@ U܁tB0zzOVb(ko|ċUbݮBwR+S=B}Ԁau—90 4P!x۔dnA Sq_b7\Y_*:[z0C|ͷDx:(6Ys,}I'ʿS~)K&-tUt. Nv>̄G|m,fҗs\~[ۃJ=d+ER+j[|;՘0!/ Ho]Jtʞ3+ y{3 Xsdo܉?g\nP+,)jq5XJ妧}CЊe ݉wÚ0q^wT}i%ekwdt@K30(&|֎R?ӝl ~j䔮j$ )qfʼ(;θmq o?&A!g?f Lg_rٰS -jmE]!>&>ŃqB~Hլ\-e=`'#NqIҖ/q{ם16PaPG8vkn%Pօ2(HuL>nEKr8O輨8rxqbPaZa!b%C8 sb J9qjO2 X ߇gq,‰HUKۆR28(z F 7'1D+\>FdUfC1ܲZ@aLi)9tj E}\hkIB3 :@FF Cnh1۩#72׋TXT?# u~#emO!vSi.޶#^JQcY#I2C壭Lbr䣬WM}P\.PEXAf.i-)G>4}lXE˖lBtTD gFӘ6xd,J xXG_`gD܀% HԑgJ؃u,E2M ]]2:,2 8w0Z~8vofr(UT1M6gQ.4M[s&o"(RJ<0{//W߃ٔJnBஸ5fekY'\Ǡ"A&錵] ~ڕTr{g\d1H> E#9gP=\6cKG ,>WBN~IL$K 3a! QsXyvwN<^N]hkSfe3^xsbOò4/EO! p(9n#+#HQc4= #=Zu7f.N;܈ؖĺHHN)gz7P kL"bsӹl%R4jK!Ұ[c T'/g3u PZ0,w&>vhy{ԡI{"X&Ax+D782L%{bzd&*S/}VI;yx_dK NVo~Y΁i^2Y:1Qv1{;Z85㚭LR'QjSJj7Ua n `~Cs^t1ϭQK&:l*R}80tD>L߀[kM-k9i缾9Y^|>.r/?@]ߨ/-\6Oh[%sq Qv|&oǂ'V_RqCjYF' Y|_~/r6I"AWjXs0CWV*m5>iLRm:)˺_[[ʹAbDQ.ҕ#NW7tu^C/JX* `1i:*[Q> NMypF* eaO 3]r ^> w ,+# Q 3ZS Q/’ ui>2+hku匒->8ziS;NW꒿|R㽨|*\ ~ *bգ3zO@f5(S&1PVt`tk3W̚.Tߓyt'PaV܅ tEh{xK vO֑51ZL1n[W͑\,*G.z~%IgDzxzۃ#G VIS)H){P@>CԂ :Bv|LTg/T1k䉺HbK?wZ.#`gayAtnbR[ D6%,j|5ț8|Le-73-8+ XVz״us &e@*dN۴Gr2u'n <9k#U< 3ODofJ36}rT.19OY|vC_43Tk:6F@WD?1TQ6|^(w b99rLVq+mtx:e]U(0!Y 栐_oTȡ]vDY $g@PYs' o$@/ĬNw[sD;ƌ*1J ؠNY J)"Kp}̫>V>f}d8Al|j )lOu^Aô Uf{r=ݥ=PѺp*5th *"C540LBH]E=- Wځ|`r !`Cuu P f+ Gt2ei X?l5:Su[{-M6o-O19 tK г"o=}SrZ|{E`'&e|vcHC/Sz+'Oazwn|7(?:cڅ^N`}. ǚBh4vxd̨8`=p[XlKo *7T;+0/gcC4m_qSQTh ה آؠ%7P_HyLC[+lFcF%cImly$I;E AUk*HEgq6L4ǎ/ۑ~RFh\'Ó?5WxSD X\5uPwp: Hb#ENg"ݎDA䫺/^mQ ~$XڜFw)#Ԑco;)F6StVN_.)Ah'X FnVR<&ۊ^!`K tyӍNuAqWB1Z'ofշyFAe XT bd]3#\J p{kv=(_W&?xb+j6yZxK^N| $W =d(n㦧[CsIpdF_ NlQ<;m^yx|l o7jt ޲2Z<J F}VnBa~؍&iph0|+]XĢ>SMetxm4ˎN z8:cA1\i'c|NٓBR]o\xOkg%=l:opUu!Mе1t7\Z.s$RaB4Rr+e7Y>eq$p!K_Jҋ7 ( LT5.ջ6Y0q,%9kA^þbVN@,r,APFG/%Zt,KKU|M{-D?Yߟ6ZeR>xlO ѹ:#!P` 6юrz7Fa&]DS_ZgrrY~Ռxe Ֆ8Wyf0AC GruiTe~] ""ADvʊeA XS5ēgY p_VPCkf؊j<=]˶7C p.U@[PK7Xi~*1G҅k×K+';<痠|LS3]ľM-jK:kFż.A5ceNXSEpj%ѓOyܗ)Xk ?̼6y4uYC>3<\xVI%)ǤWSDa#7 )7V^n YQ\@nM!3k^AT o]V"Iφ:jW2 $sC[iVI85nLK)==\ "q* IuEӋYHEej,`TBz>w%wƄ(g9š趃FE0f:@+q[ >eDܔPn&r$Ao:&xL%B}}%:q8yӛ}S!]%g eN 1%ӚqP5nၜi٥)-` k| ({aq jF =ƆuPC_ z6U ֋}HLX':V\@')CM͏p"[zP6t=v/E*j' 70`-ފ;uYl:pj0zr= {,_OO> Xe|c<ze*41~4?_r<#IZ7Ѯ9Z7>yKdꋉ/ެ*!̀Hq; ׳,k ;\S䜠F*(+`Pjַjܘ/, O sE0)/sz<n}pVX_<4$L46vwk f<KF>HEږ1^)@{IPhb4nAD, ? UJ joK, {T-}QGCxȈ=D!ܱ: ;E侙7ՙ"Y浸 '^&F1 ɛkjG j=i07i#bP]D[Obul~܋(1#%t;<1R!=)^OADBeVhʵ!2 w<(g+jYe~i.& $Z9T(CZig! G\ WZ|x=nq=uVb ؜1#=[2&OT9J=6g:-[țڦw p}-S5B;%<)к1e,ń6qw<肗&ZOπyOjXY L=Є3ft{IC:8-AlR.[c/w23skGnD=ĦN5lv0)Ft&"IxyzJ%Abtv^W]tLZhcTi^aI yJiĆmu[ d:d>Iy9 6Gn!pw`?ť?]ݨ|_?9ISB ʾbg Tz!ℶz鮕|>tS| Z-}^ [3 cUY$+h mdgQd'\KNH#1`CP ~v)oQPvP1D1dlíqH{% ̅IBn kD+#aD~]L41klQaܝkDaj,>Zy0o[łڟ(ߋUa,Y~LВ|avg:9=(0PMC|\m N" 㕌o6MD:trڼ1) Ri'ß/6=j=p"8Q!tT#|#{q15/ )fgD1rlV# ?j`Q(*&xP3(8NvM mn0 \GL hHyH)(eI$G]D7iqL#&˦fG'Pŭ@B0Uvd \sv=N|c@M̒L6cb|(|SFˋU,MIS θ W ӵC,dƷ_Yj9Ksh2MU2 NϾQX&2KUB#A~= @?Ӵ~%k?0%veoֹ.C鹶\tpR jV.6gF`苉RV&l+]SJo-E-lgf|` #5VzW1$!gMx0Dϙ(`rWL}*Sع=*#]A $ P]ƪ<@fua7vB`Ѻ{ VOJDT<^BuPFb#|\ Wnںj?Jέ61##?A Nc+ vP(S;c0:R11QbPDӑv.@k>[\Uam٢b*1@Z"Hzە3C2 $"džW?-ǥM5էwxT![ SrWs# #ldЎ4[x8!(ԇwOXdM?ȍizmr3 {X&G<_`f1* ysv(nQXQ ؋# )?ۘnjF*Y#_?]}A&{Tn4g)E 蛄sWm ^? |%?XWT-"ć)Ii0vΑ0]df#Q 5ǥgn @S@?nw:az;NGv=7@Ì|ZUF6Ns e\1a󭋋wi)hV1ӷwz0(Etk]Sn9f-fofqOtV4EwqQ `H>܌ϞdT=m fҩ.{TvqԾXT IŴNiϤ4OC*˨ %JAqW|z  #_{zѹ҅JaY|6w02Q ^1zG_~̄7x;T[/ 2UVArE/GrGx1ȭȍF =l3gr"{ܫb=1茺,`B{ʶaV'q!۳g6c˚{d7O?;v&\VM.G*>e<%n ٯ<&ɑ̵33{I0 4iĬ^'U-Ke zHpobKbuWЪupI7!KYʿJ 6JRe_c)MQ@D]SH :>U~*#%l.vf>!kmAĮ0EЁ0pI$58'~tQ y*]|%aHmkk4fy5EYFӱ%?c/5/Q\Ro[=@֕5aF|^փ{9cBw (|46[0XA|f'xВ,\WQ&䰳Z4@--t]Ql=U8-N\ݼXzu;ElQOgrq%f;eLʊ- 4kA;Wޕoc%QMG/ѿ~y-ze-z(kՊafzxu1/,3OT0~M]n 9j-O3.2xck `mW:HdZ|_R}m q@} ^+]u. ݿ=m[1*bP}'#j36㤔SxVQbB㜣xab r%uF/-&˼CHR8RY:*V\D椚w1/ik!933ǃTƉ"*ce ؙO5-r j,܍qS~z5RFϺ&%dI3 `ܒX;1_oCk12#p \Tks#;pt `J,Q#Ӊlї@\{xDF*ٛb-:Z}F ",=f}Ҋہudtj cJH[T [y+'+HВ a"/tzO-xς>_$7φT)3L֕p:=8,u9ZG۸Cwv{Qq7@Ixy &9(~?cF:<6S -Hfѱ4,?8-!!Y"a}hj`v+x/(RT혼@~80d͑p*@ 91I-"14c'`a-  XPG𼣞u%k ̙cϚ#WH-s]NIɻiՉ%MۥC6/s#U>o8(\fwSc&šʊ o3-u؜1t x9BD3>R_ ˛-[6 0عz}+UPy%к1lCTD[kM\Vve]4l`e@Ei`Q.ه7~FGq1ZoGQOr:v5 c[SBib~=dqpVgO鲗#h6Y Hzak]{BK'TqCzQQ˴wHМU0Sq*@WAj۫V%X2 NQXa,Dige.ql:ٵ6kE@pF/gx[G%~&Sm#><: b[}cʱKBn)U~gNN$ &䩖bJV\A$瞁c{Q%T@BJ|ʚS+6N"SIG\\Iuz{sdOX='VאcO8T+TqNOuawN>.3_Zŝq;"˧j>$BL{z~b#4E @ej笪l__Ͷs9Egux.fvp4=&tbi(l&ξ#խT (UeTLI@8_h3n:CcqBpZVr_kbTѾ >7jS `O\kaG!%f%pDFRnOhЮ6`Z9ڶ0V8fS)Pea[wpLgntM؟ȇ5]OH7OHNy$-"\p2x1"ƥՃwPZkp|AK79G~'ǀD.ZdlgavO5$Qh1ϑYݤ}TOD`[[N@a,^vw.,u5-} O!T]٫NTc] :sGm]t۞6>qN͖e#>!° Txuפ$>fŁVHwEUV{Ǻ,`pG+Sdl{%sط%IAk o@^{"'fvD7pAd R2ytjZ.gBa܆Z Amhf=7$CZHw9$􊯟4՘Wmr'wɨך\<< }O 1*)krü9\q\)^(<0wL/͒9r2Ҵ.jaؤyHhH^A0y[2걈҇(MD_rXic;g# $FDZ/9ڢѴϖ<\_WEM' |ƇG,qE=u?jyn=0{ZgQpo^ ?G *z?4۟MO{~Z kApg ͸)g CڃH`Z*7lF"K~rś2`JK(:}#g6wFd} SFFk&3ꫫvj\8l;LxJnw5к{h.%;.=w*{6K$f4́7~Dn{Q7}E[6~,)exK-ij" m[  ~"=g!XQ#[*jdEX&(8Cz<~ :gR|RX!cF%7P穱:2 R[U*b' ܿNդH8@3"啸3uwS{ȎSÐ&Hm^+jXR C|ZH(I.(i.Ee6.+|V5K`АqTf:50o+@M!k<,$Bp^\y6.4BӄRH榌ݷ}l4r6 zIC!g2n z whMMià ^bdG/}?koIijݘ@Ib/Dy%FN1ڼ>endobj 1080 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [276.175 213.337 290.292 225.8] /A << /S /GoTo /D (figure.6.2) >> >> endobj 1084 0 obj << /D [1082 0 R /XYZ 98.895 747.976 null] >> endobj 1045 0 obj << /D [1082 0 R /XYZ 148.154 446.809 null] >> endobj 1085 0 obj << /D [1082 0 R /XYZ 99.895 401.517 null] >> endobj 1086 0 obj << /D [1082 0 R /XYZ 99.895 389.561 null] >> endobj 1087 0 obj << /D [1082 0 R /XYZ 99.895 377.606 null] >> endobj 1088 0 obj << /D [1082 0 R /XYZ 99.895 365.651 null] >> endobj 1089 0 obj << /D [1082 0 R /XYZ 99.895 353.696 null] >> endobj 1090 0 obj << /D [1082 0 R /XYZ 99.895 341.741 null] >> endobj 1091 0 obj << /D [1082 0 R /XYZ 99.895 329.786 null] >> endobj 194 0 obj << /D [1082 0 R /XYZ 99.895 291.944 null] >> endobj 1092 0 obj << /D [1082 0 R /XYZ 99.895 154.55 null] >> endobj 1093 0 obj << /D [1082 0 R /XYZ 99.895 157.12 null] >> endobj 1094 0 obj << /D [1082 0 R /XYZ 99.895 145.165 null] >> endobj 1095 0 obj << /D [1082 0 R /XYZ 99.895 133.21 null] >> endobj 1081 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F95 356 0 R /F87 315 0 R /F107 376 0 R >> /XObject << /Im12 1012 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1105 0 obj << /Length 1192 /Filter /FlateDecode >> stream xY_o7 8`/:Ljukf.[>{9w݆}Q]f}H&bDREJOªbp" o)WLZ ^k Ra1]oMIHdJ%^x3?-+epPV89֊ׯK e^bztr&{,i:!"P.uXxy-$WafawtxM~̿aAn_*%PNJeEܔDM60Hϩ890l[/ڵgY*/:ɉJEkgݢ^5{dU 2{h~noҵ=B]bh#Ŧ.u[7"޲ߖe b^$,mr9ԉ$ҏiXAjk^7rZf|q>@FCp0';GG\B񖶖iϮѪ{(G"H?' 8gx[#R#6Qhn)+4NBbQH*gG1(P%Ҙ-s*Q\z.|<?IQk s&&@AY?.wUDR7h (r|ant x7޺WH(B0C=D 7ĪTN-SJEͻbִ[fu:d^L^w3$*a$n HYKĞ _a9 sLݶu?Gd> endobj 1014 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/openmp-model.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1125 0 R /BBox [0 0 576 216] /Group 1015 0 R /Resources << /Font << /F1 1126 0 R/F2 1127 0 R/F3 1128 0 R/F4 1129 0 R>> /ProcSet [ /PDF /Text ] >> /Length 781 /Filter /FlateDecode >> stream xVˊ0+t^Wo0r[!l0^GI'd`<.*c'g~?5T2]W|LߴǼ~/S1.ɛ-~]LEf\Hf$ռ4O9]-ʔP4)1QrH>ngΨl̖hٗH˦aHpYT{Aߓr)\hPF<;kr8u_ K`Yd Z~ufiQ."j>EFҼ9p vub}H,J+p9롊V4PO (*gb'eQ]t+'QR)0n,^,8އBz1DP"-'|ֹQ[*ߝ%(~b3O'џ_1ldy<<^f-ifQX]:*5㷬/3ZN~H;}IT̄ Հsƃ!'/*xd`\ޫ Ƴ>2̃&Q )` /Producer /CreationDate (D:20090302091344+01'00') >> endobj 1126 0 obj << /Type /Font /Subtype /TrueType /BaseFont /BAAAAA+Arial-BoldItalicMT /FirstChar 0 /LastChar 6 /Widths [ 750 556 610 389 556 610 889] /FontDescriptor 1130 0 R /ToUnicode 1131 0 R >> endobj 1127 0 obj << /Type /Font /Subtype /TrueType /BaseFont /CAAAAA+Arial-ItalicMT /FirstChar 0 /LastChar 8 /Widths [ 750 277 556 833 556 556 333 222 556] /FontDescriptor 1132 0 R /ToUnicode 1133 0 R >> endobj 1128 0 obj << /Type /Font /Subtype /TrueType /BaseFont /DAAAAA+Arial-Black /FirstChar 0 /LastChar 9 /Widths [ 750 1000 666 610 443 666 443 333 666 666] /FontDescriptor 1134 0 R /ToUnicode 1135 0 R >> endobj 1129 0 obj << /Type /Font /Subtype /TrueType /BaseFont /EAAAAA+Arial-BoldMT /FirstChar 0 /LastChar 7 /Widths [ 750 333 610 389 556 277 277 610] /FontDescriptor 1136 0 R /ToUnicode 1137 0 R >> endobj 1130 0 obj << /Type /FontDescriptor /FontName /BAAAAA+Arial-BoldItalicMT /Flags 68 /FontBBox [ -559 -376 1155 1030] /ItalicAngle -30 /Ascent 905 /Descent -211 /CapHeight 1030 /StemV 80 /FontFile2 1138 0 R >> endobj 1131 0 obj << /Length 249 /Filter /FlateDecode >> stream x]n E|,E&DCu.R Vtf蹽D0`8%(GcIAj95 )6ǰIv.nTY9!-CS, GEW(iT4 hWAzs!eV)1~y|ܘg~(\W7>e7>c>&ne<{Z|v y endstream endobj 1132 0 obj << /Type /FontDescriptor /FontName /CAAAAA+Arial-ItalicMT /Flags 68 /FontBBox [ -517 -324 1080 1024] /ItalicAngle -30 /Ascent 905 /Descent -211 /CapHeight 1024 /StemV 80 /FontFile2 1139 0 R >> endobj 1133 0 obj << /Length 259 /Filter /FlateDecode >> stream x]MO  aeݏCCbiê(L+B^>VM<@y_t@^=Xi mwκDE} endstream endobj 1134 0 obj << /Type /FontDescriptor /FontName /DAAAAA+Arial-Black /Flags 4 /FontBBox [ -193 -306 1686 1083] /ItalicAngle 0 /Ascent 1100 /Descent -309 /CapHeight 1083 /StemV 80 /FontFile2 1140 0 R >> endobj 1135 0 obj << /Length 264 /Filter /FlateDecode >> stream x]n E|t%YDCu.R  ^> endobj 1137 0 obj << /Length 254 /Filter /FlateDecode >> stream x]N <Ƥ!YWX} JbPz;of^:i> stream x|y`Ǖ>>%XdOȶ _`piX,2V-!vf 97!i6mMBC@4W}A4 -Modiv~H~{3͛޼a*Q TPXzN lO$ Ֆ}#=/mt ^2w^^I,/N'a-,g=yw_#i`b:H~w6b9PUbyz>?H\u쓈 Guf1}MEߧdP>b'F8IRaɆax8 xtC4@ Fh9~%Hpx$c*2'>"4z%,V#!k*P~=Z IjH%p\Heŋ[: ;8*1n?&jAh iP q78rQuC2X  yЇ? ɛ1ᯢV'UT-9ʠ g 7-%J?m"ȳa[I C6ѯעk! NWÏg'Q"RB"/)#SABGKa-\p%0?Bka!"~$mIKQ x^F,G?ׅ 'q&i{gQ:^u8y'ݰ>//Mx"[1r|Jt~4BM*,&<%JL{> u=uo+ߊ>IW?@$6(z+k;Z!x:ou@dYOH"7[/hgR 'a &T?[UkŗGlx B8?z_NH,ыnz& a72A1+i1ѻ1OCO0.~[1{j .0a =@ |Fs xDB'п!{I]p\I'"ur6LNr|%s9^&E^hI5Hh"9b/$ajRQN)<;و&77>"[`/1,!E{)hPɴ52"Bn;ҺlvDH[}D,">cӁoH{ 0Ngb}Y{Dpw1R8ncİ=L6jF>GGwJCkgZٵe`_9ڌCh,FEl*򤼶&VU)g~bڏS4nFjͶwct];22l),ثO7YI t8;ZN0l1 "GBMm8*vV AW5tz?ۤѓnR՟F0l3p4#Q%\^X04I7z Z۱[ǢbʼIta!cM\<bgGvC9YˎXtNx='͛3ҚzEH4{u5KMm[(Um E4xDEK-aĭU*\+ u5 f!S,pQMKfD&KUH}2oϤF;dL7eJE3ˋ(]⨀y3ښ1G6ۤQdtGMFaa4d7̑:pdQ!enИkQftA%>*@F|@Vz S5լREZ/ J)֔\$:R@(@Wxa!7uzĞ;Mt{փ[Osvwg}=Ŵ_x1%ڌױ9dM3kEތ_gƫuΐe$I4-#iIH2tCb&I7elfK ސRtNŬM7I.CbWtjwRRbb\\Ҩ+&Vi\\kqIIdͣ8]?O 8Ý=jx-lfqzB&Ԅqщtn[yӟsۉ6R˯GU:kO1Z ;UEΝ"#C$%t,(![7ieB96`K 6U]p Wk}SGVտ!,~g&Nmcoɔp4zrjX z O'?@Awdq'NХ(hJP3INOLNtz2jCI'&:ca-պ% oFtUk%m6Ui'IˣDvHDBW|w\'/^/w}eܼw줭}~Snu =_nѣ ՀƿO>Ymq#l$VMEEYiFmgexɳSUoK{n~W}ݑK$ؾv 1ْ߽7uwpoc߲gxQ\0iďkVrdm!d.JHfs~x}J13ɂ,an&5Cr&I˔U du$KeEC iD!)DNfr.c[*.\]m==TMǻhI!5žVvՅ:+Z!j4D?WK2צ2ЀtDթtv_x:jrWm&)1 DCfisJ;Wdq>9~z+[a-~Ѝ&zc?{R J`FJW|5 WbֳIJt5ϮWRY,X+_?䃩c% O9SwBS+;19_/^.TAju=%}{u4[krNH6\TT]5FN.,$-oHdbZa[2oC3,2"f]jx|B-Qâ֊@5sw-57]VnTٝEUiUNUaRjLLH$*H4&,%dc9a~)S]☣oO׃*Cr@%Cta%g&Myf.\ c .AJ8  iH&ܕp0D&ae 9+/R)Rʉ1CBy %lְzq=z:x={Pg٪jSs zaw#VdAcݛʼn "/5Rxډ_O{cΫYoHoZ_u #C%]KR!D> :> oS56j/8Hnm)Xcʒgg%t))Ygos|27z+~mqJ4>Iw%d-Ύf$188e]%N$cNUb68 t^L&Nl qN|a@ l0̰J!01njL6A=6N(IF&<#2#zD_-?D٭Y@*w495Z%ܺR+߾+뺩eoi:zŜha{ӕu]0~l_LͥW9ۧǗXѱIWsR叚~`E֨gjf*h~TgsFLbFO PeofY 9J.*Ϲ\ 4S uۉ q\VIdO>ů#+hZ2WEGQhɽ BkIB(}^ş:FNmL$# 3m M@+4}X(oWhSBcTՐ?UhQHiP8hJ٠ԝrB'o :I4Sp=)*7KZ< N>Ph$50VhQrRh&3k2)41(4״HQ.F~_ 5M)4A)47+_BFZoVhB#ghN'`}6dNdsB$c i=s+Ei&trDZ|q|Ш sBNgqc :9mfz:(4, $(mK0)9}az)4Y  ?t!zcF 8UخЬ~щ2] 4K1yQhz ܏^g%aFCivucsHXӇji$X-}08º a>kf!{Ey! Fz>F75>y!".;f4«(%Ѓ #qgt3ov7cou{OIXEP0q"u=zQVޟej{̍2 LZ9tÏ2;r^./J7̵<=OB~R^[zEݨMA\k;r,24pM1Q Jqq"u5;"<,7׍޽8~?([_Zxr :(OY#Ń^nSyv1haV13۰0;+˒ǎ+(:/2*>IJlR3-"j&ʚt+Y!5eWzFCʨ>eJefЃL\;cWb]2xq kfdLE֭sҘͺ؛yܟ0^JVbmY澒C6(qq_{r4LfGo:ʿ\L?׆f,yoZ~^QψM/VN[Ŷgz=<%sۆx܅uJ֐WSH)sa/kzxLɣwsk*El3Y["֐l08&=c͘nE| c"܉Q.qg~k~M<dMscG#zg 3} y^lhż k&AM]k h #֤zy (6/x&c~#?8=g:<Ζrɣ)93\w:'ڡVKw#yX&;WYqVsWl2ygIYg׭,xfR<3H>|VgZJgG#rbn~u}CJ9f&ώ rʘ}撳k)'/sIŁY-6.$ҾYHp `;8+ng/Ӯˏŕ y[7gCcqӏ u[W2lyUɼgh&>ً9^&F>yW>=#9Oʽaa{?&/|ʝҹNqgQ̉ecs=#mg|ggjUNa{bIwx_xg&B\PzhQ8ٿ\- X ({LlYoz?l x{tVa?RS$5T̄I}&$-~ K RZ$Ik}{!i7 y>w_[Zv<1ыx4eѐ7bUJ+}? ?s,FXm>-[$NJ z7Bao-0_'RԶRZS$%o_;܋lEӒAwwdvWj }Y_ZPZBѫ|^;T}[ZJao?-8"h`G| $rJT_nN >Om߇ o(؄(+Ql^ifYoFaTăF ށϋ$#E=Pp?6A 9* !u8o{0S G-9F}#߂bݨgso^ Efߐ3Rm7 ;<^D6K^H,J1v~_7oXYc!e<J! )nMA젇_Q"N*fqSza tSMm { dan_(aCP@ՐU BL0c~.7,*..W/ DClEKvawYmy򆺶WI74Z$-]ԴiU[R|R|[/5f5fbTg=a5"YO63_GrXbpE@v"Hnn [F3|2,:Y8yq^fF?gb.or~ޮ0F5fM)| ߣ7g$~bf V;[ڗ_3|wlIjNuK`MsQ;!v\z{g,v2ͱD_DZS fg2#¯iYE\". Jt-b5H k\b~!} 6IQuj;v>W{ k# X!%q~iQpyo>?`>xQ90}# ^s|KX9Q\VV/)chi\lKe-f8.ㄤR]a%lG#x]pBAN'Q^.2eW].t %NK =@(nnW##zP}PCh;5tz:NWQGգqܕhz؄BA Ŵ#PՂjjV#܄p'A-+|1MJ(K\V9aҬZլNXzVu!7cs1 #ώM5h*g +H+).)rl\5cAzBXf̩ӌjjƲ5T^MkZVR-h'G\Wj=Cj]EN)x-IZh˺HeR]tD_iKȮV9䁖.)rjmį4ՓHj #Imd~F;:`ꀌZcm꒔s\:scE;[ZGcx7Thc8Ɗ-#dwDJh\N}?5ҌPG~qֲzq]pw3"0|ZHZGw|j`| !p>'Ʒ'55$cq f' rrd&E6b\'d#K,sAvYgX ˦iM"<c@?o'-{Pp3%<22c>/ A#o$p5:5x#vNNQĈ4Lbk"DNR X> stream x|y|ՑK׌V4,ktز,BX#FȧHjZf<3,6$Hl3lv, / I 3$r$~3نuYO_׫W޷Uw a jT}ىfxFy|7 |zc_[N@7?M z;o0dذ?o`0UI~{.:~ڠwx}!uPؿ Y7-t|[~xQ2Mf1lv:@ǦS<&8{F<~ 8n%!;aҏ >، > ,$bx$Ryx 6[H*C64ω+i!C @.4z8,~$p!,p P`5lAG_I161vO-& { w j2C0 w:>$q$%fIwMTA40ix~oF'8v'pF <*b<`#t*Dnv7M?=9fGz]͈KkLI!OV M%L2ahwߊoVJ;pkx #|OX p kZuw=p)8G =| $RI. ux"kB ?^fGIZ+צazMӓ? ' >hʈy!"ZV-> B:A,xH$RF*H5YK֑ͤL;]$D7OgȯGcDa BP& ~a0!<"/ׅ? _bbRX"zx0$aRT*t!p6w o2fи8`q+hZg3]i a3G`?I\iG߇#O^1Mx'$1 B^5 B"mBd@ >Â$8ɽmJ&=("A5IN^jǘ&ݏF H |OH=|h&0@U46‡dR>9EvNBl"7 mp 9 _ 'p=JeNma# ns[  )T3 ѣpwKpl!UDށR8^$r-GRpP<O_<* Cp.ԸW'N9NG^ 5៊]R6˯#B0ο +^0#Uftm-X.ǸcEI1 ``Rixכt:_XwA5KW.ZXQ^V(YP

~Ӕ z ^uKGHT;dm e<5E)bGs,B㻔н:bGiى:pP=ނo(fU#}}Qr/WB ߟ<~r{~>ީ6͙LcJ쑲I[d cT(zd_iR\ zaDž,]KQ ?gz1 {VKt~Ph+~sO49 :pJJh^1r_RV:2%T}6/iy~>SNNuz_ptn:r<2\NcdO!sQՖzcnN\-7II;UI]۩:G7l-OO.ĆSs௠H&(C($tnHJUo!hMO;6o${ӻecm#iW;(Ȓ)E*,lL6EZc蝣$ԟ?h!tm']]ۻT[MJ-&-cqrzIU I};?_vh[iNox%6R3\ԭKE.g]/ӷF|*WBV9/lI&NK\=ۏ;2\hBIM- g42"ˊ5%ŞFi$55P6f FPL%r^j1ĕNלiVKJG RmBL:6Y)GVAlPk`+r@iM˳:9.F'c;C/(]=Tl)SR&qtѵ8u,ZI2gӍ;T.}uer[+=ePnܗ/~]xrSaU]=:%Jr<8M9_&2mVCmYjJ7JVGzTg5p;a"ϡܙe@7fg%,ŗ~@ќORqnLÊْz2bH(95Gș"\Ocry 1.PFas8ıOxfv;Q^O8S*v)򐜲lWvpqbjZfn_{l:1o5#ڊiGg{?ܻSU kvݶװ&lƚP8χ%cKHa\a=\LeKU%REqQh<{CLM)v8J3ə$s}c*kɘ"?qU(Ƣj6.y*ȳyļ'bX--ow9>4n;䩮YRѓ` !f]W!ŨhIUuuMrlgU ___^`/I~~,(rιunV}:hE?9~d1U_ZpnmLʆ8~n%W 6Sg1ܘuc}Q`CdEbihή ,怘Bsa [d- &Oܛ"H`ʔ)[4\dXJXmV d]>h~wKe]Tt}O$To-F}K|~W׆?3''w>npu'wʵr>r=￸zws^X+@Vkݧl;E^x5f)gZ>>QO>>~,F~zAf!h"B5җ\- ILYʕ0qAl4 xfi ?$䛋ⴄsO2F/ F NeFQ4@-s8g0ݜ{:9]G?zy23A,VbKe8-9Vӗ陑/;} yk/dnCߏ\v7dQ S ׺Z6_"f 5hFEy:OC4l&V~<]?g_&r̫]72A/pWa*zSF,7`;̼֣gG#$PG_Ryf 99lu7:si~AQG_a^̞GC^x07w>#^lhf* fQ0{z6Jb,w 2ohnOԏA֛iwisq=L0CwVnjdin+c Fu껾߃j)lzꣃ,"*du^4z/CvXtCfq!6Q #},Y݌VA{nG9: KbX/[Y/J02FbJߎ<1(Ђ%ߌ ܼx1n;$=Y6ΒkJQ|&G.6HEĹpԦ+Z|VKrQ}y =ϴhњHwk'Fw=ѻn3Djh:i|iќBefiiʨ{#35-B٪f#W3LˑFʞUUhx 2șcgBO\zVG>?KC1-bV^;.y.JcvHQH^ygeƢ3^՟PT@t=_=+|{6ا:}~Dg{;3:Z3O.}z}3(ia~G '4&PUPa WoUx.Fh qtTqIgU|'wXiEc>OuiʃJyAd)^Wnʕ&5BTj-Zla6Jǣwz-G[ +Pأ}vP3K+6 x ta](V˸v{@iڠߦxr%_w_UCJE7nP֪AHioS+PyG5!~eiJ_uӹnLYAիݮG R~˭*^\ B;o1%"ORE_ T7z20<k@.\vܮCRplߍa5x]]ҔQwp0ٔF A DxQm(Pڅİ\aH{G4558Ctks @Xj~B߰ǃ$zш{w8dK  j+*FGGy–AO`7*]x9eQ̓\MY}U˪ƆUkV+kZKV56Ь4\yu{b\b\ABLc ѳl1t=cʘwtlC>(~MXtC rf(M' Q+qCg!kL8:C3DwT̂"Na"GN٦a3L `.W6+|ˍE̕+6:WuӜ*]J~-ݧ9q$eȘQ,=w`A]:܃?7mᱪofqzm =+sp`;=4FruFR ;SkDXaugbLrή=Wv`-ظoKj(5-Zb؊̅UUa[F^lɲĸ/u_i! H.GN8ym1Δ_"GXY?A O8 q'?A O8 OD7 ^/F!:>gb&{Y2^#u1vdcz9Z9|+X6MJ=G{ #R(9iv~7?G0XY%* C>{d7˨X#Kߥ\wOY> )p)BlO,vNe+Xjz+k\~ׅܞ;hρZ_H+&ikŶz`"q6 $ +BKSP5dZ{i$!7w"7$\?EcdSuup}7s5|7;;!c>>ey򲖦4ݼ#պvFIЄ ؝ ͚uCG衹JJvn۠l8BGKgk^ObiSgg+ar̿z*_09rv&ie(`gr e\!+|\^1rGMv{DQ&sTc""2"3LeFGEʙ%ȺLIV8n+k;&Ͱq~Ͱ'f//(&P}E(޾:RaLe“J_ueQ L:ى|aҡ$CYW^{> stream x:yTǙ3?I ġ2[0\j.!v65BR$s)%qqR'i|tmݦqSn{iGwt۷M6{ucM 7otN37|N&%R@N}ujB?B 8[ Pb# o~E!*hxzŇ'Qk J{:mhx0@Oe'N$?נ_}Go&T/Nƥ'IRZ2!`јT,Ä/BU JY1Bb己x)v);, 7q>^/ӋA.sΑ]D||o3d姖+|IQ4W~4cD?Fѭ ? [iG~D$n;򗤒(CL^P%9K.Q#maZ]hI;h53O@kkx<[46lwָ6mPU޹!+ld,6uڢ‚|M:7GTdIGekp8jyte?ܑ$éoLcV*[/_կH{Ęvvt2ʗI&IqmC+v`ES'&q#/|MC֐˚|eڽ" twm,uamMJ ]%gpv%)//<=E`Y *!Hb(%Yr:2<*8#:x(*}L] Ťce+(9:CP;;a-a8!ǂ-i+w%wƎos]%!u۟=`@ 0<@kD)q2q؞c>gט8wVB^F+ = Ĺ+ t$}ؐC(#hsqQPCwϾƛi-#0Е@RI ͬɜ1@a՞̪R~Ety'+G||$R+ng\S/v:垞h캧V/p֖~x  m~l@'%U[(hvL"(@ >n3HjNsг^2 r_$ö{ Ԍ9I/r._SДTW:sqWp[gZ 0 CM 5iq\#L\IUGu@! 0w=/ x\H.!}CPbWE~KD;;vȻc׈K'~+FyԂ.^WVWZiYR~+V{-7[7H[kk[[|6;Licق ۲ʹ.G OũSO$RlGw/Յ^WI߾Co$ t6vu[7M/;.8Gu FD>~h4SR.D.8U^|\[Wiݳ9оUw&tooU]eEOh]z?~ o)? #F/JAi$’|{=Ja=ԳYw?OW/ݯuwvUW?CUU;;K7Ԕ譕mBz V5FeߥG@ۊpު#BLƂEf`b/P( jb\0f hC snl]lmhp[܄^kۍ} Qԃ g1] ƭƆڽg.=uꅥҿ,=i^Ws)%U;!%%D$^F:'R2pOyNb:_hnSJf4 YG3h(D9!lZÌzT9J0 q4( J$ DT曯oV>vd/U- Uj]?{*en:?5rgQ)H/<:s('0$pk+_z?<bѣc PhKOL ufQNhX(.,,ӠP2p/%|'RVLVK}4KK3{ï'[c{w wU/g'TMK^z:_zׯ^9m.2Y~+ JH>:+f?V=rd?H NhO v'ܰ u{9NQCsPigna[z}dKӭ&E>5tPٞ u[q&$BbdHa2M D1~vx5 /N"PPN (E4dXAIw)Q}X"fͤC['ۀ0qIJN!72&a< 1OQc0!#aE ̨MC;+GkuU~acdy92Rj#$cv+Ukou9lN,^KBxӤwV)r"8A b8BzJ=;qHuA_#HA1ь`#mO,cQ : s5|$EKUA} $j}YDY}]aAC~ecʾr;y$~Cq1zrHŅr|\ⲉשs7s2D.L@=ڔtk >%h9ܯϑG-6iyvcrޅr "}('(f8f ȫ+scc)u9 Ԃkҏ<D PseH駳VɿdVMbYW'A'r_컋G p'yh zy(>?Md.]'> stream x|yx[Ź;sVo. :bDZ5N˱H$&v ,˱RĄ-aC!eې-RLN)t6RZ4]bߌ7m<_̙̼w9Hi?) y$3ex?RLjLk;"oPNd8w:"mS5X=OL_myΗ /iR8ڠ̴و{q1$p8a;ĝ8?JTY?8QQ Ry mc oJi\Q F2G_g Zjk&j?J&Vz㞸΢%4?H26Gϳ<۠ni̷+͆gi#]@4B}ev+o26Mm_REt {JH}ptc_ߠlzYSYCWYLՈfkYybƊ<~%Ry*vX( -!i9-=$^-Aj~Q*%[1(Kn~%L*Gߪ6XP-j1k023;+b5X {  nxXh_KjDwɣT {.)5[}|IRFz~k ,y 9mpDaî]Jߩl C 5~AEҮZ.}a5q ;fjQ~x/e6Zϖ+4S7ӊ5ܧjGlk+B']ԋUY=bfjf&{?33 qg쨹x_-'u`m|Ĵ71l;.uGm[炳9f6w)\x"gQ2ZFY}QE)!j9/q~(fd(t+k|uɣ Uy[煣snpjF{FݓN=Z{f:Ƃ膛[[[m޸šhaΦI$:դN33 \y7vi8ٰ׆M'} Ӌp`X)S ixs)eNjVTlZzn0yvN:IOL#[j&#ϲӒ؎xOarX<ӳl{YVFsY1*wIRR3y˙9,ɵ9y>8v7lֿ^#{cC 'qIëN3W]zeMعĘ2 {\*n^wΪh{c7mǕpޭ\t;wxF!»md^myɓ77 ob{<9  kJ:&xdzS~OAR^~WqͶl:NWWl.gU0Y(;Ke嬬YV8ub{2o/G?M?wm!QVuF\%w%u Rѕ:PdG2%9$I>Zn21*h-!Re XTK2}fP3lT̔Iܕ~6;#lQ"ȩMl۔HkCa`HnjvEWa[k мsJ]-ޮhzhOGszR⿜HIoTPe+kMM4.>cyVkңݲ 1˯Fffs &^ƻMw5XJRseJf& ngE1I(rRdU$u z)<'yɍxlq[M,dE2r7_aADj;"^V)3߀;u/M}a{/?I!`|vQ}kSؤ6=f6ej@ؒm%^PB61͖4Umfȿ%me)+m,9/'' eמtbC:]x!VpzF}J`5E /ӳFeu9WJ [ugԽ:˙VV>~2-j(Zy[PڏHL4r,uceierGa쳌aMN?`4Vn*fKZ5ؐؓuƍ˄ 6K^EoEMvc}.)37BYTYbnI{f0bq)5ŘYqCH]Xdi'vf&'bRRG cLn`ټ,{G+0m'Xnre˕,vO2n|y[GkگM;{7\{|t/usxGZ<|z7 :eZ%δnz35=~lohWCtm=݆1ĘVcr~Cb|Txq|xz!& .FwT\m僟<*ggDYRV) 贁r6N6S1贅F:mUh:D_t2[t:xNiϾ'tVӜT:VhmNd 봁m:m^6S:mtN[;c:Dՙ~2:\өT%LQOͽSU >*~OFs*e.iK:\%mx=SUt[Ӑרo޹: y47o:FuA߂O44]ȯ:.]VeijY$gJgI:YRQaN_iD$mrni!狒1/yVH:KSs=%oH:Y˙N-ϖt_JYyN ݒ.5VF ,Gҋ=u,\=/Kzo4j`ے.)Miħ4ag J:Cegi_*,*=_A''^2/eꤽ /<52Z' Hzi-si-n$A+@qRReu`f" }$"#-*jreD%^X*9f4x$~է{XB\)%Fӣ=IYQ۞Yemk. ɺ ' =ҫlnLɌROX-z\%h*;ŌagyDP!P"axFz@А7gl׾0Z ]!rwǀ\K@ yYvHdbY1 ^<-w⺿'-W 8~\bGQJЊ&9I)xSVS4͎'I"=s5]23#WdVgvoKhn9{fH_;(VkM=^;{5J DdfΑɫ8lMs^*Γ2Oק_Eʝ1aua]2Lz0RԪ8U&v1uC퐾|nmg ~1+{EY~\kqx6W$}2ҾyW{yu;wH 놤/7"Kfs}8o5"#.k~u;j"Ucn]XC\}l{/qwh o{ xIɻՈO\{w?gF^P<;5hݱzSLu?d\Oհz"~ƵgFx>iē@ k_8+Ǔb-ZOGQYjtDմ  ص2U~ zνoվuxMaCZ?aX z*w?0U aZ0"FBaqКᐶx>z`ߌ̵rDCk/CBtMŚds,9h)CZgrwi\ zwBaoۧ0XuhVunҶWh>; bV| {y{7S`}o ћ};BH<> jMM8j!7@>oȷsx.CW ap'? }{z=Pu!7G<O% {_x@ahA0 w8"[Hxn;CO9 e"ޠ4?28R C~( EBaj(w;?ZCB78A.u~O wb x_ ¡ ya@0{POK^g{5B CAްB>^-BIhzwGːaQ'p=E( ){R0D{Þ { LKL BB`C~)b   V]Wvbx1ꕐ[:7nԹqfmjMnmmԺ3Śb@Xg&B,rCAXF4KL:# YܻWGT,Q,QF_,aw^QZ7`nW,# 9"ɋyE^OyG)JYR퍄!f9,4c y6`Qm`݋ sP!ڶaY{gO΅vkæs8,M`}}>QʠܕW᠌\0j7AwE*QGFz}B~*WKd<69'voHuݒ94 a yG) >dҋonfɍ˱p̭[zYuA :p(YS[\^S^U[Uelk`Uuum-u+봺իWէX?d}bgyrqի$[, S<|Sy |mpk3_g68 |mpk3_g68_~~d!1qjˑSgϕFhz𿉱:,_O+qnII';/iׯ痫r>G1uzڬVר.M}~37#mUgh~ogkʼn*7?;[GՕ_F?ӼV4R>?a˪qM*wMeָlԎ)l)4N~Vڇ+9" kj 7M1+@ߺy&RRk,QfDfDj*VJ #@*EFQfVy37R@ 1D$Q;"a{c͟ 챌LfHNi|Z 4Jteń@1K2B9"O+d$D8g8":e_c^_&?:-I#kZ_t(ΟBIa9?B_y#W"V]$@gsJpDnNd4ogiD R)ZvS@ @$" G z葈 zG"=@HD;@.@DDDDp%. \@pI . * $ * *    M"4 4 4 4ЀЀ$ 6aM"l2?481 qL"q c@c@W6} 䨄( G9*!G9 Q G\m?N;S;%+&Q @DJD(Q " DT"ƀb 1b 1 $bLnM Sïb]f\\~\-_I tPղd?BŲ<هaf1G]ZS-h;h= IR/ -Wi-L1534}G TS>n}8 %k*ky+Rb){=Zn)eM~.SN|Y+xe3[Xj${*-w m huh5hhEh9V .]Sh 4rrponv)ķR",+ز*te[=[hh b_CFh9Dw(E=Ee/8R6rک[[c v~̱]YlY.".g]"4snIQ/ʹL$\g@2xu̕8@`Q?&Ut/M \VS_s#d>}T_s,qdw9*7O1}Ts\M]*G5G1۱ձ1ŎͺÏ9!p#(9-&npuS"&!)Ih_MV7]LMg%LMY ͜jN6[fѬYc2+ Ȩ*iG9}JoXڢSjբt8' zh5emh]Y[~Q8c7wc4?=ɨkuwZ]#Xu&{ΞF{cƺ -9Dz}>8zG[GWAwEr֖# W֖qM}B%k?e{>'N DB)3r[-ZU=-S96nNƧ0Y#XXT+C]VVg?rR>endobj 1106 0 obj << /D [1104 0 R /XYZ 149.705 747.976 null] >> endobj 1079 0 obj << /D [1104 0 R /XYZ 266.795 422.117 null] >> endobj 1107 0 obj << /D [1104 0 R /XYZ 150.705 390.53 null] >> endobj 1108 0 obj << /D [1104 0 R /XYZ 150.705 378.575 null] >> endobj 1109 0 obj << /D [1104 0 R /XYZ 150.705 366.619 null] >> endobj 1110 0 obj << /D [1104 0 R /XYZ 150.705 354.664 null] >> endobj 1111 0 obj << /D [1104 0 R /XYZ 150.705 342.709 null] >> endobj 1112 0 obj << /D [1104 0 R /XYZ 150.705 330.754 null] >> endobj 1113 0 obj << /D [1104 0 R /XYZ 150.705 318.799 null] >> endobj 1114 0 obj << /D [1104 0 R /XYZ 150.705 306.843 null] >> endobj 1115 0 obj << /D [1104 0 R /XYZ 150.705 294.888 null] >> endobj 1116 0 obj << /D [1104 0 R /XYZ 150.705 241.367 null] >> endobj 1117 0 obj << /D [1104 0 R /XYZ 150.705 243.937 null] >> endobj 1118 0 obj << /D [1104 0 R /XYZ 150.705 231.982 null] >> endobj 1119 0 obj << /D [1104 0 R /XYZ 150.705 220.027 null] >> endobj 1120 0 obj << /D [1104 0 R /XYZ 150.705 208.071 null] >> endobj 1121 0 obj << /D [1104 0 R /XYZ 150.705 154.55 null] >> endobj 1122 0 obj << /D [1104 0 R /XYZ 150.705 157.12 null] >> endobj 1123 0 obj << /D [1104 0 R /XYZ 150.705 145.165 null] >> endobj 1124 0 obj << /D [1104 0 R /XYZ 150.705 133.21 null] >> endobj 1103 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R >> /XObject << /Im13 1014 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1151 0 obj << /Length 1900 /Filter /FlateDecode >> stream xZmo6_!`@;C&E/)+7VRcva~GJQM.VDyǗxw,B$bdqvҼ4G[@nh~EJ[ pp!Cfeegl`ɓ'e%g?=K/VgO˗wuWRvwR ͖Έy(?jDzof kV+(x080sh$ZƧE'aFT}Դ;y8 JYn=7UV `{%6hαqz·gr2'l^OyGQ}a",GJ}f( O&E[ HTzV*[t<8%uXh r~++دenpT#ZԋWuv;%㷥^l SEEV3LRWYqau^X|fG XHK\+A5,.@Ohɰ3;g͵!h6TbQ,cYpH;pTo.- ƙt,h<=3~5؟%YÓRs{t>S`z|p!N.D(4(=F; VCu{q7>4w]ŚT,p&ǵ0 Xc[7nЗTy5_UlTAUn1Jq UO53l sD~loU׸v3m?&ี=ݶ._pBEGӎ$ᦿU߿ endstream endobj 1150 0 obj << /Type /Page /Contents 1151 0 R /Resources 1149 0 R /MediaBox [0 0 595.276 841.89] /Parent 1178 0 R /Group 1148 0 R /Annots [ 1146 0 R ] >> endobj 1147 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/filter2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1179 0 R /BBox [0 0 437 317] /Group 1148 0 R /Resources << /ExtGState << /a0 << /CA 1 /ca 1 >> >>/Font << /f-0-0 1180 0 R>> >> /Length 3802 /Filter /FlateDecode >> stream x\Ɏ$W 53 >0 AGP}};HB2ra1(tGt$#"_V>&YoV{y7k_A.4m MAKn%(%V%L]Vm"o[ҿv;gn>h~O~1xU̺lt H~ܾg@{{լ͆YfujVXiЄS&i bAv.2$ K=jNJ+S>UBVLHA[-_k\,0[fgW[ ƅx1}OZk篿O* >MWK V`Ԛ)kbu,o&Dbb"(o-tO_仴_;4o{ Zp[UDyVs}ʼz=QLH{{{]/ =ڊb@jc3bt0&ĸY8W># 2T>W%a=QCY(z498(zFmk?chd)Ii;*nf6zcRwƥfN?]W JqJAhVjrwЊ5STӃqJcLk+CʸԞQqN+Rk` L,t bDIWЄ{jI,e "߹wa y6D;pMpk `xuk ^γ v<),o8TB<9:Xᮟ}(^ b.XT\]"D{Bj-iAzGЭS|3!vXbpṨ'u\+k|Rk(Ëc6*,p]$BY`x^#L=LL}׃< b OysmAvwڪfV+dzI)yfDLǜP=AJ$6f,_C5FxzAP/H:6;: Qj|B6,9%X/Rwp!S9 jVeg[e}O9RBhMk?z}ksͶT rReJN\ژ"X*v)1~¹g48nI99M)1U9%dfgzSHM?'uԞ~j \FZLnLVYl.QSJ/SHh> WD _:Ϸ&`N"k~Z?nSRq P`4!%U|P/Ol!t>Dީk)( s ^/m2ǹ>wi=5m^d4A6SA*W"TbbC9d VJܱ+%({^Vhz,mYh-*pTζy8LF>ix ' (vhFq 4@\u+ YY鵭,Ĥ齙X105L/VjsKYC>E0_I HgM'\7k邭! H+Es/3iCg2s3DQNVb,>X1 h48R/X4u/ ⵹vA PEEKk1:Sc(4BD[ _xhz&gih&c_Ԃ2b j^$Q->j4y?Kg9hcD#zUa(U3;M#\7kAh⹅"ޫCh03IMj*FXp`1tNϪ3ZRDE7{юhU\ё[|ӄ :[Arޏ޴8#'LX1u 5*P8$& g|LpnAj٥g KgehaH/]9d=SH",%I$s9Q澑u}$" ="1P3JߌDG[3<p*D9<O"O9vD8!*Ǵ>4VF>#/ꑶcBXb#W0>D{N:3m2lFn4SL&6Ɍ4B2 [fj_#ut 8B2U4%&zFHHas)Mɞ#qn"q=@=DvS/;'b|&2T tV2 \r bajv@eLm+ i]WO6$O=H,2cɞ _2ˤ&R TE!!LE?`aQ !PaAP/H,+</ケ;`G2ن6yS=`bxmyXhi}0>΁Ȫ bV[oi2GVh#nqmi>m?ZjױLɰ$Db+XfFo㰭 J@`1|6"}ěBZVzЪ*+M5SGMu3l7_)c]"2["4ҧ@: `2/FtN|iڬ K6p endstream endobj 1179 0 obj << /Creator (cairo 1.8.8 \(http://cairographics.org\)) /Producer (cairo 1.8.8 \(http://cairographics.org\)) >> endobj 1180 0 obj << /Type /Font /Subtype /Type0 /BaseFont /LiberationSans /Encoding /Identity-H /DescendantFonts [ 1181 0 R] /ToUnicode 1182 0 R >> endobj 1181 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /LiberationSans /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> /FontDescriptor 1183 0 R /W [ 0 [ 365 556 556 277 556 333 389 583 277 222 222 277 556 333 333 333 556 556 500 500]] >> endobj 1182 0 obj << /Length 1184 0 R /Filter /FlateDecode >> stream x]Kn0=ex%$RnX8 n_?J"13;=/<n{҃Q$Sϗ$yAjIe> endobj 1184 0 obj 308 endobj 1185 0 obj << /Length 1186 0 R /Filter /FlateDecode /Length1 7348 >> stream xX{XTG{o?hoc |cCKs>ނ`$ת21-V+oZߒg#@nO}7mvjxrV 1rYD񰊻V>ha9Q.2 vVMldj]X zQ@YmhdŬb1b Qn4vS}\1@JȄntp9C?Q -rͷvP&8n ^^}-鏿2]>gE2-vok1̤13)xa%H"D>5cKmRO9Y[ 8aFD# P=LZ(sbnQs讂SI2gb2^JvgB"J&iYU\AXqcG=qerWΩVd[_&?{y88ㅪ&?/~W p}Y( hD: HIc9AoGgѕO?ÀW JЏS9:i>j^ {~4G332fdr7FIoJH-`;4 `,2JFȩt] έ[FccYE֚Ld"ɑ Q]!P XS'\ Z3݀knQ ՝z}0 S&3?˃HYҎo|`MM_Մ6/ \~lg^ɻ×#z;<ߜfμ&^9\2{:ir+meKv6fy7!?+t9٤T8"M7N0qb ӡ&noK[<̵r|+mjs!n ԲkM,SY!UUjTLZB ռ^ᓄ$t98%3}3rug[JF)@K .C9 9ƅƚ\ئ5_0!ߟjms}[yv ,ҡ%RU~L8b->2 ľW5^ޯ&j=kX SD z=9d4~'ɆprdF(c+*MJK5L=(h\g4#ט«]*9BD9,&UZi'0!4f鹺 3YK*edUV)9dۗn'YtT)O8LG+^~QnQuy!jP AC \Jf!2w5jy@h~PSI=8?hD,ުЭAQyęݾ[# (V0#6UT>*Mլ]fEwμ@zgIvK'})Rȑ HtZ83i*dрڐq6uTpxkR |TXRrՐ/U%9m/gdb#\ʩ\Z1'yg{EɚhCWI/=ܺ9rsֽ@mb/mxܗz ^U= wvD*#6L[ d[ӯ5abD.]ۀzcITpwRr@w:,u.?][~eHWq`Ekh.&o\.ɬ񞊎͉U5wWFM]w])u-D@oBҕ;m0ٔ pI#De"5Lb2d< 1c,$H3| >$KJI).Un<ؘ (ed?uH?xzzb =4t9;y|?+AԼ4 I8t6wCZ9+{KW9wuEՁ;%6X@"u.suY <^8gai. =^O P'EnJ(6d' ܉a|=נfK3ڀ!4 ϣkh(/@ԉz_b5tl$ri D_3Q5g<@ê˗.-z*K,\0n ?7g=[eR >9I]j2| }J-h`y# aepH F}c)y Q߭QTb O(JI@l0C:Aް.JڐPtAKqnV$׳h M]Vf잖V_TmƂ9YVP"RVUjEIUGQ ;[֖oeFO4_689b.(D@q{9-SѦF-uhF Yjp^4YZX&(Whܢl34Nn@F7~pTB뀐qZ@#Hr:e=c=i?sgzXӬ]ʬU[u`OQGMRg2VjZ; ')Q^!MaنT1TG~;:L @(ȗ}7eRy0% GYTyR<ʔirjfNO5]YDq,>xb9tpzlO4&[V6!hR#pH 3ٔeR]%7KwPq 1b&'k!HL# !x!VC-xx\RS,،GzjQsMKSQT̶F[ oC$1 bi6/ b!Ȓ?HFQPC| `B6&(a\yB!}讙vU "мFFԄY~ϢGlOJh cA6 j3:OV_ '"ROp~)&['f's]~򸟩ΨWtC٠yka5R6N _/[\y֛^u7Fݍ7o>(x`7tǽƯgqd_c&pY['J%c2{ 4VnZc{єbB݅ /p{k)0a@!7cD_? V\Y/%^^0`}/  `V[V[N}K?n3]cUG:ڿF}&Y5 @Ӛ0O4>R+ aKc 6[Qecowo^#-L)GOiaGaX7DvqDzq$ҋ"fhG"0#.$fUo\t$#0?bj?; endstream endobj 1186 0 obj 5399 endobj 1148 0 obj << /Type /Group /S /Transparency /CS /DeviceRGB >>endobj 1146 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [352.819 632.667 366.946 645.131] /A << /S /GoTo /D (figure.6.4) >> >> endobj 1152 0 obj << /D [1150 0 R /XYZ 98.895 747.976 null] >> endobj 1153 0 obj << /D [1150 0 R /XYZ 99.895 719.013 null] >> endobj 198 0 obj << /D [1150 0 R /XYZ 99.895 684.684 null] >> endobj 1154 0 obj << /D [1150 0 R /XYZ 99.895 616.287 null] >> endobj 1155 0 obj << /D [1150 0 R /XYZ 99.895 618.857 null] >> endobj 1156 0 obj << /D [1150 0 R /XYZ 99.895 606.902 null] >> endobj 1157 0 obj << /D [1150 0 R /XYZ 206.655 400.074 null] >> endobj 1158 0 obj << /D [1150 0 R /XYZ 99.895 345.833 null] >> endobj 1159 0 obj << /D [1150 0 R /XYZ 99.895 348.403 null] >> endobj 1160 0 obj << /D [1150 0 R /XYZ 99.895 336.448 null] >> endobj 1161 0 obj << /D [1150 0 R /XYZ 99.895 324.493 null] >> endobj 1162 0 obj << /D [1150 0 R /XYZ 99.895 312.537 null] >> endobj 1163 0 obj << /D [1150 0 R /XYZ 99.895 300.582 null] >> endobj 1164 0 obj << /D [1150 0 R /XYZ 99.895 288.627 null] >> endobj 1165 0 obj << /D [1150 0 R /XYZ 99.895 276.672 null] >> endobj 1166 0 obj << /D [1150 0 R /XYZ 99.895 264.717 null] >> endobj 1167 0 obj << /D [1150 0 R /XYZ 99.895 252.762 null] >> endobj 1168 0 obj << /D [1150 0 R /XYZ 99.895 240.806 null] >> endobj 1169 0 obj << /D [1150 0 R /XYZ 99.895 228.851 null] >> endobj 1170 0 obj << /D [1150 0 R /XYZ 99.895 216.896 null] >> endobj 1171 0 obj << /D [1150 0 R /XYZ 99.895 204.941 null] >> endobj 1172 0 obj << /D [1150 0 R /XYZ 99.895 192.986 null] >> endobj 1173 0 obj << /D [1150 0 R /XYZ 99.895 181.031 null] >> endobj 1174 0 obj << /D [1150 0 R /XYZ 99.895 169.075 null] >> endobj 1175 0 obj << /D [1150 0 R /XYZ 99.895 157.12 null] >> endobj 1176 0 obj << /D [1150 0 R /XYZ 99.895 145.165 null] >> endobj 1177 0 obj << /D [1150 0 R /XYZ 99.895 133.21 null] >> endobj 1149 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F95 356 0 R /F87 315 0 R >> /XObject << /Im14 1147 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1189 0 obj << /Length 2256 /Filter /FlateDecode >> stream xrF]_ p<'9ǩrڂHPB I*ߞEJZٱaT4z{8`Bbs޿ӧGl)bo% kyWG%ub8 RIj9Ts.6u1;=50r,B-eEx2SM~Q5LFʑd#( a#.9ir]D|8OT k#_ Nj>kd( *cWפFx0Cw/^XL#х /,#jzoDF\n^D4xh,5,gr/>FҚziOszAލT^ @ ɩUC6=ǹ2HYOQdP(?A`s<ϱ,j5(zԭTg{<^FAy =bEV14,iKU dDR|4, ORч/1CXR,} 㯱!0˗XFlPS?\Ҹ#p$m??k"<WZ@EӚzȞ7;~g+6XGv9Qn=,PQiۥ!.i4}@ijqVPRP撞D{eLh1胔D$Hyy̰ͣ)vx0=!b`n6c( j )e$ E=y<<52c&BbX7Dz{)Ɖfk8jt^ZA%KmHè{ߺ5x][f%5h\mn6~oNxqWBrVE*GGΙPEJNJ] U^{JH|ߕp!ȳw%H@$}d$U9ΫhC8MY7AT>G824_y NLH/Hdڔ\UȶpjҮux]Ҋ V 2m^4c0/$'jSZR<"&e0'C _ZzS/ gBbX@ Dmu~ϳrZUq3t; Z~UhIFrZ &ۮY-i9RnNYjv "N%IlGU),% b+!fMn+O:p3` { ^b endstream endobj 1188 0 obj << /Type /Page /Contents 1189 0 R /Resources 1187 0 R /MediaBox [0 0 595.276 841.89] /Parent 1178 0 R >> endobj 1190 0 obj << /D [1188 0 R /XYZ 149.705 747.976 null] >> endobj 1191 0 obj << /D [1188 0 R /XYZ 150.705 719.013 null] >> endobj 1192 0 obj << /D [1188 0 R /XYZ 150.705 707.058 null] >> endobj 1193 0 obj << /D [1188 0 R /XYZ 150.705 695.103 null] >> endobj 1194 0 obj << /D [1188 0 R /XYZ 150.705 683.148 null] >> endobj 1195 0 obj << /D [1188 0 R /XYZ 150.705 671.192 null] >> endobj 1196 0 obj << /D [1188 0 R /XYZ 150.705 659.237 null] >> endobj 1197 0 obj << /D [1188 0 R /XYZ 150.705 647.282 null] >> endobj 1198 0 obj << /D [1188 0 R /XYZ 150.705 635.327 null] >> endobj 1199 0 obj << /D [1188 0 R /XYZ 150.705 623.372 null] >> endobj 1200 0 obj << /D [1188 0 R /XYZ 150.705 611.417 null] >> endobj 1201 0 obj << /D [1188 0 R /XYZ 150.705 599.461 null] >> endobj 1202 0 obj << /D [1188 0 R /XYZ 150.705 587.506 null] >> endobj 1203 0 obj << /D [1188 0 R /XYZ 150.705 575.551 null] >> endobj 1204 0 obj << /D [1188 0 R /XYZ 150.705 563.596 null] >> endobj 1205 0 obj << /D [1188 0 R /XYZ 150.705 551.641 null] >> endobj 1206 0 obj << /D [1188 0 R /XYZ 150.705 539.686 null] >> endobj 1207 0 obj << /D [1188 0 R /XYZ 150.705 527.73 null] >> endobj 1208 0 obj << /D [1188 0 R /XYZ 150.705 515.775 null] >> endobj 1209 0 obj << /D [1188 0 R /XYZ 150.705 503.82 null] >> endobj 1210 0 obj << /D [1188 0 R /XYZ 150.705 491.865 null] >> endobj 1211 0 obj << /D [1188 0 R /XYZ 150.705 479.91 null] >> endobj 1212 0 obj << /D [1188 0 R /XYZ 150.705 467.955 null] >> endobj 1213 0 obj << /D [1188 0 R /XYZ 150.705 455.999 null] >> endobj 1214 0 obj << /D [1188 0 R /XYZ 150.705 444.044 null] >> endobj 1215 0 obj << /D [1188 0 R /XYZ 150.705 432.089 null] >> endobj 1216 0 obj << /D [1188 0 R /XYZ 150.705 420.134 null] >> endobj 1217 0 obj << /D [1188 0 R /XYZ 150.705 408.179 null] >> endobj 1218 0 obj << /D [1188 0 R /XYZ 150.705 396.224 null] >> endobj 1219 0 obj << /D [1188 0 R /XYZ 150.705 384.268 null] >> endobj 1220 0 obj << /D [1188 0 R /XYZ 150.705 372.313 null] >> endobj 1221 0 obj << /D [1188 0 R /XYZ 150.705 360.358 null] >> endobj 1222 0 obj << /D [1188 0 R /XYZ 150.705 348.403 null] >> endobj 1223 0 obj << /D [1188 0 R /XYZ 150.705 336.448 null] >> endobj 1224 0 obj << /D [1188 0 R /XYZ 150.705 324.493 null] >> endobj 1225 0 obj << /D [1188 0 R /XYZ 150.705 312.537 null] >> endobj 1226 0 obj << /D [1188 0 R /XYZ 150.705 300.582 null] >> endobj 1227 0 obj << /D [1188 0 R /XYZ 150.705 256.433 null] >> endobj 1228 0 obj << /D [1188 0 R /XYZ 150.705 213.289 null] >> endobj 1229 0 obj << /D [1188 0 R /XYZ 150.705 158.189 null] >> endobj 1187 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1233 0 obj << /Length 2870 /Filter /FlateDecode >> stream xZ[oݸ~ϯ8pJ"QȮ,ɶI6Ϳ gHQ:5:7ww;_߼ȓ]Lv׷<<ޥa2]W_EIq4WNOg?t\g˿SΜ.vu-= #/S eYse cC⎼W7}qX;nEDTpj}Dbh"Mฑ?h"0? _FpuR[&ZߜP ՉrMIQ5} ZڹAqL;?k[Pp4F'^%5 wG&8~RNe c#(b}T-_jaEYҞ%*ZCMl.Pm/L$0޴5./O9VY޻rp[Q>Gi*2Rᡸ~~?Џm%v1]9Eyibfl) efPl o~) X+-[P#}k4n~GJcE;VM"Sx`  H8^ЁZK n7sV zk8mDD)/蜈H){ZT,$ p)ҚG)L#)Sw4A*Kb ҷ+"di[h;z``с8Ƚ(+3+i{sJe[eI]$'Yl30fb:@jfȓA?.4s(R@D[W* zbZ-S aG f^iUrTㆡ|6P:k4cd0[5(΁4\l+dE)a?ʋP{r΃;zͯmw3V^,V)}/#k*2aum-OƝ14i,X)`8ƐG_kfX~/k$`XE'gM YEqXEݣ|9__fQ%*㯂>j5ǮZ1o+ZnY5~ь[{i/Mc8K2vk0ãeTvm) ZWe61: a|q>k* kqEP`-VfAk+x6*!3EJfH9.]:s#Ywa]Rp7Dޔ[ȗ~$أڞl0V57U킞ݲ(<+ A=Vt~["Z{04lsQ\>f<uFhM :gq́vezb4 |bSEB^e<- mmD_[,_n'w6<IJ~%w ["n]@ PTofx%Tx?j %0oτ"pYZ 7)Ao-a#DeͨndS7;^~'uObԀH'xJ|&a+O6_@`جV[dWР:gh(Ѱ^K#=Ew\B=>g(هf!.HlyN/b;ח>4_uϿy|׶yJ͂ Ca|[&M8p& 74K*aw> endobj 1230 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [352.819 129.643 366.946 142.106] /A << /S /GoTo /D (figure.6.4) >> >> endobj 1234 0 obj << /D [1232 0 R /XYZ 98.895 747.976 null] >> endobj 1235 0 obj << /D [1232 0 R /XYZ 99.895 717.021 null] >> endobj 1236 0 obj << /D [1232 0 R /XYZ 99.895 687.829 null] >> endobj 1237 0 obj << /D [1232 0 R /XYZ 99.895 654.512 null] >> endobj 1238 0 obj << /D [1232 0 R /XYZ 99.895 609.24 null] >> endobj 1239 0 obj << /D [1232 0 R /XYZ 99.895 540.058 null] >> endobj 202 0 obj << /D [1232 0 R /XYZ 99.895 496.337 null] >> endobj 206 0 obj << /D [1232 0 R /XYZ 99.895 184.953 null] >> endobj 1231 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F95 356 0 R /F56 378 0 R /F87 315 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1242 0 obj << /Length 3221 /Filter /FlateDecode >> stream xko~8&z.ƏuXf!$D qc#흝}piɶ*5rogvfvG{{Ã;94׽SzF(B9 'ÿy; ':oϛ?|xpeMe,gӣq_'G}fw7=k >qP֋@u3p95ק~:f " !1 .3ޫg0j$S@D$##8!T@W ap0ɛQՌN%}6?Gpd<5>$LI#Rl3G{gMUQHdQgk*:k+XPN5DQ}ͩh&0Z0)970Z)8TD: OSW +Git9.Ό³tfo;0}wV`QU#_?ZezDȗ)B(AV%@f(!(-"g -9,Y$B\hA i @~5a$LZb9ʝ FWřd9n;Pf+]Nb` *+`~'ȕ<.N ڿwKAFt  9cėo_ /ew~  PcI1|Zl_ 늪M5f3Ml*ZI>#=eDX8IO%qV(?A(E2i63\S uG]0ljK%`)-%$"*i6Uͨ2m'R kIᅟ"0AN/xɎ?ʤj90X D/~a endstream endobj 1241 0 obj << /Type /Page /Contents 1242 0 R /Resources 1240 0 R /MediaBox [0 0 595.276 841.89] /Parent 1178 0 R >> endobj 1243 0 obj << /D [1241 0 R /XYZ 149.705 747.976 null] >> endobj 1244 0 obj << /D [1241 0 R /XYZ 150.705 717.021 null] >> endobj 1245 0 obj << /D [1241 0 R /XYZ 150.705 719.013 null] >> endobj 1246 0 obj << /D [1241 0 R /XYZ 150.705 707.058 null] >> endobj 1248 0 obj << /D [1241 0 R /XYZ 150.705 632.757 null] >> endobj 1249 0 obj << /D [1241 0 R /XYZ 150.705 635.327 null] >> endobj 1250 0 obj << /D [1241 0 R /XYZ 150.705 623.372 null] >> endobj 1251 0 obj << /D [1241 0 R /XYZ 150.705 611.417 null] >> endobj 1252 0 obj << /D [1241 0 R /XYZ 150.705 599.461 null] >> endobj 1253 0 obj << /D [1241 0 R /XYZ 150.705 587.506 null] >> endobj 1254 0 obj << /D [1241 0 R /XYZ 150.705 575.551 null] >> endobj 1255 0 obj << /D [1241 0 R /XYZ 150.705 563.596 null] >> endobj 1256 0 obj << /D [1241 0 R /XYZ 150.705 551.641 null] >> endobj 1257 0 obj << /D [1241 0 R /XYZ 150.705 539.686 null] >> endobj 1258 0 obj << /D [1241 0 R /XYZ 150.705 527.73 null] >> endobj 1259 0 obj << /D [1241 0 R /XYZ 150.705 515.775 null] >> endobj 1260 0 obj << /D [1241 0 R /XYZ 150.705 503.82 null] >> endobj 1261 0 obj << /D [1241 0 R /XYZ 150.705 491.865 null] >> endobj 1262 0 obj << /D [1241 0 R /XYZ 150.705 479.91 null] >> endobj 1263 0 obj << /D [1241 0 R /XYZ 150.705 467.955 null] >> endobj 1264 0 obj << /D [1241 0 R /XYZ 150.705 455.999 null] >> endobj 1265 0 obj << /D [1241 0 R /XYZ 150.705 444.044 null] >> endobj 1266 0 obj << /D [1241 0 R /XYZ 150.705 432.089 null] >> endobj 1267 0 obj << /D [1241 0 R /XYZ 150.705 420.134 null] >> endobj 1268 0 obj << /D [1241 0 R /XYZ 150.705 408.179 null] >> endobj 1269 0 obj << /D [1241 0 R /XYZ 150.705 396.224 null] >> endobj 1270 0 obj << /D [1241 0 R /XYZ 150.705 384.268 null] >> endobj 1271 0 obj << /D [1241 0 R /XYZ 150.705 372.313 null] >> endobj 1272 0 obj << /D [1241 0 R /XYZ 150.705 360.358 null] >> endobj 1273 0 obj << /D [1241 0 R /XYZ 150.705 348.403 null] >> endobj 1274 0 obj << /D [1241 0 R /XYZ 150.705 336.448 null] >> endobj 1275 0 obj << /D [1241 0 R /XYZ 150.705 324.493 null] >> endobj 1276 0 obj << /D [1241 0 R /XYZ 150.705 312.537 null] >> endobj 1277 0 obj << /D [1241 0 R /XYZ 150.705 300.582 null] >> endobj 1278 0 obj << /D [1241 0 R /XYZ 150.705 288.627 null] >> endobj 1279 0 obj << /D [1241 0 R /XYZ 150.705 276.672 null] >> endobj 1280 0 obj << /D [1241 0 R /XYZ 150.705 264.717 null] >> endobj 1281 0 obj << /D [1241 0 R /XYZ 150.705 252.762 null] >> endobj 1282 0 obj << /D [1241 0 R /XYZ 150.705 240.806 null] >> endobj 1283 0 obj << /D [1241 0 R /XYZ 150.705 228.851 null] >> endobj 1284 0 obj << /D [1241 0 R /XYZ 150.705 216.896 null] >> endobj 1285 0 obj << /D [1241 0 R /XYZ 150.705 204.941 null] >> endobj 1286 0 obj << /D [1241 0 R /XYZ 150.705 192.986 null] >> endobj 1287 0 obj << /D [1241 0 R /XYZ 150.705 181.031 null] >> endobj 1288 0 obj << /D [1241 0 R /XYZ 150.705 157.12 null] >> endobj 1289 0 obj << /D [1241 0 R /XYZ 150.705 145.165 null] >> endobj 1290 0 obj << /D [1241 0 R /XYZ 150.705 133.21 null] >> endobj 1240 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R /F107 376 0 R /F108 1247 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1293 0 obj << /Length 1980 /Filter /FlateDecode >> stream x\o7_ך)R!m n}8 qCuCGQ3IIhaG )Q$:pp-.~N;n;_va! Eΐ,pճţ.rWb]f}pr$u_-;z; [=8_>^}sO=JwKfǽK!/?j{_vB8:)=D"dwkhtU"zW60Tx=5J;5r7F(حL;;㯌?~gz+CkM tJc_jRƿ4oCN\6dРn%- Y= 㟌Ťxi"_TI3HhuI)A&ɺXGus/D^9"f#AMG 8[2{̢&NМJSѕ<׵{Sk/ׯՅڰFG~ qr=etc?uL{lmR fUF%sXa۫ΥتEmqml:-㮯J>snVU~6cߓ|=B}n8{,>F7 6N'[l2 (Rv}%цrh> nhzD'Ed#v֏&fӇd+9n`|2޵i4́c.s^}[mhr\:fΌ`͞^ zm6Ѓ09Ǝ5"lۅ@('!Q;(1 Rl#G;P?/K86BZa+`yxLmbyF(iX FNޯ-gqc%𰵮Y,6$g)yb˃fu:BqX |! ` U塔 ;A߆-B`` 0kYm,n8FiCRm&͹%v6h3L](A6<|[ aІǃ!o SsX:17C`Bpo-.C7ljˣ sX8[( -n<8ly+ emhuZ-UiWy#N~,mN۴t\& endstream endobj 1292 0 obj << /Type /Page /Contents 1293 0 R /Resources 1291 0 R /MediaBox [0 0 595.276 841.89] /Parent 1178 0 R >> endobj 1294 0 obj << /D [1292 0 R /XYZ 98.895 747.976 null] >> endobj 1295 0 obj << /D [1292 0 R /XYZ 99.895 719.013 null] >> endobj 1296 0 obj << /D [1292 0 R /XYZ 99.895 695.103 null] >> endobj 1297 0 obj << /D [1292 0 R /XYZ 99.895 683.148 null] >> endobj 1298 0 obj << /D [1292 0 R /XYZ 99.895 671.192 null] >> endobj 1299 0 obj << /D [1292 0 R /XYZ 99.895 659.237 null] >> endobj 1300 0 obj << /D [1292 0 R /XYZ 99.895 647.282 null] >> endobj 1301 0 obj << /D [1292 0 R /XYZ 99.895 635.327 null] >> endobj 1302 0 obj << /D [1292 0 R /XYZ 99.895 623.372 null] >> endobj 1303 0 obj << /D [1292 0 R /XYZ 99.895 611.417 null] >> endobj 1304 0 obj << /D [1292 0 R /XYZ 99.895 599.461 null] >> endobj 1305 0 obj << /D [1292 0 R /XYZ 99.895 587.506 null] >> endobj 1306 0 obj << /D [1292 0 R /XYZ 99.895 575.551 null] >> endobj 1307 0 obj << /D [1292 0 R /XYZ 99.895 551.641 null] >> endobj 1308 0 obj << /D [1292 0 R /XYZ 99.895 539.686 null] >> endobj 1309 0 obj << /D [1292 0 R /XYZ 99.895 527.73 null] >> endobj 1310 0 obj << /D [1292 0 R /XYZ 99.895 491.865 null] >> endobj 1311 0 obj << /D [1292 0 R /XYZ 99.895 479.91 null] >> endobj 1312 0 obj << /D [1292 0 R /XYZ 99.895 467.955 null] >> endobj 1313 0 obj << /D [1292 0 R /XYZ 99.895 444.044 null] >> endobj 1314 0 obj << /D [1292 0 R /XYZ 99.895 432.089 null] >> endobj 1315 0 obj << /D [1292 0 R /XYZ 99.895 408.179 null] >> endobj 1316 0 obj << /D [1292 0 R /XYZ 99.895 396.224 null] >> endobj 1317 0 obj << /D [1292 0 R /XYZ 99.895 384.268 null] >> endobj 1318 0 obj << /D [1292 0 R /XYZ 99.895 372.313 null] >> endobj 1319 0 obj << /D [1292 0 R /XYZ 99.895 360.358 null] >> endobj 1320 0 obj << /D [1292 0 R /XYZ 99.895 348.403 null] >> endobj 1321 0 obj << /D [1292 0 R /XYZ 99.895 324.493 null] >> endobj 1322 0 obj << /D [1292 0 R /XYZ 99.895 312.537 null] >> endobj 1323 0 obj << /D [1292 0 R /XYZ 99.895 300.582 null] >> endobj 1324 0 obj << /D [1292 0 R /XYZ 99.895 264.717 null] >> endobj 1325 0 obj << /D [1292 0 R /XYZ 99.895 252.762 null] >> endobj 1326 0 obj << /D [1292 0 R /XYZ 99.895 240.806 null] >> endobj 1327 0 obj << /D [1292 0 R /XYZ 99.895 216.896 null] >> endobj 1328 0 obj << /D [1292 0 R /XYZ 99.895 204.941 null] >> endobj 1329 0 obj << /D [1292 0 R /XYZ 99.895 181.031 null] >> endobj 1330 0 obj << /D [1292 0 R /XYZ 99.895 169.075 null] >> endobj 1331 0 obj << /D [1292 0 R /XYZ 99.895 157.12 null] >> endobj 1332 0 obj << /D [1292 0 R /XYZ 99.895 145.165 null] >> endobj 1333 0 obj << /D [1292 0 R /XYZ 99.895 133.21 null] >> endobj 1291 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1336 0 obj << /Length 706 /Filter /FlateDecode >> stream xXo1 ~"9M$=֖B9$116 ( 8-t$bw8q}Xg2UUfd9kQ5kw!Tw DC*:cQuoԱ=NhȔOɲYJ:@;xb-["8::N"֝d>Y`tw7O^ c5o:bՓDtQ]5༃lFDju.wЗI$RŬ߳Lz2XҐiGPkrS2}^,{xQJeg2rSegGc˚;.d0@r܅LUl ,oD~`F L17IE6k}S^Bz2?}* Ǣwuq%lДb5.{`8f00BA {PTq,K͆yLfB{c "{Lտxa~CdÌ.d`: j=Id{UN"J̒$$ 4W[PODǗ(WȧQgc%Vn<rSv=|.!ƺ\Jց=f?.G >C(%1qɗZr?|`{p`[=E/q>\0X,7+~no=c endstream endobj 1335 0 obj << /Type /Page /Contents 1336 0 R /Resources 1334 0 R /MediaBox [0 0 595.276 841.89] /Parent 1178 0 R >> endobj 1337 0 obj << /D [1335 0 R /XYZ 149.705 747.976 null] >> endobj 1338 0 obj << /D [1335 0 R /XYZ 150.705 719.013 null] >> endobj 1339 0 obj << /D [1335 0 R /XYZ 150.705 707.058 null] >> endobj 1340 0 obj << /D [1335 0 R /XYZ 150.705 683.148 null] >> endobj 1341 0 obj << /D [1335 0 R /XYZ 150.705 671.192 null] >> endobj 1342 0 obj << /D [1335 0 R /XYZ 150.705 659.237 null] >> endobj 1343 0 obj << /D [1335 0 R /XYZ 150.705 647.282 null] >> endobj 1344 0 obj << /D [1335 0 R /XYZ 150.705 635.327 null] >> endobj 1345 0 obj << /D [1335 0 R /XYZ 150.705 623.372 null] >> endobj 1346 0 obj << /D [1335 0 R /XYZ 150.705 611.417 null] >> endobj 1347 0 obj << /D [1335 0 R /XYZ 150.705 599.461 null] >> endobj 1348 0 obj << /D [1335 0 R /XYZ 150.705 587.506 null] >> endobj 1334 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1351 0 obj << /Length 1454 /Filter /FlateDecode >> stream xڽXKo6WR@%RjOmFlI\I+D+mVR\ΐVrl# ^䐜|32Xysuf""6Hj#-8&ڔ[`O&CR6^1jx(s3[5 *bKE\re&G. ךrn$5Ts$h ahn(^seWǪK8#pk?Sc_+4B{u:CJyԅ9?K~"ƉM"ETdT7 't&], XUTN??rR#ő*ȑRO`$gT}ֶi­+N/1\Wx)$[@:O][z*NS;~olNFKIKg(g9Ub249B< >)esc)h$;9 pGY jI/ov/$TZ8 !%,F9b c亳 ʯZxGk,zdqW[(G[~G]rc_݂ͤEOV+gayMt 3%“s;oLaZN>B;&}op jt۲:U檅;_̈́#ƶ <%[8Ɗ$媞vQ\{%A!BaFaBģ,#[%c+ܜp m:5 0argӤ`*10,^.5ƹBP6}Z tD =oy׀Xٰxs͜AE{6lcu1,vjd>'7N~b W]=w~OOg\|v:sܗ!Ow3[O> endobj 1352 0 obj << /D [1350 0 R /XYZ 98.895 747.976 null] >> endobj 210 0 obj << /D [1350 0 R /XYZ 99.895 717.021 null] >> endobj 214 0 obj << /D [1350 0 R /XYZ 99.895 430.674 null] >> endobj 1353 0 obj << /D [1350 0 R /XYZ 99.895 369.517 null] >> endobj 1354 0 obj << /D [1350 0 R /XYZ 99.895 334.775 null] >> endobj 1355 0 obj << /D [1350 0 R /XYZ 99.895 300.033 null] >> endobj 218 0 obj << /D [1350 0 R /XYZ 99.895 253.057 null] >> endobj 1349 0 obj << /Font << /F87 315 0 R /F46 279 0 R /F95 356 0 R /F111 377 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1361 0 obj << /Length 1803 /Filter /FlateDecode >> stream xYYs6~ׯ XqysI'G(4}%*S8xI6bvqS?~1V+&pLI8i4WE/.^Thp4Jחu|w<{{a$( ko B1ݯ=Lv&݀Z njKjEx`K/,8M:K#E6B(CwO4.F)VKnC6EiRfii A"P["8 ā_iEQ1/sM jl~73/+׿ Χҝgj# `#7$Y o0X0^yX9 e8 S,{'36 ·3)ϸ $C?WRp|ǘ<_0()XXGLOh2:p$"}`vq]!ݻC Q8Y;Ͳ.CSc6FŽ_O;mU.to~_go! $ P? n irg X¢d lh`n\O[{ݸpQ4D JFn AAEuXQv}C;sh/gیF|Un fq+@N.8 -r ?)qhE8-*Ap\XZ {6!t9j f gU=E#C~Cu`+F'`9Y_vW`Q*J,K{' ޞb2`%Q\jD93|(89eãuCs 7G;L f5 `Qu;pjcKVh>r2RA}/]H j֝'|ז_ZELAJc)Wr8CrL}1a]Yzs*L&u  ỲmПD@ J .aFA9 S- e# H.; >:&<)>}ڨ^+A ;;bXO SIKGAwlҜcLS4{4'~,`mFU/*OL"5n]W9HN:3KF$XQ ̱F3I3-mZwoϡ4:ًCE8Z` \ [6ឍV[~Ӧz`bHͨghUJPkypbkQoS`pb-Zvv\<@jhu-]?`¦q_7r1_|AZbـǛpPa!y7 68 ;[Vʫo<}Drsz "JL$$d^`/@;{lbáOLM ޺kcN0'N쨽я,<COC_oU>8]6*R(2#qx%'ɝu㢕l%yin3E-ԍ` zBdJv]Dᶰr<4" 6MƝ8Pf )g'pn/N7> endobj 1362 0 obj << /D [1360 0 R /XYZ 149.705 747.976 null] >> endobj 222 0 obj << /D [1360 0 R /XYZ 150.705 717.021 null] >> endobj 1363 0 obj << /D [1360 0 R /XYZ 150.705 642.545 null] >> endobj 1364 0 obj << /D [1360 0 R /XYZ 150.705 645.115 null] >> endobj 226 0 obj << /D [1360 0 R /XYZ 150.705 603.911 null] >> endobj 230 0 obj << /D [1360 0 R /XYZ 150.705 290.348 null] >> endobj 1359 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R /F111 377 0 R /F56 378 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1367 0 obj << /Length 2423 /Filter /FlateDecode >> stream xZ[۸~_>,*cxH-4m$؍%gdwysK((\s,xlqr2Mf)K4e&gZ,|g 6PE(ͫa?"6<E?y:m񏳗jXc{v9'g(b"5/?_g4]o-8Ȏed8Qoꪬ puPI)A ylkEK#C.N4XI+EAV̋ z upU:"(miL*=q;ˬyܮzZSěr4)lb߅qL{gŃc9p}kBù`&\y"틘qe F J{J}%6`di>]&©u5rGp~GϜ[s=KkCiq;t7܎rƙ2ŕq4 jYvvm V>[qgB\3s-xbq1L$f=[Nrb?(_ 'L q٬ HnvIe"xH|A͸1ŧlecO&LH$Rh$%?;[O|" !"A2Cbdcy~,y!1i55"3>Nx_KnzDHRqD<7eG=G˶zT',UoD&(,6nRIYANrvq$§[\o2gOC$? wBu,wGj{txA@A^\B?X檨YZ`Ic'}s0)K:$SJC=(D'm5ҙa T!Z8 Op_c 0ΩLviN E|$&MgG1 f&,5PUиZ h0[tu@<& V*ک"0q{hu 9ʁX3">T)ktG8<|@U˪ WBUl;;424BCkR3ܱ頽jBS54usxD#:l >hϮB3oisL =Ş?uɈ˩qk52*RhJ%g]@RBD ۮVd۵)Z;xO]h/_[# d'j,1|"up=?z>o,"뫺QAey U"I6+ vʲɋn{AmJ`̚qvazu[zYms6VLL%[NEE۷aJ#r^&LUyh+SqЮey񙨾ic)DꂨCf'Zmv4n[qOi.Z >=!iiUͫ@u$(k:.\ uANP=C{ھx{Atvߒ#]"&ׇNE.JBm]HlCc9L4Q4 @qmK!;o(g˧>ujIMm_C972SaMq9kd"ݸN9I6}Ķq΁;bYeĤu+8a? /ZjO+WHPAqV,> XbQǃSDʧAK'7Dc9r0l$u˺rY}2b߷uwC@r<\Oʾ x1lq`H.rl;&ڜ"^S`kGϴθoO}(G쟊N-aol<Jmvq+Tn'g"nvFvszITVSQ]`1AN]q 'Mj(7zE])UC/>R_'gc)yY$_6Pmd_FZ)V^x_Xp endstream endobj 1366 0 obj << /Type /Page /Contents 1367 0 R /Resources 1365 0 R /MediaBox [0 0 595.276 841.89] /Parent 1356 0 R /Annots [ 1357 0 R 1358 0 R ] >> endobj 1357 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [123.806 646.402 274.855 655.422] /Subtype/Link/A<> >> endobj 1358 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [123.806 625.807 267.063 634.827] /Subtype/Link/A<> >> endobj 1368 0 obj << /D [1366 0 R /XYZ 98.895 747.976 null] >> endobj 234 0 obj << /D [1366 0 R /XYZ 99.895 717.021 null] >> endobj 238 0 obj << /D [1366 0 R /XYZ 99.895 526.743 null] >> endobj 1369 0 obj << /D [1366 0 R /XYZ 99.895 457.543 null] >> endobj 1370 0 obj << /D [1366 0 R /XYZ 99.895 436.888 null] >> endobj 1371 0 obj << /D [1366 0 R /XYZ 99.895 404.81 null] >> endobj 1372 0 obj << /D [1366 0 R /XYZ 99.895 372.884 null] >> endobj 242 0 obj << /D [1366 0 R /XYZ 99.895 328.638 null] >> endobj 246 0 obj << /D [1366 0 R /XYZ 99.895 205.467 null] >> endobj 1365 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F87 315 0 R /F111 377 0 R /F57 392 0 R /F107 376 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1376 0 obj << /Length 3249 /Filter /FlateDecode >> stream x][oF~ϯKxmP M]n $}%&"Q^j{̐d;\ҖR>x4ve1]蟏~#Gztz>bCE(gubhN^vM 3 &ɷ}U:&celóT17Ͼ57?ixwտ'/i;VpkGcnLp&bhy1)yv 6L 'y="Xf󯟞ԹL@,mI:T&UdH°"IpLr{x"5Psjm*]2cd fZ]3M(4IyM*6ٮʨ!ToUyR8OL/'u3)&\(5q y!* UtribOfطto##* c0#.Y2f5g:\]-iSmiûT*2L!EUx(XY] (W 7^aRu@(xòeY.˜s@P\e]2_'4j/ loۊL`G X[bL4"48[pӛH< #8d].@Gs󼬲iPXsp Vdۖ[pg[m?lp;9&MJbg*bb]iCW*+ŗs)na5ނ!bq sJ$tZ+ * HB~.(_]Cŀwm&yy21 #xΌ885n])A{M%IJ»؄C*u LT\-Ng7 {5?M$7\bV 7PigCn^`U(,J/U4xj_KFCtw&jrZEX6geQc,y6͗rmHNjNf5/SD/Y>e~w1f: ,F13[Fū?G{%u΀`ƿ0?B,`Kj9ZG1$ ,P @5_ԇM R@) L'w>}1{L jcTtN@{U&.gϻ%ț3pע i鴕;sѹ5f\&% ni{Mt>0+0Tgaw{ A}bl KL.TAeGM=U18_`988zXbZcD3#l_疼rK/PM@p 0F##gy Whj4[瘯0-$ga\;byđ3ߜ_w !0Ghe?rQ(5Vy&cCc8?T_?|SxbW/[ށdɈTr`d) RDV ~=Rm#C7wqL 6_ `tF}yѿOA}CJb 1v#κAkGHbO7j_a~:>]aZ`{2lwZ+pN E|e{-:X rq5X hpE{@>٨z[ALp0#X:x\x{kP?aFNFf,OthD߶ʯZY %ʘh=x\^; q@:҄⳾ܦN]Sr 񳞓}Oiht2{@oÔA+ܑˠtDK۟ v(ƙe<বvSuЖ34CVP(e+|02lw2>*h~Jy P-w!nWχwhu+OϳnA[uhPCFb\ŰB8q*qxpCj<g做$!屛$0+`rn7?SY"8SFJn ,@Ow7*'7ە'UTޤ$S<,%ELU}Vߞyxv? endstream endobj 1375 0 obj << /Type /Page /Contents 1376 0 R /Resources 1374 0 R /MediaBox [0 0 595.276 841.89] /Parent 1356 0 R /Annots [ 1373 0 R ] >> endobj 1373 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [275.407 440.057 296.856 452.52] /A << /S /GoTo /D (subsection.3.2.3) >> >> endobj 1377 0 obj << /D [1375 0 R /XYZ 149.705 747.976 null] >> endobj 250 0 obj << /D [1375 0 R /XYZ 150.705 508.169 null] >> endobj 254 0 obj << /D [1375 0 R /XYZ 150.705 360.625 null] >> endobj 1378 0 obj << /D [1375 0 R /XYZ 150.705 327.631 null] >> endobj 1379 0 obj << /D [1375 0 R /XYZ 150.705 329.474 null] >> endobj 1380 0 obj << /D [1375 0 R /XYZ 150.705 320.009 null] >> endobj 1381 0 obj << /D [1375 0 R /XYZ 150.705 310.545 null] >> endobj 1382 0 obj << /D [1375 0 R /XYZ 150.705 301.08 null] >> endobj 1383 0 obj << /D [1375 0 R /XYZ 150.705 291.616 null] >> endobj 1384 0 obj << /D [1375 0 R /XYZ 150.705 282.151 null] >> endobj 1385 0 obj << /D [1375 0 R /XYZ 150.705 272.687 null] >> endobj 1386 0 obj << /D [1375 0 R /XYZ 150.705 263.222 null] >> endobj 1387 0 obj << /D [1375 0 R /XYZ 150.705 253.758 null] >> endobj 1388 0 obj << /D [1375 0 R /XYZ 150.705 244.293 null] >> endobj 1389 0 obj << /D [1375 0 R /XYZ 150.705 234.829 null] >> endobj 1390 0 obj << /D [1375 0 R /XYZ 150.705 225.364 null] >> endobj 1391 0 obj << /D [1375 0 R /XYZ 150.705 215.9 null] >> endobj 1392 0 obj << /D [1375 0 R /XYZ 150.705 206.435 null] >> endobj 1393 0 obj << /D [1375 0 R /XYZ 150.705 196.971 null] >> endobj 1394 0 obj << /D [1375 0 R /XYZ 150.705 187.506 null] >> endobj 1395 0 obj << /D [1375 0 R /XYZ 150.705 178.042 null] >> endobj 1396 0 obj << /D [1375 0 R /XYZ 150.705 168.577 null] >> endobj 1397 0 obj << /D [1375 0 R /XYZ 150.705 159.113 null] >> endobj 1398 0 obj << /D [1375 0 R /XYZ 150.705 149.648 null] >> endobj 1399 0 obj << /D [1375 0 R /XYZ 150.705 140.184 null] >> endobj 1400 0 obj << /D [1375 0 R /XYZ 150.705 130.719 null] >> endobj 1374 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R /F111 377 0 R /F170 840 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1404 0 obj << /Length 3876 /Filter /FlateDecode >> stream x][s~ׯ`l#KvilO3ӦJg2IhrE8.!KLް \sF /폶ۗ'x`[/O>?;yȁAFR98;” &* nx)⛿}WgCAgCjٗO_qD7$|"3pG>g'?ҽ43/N\; )b".`]O>ۿf8F˷a܈}b1DۗP ?dxjXUC9ru8z߱p)[lllIԗSf OCWv)$sxFYe4vQl \LK(PΠ\Aioʌ0V/jרЖ hk--|AK/P3]}oVTS(gP zAVi* eMGnoZڒMρl MDL> lH²Յ-Ek7PB9)6k6ݚ 3 $@pT(~\6Î8oͳpߓs/Mst3iMmK('-c֏U: szzm"2&qΨUHt|A|zEcDn˰ҳ] $X8  *<>rE$dzmSP'dvԺ\.pdǏ6{ fv\hD8.4aäR,{ߍcsw(taUT1I(¹ιFR Jh٢0aADK.OYwuzl3NCx=!]wI҈VWRCd^t紱`&h3~hlL+FTw`GeC  L )PH) jG55$1 WCc,~TC~5&Ёl Nrgp 됓M䣷|}Ls(Gd34Հ_%I砟0s&g*#חEG%6sa~Pi`KF>&7}_dKzf@&⇓J̀e;faK$8G,l\P`|V@i ꛵wZJÕw4?ϗ1DK}ysnݽ|%^vf}&%ؖIɻ 3}Pܧם-;ʘz``-Vݤ$={Gs&5mw1&y| ʘ}QL8'՜%o4R@A‚j&y˵&P~W7_"[WyxVq)NQ$ӅhF\#N BPPH A $ jG8(~0Zg,*=5sԸI2ȤLFH_S^?t:ze}QyII:"@dsNQ֯2O 5 Q^p !,j6YIg4>N Qzm5{r A[y"{\yVI~R Pr-5ԗPB}ZZ` . bZm2H9[eEy ꜵH;8cO+p7o$`"z4Q(G,nhO3;/vtwiQEĹ-~'cW8,'L;MLRnyoNғ?hby"TM+̱7q*t vBe*z $ )rD*ekMbBt;OLU6`T؋ WQ߲͸tT}_E}߼64y499佀288N T]WB.9=h^]B6=YIn4"r-؍F܈* 6l,r3KJ'1tquwid$0C[m"$gs|)wVU""mhb˘"yeOt8)vNضՈG^Uyaԩz%%MՅ3VX;$r^H$D$ՓxtFuv7Y5hET_[LcoR=q K4J2$o }.Eί F]6: JDxsh"eGr'.c!& 2ҁxfjU3Қ!Uj>_ 5b4Bw r?PU.xhZkd=$7mno.]`]E]h]fSI߇6},FMĈ)51e #dLg8RYMO:~2;.m&'Wu !e\oƗzmղfTja 7fδ۝^N endstream endobj 1403 0 obj << /Type /Page /Contents 1404 0 R /Resources 1402 0 R /MediaBox [0 0 595.276 841.89] /Parent 1356 0 R >> endobj 1405 0 obj << /D [1403 0 R /XYZ 98.895 747.976 null] >> endobj 1406 0 obj << /D [1403 0 R /XYZ 99.895 716.522 null] >> endobj 1407 0 obj << /D [1403 0 R /XYZ 99.895 707.058 null] >> endobj 1408 0 obj << /D [1403 0 R /XYZ 99.895 697.593 null] >> endobj 1409 0 obj << /D [1403 0 R /XYZ 99.895 688.129 null] >> endobj 1410 0 obj << /D [1403 0 R /XYZ 99.895 678.664 null] >> endobj 1411 0 obj << /D [1403 0 R /XYZ 99.895 669.2 null] >> endobj 1412 0 obj << /D [1403 0 R /XYZ 99.895 659.735 null] >> endobj 1413 0 obj << /D [1403 0 R /XYZ 99.895 650.271 null] >> endobj 1414 0 obj << /D [1403 0 R /XYZ 99.895 640.806 null] >> endobj 1415 0 obj << /D [1403 0 R /XYZ 99.895 621.877 null] >> endobj 1416 0 obj << /D [1403 0 R /XYZ 99.895 612.413 null] >> endobj 1417 0 obj << /D [1403 0 R /XYZ 99.895 602.948 null] >> endobj 1418 0 obj << /D [1403 0 R /XYZ 99.895 593.484 null] >> endobj 1419 0 obj << /D [1403 0 R /XYZ 99.895 584.019 null] >> endobj 1420 0 obj << /D [1403 0 R /XYZ 99.895 574.555 null] >> endobj 1421 0 obj << /D [1403 0 R /XYZ 99.895 565.09 null] >> endobj 1422 0 obj << /D [1403 0 R /XYZ 99.895 555.626 null] >> endobj 1423 0 obj << /D [1403 0 R /XYZ 99.895 517.768 null] >> endobj 1424 0 obj << /D [1403 0 R /XYZ 99.895 508.303 null] >> endobj 1425 0 obj << /D [1403 0 R /XYZ 99.895 498.839 null] >> endobj 1426 0 obj << /D [1403 0 R /XYZ 99.895 489.374 null] >> endobj 1427 0 obj << /D [1403 0 R /XYZ 99.895 479.91 null] >> endobj 1428 0 obj << /D [1403 0 R /XYZ 99.895 470.445 null] >> endobj 1429 0 obj << /D [1403 0 R /XYZ 99.895 460.981 null] >> endobj 1430 0 obj << /D [1403 0 R /XYZ 99.895 451.516 null] >> endobj 1431 0 obj << /D [1403 0 R /XYZ 99.895 442.052 null] >> endobj 1432 0 obj << /D [1403 0 R /XYZ 99.895 432.587 null] >> endobj 1433 0 obj << /D [1403 0 R /XYZ 99.895 423.123 null] >> endobj 1434 0 obj << /D [1403 0 R /XYZ 99.895 413.658 null] >> endobj 1435 0 obj << /D [1403 0 R /XYZ 99.895 404.194 null] >> endobj 1436 0 obj << /D [1403 0 R /XYZ 99.895 394.729 null] >> endobj 1437 0 obj << /D [1403 0 R /XYZ 99.895 385.265 null] >> endobj 1438 0 obj << /D [1403 0 R /XYZ 99.895 375.8 null] >> endobj 1439 0 obj << /D [1403 0 R /XYZ 99.895 366.336 null] >> endobj 1440 0 obj << /D [1403 0 R /XYZ 99.895 356.871 null] >> endobj 1441 0 obj << /D [1403 0 R /XYZ 99.895 337.942 null] >> endobj 1442 0 obj << /D [1403 0 R /XYZ 99.895 328.478 null] >> endobj 1443 0 obj << /D [1403 0 R /XYZ 99.895 319.013 null] >> endobj 1444 0 obj << /D [1403 0 R /XYZ 99.895 309.549 null] >> endobj 1445 0 obj << /D [1403 0 R /XYZ 99.895 300.084 null] >> endobj 1446 0 obj << /D [1403 0 R /XYZ 99.895 290.62 null] >> endobj 1447 0 obj << /D [1403 0 R /XYZ 99.895 281.155 null] >> endobj 1448 0 obj << /D [1403 0 R /XYZ 99.895 271.691 null] >> endobj 1449 0 obj << /D [1403 0 R /XYZ 99.895 252.762 null] >> endobj 1450 0 obj << /D [1403 0 R /XYZ 99.895 243.297 null] >> endobj 1451 0 obj << /D [1403 0 R /XYZ 99.895 233.832 null] >> endobj 1452 0 obj << /D [1403 0 R /XYZ 99.895 224.368 null] >> endobj 1453 0 obj << /D [1403 0 R /XYZ 99.895 205.439 null] >> endobj 1454 0 obj << /D [1403 0 R /XYZ 99.895 195.974 null] >> endobj 258 0 obj << /D [1403 0 R /XYZ 99.895 118.684 null] >> endobj 1402 0 obj << /Font << /F96 355 0 R /F46 279 0 R /F170 840 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1459 0 obj << /Length 1667 /Filter /FlateDecode >> stream xXK6Wx)zI:3IOmJ gh0'އ`dzz.lt%N-#rw9"ZqyxZ<0vj\*(Y8VU|+~_"sfV*@ggNRd&./ճs?xso/_D *-Yh%dYB@,iPEl}]ΉB+]fnʮ`z \w- s4Q887ADljE2*t0N\W<J7C^1ۻHGBͩ{MIe7ڮM5e>r[0EGg%ر򆉙%#x%@$0Q22doMݣㄷFdDm]EIW3T 5rC^=rMN3qv]8nt EY|(0$>c!WLUS#g y_cL!|^vyӓ3[bsR!6^tSSق*Vt.T8(ۆ@A^{pH@t:8CBYAn oEuߞT#Y0L"s0=uęǮ`7@+.+L7x$2kcl?R׈?`Ǜ{߱$՛;U,ǩT:<0  O)Vhku0TycZta9x 8fZ&i:a՞***GgdĻwgI:2GC!'Y ey1TV0sOSf3iҩ~@P*v;^Ɉ,uS*!F-ޯ`nJ~g .X2&ww>U$S&@MVpf RK)F.wr?Z/7 I X|bO573_ӸqGc(pL LSݎK0B &TBti\CdG=Uh`\Vmc7h1ؚoJ^kCU8v7VOYfAPjxsQQU 3`}H0wjyCDš{ ϠR`; = 'bhKY@e9We&tc`qp ?;-~W,u:QKPoeI}fe% X+m=|GiN p zCFpH1DN _޴.3LSeU鏽0kTvU>S=2[F^h|GPnN6҇yhfob$w endstream endobj 1458 0 obj << /Type /Page /Contents 1459 0 R /Resources 1457 0 R /MediaBox [0 0 595.276 841.89] /Parent 1356 0 R /Annots [ 1401 0 R ] >> endobj 1401 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [413.21 657.165 427.327 669.628] /A << /S /GoTo /D (section.7.1) >> >> endobj 1460 0 obj << /D [1458 0 R /XYZ 149.705 747.976 null] >> endobj 262 0 obj << /D [1458 0 R /XYZ 150.705 619.606 null] >> endobj 1461 0 obj << /D [1458 0 R /XYZ 150.705 516.134 null] >> endobj 1462 0 obj << /D [1458 0 R /XYZ 150.705 516.313 null] >> endobj 1457 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1467 0 obj << /Length 209 /Filter /FlateDecode >> stream xՑ 1 {@cҴIMIC|}{ׂp©th5m( sEC쭁0-#ͦ"3jA @c!h?CZ(O&MEմXZWEZ6X\(W 򀸾GD֏ 8F ]*[ҿH6MJ־O&Bpr endstream endobj 1466 0 obj << /Type /Page /Contents 1467 0 R /Resources 1465 0 R /MediaBox [0 0 595.276 841.89] /Parent 1469 0 R >> endobj 1463 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/noisemetadata.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1470 0 R /BBox [0 0 612 792] /Resources << /Font << /F15 1473 0 R /F16 1476 0 R /F48 1479 0 R /F8 1482 0 R /F51 1485 0 R /F50 1488 0 R /F53 1491 0 R /F55 1494 0 R /F11 1497 0 R /F7 1500 0 R >> /ProcSet [ /PDF /Text ] >> /Length 1368 /Filter /FlateDecode >> stream xYKo6W9m)(z袛 lY_=(l %䲿Çgऍ  "Ǚ̈"v@x oDTaF@)b:&(sh>EUE ?u(FJfcK03NØ$8Dv xi=2ք9Pb ގ_$%"9V & x1 CkH l90oShd`g,rSn1$SX N bMnJ B"0dreuST1ӣ\iU}a8+8s9.fmxE$[FyZ'X+Md)ghrw %aV;tS)Ҡ:Cӗ-SZt0؜k9򭞻`˒" &+yJ 8l/a +@X 5H!. }p5 ˎ*LԩeeVF^,-'Xf-s3-g9yNϲks,H,VEVi3I&ܤ ?RT`6 hIN+C\誧rHWH/'x'ؖ cN%ܝx^B„ї7EkT S2pi Y0Ąp4,fztx)_\J` ђ>,)5GZ!>9\_dw]j -E-!X"[B1[A8{7Dwk=㦘<|Ơ:,x҉}Xƛnle˽mXr)> endobj 1473 0 obj << /Type /Font /Subtype /Type1 /FirstChar 78 /LastChar 115 /Widths 1501 0 R /FontDescriptor 1471 0 R /BaseFont 1502 0 R /Encoding 1472 0 R >> endobj 1476 0 obj << /Type /Font /Subtype /Type1 /FirstChar 44 /LastChar 114 /Widths 1503 0 R /FontDescriptor 1474 0 R /BaseFont 1504 0 R /Encoding 1475 0 R >> endobj 1479 0 obj << /Type /Font /Subtype /Type1 /FirstChar 97 /LastChar 123 /Widths 1505 0 R /FontDescriptor 1477 0 R /BaseFont 1506 0 R /Encoding 1478 0 R >> endobj 1482 0 obj << /Type /Font /Subtype /Type1 /FirstChar 12 /LastChar 122 /Widths 1507 0 R /FontDescriptor 1480 0 R /BaseFont 1508 0 R /Encoding 1481 0 R >> endobj 1485 0 obj << /Type /Font /Subtype /Type1 /FirstChar 45 /LastChar 117 /Widths 1509 0 R /FontDescriptor 1483 0 R /BaseFont 1510 0 R /Encoding 1484 0 R >> endobj 1488 0 obj << /Type /Font /Subtype /Type1 /FirstChar 34 /LastChar 126 /Widths 1511 0 R /FontDescriptor 1486 0 R /BaseFont 1512 0 R /Encoding 1487 0 R >> endobj 1491 0 obj << /Type /Font /Subtype /Type1 /FirstChar 33 /LastChar 121 /Widths 1513 0 R /FontDescriptor 1489 0 R /BaseFont 1514 0 R /Encoding 1490 0 R >> endobj 1494 0 obj << /Type /Font /Subtype /Type1 /FirstChar 45 /LastChar 120 /Widths 1515 0 R /FontDescriptor 1492 0 R /BaseFont 1516 0 R /Encoding 1493 0 R >> endobj 1497 0 obj << /Type /Font /Subtype /Type1 /FirstChar 58 /LastChar 121 /Widths 1517 0 R /FontDescriptor 1495 0 R /BaseFont 1518 0 R /Encoding 1496 0 R >> endobj 1500 0 obj << /Type /Font /Subtype /Type1 /FirstChar 49 /LastChar 65 /Widths 1519 0 R /FontDescriptor 1498 0 R /BaseFont 1520 0 R /Encoding 1499 0 R >> endobj 1501 0 obj [ 693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3 693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8 458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4] endobj 1503 0 obj [ 272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8] endobj 1505 0 obj [ 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 511.1 575] endobj 1507 0 obj [ 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4] endobj 1509 0 obj [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 1511 0 obj [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 1513 0 obj [ 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7] endobj 1515 0 obj [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 1517 0 obj [ 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.3 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.8 361.1 572.5 484.7 715.9 571.5 490.3] endobj 1519 0 obj [ 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4 323.4 323.4 877 538.7 538.7 877 843.3] endobj 1499 0 obj << /Type /Encoding /Differences [49/one 65/A] >> endobj 1496 0 obj << /Type /Encoding /Differences [58/period/comma/less/slash/greater 78/N 83/S 102/f 105/i/j 109/m/n 114/r/s/t/u 120/x/y] >> endobj 1493 0 obj << /Type /Encoding /Differences [45/hyphen/period/slash 97/a 99/c/d/e/f/g 105/i 109/m/n/o/p 114/r/s/t 118/v 120/x] >> endobj 1490 0 obj << /Type /Encoding /Differences [33/exclam/quotedblright 45/hyphen/period 49/one/two/three/four 66/B 70/F 74/J 76/L 78/N 80/P 84/T 97/a 99/c/d/e/f/g/h/i 107/k/l/m/n/o/p 114/r/s/t/u/v 121/y] >> endobj 1487 0 obj << /Type /Encoding /Differences [34/quotedbl 40/parenleft/parenright/asterisk/plus/comma 46/period/slash/zero/one/two/three/four/five 57/nine/colon/semicolon 61/equal 65/A/B 68/D/E 71/G 77/M/N 82/R/S 86/V 89/Y 91/bracketleft 93/bracketright 97/a/b/c/d/e 103/g/h/i 107/k/l/m/n/o/p 114/r/s/t/u/v 121/y 126/asciitilde] >> endobj 1484 0 obj << /Type /Encoding /Differences [45/hyphen 47/slash 70/F 78/N 97/a 99/c/d/e/f/g/h/i 108/l/m/n/o 114/r/s/t/u] >> endobj 1481 0 obj << /Type /Encoding /Differences [12/fi 39/quoteright/parenleft/parenright 43/plus/comma/hyphen/period 48/zero/one/two/three/four/five 57/nine/colon/semicolon 61/equal 65/A/B 68/D/E/F/G 73/I 76/L/M/N/O 82/R/S/T/U/V 88/X/Y 91/bracketleft 93/bracketright 97/a/b/c/d/e/f/g/h/i 107/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z] >> endobj 1478 0 obj << /Type /Encoding /Differences [97/a 99/c 101/e 103/g/h/i 108/l/m/n/o/p 114/r/s/t/u/v 121/y 123/endash] >> endobj 1475 0 obj << /Type /Encoding /Differences [44/comma 48/zero/one/two 57/nine 71/G 77/M 89/Y 97/a 99/c 101/e 103/g/h 109/m 114/r] >> endobj 1472 0 obj << /Type /Encoding /Differences [78/N 101/e 105/i 111/o 115/s] >> endobj 1464 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/noisemetadata.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 1470 0 R /BBox [0 0 612 792] /Resources << /Font << /F8 1482 0 R /F11 1497 0 R /F7 1500 0 R /F14 1523 0 R /F53 1491 0 R /F50 1488 0 R /F10 1526 0 R /F56 1529 0 R >> /ProcSet [ /PDF /Text ] >> /Length 1327 /Filter /FlateDecode >> stream xXKs6W>Qm` dzLi.f\\8Hg @hI>bA4X40{{b"eB#dIEt\o뉤4=3VqɬEX&lZW:! |ñp*Q\}A!GOe ДJvW1j &.Q)))HuJ:p''ZV 'vyx” q!=Wѽ\zȹ$Kld.71.'-2gZMYov5tcچF)Ysc=9a tmcZ0˓Ou6<%%&`念o#o@T4Q-nph$SE,G> )]Zئ4I4Q$ڴpDٰJ,[~`h~PQpE jI[@jgn6ϋ".o1ugҗ*T~]j6juu[WWEDM4oϭ\+%auE !+ -m9T"u8{.@hBt{+Ňm,ٚQʣ;pطA s|Ux=x@.g6˨$O*zf>=$ 3k 6Ĕ9D4sC TN3!ik:c]VX ?qC]ƅ 9T]iݲ[r7ަ1gX;K&y 7WF+//5o{+A%#"eyPxa?;3n,4Y&>7r]Vik]CFhɣsZX9q 0a52,:[ة֏8uҍ:) M*f.sW C8HO6 ce@ ՝mГhu"\g=IZ'rN± /p 4b0fNŚcxm;`Y#IZ |rj ՀjRg&ԣW{ ul@NAfPg0zx9Swc{p9h(ҘE2:M-pnA \'lƃI8xX3^4hV#)1 !)" gm.|78 E dS["Ě?73 endstream endobj 1523 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 106 /Widths 1530 0 R /FontDescriptor 1521 0 R /BaseFont 1531 0 R /Encoding 1522 0 R >> endobj 1526 0 obj << /Type /Font /Subtype /Type1 /FirstChar 83 /LastChar 115 /Widths 1532 0 R /FontDescriptor 1524 0 R /BaseFont 1533 0 R /Encoding 1525 0 R >> endobj 1529 0 obj << /Type /Font /Subtype /Type1 /FirstChar 34 /LastChar 119 /Widths 1534 0 R /FontDescriptor 1527 0 R /BaseFont 1535 0 R /Encoding 1528 0 R >> endobj 1530 0 obj [ 777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8] endobj 1532 0 obj [ 701.5 674.8 778.2 674.6 1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5 594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6 530.4 539.2] endobj 1534 0 obj [ 500 833.3 500 833.3 758.3 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 319.4 777.8 472.2 472.2 666.7 666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 736.1 638.9 736.1 645.8 555.6 680.6 687.5 666.7 944.5 666.7 666.7 611.1 288.9 500 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7 461.1 683.3] endobj 1528 0 obj << /Type /Encoding /Differences [34/quotedblright 46/period/slash 51/three 58/colon 71/G 83/S 86/V 97/a 99/c 101/e/f/g/h/i 108/l/m 111/o/p 114/r/s/t/u 119/w] >> endobj 1525 0 obj << /Type /Encoding /Differences [83/S 109/m/n 115/s] >> endobj 1522 0 obj << /Type /Encoding /Differences [0/minus/periodcentered/multiply 8/circleplus 10/circlemultiply/circledivide/circledot 15/bullet 50/element 56/universal 98/floorleft/floorright/ceilingleft/ceilingright 106/bar] >> endobj 1468 0 obj << /D [1466 0 R /XYZ 98.895 747.976 null] >> endobj 1465 0 obj << /XObject << /Im17 1463 0 R /Im18 1464 0 R >> /ProcSet [ /PDF ] >> endobj 1541 0 obj << /Length 210 /Filter /FlateDecode >> stream xՑ 0 {@cҴiwDoQ<)xq'_n-l&lz?|M?*JdD1ù'Kv@<HNS}CCD2ڄF{.>ഛ!Mk-@Qcu1/N) c & װ Ƨtъ O!uQ4AFDK4+}aF,To& endstream endobj 1540 0 obj << /Type /Page /Contents 1541 0 R /Resources 1539 0 R /MediaBox [0 0 595.276 841.89] /Parent 1469 0 R /Group 1537 0 R >> endobj 1536 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/noisemetadata.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 1470 0 R /BBox [0 0 612 792] /Group 1537 0 R /Resources << /Font << /F8 1482 0 R /F55 1494 0 R /F53 1491 0 R /F14 1523 0 R /F11 1497 0 R /F10 1526 0 R /F57 1545 0 R /F7 1500 0 R /F45 1548 0 R /F18 1551 0 R /F17 1554 0 R /F23 1557 0 R /F20 1560 0 R >> /XObject << /Im1 1561 0 R >>/ProcSet [ /PDF /Text ] >> /Length 1379 /Filter /FlateDecode >> stream xڕWIoFWHxV'i Z-uihJ¥}ߛ]Df{?("J1ݧ;lꏆ{O|_k;)H v@ʄ |SWQ (ڄU4G7TgZTcfꅔLiNuϛoR7U 4S:x5܁5BHZ]-}.W%}w&mUIͣhR? `KqzX[Z>sZ:?vgZymV(cU_ȬMR 'SaA ${ۇuKE%EF3߉Ņ]ݙ' gjf8nY/s˼Zu eN0Y״L 68sL(6վ i7[\pP,`ĝOC s/};:fEK@Xh;;+=' wGѦ8ٹ_geoe0BV| p|׉<Ɨb uH8Vo`}D嘒r+CC*&ު:K͙u (NiH` DxI7$VweIE8$%dJQDBNmȎq'L]щcrdH]kkkrcmؕ{dg"`PT|lGɀ0:#`VF`h8ZCzdꉎYySN!egrllyX tkI\We5tZ9F#-(NF_;%_nӟz%4{{n~_ȧo9[rb X@Ϟ~d1G`lhfj0㸏gڀVT )I2Dv4NGpZV(3i%N\flhKl--( /z":Ez=trxh:x໒`ruBtrA =y{% Z1[i/g/HV}Pb 0݆XӏP BvB„d|F-@ba XX(Q%bL- ֨I͆/I`542OV/ endstream endobj 1545 0 obj << /Type /Font /Subtype /Type1 /FirstChar 65 /LastChar 117 /Widths 1562 0 R /FontDescriptor 1543 0 R /BaseFont 1563 0 R /Encoding 1544 0 R >> endobj 1548 0 obj << /Type /Font /Subtype /Type1 /FirstChar 78 /LastChar 90 /Widths 1564 0 R /FontDescriptor 1546 0 R /BaseFont 1565 0 R /Encoding 1547 0 R >> endobj 1551 0 obj << /Type /Font /Subtype /Type1 /FirstChar 49 /LastChar 49 /Widths 1566 0 R /FontDescriptor 1549 0 R /BaseFont 1567 0 R /Encoding 1550 0 R >> endobj 1554 0 obj << /Type /Font /Subtype /Type1 /FirstChar 40 /LastChar 119 /Widths 1568 0 R /FontDescriptor 1552 0 R /BaseFont 1569 0 R /Encoding 1553 0 R >> endobj 1557 0 obj << /Type /Font /Subtype /Type1 /FirstChar 50 /LastChar 56 /Widths 1570 0 R /FontDescriptor 1555 0 R /BaseFont 1571 0 R /Encoding 1556 0 R >> endobj 1560 0 obj << /Type /Font /Subtype /Type1 /FirstChar 59 /LastChar 116 /Widths 1572 0 R /FontDescriptor 1558 0 R /BaseFont 1573 0 R /Encoding 1559 0 R >> endobj 1561 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (../svg/svg-01/process.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1574 0 R /BBox [ 0 0 549 459] /Group 1575 0 R /Resources << /ExtGState << /a0 << /CA 1 /ca 1 >> >> /Font << /f-0-0 1576 0 R >> >> /Length 4995 /Filter /FlateDecode >> stream x\ˮ丑+JS$F/ 00 jE;eȻb~RT*SF^"d=9_qolC}ffg-\dHN?7?&{PP=i.>S);;!m8?')D?M>@M >] co^&kü,kly_@+r;#ss Xgwi9cgorSfTCFaC]7Ń.;=:A kCe%+rSĕ0ӐH!;m@.Մua.[/d5/߿?fz\~2Xq'Oކ P sJHKƺ\B4*:4}ņge Is%Y%: V CTuSԽcd~h]Qa㺡侦.e^ '̟ܩ RD#rT+kQ Xgq@)|7:)l-)@Œԇ6j:j]'O(jrsȹWTE%;gPBHӄSeʠiSEDɔjTjRHR !54u52+cH3>fs~E<#Zm9ݷFrc w0hm7 An-Z!HkKl;T[;.%la Q[C P-B L 20΃) Ԅtoqn;W`@u  t(m-̭%+h]La4Wq]%`oupI!9Bjt~dZ;pT_fHv^, Fr 8c2#8ֶ9] Oa*a % nkl{|(۱ђö]yOCQKeWB&#؀V%=$Of?+BW2n)Ӣ!ȭ!ZJi$"! )``-ZJ&En 8KrRL#1l`0> ^?Ր+tḁ8c9Dn L[i$_K4ڿ)]7: Is%Y3=<)vp!9DNX7ly|[[.d%oZv03 f!"ZiH1H4=A4=)NQRMG"gC~(%ZO%1ӁTu3'EA ݝ"}ղOe: M5X`%l69jjrtӴWuTs=[P=ₐ;rkq5)6ݶOm:#bT8)4LP?ubXAB[An 歕RdXn].(KH35*𱈪t+J\qzφqJCd+EKc%׆ 1UX+kCsT1aқ=⑺S:ژ|`"a)MmӰҝ]xm:t:ƵHKbk7Er z{i\Wj^p )@L<9EH#qlUqv\x q `:~oB7H"ؗ d-TQPIM[\C8.ހ[gkI[5qHUdxdZv:`,``f}kpw⓭}^<-ʾ_QRdܒ?z\ ,H`E^U~"zXF"g$?zm7{1{%=+o-6P@ZڳJ엶gUXh% \Ku^;aăyksnU,eZ[œyds1oqS dBY9mW·w;:%<՘sb BkAU֐'y7-4Ҷa.w3oY $5$ʡR`hH T&ཅ'Cs?BEL5ii\&ZZSKKO.~Z9Xx-9.ذH<_Knt|lUK)2D,H~,6R^];vr8~-|DWKaDZqBTd-3tkq-U{~R \[Q*(=nZP t<>Ac)wog|VrqY,-nNϮ["c[2>dkA[D|\VMYACxCَ픲l r?+lKjQK[1TjOB1-d9+R@S}A=]jƛnȭ! "HDfeCj\dz|+rk3NZ)Eɏ]  G.8{M׊<ىax<חFGv'MCaf_R&-tR`hXm:tA]\|o=E_H9_i*|==H{mN^>qb67Äx 0nsaiu92=O9[p@>vBSƲuk~kv/3h:iCٮk8ە{+"H"PgD4nOMHΆú"͆HΈ D,H~Ȍ,Q}fdZ6x]| F"P뛵w4e]+ 5u=ZzR[55Q$X8'=3(%btu:QE^-Z\|%{ܝ0KU&3pk(2 486fx@&&(PLe q-ȭ!>kZJi$biF#3,| rw"`7QQ au!="bC,ҥB!iNt; V %EH./U}9ྑ3ڨUչOit)g|ĆY2gۛb~QƊm1=z'|Lh>ζhn0ևT{s!yXS*v ȇNXký;4VϼՌ&}>g7>ZGĆԯ3}C+y'kHst5w}~Nyl|LL`2f~9zߩj~|-V5m׸QBzlpx/珦:5uO_уZ%ڀ1g-^fzN^[ lRz%;zhװ``rh gVm? u_"5ׄ"HDQiP_ pSeFf>1$qo.._`=ܪ֫ۜ)M5!I/  "=*Q ZDCTuS(*4YT<}?>:8^&{7GrExq]] ?s9\Xu!D'kou? _%^Duq}|=v\dm )v-==mv1grpH$V>WpbKx8}ؗdK*7c&Jc@?v;FՅVֹ.Le2 *3^Eܥ endstream endobj 1562 0 obj [ 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7] endobj 1564 0 obj [ 722.2 777.8 611.1 777.8 722.2 555.6 666.7 722.2 722.2 1000 722.2 722.2 666.7] endobj 1566 0 obj [ 611.1] endobj 1568 0 obj [ 413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4 501.7 501.7 826.4 795.8 752.1 767.4 811.1 722.6 693.1 833.5 795.8 382.6 545.5 825.4 663.6 972.9 795.8 826.4 722.6 826.4 781.6 590.3 767.4 795.8 795.8 1091 795.8 795.8 649.3 295.1 531.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2 324.7 531.3 590.3 295.1 324.7 560.8 295.1 885.4 590.3 531.3 590.3 560.8 414.1 419.1 413.2 590.3 560.8 767.4] endobj 1570 0 obj [ 708.3 708.3 944.5 944.5 0 0 590.3] endobj 1572 0 obj [ 295.1 826.4 531.3 826.4 531.3 559.7 795.8 801.4 757.3 871.7 778.7 672.4 827.9 872.8 460.7 580.4 896 722.6 1020.4 843.3 806.2 673.6 835.7 800.2 646.2 618.6 718.8 618.8 1002.4 873.9 615.8 720 413.2 413.2 413.2 1062.5 1062.5 434 564.4 454.5 460.2 546.7 492.9 510.4 505.6 612.3 361.7 429.7 553.2 317.1 939.8 644.7 513.5 534.8 474.4 479.5 491.3 383.7] endobj 1574 0 obj << /Creator (cairo 1.8.8 \(http://cairographics.org\)) /Producer (cairo 1.8.8 \(http://cairographics.org\)) >> endobj 1575 0 obj << /Type /Group /S /Transparency /CS /DeviceRGB >> endobj 1576 0 obj << /Type /Font /Subtype /Type0 /BaseFont /Arial /Encoding /Identity-H /DescendantFonts [ 1577 0 R] /ToUnicode 1578 0 R >> endobj 1577 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /Arial /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> /FontDescriptor 1579 0 R /W [ 0 [ 750 556 556 556 556 556 222 556 277 583 556 389 333 556 556 556 833 277 500 556 500 222 333 666 556 277 500 277 500 556 277 277 277 277 333 556 500]] >> endobj 1578 0 obj << /Length 1580 0 R /Filter /FlateDecode >> stream x]j0ϽvEk\Aѝxv|vŒ!~1o`B Oyn̸ͪ юI`zTk&ne1ÜTK?|qYOz!aoN͕.-~joDfeYRL׽tah_:>7KL85-S:sSjOX?΅v۳,u N HA%@8w$zP-G)ųh$P9@<iD_)A ?_;_~~%/~EtYLD?ܵ ?`|ϟ9B2m4t_S !Ҷ endstream endobj 1579 0 obj << /Type /FontDescriptor /FontName /Arial /Flags 4 /FontBBox [ -664 -324 2000 1005] /ItalicAngle 0 /Ascent 905 /Descent -211 /CapHeight 1005 /StemV 80 /StemH 80 /FontFile2 1581 0 R >> endobj 1580 0 obj 378 endobj 1581 0 obj << /Length 1582 0 R /Filter /FlateDecode /Length1 19660 >> stream x| |EpU5s;N&3 @ !Is}A"!++^ ʐ KVY]QkaXv3󽪙p}t^իxޫF)qHh|W!T0nbDGDCHt㒹pEU,CH~U7~;'N}7oΌU͆ ^bҏA:wޢe+7͵NH?pDEHXDNB;HkKYh!2:XP-#q?460vfK8l+]![#~'e$ l":*티v$O* ȷj,`2Ah1YYkj2lgtTmYh[] ׸WukF+QU*u.Tֿy >IhWFNV/ܲ[E2lR.T';m6|˪ XSH~i,Z@I<MDqj#D EQTEGZEwv:esJ7drѶ[ih$NgTޢT7֙0H< HoHWbIٖ[86ڿ}?32 ~5fYY$%O!2/KQ x$s>Cab8sAnköCg9&@m kT<@7Td1YCx ޲n,jݹ.XJ\쮬;mӕ`Orzh0 P[3#FB9׿I+ s9qzzcxz^rZ/y/n\Z>>qF?&S_.(t<)FMBjf)J+ 2&#Rפ]GZ=R=JUUj+B=-@W0_0fvmZwv-7r7871+11^/ `̸d=Ky0Ji7MkDP^֚]"jϽJK"[{{:Vx?L4#vӫbu.Zk+ygV4 1(wJSK'_D{V.DCʉLin[fד\:olG8?]ydCO8CV6뎻5udvog_= AǙqDo53=jzIفϑI$A1r2x'2rݡ+ :WA3J6v8|Nitr,9R9Lj%fg)"*G@N=;ЀL*RReP=WyVA\QOZ@aj!sV{tcIӻ33+i1X;M<¤G*L9{W0 J2B6ΆɃw2<nTaw8XNiAHtna!UAjT@mX]nQyăGOxj Y6`=$.+R&ZgpzOTUDL1`5.GvF622G6p/ձw׉ 9nܬ}G[V?v&VLK[BL66٠Q?~[r\Oge Ay,oOg1ցݎNyE;8ɟN,O!3'mS+Wi4v`ϺBM~a8% l#L(P`icQVJl;v!\8Au0#Mw ϫWySåh.]S Ne]fl1Yr=:G7S褓2FyȦga5`S4: #QVv:M^ҿ4ig㡪Wڿ49!K<;G5l [I6h4)JlL;. ʙ ﺫmG4?9OY0q_.Q-E]@~/2z$ M$7)o"c !^uS}nJXӕ]~}ðd ֱh[^[]i|&#tL<9mA),^pfnR"O!s\IMe-L`MDD-}Ɉ+S KLiq|Ol5j%eV:fѸE%T;͸;?1-cw8˱0c޿,0b >,=9A>?28&m+eU&֠ x>M"뭞[WzTF,X̡ڙ3TLqtSԚ'/xNJeC/pkWޖHH$oCgyx ),>5s?w&UIXe m7K(x@dvj5N X#BCψxnAQ%EG>M-ʊJ{LK;w$D$tKG9}s>knjʁcbYZ{3|ֶ{ ,e'x5M6>ȁUR~?_Ƌ d&A#Ej́$Tm(.S"Sw1݀w1t20Ncy iRӨ=&R`0R\t'І6=9:gyqFV/ _Q9fk2Tg\]Pg+on(b^Qׯ}/3S89/Ş{ X{pN62D2LXD J+«QS 荆 04Z0喺"E*vK"l천p;,)[! Jg -"ŽmJl |yJ1f34O8;vmE [IHf^y.=tU7rYGtiùzݒSJ5l룽 Gts( W؆aONQ!HbHD Mt04':])<߀ˎLڌ].m/t] gG i>?QcXPY)uSV2EtCN,PKPo#F-81To\*3/Sew{ӊ5{2y/vb冕z_k4]ϸʳ]5PG~U73; ; asyY(s# Ήd0Gt?>t|/2OAW0U*}5%A5q $eRm:p2<'|΢ bT0J6d3yJ0 ۬aU=nêMۚm|YAv`S1! vHY6 e@ڨ^JWٶ̞{H:&'e%R3K_HL $7t\JztW%󭮱`H^R&H)~``%o0ںW<+XڎC߽yt͆=dF^`o;pJVa(evIF SĘa`0]ej^L:{kgH./r܌3dQ0_M&)כrs9B-`4:slYl[IMe"FS0"i3SwKJت`GrRnE3ucb[Dmf0AF&Wҡ 󕖧l6;_w)@׌zDa>;p6λ;GPڇ#!=k8hcH#`>\0?-B>kmBǯ @ن|^U9[;$v,6l㙼x0Iigc'~6¤QԱ=cu +_lϚS#F3Gɯ 7r&ڰGi{.DJBa|h"tƂMdvʖZMٷl]i'2lަy+۲s2A]Z9r.)vHt3ƥ`\U7V96ژuUv,nHckiz4cQH2bPgx(x߼6x];l3}f]{ tCuq1TɡYA:ꚳ!n;# P`p_#5/Aoظr'Zwz8&e_ؚ D[@U/˹[g@yx99{ruT:g>oMGnO&c30ML3N3M37̗+M$ԃ ]$ԃ VI}Z$7ux NVoл{[^VWc etnb+Ÿϴ̅$3!)Ç|s8>Oi1}Jד x^e<MRn'Pq^=n#C|G |켂bRU\LUq. 2:\+SV6/0>7$0~z`}oF`2<9Q [n8Wks[*QUP$?%OIM`362ꛩA9Lq36T‘ ;]%jXmeV[Y̞`RA˭(1Gϳ]9M"Wv7V2?sAJ6{`9l8; x&q;!VZ}7 i xv6ħUmyxaev!k>m-b A6T'GOJJgKGL(VPfU.{@mcrVv)ʇ@.E. uB=O) z|9T2eLSHP+߈o$ y%LVV7+$m4ȏI5[y^9>TC+9xKG\tEtT ~Cd1 BiAN\"&#u>mFFQQU3z" aYqʲ8B91(H B()2Pd¦rLߣ e8{Ԇy|u)v * jmum7(N@Cul\3+=}H]sOZA6ғvwBP>+zV>}VZKŰˀp*I Y K`JIkB!\@f2JJ#܉΂VәVX$lt᯼w` DsJv,:p2a鵏)mN}8X}9)n椸=mҍ;=^!_ܗ>SXxIO5|J/iʬgYa}v);$0o '}YTN*Sgl5Q2*o#G?)(X>ȋqBVxScUcvj}ԢeM{?qFRFw'dBB#(E(]%^"2 aeᕝ祽ovꮤЯÖn|'~x[Je's/8 xv(:tU3&le(9 003 mMrQ"9źKtn%V-oJ$]f=Ϙg377YQ=e4 U[d367;69V7T;UrܭL]0u.+g^~^QrդvةN#lW6SبUX(P@ t=V tc]CvbCZq+QK@%5qLI1A"+ІT7z@FP Qϝɺ|$gE#RP!c1>&J16~xZF!î(DHD$χ)$CnZj`4"Vxvocl u"1WUmF`= =_g=)l e=^7^~Sט:|]1 /gQI5T*9\#|GdVJo\ &jafl̬5Z5NS̊c|-&;[+`;[]4USKXۘz9ve zs:+YooЗOU'uiYK&%v7Ч'>ݳI׃` eB TA JC^G׺̵: y֛\7:NOxsvՄ"kPeՅkRMj ;A%#`1zrjԍf#:7(#;wq090{+/‹ا˰$m(„t8b>Xp}ON] atNTUUc;i؛5r٢ 9KP.@EԘ IqPQ('Y2\3w5^;Nog)疱[4%$>z?xhG9QW%p;ۗt7/D%QHa( υwR=_ڐqvY-TMI4l>^L|DGQ@y$vqzsH)z@iX4-Fk$ƴekhH/MRVL Q'|qWm;2;zw?tPXMe];x:e!|YQ1ԋP[vB-}ivfa* = Ze=gE_B6z"+z*^ sU-kN},1Ÿ`.t>C6$l~0,BJ=\WL#e9':&__sV f24p%f=^e27}N8Ktb@1=^Að)pedѥ1`Zr{1c41Xg+@F1 پ:cAƥ~Ҟ5`aRNҚ5b5v-=:er"4ѥkȥS{[q3ϼr"lz]5S7]ܯÙXى]O,|^#UG#w,+E< ၜ$(TQ&8.}'5 dD&dFdcyv@ȅȃȇ(2Q B?(P.m/OxyKo{q!5-1HBϣqzB.l1=6B&4d;*BOFסAú' u:A ݃M.GINTE7%9Y7yi ! YM~/O7 =N=jסf8Zx Fn1h4:;aA_a^ VJƓVաyQ$[< VBV:Mɳ@Bt5̧wr*zGP;X0 ł.ܒ֪ }M~Dr(:t6= ph)YL~-/w٨0)DqO/ĩV$~Gf#9F_q/I3`7Ex<ë|~dD3<{ DSX/-~MN)dqr=F fCs <Ɠ܎O z9? ؝OI}1> t. / gEtO(1`5ў dJKF?Bc· `|-Pf:J]Q + P Ll}HJsCVr?i'83rV.+Frun{srps?Ó>>ʏ__ ӄw/DE\$;H8iT'mJ;@{Ы>ŭ媹=^R{hJm +Add;9Oqq ~D'"D?s#R4фZAQU@Qt;% ^nEjQ6zkķ=!a3"IK".*>GwPFE}%$mnGfWs1'8]{TF1^Ar;a+h0 GɵhP˿"OAah\1 *@z`7r<9_L (<@Ư-G.N"h`u@忓&E$碛ޠ6$WCϣ/<^6,OrLMZd"yj} +,@-DTܜ;4#h&Y~=:QIb ٝ-D%XA _>4C{0[2!h:l*@6&OW re%`C]-蕟 r`VfүQsTdTd$ /y Ix?1<ۉZ&jʒޅU[-4b2_̹X0Vb5.Rk4Im4sYbފφi[ԁ4jHk'u}weΌtV(J"AyFEa0,]ֻpE D@>4h;#6ȟM̈́Dy|m*VEcqROK:{J2&Ӓ枒ׇۙ7D.YUz8v&VRmͤ+RX14F+v2MԚ|DԳ;$p%ڈZ?*ƔK|ӷXt0W]bx [eͤ--ejNGhRm6,&d| 1\ RYi<?ʝ GkiFԷH6 ijey޲q:Gl  ƉϡmTJ0V?4F IWD7Jy'jz =y^liW\L~ʟP]?rϹ 7FB!E.-y\&ɋh. ]޽ !?}v"}~ec+DR< ]\dL0W2,}B ;pv 䚍.Be-ro!lD(  w J >. ޚw}@F0'$)0y|&dE<^zF3<.uPPBmb(bb]x4˂|5&YTX -2@Tq^x crnt Ecl z4g1CgYι[/[fQ,9#VǒmRxթjS My.nb.\0I | FVe8tr#qsn5ۊ($I΀$ߓT j؊ 8 !(!p$B[v T4r]P_`on:ȱ8:o!7P(%o{ qGțYA4Q!V!.r-LC@ EUcl!:;hF# AҊaI0`@Wvm{$ " "wm[F 2{>`4L "c'Aͫy 6Jn* Tt3ӱ(Ulޏ I<7ߎJ|nn:n>)~EB#e܄#9sqzu Y6 W c%@ll <d)*i9,T}/2/: l44` `:@'$s`[Xh `:3" (=4EހTdl=S Qu%YxlV2# fu`/3^eBlM[Z v[#C2C((@M,]y x) oЯ:xr^ )vQrF:0D5Vu_`@#Z(x5x;o .9 ["SၙA  L* !DSh Wub N.BAV+B)[ J_r`1 ` IZZN"OC*I2`7jHġ&9 ':VT3ih|@CJNGkҸkwc|o rdc'i:?!m8=VTym#BP/sfbmX"XMWڇgQv7P=sb5x 4V34CVޣzax2 zaYfxLnʭ;7qkirk9:0jFGX#fZ'>U JVU>`UǪLT(]e*XOT'c>S| D9CQ6(6kuNCsw7Դݳbi5R?s<Ϙ v hhZ9[郪C3F+-M* ҾFBq9-I*}ӾF#Y_44ۈQ~gdž%)44nEB@h@<ϧTȶMˑax ~l9%x*6~PVg o۶&^0&^^nIz:<|TfH39bEWId9]y:f_Q4mXPSgL" &]`K)lQFzhk}D˖4-ԛJSI.() D endstream endobj 1582 0 obj 13822 endobj 1559 0 obj << /Type /Encoding /Differences [59/comma/less 83/S 115/s/t] >> endobj 1556 0 obj << /Type /Encoding /Differences [50/element 56/universal] >> endobj 1553 0 obj << /Type /Encoding /Differences [40/parenleft/parenright 46/period 48/zero 61/equal 70/F 97/a 101/e 104/h 109/m/n 115/s/t/u 119/w] >> endobj 1550 0 obj << /Type /Encoding /Differences [49/one] >> endobj 1547 0 obj << /Type /Encoding /Differences [78/N 81/Q/R 90/Z] >> endobj 1544 0 obj << /Type /Encoding /Differences [65/A 70/F 83/S 97/a 99/c/d/e 105/i 108/l/m/n/o/p 114/r/s/t/u] >> endobj 1537 0 obj << /Type /Group /S /Transparency /CS /DeviceRGB >>endobj 1538 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/noisemetadata.pdf) /PTEX.PageNumber 4 /PTEX.InfoDict 1470 0 R /BBox [0 0 612 792] /Resources << /Font << /F8 1482 0 R /F11 1497 0 R /F10 1526 0 R /F14 1523 0 R /F45 1548 0 R /F56 1529 0 R /F1 1585 0 R /F57 1545 0 R /F13 1588 0 R /F7 1500 0 R /F55 1494 0 R /F48 1479 0 R >> /ProcSet [ /PDF /Text ] >> /Length 2734 /Filter /FlateDecode >> stream xڵZ[s۸~[iJ3LN'3[;y%.E%9H$Y" ˇsh`ϒ)C2Li…Jng]/c\%%c4HɌHX5nxŜhjY YkDeZo.'RtXedU _L339 J~$w#sT?S:DKޔ%P(Dz.Lu¦LEsM.j~Ѻb6VբR2aR4<0+٪]N|oLe# &zW۫{<ż$>?̌|;0j8<@'WgL|'φ%EQwp:]ׅ똕m>uG76o˶:'/hWuy9{ceMw|90fiN+ȷ Z5}gAhlE |YVYt43?`q\@P}bQ#Tbs/l+)ϩ;;_Jj/MwYU .#/;x=,-QcY:<T̪jB=Ġ Fe[gˬ*1k_XV] ytQZW_`>F,1N.f8ұNU5tUݲ.bÏ:^XSgwJ.]߲pR]uUPhJױ,ʗC3ǜɥozӠ+MrmD> 3DQw$vTLd_dDN OK=D(4BDIر/|5~zWD6<䃂AW(Ώ, 51"!*MۣsMt&!/Y~NƞvFeݕ] 1'Y8L~R>ǎŭ7]E?(0a#H%@Ld/aGMC C_bH!;6Mz6S2$T0D -:O||p@Cp1w@@J*l ;34! T+-c/T< "GE%e*2q3%`lyTZm ;8A˩P4fk@\ªi@G9qcx&a3g :x4ex)O|>GuջA5$D'pr܏z,U冽 範>UD14'La<>k˩@?&4-cջx!]&9%G8>ns-"\{ R. C@:mEU@l>TMZ[;X g_5.46<]X(a+cڏ~:ifrW|r:n۲k2VZS,MҖV/pe&|ݧ/'* {vW0g؊ Ut*i*xw]r/?JyNh&Gn7#87G*8`"B:8|ؐq.k2Z:FMޥ64/dۺs%_k*p &BSȫz1a8a`Q T IʧS+Et6 !B&T <&^Yqpcx*ս(NaՐ }:OD[{ZkL"Oqa9EozD9'&&W. "őSAOb[A~ o]`f<`+%;pܔT~"siB)X| , !t@oq'>γ^;%Z(#p >|\4]Cʶ8x$  `Q6?K j8\h}Hĸ/Ebn=ޙ2zDuPL}W5<{ v1w*ufC6->\ ]=c";kXxͰsU*=pկWRH bpx4 ]%$3~Wɨp H"5M$X!! endstream endobj 1585 0 obj << /Type /Font /Subtype /Type1 /FirstChar 22 /LastChar 60 /Widths 1589 0 R /FontDescriptor 1583 0 R /BaseFont 1590 0 R /Encoding 1584 0 R >> endobj 1588 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 0 /Widths 1591 0 R /FontDescriptor 1586 0 R /BaseFont 1592 0 R /Encoding 1587 0 R >> endobj 1589 0 obj [ 583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4 791.7 791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 888.9] endobj 1591 0 obj [ 892.9] endobj 1587 0 obj << /Type /Encoding /Differences [0/minus] >> endobj 1584 0 obj << /Type /Encoding /Differences [22/floorleftbigg/floorrightbigg 56/bracelefttp 58/braceleftbt 60/braceleftmid] >> endobj 1542 0 obj << /D [1540 0 R /XYZ 149.705 747.976 null] >> endobj 1539 0 obj << /XObject << /Im19 1536 0 R /Im20 1538 0 R >> /ProcSet [ /PDF ] >> endobj 1596 0 obj << /Length 179 /Filter /FlateDecode >> stream xڕ 0DIvћxO ^,ғo Jfn2ʇ,b \oP|J@RЬ_p1g3> 2jAYЅ3J!h? Ԥs(-i`1ְ?;;o> endobj 1593 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/noisemetadata.pdf) /PTEX.PageNumber 5 /PTEX.InfoDict 1470 0 R /BBox [0 0 612 792] /Resources << /Font << /F53 1491 0 R /F8 1482 0 R /F55 1494 0 R /F4 1600 0 R /F59 1603 0 R /F51 1485 0 R >> /ProcSet [ /PDF /Text ] >> /Length 1722 /Filter /FlateDecode >> stream xKoF$ i&F"BhK$ )11Ψsq.%K!/H|qsqy%9sEsAJj̸D7K6L&և|θIv[.UZ>X"sK,_. *|fbh)}SlErm6ٔcY=iq>$)M |'baasRVO3zZǜ eӳ@i\:vTg n mc” 7T[$>R^D1YP$1ŒQq'ϸtj)WR]l}\続AfP ,i<[y(C1ر#qnRԓ_g#u~Y*VߡJ۱#|~ݤ7T'bOoS2NgGy&#Yr JndP-4h VPqtL*!kdD$b~yp~*6uPJ=37̯ _C;Ti\~;voԁ*WHY_͖(erҮ[+|wB%SF2w mlMO߻nYZyV?>~p6A#~〠65Wсq[V~#ǫ#rfI>jw$̯= endstream endobj 1600 0 obj << /Type /Font /Subtype /Type1 /FirstChar 4 /LastChar 7 /Widths 1604 0 R /FontDescriptor 1598 0 R /BaseFont 1605 0 R /Encoding 1599 0 R >> endobj 1603 0 obj << /Type /Font /Subtype /Type1 /FirstChar 34 /LastChar 126 /Widths 1606 0 R /FontDescriptor 1601 0 R /BaseFont 1607 0 R /Encoding 1602 0 R >> endobj 1604 0 obj [ 800 800 800 800] endobj 1606 0 obj [ 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3] endobj 1602 0 obj << /Type /Encoding /Differences [34/quotedbl 40/parenleft/parenright/asterisk/plus/comma 46/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon 61/equal 65/A/B 68/D/E 71/G 77/M/N 82/R/S 86/V 89/Y 91/bracketleft 93/bracketright 97/a/b/c/d/e 103/g/h/i 107/k/l/m/n/o/p 114/r/s/t/u/v 121/y 126/asciitilde] >> endobj 1599 0 obj << /Type /Encoding /Differences [4/a4/a5/a6/a7] >> endobj 1597 0 obj << /D [1595 0 R /XYZ 98.895 747.976 null] >> endobj 1594 0 obj << /XObject << /Im21 1593 0 R >> /ProcSet [ /PDF ] >> endobj 1610 0 obj << /Length 518 /Filter /FlateDecode >> stream xڭSn0+SI|JG׵zJ{b*1aˇ}"FE/rDr3+A WdԖҒ&`w H"Y6]; -9zv_.X&MNgq91+hyH{nfq[2#ivwh&"C!@@W=w4W )2Yp-l@A۶"8:G:SǺժg\ojX]Dw,x,ov|)f*J~r> endobj 1611 0 obj << /D [1609 0 R /XYZ 149.705 747.976 null] >> endobj 266 0 obj << /D [1609 0 R /XYZ 150.705 717.021 null] >> endobj 1612 0 obj << /D [1609 0 R /XYZ 150.705 692.005 null] >> endobj 1613 0 obj << /D [1609 0 R /XYZ 150.705 661.754 null] >> endobj 1614 0 obj << /D [1609 0 R /XYZ 150.705 641.416 null] >> endobj 1608 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F87 315 0 R /F95 356 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1617 0 obj << /Length 979 /Filter /FlateDecode >> stream xڥVr6++0S"xNIlO&l. SF"_ߋx*uCŹI&W4ήY)њdJTD3h.Y2[&_ѻb:rT߳Wd,GmD$sY(p()"ORHT@`Q%zhZz¬@uTM:)H$p#A'`?8-8%h6av¢l3d}g{L6Ht8C(}z )2]2J*߁S-\*pHklwC~+aQ˰ԋ65Q-coi~ 3O0$Wy`|MuYsϡM\lvS59lf94۶.YiA-ڦqޛ7؄p5u ݚ>7MEcru>TsHj%xIL@2]L?sƎ#W?ΧW-Xgs9>~ )b~QEL]۝ 6+:=f_H<-z(r=٪ɝz(;۔K_+G;}0C_~3d+ mTu 3+F(Ӥ*T?C Р0~葂('Ta 1RH5Gs OقH.Lʋ6N>OCH8y0] JE }c-~,17p0& ^s9?'~8/&pIJ,4,;] 3 endstream endobj 1616 0 obj << /Type /Page /Contents 1617 0 R /Resources 1615 0 R /MediaBox [0 0 595.276 841.89] /Parent 1469 0 R >> endobj 1618 0 obj << /D [1616 0 R /XYZ 98.895 747.976 null] >> endobj 270 0 obj << /D [1616 0 R /XYZ 99.895 717.021 null] >> endobj 1615 0 obj << /Font << /F87 315 0 R /F46 279 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1621 0 obj << /Length 817 /Filter /FlateDecode >> stream xڭUKS0+|fjln!+eHjNL뻲0&Ӟcv]!qrpx*uXs$)J UP΂d#isRG4gdtC"*6 /ǘ Ɨh`ڢ龯 Sdr w]Lb+4-)@ UؠGw"O+oO ą27V`v(]on ʙvA3 \jAn_46(_#SJx$[zb =wնi`Ybs<>'* ҕ ze 4`/1mOcӲ#;K޸ 0jq$%ZyD&mA:1t>1y+[{rE+fUCc QVEڅ`i咰vdXpyM) syjݳA$M ‰c/ dw.Q\e͆lZ G8rw,QSǦQtoF,G[gUIAfN$Vmal1yYٕx2l03u:ʳ'iXKoUIa 1/W[[i>-º^.6_G@|+z8i,u9oIWxwCw~{&4Nˮqo1(}ʢ߽~aVB~6PoV+?hތ|:uzRho3we4mO1Ah7 endstream endobj 1620 0 obj << /Type /Page /Contents 1621 0 R /Resources 1619 0 R /MediaBox [0 0 595.276 841.89] /Parent 1469 0 R >> endobj 1622 0 obj << /D [1620 0 R /XYZ 149.705 747.976 null] >> endobj 1619 0 obj << /Font << /F46 279 0 R /F96 355 0 R /F56 378 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1623 0 obj [479.8] endobj 1624 0 obj << /Length 82 /Filter /FlateDecode >> stream x335R0P0bCc bU@tr.'~U()*Mw pV0wQ6T0tQ\\\I endstream endobj 1625 0 obj << /Length 144 /Filter /FlateDecode >> stream x3636Q0P0Q54S0T01WH1*2(Cs<L=\ %E\N \. ц \. l `$`F6 5`T>00Bf:A DOc\=45 endstream endobj 1626 0 obj << /Length 92 /Filter /FlateDecode >> stream x335R0P0bCc# CB.1s≮=\ %E\N \. ц \.  @D\=! endstream endobj 1627 0 obj << /Length 154 /Filter /FlateDecode >> stream x333Q0P0R5T0P06PH1*22 (Bds<L=\ %E\N @BA,g`|F{0C`d@ so`d^.WO@.O4 endstream endobj 1628 0 obj << /Length 176 /Filter /FlateDecode >> stream xU= @')\@&Vbv!b}`dp endstream endobj 1629 0 obj << /Length 123 /Filter /FlateDecode >> stream x3236W0P0b#c3CB.#1s< =\ %E\N @QhX.O ?0 a<8b'HC endstream endobj 1630 0 obj << /Length 120 /Filter /FlateDecode >> stream x3631V0P0b#KSCB.# HrW02r{*r;8+r(D*ry(a` S 3PAE\\\SU endstream endobj 1631 0 obj << /Length 93 /Filter /FlateDecode >> stream x34ճ4T0P0bCCCB.s 'r9yr+s{=}JJS ]ry(\=4% endstream endobj 1632 0 obj << /Length 113 /Filter /FlateDecode >> stream x3631V0P0b#KJ1*2E@ɹ\N\ F\@Q.}O_T.}gC.}hCX.O?? Փ+ 9B endstream endobj 1633 0 obj << /Length 165 /Filter /FlateDecode >> stream x3636Q0P0R5T0"CB.# H,ɥ`dU()*Mw pV]  b<]``? О: \|A&2d>?`0pzrrRSCV endstream endobj 1634 0 obj << /Length 155 /Filter /FlateDecode >> stream x3631V0P0U54R06R0TH1*22(Bs≮=\ %E\N @BA,|ß7c0|aAlȤǞh.Փ+ W endstream endobj 1635 0 obj << /Length 116 /Filter /FlateDecode >> stream x3237W0P0b###KCB.C3 I$r9yr+q{E=}JJS ]  b<]??@ r 2 endstream endobj 1636 0 obj << /Length 163 /Filter /FlateDecode >> stream x=1 @D'X~/]m$Fp A+ P j9GH L3 q6eÎG]'KWr.@3 -;G2`JǙb=KY6{%G\I#?@-6ak Ă*dJ @TsD=hiCo=3 endstream endobj 1637 0 obj << /Length 121 /Filter /FlateDecode >> stream x323P0P0T5T02R06SH1*22PAcsLr.'~PKW4K)YKE!P EV8¥0@?.WO@.%?Y endstream endobj 940 0 obj << /Type /Font /Subtype /Type3 /Name /F172 /FontMatrix [0.01593 0 0 0.01593 0 0] /FontBBox [ 1 -16 32 47 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 46 /LastChar 116 /Widths 1638 0 R /Encoding 1639 0 R /CharProcs 1640 0 R >> endobj 1638 0 obj [18.52 33.34 0 0 0 0 0 0 0 0 0 0 18.52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29.64 0 29.64 20.37 0 34.43 15.91 0 0 0 0 34.43 33.34 34.43 0 22.77 25.56 24.08 ] endobj 1639 0 obj << /Type /Encoding /Differences [46/a46/a47 48/.notdef 58/a58 59/.notdef 99/a99 100/.notdef 101/a101/a102 103/.notdef 104/a104/a105 106/.notdef 110/a110/a111/a112 113/.notdef 114/a114/a115/a116] >> endobj 1640 0 obj << /a46 1624 0 R /a47 1625 0 R /a58 1626 0 R /a99 1627 0 R /a101 1628 0 R /a102 1629 0 R /a104 1630 0 R /a105 1631 0 R /a110 1632 0 R /a111 1633 0 R /a112 1634 0 R /a114 1635 0 R /a115 1636 0 R /a116 1637 0 R >> endobj 1641 0 obj << /Length 125 /Filter /FlateDecode >> stream x363Q0P0Q06T0 )\\F@AKDr.'~)%BIQi*S!BA,6 c'W p"x endstream endobj 1642 0 obj << /Length 175 /Filter /FlateDecode >> stream xu1 @EX,L2XEB*XhxAl $lNy<0⣥ X#E3t6&9i~"n,w͞\P@P`^|ѫѯ>Po JѐOS{ r1AW%,b+DbZ:G6K endstream endobj 1643 0 obj << /Length 172 /Filter /FlateDecode >> stream x363Q0P0S5S02Q01UH1*24 (Bds< ͹=\ %E\N @BA,B 0``X*H@7((hd2|-@6^v B\=c1 endstream endobj 1644 0 obj << /Length 167 /Filter /FlateDecode >> stream x-=0 W1D HҴJȀb 8 G`d@;e"?qqLy)&eHDu$$%W|܎d=نwݞbÀ0J޽C@/,d>WOTIke)yݣR5E h1 endstream endobj 1645 0 obj << /Length 164 /Filter /FlateDecode >> stream x-1 PD7Xx$?b!he!VRPͣxK 1|-ebThz6NKchZnn.,rT3Z7[Z"2}Lv> stream x363Q0P04V5U06R01UH1*2(¤s< -=\ %E\N \. ц \. ?C ?GrI\\\YRd endstream endobj 1647 0 obj << /Length 112 /Filter /FlateDecode >> stream x363Q0P0R5U02T01UH1*2 (Bes< -=\ %E\N \. ц \. ?A0 .WO@.I endstream endobj 1648 0 obj << /Length 139 /Filter /FlateDecode >> stream x363Q0P0Q5U0Ҧ )\\F@ASLr.'~)PKW4K)YKE!P E b;(byn`` ?000 \\\G0 endstream endobj 1649 0 obj << /Length 156 /Filter /FlateDecode >> stream x363Q0P0V5U06T01UH1*22 (Bes<̹=\ %E\N \. ц \. ?``b~0> AH@\DP"!lnfہ~r 5 endstream endobj 1650 0 obj << /Length 157 /Filter /FlateDecode >> stream x363Q0P0V5U06T01UH1*22 (Bes<̹=\ %E\N \. ц \. ? P @00?3 1X fCr#ȭ`7'W x6] endstream endobj 1651 0 obj << /Length 103 /Filter /FlateDecode >> stream x363Q0P04FF & )\\@HrWr{*r;8+. ц \. v pzl\=y4 endstream endobj 1652 0 obj << /Length 150 /Filter /FlateDecode >> stream x363Q0P0Q0S06P06QH1*22(Y%s<L=\ %E\N \. ц \. 2 vŽᏝ|}c@j@jAz@z Փ+ 72B endstream endobj 1653 0 obj << /Length 115 /Filter /FlateDecode >> stream x363Q0P0R0Q06R06UH1*2(%s<,=\ %E\N @BA,;I >fr 1 endstream endobj 1654 0 obj << /Length 117 /Filter /FlateDecode >> stream x363Q0P04TеT02VTH1* @P\.'O.p K(ΥPRTʥuQjtQgo?P?`B3cPA# endstream endobj 1655 0 obj << /Length 95 /Filter /FlateDecode >> stream x363Q0P04FF )\\@NrW %E\N \. ц \. v `Փ+ n2 endstream endobj 1656 0 obj << /Length 143 /Filter /FlateDecode >> stream x363Q0P0Q5U0Ҧ )\\F@ASLr.'~)PKW4K)YKE!P EAȷb;( ?A3?`v>4 r  0 endstream endobj 1657 0 obj << /Length 102 /Filter /FlateDecode >> stream x363Q0P04FF F )\\@HrWr{*r;8+r(D*ry(13oz;lS'W #f endstream endobj 1658 0 obj << /Length 127 /Filter /FlateDecode >> stream x363Q0P04TеT02V0PH1* 9T*9ɓK?s{*r;8+E]b<]}<6U?`B3cP"[+ endstream endobj 1659 0 obj << /Length 108 /Filter /FlateDecode >> stream x363Q0P0R04R06R02WH1*2 (Bds<,=\ %E\N \. ц \. l\=^7N endstream endobj 1660 0 obj << /Length 98 /Filter /FlateDecode >> stream x363Q0P0S04R0P04WH1*22 (B$s< =L=}JJS. @\. ?l.WO@.4 endstream endobj 1661 0 obj << /Length 107 /Filter /FlateDecode >> stream x363Q0P0S02R0P01TH1*22 (ZBds< =\ %E\N @QhX.Ou1@C@ALTÈ@\\\0 endstream endobj 1662 0 obj << /Length 211 /Filter /FlateDecode >> stream x]1N1@AxlK!Hl)T)Tl:JpgӥxZ8-X|G7-ڝ g )4 zE3[>E3j͜3PЇH/EbQ%%zDtO:襃:g:Pm&dEr:ꠎzUXa endstream endobj 1663 0 obj << /Length 153 /Filter /FlateDecode >> stream x363Q0P0bc#CCB.#K I$r9yr+Yr{E=}JJS|hCX.Olmp?P 5(C;T|@h=* szrr͊S[ endstream endobj 1664 0 obj << /Length 167 /Filter /FlateDecode >> stream xm-@A+ n[SERJ P${G oC BRq wRrrtD2<ٝd%dZǙlY#[4:HhT[qI!d3v-㎡h>y7/0񻃇6~}Zz7b endstream endobj 1665 0 obj << /Length 184 /Filter /FlateDecode >> stream xڅ10 PW*y @6RJHt@1#h&KDp^;w2*hP1/ο (%]/#z5#lmC ]KpkRWA2C> stream x363Q0P0bc#CB.c4H$r9yr+p{E=}JJS ]*c<]?` 77ob @70 " @fn nr'W "W endstream endobj 1667 0 obj << /Length 132 /Filter /FlateDecode >> stream x363Q0P0bccCB.c4H$r9yr+p{E=}JJS ]  b<]? cF,3@p@X0> stream x363Q0P0bc#CB.c4H$r9yr+p{E=}JJS ]*c<]?0 a?P[1 #0NN endstream endobj 1669 0 obj << /Length 186 /Filter /FlateDecode >> stream xmα 0-y hKB`A'qRGE7iXEpp!PiG9.yBi)5%N SFxD#\eqFoPW,—']WOYDkj+ WA=ukܠqwS4g|,pY\ endstream endobj 1670 0 obj << /Length 112 /Filter /FlateDecode >> stream x363Q0P0bccCB.c1s< =\ %E\N @QhX.O >T3[\=1Ba endstream endobj 1671 0 obj << /Length 105 /Filter /FlateDecode >> stream x363Q0P0b#KCB.#c I$r9yr+s{E=}JJS ]  b<] 5 4Bhqzrr; endstream endobj 1672 0 obj << /Length 134 /Filter /FlateDecode >> stream x363Q0P0V5T06T01PH1*22 (Bds<̹=\ %E\N @BA, Hgc5p\3a?'W 4K endstream endobj 1673 0 obj << /Length 114 /Filter /FlateDecode >> stream x363Q0P0bc#CB.c4H$r9yr+p{E=}JJS ]*c<]10 >b  ?\=DG endstream endobj 1674 0 obj << /Length 145 /Filter /FlateDecode >> stream x363Q0P0bccCB.c1s< =\ %E\N @QhX.O ;= X 6laAΦe X=  ^r ] endstream endobj 1675 0 obj << /Length 160 /Filter /FlateDecode >> stream x363Q0P0bc#CB.#K I$r9yr+Yr{E=}JJS ]  b<]\{W@ A1#avf!q9n|y.WO@.oJ endstream endobj 1676 0 obj << /Length 154 /Filter /FlateDecode >> stream xڍ+PВ kf ާu$$'5{ \{>ޢ-=-t |9_pjm`C8^*!HN2VHF?ؼٽٿɏo'QK endstream endobj 1677 0 obj << /Length 175 /Filter /FlateDecode >> stream xu1 1E# S#\@l +PNnQ#bIy0gffP©BmH<)Ȕhp9^ v++A5o3z@+ Բ{>!{Y~s:hC凧 +u"0XZHRp endstream endobj 1678 0 obj << /Length 199 /Filter /FlateDecode >> stream x=1jPmp$p)pl@\;$8 ›)^3˲U}WkΓVIoIR.Zu/VV˅GxI\>kŋ+gقPvBg46!*0Љ::l"9P6̆a sƜ?~|ġ V6 Zy endstream endobj 1679 0 obj << /Length 123 /Filter /FlateDecode >> stream x363Q0P0bc#CB.#K I$r9yr+Yr{E=}JJS ]  b<].o(`o`%f?8\=I endstream endobj 1680 0 obj << /Length 137 /Filter /FlateDecode >> stream x363Q0P0T5T06V01PH1*26 (Bds< =\ %E\N @B4PO,1`e1o`S? 00?`r W endstream endobj 1681 0 obj << /Length 154 /Filter /FlateDecode >> stream x363Q0P0T5T06V01PH1*26 (Bds< =\ %E\N @B4PO,B??a`~Be< aԠb r X 0.WO@.J endstream endobj 1682 0 obj << /Length 154 /Filter /FlateDecode >> stream x363Q0P0bccCB.c1s< =\ %E\N @QhX.O > |o` Þ@  ihN\=E endstream endobj 1683 0 obj << /Length 164 /Filter /FlateDecode >> stream x%˱ 1 ؞d<N⤎ |EC; $秞,ٜ YJ!8]h,l = vMGcG5h@/$.T /0T0Z!4GA㷒ܗEqq?A? endstream endobj 1684 0 obj << /Length 169 /Filter /FlateDecode >> stream x363Q0P0bc#CB.c4H$r9yr+p{E=}JJS ]*c<]@z fLJ``?`?H ajAz@z2?\=STa endstream endobj 1685 0 obj << /Length 159 /Filter /FlateDecode >> stream x]; @,vN V.n!he!Vjihr"N6_3˧9BIP"a9j`5dK7ՍxKܖ l Z:-5 endstream endobj 1686 0 obj << /Length 170 /Filter /FlateDecode >> stream xu; @I&GȜݸb+PMxo`badȓr]Gt`{*Yhf s:.{4bB  ^_q"wNE8S*J9Gc\޿:SyDڴi%|Q endstream endobj 1687 0 obj << /Length 166 /Filter /FlateDecode >> stream x]; @E/f'?@` A+ RK E;Ifi`"|8prVrDO])44/TdwWdWڒm|=d͂3 3N6 y#|`Dz8|w0ᩌG"ǡ&`B28./}_ŠeK[H endstream endobj 1688 0 obj << /Length 148 /Filter /FlateDecode >> stream x363Q0P0aKCB.#3 I$r9yr+q{E=}JJS ]  b<]100o`A큸~: 5 5 ȸ70\\p szrrE endstream endobj 1689 0 obj << /Length 207 /Filter /FlateDecode >> stream xM=j@PF7]y"MlV!U2EB $M>u-X03TlxMpRU]/ZԤ_IO$x^rIzů%7W =gC1p:3C=!=C BQ pA1d;oPy'O[| wm\*6hh]Ӗ] endstream endobj 1690 0 obj << /Length 144 /Filter /FlateDecode >> stream x363Q0P0bccCB.c1s< =\ %E\N @QhX.O?c` > ~ \\\0T endstream endobj 1691 0 obj << /Length 113 /Filter /FlateDecode >> stream x363Q0P0bcCCB.# HrW02r{*r;8+. ц \.  PPa@ vX0 endstream endobj 1692 0 obj << /Length 174 /Filter /FlateDecode >> stream x363Q0P0bccCB.c1s< =\ %E\N @QhX.O0F {\``>  T󡆁D|~ f?POp szrr(V endstream endobj 1693 0 obj << /Length 102 /Filter /FlateDecode >> stream x363Q0Pac ebUed 䃹 \.'O.p#S.}(BIQi*S!BA,? bo@\\\4 endstream endobj 1694 0 obj << /Length 132 /Filter /FlateDecode >> stream x363Q0CcS# CB.c s<M=\ %E\N \. ц \. 00A;@!2?\\\ilL endstream endobj 1695 0 obj << /Length 134 /Filter /FlateDecode >> stream x363Q0P0bcc# CB.c1s< =\ %E\N @QhX.O c?? ~ \\\GK endstream endobj 1696 0 obj << /Length 151 /Filter /FlateDecode >> stream x363Q0Pac# CB.#S I$r9yr+r{E=}JJS ]  b<]``agB{y0߀ u4ԁuكI @fՓ+ b7 endstream endobj 1697 0 obj << /Length 182 /Filter /FlateDecode >> stream xڅ1 @EW,tw[X+P"x"d܅b#+[Ri- 5(c;b\Q(AG/rP)im4-/ e\C;p{{J|qol3tB'T, qY+|ɑ\ endstream endobj 1698 0 obj << /Length 187 /Filter /FlateDecode >> stream xڍ1 @Б49BIv@Vbnċy/ MVHUSJDQڧU[ҥ1=Zn0(f$%Q1w5|2EA ;]e }22D 7Ði3TkjTQ`쟃9;밶e886` endstream endobj 1699 0 obj << /Length 133 /Filter /FlateDecode >> stream x363Q0P0bc## CB.#K I$r9yr+Yr{E=}JJS ]  b<]??~w @?? ?qhr stG` endstream endobj 1700 0 obj << /Length 164 /Filter /FlateDecode >> stream x-= @_ir!s7`e#XiJ!fA,9fOs:SBJ L% Ҕ]zɔ'd*'V st#@{C;Au]?9}sZ'"'=A#OҖ~D` endstream endobj 1701 0 obj << /Length 144 /Filter /FlateDecode >> stream x363Q0P0aKc3CB.#3 I$r9yr+q{E=}JJS ]  b<]000~g cb?`c4a`Փ+ FF endstream endobj 1702 0 obj << /Length 124 /Filter /FlateDecode >> stream x363Q0P0bcc# CB.c1s< =\ %E\N @QhX.O)@,М0PՓ+ > stream x363Q0P0bc## CB.#K I$r9yr+Yr{E=}JJS ]  b<]?C= 18fP@`.WO@.{9" endstream endobj 1704 0 obj << /Length 156 /Filter /FlateDecode >> stream x363Q0P0bcc# CB.c1s< =\ %E\N @QhX.O y P0<| y^u>(D r E endstream endobj 1705 0 obj << /Length 161 /Filter /FlateDecode >> stream x51 @EM6) BVbB %-G#Lx II1@jNЕl> stream xE= @')d &Ā?VbB -GRtca0A8c}?@ ȦYO416#R 2K]GRՔ}R3xU %P$@sFEY"%72/Z\4/9 B endstream endobj 1707 0 obj << /Length 165 /Filter /FlateDecode >> stream xM 0EopOӴj3:9::(O2vc{nUj.LTKWEJ]z;51$SffELew19r \# @|L8IOR#|DȽf"Ĵ5'm{X:pL endstream endobj 1708 0 obj << /Length 176 /Filter /FlateDecode >> stream xڍ1 @EL#d.M)n!he!VBNBQ)XZ+p5惦3e(36Ҝ&eW|܎5w=ٚ#D{~@^H-n)H:I;ozD lf t0-"N&7`yN endstream endobj 1709 0 obj << /Length 127 /Filter /FlateDecode >> stream x363Q0P0b#KCCB.## I$r9yr+q{E=}JJS|hCX.O 0? _ CM Led\6 endstream endobj 1710 0 obj << /Length 184 /Filter /FlateDecode >> stream xU1@E #0'PM)L0Vjiz= G +޼?tr㞄ӄw iǽa{hţ^)*|>] N8PY0* O@(moW_{Z/PANM:3/fBzu%Rꎦ%- _R endstream endobj 1711 0 obj << /Length 190 /Filter /FlateDecode >> stream x=ν 0S w0-V N>ZGpt^o[p$/qp|rtlaE/48]iLZ8m.x8=P`F$ nGF=]{ ϙЋsNcZA_>H]t05h;}-+N endstream endobj 1712 0 obj << /Length 167 /Filter /FlateDecode >> stream xu; P#i y5K1),J--0 RsA+9TC)5tIt(e-fq&fΫz \N]&p+uu ʩ:wj-/ yZwEA950 -u_76xCf ,;D endstream endobj 1713 0 obj << /Length 178 /Filter /FlateDecode >> stream xڅν 0[46ЭZ N⤎nBh}>Ci> stream x=PLs 77 XSkb.}(y!d 2|S|SӒ3.s|t|aeO4}q>#֘\ߟ#=%{vT/=p@$$"1L4L\G.䎇Z {C:\5P? F=:uCZUM[zZ endstream endobj 1715 0 obj << /Length 165 /Filter /FlateDecode >> stream x363Q0P0V5T06T01TH1*22 (Ads<̹=\ %E\N \. ц \.  ? @lPPTQ@0 ؞@F0@`#? @k\=wC endstream endobj 1716 0 obj << /Length 189 /Filter /FlateDecode >> stream x] 0O:n#^@Ӵnj3:9::(ͣQJcRQ|SB%erIgL o&dRPZXx^r;(W3(*JJv+e`;Vf <;? ~7 XC캁8a] Q&dOW6C8׸Q0 endstream endobj 1717 0 obj << /Length 204 /Filter /FlateDecode >> stream x5=N@g0G\׶BpJLZkL׼yMl↯=7[{O'WV/#;r\[L{ہ= xma@~"ׄR'Q"ʡ7 &f2K&#aR*KzLW3.#fbK2Z'艾Xp endstream endobj 840 0 obj << /Type /Font /Subtype /Type3 /Name /F170 /FontMatrix [0.01544 0 0 0.01544 0 0] /FontBBox [ 0 -15 36 45 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 33 /LastChar 126 /Widths 1718 0 R /Encoding 1719 0 R /CharProcs 1720 0 R >> endobj 1718 0 obj [34.4 34.4 0 0 0 34.4 0 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 0 0 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 0 34.4 34.4 34.4 0 34.4 0 34.4 34.4 34.4 34.4 34.4 0 0 34.4 0 34.4 34.4 34.4 0 0 0 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 0 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 34.4 0 34.4 34.4 ] endobj 1719 0 obj << /Type /Encoding /Differences [33/a33/a34 35/.notdef 38/a38 39/.notdef 40/a40/a41/a42/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59/a60/a61/a62 63/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74 75/.notdef 76/a76/a77/a78 79/.notdef 80/a80 81/.notdef 82/a82/a83/a84/a85/a86 87/.notdef 89/a89 90/.notdef 91/a91/a92/a93 94/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122/a123 124/.notdef 125/a125/a126] >> endobj 1720 0 obj << /a33 1651 0 R /a34 1661 0 R /a38 1662 0 R /a40 1642 0 R /a41 1643 0 R /a42 1652 0 R /a43 1653 0 R /a44 1654 0 R /a45 1660 0 R /a46 1655 0 R /a47 1656 0 R /a48 1708 0 R /a49 1709 0 R /a50 1710 0 R /a51 1711 0 R /a52 1712 0 R /a53 1713 0 R /a54 1714 0 R /a55 1715 0 R /a56 1716 0 R /a57 1717 0 R /a58 1657 0 R /a59 1658 0 R /a60 1644 0 R /a61 1659 0 R /a62 1645 0 R /a65 1663 0 R /a66 1664 0 R /a67 1665 0 R /a68 1666 0 R /a69 1667 0 R /a70 1668 0 R /a71 1669 0 R /a72 1670 0 R /a73 1671 0 R /a74 1672 0 R /a76 1673 0 R /a77 1674 0 R /a78 1675 0 R /a80 1676 0 R /a82 1677 0 R /a83 1678 0 R /a84 1679 0 R /a85 1680 0 R /a86 1681 0 R /a89 1682 0 R /a91 1646 0 R /a92 1648 0 R /a93 1647 0 R /a97 1683 0 R /a98 1684 0 R /a99 1685 0 R /a100 1686 0 R /a101 1687 0 R /a102 1688 0 R /a103 1689 0 R /a104 1690 0 R /a105 1691 0 R /a107 1692 0 R /a108 1693 0 R /a109 1694 0 R /a110 1695 0 R /a111 1696 0 R /a112 1697 0 R /a113 1698 0 R /a114 1699 0 R /a115 1700 0 R /a116 1701 0 R /a117 1702 0 R /a118 1703 0 R /a119 1704 0 R /a120 1705 0 R /a121 1706 0 R /a122 1707 0 R /a123 1649 0 R /a125 1650 0 R /a126 1641 0 R >> endobj 1721 0 obj << /Length 102 /Filter /FlateDecode >> stream x332V0P0S04V06R0PH1*22 (B$s<L=BIQi*S!BA,B oaՓ+ W!" endstream endobj 1722 0 obj << /Length 102 /Filter /FlateDecode >> stream x332V0P0S04V06R0PH1*22 (B$s<L=BIQi*S!BA,B oaՓ+ W!" endstream endobj 1723 0 obj << /Length 143 /Filter /FlateDecode >> stream x332V0P0bc3SCB.c HrW06r{*r;8+r(D*ry(7 Xy?`$A|24;hqqzrra endstream endobj 1724 0 obj << /Length 173 /Filter /FlateDecode >> stream x332V0P0bcsSCB.cS I$r9yr+r{E=}JJS ]*c<]0??1`$!aD*HA%(D D0H~?XՓ+ ,/a endstream endobj 1725 0 obj << /Length 167 /Filter /FlateDecode >> stream xڥ1 A Ej 0'pvBBr Ehea!,, ? 8p^+<)DZ}Ku$-T%|9_Ռ=p0IilgA0$ʸ)B.ȰHȵ@CR Yy5` endstream endobj 1726 0 obj << /Length 212 /Filter /FlateDecode >> stream xM̽JP )Gn]Vb;}y6]r _1\T,RFsy._6O8Kpm1F>?^8o7RrC)GBq2A޴ V#yfNDy&FZ <l2dǩ5n *NF|Mx@"9@2;n endstream endobj 1727 0 obj << /Length 127 /Filter /FlateDecode >> stream x332V0P0bc3SCB.c HrW06r{*r;8+r(D*ry(7?&*?300`4 \\\`P endstream endobj 1728 0 obj << /Length 178 /Filter /FlateDecode >> stream x=; @i;'0k.#Xuh{`0dh1;֕ә*t*n.9רkَbt=Θ՛Inh_P~@Pp`GT`> stream xڕϱ 0 ->5V܄ZN⤎Ωb}> stream xm10JtM{vb!  * D hq .)K{kiiHӜ132 aYփkjOejWTvC.uCmC {ZR 9#y! ?_?<7"kQc/{'e\YUA endstream endobj 1731 0 obj << /Length 189 /Filter /FlateDecode >> stream xڕ1 @49Bn5.L!he!Vjihx%@q&baafwbK!rlJ&2:jyfN6A3[4ńM>PfH%C.P/2YOITsPn/%-ihHǥj۸^n*d58*p/5h endstream endobj 1732 0 obj << /Length 176 /Filter /FlateDecode >> stream x]1 @DgIMv 1),J--$GQr-X݈ xz9k˂ustoT֔XmJYuܭ8'+FbvA$"C!bkȚN5P?nhM'>q"aCAS endstream endobj 1733 0 obj << /Length 148 /Filter /FlateDecode >> stream x332V0P0bccSCB.crAɹ\N\ \@Q.}O_T.}gC.}hCX.O ?00@,A n` `ǥ 4h\=kJ endstream endobj 1734 0 obj << /Length 230 /Filter /FlateDecode >> stream xUMJ@&G躀v8Yr!ԥ EoڕpÔcޫ*7A+mt>m-ZN+mf^K Sg|'~q~^Z]KT/{cf(>R9%.(G|g d p,3UƘtf[ ص|ြ'0_l5tcNaޚLFN9B*r endstream endobj 1735 0 obj << /Length 155 /Filter /FlateDecode >> stream x332V0Cc SCB.cs s<͹=\ %E\N \. ц \. @!A3iD}q`@:pՈ?r "gi endstream endobj 1736 0 obj << /Length 133 /Filter /FlateDecode >> stream x332V0P0bc3CB.#s I$r9yr+s{E=}JJS ]  b<]쁸@rx@䩏?0 szrrG@ endstream endobj 1737 0 obj << /Length 188 /Filter /FlateDecode >> stream xڕ̱ 0H->5 I]MWꣴ8vP> stream x332V0P0bcSSCB.crAɹ\N\ \@Q.}O_T.}gC.}hCX.O z f< >'W /M@ endstream endobj 1739 0 obj << /Length 151 /Filter /FlateDecode >> stream x332V0P5Ɩ Ɔ )\\@H"ɥT¥U()*Mw pV]*c<]1??z@e0D=Ў?`XՓ+ tg endstream endobj 1740 0 obj << /Length 144 /Filter /FlateDecode >> stream x332V0Cc cCCB.cs!JrW06r{*r;8+. @\. ?D0?H0 C8jD?qzrr.Z endstream endobj 1741 0 obj << /Length 165 /Filter /FlateDecode >> stream x332V0P0bccCCB.#K I$r9yr+Yr{E=}JJS|hCX.O 00? }{u @? 81HHH?y sAՓ+ uI endstream endobj 1742 0 obj << /Length 198 /Filter /FlateDecode >> stream xڝ= @t]רBBBzWX#,L2N66Wޮuzrf@VmPg?$D!^:\r;dPhkpF.v1S` s *UcRhEhk4~+QJ^?j^T8?pA}pߡCp endstream endobj 1743 0 obj << /Length 190 /Filter /FlateDecode >> stream xڝα 0+ r/i:j;:9::( NGQBcR|"GTRB)DFrLRNe҄n=`^"_̐\t# Z J6XL_*c Z̡c^k[>Yk@7.iK|[Pk endstream endobj 1744 0 obj << /Length 156 /Filter /FlateDecode >> stream x332V0P0bc3cCCB.c I$r9yr+p{E=}JJS|hX.O?gC<">70?`b`?$#"0@ \\\,D endstream endobj 1745 0 obj << /Length 175 /Filter /FlateDecode >> stream x= @2'0?n!Fp A+ RKAE.{e;[Kq{gp369rQQjφ:<;.JJWj)uk~ܟgJ͂׼9;D'UEwdC+ ;*"i$0 jChDim+"^O&ATA endstream endobj 1746 0 obj << /Length 143 /Filter /FlateDecode >> stream x332V0P0bccCB.c4H$r9yr+p{E=}JJS ]  b<]*? cb? ?}`-0'W P1 endstream endobj 1747 0 obj << /Length 135 /Filter /FlateDecode >> stream x332V0Cc cCCB.cs!JrW06r{*r;8+. @\. 0 C-P#0Q\\\Q+ endstream endobj 1748 0 obj << /Length 169 /Filter /FlateDecode >> stream x332V0P0bc3cCCB.c HrW06r{*r;8+. ц \. 3gA0~ 00~`?%~``%y(Qg$`}Ad endstream endobj 1749 0 obj << /Length 170 /Filter /FlateDecode >> stream x332V0P0bcscCCB.cS I$r9yr+r{E=}JJS|hX.O?701`#0@@(|O?? ~*!(_HG&?```>TD endstream endobj 1750 0 obj << /Length 181 /Filter /FlateDecode >> stream x5α03 $'@D&:9'utFGQx x-qjR+R2|YK߸>4(O(͞ޯey3J/h*NЎ:0ͻ-lp #2'GDn8ؤGCC4?>1 A2D endstream endobj 1751 0 obj << /Length 199 /Filter /FlateDecode >> stream xM1 @ ) ܹn),J--x0%GHi!D+0cjFAI}Q rZ\P2^r;VST gU a%+|Ϝnܜp*8)cqmڈ! <"np-96ܒ, Dhțǰ/N~ endstream endobj 1752 0 obj << /Length 162 /Filter /FlateDecode >> stream xm1 @EXfNnv,-,J--m7ͣ)-BN+MeFbl >t%X'LB'ckH%|=Τ͂++v1vuw]y3{hXZDZz> /FirstChar 21 /LastChar 122 /Widths 1753 0 R /Encoding 1754 0 R /CharProcs 1755 0 R >> endobj 1753 0 obj [38.23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 38.23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 38.23 0 0 0 0 0 0 38.23 0 0 38.23 0 0 38.23 38.23 0 0 0 0 0 0 0 0 0 0 0 0 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 0 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 38.23 ] endobj 1754 0 obj << /Type /Encoding /Differences [21/a21 22/.notdef 45/a45 46/.notdef 70/a70 71/.notdef 77/a77 78/.notdef 80/a80 81/.notdef 83/a83/a84 85/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122] >> endobj 1755 0 obj << /a21 1722 0 R /a45 1721 0 R /a70 1723 0 R /a77 1724 0 R /a80 1725 0 R /a83 1726 0 R /a84 1727 0 R /a97 1728 0 R /a98 1729 0 R /a99 1730 0 R /a100 1731 0 R /a101 1732 0 R /a102 1733 0 R /a103 1734 0 R /a104 1735 0 R /a105 1736 0 R /a107 1737 0 R /a108 1738 0 R /a109 1739 0 R /a110 1740 0 R /a111 1741 0 R /a112 1742 0 R /a113 1743 0 R /a114 1744 0 R /a115 1745 0 R /a116 1746 0 R /a117 1747 0 R /a118 1748 0 R /a119 1749 0 R /a120 1750 0 R /a121 1751 0 R /a122 1752 0 R >> endobj 1756 0 obj << /Length 99 /Filter /FlateDecode >> stream x3Գ4U0P0Ɔ )\\@$lIr p{IO_T.}g E!'EA0XAՓ+  endstream endobj 1757 0 obj << /Length 222 /Filter /FlateDecode >> stream x}1j@E'LG\Y •V * N"]HkhMtAA?WjYx|fMiέ̬(2g|E9wNmW̲fo_׋ag^s޴M_a D`q)09> stream xα 0~B L )%SV08s4?1Cygqu1$/].63Sa%/m2x,渐P 34u jYPnYϱOhDŽGD0f'SCF6h`> stream x1P%6=&ZY+h+t^xF{3Lf}OW> stream xڝб 1 7 ympyIj(>B'$ $1դhJcMfFY \~&+垌BNmnC.IlI5e  e':&g0P bEeޯ`)sɟ+;|j endstream endobj 705 0 obj << /Type /Font /Subtype /Type3 /Name /F146 /FontMatrix [0.0103 0 0 0.0103 0 0] /FontBBox [ 0 -1 51 59 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 46 /LastChar 116 /Widths 1761 0 R /Encoding 1762 0 R /CharProcs 1763 0 R >> endobj 1761 0 obj [49.95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49.95 0 0 0 0 0 0 49.95 0 0 0 0 49.95 0 0 0 0 0 0 49.95 ] endobj 1762 0 obj << /Type /Encoding /Differences [46/a46 47/.notdef 97/a97 98/.notdef 104/a104 105/.notdef 109/a109 110/.notdef 116/a116] >> endobj 1763 0 obj << /a46 1756 0 R /a97 1757 0 R /a104 1758 0 R /a109 1759 0 R /a116 1760 0 R >> endobj 1764 0 obj [775.8 472.8 663.9 473.3 440.7 542.8 580.1 282.3 618 567.1 703.9 361.6 496.9 693.6 609.7 584.7 553.1 528.7 735.7 618 716.3 817.5 504.6 650.7 915.2 653.9 480.3 620.8 985.7 985.7 985.7 985.7 263 263 479.8 479.8 0 0 0 0 0 0 0 0 0 0 0 0 760.8 479.8 760.8] endobj 1765 0 obj [1600 1600 1600 1600] endobj 1766 0 obj [1000 800 666.7 666.7 0 1000 1000 1000 1000 0 833.3 0 0 1000 1000 1000 1000 1000 1000] endobj 1767 0 obj << /Length 82 /Filter /FlateDecode >> stream x323P0P0bCS bU@tr.'~9U()*Mw pV0wQ6T0tQ\\\i endstream endobj 1768 0 obj << /Length 142 /Filter /FlateDecode >> stream x332T0P0Q52P06U0TH1*26PAsKTr.'~PKW4K)YKE!hT,@  Aab;(31'W F endstream endobj 1769 0 obj << /Length 93 /Filter /FlateDecode >> stream x323P0P0bCScSCB.1s<̹=\ %E\N \. ц \. qzrro7 endstream endobj 1770 0 obj << /Length 184 /Filter /FlateDecode >> stream xu!@Ej1=Bۖ*6)%nQaqT4&A!ϼfiN&4)M(L4.3-%ڥjՊn mS]LnUI[Fzd/&uQBysZAՅyZH>tpU endstream endobj 1771 0 obj << /Length 175 /Filter /FlateDecode >> stream x36ѳ0U0P0V5T06V06WH1*2 - 2ɹ\N\ F\@a.}O_T.}gC.}hCX.O ??`:49fJ`h?v \\\gAY endstream endobj 1772 0 obj << /Length 177 /Filter /FlateDecode >> stream xڭ0ƻ #^4PA APD@v<GXL"?ؠufx2pۋr@A+A5o3b@VKsD!D;jC)b i$;IʟrUL繇Oz$[Iǻ]7Y endstream endobj 1773 0 obj << /Length 190 /Filter /FlateDecode >> stream x]= @,Ӭ7\@׸q0X`!({-Sb5oLuņ)æ۔00'v4ĤO|)1Rn)3 /DR9U&elQsw>'p_~%Ir+îD6 P4iAojTX endstream endobj 1774 0 obj << /Length 132 /Filter /FlateDecode >> stream x32ֳ4S0P0b#sS CB.#S I$r9yr+r{E=}JJS ]*c<]10o`b{(gn`?0004RVI endstream endobj 1775 0 obj << /Length 229 /Filter /FlateDecode >> stream x}=N1 F ; ?Ue *PRere05, y/v<]754.8sCoZM?Wt8oN+n(nyQm<"2, Ks+|Q-7 `Lyl8F^IG cSfY&ᬫ!/uKo^`1Tzt=}Mr endstream endobj 1776 0 obj << /Length 141 /Filter /FlateDecode >> stream x3135T0P0bcSSsCB.# I$r9yr+Yp{E=}JJS ]ry(a``:fGß o? 30h\=P>rp endstream endobj 1777 0 obj << /Length 94 /Filter /FlateDecode >> stream x337V0P0bCcSCB.s 'r9yr+s{=}JJS ]  b<]A# \=B)} endstream endobj 1778 0 obj << /Length 129 /Filter /FlateDecode >> stream x32г4T0P5U54S04U05QH1*2 (s< -=\ %E\N \. @b<]`A$Q1a`zwL endstream endobj 1779 0 obj << /Length 189 /Filter /FlateDecode >> stream xڵ? P 8 |-[*AAAX7͵cgs ! 切&a~#jAX RP謃x5$ i )Sx{pwukO]Rߜ@kV洤̿k endstream endobj 1780 0 obj << /Length 88 /Filter /FlateDecode >> stream x337V0P0bCcSsCB.1s≮=\ %E\N \. ц \. \\\9Iv endstream endobj 1781 0 obj << /Length 167 /Filter /FlateDecode >> stream xՉ= @GR^#;D n!he!VjihK5r-STAᛟ<39Φ<Ѕ:3ү͊otsB]L{V9=l-#"qQ?X- m  endstream endobj 1782 0 obj << /Length 136 /Filter /FlateDecode >> stream x3135T0P0bcSc3CB.# I$r9yr+Yp{E=}JJS ]ry(0`#O?7??4\\\\ endstream endobj 1783 0 obj << /Length 190 /Filter /FlateDecode >> stream xڍ1@E #0Dm$AL0XF;#xJ :,w<=D!8d=ҍt,az6cRkI~ܟRv!Rt> stream xڝ1@EXL BV b&ZY+h+ͣ()Xb(K)iFzB:Cgԝok ڐNQ-DGet܎Ռd.i+G;4%{pÓfr7 ae|>AO!lFm#}]caE/pnp//8o endstream endobj 1785 0 obj << /Length 133 /Filter /FlateDecode >> stream x323T0P0b#3c3CB.C HrW0r{*r;8+r(D*ry(00>~` @ qzrr@Z endstream endobj 1786 0 obj << /Length 185 /Filter /FlateDecode >> stream xU= @S2$DEbSZY GQ> stream x336R0P0T5T02S01UH1*22 (Ads<L=\ %E\N \. ц \. !#E?1ga`^K endstream endobj 1788 0 obj << /Length 127 /Filter /FlateDecode >> stream x3135T0P0S5T06CB.# D&9ɓK?\ȂK(̥PRTʥ`ȥ 4(E`v(A'W \ endstream endobj 392 0 obj << /Type /Font /Subtype /Type3 /Name /F57 /FontMatrix [0.01275 0 0 0.01275 0 0] /FontBBox [ -5 -20 57 59 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 46 /LastChar 117 /Widths 1789 0 R /Encoding 1790 0 R /CharProcs 1791 0 R >> endobj 1789 0 obj [21.78 39.21 0 0 0 0 0 0 0 0 0 0 21.78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 37.68 0 34.85 40.51 34.85 23.96 39.21 40.51 18.73 20.91 38.33 18.73 62.29 40.51 39.21 40.51 0 26.79 30.06 28.32 40.51 ] endobj 1790 0 obj << /Type /Encoding /Differences [46/a46/a47 48/.notdef 58/a58 59/.notdef 97/a97 98/.notdef 99/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117] >> endobj 1791 0 obj << /a46 1767 0 R /a47 1768 0 R /a58 1769 0 R /a97 1770 0 R /a99 1771 0 R /a100 1772 0 R /a101 1773 0 R /a102 1774 0 R /a103 1775 0 R /a104 1776 0 R /a105 1777 0 R /a106 1778 0 R /a107 1779 0 R /a108 1780 0 R /a109 1781 0 R /a110 1782 0 R /a111 1783 0 R /a112 1784 0 R /a114 1785 0 R /a115 1786 0 R /a116 1787 0 R /a117 1788 0 R >> endobj 1792 0 obj [929.5] endobj 1793 0 obj [334.2 334.2 0 760.8 0 0 0 479.8 0 0 0 0 0 0 0 0 0 0 0 0 0 760.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 417.6 0 403.5] endobj 1794 0 obj [749.2 806.9 634 806.9 749.2 576.3 691.6 749.2 749.2 1037.4 749.2 749.2 691.6] endobj 1795 0 obj [760.8 0 0 0 479.8 0 0 0 0 0 0 0 0 0 0 0 0 760.8 760.8 760.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 417.6 479.8 403.5] endobj 1796 0 obj [760.8 255 760.8 479.8 760.8 479.8 760.8 760.8 760.8 760.8 760.8 760.8 760.8 1296.6 479.8 479.8 760.8 760.8 760.8 760.8 760.8 760.8 760.8 760.8 760.8 760.8 760.8 760.8 985.7 985.7 760.8 760.8 985.7 985.7 479.8 479.8 1282.5 985.7 985.7 760.8 985.7 985.7 648.4 648.4 1282.5 985.7 985.7 760.8 297.1 985.7 648.4 648.4 873.3 873.3 0 0 648.4 536 648.4 479.8 789.5 589.3 760.8 760.8 681.5 982 979.8 800.1 765.7 594 873 718.6 983.7 717.8 785.4 926.1 877.9 1172.6 890.7 642.8 830.8 904.4 897.3 760.3 677.9 901.8 665.8 918.7 888.4 782.4 799.1 648.4 648.4 648.4 648.4 648.4 592.2 592.2 403.5 403.5 403.5 403.5 423.6 423.6 367.4 367.4 255] endobj 1798 0 obj [537 0 0 0 500 0 0 0 295 0 479 0 479 480 0 480 0 0 0 0 0 0 0 0 240 240 424 480 479 774 682 240 240 240 480 774 240 240 240 498 480 479 480 480 480 479 480 480 480 479 240 240 996 774 996 351 779 701 572 701 756 590 498 774 774 332 313 682 590 774 738 793 553 793 682 461 608 756 719 959 701 664 627 240 498 240 0 498 240 461 479 369 498 369 276 424 479 295 240 498 276 811 553 461 461 480 387 295 313 516 516 719 461 442 424] endobj 1799 0 obj << /Length 133 /Filter /FlateDecode >> stream x313U0P0S0T06S0TH1*2 (Bes<,=\ %E\N \. ц \.  0C?7`PP(\ endstream endobj 1800 0 obj << /Length 180 /Filter /FlateDecode >> stream xڍ1@E? #0ЅEhI0X my@IAB ɫfzpQ̓ㄓ]HGpܐڲH-%'eV|O%-x'd J8-^ AP#p: <%cD_IːɨLhXQ1"6SA endstream endobj 1801 0 obj << /Length 180 /Filter /FlateDecode >> stream xڅ1@E? #8Ѕ`H0Xmq@Iaā5jgw :$9Ҷ)1֬RsI_/d9eISȟ-Ox pJz5[dR1[-/Ni\֞Q1k:#mZ GF endstream endobj 1802 0 obj << /Length 141 /Filter /FlateDecode >> stream x313U0P0Q0U0P01UH1*26E!ɹ\N\ \@Q.}O_T.}gC.}hCX.Ov fo ?`?@8HJI3/w. \\\= endstream endobj 1803 0 obj << /Length 95 /Filter /FlateDecode >> stream x313U0P0P5W02U05SH1*2 (Ces≮=\ %E\N \. ц \. (\\\RN endstream endobj 1804 0 obj << /Length 139 /Filter /FlateDecode >> stream x313U0P0Q0U0P01UH1*26E!ɹ\N\ \@Q.}O_T.}gC.}hCX.O " @$A2 Fe` ++i#Up>h endstream endobj 1805 0 obj << /Length 113 /Filter /FlateDecode >> stream x313U0P04S5W0T05SH1*22(Cs<=\ %E\N \. ц \. ~a`?k.r c) endstream endobj 1806 0 obj << /Length 114 /Filter /FlateDecode >> stream x313U0P0V5W02S05SH1*22 (Cds<=\ %E\N \. ц \. a`ԨTkpzrrޠa endstream endobj 1807 0 obj << /Length 154 /Filter /FlateDecode >> stream x313U0P0U5W06W05SH1*26 (Cds< =\ %E\N @QhX.OPkA00f¸  !D3A?xMՓ+ g;h endstream endobj 1808 0 obj << /Length 171 /Filter /FlateDecode >> stream x313U0P0Q5W0P05SH1*26 (Cds<=\ %E\N \. ц \. =b?@I v :e!?A`}zx j\\\XW_ endstream endobj 1809 0 obj << /Length 169 /Filter /FlateDecode >> stream x313U0P0Q5W0P05SH1*26 (Cds<=\ %E\N \. ц \. DC "? f?# A9XvsPC?'W sv` endstream endobj 1810 0 obj << /Length 103 /Filter /FlateDecode >> stream x313U0P0QеP0P5RH1*26 (A$s<≠=}JJS ]  b<]'W *^ endstream endobj 1811 0 obj << /Length 160 /Filter /FlateDecode >> stream x313U0P0bc3csCB.cC I$r9yr+r{E=}JJS. @-\. 2 ?10 ?0?`?ϾO=>i? `A@A@+r=\\\oM endstream endobj 1812 0 obj << /Length 158 /Filter /FlateDecode >> stream x313U0P0bc csCB.cC I$r9yr+r{E=}JJS. @-\. 2 ?30o`?`A??a`O=?4Ƀԁr=\\\kM endstream endobj 1813 0 obj << /Length 109 /Filter /FlateDecode >> stream x313U0P04F  )\\ h IrW04 s{*r;8+r(D*ry(177?Tr < .WO@.G[ endstream endobj 1814 0 obj << /Length 136 /Filter /FlateDecode >> stream x313U0P04Q02R0T0TH1* 9T*9ɓK?s{*r;8+r(D*ry(7?` !0??PP(Q)*P endstream endobj 1815 0 obj << /Length 167 /Filter /FlateDecode >> stream x313U0P0U0W06W01RH1*26(%s< =\ %E\N @QhX.OX5~_#00 A u } s@ .WO@.q,Og endstream endobj 1816 0 obj << /Length 116 /Filter /FlateDecode >> stream x313U0P0V0W0T01VH1*2Eɹ\N\ Ʀ\@Q.}O_T.}gC.}hCX.O @?@#c<9Փ+ q E endstream endobj 1817 0 obj << /Length 130 /Filter /FlateDecode >> stream x313U0P04Q54T0T04PH1*!L.9ɓK?Jp{*r;8+. ц \. ??䁐C ??PCC'W {' endstream endobj 1818 0 obj << /Length 96 /Filter /FlateDecode >> stream x313U0P04F  )\\@ 2ɹ\N\@.}0PRTʥ`ȥm` PPr \\\. endstream endobj 1819 0 obj << /Length 158 /Filter /FlateDecode >> stream x313U0P0U5W06W05SH1*26 (Cds< =\ %E\N @QhX.O : ?@A3?``` TnA10#cS @E;h endstream endobj 1820 0 obj << /Length 106 /Filter /FlateDecode >> stream x313U0P04F Ʀ )\\ es< =\ %E\N \. ц \. r @ -ǀ`R9(; endstream endobj 1821 0 obj << /Length 145 /Filter /FlateDecode >> stream x313U0P04Q54T0T06UH1*L.9ɓK?Jp{*r;8+r(D*ry(7?`Al cG00a71T0pzrrR1 endstream endobj 1822 0 obj << /Length 108 /Filter /FlateDecode >> stream x313U0P0V04S0T06QH1*2 (Z@ds<M=\ %E\N \. ц \. ? \\\SS@ endstream endobj 1823 0 obj << /Length 135 /Filter /FlateDecode >> stream x313U0P04Q0P0T05UH1* 9T*9ɓK?s{*r;8+r(D*ry(0X0` v u 5@o?ԃ \\\, endstream endobj 1824 0 obj << /Length 103 /Filter /FlateDecode >> stream x313U0P0W04U06U02PH1*22 (B$s<̹=L=}JJS ]  b<]?0 szrrj# endstream endobj 1825 0 obj << /Length 103 /Filter /FlateDecode >> stream x313U0P0W04U06U02PH1*22 (B$s<̹=L=}JJS ]  b<]?0 szrrj# endstream endobj 1826 0 obj << /Length 116 /Filter /FlateDecode >> stream x313U0PT02S06V05PH1*22 (@ds<=\ %E\N \. ц \.  5 5A +`92] endstream endobj 1827 0 obj << /Length 169 /Filter /FlateDecode >> stream x313U0P0aKKCB.c HrW06r{*r;8+r(D*ry(01X003"001@" 5 f 1v f2J <8 @ o endstream endobj 1828 0 obj << /Length 247 /Filter /FlateDecode >> stream x=бN0 `G"y /m)=rCL @0(xn:* N_YMUtzIz-XЦJ'/k1˘wJTR힬> stream xڅ1N0E4>B|b"-D $(PR hs#L,~7[Nov#u:k/(> stream x}1NP  O#$ BR$2 Ā[Fb\%cxg3'ehrXq>(<*j3MiPv唲smS\eSz7I *(L?g^%͏ ʯo[`OA#a` HHyCwX&--'1qguM4Ҋ-ŧ)]"V:!>5tEz endstream endobj 1831 0 obj << /Length 177 /Filter /FlateDecode >> stream xe= @YL1 n!he!VjihAMRnd]Q-a$&B;Sb1Jlng?a&Ql(JP,lB.zQd(rPi ozxKcT=:ʎqt,r(xKr0F3F G!㮙MÍv87cg6 endstream endobj 1832 0 obj << /Length 188 /Filter /FlateDecode >> stream x} @ : VA'qRGEޣQĘt%—%9FpfbBsI+J ziz*hq]npct[aMX{A-01h_S/L83Ѿe®gSr}c5 qR& endstream endobj 1833 0 obj << /Length 218 /Filter /FlateDecode >> stream xڝ1n@Ebi|THq)TQ2EYm%.2G#d> stream x313U0P0bcKKCB.cs I$r9yr+s{E=}JJS ]*c<]g`D`a`H0 ¾Hȃ@L<p&,QPl[v RAor B{6 endstream endobj 1835 0 obj << /Length 144 /Filter /FlateDecode >> stream x313U0P0b TH1*2\Dr.'~PKW4K)YKE!2E@ď N0``$L0|  d@{CLA3JT?D @po\\\cg endstream endobj 1836 0 obj << /Length 143 /Filter /FlateDecode >> stream x313U0P0bcKKCB.c3 I$r9yr+q{E=}JJS ]  b<]@   Mf> stream xڍ1@?07pĨm@}` A+ RK E[(9cMKYؙސθ a»eZO8Q<6Ŝϧ˞bZOyrb_mXrDFPzP7RKz>\:X/DR5yu\_o:O䋪e]VVoil:诠%r` endstream endobj 1838 0 obj << /Length 120 /Filter /FlateDecode >> stream x313U0P0bCKCB.cK I$r9yr+[r{E=}JJS ]*c<]1?,5c'm7.WO@.sP endstream endobj 1839 0 obj << /Length 108 /Filter /FlateDecode >> stream x313U0P0bcsKCB.crAɹ\N\ \@Q.}O_T.}gC.}hCX.O +^.WO@.T endstream endobj 1840 0 obj << /Length 208 /Filter /FlateDecode >> stream xEϱ 0Д[ L[bA+AAAѵ*~B] #w wAb1#8A?؅|;$~rNY/d9d-Ƴm|\PB cO"S3ѽ J` qá'^۴X~܌.`fWv7붹YnGNHto%HX` >sV endstream endobj 1841 0 obj << /Length 123 /Filter /FlateDecode >> stream x313U0P0bcKKCB.c3 I$r9yr+q{E=}JJS ]  b<]?``!>@Y`1f oP"@?G%@b\=c endstream endobj 1842 0 obj << /Length 183 /Filter /FlateDecode >> stream x313U0P0bCKCB.cK I$r9yr+[r{E=}JJS ]*c<]0A`H0T#~?#f|FǛa{ F Pa"!>qzrrf endstream endobj 1843 0 obj << /Length 183 /Filter /FlateDecode >> stream x313U0P0b TH1*26\Dr.'~9PKW4K)YKE!P E0!?@1? PhD8&`8&>~5 r BN@`B0g?0%01pzrri endstream endobj 1844 0 obj << /Length 166 /Filter /FlateDecode >> stream xŏ1 @E? -n!he!Vjihkr"l\@L^aRНGͥ>Uԁ%gR~Jڭ85 t|p""Z4=E*&${(ԛiiO?Ih endstream endobj 1845 0 obj << /Length 171 /Filter /FlateDecode >> stream x313U0P0bcKKCB.cs I$r9yr+s{E=}JJS ]*c<]?$~0L40`H? `?#.,Ey@vlc r3-@Y*`$.'W :r endstream endobj 1846 0 obj << /Length 206 /Filter /FlateDecode >> stream xڽ=n1ois5D% R@"U(U2ZG[<̚q$l7; '\ֲ_K[rN_K?-**>9*jᏊfz_#`DN4EZx2J=#JΊi:ǬA D3c77E-U^-W;+wV]Izu endstream endobj 1847 0 obj << /Length 189 /Filter /FlateDecode >> stream xڍϱ 0+Cz/i$I]mбCIIAp?SYF)IJRsR :KJ_INW =ڏQ = |$􈦠uιJZDсʓ"za-/l掘zN2J҂$٤Q+;|w# endstream endobj 1848 0 obj << /Length 230 /Filter /FlateDecode >> stream xmJ@?K^@ȼ@m҅Z=yOGܰ+~|f aHDf住]`q@b "\r sh:֙Q3DDGMɰCۖw{#C+=larUPz|pnunat#} l endstream endobj 1849 0 obj << /Length 125 /Filter /FlateDecode >> stream x313U0P0b TH1*26\Dr.'~9PKW4K)YKE!P E4FD @aΫqzrr j endstream endobj 1850 0 obj << /Length 166 /Filter /FlateDecode >> stream x1 @, f5)1[ZYUPN)-BƉ"dN<$8҅t%8SdܚoLY%rt s)U*[;K_v[@mZ"*UF* HҩZіE}, endstream endobj 1851 0 obj << /Length 180 /Filter /FlateDecode >> stream xm1@!$p@AEVJ--4J Āϟ 泐<4~KxD ۑ![X8#K6 Rs(R%2@IwN nIik^lDאXelGU=©JCc  Rߕ-c endstream endobj 1852 0 obj << /Length 196 /Filter /FlateDecode >> stream x313U0P0T5T0"KCB.cK)T&9ɓK?\ؒK(̥PRTʥ`ȥm`PA XL6PD#߳70?|}? qF> stream xE=n@4{ P*K@@QA9WM(]vزiߛO_^e"S9ޛsyL鋗%l>)7r~YnWY!ɑ˵^ڤUS">#:X n@v@=R?@cƾq6=F h2qNGP> stream xڭ1 @R l+A#BBBYz%o,S,Yg`og,;iq̉Ts獦=u3c׺zGÂԂ)-lĚTK񊊜Kz_,0D/=5j4 hgDk=;zx.@Z|/_iY۶/.qAsz` endstream endobj 1855 0 obj << /Length 189 /Filter /FlateDecode >> stream xm= P   |ZN⤎GQ7ء7 鼠r})ebVJkUfGYf%h5o3jMM65yB"f)=:! `#xQVY_d6[dR9@xj%vр] endstream endobj 1856 0 obj << /Length 192 /Filter /FlateDecode >> stream xڕ @ /8Y| *P+x8sh(}Qq9. 'tAqJ.1N|ERo6[z>^WnE꜎'49Rh|"+`f.,pTjRA5tj,|9ߐM ye!nbY6p YVsT endstream endobj 1857 0 obj << /Length 174 /Filter /FlateDecode >> stream x}10 E:D O@چJ"" &T@!zC &7|ϲiN LA&Cg4$ȰOX:[2LQ]/#r=uE=@bC㇑ /ฃ{Ba_X?'Xɳ(>=7Ho/p7cB endstream endobj 1858 0 obj << /Length 198 /Filter /FlateDecode >> stream xڍ;0 `WE)H01 &`dp43Dv|~o@9r>U#xr(u~8Ѭ+zAfPfJ-SX@?SA$F=eD`pJ-ߴ)4 dѧ1:Dvw^g5؈^ endstream endobj 1859 0 obj << /Length 192 /Filter /FlateDecode >> stream xm1 @EvN&nv` A+ RK EdQ@Ъ(>楈[4~> stream x313U0P0bc3KCB.cc I$r9yr+s{E=}JJS ]  b<]000300 "@> stream x}J1g"0M!BR++wG2GHB` X3zuSC+:ihRʴYq7nR+zy~}D>-5w8 lC9W+> stream xڽα 1 s#4O`Q;:9::(:vrU<. | ?DZu3h" JrZ\p ,zArZOv`*me}gO~T4A۱OKvZlK?-5;K riO9 at endstream endobj 1863 0 obj << /Length 134 /Filter /FlateDecode >> stream x313U0P0bcsSCB.c4H$r9yr+p{E=}JJS ]  b<]00?@ 1`Cpl ?pzrruK endstream endobj 1864 0 obj << /Length 159 /Filter /FlateDecode >> stream x313U0P0Q5P06P05PH1*2(Y@s<L=\ %E\N \. ц \. r @\߀Ab 9܀`0cP?`?'W Kv endstream endobj 1865 0 obj << /Length 198 /Filter /FlateDecode >> stream xڕ= @ )x \H +P5W(z SoD--cOm^q:[jKYNzν)|‡qC:8"=&*PXx&]~ZWqE  xi 9cDpu7{r,aYEj4\Fflwk endstream endobj 1866 0 obj << /Length 111 /Filter /FlateDecode >> stream x313U0Pac KCB.c# I$r9yr+q{E=}JJS ]  b<]`1@|.WO@.!T endstream endobj 1867 0 obj << /Length 150 /Filter /FlateDecode >> stream x313U0C#cSCB.C1D*9ɓK?\ĐK(ʥPRTʥuQjtQg?  HL$?Ng vt&I8'W km endstream endobj 1868 0 obj << /Length 157 /Filter /FlateDecode >> stream x313U0C#cSCB.C1D*9ɓK?\ĐK(ʥPRTʥuQjtQ G?$Hy H2`~d@$ r gD endstream endobj 1869 0 obj << /Length 183 /Filter /FlateDecode >> stream xڍ1 @EL#dN&nv 1[ZYZZ(=ZRYw70af_qZ.Y|NR9?oTimI-?+jDǜwZ>|f=6 F(3q ނd%d$]"K<)5 hK endstream endobj 1870 0 obj << /Length 197 /Filter /FlateDecode >> stream xڥ @ s8Y|zgNB`A'qRGEQZӣ>H.ϦR0& %;O#?oddbζ|݊B)C NdqֱqFjaXN9P4 k=v>o&% r[J,SeW  endstream endobj 1871 0 obj << /Length 199 /Filter /FlateDecode >> stream xڥ1 @EgL70sMTVb(!E8Y+A?,!ElLhQmZ0+,&h&)t> stream xڭ-@!&s lXRVB ,kQf 1{Oƅcr|欌cʰHVZĕYr;V3ѬjjIwlj-8< @CHD^CO\x|/VM3 endstream endobj 1873 0 obj << /Length 182 /Filter /FlateDecode >> stream xM= @R +T,xeK 62|ś70AU1bǜTd܍Ʈ8iZrYLq"3]8'3]ٞ9v6q=RMH\@@)HD>Hj?J~^{E( hC_^x endstream endobj 1874 0 obj << /Length 151 /Filter /FlateDecode >> stream x313U0P0bc3SCB.cc I$r9yr+s{E=}JJS ]  b<]? DH2D7` @A~3000rk'W ѭ; endstream endobj 1875 0 obj << /Length 148 /Filter /FlateDecode >> stream x313U0C#cSCB.C1D*9ɓK?\ĐK(ʥPRTʥuQjtQ IB2`PRL? 1]=l`fՓ+ r` endstream endobj 1876 0 obj << /Length 179 /Filter /FlateDecode >> stream x313U0P0bcSCB.cs I$r9yr+s{E=}JJS ]  b<]1?,PJ`!C P B35B{a `D?o@&3 PFe \=I endstream endobj 1877 0 obj << /Length 180 /Filter /FlateDecode >> stream x313U0P0bCcSCB.cK I$r9yr+[r{E=}JJS ]*c<]1?,L``?`~DC F <Q>= $7#c?` endstream endobj 1878 0 obj << /Length 199 /Filter /FlateDecode >> stream x5= @'X&GȜ/L!he!Vjih'J$9–[ {ov%"Jf9caZwNW[{J kNQzܟvI1ʆ1EGl0cg(\iOLxRU@00-*nжTQ\a(}aah\w?JS endstream endobj 1879 0 obj << /Length 216 /Filter /FlateDecode >> stream xMͽ P#Yzu5$z^7!czݎG6ug=>6ynQZpZ룚p*pڢ̆!{шS-U b7ˀ? -ѸX `̜Z@E-d%FNZb2MXLbCPօ%8p_\ endstream endobj 1880 0 obj << /Length 171 /Filter /FlateDecode >> stream xڍα 0O '0iA( ftr'utPtmhyAwCppd\qNߔ]ǂ.JspƓݲ+.eK֯v69d[ɷ\B/?>H: >3d/)=$u2(2(, Lf0(ĤD /ȅ\ endstream endobj 1881 0 obj << /Length 200 /Filter /FlateDecode >> stream xڝ1 @E'L#d.q2#X-GRYǬ34$)QHjJcT*3ŖB5 ~BsFuFaScL nT,Un ~4AE[̀_< x-إ11}!+ol˾9.4n\ endstream endobj 1882 0 obj << /Length 140 /Filter /FlateDecode >> stream x313U0Pbc3SCB.#s I$r9yr+s{E=}JJS ]  b<] X큸7001;d#3@`r nE endstream endobj 1883 0 obj << /Length 212 /Filter /FlateDecode >> stream x}n0(C['IMnHdD';ѭ"~4G`drC.=U\\WxcI_օvq%ȯ5%߾A,$]Ş%$" ]s@}M{1.]NQ&1` Ht҇"3w3jic6E5\TN_V-/]^ endstream endobj 1884 0 obj << /Length 224 /Filter /FlateDecode >> stream xM1P )Ӽ#d.&1*`,ʵP(9–!?OV|>ȼ?TreOH7#VLȞ/*N֒,Pd|eIj.z"@P";QO [Fk6n/;C2ŘYKdͤ><ĸ;S7eиGS kߗ?N`B endstream endobj 1885 0 obj << /Length 181 /Filter /FlateDecode >> stream xڍ @]<s'hWM< f:uNձCQW777a3굁5c]Gʿȇ2jQjF-(3-&qހQB5"߄OAx(zZB6&ݙ+3Lt45 OUBw05/rY endstream endobj 1886 0 obj << /Length 204 /Filter /FlateDecode >> stream xڥ1N@ E?J90 HPEZH-A܀#)SfJKK,}Ϯ/.泊%W\ 9'aͮ󴡅'{Α5+?T\>HiI)CO  Q1̅,\z[A_"FI@;䢟̌BOARTЍ\l endstream endobj 1887 0 obj << /Length 231 /Filter /FlateDecode >> stream xmn@ (C$/y% G$D H01 cI-GȐAKO:|6-99\UБbe|вlQeʪ5Ooʖ7V 42^ HAxD0i<;t`+CDdL^J)ZMOPo M194#r#3ZR͏+ g endstream endobj 1888 0 obj << /Length 184 /Filter /FlateDecode >> stream x313U0P0V5T0T05PH1*2 (Bds<M=\ %E\N @BA,B *q}g*4H?> stream xuO1n@Dq6<@SB"D EJa]Hd{%ʼnr:iN7;;3{z8 .\7+sU鋚O.+ޔ{BYnPp~eD&":IhAj!HGHz/b"ؙ9؇ NCкVAу݄E%z]Z xq[w5赣=k endstream endobj 1890 0 obj << /Length 240 /Filter /FlateDecode >> stream xm=N0'JMwHB6VXZHPQbɻ WMR${oN)e#'[iJy5Rkv+]qE=bws!徒ڽ 0Sf2'1tFdA> /FirstChar 19 /LastChar 126 /Widths 1891 0 R /Encoding 1892 0 R /CharProcs 1893 0 R >> endobj 1891 0 obj [42.5 42.5 42.5 0 0 0 0 0 0 0 0 0 0 0 42.5 42.5 42.5 0 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 0 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 0 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 0 42.5 42.5 42.5 0 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 ] endobj 1892 0 obj << /Type /Encoding /Differences [19/a19/a20/a21 22/.notdef 33/a33/a34/a35 36/.notdef 37/a37/a38/a39/a40/a41/a42/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59/a60/a61/a62 63/.notdef 64/a64/a65/a66/a67/a68/a69/a70/a71/a72/a73 74/.notdef 75/a75/a76/a77/a78/a79/a80/a81/a82/a83/a84/a85/a86/a87/a88/a89 90/.notdef 91/a91/a92/a93 94/.notdef 95/a95/a96/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122/a123/a124/a125/a126] >> endobj 1893 0 obj << /a19 1811 0 R /a20 1812 0 R /a21 1825 0 R /a33 1813 0 R /a34 1826 0 R /a35 1827 0 R /a37 1828 0 R /a38 1830 0 R /a39 1814 0 R /a40 1800 0 R /a41 1801 0 R /a42 1815 0 R /a43 1816 0 R /a44 1817 0 R /a45 1824 0 R /a46 1818 0 R /a47 1819 0 R /a48 1881 0 R /a49 1882 0 R /a50 1883 0 R /a51 1884 0 R /a52 1885 0 R /a53 1886 0 R /a54 1887 0 R /a55 1888 0 R /a56 1889 0 R /a57 1890 0 R /a58 1820 0 R /a59 1821 0 R /a60 1802 0 R /a61 1822 0 R /a62 1804 0 R /a64 1829 0 R /a65 1831 0 R /a66 1832 0 R /a67 1833 0 R /a68 1834 0 R /a69 1835 0 R /a70 1836 0 R /a71 1837 0 R /a72 1838 0 R /a73 1839 0 R /a75 1840 0 R /a76 1841 0 R /a77 1842 0 R /a78 1843 0 R /a79 1844 0 R /a80 1845 0 R /a81 1846 0 R /a82 1847 0 R /a83 1848 0 R /a84 1849 0 R /a85 1850 0 R /a86 1851 0 R /a87 1852 0 R /a88 1853 0 R /a89 1854 0 R /a91 1805 0 R /a92 1807 0 R /a93 1806 0 R /a95 1810 0 R /a96 1823 0 R /a97 1855 0 R /a98 1856 0 R /a99 1857 0 R /a100 1858 0 R /a101 1859 0 R /a102 1860 0 R /a103 1861 0 R /a104 1862 0 R /a105 1863 0 R /a106 1864 0 R /a107 1865 0 R /a108 1866 0 R /a109 1867 0 R /a110 1868 0 R /a111 1869 0 R /a112 1870 0 R /a113 1871 0 R /a114 1872 0 R /a115 1873 0 R /a116 1874 0 R /a117 1875 0 R /a118 1876 0 R /a119 1877 0 R /a120 1878 0 R /a121 1879 0 R /a122 1880 0 R /a123 1808 0 R /a124 1803 0 R /a125 1809 0 R /a126 1799 0 R >> endobj 1894 0 obj [258 479 479 480 479 479 480 479 480 479 479 479 258 258 996 812 996 369 816 756 608 738 793 627 590 793 848 332 369 719 608 903 848 848 590 848 701 479 682 812 719 977 756 719 664 295 480 295 0 498 276 424 535 424 516 424 314 461 553 276 258 553 276 830 553 535 535 516 387 351 332 535 498 756 498] endobj 1895 0 obj [593 0 0 0 295 0 498 0 498 498 0 498 0 0 0 0 0 0 0 0 276 276 406 498 498 830 848 258 313 313 498 830 276 276 276 498 498 498 498 498 498 498 498 498 498 498 276 276 996 830 996 387 830 756 664 756 830 627 627 812 885 387 369 738 608 940 848 867 627 867 738 535 664 811 738 996 756 701 664 313 498 313 0 498 258 461 553 424 553 442 351 535 590 295 276 553 295 867 590 535 553 553 424 369 369 590 535 756 535 516 479 498 498 498 0 0 608 258 258 498 461 830 498 498 498 1143 535 314 1069 664 498 833 295 0 0 461 461 498 498] endobj 1896 0 obj [556 0 0 0 556 0 0 0 276 0 479 0 479 479 0 479 0 0 0 0 0 0 0 0 258 258 424 479 479 811 830 276 295 295 479 812 258 258 258 479 479 480 479 479 480 479 480 479 479 479 258 258 996 812 996 369 816 756 608 738 793 627 590 793 848 332 369 719 608 903 848 848 590 848 701 479 682 812 719 977 756 719 664 295 480 295 0 498 276 424 535 424 516 424 314 461 553 276 258 553 276 830 553 535 535 516 387 351 332 535 498 756 498 535 461 442 498 442 0 0 608 276 276 479 424 812 479 480 479 1162 479 276 1033 664 498 815 276 0 0 424 424 498 479 812 480 608 351 276 756 461 996 719 0 258 480 480 479 479 498 479 479 498 479 424 811 0 498 479 479 812 332 332 479 553 479 258 479 332 479 424 811 812 812 369 756 756 756 756 756 756 1069 738 627 627 627 627 332 332 332 332 793 848 848 848 848 848 848 811 848 812 812 812 812 719 590 553 424 424 424 424 424 424 645 424 424 424 424 424 276 276 276 276 535 553 535 535 535] endobj 1897 0 obj << /Length1 1650 /Length2 10768 /Length3 0 /Length 11826 /Filter /FlateDecode >> stream xڍP[-Kph\Cpwƃ;` nA,~923g潪{ӽ>ٴj,,  + @RYBΉBKeVq; Bʤn`' +'dg!"zZY `'+ $bkm_G#C@Ow;GPـ_3Z` [`qssdcd:!֢O[7Y P:ƊB вuK rB@Wfh+TAN+e 8V@N:-,@'o['k* :Yatp=@W?ȼS_bjG?¼YRrrsE~Rkݽn_lN. ym^E(Y<| eaG-ogПJ?į|W ?[++p|opmPU b0d?_'?[̦*oVJH>,<Nv/7q]Sv(dEz"d06Π~g?on^?]f(ɸ;8g::xm:n ~5`ɻ_7䝓ÿh*cTukՅN 5t;gaOu;|;z|8^lXn.Wr~+0収 ؀B6#9drrB'K?L^ejyl6l `s|M|M `s|%z zM'ZC Ο_'Y,́-BBnkߑx쌉L3,@c 2| ^\KZޒf_x9jn@hIVo}}4MԘiE9]}2)N=l3tm;?ZgW}_H܎n "cKvQP my,! ι4N B[X>qwW*8];h `pF&|$?*ǬE.&*QBBXD:pi:s=- :*:zz$0RYjRlRۀ'j2$=h˷߻;O;| 9bɯEp7۳y*JVPԋ*oF55\c| ^YoX`"|V{Q N>w$ 6]L` DnMq>s%,I qR?>J ;~owLI:'1~R.~s}҈E5`:1J*)h4G| MؽH*1Äm80ǝp=4fMI؟B73S (`b9Σz1D@c贓[by"D&KFZ!Sd}U,PgII$t&۳Bw;RҹKN0;`*=ݡ7YjwܚXI}Wtf |ASU`':G*{>'&JUSMvqSir'ҁUF]Bw#LafԌ$_P/%跃v1bS|g 2Y dYnj-H8M>Dp(+8l0nHѺ h?1n͐D`Msd7eR D 1%x§B垻U6k-ġr煹}Lm*jJePu[ nkx+lӓ4IT\fMm ւJ:R*"#:c}͕n^"'vspG_Glix iKoQW=f@czP,'4b}E_RL7[zΙ-Ce}Y3[ L=PR\}:s ٵɁD}# C}\I H x( ~.s>[y8ccʡȷt,={Qt2?=A|yRKxꃙk0;ȎkcRb[.ަ$}};M}cC [n(跱@52d)(̈́ 5`rjF/C>Kw()`e)\I&"P)niBsӋ A[{Kזse/oֽpUsd-FR>%iq3qz@+,4ZACYWr,a(Ŗeq0Y6tnd8Y?k][k5Cl ʈ Ai:W+;4W?Kr/ %Z]:Zu+odS7.Hkdԫک[҅Z˶VwSPN~/ɋ߁XGbfex9ʮ%G'{2C$ʓ>=7;>T$>šbw5$lE/'>/yDNZ & ,JEXݣD}Kc&L*px`!ElTz*C*gZtS{s.x-W,Z:>m5ȷrg & \M8G_a7͢". Lzvɵ28+$];J$ C9O2WlE\X8R9_C̍/To>uP2nߝB:&L;^W J"Fõwy=_s''2j7T,ıEq[Ofop\dvg" X2טL~ޱfVt+=ook$ED02U@*ZkmVc(!ѾʬD;MmADSKR`]u_дv<[i q?G#5_$݇'~@nN[.SҒiuD}.k]fp^7w| )(al4g|W%4L35u!<&HAZ]X}]%g@뚞L|ޚZ`pn.ht3 vqYH 6옔J |C*j*©0l05c,:,3@gl.$ m="dyO2ٳ1-WЩWܫNp=Out HI%B&a$ĊpW/0\CY|:T{ |uLɶއYQ޴ICv0Iټ9E i~£Â`# AnTwtW[*ƒ0dIIfm$OvT!o+cy> ˇxexYG^/yPKC}$>*b{9 `޷iAxWѳn ||FIr5um)?Lfћ28RtJ#ϬCyIu͝4!>m{!-%4 S7"?d@H9 Q*=e3wul nwc{XlWqal/)ЕЮy3;"6ZOeIwQG%-﨣.c$(paBQUltjN-Ɗ[㚳,nRyɓT= ;ƺ fKx-kO [j/ i)v.{'AXx;b5?g%7<ފJ)JYE))C=B} ft.7Pae Wݰj|I?56YhoTiim@30R|}V4\mͪWK9+D3>f]'jR%糃 |xzZL2hqU8%Zo_nflgN=(!֕wHC wAdnBdl2+:AsgFlǁK zUbIӞ Y9d/* 4ffrY"o.=?WtI+ t8~<$`@`(cAǣB ^&S!*!#v|ŇYSIӈ)C-: %śDjyjpchеeˎpU\x(.?AYzà(?K436(Rr ~sӕ6Ja%7bA*y.KswnkTT|ׄ_#ɚ-嬷tP&lgh7bhpKOFy=Z`)8V# ,Y:t5KY4dqҭ٠t}jlw#]cH,[EA5bײ7֪b!3~B7GSZ1mpҢ-pe3\OfGg)zs/l)c\ݣ',D _.BRGtt-Wx0'헏؏&oQ5[Zm4WcˉR7\Ij}}ϳ3hu%e7eȨe`<Ţfs*@ݽ"ru\7JKa7T?coQ> Nt qQ#{ eM~ B\&0c`K+*w]IutTɕ5ϭML>T޾+뛄oe1M\Z,}N(qD5nTv*|IC`ck\T28<[ШZ*han<{/U|.t_43ߘ􍆟~`q[dɰ;kԨVd<\{ 4cS| a԰W'Ide1aXq'Ѐe۰2 [=:b+>V?5 vIStlUo'twn,Eo9%z1dt}RΦX?ЮPa@'0P?Arc#>Y*'cJn?]lRpNP9!AKnFn(O>< q\vZ`as [A E5CltT/ "fW-*d>(CĵSc#(hc@CZfrV/s9u*2_u,T*(n_BK;pKaBpW}osr|?^?1ن9n!اSˮb2 @gu> h9?X}')n5G$ mTИCx2tvϩ4}.G"d+| ]RҤ^LI Ԧ{ipp~ZeDIS*!$HR^e}9}=s,f甒۩Wiwe2}HErɍ.ǡ&l3~n=10)'K;Gn\.grw'Ҿb_?"jmI(KtCd܈FyP[j$(J<[C;SX|z>/VoD }#<8h'eX3vԮ]?#?UIX=m\CKUj$!c F?$`0s u!l=8jϫ٤;BM^H`}-ALv8:IŐ dOۣ7;MѪZ]E' gZfn).M_aq#^'#uA_꼻0Y)sH@ة=h pGRU)b4l_I !/ ͈OJYS.pο U;q.ig;X+Z@ j.OZXm&(nSD\@o@$G_CcM3[ob(&t V]wN4b(Qte$eMt PLnhy+EJ4HrOZ!ΰ.SGz#GH`Cz!ڻ놄0|VjVߟ,?8ͥr*Xi]+'ց2:ǧbJ  >dcBN+UYzO?6.] (-߾"t8 -vg30yYVtb{بHz3k#k +܃5,o %NrÉ'Uoƣ̃Nv] (PEKƲ"1L_'ͺPcՓl-ѝpb#eXn] \B$D~( wt Aaz!Ҹ"=Xc.c_nZ%oN0jS|)svNVAG}+[&Xz&B^֬~*!n!%e<`&p:Ւu߭9%J-H0aʧT[\n Wh}kcbweԈj<Ɇ)S~.Uc2YȬd9u[LԼVحnQtwjC8zV@agAiG<~+D)h[ ? `ϓi(#2qĠB *^*uKpL_VtIޟ/^uĸ"xr#~q]%J[]+*&ѥ`ru"կ#YY )b m!@*I﹫/3.]۵uR;T< !aM=ILa0\Q3N׃b~c뙉sAGsd\AhՇ#INX7ҦBQ8 7m Dh`Ku+TIc/@o 1u}M'?91-YO2h7G rs34};⧄YT˾OLsK~G]YrTdn;MJ"M_8 S &' Y٨#c^'Aq =}I 6v#F᠒enȎvcT>!E;WQq 7!a!;`.}-Jn+j2\0 Wy,&EK1a5Op4%engTvT8"q(nܼ`DpDĆŇY˄Dx,j3. IYHR90\fjdϽpVĘYMR냼>:#h˄LYq-V^`:IMY6 Ug#͖W 9>/QŌ>FzD<Ί܄vLxYGphdQ3\;/~{=Z? ) <ۓXuPi׭n.=↯!4{fW&Z?,䜁mH@>a[b;qptW? Ez䋫4-}ܾ80(d<^73TO+%*>`M:f-zGv+HNS +IOP+I "VpRѺَd(SJ5Ui1̞@fߙ*1;6ZމbaGRlrGp._UUA]@>,vy(bBI"uG DeyUъW-S7;V+` f3&F*ۘw9ș{a. ҍ)F_egѩB ץFK̷8[o-)$\6f$b7duA |+N>lt CemCNrJ`UsUk(iDW^0FѕE{uR=1Rv'15vnb#+ɰXɍ׍<5 *mGVES}\eBfCz]ݸ+8%)b6"LE_Ж#>H;9+`e vckҫ0i\P" ΂*f,U\}p!D.S4nw{Uě["af:cfbꋋ)lyX~̔"YioW:x͂ɱ|[A8izߣgNq9Q&znA/z^ߐus9p< JWaF7&Ia9hK(~B/q>"7rmI3btGK4Q Ŧ\^kO봎Q|#Tp$F pgcX6Bz+L닿&}"v[Ěm:`~=: K]g1)50RyK/*g8#Irc7]CG`w]'BW6R *  D@=>CO?;sE4ѝЉn\8߯sWu*0S pxAZbkb4l!vZ} >;H30j@`eaKYC~$$G hi@D,#41-3&ڤQ0e,wKm;:&}BwTB`KO}~ /$<@Z:fCR?@& /֚ъ8x&?JM>`Y)+c~uD,*5Op/?p'w+Q>%v6IRmSi)+JJJXcJ4f'B޾`9#JeOrO,bl$Y.֊ygEM8-+Vv%S0.s֦XGF^mE''xUjdB٣ˌj }̷GIT,f }lvCm]\MV 2ÒҲnFx endstream endobj 1506 0 obj /JOHVQQ+CMBX10 endobj 1477 0 obj << /Type /FontDescriptor /FontName /JOHVQQ+CMBX10 /Flags 4 /FontBBox [-56 -250 1164 750] /Ascent 750 /CapHeight 750 /Descent -250 /ItalicAngle 0 /StemV 114 /CharSet (/a/c/e/endash/g/h/i/l/m/n/o/p/r/s/t/u/v/y) /FontFile 1897 0 R >> endobj 1898 0 obj << /Length1 1923 /Length2 11591 /Length3 0 /Length 12785 /Filter /FlateDecode >> stream xڍP-'-h` ݃{ 8Ǒ{rjfսwPjٙlYYJ66NV66M5?vmV_ G0& r~!*]vv^66vI+ ;H{8B,,_#ޔg8@1@Ζ`MA ;SR Z:; nnn 'V;G afv;H(lKcEhZBrhؙ;5lbkvАS؃m"+E`9vVG" SS;{`TYݝ [? k'x+b 2y!Y: -([#ى bFi^YLlG}G˾{>\+[;7[ s2\Zߜo;?d`"1|x9\gG׿PfSg b;l~9G;@ly2|03;[k? /#'v/nN 7;<iUAwF9[s;_"^v?B\ dž+(۽3@ ظL_ϐ#"ik??~ oK?8̆˄/U@YO2!bl#I6S8ZD9[ ?3zT^Oe{I)[S;?frty477eH6jkx0sDDyx@?L"^6P7o*^T8?/@f MA6bp@?/1/X_Ub Tk/"_RR;b/ܗ/_~N-X;g_c;//E; M~2#/tvWJ!K?5e҇`;eiM1b7q%{ DbCX+[RWO^- ajmޏƟԧvP'& 꿐"hz?9xkX@w8aܺ˸)6:[ͣX6Q+ x&$ssz;{\Ϗ^zwsNDDzWأS^I ^%E1EF;0A\]Ke##?$0BcL6ić~XkdwbO?8u={FVf8 X9rY_ы t'-, |k{arG?=󙘐Eҿ|{$9 E2Df~(Kgp J]}YA"Fwh0 ;.fe=p# Ty5 _2MEF+xK@A ߫`/Mw=R۟SLR\Gx}J3Vb =!ڈȯlY:ousR/%hKT'T,+$7V57jΫֳ} rGX,4R-M`f+T˟Gmx{bHAi;v Re LBLS?I<(qlvR'ܮ/_]ed=œXXIR~q7')q+ $OxGdMPYַʨ|ZK/?AL6 q0lB2m{Mdn<ʱ6a51MU=hX*TZVO wEBRƺʷ)̸t۸q(bNt%j䯣;?c,&5T?.Y36ώ %id&NlVl}hU·UEvY*{0`Acc.8)"?3QLUc&:/rh3iD?Cx]כ@ɹ =RU,y&{]ξ$u=jA5.U17K.?;NOp`>fOϛDu[jҙGX}./~{Ou 䶀nce|O!s1k V ڲobSn,L\k-)BTU`QFvjg8!&azf1aIu1Gyk[1NE-2K*3v/gsJ2_wC-˿9g2A'''z!"‰ DPF8[ya UbBI~Gfv[Hi0tYNP8^˖/G?WYS ;1HưH<@`ޑQ:" MAmS*婧Fl8Ǧ|vMwEQ}\oxUI"PNDUөE]ҢY'%oB *^v* <;Y/d( gnu"n>rj;ӯ.-izթ/Sm}F9b(|4( 5y8b!P\T0W\ \+6hV4;][<4[dfY\jQ]p̮4{*:j# W~ ٍ WTclEQ+_KEPFGAc9+ΆWk TGC|$9i707]_^ tBScȠj,(xs\1 ʄ)ޫȕNBMh=nA#ayf85N7%jI'5ֆ /D䇀͵ϗUDOG?cu҈-[F&Y`޸ {}aC!yR6sc3\1.U5K'_KtF5}Ҕ]Un5v:Gm46OZ5%&-_͙)Wox=B#v,{4I$M$)9^dE`Z 2%=$Z'0k]q ˷):av)=wpTZ]q4C| j27͆B ݉[:SuGAJ}_nK|ZĄH4|;W2fb^a0{Ӵ se4I,uO5s. 8z1_k,`ϋ&GLDjG-n"ҳ42IA%ڳQ_-4 ҜDXمkyJ>J9%-}4vt1~"Flyb'myKn.uo#-[j65:ݔׯͪ&i+:](4 XG!y| %PgV(⌬%N<0[WhH~3L6IgpR=*pg|/:J!ry!E#Ae_ .!\zIP6;3PU, ZPiX`rk4uygCL#>0X)qM { loezzM.d~޶e|V4ܟQZTs99. 2?T8)7F\]rAQ ={eoȿKiɈ9Mrqld>v0~^gב|'Sh\v{䒵z_tE/1(iKjHOe yUFY _HcH5'}'`UcU}}7i \{6);:t,aAXu47]W,\Exyd?RhT|yEZҁiS9W|~MMI/B>.ϡeCdƖ{%[)s94uj-ʆ|i!%ϙ XĆe_E"NXU{Ev&y[4 pA[i|+ʘ.ƚiMhnje#b9﫻`yFJTTX3 ^*-+J?C!>)}w6\W[OWz^^.Y юF5!7h,}bMtfrCGǴ1fGH8A_6? gMn\%ɟ~͓No%Po$@|-2ΦSBKA͐]K"f7x~IIapQv  U,[9䚬*`MGy ˺[k:cY8$_A~8!Dd13Ѳ~>Rѝ]Kzl樂JY ͠mP`esPQe~z57{m=e䶣+=u|FA6,=2γ%{WS8kx+ %]hs9{Z^mܫ^16Dsʺ#"n{rwb1Lƻ)T2bΆkf l.y^l;:*Sn"@:|Kk9'vQs~}Vgh6SQΙ/z00x\~`xwZGfiP9[pJ bs:{?}V]Ԉj?򔦕+'\>i14I8kr aLS~Dy" {;zD[ԨH_/+BPQ`g,'wI7m;iP|WFS6]<@Tgj|wIEBõ{:S7#N6 R`+IgqHwAƬJLa~sږ}>$Ӱ OU;I9..LaU1#>'.J[q$%lb r71 s#+vzEoL/({u6]R'(JsLF<77Y_:)459<Y,pfY>T:l%nb>yș@ϤBʁZrppnɝɠhbdo?#G~%@rRW'4i:&1)TV* Ο4Ţ[(>U4AN7բ˔ 𽹳d?٘9UƠ}=E~VBWI-P[N)~6]N{MapxPM T-nE`߭,`xR9{.ׄ;$]J0Fŧ2O'к&u3$ n|O{E> t/=ȭ宀̮=M} 2Q a4sUd+ON;^eײ՟lζ)ܪxX$!D׽n++j&$@ӶN׍ёR)kkESq_|qʵl[0*rEDq'\!73V,ԅʒ/Y/ֺ=V9BIW)rǣkO7LBzl|8WmUkCh%[dzocwy\g.Di[ U"Y%!1r€cA ОZ/:? ZDggLŝHPѢMg9Q6FA)g\HT(0s1'PnfEVtEA>r8W֕F4:1v. t֎i<ڃPDҖQo _["p@e;`diMO]}FG5vauXg~82Ҙm6s-Q, y@ FwkqnbbMŎp0mIj1PÕΥIUUw(,ˇ- {jK]}Gdo7H>:[t+/mj.# xC!~,pU>µ="eBd]RD0'ҋ60[Asezi<:D*  *b7k› [*)'ҥu}c5 uNA =k7 a @n)?%7iš)p`,So+&h[S2EtLm}{{,Z-ݾ7Hf].Ҳ'XBbM^xˣ6VKf 6޺,好=Hj(],F@Hm >GLL=P}_ T?oZK8\N¶*ϖ|4;*IGIkmZ/J|[1A,xrU[?뙖x'OM\blw~aL7r ,s$T4cdbՊ)= v3l(Bi&)>)jgW۰IΑtM`!֢Q?۱{y3jaˍ'c#C_,!G0އ-[н#;p>'%dn;FEϔoo0T@|hݧsPذwݵȑUuiTks؈msjWc9Q<͗ÿüv}ѥv$&WUCt̼aIᙾ o>* b\[PzfUs{|쪸2:`8?gxL|u>gpCxWC7k욗:<$P$4!z?y]Z{4kasSym 1Mkվp&:Iz- L$JW4ήl>A0uK-1G ,iE MVrK߸976LLpo9(<*]|g!^9&Wb0xJda}!N#2߳˭Ma U-03^i$/v&[1l]fJ++cHP_n?2}Ąʭ[Zq x@,:^cuLmot+29P馟P=-&o( em "ecd9gxOlS czJI5刻z>YW!5l +z΂sA pyPK:Vn3l ]s`rZ'9*jv}T,{Ouwl(Q]\Lb&[Y1!/M-%Hmm۠_/?ee1< q]%p!<H]X@ݨZɒF9ϔ6:qz#w})\( k"%힪vHr/1oofQl3fϣyC#W՚LvR?jT{j[jGlîԿGN}1)fwΝٱhn\@{ٵ}=QוhcL1g}J YDBf?L'(d\qY䁒Ȭ$G!s鎱ɭ5f,Jo c ysBUEף#y?z"ZQ7`z텁aS֖ltFY A)" &L?rl)UZ~j qjo9/Cpq GUU8>pI-o2\,t_-i"[RY,:y{B9iI%Y&ir}ΰ͛^f35,AFBl Ɂd]q>./r OȚ bS[j.Dw胚>!IK` h#/kX&3y_YdP~aZzOHfY#,(s=u"ːBřFq-s!h^EmͶہPki N &E}H俷0i.s1~{̲j/tڀ>A\ HR02M hJVR9"Wer %nwz OI U@<}r_c$h}0rv}Fi">ՐaLiEe r g?ˋÜ5=!7Ao%?;AP}o1y;ORê,Ujc(-Y"OD4OOG?z&.ZQj#baSm&zִ~Ewnӹ$$)@E4 @-DL.ŁV& #*R eVeͶiYt(YRBKcUˁn.d}k.<ēEA4%{DKL%-8Zx~a'iH8pܿ!eґB8N)zC[QMWtHUhyha5$ڏ-Ar<4pqflh0x4lJ[d'Z[/ Qch$@[hC{כ12nE4 T!q"~\)L )Y~C)y`ðWVʹኯ4S4ʹί\A4h3y1iOʿ\#v9 E"jm8*ݦ5:.I P6#QSi(^}:ֽJV}]d&}H+㗷`O|wh緵# 8qs>[ɫ} 4cF1'%H>s4Zj}̊<{I-5ڜ^8L n{ȟy!ӽҢ6j,kuvN8 ͏ MIf~VZ&v?Գ@IXRL~5klFJ<,¶nC)PįѢxyf<D:liG]8L5Їm!e#&RoWJH<`;퍷6^2[ AMl-a|#^q=0BCyѴґ) x *@C[1^E%E$nR|_ޗ5 /2%GF]f lTb7zۉGZGV%>5rK_]td;^PY?݀R͑ZⴼB&88hMg%FvdS1%2JdӦ$q~wMOi%MurF(7igc@zs@=nWcL xFdPG/_iya>܊nv SL+r`-T%)4ފ<.MXK3B&O9 )3DהqeEOAt\w0[ۘPs߈WCg…z켗9f_:%]b !v6M1~dϨ7!Z2eMRtE6(;e1\2Z ěT֎'8у ^\EhEED߳Dϯ67mNd%\h`h3. 8f= A!aZ^F]c2=AZ3z&DM nUf>zWei87:*2tPLrYD[ I橂8emh0RG0`f,aNVDIR]Б,NHFJ8() mZD%rnEHH` xT-.XfF}!g+"toȔAho~HTV3?|DCr)F"c-1Q,mޘa@޶rd}MOKJ &O>,U¶^@Rc~Ώlgt[fCtQg@7lX$OjKR~N%NY8o< Va-@)mk:!Jf5h%`BFZBaUtշ_7Ю:_/7!ځ=J-Nx1 kcr_:2+dPwyVXlIؔDz;ÑH]f endstream endobj 1514 0 obj /RKJGIH+CMBX12 endobj 1489 0 obj << /Type /FontDescriptor /FontName /RKJGIH+CMBX12 /Flags 4 /FontBBox [-53 -251 1139 750] /Ascent 750 /CapHeight 750 /Descent -251 /ItalicAngle 0 /StemV 109 /CharSet (/B/F/J/L/N/P/T/a/c/d/e/exclam/f/four/g/h/hyphen/i/k/l/m/n/o/one/p/period/quotedblright/r/s/t/three/two/u/v/y) /FontFile 1898 0 R >> endobj 1899 0 obj << /Length1 1506 /Length2 6290 /Length3 0 /Length 7292 /Filter /FlateDecode >> stream xڍuT[6 *0H!Hw0 0 CHJ (H ()!HH R"sZ߷y}ݱ}_N6ce'#DC e@a ' c'4 |px" $ƦBbu0( J%e"u 0 *+uqEbpy@iiI_eO  +S P2_)\H/!!???A "]Fq yB~S$B}H?<` s c-_߇ N;g"(W0 {z`P k"#@P#A eC7?0z(3 aNpOO CsjP9u`?+g(' '_/!Sc"AąE$%$o*IipF{`3"AP F' pG FOv`- 0'8#_-ҶPѷPMoPE@ D%@1q1 ߉>?Y @Z0g8@/[ܿ zp!o#,. S+'YW4|=<~9?8#h_$f8t9䯉օ8A}=B0C s >P vKGIA >Пw@(,_f{ӭ_3U.Ý~@H0Ǭh fN ^0 Sq)#x@ȟ/;FA=1WS]D #~%F~o_4fI וC$Spl۳ou7Fsggm)3xj">"N3)WԹ>@o77ƾz`rtah|dfm>f&JA?q;9}( |W1&fjpV.E;$D bIFv3/ԅoX$D&LD|:n1Y12SVfF?)[,`KvT>1 Gq_GkTU2vT#oD%_ oW:%ś"K XL!jWP2Q/^涯^*6tuM)GRKBC_݊G{^2 _^٘o.L/hԪ͕>NDL/+=g=ҢMA(Ex}ϢV r8 |yȣcP[#Bұ~6 f?fdݝg͢uFCgBV*km@˜Z 5Ky¾ٓ|IZ 4o_buSV : <.V֣[|Bn#Rs{ ۮI>|E,\2h6y߬dZٗ"-趼$N8\ŋحR й]e̷?NȾ>0LM`{ EUYWI2MPbiSօN%|nVqI7bx' ciEn?wb_|XѢp}ִѳq:3~\0K [&]fs@% לwoۢcګ¶<6J9^gt.{6Qu辵гzs<}cRJu-n4]k^n8?n1.'EPNtX?UT9`8C êM\LT\f_EӖWFS]p껿1pL9:u:ucS'cG|)¯-6ALyZ ֲ˷Z^mtf oCH0֧8&G2~x:BYwI_6WRnYM{w!5~W`ҡ=?"lDZZL4F }Yp4zOtond2^tJ* C 뺍j>kTC^Db!E18Ƨ-E3/XUq/ x4lMΓ&UEh!J%ak%H 'Yթ‹G pS!9+~cccADh᡽~I;&'ݻlu>[rCD-w\{GYdH>|̑ {[u{K [-RX}gwUfBZšy.y.;_BCH|(~TŞ%% !gWp,.'k—-"p[ռ۪>y~Kƙ҂Jk~8<Iػq~Wp|E˞7˶A(1LNsNi7rT:45 $Fg ZۭK\U3=pxF_hQ@&£}P!>},׃{ΕJ˹9OUV?jHTF _bǢ9mya[P/[EbUEj%> 3Aǎ ̞Yxƴ ,:ۡҖָȠZ Hԁ#QO3=)U\}T8nUR@ӄi++g!1h/l%rVXdA《MK!Cݏ8Uِ@ql3STv-pF\EDܺr6J}0xi )k#Ęv}+sa&au$1@/ (ʚ6|xa\)7j )}KK R(yfd`aDȽqKtkq5OeϤMyXkd1ݣ|}z|'L&яW_5cbC[aW{-؟PE|k. Ҭ[1[;T3!}DaC 9e=7 f1\H="y+'u{H`xy(#6*zlDbt$}J2 u0#z1VBjg#&!)&DE:]YS5оR7[l ^wA:Z݈Bh\԰Ȱ›3_ ﮷;1ęeO)6GSnqIzg3#wiFΩ;M65WP:vSӬaY/ֆFפgnc9ǜuf ~L1} 4hQᔭqSJ2N%(b+`_kI䫫}jwL+H^41E4ŧ|6 ^VR/:z5W=կ\t q6=񾾫z$5o^"fn8> w\q₽+vf2NRGѨMWx d'J@#W}7oDg6#*`?@|!7%;ӊ} D!^o#n^X}L'X:f ,"7°:jۦG2Z5"sI(Ɏϯ;gHX]oPʀfs/;'f4taSDEbpL"JΠvJ V6+13&]~ !l f;̂#N2EH=H<5,F4#Sa=}"W,Q fT[8|Y!yS_,%#FN Dy4ohRmoASM1;#3aSA۔;@`c|ɫ!U "ӌ;XE.i9d[Ο5"ww{QȴHI,9_jg@M}/Je@]R =33GKcpT}A|ViJ:Q'ξe!,=>c<[F"˽ 5"N^F2^8+n\|mƒQUl\]g;NI (5pMfЛҼq{V`4I(zbpft}˥B7|P;`BUKiey}%gAf2~r]l:mXqagO4]B])mq>:Fa=<Ɓc"g)#WEZ|P*|s"@:5Oq :[=LBk91Z?m;x>Z8~aVMLWl)?})o"κb\ݜܔ|^uCrX{-yX ~i?LiUo~p KЏ9j+ x)>`d$@%1haY@(uPSe5"EUMM#8a pX}GL)\z 6Uʉ>B.Ж5e܎q7Q67/etV04MW?tp_Lu]l.>2:1-Ⓩ _X>6N~^,dnABQcۅ~JYg+(}mKJ?w _;$C捳J:阪56LND<S5Ejҹw ~ëJ袪bK`V8J)Oh> ({$ xY>32CoQɮԑ!f(rOʎ.iꮠYϽ>SԜ ʵA(\:Plv$c!nX9RvvbڳPk֑>R*)8ʷ*>=;"!{oμRۛO =a UTvz4P{/$ͨGN7$͑kIG'Aj9߅@C|*sIlWB^ȸϏm HmCDЃ@ Nb ;6:Z1{;p[[zB) .:< \XkmT [fBJ! Tp8C؆8.c|%frX6i r`z+1,xxafeLQp`5zzK̖j3Fķw?"?\(YMXh#Umf(vQRURKW7\MQ<Ż>/3=U=*{ckՇ:@e Grk0cP, \eEF_݆Ԫd\lymO%֓Es/j4Bͮ:?m.O7(d~xBe)(`Üp U,!QeRsQ"ߏ_0-å2:rLCfsw_쇌/٩ZHYC[W(Js^2}Aq3pgb4R2)W8-}'qk(k\->yiei@>]v)8?`\S`$; <;Ja,Ar&&OGbW#{wko3f2g*)i6Wo?η}c%렙4>n||7A7Q ԋ9VW] v$)hwVI ؐ~/OTG^[vAjLE/ H]:h\'oz|~}789BG&X[v3Yzfd~s7nÉATt6-Vg7єFf5g`\"Q~oF(W,NP) GkDߏp$6lG|CDR|ҸЉ/yzIaNߧq#mPY jL}lK8;O;& ۅj" 6r#_ݺԳ0%y{"Ak;Q, OrFW˾%g=2LS.ZW3T#p endstream endobj 1590 0 obj /JXBOXB+CMEX10 endobj 1583 0 obj << /Type /FontDescriptor /FontName /JXBOXB+CMEX10 /Flags 4 /FontBBox [-24 -2960 1454 772] /Ascent 772 /CapHeight 772 /Descent -2960 /ItalicAngle 0 /StemV 47 /CharSet (/braceleftbt/braceleftmid/bracelefttp/floorleftbigg/floorrightbigg) /FontFile 1899 0 R >> endobj 1900 0 obj << /Length1 1686 /Length2 9138 /Length3 0 /Length 10232 /Filter /FlateDecode >> stream xڍT.Lq)EKX @ P)ZCq/Vs閳9ֽ+k%33&~$j5KAaL,|qEEYV ;3 :5f [Nvr@w`O2 쉨ȹX\||,,6޿P'>bPdAP')ߏZ3:+//7Q; dPvO@u /V0 sf:Y 1 0+ 6.U3:5@ Bjs9O[xPU(;$+I`u8Vf# 33bo ؂R 0w#dou>ك\A[A)QU¿s6s8!kvt̒P;;=w~'ӹ{j=od7]P$BGf 8Yxy8`G ;%oS >^PS` \>^V7BgeC`S%ObşNw>X~d4aP{[(&)WQA^Ll&6N+  Wv(ko񻊧׿Fw%@̿ 'a7_3rCO'Al=b< i9O+bTm6VzZQ{˧Agb`fSqU 03?n<Ű؃Uΐϓ vrq~ٟ*"ho ~ZC j{'8 ''H ! sx±>9[_t=s|)89=xjk vZW\U1m \1z$'33勥wJY+9^e-Ϟzmּ`z-c4fT%) VG$1rB8p4asuj,]sn4ERrA-JmE ZjF~-3·v(ڮ*Wq:\oSp$I%8P*s_ezJ%]U+XmM2I`=&qXKq3_ yP'Օ \Nf#$1?5z",?H˨'Py5"meΦ$AݞE@n/mmД6>OUЧE&?vvLWHJ }(^mmb45ioXjR"=.+ >e-v?Wgq"|Y# >P-ltǘ)ܜ B[]#n=JH*/&-r{03>jJVeWcijc%hY l*&l*`Y0-FaW؍h]=k"H3vK ی_?>B_jD;Ѧx~.3*d'KO}dv\6)#t.s~ۣgm^ye vVӶ bIUd;N7݀#3}j8n+Kt+"\w>L{3F1z-鎽j;q$X;)6Q\;D՗.>mhav9؈  0CC]a=bǙ|um!qQ]hbVFEuZ/cs`d˳驳P})Fr߼M9GnFwN>ƍW|J3h~ї(:6W+n=B ^S-Hٛyl ae`Ec]$M2!v*Sw@+;QV1(Lӄvtdn |Z<"$7Y3=TsK\C!O7O>4퐑vxlx۞ h;qZtn'U M$zpeNT6jY h¦x%4 ),n]b.Pnħcn=\whU0s;?iXO(98E1:ݷ; `>=)^÷|xT#O~~lz|$^WfZD\NW`A~~KJlfٰSjB}*o9nx_tr0~zUMjyMA#rhUI00,rb#`{('.Yًۊ)DNn)Ůu~Cw ƦG$2uJ⣵(}DjqU5LwEx4RwA1ןG#~4LX(j/oe\,]Fi*8ϟ(2=_ŴWlz?2dM $9eSWFC!c_frE@1FC~#x$ b=mPaM迤TNH =*% 7.loT3SPvւq5 ͧ꽌 f4&N>Vg]~Wޚ`pS{:"kd$6}!*?Y Y%} "AxE\I:_˱i DguБ:^|!S{Ah= TuU~& $Ke4&PP7JI|[]br49/w2t/vYkJL=pI7Ra+Ca Ļ UdꚒti w. |-fxJj_M0?3" F bΈNxҾPx8 kyp{xATb'2AOp _l44U)M$LNj81I(iu(@*QK~C[ot#{o-f%X}CcFηe[4ɽk΃SsE- xLԔʲj6_p!\0/K&ͦiapMpdtzS`l0M3΃a5N>wvєw=JP ?3,zݷ$hTd,@#G?G8cv}o XavZFD ?̄Pz_pb'߳5i+ک kou@CA0*Ȱy\yQ!x97`_456wCMY,4l#i*ۥ1Aҳ"#ON"Of?Ym[E 1ZCMl[%hv_VIL37Dxߤ@ DAɆj0,L[Af v͊V6ywGoưBݘ1qYP!mX#6UlZ2RμR\@;]__DGS.iU8Nm#Q<7[?E d,Mos29˰V ۶Vn>\-1XXS{[ x4}$/0za㠀GH˷z_|7_I8e5$ϋIݔ@I3"Y^qnl' a|?_@Fgni˨Ɣo$|XbT( bo a.2~`LYA_aݬ+tTi;>j(I(Þqape cљA8y@\=vpGBܣ)U6nUNY+I8C'F\fӡ۟lKD唘!{=hqf.j61OH | )onQj\߳rmRgJ3ÆH"0L-3gqQ!I]=ZYM AT91 =I(FY&Oo_495dM*Zl}V6 u>;sZ%x$4 Yŋ5p4"we};e q/B&§{ߦVb<)W$zN)ӭ8maK%Вݫ z1>o>c3$WL(n ~4X0bt7,DjXȥb-6#$cK9.T?C"{;'c8pc*VY:21ej8Pl{$X|DFH/a CuG2Wg~jl9uodm=&1Ϙ2\CG}*u=R*F fVhKҒ6-??{pVaӰJiHjaRNMJ+fz)M|e+,6-OkV)DJqP#4mk٭jXVZ»NoJ3lZ DCO~G`2il=Tz! w!1)_y^{]`%w[34:t@Ah6ςb[TY;,W:p5h)dkwP΀ŒRlw4]{ )42 .1Mo̫?{H'(0-ppU/OT4MI'9ݩi )䑗7>dy?=p<4Cna8ALii@t1D=މB< nXwKj,`ò8PćxytL[iCu%>yo-w?j /mNRC#Rv¸07|RДK>q)׼mRhDT@e6ix,Rs(ø.u3&Z~6P&oYfNNU˙t&>'ޡ\rs&,W\rJӛI)av=LYnD9tX̯#`1r&I[>x_X>VC1r ଦx|{t!ܨ`P1(SƛoП :R]LW't9TF/֪!Ͻ8ʖ{ ORQW"{ SjIlj ˹۪dK>kO^IL9]}BrO_'v 40{obq1*ԤMr}5XA#85֩d?Yh^: R0fAȽѤH}6Dme8%\^JKlWxLtW֚Tۈ D@̈ijHaW#᷌oFf[&^qL[} bM^!лhk[ E}JX7MfsP~\;]G:ϥ[Œn,ʵ㕓!uT7YǢ~!.peߙc,5'T}SUu:!#/m{Sš /E8clB]exrwK6kq f{C·#(02~G)&8}Ih":&D5K$5VAs3E|?VQvVlc}{Ԓ6G<HQ6X{J#" *Q8J]ZQM+|8b";op?}Gkpa>ydDuQZbHˀݱP"ГQډB(j!biàqu-?%oaq\6uUI,oތ[K0 v^/f(L&SKs[3R%~{^/]@^(f 8bt V;|s&xLeZy >fXҽ {?ƏW9z]ǫ̈`19RP-eUX wTswԼz!Kh3cVKGf՗r[~rz̾S[E/99h]f;=enW& 2#"z:ZWѿm7궒DTg1{tO~4hbrօJb,ė:S]4zoÿ`XoT$uS"m2r}@m1/^l1?g]mc<[M]k)f&U\ 1i/ʥ8淳^~|g˯{61[qu`CkPN'\qHo-q{]٢Quj! ^bL5b]vb8[II5[/SCzBtD8c^[-f Y(g)_\z9ŐU2RAx>)WVi wƲmO^H8ҦzmU5 vcb;&}M>Cp3zL|/U N6,ME (_ؘeRR=s\pE A"%2+S\stD7U%D&EF#޼ݒlw1DiG0~oAά@-&ꔎ38(0S̳/(baG5|woJ |MrSI^-qg#hޱ$q3Am;b+ *tR4ei-cRWE,B_DF<^ l禤$O lJ!Rl(X헎Uhr:Hx1,L6c֭[qTg8$㋵-%ZdBO!0{fYvsf`ՙOdEgo*>#Xl`PUD5&t4BĂܐ&jb\u@9\"fv9*\_OM<8sT!JF˯ٿ^j .eG; lϩ ք$V9Vi &۪0,d*3SKn+9&XZ_jbȊSħs0-T[T XvYH(mTsM(/+rp G|LrC9*H!6y]ޞQsX@CL<1\Kjl@/WH4Vh-Qx6P8=gߤYrz^FO'G 0}{aLhc3I0*lNS~%y;$ڇO 2NK zCMDr?wF^˦0.% { wf sRVXy 8 QSgecfQ,[$si{Ib,p o/r5_1',x\'KtHG/{SUHF#/aImY.ѿvO']7PDVw莪ղ(TS}Rwkі\F $ot q" 2l2/ X"Fq2]HY.(af=6Qͤ+u^ ˋEurd!RJK4/Gm_0*yl#+8'7өF."k.bu^l{[^]lU\S}`D('kҌ9ʹ$ּ[Z BI'{S G>ua 廓o,y2qΙX%$~:~O:u;xlNM>u=#ZԬɸL9)\,3.)q/;$b(n8lz%(B- mw [a3QJ1VRYjf> endobj 1901 0 obj << /Length1 1451 /Length2 6835 /Length3 0 /Length 7817 /Filter /FlateDecode >> stream xڍtTk/)!! Jw  0004"݂4twww " Rz{޻ֽkϳ{c-]NYk%H EprՕ<<\<<|z`wàbA": T\!^~GoG\ t[Թ*0(Q !e>XX 8 v GdE+  J"a@8qss]`p[)V;an k/ #2.\F^fpAA]Pk,UVh:8p/+;hestB=P[ h*q!< #C݀`s @IVD prC~AyˊPky#p՟B^':@aP0kW'n}( R@zNF_j$_o'  !p]n  ߆Kk` CqɎTl$x<~9@x{OiA  gjOBe -XZVKh\X) CoEnHmfm?@G0/$]ȵP!߮?:UD,IqN^.?zdFX!߳@ր - ׋/r rbL@ "~ B.ٿPZm#=q@Jo^Z<~!!$f_ k"n_/rT܎HBpC(v-+W8o [<@ +x}u`y,;~x6OqknFj|/}/k5ttJm,cgNQhgQ Ph#tH[20WŻ3* jwVӈ ,O(3Wc^4 KHWhsx20 aǍ ntρBNڣ?j_- SS nѳV Ho @FR+v3Ktvw}v5oHhii[=+.“lwYSHQ];|,d  VWkgE-*@wrhSyb"fLQ|gK3Ҳ7^Z48q΂k{Q]hVT\anh͗$m淌ݹf'˜ˈѝL{T >4sIjȧ% U]}2cKK&'AdyHT ;Mc[ ``B>CO8\y)++m .-6My]@bSæM#%7 gD{ЋhŠp,ә6V=Ƅ5y< 熰`".8H뽎;SVï>G bW=O32]2B 2 Kli4}~x?jϬ}뱺M|wP)qnFQ(_cُ Da}TwA;v} eXGskGѯCi0bITnvDz=nqMHQ}%չflovav)bnCKwՄYSڭ[QEuYAMa5XsJZBϪձ>7vCv7)Lg>27P)©cR×$<,ea=Y9{,&e}ccku6UYǵ:38OEwiPq ݛB+$ڠO9"8gi$N |! W~O\z5K'4<Ŀ,$\pSFܽ6}^!VƓO6D(k %Bּu |\6ْP͝ eRE7 T-DRv7H:ia5bJL.xϨ'3oBdE|Xiv`6ӵlD#^NDr*MLq`x o\FԆ0Fk )tޚB碣:w?9'mmjP$$6#-:Sn @{>us4DS"b6y2| G{Ҷ%.v#{C1~^KwdCxƜ<$u3-zGg7`;^DzⲄXb jũ—V4k;oFqdP;4H ]/;}[jJWm >G  :b+Yk>crbSW9~e'>aFljH 3O呒u<c{Mx 覘w[E5*;8'WNL&΋D07u1|/1.7>U6ܫJ1 췄:noN1qPOG}z8:y<ݻG/!fڌ#TƇls_ahOmW*KI4v|dvW&$e9v_ YSy%5]d2o:"ZdH 8Y1yvb+݌CaLs5|sF"1Blh9!FxoYp~}ca:5xUdM\|PR +JME v e3{V5W^@-,-t3C}OQNhw՗Eتu89KnˉtfOdkyi:/c8ߛVg5@6ɷM!1Qheak;  Z:"yiAh86~LSкU9N4>7 ~җ4}:5OaESy~k*c%{N.a 'C^ B!KwW>G4nQtl AnPI/wmp7^'q܄IZ'ۓH r<+(&%F~*)v{ɌyI(S*VU]"b EvUT37LsuݚOoUW9~UX7TQO>E=V1ce?4O,Ln&P\9XdpaP/`rMsxF< ¡"8X4X{I;P̣sVl,="->67"[U| { \05!쟖,BVٗ/ >Irf\G҉YxIu_ab1e5[_:9ř}wt›dj}P?zι%͋*q¸GkMFaC=Uέ{1Ѻ]4c66{RyFj|}RO2h>uUWB((vmW]K/y*"Oql6Gĵ#"[ya§Kѽ 7*L` grřЫ>[<.,I% 7^ǿXQZ>l6ԁfܸݗXL% )uULcpXS+ӏHgHdki|Ӣ´t؞N[^w-u+qkMc"$f3T<6ԓq/,+Neb-sk["l<j廖.FUYPiEi:4A=FIo7x8UB5/ujKZKy>PXnݳG5UoxfԠZ [,uåuث/#?lvt>.`bU^؎+}"Yh" :9z\qZ@0zK!;_k&)W*F6FM8ixnׇiN~w8lvBkaB}_mNt ~RuP+X %v!C+Aa(*c zVztjKR<&^yq Db`cA6Qe>z[y܏sWcM@HҷDی^umO-T@6YՓ-d~֨X_R>BZOS;p0J7ٚfb`7UL}=r:O;{n^p #[$); 3Ӑ ٭wۼ hqqTqUخ^lJĠuW#7l)XD7e&֡k)#:bٖXx1I%r_j"U-9P!6yn:Zk#yEUdbtCpp14# R~G2בR3>:5j-GrA:,5v+P xz|H䚣&ݠM(C(pl ,T+|d>cY%·]I#/ŖySgx%g:g!Cȗz=[6yz RG|R׺~&ʚnXg^ۊSԷ85_So]r0뛲}6@'& T>~K}26~>aQl.^(d=+tIa|㙪<*{;d}Iݞ6qhN(Ml[o7@4՗=X~6`bg:j (ln&6tY"³:+\QkBM}Kj3L}:yI,qoHJC^Vm0ܬ39XR%G,he, wU.Կ\8d3 \pXE;fߓ,&LlJ[7zGR5Q3n endstream endobj 1533 0 obj /YGTGLO+CMMI7 endobj 1524 0 obj << /Type /FontDescriptor /FontName /YGTGLO+CMMI7 /Flags 4 /FontBBox [-1 -250 1171 750] /Ascent 750 /CapHeight 750 /Descent -250 /ItalicAngle -14 /StemV 81 /CharSet (/S/m/n/s) /FontFile 1901 0 R >> endobj 1902 0 obj << /Length1 1472 /Length2 6600 /Length3 0 /Length 7595 /Filter /FlateDecode >> stream xڍtTT6H(RJ`n`!fZ[$C:%TR}9oZ{}=umVzr(k2 MM5Q XYg_n"VC;BG;al& p DX""`߉(wq@扰4{($MĪrqG;` pp11倜 aC0{ C t`\`.h>4'8p4n  h\sX3Dc+ pwTCڡl 7Ͽxf8’p`(G_]7@οOp+e V(:jeM-忣jVrH{,y!B|`?~Z 8a߻@Ј_l_1l4vcB04Veñ*JH/9 @;̇K X½C0CZ3z\-U _a0kOS61;vt{mf&Q6aaMUrt^$vҏx?X`:Feͪ*t@-[ݎ?Mܭ:佫n'~G̓$ 8yF8bI[ el;XIW~vDY^xVskUI%%]Uwj%84 fu$J҅9{!,2%zE!Jù[?s=2U((4tzP;fE;}xp{t,Ǻ Sޠ,iطl x(;OnI]帓ꨈUtkKpi#!24Pc#Ŭu| 'I_;Mםߡ]սA~j183K*J{&$&%z[U Kdؙ w7{= (Ip1_3LN?UHϣ}r}i\QKN<[WsfFR8'%iȌN]pplru"?%v{]`qN=Mt*lҊ 3Vu }Wm=I("mLTgU[xa÷ Du<ft>z&qvAwCsQﵚS-c)>IT<Hq;M*7-@nqJ6ٵ:'NݑJkZ0.9:e)ݛoY{^?kѬ\͑oZ5Lw{G^H5m_P~aC0ɥo(Y5 b}V>y 1*&>?81xv)o~H]hWmC$xe1T{LmGc@ SJgL Dw~ޜx~^n~*Q;&Ov=_!v'V {5*o1gk^m=_Ypj.gWVqMj64[w8:(xc ب7;&Qh;yJR~`jA*]e:H:[[+B$gZ;|U䨓l+Z9@Wʼ)[^.n!FNEͅ{u[fuux-k2kf=Z7jc3 ru}0RA|78Yb!y)XWk"~N>~g4C1A@s4/CrRk8z/s%q]'lL$dm?kHND%a`ԃᏡj\R cU 0\PS` UK.Ǟ,խ>? ^]f},%;z^ճɛPi}Ӭ%g[אkcY%,i5 Tyo5nz `Pc/CBaŎmze3Ō0ىGdV(G3_Akfue( YrT9Ky}UׂJīڝOmʣ"$' |+BmfVi5Kz+`'8}aҁ_ҝTvӡ-{q4Zhݓ; BP_c,&E0bc%]wɾaLvAЏXYSӰBӂx7S$Lv@ ffYIĸ[HP( Վjۧd0rm]ۤ;-b󫰭w27%zN5* }fس8{󧇽F+32r 3K/ڣ->2<$>^Ni#0TI>CcMr-xp%Rݔ-Li:—e cgfF6l2=۰{R=ఇ|#[a"pҎ;i"Js9n8l"Jhe$\ڗzN]!.;0OPgړx7fj QFwBm2gs;V*R[Z,>o%nE<5 w#c,q[%<5c%C9m?Rn:zr&P֐ mW5DspB,?v-!m5]i7?eՠtgXʣ&7u}wu Aç,7uUe<Pi;U<\swj=>['p^ y˪ +:^ʹ׍/45zV3".gÜ\;War)G(Hv1'ﻌ͋{&}t>A7ZBۣMZVݿyL'|"JZ~ϙMޕ y#_,MJ{BD X߼f@;x߄&N"εWV##bށyeM`~:w%*R @AGIΨPSEiܩӊѢ{\oAs§FVP)0AR)P$N>m +mU˗R@.G6_pcYLfp熅@*ӝw2H_r|F^ W k- k%׶/d 'oPB.FokŖ"}":+o.Lroہ;deuC*dDy <\~cR8Mzq nBN(X; {v*^,j(N$Ki^JsѹSgŸo!z<;|mƹ{67$ȣ2o|IHo˓dwȱq,յ2~S&&C_WV7Z=gteRP2d!E|xO$F[Y0FZNjyCXW9ˉi4Yp'[ RRFϒbJl_T?*2'j>4 / ڳpʿYӢ88ZvX|ټ*tU"f?|\\6hν>@@N,͐6,dSuGMI*3Ӧ[埅u[IΊi^VpR`kBaj/QPJFX tb~lh#%R?hE7QXx*z Eq=V֭-|6үZM4t$we5Fmѓms>֚Hlwdmy1B:l,3[msH:J$e@Ni2I*P[d.i~ЬK 34z)Ԝ4t̽!|?i#as5( Ib /ٞ.(MML;RWb$XQ_O|Xp30X%$_O3=Zeg[jL1!ui&dO;\=E]9S\}4j_tf=E$QLzPW'C%RːuRfFn@TrzVPm(&8\%l,0cjxby8O%N}a]ƻ AqCCTj˸9gx\uMgOZ5-9cQs".bv+z$ v{c8כ0'ұ)d^v.rJ`@n[<{lN2W Md9,^*qmm[EK`)]e?U\6jkTzUJZ,=9[^[R3Y~t,8{z2Dn/qTgVk endstream endobj 1573 0 obj /MZBRTO+CMMI8 endobj 1558 0 obj << /Type /FontDescriptor /FontName /MZBRTO+CMMI8 /Flags 4 /FontBBox [-24 -250 1110 750] /Ascent 750 /CapHeight 750 /Descent -250 /ItalicAngle -14 /StemV 78 /CharSet (/S/comma/less/s/t) /FontFile 1902 0 R >> endobj 1903 0 obj << /Length1 2376 /Length2 19503 /Length3 0 /Length 20893 /Filter /FlateDecode >> stream xڌP\ CpwKƝ%.݃;8J=]MAB/lbg330D?33XX)(T-@)ԁNv<0uebw;y;[5`ab#@ :Sٻ;Z@mL` lt06́6 *v@PP@< 6N vf4tW 93 40@)Nؙ\ w1xP(me,/:k`f`/ݿ" `ja (J1@tC[ ] - >!@BX`s2v918YX"_4U5ڂ:#ꬕ翁_I83Z88m.#3LLLܬfl=o%_ =I-L?N.@O"xff1`4. 7 >{>}>^&v/gae_ @`k8OK -}0Jۚ{˿ǂ+C v P}]&v&/ m$VSQXX}Ak!oTUX8_4}=mͬ[F ' 7_3.[[,l ?3zP{ ORca::ÿ<7hl@.vu(_(q n'Qb0JAF?S0AE\,;`TsPA4ZEg1- S9*ީɌ߻ _?j7?{Hr{ELşA?nb~"?{/92zYӽ|Pھ?l?Qٿllo'fS[.q/d}l^8ߝ6gf(o"8BzU_^/^~V?e(r0]{%jJVFUr"zl,L퐎L{Z6xٿ@XP.^oS 5 oZWs[&Nn B|ige?SbeZn{d=D5W8֬c *' U;̑cM2[v 5oעb>>ta ^ Z'3f'+ 7 MXX9*J٤ |L^)o|6uCY凾UUiCxלYP: \nJ|lsD{)e$^&oGYgC֧T5Q0(T:)PyԌ;.11ùnK/6E6R4;閜g_LDW2?F\<96pu{8 AgNk2 tHzjHfP#R(2ͨ'UpH+[?>5ltdž"adG(Y(*=BdFR|Xzq=֝cSBf9>~*@F*z9^!؛+mL;2q{aTN)X}Zص=WyhSZPtݱ.:A~SR.l;Ӈɻ_SCX[[,_Jz6/#("6g8<Ȱ&Ńw" @\9[v+Wb㙪LI"#\A]ї6gsǺy]Etr23 E}A' ɑMP\p9n^ͪR2ԧGc츍8F=J,<4*"rJ1JD3s72y+ˢqQmGXcxL5opC JV-T/#&y* -QSOtӞ~aj9۪ #Bo%sN_]tΡH}VG^Q%wpRv5b }.+-9+ۙSfwħVaviFB1$8ư _NΉ1"l9)%OVϦQDoB@jI:xdMl5p/r ү|"2 BH&a.)\ |J) <=ˠRDH3\H%6ϊ7 uBM|`4xW$1Q0XEnؗoI͔@3'+s pʴ\;1B7Qa)!t*$xH>s }q w:(,GY[~ւVO |a%Ưp(_-6I ώ(5}Kv5ɡ6 QFAymp_/mJQoNlWa:w@ PrHIPzA+f>QUE"!ކUʘ&x19_gh:2#yaT e-0Jkĩ$y[V>|/RjDv ]uYˉ2ibzw#&=EUh; s{|CTXXKe嗇/ga[C{6 천/p/upMJ6H5}=7EИj)ґD#YpiYxM'Oi"K_|UgZ̑GuK}T_ JZsܐ_ p#}c6c2zĤ,CrPwV1t ,OWVfOX%U,[R&V~_NFӘNJx44 H HQ&AŞA]l02$ uwԫKX ˅Ivx.gh13Is.&_öMY7ӎG v$L坦`fI45^oz#|g(,H:#`ƾ?4DԌ_}ٖirF| eJ\Џ=/PtR(7.հΗ3Eqx𡵝x{A`ͯԥ-s1fO=^d "TLwgvwA f{3 Az \ &e6{2'dOJkAb누a}S{z)'sYA]EAb!~=OX/[E FA+m끙vdpKjpmSfGfcߣ$Rz04ךJ&?<~j0hv&;H*u,'m*UkAhWvzx;)pBӟw"e\S,3# EoiɊ[Z&48} bmc@S0uhs̊ 'rq%,Թ  "mПͭ9\jTU>V% MPݞ<|1Qv*|cl*v7ևRM\(V Bd8_07ؕo x[zny%hxO:  |H΍W 'i8Ո,qr7Au $<2L:h; 5(O EH&Q`8[,Q}ݯKU3t/v:ٓt ET ]WRc7$in]j^T!B(j$)_~0%c(c7<%Cw e%<] Ә,=šFʞRXp$U@/v#N9⤔gN%֮}|—A`_.Y(m0"9=;qyӤu*1nLcěC5)_X*MY^9_Na]ދ"G IV9Bҁ~ξ,BŪh#/hut> mFNF6j\J <8Hi6Λ]>EwpF)Ve=Q]QdslQJ$`?^_uNeNʹ&pD!ry fm>A jKog폗)v>?[V+@ZT+̣7z³SRy<qJKMkD;~E/T~:%%9R灼" )}\*nj>kP:)zUs%$OOݬ2 e s)A+n=ǹM+'';۳wB<[o1=ex+>/dsթŗa4Ul0YOPQ f fr3qiԌ0mtwO(!Vԧ 伈E/ܥ ot\t 2*Sh~.B|8>¥p?37p:lM.vX3)*+t?s]B3;a`F\CdVQ2Fi|\PK. xheGjtqy/ rkO+9Y"Q}AQܳb׭MwaCAV#[p/I8qH!;gf#Wzh5`W iϐ= '|(3V̚wxIԷl |FV UU%ҕ/A,'$NDLHzh%ծβ=Inۭ[aL-3YՁ9d "2 ݴ_rFjۃECݓؤ HT=s"i89hII^1Lxq'dZ=O"ؒv-v>v܏e@|h! ?>sש6EYU>0SU}.)7u Y0P+< /êSw~|< +u.ADrO]Fj F"P[쨝l@ X\,9$$e!,A=S7zT ̀@*$3;.m+ qTZtWR,Ű̸)|C$ݶ9 8O38Mg# PGk#tDrȾ29 Qd!sG$+G K3/[uSsdlO(u&PDr2YHH(+x5' pԐm.+9Jp4@Sr=Fd&9(ez#| \z=v4L^ 7 0Aرz;~@zaZ.Jgrc58,ዝpִxBC~BX3“I<8ϸx ^;̦ 2\_z*8|>z!˭LÌ0:W ]ޅ&kBgiKzv~jʌўK&}W/dki}T<3c{۟OJ:6e4N6uHy5ԲӾ)*Zp,'J5IU[|&Siʑ*fZ'/*cuDT@( H|y )D0̿̒ۆ4+qU=RTP3;n&xx'x']㞙#=@,ģw|sMyHrclv,1v&`xB60K#3s8mQOv5ܴT~ŪdC 748 oxt}iYr! V ?J5, ƅ5voޭ6Y,9+Mǽ3yCq[kd;E`2wfMnGM1 6Aaº{kV1=3 Prl؊VS>b*SԫAe$88=$V,مKbHc-ctO"hf;˲M,\JFkO]uˊ7! 3S3L8n+*gef ȇ3Ƈm ~!f~?гQM.!M@11- 29Vɬ+ /;9.67r{֪C4qk)3rf/v#)S:y'B@Z!Wgnk|>MɀC=? ̤ƭC_9hU-Q*BFчE谗]Њ0,z~r.O~/|H<`^#DO k9C]d8_E ݔL,W}c&YoBuSI* ӇV3 */{GVا[5Q *КGcm{{Q[0d#4+>UNK*0Hgİ:,ofTWFkb{KHʌTȄamƎ㩓P]54#?u?§pyeK/ ]s](|Wi1cabI Mi୴ƈB%) UY,3wn27/)~Ɇha,vЛwvHi(ꝍ <#pn85$KG8 x(21ԛW>8ۉq́'J~%#=IJElD;]R I2`u2 cxklSV\_)3]FNk!Ma[[o9=OjqVJ5C7ȯuphV}F_8'ʔ6np>5Sz$V Ǭma@6tyG|!LJtXF%27 `A7#^rkMC3%XrU~68/{' ?zqkmwy\,|(-QhLveAC]ӠfO4_JxϠ[Qf.`[*)bO2#HV"c X|,5>V_H 5`.+|JqkA.* kp]@`)o]&j6f;!)LZ $۳􇁀n ؄B;7_* (5L.Tzv߳WP҃f-JZL,DrD٤:-}^Jq44)- MרjK{vL޸db*;0)2F{SP)< Kɇ{`5'iάݍ]*5歖j:; 'u,~kX`GnF ovq"8KaD |I*ruŪfUEso*}^JğZ#VWWy /g{7{9yLPHhC.HMDؿ -_v%;s֬þf"uz.G?Yv chVŮv6L7gr8ݴ!o~r BtB<օɌONCrB\~PRuw1,VK֥ =1fۜ26,- Ta7xu udo5tI0lb 9L70V*񴈀aS̜ImÒhcpF53OE21 gpcIRzGʛuK{P/(`yPk oyla0ed"ޒoigt̙iRZ)~+xő",E|T~ھ`q*M<MJ2~͕ `5U\ Fkz{XP=|CI#"}\>ݻ]-Wګ#6Yl(G[5q~R]H.7:$c!zл46T؋:TLto_I8F^78UoQ669a})!$ې3 S1Q= lhyUŖ-7=Z4T놗CR:%{CӜ |9uAH TSR_KH^V/o0+{|) g0zMaþ|ˊ$nrcr#wEl*BaC\gIZ]krH78ml:gld6I0YȻoJ֌Toq_Z (0yTM| 1)}nrя څʞ5+86h{uyvMp-dSY,H~N-r!g:~&f9SXr|GQ*Dw!X%E[Æ1 ]=ӑu`G1|v)HuT 8ӛRGgZaEpK]˵hʓXC"E`-SC`Bi&z'Hw.hS\ZH.x^ys0H}L[Mjo^{  :hYx"~a}}eB oϺu& ZczsϝD"[I5˰[I4MWe[!dջ㩽^yxlG_0p\ VK[%H@I7x!56SbDE-$&9wSW6 }'>FvHҒtc+DBGD.WPY0;lcoNZfDPp|cb}># U?x\-::%sY.mM_$O_:qˮP !Fu/{Sȁ-|I:Ks0  dI߯;9F+N١|LIeaRU 0_,uAvl3$s;q&^P?Bi-mp3>N֪DZdr( GKk'//ŏNH\hE !F`sphl j?MQbl*xޯ}ПJ`Q8Qfzhdwd0DD "Yc>N[bDWL"hAlۄ o}/Uٙaә ptۿVϗq?ͱ4yJ2 fz~ep&ЍFYLP79\BX2Cx\ƳJR;:Utw0^H򗬐>aDlDEZMxNw-qf.r. Ř.a Y S]#?GW8<&k7Hetsqx?_sEh6eŽ"5Ň83b:JV W*c 5>2nH`/x]So´֤IN. *K4ClJ #|pU1ru]҈8Mi`]ĸqO&}\>1 W$  HraҪgx(zS=c}T<(:71"$6Za P(V%_`v=7fFkoNzܲR!1Zh׫`1P2TT?_ ;9\2W$X1\怒d'i0Vu b‡E9̰l%=Z(t Rk=u85 SKGuPX#5s&2F (e(8;$уяm_(5ZM .Q^1P5P'J"ʔ~! 7J&Q/{| +V6UMX-G1A1>4OQ,^!R\]K=Kmt>U $H|k&1qC/ ͎2ͱڠOF~Qn}h!%&$Nb+Oϴ"?ş)S,rѴ!<AТ)*}Ғ#):ԈOq4Cey<!=IߍQK_i&Q9H(3 Z J/YIhw{0ڪ(мʫ*uͨ-T(cMWN~DAnMwsѨ2T B׀DJHXM4%kOo>3 G+վv)SldF*hC0;!5vW 0*h8\\KH`9 ğ|OM`AMGz,!_<xNT?^I4 LgI?WU;49ցͫ1ж'U zNWgtqwKŎt15Q9T?d#~43 Z})4.q ;PP#XuBVV~V)[L*h26(h [`w(.aɪX'xiۦڟ+!7JiD`u-awn⧚wԨ3qpNaM.˼XA ?ۮlgX<̀}ZECk1V9/]%y~!~ja2#4zo.`B.F́51pve$HV+{uQI8EUzbyXu6*To, o* Wf T$ys5)T!;iPiⲮF_H̡ 44[:2k[ nZSD<~kow.LPM77-6Fݍ^ڠ`ޭоGq =Zz Φ|sT)0zQrp]ܚdfh::fャX)Qν;ػ4)? P[-4k;nۖ}99VH#W` eZĥ_!wL /@iYD]WGr~eU2>ko;fP*I k)yubzAÂ:G7ZʷD|!Vw(~|Kzj)?=+ۜk5 T!!1Aпp-⸔ BXPbeo03 ֹz~.( r[j 5W 38AiQam?lYOV䜾IE Q1cm{s97BmQ`l[Oô45`QJ뫊g Ȭ i W {J^/8E)<5WՕ;p%0X;XMx-+ *iL7(dΤU /%ar?~;ol79fod92}qov %QS~Rn`6Jw#`?L Hש&%ց;SCX C`-ۊ!+%oiqu_G?_JXm qs!6!h䐉{7JC/] =1i"<%FC66`d2f|_Zmȿ )hI'3y7|HT挘?5(?S0x  EEٶuUc[ 5یĔ30|8p 4B$=>G6oVtT@ A/*Pq@&ZHPr߲|xb? "_8*,NZvjBP-BaoN  %x]a'͍>oScKE{tɭXXTL {}8 >H$zfRrs;b^0JOP|&9;<$ z$ʎ>` x&Ïs-q!k,95&h͋'yWo7H\P?+[eX ).tG4Aɪb$pFb()R^Egw4DST̑dGXnS,f-I!y0I{`S'QFF -If2'epQ9SU>#=({;߮W~<[Qڪn&}Fߜdf`[FGql]E:a?rrpK ͤ#PCՏMӎ Pa;CoWw_^zU4PJ"`4 T3PZF/WKnpKxsH:{މN:wJW-L"Wѓb[!^R8n#6i ~擭`<:ɻ8ל)Rx9ݺ!OO!MhB9 {O֗Ͽ,|&P/P j{j`k0DZtMV`r0ղ!߷b[::™A h"e ̤ 4pv#OҦU+L>?Cĉ D8!{ɨ m/G3c'nO~/ـGVFh~_)vQ,s0L&*{W)~('ܖ]7ZFRއ rZ[DgقnY*8wLL.tLc&EAA}s?:?xҺ¯3 5|sH{),s+Z&~}DjR,va3,4cifG˘%i@\@*s?0I+N)^qyI]t0m- endstream endobj 1508 0 obj /ZBXSRA+CMR10 endobj 1480 0 obj << /Type /FontDescriptor /FontName /ZBXSRA+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 750 /CapHeight 750 /Descent -250 /ItalicAngle 0 /StemV 69 /CharSet (/A/B/D/E/F/G/I/L/M/N/O/R/S/T/U/V/X/Y/a/b/bracketleft/bracketright/c/colon/comma/d/e/equal/f/fi/five/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quoteright/r/s/semicolon/t/three/two/u/v/w/x/y/z/zero) /FontFile 1903 0 R >> endobj 1904 0 obj << /Length1 1599 /Length2 8651 /Length3 0 /Length 9702 /Filter /FlateDecode >> stream xڍT]5L#! Hݍ0 00tw7Hwtw* ćOk}ߚf}9::0m *p;?/P/y@\3/3.$#@ ۔@qZp@/@߁p@ h40."Ⴤ;/## AB @ q_ rP`rpwGHyyy\xH{nq =!߄ ȟxqYP?p;w/78C}/W ?5 ?/?] #] f:C:*w ~AA6P  EAS]0[E {JP$|v?O 0[$l=|0D]鯐{6{;@  7؁wy'o=?' Ap@;F[(`p~o dq//[8?Η@UKGO?A!0?@\L * w.ހTR4п ݣ `>@A\+[ 7s. 4WH-[7ʂ@!`ܥ8X2ܱ!^֋g,˶q;./t y&>>@qSTn[{vTG_V)z۝SL}oyc oގګR!F[Bz58\2tN u Oayȋ9by*&,w$ބsg$Sw )\ ~/}?Q3SRѡLL)|Р\,_CNdStO~'9QʼўAJ-XQ^ʁ}YFi{R+dCiTW-^SiA֊2lD-7r ^jHրj=<~n }axv+x\zȌCZdzϞ'9],Fm.t$$Ҭ] /5'nYVt ٘>AK4~z% "CMo22DiC(Dz2inAd1/XDPSuJ~L2X8!jf6='M"d&U$2C-[g 9Yۅ t$K\'#}mEgKKWq5* VX/XdL|M}@IN2JtT/U(SoYSl0¶a3"#IΏa5 mD U>{3FWɏ]Xd "="ib[=[>;R ³-j3I.pf~|'B3M$~qOU мMB9Lйm曰> 2[8MB>.ԖTK71\ 4_F#dPXjU+󗧿ԁҖ{IdxBK=;ɉg&qTj'˵ "22,r>vN9!?fˠ^~ {KABaU ;q5JC9ZM%=Wz8_-71dI2X;ߔrKhzx+./AHϦVn& ʀv7!:S9]2/H= g}8i]fk%l -}9K.deC}yTһ%SD_;dKa&Նh4=C(AR{^έӊ-z}ع!27.R[gj7獎AmNVFV5JF:ŏr-//bPxҔ4Kjۻ\C_#%j?Y˒ .z1U\r{8D<:D^J&<>V[玑jdyޜfUǭ% S$5Po@I; 'JLuGslb|ŅX(oEbG1Jq7D. >8n TaĨiACT{M1BXn6) <_kk'%6{_>9eeԗ~ĪV"&"X W\m]bƨ{幆GG6VĄq1v*,͋x+<n 3 ؔY~B4(od^KWf̶J{ D3CCӠ:_Žl:܆}rƚsD*>L`Y ?WRi `&%GͨB't:</ץ)텥-''1C ( Oބ?O͊)ge IG[ f@mQ!KYR6 sуJT AoÌv_1;cXhPjVV|z̗m y͟A'Ec˨cҋ!D*4 euiwۂyfи :>K}h/9۳BqVaU;(zKӮ@X+@S8)Y,Z#*`= kmա)r_:Gݷu܎_BS-z6>ptqƍ,dxH-L F%clficT^f_뼑 X$l# y`"!}G6&5ܳ&)s! T+jٛQ.[,3d5Һ>9ݜ~AەV]L,Wϸ>H9É@#¨/^2a!F,(qu蔞3&bEOFQǚeEGW0+`^U\~П쫢DN[.+Yֹ]֧0Xt3Q wPh܁փQc%NJ^jIǣzyW8[aLy:iۇ:pC.h#pO^kPˎC/A:0}/5"@5ۉȮ,,2O^PV,WPu s;$4Jv$TC.:^6oKq{jp`XB^D${~.uAVf^ס?s־~ly1?ȹrRqRJ}r_LYXsVW+?( BX?1AyTƯ%gb}KM֡7N܇@';JEOoFI#>7@%YM/"ZZCjV76!R}гs]6s@>.rcx}~|ᡭFȶxH9ld\Eh"21< p9`_ 9m-eEa{`P~w-U}m^FS#uE+ch;COQbMQ r vi^e˝dX+O Rպm]*; $M*g.y'bˆfhֆ;̗d_*90_[ ω_UL<,~kpt|Gx&g؛m-Z`{Wy-|a8إ%wY1V(02qg4W﮻U 7[pŀ.HYu!"s#C?:Pc@a|$rQv .Zgu36 xu. `߱U+u<:";ZWÅ?ϟ<^;dw-aͅd;+{/s!NlMɒL<J Tm npB/֠z+&b_3a$zXE>ʳ!aST?t^ ZN, =پbH'hQ?ф8^%<%pM`/]Pgc~S8Z+zSU|Ts{ǿ.2JdZr#R A /uYtk#eqU5CeѲ󣶚/+0>du8EaGd&McJ33oT]ޜ6GcF`u75]"!viTalGQ2;%|kJ)+72LIk'q5gM[1r6c*SB䛶\]v` zC6IEvc},BkjMOcOJb-&\ IĊFj .W9E-҃8h9=Vlap=Ţ?\nĝMִtCYn}v[{xUBa [+ikvpAhGxgB\$xfE|~.a9ٓG,j3q_dԼ 먲0UtjU`f_9"nvZ*.M$c9)ڈ fқI< ߡ?8+WfP!H F R׸!yYYx̾g8MZһdMŃ4Y*;i1G 6ViH0_ uҨT!],|ԉh_s`yxQwu- ty'TamtܙlV\Z veɋ|"Ұj߸xj~i1~ѭlrCs;IXIW o1Uq~'Ik2׾\̜*Ge\Pfګko. Ų%qRT}vӟ8b~|ZJZ$ o|Y^K U0B=Wq'C~dWu; Jy TZ,}r-t9k#YgRx4$-H}CmD' y#9t<$5c >܈B=EU䆲n>IuϬ|ЧVϳ\BTn~bCSv͂PX,Hs0*du'NVҡdoy 'H2ȷV7U8j$Bg2?o*GdS,Ī*SvEӘnF\nTS(~M~Ą>l¡d؇Vj|Yg&s(V}ҏށ!2&1 C^EM 3Ikb"uvw'i .=^'s[Ol ܐeb)P4ZNZQ)!zKX/rFwvK7p̘F n:YȢ >Pj#0rvDaQI,N@M(֯E]$ Edⳑ-ejmKX%1=%c [O| )*&<zB{tr[;6U` 'y&ە[o)t$ 6hx7WV1:SrtFR#O2ےѓ8At8qIۦfωWc?s:H(>l9喰^$uui`h:<œj0?6}n3s0qzMMiX%dam0ѡzqԯeޗ6q?axr'jWYXz j85dԇdɾ>i->|S75%6\~Lv ڋ*Y]GsȊq1o)S*(P ;_?f2n1mMݩAO*Бʬgh$Bqx3.2U>秅y\].5fcݘjɁ]O7Eg\ӋS<8޻[d2z<6 :iNP bTmGca>?zA(a / dRCs{9/՘Pt/Q 4i|m"K^8 HXd2 @PDlB$] 8N\Hk"sd,P0-Pw.:O9 endstream endobj 1504 0 obj /VTGMOO+CMR12 endobj 1474 0 obj << /Type /FontDescriptor /FontName /VTGMOO+CMR12 /Flags 4 /FontBBox [-34 -251 988 750] /Ascent 750 /CapHeight 750 /Descent -251 /ItalicAngle 0 /StemV 65 /CharSet (/G/M/Y/a/c/comma/e/g/h/m/nine/one/r/two/zero) /FontFile 1904 0 R >> endobj 1905 0 obj << /Length1 1444 /Length2 6751 /Length3 0 /Length 7719 /Filter /FlateDecode >> stream xڍvTTm6҂410H7 91tw *-ݒ")ҩ4%֜{_- B\@6 pu!H(O5> + yB!ew(TWP9"\ErV[7@0"]!Ȼ2}Xm‚0+ PB:awm W V1$Yӓ ƍp`xBml nqCCzZw ( wpۂ]w:J g0g?8 tFJA=4@H/$' n ꆸ@~wnIk tv@Aᶲ GO ;vo?&Gx} p[_ lݝywܟ.w*t`$@ .ϯF_;g?|u`4[Blk=O;5n/ {/;z"PϗGQMWXdd^_.~~ D D, oހ$T!@;`x ?7 ;*0(?wo@Po3ocA:1yj݀MVBamUBZm41B@/&i]z(DA~5.^ lwftw |N.)A;>+WW+ow j l7 !\q~MTPK[?D<ndzIs_{ L"lD>WHS{r1qθ_c%g,J'}$[g=nlz|wm=ތ3gͶtu7}.] ?`'{m̯]܅5H=DLkm?U.zg\0Μk5Af'>"?9#Wyxń|.[;%1- c_oSb nvq}uR9]yh8 >}07Roi ?q۠O*A 1Ⰺgtҙ~z`'QVƈkQsL2Ia65!W4V X )B&Aj+Wo QצFZmV.;g)şHFKGh^&w>^5:ykaZZ%dgl9#~}oF(q__#GU>q^/n}j2h =ԭmݧkIFI[EJx:'gMNܫ{Y=Wb0,@jN i,nry)Ώњ͌hMMQ4}e̞Y/yiyL/+V(F|`CLJ+~8߰ߤkypm#SdF_6?=7y*7F/@cK30)kX4A3eE-5>L)wDZGQdM-`sz'i5&h<_*.=iG%n>co.Hjc)(Y,A9,Bb)H쐛DE b vaQ\lvp3ۑ2T-IEG8;zõ< 7}RK-T*,f0D3V͟uEK8=׫?~xigt %JHN`KKKZ"wrR~Hp Q/H3R=lA;~gS5=layz[J.!ض"5HCHŬ~o?;[+=I`b#6~BAt >B#΅ՠ=~CX#7%6ow95"ORuݣf[U>ji%*Ey@^0Qt3ڄh>uV HLDF~p!+%_!pQ/.]ʇ-a2<<  c+Mgr5mLz]BotJ*oIx+BO!=?oY1M ꋲgqJJ*0}_+(E ˲? U[$jS^1T"xܼۨgU|zJz U <nj+Hw>ݿZ{ ,"e(4ov^fۉ4نӧ6ɔ-=~ EEm1wwgZkD[*jՙ8i-•_E];(/l;?xBJLRElF!qmѸeB{ L$<>uւ37,JLuķ'W#ܳc|oؤ YJVÙEbf9ll)3&IyO2Z7`6@ 7C-PUʴ ;֔9r F˷C@grwyh_Rv%:&e*^>aUK*M!.(e @SFJW^}ꂁz}'oH|>:NPpBkMH~ f/6x S7 eypxO%S"yVƍ$VJ3 <EؤQ÷Vxsob=MCU1Wy&w;ۇWoJvj ױ?4iock,Cl2U!+}yno?[ Jkt l wTt9a"aT;;6z9Ѱ 3ne^Ѡ?uAS)2Xhڗ]e7!h`=?D{:!^+)J;Grכ{p܎J? a-8$oy. 9c;$\[2xU}HgzRVav[2kU҃kuּ\ v ->ERF3h C֠(S{`n!f1cVk-1N¨@]ĂnQEq̀\R3 Xޙ l#$ӣ Imy;/lh>w%&GLyv|gEQ>h7<# = 8l]K =%~ZvRJ; ?i2{\MP:4nd;GXt/CuL9&cӤ_(V%:\W.G0f4w.3$ZɄޅ蠏aTĞ]~/a7xlfAS^q}0='bH"a_SrzڹҴqˌxmq⣄28ZF[]Ow + /3|EcRWʫ- ^˖>p-<'Bd?KvgtF|@Ma`]%gKzU%1~tݬ"xXHXh [Fk"Ga^hz@pˋYfʦMYoʊ)#bT zOm>T }Y7\tԗ𯈤h֥ ٗwiW TB]N$'ƧƗQ}t+?E`OqzB20`c4d5Ob&I8iҎ%dB wuC=CĿb09.a|̅>t5%7ҭh>^w߻5E;zg.]R ɯj%[|Eĵ+y 4̦(}?2[y"\TTfdԲ(kb9ZxE<=kL)ϊcH (=yi)+b7߫L鉞k>彿ژC鱹W$ՙ]  &1NTcgXaq/Sјyv\El)bU0&N'aKQ+l6kQ1J*Vx?,4-F%ɜCȜZVEeԟ[– =ĩN?VC*ET/^0ƾ `Q& ;Qq=浑` 3'#Yygeƌf*RCA~Y#璸yOR 6kN\$>W.a j˴yTp =X<Ŝ%OJ|tư{LBhP)828GT="gǬ )qtGb2x Oy3{f315|!mV`HQjMymP봍ۯ?_^ȏ(MO>W;PL"p::ʣAƈ6}ϻP <@8åWʤGd`7&8 o]@r1Kɖ+(/neSQN#K$?^VI#cΞ[QT0Ղy~(3d Sf;jiP $ivdT1KJvۿirG6bW[nA)V抝?+[kX6>Y<#.&M ݲ9/T+ `{o^GV|>UcX¶$۞Y>/g˺2uw%r)pӏ9*:qO`7΋Wjg__8vۉ,LqL^DONi8я}JGx3b\srl@4+="\j)ۗԮK IyMyfSk}nv~FK1|5ar ;:%6cx334LM:o_* eŬ$pŔ,P3oWz691u!%9~)GAOܧYYje8귨mG:41"MQ\ .,+';JHssZ rN&=uIi*"6/9EbG8Wێt.,CNI䕁癩b UlJ_(\CD8Pn~Ms;ryI奼c/XԦG4\iز$V`D!/HqCVS<<.m2!S}|kC&ǂr׺W .60e}~^6˫ wKbR8j ٘zkz7G͖n-?ʊJ^[ɘP9ΓОHL[ 8\ϰJjDk魖lLH95Oײ)޶7Ux̫jj: /+R zIn2)ʮ N~{,LLU>-R׿4s -8ىHQAu;Xm5~S:H#dž m;L>5K#cr%jpB7ԕ3w6BscfL$-4Xr6ǨfCvC8&º@E粉-0i8cF1=@L9MWeо牱KyRElBvt:&l\IWY[YtYO}6~h3)cdxLwɳ-sb5 A '@m3.iظ2-JωURwsbqBQ 'ãgN21Ϝgt}80}{ M/MGYk#qzu]~((z$:EKд_T&Q>ׂuIF>Y]\Dkr@<V鮽hQJUtA > b|OY'˺#,Y Ń& NFH1=\Ĥ sI=zZ endstream endobj 1502 0 obj /HMTPZU+CMR17 endobj 1471 0 obj << /Type /FontDescriptor /FontName /HMTPZU+CMR17 /Flags 4 /FontBBox [-33 -250 945 749] /Ascent 749 /CapHeight 749 /Descent -250 /ItalicAngle 0 /StemV 53 /CharSet (/N/e/i/o/s) /FontFile 1905 0 R >> endobj 1906 0 obj << /Length1 1379 /Length2 5945 /Length3 0 /Length 6881 /Filter /FlateDecode >> stream xڍWT컧S@QaF0 ƀnAB@B 4P@Ns=;g{ߧ{s06VqB:40X$P30@" hGR-a(o8!j(C83$Rr`i9 eD!p'@ySՐXee~T<`(8@Ю0\F(`ahB)ўr~~~"o$E_GLa0/ . L0w{!6C: ('pCao rtF0l ,;ܟ޿!P(.g; `/Ơ/C7!8߅C*&ߟ輡('[ 0&k Ԑ0ڛW}p :VXH?Dgg8'OQ NDH@ iY @]E7z~+ĸ<gXh,(+}Np(s#(Ü&c6 Я';w?濇+jc/*UU$ ,I`8@ww6?uHp s]` I_Qg=>|C cXm40'juf \n"[9P? p1Av {JqV)5Pӯ@P(7xM- Qs(__BPe=x\ֿ73H|ȶZ~˃ce3W>Ԥi5የ*i}};<`~#?MG_RL3vm<ws@07]` q!ݱ[-w'MVj(G,mJǁ9̜$hd04GǮ ]& Rm%X/%LWywpX3$eCcfQBzVR9E7Go!t=QX NJ#ƻ+# Jhy-xey}7FfiW ? )mZqX{-8}}e$~ dF*v'H>u2Ś샖ThzJZku;-FnZjZGYI2.OLH]] 4K/h&z$^d.{GX1{hW\5w~oͽvW59,=EkM4Dnǭۧa=[]<W*~eqy>/2{6Sr_6GJf )zu3` V"af~qnmYLgIBѫi{k}:}́k a$yy!!y^i1$xm4\zBSJ2 27ْ[Һ1лL FVne twS m+`'*& NL3>oh9+ )Min kfKD]ͧUczOG 0 ~eÇ(Њ/+Cr`) Ɏan]d|k ֙ΛGZN(V[g~Ay6ukFɎ j䬴C-ԥJD8yo0ί*Sbb"cQק~r{+MUYُ\k7.Α~L,d{!>܅*ak#e_΅ęk<2,#S; i1x}#&$by6W?>q ؠ#mVCڜ?VWl[D*#iXy;o Uzo#F}v{!IrFB -e: 6y$J!IxQaQAZީ0ѽ9AҗM#lsͭ3/ނKX,kilߞRTqu$Bs=I5PQ<4~ 6pqXy{-FM+~^T[bPRڐT]~E0qgb*Oa')7ɤ3z_C< LZw`VaFzmquzms8?+/RmS)-{nܩhSQT gSܙ .',uķlEOl}%ì(_x`sJPvKt>QI/OIq$$> ۾W5-*2m^Xo粎ꁪH,.]K2vS~7}jS >ן⥨ cJo4UG|Ч6 W\u;W4$ϖY^-A]ݑqɃU]u2ߨ2XQAwbd~э?y`ձàZ)[9|?CWKw-{-­̦Fv䩦݃8l:5'2&RaQ`NbUjxY @O?dHiƶޠWM:!$ՐJ)|rW#UZ}Bvuy#i!D=QwntHvu\Z3- /d AmrJǒ7~0͹>ʷ%-x b6/#=Q?XLNiavD^ V-4,2f?Ӿ;@ʥ8,s]ڒuxRoOm®-]R 0@XԡBf-7N!lcx\T𓗸 };toUP~*[<G. = )L)< ihˮߪ ݍ>$X"ՒȾP!NF[g7될[fbk׊_ċ#tJ]nXJEBzT^&tVQB ssX %=N$*(sPa[e)}lIAt/>%i,| /1ӱ)61фpL%g{3c^شbxOTҍ\weϙu*73|2h/4(FWnw8f|82;xckd|5}Y< ws K,fsTzUy^y:"5^4}ysvȌN8#92^ I`GwN%.iN7S֘Mm*2)6{;om?DwUEڡM fE6ff~B2#m }nb:m޳wuj$.㒉ğvM *GgŔggcP 4>$|Z! %V#}F'R2*;+K't<[B^cѥAXW]{!;]6_|":'%&_6XNOÚd1nzn׀cXKivWܸTloh'97G g'/dڏ)|ƅXӍ 4 ',rJ`m+|j}Tj_{ C}l)M*>"ٟc;V4T2 :LvZG E廒>&z+$c7SQP+p}w'4} S4\%=I%S| _j@{pЋI.rQ+p_ݼ!5{"` r v{BRL>J$b.G١>5^}l gc.}Cj69=Ssi* KT_@OJ1TlT!BkG(qcgws6#ԷK/\Xcއ)|ZliՎ r5(VTT!+sܸszv<pYiRг|P":eu?ʿ?L Y^IubKYvv1[s: m R:tLdNqMsr5zSM!Zw_!^ø\}jgu)MSzn[sMD<%ף.9WCԜ9HD*a{VTMQ#C韃* FYJM m^*Pj}}y;WۻU֞&Мj rt;_U,'J4$U>|:LjxZT C X-?zc@h^M;"p7N*)!A7`[ѢT*v>9}]aE^l$ T͋))) qYg3 #M9 0杦@[33s!V #P[/-LҞuU\Ajiq_!`zTbjpB\/at80n>BAyID A˗|1&&h.II]HB^BKrXșMLhg0/L|X1nam0.XSVz5* uG+[w{fo? endstream endobj 1567 0 obj /WIRDCL+CMR6 endobj 1549 0 obj << /Type /FontDescriptor /FontName /WIRDCL+CMR6 /Flags 4 /FontBBox [-20 -250 1193 750] /Ascent 750 /CapHeight 750 /Descent -250 /ItalicAngle 0 /StemV 83 /CharSet (/one) /FontFile 1906 0 R >> endobj 1907 0 obj << /Length1 1393 /Length2 6165 /Length3 0 /Length 7106 /Filter /FlateDecode >> stream xڍVTG@btLBmtw*!5ƀ`%(%R"HJ+4HHIH* ͝~u{v>gWLEp 4 + UMd`,7C`hw/%8שAx7}4 H!r90(ՠ>GP{U _#P&ʈ*# C.p$" 4EpRrb=@ ___1(K qV".@w 4"῁f.?Ԧh'/F91@|mYWANgD`( Fz@Q3 ja"@(# @Pơ@ ec Ot^0 %p+ Qh$z~a[ qvB~ApF!m υFڼIw6ގNg2XH\wQ@"G›vicÛϸhr.vqz/Ì^k!1_g5^u@>*9[`S {f7m@wZXٟ}Y`~w Fz$Nj?]k]:l=gU>5w ra/u>ʕohsM?R-Zm?eUI{TK[6Óv~I^m gC**"G< B8W?r- 2x/ x,{AmԪbR{*b˂O)dflۙ1/*$q܉YG&ajf(&굷1Omi/dA,&Oi*Å|l'5RPdZutJ!,_Jsq!&I9E!IR,Ԛ6~=Ro!<{'9<[S ]tv6Y\Y]Դ'nbV Qr끔Ce4ܒ41ց=zpBę'*˜QtVă6@Fժr`7JGސi Agg =.(yz"7T'fUwEMJT<"U<^~n*F::^XJ7AƂgZq4S$kbc{酾\'*-^QjQΩefUs4CpQb&~HIUF_zw m)QKꢵ:A [%pNX5OqՏ%gGo(.ΡvijMZJwRtOXG/QD{uvkXRٜ>(wkdeC1@n0m7AmoIG-7;/~vξVYDQR:^H vuJJSrH1g;P%Aee[v%Z7{eK#?$a֚f0%)핻ršr{o4y hC#!VOliX%̓l䴰|EN-'9t0OcAmGOl=wXdb^ioŒ[W:MU7 3p?_03Qt'GgmCg-6gLn{5r1p,+'vZJN05$cޙfܳ:sǪ8q1i[jd$G?OV4W^q\RrZiPa!:ٝ'W6V/2U;:|J;4ER}-foe>ͦ=o\!qHC&QnetP\ߖ6(\atD<0s(ij" L2tB20~P@p3>!+0YĂ(O+@E4^%_"=\ B#%+w91#qOfSmp>R+ un/5. SNK#1g/*/}\x`y6*5nL}/iQޕWӭh}#أU᡺ .v?M:YjhǙ99(>"q;{;Ռ&޻Om7mdy#^D0Ԛ37JUfM ~/~IYIknMs wg a! <{}&K&">dҨ;u6XI1ʳ+tdvg225қ(Wn*wΑ)x }5v' -$(7h:6کT$_漡kH Cn]M{MV,$BJZWh94xpwckW_AVn%-nZ70]!,Xn;e_2P6ݏ8w8k?:|\J^stmVoWQ׳Rݸzv >U>@.t+IArq%(ZejyZ X^h}:Ϗ5Uc`] ڏL.UQBhR(ZrZ1>/Mb8soBːE}iEڄK~ k[rRd9Rah%ps]1Qf41bhw`ʞ /2v}LM}*b'«'ob(Э/tHŒOFZ,XZelo#7OZL  SNDϜPy8\X ⢎XE ftLvTVN4"~ƚ`8`ijze.4&^AbIn^Z|^BOz߾(r&@\u[mr&߆dhRa=*Nab3[y̧h̙[]Lq杌1&=dU?*`2Rbboj ]/vKMWI#&E *PMq'hBy(4sH Q{>7DKccz%KW=C"E} hHyJ)ܓ'Q>#%>`"-Y[/xQz@4r[hL%doXD&'"Z3rPbንAqWy穌?6ѨVfiW?)Y1K|TwlfC֘E8QBe]rUx$Q *@{{ՙ+5MǼuꇡ:kL䷦Gͫ]K ;Z?ĬN#%<MyKI1N")WRj\$J6UlF.Oa|[,D'[nt3e1Ė 17>P &jZ5aZsuwC5[u6W7ӿ;9)@TiJܝRj$w@B O88 ϑK|I|Xb긻 :sZE%+e%"kY%#D2ͫ$)qH`{'̌cu>ˠ{p=Pɺi\nSbL{u'eA6*+wrxTvaISdT%jK:Pf짧kk4#dn3HcORE mHEZNyL34v2E=º~Μf %V &\w3It`_$'K tN_VP,J8+;lJzhVhy+'2lp'q\@KwZ5$,06M b|Ytg%/%*:'ox?ki X>RC&%Ad@`^%]Jj <3*mInb\B]&~9Ywe b{cwRB.9/n0>x~k4Qo7pmjw}Kĸrw_Tܨs,X *07bv11Vɴ%pN)` ңYM"4ϋr6ZRAn9 }*~38n߇ix12 'AQ~{{öY)wePPF(%'g\1.{Gpz v/L[hm^Z; 4xWZpn.q_v O WEU..%E#FYN<"UZLG}~a" \ykiou QY ٌKDmAa^O7r )?k"Ùq+B\F>P&4Tu-3<Rwu*.S2!Ǭ֛Z!K $HJ_٨w'0?20_#Kyo?^"$F(o&SX|*4R$vx?&qǨ;壐$l2c${ݡ^E:PpOqBH Z ::֏x뼦 ˲\adőHidOkaF* Ϻ "> endobj 1908 0 obj << /Length1 1610 /Length2 8532 /Length3 0 /Length 9587 /Filter /FlateDecode >> stream xڍP6L7H7tǒ%H ,,-]҈t%!-! Jͼ}s;, Z<0K uypXXp AewYT ("s(XU"sr[qbbܿdA.`+ (@nrDhe¬ B?Ý<<mPk_%X9Cn ?=?-@߯z^N4"?'QlBZp7Ͽ E8@ lXlP#hy'!< )B[0(U2xMrr0OG@"~wղ?U60% 2 0Ado/o??2`ןvP!@ :Vb2d/YkVv CPdž5+So1J=Rj5s"  /DHD 5|P(`sO@~Q(oDh7 Ag/(sC!rB<>P C%" \.ADnT<  r&sVn.ܿ Y$^׾jbz3vEQrL6e#"<Ϸz̰$k/}cdziyd:96!w:="#Q-[Z-l'F?$3[iJF 8'ϧgSoUpc }Vb/*\;(PO'X}v^R N9&!;[:.?XY٩(PIUW$:3$be-xmtLkBDk {m'\E$|J No{swF "bĹ\seQI<ڂtг{x_-'NEY}{x9c>*:ax0 TEf# ~z>nclVO2R::Gv8|l-iW?M{Ij6QZ^hsO{4}EB6\3o0*ޞvySDƞGZsWvDnsq $R#G;z|l_$!nTUװeE\I@ohQ'?XPn~~GkU~}n,:!<䝾t@dc@}6ضVn:es!`mf–鷣o﷮53d}J[s*niOh©~dM2+k)Є>cZBM8@*WбDrVRA7Uڙ`cW5m _7Gس Qٽ7&»Rj}[=Nuclm IגİmrϚal4rɪ챓 sprɃ!'Hxn!Vdm|8tqBgo 6 !n1La`#mkӷn,JfͨH ;)CCmXxf:tZ#QQFeN>11L*6;P&30&/G8oѐIh$qa{ʼ@Ƿܛ*^(hǤrgJg򊚞W8JE8z!]k 7n|-!'$Aŝ(LAQ7Yu7'o밉]/XS 16mjO]"?q &CѤqP*`\/@Iwk]g-{msΰ{ 4Gn'͗=xX;x#4=# &DAL[y' 1"nvxٓuAlphv`/%8nΎgv'A:D5 k5',9; ,.87}l\5+ǤBt,/1:cē9 d31WѮju*͑ ٕ:M7@hu?5yz|"=^Uz_뽰B =șbr*iN[͆##2.3h:Os=HNIy4eɬ[B S~}v`%h~?t"ಟ 6Ψ/P_@g'-wkd-[CbRCܫuMXJÜ{ 38ce6$>Fl2V.F[Ƨ= 'y3B=øb@x.sQd"#ZvBYfqR.!: )z z7h§j]s ¼~.O׮ _nꦣr\I4 x(o3$IpiyܕI (*p2Ǝ>_<@j `,@Eqjj>܎u}¯@Tu)+7pr2O]'9ojjJO,Y"3~n>1Ў!b 9n+%FMqJޢ>P 0~V+B'uFæs>u<ڧO@Nѕg{ǸSȶH wK/T= yt՞tKeиJ/uK(C;oE6!QWھ3%S :VSsxB_:|GMH7WqT?4=?$xcs۪-ۀE-.mRMRy:S8k}߰*$5dW`H.quF*~]A<zh&NktegTyd5(> UMenv 20\L2({x q^茫R^ :]XX("&2uS"$Z6u 4qR1^#m05u }kc#r׶ҕ"ǘ 7535^.+dU4廋C@N%y]Caē!Jk֡ٳs4}Y*Omӡ 0@1}'P3TXɬ}SY@F {.`ށ4dzT+3| ˂ҳq}3$$45=q~Y\WAcX6ÖK0wP<H &UcjÌY+)FYb *gh嵑th^ӄ{I.4lˀXʣ_YPFfJ/-o.(0IÇfnӣo~0ΠUCei|ǎg1a7- _P/0jSpޡ!1LQۓ[# nl}) ߷'ScmzK!koQY5O;x|(Oa%u9b)=c5_`_ -t;<}fc,,B `02)?QBEj v GJ}~6V?v^78<#̨_$sɔm+r94aO=qmvbFVLr'װly}t9'Y*G6h1ćmѰ~6t3ۼO#b:EAksgT"zݗ4 _#}KR. B\Jz.,Zn<@v>CE5-·GRl'ݑR05? WUP٩Dg_`\r4OG-pĿi6 /Q)Ge(!:ݑSeja0uҸC5;Z6N~uW>k@Kf@E`;VRv=n{zNKSQ|j-H+lC>[:5Mc䞨c)&gغuiT'7G}k"g_h t- 8'&6{WCMk?nŻ]o藂zoڡ qGdh]GgNnsuHt^I/4ɰru:z o<wʙ$=rn5#ΟUf^.{w!:Z{7 aUo!3(.Rpi͝ZkWNsuXa6ޝ+I77y+T\} 7'Զ鉮N[ڭg:ڝź@ψ"]@vSOV7iŠ7%lx7ޱJW馕Gz>c/ҁ=F i}oݳ:QRe ?{X:_[;RɈe9jP =)Vɟ%z<ʵᑕgT\8`TmSOEڰk}˪mIEr69Yp[]Nm[N^yuhPtzͭ/;{$)=Ȳ??p9p <FxqM5jTA&$z3@/PU$NHljxtdxrnAXi[R4ӑؚAI[ %Hc^1ld$ɇr-+.{o5yaޗjMMlLĉv]<\ JO:"/ of)<-{/Fޭ@Zl/)j\ޯaz8dQoCAB3WwSED&ǻEy}^eWĹ=m;he!yY&e&jQv!(=s\ꯕeZPd4 #`N.7,ԏT R9-b<Ň{*A`ĈyC[Ͻ+r>iI+ c!O1ZͫJyNṙu nfNʂLx>H;KҳU1~0]Bb2ՓLrTҪTfv?s_ʽ^@Pby6hZ`L&B b7hKם|Mv|Іo'Rv-É{dgs1a1gj%o$ UD!;F/c &Qt.HԨ'r۲Nv׫JJD?Iw/;8:UIE.6t),X ei񹛝 STQGH?3 IӍ6{Wʇ!ƆyӹFYAo#.a.&=6IsYp:4 jԃyl e3de>k%N2Atpȥ-j[Ϋ$݌!]q}r[;I(Hi!,ge >|Ka=||B b #~Rgir*Ț%W3=`JT F'%)\lrxrK:Zřb0֩Dm+[F}-JŁMӨqcac{?}3 [*P$|bs:R\ ;"FV0>ứx/ϛ3kԆc]|3ƔA?,g`$HZ'$TGarN .4RzVN_c,g]_.€NS!KM9VkG.A 7hð/ˌ/t HB6!OMU@av)*Z{eͺѓTUGT[PхKhȞ$es$R8mXOj5V~`όUJyiZ8StXvJm{A!pNk'm=P9 1%kqls$+\yVAn^0z1^7_X4x UIvNE ndt&S [OE_Ѕo}?Nم_yb'l[-+7ǛhqV*X,Z'e>=hJ@mޓ*,i'fq憇 ]Kc: mg%Wwйl=#eSpJΧ/@̓9CM.,SvZ?aFCO._FY$ia Yҳ̴y~i 7DZ4TpNK곓ÆHҔitQimH0$=iRq' iPxOq94 P]Q/"ap<3TI>J$JMwalEz3{ ~8{s7:vc2dcQ*[sfG9}^T1/x$~Q݌6vmyd,VDmՠivWJZFp\ҳLdD̻YFgAi/S"{S*BzCkE!-U bnw鰋exIm񰟹rUO)}(j2ʐ[jgm5E-Mֈ`tvʕ6a)F=Mtsk/lAXP1;<6.Hj`ݹߕ&6Cx1P-_%BSe3ɎɳWVOrnAUyj$|b?3rir 7C"Ğj>3EgjC[<|UiE]ߘ#w iL#`OA"bdvreo6I ٚ|-v`;/ΨT* C&'C"SR5b=36EIenw&oKFU2I"JuIrS_ p.0;tD=$;fIMAhԸCoѸGʒD6#͔K,APƾh8eCHBdD:=L+J9,"^E󐛜fg_3k 08ԕ?VJrs>~؀sįὢ!nĞOB&yai(E#hЏ$뇗1DЭq\6Yf1-qW,Gid?CX GZL2jHs"X:r"GAaܱE][Bͺ endstream endobj 1569 0 obj /AEPVWJ+CMR8 endobj 1552 0 obj << /Type /FontDescriptor /FontName /AEPVWJ+CMR8 /Flags 4 /FontBBox [-36 -250 1070 750] /Ascent 750 /CapHeight 750 /Descent -250 /ItalicAngle 0 /StemV 76 /CharSet (/F/a/e/equal/h/m/n/parenleft/parenright/period/s/t/u/w/zero) /FontFile 1908 0 R >> endobj 1909 0 obj << /Length1 1700 /Length2 9030 /Length3 0 /Length 10117 /Filter /FlateDecode >> stream xڍveT\Y6!K4n 4 t!hp 4[ @pנ@Kf杙~ߏzzvծ]uX4yd0E{ $SV@  ď¢way sr#ős]l`=j  󉈃@~H?D{'q< *3!^2v0'8]av!`[=sO]\yy݁`;g7b xs9evt-]N0!"0'C~*@'|k@p GX,0*ÅF@n`-E-ƿ*t8\pUp  {p'=yn #K:"0eX&lV0}h,XNP/ v\\av7@ 'f'~'0|o&sGzCѼ*\[V Db?`_W@e=@*?5`G !K'EW[?? /`h_kk/_!?Jt;[ u|`!NN7yh! C$^~ ;@Ž+ N-::M `,y!kFjȡq "6b@L""`uqc,PU|EJήgCمv=?OG j l1J~Z_ARpU'T q.+Z̧ge  }R}lAmP""6mirwa;39U?&fI'-OIE3#?5LܥƾpK}m_h=+[d @xJ(h>9lδ Yh2sܬ^ծRLSŽmpY-%tR >N˲mC7.|sQ>͡8{?E#&G:\8{|gh͘W|D?ۘIL'fYm/yt'S*v|RNxZ^ϔoa'}0g \HJ9$+dֈĘ xK"j>:ҧ.M^D͹;.|!*V厑c=¯RcnM?aXa[KYPF-ܧv@@Sj;}1%LB|."G3ћ,GPZHk-o)VOɺ1Y$Ѱkh[GyAd^2ҡdK?Bbܧʜ֖.;a+QCeE* th%H @>LQ*DYO!ε?;o̔B4Lxn\{3>M gg )W.M.wI%c$\@nxυB,%oO{eC#(Zݪi)Carf ˲ŒZ߲.n)s;Eh!1M%[lɨ$ <7M;haqzkS Mt]iVQx3S$o.eݰ|')WpZPk1nzjMQd|3>7nbӉ "*vɶ lLN=>CZuI 71g;Pe1;QVfs2ZM&2iR/,[w*~*D/u<%w֣&A3Sb`^1?& ѱ9,P-]MXVA̓?/ȁ54apᤚ&AE뽞u^iԍҹulF(k,GkZK߾_[VQ<}苷0K]A"3U{rnO~{], *3ŷ0OX0_jyʕ+m'/3BZ:(ˠ0/`YvSe4Ӊ6O];ӷܬ=.KW|߁t2M伈w_Thbk7[O ?G^PI]ݠ9GP#ҴBٶ>iBH)Αr让2U#FHw*ő* OCpOuS1hg?EOL] #!}NyLؽ4W?JDg\)*eD5eMnS:FX[ݚ;|ch76}Pc=pXTb)0,p0Y}:O襦aalG,o^ r5if̰K1'F@j̿ry^ ;n*4[yϫu#N;- tCβSJf^2/DhaY!3\p T8묈 Q)!X*v:2үEHi̊9bLZV߾c!=ȰڡQĔFla'e;# [Pgɪ=ǹ-#jP2#wf3LGuøK!&ڌ; cR@Z63%GO}͗%ͩdҠFcG:aEƱm4ͫ7N*Z*nz) +"5ik .M5~>.P~0vᆶ-e0XY /[f뭫dHh \uc6@|ʍe7H_9&0Gn@=N}Qtr5)Kylv| bҶ@ReIor,WGC~cx4TQfQG~VYgc }\n!_(/ū2McY-} n;Tx+j~=xTv)I4YQ@/5Rיfɻgz?-}2YFo}`NΙqbCC8܄(vm<_/%S;XI@{T3t4Љ䗝Tfٞ(Nt >~ܻ*Ka4F16*@Bhl9 Mc~TJ2,T~QTDO$y{_>/JnتxB9oEdE [3|26Ik X i02=yI+vn,_>!5U/9i|#Ӣoީe^joNŜ!ײPVC 8dr K_ SD͢z/3@:76qH*+s$G/33Y<)cD45QS6{M ߹s1KhUMM( &? vOCiqݨړ |Ǫeg7 U4NQE(:"v%>3X>Rͮ8'ߚ-O)G{汄kr3!?aw?гa+2GG^ZݟHa7W>2F4mu%!_;}`Cg)[ݏרai5l!%}UAc . &${*tHD屯ۋSɌ,[o5OʩSGn OgzCۚ,RNJ_~wڄK+ݟAAE$j=|f*p3 kNk̇UNP~@^T_ߔ?\/n؟NFXv*HD2[˦# #o&hл[ChV GHFUgNP WQ2c~Z{ k|0 zRm_k0 际 e)e޾Y@~q]xw_jmFJvB:@m&CBew,{b =s&cHHs8OWJ[}]^N6 lyI^Y7g{rvVH[-9O4zHegzUs0wE5KQ 8׈2KaQ R:Z:Nkl*{ k8% z;Mp1r?IV@q{NL5t9.ɑ]M !-2;G9F=NB Zy9&Ӣi_W}%'Tى)gÒiLhhDPƚ']O] WE6DRVo݉Chh= ॗD!'tx=,=@ays5EqUHd.G53nW90u–IL?ôf1ʳvܽH(;@]Af1h,59RPv.L||4S]i|C0e)nk/ҷ|7麜2]*>T/bKk~)Q0p [r ҟG)vF"+L>m҂sVT`*~_@bH N6=}1{_P8?x> 92g!gK*)#5# pG؋IЧ2($reP*~Aۻ;Z۫[$x.~T˶񬅑k>uܓ`#BV"ei^cFM9s83/"$1'P#6-J ]j]1C+K̄ZtȞ` gj)ߞ)1n4ճJgv X#MlwL8tܕ1 C<>i.!KЧdY +VGx1WvFhqP{S7 xu?̜% "Gq.(".plJģt-`2N lHޚU|{ݳ(‚$d:j;uY5"E~g"\CIH?JF'hVFN"Íj^\u>rDg3JhY,}ۭ4+vQ+E Ug|&ק3Ï^ٱ`7渡`UJB]湊*O= {r{,,o ?8vAeG0yg$f޶=.cnvEtXR7d3aZ]cfcѪkt_臸#Gufb# (xX M5%S3J4_$8vtIX"fK[sUJ}7U%7|3׽?:"< 2;0`Zb ax v`<^|t#r%P 8BieQ[=s-;~We8*7-~nߥ=;I#G&#+[2=%c\[6 ǫG$޿x oyƫZ%|`Vb^[.XyU@P`"5\3_|&C+瘣]r'c̓i].WcOl͖^ ~*`48|=H87x8JU􆄙)uڡ;ZcD<)@kM?O`tg&¯b9TI)$;֨rxE$`} N&0$KУc*o*QzW|Qh .3hG"8k>VHO(yF"%,VP],nv3C_#UW#ïzW(6P15O8LtYtΕlp6 K?Wℎ{;]gmSU'<~wsD x?g} _;TJAV6JKϨr[}2BNWr 7H9*(+M4E(l;Nv^F ڒkHeifi'jABźԄƊ%k{:yiELI&ql'w Hsn73Zș:eriƖ>B?4$I_D$Fq'cL1bsv:*KFt9Cf/򼠛JǢ(L^Ӻ[og.IhA6"(]&3K%>ЖrD';%xJp`HZ0> KI{uzr jH{"uy>`*dl{\/ޮo,\GrHa5KW2?Lc~6\wm5?anm5-FH6x~@2@MS9-)QYY$h&?a)!,u㨶qsƓyh@Yh:5"`’* bF'e.]ˇ?vSWAjπM3>H)=E.%gsu o׌D JGQSa!:+fap*GdЁU%`L֚蕇eA F c|Xu*ek1"x߀p(U7崊?D ""p/bn0XhR_Zs~{BaLS+TTw )oOl "9._N "*uN1oϭ7Hqɭe{%{ s(nQǃ=Ѩ [s$ƍ Et bzB{# 5/4ni=] ;m,2(6,ﰒxYHUɜcW7qpdUi?քd tƒW Ga_.賈g_O[Au".Qgn>P[+hiĶ .Qt!͈}.gN}jӪ泊d>.;Tn?̲;ǡi*7KVZa+g%6v/~&KV\rI,;w~cͤF}*wrCuneV$Ϋ d\~u} EƷc8-gd,t99FY|J?+ԕy]sGGܿ'Hu6Y 2Hx&v_G)n EՃCDq^YI(z[mܳXu.FeukbF7wjbd#-d'9~]Q#jgf'l <\h!R t#"W2Qew^c>Q;%$"yesg)5TDPV>*"pk֌%Ur_X 2” nƌA*878%Ku9ʥ6: J-Kˎ ΑI9#!ml'aۘg[~m,F  tTëO)̉mK:ɤ칏(`w!tUp(|6AN2 *AYHG\=ٺif>Bȷw9zbGbͺ:h? w!)+I5aoN&c6Rn/o1Fo`X]cw[]\ڽln[㘤Zm9φmƹ 5qgkUW3j0V\m(FQcq0wʜjM5Qa\T/p%=e/ <9aظ|}C0HFn{,tUG=tX#z @+C |?f endstream endobj 1510 0 obj /JBFBDX+CMSLTT10 endobj 1483 0 obj << /Type /FontDescriptor /FontName /JBFBDX+CMSLTT10 /Flags 4 /FontBBox [-20 -233 617 696] /Ascent 696 /CapHeight 696 /Descent -233 /ItalicAngle -9 /StemV 69 /CharSet (/F/N/a/c/d/e/f/g/h/hyphen/i/l/m/n/o/r/s/slash/t/u) /FontFile 1909 0 R >> endobj 1910 0 obj << /Length1 1757 /Length2 8614 /Length3 0 /Length 9727 /Filter /FlateDecode >> stream xڍP5Ht ,ݰt -] ,.%%tJ+%- ()) >׹ea㑵Y`.~^@^COy@} ˎbvC`.wH ԀT=~A K@[/@\}!d6~qqQYg;!Ȏ6 (@f#|S]p9ya/ =_ gxqX=  P Lpz*-Wp?/U;dcsv@\v(΋Fp@.AP8 A kdJ:6W ]la` `9\'_bk+SXE =b@A q@ˌ s!i!v`/  =vl!65OulF 0"dT-O髩+kqIo#"۪ yTqxx) ?0o wwUO!P?#r@ WC\ 5`[zU ȺCH\ Ն lP_s@B\08t6Nȷ 9.0rRfkE ww0aa/?rKm޿ u!)$=LE|O~~#1A?Hg7A>HY" |>ȿ :_2>ؿ PI3&Ad/7lk C"]c):'??Hy!b͏D7 m<ݑ/{_ LOl$CkB[/eixև0ۢ{#yOYVPjONp\{uf-("P{Wxtڃla#QD:VhlI7a]?&g@9!C "N6m5Ƙy،04C_OH\k,UzSV'"}ʐ3#Ybj#UN\,Ip%o3=<kSTQ1ݧ5hH>WoŢ)qx=%vM7פ J uOѱZEǎ] ,+68ׅ+_~WL\_H[d}F+Hy}C0E~ȹ8482d#떸GŨyQvCB={pYTQ,$ta|!x|ʍ7j}oUr1{qe]Z]r `k!Îb*xS`*z~4Vy%s~'?1=4屮 O#NEN!mc,V\A^FXM]-6s ZЖB,iJlmGf?9jMpl 9`seW<بz.u`{qD)L6am0i?=c]O!U6-Z^[S II{ ⭒((-!o#UK붜pI9A_s;i\Oi!.Fc^m܀S$SeTYA%+˳3ط>.v$@cǑbl'R֥MJjQg5~Pԝ`4} ̠WZSbny{:ьg9$?ÇN(+ *fn8k!1ifs rIra0or*a ܝmFMcBpHf yҤxYD!'tw&VzL[ΝQyW~dBDZdk4j=.}C\D{PlĠ fNϏiT&_T!r̻,gTiV47,ξaܷ B{qr'|&n#/(}aI:0JnѶa#."p^h񭰀7>@Sal 3ڑWNS + CN>kñ|~(3v __[qZ'muOsS'ŋxVe*߸'/(P{,7%EUp^K]g(~Y{وMek)o9 g9ero[@|x{R:Kg}0T(KL_5z,]b$UU(l. ]gdd#I"ǯCnf[(=.I+CiŸum(^}yZe&*˱P;IY|5*iSm9,\Wx X/N ahUow۾x>p#z]p U$cB[?/<̽q`5`^7LFYs1؟ɤiKQCy/^"P*)c*c)/}!z3_vYpwTO=X۝amoCYأ×pD LhzC8p`gqj0TP˚9J0ШJRvb-ba8ã삽'Ǭ{~fI[unmv@:@nǹ9K,?Y¼`ro%ʂτNČ5Hyl3%{S!KJ'YI9|HvPS{C@[LtJx*LGq'{;)T)!y h^}aU1b/Vx(2> 2}0 ]"g*,,:m2uF 4{`"UOj1KE㰟B!R]Vg(SJ'ߴ@^(PQiM [--2-r[c}8S.ߥ5dd eomH&V͋nڻVhgFMׁzŜh_}s 1ߡ߈Gϕ ^R'6\+^?eBbuACTRueNG3^ \ߗno^۴ l/ٻ<i`8Kw}(UN \Z_8jNiX}7ēYnzhb֯(-0n.ӿ+,n_jOL g2ۗQϏs90(չ)ݟIHۥ^RȔ<5h(] [Yל`cs2k͇tN e/9A'})'O$dQ9͟'>{SR@əmfOWHqclͮydE=v*ݍOL]'pc/gbW:puISl{Aթ#a [,Q/v2kaxKO %ۣG_sϚ.vH練ggpUj4K:,˯xKHLzbi$:z*w^=gzh|wp-WD~wWpԉ~$Vy{3y+ *5sQEgLaq4V!9=},6Z).03KbDXk®U;-jJB#GM7OS9ps7pM+#>xyYh#n+;s0籣G,u;v(GJD{Em'[j88&D8_! GyZ/;t'4^!& VvU͎FY"ӚX1r d55 x"gFs{٪r%Jɹ[7S\v!nU|qD^DPж}MR1ƿWPR w蠵=؟:.n4*rwURB4 T?tU{)j ]p,ըB/ `;n8fݸ21y@6xv]nڗ.b3l>ʍ xuƐ=fRR9n^&ΰeyle4:%Oي8|Q;U8f}qM hDhGϹ[)OoP;Kᔃ/ y4GUKsn }&2[<:9|SEO19Fxfof|@pK#1̀u:8Vp7Go5->YW j RZ@z1kSF99gӦ#κڮJSg4}Nv/ ,0ԥ`m},TWsl\!C yZR\й>{B 谒Eqa/OZSzj{"]^5M7pOAI=wGm]:YnׅYmLk`եI:S,QBCtKx ze"?g,^[0BK1r%XX^~.v8q(-<Ä6i[6fzolG4{4ml&>YdN|3[[es]N1E_<2n`S+- M '?mōO$ `q)Ӿw;nڡonf.~<-Ȳ+}rC!]4O2TxiA{M4E:#r{wBi_:e _]p¿#kQޭyCα+OfEd#N3N^F=U)}#{Q۞nXXĦIP03arEcXlCLsӋ;o-^ P%`<u!6,dtڙJǡl9'fɪޯ}`EM.^🗷Lw F"(9]qy|)"~c!Owr,JHW T3zhJ7CL;&ÆRmG <^le|Τ|-9I|^ͼut}zb׃7_xDu?0L'Eĭ1xu'ͳRUI<\f HTu ֐I~VZ9!U-3vrbLjZ{·>X1ßP&W+t=@8y~jNp4]BJ YPgp'ӡ{w۫n[vw!Y;~k⿬%ك(rI|i((2 Fɯ*&|]f%Y܈o4c7'=&f5cds) +j7')ȺV/πhY ]2/Qts3 \i2NehE%񅋀[m ILǴՍy\3zU\ϐ[v -]"v0iVwߗ!_}KXz6$a,wq}Ϸ9=ziUx񍟁^֘hgr7ݸ5 Ck[jj;¬»ƙS)z{1u7UL/`AVv:m=4M 7n7P ) b?S=- slxjU)g4 J.!8W9DGo[md\R2׌pLӰepnAAKnq+<[eN#}/Bd&ͫ(HLIMYzi"WQ/}iX!/% &k=浫W3vQSBZ=B2A4L$-eaƷlͳߜKG3ZB­퐤;B6%LBP2sd p]" y][5/ CVۑK$%uWƫ8H0픋IGi,߬1tg)#5Wo9¯&ǾU3 rr5tJODzi6peC>c?áe&*l#'{< _jUd;$fS%4{ r%R7 yciEe Mym%si;Y_m]c8X཭[7k^!)DF %SZ|>ޯPq GX%i r}_"^C~V_$/lA!4,6aEMV) ZN ?[f\ <*X=Q{ 0*h9a ijb>NUcVZs䦍(t~:p|,[nY9 Q|(lIϖ<⽑+fI 6NT4H(_zջ$ZM! д+C7X!n:wY_X|j]7Y /{o_֡@: qX07Oʟ3L 8N*zʿ$ ժ9%T6g=؛:<&}}*n={)a{3'6'aP^'o,->d;_̕ΰyNKɚ/(~ s FǙٮ?tӓ4 \ +M+Q o͔oC0򗵲{$:rF endstream endobj 1535 0 obj /TKLHNK+CMSS10 endobj 1527 0 obj << /Type /FontDescriptor /FontName /TKLHNK+CMSS10 /Flags 4 /FontBBox [-61 -250 999 759] /Ascent 759 /CapHeight 759 /Descent -250 /ItalicAngle 0 /StemV 78 /CharSet (/G/S/V/a/c/colon/e/f/g/h/i/l/m/o/p/period/quotedblright/r/s/slash/t/three/u/w) /FontFile 1910 0 R >> endobj 1911 0 obj << /Length1 1717 /Length2 7578 /Length3 0 /Length 8678 /Filter /FlateDecode >> stream xڍxT6 R"H3n "96m% Ht#) %  RRNyys>팝h̯p#h~a!i@HHT@HH‰((. =ڣ1z8@K KH DDxHT=6F P'g4_.7@XJJ:@ zhg#0F`Lp:HiAAooo{7I E;(+e&P10 QO#0 ?uYe l!ܐp_( u]`w%hC!0^PFwu%C=&?CQ^`O'"aa#8pX`gL=>+! ~~L# hxLoRYK beC@$0+?'ϵۃ>3`&^*eHs!?x{7(O <{1lE,߬#Jp'̜ EC}@(, "P_FKH8\1w ӲY!8ޗ3_`##&@ABA{_)f0q PLD $&h/aj$!D&4 CC$b0O(`4vˆB`ǿbw}7(1qߘ$IE8b>\`oy¡3uQ>u}K>` $*Fޛ(JgLec.~;we;*əz1sB5XjkC?^;tNOc(%2YZq\FHnRxՉx pӣ+vnY-'42‰&*]JM@SjHJ;~,#)T9M(,e$V"HvKSmɃ N*! 6z!fr{l׳M~48PŘZ 7x4 :l(wWV&㜋]{!KmJ]6DC \HSY.ضbk;@2|le( U~$ha W UamNׂmy(2qmPm_JdVVUKB3͟H;;C[]ힴmss}fF,'Ż-S8O2`u)p_2:WFHTάE=\ ^iD/d&Go{.Yfݫ 6b]NZSn0.EVW4ߍ(~ڢe2d z*r+G-e)J=U2u, fK?ITZ!.z(=ayS+7A/|`!kŏƴF7Tps UhImrGr:\oS?v6΀68uYŎZC~\S0$ءaSV_glEA7jYݞ+:q*bY _q;S3,23AbW4[=iqݶJ*g&\‹t"PAX"f/cN 5, k1'40\<Ԅ cU崑\SwivKEkdj-N3 N}W?+gL)`|_\qgJ߰Z`9=oۜzh ek|thM! KK\oBpLZ]b1Ȟgro~n:Ø5_&q38HI0S\Yb iFPX;1yZFi-7=907ǐ%ž*ُ!CkSIB9~`̮R4[X /˲>T#=t@R3œ zlKJ2"O _'џx){55$JK@ݠ⋔S] LH~vPQ`e ,f٬MhQfOcEHmKHip% \hXgUIjL1S .K,wby.D0i sK&BYO~ ebR_k};hCr?H$qHo+%oTiufaKll,؇jMψY`}*?1>p69qo =uyu@ܫ Sfhi#8n?X I{uPHHV)gyCωe"kK{~Ѣ*ġdbaJPgc=۵ĺf1Ao/HH%پ4l2ӭ#OQ)8ba7ލ>P`U|(WZQ6cpE=\nKfm2sï~S4گZ, zDZB}/p[+d S>4V(^`q .UHD*~B{`{4.#g1UT } /?UP!ĂRSoVN΢Y#J ܄[u&O(z3uǖI~Q^YKd}ha9du~Y6d4vxz.@:> {G ؋ʒ:(aJ\CTzWZ.BDBe(T"4qʷꆧs _KZF F9+8 `bg:.R7v^v5=vK]hɪ!.e& })V$98k@3նdbE{NS]u)gng(V^p5?BƼܽ4y?)0ibO%BoƸ?Ox&s䏯>7^<{svG^5.2v퓦һ;G3jjCh^CXb3t nxIr)e;{9ܞ~|!o- |08&5f}gyL䛲g9$OJ;a"ț]ꝑ7|L7Ѕ>L(I`L)b\r4 .>=dۭ}5_DZQ6?ȗm%i5D bۉSbؾ}X?[ yRn#Q y|?yGrgpw,Y%y6:F]K}EgXb4zHUW[ά w'Qm;>WK.]ɤ`2[pCY߮AϫTpG.D@y=Q5g8^gUeqOkտYt"#y+Yv%(*NY2NRosYj'^~ߓ4A)]&pjjwؠd-)s6險ft C|ɧ-wKrm=Qx'':s@ zf\aۭG*&~K SO/CcՄg9ۯV>⑅/?,}D/ )?BxjK> &ߪ?Z:Y4ћZUM|\whCڜVsRyMU)1%-<h&΍Sa)r?o]w>xY qPdCҁW͇q6]a?<>b rHd8'~2:N&34yr~9`1]%NK;M0EUTFH~T-TŤvnBzeGG`1Ց:JʪKF:STh˙ߍ}&y*bNx}bos$6t}(_}E_y.$lm@r0^?Ͷ7ykNa0LF*"jȪDB_}Us2df 'k23D;EomQ*T>Lsڟ~*xvCxORJjmÁKū@<$V:hO 7zOM @."*nVE* $C\] :pF,9^1SQȚ_E8,fIEɣ3O9-x$j2%Z F8 mM*r󢍳ĉijL?@RdT>PW@ЌɤVX_;*>%(&Q%Z oִ5@ugki9{.4_P^Qw5 L;7cmUnNzksji(%k.}%A7yEN?ktX=3Su,b.%I,kO5+[]#{XK% YQM:$XަCIR-Lg,U-̕UסX[9\rMҤ1ۉ7ƴi8jNJ?x~Vg+a;3[{NĨ Ų,L|SJ6%d9  djvUFCb ~l&(Ad7/jUI׹R!]~Ňal/ /&Ut }2 ?u3F7/e b _WK h%'`?c^6Y IJj<5sy\t4L|k{畉#kj ލsjOއkTȻTu i_GA!f#=V[A?2ِ)zUd{fh"&;lҼt>"4ýlll?i6\pSG#;E$]_[LW ~Ы)3OߗUv(p$T,z-1ws}!V(֌SNϽ*E w{_L|B=dRc0s.BnTSOfs9ڰ[i"y-7u'R;Pm둭Gq"bhZw8m|1d{Si4x4]J#IN;훯A<8#SR=ӆC+c<@--ң vJwc7.Nնf"("(h>J3l}JehXT*ntyvY)Q[u{.c߆wTy.҂PP\r*Ia;'ifBc`ץ%d&n{`˭/lũ *O8>Jc:g&mb7|ɳ.o2,V5Pw$^c3-crxu7Sg7d<ͯoM1M~i-"m\JW&DY%5C.Bj mL Yq:'Qa*әVp$/2gEB|@"9> endobj 1912 0 obj << /Length1 1393 /Length2 5904 /Length3 0 /Length 6854 /Filter /FlateDecode >> stream xڍtTk.]  H"!ݍt C0t7RJI!! tw"(9kz}|EKGaU@Q< ^>1OMre&bӇ"]a EB(MBǩ#7GH@0k:/@"0[;߯'i'(` v" 0(_%8P(g1 Ãʋ@Jr>xPv+ ;A %b\u6(0 @a("]e53'XOC_xA)WB0d0prý`p[  TPEyp_`GW:9o(Hkhs a(W^W/_eS["p+ѯPz^?u#<>l`pk_ ݜO07_!h?6[( HXXPu@=!v__f4?g3 |\P ߎ@ 5 XAmapP?g0O { ߯F _ <>< !#!ď~]?o A8_e( A~x}!7Gn v9z - uZ5:^e-i-< A^>?vjCAU{8P-+_> 诊+za]PWAXR0D$2z7 G)4F? Ik| J7$@[P'B43< m^!>,ި;R>N ⸋u)`cS \G?},񫬚&ɊnQ٠Tc+BPLvܻWrbiXڨWB7 ?ZAQBk.N5T3# gGjgOYs xM8" B6dعF~ OMHy' B^s(gEdp'2&j JUKiO~AG/¯zi|ڝJlúCYݤO>~&cl>+%L\:[l&xGTJ 6% d_gh.l1T-KHZ0d`a8N0WqPDJ HNiġ})I+VEġ>&@K@JB{wx/rSf)>S3)05@?/SiwǒW:T!Gi$O?87|-B zNGe80+nUX NL%vw QC&{[6̘X1^nCA>} |y!%WV}WaR6cl/YJAkQM\]+^n1Ǎ+vTg|vI1x302'r\l]0?_"mR[snT菍) \ȠYγoswsa]C{,So3't8sĩzP ,`,^ʪ OoQI^wyԸ3t$]S*aLZhJXD.؊>׳s} zIϓS3c{"JGb 1 zBXܟGdMNP+X3+`d_.ђwN yp Yҩ6 ;/+C"}e#b-"E1[8JT>^֪^~](11}ԭ#@yjRlGv+?0^$l6"K}.)yb ݴ{%' ܑM_[!ief?`=90~o7*<;rc5[yP z*D^ #~ iIU*!|d2D0k}w+De!=_Q).Vn|[aq0NI,$kfNqJ@wJ;C>?9ݐAK7uֿ+MUkǤzo5_\҄WXuE\LfS]k5^nM;OO*Gn8bFjxfM1G3TwNyJnjZ{yB"V,Z7LbN-7=)S8~*Z72YT廇CmsLt$K)X̢R+?a ;.OSnGs[\#ˣ[Hqťv5 Vߘ"u1I]oP7CXO#wk}45^~>3d݈=S:!)58EbÖ"x-Ŏ_$ &-󍶒ZXƯ+&xE&wDWHycgB LL.Rk&i>~l߹FwfԆsś2_v[,>5bê_ޛk)I.@9*r 껖v嵝nQk!/B|uK"KxT>*DbglzcƢ. Ҭc$%*7۷l45wL2WlV} dhzel1iݳ0,U8U4JVʂJۥ陛gOqV|fSeiX}IeMqmϸPs"d$ f ] m!g?50K⊪oE,h(V´z@Y Ibi?bu,V%ܣ]x࣌ƹ׫gkWS⊴Jy*_UP[$\ff;, Tgܯ^gTF i9[c}f+d"tIYqiPzYz8mޢO&!npMԉ搘"?WdK #zAPIj *<:\ZOXZsuNA_便ba_g>$:Z;ՠ<1a_KRemٻ=k޳[S"'1|:& 51?g9c|/3%\FAnDY9ό`3HN{Eysw"Ay~3&;{Jr0bWIN=HaSOpSWm_2!&f.(5͐ǔ F2 1^RsvC8j54?Up*ոu ?ƪGX@oē|F;8do =rw%ffEKȏg9? 13Q8|L…-N5L+F^VqOso\A $A4AzGǚ#P`7oGeeu#:+?5vɼ`\ ș p\g4=}M%:{(V1p]J9»$ʃ|GBHCe|/#>I<e&sN$618G}kl` 犌,Ou*m"Zb@I\#^=mVs.S˲X W{0[^`g s2椁F ߤñ7m"^#3Rܤ #m ghg" Y l+V fRz%g3j,.[WRruI?n.>kd#}cYk J1$uHt#Yn:`B)JYl}UFdWK63Pvrk=r?Kر,o1r|UBoɣ!Tr_زٜԺw]:+7´abd1ϰZꋼ~nbF:zC=$eϰ Uq|l|ʨ`!X;ӭ3~'ݏlԼ4!~D<2ܡC i7/f:?4 s|ٱ?9*+ຆ*6%0{NTd_[O㷌lr v:MRmkFlfGKԷ/_D 1R#eֺĽjj#%'\7Z|,CnɞzXPќ+J@ w?2ö,eGq 94K'bpSI< Vi&Z<[Ƚ'q4B"9u,*S1xbt.XqHkk(h~L'zy|kخ UC&^fR8c%Rܞ+f,&A^ȯ"LQTz$6F:}qW;iϾk|21օr--RZNȏYs<%fU='970(GTvy Ǻx7 " YOVd'555_[#Й܎ ~Br|fѹLfï}rֲD5 ;Jo)sW#l"+ٴTJB_F'~7䒗‡ķzTS ?w߼(`4)l {knbu-,gZ2P:>4PZ=3Klj:مxR{%Tl+FiNn<-ZobdZd],9o>.xk36#RO" Bo$tR"i|*6EHJ%;% /pnO>WWFiD4Z]S9!T@3> 7fTcVkY\5Ã-{e-=?+:lS&Y(P endstream endobj 1592 0 obj /PXBGHL+CMSY7 endobj 1586 0 obj << /Type /FontDescriptor /FontName /PXBGHL+CMSY7 /Flags 4 /FontBBox [-15 -951 1251 782] /Ascent 782 /CapHeight 782 /Descent -951 /ItalicAngle -14 /StemV 49 /CharSet (/minus) /FontFile 1912 0 R >> endobj 1913 0 obj << /Length1 1418 /Length2 6104 /Length3 0 /Length 7065 /Filter /FlateDecode >> stream xڍuT6-N etnDIۀl;DD )AZBQP=9u;}#E(D`AB2@e]#s)(HHHa 828La(4_(18]$  KK EDd*`8 j!04Cꍂ;`m~rCxҒӁ.0Fu # 4BB0Jp9`02 D=! Cy_.?@nxQ0 hl; ĆF:@=WOΟ~_w _ٿ #vpgPOM@3{`[l@5E  /xh Ap_޲*tq!0hT({ނ6@z"|:P_ &;LS  IKHIan@AWycoWo/3+h?_4Ġa@XC0@[=: s.Z a' ϓ5^P$05067?>%%W@T( -.JJJ]?7V}0C`^8<_}$0 ?Է`;_U_ܝ7W,tXq ; Gʺ0(忽0V{,@Bbp Շc *=> f :. տ" H/K( %XBa^ !l hD~[W _?6 ;kإ%†fvϿy )$D6̱6ZS{_ڢ{1}te)=VLן)c< ^HxQYR8밇݁"G$ӣ(&{dI`l<\Str j!,:$gIc+5gaygnE@p74')џx/Y&dIbLyՈT?T.MMb隵nz\z֨Bh63%׻L)ܲI>Zn hH-Lh[3ez,ߧLFL qɫѰU X&rSBv4bבWY5UD=0㈪| Nvǚ!z޲^ /)L#u\\ qk]0o֯]?qVlFAV´ ۥ* ¡ɽkϿ-1"q4=9x#n VzTt;[l/ 35s#.ʧǖCAAȜi1‹8= 汋EM^vxw*REr+>.>,| tx!̹\C$#/')W!r0="oޙ  #'ٲ1 'K4x?(K-ݷ/Zxb9xɜ?]bV$sf -C\XlXC7rfU==M@RlC*vP@vц u}”<'\#j-Pyp ]k?q)r&g(BGq(9!q"Rh1>%;sAÕpD%6Y[Ȟ{I?y#MHl/[ؒKO^$p:E;bW{ޡuAݢPTn$;2YWYפ?(w2*L9n9jS!CtLf-ӕGI}Q#]#:Rf\ oϒ>M~/tT}2$_#EjB:Q7M`)w֭nkk:?<٧,%/WtˈM޻Gûp-Ma EcbC O1l}?|zOY"yif^y <ӂn9O$–Gb6k \ܔTd\3s4\ )$t;VejI$k]kˈ]{1o1(F]藡3ݒVcccQvT=w?={Jpě ܵBG6iݎO2ye-<=Ȅ}$5Gs`nrx8Zz+n7Ѡs}!Ġ2k$%RIx2冩Zyx5\7YO= j?MZm,B3v\ة8L/E%%R&\~)?|5ўUxh!zҌoVG0WQVg*T:Q }{n9бnGa1iħ7(>&gnbLM bWA~Ґ7=urT ;\VIɂc3nfZٕ3\6uwsz?սE> Ε6f4⁓j]=`8jMGٶ" hˮzFCp}'MڄL:aD2<%vR7ut%D9KgU AJ3bV^Ċ/G9xi׊l_W"D}"atOO>OH0m()NB1v'uZɱkeۻ򱧍?v%:ͷ }Ĝ[9kO}%A%}NQ '> 97N3 W<[z^o.ҩ\.ѩ]KJ|(.RES]Ͻ=ؙ,g?k2X_E܍g!O'&-Y5z~~,zu&ZHi<Ye.c6|';FRt#abyڜ)FsD ~zat=N$2Ksx7hcd H>V qH#T5x Mc`v J{+Tn?bAxP'=aHk{KMM&= 5.R."2gM߉}ϑ-s䐅$Q6f0$ Y*5DA1;ѧUl[C?+ӵʨ,ug|3WbGĬlۥŭ9=NivM-2C6?q(v^DS6 7(Mv7Q%KR |N޴ PmϦ ĤT䙠!?i)17]:/ ȘO^>7τ:폹xG_Ƅ]ZlBMLLT DtU@M|6~bɫZγ_auPٞxkL3AgzzEHD ʷ&'$xIcFj„@w=Hutx$BgiKΕ!>Nؼ[}e1`h0y"| P@$=t挳Qm٣!0>5d%">J兪-F'R(2$s?O"]#XVis hΩm˲ޓ⬙ߚ3Gp]<|w`~qxzRPZauۛfbl,*eȮPjQ2deCBVg< BYOu?[)GL 3Yj8hSSM9K +d1p+#I\~S]鶇zDB*IyGX+Z4Z<B|)' 5߿ Z9!~7bs1!# `>,VOe,I9+% xn;yTUC"R48ϟN8^(vel6(U;t4oiꚉj-+&ݖ)T5Cޅ&̣Wg KO<즢ObD{9 %~qx[;97G[F%*Ln:I;P7Y)h}87mh Dg.}&o^U^0 gQ?4~a.\U'ޖ"](s@z](:ŊtwzKSemE`ؤ(@ʳ{0F;-woO&uH\yf`{ޗiˆI^z%? q&TiɈ k;q'M}i .?ձƭOqX- :VЏ̄{=3[NN4jgSt&:*30^m&1CT1ydTnèts :b bPIO%,X$o/-Z"$!9'+|)C1lkNOdoP<`꒪v OfKM k-{ D87B"}kkߞ-H:vΓ[.3eԑUޚv=QtK1PKnǷVhޝE VamTv7;l)F &yȘA!2cq\lՕN^/^=o{+hʻ}_6yم$>:QQ`2;xJM⛌*E|^~'>CO&ozth&-ܲ;%mA~o egӞ^WsK(kxjv< !^_WrFH6?8ncNCv/e:CUi qor5r}B|6C6d@r;XN*|[ ܇Z3^M\N1qe?wlhX%#eٲK`\5~H/з}ʷWwIvJ|rH ժplXmϭ\%$]:)'q{`3^ȲJYBVhn|urjQ!J"uKd"+/vXZıײ{]xb;8+8UoZJԩv \!& *2v?)5iY.ΐ421KdC|hvZěΟ+GUղ6NOO؎8|$Fqɖ<=? KW0÷T1ޝdM}[Q% ۆ yQ7sS\;%{o"nuʗ;n%nj V@1/|k{NWu_4ߍOdžcﻮ]o(hϪҡ-G#(<JIS{`@]F ڸR endstream endobj 1571 0 obj /ZVQTYU+CMSY8 endobj 1555 0 obj << /Type /FontDescriptor /FontName /ZVQTYU+CMSY8 /Flags 4 /FontBBox [-30 -955 1185 779] /Ascent 779 /CapHeight 779 /Descent -955 /ItalicAngle -14 /StemV 46 /CharSet (/element/universal) /FontFile 1913 0 R >> endobj 1914 0 obj << /Length1 1634 /Length2 10296 /Length3 0 /Length 11353 /Filter /FlateDecode >> stream xڍP-(.R \/VJE ŵ)ŭXqǑ{gޛ${}&:}.9; P qq5 TxܼLL 3_v @w(G;lS=jB5gOXOD+@8@dA@(<{%Ֆ '&&g:@4a@玶}-08  z@(h2@75n &#Cbv [ U5ڮ@_p>7߿G!dk[[5v؃m% n7` # yη9[<uk. W r#eYl'qqaP?r>ߗxA`;?hyAn@UcM9a!^^^Q~Q u+O'g~W3 ``:a@0 Og3/| o)|2V?GYEX͘ovxq x||E Vk߻GEU= ϿذY@o+k<i*W<[}xֳy64!P#_ yWf<#r`gs r eA@@;/-2{8@ǻ?ѳuz~[W  xFB?Yz)q7{N P\?Y<R@~? P|f'#pw~e @[Dr^\[#}hFۺ!7g1srSbnV Ix,VcIk[m68n_Y H{NrlMg*K27V\}qgyY@/2vڲ&GΜZ2f2ye꿐O>4mP E?H"% zxulNmX5lY0ga.[fH+hE&ZM1TCxRyD}4~ӲrRjVu/.ڷ~hJsN~/۠jVj/&w^6tjV {αn;"D  9+VƑicO vXhܾ<PךVĸB/U3w[` 7T`Ҟ;굏(_*>ߩHDmۜr:׸zǿ|$bkc;xѺ?WD3YTvx%sri\S +HeL/zFVix9e2b9*M1(s}l9S'\4ߤ|5%9}wN9gv<eg=oB.?KE1$GXCſ!pdIeLG5΅a!i8dM5=-hXuO,xx\Ri8v7cHeك~iW2rͼ$ߤX(6Ip$aJ܁Rc5*Lkw1&BxLu\@6\",]9sϠ ΙpB2x pgm$ձ+s=/̱ qHEG6 ׂBg$M6B9 Yt1ۥEl>Ih{,_셩`.޲Ҏf~wH(@: =qm羉a%C‚n'DrZU#UQS]_Oݻ,аߣ0܏xGC s=:$IG#^oG)=_,`HE2ma5)Nv7թGhΛ;۟s*Mr|d}_yEĻZJx,&^B3/PiTIM$oXX8  } qd. V5oSk][Z!(\3vy퉑cm܏oJxĪs 5;4FzpB3\PWܣ_׷sTg ]"f]ÉBkJnB&zMݪ<$ $ mMr,AQ`=Jܔw N@Q3q9CKtfTI8MifItuIN0jqFڐ.<-{'7_NCHoLFZ4V򼜶YG[x|@\ycDzrHz%wQDT4BڽOyzi[Щ؈Fy+$cC\ҹ̑E}Dy.0u^s7?ܿ1eigO65]:J[dl|`0I$MMmͧ]U? _VR{ e EAZaĆa\tI PP$ (Q:`N wBJjqǔMܻCgr>ilv^}MvM BTزu>t>wO*)^(ʯc.p6둿 ^O]d的7RhwQ?~~ΣJJ6{~N``߻s# II4}_7cw̋eކ3+#Jxб׷"0CR]NSz!j Bqq:o>~l\+qkAcUX=hm#c.ͩCq D֗Gg"D_uZ5t$] ?hSH i{12rՎ95r)m&qJF;żF3l38pmztZ}dCt:/RZw@ۡajKAgHTRR[qg酞Sgqxge+ ?D L,'q0;vρ(R.k!O|Sqx6  H"gڿ^n7lC;T/ߺe}܀5vnOsPnKti^d?(chpaLj3O׍R#OW^Z(aJvhMч^1F5msyNllh932ݖuC:1;DmLr v#¼̷Q5j\C~rZf -q(\mUc~[̇6jZ`n(lzޫ;38B$ۺN71cqȨ>W2ѥ0w[l%dŴjկ=Y~#8nuxQsG?Rtu`M"T;!~ڎnXy>T@sLV#2{v&3w6eɸ V𨟂V`aCnN#k~YEz7x;}Dr;}B>bҢr=\ߣrcyĤ䬴L#l4%tJ9{,#W6fw*/&B겡awQ3`P(_ڒ=E.~ jk72?O ..sKxa>^L:Zuhdt8}d+|ayb5mHRc4f@e^"fd0>x=A%nӋJ&v>WV4v.Hiw ,VSX1d'wz3dH_ܾd'F&^t_d:|2J8P:`.EMm&'25?{o¨[oRd0ۗ Nd#V*}y*G}vO?ߒ nHYP. N9@{gbLGEe-'teM:0J/_o-\"jQrA/?|ڞ=Aqq|_rP* !-ʨ" U7g@GyE"{ k7 wfq[~F^s*-|U,,$p|T yh`(G%C%t (rj=,%,y6/x -U"N)YO|>lY.u@RF"d-d%n b^d?8ڈԵn+]̖T\AځBc& B]b덳 ɼ5HN8QX_9q t%/"(G5 j(@;7}/J/-54^9ųhĜMDA`.<l'ʡ*ebIXMyj9Y"2AӱiFJυ߫߆  KR_-5enЯ!Ŝ_*eڔ]3ۯA[2>X>6cu dq# + M$5}c:#{r9`&ćW& ' |u٨:t%[Yѵi"d>ՐȁMQ#;DGN_`74e/j,^7򎝔 V-O`-k_\.;= %R+HO)b*%̓oIȳUm]sy3y.ig`r8n=卧r0ނ]t#j u*Ԓq@4;~,lLrSWs86Omy< ollŋH˒1|zsQ}T ;Ղ{AsY+\cDZtq}=< Mpb7kqޮ#u$ӌ۹<&N0ٶn /n]&>bczH?\e°mqOr&6T3r#yt:<.'Q;)Uo,6qT&l{~j)/ hwadoF+_ t|xj=sc)BAMdnl0Iɒ|j#H~/1z8<VW9;C*0M)~$D:pFs^GZ fݕ ut艀ѯ=R;Gp{36?:{bޥ7H٨٣Qć25{/'$s QZno1i,HB2uyc*5|r.ڊ2f#r=6^R\' ΅UH,te㈦EO2!@jԄw/5rRv4ap?C)9E¹fggjdU~b(lF3]`]QWYeT徿R6FJtzt緐't/6_fྕ&ةF+pteIx pV20?>\E39/}2 #zR4o5\T+3WN[OOxMr\C|{2⮐yP׎"‡) ?xatQ$|ŘYRtCSD\s8廁xY{d!2A*mU+]"8E=Y 1YnAm:7\RB7S\z0/ݹtRl羠 $\טg|uW@pbK"~эvWC.o};B]QE7G--Zl6 l(?¿nӎޒwNd尐8<%ͯ{2ڳK~O M)-\afU&GUK/SB.i^.3ΌFSSQ@ˇ“SZ,b}Gptv)_@0yjШ Q 91W7۵(XwF% [_ɼlQ&b>-Rt2^IQ5&<2*@"^L5(OjprT6m_.9?# fK%K݈ډt$!2YlbKT^Läkxz1nTRyҾY8] =r0f%6"P(}:lJއT|/x7M>;FSPv kTiwvJuڟY5<[ԻnѼ;^]זIJFHxO'@ fj 7w@P梳K' H8ELU2xI+#a08YG3t-qsO΂eﱥ(++~Ɂ9Ё^ ɶ 5zWoe1Nۆi(Q!ҷ^lci2]|l"+5ְ=n3Qlze%˝\~]KMX2T^8ۺ>π*3#yVb J8l"l>dت#hu$_[\)|:VghNtKtt=H5JQbNӛҬ)$lr٤SxѮx€ 5,ŀ3Seit8ξNP/JhgoYbsoK^L> j%S" 8fl~ԷғJ2N=d $ $ǧZp&xp$,BC)_پRaz]>{_Q# !˾s~&O"ZZ옜yTJgo{Pq{}PJ-2y?U;z>p$pkp`5OqUed,Cώo{r_P /R׿OHMb$5e7XU5E5rÞ <Ż]lWa S"B=ϩT!E;D6.# YԊ&WϝǥZ}pE6G>riz+u_`b ~&-k4A?9}=㹉^1e ҲUOQRmMN>jkts+:T4ud#bk͖"LM4X9we⛜!A˺>OBb [c1HXu D?z@R/ֆN;FAu㦎 1T4w)* 3Jl];=T-h;yp~t~K H{C5A+jaN$Uj4aWRo& VƐ;EQ[FI4Rg{% "Q9([HS,vclk?d] 1XLEKTMdN51T{.Ǣx: կ=1쨨%pAEw[ȉ/v$Yz̧tm* Ϭ=.!,鯅l؅~ Q T } F$a0\`%l2-]'+7 yg@*J!Gl }䁹ѹ#b>iʸ{?,Bd|!YEV$تD*Wl Ԣg8 ]qڥf]ڦe6+Y]&Il_i(gKH%Z8ڀ|{#:D-}DJ6LorgIy}e,I"h1R.{A$Jk_I6DfglH?XjB浧\%W#-ס|/@U M[_ͥJ)%;-Z"V%K(!É]&iM&V.ݪ~n5zbdcei%,hVdVm yRbsL`DRjC A> M^f镥#J;߁p{co]Q "+k9:QMcڦU{ ;hY2S(шi,>y;Cf'^H4PN 5{rƾד>?~oBmb+VB~ǯ-ysJuVjN(0cAe !IQohb֜#:|#ˉwi~-|S# hxU9Q$l& ADbr+K8!w.lZ5]f)b@x&oC-e،P>d`"(Jӕp,R):yI-,""׷$4ZY7x*־*H_Ē7_5ET`SUFA)<q[@!wyjyw矽J52mxWl@XMjHپXDoCyD/,hM<ZIO .~GsƠtnw"& ?NN}›ԲMPpAg7BNtu5ORԵr G:fI1a]W뭫>rZH\o;H~Ɩ "7JHԤ[{{vTFn園d6ϲZI#M]L4IX֓B6]?sizaݽa%Vb 5SdHZRl78NEenhpلrr8iLxUUIz痦b d3ן*V-޿ ; ~~c:~#(Kk4A4*Ocb ҧG6xr0Q#{ͻF4 wymX P aOv֯p-zi :C3COYR"rN3^xOM-ؗ3nEŪ5U.+Ȱ5dؒ^GkJOI6[ӻNCpނM[AlyLŕOL"|Z)Y؁F<J_K 2v;qf2Z~D?4é=")n+BxHg VO-i*?UNSEkAܜ _y芸f_E4; m{OL**3%POJ5f*{dBe44:J&y!l*g+ r hl[|У> endobj 1915 0 obj << /Length1 1670 /Length2 10141 /Length3 0 /Length 11225 /Filter /FlateDecode >> stream xڍPl6LII7RKwwwt,)) "R"Hw7 %J| 9׉Ϲg`㔵ZN^.1>/Q ێsC!bb@@G㑨 <^!1^a1D(L 4jPQ;x<'ņ+**G8@!M屢 <|+77ŝ bx= w d -t% vӡ@G3q ؂`=U +'YOr'_ѿ!ml.@b;J\pbtv>`g#ց%¿\`ybn-MC9c$)'8|A~a ࿳G|;(@O g 寥aw-4,  #ogvOt;xfOЄ>?Yd t_qCd!9H{811_cvg0u~o<<{\97p7+*BlWOP><'(}Q[psA!Gu;( M"Q~myܠA>ݿ ??P@x_ >s'#z迺p(/cA?{|؈ǻ@p F{9 9$N_Iѫ<\+#4b<ΰQ:n,M=+W8dvJz,"1.`춚^ hZ>~[k (M}L10׉~EiRmt:f2u;N÷z?ŏ|Ƕ/]ڋM;--?`lwͿhS0&~.e1(<ORulP_*U͖@>%Zu>_x`N}]7 \2\.q`{1?<.)ˆ&̊B3W YMF^EnV{yj_gkr K{2IĊY 8#z˰9aI#$`p9m&rE,Ӗ՛Rc)I +jzifT̸Rي:Zb;~1z|82BfҜ'$Fq_w΃H2\Sux,hU[UVEnIf?eM52?PЁl:(fFknIz),EA{że`څZQ9o,<#;ϊ`bn#$#b~\B"RnۼuQg>YQ}}Dъ/LWK<.ZW$ZW[ RGm&-|yqvYzzٍ#M \#һ4QsvN3vwƖ z9`SP;jC7X%Oل4mp9?lbEv\MD/i_ sc2?S/x'-!ˉ𒯎n(~۵R [WCӦ(~*N6Ê=} ^UKdET d6xC-q>9(SmpvqF/@ª0nOG)܉ gkߗ/"h+n [>%zPχc+=r7e00G/ d~++\O3G,D^p}`mih?, SZx' j2y H; LDrf<DVnmܡk8v4F\rp;ek;.oCۗP rNN ~hvwλLSd8@w3 T^KR6AݍhMHDZcl~+G+YxxU.+ 료2u]CW;L1+ i2 Yn^6)_oKэ"> w<>ʞ#/wF!\5V-MG`jtɐë/ycI%H"ɾ4"oIĨcūo GRQDZn+YؾSeA2g;͎1FblłpH\G.1XΎ42ި)IGy F^D ֩1."-OTÉ^Do,g!⦀C^M/6ZbM}`Tck,_YliUbp ˆ(Wr{u<7֧$a?TQG[uI >66"ߧ~REHIذ_<',LH _J5h (VZlx 9mă{Dy2><{M۱=󳪕-z4Cг R鱬eWi?;WN_gtvBW%&Ԭ&Ͳ.yމCylg41 \T908=QиZ}\2Do|S&0MpV}5|o˞[߃R~0 8Nl\W[j4 gs@ᴅ(?LΝ^Ow\n0>#o޷nx?mc'hԗbCu6[?cn4{В9ƒ& Tκ;M o/=٫Hcf6sc83BOK$lODU041&tKȥo`?ߒ?EAyj=.]Iᇉ5RhZza'S;q uބƠV䘰vp7`Jҷbh^lt#>뎢ZfO2fq9͒ckP[wrTkCE*hI)D0Sݿ%DnDd1)K+.ǬdSx9f':^։3L<(rÕg9t)4$g8f6ݹ\Ώ,Tc{ jvnhC؊=w&%FkoڀOr"zWcU4u(Kٌc]4'ĥ>frk}(1$7# ~lfH?IIw%88O1^vBݔZgeȯm;S>e {tٛl$uH_EL*XYc_US?hGk/>/ܮh-s9@q,'Cru*@M)S5%}-`>~цExIb0kiZfF^I]&NY[6eHr%5sa4#/"ciIQI9#0Jw{l}\r1m#/._` mc~@jA@&~~mlUmf)WJPc]Cx;˺=HS<g UR݂LC?RxSO꜍Oms?)g)BԻν0Ajӷ3\1inoUuY;q|\Jg vyf.zay_kz[D d8нnzm_yRˌ&fX_jLJ //Z\oȋN"dNVZT}&4M6Gts9x) "{/5*;WK׼{\sӝ6w~%$.>ΝEJ<E8Mx :CFBmј9;Q6`nF575#ny-yN\R!`_V=`}Y`бOzᵂcѡ3}$ YlUx#dc2VLz뾣UôYџ>dm&7W~i]~fF H`U9fm\xM1V7تlj򰇘)TIM~aXw8=oW,4aFjeҼ>[٫Glմ)5r'I6EӪwDrqfs+ݛO`Yo~En 0j<Nfn 8H`SŶ[C9t*&LY}%+NC!a }/G9#߇^t4(k-D4I4"2,!hH_g?) /d+|\K$.~*ƻk; j{KWeùO^+QWRxw#Ս$ػ0I DK;aêVK.vΓP^.$ef#\n瀞,I}Ӂ'8R+a_Zy7[ai_Ffy1CctT1FP?[cMoI_w?CHsI63CN+ ~v${/ ֫Bj)?5XJ9jI=ή Tm@c4ϖiII8&u7Ii]Lt^,cq*UVٯmao-#|C̄5"s.o"l#X?CL¢jyFx ϩ]>ƀ1I]Uoy,y0<=Rh=G 'y "d6]Aܰh+ݟOQgpgK!-ִaa@\Фn<=ap& 87ݩi#ь%ﮃMyJ}Uc?%g^Acr_/x3G^O+FϩXT4`!9MVQHUvN7= 9m wz(:WNӕ:U-,agMް*l˞ } -=V7IZͶ)hCx勄k`{msͶ6Z~[JS1 ې\r߂/)ЛH=48ei0yiRCC[(%=K0V 吝h3~M@.Q(ՉpI}Zw8`UQfv#Bb%LHk&4t²+JI5bOIp5#Z8I"EPvLxx蛾Z6Z4h``r7hd|]i]]ufxm.pa@f&ڑLl#ux"9ԎZW8)[y W]'{XӈMx VݎYU~Kr9 z&X ߌt_s(C}J>~%d`.`c!/YTpWa=QO²r ̅1^h J]|OEOtt"b8dI'frqU=aU8_J|hq(i$,:Q co d&G`Q:VUrgdAk?W%Cb\ohzZyޞxˣ&! XӁ!q\pROl|9dw#\P'Me \Bm۵wzN!̳ȚfS8&:Х l@͞BHHݘ(kX1ʢ֪p{u?!88WHagIk1T ®~[bv/FAzol3~V_NԚvA?L>p#LmYILcTR*6+)C (.Vw{*vd+ß>"e,In|$vsZr̻{ET]Dzc5"NHM;~{x/ufɽ"FSA+q{/D*LYG-6;3{|2?mUαkR|';*1gv'v>N} a8{l ofc[r6gWIb֡YNj6҂]/l\7G.z7ĕv3%~-yÁ Ԓ&!O*\✳Aw9G(+*@CE#Gk×McÝ ('?'27)Xݸ-Ё?w$n)&L5[M>!}YJ{ TξKui,Ģ'OI<4U6A79YSmqU,w K4%|+~tb=NiOdp|tZ>Y|r!6!Tw63yB4{DKOfeD8%yx7_G &h.:q#hڮds2K`e#mO82(P_|_:e'*+ǬH(ajJ:4I5 $ N5Pb"];m4%hܨT_tmV_ѬOҵb'VC=t5N7xkciEXAћ1 G8g dmQ˳w |D__S%Y9P" z4?Mɱ*GmUǪ]ƛ#n@X(\ܣdtlxb[5{}? ,b*6Ѥx-44*{[5Dp0ZS̯Wjb1?,m՟%{F4< u!)Ƕ-뉉k30,s13hqUF6a׽yVWs@ f"0Lf cP;piigz-kͯD ߾| .އxD;>e̓(Mϋ,'C:60ˆ"bM`qhʽ?5 T1,TdxG}ϤEGDkqT9F+=ANo| s)])aT=.O{ɞ];ެb&@}yQ^+r.'GRp)wa7RCV[")㤃 Fg .yxh-6ǴNR2t]Ww纪R_GypD"!SJMa.iϙY#K2 긶.<) #e#Bqj/YSx{v#9h\bQq$1 y7(I]P*#`h,/a5+6K"< +23gwudOo&6tT X#G4?yY2ν?oyGbb{|emd{HP9ӡȿMJfz#> endobj 1916 0 obj << /Length1 2279 /Length2 8872 /Length3 0 /Length 10198 /Filter /FlateDecode >> stream xڍT6LHw;ftK#-c 6JJF%KnAOy9อo(da(aA @EH  "FP 1! d0PA@@(LBa-(@XBFXR2U'+Ђ HBB# A@ @r3A.C8 A'# &#$%rE wx^P# n?hnp7=jA!Eߌ锕_q@\L !- o_T4x0{8@o`x͠Go2{-@0? RpqKB]|1@/ }pi!BDǡspF(R Ӈ˿C@Gw p$KG635AG >fTv?ND\B @>@r|ikB08 @?*!R)I#)o$ R$Bw#IoDB(@7B{3B蘠_HXm B^A~D~" Х"@`gͷG:8:Яb?%TwAAlC=pB{ 6qp DpG].7}3?jtn`n-&C =<扡ix  DD=(?#E]" @H߸&m3 XjS;:h ~m׏:elj ^0n$e V.'])}iKaD|qaބ b[7wS:DOЦxՃ4;Y#.0*)tU#ʾ=-Ӿ~[aYqS%_ $*-#h}0ֹY9yTAnp{B*,Fmbw*qPNq.odS}lu_[n)~FUV!:%h~YϽOtc,(hZ(L~3Gvg!NÎ^dݏP*9>e;]3 qJ(^Ic v)I-tt<`{1A{wyH7[Pǔ0K ܲbcIa"w]kj; )%pVQƥ{?|\c7t!H=t8u [9#콂ʞjšSVN [Uv1>;}.!ƷSV\W5X *5> ‘cY|ٰd6-A#dIMC3y*Wxg!j%/=n=P [y [zإHbۖgfx$3|qje- H ~dv"}3+99ľ)֓K= vU3nUOU2|5L {5\r>۪O@O'X^H}[rƩǠlaqpD VeEihW:Ynb@} }P F?KH^*7xNP_f Џ%ش>ϟW6k:Hɭt7.,¡Pp*znz"2m0Nc;Ӫ9=r[yG`&DǏ lST=J9^5 O(`j?se-}WsLҊ'[|n3.~yeh{bzqG t+df4ۏL Dɽ~AoƆT;._m &߄qi/H׍e999eӻ"N+}wd!n,҈ 9E 瘷9!p{3%d`\LWGB.Խ{+LS*HaWP㉽ڪopY5TLŪ|܍?77ڛF|S)71`TWF՝d6ˤ_ً̡R̝WH8G+ȶIMbk vjyRgjS9yq. H/Hxg͸{L+&K%y} 9 egۯ~gn"Xs?*dTj81jLp/^5 Krty._śC|ZOY=A.v(ݠ'N,6[n^ֽRCD1rƢnnć瞓j`L/ټ>w{teՍ(ptjaq~@>Pf=ܕzrMSlM7^y mxr0* Nv>u+-j"2%=H3Kqe~=*oҹvu!ӴfftYs϶تy{M\=a)qe6/?? 1:Ef惚tnr`{ o{,eF ݏ.7 H~RCֆv(P1S(̂a4[m^&\&3XNl7 ~Zg pmn&i\?8|~#H'MٲZ/>fnL+oXÜʹQ%7eI+%H#w_ݢF7iidy'%Hfn)?ڌ^ysV/Z:Jۆh uEO&_$gZ2 =xrɹHt9kVn Ic"ӗJOOZ)Kn8[%J`G~d-_aש0rx>Y)04Ґbù4+}qGo-d2ݺ{: 8]c6R8>ca,4*18 ķ7PZufmN8y9x  t} X洨xħ:ew&AX~Бc>iW87k#Κ `Vy8 GraY-4Z3f%uHѩr)9:t y}}KwbMd≰vEjπ"joKfmL$)x^VZOdrVPGHDى8PuԤ,oqEáW5$maH2TTZt嶞O C&FS"|yͷ9$-ߜtQUP/_(lsOFMy_>4AGn>S-3u8|{lΖAQ|O)V8ʶAG 'Cuюb:mL-Y:Vwz{MG-rmI QR * ;ʼ퉌o)iwHUh杶o<{)OY}jJZ.')NVm \n%hF`_bF5఼;9;\NFSln2:[tAQ#Nު.pѶ !ԧOnVQ͚_3.Gy\& LIzKDa]%ҧ9[7lN Ҍ}i,Q8Af%zl,657W=xiB~,Tr`M6:*-L>^5cf< ,rݳO"؎*qg,hs1ɨ +!ic5ϖc..;h,d)dtEnX> ^JGA껧5 PG\goI+·B_!Lr V*_0x់mJWx :lԃJ>lbU0mZnvimvK;UW_߉l$o s1Aĭl7#0%X |Xd1Cq+m?j L -p+)D+irUʨ(xUaubHڑ;!ezw`3i ,4+.Hy[g"-na|M߃,nEÑMB:u")7% `E/ݏzDCpZu Bmk'ŏmZ9 41 /n)+s.fM(@I L*Ε>Q=#;1DUX!p8m`P»pqOiu|Y'x]=j6̊<`|ɻ48$ΏY3=a/CK[yTj;HE - ٵ3n)xsTp ls9I$Lɺ?δَd5K9v]ݠc UCΣ9&nrj|ŭK IᑡØ6671Y?q\o/|Wg .D( udejTFRr6aMH2Al)T !jqF`}qg_Ͷ A7EX-ƌ[oz_3e)>?c.2s;zK= #]@>gOiyU r̍gV2f:`z+e =sc[F2)/P|5rR0)>hT3DhzF]ߞkBG)ӅsTx*\+t}[n#~ZD_-Iiv68%|QF2btVt}&x'FôGGXh;˚A@8SEY_%tT}j8rk`,Z4/~댏a2~B{-17bpiw85YѫM,i豌 0Xn@<1u)0 N+>&.<2pzӮг{^<4gH|)d4jK|UK.͛974b}c~G3Ew*A{dL-ùǚqKvTMQqYf@9,=ݮL3t i5J`^;v_.NɔB-9~NްލAj:HTxQ/HMeGVDyKRcC]kx+^QN5s2f$`{VQVq1DFL80duu\BɸnGaޣswnn~ZȵpUBL &'-+ߎGAǕBg,R&~: ,|2k ˢj˙ ޗ,5$lPC̨W(Fc1Ɉzkky%ov?Լe1 @"&;*P"ELP qf)̝*{>(]#=GoGkZp; +Vm-g. MA+bS.X',roVÙx2.Cjc<pcձ+Jm]U`'Lؿ4D5]f{8;dE 5% v F*kC({>C^YqV|0!0A璑#X%qR;~K,x\9]DA/=sx?%lIsryqRŶkvu\v`ջc>pPm~— EG6 yגJuTl[@7Qvu"8?b1 VۆI|L|Jq>oQ綞>gudX k=SjxDЗz>ȲQpT?>Yia?[hgs1a;UD-[|Ů{ϏJ5J6O0LӛNL˻m^ =IR't8S%dsh)«sCG쭝1U,Z%Ձrqs|RZFfQ*;"w*LP78ė}v=5xGdWbBt+'ʀn@75vU[d '<ŇWTOZL>&*pddM^.*NI_mLژJĬ^oQ3-⨉qLRnAsJX5??ƴ |u^!Jjm8>փWnPc xQ#ݤ6H'8?:ms^6 =C/IiJ|}Rv9^uo,AWԷ (k絯nI( -79~m #ug\lܽM1UiM(σBqVmu౹>N!5 G뽒Y|bشqY<)ޏ5X%VU}ԥOc CXƍ,ú ]ΙIlA([Ψ̗\'\f3 =JuBpWw.8gSk|bOOU^ɍPjc Wn+4|[ADc[9Jl/BDm:v+3 _-[CCdt@JBO\?},f"^XNXiCL Y^dzc +~0s5aAku Q,{qYB:uMŻӕż7!^<6'6Vqx24aSiHirY|U.mγ%fꞛ'X? >w1LrE|PFڽ2`P$|.jYəǫ endstream endobj 1607 0 obj /OSEZXP+CMTT8 endobj 1601 0 obj << /Type /FontDescriptor /FontName /OSEZXP+CMTT8 /Flags 4 /FontBBox [-5 -232 545 699] /Ascent 699 /CapHeight 699 /Descent -232 /ItalicAngle 0 /StemV 76 /CharSet (/A/B/D/E/G/M/N/R/S/V/Y/a/asciitilde/asterisk/b/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/five/four/g/h/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/quotedbl/r/s/semicolon/seven/six/slash/t/three/two/u/v/y/zero) /FontFile 1916 0 R >> endobj 1917 0 obj << /Length1 2227 /Length2 13298 /Length3 0 /Length 14633 /Filter /FlateDecode >> stream xڍT.LJ14Hwt 0PC "!ݍHtw Jwv>׺w0SkhIZA,@r'(;0@ZUGGɍNO:\'HPL٩BJ.00''S?Wa lPe(A@ngoW-?oL/\BB$A`K@92ZK0_!DmPgaOOOv;KV'j \=@V?Ԁtlnɵ!PO+8-ANn0w'++Pw9e+ع N:--!@'o ˩C@7;-`VIj0st;CP# ˲NVGG d KX۽9o` v3k';HQoqrr p@.-uA*:C0 5 @]AV7BX- wtd 0ޙ r*(* `rT4!Z/ M~/1'%yt? swpS:6-;vi8CVYWŽC6^ + 0u`N ' tk=M`SguXqu|+\||_.yZk s! !/2lA\HA߈F  !XL?f tz`Gp6.oWXT W=̷#kGQYB`''GUտ ,@.'&,5 5_!`&6a/rjM[aB~9CK +_[ߍ6*Vh:;#uq@AV9\0]`%3%17ۿسj `d9b 񯕄_7j kχ(@_>C,E>JymOo륿d~&;dZ2ew,ӕ2գaGȶ${DviCɆ 4r6G?`{V.%|wAlB~yۚ;5lo_/Y ye@e?™ϛEȂp;vgRۭĐ |Wj/Uhѷ4v]l1%;ܒSOᙔ5G 57"Ky @@! *}|ƣr?1Qg)t5.J}n(dhFA58vݫXDQa5e >T}'b6 0rA- љoe1M붋a`Y5ٱ$g6BW@ce,sՃMRPQpp}/&eQ܆ "dݼ w7+.aLqx5 {9.EdUFؐV!ʧ-mii_`l3kq𥳐(lfʏ7ĢʖW@47>Դk wht^ˎyV<]“I>G llY1pǻ4Rv:)YNAF?L~3:}LNjW+7 s/|HCۨh4Kz̺%i>DxFPGFFW!; [|)Tz V.AA :gNoBmGh]=5, e9hm9瓈XHV_P+@zqkC|eb u.wvo3jxٞG3Bm|oZ))cq_^'P8_!MB/6(GLJ)9u 0}Ѩ H=cF:JQ"Hn;M . ޕ>s)S]xjBG}'֘4,L0iiD;X˗4bҚ\3ku tc糐ӘwT8@? ;m76 ik"]ãiB/I@TFhatosiw^6}xlx¤{[$F}2{"QUsO9xE[9Z5t?_/6(;icJVi,r) r!oQ$K' 6ߣ<ԲJk۽c5*oU~{~=fέ&uIܤ }Vќkũ@8ll1:C^r)PÐbA\ENnokMU+p0TiT1QvM(7:D`.'$”.Ct GF浕PS^#TIWUQ!Ž CߧKm1vBM>6ýmx刨2c KVֱ%_ i'0/xv1xH4x86~@i}לRU@U:T}6bNra/٥e)Q@|eӳ˯dcR1ΦIZ2~ ka#ibgV8{bk1H!Qx''57Lq%bٴT.ԉjG ܸ-g>/,.2 סiWNDv}i[3؆Q銰Q+4I Ƨ1P3ٱiwGsWd BԜiɳHVQ__o/JbiK)wkJrDձmNgΞ=7Rd*<6_&$N7W lu: \_ԑVy6A^a?W 3d;(3)ehnM7=: ^YW$XaSN*>+#zn =8r wNƣup(--1aOZIuyi1cL9Lwk_1H+dwi8dPD5'$eMqv\yf~DtW0>GތJVH}qq4*2U{exiPOTB챉Yęi>SE^V|o8٥ȌkzW㏡g=hԁ́=ŘhIiDF$ETuZH7M#ώRrX^aO}kq~]mv֬Й TT؞0@lх3[`fOQsw=&TB38cχqc)c𪬦2NE@QyborkI՛RV-k 7ZT8[NuK$o|Ya"J|VXL&!zAW(9 Oj_^ {QGiVpd29}?Ģٙ V_`Kݝ1aO%ѐy,:_]^}C%DWJ c;cGw說ƈ\٨"N.5mfL6Kd m*3rƢ9{b\V8n) e^Xy?b{gdj5!M9KSd_6~C*9}3B dlI7(;lJ8Iy1C S`EɖAIRlUl_f@ixt3AAth~~1kcߛ;ΰb/)p.!Q/}5+hJ+؅>.Eq!浽c)>$lHad|ڶ%$#&c*8UQٷ6c̉c$*51E#B;"~x'QOvbx  3yaG86y<@.$)To 1jiKYұ.̩\o]4y86p:o:g`D;AIUiB_|ږut4ˌqtR0..8Fy* 0n/iJFltnV+ۿwB.Kaj%Hev{k[ -& bΰVR7ah ڂHT1iSaSjDF#4R(w|ziH

u:kl4@r/8SŸIt_6YoYV[$$}<)0xSa.΃z_t62?b?ҜK?juO ?$KƳ޳$5 $Oد!8SŸI/q??l%gACggI/c/+))ԿgWzM2vOqJ7TRtnj,l{=iП?l#=Lc\)F&1<[v~^<8SŸIC.IgACggI?5 $=^D?߽_/pW`]/5 $_%|Kr?/0ypW`K.KwBEogI/k+?I}/j܏K?^k. ~]п[oYKz_wxگ#בg}{֑g.~fa:UU_v[t/V82Ǐ✜q"5t/G ~߽_tt/Vƻ޳$?g޼8][0%V ƻ޳$5 $?_nG%5V ]Xc?_'⿡V__U_Ǖc3rw\ 9wt?V^-.>E̩uV9^{X|GSf v}x.fM$c^Hӧw_9T.z/SXy7Re5"׷|5 %_Nf?˜y%{"oNiLmfrwACggI/k??J?^J|LKog+t6ƻ޳$/?%OWiLmfrwACggI/k??ITL\\o#wvߊ??l.}B8}_b[yk>a͂]#_G¦dL z"xc˗< r;HV~G7l;]G^Ư޳$,+ײ>+sy=ܑ 6_/Q}_AggI/j޳$;40_7K5w,%WφGEA_ƫ ??IU$s[qn/ط$t~ߑSeMcݣ֝ +{,%uZ9χy/ICBpR?>؍<V5_WYoYK,%f;4.I;'WqK_jU$zoSes5V5_WYoYK,%f;5_w 6_;'WqTכXP$OuU$znNZyba<Y^hy>%n=_/=լOP{l,6nûD褒I)I$JRI$I$.S_7?Z} -c|2 i=BJtI$I%)$IJI$S?WVt1 ؆\nwn-DI%)$IJI$RI$;C QJF7Cu_'z,&LtI%)$IJI$R'[PU_ck ہ ) w?t\;k[IĭI%)$IJI$R)W'XgNYhf+6Nkv⒝I%)$IJI$RI$+WV|ogv|INI$I$$I)I$JyO"YG|j׎ֺ[ZaHn{K>o$I)I$JRI$I$RWV.W,ܷ0ƥ~\d.%)$IJI$RI$f%{򟸚ql3%=I$I$$I)I$u| ;h<3Jm:Q|ܜrr=+jp=wCv:.%)$IJI$RI$Bn-fkFyIIR\G.^n]w{n&]s!;D%)$IJI$RI$\?S_˵UEdXٽFͺ'=S$hĥv . oktC[VRI$I%)$IJITSc'%XߛN<C]o-0>ֽG``U00*M[i4aK҄$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Kħ{ves]V>xT -u#k}QyZlec[G)$JRI$I$$I)f]x5>I h5$䬿%n܌LJi60m'Vy+7uf9?ݗM7Az7Q]C'ޞ:Ze@INI$I$$I)I$WS3 o+[?ˈlRS}eUw]MA»km^eg÷YyX2S {jslkF674I.5RI$I%)$IJ\Y:[^, }k9ť#w]̻I{q.sMnsI$RRSWZio2ǣ64zeÏ-pS~Ff -cmoƾXkYwi)I$JRI$I$. J1rjWsxĸOA]uuiy $4 kWRoWMɪ\ohx $>~t\F{ cxnk+ӊ IǻN[IJI$RI$I%~韒Zqk5VD$I$I$$I)KoF63+ zEÿ\Y_YVsױ]mlak$;cqf;[`cH';mRcm h;7ak6U-Z ~ɝлEUs׿k@se%6RI$I%)$IJ\JwݞK(sm!̇67V^O<:}FX-ƛ\L;ш\-VF_>ֻ.tLYպzoUM;O;gˏhI%)$IJ^:Z??ݫ?ccljJ}p,,>vu3r W'+ou>grQ"-> )2O.'kxsP]侪z~IM5oIn֤$I)I$JRI$?_6?BwZʑ=LW y{]־AryS#U))I$JRI$[?Yϙ k/!%=ݘ̶p\nď\hu[K(ͅ&?>R{f3eU l7d AkHL?I[ JSkbZ1U2lhnaYC,wp~)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR3uX/},{4I%5v/Lai;kckiw ]cg" 2GI%,h$RI$I%)+NElcD9$2' V9m5suWr)ΩVX=0dK]#Js)q+kC[\7PA ЅI)I$JRI$c32TXT Y=?_JWjpsȿwz{:VI)] B͌vO6~k߫J.$JMM c֎ֈ"$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I) endstream endobj 187 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/Nblock.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 193 0 R /BBox [0 0 444 206] /Resources << /XObject << /Im0 194 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 444 0 0 206 0 0 cm /Im0 Do Q endstream endobj 193 0 obj << /CreationDate (D:20080802122503+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080802122517+02'00') >> endobj 194 0 obj << /Subtype /Image /Length 9849 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 444 /Height 206 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)%*q]ߍuOvp t[ koR=׆bedߴXUKgi$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJTp͡˪Zw89M* -˯4,'cl)z]Y3Sx11ݰn,VOX,[鵀6涬uiays$}i$ UCŔ[c'tR2\Ev5*~>ҍ ᷈SI%!c]E 쀚 6ݏU>3KqeM&H( 7dtR+qc4v4:' ( k*64;[EU-}$nwDݺ%6I$տ~/mV<=k\,Ċ/8Si%W?_$hwIM_8=I%6UhwK?_$IU=I/8Si% e2X ꦒI$$I)JGOJNԤI$gUs1Uyc=汛s1nC  tjW_F'ZU $(P7Z\9.V`cVxt_I%QI%>yHgmlhZK3GPŦl_x5$IjI$RI$I%)$IMZL/G^B*dz?I%)$IJUzr_/3 PI$RpvN/:a\>d: &$dmANmް0f7ėvXw_w_zw_q/KwZtgc+KL#OlY BqH+2r,M\b/$Obj/ POt_W:WjuGu/Y7!#c[Lsk)ί1"%?!_bĻW_Ku}_5I%HwvaΕ.>Cm 疄\؟TzGOJ>gNئg=I${}GVUu__bQXudC|'Ç_{Ձf10C@O}U7e2[.s^2!۔8 ~'bCI5s_Ke䵭n=59jc~O$EgC7;OuX܆8׀ԓ%uU^g*}em/qD6i,?zcG?E?rm"d}xvXw_w^Oܗخ8~]'rm":c78q q 1 y$N'A ~I$G!7p7!XZCD%G!y=GHoxurCUl/W_Ku}_5-Z$PXqj5㧒rb$:XsX1-~Uhـ 4I!x>F Cl$g_V@\^y]7Vjg37.mʃIpU.kϠm`>I(^7O?r:)kw֟4:?7;d1EzOܶ.S2eel%4:?[ ܹRm?q[Cx3A/ռO ܹRWK?$QF1i^^=X ֯U?Kə9O:adcl% OޱY2fI{鴴˷K?c;'eXٷ5s9i: e\I%F$I)t_R?7T~UήGʣԼj_<_AI${qx9VeSCmƆcsæ }lɿ/WvN3hh-q#sa:|`/I^ZggSBşI)1=9iBSZH 84ouҺ:N nϴTK&v0&7rRƫ%6t}5 ռO3/"%=O,~z~zML>?F;4i$hŖ{uͽ$IJ[S{z=Ds/?*?R|{Sz?:^Sui%s/,z*7 98>+f}JuAڞ^#s2OzJ??ꞧ,'I%uI%)zLWRzLWR}I$Rk01tMa&~j%jŧ'nZٶf7蟚JJI$*}>n8vNXCum ƟRDI%)r_?b;.fWZX0K$鬂. 46y yrIH|%Zӻ-Fs?z_●IvA/_w} 3z_●]%T?-4onO'ux_re,aZC0"LA#`8d?k}$ZN2gy[ؐI:% 5keO0_/N~I?{q?/޻D_IgLfX~04˩I$NS7#etb"( I$Rc_Z nb@@ oLV1yz-,?I#`Y3q)-mVhu  )cYVM- Ĩ]`ti!wZ>JKŎHoևJ_ YS7U%z2GaJT2,rKr(0ސЄ .P(v^1mw?}'}?_&;>W>x}HQV;XtWnCo(hL˟(l.NJq'` $R}Vg)Ⴒ@1n&%!DXxޗs]JOe-q?/޻D__s]nN??dJunF(RI$Ht2魔Gֵl" /Dz ꩕8rJNI$!Xِg{ya?W}vmmָ)ΤI$I$$I)I$JRI$I$$I)I$JRI$I$$I)3[TΛoS-_.,KtmVϸ9Us 6H[m,X96oK2 kN۶#ۣ䤤",ꤒI>G}^sr`4TCZ*6iCqa.m,mm.!4x,˗|ˡRI$TI$$I)I$JRI$I$$I)I$JRI$I$ `,|#}1%(S6-$I)H..hwjldU5=PkY$JRI$I$$I)I$JRI$I$$I)I$JRI$I$?ΛoS/:A]ka8c$@YïЭbcM5`dO_B_ïН~[Yw$b}ZuV愾*S7U_  v㍵c{hP$-()$A*I$RI$I%)$IJI$RI$I%)$IJI$Rh6-8ӻѭ6c䊫k1|}-F $JRs*m+#8粎uV[.}Ϧg1)*JW:kGk:m^+L?JN [k3"DF ySuou^twեJfT|zuE:*ֶg j.RRt5 `i'xJS6fw<4 )"HݕmVmM?{ /VgV%[^T~JmN.~E#maII@\̫j* Smnc?ILB}Ϻx6jn⭱?GIIB-2 }F=J:X} ݯZ )Hc[?&GV QmfE%o))2HnLXn;54TP0Gӭ)*Hǹ*6gcE[GNkCYk |HDŽ$:k}M_q~ư(3X^m? MY}"?R*͎.=R|tn$i E8\<G[ kqɶN%'IBe{c:{]M5YP!>#鱉)*Hg>n۽8lOkt|Jꬴ˟Lrk 3% s+c4;Z?:m+M?JN [km YjŎ=PG}Z[$i!SM_}ON(X^ܫXgcE[G%'IkCYk3;OxJSK_k3;l`II@f=Ͱ=V /mAߊiLr+ 3+zJJL#!ѡ4[SmXu [ưjYqQ,ϯclunMpS4ʁOMQ=ޯv[b~[)):5ǫ%Yh>g1襘W\쩍cgh?rJHI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ endstream endobj 188 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R /F28 49 0 R /F18 5 0 R /F51 33 0 R /F24 17 0 R /F19 7 0 R /F31 67 0 R /F25 48 0 R >> /XObject << /Im22 186 0 R /Im23 187 0 R >> /ProcSet [ /PDF /Text ] >> endobj 197 0 obj << /Length 2477 /Filter /FlateDecode >> stream xZIs6Wt0f'n;L8KSsHr)5c6p=Z,Oʼn}Pc#Ç\~%Z\KKW[Bmح~L[|鷜,k\SF,_QhmE]4ٯ7Bk2}&_'0DO+j{8gw+J*%Z)h|+6g-Vng7: 0{p(ne pCԀKEöN>VL6mI U:.ɚWH2)ZO&Mqu7pz4z`y, ~z \ JZD|Giij'Ӱ~i~q}g<Lp'YnI}d]P|]T'Xq,kWȣŶ݆9h1sV^yI&E}]I 'MD2_pH.juk _w/~ S {IؓyFH\ƀJiFq ZgyLq" %{&`{vݳ֏yu퇯W'0ˉG SᩞDH4Rb8}#H3O118 K?<> QpD%E׆>w tyqVw͙l_6~dWG\p1BB#a:<NA[dK P/KOTZk} :)H0t ½nJ299V@FwAox:h{ J(-LEh">xA  :@&ÓSpP9j, c,V<?CGs.4*1Α 4ۓxaB2pcck[H.֩L0 34\DkDdVoyS㡌M2.f7ݰsL=$2vCvSpENTv*C@ {fy#!U qteL[Sc1ňLUQ*9k#f3H. kهFŃ`gOI1P>5*G$kKUoyo1|K84⃍ @B E5|foa]ȹ4zETW 퀓7Be VL6# !Wud E SPly@6/woB*|˹';с$hUQU1^ K%,[d[.óe]<+- G18k:L\`M~rMbq Ta@jm2e IM}v%fg Oev (q\{L.Bm_΂}XU5cՕ'}%/a݆C LؔnWB;rY;g( ᫚f$ Tln~_UjUbT $/Te T ({T!+PR=Z LRh 'QYJU}%> endobj 195 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F51 33 0 R /F27 41 0 R /F28 49 0 R /F24 17 0 R /F19 7 0 R /F54 39 0 R /F25 48 0 R /F18 5 0 R /F52 31 0 R /F53 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 200 0 obj << /Length 2872 /Filter /FlateDecode >> stream xZm6p]9]s&Qji^v/M?hmyƖIf[ᐔd+MCp8y!^]>|,z=q„JgFfgz51&wE3_("9_$^w2/$Xv/3Y36dI(swg:L ,Szܝ`g"fwVt7Sqʒ8vvuoq!N(b!fI41M{yh%,3ƺh!5ӭD8$(W8g-7Լn[t11MY]UaMnQ(/v}>SuOvya]B8zF\aWXUٕucztMy{o~-ҽ@G"') K eO3D Yq(Hؐ!L$PaԟRl-ꊥsW؝^Bp-W'|G/WXO*03-6쩡PFGU+k7ئpCk nl^{vGLSi76Z¬l|"lP^O3eJqJlH<{ݓSPFc6wƗ`#l̛6LtCN**Zǂ:_vP8Dw܇c +[BhzG-34ܞ᠋ ]aM@x@{gMz?m^@NO6*,RڃYE70$I^}D(訫4x5|ǒ bНN6߹aE΃~/p@Kء-mWN(鋢ie PNc dCVl@ f(+K!>]zCh4z;W2{rG[ǡ D?hRwJ_H25#8ld3PћiCTI>z Æ%.>T䶬zeZɐj1P${4a=O\$ $]*#u!tcҥuK+fN )jyO|Z3|5Y򑠟<mYyЇ;_p}L{gv`Оx0] 3aKtrsSAEJMY4D >^C%4&I=2 =D՞-b "z#nJ`cOla`UCv?Bc{,COi؄Wii\Y(PP:*r᦭@N}yZ044 Aqez-x_A/I%_w{0);/_ o}>ޞkD, Ybt5 ^5-5QUUms^rq&E"~D~9T"<8>$c+KS ;pTm&}b'tx.-ܚK&b&C>\O.2cV{_Nړ*tP>5>\~?O1U-?eAIkL)R endstream endobj 199 0 obj << /Type /Page /Contents 200 0 R /Resources 198 0 R /MediaBox [0 0 595.276 841.89] /Parent 181 0 R >> endobj 198 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R /F30 40 0 R /F21 16 0 R /F19 7 0 R /F27 41 0 R /F28 49 0 R /F24 17 0 R /F18 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 203 0 obj << /Length 2691 /Filter /FlateDecode >> stream xZݓ۶BәTzEL=֗!-,y!)ۻtqE@]l!8s܉:laceDO=~&1g2)hK%J)u&uqq/B 4sJ/ npnqf*͘IShu)myKiaNj/ urz%0+c?!9bLUh[IäVDʩLox\da5өX&w[:;&3`dL*y,'ԋiez጖Y~ASV"a$IX(8*w7 Pv*ʦ:圀ai)TGdX&}Fk_̭j>"4>9 Bj>qEOA͡.wF=ŹC[Oq$L- 'c(aٍ#wp؉4FFo>SȐ eݜN8 "p4 O"E;t)8*bѵ<|Σ(;G+]MkmoG-/+z;x#w5f Oc&a۩=H5zp5ĩdK;PceS TH&Q.0݂ }J9մ6#%G>'6I 7VfDsf o9&Jh ! GhLf4PX jcT/gK!,P294,qh=%VnT{(nUb³"8k1my?,G-~|߉a/n/Sb%l:ՑC9;aB>'gǺuSi7B>?Q4布_U 4L@hB0)KD!g'yGOgңDe(˛ԣC?X7G3q1>[5t܄yrJ'Xu>SOr~YA2d륒7'SwJwWn!NaZxݓ2򐟪.PIxiCjp1iT5EImB@e&n:Vnv*wp[g_"Ԑ)&Z,hCu,val-t #uYTY9˻:=7a+zi| ޿@k] ?PO_bVBZ:3wuI挘 5$pLR*sѐ UTヺ#bK?ʛ6_뷵+Cy@1%WcF z,#@6&ÃO늒 7pxTЕڮKSs$LHY 5[:=< =^bVw-n/'pBL#.V]zT'貊.Py.ݎBpO:?ތ2l endstream endobj 202 0 obj << /Type /Page /Contents 203 0 R /Resources 201 0 R /MediaBox [0 0 595.276 841.89] /Parent 181 0 R >> endobj 201 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F51 33 0 R /F27 41 0 R /F28 49 0 R /F19 7 0 R /F24 17 0 R /F33 42 0 R /F18 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 207 0 obj << /Length 2607 /Filter /FlateDecode >> stream xڭYYo~ׯHı5mk"zI,~hP9DRSG7hkD>j<{JLdW BtLY,>?n˛Jk*}WETip*_u.?_UL$"1"-A\L`Fd,ֻ&^BfHw ""hwg;{Ԑ\ę*I"D$$;t$cL>-NHP J&"^)JSo:5B\Q$*ڿw_?"2߂h-S׬U$E{;R-MХ;Y߭˼}r=9o=6ezY҇v&L>K:c/vdY\u{z47٩qSt[V^8jƃa82 E$c99?<#57 G;^:yt{ 7/&2oqeApZ!C!׸T a${zel@qzӧޭR8Wۘ$`f w 3!@|s!OIh+@̤Hk؜7# sz;AoGJ>Σ9@zND٥"4g74b7:oۑi2e`x1S^nsrcl-e± d>~>*olox 8TBF|Ϟ͹ao-018݁ Q^ 0Z+̡-<1svGC'Cn܊[ۗh86 Bjj*>,d6jtR\1afL`'pЃ8cU AftCX޴aF(~7ԧil|p/f Ê1J&z?t9y Zƒ^@K2(y㘆n3"Cm61P|"P;q #ʎ$hi"FT$<.@<fs .fē8&P^Ӈi;f:qG*pr@ U;]rk "yTyY`c/@l9Cώ@k{ ?H̗|q0K`7ȹ^ukm%n:k[yD,'75Иj[}a 4U'&m Hqw~mH0"D^.9l 5c/RǴۀs$nk;?C?HF \4m\_M2 ygOqډoāN@MFXty ReW4/?"(a,%2֌IW&J܁i΍pUo}3Rk7XT5A>ù&b6(AKXVC(F86\Ob&}F~x)C_Ζ1ҳJotdvE&cQ].WW(K,(ʔ74K9rh9lvr %PmKٴ<^Tn6KX,Ex5sѫc&w1L-ݩaK&Q|3((U*ˮ|Oυ>'@P+#WP:)%s!L0 1 asNJE=p'*[Y/}v\= pP01 9aNC !mFM+  M8֮JN+,uS1cdhL8vN rPCh6w%8MnKǨpKzPpPQͯl/h[䈏qO@3. fc⑛0{A0hSͅ8 kо{yʘ{8{/(6` endstream endobj 206 0 obj << /Type /Page /Contents 207 0 R /Resources 205 0 R /MediaBox [0 0 595.276 841.89] /Parent 181 0 R >> endobj 205 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R /F30 40 0 R /F27 41 0 R /F21 16 0 R /F18 5 0 R /F54 39 0 R /F19 7 0 R /F26 30 0 R >> /ProcSet [ /PDF /Text ] >> endobj 212 0 obj << /Length 1619 /Filter /FlateDecode >> stream xڕWK6pqlT܀c{v?tylB.jKOW7.{e\%V$W e|`ڦooH<ʐQ9ɽJ(E}3rl.l싰KUϹeyJŸ" $ՇO"`m">D[3kaIL0j<(%*eSAKhܞ!CLr\ KGiVY X31~q# ggLE-{A2[34EߧP=]@Sm4Kt.$9;C mhJnUSB ĭi(ˑv#RVLPjÍ:Q‚0Eo#GAGY*lk7}7{ 8?5qarrPܡ[?/v fo1G"9 Q{Of=O3H@46f XqW4鏭 JV۱z)nb.tн7b!gB9Bf a4B c>!}C(빶gB t B#EP !N? !8)-CWr'C̖'D9@9*F8+cOÌ*tW6hTH91CY_ۍMY1W&:R &mM;uQ0DY ,,h q5g'9| )gyxL)I)xZ*"GX^n A4UI(f3.5c$w׏> endobj 204 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/misteroa.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 214 0 R /BBox [0 0 1130 285] /Resources << /XObject << /Im0 215 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 32 >> stream q 1130 0 0 285 0 0 cm /Im0 Do Q endstream endobj 214 0 obj << /CreationDate (D:20080806194647+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080806194702+02'00') >> endobj 215 0 obj << /Subtype /Image /Length 27942 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 1130 /Height 285 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;j"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ײyvtQ:>hs׷g ̫-[n |O3:Λk꾦:tX.htrĩ6Hƻ{ZJlk(cIPpk}Fa ﷐<'_%mv_S]cίo ?qndks4`!7h}wQl߽}>\߭Zz~Foـ,ղ;RݫeǰӲwVӲ2phm`C%\tGtyLƷs}mc/c9R˃Td&Xⱹn蘏}.znzϒM>>)OdmFۙMusWIwmνcZHiqIs_T_7cCioe`nֵۏ ))Y?f_3a,޴ֿf'Yi)?RvԺEu%qַPI` 0Xduo-lA\&YY hZ= )wu(ku5gtN徾nop`{ ks{Ρ+ƶ&Cxk'A{@Lꏨ훆&'XTedu\pC~)v'Bƻ%1j:⒛.suzyꂚlk^x&Y"OZ$l#\Y)x;dSY=_ZgINK}W_~u"As^><6Ol:M}/5mnv5[c6dJz#>uu= Ɗl5L{ ln.>dtus-sǀc i%=Jnm=:2/vi{[jt|n\wRj=}6C[ q1g~vOAƻm/s6Þ[.IOVz9@MM v=g5+G:^֝k"|RE.7ukQ᭭k?y6>68 iw.o7}cBMm[YS_{Ɨ8 IOGVv^sk`rX~]XJ:dCrjq trNUOk6\@2X:jTdJtq2Φ]a%`ˉ/`WKqin&K"ڈ#INoQoOsM"X?e +ΧYc5kZK^8s\`\vd\Y\} cOJz*˯rM =K ᳧sE]}-.!;]k[$di n ;#M$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S08W%Fyu.7b6 惸66Ƈq0uW0mmX=e,cĈ0 JyOnBtl[{rs7u<5Ɵ:Utu/άKVl5|4]FgN-ٓEw75p(QM-,6B x[8;d <ǩg^6|,zه1DsZh$Èq\;_]O5}OvĆI9*[uom>$mfX't??k,2܉HJx*I2O/*:6@[zu.V:Man(\5t;ۨ xWf&G Q쥍[ էIOS.`z}S17X2UDJO6bQK]]LżĴ 4G/4Rlhnx%'^}-uAcwR̆:5s\hAU,_3ݏS0R$>ievfL'H=֒]7Ūioέ^AzG3-D#68~?vc{GU<އřX\6YS,po1.MU\Jpjm86ahc0䤤N4%madmcaU,unakmvGIO ?ƏJv%55*{mojx׌|ctkNCocϧlJfbzi=^GxoV JpgQвSōճ>69$MK=f"h> aǩ;=wIVAIOuޱQs,؍{XVZF*,Nf'XuVif=Mapy`cCK[2&|Sgt.xݲvͻcp10Sep?Pk?au+3nWIs R;A{z?g?z~m߷ln%bRzqulc%A$Yhvrtާ1ٓ`A"ٌqێUo^#iHtX*mX[]; :IMCA$Pu[ԻJsu9:%h{ H*]Ǜ1q(m.VbZ$_Xi}յ.#+ɩ:v|I$,ϫWcK\ZZms\ BI%)qgkH?u'XF0-{;'\Z1xN%6n\1ĀAAG42~7ezx>_#Zu -w@awZc]mvXѫp,a@׼)(ShX"uk *i)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRK?Kl=y9V^QkKn۵ 6I<=ס$I)I$k6·ٗUe&\@akD%>I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$?-m ħ{vJUæ+ud9돤: *}bp~lѱk3ʱS yh/kN>I)""]CCԩE{M`>'p9"IO$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$?7'lzߌaָ5"~kI$LL$)~oF5ٴSnYhsD|QMclpkw5v9M%)$IJI% p6ZAK\4 i,zM\*1 cZ|Lse<>湦A%&Is]kyYxYW;]ZԽ´RJIJac6؝$:ZwFcv%]fYkZ.X@J@tb;k-\9oJtI$I%)$cL4r;@]_3(cC?K^蒛.;EFv)6?cv|ApVq~391rI[~ Ňd뤳z_]9Zj%,q ei$$I)I$JRI*]cWqm˵{kiqs9))՞mN Nԯ:,p ӱt%)I$RI.S"!-vG1sRd3ۑN/O{֟AK{ºϬde_C.kE&4INI$I$$I)I!}u9{I)IgOs2`ţxt~ZKŌV5[vgV餳m6+/LZj p2IhqVί+d~fl#h\Z$p .~4ԣ݉M0'3cC̗Usp%)$>z5.*͍h$\`sA)):mޝỆv9̘ۢ9ΩĵKwx<9$HylgAv ck=i2>%2I$RIFKKִI$w$I*y[A% Iv+0lceٿglyS6MY2^Ǵ9iRlc[skGĔ%νY{v6+\|o3\AH#R$ӛ^Merww>1tIfau\3Z+Y%51Đd7*gYEcs=ߺJzEYۑV.Uvomg˼JIJI$RIRaXC]mkʫkywhn $JRzCv[aj[N1+-Ϻy%S)9YM8h.xXksUju1S km1$$$gfۉŻ#tϤjb9)ThۊVXֶYֻۚ\=)I$RI$I%)$j}1sNSe>hk[iq 4$I%_/:k\c|{{o?>'DgkK.09?$ LʳL 5ÖP|cSo;kȖ,x1sIM2لQAǏ"cmh{$d| JdI$$I)I$JRI$I$$I)I$JR9!h%T׬\·V4@KRJVn;s0guvuNXRk40=Î_>n=ut.yZmfdY-is~2RSn;N#L6S-/-xq||rzΡI[RlysiЖC|<>A\?f7DYU˿cϤe͜ڎjuGlV.g]cڦ^[4Gcv]:u˛쾟Xu5ZKknk־4h}UΛvn>#Yc-5vhcZh<} uO~mk}wU'Ge4זoBJn}xW&;*UmEbN7As1 Y=G:9Xnk?~/cClݴ1+USo陑\-?⼺΃E2ǻmx$ʯ'#`k:^~jk:3pًmXwGHAX%u4̶RBJhk/!o߮4<<QcʵѶko) \_Yϙ k?%=WKۖW{?X~ȽK _ܲo&ĔN8㱏~׼îiֿ'C+:ǺgG|X27+K$ط7ёk.fCxHk Ag<|;[kKf򯵚ՖZ柘Z )徬=Kg8xJGf^H9r3C+l0].Z]cV}q=mm 6jJz3̼,Վn[$&A+]#Tq,]2B~k}! kpVsp1:9"]SIH_L?* ro .fX\qv6+mzMsf=ՙ/XY9þCƺn ܕ:ՌǮrQVC5sDxTAs>ä35\FUŒV-]ҳ2Uu`f= ޒΉu#P]m@mPUUƛr-ͭC{~.7ty =0ѵ.f4M=;ͮxk/ .sY>;%;O녽'3-̵oHcsKw>k^}1['Qَ%< OJSPXP"^G}_.ȷ恗eaKwn<*;VjǬ1y~_2+Ǫu^誨#ͧmLqu+^.`JJwuodf4Kz;[>Bd] *is?huՍA*ݥgVh3lʶ4Ku@GV5,kt|Ӿb*HwY?T1j<eMjV}]ѷ}A򤦏.s̾.^ ?r.sXΰ2׼@-ZN;abuV7]9 h]D3s-ԇ;kВg+ ?%zS@cYGmReE_R嬲~ȽK _ܒ[~mK v4ǏXx?b^ƗIN?~t|{[`Qk HT:Nq}{++*Toqk94UCOc>"{|6>;'#:.p4{ IOK;t̜&cd5G1FKXw[g /sE^f!4 $Ge?'|̜A6Y-ۨ~%%/}SGKKnVw's|%=@ aVScqd7? ?7f75Vz6`p6[I)tCF׋` ˈgs;Nc^QVccaA` ٖ5~XKGue%<מwLêgl2cVO08yǢګi ar*=.'q^{V~Aw))YSecc6x/L,ʾZqX]ĸtV? AII~>; f̖fKim`t'eׅYCG֏7\8o7P陯0Ud5TùC#uW V^(9}ph.`쮯U~̉5179h䀹g}J nJX}=yB:NfC88@3w>x 쒞&ޤޗPm`.Xøm6/,~uۜg5c56gec3|X[kqs>!;V_ռ/Y:N-d şsJGp>@x08Y'GT?_Q9*pi}qvP Z^C~;US4tΫxVh~o &0}/aGރ1pI7# 2,?Isw2ΊJ*j~RStXX@GUvAhw\Woou.8[X#4~EO6RJ{ۋs;Z]p~ 3=k]ȴ\1ĀAAG42?'L)9Yh*87 8#Yp͓*Ƹ-'?W{^2in{dk]iy ]{(Nܼ6N5}\-`}?z0*7qK[()ī[28%%;3)[mvGaQ/+t{X=#uӮO.8[X#4~E o>{]e4Gb粨9%:Ysޥ1rKx, ?4xiuO]ՏoC0p1v۟SZG ƗIN?~t|{[`Qk HT:Nq}{++*Toqk94UCOc>"{|6>;'#-׃&N5]-'qmlmm.ak?ىk-miw'=7aWeM DfGpVI)SgEvN%Oe$83љ]FoO'R:}]6Jal-}hZ4e$;іکuvL<4!OR=zۙ؇j$yI)&%86+mlh5PF_~W30vݲv[i$/clik =q0,pu:Ea!ɰ$Sio;Vl,NM6[^%;eu5ۚ :$9]6e;^ V.qmu$X4}J|3?}.[빣.rLKIUg}Y e }Nv@Fw2 -Rq~P̂ [m5܇~t$/[nl@a70ǽ{ĨoP RCn41I)EX+i[s@#Rު^|?O[-ª!nJI%)$IJXo&lq)vѻh}gx+a$)h#\״=EEUm^S D7z|%j:I$$I)f%: \ceY˩عms. !K>}V6w7EJp>mcWmo8=Ⱦ_KK 5P/I!Lh;VVI)Ժf7X~.Ub!3^D|¯tjV3+p۱k|l{-$S'Q[lAԆݭ'k~@-$q0,pu:Ea!ɰ$[ ^M4vؘDąO6RRI$I%)$IL^AA{Oa<5@INǭu3kV(wKK~FμnmفH}<{?@׃I%4hUEm"+c@.shjO^2eUS2[ $Up:>chu {7s\;q;vA "@I)I$JRI$I$$I)I$JRI$I$Khvff}^Af25 ÂןO6RI%)p#u?MϺl P6CM q]"IO$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ħ{vK_~%UbY{oahlNo>}[T1NŵcL0FC4;)~Cl}7|:+0\KH$HDI%9_hubXlӱt'-m o}ouc^sֵ;J{4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$nOYc{k{fߥ4z(ͲR>ߢk> )=86c;tXڬtm..kX\ N,;﹏mNkw/Ѵx%=:K]mX^5&oe4ޥk_%?]z.dYXe.ߵńLbS[ؿlʠ68*ZzwTó;[Mnʬso?HpS?]:u3#9S;eoݽ"/;ڝwnysӃs᭵vDvIOKvEX}G7sִOrLE:Xu~$i#)̻?I{?i-s]ums\ BM[^|q-}ec>d..v;2Z(kz>,=tII3zOeKeżL84V1rΩcX釱0`Û#ȽK _ܲo&Ĕi dZZLhY_e$z>e*kG̭1QXncvg`b珬K*6_m'WG-v?|fNèXYmlye{6! w@wIO]_, r[X-3[dwu|&sHLSٕlXVADZ>mcjvb8;|gTUaVUXfE/l<s凉IIOR밼5%k0A[u+nZvpfNu_:3Xm6e:ۡ*̓๿i[jX[@"IO$ul|[c\%XvT:>I&e6_E!ွsyicAvĤK'i}3ki\4nO*8ZwSv\QueOLJJvLWMO~kkqZ6 =bmMWfח:*nc~%W=m<$Sp),O.}8ėC }%5>s]{V [3#QsNuisr?{}MfWNmvv8݇q?4( @Ƨ@2r+éZV8$o6Rީ ĺ;_F![=>q%;,{lH3ƅ`uպU+nKbKMF-;Vk}ol$ّUum{KsA;L"/<43}b fKZֿ i)J>~6[n0LJt\f-8xU858ccқ0S\IOV,鶺va9=o]+ Vctu s5^CgkvĻ"\oO#58(1ն=c!%=Zcx *j?egjt=IMԓ~twijTM?ZVFٗYckt:iF͵y ~))X6:K{kcuaN] m8}=Zzn9:i%7YXpsOUdo;YPzޛ){^cuk5K12gqHoXç2}/e7f[2APk$3s;+u.^}8ﲣplZYN;]sIkkA:Pqn6]+:TssAݕ徥t_qrߒ u98s.{c)XSo͟X ܶ V:.|s+0-յ{IMʧ"]unnAio*c M =O&_cZ9. (XyE5ޭJwHoګ5J,:uW՚w\ղ[?#k`2f;y7 2:Ƕs5CauMdɦ푻ұm1;I"].f 9]IMWsqub <2N N"TĽ `\w?M^E<7[p߿woO/Xz5ְ3s;2))?׋Eqmv0t^^ѿ}?q$(8$5균e\:Mop⒞[4kAr v=Ii hB")G{jt*qI_[`z&t>P$u1ʒm8ks^i7pU]iDdHôov8nINI$K'ucҪ$WEbܗ4ė7NIZwINwTeZUX?5dΑ㢅wWUe[.nc`n'6`fYFݮm:miYX?eêbi Gdg֞c[1I$I=Imi2 u,?V={K`SMalwdh5 xI eWy:.sZIq:s(^ϥ[d\'$J_V%9Ĵ>4 mqh*LE۫h{Ç#⒔:"WOolʴoS:e>K`_}.u] vӏK/~Ƈ|Ji=ן89v*NU8Uor1J?ħ{i> Ph6?ݿJzecuBϻ?I{?i-s]ums\ B.>쟭6tba΂5GOVghlvITutnvJo9XJm.'<({j̈l{^wXꃝOGY_EcZژ̀]0_}LN|Jt2Zk*  =%+8`}Ftd;X\23: OCgiR]KI s*\o[*hkm4gѼOSivO{kI1΁T]8gsMVટWzY=Kkt82htb1X.N t+.~O}ukkk+mn hky F$Omf6W2<})euFsi;zoou.ˣz:&82=qc̹>$n-"FmiI5%%<Fu v.VoE ^6[am`HUg՚mX]VZ6&Kuyy1䒜-}Zg>c@\X3q2ݝUdKF1? ߂[s*h{ea]!{E%O[qݛ]4cZ(/pioSz]2Z۾iӬh YX~` %C"|~_zKdW6UQDZmu{ӬƿGMN:Q斴AufY[g̰' Ϊ<~ƗX >-3Y_Z|]oJU3<'լS]s}+k\CAH۔_ Ӯ;c@iv9#䒓tG?cWq(uL>$z յ7k?8馤 ;j!Ngo>dz\Ԫ?)sɁ%=Kjk'W9W9ǻu%[X n~{,p i56ѩ$I< S*ʻ *n-λc^\4">hExKh N"I)+yK0ѕ{ӣQگgWԱƴK-c+#ꀳ7bA`Oν!޽@PC?膮s6`vu@6qwץo'o 1?Hsl`Yk^tPIO .?寬l̅ ;;n^[sv.i#㰋L[ohmTeيc_XŬ2Yc SlBs:fiέV?+Hܶ%IXzLc?! C{uR= S3ӗC]oۈ@=S 祐pƗiɅ wcP?j;Xj i0?{a%1{cK\APAWZ+gY2hFS h1²;Kv%G徯}N9s =il_sƒ9INOXZ`ϼK[ޯ[4~{vwܦgUas`v1YsKb4ʗ՟_Wsk-o6\@lw:})o7]ҁָ ~ꅬSFۻ^;HUI1ӧ)}L&N>il/X}un\Kr S}Oyeco8}w%}ώ&y!h{~ϫ9g4ݱsd^ONv%a:tn+wN9Wdt zfVh}o`i@o:G=SFEq(m\T~t͍ ݌:nqnLOΟޗG6 )v6{m| ;;3U[S_KK+a.`ӂ:څ[Hp;\X6c>`o=Uz?Q2C쏲Zcm6әZX}av}ue-n11ko}|_sݍYw6=i)np2216piscXNu}W&KC[ׁlS>%Zg?A4G[`ʻWYӺNV89%5z7c;n>EOsy.;u'GպFn^M98y5VYcO3s5󟂾BNn4ˌrRS6j.=:>xR}'6?_Gg{w:4t.ĦX,/C>׺Gu?>:FA6>Wnku?HBƫSKCƆF/@^ѿ}?q?Mu]%evݱ fHk_V~^ϊ&eWM6MncU ~i)OER[=Ŀ=OL}w6]eXl8U-wM#':;?XS{u6Eo73/̼os4!qvف:`dYfa:{aGes&߃k,ۚ]`IX[\3+5?:RHm$ms`[4ZY}պK! i $ֿY/6[]Sc4Y=OdeO]X7NQff}G*m,kZ@ Jȷ纕8}`S_mW Uħ{unn3YcY3d{IO5s>&1KGk?E =ڻew},"$0CZoa?uȴRS uym%եOn;i$'kb%֍]LU`~N9ycn9GǚI%9?f_3a,޴lZ:-i{59_䕠JRF!}C ӺZgC.e[]VUxV. 0]4|i3%a~Ie}0 Ӈ=m'gNu,4T^?X7~+.Gs;2\4h}'ĝxND}Gմth/NqԉqMAKlzc h{k`sJ[z\4aV:",pkGԺ_RoV704ṳY@"0$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)%}QN5۽'q@kZяGi%դ$I)ֺPXuk[79dm|WkZ/ʇmӒ\aԞ +w ߪ4]3fKCx7_q%)$IJI$RI$3wL*e>jɾQIˊI$>dz9k/2kLβz_KgUs]qĞII$$I)WWkCI4pLTIJI$RI$I%)$IJI$RI$I%) Z==|EI%,懂AA (kx<"I)I$JRI$I$$I)I$JRI$I$$I)صd9{A,;{ʊI)I$JRI$I$$I)}-Ϋc^3lÊ.LnsDǬ=RrSyx,{~t}nkȣ$_3im=Mwj2;@I0"I$I$!U]{ ̸q?$jsl<|RI%)$IJL懂AA$tQ^+]mx$DIJI$RI$I%)$IN'L:4 6]P̛e5s=]LVI$,N;u^_7z[Ɉ-RI$I%)$IJI$Rn&O=|*I)ƭ֋KA{Du<5^2V!PY[ s7ߟS$ܪŌk pǑ*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$y_Ya1ꑳ{xԮeЛfUY贈+|o,d且$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ endstream endobj 208 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/misteroa2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 216 0 R /BBox [0 0 899 222] /Resources << /XObject << /Im0 217 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 899 0 0 222 0 0 cm /Im0 Do Q endstream endobj 216 0 obj << /CreationDate (D:20080806201129+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080806201135+02'00') >> endobj 217 0 obj << /Subtype /Image /Length 22327 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 899 /Height 222 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$.6Ml{G9 O}k]iQ{+ 5ͬy=1V852:\gԬo_Wu|eN鲳cѹnu1jTE.m&6oHOgINK;)}732w0j@ݣP[ԺLf }6V]aklփjZ>k~ӼVymhd;X.#u}\ģʬ~] n}eU;ymlIO\Mg=51AvX>m7݁gOX>X^ё@Ƴ%;ɜ汥!hNܬj5f\oU=UN9WYeXYN%&GBnSbf]^ER[RL8ni"AF\P=?Hd2鵣VuowixK2.mT;  RRqݕ27: !Fy(Og]+ k.skf:㆕rީĠ?+&)Ia 8Ŭa! Sq%Q\WX2kg#|oYɺ~À^K御Z^7ҙY%G<\MVzQޞ65e^ mn.>ZNym=#7~_paZ/ZZKwMz"RSo}[3.Y8(sqcڙ:4|{#e}p8;u`XTͶ3modÜZJz4N?[εr(eYu77-isTm,px!/u>_ΧzWwETRژfǼU%=F^>/lm5LDh.1ұvwaeuv+oQ̣cq]ZOR3a~8~g<}+ݷӫ,eY cKί`h9'AJtȧu wx湾՜Y{`f4pY] U]Wh XȀ2jwKcKZtUnq.c/tD?oձe1q䒒WvK*~j < 2ٸTԚYh~&Or%t))I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$(]ki<81{hsJx4ٗa3i} !|vu >w3<[9} OlCw%u$ubtrhȾLXٍ]Tënf;$S}X7vy,gyz%Ѻau}g)uv{E{!c2*y&Ew4qsOkHꬤ_]n_go;}=wq:L^.V>c;-m՜5P IߍWVJFXȱ/sc 2leOzefOWXV UǃVNIv$'iUn5W?7l*h=3%jY}wq7m=S_{ zoQs(uV:ܟL9»Z״5@JTu[2heb;meTjykX,h!SK }Fp4$y]3#++3Ƣۿ1oiYVWF9>`#+Jj2]gͱ[0TTLx}W1me4Y]`n 1 I%<[d^MtvF-G_G%At=;x)uϬ=/WUcr"({*|5t;I)J23o{-*eKAdUzYtt~[Yec16˅i$)-G}>{[NEN_H][X.k8#hh]JgZ@%<^riw1UZ0vW?_oC/%؝W>ue_]nl&guT] -g.%qq()=3~~Tnkno7{~GI$Ve- vEkq%y$,]vd7 'Jpb=iC7*z 7 >o%C,KOHs\< \Se2kZ8)/VU:R;-ccxcx$CҝeXF9owm t h$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$gc`K9XWY}~iyi4$[X44:/'"r$,i?Ɨ!: IJI$S_7P\Ƶn;5~=xX?/+;_Nͺ̛s͏t_sDēB)+ ?#n/IOVI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)>&VwԾM7l辗kA&- e—ȦgFSVIH~ɏO#dL }aO'Fș.z~CUU4CZִIst2K6vKIm Oq/bf5깆oZet$$SCC{kisX h.{{$1+rsZƂ ˣ6v;o9cy<5v8$d.+3rùuY9k閆בe<4+OW}:~UN;EU7{2.%7Yb4u&Y];6ǦTd5h$$I)I 1Z"_KX"Fp'Q?X1:uyɧma6=0 ꒝DCtbٝnKũiﭭ{ml%k$I)I$JRK7}=K6SX^u!D +gEeMݷwIII$Y9Z:?M ynvϥUx6ZIPkOi1%:,~tUЯ#'c[tkOuI$$@ipn;RRDpz7T[톽{oʼ yU{9ޟxC'?>֗C(iu;J)ϫtm ,f-ڪywemp1XC-cHlkK+Gȣ2^کX kZ$RRDm]nt˱1zvmuo~'>JNC1iuC`%q kD$%%I$RI$I%)$rQ}p !h?Jʾư)}t7]-i@IMĖ&7?x̢#v.K1M Heem9sLS$I%)$;_{uW9x!gcg5ƂXa쵏x41dIcܬ\<K *+6GTw#c^1hZǹȑ֖W=i,E~k2覻.2'I±ӳj}?ڲ"Z %6ISʺ=*̆ ܍ޕ/vx4JJn$f]43aJGٻۺVeNC1t{}{N=$JRI ە]Vs0I /wG)2K>޽)l{U6S ~ګ}l8+[]ն\,9iug`; ];km)u8yhRRDNW<,@۝]zRUv5k_h x+o}=w ܤ*=;&nƷ {Uakw߻y%)%YՇ\ڙegcM77N!Uz>pλZm]^JtY}aWrq7/_QV-$I%)%_3?]L};nmu5tw1qz^GXn>56d;҂ښ84w IMĖFb5y]]wPOYhEN鰗XǶ"gҵ #]JmJ>n..fWNlSGIgoIJI$RI$|ldKmu1׽g fc70e:X5:5ÿtI#.zFKԘ& "w?F]8˩0MZD1%'I#.zFKԘ& "w?5ak5%.I$$I)I$JRI$I$$I)::N+.-,hv{ tu~7X4[8_C]I m#p#_DѮ=>b9ɧ;ZnhtjBNv~jc5͹l=z~tSWuYSt;m=+gn=}ޥG(,uNӍn@s2Ov_i-%t~}|~^+c\֊_[,9۽ ac}R+>UU~}[]kwuηzLggуemǮ}K{#['\;;u7!euF|nV_כs ^,ǴWρrnWTs1%].Ǯ1܍}}kC+'w5Jrbz7/eCi>ߴkO;e=c?SϪh]u^V2giO+M=c}j4[x{}p#oYWͿV쮃*86zo uC 4NE^zf[cEum,utnk "DTu? '~+Ut)&c[?iָ [[^[*$5;Zu{?EV?y̻ƽӓp٧:[=S}[[ Ke4a _3B?ougۏle{ds2=OT%<UgeWi}'kiyصd`&KX*Js>~凴fu kdՒ%n!sS:P&6Fe_gg^^mI4KáeV_[锌;dqokoh-$Aaa\+>+}y]N Eh5׺9n<IJzOa0kJnMugeWg32j8Pc=mA\A&w Su>wDiv=LƭnsqC~*zF&43srY&kۼmdw ꒑nպR-T\7Uiޡg֞Kʺqe1{FDU*?^YpȷY[Nݙ5y6W':W^L:zedt<ʅ౸MA))ݣg7OܑMu WSvWlCDžOu߬]oُV%9=3>&e[98v4}_V~oovWG-Vo @3[F1 V%1('ce3N\2ik?sH[YzDl l;{}wŬw=/=GS.#uuꪭa}jutWa|.rq[:ֺ~AyAdU[icWg2{ifx'u,[Hpc'ϭ.plbct0}c6w79vuA_UX_:yį+33SnUz- UΦ\Gt߬f^,KqUCej^@|i[uUߕOlgĸݎ"DG}P>a}obn6>#ےy{[U61ѠgFon>3̻ht47>iή\΋Opsj\_Scr_shѯ@IHf-^qnXәSn{Z %zzkn]LȽ79ޝmNs+X YjYfmަ9t|Utޗ3cn] 5ی?m`,,vd%%2z:ɥ |VK\Lrctġ&9lƵKG~n_}c? DĔ?Uzn.P϶m27>Sg<pyV֮w?@j.t2ӂY?ZKX̊H;A6\m%5P?#"{qv quΆ5$ˋtNzߪ}^7;Vr $6ly _']P(;'/ƚ`[s=kuΗ~A@s2(ͅ5dΎδΏr:;Yn+{kkx:@`'G~Ҿ}62*nEeg~ItbKH\+a1v֬ߪVϪq^SmKY#>jNX3>u'b[eE=[eOiƱzZRRrf~ΣsqN {k=F7lR:TΧ+gMY[ ,el{FNQt{亼nFhr @nOuFV{. =OlC>{./e}%-rSfdbPֻ߀*Vvn]cNFv=[VC ]//%?7x?׋l>B{F^K>EcXyc{OVǺJrGwEkzQ7v]H}y !}@֏ auFGJ7Uu݋^]>4FֺG0~.ܻ+. |9]?Jo7NiP]NS\] uåAQ#m(_Xz xx"Z$A]tczqF3vVoLɾm@ 0BJtzuty9W@K[$\I=:V76 o$> )ꙿQ뻣t=Z;!fh% ĮL`XnƦo/wH<WICt +sPe-`X<;kt.st^[UֹZY0$J9]oX܇}A9`]~&E6\][NU umMd1Yf޵Ce[ׇRoDZxy*;z!9]5Zc%ğ쒜_Z:ߑUOeϼNctנ:1(f+ɵw+6i0=S}[[Ke4a %<^3Eq̭-~Mϭ\#^gU;]교,Ǥ ൖO֮w?V"*z?hILsտV][/wMu=T=. ysG~Is]mΣxkmȱ4:qI1'lF1m˻bYښkվ[FhX]catY^3خ1㸿w~jԱ0}U"}6Y}6c;eܖVniz nJlδ]/Xc]c-w$[`ыtΫ m>\[VEٸ͇t07hi-niP:^A-/c7p<.ֱh}GM[~9}̴ C\_{k`JJi}s \=[k{k^N.k0`դ}_jUդSqU虿o}ߴ0 =lv8}'&~qI%IOJpk}/{e6\Vl 0m%)$IJI$RI$I%)$IJIrKOAt*4tjq*s^=m\Z )I$}Ydge7 h \Yi(čLy-jXeo9 u;cX>@,ޝBN]Mp{kȭ8^%s3B?i$JRI$V ;s߲:I$$I)I$JRp}?'^\ڲ0ZXAXI%9&deMuC2?eCkCMRN;I)VY^U9b3mMgY a$RI$I%) #Us&\a$Z充T"YY#a+kKPeg`s@?7~DdRkKPeg`s@?7~E7UYэi-; Jb5 ` k@ hI%)$IJI$RI$I%)$IO)4 n(]K,pk  I$/?}S2_*GӯsY;.=oio;k·Xi4 Amf5?$֫F[w6ݻzz_hKnRFݱ;q/FKm۶#n";%}c}-=8vmGd+psA.[VG^g0 q,-h_CvdByLuzTzޥ{uos~t $JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$dbkQ2ˣ*YC;PkvnTNMև:L]`XZC:(9?tc'k78A'As=>t oO2},am~n7VռqUunzat]m/ xmc@݉))ԗ+7tѫ77`6=w6n9G?/D15*]ֽc7̍SѠfcVrWCL6\[}瀸N>eSe<X^A̮z I8G}MϷ6HTֺ˙꛶6@?IOm?I·?,tzTa5潹j0T=]*äe9f>FAoQmT_'A{ZwOn?Yw2~fߪ}W?' ^Z 4/B~پ~ӱ}=<-eBtۋվ]c6[-y>I)\?qq_]SoN}AG/=IL-80]l:$3ڏe4t_k ycÙ[n{ioi-oԽTݙ܋/`n[%N#sRzK܋q:6F9ms#<85p>lWʛ}wcŭp xk|Tn;}N}9`}#QkIV-:6rc_S5sZ=FEZϫV?9A )RXϿ1jH27`-3kJ}oUn^M5u~;]IJszYU:'[ UQͫYx):g~p:uTїs_fe[(neA6mpw%@%4FnuXwחVCXc[w35,_=.ӛ^%vm#)[c!wrINGT˅v-Q]ٌf]5i=N *}>TS۽8<'T5᝕W}OSG84 [/ #lfCk{9'醃R|jm:Hk@s5*c 86䱲Wל[;H}ŭX>ie 8=)ڷv[!|S+9KWelVkև8z`21˩׸CX*J7^_ZJtr2(Ģ̜ꩥ{*M^1K^ mր\l{ݫ]X^m&Mp_RO4%>ی֞E\};kN%%:OgLcn϶2+ǚXYt8aZǺlZ~>b;~]9eRSklcq×{v dv#[>bǺx].-韶XniU4Y?[UVseuu<\9!#IOF:~mEtke'[!H7~*#uΡ:q2KvimZ=Jz*:N֎=Scmc~;T*r LܨeuՆ7QwauJӮs15f8 q@HAi%=a!tO6Yn@sfNkcQ<?m ,:[b`]{뮰Y{11N?_zSV2I[=Ջ,q6ZRSke]U9Y κj-K T}\O^So.n;reŭۙ?47{9{ ͭC@{>ddcq5u - YYw;y!%=rKX>h5u.̻~U`{j2 q>4#>_z7Wϧ"tÍE,XֆKlwK]RSլ.æKK2qm/ʣcnʛda^SsYmgP쮪aif6;,t\nV[.e5O0H'*Pͮ1۟]` Y4aۗ֙F.ws``\(33pOT]қN( ȦNݿ%hkK8G $ncBJv1.c]MRUV䳲>u /};aR*d9 g6Tj.hc\#iTU'ӶP~݉)^[ 4<TINGx]q6azakK]7 {XiȨggkc ~GwVP:Ӟ@oԭ䒝\{ߏk 9_SL{>LsVW=(tާ:玜.~l?%F-ٹNƭZ'k+0I;$ɉ  $,^,tlϴ]f3Ҷ`-i3ml vtL`unӟwX=V'V}&k2pMhx tlj'Oe]U9Y κj-K T}\}}OX&Qn0`V,?h۾uiU#]_WenNml5 $fQʧ ?#ߒ\v l-=3t~ip:-EٓgνӭƷd/ _cP+]efq爅w}`7YeԺ[2W1%4)R\M_;>C6FUbcZ-ީ-v5Z.ˍ}yMe5Bu[h{SæKK2qm/ʣcn/OUa]Mc_=>ߞ]r1V-Yl)Zj@m?{K " hV Eٽ)k=0̊ki-IOaVfMvQK> 67Se׌kׂ[~굠97jC?כln/I.+Sy6Wԓ幍 }r|7uQWNӧ II>u /};aR*d9 g6Tj.hcyrXwGjnuGxǍë7ߡWx>æi)>2_l%=ZKgn>+ˠo0*;KWwNGlp=M|S/8n] }a5v: vn5Y[ sfo;{1[fFW+ien>5Q]G^ŢB_QnEh9c`l;{Jw2#6>{<|HnC_k m#R3/ޕӚ#A]6Ie f_O+?+4Fl>~ )23Fm#uLò1{D$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$߬uΟQoq i5'~eTޝyɩuSeUq7kS3p>u.OX[.f:5!sNdc}GϩyTk_}\}vDh4Sy{~Jum{[ zfnWXOJamPX[Z-47Mu*}[HwS]ZC2/{ -7x|֍56K khcK縆8))Rdmp{-˯c{Y8:|mzYв12h0꫷m~pp%ԤzAm~Nm6ݵ\\[#HŸռNӺ.'MLS^3]ckS󾪋IIO.]y݁]v_euUnevV~վt*'T.JkZͲ W?ޕZ+L[kOޭ*ָ<{tFDz )?o!:gU:_KtΙWFN|oss}'JREcۍhcxkQIN/Ы%vwJbvƼݴsE2ƴY7zW.&~nMVU}`cks]hg+v5.`䊒<ΝsS&C'9m{v<c۸}^{*_Xl6D'-"P6G~KI%8O=Srr; ڜ6:[ֿpWzgKWZknFVS[ry2|I)q2:e里#OB6E8 SatF%U=[ ,{4.+$}_Cu =Ba9kN4.v5I$RI$uLo&nS22vERcX#M ee~_\Ok (tQEZhio$ɉ:E5ls,uMcmc^6Uiq`|R:wEI*kku{jcwQi1`U(CC+f`xΛV_d.;k,qc-/ht@t\Y=X溡k\CaajgG8,/}nϴ[^Gv̘WuUC>0Z @:ycCZ~~n郦ٴu;"+sAYh}).$߱Qlv?lo_%O_Fk2nı?}5ix]I)Vz@eչddSMo;HDNW l72-!{v3Nj4נI%{JI%8e%s7\m̵loFzO}Amt >Q5wRIOtgO&2)|u=_հ]c;s-e8YSI4iKtoLuz+N51whOOC{\r/!@?"L$}Y{f=T=uBח8u?Sv.fޕR]nf;}&YerJ_+~̮bq젻}mZ܍nysv W6Ml{G9 O}c'cCw$IRIO7KoSMQͿec,kߥulSzKhmǨd;BE|"m.7-:1ƯҡLrIu$lSzKhmǨd;BE|"m.7-:1ƯҡLrIu$D[z`82p:۰@=ֺI)澷ӺwD?ݓc5Me8ݨ_XO~ΓсS~m=FHsuT.k{IkƢ,>ann#)'dYֺ`[ch6}<,vG[t>Y~=[s gU=Ҥ[ _72siaeUmֿI:wIԡtlcuKqvc2d]6_ }$_Pfq?gg {].kM/)f5lLdS$N:3߷ԯs;׷5IJcm}[ؖ;c2l[S>4sFq31rigz{cꅯ/eq qɅw Q\_nC4~E8 8VS}bV?JWY{.3־ۓ} lVA i$I)I$Jrgfd̆^egmf?v浠./A馲ZeZ_eu:w9CX5Ρ'%9?WOFdFܛ-1,~Cov.hpn➍Ѭ7_2ZbXL&\9+Zznm`{$:84Ǧ+Msi=IO?zO.n5]C+&ޡϴXlcN;g {r1(Ⱦcml{vh.a:"9|ohvӹ&RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IO)4 n(]N2GNƧ8ښ\@ŬLNqB^VYcX\8jI%%2IC֫F[w6ݻzz_hKnRFݱ;q%"?(8kC 85W9+ ?#n/]K+psA.[VG^$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$1\ۦ`.o:kxT'Xc[ۇnM` mxkH:%:)$JRI$K_TgLʿN˪{s[Z{l[rM/.i_[{vOZI%0jϱݞ b6#^^7۳ӁlFݼDvSI%5rd·,)4Om "4?% _x=3eQzk}ֽ9.@JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K-]3u,Ro'2-iMײwɝߞ#49ishtsQ轸[6úղ_$qc*xp[ )RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S icla  ihI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$J endstream endobj 210 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F26 30 0 R /F27 41 0 R /F51 33 0 R /F18 5 0 R /F19 7 0 R /F21 16 0 R >> /XObject << /Im24 204 0 R /Im25 208 0 R >> /ProcSet [ /PDF /Text ] >> endobj 223 0 obj << /Length 1784 /Filter /FlateDecode >> stream xڍWKs6Wpz 9!ă4qL3C,Pc(Wq|!X~ar}RQ%\:Y..BU"h]G߶v?>YicUw,W*fOw/.HJ+)Da(e:9_.$H.6&.>|JEU]RY6zAJ(U2J/0,*l2^݁#^yyԺծz_N(U!"+QHln%+UDs22Ejw{lǾs]p~fo?_XjG4EoY1R ,}`iP?[ ze\'H,~m78x7VRT|*tR-cͿ{ nQj7bT*np[裣d|& h]͒&°o*M?O;f2֍:L̪t&֬n[i*.9x< DۦmǽcuLq_Q>`UdL֧}u! x6xf46CLx㧶fxwv,!++ kD{; ,ش ZOAB쨆qCs63LL2Ǎs̷z`iYH`׷  &ln:t5 բM_&}[o`EO M8%u6# րg=U#UGȿ&] /*`)+m)0*n@'z~(-"vlME%p=mF r,K!2]\z>wS#T(Ac(w6͠\*q NA%9RH˼Eq׆\W>)4ypH>ҏHOb 2PFOGH S,9*^+]!*U~~)NAhb)>' T's"|~CQEmj)1~B>ba(ܡu( }T}TĝŽd^rYc?H^ž-G{b-lʦކ}„!1ԲX х> z= ôol TiũEGM݌1iJu rh#sEj4amBg#wmv@o`t$4nyx4|jûs<> Ρ\<;/wGL:?$u $aMF endstream endobj 222 0 obj << /Type /Page /Contents 223 0 R /Resources 221 0 R /MediaBox [0 0 595.276 841.89] /Parent 213 0 R >> endobj 209 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/ComplexSoundb.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 224 0 R /BBox [0 0 518 488] /Resources << /XObject << /Im0 225 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 518 0 0 488 0 0 cm /Im0 Do Q endstream endobj 224 0 obj << /CreationDate (D:20080803214357+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080803214409+02'00') >> endobj 225 0 obj << /Subtype /Image /Length 27714 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 518 /Height 488 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$?֌ݗne&ٽ˚籰@_YyXn]6 캠ciCwlINKutY KutY INKutY KutY INKutY PHm ˲} i)Icή3a/iή3a/i)Icή3a/iή3a/i)IaäQY[b^[ή3a/i)Icή3a/iή3a/i)Icή3a/iή3a/i)IaHemϦË|hm:o,Ie%:o,I:o,Ie%:o,I:o,Ie%߮!>7-W-pu?f%M%;),of%M/f%M%;),of%M3t$KU;I,:tܻ+w{1o :o,Ie%:o,I:o,Ie%:o,I[äQY[b^[q%:o,I:o,Ie%:o,I:o,Ie%:o,I;HemϦË|hmĖ7?&?&7?&?&7?&߮!>7-W-pt$WME4WME4줱WME4WME4줱WME5 tܻ+w{1o Ė7?&?&7?&?&+[S /.5ԭI%)$IJYo~Ŭ_lI)5OSe_>'hhgLZ_V_ JvI$I%)TxUt sA~9V)l|*JfI$}&*",t][VU^]6㱷4_iS?jW-+zt:]C;ͲYV.l*+I$$I)Uys}]}44V>M%5ߑe4+^?eUGR7:u~Ac\ZB;}O) oWu$HjcaUF~fcKx<MFmA?RI$WM7.=*lg0iUf?gz{< l|r4~]eO^]?:\2_sյ ?ʦ$I)JT«`[sYK4>5}څ͟ILI$I%)Tª<ǹ>w+jq?ȒI)I$JRUs-=6U8ILI$I%)TxUt sA~9V)l|*JfI$$I)}l,JRI$I$$I)K⃭/z+acPuE%; $JRJ}S`dv>Z\;¶(P"ŋR)l|*?͏ALI$f;>;=|xϩW|iUSV;}~M {w\A+Hu>C?_x0j6~_MI$RI$3>M%5k7+= =Ozq;ZUkԯ͢>c얻VS 7#vRI$ q/Ȧi)I$JR즞vM~5c´uXScDHykIhKc!5?͏SPhRJ/{+ch%&@8Av+˶psK\'=tD$bd1Z*6~_MBi$JRI$jq?ȒI)I$JR)7"JfI$$I)J6>MBi$JRI$}l$$I)I$JRI$g(:碶?LZ_RSM=1_acHZ '~z~e;.gK󢗗g_Z- nc7;ԫY^nn%9l.`|0HճtGY=t&C:v}6rB\w=%;VPj6>Bi$Jkg(kXf&Vn+*kYKN+wMNͅz|X 6~Omc?줒I_MA?RI$_?& 0ۻ![6>*¯̛02kv܇R鈰3@|.^.|.|;j6>MOSwaj%Ұ{~'VfbdzVk{;Z=C72t7\[ؿm8wcf%@+\CLX"#?*#?Fڅ͟UVWzn6N}mx*͟U H?Di$ RI$jq?ȒI)I$JR)7"JfI$$I)J6>MBi$JRI$}l$$I)I$JRI$g(:碶?LZ_RS?O:hqimkVLKGʺ5l^y9J(ì}c?}ԟ+Z+~/fW(Q}%)C(k?QuT)l|*?͏PI$}-u.&cmZ>lVl]} cluLH[ݿ5e~KG ?/ʦwgTXI%)$IL>MA3S]X~jmm,1aVe.oP _M,N,u?VP}O'6>+GߺI$V0o~E58SIJI$RnK:~V;,l` .ieUuwM˫&J(,psA l|$ ת:^|U5 ?ʩۛTs6~9yHG4lv̺܋`8Z4; ]ULq-hӳLO,625z~9=t&C:Mi~UO>ߣOgVHmZW6~_;bb8Z$PI$JRg);|"JfI$$I)J q/Ȧ)I$I$(SU5 ?ʒI)I$Jq+k[ o'_I$$I)I$JR_ X3kAIN]eĻ'nFٷ Uzgؕ5' >[}bt\\^8V+v[S6r"SMKֿ5?悴rV%۶վ[?fy!?ݔeI3_S/ea T6>RbYlV+&Wil|*!p5 I$5ztێg~;^˫s>jҫ>v}vzS֯o*Oqv=.l*͟SEbI$I%0wE58ϟSIMZu+msX;EV~ҿlУO~GsU#kI")7"JRI$?~dг=p*Niwd]:}.o!-?Bˤ➟߬ U%Gl|*ߦ]+ 1? Oi2˟2rI$)rz躷J~ -v+o̅wgVoOכز*gZW6~_M\XeJˋr$PI$JRg);|"JfI$$I)J q/Ȧ)I$I$(SU5 ?ʒI)I$Jq+k[ o'_I$$ֳ:eհ=%k7$K#u:OS}WRPe'X`NN>2h#)oC٩ucPuEia]SXZ mcFiXxS}eE}e .OJnaщj̦$>:պV3 Fn-],Y"VWMLXGq)1}i(z~jR}^Q+̺[8EiUelQpo1LnhakߞJkpι |FH%d(z~jRYMXu77ﺶq*mmC6`>]%cիއS?j?W?J]|!ӧ_l* k 8vEc4=Zx}z~S4=Zx}z~R>M34~_>)=J[\\(s9kiTf[OPֆ^-^ g;'z~}O +1Ufi(z~jMq/ȦkwZx})J_>Zx})nv?OmbUM!'lyz~:Ed d6Kt3`i#ℶ>K OD6>f_Wfu{mb.zòzQz覣Ǵr,wca뤡KիޡSS˺Fc,LǛB%i)>.pi*ǫW޲>Xi=cA3j:F{%&ICիޗW%3ICիޗW%3Po~DZx} Qp%&ICիޗW%3ICիޗW%3Pz~*X%&ICիޗW%3ICիޗW%9_[?Zϵ}o1/#*KmyD5ti)I$JR00.{{ 7 I)=Hd][qi}5lcN=w&fWF.eA`e"c? kZgI))ܒ\t^ָ [K⃭/z))Uvj|7]P׽ͫV?,_ŦvGi'V>w??k@Jt)rnQVUiR>guߥ ۺiSU6ma]|)4͔'IBkKN+wRk V?͏YVI~~eXql7ڧrI:% VXon96X_ͫ}o}sʛ 8?6׀(R'I%-AzDE8ϟIL%:I)h @NJZ@ q/Ȓ@JtR$ @(STP$uuƗKX[?ZϵI%)$IJI$R?LZ_V_ JgM3~ٺ+Ue}\&%fe]X_CXD]C+h7oYUztێg~;^˫s>jOqxC_.V6~_MB򩢱I$JRI$;|"g))szZi`uic%]#_klE }ƿ .wܭ 6~]d5L:WG_]ԒI")7"JRI$:黦ՓgMXl89 *O߳r?g,/Ocǜ!-?Bˬ⽷ܝf'`.Q~^Xxp#G:S ՈcrKAuU2ĵ>>ܿ}T$*XDz}w슯̬ >N+acbk}Գx5=Լ8z3 WuAvI%TI$(;|"g$i$JRI$j q/ȒI)I$JR?͏SP)I$I$o'_+k[ )I$JRI$I$,n׺ݏ!hst KwBҦՖ=ii:h縃j*'K5[N.,%r?i($J4c39e{^[eCR~nS m>05R\9ca1GP$J$zپϵN_6z_-eZUzՎ__~;C|k~JOqv=.l*͟SEbI$I%0wE58ϟSIMZJBS}=yVZ+mqshϳ7%դ#kI")7"JRI$;)ݓ_MtX+80*Fc.uTQZvǚ/ŮHi~|={h}at+*nղ\QkGsXg aO=09}1cTI(R&{ɠ5[YT]/~2ˎ(*:Ze̱>!ASTz0M_FdݑiAI$jjq?ȒI)I$JR)7"JfI$$I)J6>MBi$JRI$}l$$I)I$JRI$>2߬e4֑u'VXn]>4ΖTA8Dv>OV60hJ$$IJX}M+Cq aclGdW}60z6 NH9(?I$)kg(kXf&Vn+*kYKN+wAV}O'6cRI$ q/Ȧi)I$JR^Mmݐlu-NaWfM5nC{itXZvv>]crU>o~wV;Vd<:-O1ql?p>PŸ6;c9!`$PJ~MB7/C*zr֝?rY]/][JeW5˹w̅xFKlIB!Z[ckZ\J*ǟ9Wf8vz{\.~8qY&r?%M>`WaƷAefL7:sC31\ͣK5uNH\ɫ3Lև7{#2BIo]!2I$J_MA?S4I%)$IJPj6>%3I$RI$mWk>ֶ?Oֿka%)$IJI$RI$g{٭´7X~@r#m/g/a#vzID$I)K4 <KCol*OetlK 1˙r>GC([*7 tl8=T5e2Q1>5YZ1]\Lmn|:ǐִ9@ ]} cluLH[ݿ5W ?촘:b zݻh(⇹0ۈ}]#KG䏤1Q-?:!–jqAT6FG,C@v4OA8a4wqK\{-eOaKɬ .3(kvـ?^(O/-X#i$Pg);|"Jk#>MMŁz<Ø*̥k饂եG !_4#O'6>+G=I$X?_M%)$IJU.XRi`0n'UWM7.=*lg0%_L7^\]{uhW3VᶛOaV_UoV;cK,cRI$J.l*͟INeߠˏk^+`SR]k,:~s})}UݠSeeS:$P>@hY󮩺~MlĐ^DUl:55ٶ#uAåi|"~PY_cYnd:OI=l5c;O\V.Ļm*ot IBX=FX ߳I(R8SPo~D$IJI4"N:JR?͏SP)I$I$o'_+k[ )I$JRI$K/u<:f=wZS{hZǒg%:PotuL si`܂Z}3^X-_1)#}bGԨI4&)tHJBJ]BHPL|*Js~.~őn>ۣZ'gbܚ˭"?Ea?sZιLqg Bmcoh/eչӀ5M߮bcFKFmw=Z*0䶊Rk5;oA?_ng8XftwmCb˓9_ӆn_Ghmлhw韗SZ蟫:qm`E7k+VB[ae ]9Dm%`)M2ccѱA]dHJB,]>M zE9 )㋍eU3+k{*t`7C@8& 1܏A?fM̧hǥ6ޝ{E, ÈJ&ʈ*ӱ/l]|܏VYgD{40[u.}8ǼyEY;旑ɪ8!j#~~?7`V[_M z~E9 i HIKO߳r?g,/Ocǜ+2nmܻrS]:}0>KBˤ:2?([ 'k?O2r,ojS?Lv<':ɌlI%!B.l* 򤦟 >Ѳ;vl"V/V-91֭m7QXV4:VoǻolquVٍc~o0`#'LnI,f?Osqddk h{BIytEY7r3.Q ei|".5Xxӣ*hh1N#g'fɒR.EG *C948iy HLHE4.O:V-丸\c'~ 67*Iް!d)3G$N>SC Po~E) #(Ul׊h_cgY}`Wu 0}L0$L (ݍe_aN9ttgbJ~~.+ȩ"m0crS  tRAhԛhq h1fge<:JESOcT(RG>WJDHJBJ]$er\7K"IJI$RI$0}Q[2qy>|"I)pe/x{s\%9]^bf`0>|vw֯W7Bu +ZVDXok-m $7+[Osb23@>l|Yݍb״~MN{=FK|Z[Cִc=r_F5.kV  q3/@|~+tګh*qrW6~_MFW7YX1}fcLHym%j9iy?{k>:k\ Oҫ,𢡊xd[m,vg Q,Jb${ .Q߷W7I3:`, L%/:0q cy[,Xޜ:f\OcmU~~)~GN}{M8^Zd "n1&1M_u,v=0]6ju ok?"l3b&9R{~eAetO_:ql`A7k)azQeoGo%?Joܓ)Rҫ%UIL=*qrԝ^'NMX+pm?W.\ލY5~; oAg:.nho xX ix^=rʯE_ WTe$Y`_߹/JoܦL=*qrV+0y(]~TJoܲf^-umȮ@ 3cZ;q[ ;Z1FZKDYXW@"c? MJoܲ]yyX ={>p<5}`%7]nKTPO7soO+.p"׺<ɏȝg)at:#y]*qrgw䌠ҫ%UIN>uu,V$m.t_Joܨ`tP, wvy- +'66ƃ8NlX7=Q%_D _߹AWԧ B+)$LRI$I%)cPuEl,~褧a$IJI$R)l|*?͏ILnȲo>9$ াkkR"FkmaWfKhv׋q3m`r{qo ?/ʦwgTXI%9-KtRu&4-h6+Ye`ků  Nd~ Imak-px!M y<=yaPg,ίnK}5:Zoq?ȳ:79}d R*۸wiY}zs]]w'5®dsWu56]bkU?.({e7h33=3Y=c9/7l8?vSPJ?P88o~E58SPI$JR~f <=셮~қ6wX.- E]uN7C77:b>IB5iTI$(]~U5 ?/ʒI) pR@qJ2I"I䞚Jq?Ȧ)I$et.X9WzV~8&JY9u|*Ϭ3[{}QɏxzA]e8SU3s,*h![ߒaE$%-LzFG5`z}i=k*= =>n3{˜bM;HyI@΢n0=zlPI(_ yx?EV2-s<ɂl|*_e_KxdO}3V?͏Ss:YDqδ J$IO)OծO7X.(_]N( R8Gl/ȠuRI$JI$I%)cPuEl,~褧a$IJI$R)l|*?͏ILI$ϥ6QPĊ VU^]6㱷4_iS?ju)i^˧Յ͟SPhRI$9iyft6Q2kSyP304dsfAps`0Jnh_wұ e^FX~^ߚҦ詔T60x N3:^I{s{i%;+dxF8_ I6t2Z׀WYB`-}4U:גVYUkԯM΢c_X;VCoC[å~K+7%YUԻkf>+UV5>ECs0q.sH2H_v)_Mg;YwM}gpklh&<OD$MṚ]g˟eZxeTiô[ٟܩuf?(3W6UjL4-vD~+9 ?..?͏SPj5I$R.l*͟ILI$I%)A3>%3I$RN'ӲXX5$% M;;=MA3SV~ҿlУO~GsUV)=J[\\(s9ki?0ar?o$Hr>?O 1=ok=ձȓٹk)ye/߬`)$Q%KE=_.ZY,u7}Ϋ;ezbcV2='XkNpKHglGtڻ]=xzU5 ?ʦZI%)B]~T$IJI$R>MA3S4I%)$IJPo~E58ILI$I%9Xiu) Xg· oebSX!0Xy~,n3 sL}]wDsxVMcj~_?:$ID$I)䳿=?JW%w-Wys@{Z濞?vF?6 I$)RI$I$,~譅?Aֿ=$I)I$JR?͏SP)I$:-&eհ!۾JʯRӊ7R"Fkma~KG ?/ʦwgTXI%)$IL>MA3SY9BL^-\^l'g⬪~IϺ7vStsauޠ + _|{)$EcQ5}iȩ26]`涟Vι-vAƓksj1K?(I$IR~KC=KiH.fڴ=:ՅzF [fMؤZj:`{O_o{!|SU5 ?ʦZI%)B]~T$IJI$R>MA3S4I%)$IJPo~E58ILI$I%)d}Z%XJ/k}I浅pŮ<YR(;]$Q%H׿ #& 4%.#vHuNGG$#WrʎGQQl TٯWa\ec}R~;.zGrK,NWw"ǫlI&)I$fӱ,$WPI!))cƷ %EWm%tKuٶc׋vee V78c;EcPuEiZeT&sO\??Aֿ=$I)I$JR?͏SPS4I%5YZ1]\Lmn|**"]A~jOqMvV6~_MB򩢱I$JRI$;|"g)3]{Cl'F wU޷k)4>(?0a;:rD֪CZ:uoSU5 MDI$JR͟SP)I$I$(;|"g$i$JRI$j q/ȒI)I$JREh܌7QQհ2Noې}`SrQN?^GWa$PK+7ۓeTy{]sJY]o3\A6*n[<z5AهOֿkacmWk>ֶ)RI$9p ?s}׵2/v=@ Jpid;˰l=x9< ڨ{3vOM!մ}#Ҷ!KcII%4Eyt+O2Z;h'cұu[}u?e*4sX]"_ Ju}&)zMwM$o)zMwM$o*TXBzMw/I.8}C54_C{noV}&>v}vzS֯o*O>wݡjh?ySW6~_M=&◤TIL=&◤TIH]S}FjgSNq?Ȧuc}E-}r}k }ϤP+7+= =Ozq;ZB;}O)å7&⦒N?Zfmʲii'>s׈:vY/?g||nLmvc. E oM=7.ZkY_1.]9|c=|j?g~9aW|Qt;IUM5OT&?͏SQ,a7&⦒Ja7 jh?yFP)^|]qKo*i$|]qKo*i$|]qPuMA3R&◤TIL=&◤TIL=&ڛ*^cH~:ѹ Z?ʦOcTKTI$(]~U5 ?/ʒI)I$JRg);|"JfI$$I)J q/Ȧ)I$I$!խCQ)l|*Js~:K15Ssy88-UC0́ 7~L-e73O e,^ղYNCK6>DUsvE`myRǦ,#\_ ;[?Zϵ_ZPI$JRI$I$,~譅?Aֿ=$I)I$JR?͏SP)I$e-8u-"'n~L.V|dWmx16[6+u>C5k.l*͟SEbI$I%0wE58ϟSIMv?$[iպ9POk]X~jmm,1aO%XcǿI$Vo~E5}VlKD].L `fŪ^\(;7@8X/jesA0uSem/ykD1"F=A\ދlA|& ݷ!Խb,-; UOY_Gݺ\lqpsl+]FdtvX)ui0\7)ֹ2Wh_f8]PXߨꚟSU5$I)J6~_MBi$JRI$jq?ȒI)I$JR)7"JfI$$I)J6>MB5߫ec϶n2pUeue ןEͬ1K8O$G@:addu5>ƃĵ~_P~[ 5rGS$] 79h+Imm ` k@ h8#E*r~+k[ o'_JI$I%)$IJX3kA[ ⃭/z))I$RI$ ?ʦOcRS4I%5u5TE?q1"kyovՕWWMmzM;캷1p!ڼ7JZW:awgT.l*+I$$I)g);|"Jk27_l V:]+*u:ɹPk }oC[å~I$+7"*-q/Ȧp-;knIO ϧuCCGs?Xֶ?OֿkaB$I)I$JRI$g(:碶?LZ_RSI$$I)J6>MBi$Jj}jMI$R.l*͟ILI$I%)A3>%3I$RI$8SPo~D$IJI$R)l|*?͏IL,^kkl捾$5Ň0:òt'((*GN-,`ִp"I I$lʜ}l $I)I$JRI*G[m7n$X3kA[ ⃭/z))I$RI$ ?ʦt3pv;]Lӡ )I$}΢Im"`Yul.v%sԴѺi0XCyn;|C*,K2r]m&%AUV)$IJI$S8ϟSUʢlkz`kewPcW[?*s]]w'5o,v7#I$X?j2/'M>|²I$*A5dن Rؙ4V|dف^:LEacv:!u\Cw-?͏SU~Uu;}O& ieI$R.l*2ij'%*f΂b\4e%6RI$I%)A3k3E>9I$RI$8SUʢܼj6~`wsu )I$$I)J6>MVTfד>v%CSe$IJI$S_ZX[?ZϵI%)$IMN72"%Ԇ#1#L}^8v ~Ʊ.p4 I%"fU Ȭ82,tyrz g1:NCVZMckO+yh} nى蟒O gj굾څLsN a~R_}K.?ͣHgJqa/6">yU/έ45A.sX'VNU8je԰-sILa/6"c+g5W;[i(C3zcOA={#eR}[Z:y1kamkZճJm_wmE/}K.?ͣHu^԰q1~σKud=Fok^wL-^wPf_We3H=SA8޹ iO7|Ta/6"s<]٦.`ٙS^ܰ["kC^kxi&&xf ?o,Y9@8j)]GU2zVcs:Fqe\ weu[s:Fqe\ w!ga/6"Ծ30]l˞ /c-u )Կ3?_]GBO:U[k]ik۷Fi~$~7}9GRSgՌ)ʳqzNo]_}K.?ͣH}[ cߞiȫ;ܚS nү9 JwSuWcے*ւ\odtfm3"g~ _]GA~Ϋy9 c:jpm9[$w٣ga/6"bcp231,sn?ui*(n o^+`%6O1JHiWc*9܍[]GU9Zi58k kexqy>ݿkT«/$nd4}e"%7?a/6">yTKeUw433nḆ]%8߰]GQ}պ:kcK\6$QH*CcSU]*kmc0 -{v/ھO?6[LH Ûc+g5W;[i(]GBO gj굾څLsN a~z_P8yUOPTm. !>yRԿ3?Y}_7:>uݚl"Z^ }͙R˼h(Y_V2q݋s_Ssb;HpSދE r,Ʊ5bgY=oVΧW02N3lkn;u%6a/6">yQ2zPaJ6&`5Jz]±dPv\)Hhs31JMga/6"VP}XWJZX6K^ݺ68))/>yPvE9Vun6I@kuh?j>#+7>2mj1u;X-=tvIIa/6">yTgTͻ7:f齅xhCc0ݍ]KiGILa/6">yVzV]NIaW`qq]GBU9eWsE}WEw6OGM޵E +c&#@v~#75x~>i)o}K.?ͣHgX}eX[&rr( {c Cvv+׶tYun%O% Կ3?_]GZydÿ/nB۶bv4'S/ںoSSqs߻GGdR˼h(XV2qًsYUsA;u|pwO5vii{X*hy6f|UQ:\jޟeԿs]oDWIIa/6">yPz[ʣ\)ua [L_԰uYkm]lEa]GKR˼h+e$_k'..ťH !KiI$I%)$IJI$R,ve[a!ոx-1NV-LWʫ5sE%kd_V-dRYckx /W#0($1; Ch(lg^7I$V5::/q`p!S=Hd][qi}5lcN=wI%9]'srfc1-Ϻ{A߸1fӻXΑ旅dVlk盉 kqo$rPm_7D#zu&ecY7cUF?E[ŭ u$3nʷ)Xmf id=}S-ؽw}d`noۤ*6[u}9Vk0HK߻;BI%8=#33rhYCi-0Ɩ0n6:t:G 2V;Ƌi$w*cbٔ+E Ȼx.sCAy$ _7UG I l>1svM)o6+Mm+#N5[I$Q8x-9t32 $9}^09ܴ:GNwM}vY}4mfĆ6Nī$$I)I$JRI$I$$I)f5yHfEouRIͿ5uޛmmtlee{%vbQ&Kϕ{>72nntU.cple` A Ǎ2C4P2]xFݝdOoB~Ŀ/NC?,ӿ*_T$/NC?^7;yRS;Pnw9zwIM~/}\LoM|>ݭOkഭ7d0Wnc~l-5vΔ̻3]G}Sݻjul~L^7;ySc$f#}":B1<"kӬ;Pnw::(v[_n5TY%C\=<{S,i|Y;ܯ$fnceD]cXO8U?OC?BM|G[INK'stg1ӳH*_T9/u.%w>ƹ=׺Ko~H4G٣Cc/NC? >c<1e+Y%9zwKr=Cqʜ$/NC?^7;yRS;Pnw9zwINK'r`χ펡丞,ux=6>KA'mNӷ浌w7 şrhu;XUT"8K{`> /XObject << /Im26 209 0 R >> /ProcSet [ /PDF /Text ] >> endobj 228 0 obj << /Length 644 /Filter /FlateDecode >> stream xڅMo0 '_`cFmN$ $@lwcvIUOy=/.`Rp'd{fdr\mkvkm6J0]r TN1A!$sl*QEKRu,x_f(2@&~lM_;C;v1BƷRvY8OڌC#OQ%}$ ޿0qOc~&>4$Cz.ӷ SGywv]|+mmV,\gyd8*Yx%L^iW"M55S d Ԏ@lM.~$Uc=( x˦êg.pb=_:m5+VEV1HA#cІZYʃ :d!jj&A ߷[GcgJ endstream endobj 227 0 obj << /Type /Page /Contents 228 0 R /Resources 226 0 R /MediaBox [0 0 595.276 841.89] /Parent 213 0 R >> endobj 218 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/300filterb.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 229 0 R /BBox [0 0 982 788] /Resources << /XObject << /Im0 230 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 982 0 0 788 0 0 cm /Im0 Do Q endstream endobj 229 0 obj << /CreationDate (D:20080803223105+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080803223121+02'00') >> endobj 230 0 obj << /Subtype /Image /Length 57842 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 982 /Height 788 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?q[π%mtw.h՟+)&$cyna+wi$ W?r_e.$A?K~ݤ<'7Y_0usܻJM/:s7Y_0˵FIT~]I*usܗ7Y_0˻I%PxOna+wi$ W?r_e.$A?QɬI?rPr%:ZU:ӝ]0<;a:摡ev/+?tiߑ(@TE@Bӝs'%"ֳ.pgGZ4u Qw1Z}d> GVp_Qnh V]c3}5mr!ڥ:n<@+=U GI\C&,?iZvqVK՟++2z?#*.I$$I)I$JRA$JC@RI$TI$$I)I$JRWd (I/RI$I%)$IJI$Rkyd%&I$RI$I%8VqfXn컜$Dy-[>,5OunrS)N<2;DzI$9?`Pr3$I)I$JRI$I$$A%!YFAYFIAїn\ZR#JBɮ~myE@M81ɗ{᯲I"ĤI%)$IJBlB*WgQH8 I)I$JRI$I$$I)A)2I$I$$I)I$JRI$pd`I$$I)I$JRI$I$49g,$I$$IJI$RI$,*Oe%#3~)? \8^yUqkv]Қ+ݲn&KʥxjI%JT[]uM%e;l?4meue`7)))jT{F,>= 2z?#)*.gO/F*HREKѳ'TEKѳ'TEKѳ'J׮g}tM/F^?T/F^?TR/F^?TR/F^?TR/F4a+|H_ѳ'gO$Tѳ'gO$4ѳ'gO$Tѳ'gO$Tѳ'gO$Tѳ'NE+5<H_ѳ'gO$4ѳ'gO$Tѳ'gO$TtnwNn@}%Z6'NVgOTIM47Ҿʄw Vl;2>/w^H?~ z6RN*kIwSlI&bz6lI"&z6lI"*z6lI"*z6lI"*z6lI")]&]g]?~ v|QCKϫY1x-F~}]6VCw5 8h~iG8c)˹<6>ѳ'gO$b^??~%J^??~%J^?i;}iGAlBH\RsKѳ'8 M"lI%EI*U"lI%EI*U"lI%EI*U"lI%EI*U"lI(UI'úq~lI%EI*M"lI%EI*U"lI%EI*U"lI%EI*U"lI%EI*U5g}4MB/F^?T/F^?TR/F^?TR/F^?TR/F^?TS]fSlI&>(!gO/F*IRigO/F*IRgO/F*IRgO/F*IRgOF]O:Oe$(RggOD|y/QݕWto}6ǧd}Wm2BI"$I)I$Juz?#yOVTG$bW%EI$\I%)$IYY I$$IJI$RI$9_CRoI%)$IJI$RI$I%)FARdI%)$IJI$SShV\}K]i|HpV,V٭"M ABrܩ$NaC'?JRI$I$$I)I$JRI$R>d>dlލdLC\ hԝqf8c`Z oBfI$TI$$Q )HY_͟EBlBJ):a'IJI$RI$I%)$IJ8EF8EIII$I%)$IJI$RI$+X# pdI$$IJI$RI$I%!>(49g$$I%I$JRI$I$!d6QP))#~'Lߢ> S-F={y^\GN=K&v4|-khʣ"Fv;jHNkM'FSM%6;>ߊSPϤ~TԤI%:?YR vyOVTG$bW%E/NAu!/NRU52/$QVx4nӡ|wGc~uoq }evtv6ֈp[XXws ܵlzv_z ;oli+p p֡T_NFE!o zvI>%2I*vo$C^#$oy 7WNZA0^#x$Pvo$C^#$o zvJ>%2I*vY8kh5<HWo zvI>%2I*vo$jc0K]~_Ng՜{1ٖ,c. -$AKe6 2<~t>%2ITԽ D_Nb)o zvI>%2I*vo$C^#$o zvJjR uE*>dz^i̴ʵїn\ZR#JMGZJqe>#vo'1RN?>eOu:>6AwFVϓVa>}qVVu?Y:A;Q,s`-oՌ]nSp4v +uW49A +@$] {]m `aH\2:=h&ڎ%uY_͟I XWlo};KӷdU!/NITӷ;FI%RN$H};Betj_$zvo$C^#$o zvJ>%2I*vo$jd2.Q};K+X#$>%2I&vo$C^#$o zvJ>%2I)[,/xzv?YFI};KӷdM!/NITӷ;FI%RN$H};C /!d6RClo"菂tO#1XfVnlW+/ƻzAOx]1M_j8CҺ9eMMi'O3lѶW |h nmvII`sxׄUY_`ìu0ߵG]qiB "@RI$Td5gJF'^CHT]tI@8X^&cх>Z#Y" c_^26d{<:}khyd_`ǵ{HƋqwI,bk@:\_sz'[%ioﻉ@Z^YdW$I)I$JRI$I$ }FA0x$I)I$JRI$I$$I)H5<2 ?$I)I$JRI$9ua"=YY[,->E?ӝ$qnɞ0I fЩ$EOX#1IJI$RI$I%)$IJI$JCGҳ⌃Gҳ⌒,Sc"oҍ#o>h]damըD a4Q)LpjI$?[\%1u .OoWyHѵVs-lCh>I'Օd`#Iq=yE p_SŷvsS3YwM~?_e6~Z,؟I$RI$I%)$IJ8EF8EIII$I%)$IJI$RI$+X# pdI$$IJI$RI$I%!>(49g$$I%I$JRI$I$!d6QP))#~'Lߢ> SHn ^ˍlQlgTBޭANL-lu\,܋*k.=?==޻ם5[@ڐ uznq4#m]Y mJI$S՟+оc#~ܟ^CHBJFx/3 B1{rNOFȝ]`4~sR>[N.8$ Q-z/}'FI3 0clsg[вe6PLz- ,SGέ̠ E@W~1ql~icWJDu~$i~$~$~$~>$ 8V`ݗ?rH~Fx$*j_mu('K'?J?dg#)p?dg#;^$_$W~$~$~$~$~$:E#kwꮺpDIN2A%<LcoP.r\C ;6 \$ K HRI$I$$I)H9_Cr$$IJI$RI$I%)$IJAky$IJI$RI$}\ʷ-flʵi=t q.O;D@&sd)F< e$H!bF))I$JRI$I$$I)I$JCGҳ⌃Gҳ⌒N7ևl>+AU]:Oi nk )G8|=(()$IJI$RI$I%) 'IIG:fNG`3i^r.eM_tl6uʨC\L:joV kdfprKknWC{>`U2-0O$T ֿ_{P6~y)$ENOVTBS'=jT?O$?doK(itOűysx]1hN}˜Ŧlن!]Jϊ7ĥFd7Ĥ1~dJWtQ=бCM_e6K!aA kBVAF4%/7ģ$*%/7ģ$*%/7ģ$*% #ly WJ#|OޗQJH~QJH~QJH~QJH~QJH~!36N[AU+)}%$T)}%$T)}%$T}\}LN]!_*9ua"=YM aRxdwCFu0RvlE8rY?`RU!#|J_doFI*U!#|J_doFI*U!#|J_doFI*U!#|J_doFI*U!#|J_dodU5*k'BFV|QSԩkJb+[)YMKeJ6̍іRьL }*2Ju-c.3VV_ց='/-8ºƗmu-Qv%}J66M+"5!R#|J2HiR#|J2IRR#|J2IRR#|J2IRPu" w[zQYU5·[.sR-czS ~n@-P_W3H(zH__B.oS~eU\WT~$.7|ՏO^=Clwlb)(o^f_zx$i(zKׯJf_zx$h9_Czx!d3B9 !_zx$i(zKׯJf_zx$i(zKׯJf_zx$h5<_Zk̈ICׯ^K4=zx%%3ICׯ^SCt:krȲ_:roH㨶eB-dAWzx&Çp̙k3ICׯ^dg1U-ahQzx$i(zKׯJf_zx$i(zKׯJf_zx$i(zKׯJaGҳ⌫QkIo^ 9_ZS Q1-S;c[]A&\aX&)e3w'҃5y6ۏ]h~}zx.W_PfF~ ms#赈 aS] 2+hh?U_\pMJe6~!KׯMsCCOMS元k3Pk&Ιm7S+9[r쥮Bkqm+0[ÂQҤ/^f_zx$i(zKׯJf_zx$a~qcZdHl/^ %J/^ )J/^ )W FUmc`B7_%^ zI,P_%^ zILP_%^ zIL)rϊ2Uy.zIJY/^ )J/^ )OeKׯE5BvN'^Ka[K}7Fk? n; !=u:iʪ&Ik!kv5\#w@L$z;dd;4ٲxWی[>%@c}= N~u*2mޠog'eI"['?WQ}Y?YR_ℕSgz]&i;DngU j?RKU3*ݡu2᪻3BT0Ul<A hg&~SI$8 )[Nhazdty5p8p9GH f5 ki'&~X_QoJkI$6ǴNt@,=&~Kg4KIM$g&~SI%0 &4r ! zLЧIa3B^?t)zLЗ i$?t%3BI) zLЦJa3Bup ! zLЦIa3B^?t)zLЗ i$IC$ӻXsNI_̫rٖmqv̫X֑k@p!Hn~=&~Kg4ZlQ~CbzLЗ i$?t%3BI) zLЦJa3B^?t)zLПg$S^\hg >duޒUIO CgK'toY;:}'Vh=_/suOzLаZ>@2\ *h <3-zEM$W0/IIL=&~Cɭ + !*`.[QwJ8dpVE#f[{}.rҏ,ЛgB EsIM$g&~SI%0/IILE,Ѓ[\-! zLЦIa3B^?t)zLЗ i$?t%3BI) zLЦJkֆG!g<`zLЗ i$?t%3BI) zLЦJa3B^?t)zLЗ i$Ur3B?YFI =&~Kg4KIM$g&~SI%0/IIL=&~CȭCB:Oe$2mL=&~Ro%aU[yΥ.3Wח]nəS\`y!jn1ǻcSrXgdJ3} nۋiURJiP2`kGpA)$ RI$l^CH^q՟+>P\>T]bSHBE\d˶ Sv4];Cgjx"J=jx$.Ja">_ j.H5JzfvwO6Ydi~u 7_~n:sv.XDvŚJi(zK֯Jf_jx$h9_Cjx!d3GBHlx$W/Z %JW/Z )JW/Z ) ?W Z"!$6P_%Z zILP_kCDm~Ueb[.6DKIGjy ye.:.P_&?`U|XvA_Z )JW/Z )JW/Z )JQ*XzIRJ} s]-> ͞L=YޥbG0\%kzMqօ,r2LF=ῷE]{1ku0 p˫7!pe2DK|V[@84ȁ^7b ؏V_jx"Je6~!K֯Mud x!,{iZռ.dpTzt0˝YKP[=;3-91htx+ U?R-5Mලjx$ %Z zI,P_%Z zIL/wjx!cZƴTIC֯^K4=jx%W%3IC֯^S4=jx%W%3IC֯^S `H"I P_%Z zILP_%Z zILP_Ÿ,* p֯H P_%Z zILP_%Z zILв*^-a7菂t6Z %]1;/:zǷ:ێaHjz6ԩ*&Ik#em[@9n?FӺFA lƊFuK9- UMPI)Cވj}b #+)jRI$l^F;bW5gJF'T]OF p[;1o+~.{?Gسý/F i"_t)z5HS_4Jk_-5PFI徺c݆qz>w0VVǵ=Y?\qnvosK_7R: 9{T $[kЦ+z5KѯBI)_t)z5Bɩfa+|Hg/F ~ $kЦJa/F i$kЦJa/F i$S DB_$~kЦIa/F i$kЦJidua7ct3gѯB:m5dYh/9ZHBG9$1BѯB^ES>/_ F))_t)z5KѯBI)_t)z5KѯBI)_5SI%5BBg$d\Q:se}jdz' mL.>F$A[()Lpo5i,\8Cܭ>OOz-c@fTb]{ցr#v?F z5SI=t%M$ѯBMLmd°=I;BqN^OކfoOau>7fuXYnvRix]F z5SI=t%M$ѯB^IL= t!cT4G*A.Hg/F i$kЦJa/F i$kЦJa/F i$MLhl4 B/_ `z5KѯBI%_t)z5KѯBI)_t)z5KѯBI)UL/x4EkСO|Q@a/F i$kЦJa/F i$kЦJa"6CB:Oe$.Y{G t)7菂t" v;dKW՟Fuyy.u&gB%t D-M1~M ߲cQKq}FY,qCJW[, }<~ X+hh$HjT?O?YR @gIOBJoU=;"N׵Kӫk?JyUW~rZoiizH?jo/7O܊LڛKM$LASt}%ZJ/ :_7Oܒ;l71|H\lMWH3qЌ]._'#}`ט7ߜ6Pt jH?jo/7O܊LڛKM$LڛKM$L>a/7O܇x{cim~wܗڛI6$7OܗڛIV$7OܗڛIV$7OܗڛIV$7OܗڛIVKM}L:$[m$7OܗڛI6$7OܗڛIV$7OܗڛIVIM47Ҿʄw Vh<=cN7Oܛ [g3G$7OܗڛNcdg1U/;nCiASt}~iASt}~iASt}~iASt}~iASt}%ZV|QJo sO/ڛIϫHnA:ױ1wbO DdckO(S,1Y`8xkֻ&&]RgPSF=New܈a2H?jo/7O܊LڛKM$Ljo# =m!$[dp <~o;oKBkoklaX[r-?Dr<ծU8泼 $q !hEIM%]iASt}~iASt}~i/wStX$[m$7OܗڛI6$7OܗڛIV$7OܗڛIV$7OܗڛIV$7OܗڛIV`d^"$&IM%MIM%UIM%UIM%UIM%j>(ʥYy/ڛI ASt}~iASt}~iASt}~iASt}~i)?r#i$mNܠ<~o#2[MpH..! Ѿa;2sXAyN(c8LF=9u8OoV_]m.q1kJWZ$뤪6dN,5 IRԟtcmdrӹȕQ_ɤ1_n{P))$ENOVTG$bS8jT?O$>Vabsu_Cqke- ;;M8o]MnVI$\I%) A%!FAFH )rYrJ9Ϋiq+X]ΛmhjR(@S*/=SX`VR\I%)$IJA0>a%&I/RI$I%)$IJI$Rkyd%&I$RI$I%9W2fY2cgZD]5z!^K?Jc*Dm(4}+>((4:SwJ㽍ph7u._TѰ75 i,pB$qPzħ|==;).80e$I.RI$T,$p> &)"cCd _Oǭuw>YݭN+ӮəL mmA=RID$$I)I$JPA.0A.JLI$$I)I$JRI$I$9\7+X#$$I%I$JRI$I$$I) ?YFA>(()$IJI$RI$I%) 'IE#~G:Jx&+Ms&wܪ[6v{[/Sy}]UU9۞*_DgSc-kBGҰx9VI*RN\XUK% *RI$l^CH^q՟+V>IQ@H#.O:kWtjoBwLڛ~"2H?joS|ܒ$~%%+YT!ݡ"H &@ϥTϤ!?ڛ~`<%8Q,_Wzn't+97ޱm~ɹ d~%ɒAS|ܗڛ~䔙+|_jo2[^ KM?rILH]$ KM?rJLڛ~$ KM?rJL_% 9u !ڛ~$ KM?rJLڛ~$3=1ݗs %buz3Ec[GM aRxdwd KM?rs35t:_7"$/7%2H?joS|ܒ$/7)2H?joS|ܒ$/7OܒGҳ〉SֹM?rHw֌pzVx[/DZslLyY_\t,sn mTіy#<4c).CIiftj+T49Uߵ7:$7}I)AS|ܗڛ~䔙 + !d5  dp4?r_joJemȧukayxĕ}X\U0 l!8pubM wh\S|܊ALڛ~$ KM?rJLq~ڛ~,{d|Cm$7}~䒙$?_~IIAS|ܗڛ~䔙$7}IIAS|ܗڛ~䔬`dd5M?rHLڛ~$ KM?rJLڛ~$ KM?rJLڛ~?rJU?YFU*k^T_7 &IM?r_joJd~%%&IM?r_joRd~%%&BlS|ܡ~C^?rHl7菂t4?ڛ~?%e5$I\@t/Eieh\H^,qi \Ӛ\6x*TI& wKWn%IU1rt=1'M:cnHi>U\N?LsI"['?W}Mq?'?W\nA!]E$$3˗DϨ_ef}thG`I%I$R $Rn_ddn_ddI$[q*̰ڈ9unV.Σ-..z-8+Vz}Kc7{V$G}]4II$Rr# }II/o}_5ȳJ|45iUcOcŕXzS>Uu JI"gZr3;\OH]Oo3 "̦ŕ?Ruv< %J>nGCы_e,k[9kSG>[z\ = [fwH(hI$W)$IJAky$IJI$RI$NgMn@Z#_:rGNmT#dja\#fngeiI$s 1AbI$$I)I$JRI$I$gg$V=8[jaqj0&7?_vʵzN jOK[kLn-S( z4Yrg }"Ss.4z??"tlO$5$I)I$JRWgP?ANp(Qh$)>#tW|etcr:G"74՚?9(ڻ)$ErI$]d`]:jRRo3r,߬c.Ƹ1Ys]:O֬tښbwkJ?GXlPeh6C+ѷٿ1~gt,KOt~lHi Rxkf>I.?e}\oG͛+|/!m ڒI$I%!9\7$)$I*I$RI$I%)$IHirψFA>( )$I*I$RI$I%) '"d6RRF 7菂t_,M5|WofC]nM#uDQ z}S+z5cn ^=n=ߜĪi%JTy]aŢ.JrIJRI$l]%\FOVTB?XWP{dt&^/,-(¢nc:Vl$ oI [2A}߸JV7/2CQw$ [m6$ArS쳧ftiC#p]~\_CT64 iGפlt`ڦwWZdw-~IVV77 t㲞p.3&y˟WI+i[i@4_Vŝg-mMVD󪩉p)eh]~H*"dw-~Eu|w }Tv]k[FW5͕^²R&0Zln=GpCƋ(>2}p#iŦI}߸wiky X&5 !p% &$ oJ [Oh?4[XWrr_ەkk[ߒwbye) dw-~Nbdg1U/}l tEwiAw$dw-~IV$~K}߸UI}߸wiAwGҳ〉R ꋾ !׺mSѬwk<,ް枻;cҨ`'x#>T'FςfF.S|s~ǭp$Lp% &se8Qca. .+nc(YݕEzm%sD$,]BgOm@: ݥ) [Lp% *}k$VzN+\67VV8=6@&7?:Tkq@=zY@_]J o+Aw$ۗz8s^k}OQZ]Qn-ae2\m$Q!Xt7H% o+2H;p$VW FU2a .p$ [m2H;p$Lp% *$ oJ [O|QJ`{{HLp% &$ oJ [2H;p$LMw-$~'@k'wo!2WpfZj2ahW+ǧP[ {0GVgJ=׋/紏H,4C[ˌ]6a~5՗6kP5h T[ge4l~j~I?f䆪*I$S՟+C?jꕽ̞Γ-ksxIiؾS'&JdI$$I)I )7/27/2AI$IR[plh65 U Nz EOI[Nˁ|kk8<|z)$nΗnU wEvo֮Y4x} >hndyT>t޽޳ c[%uYz|k?DòIx$$I)I $FGB 0 \tX]:KN[g3^Y \;EBGI$\III$I%)$IHMaވhҘ⊱َ̱cw8Hi"[)d>dKW)m$7s]-0};b}][HU߭yV_[dx ,j龣c˵`̊ևeX' {#mI$ԒI$$I)HY_͟EBlBJ)G$À%)$IJ\Tu>Qoq+YXz~br8H2>usk.ƻ#ņ9sG. lZ9ԓ8_X_cHr-^FHQ4VuH9ca^kL:JgE«{Gw]d"+SLI"I$JRҿlYN7wPA)Vޭ'e;\OAZn-fS ]MK@"'J줒Iro2W FI I$JI$I%)$IJI$R⌃O|Q@RI$TI$$I)I$JROe '7菀ND|\?ʎ7;/C8&65F?Q JmeluiӠRr=6䲱 ghQI*Ru6]cAԒI)$INOVT{G.S?_膗GH߅gc8fbCMMms@I).S[.%V>b_kqp?ϱ+SդOoؗ\Ji}>ľbVF\9_[F]}"}>-@=ZK_}}>mOV>b_kqp?ϱ+S>7\v>Kdv~2~7>M7>+_kqp?ϱF˾sΰT oQo_[!]ȧuo= b!gi(+g4_}n \$pzm,ml-.k[.!ߕݍZz)_}ک\\K[.%jz)_}Z'O!w5ulv[.,/-FuXuw@unt߽p+d6=HIrUm{q{ ٪\F=Z ?๯o؆ܯ}Z\\K[.%jz)_}Z%}>, ]u=hKJ}F:v:{}fHiKLi"GޟSkQ [,{!t}?a4I:|dLĭOV>b_kqp?ϱ+SդOoؗ\Ji.S[.%=ZK_}}>ĭOKGҳ⌹ ]}"}>ĭTZl|KlI$nYQ cȑؕl59+ []eT+ ݾ~@PB\Gy{)_}\\K[.%jz)_}Z + _}}m,;ZG:_`b_kqp?ϱ+SդOoؗ\Ji.S[.%$bKO*`h-J~ "s7SsNװ! [>72p:a>$$ '43 eiZV~zI/[-:|S,> ?oؒDM/w5ۍuפOoؗ\Fi.S[.%=ZK_}}>ĭM1٘_ik\D[e? As \E[2}6b`Aa^ﳤF p(u[U+ZK_}}>mspe]kOoؕ%}>ľbVIrkqp?ϱ/oؕ\\XX~ea=lE(ZS=fUp$VIT0IK]ˇhȵZh=+catz-sx=BKͰ~hoDVK9ܷ\J ^,.B#{D_}ک\\K[.%jz)_}Z%}>ľbVIrkqp?ϱ/oؕв+_}e}m,;Z[G:ە~bVj4\&>=v6:u >5cV:z=bml;"Zy%1Ǽ]<UppbI(f/G]YunKTRkύ>Tۏpv@ꢎߍfX[T#k(+$H׷?WI)Ʈj󶧟WLlI|Dd="I$$I)I$JRA$JC@RI$TI$$I)I$JRWd )2Ix$I$$I)JQYkCDzJyoP˺VFيhKWR'[ǃ[w^Bl{vYFAJdI$$IJW> |q7!xJ0B!'[ְu}?iSt k[km>m 5ShV\}K]i|HpDG3Gtcmb[sKOrWYwk=~s[x²Cѿp W${˿g#Ju,|| t$I%I$JRI$I$$I) Nϊ2 Jϊ2H7>nw_q$[,t".g32mL X@;.ܔOS!?n2R$r$I)I$JRWgP?Q$p$I)I$JRI$I$_#_$$IRI$I$.Otd`#[,{y ]b԰1mưR(Em8| g+8j š9\7%)$I*I$baY11e}VSʴn߮Q# .AI$Wnf^rhsn1I>KKVu*Y:"(49g$I%I$JRI$I$!d6QP))#~)7R[GIoL۳Y.yp#k'[1mGkAԾϷwoym:o2 i؀3fRUŞKX]$+e?'3/7m :I#T$I)jT?O?YR v *.H>%[ Lo zV$[^$J%+YTtk/o (&Iҷ+IIA/JRd}+Kҷ$J%&A0oy 7WΡ%6A/JRd}+Kҷ$J%&Iҷ+IM?]%kwLmERߟ6sq;]u,̬֫VQc+N{T/NY8ko zV&sms o .t)h0Mԛn.mMp5WZt5}կJ;Ul6fUlkHL|qX s:c/o@2dGdcm!/J??Nbyߩq]4B ,sܖO v&:Wd VoLo zV$[^$ Vo )2Aҷ+IJYFU)eχF%<־u\Z먟{! vǒ:m<a 4_B?j4?Y>#A/J&Iҷ+IIA/JRd,&!|t]=JRd}+Kҷ$J%&Iҷ+IIA/JR`]d+Betji Vo )2H>%[JLo zV$[^$}]eƊ25n\0GQYX:3 cs\D[oWfNlDhh}]ܮ`d2.Q}+Erd}+Kҷs\zu k~gݥuY h%8rUYo^9&o~@G[ P7n#sjwVo zVFA/JReuó[cl:Fk]'o X郩aM (Pi13ޖ$2t:J=+D$Iҷ+IIA/JRd}+Kҷ$J%&Bl $BJl菂r\VaTA.;;$Wׁqiqu{ˎ˞]uU\XOm-s\#e`˦o$DnhNM ǾX̐]]nM^ŨF%61T:ޗ7S^ǀeqB]Z2=:.V{wTKNEUU|IWdnevg\CsG:)$ENOVTG$bW8jT?O$$ I$$I)I )7/27/2AI$IRI$I$$I)H9_Cr$ %JRI$I$$I)K7Gg\95i$4ID^ԾqϤ'l ͂ϫ9`Ό]OO̧~[mg9x~h8xk> C8 kERhX$h?`]Zր`I$^}Ydzb9pDUlOunrS)N<2;DzI$]ŧ*5a-c|GSu*۳:xmԸvwI$W)$IJI$RI$I%!YF4}+>(?@|ٹuFS]mt4v@\SfߴGtɱN0pB<>)˿JI$)$IJI$R?RtÀ%)$IJI$RI$I%( Y Y%&I$RI$I%)$IJ.7Z>uf9ZZ}w^꘶:4)H[+Xǰ4A.+YL{:'Poen7R jI%aT[}X+%ޮU{ ;#RI$$I)ImRI%<՗~3v^:_\˲˚8s ǨTI"I$JRI$I$!d6QP))#~.sb tu+o}zȩ9=װ"R+e3acׇMM@h ^0F9pٷלZI)f<'2~DSV+.-qgTNɓRI%)$INOVTG$bW8j_Ti8$ w~ w~$ w~$Nr^߾>䔬n_deRXKk߾>$Kӻܒ$Kӻܒ$Kӻܒ$Kӻܒ }Kӻ܅C}JJm$Kӻܒ$Kӻܒ$Kӻܒ$Kӻܒ$KӻܒYS.cp.*7;:KL>K!EcRAXv= vVN1a׳⺗6enRˏ珹*Ecu*c5V};|}zw~\$Nr^߾>6Κ܁ai2,DN%3m_e__&¸G$Nr^߾> loa7uz[m'@s zZ6ˁE`t߾>;|})T}+>*\M"71'Sn|8 uT>YRF4NƧdX=K-`٬\lٽ3_ [te&D"oZ^8c)˹"6>$Nr^߾>$ w~$ w~$Y_͟MCeSdp> Ew@/NrJLw/NrJLw/NrJLw/NrJLw/NrJLq~w v RSm$Nr^߾>䔙$Nr^߾>䔙$Nr^߾>䔙$Nr^߾>䔙$Nr^߾>}hvZG`Lwc}d} ,;-Lz+TWWkk<4(RƏ/}#ZX3w}JmN/.cKޣ 赌v%e߾>72H>߾>;|}ȮLw/NrJLw/NrJLw/NrJq`0om. uN٪9u.hn𡕏vE95aBqMPiyIӻܗwɒA%IIA%IIA%II);|}w.$~.ocבX)qtx5nPEu?shDa2]cmf΁A\5.m>d8)Mġ]OGk~CcUChmy;+1*6V|VNlR5tA!s} ֲ̎m{.,szWWϭuo]b)'pI$RI$I%) 'IIkϫMo.`O5WCU^pLC#屎mv6-;ť2SWp ѿCqݠ>!yVx/in| ɓܙ?z!02&u)e. \IE$RJI%:?YRE?YR ;_1Lq$7ĥF&I)}%%&I)}%%&H %!cr#*ۤ /R@LR#|JILR#|JJLR#|JJLR#|JJL>a/7ġdcO!$6A#|OޗRRd~RJd~RRd~RRd~RRd/7ġ6N$6A#|J_doI)A#|J_doIIA#|J_doIKMaވ`:c*ꙗ5윻Kd-$AZdoM5L=~t %/7ħ1+'? TQ~y?zHyߩi3^ZE.7z꺅߉K[d՘!u~#vLR#|J+$F$F$FQs? JlkXzߧ=t+¶ﬗ ^\+k%]<ދ^e,?8~Os]V&{ Zdo@EkC'8O|1G &I)}%92H?doK))2H?doK))2Wg}%#a RCdp> +`jS%%&I)}%$I)}%%&I)}%%&I)}%%&8EK(Xx2O)!R#|JILR#|JJLR#|JJLR#|JJLR#|JJVW FU21'RF$&I)}%$I)}%%&I)}%%&I)}%%&I)}%%*,/^x^75 4-Itd`T4O%P[mϢh'QW=; uƹI'H6LR#|JILR#|JJLR#|JJLMF; I [Ȳ[,C-d=+]~I#vuG}eM_Ooٯe5'OxwW0=4g'$醼>[z.}}C"svݤ7#Qyu qq߾fu3 6pzzsf_%ƸM{Jn(aXB6X:~龷H Uu\l 6F<~r=UI$l^CH^q՟+(IQuI$)$IJI$R $Rn_ddn_ddI$I%)$IJI$Rr# }IIK$I%)$IJI$RI$III$I%)$IMlOunrމlS"DO|DB-3!:$Hb%</8=Ee.1];]w~ݮwI\iit%94³Va"8e`rH(A+y}%dgU/ ۩Ԣ䔾_{'LUs{ӡ&9c zTe~,uAPV+yȥ4%?eo9/BPV+y)4%?eo9/`~G~E?_^'XY?[׎u olm^ĆktY:37Sq1 p'V\DV)B>)pД rshJ~r_eo9%&%VRhBlBod|'+y)4%?eo9/BPV+y)4%?eo9/BPV+y)0A._eo9 <'ۄ%VRhJ~r_eo9%&%VRhJ~r_eo9%&%VRo4*:_BPV+y)4%?eo9/BPV+y)4%?eo9/BPV+y)T9gJÞ'D_^-_o闆PtkJD=+[QP9ĚI!I%?eo9/SBPV+y)4%?eo9/BHMV. i2{$g]5ཌྷv[uW)jKmwq++yGyb+zGltv1'Hxke7(Xsxh I:g^6E*gcYXfSK >PB7m@Tz]bcf}OFXX :띲{;>[׃rιK,CUZO'֞zF>=BeMsݿN$HjT?O?YR_ℕ]$ArI$I%) A%!FAFH )$I*I$RI$I%)+|2W$IJI$RI$I%)$IJAky$IJI$RI$}\ʷ-flʵi=t膉y.L)(@ \2JQ?I$,Hr3g1IJ.ZQeR 9 wԮ[=bu*m,}om{cG5T }$oII$RI$I%<4U iu.r9Uge7s[Q{Dw]i;?'toY;:}'VԺu}RF@Kt2#څ~i~$H$IJI$R?RtÀ%)$IJI$RI$I%( Y Y%&I$RI$I%)$IJI$R`BI$I%)$IJI$RI$, d}g»;ngKʿ+psy@3@"AErSlû/_Xi~yCPI"I$JRI$vx PsoOIE>[wR.Ӯ=.sQ?? M. ע,q)ocv^uQYkpXk@6V\Ɨ8R{SAЄT47 d |Q+\|$mPv%0I$S՟+>P\>^F;bPK֯^?t%B W/Z z,З )^ z,ВW!uY!MR{X jW / +֯^Y/EJjx%W/EY%+֯^Y/ERjx%W/EY%+֯Ms4p",ЅS9 !/_jx%B^?t$zK֯^?t%BIW_jx%B^?t$zK֯^?t%BJW_jx%B^?t$zBeȈEY 0D$ z,ВUW/Z z,З )^ z,В-8w9"ZH<ǭ_[ ' C[G>?t&s)N<2;Dzjx%W/EY9E; /_,ݐM,ВWb}r~wNqswlfog[b /c [pQ R£&k v*_#)/K!0wqط~aS:}42<̻Rjx ϳQ-ͷ#z,ВF=Vv2CW  #Wy0oݎY& n~vEkt(tnXkȫn~7 u(.Tp=8uZKOڪ\`^60ֻ閞P]Gbݙkc榵Oq1Z쌇\l`s7}!YQhyk0gf3>lcX+cOa%&I/RI$I%)$IJI$Rkyd%&I$RI$I%9[,->Eӕ?RwSm #U ;3s>/wJI$Pg1Ab$Wr-7TA>t-]R庖u};&;)Fe ǨTI"I$JR]-pu zfHiahN (:'7;FX_RZtCSC[G?֬{2paLn aVϫHnA:7 >ħ#Lj1eܞJ I$TI$$I)HY_͟EBlBJ):aNI$$I)I$JRI$q~q~$I)I$JRI$I$$I)W FA!I$IRI$I$$I)I$JCO|Qirϊ2H X^cMsA-s u^OPĺ۹ HX!.) "/H$stn TI$$I)K[lazB4]Bz=[luk`\P+g=t@$2I24{/?^0ĥ'EQIcpk\O )=ůik B*Y"]OkiqhA GJRI$l^F7bˇ^u՟+>tRZ>T]UY/B zAvY/U+З_V~Kg t%W%jUY7_IHh/9EY7_^?x%W/B 'Uz zKЯBJ^?x%^+ВW z_ t$UM,ÐW &5$%Y/U+З_V~Kg t%W$UY/B zIZgV~KЯB^VY/U+З_V~BeЯB)ahI }V~Kg t%W$UY/B zIZgV~KЯB^V^EZLpz>Xrٖmlʵi_byd&x7*Y/U+З_-QdXӲޫ?x dR솁7_UY/B zI:kc0\4'=z ՃE/+}m;XHq%uZ/V~Kg t%WګgV~KЯB^VY`x{]ӛWV_g]W9mn %[==7"M,.x-ЯB)sލoh>:C\ h[zV7㽍= t&5 i^糎+gV~KЯB^W z_ t$U^?x%W/B +Uzc dB'_,X !(=/U + t$U^?x%W/B 'Uz zKЯBJ^?x%^+ВW z_ t$WYƵHQ_jh$&Y/U+З_V~Kg t%W%jUY/B zIZgV~KЯB^VY/U+З_,C`V~@ȩ F+В^?x%W/B 'Uz zKЯBJ^?x%^+ВW z_ t$UUzKЯBJV4Ya$r U0i7_Us뱮ap߽/B +SN7'?_U/+Yr9?Ό8͖EثgV~KЯB^]V~Kg t%W%j%z}STV+FX+\79: 2P+ezFͣ8Of\h?_R 3*0AẮ wSpy{~5`6Z/u6"l YfE;v YX}Ȭ;̯F-Cjr1ZlQ-(kitNҬ˾nmcs^̪5=}78xezpTgڋ61m)uWF)$rl^CH^q՟+(IQuI$)$IJI$R $Rn_ddn_ddI$I%)$IJI$Rr# }IIK$I%)$IJI$RI$III$I%)$IH린D4KvgLwEXVqfXn컜$Dy-(TC(qwRI$ć'?OX#I%"fu/{K]\68wӼU{2CGtEJ:_<;[eAA=RI$$I)@jlfduoVXW6޺ks?SP7_ 3D j@z>d>dWRJ} s]-> їn\ZR#JMqZпŚQÎF^)DZ7褒I9I$JRI$T,$p)I$JRI$I$$I)A)2I$I$$I)I$JRI$pd`I$$I)I$JRI$I$49g,$I$*0t=YiH \ܪ[v{d̦:BҤ> BU-{>%6^%6:FէQRrz uwKUxnfGJk$I)j_TΓ ?YROℕGM%Ar7OܗڛFI%!St}~dR7OܗڛFH$ nM%7OܗڛFI$St}~dR7OܗڛFI%!St}~dR7O܇׶<+H9_CB%I(~?r_jo$M%IH~?r_jo$M%IH~?r2,s<$+M%I(~?r_jo$M%IM,>Fhy;VQ?r:m5dYh|DM-3!:?jo/7O܌sRnC#M%I(~?r徵}sn<+X?]7sO Vgd尙x0M lqSH\E#T?jo/7O܌IsWb]uh A.HWڛKM#$P~?r2I)ڛKM#$~?r2I)ڛKM#$ xnB!ڛKM#$P~?r2I)ڛKM#$~?r2I)ڛKM#$d5y/ڛJ,d~?r2I%sٓ[!=6Y̼G3ݵ8jꁅbភ̪dVl{+NSt}~d\M%IIO!*հiI=ǘ].NK^ܹ잫r 44Lw+mX)  ?r+~y/O  FSq \]M_B!k}N}+T,k݃s [V'Gc~$L'Uuuch76ϢaW/#?*ohBzszY&I`=R=W2ܐOj }S"e G iT4T$I$S՟++2z?# *.I$$I)I$JRA$JC@RI$TI$$I)I$JRWd )7Ix$I$$I)I$JRI$_# )2I$I$$I)IM47Ҿʄw Vm}4Z+.>>$ 8VЅ-3g$1P褒I49?`Pr3$I)JsA੤S}E8Rk}9Z.r;K3" avRI$f6gY鸮%"`v%uArU3z au2WV[lCGҳ⌃Gҳ⌊ϫHnA:׺mSѬwk<-( )$I*\ך+ós]c82KaCG$Q!a]cl5Gp~g;36kv9<ڷ ũW9.žul.w˶C^Q']ED*}8.ȽOeCx?1)ݻhld6P($oG:)xnU-ۻgAy+C]5q`uȅI#a]hˏ|YXXj>E!IY7h$ $oރu/c))I$l^K!8|5gJF'KL?r7/ KL?r7/JCx/3$I)ڙ~S<܍H$ nSx,n_doH~%x$S<ܗڙ~o_$L?r_jgI|R3}F%IH~!d5<+|HWڙ~#%I(~%x%!S<ܗڙ~o_$L?r_jgI|R3}F%IH~!!:Z !_jgS<܍KPKL?r7/JCx/3$I)ԟܣsV8`"S<ܟX赂^KҘM" l2dG3}F%Ncjߐmt>jg#$?jgS<܍KPKL?r7/Jy_i{f+'sO+sz5Y-x~,kxp !^t.69%nJ,ޫL?rO[?l0#qpbӏۯdhyUqҺuL/usS<܊6@<)R$O/ڙ~oJ_Y_1V3qCW!._TѲ@Kt2|GBk,=?Y>#~%x9ڙ~#|$?jgS<܍K䒐Ck@ek䅕d ܗڙ~Q'$?jgS<܍K䒐KL?r7/JCx/3$I)ڙ~#|$#)Bk[ X}KL?r7/ICx/3$I)ڙ~#|$?jgS<܍K䒐KL?r7/Jjdd5L?rY\7$!S<ܗڙ~o_$L?r_jgI|R3}F%IH~%x%!S<ܗڙ~o_$ի!{Q>%O|B7$!S<ܗڙ~o_$L?rqƙ"$2q UCH.L?r>t5uLv4ۊݞ xd:\e؝{,-{ٌûOkl~=Ɠ'A p~{C{4hT =a~;OenS<E`JyVuW]%>.}Ms}z_5FpB{t^nanV'Gc~$qΠ:=7f\.ͰaW2^FCSt!mviϦ]\r閆(oog9B>n5vT]]vF~CL:6豞I$l^CH^q՟+(IQuI$)$IJI$R $Rn_ddn_ddI$I%)$IJI$Rr# }IIK$I%)$IJI$RI$III$I%)$IN7՜{1ٖ,c. -$AKeVϫ DVg*l <#{)$NaC'?JRI$I$,,5?H"ySMU`9~y?W[s6:\v= @M$Er>d>dvaŮ+< t,Sc"oҍ#o>hxіSьL }I%$I)I$JRWgP?ANp$I)I$JRI$I$_#_$$JRI$I$$I)I$JCro2HRI$TI$$I)I$JRI$d⌒I$I%1\ W7;^f~]PU H"EU9]s~>DY֟5SExmu45"O)#^jBld6RJFND|8&65F?W2WpI+;⺫r3ɵx7gEMdܖ:E7Can@v]pRRI%:?YR#1?'?WP1?PEE؁ x)@LJ^PF$p[0K\"Һ8.}5dךYWF!£,@]=Eܐv6Z Ma le˚7?wAU;s3@h31!e8*Ǘ\QU"I$l^CH^q՟+(IQuI$)$IJI$R $Rn_ddn_ddI$I%)$IJI$Rr# }IIK$I%)$IJI$RI$III$I%)$IMNkYq-uy i¶>e[̳keZf ]6nf3Y ˊCrI9OX#F))I$JRI$I$$I)I$JCGҳ⌃Gҳ⌒׺mSѬwk<-N7ևl>+A4W_L=w|<_I$s I$I%) +Y_͟IE 'L8 RI$I%)$IJI$R/w/wRdI%)$IJI$RI$I%!9\7$)$I*I$RI$I%)$IHirϊ2 ?YFII$IRI$I$$I)HY?͔T,JHߢ> 7菂t?T5wy#U4\!iRI$I$$I)j_T{zN,4}6Kc븆@}ֳޗgyܗ܅&뾳t}z~חc}dw]=3;)RZz^>_r_rT/~Ӌ!C;;QREY^q^pV9edR}wֳޗgyܗܕ*뾵>k?p}ȿPNPsJeY>k?p}˺KK\ RZz^>_r_rT/~-qn_rr wZ\MGP~OKpuJeZz^>_r_rT/~?4}ȿPNwe[VRYKֳ޼}`1?ܕ*뾵>k?p}ȿPNPNV_]z!c^L~uj\V%wRHY^E8:w%8:w#Jg/Zz/?ӹ/?ӹ*U}k?p}z%sla}7W7SɓfMŹ­6VmmI1?gyܗܕ&}wֳޗgyܗܕ"7Zjn޼T~ޝ%>+!Xz*U׽k?p}z~בRYKֳ޼puKpuJeY>k?p}\lk=#G9Jo~"C;C;Y}wֳޟֳ޼puL=Dr*TA]xD8}W/Zl\x?ӹ*VRzwT'Lk?p}ȿPNPN8zDfZz^>_rGQNQY}w/ZzlZ~ܕ*]Y^E8:w%8:w%Jg"זh⼛puZVfns*斸%JPNJ^>}` ^`8*?rT/~"C;C;Y}wֳޗz/?ӹ\%uFZ*>>k?p}ȿPNPNV_]Y^E8:w%8:w%Jg a⼔a#;N},Z_r_rT/kl |QM~כ\y6 isu߬=D׽k?p}z~בҬYKֳ޼puKpuJe]Gޗgy~KYN@ȵ忢>TGR[޵>k?p}ȿPNPNV_]!C;;PJv='gyVxX6cIy8:w%JZz^>_r_rT/~"C;F4Jz^>S-~k 7_rT}wֳޗgyܗܕ*뾵> ya_?ӹh^UmtZ۬x&kE PPNV]1mmȰ ˃LƷn;k#mVSɿc8>$G@@A/=r^.G%O#[z6wܗg7}ˡ ~Vލ$Y>TiV&>67|UlE$ iIQkՃc9MP kE)v~k/:GI?in;KF=/astr~ Y<tShٔSAuMc 5#O0avEsHù#h0-m>y*+_۟ӺsoGePŦ'Ѿ}0?fnkǬvߦ\|zf:FCݤYѳ2.N-Un^Y"@BM53v5nkA,J]WՃԫ$ iĬ]V8kx"b~_X;J"{q\FV^Ӱ[TTӺFO` @D $EJI$RޑI8d oW-]:).5 q_NM²YB*܋nAqwK]MW`u۳,$A%!{('99;hN- ;c'7ī_S4o*=vSkIuFx)Z^«fo"|6f+q&Z+>k)I)$IMԮ5kKOT1ߏ';ϩ.uxgI SyhΞV][9ZÏn=5-} {s̗uq_,6upYyaݡ"uWFXXfP}u`X쵍i@eONqI_e渻ջFy<8)а_K #T)$IJNrޙJ7aY͛&'UQ˱VA.v{O svc'o cxo|xI@NF>'Up]7t̞Tk~JWt:M빤VGDtN/ERll<:1hsY1Ckw\Gt㼂Dǟ [*}=]vxX@c1y]]HI$JR:{sMXR|%бT}0%PjgcK Ik!Ke6帷xS:N/cwl+mvHBMj# eqYfmCP[U9Ue}]_NWAm Ozxh#c폤ñ݋П䬠C[# ~OװRG^" I$BI$`JgJŠQNKr2D@?J-+9T @<-}$;a7-mXw^/mdwuAOoSc{CG(XZ_FWNװ~koT֋aՌsN e8mnAv~DVs?D5,љE5n{AЗPg^ѵº,'贷RT]9Xލ䊃$+tΖ+w+#3mDj{:VOGνdmu͐{IYU8I(8RNBI$ܒ]~T=6=U0Ktmcvd\?F܍].M$;#g݋kUU^ll,8&5j]h]wJyM鶢D8]y%m7IZ@oZk=>K'.Ct=M{Ve ArΫpݍkD@I$)$IJW:_Oc;mu7}੭?)V%ph)v>)w7e'5^˲r\[E?GC:vmH(wl!$5;ےq.Yv7QcnwlMaK:'0s*-Z22qmaa]gT`WywY pppWEՋ{t!\2 I$I$-mL=l}Y{);\w| e,dVe.cv1^=pVU`_Z2nq%{iȦm,\ "/{I./S/{I.?S/{I.?S9 ~H8폂ԒU>ZNJ'K-OiqۧS ,i-A4QKC[/}I./SE6"OU>U>U> ׹XĴA>Iqx*q/l#lBf8c˜yW %s^I`K"XϷ^\^ "8I{Iq*I{Iq*I{Iq*ȩ_[cy)9VZA$a%r䆻4%VkcD$ im {Iqx"I{Iq*I{Iq*O1dZ`zI./S<\w3K."A{Iqx)*8c_>0]ȗ{Iq~YedUi%|%i%|%i%|F mum!^\^ | Z 1?v@ewy/I./cZl`h[[h2HqW$e;]{/;)DDR熖Dzyv:)/qy3w޽$OE8 nÈ;N~kߒK/⃹u<&g͎'lv$"KKT"KKT"KKTEol#wy)~-l 0$/|I./}'$Ͷ3%r^ KOTc̮Ƿw!*4O%{Iqx!DDD`;^\~ csx(\ C0_=~h^OPv18I./>YsM{~IE>U>U>sA#ph$OCX86-|S ˡ]>kKT2Hg9y K8Yӂq|ǒ=:"DE><G /aI.?p<W GuV`>۝{U}ˮvT:og.k,h%Wӱ][cHn&iNU:4AZuprLa(&3!+zJ^ƹ 4:ev;k?J|)(^ I$BI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$Rl4 L`5 Ü  ?ڃ@h&Cz֩굗0=k-#N[=JlmsH=9J+s-k >b?99LYt55׺}v w: ~&{V[̈́7Ԧ_<{‹q M]_KeÈc%P2I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$bS˘O! V u{| Kޮ$:^2t AOOP7I+@R2&R$l%I$HRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$]E^ˉfWlk#ṣ_ֱbchv7%vR2VI+ƄvAI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SS >.l5ZGgKMWstmc~5%=jK L\HC!Z`t P),%;:/YbS,?I΋X$$gE,O~_'_I%:,߯$eoINK'vt_%;:/YbS,?I΋X$$gE,O~_'_I%:,߯$eoINK'vt_%;:/YbS,?I΋X$$gE,O~#>?s%:I*_[^ I$$I)I$v]Y%&Ig;K`$c9B,?I)Id΋X$gE,O~JuY?'_I/߯$dOeoKvt_$Y%;:/Yb,?I)Id΋X$gE,O~JuY?'_I/߯$dOeoKvt_$Y%;:/Yb,?I)Id΋X$gE,O~JuY?'_I3tV =G}g9%:.~)?% Qc~Ԕk7[ v ;YJ=W7VtYU|7Md7;?;%Xڪ?uh^Sr/Ƿ&]{%+i$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$12ǩc]BJr[e?Eg4/VVI)}+q?)>JrEOb_On'_Ek$د"[lWZ$'i_+ȥ4/VVI)}+q?)>JrEOb_On'_Ek$د"[lWZ$'i_+ȥ4/VVI)}+q?)>JrEObt7=;SG e$R8*bBd;gͯ!ui$8Z:O2wOWjr2(~Smv?.edTbւKIǚkAIM.,zEObI%9?On'_E/د"INO[lWKi_+ȭdS4/VR}+q?+Y$>EObI%9?On'_E/د"INO[lWKi_+ȭdS4/VR}+q?+Y$>EObI%9?On'_EIUz; b;+ȭDSR5Lmo I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$Win%d=:3mIJI$R\]OCu>̫Y[]kƸ<I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$NJ\A0 $:׶s¾1\l%%tp μ.ypo#dIː;IOAw{zE9ʨnu/!cn BΣ~C^c_i;\Z>t^c)q wwe}Nʭ5b .YfMU/soq%YYfgW}AcL*^o88}2mk٩cLLc!d]үh(mmƵ5⧺%CyFSj4ֱ0Rl`k[c;5+ɫ /{X [4/{6Ly ?_Q9(t߯.vKXb Ѳ `>2%;1̣P(~DcZoymnΡYV%m6psX0~kuW541OLơ}d s@k>< R΢ޓfFC԰'Oפ׻﷬\nEBNQ\ZYh^efQ_ZO'{eszV6湦ZAvILI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R}DkKQ5U]e5N8^u,cp-s\75vyR0mmX=e,cĈ0 JIӺN/IcXfnq߼8.mq79[I$3#OoO4{iGzni Πu:tn~V6YcG',{fuE$dI9g6ڬ7̋E{[`5V*̥[:9k~]I%40&&lsl}}{7Y՝CmkLd94>Eh$J~ZCV aYs5t-I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I) endstream endobj 219 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/200filterb.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 231 0 R /BBox [0 0 746 597] /Resources << /XObject << /Im0 232 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 746 0 0 597 0 0 cm /Im0 Do Q endstream endobj 231 0 obj << /CreationDate (D:20080803230540+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080803230544+02'00') >> endobj 232 0 obj << /Subtype /Image /Length 46579 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 746 /Height 597 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;U"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?T.. ;[=֚X^lYKs^cfwkD-GJx)p%I{Fl}Ms5px)p%I {RJ)ow\%IRB;- npNpx)p%I {RJ)ow\%IRB.*̶e'F{RRT-K*H[xT$-K{R*J=qP  2ǖ4T$-K{R*Jx)p%I {RJ(b=btTI {RJ`g,Ŏ:N4V7 ,X]( #B)ow\%jT6G=*LM>IO)w\*Jx)p%I {RJ)ow\%IRUˀ:v7.%I {RJ)ow\%IRB.!owmcIѱ?\*l)ow\%IRB.!ow[ RTE<0uJ]umq2H)ow\*Jx)p%I {RJ)ow\%IRUz1)p*HA^i}eX*1FJ<%O$/?\b;NN%5dd>1[m fڷLIX?e.Mxyum-h)T&gQΌ`V>ϋ;*.]VuMXGh'ZUt)#^w o%ZҘN>'h&>Q鹟01zhlѸ^~;^ s~4S$l5v Jd>qFҨlW+$W+) ? #ep}+;%Roޗ_7I,Q+z~%Roޗ_7ILȧWÆBd}Jyz^߽$IGԯWS$}Jyz^߽%2IGԯWS?"" _i9=JyzHd_7KԯI(~JyzJd_7Kԯ["U6,p8=6{BD}Jyz^߽$IGԯWS$}Jyz^߽%2CoP)z~1ehq#`RBd}Jyz^߽$,:8:-#[^^GU~ǜp>IV_7B(Ҵٓ?qY$W+豲K(~JNJJc>,iWC$}Jyz^߽$IGԯWS$}Jyz^߽%1;p'_7I Q+z~%Roޗ_7ILQ+z~ /Roކ+;I Q+z~%Roޗ_7ILQ+z~F?/Roޣewp{i huYXGu/Roޒ$W+)J>߽/Roޒ$W+)QPCI;l|=JyzJdhedO/.q6#ktx^Wב}c[3 glnӳB ~fuʹֿ>C~*ETVcCK.wU$"ёC1+iy/o_fMƱ,~YβgAI* {Yz|Yz|JonixY/`tl++me἖Uz/;f;,l,}Yߺݬۣ0fZ8zKVߧ_7Kӯ)$ӯ%ILK+v79$tD<Ca⒙zu~:qrI)_7Kӯ)$u~:qrI)_7P11AӲ*qC?Noܗ_7RI$zu~$SNoܗ_7RI%1zu~$R&:Xi_7Q~#"$>߹/NoܤJcI$>߹/NoܤJ`s 4Ic6H"U6ꄔNoܗ_7RI%1zu~$SNoܗ_7RI%10YCAr.I :qr^߹I$lgb>ub^?+2[[m@XHVP57d<ӯ%E_7KӮ>~$JGHckƒyKӯ(2χDIL}:qr^߹I$ӯ%IL}:qr^߹I$Ӳ'_7P;>߹/NoܤJcI$>߹/NoܤJcm{K  ӯ%I,}:qr^߹I$ӯ%IL}:qrg! )۾$k[\X NoܚPu~:qrI)_7Kӯ)$u~:qrI) 7lnݳySIEIK fo S+B쩽k$g\lh-$E I$SWF6;eoxkIY/;;6:ah:=փ8`Wå,oٜƚ`6F8/~2}]ճ>~O7Kѧ'e>~O7Kѧ$8PHHL`Bu,%50g%>i%~[ >?߹/Foܒog%>i)~lLwSivPup%Si%~[ >?߹/Foܒog%>i)~[ >?߹/FoܒV֙H,m@"4Di!~[ >?߹/FoܒYog%>i)~[ >?߹/FoܒD {=6{l[`UQ@og%>i%~[ >?߹/Foܒog%>i)~s~}Oѧ!݂6og%>i%puXoc\u/p*~9x%F,s{ѧ!iZlɟG,xQiz4~Xog&>NJoFoܗLcxILqK$<|7hKI`$4OFoܒog%>i%~[ >?߹/Foܒog%>i)lרc.~mk/SC-}qr^?߹$xK{?x}Gѧ%S-}qr^?߹%2xCcY^?߹ UX6F!6~[ >?߹/FoܒYog%>i)~[ >?߹/Foܒog(znp{qr10p{$s=&{ꦣS `$Kѧ$[ og(4~qrIe>~O7Kѧ$[ og(4~qrJ`ߴ#xg AnDi!{?x}xJooWͿ,vxQO7^K;9K7Y`ϰQ[7L;bW%?FGDtf_Uֳ,*ƵޝEv=F.Nk2+^6VS/]@}Cy2p6Xe"[u\8=CUh5:^bLi:!)[vnaߢѵ ?Gp??G3э+s&7'?z^ۻhcXWn47#WE0$\Xh0f^\qZG~EOcH(r_h)! ? ">hƹځ?{?ܗ(rIH(r_h)"Hh}$WsWO?{?܇m\;tI G~EI)CEK~%$I~/Q߁䔑$?Q߁G~Rz߈/[a.Бy"}$!%?{?ܒR$?{?ܗ(rJH(r_h)?%_lCMnڐ{*)jRBdG~EI)CEK~%$I~/Q߁䔑 ]@(ryv60 !%?{?ܒZ}*7ېnE{Ycqu͖mʠۋ'AQ߁!oM3;?Ow"Hh}"Ƒ.?{?ܘQrJ_|?"E΂<>G~BDG~EI)CEK~%$I~/Q߁䔫mt:~$$I~/Q߁䒑$?Q߁G~RDG~EIIK~ -Ca$?Q߁G~JDG~EIICEK~%$Q|QEQ~E%ݏdΟPU NREI CEK~$I~/Q߁䔑$?Q߁G~RIEUv"c~$$ >ZC/oG~eAH-N9D(&;H趺뭝O}ӕK@.{;s>bkxdo[u )f豂k}ʉPEO{+?SAz+?SAz?I]ZʞZH t3f.mkl tZ-k_@$tT}QvC1ƺh(j^x؁OX G}cQfMU-/ hW7g^ky6q+cGvοpx$J AӱPfT}N*|gٳ K^\C>%i x%$Jx%$Rx%$Rx!\qPȒJI$@JI$@JI$@JI$U[q`x!Rx%$Rx%$Rx%$S G蟧Ȟ=6i+OJP@JI$@JI$@JI$@B]@.II x%$SWчEf6CysďR6b\_uH,sWP46d^\~ @I''eک{,i#"4:v\WׅoP7aeXN663vL>8nD;?[眮Eݮas@o [гN?,DW*P<I%*P<I%*P<I%"k^`Ows_'t @I$ @I$ @I$l(l~줤<I)P<I)P<I)P<lvͻ"JZ=&iN?3M%*P<I%*P<I%*P<I%"NQ`x!'%(sLzI1/c >}W|Fy"Z}GSSUeW>k+=Ɗ3( H݌q!PdLwH9*EcY 'I$T?Gp??G3ыٽap"~+;׍eCXqNV/n 2oDŷad02کc 8: ۦzN>~?|%?|)rp{ioR-vcLXc׫]vb[*24y4@wQWYP`+]V usz'ZWllŏnpV:eb׍ԯIU}U1UsnkwHNIGBGGM}ɠx>GG8JSQ/QN>~Cꉮ :J<!ՠcH_~K~D><ܒX} } p<ܔ$h_hœ%})((}@rJ@˩K#DEVnCQ/QN>~K~S>x%0EEx(IH[x$Em@ v;AOo$f!oQ/QN>~K~S>x%0EEx(IL>G1uB;pJ<!;Ao4((}@rIsz&c{&{Fc;q+hLGbNs;G;UM57d~"GOh羲GT=7𽂻9u%q](k|ܹ]zUYMN jn.Xe5kZ h.z]:״zGSVVm 0ediеGzUo8luUQ֫uW <@"7U((}@r+} } p<ܔ$h_hœ%})RK!(hkLvE'$h_hœ%}%((}@rJa?|%?|)rP<ܒ} Z1}lַABh_hœ%}%((}@rJa?|%?|)rP<ܒ} }%ら}ɬv%#El@ _hz#$h_hœ%}%((}@rJa?|%?|)rP<ܒ ۄlOQ0'O x$0E}eAD_"6[ ^;=k5lD(jgR쥞K§*u$c^=;3fꩩpޛOL]{VE4wn60 {KeF!*?R,m^ b쬷k:pCWFY*ޕ|.|@%hs$4GY9XtUk4ih ߦzN>>GfYӺ6fmL>k]%c>FSzwH+v[mLʆHO,R4 ѱ0,e`k{VzP) ͉u X̎eX Q洁:xEmM0<4HGTc:"`Y\,y4[ӲY,;[q !z%*H^qjJJw5\~DvPM~huI!zRj^q椤!z)*H^qjJ^Ȉ-vvS5$%I o?ԽvI)RB5/]RRTvKo?ԔST!Yx5l~Nѱ$&I o?ԽvI)RB5/]RRTvKo?Ԕ ]@o?p˶Ʃ!zQಇV$J:UҨ=??sˮ #K^so?##R;ZNy0X*.k$|PttΉ``3} sw⳾dQFI*~]u[=o YX44KTv?/]RA~+vt['.`N4&L->h>^ߜ| =ml14XUvI޵xY?sY8y݈zvKo?W%I o?ԽvIIRB5/]RRs_'u^ہpS5$%I o?ԽvI)RB5/]RRTvKo?Ԕ ޻q6XvX !z%*H^qjJJz۾(z ILi hl^`^q椄!z%*H^qjJJz?U\\=rƼY[HeB?_YuKT]LO1 5y[KI[]Jz(Qn5~Yu~Gt\qɽ՚]0]_Vs\0qz^-e[[ǩm\K(g?]g?]g+=k *OƧ \gKH$ -+Y.xjc@h0j^ӏ_q`~o?m_K,A04s[Ia}\vFfV1}V;XN;$Kx?>~|?JptUdWC]bKk~oBVZ%Euv`_]Ady1jݮگpH-$I.RI$wҫ"!]_%%I$RI$I%)$IHz߈u=o~DDI%)$IJI$SOJP?%_lILI$I%)$IJCoP~TD6IwJHI$?og}gvQ#wmy-Og?c:0jS諀I6+]ygO6 ߮uM}/ޭ΂7o,/Lղme. c1y[=%K$?,>WC.IDzƻO]7n2χY\0ݑU 8nMo(pħ6Ey m`ȮRI$I$ws_'t;JRI$I$$I)Hl~!$I)I$JRI$gnRQ|IJT)(S?RI$I%)$IHAQO⊒ckO\͑d >u]~c;H?;7u*1z 8]Jd " AvCR9,q};9ǹRH9*{Yz|Yz|JR7B֒> ,fWI.}%j}lcu FkXO 8Jh0j^ӏOG`^;o $Pʰ(]ߴ.sމzIư6U !1 :0kqs1mms!$ua/hgԾw+AP6`v ? 'ƻ^U%adQ>H_c_4mGk @[V mWM1¡ɎP(:~5/3]j.j_hgԾwJE~P\h2PU\~D5/3]j*Z_hgԾwJE~K Z_hgԾwJk l0H~O_GD$"C?u~E-RJ/3]j_hg]R%"C?u~E-RR /a콁]-i?*gBHa~K Z_hgԾwJE~K Z_hgst;±򤅾w}QuKT},ݵP8*Tb^SӷH?]3wQz鍿μ7*?\7mw=vȦ+Exc#(٩GMgns$5qZhgՋݕR4MS(R/3]j_hd}]$齍i<ҽȢs}f:x6&?,I)!u (^NG sV5cb;_\34u6z",%ojDvȾw}QuKT"C?u~E-RS^ۘvhO kDRB/3]j_hg]R$C?u~E-RR/3]j_hg]R%"C?u6 lt;XjH[ 5TI(w}QuKT 5TIHw{ !FFSR*`_hg:gB!5/3]j.jQ}RC?uꖩ)5/3]j.j ˡB8ו?3]jq$P~TMRB/3_j7!Gԧ/`urh/֞P!En{k4tEGٴڪnec!n?xYѲXc쬖=CK}E"jMIeoSsXzNC#˅[$iC-D~o# jK!Ij"TIԷ^JDK%[%$IԷ^RDK%[%*ȈzQ$"F"z?xI C-D~o#$?RG z?xIIC-D~o#ST!e}6Q:$&IԷ^JDK%[%$IԷ^RD6Iw^}#;F !?xKԷIi:i{rEş[z}{h1w!\]G';[HۭlEos$ T2jnG,[/.N~ic\"> ́@o#K',HcC-D~l$c2χDU}Q#B'o#}l`wOnӯss{:zF^ luE{G_S\\1mQuRC-D~o#W$IԷ^RN꽯MDCj5D-D~$[/RG %"H~-D~$[/RG )"?)z?xCk"I4I K%[$IԷ^RDK%[%$Q|Q-D~-騍p?j[Y ^BDK%[$IԷ^RDK%[%,?U\>ϴ#ǔORG ! ^A[ֲZ֊X D]W?x^Sf֜8oB~|?JHI)5?unTAGcwںugΕj{Cö. +" $ǨRI$!]_ j)*I$I$$I)I$JG_GDC~#"$$I)I$JRI$"U6ꄭi?*gBJdI$$I)I$JR ]@$I)ľ? lkhg!V_IeYuu.I!ojttM qxu[$F,ߛkuq@t/uٸNSIwy$NZIv?|?"?,Dtz9eLnj=3mݥ[W@,W]zvqro3HCRH0KI$ws_'t;JRI$I$$I)Hl~!$I)I$JRI$gnȤgnȒT)S?RI$I%)$IHO⊄?TsWYzCv1% 4B y+hɺۘ j{ɬFtR6s/zAy);%uO;Yi|Jl=ZuN 09)! u2`I'RIJDH"$EO{+?SAz+?SAz?I]icٵtN1ZZ jonix\X#RgMY^I;[fhnX7==_k9X=cnqg) O?V.ĥc 8EO ճ [?лEI$6.…6$-߂^]"\XN'βZXA ]1kĆ ip.k;tyGlc+Fn&b'ICeB}V.lB$W"lBBMpj!]_$+ճ g~ 9}:s17{ <_Zi߫)00uGi=[?лKճ e 1SQ?J:G,M`ط; Z/Οg~ zw+zwg~$,x84E?V.B/V.lB$ճ [?лEI%"lB/V.RIHlS]m4ȕͳ$0lB/V.RI([?лKճ TR/V.lB$ճ cNM6IwH[ճ [?лEI$o2qȲ䵤scgi=z32+5RJz]V2oȷu-'8ضA}2GW9q⭮lB/V.ROcE߂F xEK$f= CBݏV.lBe􏬴s( Q׈7~w e{"lB/V.RI([?лPel>1+l~줅[?лKճ TJ/V.lB$ճ [?лEI%"lB3p#(۾$U[`q5Kճ *gBHE߂^]"Qzwg~$^]%߂*I)?Ni߂CIEI[?л^Sf ڍP ւϬc#!&]tqPs7zsTNPx¨F5n˲S5&*M9ȺAm/y5{Q^{KYy5>} |ZYWff]_-|WIiik6  LJoysc̹sD!g?]g?]g+ z/;f;.C5_UfdUC1WacVvAx ܋*lu%!ttz?sSʑbD'Y'Y~|?br`YljPvI)!>>R,O]?++CM_CX@/X#V>9 k>AS_L~_Pk$9=9UԾpXrzVKa\\y/,< Ƈ5t||;.pN' tI5*YϋfNkӉL$p'Ru~qOKm;N'N]o"K\%F]3f}b̯ tVwt;[h`4BrO)NO($Y}{c󏝌}LLh?+Op''Y'YhVz|O)uRj̪ sLm:ÆarXY3ַ>ߧQvne*u>뱡p'VAH 2HsSK_GDU@dȝO$>$9?ϼ9?ϼ!O)NO))"HsSJeoOW?93Y d@JHL>>R$9?ϼ9?ϼ!O)NO))")} whGs !O)NO)%:kz=;=XGͮ131W*эtK̼;d-hnK9?ϼ]ӓܟi{D'Y'Y$K!O)&yIK2χDU9vGi&yDgRBD'Y'Yi95to `t}6I*GkVג`1?5ϼc?T̻t@:o6Zt7ZJs:;2lh{\NvT:|N[̌٫{I>ƾ(l [[?a>Nӳ>fWfJӝGk{$Ώ~7U*mt86Ml]lI} vfh8@ 'Y'YW4:A|Lh<c~@TѝNi.{j-:^$ "_Gh{ Ө*s+"?)NO(l7@d8 @)" %D$,xն#EEO{+?SAz+?SAz?I]hct>z~1th]5+s&7'-3i: l 'qOJeI$I$RPg0χIII$I%(AipV#t?'8׳Mumw?Y4c>|wҫ"]_%U%I$JI$kɢks op9=>>X.} \K+A/wNigI *j1,c$T#~#"!RI$I%)$ILmi?*gBV4ȕͳ%2I$RI$I%) ]@.III!IO1{/ّk9t[-=F%}6}tVɜLe\\rI$s~ %R<Y(x̳QRI$DAЏI)wܗe`k̖Z?WWEoTYw+E$ tGw5\"wC;$I)J]DkK< s3&ϪA }w8Ѭvj:A/6wpc;}Y 1lt2?(l~좹"I$I$$I)J66J66)jgB?3M%)$IJI$RI$I?(CIEIJ >˙{^?mY-iqc4!4Rl^52T48s^+s_\T5C|q0rs54\84hcX݌Z8:kiVާ.Vާ&~08ߤZ@\gLWD#ᶬrm%%л;\YS9kI7Z}66& E<^̴ޝWA/Cow$I*G? nޞ[Nx?>$_}m;`^ӿ H-tM9ӿ H%}m;`I%_}m;`^ӿ H-tU9ӿ H!Gֹfޟ+y܂B?"H7szw]7Z$r=7Kszw]I#szw];3mp-?]ނI*Gz~t3_WK-go[oN+ }mǾQkwGɧ7wWsCZdk#kJrGֿR#t[v()[oN+ z߈Cow$>ޝWAko>ޝWAFh[PK;@jOs^% K{ܕt̟}`D+LS7֌z5&]_MLKICEgumv-yf1k/=AuUV*e44W]`5nYY:5Fk+OݷWVHx>lvޟf0($>llfo$?Yg[d}Ed`]ͳ$G+szw]7Z"r=7Kszw]J#szw]7Z$r=7C}k?vh.Iz[oN+ m qoOѤCN aQ뙗t_%GbauZoƶǹI.[ӿ H)Yïcbsr 0wx-Dj7;ӑ}m;`^ӿ H-t߃}m;`^? ]."Zh7foOp()[oN+ g$r=7Kszw]I#szw]7Z$r=7Kszw]J>7f"0c7Zws_'tz[oN+ ]$~G z[oN+ IW7C+:L:UͣX=V0}C|$`}mƾz:q/KZI e޶lz[oN+ >FoOݤl|_Zytՙ`{KLDď&?oQMg z[oN+ I7z[oN+ ];;Y`8A,vslg֚Xm?ƉshO13*ŌicԆOߐޯku]-FtnpSMU1+7@솥OJ+Z; sq20neL~Ѕ>lt?]Y:}cnǶ{t.:Msc~.9ky%Ѐ>zmۛNR>ޝWAjS?M9ӿ H%}m;`I$߃}m;`^ӿ H-tU9ӿ H%}m;`I%_(z~ ؉螇ӿ H-!$Sr=7^en~]6̽{YroO9ylǩ0;+ɺ;/ 6HJAnԲ?GNWMƣGdjW@æ,L F!VHtNa%tp8VדzYPcƂYEV֎RN{Yz|Yz|JchΊO*.hf;T݀44W^sY6aS]ۛCn4BhQOҨq$-lH?OX$-lH?IIOPg,ȃAj-ͯGRCa$-lH?I)RBّ̏Ԕ$-lH?IIPȖ̏ [t/ݦ!̏2?RJTd楳# 5%%I fGAj[2?RRG5iek9>!s=>W}VνűcCK:md޿n8l4bNd}+Op^udx*4.'# 5iSkDd,gu6ϫ3zFU)Z6̏yt l:@pu_(U0OOħȫn`xlH?@( J̏Զd梗W7֚h$ZntՂ+`>e}d}GdQMZȾd˪;! zJc\f,g>(BC̏Զd梹*H[2?Rّ# 5-)*6̏۽w{I UЭƮ]vsK^jH?XYYS=6ey$Q-[#WHKwN=G6fzr}Oi?pgR1MU4}} ?99XŰ1k,^0UwbfcuvW^w7{Ulq󺓝uf<}n}#+w$oT#݋o-my:2mOe]S?O<>m;wWIO{+?SAz+?SAzI]\^\!gtLk:F.Cv[U,c ÀmqeO{ykI 6U+.6]S$Jh/,eoԫI$%$I)G(x3QPg$JRI$I$!]_ j)*I$I$$I)I$Jp:նu =:Éժs_VKI cx-S}c0et+xcûelW=yX:Nk=8m4-0>x |qJ4+U$I%I$Jb#?sVK:wT=7+̰nkQS=-z?Zu.?ak-ݽ]gI$\I%)$IJCoP"!KRE_VK\b8sgl& UZlm8#@>iKshm'tO5jtಇV$J:U#t,&^r\ 6j'pI"Iv?~ )?,D<Y()I$JRI$I$ws_'t;JRI$I$$I)K9x}C2?E[>673:]Prd{XM5}֗{v4]IR8|KSt.^ 6VI绻{KRI$ĵ@%:ͻ"Jy߫gM=Gb5k9׬ٿѨ$+nGԶ~DI$ۑ5-QIH~KnGDR=Pm\ݦՄ+$~KnGDJ=Rۑ5$nGԶ~DI%#ۑ5-QIMv6VsfD䉷#jU=o~DDnGԶ~DI%#ۑ5-QIH~KnGDR^؃:,ϬXyWie^;I|n<}oO>v L˿l񶱑S_#V~XSًѬ]}-n gGVAQ#ۑ5-QI(~KnGDR=Polea ]@n =]:/-;~2 1 51{d}Q!Y[=L_i|ꃸmtΟ v뭶COGI\ۑ5Sjzh=YݳvoKAW4g/ݟ1J)ƦQG$6C]z.J$?E^IIC]z.J jz8H.$6C]z.J$?E^IIC]z.J$?E^IJ~#"*ޭp5wW!.JzIHKwW!.JzJeoOW?·QCU[O h;#땍um4uLfӌ=r\zɑ}/)q 7һIZWtޮ2MLq 7ӼŁҁ[-$m|A^ҽC]z.J$?E^IK'Uَ/1\%'*wG cqt;(}>ܷMn/~<Ei4 б.xYHk'yO/w70^m.<{G^W6gfa}P1"ů$nE6%fcSf7omwg/obՙFn.gh9 ^^&~{Yaf6.%x3sF+If5 9EM6kkI\ubd-V3GxąL?Gp??G7ыݱyh&> On~icocl <\54 EKՋF8?kjp;hQҨa$NXI%(~|?! ? $IJI$RI$+"]_%%I$RI$I%)$IHz߈u=o~DDI%)$IJI$SOJP?%_lINL7gjꉪ%QzN&eMs6Cg H#/C#3^:vSna&~亣cI%I$JR ]@nO7oL1.[SoV5裏8Xѩa6'n$::fwQmLmu[Ypܠ{~kqg46e~Bg_$H.]%#e∇>%)$IJI$RI$kDw5\"wIJI$RI$I%) D6?oRRDI%)$IJI$RlmlmR4Gy_cwY'OLS "4:k:Gʭ`5C:~mW6cUo{moOuU=K_]|u I$IRI$'c`Ȥu^$k\ l'dYu6}u9 K(+Ǿm=k%7knq}gżJsSḲmX(Ƭݑln,`1!laskkm8qEob|Bٖ3du*+?N۸TSWFr',Ε0zn6马v[-V— Dx_wH÷(Xl/Ήh/fZ8TJ%YpEI=gW}/J*I)?wBja8iƊ ? gW}/J*I%gW}/J*I)gW}/J*I)gW}B sch!]_$/Y߂oJ*I%gW}/J*I)gW}/J*I)gW}/J*I)mzF5SJ'~#"$^]+?һ$^]+?һ$^]+?һ$6T[C[HAKOJPVwNןܧzyt7v}W߀bu8=_u{(sUl8n@]goҳ+gW}0+zVwJ"zVwo7:vtVMuZsxrJHq#o[U`sݤ7ąYpXR5X^v跒oH6P EV9JO&V-VP57f:{x"J%YpEI4^]+ xTJk[M" gW}>?,Dҳ+gW}$ҳ+gW}$ҳ+gW}$׶ɱ^9YpJkDzVwJ"QzVwJ"zVwJ"zVwS[l~줅+?һ zVwRI(+?һ zVwRIH+?һ zVwRIH+?һ UWlmR*yZgW}JP{a}mnSGP綋UVs[kv3wwB/J^]T\ҳ+gW}$#tcdtv2Ϭrs_CM~^ʯu2qd)ece^` kuZwЪ򯬙x;3aۃPxz^AKd;{_8d.N (ɣ;'.py{5۞5fd WvlL:miG6'^ %HW'>OOVo["*\>yetjGIU)g?]g?]o+*=7/>vO͓7 ?ic;a0dloCFSh/ e>.(U JW٪WS% +)}}%%#CCa?KM̑RCb/Uj/Uj/Ujq}}B+\%$6!(B5__f_yI)a(B5__f_yIIa(B5__f_yIIa(B5__f_yIK?Mo~DHUEffS5_HK B٪WR5_IK B٪WR5_JK B٪WR5_Jgh"Uѳ zn"tO^=FuI djŻ'dzmvcixA G+*6`dV-iuv$ӡ bx8V}Lp qh\ϲҬk0oۘiWP6XJW٪WRJXYX,_s[~q$_5_羸}`~VM.+eH>VGn--@v WQC^m[^GUY}?䰱}iثf_yB(Ҵٗ=qRPjWXH +)}?KgBE2|ϊ٪WRBXJW٪WRJXJW٪WRRXJW٪WRR kD^+"up?U!}}/U!}}/U!}}/U{+* mw)! B٪WR5_IK B٪WR5_JK B٪WR5_JK 6ѻ"٪WS?ܤ4(@[ w*_f_yI ,Pe@d5&AjӲ,ع},q.R~=u6XǂN"X_SF+u {rmոul}1m!K(B5__f_yErXJW٪WRSKY]=;Ys[>`H ^:'OZ7#mUv<~C} !h`}b#h}y_NΚ}?wħ;k\qj7{(%U ]My-ڹQm:ìv5ؿec1+`{}xdfSfe[]43=W~$:=_Sikh~FkdYCY_#Efb}"EuOH>5*;FcR /{+?SAz+?SAzI]M# KvN{Emh hUz/;f;,2dag~v+e㏧Եn% jI(JRPg<))"IBPP$$% )HWsWE;\~D$(IJI(JRJ%#~#"!!%)$(IJI(JRJST%oOW?S$%8X.gQĶ MYk[:K*Yf57d<ऒ5%JG>~ )I% BJRIBPP$ws_'t;\"F)I% BJRIBPP$!l~줤% BJRIBPP$(۾)BnȒT)?%)ab>OV=.K2jG=75 zK*eV'kw4f~{"]= Is> BKP$[zF%Lsߎ2.plsKI`divlmXf ml ~s |T}gֲ\z/K{C ooѤ礬эps6 FM͝Yd䲪ɋ!c--yQ5ZcQұ=7V^C7Ȟ\SWF6;eoxkIY}-tlׇ1 C01FuKT;>XLtp4|ٔI(GO?Ez]Te"=~._gyEI*U"8x hci%GbU<)"=~._gyEI*M"=~._gyEI*U"=~._gyEI*U"=~.ʅ0.ѩVȒj]_J_gyK(%I_gyK(%J_gyK(%J(a.ЎO)z߈"}}/B&}}/B*}}/B*YCn ܧ[LP;KOJP)wR=~.*IRiӬytbҖX}2G6\ 5tUָK\!Uc~GSNR[E%UXUB<]Ez]TظXk=q9XSp"fȹqV>kz#(ַX:!:?Y̨ )cHHP}/B.NťXK=8%X=~.ʫѰ}7Am9 GiZlɟG(_wQRFwR8.*]$S^Itؕ?Ge−wR=~.*IRiwR=~.*IRwR=~.*IRm  W*fyOw5\"wI)}}$4)}}$T)}}$T* .Մ6?oRE-z]_TEz]_TEz]_TEz]`c.(66"U[ .K*T44H_3:&f6)+oqK~rJ-:)R;\Χұs,u5c_!iW>_>0ީЍQڨ-th@Du_xŢ̛5SK8@ uЭks:!uII'AmOܰfq}X^wj=~.%FJ] ah)A٫wWdYŕz!V=M5|X ]sDlwQԫ~k~Kws]'*ٯ{-1Ga藷[s.5lfI6Ci I$n?Gp??G7э+s&7'Ο >[kߣwm1%^8ߤZ@Y}tJKph0f^\qZxQ)%SOce>~O/BrJ\}Ï K$?> p})~[ >?> p})~[ >?> p})noi䉽>ʪ6 #D)$[ og()$[ og()$[ og()$s}7=ǂzMGu)V'itki,BM} p}zK-sOKek_ w;1)*]cb~~kM;[;5k Hog%>𱾫~amqn{46̷ܐUC ]qJ q[_Tߋ:MF]l֓ȅߴ;?8~-o5_l./ *sv4#ߺm} p}z\虖>ܛ܋AekFpxT}B^veP|jya?8V p}Cޛgv~Q-} p}zce>{ ) p}z<Sw4R#DxA-%SI xQ)%SI,xQ)%SILxQ)%SIL.sfGwރm5\0 xЧHe>~O/BrIe>~O/BrJe>~O/BrJe>7ִ/Br)ְl{?x}-Br^?>{?x}-Br^?>{?x}-Br^?>{?x}F3v%SQ}58dN`Gu=:X )zC-} p}zKOKӺzwUx S 3.zNƴ\x l= ;!g y[v=_Uم:eg&K?ӹ-ۙʩi{nȿc EGRi$}g{?x}UW v1D)"AXuMoCMo E}cwR7 S>H=t՗3sC)x,mPuSF]u݆jc0!J[oQ nHwƟEW-yVec6˟ЖnF(#u]kh5Yxvv,<3m605X2ۋAO{+?SAz+?SAzI]ZʞZH t3f.mc tZ-k_@$tT.Ŀ Y54Fh(j^xI4}K|GޞtK|Gޔ})s<*dCERDK|Gޔ})tK|Gޔ})tK|Gޔ})t+"K|Gއq^Ȓ[>#IK[>#IK[>#IK[>#IL+z߈U[~DIoR&)oR&)oR&)oR4ȕͳ5zo}f脔$-zJ]$-zJySW ga82xxB+69}o 7|Gޔ}RZ@@!K#C}ڏ?*)JioҖ$}8tPa<>m$8?I#J[>I#J[>I#J[>kDq^YoRM-zRM-zRM-zRS z?5%%I4}K|GޒI4}K|GޒI4}K|GޒQ|O-zznp{S?*#f)oR&)oRbuOa2Y+)o"EV?عgJ~ Y}n ]+Zִ1 K|Gޔ}RcIEB}>D$gelY&.{@⽀x6?c>oAsRW0ef*z&X-hn^BR|멻=lz|Wxxx)uuSlf9K?Gp??G3ыٽap"~+?уNG)ckpv^\!gtLk:F.Cv[U,c À>mn?[?g_g"IhOODR3L`B*u,%5((x3RBOODJ?/$KDI%#=?k/qBg_g"I%JGzp%zp"$ }$ m@">?*?""HGzp%zp"$Q }$g_g"I) R+q E&$;OJP }$g_g"I)JGzp( j݂6m/$F7)d^ѸAEh}3;;=V>s;G;UWݓ=#< }'1=?=0}DJAE5:IOg$g_g"I%JGzp%zp"$P ^"} ]B?/$KDI%#=?=?IHOSQ@GCge$+KDI$=?=?IHOODR?310pQTlmR:X )} i i)JGzp%zp"$ }$czp&O?*JGz?p/(ss:{q@M>KG~1׫uAv}75⽍i>v_-khn>.;^%Ԥ"yR̺m4sc;%jM¨$j?Gp??G3х,o-i#FȻ7bf_˪c@$tZ/pc .NfX,5a$lofaԽ?_mV$5$:vPm,@)ϢςJK%&I%/%&I%/%&I%/!Ǔ\ T\~D[OdRO[OdRO[OdRO[OdS1 #DM Ȉ||$||$||$5*[A%5*gBJg%&I%/%&I%/%&I%/!8^]6*hb~ʒ> m> IMn^hpjl.O ϩ*tgP]m$ik>[#|"i&j%R3Fw>+> m> E}6D~ ) sjh"D|g$$$$IJ(|%/%&I%/%&I%/%&I%/!X41আJK%&I%/%&I%/%&I%/(,pNdnS%OiPT)$$$$Ati'Q6!?i?%.^I編uPl[Mh/Za{'o!X|Υ=Ll_6 KCU_WKC]v-6i}Kk4!e 6M^ٓ,$7ee[vfKj*VͧҥRj_M kz~ޝs@@.2(n-dEzfZ@)=wˁ=wɿ^90'Ȫ]?<*1q_ULk+q 4$R2cp"~+;SWOFh 'hmvPGGGCѸOj|'fOj|$g(x3R7S8Qڅ,@$&IC֧^?K4=j|%S%3IC֧^?S4+)zCډ >JHNOj|$i(zK֧JfOj|$i(zK֧JZȈjm% "zI PO%Z zILPO?%_lPnゕwT+`/S/Z %J?𒙤S/Z )?O1m_hs(zK֧Iit?}l=O_;dn%w]fnosVj|&¸Eїv|@D`%Z zNbfcPLxIKc2χD@څ-S$3IC֧^?K4=j|%S%3IC֧^?Rs_'t m(?Ԑ%Z zI,PO%Z zILOS XK%Z zI,PO%Z zILlmzQ}8oʟPU Āj|$i(zK֧JfOj|$i(zK֧Jb?Tm_h.#dOzILֲ}t]OX3R8G]9D $(RI$Vާ.Vާ&~)yW8o)ؽUxoIciŷ ,fEۉ;J)vp 2C3tѵkdqܪ`uP?WWUv6̆jki~U=k+Ǧr,'!ڰ !?w?w4K{)-+Վ2*zv}~n{XYL9O TwQ;kK@:j>JV=k\jIJuܧb_uܧbRIOM[~#C"ɯ~ioҏ2$=78o)ؗ8o)عo}ֿ&MXY7҂p:S[ճk}Lsͣ|-;&E#;b+nΥ_LJpmXL3hn`uܧbI=='> h*]K 㺢[ kt▊WK๔S}=&nǹLwop:Ss)%Jzop:S/p:SfẼwV+v@UzV=ٮwP1ptmCE=>W._`#Ahڪr)%"D9a6,k=߽Yux7#UaKJ©[~%[~.6]ֽ=A7}))p h5TZ`-:wU둭tISrrc{bVR|cLɯ nr^Z~!?=g+2Wmn jiY^z.]eEXHԆEF-tufD8 z9# >c'-~X䖊uOĿOşf]1ך33ⶾӹHKE=1r 2+_zoakk.lm&;.I$iOM[~%[~.e_ī6Rr]~S0jq`kruvm~`n siu&n9ۏn+lG;i|BZ)?w?wut=LwTim081uӹSTՍjr )XU;ZWH|~JޡfSkl@;{xI$iOM[~%[~.e3R=?8o)ؐ˚upxYؘgc2 :Ud[2m7m>#1)rv]V5tn,p z>ϫޣ~-@ipPުrzGKsc]VlY!𖊧[K\V km)"C&ٯ~VoKe\IRKX3}*)!o. >jCyXP9-ǝⶵ@u2zǫg kkevC6\TdQ8ulde^ ^ ?Dz׏c6 uOĿOŕ԰qp:eNauٟl6S!7mn_zY.f ik$خI$iOM[~%[~.eiapŨ,l٧>H tOo'VYmeF0#EZ3z5 7#[Q[E.lqx87ouTS[~%[~*t˲5ZjK,/$ ]pVNm-ͻ{[Y$8n-OA[~#}Xkcx$=(r5'?w2{Yφ )?OL_]g#*g۬mn k1Xќ(ջV+!% `ӋV>>MT48TH<Tfxy,um.[~,*d๖Y[V}kqI#ԏRn&WN8g9DX8m]ϚVN8o)ؑr4e?w0oc_=n_ޡYfCkaMp?O̤)OĿO̭  |mcE5d8דh5' z}r3m~Cc۵c]N8o)>Q2lm wCA$f=NeѓkY- o?[Qpiܔ`~($!`~% %J{/ G;N+\w]Kԏڝ{h'oK=9K1>*UՀkX\=nU֫fm#sEf7kJU? wKb}T?-U 3e=YS(68UPx$sb}T?-U/STx)4OJ1>*U>FST'OR ^1>*p[\ATòdT꺋(}u1X#GOJ1>*SdוS}XxG{9V:Vf]W cU}VXALCb}T?-U/ST,%ںm8e/6#fYnȶv,UnҩOJaZFST'OQ^1>*p[\AT=_;22}ۍcl :#P3)酶dPl淆7e%zp[_nҨXKdaz4;3Ӣcp{;#o}~n s?Ȉ^1>*p[Vddgfd YLpѵ +?'ORU? wG!4OJ1>*U>KS;YdNǵS?XF_Z2ens8OJ1>*)|͝_*E>FST'OR zve8WYfENimq 8fMYWcYN; tG^1>*p[\AOguvdh²Zo}Պ`D%ë`c?h^s#nҩOJc/uGM&۽\ZXlzGT׮OJ1>*|%nҩOJOul|L\F̌ 1{FEnҩOJd ,tC.77eփO*XG7vKuw ST'OP˿haY^NA{2.ck}ՙngfdu ߒEc]cv4}zp[_nҩXSi/\U? wKb}T?-U |;ǵST'OR zR;4`bYd[s[Z4FoUR0/_k"ֶHH^1>*p[FtܬlV>ܫm`ސFyNg &p*dw^1>*p[VZZƴ-:ST'OQ^1>*p[\AT%]=7Qntkj$<׬OJ1>*S9}\u N9 ;Wmmo :xeLO pfnҩOJa:W:K% S͗ .`k{-oB'OU>t ^_f,'԰qg$R^4>O(q?K,l).4D6d<#la~*׌,@Ʊ0s7l^YS,] >hc:bnjG$Iu$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$fn&C3k1Žj/۫PAQ]O&2Ɵ{a>D$I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI*]>[:LZ>y>I)9m˭cV5{[lp4褥$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$*y#'5ص]c>hK9"$ o2 |B_z~[ qSOf;I)׿egujk${-ZKw^ֲI)׿egujk${-ZKw^ֲI)׿egujk${-ZKw^ֲI)׿egujk${-ZKX:|,k k?I%91wt-a;~71[&ՀIHƻes5~vbᓧHĿ 0;XcxC8DR[i2'i qѸL=ObT-Uzy{SǷ> 76ʮ5Ԁa;`:Ym^ͱ¹5VfE z/~ѹ^1s]RRzq*emp.`~D1E\oD}r13?ߡn[ҞdI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K޾ml;Xɗѧ%v+z?K dz]&?%9Cg7ooP6[^XKHsA"]#bSԮú)̿<j]aV@JIO[tYϙElvXzގ;ž~n:wT>WӋ^ zf-{yߤ.r>ӆްΘӝU ?]эeo߬'7;&ϡ^CUˬ?Gm|^JyϿSXOv9:ȅפJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$J endstream endobj 226 0 obj << /Font << /F8 6 0 R /F20 12 0 R >> /XObject << /Im27 218 0 R /Im28 219 0 R >> /ProcSet [ /PDF /Text ] >> endobj 235 0 obj << /Length 2257 /Filter /FlateDecode >> stream xڕX_6OK5vnnwIps7qM^"K^IdmM$H~kW%+4a%rÄBvݯ~q΃T&c~XK]~Xor~WJpVRJfiIeQ_ۻ;L7{kV*ڝ~03Q zZ2@׫ww9yҶ`gʔA`D+2^=r֛Vܤ%77kvOȂ)ULEέ7՘?ζG߭E~p81y㶍k`0uSpZ"T+8'g{.t x p̍P 4\eu<'FZpG9w)EC/]@"o>30:Mۆ=M6-jt.I~>h eA˜Uaи?0 6o"wjIUOu;ٸI&s7XҶ:9R0 o df4$`p }i!G*ϣI+3FS)S0k"eְXɤ0NQ= /=ʬ;WtCp :e\ tC4* ?cB|c=Q Fcf@qSuG?o4".=Rq >h#row^P̐SJV<ٴZ:dJv}'F\0W Ʈ>Ez>U#H)05MSD&%XJ4EIV" \,3 x.Dk=*{Oqv-oL]?L,a"5֊ Q1Lǻ.lmOGnp!&VL[88ѓTZ<62vdåk҅iwI .!=NPga)-݂1/|l?A"h/m,um,CK#m燹d >* %9G du*E4Zw{"ɼČbx0r[P2s[M-;, !ce J.f1P:cw Ji3P aua%3[ܝX!'6{{5KDbj9gM`H×`:ۡtʐMr|v'(Hia7CTK۞x۴C7csGs}#Opxc9rɬ_r )-3޵N')p@B&Dۻ((d9#uWf f ĭ/b#wX[swK:?qq} deDr!(”+$x7D3Xh5߇&TZ źBZ iC`HUqE9렀 `;ؔh#(tq3iũEN3ؙzziR2c-F F!މjzo{CӹvIklA B!DH \; nWQ0U9ɛFPY#3‚7 =" 7QkAE$D>LW4<'"#lkh# D{jpptMiC5p_c؀M4s!qKCکۛ(UDZߨ bȅ3AG0^v T$i 7KXc!OU|a$H0Ը7ƴ@& N˷YY!MgJK2O΋&5W*X7> endobj 220 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/100filterb.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 236 0 R /BBox [0 0 735 589] /Resources << /XObject << /Im0 237 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 735 0 0 589 0 0 cm /Im0 Do Q endstream endobj 236 0 obj << /CreationDate (D:20080803230527+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080803230535+02'00') >> endobj 237 0 obj << /Subtype /Image /Length 41852 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 735 /Height 589 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;M"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?qEZ3)eh:slzKO`W[ޥ.膝;wgy%y($A ybd:yPBS/SA$h%䗩䠒TKPI* gy(? N- r'FIzJ %ALO$O%~^IPR{ƳR<DBIzJ #A,O$O%~^IPS']v5cp!;&T!A O$O%~^IPS?S/SA$)썮cv&Cʾ'!A O$O%~fK1bXuk C~pRT}Wiԛ f&u 3CUZ~-S/SA$ IzJ %AK{v)zH};~^HS?S/SA$)䗩䠒T;fHO%^vP~^HK?S/SA$)䗩䠒TQ͎fߢ&Cg> BIzJ #A,O$O%~^IPS?S#lc* ]? fħd*G!aُv8kzR7SӪ5m/P_`п?Wל,s[ݙ5aa>ݗSYUYF}(@{tszcML$itB]\rjL1hvxm%gd^Hijm9D1\P-n9desTA;-mzΨksiAk E-h?<'N?ڿt˘hKcۧ-G߳MS&]ǫ{id!#G,HO6]/D~zu0s:$?D~z^>$?D~z^>$?D~z^>#GS[5HJ'CϽ/D~zIH?~Ͻ/D~zJH?~Ͻ/D~zJH?~Ͻ/D~zJS?(-ǀ"L߳I CG߳I)CG߳IICG߳ILSS?]KCI/ JX`HJ?~Ͻ/D~zIH?~Ͻ/D~zJH?~Ͻ/D~zJHoOKgޠ\I0g$?D~z^>gۘ=O}R'ߺ6ba\Gv?OSmXa}ɇ\1O~&Igޗ?~Ͻ9"H~>})U};YS t$?D~z^>$?D~z^>3(z#4i;IK> h5V<4—?~Ͻ$$Igޗ?~Ͻ$Igޗ?~Ͻ%$Igޗ?~Ͻ%-oӫS $߳I CG߳I.O/NO$nZHOnw̿.*džCv(I$I$ӱ?u?ҺexD6zp{՛.膝;wRI$Ƥ:ytoRDI%)$IJI$R?#S6>:f>:JRI$I$$I)?(l~$$I)I$JRI$;&T'wOMOLILI$I%)$IJCʾ'"!?RDI%)V#Ra `~²Yu::jOo>a[<_}2۽h>II$R:u};RI$I%)$IHj) vRRI$I%)$IJCg> DCg> III$I%)$IJL;"JcG,)Q> i)I$JRI$I$V:Pu["$I)M "FCA1'WD{O#C ־w+:~!λ cmy<$|(Q~5|lsvYU/iZ h<~I A8"BHv>TaZI+;]2;mLjK}6G+]',G+G|iXC+]$~ҽ/E^JG+]$~ҽ*qty?_E^'I(z^ҽ$wW+IHz^ҽ$eNl|Q=zL~$~ҽ/E^IG+]$~ҽ/E^JB]5T:ƤR5?~Rjt/S))*H_fOR5?~򒒤jt/S))v?oQvQQƂ#Rjt$%I _fORJTOjt%%I _fORS7|MOLP~=!!ܦ[ n Ԥ!}?yKIJ٩O!}?yKJJo|OMjtB*TГ:I _fORJUZ˰))=տh$1ti"}?yUұߟVtjv; ϖ%}P "GU]Oź٩O*H_fOR5?~򒗫EE4S5?~jt/S)%*H_fOR5?~򒒤jt/S))WU^*hl\%RBDOjt$I _fORRTOjt%%Cg> MjtATn{c@jRCa$/S)}?yI)RB5?~٩$/S)}?yIIS;;"٩NCOILe4 quLqKHJ٩O!}?yKJJ٩O[EU좠]O٩Ĥ!}?yKIrw+˺^-YwKjd \چ^>-qڎ2ߗCk1) c#۠[խf'BdWC[Z횿3eef? v6_OTpU7b]VOv5-qiwK򣕒rv7mD|rZ -HI"ӱ?uR3]4(㶢rU;I(J)m$!ͿIIJ%)$(IJCaHCaͼNA %)$(IJI(JRJD6?oQ!%)$(IJI(JRJA?5?3;DZS?S4%)$(IJI(JRro|OIIJv-똹dV=ս4sQh4Tn˽k[EFuMPe. 77J%$% )_ND:P$$% )I% BJE QO(WvƩ)I% BJRIBPP$!EB?YjJHP$$% )I% BJRg}|O =Ȓ> j2ς$$% )I% BJRIBP[EC{D%9Zt<^ߣGDii#/Zܩ3mqmT#ʆ4yBӻY%c=+]U6cv9ѱsm{4 vQY{JN:I @>"REOc.qͥtfs؟Q:sj(Ur͚?k pWk11)sȾ[" ^X\b'M _N~> I }W*I%٪?yKx}W*I)٪?yLzܣ&wwDzS #ĩ}*?gM$"5^)}TJ/U~٪?yEI%"5^)}TS^+ u> f)[EIW_f$h'_FV%|yg~_Ug v5Jm !Yn x-D-̌\j;^>OU-ȪGQn7[*i%J67$Mpo%6s㶥~b}E0ڿt_߹GE2#/LwZ߽/Roޛҫ%U/W{\5'W7CɲZ >!'_7KԯzU~~䒿_7KԯzU~~䔿_7KԯzU~~䔿_7C/SX0 !;+U@7/Joܒ+z~ޕ_߹/JoܒW+z~ޕ_߹/Joܒ+z~ޕ_߹/Joܒ1;{{z~6U_` m*qrH_ԯWzU~~*qrI_ԯWzU~~*qrJ_ԯWzU~~*qrJYWVV*`.DwIU{&L%$3+z~ޕ_߹/JoܒW+z~ޕ_߹/Joܒ+z~ޕ_߹/Joܒ+v>RhLU,ePѩ3HIW+*qr^_߹$W 3Ҫkq'sYn*W7T.똸m ۏufѫL鸦Ψ_q _pRoޗ_7MUK~JyzoJoܟҫ$u=ˆD+uWY}h4S!Roޗ_7MU%Roޗ_7MU)Roޗ_7MU)a  oޅuuhѫ$z~JyzoJoܗW7I+~JyzoJoܗW7IK~JyzoJoܗW7IK~6_a S ^D64I =Jyz^߽7W7Kҫ$Jyz^߽7W7Kҫ$Jyz^߽7W7Kҫ$JyzgY^{^_߹'UV)6V)`.?RoޡMUK$x)zU~~䐿_7KԯzU~~䒿_7KԯzU~~䔿_7KԯzU~~װpWЭWk'W7I ~JyzoJoܗW7I.Gt#!n t2ޡK(dz'x-/1^&?GcD8Vrq}/̹nmGެ:ux_1m]5ɧ>q2(9YUN ^=u -Fmĥly!:g?IN{]V-5dd|& 9CZNq~s$:y[t٨~))2J; og$I(g%>$>~Jd [ NJJH'Qdpw og$I(g%>$>~Jd~[ )?(Ls=k >$>~Jd~[ )J; og$?;&T$cÃx&0;(g%>$>~Jd~[ )U?K{?x}7ԫ9=RdwxILk3_P}G4}Y໨S2Y[[wKY _N~><@L֍wxEc$wxILjv_" $j$M%S$wxILQxK{?x}%0]LwEC )twxILQxK{?x}%2IG{?x}- ,5K{?x} ga8ot%S$wxILQxK{?x}%2L9}Ãx$Q> hTNJ~Jd~[ )J; og$I(g%>[EA/^>H )J; og$+[*Be#`^EP8>!zt Wq5 nvS[($Z_ LEiݢA.z;M5ɮmУ6n]ۘ7T8sǰJN2I%#q>>|vԺOFoܹO(D6r#u&NG 'ѧ%gލ2ݓ} J9EauҮn%{}ߒgtjMi0A} 2u2{͇vZuU~(#SޟCr]A /O7\vW,:F;Oo2yB鱲)ǫ/ +$D"C?߹/FoܦIaii$?߹B@?$(STcxO%O7Kѧ)z4~qrI)O7Kѧ)2klDiəDI =qr^?߹M$ѧ%IL=qr^?߹M$ձTja,'E7TD4ꄐFoܗO7SI$iz4~4SFoܗO7SI%0ivUP :y#_B?߹/FoܦIa+ziVh`m3h,s}9nΜSgT/pqqKM}qr^?߹M$&?߹e^zEǿO-kqhnN=/ltn}EXtqsΓk?@GGu ,˰KٳGd`˳vf=᮶aΞ:Sqneos`7ۑEWa;PA[: %sn]wKej0qSO.~s^Q?Qm_޺e*YqG]E~w>G5KzZkn>K -ɝ\쎟 .-ǧ]Nֺ|/MgHx=նlslv3dw`:MC]hXCQKݍc[̵-p" zuSnugqj}2fc>V PGQo/Q߁gߟEDVޣӟ|VgpoѰQ G?{?ܗ(r"I%(r\H*G$E woG~h}"$%?{?܈JG?{?ܗ(r"I)lqv#C?{?ܓ?(!(r_hȉ$h}"$%?{?܈JBK5Y ?؊Ț&i$-?{?ܗ(r"I%(r_hȉ$h}"$!}Fv+V9WD(r_hȉ$hʭVup6Ⱥ-6I,o}*c0OPGOjg%BW p^m޴?Dh}24DX[݅ѬYVFcQxHcM it{ֺW_pĜ>״`Ƹ(.t:OOc04w;$wa.N{_}N,Z9U})VE?Uú[/2Ӟ,ຏR qT}%k :nfeՎU>1Dՙ[ pCm45:h}"$h}"$_Sa?{?ܚvƼ$h}"$Q%?{?܈JG?{?ܗ(r"I)(ro\nІƅXCg4ԐQ߁G~I(G~EDI%#EK~$~3)}ݏcȩ]cRo0jSEOG,)h}"$Q%?{?܈JG?{?ܗ(r"I)et>hɭu["B?Q߁G~I./ցΉ o~&at3oQ (ŷ*7V'nEܨ߂-9yՑp׈!Y+}]32ߴu Gd_c@h.h@V܎OcEO\v2ۛ){M-m_U+RtN"f%%HHI>6]2Q/0>Ͽm_ܺ3Hnj 8jɓ Z97l[:MC*;knۧ'UesTK_rYUWuL6jXt%o}8m_hWdj((\W~eMpduV&MYPCtp$x$뱞ǖ\${-v/1=Wu]N5cd7iCe)/\(|G$?Q/Q$I~K~IICEES'TD4IcxD_HH$&I~K~I)CEERDGG*ȗ(e*!3$Hh_hIHۂ:?PeE6V>GvE1K}R7z{UwiU ?6\7.'nc.3wR݇Ku;.}/aQF88XT۝2Uvu,==Geui! }U_NE^ ]#DEREe'e赴g[" NQ1kDbA6N>eb=sC{uEdO⽅<;c~?5+E@H((V]^pl8p%~I CEEJDGG$?Q/Q%$Cg> K~CmI GG$?Q/Q%$I~K~II;"(m#xदT2ς7*`.?Q%$I~K~IICEERDGGNU^˪.ȟhHH((\ϭ~Yi5G3GG"ӷz֑Kl]u*6ܦV l(\QR&;+]J}]32Ʊ Wd s6[EL¡u/$NrI <ƿSؑQ0yǧ;I{r2#yT1?u?ҬuߗOHl994*(iܲv8!UۄW oMqm5/}ΟVx9ϊI6Zm}4T:y)%}IK@rn'Qų 6EkG<:I)ps2ez2㷧k›+3q:%9ՋC<XUtϭ= UҲXћ"֖뵮g:xc2e{zzWcs69P.gLZ[1:k\Z;s[ݞljwe* !V0,ӕѸ1c{]!*>t췩Eq Gl[YStV ^;uaޖahͧ3}hٹcli3sqw+_^U>oW8!<!Q[h@M}˕#M7S]Kn8se]>6N>ebX۩1Q rP<ܝ$z?5DIK@rP<ܝ$%}IK@rP<ܝ$lvIf;&T$P<ܔ'I%-}@rtR<ܔ'I%-}vUECʾ'$p<ܔ'I%-}ʥƖMX?*;u Y`l5<աLo#B^udVn&^m޷9[omzfuu:v=? [i֞ޥt6^6srkcgZs@JN|R5$>x:HEP$(UDIK@rP<ܝ$}:M#PbW\d~}bqs"OL.\Y}OilgL{\YX+1dDy_>ͭ^:<m]t0UCS ` IRqĺ; e3.ݤ7w: NzoW8i" sd}KBx:I)hJ>x:I)hL6A䤙ES YNhe4%}IK@rP<ܝ$%}IH}Z`x ߧW*JZ>$뎟Wt;yYr* /akW[WBȲhVDCakG"}&ܦe2hcQr:~F]9^ G{^~UwƖ8r#Ki @ИOT[I$S1:`O :=fcYmoUdՂ-kO6Q^&cALvQ@7޵]O\~qRNB/\~ y΁XC?K$/\~TR/\~qRIHw\Slj!0HX^?qr(|I)?qr^ȩ$F89AW-E˹kv,ɪ<!ecgYXwA\@!  ^˝g?S}2̶{V]>mv4?\~~$^z"Qz%܊JEܗ?qr*I) 욻cEnS?C\~qRI(q?EI%"?K$B˦OntVr!o\~qRI(qWzC=f}Bût௬oW%oןLt l nRO:}Z}"պ5*W8GnV?qrGЩu컬|I}X-C vEܗ?qr*HkpqvJ~v_"$^z"Qz%܊JEܟ܈Jkppo&\"Iq?EI$?CbPi1͐AVRI#/!F&SĻNJO]Hi A0ix70r'.[ce4{r*hh (6.y@6HR?qr^ȩ$^z"z%܊JEܙ׍l2g}|IHj 6<qe4/\~TJ/\~qRIHq?EI%5W~G:)%oӫ$"?K$hj?D^#}g:S}Fl^_C+q2pXh4=H琏ESu q6]q@vEꭔֆu =!Ǻ܌јnC-,< kHkchC>fz^nsy읤Z)rI"ѓU?Yzf^=4!.75 qƫjcG^jf+kmuhyfM. >+p6G(_f&d @ ãoۿnYEC+p6G(WӰݧ pm%[9/f/Z ,f/}7VmJEIc7VmKY cnrV.G,f/fuNi@nrV.xc ?ɸ_w#7VmJEIc7VmKY cnrV.KY cnr_o_w#QK i{iʡ4;esAן^j8WLÁkvo_w#?Wfu=wbcS̫,NYcjw ă`=c?(Y:Y̬>l3-m=0>+p6G%a $+p6G%[9Ma%[9/}f/Z .{3UŭX,ϴnֺu^OȪv>$vwSS?C7 knrU}f`?mZxKoۿnT]?n+p6G%j$+p6G%[9+Ua*Ȳ+p6G(?7)}d- nO7%j+p6G%[9+Uar]M}}l,kZ%ƾ&tZo_w#'Tg.Aفhm~8Sft޵ eM55 h SX?137 cnr_o_w#g vXo_w#oۿWӷbW::vv.SoۿoۿnT]?n+p6G%j$+p6G%[9+UNvVY\=;Cwo"}7VmJEIc7VmKY cnrV.KY cnr_o_w#Qv__蟶nv.f+\K~[9/f/XA=W:~p*`$Klgg> \UgPg^xXWm& v@YYzXmFYߏfe0z?n+p6G#k ,f/}7VmJEIc7VmTu ϛOLA!;"}k>v'NȬ@#H9+UZYSXg}fmma?mo_w#QvXo_w#oۿoۿnT]?n+p6G%jEXvff.a!6tr'nT]?n+p6G%jַW_BȲZ=Փp𐼋<]^3z}"bcZnO{@1oĪ 'tEӇvEnƵl;+:NkK^Z|KkvLn|&uؽ'"/}^'-<7L\N̪.xG%j $2Ɠh'ӱ?uu>s8Q:tɑ.N11~TI$V+T:ytoRMR$RKTIJ-RI%+T<DCa3x%+TI$R$RJJI$=6g*w >ly [4HvgeSuu ZݦF׍B hCEml6X4Is?uoa jkhipJ*r~t,;N#]n݁֗[ 7[q9Ş-0^L!5w\ƗK`Jێ/=?R }vgsQT~Xh3C+k |YW;knOc:S[k5Xz2Ht=ZX_Wz'Ouaukf墒T/3)_ú~s-e ,GU=GIO}Wq4{l.+'Fݥ-m?Qc}Eٯ.`ۺKvS>_391B͹E K+;f3 +-cZXkZ\p7Bzdz.\*1eh BR p4INmǵ^]<Ϊw9lnFcˣ.EbC?Q4G R͛!/D6(}zB^s?R_CdW2: O6]$-] zB*I%w/%]$^w/"zBϴG2<I ]B^'I(K~!/R_EI%".EK~!$Ի.ETS]հrt#E?R_N"HE] zB*I%w/%]$^w/"ltd.kNZ^'P\?v_S|*zM~CwUV9QZE."EZF^Kz.k/4YucY.[ȄbzB^IE] zB*I)w/(XMqtVr!oR_KԻRI.7֌~qkln8shL];c0{ԚaU}?nsm~EG9p[6eޣNM)pƴ׏h XѶ WL-mRdpuvӝӟ_QcĂ8;)tkٓ^katOiAhw/"^w/"zB^JkK뚣ݦ艾_Moӫ$".E6nYye,xp;=nFgA͹`&{H[-1*zs_yk@gtdfd?'p>=-u1y(4^ X1Tׇs]h\&ԾMjzA =h" ٩N0DqՋ'&L`sIsvI>) };'Q?Qm_޺e}Dߪ3AԺOR' Sl*DT!?xKԷ rĈto-B~UdVL$6C-B~o$?R' z?xIIC-B~o#-B~u DBHN'B['Է IHoKП$!?xKԷ JHoKП$3=kID=KП$!?xKԷ IHoKП$!?xKԷ JdȚP-BjV*$5Nm>7Rqsxk'edvJ ,X9]W[ՓYmaQz/S|PÈ;^ hH)!?xKԷ +$[/R' )"U?/R'v>edDy$6C-B~d$w/kcbb3 aZ~ RLw s/HזhYTݛv._UcKKk+03pg^)g8U*hj'sY mPq:}vtC-B~oC-B~ovXa.QOBDKП%[$IԷ ^ORDKП%[%- QO*ϰD{p[$$IԷ ^OJDKП%[%$IԷ ^ORD6HԽKП!z>&$6C-B~o$?R' z?xIIC-B~o3(z?xL-Dx=JeG,.5t_) v>K\ecsܦL@ ;6FȬV[K~Ce^0[-IfNzIͭ,qcD>APWKП#iHoKП$!?xKԷ JZߧW*c.j"[$$X]9ZmO¦;^=׵W8X_SWG6 "+&ho]pk^X'kĴB)|u׭}hU@^`N^Ki[nvPZG8(f&UeSEF,kIQoe04I%nawF^Snڋxk:OnGV̮F KI4jSn=aPT?h5sKl7Sks'S؟Q:l?{j.gQŒt8mjY݋t>I$ԇO6]mJHI$$I)I$JRG"!0Jf'L'IJI$RI$I%#ge DI%)$IJI$STD4i )sW:_X}mZj~?˝D/}`k^VM{= Iȃ \I%)*Ȉo|OIIW֌` ۟oTkACcZ+]#cnKk1Eغ=q11ZTCptT.ʽs mǺDzc 3htU9 zya. MZ2xӷݲI'1$IHv_"!DIJI$RI$I%"]+gڊyIJI$RI$I%) ,5 ,5%$I$RI$I%)3'L)̳ P|S}]7Ωs$s0sCZjďЮw+zKk+^z/{ctIe$I.RI$[EBo9L9e}fsoұLMTphϬ=&o7Z ?` ө'PNy(/\mt,qeA^G$y:D(sﺑ^EdsxNr+ m"<5Q*]3.o044ϧ[G&r~mŠ.:0ִr-u6Jt\kqldK^ùwH}u\O=z?YgO(Glt8D;t3K~('1?͛v}=fyV뤥~/|$> Rg"I*/|$> PG"5V?%,>q~*m|t~)~$HYg> QIT~)~$MvztQ?Yg?()> Rg"I*/|$> Rg"I*;" 򚯴zl"eA?5?3%-σ?Kt:KX-Z ih421;(e S~+gF͕Қ ,9ϒǴŭ U?%+~+כfT C[Mး=]YA[[ݯ}ZAo~*Bʬmlś@^TίoMgq6ȏl~gRC.*r1KV> Rg"H?|σ?DU5'v>3Jo"JGσ?Yg−J3K~($Gσ?Yg−J޼7vϦ"'O|]~)~$HYg> QIT~)~$HYgߴzύya ,5%+~)~$HYg> QIT~)~$HYgid3⊙EJ3nȍ&TYg➏YSIwY=WdnY-s9it \9KWnS2isjۢjޖҾۅYnf>k/=ABg_3DI?|σ?DU5;'v3Moӫki"xJJyoO}slZʚ2\N;ncOtuu+nNͣոDF2>~qyb aK/q]ʁ>䣀c0tdS[c۽yxgfLX/_EN 7k:>hQMżHȗ@=)R]O:WSaD|UEU]M[CDIӱ?ut~˦\18]Cӂ~| jNO*8mj͗qC^ޝ$IruyJruyNcHO6])}|OY=Ca$9})}$IruyJruyIICgRgRRD<JruyCzN ЁɁg%<>R$9?ϼ9?ϼ!O)NO))"HsSJS?( :O09?ϼ!O)NO)%"HsSJH>>?;&T(nHsS+!_gP7Y2cSﭹ69Dc۹#AZ; Qs[X\{2tPz98@ܷIɟϼ?D>rG\ťgv=x۸::rruyU,ȯSӽ&uV[q,%ֵ oU/DIruyJruyNcH>>WӷW߾kgvO09?ϼ!O)NO)%"HsSJH>>򒖿]^|7pg9?ϼ!O)NO)%"HsSJH>>!E9?ϼ?F Hl$9?ϼ9?ϼ!O)NO))"HsSJHE''Y9;O%2|*96Di$O)!"羵; -w1z9G[f+.ɭ9h$H@=E8| .^M$`Z܎c\۝/im9?ϼl$IruyJruyI+[Y_[ﵝxn/nA?%aur; wQӺ;.kF 94O:4@ħ*+7(d;Y'YR}l~}'mx)'y:^D#WW9-fS%[w["Vf]=1A =>9ty*o='zx8x9Lu9Kfd,f>gJ}vRUǚVagk5lw+Gvj"0Y 䳒_NO`Ws8Q:lsj&Cm.莝뺒I$5!ͿDC$I)I$JRI$y? 7 RI$I%)$IHDCge%)$IJI$RI$A?5?3;"jgBJfI$.nU~S{,~[snK\]")ܺ{@-.(N$TgXTg 0\v;oZ $Rk[CZ.q5%ao魧g;1`e"hZS/̛>-ۜk<n:wOg %@VR kz/>*xS>,ߧ²ۂ:?PeE6B^WeVnF>m޶I$XԒI$u};v_"$$I)I$JRI$_?S3E<$I)I$JRI$||$I)I$JRI$EwwDƏYSP|RI$w:/"voq%hJTuNSۛ, kZ45tI$W"0q=Y=OZܫWkN*\=<{^F]Ǥ%>~^GLwCI$\m˺MT֎I^FhG^g07B ^J5Q K (kwʑkK4> =%QSͬe! \N@=7ީN?Ҹ. vEMm_ !:&[1~&>@581wġ10c1<]_+GaO.G \W:oȽ;Kӿ/T#KEZMd{ʰO6]$-^袤Qzw_($^*I)_*2SDj!XCazw'I(;Kӿ/TR/NRKE$ӿ/;EI%5}[c?NSzw_($^*I)_)zwJB]oceƶd i !_)zwIE}JyA`n`+Vu񰻴wzOt5ѸHkX]?N]+ʳqA6ZHCe/l;s8f6.N.+}8E>zo= 국e@s oc`ⱵHD@4G|*HEs:`,?ߺ6yۜ?O Se#le|R^ۄO^袤ċӿ/$!Ί~觫zw_($^*I)_)zwJk@l>wDKE53E<^*I%_)zwJE^袤zw[ i!_)zwIGW3cOuzoY^q.T6Ӯ׸okAkANR?buѽ>̀}CzϣkvwQp!ggZS*{-Cنuu5_FcԸn pNU|l^NN7* ( E^袤G&CX }_Cp8^`쮛^cA6swą[ށ]M/{5I^HhB!iv+oN94Tqp(~\]vKוCzdf㾖}*0 G9VYudUN=%̪쑨N:N@  };Q?Q+\;^QO I# 5G Y=<iӿt!H?KfGAjsD:ylH?Cd<y9I d楳# 5$IfGAj[2?RRDd楳# 5%$Cadۅ..x"8N|?u>̏Ԓ$=lH?IICّ̏Ԕ$=lH?IJgeWcnLr# 5$$IfGAj[2?RJDd楳# 5%$IfGAj[2?RS'TD4ST6C mI Cّ̏Ԓ$=lH?IId楳# 5%$$uCʾ'%# 5W6 4I d楳# 5$Uv>jyC>,߬G0# 5U]gQzj͜f{lBW^~.R Ҿ۫ك }wcF=&먮Q 9ظΟR鹝hX7u"ˈѫ'tޯE,ȡ^avƼ]0q63!yؖQwmuVHX4yi9xL5[ۦu4~}7VlnKeYYM o;9 ӱ?u.gQQm_ܺdm2./L~mI$r!ͿDC$I)I$JRI$y? 7 RI$I%)$IHDCge%)$IJI$RI$A?5?3;"jgBJfI$$I)I$JRU?)Ȓ$I)K>O\Źgn=yGqu[gB+smwQm$[;~rl..)p}߷ I$ĤI%#Wӷ%)$IJI$RI$vPj)%)$IJI$RI$6HD6HԔ$IJI$RI$.ȝ3$42ς̳঒I$$I)I$JEoӫ RI$}k"{7q'̕Qy_ʟ^H 0h$pHd|V?Kڱ v+W\uq*XnR[-8{0JԈ5]RL<ч\Km459uU> {Oi]s؟Q:lsj(6kqCn/Cz*IhGuS&{>4*)pN IwW+Ә$+])U};z%Q۾ҽ$$IwW+JDz^ҽ%$IwW+RQqQ=zHHKwW!.JzJHKwWlgz.J6Y~k !.JzIHKwW!.JzJHE=zgRदT2ς5S#+BDz^ҽ$IwW+RDz^ҽ%-oӫW_eh+BDz^ҽ$\;U䠍[D~0IX'/1wRcffяD2ZRҪr* ߛ«s}= >y]oTجϾſUSl=Nn7Ne-ݙ6.n+ѵݝJ7[k<lݠ67J.~]9޵+[;"di!$v'>SJ36]2d*=K6kD6(TI'1m")n)NXSdNhtoR]-2I)}-2I)}-2I)}B9Ð4RCa8'T[)}-2I)}-2I)}-2I)ut?()}-2I)}-2I)}-2I)g#0Nq@i )&$$$c,&~4;"JKI%/b^{{#O>1p{{ j:1?SgT/pqqKw}M$%$UDIK)n)IK)n)IK)n)IL.{%qJ 3E<$$$6緰"σRR]-2I)}-2I)}-2I)}3;"JZ0HOqC|R[dR[dR[dS ^<܉EIK)n)INGwIecsLW;u;2[n%? ~.YߣG^E1AtX[E=Kqi-XKΛ*''`c654wE]$gznkn5~zkN6$)O(D6rp[UѾmfёMT16W:i/t'h*$OجHj{J &óv[?;"jgBuxİ: .Rn%syЖ! *p`;?KLgU% r; ۞**p`;?KLgQU!?IWE㉃p9عTde3nEi:8!EV.Lg㉃p9*Z)儺h`+,\w8?o{߱<KaEєAZʱ^ENvrW) U% r_`;?F(\! O9Xߌ c,HAVp.Lg㉃p9*6H㉃p9Ϯش]̧=hv̡EV.Lg㉃p9*p`;?Gyά>t`5U% )?8?󑢫{Lrz2`680 %EV2πSe}zɷ G85<v[BP_q0%&óh;pYgk{hLg*㉃p9/q0#EV}_틗VE{F~:8?VP.Lg㉃p9*ܯ$i n]}CE^P_mxhh-c y6%Il~2>7-Il~2>7قzק*@-l?wSSs3m7P,/v@[2NWf=xM\4|ӔG%$ Fq)ӐI$S}5Yqٖ|&1֏ <+33~[x{So7cb27tܫr=[m7A@9X#3: ״5ů1 )cr阸-v vIJ,sDŽ}~1X,?ӹ:i!f~#KðfN[^lx|5HW-οcbQ˙6$md;܅hȩdY F oi 35G^=ٺ< 8!I$J\\CGĘWzm^kn^s\ݬe}T;lc {I*[Ks,ud+s-Rh~H/j ?"HvCh n?#5of+0ߕ_f_[l콕_`0LcQUX^Tl*YnkMGq&mxsZc Kht]h?Dp's%+Nޫ_Jmy5I ofYuhIBI"+8Xu_gY"%ͬU~k4\n*E[X?{/\6^h;fS]u&]mײN?/+?;exu209=IY'"޴q۳sF84qvMgI(tܑx5lgT9^6-uSq!ϪݏspZ;O7?64=,sɻ?Zrـ'aᡮDT$NBI$ctYqfN~S[-p]B[cMLu[e%^6tO:u9ΰNxrG`b/" ws(^mGOU"R]]ݹ ?2!1K+nniς|\oQ÷+$2^jqk7mq!)fWDfu|^QoZ K SK&b݉ak2744:[SC6ז:õDNBI$vvHkXc矹,1e8l,sXvvׄ^~6>cgK躧YM-hU%;߻YMk\k NtWn٩U-nce ;.TSF T\ާ҃,u9]1P}? 4^;Yhxn 4-+eatKlq-M\Lr'Prޟ+oP:j-eOWKUBf;*=BvcU; 9 J$I).xN4sOJoftqj~ nalVomolJ}!s^(~A1t5*˺?Nvm3 nΫ0KmflpgIM B곲K&]4ߤl?4:UO7[Skjk}@7z]S[ ި;S%İ}#*NןAvM@~k{VU= ȧQ1r $JRI$Sv-YrkLxpuڭUv a@| yձۛ{lykz]XH{wܠT}_Q<5[7.ыCƍDa:)뮪Konm{K]tu_) ދ*ʬ2[X{TtP>[ʪ{({\ 8U~zQƭRl5ӹI\|UpZWI$BI$Z>un,x2 8~oϯ܌O+y\k?ݶs\=΁܎P.?h״4l<Yご.?_u}EzjIE2˯>"6]{>%UOe׿gK.?Ԓ*̿ϳH^O}EzjIqS_uR˯>"5$/l|O)e׿F'%UOe׿gK.?Ԓ*̿ϳH^O}EzjIqS_uR˯>"5$/l|O)e׿g^\ET6]{>'?ϳHMI."|.?_uWU>e^O}E/l|?+RK2˯>"6}{bg^\ET6}{bgK.?Ԓ*̿?ϳH^O}EzjIqS_uR˯>"5$/l|?)e׿g^\ET6]{bgK.r1?ϳHMI."|>r1?ϳH^O}EzjIqS_uR˯>"5b\n.{e\Hbִ8{lκ&f"0eID4xl|?)e׿g^Su1 q`rOu4xe^R˯>"5$x/l>"6}bg^\ET6]{>'ϳHMI."|.?_uWU>e^O}E/l>"5$/l>"6}bg^\ET6]{>ϳHMI."|.?_uWU>e^O}E/l|O+RK2˯>"6]{bg^\ET6}{bgK.?Ԓ*̿ϳH^O}EzjIqS_uR˯>"5$/l>"6}bg^\ET6}bgK.r1?ϳHMI."|.?_uWU>e^O}E/l|?+RK2˯>"6]{>%UOe׿gK.?Ԓ*̿#?_}EzjIqS7^;m۱HV6S".%ޤE<鱿Kau?I.$ʨ<鱿Kau?I.$ʨ8yΫ:6:Xwc9`a}; 6}Dl F |g]IF >bs P?g$I*I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)btևT-O>b~rЭž]u5eZ9?$h!t{2 '>p56VU6 cH=`-DF#Rܹ\@r2mI$+I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)0,8ۍmK7iMSe^Uz~QU^CZx>aQ~v]4|܆INK'^g}\<})}@ѽK]G=INK'ZǧKZǧINK'ZǧKZǧINK'ZǧKZǧINK'ZǧKZǧINK'ZǧKZǧINK'ZǧKZǧINK'ZǧKZǧINK'ZçJ~Wޟyɏ%:,CPY hW3)-,WpQa\Cׁ{ 9ȄIR>}K]m"Ýq >.νe?hINK'o֫?t _f=?`.JuY?f=?`._f=?`.JuY?f=?`._f=?`.JuY?f=?`._f=?`.JuY?f=?`._f=?`.JuY?f=?`._f=?`.JuY?f=?`._f=?`.JuY?f=?`._f=?`.JuY?d԰α/ٝng7!%:/7^Ѭmo`^1#˝FCT]CŹ78M~GեF>>-MSS4mu1y5S0>iI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJY_ٗYf/TqfeI%5z~/O:kr⬤JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)zJxj,Ū 'o;Zst玙={o5= ~I4 n)Eџr ueq-Unvlugc*˽0onI3:Fv;2َw ^ݳ=\eX]o}ȮVWv3R3ͤF'x;}Q}QW\Tպ6q/}[fd`eXmk6Ƽ- ޥC\ApUK&;0 zUipmwO1Cb\LbZi txFK>`c7U[Qs^mP:/U?GH$ӑe_gkSP{ u$oV`[[3mvH t %%=J,{-clxkduI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$X=S['̻6{e~[7[Y-ݘΞ:vFI.څc]1?H$`Y]X]e'uO{|X\ $ އzrkCfE5I {I%^I%9W_[iǭ+gѭat2qEص{*chf cZS12Z Αҫ$ *`.S-"ym$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%? endstream endobj 233 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F24 17 0 R /F27 41 0 R /F30 40 0 R /F19 7 0 R >> /XObject << /Im29 220 0 R >> /ProcSet [ /PDF /Text ] >> endobj 241 0 obj << /Length 1615 /Filter /FlateDecode >> stream xڵWKoFWJվm4HrIJ"" IIYl Tq9;;ofϯV'83jņ"bi7w{}e^o^Hf"!L3"\Q]_J)kRi-chP귫畀>͌^v\Ƚ^{ cyT( a}ޭޮg{d4qHmӬ[2S*h },V~U;ryhYW%/ӡڙXlU~z\/*E#ߋn۲ap@(jC7iB4~YmANXA˺3"g@kN32%~:px:8b%bp }¿uC#d`{>B,RCɔ ^qHrLv?WGŽ_kHa/{eܝt'g+%ѲϣⱿO~?k-r9( xRYmvœ#(]>muUf; ݖ{Kp[7Dw"UNұ`/O=2yJ[h-:"AJׇٹZ)>*2$Ɉ@_1%(ܴ {}?m;?vPT6Bu C(Pkz`ЮQ6[Th?C4WYŷVW&Z& F%Y ++T,awH1.}LA/ t ԯpeCIr-ǘ\hg DDO ){{"b9.[.hAtڲ}XWoD/AsE˔1 w,\X;5uV@,!)yzrCe5SY0iJMirIʙ1\ bbI6q?'Xy!#1Qһ't; 4V嗢ihC gO+'ICxSZ^paxD=,6m%nK~x @ġi[x]C޽D5]S./cҟ#@'z|[,p)pр~7}+h!\.Ʈ`ff>9\=^R:dp/b2{12,2C4,xc^)'QHѶGntwsZEK1 ok"p! ̼允|ڷlҷ1aI%I1"틉48xȽp~;NSgׇ:Tg8cRq?v`o3c'Rw# Ar(d3x,nxdOW'_()41ctƶd-l-X?WOL5=mh82dQQ s)1="~`xSl@g|85{Z`B=H2cHhDvrcl@_0ƵjG]heOX endstream endobj 240 0 obj << /Type /Page /Contents 241 0 R /Resources 239 0 R /MediaBox [0 0 595.276 841.89] /Parent 213 0 R >> endobj 238 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/200filter100b.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 242 0 R /BBox [0 0 1000 795] /Resources << /XObject << /Im0 243 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 32 >> stream q 1000 0 0 795 0 0 cm /Im0 Do Q endstream endobj 242 0 obj << /CreationDate (D:20080803232826+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080803232832+02'00') >> endobj 243 0 obj << /Subtype /Image /Length 53965 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 1000 /Height 795 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?T\/GUG*cֹ{ccHtc)WIrk_YR_֟2*-z)?eU/i/,ҩR%ϭfȳJ?eU*SդOi/,ҩ}OagJi.SZs ?_k_YR=ZK_֟2*TOV>0̳J?eU*SդOi/,ҩϭ YeU*SդOi/,ҩ}OagJi.SZs ?_k_YR=ZK_֟2*TOV>0̳J?eU*SդOi/,ҩ}OagJi.SZs ?_l1 |6YR=ZK_֟2*TOV>0̳J?eU*SդOi/,ҩ}OagJi.SZs ?_k_YR=ZK_֟2*TOVgր$ ?C/IfTOV>0̳J?eU*SդOi/,ҩ}OagJi.SZs ?_k_YR=ZK_֟2*TOV>0̳J?eU*SդA3 ?_k_YR=ZK_֟2*TOV>0̳J?eU*SդOi/,ҩ}OagJi.SZs ?_k_YR=ZK_֟2*Y,ҩR%}OagKZs ?TIrk_YR_֟2*)\T0̳JJz)?eU/i/,ҩR%}OagKZs ?TIrk_YRZ0̳JJz)?eU/i/,ҩR%}OagKZs ?TIrk_YR_֟2*)\T0̳JJz)?eU/i/,ҩR%}D)gKZs ?TIrk_YR_֟2*)\T0̳JJz)?eU/i/,ҩR%}OagKZs ?TIrk_YR9ZF_YR=ZKZ/,ҩ}OagJi.SZs ?_k_YR=ZK_֟2*TOV>0̳J?eU*SդOi/,ҩ}OagJi.SZs ?_l1 gJi.SZs ?_k_YR=ZK_֟2*TOV>0̳J?eU*Sդz]vۛf*_WLnk,*TTjKG/T̳JUo$?_u8Y*Ԓ^]oXEcuN-?|59%r<{ԒI)qW ZqH=VmpuLa}i4UY]*V3r=pRR*RIHnr4dJRI%*RIJ$R)I$C?r"OnIL>R)$JRI)RJT)$)JI$J FAo$ҔJT)$)JI$JRI)RJGFg߂GnR7$R)I$JRI%*RIJ$XJ/FIRIT)$+7u+zw/âUjmB(xkl9ďY1=)JI"ĩA?C9?dSRI*$R)I$JRI%*RIK~7RRiJRI%*RIJ$R)I$JRI%"'FIJ$R)I$JRI%*RIJO%~ )jS:?o%*RIJ$R)I$JRI%*PO'TRIJ$R8) )eYxv]UsCm*uYngՕv3-m.macJ=:8yh~EƳZhʺ\ KXnuY sΪkm4TcF#PSOYέSQF6h!fYc FUc٠o !Ue s6؅XNx;FQUX*2!ϥsOkް;$d\!<OkޏBI%T<&f}iWcce.qvhӋ8R Sd@ٛKU-|o{5KlIRB_ԭK]e]i;dq5+BT5+JT5+RT5+RT5+RT<ܚ/j +BZ) x jJ_ԢiJ_ԢjJ_ԢjJ_ԢjJO5@2l Z !E J/jV!E J/jV!E J/jV!E J/jV!E J/jV?rA+sAvmJЙ$(E Jҕ$(E Jԕ$(E Jԕ$(E Jԕ$(~Z(ʽUv2ThJ_ԢiJ_ԢjJ]ee\FUI"cÍFv47 8G=_WB_bJO5B\A$I J/jV!E J/jV!E J/jV!E J/jV!E J/jV)O s&6)!_ԢiJ_ԢjJ_ԢjJ_ԢjJ_ԢjX>?~lB_ԭ RB_ԭ)RB_ԭIRB_ԭIRB_ԭITm(E LAjVT6߂"mm )E Jԕ$(E Jҕ$(E Jԕ$(E Jԕ$(E Jԕ>?/jeý$HQR*HQR*A /jQR>y1W\~3Mnd ki $Hp r F^$~K}ߺV$~K}ߺU+*KDΈВ$ oBJ B[В2H;Жt$Lt% *!6~P֖hi#ऀݴCG %Zdw-~IV$~K}ߺUI}ߺwiAw%Zd<[І[h%6Aw%Zdw-~IV$~K}ߺUI}ߺwiAw%[,ܥ_oZXeh%'I}ߺwiAw%Zdw-~IV$~K}ߺUI}ߺwj(ʥmh:BJ Aw%Zdw-~IVP0\ޥ[@yYwzOQe{[i(4=g!piI}ߺwLK}ߺul tIERAw%Zdw-~IV$~K}ߺUI}ߺwiAw%Z`ЅCRSm$~K}ߺUI}ߺwiAw%Zdw-~IV$~K}ߺU>?[ꃴL"oBJ B[В2H;Жt$Lt% *$ oBJ6|EiUjhca%Zdw-~IV$~K}ߺUI}ߺwiAw%Zd[І]o0t% *$ oBJ~K}ߺU{1;Ӱl,in{u+N M9:8 +T;׌\w~¦F-ޭEIx웧tmM~un=:cIa Lu/hDG; ,Zt/UWv'9n0ਤTXXO$J4qS9_Zh Vguk.ryLQy?Į6˹BVGv\9ƥѯRI%#I$+ dI%)$IJI$RI$<܈ےS*)(GI%)$IJI$RI$I%);I I$I%)$IJI$RI$#)WQmUGVI$IRI$I$$I)I$JCÿQqxw2H I$JI$_ =>,oYuYFpf<&+{f$qdF&u;)$s r39?dS)$$I)I$JRI$I$oo$JRI$I$$I)I$JBFA?Ϗ$$I)I$JRI$I$(RQ;~t6߂"JRI$I$$I)I$JR |U>?$I)I$JRA$J|cL์|v=+fh0kEk EVnuvVܟz"t!%)R>۝}:)*R-b?-b?;>I(ҥV&;|.W1ֆn-a[>tDBBL&11- H N+$ VKҷ"JLoD+$ VKҷ"JLoD+$-y+!6RSm$JzVIIAHoD$JzVIIAHoD$JzVIL?rA 1ReVm쒓[/J)2H>H$[/J)2H>H$[/J%X;Tt>5EHd}+%[%&Iҷ"^Rd,{8ogoJ/Oï!yG|I"@VD✉Dƣݤ}+%[92OY/JW_:) HoD$JzVIIAHoD$JzVIIAHoD HEo;Jm[/J)2H>H$[/J)2H>H$[/J)GTeWӳՍ(Rd}+%[%&Iҷ"^Rd}+%[%&Iҷ"^Re~~l/쒒~ jUX|?J)2H>H$[/J)2H>H$[/J)2 |U/JF=P7H>H$[/J)2Aҷ"^K_`g>Xe,6<~GephBmfṳ6m kOiG֎xŻMv?mn2I(xY۾ӎ 11]b3vwUԛNQo-Hq1mƦ]Unkq_C6u̵۝c TXXO$J4qrcKK /.r}h>I]muGMQ57-) 0Zy$JV%$I) WFA()I$JRI$I$$I)Hy?͹'$URQ菂JRI$I$$I)I$JR w;$I%I$JRI$I$$I)GnR7࣑۔ $I$I%)$IJI$RI$X dI$$I)JNLm }f{UCtsKzYo [dϋ~?FIJI$RI$I%)$IJQ;णow%1mDI%)$IJI$RI$2 |U%&I$RI$I_r.u0?z~W#ǚSOreLVe*I$5ښI$ROkްOkށةĒIF.;7N9iǪ> bޭ?G1`. Uzћ=-p$~Ke߾IAw]%*+*KΈ.$ lIL˿|% )2H;.˿|$ [.!6~Px!$'菂n'w$~Ke߾Jdv]-~IIAw]%&Ie߾w;˿|!5z)!˿|% %2H;.˿|$ [.$ lJL˿|% )GnR7s- t[{ !:H;.˿|$ [.$ lJL˿|% )2H;.w^bcT]~I2H;.˿|$ [.,ޅmU#}͗~UwQ=4[d1&>c{Uy$~Ke߾ gw+`.]Am};|% %2H;.˿|$ [.$ lJL˿|% )0A% XwC$6Aw]$Ie߾w$~Ke߾Rdv]-~IIAw]%(>?v&˿|$ [.S$ lJL˿|% )2H;.˿|$6|]E4 !-ͷফRK< )2H;.˿|$ [.$ lJL˿|% )2 |U-~C-vHm$ lIL˿|% )2H;.w1_`tC*g6u\r03huZbC׎ݢ+k|Z9Y^~(utM.~6旲.)=7tqݸ||qs0+vܫ aG 5GNk%.ljT޼? 뫬w;w$B OkްOkޑةĒIF.O7 Zj/'xw>K\O[>lqnikMMj/fnZ3@!.TI%+I$+ dI%)$IJI$RI$<܈ےS*)(GI%)$IJI$RI$I%);I I$I%)$IJI$RI$#)WQmUGVI$IRI$I$$I)I$JCÿQqxw2H I$JI$b.(2L}W5{<} |H{^,#WiRI$% gr3 )$RI*I$RI$I%)$IJ8ߟF8ߟIII$I%)$IJI$RI$>?FIJI$RI$I%)$IJQ;णow%1mDI%)$IJI$RI$2 |U%&I$RI$I?W\0Wg0EF\Cq"Xē(^lv#txHEHe$'LD%)oDoD\I$iRQP7L*]gױߑ5EJ4.ɐD˃I/b[K$V+x)W9_U5uD+x!2H?eo/ޒS$V+x)2H?eo/ޒ$V+x)2OnQ+x0?zHO_$c4Ǐeo%&IVJd~?z_eo%&IVRd~?z_eo%&Ag%VЛCMl`TUMvZ|tF*[Q?_{z[Q?_{zGbI%TL>V?Į:ˣ.qW ZqH=Vmpӻ. L Rƍ~/TI)ԒI$79_+$$I)I$JRI$I$!6D<ܒWGIF> I)I$JRI$I$$I)H-yd?I$$I)I$JRI$owIFߠJcGm"!~)I$JRI$I$$I)H'TdJLI$$I)I )\"+WVEn^Z\g XWZD58 JYk4h e$Z緬Z締v*}q$QKy@kAq`.v fw֊=c> -prJLٿ$ nKrJLٿ$ nKrJLKrh\79I ~%o$Ir_f[Rd~%o%&Ir_f[Rd~%o%2mU.wƖ$H?f[7ܒS$o/-)2H?f[7ܒ$o/-)2H?f[7ܒÿQJ(" /ٿ$o/-%2H?f[7ܒ aUڄgSnXVKy-ʹO`SIQXBGI Tbaqw_cٿ'1&A%o 6JH-™r_f[Jd~%o%&Ir_f[Rd~%o%&Ir_f[RpKrn" Hmo/-%2H?f[7ܒ$o/-)2H?f[7ܒ$o/-)GTePPDŽ_-!2H?f[7ܒS$o/-)2H?f[7ܒ$o/-)2A?-6cCIxI hm5Z}q f[Rd~%o$Ir_f[Rd~%o%&Ir_f[Rd_f[ x$6A7ܗٿ䒙$-}nII-}nIOwW> bՒVYoGbT􌦴S]&?jʻ7{(R~IG֧Qȫ36uϣ ^ZkZ%?E&э鵷wng@7㚯 õoRWpۅ-cyū1jaiƮEi/?jD oDoD\I$iRzQcwSK]lB/ڏֆaWt}?R=А@. yxKO8)$I$JCwQnr2JRI$I$$I)I$JROnDCm)D|k#ऒI$$I)I$JRI$FAo$$IRI$I$$I)I$JG۔ (6*~ #$I$$IJI$RI$I%!(8;$$I%I$JR=^jsHkmEY?Wp¯!ivMmqРIXB'eRGI$r39?dS)$$I)I$JRI$I$oo$JRI$I$$I)I$JBFA?Ϗ$$I)I$JRI$I$(RQ;~t6߂"JRI$I$$I)I$JR |U>?$I)I$JRA$J|cO+\H]˲6?Sy4kjOkC~ ƴS{Y kK Tcfc_õ9B%)oDoD\I$iR:nN!h'm4ۮK?&A&%ll~dMlp #*q7='z^?x}?gR=be3ޗzԾ_=9E@E=z3ޣzu/%z^?x}?gR=z3ޣzu/)z^?x}?gR=zX[K1q I cCGp3ކ+-_gRS/Q>F~~_zu$KgG_gRS/Q>F~~_zu%2KgG_gRS/Q>"}Bm,6F3ޣzu/%z^?x}?gR=z3ޣzu/)z^?x}?gR=z3ޣzu/)E5[!CTYh%BOQ>F~~_zu$KgG_gRS/Q>F~~_zu%2KgG_gRS/Q>F~~_zu%#{@t7z=,pt E=/Q>F~~_zu$KgG_gRS/Q>SuZls%,}z,<I鬵!}HM<\B 1s>z3ޣzu/lF~rӲHgP sc?x%3ޢqԾ_^?x}zKJe3ޗzԾ_^?x}zKJe3ޗzԾ_^?x}8h$r1,zX8)!?z^?x}?gR=Yz3ޣzu/)z^?x}?gR=z3ޣzu/)z^?x}?gR=GE@44_!z^?x}?gR=Yz3ޣzu/)z^?x}?gR=z3ޣzu/)z4_gTlBX[}Å?Q>*hi-S=z3ޣzu/%z^?x}?gR=z3ޣzu/)z^?x}?gR=zG gP,cHI F~Q=Ԓg/Q>}ILF~3ޣzu/)ee[hЪ?* RyLn5Fޙi̛3۪,qoQ[1s}C<q:4?cM V{gїF7Ok _X!ĞU3:s.1?M+a?okhYKԲ֗7ϊ !K'\oX '\oHTI$Jpcaw \wTv֚@>5Ue m7-{[7=RI$bRI$d⌒I$$I)I$JRI$ۑrJe_%)$$I)I$JRI$I$ |[ !2I$TI$$I)I$JRI$6*~ 9͹J߂H$I*I$RI$I%)$IHqxw2/FII$IRI$zQW{eV#XtZJ X@{a}#mm28&<']I$XԃFA$I$$IJI$RI$I%( ~ ~%&I$RI$I%)$IJI$R2 |U%)$IJI$RI$I%)FߠAƏDCRI$I%)$IJI$RO'T$IJI$R $SeɮaeE Ԓ=x'9  $RR$ | I)K'\oX '\o@TI$J'^_֊O=Ͳ|XcӈH;|$@3r pʥM_#K{|Gއj5~ FRoo_JՍr#UrN>׼itW+U>}?K5ccC$ABoo_J&-z٫K$Roo_J&!B_fBz@IIX}LǬ$>}f/WI#K{|Gއj5~ +T>}f/WI#K{|Gއj5~ +T>zpjC li )#K{|Gއj5~ +T>}f/WI#K{|Gއj5~ +T>}f/WI#K{|Gއj5~ +Ud8ݨR5!_[XLƬ;$>}f/WI#K{|Gއj5~ +T>}f/WI#K{|Gއj5~ +T>}f/WcHoolzjPI#K{|Gއj5~ +T>}f/WI#XV2mY&ǒFUn< ~_;qo5mpkm<٫B3lJJ--z}V[>}g}Mz[>?W٫IZ#C5~ }Mz[>?W٫IZoqGR5E v#C5~ }Mz[>?W٫IZ#C5~ }Mz[>?W٫IZ#C5~ }#oooAlif%$#C5~ }Mz[>?W٫IZ#C5~ }Mz[>?W٫IZvWf5a1%2QNJ&zƒ;){|Gޖ%jV7}oo__f%j{|Gޖ%jV7}oo__f%j{|Gނ\=qK!Ɛ;>}f/WI#K{|Gއj5~ +T>>?WƯRV*.[?4JTɶK{I(ҥ6nUOԺ6u.#Rbliviq0e$$h][// $I$cRյMUPωRfT9$>J_cS>]xz-'i?ThwWөlSQF]! # >~WFJ"$+ftG@`q5Xw0+Q .SϠ.ƴ6亊!}ok!H I$Jr"HS*)(5k.VE\E,{lA:+E1~_[m^X|B Y_onǏv4C$^n-"X;•^Y熒uT0zOv1Q\ $IJAo# |BdI$$IJI$RI$I%#mUr?rAՒI$TI$$I)I$JRI$d^bI$I%)d]÷ ݥ6yBNԙc,<8IZf1d\ WM@ϣPmcYeeӂR[&78fuzN;pa_U02PkWcjpQ[kiw iu3'mg+]O#tt$i\!O_ +fKZ-7k?ƿҰ;gfܶ7XXMvRk|PDl~d\emU67n9{ֳ̭NV׾Ev>CJ$:蘿H3II$R7Q0IITX!*qíOlxh2\ʻyWzV I.c}3ķHn`u|>qkt"@mI%I$JBFA?Ϗ$$I)I$JRI$I$(RQ;~t6߂"JRI$I$$I)I$JR |U>?$I)I$JRA$J|bQchi,nw`KnK+!Է\u経8-b>f>J:&9A5$ )d/dz[ÐPROkްOkށةĒIF.O;:L: Orp_ampMpF F^U}[ct[/i=E`ڇ־S_x)}T~6HֵُafPYoo }3tGKh Rokv3+:C]7GLJֱ}VO,'xBir}w=q4^|CP1_U~%/WΙ?P{KF~eicsvmsT:t_W☁E<*GRU~(GKh +Tj/W≴xGRU~(GKh +Tj/W≴xGTlɬ{#mF6;AJENMmcA<)AžR?WګD<[GIZU~)}M%x?WګD<[GIZU~)}M%x?WrN;$__jh m%jUQ6V__jh x?+'e5 L,[_wkBv>9L.QkW,'D0?q{;.Jn,m ]FWS6=.rM(Y]>3//y'TԳ2_32ݢͰ> ) TXXO$J4qS9_Zh Vguk.ryLQy?Į.T%uݗ&Aq}kI?T  3YzحmrlXdifXq=MG.ЙOaRI$79_+$$I)I$JRI$I$!6D<ܒWGIF> I)I$JRI$I$,{625G6VI*Qi hm,tlƵ:|Ukeuv49AgT =56(mCפ>.Ƶy1L.Ýkl 0KO\$ a$I*I$JJY$ ~fM$TOI+EIQ?:U { U|I7h?rAR7:I$JI$I%)$IJI$R^bÿQ@RI$TI$*ظtY=8jNε]#쌋s-Л)(,c/g$10:Vj?XGX, άٓ*El:64m໹WSFA$I$$IJI$RI$I%( ~ ~%&I$RI$I%)$IM.pCr{W$uuXѓׂ3el<軤hx-pD{A/2kZ̝%:r1n=C=iۅ`8ykmD|R@n!՛X<8\I%)$J[JJY%>WfSp >VdkanVJ6|ȅ ~ %ͷGm"$$I)I$JRI$I$ QO)2I$I$$H$ο%OvK, %\?%3!51ڹ\4I&pZHX`ӽEeX*<$u6cXjo PIJ[Q?_{z[Q?_{zbI%Tjzfe66,cƋW!԰q~ĭ=b/qN_տVx5I~9W?oo]A %Iڧ?isV5moKk|ZW\V4Os &+Ӻ6SsV4s+6%-T\M/s & moKU<9W?ooK7Ik|[[O/[?kSsV5 oװUMu{[n%i;hm&7InѠKk|Zs+_\Mu[ys &9W?oo]F%_7I[Q- j?isV5moKk|Zs+gkEoAu[Z;AZ\f7Qi `fu?:1>1]w5ݴצoKk|w|)e-0D<F1z?&+k|[[p;?!{OhX=S)oz96|Gk|[[pSeohۃ^˜zkTruWo]%ICKϲFQ_k2To 㹍k^-v R8Cts0m4> h3g}] EoZY~ug4Wc}̱cz + 4~\M/s &;#?isV5moKk|Zs+_\Mu[ys &9W?oo]F%_7I[Q- jf}]`trg/9W?oo]3A}"-T\M/s & moKU<9W?ooK7Ik|[[O0pMsW~tNXat^CߒcqVt:>lklO_FPƣ_[?kV<9W?ooBf}]~oAh4Qys &9W?oo]Ak|[[O/[?kSsV4s+6%-T\M/s & moKU<9W?ooK7Ik|[[O/[ШWYs9?k oAh;w7I[Q- j?isV5moKk|Zs+_\Mu[ys &9W?oo]F%_7I[Q- j?3#M6Wݗ8G>U>QKNۚ=;0gV!~ף@{ moJ'1Wai?oGץmoKk|TܾYI TɖM.MYO-ͻIJ\WLc/se6}43# WF*mz>%I+n'Gt[ǵSsp֟Fx7*uk{{CezcuWQ{u1݌E58߫`7QoS?k;tOT6RXg]N6Ak->E R/5[?kuKsV4s+6%-T\M/s & moKU<9W?ooK7Ik|[[O/[}HEoAu[KGO;[?kSsV4s+6%-T\M/s & 3SgF6iZg~}k_%hTWf.lks:n6-vAsqvV}U9>掴6;c[y{txO>=FX͡ς=EcQAƥ K*x7&a9ԹíctNmeyN>ePOgU4ݵVu 4Ȅ-/s=`-/s=#S$*\G\}ja>K\fexZ+bW[cedMlJp #*q6$I$JCwQnr2JRI$I$$I)I$JROnDCm)D|k#ऒI$$I)I$JRI$FAo$$IRI$I$$I)I$JGۖWXY1Z=Mv-\ܥ_o$nUeWz?Si kX;s\6F[kVlw7`U w ?Eh]$II$RI$I%!(8;$$I%I[KA'_k/Olq[H}\s{y4Mt5Ѓ IM9]r~oKQt'oQGL=-4wuxMXLc3/.?I$$I)I$JRI$owIFߠJjf7?o~u쎃ލ#J.׷%u6߂_}MkMTOyB:e%}Rޫ_[eR6:t4AjI$JI$I%)>?III$I%)q}UՇ?aD4]gRϯۓl쭤`&ՂQc%I'ځZu 8 ﵷ4b}Po&I]&ޠ{4]CX~#$rVGT/Fis~Sk#%.XXO$J4qc?Z1#xX.vky@hƪ=T%UFn_Toz?r_i?iJTH~q}㑥)IMKo:_rW9_RBr_i?iJRJr_i?iJRRr_i?iJRRr_i?iJRRr0yRF4{r%g> RI#JRPI#JRI#JRI#JR㐛y·(,?w$+'O9R'O9R'O9R'O9R'O9Rֺ#aiِCGFg߂HDo5x>\d53 {mʩպ{:%د ;@$4(-y}m.kRI.kwSƵ=YCeur@CK')JICK')JJCK')%4'T_rX;R@CK')JIC\cxm S]oYlWeS_i?qBiErr_i?iJRRr_i?iJRRrO+rI I%F$I%F/f3mK )㾸ֲ=lѮf21XGhT՛foS{ec\㧦8[LoUk;?鬻"[1\.Ik$x')iuIo?֗l(o/ lVU8كL<a\Aݫ`!Fn{kj!y-L.wGg9>F'9WƫwG-/s=`-/s=#S$*\n3>^O+Ͳ|X}}iGv/"^ܴgr* crkb.(2L}W5{<} |" z3|8G=_WI$FA$I$$IJI$RI$I%( ~ ~%&I$RI$I%)$IJI$R2 |U%)$IJI$RI$I%)FߠAƏDCR>k!P}V:$50A}UM>Mm!㕮FOԮa٨>N»iPdv(D$E*I$RO'T$IJ\׾WLǰ'gSr?W)=[f . jV4 v3+f D!$+=xYp;]WOb8$I+?ԷzekD|B rXѴS%!P%F$Yz{:&5*Ծz=ls齭fI}eg՞GWŭv܆FؔNڇ/r+,8O(CKC\)JJCB9xV>?KC\)LjxK}q/ͨZ鱮IGYp+aao8Xvu]5Z>I@jjmڇ/r4 +JwWkmumXbW'GJ7֭ rNc^6!XpoFĩoAOuwkhn\z){C&{S&_~-x j;}Qe?oeF#Kۨ 7K̲hicgxKÇ+8YmskIhG[Q?_{z[Q?_{zGbI%TL>V?Į:ˣ.qW ZqH=Vmpӻ. L Rƍ~/TI)ԒI$79_+$$I)I$JRI$I$!6D<ܒWGIF> I)I$JRI$I$$I)H-yd?.[׋^X~!mfe" nq\Պ]̬֯ |?:<+OgwDwm6j;U2+RA$J|aP-6ˌ]gW\pZN˽I%[7O% IhIiZ=R~aoDoD\I$iRzsP}Lj3:˗d<&f}iWcce!+#ӻ.LRhB[Ќt%$=w+⌒B[ЌJC oB2I)t%$;Жt#$Bhe'$ uD4p}+#ऒB[ЌJC oB2I)t%$;Жt#$B]o}ci; oB2I)t%$;Жt#$B[ЌJC oB2I)s,tBv )6*~ )t%$;Жt#$B~CU1'US8f >jM$fڙu;^lj{&UkC\S1>ClԞL!>_'e=+PۆCk>(ZV5O1SJcfKm i%ĝq+oέfC˟Gã=uuotc GYZph3`KtWִ4K}ErK}IHwW8*uUlqqW&`i J"hBGI Tbaqw_c oB2I(w ZvhEm'?-F)$;Жt#$B[ЌJC oB2I)t%$!B֍ΪAJVt%$;Жt#$B[ЌJC oB2I)t%$}Pv]H>?B[ЌJC oB2I)t%$;Жt#$Bi~ ).1 {ХGm"$;Жt#$B[ЌJBxи4_3Q Nn'v19AQ#̌rױA>t.F΃>ۑlp.4<GӺ;l`G5Ô:;;ІX,@2tUGK;A0/3~V.,-pw H;Of}w7{1OwgGUn%5ֈcCGG~\fkG=|J C oB2Ht%\j)>T{l+3n7SܥFNV-/<҃E nrQPoDoD\I$iRzQcwSK]lB/ڏֆaWt}?R=А@. yxKO8)$I$JCwQnr2JRI$I$$I)I$JROnDCm)D|k#ऒI$$I)I$JRI$FAo$$IRI$I$$I)I$JG۔ (6*~ #$I$$IJI$RyI$=Iī^tKotWܯ"dm akDp:/FIAI$IRI$}W5{<} |VO;pm]kǛ\t(D9TcQwcI"Ĥ2OY$$I%I$JRI$I$$I)A())2I$I$$I)I$JRI$QO)I$JRI$I$$I)J6|m$46߂"ͷI$$I)I$JT£gB8صIUU[CoWܬ1V8'T@&I$JI$Ik-3\b?0rӂ$te\(a:xa[ ď6 JB:uVHNBe-ɻ?qIIHOkްOkށةĒIF.UeZq l.M.0&O)^'֊Yt~DE[3rҜ2JMޥ߸>Kp})X~.$>"~һ(!w/Rz2I%w/Rz2I)w/Rz2I)w/Rz2I)wB-,2e'$ x.WGI%!.]FI$.]FI%!.]FI%!.]FI%!.5z8VY !^߸>Kp}$>߸>Kp}$>߸>Kp}$>߸>Kp}$>߸>Kp}$ϴ |TeD3GnR7~.$P~.$~.$~.$~.$CgT_RzX;$>߸>Kp}$>߸>Kp}$>߸>SuWu&Y-CtsKzYo+mm>#~d~Я}l5[A$Rz^߸>bIC]KԻތJC]KԻތJC]KԻތJC]KԻތJB,?*` URz^߸>dJRz^߸>dRRz^߸>dRRz^߸>dRRz^߸>dSTT߸>!w/Rz2I%w/Rz2I)w/Rz2I)w/Rz2I)wF--2*A- l3OwJDIH}Kp}z~ђI(}Kp}z~ђIH}Kp}z~ђIH}Kp}z~ђIH}Kp}ez8VO!^߸>Kp}$>߸>Kp}$>߸>KsFH$㍇ӛy+cn-EIwoms+.NZޏ1ZX$4Oe[)ZlsGu/y6kݹ;sFE[Q?_{z[Q?_{zGbI%T߭8K 6˸]s}\j3:˵eUFn[TozIJĤI%!(79_%)$IJI$RI$I%)'"!6ʿ> J5RIJI$RI$I%)$IJAo# |BdI$$IJI$RI$I%#mUr?rAՒI$TI$$I)I$JRI$d^bI$I%)f.gRYG贕|<S`=>t!( sc{Ua$EH9?ddH)IJI$I%)$IJI$R7Q/Y$&I$JI$I%)$IJI$R2 |U%)$IJI$RI$I%)FߠAƏDPRI$I%)$IJI$RO'T$IJI$R $=^72>y5uepZ5Xkec ;1M4Ip VK=tshlk 7\['}(BK/s=`-/s=#S$*\PZ*A~l\}}iGv/Q{3rќ pʥMS/N)w~Kӻ2I)k,dYӻW9_$!wdJN zw~FI%!wdRN zw~FI%!{- 2BےC2ݣ8O> I)w;|#$Pw~Kӻ2I)w;|#$w~Kӻ2I)w&U~ʶI wdJN zw~FI%!wdRN zw~FI%!wdSZZx!I۴{ y͹J߂HG/N$>߾JC/N$>߾JC/N$;,!5E/FIw;|#$Pw~Kӻ2I)wiՒ]a1pk[Xxq!s]4 z2|8G=_W/N'1!{,e뢶I^߾RI(};|%$ӻ^߾IH};|%$ӻ^߾IH};|!Pxa)!^߾IC/N$>߾JC/N$>߾JjYꁻXӻGTdӻ^߾I(};|%$ӻ^߾IH};|%$ӻ4 AZX!SGm"$>߾IC/N$>߾JC/N$>߾,@ݬr RB;|%$ӻ^߾IH};|% >b4fn' B§"lsm@5o$`q[Y9h=n&`KFkisMMMnyκZ|,p*i1k>+#;5vVAԆFA y u@ VK'\oX '\oHTI$J/ڏֆaWt}?R=PKՉiE|ulL&\K_( $I$JCwQnr2JRI$I$$I)I$JROnDCm)D|k#ऒI$$I)I$JRI$FAg$$IRI$I$$I)I$JG۔ (6*~ #$I$$IJI$RI$I%!(8;$$I%I$JRny Kmxkk*;30+XyM qD Lb#ڮi$s r39?d bE$I%)$IJI$RI$`$IJI$RI$I%)$IHO'TdI%)$IJI$RI$~ J6|S?oBSIJI$RI$I%)$IJA?Ϗ RRdI%)$IJH$IO&mp$y5ueɧIhbcb[ݲOnAkMd}e5_mVp SZ緬Z緤v*}q$QKcE`6bWX}β\wU~o֜rU|e!"@˂802K_5&ۿx%)[nJjw\&tDr2HC m2I%ۿx%$;nۿx#$[nJC .6h%D|R~Km߼I(v-~FI%!w$m߼wdR~Bkm] w$+m߼wdJ~Km߼IHv-~FI%!w$m߼wdSZe۶pO#)WI-~FI$w$m߼wdR~Km߼IHv-FI%5(m;k(n/FIۿx%$;nۿx#$z]1}ϳ煨zQW{eV#XtM5Ze>Mͷ~Km߼NbCWѷs:+h9?dU m1I$w$m߼wdR~Km߼IHv-~FI%!  ݵÕl ~$+m߼wdJ~Km߼IHv-~FI%!w$m߼wdSTT{&ۿx$FIv-~FI$w$m߼wdR~Km߼IHvE5(IH*m T6߂"JC m2I)ۿx%$;nۿx#$[nJCnm i>? m2I%ۿx%$;nm߼ )>ہNS~S=\WW}0r?1rZ?uΓq) W]^?j"-o<*gݯUm 2űޕ2C]<,ܚs@hY j55kIֈ 5E[Q?_{z[Q?_{zGbI%T/4}\j3:˵b<&f}iWcce>HJˀ Ծ5*I$cRI$d )I$JRI$I$$I)Hy?͹'$URMXtI%)$IJI$RI$<2 w$&I$JI$I%)$IJI$R<ܥ_oG#)WIY$I%I$JRI$I$$I)/FA( )$I*I$R|<Pìʰed\FUIHŒBU\{줒I*A# gALRNS$$I)I$JRI$I$o _JLI$$I)I$JRI$I$'Td2JRI$I$$I)I$JRA%~ )ͷGm)$I)I$JRI$I$ QO)2I$I$$NS h ݫ_K]gpnes- N W$RZWG4۬Iov3 y.SKxӃ+sg:׌*^ro̯;'"XJoDoD\I$iR:N(cwSK]lB/ڏֆaWt}?R=А@. yxKO8~?}z2JF:Ca0}$j[Fװn:_wޕWFIaђI4aђITaђITaђIT_*OnIKWGI%RwޗهFI$wޗهFI%RwޗهFI%RwޗهFI%Rwބ&AʶI 0}}~dM!0}}~dU!0}}~dU!0}}~dU!0}}~dU5ww͹J߂Hf/wތI?f/wތJ?f/wތJ?f/wތJ?f/wތJoÿQ@Ca0}$Ca0}$CaбMƫd5Ůxx@k'U6.ɵͮ:HCN9ʥ{wޗهFI9~+۷u*OY$}~?}z1I$wޗهFI%RwޗهFI%RwޗهFI%RwޗهFI%RwޅE{oWهK$iهK$هK$هK$هK$h(n/هH>?)هK$iهK$هK$هK$هQ(I}iFfJDITaђI4aђITaђITaђIT?JʶI 0}}~dM!0}}~dU!0} aђ *UwHk[Mv`\=Yd  c+.M)nNU83$Zx<W_,w%eMS5*UGPe1}" *(cXO p)oDoD\I$iR:/V&Ɨm _]33+X|edMlJp #*q6$I$JCwQnr2JRI$I$$I)I$JROnDCm)D|k#ऒI$$I)I$JRI$FAo$$IRI$I$$I)I$JG۔ (6*~ #$I$$IJI$RI$I%!(8;$$I%I$JRӺ:ls_Y凕mP0\ޥX4< oV$?n|Gqx$,jA# gALRHTI$$I)I$JRI$q?1?)2I$I$$I)I$JRI$QO)I$JRI$I$$I)J6|m$46߂"ͷ঒I$$I)I$JRI$FA?Ϗꤤ$JRI$I8IO+jml?E\pZ1KR^[k|n_Nv; ?wwd/ wInbV-8OnXSJHOkްOkޑةĒIF.7?;EU|eyqS9_Zh Vguk!*V3r=p!K!FIHH~dU5-o:)]d!K!FI%R/$H~dU!1HR1HQIT!Ci'$FrZ=/> I*)}($Ccc$ُBُBJ?f? _f? 2I*(M\79V[ )_f? _f? 2I*)}($Ccc$ُBُBJ?f? _f? 2I*PZf9-y#)WIHdU!1HR1HQIT!K!FI%R/$H~dU5(;D_,^b/$H~dU!1HVoCɷW{|l~aW={:Ϲxkl89ďY1=ُBُBs!1HPo*OY%ccU!1HR1HQIT!K!FI%R/$H~dU!!B5V7RRdU!1HR1HQIT!K!FI%R/$H~dU5 ՍQ~*)}($Ccc$ُBُBJ?f? _f? 2I**6caFߠJP\wcQ~*)}($Ccc$ُBُBJ?f? _f? 2I*(F.w)^iDL ;eHpn'౺^~U7kj~RZ緬Z緤v*}q$QK t¯n~Ѷ{qrcKK /!#Bp@d"e/cIHƾ$װEP.r2J_qKqLJ_qKqLJ_qKqLJ_qKqLJ_qC5ےS6<= )$$$$$&k:II$$$$$7Xy-͹J߂JgI%/I%/I%/I%/I%#DZ(/FIA}-2I)}-2I)}d\Ļݥ6q\t+UTIM9]ri7 Lb#ڮ[dWPI>☤WRS$RS$RS$RS$PsIo[dR[dR[dR[dR[dR3c`w2J_qKqLJ_qKqLJ_qKqLJ_qKqLJ_qQ5m$R4Gm"$$$$$#c`O)>$$qLIOe̶͛W!_T˦Un^ G1&E}>ޟU=J}F^m>U~u]oۙ5Y $*ݎݾ)kjR-b?-b?;>I(ҥffW&%u?y]uk8#7M$oU]⁺Ʉc3"5-֟Ӥpz[ԋI6>W9_7רp !tn#KpzI]$ۇMx-})t<ܧx$MڤuRQaFR&Ix%.m}n#IKpz[R-y]}-#vBtn#KpzI]$ۇMx-})tn#KpzJa۔ (dkvN p$pz[J&Ix%.m}n#IKpz[R,^bD;Q6>I6>Mx-})uCtsKzYo{pz}JΣ]h,{XtM<7Q1I$'I6>Mx-})tn#KpzJ]$ۇGTdG5EpzH]$ۇMx-})tn#KpzJ]Fߠ}}6lvͷAu)#IKpz[R&Ix%.m}n#IKQw\k$&I6>Mx-})tm}ϿSPqB<?2s%rD| pZI$I$-/s=`-/s=S$*\GGFoӄ#ԵvSgYct>oaa-p9 !Ot>oi%AOS..m"_A^aҸΙV&&e/4ǒJ/鿺R}7J󴒠?Mґi@)PS_[0SagUMҸ m m!A *SK}+(Ļ$9V"AOϾ~PRӽ/7VB/ɯ5ոY;*S?Nέ2ϾpΣ}cc_>N~TK}+ŷiPSV0aXIkK/3Dɷ;i#i#J}})Ͼy$>>oMҼ[ EչF?MҌxuܲo/6k 5IZyN9Oa>oMҼKMչڷp ;T.unҕ>>oMҼ$)C*O<6Ue! [mkc0CGO>oMҼ$)Ot>ob]j DCR1X*i]}uoiôBz&l nuU{46UgSȾz\]* {t>ou09Q}nŏik Mҗ鿺W>W+kY_}+ٓmu: P*SK}+ԪW[KxhAOϾ#+mʟI {KIuJ鿺R}7J.-Vnn! * }})=hiį:Iir TVo.s=#WץS!\cIq #"̻ s$AVu}})Ͼy/.Mޟǵ* {tc}j-?nUyltI"܊_V:4%*S֏0봥>oRi!Gd띵.o[KxZO!* }|]'^N,4WՍnYa{$^k  x<)Mҗ鿺WS =yS]nf[D)Mҗ鿺W> )@ Mi--2 cYeN# ē2R>>oMҼ6* }})Ͼpb]ks#|N%AOxf} ?\>pn̵z8~jvn)RB}7J_^~1.5zzcڇT'鿺R}7J* }2ﭘTQVCC-$0¯>o?&keNtEIRD}7J_^vvY-<$4p?MҥW^Ɲ;[+b xhUUy eOyh %AO{ +E;a?tޣmEUs G JC}7J_^zj{ZZC]TR?Mҍ\)a/t/5DǾW*vJ 9-2A^x㸒y&O2T'鿺R}7J󴒠?MҌ߭xo冟Ih՟S:]fw R})Ͼyړ)}$7>>oMҼ$)Ot[pmCCEyLrD)~=ޓ_-+#Xl%2t?E((+~.r]'IE K6wܝ$Vl/lP阸W\spXc F I()y֭>`ڽyל!C1HڌwS0i7:5tCUtΊoQp1?M8ENM?tLXlW5VVΣxNutN6<6GFCG4yy,rzKplGfO -dwV%eZ9%LZ&OtRI$I$$I)gpVNM<܃6 bBԳಬO[.sL6|* .:emhkkx o>玱lѱ˛ _fV^k wn]jd}fkf. #PDn;_)찳B5 YYX]󷻊GUëk.kK 49uQj2_[9nLzQR,mX͞eV@KC;R~tI"$I)[,op OP/dO谇Ҭp\oW?>oc3i W^eP{6Yi>ƶ#@w9ǐEf#⦞$I)I :dۇOH桐Җ<^Գ*cC[[hqob6[mMniiY䌛3X\넵8M=W`VH}Ffۋ1n}os4%Y2*z:0;˭e9ꆪuzQoQO{T>2;0)};qnO~NNV[mf7 ,ZKvVe(-EI$$I)KOatΡV> 1_88t]0ô@젿Znq.|ԟgMnޝʎWPS#*uxk[UtuqmĿa4:%/[S5p=ܯAh Cd.o+:ޯhcy oѫ0uTO JaBΉ{ l5PD4c wSXl2K!I$*RI$nhPκz .2W0 ܵzlVdYg]Xy?!4zC;DٕYkW*Gpzetsu6G *R9C]ZZnPOҺִ'0ױ7de}bm/ukgk]"$B]q}R's`&>%8!I$JRI$>qC&-c>se9.qiʩ 0L:mNF1LΩSѼ:oC'-7z> k@׻wGCc[/ĵCa,zX{=61y:c\ !BPbh9'SվuN[[ZZ9qb~zmXWWc=6cI$$I)KCLL =ZYeՐ2d)ޡvgO4ٲxOX5hqmxKZ-N[ֺ=Ekul^e{̴vM Enu}f^eٽܵ쎍h`!+/;>z0h}8PˋwawhINKϾGUd7稱K^ͿXX+kN,lv>CݹĒO$HI$JR˷t'c< -h*1X^|;(0WT45NJf5xCksnͬ{v7B6}Xp(tKk oW10ZXxhBѺS^{/m6hnT9c~lsGUձ0ROCX:Xw`^vv6 kk($HI$JRI$I$-zwQ9E¨nOQwӳ1C xhvFɶ9籧gO@v܏LX+G؇O|K9. y'JGn_[ {gG0u11c[|_Mc۰÷WR-ʙ&m;q>%+*v,_AFX$I)I$JR*ol}PqPAIDKc]`'{ysޠegStHk@.{OS$^qJi^qJkz&emxn$|FKړ,rQ E]n_&&q$x|buWKbuW^\ET_&_&q$?ֿ/ _M/ֿ/ _MzIqS___Ē*'Z%4/Z%5%UO^qJi^qJkK#kk׮$U>G1z+ɥ1:+ɯ\I."|buWKbuW^\ET_&_&q$?ֿ/ _M// _MzIqS___Ē*/[%4/Z%5%UONqJiNqJkK#kk׮$U>G1:+ɥ1:+ɯ\I."|bWKbW^\ET&_&q$?ֿ/ _M/ֿ/ _MzIqS___Ē*'Z%4'Z%5%UONqJi^qJkK#kk׮$U>G1z+ɥ1z+ɯ\I."|bWKbuW^\ET_&_&q$?ֿ/ _M/ֿ/ _MzMg6liv˶YC+cfU漃ݯC 'FLxNR1hq____l6ǹG<Ӹi?ֿ/ _M/ֿ/ _MzIqS___Ē*/Z%4'Z%5%UONqJiNqJkK#kk׮$U>G1z+ɥ1z+ɯ\I."|bWKbW^\ET_&&q$?ֿ/ _M/ֿ/ _MzIqS___Ē*'Z%4'Z%5%UO^qJi^qJkK#ok׮$U>G1z+ɥ1:+ɯ\I."|buWKbuW^\ET_&_&q$?ֿ/ _M/ֿ/ _MzIqS___Ē*/Z%4/Z%5%UO^qJiNqJkK#kk׮$U>G1:+ɥ1:+ɯ\I."|buWKbuW^\ET_&_&q$?ֿ/ _M/ֿ/ _MzIqS___Ē*/Z%4^G_Ē(S-ofU^\eT?Iq$%$ʸ_6=WgI/?6䗤W Gl-/W:}7]N7tdӬ.fe/kK7ku{ "O t-S,1z{/&8kf peoB5Wc2 r. Z>&A'ⴰM\b\qP ȑ_dLxc{P#]deNI)jI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$;6KX$_ k :rek{{5->j^,{^%l3VeY&CԹݭh󒡙$mc:=HG }M|4trkͥTehsOEYW{_Oǰ˘vĸRĒ;֭<ь2N0nUӲ艍^eUQ %%I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ@mtw.k@q.3+~CZʛI}!*H"nI!I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)3&cC5+ Imv̊{V<vi$"zY/~a}1hn-eŎR£92߹'\ovuNuD|68%=*K:Q;3$##&t}GoE%=RK?wKddQE%=ZK?wKddQE%=ZK?wKddQE%=ZK?wKddQE%=ZK?wKddQE%=ZK?wKddQE%=ZK?wKddQE%=ZK?wKddQE%=ZK?wKddQE%=ZK?wKef7Vu}RSդO*֮g}kkd_AW7>*Umw'))I3 &ԒieYcGc%~5b4rm6㶟Ȝt_*ŵbaI.PQw*{c>I:))\˾n_#'.?))\˾n_#'.?))\˾n_#'.?))\˾n_#'.?))\˾n_#'.?))\˾n_#'.?))\˾n_#'.?))\˾n_#'.?))\˾n_#'.?))\˾n_M IOVgu ɪ%`ugY.3cw 'B*x6%4Xn5t{l,vVe}K}Zэ\4;?I쎦SCX8@ I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,o~]!}m>-x~EJ|VyVt{߅[vn,4}(quMT#I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI&$%%.ƳGvm[qEvւ>FcX6ĵ8})IP똝=m{DWUxJdhapk>E%7+ztёk ^6d|u^kXypý\XItn摸V})Fw :4@%x$u,~ֻ"kFske>@*?X:ƪ.hU}6kZ<%:Jw]FFCek+d睭1=ES0Y``q hԹ?ֶ\󯮹XYw[[Eu7h6zG%>I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$([.c54B*I$Ů _X khvƛ/'#uŚs~*|l' ܢ}~o:Diy]I ߕp ummᕰ2Oro_ӝp9]ZoձRzWN뵲Xi~M1«]025:V,~oMϻlv{ H}N8*Cw .iC۱ߞ1sT}/#'EokӨEԱj}*=@n繹2⺟?W6LNqWi3;7U[[KK*a.`]p\aNPXu9F8op?SkGV[YYxs> /XObject << /Im30 238 0 R >> /ProcSet [ /PDF /Text ] >> endobj 247 0 obj << /Length 2296 /Filter /FlateDecode >> stream xYYo~ׯ e9}6 kgkA(%1!gy ߞn#A bu_Uq^]y'(cY*&:e\Ȉ%v7w/VJ6MMS_~#lHfew_{FTr9=͖Æ}1M|Ӗ.LsCO|mJh9K~=x%9sMRx]y3i^U]KrP&k܅3D|oRA3.dlUU-`m:+S)7̈.m\HȞЮG=\t*l 3)cpRΦ B^/a< mLӪǤ/ @Ec+=E t sQsF>X}]3euS~6?PWDnU,W,TjNbLc"5Jܑm7›ɣo(~vFwJU$UYG:Xx㏭W|^W}2hT{|i;r?AoK'm_12 $-?&aJ\Wu8樯ǯXx ng:8"\AFOPLq5BkiOTT(llRbV85D'_&603+;1yTRH \D"DX\SK厝J#zw]ʩ+uX5%Y;C}ix 7Y x70pRo(4;Q$#ry$Q,avyCs1@§A}} )SEW#`NVwNUy%U! 3z~6FS& )H1,9^B,_kV@k9K L_WcI &44XT !|H)e^6'I,+6Yy᳇4 g8ZrWe"|N& !2WOz~U#~I,3WkljV%M8E+T2+"HLd9`Q%V?,):s8*f\T~L 蚴 ~lTӊAy4F=՘Xם}ђ_ZR.,$m&IbBՐ?eFjt-.-"p!y]+dj4;J"' YxFx(p.@LR3W Q7q}od#[bסˤw×|C],:BZ? endstream endobj 246 0 obj << /Type /Page /Contents 247 0 R /Resources 245 0 R /MediaBox [0 0 595.276 841.89] /Parent 213 0 R >> endobj 244 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/UniversalPitch.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 248 0 R /BBox [0 0 367 188] /Resources << /XObject << /Im0 249 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 367 0 0 188 0 0 cm /Im0 Do Q endstream endobj 248 0 obj << /CreationDate (D:20080804154740+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080804154800+02'00') >> endobj 249 0 obj << /Subtype /Image /Length 9392 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 367 /Height 188 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,o"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?T@ιY}U>KZ\&II@|[S20ȹ;qwhŹ`,5eu2Ki&7Дi.r䛅[)`ٓҙGv3~Mo{65aL$Iq_X:nnNSj?NΥFH7dc7U6%]-܆b&C1/e`VǻUgMLu/q`IOPq Yc1]e]f5,s\ 95Ikk%,j+3n:rJ]$ G 36%s3Ƕ68}ny%'IAT1%MM;RRTdsMN.z~ w64 wK^#ʒ$HXU ٜ,۪u}ڜnwIIAn#WX,~lL (.oOi>;wi%3I[]u~&צmLgf<~D% EőK^?gQ eYbJJfw&=ӷvZ'nK=wm% ¸u{K:7SʜRtnfc8ơ~"~E7 P4[ZKgx?S4nSgWguGu(YuBѦGaRtmhc:G=*Edd=tƖ򤤉 V`6Ss"{>eueei)2J]AsMHl1 [mv64^$k3Kɢژ93"Z.5.kip4=%3I 4=ƶGu(g֫;}'nPAĿi 4яeRݯʰ]qw<2A쩣OdRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$U,[ce6IM_Sz?:^StIU:ǣu?GIM_Sz?:^StIU:ǣl{r]A/t]qSy$IJCǥWKjckiIkɵʪ{9i m/$R8-}uZe4FM ik(97 ~cPەk|I~t7Z4*~)vZ*1ri}S}@:ƹFH}c;lii 80V Dz7öW[l {ǦT]% ;X˳o =wѸN"x(ȝhX7#9+`~?G^>+URfHkOC#SG^?Ο!6p|3PIKʮ"}W3膀^F| (Y=s,3!OX ac`5ssӗ'dȶߺ)!ImǖOk; /xxf6m%͡Z?jz_Q~x}fW_oGm "Pv: uBL Ah2CPE]7 _J]WK9..%{i$I @¥tcen#kCL}7?#>1$IJB˿츷d6N]*le9ItJHI$r_꺅{>P&?Gf&(+F8Z&2.C^5_M/r>55̤#{}s[l#oW\I{Xr?`W?ޗ^5_M/r>55̤#{}s[l#oW\I{Xr?`W?ޗ^5_M/r>55̤#{}?[/ |opv= \7Ԭ ?xmk)$M\^gҫ/oCf_E^Lgə9y2/07I%eI$s]/69. 0>))T̛HN;I cRھ,y[]oCȍǝ@^s:6-_s/_c_%i%#}ruf5>~Oօ?TϮ{tezp:G'n8;k_PsmkDhZv%M%5 Ϯ;cCbP9hNRIhwFvOF1#o v<BQWU[UlL%JJ9"dzYcRjR^gt5|)u_/3 P [I$HRWu5Ni$iDBŠccSMm;gIIRI$ _\Sl.i~Kjcla4Tsp12+Ƨ}U=%$$E c;`};U`_#I1} uP?Bk$w >o܏:M,uX1s I%O0ֈǀ?Q:fg6zeNޛ SVWpn쌻6[5Pw,Qݾb XWve66nePjKnkY{8:ZdQ' \LW_[/YSzemAsg9@2>V(u}9]8r 7 Ls*ƪ%7o7ai! ΍+62~폦ڭ7Yumsѩ}U>C+]Pt3}}6(;c]Lj:zMn>1v}պU3jmփno(*(WUVyحɡ=Wf1YY{^8{O؄*7P}XʝFqکc">f;:{L[zKuet_}U7"\mkmp5qK:n+cr"暽1h}< z 7n0Z*緢uWRo!vD0؞ugvFWٞ+m;*qǬk훾Z61eRdV}TC!<-n{-\z n31-#P^Iwk;yIHoo勩\»=Q[Ch'M/Zܳr|Ht~M_};U`Q'a4UP^gҫ/oCeuv,}Wqw$"DlHAr?E@߹E@߹x=P:rpi$IJU=_z_Ehݺ{ʰxƫ%h$JRUU6[~ϑ>$dD,>Ӌv1;}j^cp-%%I$So܏w77o?A߼|>Ûq1ܵs7Ûq1ܗs=;"d)#}7c/{w%cURFoǷr_aJp=oÛq1ܕT{!I9}7c+¨}[cbW/.cƖ8nA]Bo#)U_^ҫҿ?/WCSW+y^+JU?C'P·";w7}nol/ YqֹkA?#Ks|G޾pI_}?GoK?_z>7}W޿c~:} :n;d~E^ dŗݽ*[7}Tr,rтYzqb#Z_NL@tSs|Gޖ|?_?s|Gޖ|_s~WK9|>ϫ\qlc6jWwҶeŗݽ*]DIBȤ:*k[CFO>uk@))I$*d'׷nvwa &cےKic rCAwIIRI$X`q=ʏ1ѷFI%!&76}~dRcoܗ1ѷFI%!&76}~dRcoܗ1ѷFI%!&76}~dS ꮩ<šI$*+K5ZUzWjJWT3-E$'}`kn= m,ptsкֱ诤u;[eoxhwǘD>ONg_^ [WV`GtҔw7Kva?>V6]@yf!#d`_5ՓgndQcNF{Le7]79mf͏sH{<R[}?ct\]__}51ektk] :Ep[҆^1}k+2疇AT9}G@׍#9)-~ ueaU2ִ뫺Ap62]V'PXdY,uM49x.! lLskh@BBVExƜEϫz?P2[~Qq~Wy}SM}[%TdaUu*wa-??ǚĹ=o]F<d5b>$ lwYO)4PNg|l&t[m?Xݴ;+ `^?:D{i~,<;_-.pn4^s dzۚj+O3km[%DnӉޯmc7SmvMƴK ۦ}#4?yɢΡ1m\}W/sYQanqcJ~s>/u.m\ :cQk3jBMyM-=ږG ܿaJespxTi$]pp񪺺8@kKyU$,\(fM;v oV5RR陵EB֖:4 "Sɢ/.i%6I$I%)$IJI$RI$I%)$IJI$Rv[hƢگ1Ѱk@:-SW?-,n /B0icKFDqonF;0l|U.i"99Xe\jy1ixA%@;s#b9f,;V?eӗj 2+xw#ӁWc2/䵮hʟ^Ŷx6t:F H$unq(enek +CZ]&7{v6u\q^ְ11,{C\Kv ܶvubݽcc#Թk]cNĠddݕ`osY]@ʘژ44 ,ʗ]K_>/@sC25Ν5s鰼q "O} ?ܿ?yK~a\ɻ*m沺=10h `\455wasÐ[i;$׳ݷgUηa=5k ,s+}DZD5 @^led{Z7=HvGiT;Y'H_=:GG~69_7I%Q_cTٍ[km ¯ kn3c'Iqh%%6I$ݍ~K@.#! l9m>= )"I$I$$I)I$JRI$I$$I)I$JRI$u<{2n^%Q_E3vsZ'VRH6.YZݴ1!#=/s S'hxmj9tO_v6YvKoW/gI/hxmj9tO_v6Yv^Ҫ}8`1G[I3&ie*Ӳb;Pf;7[S\Oqim&4ײ<|5uOrW6YvKoW/gI?y<>şv6YvKoW/gI/hxmj96ՃMo?i$̙eN8RI$^:.fEW;-c^$OވKqa%1Hh'III$ YʞɂcsHjQIH)˪cm'UhJʩ~Ƕb}XsJaeUźkkF'y+}|zlEwNm->ͱ*w^s&?F~DS e9׆:)6Owk{IHnʪD,}lrZ7FnF4Rr`OU55aʹݴtR;e &=sƸM콥#YkJ"I)sium$hoś+kǏPXwLzu<}6RILsW`,s]˪cm'UhGI% .eV<8">WW 5sCAw঒JEFEy؟Rχʉͤ[ۺvȦͱ($w^s&?F~Z˙qcxiSI% 6+cm}6ieUC^ "GU9$gCH>PNUw6@UecﱍFI% 65;^5SB2oxq95${K1F>X֕= wN4?,_^>PXwLzu<}6sW&5!;SI% .߱}VV>+IUc8#>WW9!Q"ޘm+}|zl[g[n"Kg~ru졡 akIH鹗{?4Οہ6ù&URI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S endstream endobj 245 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F51 33 0 R /F54 39 0 R /F21 16 0 R /F27 41 0 R /F28 49 0 R /F30 40 0 R >> /XObject << /Im31 244 0 R >> /ProcSet [ /PDF /Text ] >> endobj 252 0 obj << /Length 2514 /Filter /FlateDecode >> stream xZ[o~  f~i-vmc(y`$,:$ )R]l'޼Cr4s;g⇟l(qԱ*3(f3f}./?i\DnqJށ;? . N`%짦ωal$tC0ZLvuL-OQi";GQ5jP(q֢wj<ύ~ᝂ#A@$F/:6F/bc*?4&s3}J9p@pVm"o}ԿǼBt**7XWPlMM*oD$'^U6MQ'8ł;C#Rʜa~p:M!#ެG턛%hu |#+YQB!;٬ ̬x[o lZM(!܇ַexn>]m,dI9OĦAAW^DZG+pz>o}4 zvw΁tw>@"$fΫJc}]6cv.$^{^ln7W 0]rmS8f]w:uľ{ԙx0/R&%3ex4đ ~K((%Ϋ1jc"u`>ιyV걇sC +&P_3VݨUAw09a0L;nzXj-eٸ`?Px1ٍ]@sk=$. g~1/$gƇ݆%?<%q" sװ܉~p(˚@= uCmzi2XTsK)&Q! u4I(~|>-ea?/3 wR,ܴ٧#xBj6^H.!4>/AP9B's kt4ϺI`$̺EơW`}x; @a74g]p-c?]cu2}B*_Ezod" %((HixD B҅-Q(tp(c\ډqd_>43V9L$ۘa1Ⱥ6bOo*mPA΂-y19a*<ږxLmYA.MqU ([ endstream endobj 251 0 obj << /Type /Page /Contents 252 0 R /Resources 250 0 R /MediaBox [0 0 595.276 841.89] /Parent 253 0 R >> endobj 250 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F19 7 0 R /F30 40 0 R /F27 41 0 R /F28 49 0 R /F33 42 0 R /F25 48 0 R >> /ProcSet [ /PDF /Text ] >> endobj 257 0 obj << /Length 2007 /Filter /FlateDecode >> stream xXK6ϯ,4%q {FX,l4ݜiV[Rg2[Ţ@O6 'QdX/~Q]]<{)y晷fW70 UdNz}]m؇vVJr꫺Wi^ [|g{viqR%\puB$doͼf=϶xq&>S`/?]|1|ffڵ 6tfe_5Z[77dtSeFek$%\)Mq×6K͂&ˌ0hd~y.S|aUG*wPC~LCaw:ָVMdzf$sKdZ2#>Ffk,y%oOQI>' Nzߜ<[WiMԋ|Zv%E(. `j $r%]NԖ7/h=V/w\І&'ʼ:M>`^Q}۟``-VkV S'L1ͩ%l^aX 'G,՘xж *ΏUv }i%=WSY4y 8(aQ|{1|Ű3Z. np?&9X7.{@Q\ml@/MAT]** jh RqT8 }3HK_bpľ:Z1,9szyO$ϛJ1x ϻԏ1 uP=NB+];ԧ=s|c4` Ͼ'էM1&kNה[!XՃT;{М1Y4x&OmG 5!Z ). ΌFF8.ߥgЍ_4փtQqL}YݞbIkK&s(W4GHVGFBLLV-\?|N(M@Z[F<uW4C{\T=5P m*^bK ZMTmRKTP#Lj(y]]%IvXW[l>(ֵ<){5̼l_TsؐM 2a" >>aS#P5 |e"HLD^ GcBq7a+LRC:_{鿡u8YvfRCp7l*$nފ-r-{䋄3"eԌHfF!bI/ ދ>`a /fVBJ1Ov6aHHؑ^h(wzfCKzY'0\!3 %MmZ0LE-7<# ˜2B͒l/\|n'= E: υr\h`B=bTeu_/@[V kLb+ҥrdʁenPbͦ5Pc)2}$Ct ٹt% 0!s? ACuY$2yS6";! uB 6lZ-7 ҐI]Sq܈Tqn. N!Y9<'H< 9:Ig , UO);NQAgzp+ǫ\s"Q6N87ř0[4u f8t_F4T1K?|8CS_A2㱍5{vsYƉV"WJ n_u$d]O3I0 eMO:tɤ\HspN endstream endobj 256 0 obj << /Type /Page /Contents 257 0 R /Resources 255 0 R /MediaBox [0 0 595.276 841.89] /Parent 253 0 R >> endobj 254 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/RelativeError.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 258 0 R /BBox [0 0 553 453] /Resources << /XObject << /Im0 259 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 553 0 0 453 0 0 cm /Im0 Do Q endstream endobj 258 0 obj << /CreationDate (D:20080805171623+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080805171646+02'00') >> endobj 259 0 obj << /Subtype /Image /Length 62574 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 553 /Height 453 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,)"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$r]Me=X hniή )2KzOJkzj4QeP .mOtV!Lh9zV}UORwqz91U;){5ܔ,ϫ[Jeַm<YKé !&e }'"_C3ևc:~kK\ X $/NC?^7;yRS;Pnw9zwINK}'"_C3ևc:~kK\ X /ӿ*JuX}k8>ٝUU4Zֵ\8)^7;yRSǻ_IǩꪩXֵ9Kr=Cqʒd9[kh,{+=?7s`~!+z}Ϊ_ekZ.sq`Sǻ_IǩꪩXֵ9+z}Ϊ_ekZ.sq`SǷ_I3:5pc'94־[AfpsY87 )Id^7;yR;PnwY%9zwKr=Cqʒd9[kh,{+=?7s`~!Kr=CqʒdOzsD}k.gXֽypk~0KOzsD}k.gXֽypk~0KOzsF}'"_C3ևc:~kK\ X $־]@fqkXח)}%ֺk׾w5. qof cRSZKu5}ck^\߲Gϭ}&XٜR5?481t;^a%O־S/kC뱝?5s\%k,Bzs%:,ӿ*_T$/NC?4k92mV>\5Zb$a%9zwQ_IǩꪩXֵ9%; ,ӿ*ZN=OgUUM/ֵh98 )Id^7;yTO־[AfpsY87 )Ic[Kւ1˜W}k8>ٝUU4Zֵ\8$a%w־SyUSK?5kZ%s,Vk4>gV9?5 cd8撝9[kh,{+=?7s`~!Kr=CqʒdOzs/ӿ*JuY?U_#GٕAhi"dKtxH1 vR$Χ0=:n=-s ,swƵ5 H"*I$RI$I%)$IJAvS(sl L:%$]#cnexlnW[o{YfӌY1tlw:yX3+4VCW1EeE(;1NI)KU,Yqs{u^ߪ;|cPP>iW6lk}%;;Y~?,\zTwksc_Uw<4a`1.=W)Sok?uÒgSiUn4_ OII񨢜j뮶5ch0ִۤMU?_ OKiUn4&.ƶc:kADgSiUn4_ OIIhki9c0AݤMU?_ OKiUn4PrYqcXˀhɢꫲ潎ÚAvP?_ OYXt ^VLƾ ӏ]olc4ÚD )ɢꫲ潎ÚAvRɢꫲ潎ÚAvQmo{N8)Z?`KqRR,(j:^[\+ɥ_%Y)=[8$[V,.~%-amgr&;ԉmHgr[Y"[?R$UfƱk!5"mgrrҷgv{?R${Y(/UXc\@kM;ԊwϢ7˿RY(/UXc\@kM;ԊwϢ7˿RYEUM5W]ucA +?R(T3aCqR&@}ªŎcKZl- IP2_pcƹ֛ AqCJeEoח$W{,-~%"m *X1d{~YsUmuys1k@7Y[yw"LoeKH= +uش6W[XHv$x+Yj"JGamgr&;ԉmHgr5SU4]uƵmրtmHSDe5`IKmgrM]m7U]5u;mHkDeu/aIKmgrM]m7U]5u;mHkDeu/aIKmgrUfƱk!5+?R(>߯-IH(m> nc{BY4Qv5UvWcױs\ -e_??:0Y4Qv5UvWcױs\ YQma[[u71{NÀ!_#•e_??SF'?b_N.M.o.GIgrrҷgv{?R${Y~?*Str:XXP!d!vI4~{tF#m5ϟ'ˬJtu֮Oٱ^~qxVgqqiw"6gŧGXvG\\[15M2d+U_EUr=N <%t@̭ n9MQoc?F?֯i=!4cB%?4NUW00z}F zksPC'Hb)hN_5AoX4`WasX,~=͠i5z2^tV2phvVmQ\o!\asW^sl{sFWXS^@{*v<H}tYTّC1^苩 /ltWk5VĵEv:wP˵/uxWkA&$l+#׉fo٫}11.{{}v;K lefWfp>5.vU+p8NoRl2ysoWTM]O.qIJ8?޳G}-JVѫ9߼<57h}~s[撙oJ7^<_{Iz,$zoJ7^<_{Iz,$z*~ҿoE@Y]]oJWPp[SYP7p}s]撙oJ[gQE|]?E/=%S}g wo;i)Pk>h6UOgwIBi˵h))Bzu) 8z-*o.-x!S}g wo;i)Bzu)W[YGwu) 8K9.J]f߼oJU5Y=A~ҿoEBi˵h*~<_{I)^ҿoE/M_7"^<_{I)^ҿoEBiѠU?E/=% ji.գ8v~ҿoEB)>ӡU?E/=% h.ѧ8~ҿoEB)>ӡU?E/=% h.ѧ8~ҿoE@Ywv%OgwI@Y]]oJU4~›:Jښ5wo;WTM]O.qIJ l>vU+kph#(=K#YxaZ N3eu;gVƲ׽ʹ7tXᱯph$WO,1Nhd~W988fx1 gM;/(5"o8j}S~];3k}6 v}2lyeO;rۗ-B5ߣk+hw]`?ճ@5`ݔI>=k%Q_MiÏNc81(GɿZkxͰgű:ak|mv~j1ovORs[ꃉ8y ggwIQ4uM][9;ڄ8DEY߮ǫ\0r>>u "rc""m۩cAs\AAPt*/ *sX擼7!Vg\\1󝺈s{d =4[ٲj6`k %=o5tRDqS$XqF4>1s9flk'?JOI},.-;1sCsr9̙[RI$I$$I)I$JRI( u=5}`k˃\[Gi*[eY~U\zcfñq*o,*o\n׃[[5{lZ!Ox: n5VEW]a㽡\V͕3ۤVO?Jo7R #uIwA8OFz+{+gmn59>mf&7 8GT?`t/+ȫ8xU,cKako.S'h&cуw]`6ˋG{yXYWEq۞+cdsI}_9yͱmnu_h~~U`UNEy3`;#yeSfE{.0A]]׍ZQXhC.ִ] 8zU^%fCX))IOͮo3l6jb'OdGo{V7w2Jt›:J)>ӡU;_şwIL->kw;_owgSR?ϳIJs)zoJDR?M_7"DI% 5h]ſSs)G~V"$~ҿoE@VYwn% >7%+WȨ 8z-䣡FWzoJ kq8{FoQb7$zu) 8z-䩏FW?^ 8z-]ng!䩏FW_ӷ)5Y=A~ҿoE*?)KWȢ$oJ kq8{FoQb7$zoJ p8NoQb;$zoJ p8NoQb;$zoJ[fQE|[>tvG}|@;.s\>dtE6}wCZE%hxD\v:n_1.@9|#S??M8wSn:CZ:hs1:.v߬X>g324ߛQ.$j~g:GwQúsr; ߹ėn=Z=uxVZ X24YV2d<j?6j:6>O=k6,P%p"|az;GR^vwP'{=u.iqc #M }2WK#6hU`&Xvnufs~5aV@й6cxXr_%c ">aGR?7.\Y%R #0|ID֒1[IϰjKNZ6Yhݡp-{Ni؉D_`~kg.8k2Ouuv;DxtW mq0-Ag0Y1J?Pem/{ZVMw0KN{HtΩGo/TA(,-ܹq mUρvoΫ_}$G @EFX0; .vV괲wgSm[v`qz3r1] F c->*8N2}S5K:lhI@~8=q1*?UK} u3rs5[ 'w:e-d%$I)I$JRI$I$.g ~L\ 'ԪfMvdnk ƈ/;$/#Lޟ۱X>Cz^^w r^պnOL(.Scۿcx,o8jRWS+}hk~ .7FY=ZʟMTԅo zV6,g`H]׷N_.:nk͛+?l~IKtzoStu,l;][y7,%;>Oت"[?R$=?b҉Ϫs*(H;ԉ);>Oت_\J+7LX}P=vSCv}U˞TDg_OW-o{N8*{?R$=?b҉Ϫs*(Z?`KqTIMW.zSg/=;Wo7eTWc0ּJ-+}}i^[iԾG%0MiyMiyo{N8)Z?`KqRS =M|GR$oeNGo/>߯-IKIoA)?"mH;ԉ):&;ԉmH}F]]2'u忥oϢ7IHη wo[6;ԊwϢ7˿Rq[QweoEһgn)i?(Okp|<?R(T3aCqSOk:&RweL7Y[yw"AwϢ7˿SOk:&Ra;w|0һgn1=}.Ky"JaY>=>íl)IoA=M=h>OoDO? IoAoDIHη Y>=>íl#mHszHUFT絻X\>M.: H@+Yc#` q[Bȫ˲,kDDOu̻?]}Uz}46c>>̰![BUk/]f.7&we`^/ɯfL7V\ieVGQ寫Km* t[Bʼe<LNr"3a'<ΤkX VM=z7#'ϗ Y[meW٨}y T\<8!R\^_T3պlvn-5_mfznKG!Yw7/sQmT:F=cw3jX'NO1XW8+./-ܗz_heY.p˽ģ])oj]\zn }5m|=טӛTY-?bDү_ b0>q єXf_Qc y# otM%gָnQUN;6t |g;Ϊ_I.Y-s %us\k-'ԧoYNMYg`NfIZcot%nEhXI$$I)I$JRI$I$$I)K?ӽ٨=oFFޗv{<H=UWM,U?ubK6h))/E9q%7???"_g 8R/IN1GJ iDKTg zORvR8S/Fk@f|?7??K|zǚD7z6KZ0U9q$'[mwI[zORvR8S&Y~qoR-hLÏRS }/INGi[zORvR8S-hLÏR-hLÏRS }-=O}O)Ko'n%M)wkgk8))_/7??g ~K?"8qJB}/UFZ_"nlw%No )Ezr6$iq(wkgk8))_ˑg ޳䤥~P>q7?? Mލp֑DU%0#kO.Hz^I~ySYqwRݺk~JJaW2}I&=HO?"wG/k AzlΏiׅ=s5Yv{`ʷVnw ᪎yDܿv: _38Ã6R1Ҡ~vYUnX0=6I$\PqȣK鲪]cZ]67f}Cb?c#6ɝ[鶗C X-4Hy KUWKqv5#K*w^ssLp9rJ\ {v@~-9Lf11odq^-f ii=a[|A}`ti[Sh)6h!ֻ0D;_ ЫT:UW+.nf^xE|W |"9nɧ>F;oL=՞Ug^ǸnYvDi}Uqj= ִm5-i =];tc).h`4c'iT!sQ\!]Lʵ1쾲wmm;_{S鞓PnY=M}*zYSZ~MzŽ4=y\' l|K3zMZQ(K9f\Bps<{cu׺_Gƶ^\+@> nyZ>uZΫvNF5Y 01 \k`C9!jb?S},ϱ[W{|&6{=Wu`5v^Ex]Bl@_vC4}<9lqǚpL5b@ _7 &Y+g*j>6:zK,k[s2Co9ݯXU /7ucm'[ ԥI$JRI$I$$I)I$JRI$gnu>;^j>E5Ōk udSįF~/y%:^?oI/Q$JG?{H$McqF)D$b7"$XMpN)D$b;"$XMpN)D$b;"$z>I]c6Mu;|?gXYG~Diznөdƛ:S?ȕYG~DZ?FoRFz>Jw}v5#?ĔQ$ODI%#{IzD$DRcfME{|[?Q$}wb"JG?}7}w+RG޳=.R:}ozJWOP kj6YffuޑuR类YAݱΏi!DE]C%9d~;q[Q}[u,c+{ZZĺ!q_^P'U^265=sGC\f83NLF#ͯk04Y23]Q=={r1^X|liEntc+rUܼm{7cN5n/. OOzO3D _[#cDGR_SGFG*V : :/IΣܫ%NKHH~p۴:{Ώ߬ttzoK\cϰz{{\*/ܷ˜-X%1<Nxbsyc8|BqsxsgW}XzWBU#ԮA{gS'΁:s\Y?_2N]׼s|yW_E6ʆs,:jǽInVk#v>H_Ma9Sc5l~{Z~ŎϖY%<ޜ D]g5,r} Z}OK}|EgVj1.5sc.V~d >Uב~[+gc2ie -hR^[>e$}9q$0O.;[m42ǹͫtVI ikxOĭL,yiq\cЩ oRGIOQ{f]] '6f?WɰhKq|NX;QC*,x>uias]{1*\ʛul`-:'RGmXIUg"U[}evO_b,5 Kؐ~6 1qLs2V`bY(sjnFqTlK;*./{iO0-t:}H_f#^B>QvcI'vGVéXQ֞n|L[N$mo)cIc :V)_]]>[)5VzkEi]AIN@zMVv2}uvyX_SKQnEwa:9n7if)]jk[qj=?[챳ѯoLɥ?3&4M }Lɥ?3&4M e11p><<ާ?3&W2=H"=8OJanSS-#3k?jԍgӎ<M 1=r><}Hf}8OJ`r\>;/+r9iIOHG<+}_IF3I)V1=r><}Hf}8+}_IF3I)V1iL}#Uܷ~I[}&HG<%3]~KugM/i~IJ]~KugM/i~ILS=V8kgr)LɨWo疩IJ]~PL\I泺njx} p6va?Xz7S[$.Tr~k\[n; s$nvx{jTU(%ŤqIv{>b~2Bq泾n~ekfZ~_H 7oyfy1 }?ǖ}1&x6ΡTZ'9%u>|Ρ_\k|Cl86_r2n-.}lfʳn0]Cft繸}h>7@yt~$ш|?y-8e-j1u.gazEVeËt&V+cKIxhӫ z]os.>8:1h,Mͧd}jxCմ1Hmaev{t ĠtYS1j&s95$J\W%ITC,Ѽui9(O6o\<}S1SRUL FR,X~u|6̚Snhc?+oopNwݚY~w\r{v:,:o\eZ2nݽdFl- Pc~$8Y(1'] DIкngKǫ7g%׉`k^Un~NVgMu[, WauaT굾vz1os&#o#oڷqF"/lJs┥.8qȟ׿) z*#Gջ*MFȩ}{ͮbWǵR6?o־~˟3*Z7ޱoK?ӝz 3lylI2 &C1 7ge5wpm{mÖnCdqnAenѤ_oBD+ŤtܞIvfql0>clkK;,5FuޣΡ֙[NKp!V=)s*[O,˧kGp{sf<4CNZϖˆN l\-PelؤGsH:MwAﱶٟ6Ztf#gvHHc ]pcEkX^Į3aoMݿX[?~U>#ynK,xq)~~OlJ;:R's5n&VEofesWq]f=ù4hu-8uJ)eΪ󬍼7E_<'YW]OZ}%k^r`u^>CgM}%<|j龳E~*1w>p2ro$.s?nS*wDonrd~Q߻uRI$I$I%)$IJI$RI$G~ LWfIu5WG~w]"MUQc>=u:3}SU z?}^<_{I)W%U ~<_{Iz,$5U505hԝNS*̻V$TT!PuQOl2ysoJCmQSϣXAiE?G0J)˴i=*~<_{I) EN [TT!PuQLY]]oWTM]O.qIL-*ykӨ:?EO>buQ F\4Sah˜{|RS j=(!#WZ=9oW}&sxyjo..x%+*?E/=%~/7\ZhyCO xar# Wrn¬[lv>׵. 4k[qqC[{ov!浯7)B]=9}*#xHzcK¡ s|q̚1~7\>Ws+N95x>ʚ0VZq>uu[hX6YSK@et5Ӆm2ΕnVK1ӬoGʭt?P׵ZCw{LoKY11 Wr1]f[#E#9 7FHoa-\P2| :'C_`v3c̗zV`J L;9?7ُS2OӴ[{-vWszZWosݓhs}sC6Ek컁7󧋩iyDD@P}4;kfpB\ĸb^9j`ʅX;:X7Rc`qxCtV~unlzYUNUr@k\LYx'B%j:.:>y:&Oae,Nj0;JYbk0}*|,,(@xc>1;կ c>lG&<~f? k1~61!5u{f !r8ɉюM?&~n8C_H_ jF_QF#_4Im{q5:X+cjzv6W٤z 7#ΆGmi"ghu'w>+STf`UY,zce? Sc# s?e -R8dQlè׻/Wܖo`:NkGpJMK3nS};GV56>):ߠKe~s{>B KW1~u_c^O[Y_ c\M5K6xtMf]GpX?[ͥi%c e:7bD{%8,[By<|roO:꟡[y<~DZTωm،eߖosHdG8KFνsy[+:n.P0cYqg-}&[i; \21ۗ/WO1qɹsCk]ƶ8Kȿ)K<˃J1l GEj3psxLG1w.\V˻9{m±Sx1'tc废^aam:cMXT<6e/1.vװct߰oȯ-]uEd=-c\ASoS\e5f{ُ. _ɃSbKp^3:M/s#s߃ IV:n5xd7un%Ֆov^;wL=e1N^/lsqKlq.Vj*mmp×qLg\a LGO̦+k#'w4dh~9׽Yvnk{8Iq32O+v3uL}L~ nxQr 'gLwL!&=$c#y,ك_Ua#u*8l g.pau_`}`];s1֗!-'?<#PO9Wdx#ѯn@яUj.ߑFv]#cϤkwӨ~mYzm-۝K=iYxcٷRd6{;Hr<9bM uK*#Cn6Mnس(mo.k\ߩM̡$J]*>A8i>JI$cRI$n^=79-po0 ?~3~nų9)}=~ݛnIZ$: *܊.5ю-ŕcj p JRI$I$,/UQxZY[[^=[ n4}VEx}־k;k|INϡG6(FB^<_{Iz,$zg/Bl4%$JaM4k&Z $?Bl4(SSM5v9÷OgwI%0E6[A $G6. F\$]M"OУ? TM]O.qSYIL 4` x+SaAx$jo..x+h.ѧ8]M"+SaAx,>Of;.ǍTwjo q3_ wN3 Hӟ%|nr n_18Dy|_9폠> =O3tES 9.w35OS6 ٵLB=0c3u,˳YcP5YELy: wwqwOE]3=g{1r.ia Փ+a 8G,d@ =R?չ1BSHJ8w חaXMXXsUˆ;FPsOݐ77isG*=3 7;]uUUX kZւx2﬘ǽƃen23yH{0umq5w?oܜ,w S4}h]9[#989ی9{30]SLxEG(bDdcnFG|䗌La/}l fT)2=#Oں&MTv-@Lw+?o툗ⶩ̻V❊"s$^RF mv#~NoNIi5 ۶4 OzU3&6}h,mW Xakv=i/tnEfկSuKټ3{ɭowyn$x Yz19TtiGɎS&\ð_Uu1,jX}\>k}r2fSr6pneƝ=5p^4_Y:sp~u+mC"JiwE=D}H] Wյ<kV3$ ^:fiz{wNbk\lVk^,c\|+[2s46CwϪ!ۆԺ+60K}7K,*uD;H;ُVCYcǾ(sXsf^8Gr=:ŖY\䷖/9}/W: 4֊ji. 1tڿ5]ȹ4;~R߬t[vdoi#mV|Lέ]7!zh7v14xOn12>W%ٻZ:TXҋoX{ꮬlP7E ys0̂nwNɡ{:孰0w>fj,n8v5=H9wޜ t_jD݆s ll "A ^xT`#U/w%t2금hePCZb36_S.2 C@fu|y[^:Q5s\q󲩪I'itf?K˰zoH92ֲ2c.tr鹽'#*[wOfLpF K4nq'81^ї +ɟ%"\:TR8=0Ê `(_roh}RFƑvN n5WV5nqځtwWU;Sݹٙ^EYw&AV1Uq5u\m{{sM=$˵we~jCc#nf|[gY[e1m:\ZkpYQ慕jv>5$=sːۊr}"olȻ"Z۾e@S+`VZ8񒭬ΒW=C _ zVI:G?"IJU1zMɮw^lhkt-w쭬L?fh5c22f=zΨWXvtJJob{q}l6>ߠU\68ApJJIXL浍RmHBHqKn~?վ|dtmn(adb;e1Y[:yWG*51}o}V1ڜǴqi8%%!ٶ^U+vZcݱĺkqvT+ѿߋkZaPlf쭓K.%s\9ė8'S>}]g`9nwϧ[K7mZ_*FjKmI)o6ԒoDT}7h2^zzͩ%'?Ȉlic9p5 $,Ϡt:.@-" Л<.R3rYF>QQߑV=kt26yo.h􎓉kdžaY!w| [N';n]vumۛcd?rޔH작+Yvz7n'N]?Վfk1}s؆ >SY`OQ&j#C[XsKīZ_Ivcc>euhp/jϏLǼcYc]~CwIӏ=x8FYUXz'rIV\121hWz%tY@̱ӕ>nhsgg3W[vϳQi=JmQ1*:4eWP?-,ɼ;mmr1F#H ҡ/cɃ&iK&Y%/s!84#Kqtw5ڬnS^5 u1vxv)n~Umח7ޙ{>Oc| _-acu,k_3%:s6c Rri6cӝSվ$nFMԳ6;o#gp؍nxf'1cOSfXLvMSZlake5p\1êsyu%WbӘk*X;qZilwX9SK.sB-'H>:MދUM/{nkK[I\TNGGyv>Fj\־z_Rm1-8581 e, 2"D^:y|Ϸ13Y?Uw5o0MmǹΝ9C}PumuԱoKN/M{+c jsXC`'Ezo;Xw&ߚ0M힞\Ѷ3:-l<˙Ŏ09x@"#h@L9bÔӄ~7z^ߣtm;04c1[Y-Ɠ|׾u],oռ:o!>@-Aic$7zO~q%GX Ȭ6;K}az#7zXn&);qm;'m_r3cǏ&sO/pi\,0Fj@:;u7}a6g_MlָK_c/q5q^s n5u-ơLor%5wCu`t^6brferE++{}8nkG7=i8eK/3@Pz*&Uٙf8~5W"4A&;9V:7Z_eynݺ.h蛿Ϩ7n=cu{'= s U,wPq0uSkkknUy|ŋ jo$N^=B\6]c74T;p+CTՎ+Wp)s.c1ǯjɂC,G5tjމ]:LղliWcGq3wǡGOoCút-&@|uV }7i2E^Zy xŤbDF {KqV%$o,TzMCWu_j}Bk;}Ga3tٍ(WccPf+s,1F#">c5~\w󘾖>NGPf߅y-{j#?:cEzM] zkE^-(su,>sÎG*SgVoW?8T/fSc^ֶp*uYYvKײ+y!xyjl0̡0G5v\abx#EWO:VSC ึ Utבֿsv\֑X>ic_/Gvஆ@hˌbR83/IY## _?Fu?hî]2:NzB1_ae e d":[pͺpų(dT/^kGmFfզFW;qSkH-sk"A-!B 2JRI$I$.o>_bc[4M;7f}WƾM=mq.x?}^_`7bke527Ya`K9)l Y:z?}^_`lac.S9 7 5%RY,Um67$>S!Dy_ /$G߇9qbG:=_\.:f<2K H=`ʵ3s6H? Q/ߪPafN].zmWUvXͅՀ|o&CFbzC-*[ Ly>N&>_'4bcsV.)e/֎u.}dZn  ̥ѰqԌN%5ݑ$ /0@-cO#o NtrzNC+_F[ּXs~6nl={qŲчcCoJvHkZ:E^GXoYcx(ɰe/[ qBqFJVz[_!d]!K:i+-uG9q]':v q O@ߕ o*i~U{@hEeu||~m2T睿nmy hWV_LTW]]en2%ȸC\𳲾^]ZW&E [dYcc\ ep8wpйH%>1> ,Σ\y}\iΤˤb!]E2v8{܁0}3vkp$Aux8-pCcVt]ͷ{?5C  ac#Nv3`zީ^+o8x+(\m6 ;h5\O=>ާmSf3xh]q꠱c;!68.:a=Z cX 1eO05ت|o^I17[s:޴8/w}8y__VȰd}I sqq)X7iUy=`wP}kq[m}=460\4Jc>WY3OJrK?\4]z_W:k:? t?ľU#oY4t3gyuC4O OC?r?7s~LLU[w.Oka+NbNN}7gmeصL{w*0:0j3'2= kʽq tZ15k:.w-\ُ<.5ڸ@TG>& 0iĮ9Vښq ƺ)[TT!PuQOegIB0T1N4G*V|dLMW8iƠZ5ťOOf}_k*PwN̳__Y'.|:emkkpL:‡/[թѺqgkpj=#}jv[Ҵz5i:r*)Y^]f?S+Z>#$I7#P }OT嶊mk{c][TT!PuQ+X͢1a4IZ F>i$M>^w0 :^a\jnET=I;[T4~oC hVoE ~뤵#=O? Fu*5~ѯIӖ!O }]3][S_UW+*Wq_IJ* oV.=b^}'Wq2*0T;mG>Y=qqn vřCkxߠ.s?7̨noML~Q3;䤒I5$I)Kዋ}MMXɾێ2^SVLut?Xxҩֱ9u. si}5m[=Tؾ7f;&:˲MURK}KNN{A~Ž "dd>mަK=Wv5Ж4-dI%)$IJ\WBՃFMdWF%DƊogI-v>baa??3[a~emaVֽI,8hYM-Yh!;]j/֮E]Լ7۰<7p/O;7p?e_:̼kv1~Ƹ텷 NJr/ǪYc\n-um֍kitkzT=bSsTv'mT.CH>u88SCs]`ɥ/|ڒOޡ:v[-x28e+dnXf2ߝfvnsIzE¢ך2Ř-nhMrCM$ܧ\;V ba3##3eݾjy=}܂>nN#q(.ӲcV] t 0[JX2W1&K ov{r!>Ig5?Ðcv5Od 0*u6RkA4Ȱk[ J vOX~`>~^:f\켚֊Owz{m۟rG[zm8.m9k"@s ޕ)#R?q.B1$ӎbxKYup.6Cy2n^L >ӛqG}fW}5َ|LHƩp_]m.7#4 pGP|?2s y/8nMcOziVF8ewmsҺek[,fÇ5T/Th7}o+8_R_C A&]z`sx5vnNIBձOL.O[Ĩv,V۾~́ZkeuժܜKd~5L< J@xEF1o+ܡ)N9Y/C^u어4d׆ٵ_cs4-hlQf_WIytbZ /k7=5ҹTgt; Y{n?h&R\*cZzNnORQ4Um6dz,;4 Z8/Yc#9KoxO 29癔q(A?1.Z}B/@ƿߕ[i1۝XK| }V}8?\6MUWN9k na88ʛktn>N5-ed q.t4Ky_q"IE1ω5ī<Ó<ǃ%f3!ꄨ~XR9X`xF4f@CV'Rǩ5bev汷-{vhLOEnKv}t h(uX~z}ÎAu>v'' _ 2ֲu{U9>NgQ.Pֹz vj@ԦcNh9ٙqac(t@"82rfo[ݗWRC2Z X8 N,A'7+zNuNՃ_7#&ǓI㦼RVǨZ]?tڀt6Y6tV 7;O#*?p^N8^Hݤyu{ 8}X0fx0w[cdpXinڃrsLw WF=KadNh,qN8sn_6xoGNkjt{t;>.JG.<8K!#Z_[W}yޖs7<>>с9óT|xrHw,k eEf>0rrcokoN[**}F/!y7gsXƷG6ϷσG<|xD7P>88mwD\G}T̷;Q˷.lxe]dz4{- ծk\>>vִpf\GStzSsoyhfN>Sd -5WeA5Ӈ$#wEZNHj̟ix_P6ˆyqzZ4_mU1ɰ[qጨ[vIxqD_x+a>Uṏ?G=[&ƿ+>-ɰ7vakGhp𿔯wsgk4JI7}C[9? *7zv>q{?m&iz6KF0d7m&q7z6KZ0U^k(zkޝi}BStIk#OKhh77O.kiOTZ4c\Km ˥ݴK[Uc^_\dÌ~Z7*"Y~iog&M޳}AU\iɥ??4g 8Rg&hil{/h>X@<,8m4[}'ߴ @'iIN3O$jU? pR?jB,|'1ZoI$,jI$R?pz]Icޜ+6E,{D۴HI#Y=o~?O?7} CICS>}YXdԩꮶl[+gSZ[=is2El? d>\le{i4XT]"Ӱs$$*Nɨ_Uv Է<VXje5'D(]uX>ڪXֵ\8 .V2v}Ծ+XU_ki{tZWhJ2(d7(sL8$pgJo+i|Kq;HgA.O<ov&=tDCa[dLswLX~t+ӋU{-ʡE X7~ùKC<2FóC5y X;ǻ_Kyx8A.CtH vhΩSzCks3C#}^ørr12=7@~F]Y 3u<u=W m"KHuʋFX먉]rY0s|FebԷrj>ddtmUc55i?ifَu#wm#Ueߴ1\ssz=[?{`ߵⲔDǨ4EWFE}l]OSޜ>m>;}sm[WWX/tN?;}[?{6z1O9fŗ,cޫ, /y'^r0߀GI KzL Euۑkλ[wYi!^ѧru9 M7)uY.amd {uGBS?ίc_cSplc- .at_5^=-¾7ac잩]ln6Kh)9Hrs`,rϔeq@'|2FW,Ù?O}t=C>mxqKZC6q:n]KM}?J#(8]m/sF^X^ߓFks@;$ps Gwxo;:yw$@S sspÏ91/aEּ̥Dj6j3hG>kқ{ȣ6$6 8Ut߅pbuf8LLa<\Ox`gd7ZffQ+ "{zc/!XsO9Zx aܐ 車d>8g\ueY𩱽]4Wc;qkpaCX_c=/ޯ`池s6ΈXW]YuN%=Yx0>ʱj2u4̌qkvWM!Dğ!'Qb#kPǟ(}G(y0oOqkIiuy=!@1#b#-zn>Y{au^:~GV8x,qx?sk2ͯse C3&255[\15hZ8h-$9LD.I$#/P>龩QU &-]08?l̶1 Ͽ\ԧ~ރ['n?ЋJ'&H,5OxK7V5TaeY {00-$r"=ֻ}85:oI{TdNeS7ItHeǞ P8y3֣.}j9yg]tUM c@ k@."^i3 phߍk}c|I%vuXSwO=ARDdd1q"pt<.>%s=)Iֿ? fLwM [rhjwf&Εc}SsR9qXF'Ά]8xv[K};1hh:dh*XSwO=ASl ީFfa@ z~Kճ'zjtlk1,!@}dmgBycVb7(z~PNJ4y trNS;șCFYG~EVSwOIMSi,"gO lyO'$}wbgOcVߚOoiIIjW1gm]+lyO'$/+SWKwgSVgU'"ecs1mc*ްm-o'j|{?̀(c?ETUw[T[?{$Vz~II+=[?{v[eyTSS* iy;E958Ďn_d.s?ܓ7I( Mu B,|'0o6SrTI"ƤI%)q[pVv/IooT6]}.a 5;uw .uҺMdK/uceWN`9)zOfaZ,}4d5˚g]ʏGv6U:֊Xv; ˥۠&)K>O՜Y쬇y 5:^֛]a-SzfȡMSd,uUCIh %C A$R' ]ӞMU~SX[aȋ1>u k3[zRp[*s6ik_7?swՊKS?D;3z-O6=.V4M}Q~+O;ޟe ~eohBl[sG'rtkJ f0zD~{9,ңYySk e4nWP'0k]Qŧ眜JLh{h=Cop1zI=_1zLk Ú >݁V9GLRHE_#԰Sǐ^Oux\֌ޛvFN-b0~ՅfHym/>جg}|u-ӱ("m{on6J6֗4t" zEu,̜cc%] 7lk˵{?pg.k82.\{ d5x^O,0F^ZwΪ7S+~FkKCX Hqx#jo>E[sr=\kT9 >dn+#y_O jюݱQ}`2̊33r=0 Huu׉#p x1);9G_(<@z@!"fL#)OavbFſ HC5/uTum#N~1\~^&h/!:yxͮ,s1#daeCHVC݁n5B'ׁ`;?ka?9*rG5=HI >XdAepT33r:WMNn.Sk]e]7km$|HSޛxދ,-?G04  V>UOn`ۺu~Kga}\ðSvE].YF<\:D|0+agʰn2+AYOs;Y^K#B뢯"S"KE`%:=GHK~)Cޟcm;p`vͽv@!Y oN|\Ժ= 'o[o?3'KJ/jyg_q?8XUKéY$4GLY8xS'| +m^4 [[/,$Fڽ\evSQ mhɯ[a xd9Qz7Hbs.|XKCI04p6w˿}Y;haƉiD+];>.RϘO#Lv4,1nr̻up$)$AQ"g&޳͝(# ?Hp+^$W~꿡Q5RߡvU}6Khr˳ee]Wu'+Cp~s`ڤ]hDKOw,r Ua_?8_̹W_e]Hs674G̮=D }G{H3k쌛@#t쬛k>kW@w|]0De 3xlIH4loPNZ'f/j %#iiJG~?&E>}F~h[f/j]7>-RJC`hQGRV }7è'ior5\ߤ??FsHf|?)6OX)!}&?pѲ\6%hh77O$$S7DmwR?D"Y~iog&Ehɥ~?&??4g&Ehɪ8B0QߑX}Cl`-{_4Оܢm[-5}eߴHpIN30v* 6>u? qR@?jB?( e6$EI$JR3ɳ%Ieyy5Wo0tk$X44:/'"r$,i°I)I$JRI$CN.'N5W]׾uM7~|WH.O0{N'`ĸ$TsRXa8SxF1&EBm﫸]?7Ym/͢kwƴ#SsZL*ΑӋ@v~Mm2۹ǂgisC=3o՜__3mYӲ}Y[v-H=]FXg+09'x{쮧_{+Q)dpaS}K|s1!V沧tx:O}6ПU"43yNCcg m;ӥ=FQ5Rxjlޣ}sf/}}JkwD$ɿ ͹y#eTu[cn;kgV.w <4pQg/[:V2Kyir{ t3nݽhYvN"CZ:(`G8g3FCO":PlGA^#1F˫w wT׉ca;/=] kS<9%Ժ_okU_n9׼`S+-"?2Z7ClbGj4E<g9_r=N,TzoO_o#Z[ޫl!bۯsK~8ȝ< S36d O7)ű~lcoJk\ ZwM"ܼ:au/:^:n/ {k(Ҫٍ14C=lk/9yy>6&ր9z=r/QEQG;z}1b6k^OQi0cEh0`8 'O^:9g'*OԆK(VZEj@AhS:MBz*ֹԬ;f4]:[e%Dl:wR}Fl ǡIhtl~+K(Wmp~ő#@Ģ}l@_kEgw~˟=k5ԟ}X I?=I) s|"_VW?-d̏(E~FcG3%izgVFڝ+a\iU:?bu&I3"nv捭v=`)ݽs/1`LZY爙Z߽Ij_U}}*|}^:M"2e}Nk[o c[>.ף#? }gQZ2<\?rr#/Fo_ȨzmlLo^8( }FkDrj3PcL\OOo޽pPE5cA GJ`?鵰=3Rwwmb}gQZ2<\YlL$c[>.PCfkY:~.q#8ǿ2'.s8DiƑPB1@Dy_AΡ3urv>=v7/ RE5cA GGF1g"cEOף#? zg%0o_ȨT1&nN''o^8(Su"A#%*1g"h;LL;Qz?3uԚlƒZ@E~0}2;xFHRi Ii<R*c]#>-ף#? }fQ2Ǹ5 \K%8}ULj̮6+!BƱ|D]VGI}=nwP}v05vnQk-])"N*I$BI$I%)$IJI%G K.mMֺڟSO=3`ix :Sy%1Uȧ?],u}S ;E_duLaӃ>K:qeՊmymOe}I}RSLE#^Ůl=얾r2p]-AYpy Y۫.} ]e6AZv6[eq=Stl_GL8on8hYA7ax;aەg3"|83o|=&?ڿ\M⿬1g\~Eti/k'C^0q%7T]2Lw>h_]XYM{bi?e\gi7UN9y̳s|rX)Ŏ{,Á1c%춰:5Kݏkr~7}}`HZ. rW]⿡fd[0MyuX>| \ +Xl/nrD:_Ҭ=ie;\8_׏Y=d]?c}Wlt,[`~l~{}]'Eu}ugۏձ:~V5KKH۴'}YocA8G&!f*K\\\jv;U,5H!Jq8G.1!zߋ~onF]Vh!h2 R1,}o KNecĎtiԥ|99MԌ67\xJO9 0Ƴ /aA~?Mis,o{  !WAu>`be sT`Zsv38U1A})Hϕ3 3){+_şwPM6cI- GW]I,i%EF:ueٙ`t@pmC` 6>hQߕIh}< }Fkj&FFɽCSOG >k {l!2?Mƻ%}9Y71ZA1>)0ׄ Q?V+MsPW+.ֺɶ"8$zgr5xMxHGXgXni#Ū~pP%"}oz^pPS8։䔝 >7/^8( }FkDrJNGQ/^8(Su"A#%3ϿH>7@]O6 Z&GS8։>7*-PS8։䫺&jJgGQ 4  ~pIICH^pIIb7% nSX64$x$w1gHRi Ii<Rt;zgB4$ ):}wb^pP7S4 Ԕ?QߑB۩-cO+`4x$w1g]I,i%J۩-cO%3?ϳD@7S4 ?^8$!g/^8$cQzgQ&+[]}u%@{$VԿ)k,U_}m[]!s]ZhA a%)$IJI$RI$I%)bb|:vExь̗?qaykrf׋> -SںMBe=n/u{홃21sv.m5do !ZA%$šjǩPUM ֵֵ@\_Պ[Ծ} }ے=dXN6C{.sQ_~njQE5*ZwxBF"Cjg=T`a~79buWG>X9v{,K\.Ȣttud+݉;.QW,;uQ6xי1;:W>?gZ)Dsnjre:!:4ŖY{XZuoljO澣9g>K[,Nl#1:ϱ׸ osTp:*nKkܔc/#긏T]M;$[ALƹyۃ^Z\b` :&{Ѡd?ʞKj˜UӯecVs]c-~VCCH9ΒoR1ɤۏӰ.V ;p[]'>ӡd?ūo\>ݮoP- J9dt9sr~Ųx}_sM?`OU?7+8X'>Yn^Cn6Hhv>}(f̳>kWw%5[/$lQc@qa#tHN%]bUcEDZrmhn ?_5~>ٯ-\L?UjEoi&@ w|s>ht1c9'{xwJ7DsovO}BńwN8 ,,svs~8 7oEv=syd~pH]yoJshswа;.u}ʍ<}аٯkKw%5/1x?ixh6ϨGMv>-T~;:W>?gZ[-3Qϙ)22|̊B\Qw{ng3rrҷgv5j{-3QRs?yC;ߢwtmJ}Eח3oD9- wF o@;[ywJ[s?yks}6{G78v썻?N=h2Ge%0os~;os~;ÿJ}EחW{-f %0os~;c/~>uٯ.IYvg[S M;)ng3rz&{Ѡd?ʞKi)~?%}ț-3Q?JG}5=#;xvF oB~h#gM=;nFkD}t,XIKng3ros~ѷ[gPߢ:@,$3oD}. F o@]yoJac{ǸJ7Dsov=syd~pJ~YXo7.q+ݣߤ=iвa+]?8owgx~?'.+}}k^[?JG}ng3r&KinFg3rem{[Z(q.~Sh>Is\ o!k޶EqTXՌlGaρINԗ5W{׵YŮei3& o|:[st=s3ϩs=;9>=m$I)I$JRI$I$$I)I$JRV^ԼǪHq,zV՚~8~Zt\[[ه tloJ[&p _o\䪘} "kd~eq7z5Úe8iɨS[5Q4|?+T)apѲ\6.vo~bF29tWVMqv;fu;O{u>gUS[/]}>6E-Xiɬwt~ϠǶ?fEjoJ3_R6Loߚ|[Y>5wn`Fm4z.8w?H2DUڢ1~|ߘfff?6FsHf|?FsHf|?ոSa}C][6Qt;|?m&ioߚ|[>kw;_oTS:mJ߇Xvͳ4o B/izoJ7tA"19VEoÚqZ3KJ/k7n?VI?QmD/M_7"? .lw)N/jz*~ҿoEDEOM@ g{;[Ss*zu))_4w|]?M_7"+w;_oOMBw\9m->Ss*Mgpꤥwsgk4Iwsgk4I 8z-+w;_o޳͝%Xu-}[n=G}wRnoRRz5Úe8iɨS[5Q4|?+RRg&_4s)zoJiɨR.k4 %~ҿoEBiѠT/j %#iiP l>vU%3}FsHf|?+T.›:ILg&E޳}͝)oJ[fQE|[EDIx)+ލ摴4Y+kph#)][6Qt;|?pѲ\6%hh77O%un}GiVGswRRoߚ|[8iɨ4z.oJiɥ??47^ҿoE%*/hOnQ6lǾKE$ϸ"oJ'e}9Հ,`asIsdvU/gucƹmZ'[ _I}o9ACFnP.vƱ| a%)$IJI$RI$I%)$IJI%_76X+6[a0 $!X_SYߪ+׺jSM{Z;DKeL=έKHls#Ȑ>W<֒ϫb"v;tfKAwOje /lpeL;Yy-;cNx|VO-bxN_8`O)Ilv_4Jղsǡiݺ7qa*񑈐8O~ar Eލp恴DYN/iQoDMR ލ摴4Ys g[6?6˥?ȹۿS[/]|#Ӻ]X?uX͂HpZ}W1giHșd'Į@E޳}͝*8[K$O/gXWeɳdL)ݧ3YM#XY1yA5FsHf|?FsHf|?Qߑ+]K"Y~iojGQߕ)QJ/h$'Ȼms@4KO&)iEOMPq/I($]7>-R_4?ϳDQ%_4w|]t1iɨwsgk4HcQ)QP]hDKOb7$];>.R@];>.R}ozCQ)z6vObCo+үqRԔ‘w\9m->S}T1_R8iɥ??4DR8iɨR.k4 %t1_Rg&pѲ\6#şwIJ}FsHf|?Qߑ%*/j]7>-R:}wbJahh77O%pѲ\6)Tԯb;$ %#iiVs~4RYG~DjJ`E޳}͝)OM#?D/iEOM$/hOnQ6lǾKE$ϸ+(cQ)-oIx}; Ɩ5nV֗<=Y?VԿ)k$$I)I$JRI$I$,N^7֮aZRuFC=Wktѭm5t>Ni4Z kmϝwK%]1av;M[5 =hcfv.=Wr+o{ZeLi)fUc~ʙ.[7mv&+"szObM/鯮kY5enpڮo=2ۍCb=0Ȧe_WOW?HsXya\*}5כ՟a1Ʋ1qM>KCw%5.sso{(qT??7[gKw%5Ppz ٯ-J~YYp5z2 ӡd?Jae~]H=FQ5fw{>w[]4??GR&KinFWwQ0W&x}qT0uS6E o?4LRP&4Ѯ5x:ߥoϢvk[gLR?\(;VL6KjߥwϢvk˿R޸HQQvh$mJ}EחqT]V8C@jw%5 &{Ѡd?J`.Z3WI ;VLw]]4J}Eח8խ5x.#tW|TÿJ}Eח{3-i)w[ U/\'ߢgH,F#Ω/\"nFKi)??k =Gh ^znFSD}4 YIKz#ΩFˁq6KjO}Bń??l=GiM^ZnFkD}t,XIKz#ΩD=FQ5f[gP.+}}k^[Yp-q4Wb<kxeA5xyjka7G4wN8 )[Ǩ-" T8y vO}Bńw{>;FLߒ??ꓗ~>ٯ-S o%#GR^HD o-R?\,oSĮ7:Nٽ xZ-3Qd?mwȮ*RK6))p][cnsfdv??h'n{dgRzv:s2}3e{\{<IJI$RI$I%)$IJI$RI$GUpf5 xA)qE[cg%t nM}VAS㱥4S\X͖۠mܟşrTG^?oI%0_YK}'gEO'%?RSK4ӍZ"68SX}Q~?oI%!5< Ӥ]8Ѫ{??)]c6Mu;|??R^S:K5Ӎ"8`=S~?oI%!/gv5nE+^S:K5ӍlwOo8`=S)adn%ƍJװ27{NtFc6Mu;|?8`=S)fn]M[SѸ{?޳O=-RJVO[??*~?oI/Q$o,ȥ"?{I) {=V~kit*{??)4n.)D$}'gE@=?55}oQ$,wOo"Ue>7OP;q[IJ_YP0ѤM8ըޣ?oIB)zn>Ѩd=?55}[]]S;q[HXYwn)%0gnuvE&=b=5_,wOov;uq'OkT FhYj=ܟşšǦS{I)O[??*~?oI/Q$o,ȨT FhYjoQ$M=7hmJVOadn%ƍF{JXMpN$o,ȨZFiYhoQ$u4=7iJVO{=V~kit(ޣ?oI@Ywv)%0#"}Y_adn%ƍSѸ{?8`=S)adn%ƍJ׳h7Ig ~8`=S[cG=IL ]M[S_YHYwv)O'$??)o,ȩD$GJa"m,ٛf gDx^?oI YYQem`X7=7sfgKOfLY5ϴ?GΒ[s󺃝[0ܢZ{dyJRI$I$$I)I$JRI$I$,/[6asiK7sdno5KgwE/Y1DR?Y1fx?QIH);F3;"WFDDZiCi ~<c)_şwDIH.;VZ3;"YG~DDY]oWZMO-pS?ϳJ,"Jau4!ڴ;VZQߑ+)hw$aEߚ)Tԏ+Rfx?RDI%#KgwE$Y]oGQߕ);]$t1Y1k}gwoHcQ)^<c*MbG qGCȒ [8þ5.HZY[w}ozCQ);]$h])FW_ӷ)6SXh\{|fx?RȈȥ3;"JG3;"M!4pt:?)^<c*ZMO-pGC?Ȓ3;"u4!ڴt;)^<c*0w|+S mihII]kM6v<÷N?Qߑ%0֚lZykoVѣ5߼ U1Tt31;7(xk|~éRIJI$RI$I%)$IJY}V̮,ijukl>n~Cڞon!Accu}aϺVSV0s2,uʱ+[/@IL0:VQ߉]X]b>c.6]̦z+k?EQ>QQ}`mNgM̿sUen:q~ 9Mn/CJ{n]Emsmbm.%4z.GOxvy/{YeacKqN]W>' u6b1qWvYl9%'KgwEk?uÒg䔟gwEQ8YFqulp4"^5uXGgS0YV^1sv3Z]ýv#JcR_slh{\ܢ71i"VֳlcZƷ+85fdmV?uo y%)$IJI$RI$I%)$IJI%,c9d#"w1׺kAcS(~uUTgPkZֈkZѕԺNES^Eɽ ֲ^>Aq@93:=Uv%=NW2K_I-Հs'jJnͮK;z];7Pܖw-dS6wn,KmtCrYԵIN=?U:N=LUUM u ֵhP _kޥJqr*}:ڭiefk9iʂR];7Pܖw-dSwNSkK,C5s\!sNTB麇䳿k$sS_mc\XznT,lW}T9>ߝmV3\54A-SwNSkK,C5s\!sNTBW}T9>ߝmV3\54A-SoNsC.~uk_3\:W-sAi%ֶk23w5-.hwڦ cg8=[?7Fw<[K[skǫ,X` 8 k-~Ye=5ߓ^V6GAƥ-[-pb5Je6wn,KmtCrYԪTU/;8g5c%wWMk+Dmhl9INO麇䳿/ӿugRI%8Iu8ƹ kKX/ӿugRI%9?kޥS^-{Z:n5ŭ.T/t|JI%9?kޥS^-{Z:n5ŭ.T/t|JI%9?kޥ~tzEΪ]lkZ kZ2I)U:Kmu׵}fsX\ZLGĤ>tkXP永j[ $}T-ׇ ^ֱaqkK0 >tc~ss ^ֳs`u~gKn%,ȣk)~w*}K~Nx[E5^ݎk+ 5ۤә)?U:N=LUUM u ֵhP _kޥz.WOxWcbדߎҵ=ߝmV3\54A-S6wn,QIȩ^jV湮湧*!l$ӿugR]ko/6c,=C7sZ}`6~l${~tshs^rkJ瞧'"{֖Y[kC木 Jqr*}:ڭiefk9iʂJߪ&\׆f1tZ<ǧ8=[?7Fw<[K[skǫ,X` 8 J?U:Km5efk^Z\L)ͮK;zkuzm~V'1aՍlmV.˝{L8s1.F idD{]xcZN$.s$麇䳿/ӿugRI%9?kޥS^-{Z:n5ŭ.T/t|JI%501zf+p=ZZ9qsNXI$I%)$IJI$RI$I%)da깸ʱۑFEȹٯ!hf= #k${q=AS[ţ"r,;5[M Zϣޓ/a#nIf蝼JJRI$I$$I)I$JRI$I$$I)+k2kūq!9aXlpN\^j}N|ocݏ]x?#9~>>ݿg uIJI$RI$~W{sz5Ȯ@pVJRI$I$$I)I$Fv`ֵs@k@t?/UƧUf܊2,vEϦ>}9 kC1j6uz[F>EYSjv;kAGMV]Uu.cZA,qk_pvJȩU湮5BIM~/a#nIf蝼J^Uv+l}- ;w5cn,tt,ߴN]ͳ3 e_$7v$SyNʹ?g .mcͩqvGӬV᧽vҫחmD>]@; oc"]?<>ǽ>^mC[.{ˠ5YUgT+e7V@ YY AA-p-$gV뇧ebÙe. e"#M5^OGwE];+俤}m^m2\7Cb_0?I%9=Oֺ5>2* OC촖oU*©g˞MU~q䘓 hmI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ endstream endobj 255 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R /F25 48 0 R /F19 7 0 R /F28 49 0 R /F30 40 0 R /F33 42 0 R >> /XObject << /Im32 254 0 R >> /ProcSet [ /PDF /Text ] >> endobj 265 0 obj << /Length 1691 /Filter /FlateDecode >> stream xڥW_6 ϧ0RhTɒ%y{W@>9{Mvo?Rb'] \(")~^zc#Y37X*ldF2+~M£e:ȘȄ "N< ˕&c>6]o+)e-?࿪hGspGbҪX2p6LdY8wL-i 6]|X~:S,1)Y7 z)澮zZ6շCG3',XlpĆxL`Q^Lc"3+40+yh0vEB}io-E~Xjw{SntPV}tڧt2s>svWIE_C589}*FYSf,PqK}_}C_bLkc, W <)jirߕ@J+ CY Li#*^`P?C/7?ݮj˪|$H {t 0,4݁E9&@ ;T-^!ns9t|REZZO0Jtazg`*c29)a eԜi-8K5wh3~G~p:['HJ7dcS2WH nfMO3. S#@G?]hss1 gWi C\ Z.qne2.Iރ#q8,h{.b)M|ojD\R6-A^$„W%IȌx@41 dgY I5a2L`I˿ݾIP/>.Zi uJYER]\vD &B@y_a;-&4 b{ Bw[dHx&# g_O'FH d9(œ o^k iqnxmu34#Mj,:~P1qLaL+pyTS1Mn0S{#$ςd}WG5슪 DnRDw.u'C::]VĽ;a|:oyM)3mZfvj7*i:pvIL_7ՃC%<=jxy3ZY#Bq?<ޜpgX bRi >D\~?2tK>J>xSY" eiӨ.H Hhe܃H;Ǧ & 0S/qYqc)l5Ӹ@ `.0|9Xà.E%d^&xUp5pi$p7coյӧESjC\5#D%TT Z`U6`GVA_sil^%A>u=_,S8] endstream endobj 264 0 obj << /Type /Page /Contents 265 0 R /Resources 263 0 R /MediaBox [0 0 595.276 841.89] /Parent 253 0 R >> endobj 260 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/SoglieA.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 266 0 R /BBox [0 0 553 453] /Resources << /XObject << /Im0 267 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 553 0 0 453 0 0 cm /Im0 Do Q endstream endobj 266 0 obj << /CreationDate (D:20080806135117+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080806135142+02'00') >> endobj 267 0 obj << /Subtype /Image /Length 28239 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 553 /Height 453 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,)"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)%:?W,ۅ.қF6] dEz~>OR}yyكn%Ew7Lw)Id/}cs-}.u89v}NuvexkhRS;Pnw9zwINK'r=Cqʗzs%:,ӿ*_T$[3]Ʒ\.k/ӿ*JuY?T/NC?)Id^7;yR;PnwY%9zwQZKu5}ck^\߲Ga%9zwKr=CqʒdOzs/ӿ*JuY?T/NC?)Ic}%k粳w9-pof{g/NC?)Id^7;yR;PnwY%9zwKr=CqʒdOzsEZMn39+k~h/pkvINK'r=Cqʗzs%:,ӿ*_T$/NC?^7;yRSǷ_I3:5pc'95/ӿ*JuY?T/NC?)Id^7;yR;PnwY%9zwQ_IǩꪩXֵ9%; ,ӿ*_T$/NC?^7;yRS;Pnw9zwINK'r=CqʣO־S/kC뱝?5s\%k,BJvY?T/NC?)IcS[Kֵh9zwJId^7;yR;PnwY%_?3 uNscpuOuOkkXjI%)$IJI$RI$uN:V!wK19hڍƹĖ\ǔꡛz2Zȧ?v%~,m)}SñD;UJR']KYdZӇR줔$OJZiz]?ELf뺎蝢UW)SU-?M/W)SU-?M/W)Ssl\]۬QD7Aڂ_ OKiUn4$_ OKiUn4$_ OKiUn4*VΩ K_eSU-?M/W)SMX%PUYAֵAkFRI$I%5lĭSC$Q%']KYdZӇR쥬I$$I)I$JRI$I$,_up_}Oկ:8u/IJWQ~~KYd⫨?u%3T)ǫ*xem<0J1Dօ,k*poM;OV=OBWlݱbJ|  Oc\YE 7]v=ocof3nǁˈ1qjre2du kɽͺG. Ɓŵ:\N_}r/-ɪ ,NC7T]d >ae8Ȯb[i9Mkیp86 FfuQbu<K^}{+cMۼ]~~gS/p]kPƿVc%4/fu=nI~蝼=ޯwboײS7lX6ld>V>:u/zCCiq}'f;tʹ_ hX}we *FEwsY5"cf˟M,kﵦCT[mb_^vUZ9Sj~-!09['sa$INOկ:8u/Z'w:e-dI%)$IH++RI$I%)ϧWKu\Թ%$I$RI$I%#w}v5%)$IJI$Rb;"!şwIII$I%)$IJYO/' Wn\qhci{O Iduot&9>vIˀrH^1WH;gs H%?`IO?/.>GL뙢3 ,ڱ,c{k49ٶ&%l$l UBc_`/α.j/ylKK$ޏ[x g%}:}L2,} OA$ u?ŎI2\X-!Gs6~ە$4@~éROdRI$I$$I)I$Js:PWU'6Se{Pѓ~[{YX_V .6.p2~Ie45%8IhkeֺL٘y8Y]ˬ5A7*nG=VQQ]X]b~[6]Wk?EPվ'QJv=otwLvn0C~m`fSݻ Y?VԿ)%-?OQ,pp$ ԖWQ~~KC'1k`;mhxHp:Q2J.|\ -cǫ|onĠ8bgzܴ\YE 7]v=ocof3nǁˈ1qm|zbWnGXw{i)BZ#uHj־u"ud_ynVMUQf>zuZҦ UWWȻ SF.Af/R˱ [rn{sO^OPJqm5?ШQc_+Dn RX_F%vtyuwT(7Xt]G[q[^>ZYcՆ픶fռMۧK~{z+q݋'վ^1Lzݲclڷ;tI)._=B1+ ۬}ƻהBEKh5Z[;_J{=_ۑ;yz?U_ee=XnKhmm[ɝ}%0}t [n^-䆇[[1'%3&N>ov>鍛h#tA"<аOT5##s+,kNE5xұN88xO}>YS[) lkL>֨z2,sOZC*`syN9)NI$vޟs\:RА?vRH']KY%#H^pDI%#H^pDI% 7S4 ?^8$gXg/^8"$g/^8"$gB˩.,n#rJWGFH"I)GFH"I)GFH"I)RZ"ƟsO#GF)GFH"I)GFH"I)GF.MXKHQߑ%+ף#? zg$ף#? zg$'o۳qIZm_m5.Ͻ=iqḄ9IQۂ__m5}g:p,fSUsa6Hk!tht1_L0sD\Zcnno^cRJw'_I.74+ʹ22 (vZL /{?z'Xb?߯$$O?dz?;H<ŤHF|}b|ZZ\A;A{ Hp; LG D{>dtCmVucs\fBY?VԿ)k"$I)I$JRI$I$$I)K'w:e-ekNNKoRU߁Y8?oIhdf*̢25ƬqZ~d +q?(?wر#[k @qu<3=G'3?b}ۅ>]kPƿVc%4:5ዙeud7+(cٺ5v:mx?@'vu߫KcfW/"̊^d;JCiưc%kvz?U_ee=XnKhmm[ɝ}$XS/pJKOPJqm5?ШQc_+Dn VVҳ:Wxzs?ntNaeuooWn;zkf?VR,m[V62gnIiu+zE:ۗv=ny!4LIILsɓcf/g4,>#"nӑM`*t~ӳNeϦTV|v[5Ou-ޱF/{A*-s쩵?ʘcsSI$'w:e-ekNNKoJRI$I$gQߕgQߕ)I$JRI$gӫȈv}:\$I)I$JRI$TD;?ꚈI$$I)Hw1gb;$$2zRgNش]UY~CykY|Ǡ{SY "" @ܨtYhp06GcmzW_Gߴۑ|w}x93:v7RztSQEuke/sDO;oQ'&LjkQ}kߢ{4'̄gva dD Ob/A+"uV7uF#hʳ (xǏ i/ϩ;ZUvC5򲦟]WUij&zjƵָ{qc9i%LJiC$N^I%9?VԿ)k,_up_}RI$I%)$IJI$RYVNcϱ}slsiw ۯҝ:\YE 7]v=ocof3nǁˈ1qjS~éRY?VԿ)%5n+jOn;sf7 Vg_OZ$'v}U˞TDg_OZ$'v}U˞TDg_OZ$'v}U˞TDg_OZU;?ZW.zSUU?Qk$W.zSUU?Qk$W.zSUU?Qk!FW/dtCmVucs\fBI$I%)$IH++RI$I%)ϧWKu\Թ%$I$RI$I%#w}v5%)$IJI$Rb;"!şwIIf'~u+٭uщmg"3^Mfx:OxJ\_&oc>cA4ID*=3wPnYJqߧ8|GD YDyVgitCȈGQ9rDI%)$IJI$SkNNKo']KY%)$IJI$RI$I%8kdgtuՃqqȲ9Χ'5OwA_Uq:}:/ȼ+&({: S vِ I%0S)aqmm i{s\2e`[%݅sOP_n6:sVOկ:8u/ING6(FB"I)G6(FB"I)G6(FB"I)t]dAS(FBU;?Zg/Bl4"$g/Bl4"$g@SOZb+R ?ѳЗG6IH ?ѳЗG6IH ?ѳЗG6IH 4` xOУ? G~V"$~hKУ?$~hKУ?$~hPC۫?uv}:\Q愽 ?ѳЈJGQ愽 ?ѳЈJGQ愽 ?ѳЈJAm4Q愮j"JGQ愽 ?ѳЈJGQ愽 ?ѳЈJy>ѳY7%ce7xgh.iIVlSa'AxQO~9>oƼf=Wb;+9I DMk v8? WAޝzx8c0^kmcwF`P~Kyc(yom<|ٲNB#[ 'W.atO+ȫ&pCG؟n4atO+ȫaaX*cZ&t#$F Q2 Yf}^oy1f"dJ1\U?GJj_;?Zi%?'Ux9yxt ΟnFck28FIW.f̡:cx:弿)3Yֶ{j #I 9QI$I$Rb7"!oIII$I%)$INOկ:8u/Z'w:e-dI%)$IJI$RI$Ի|:]57*}mcm.5 :ieu{}Tz2ߧUPwCHqʣ5KNU)7;"bP uXcFu_nfgI#nsɽ~=Nc[68y Z'w:e-e}[5ݖ:KjԿS N9wh$?M_7"IICs)zoJ$?M_7"IJqRD v?HN%OWȤ!oJ7JHKWȤcQzoJ[gQE|]$?M_7"IICs)zoJ$?M_7"IJ?ϳD@5h]ſSs))"H~ҿoE/M_7"$+Rs))"N%+T,۫#:{]$?M_7"IICs)zoJ$?M_7"u۲p'Pƹͻkq 0V4drqDD_:7nj"ɷ熏q70x%?9uf'P=~tgՏMt#3xnӲ?bOdϲӶMѿ΁Pg!/EǥZ"$ 6oq%G~_Y~vU(MS+Rs)˒$+Rs))"H~ҿoE/M_7"!oKWȨS[5Q4|?+Rs))"H~ҿoE/M_7"$+Pr2k ;#ۍ OE|SOw:e-eQX#7(;cX>@I$$I)I$JRI$I$,_up_}Oկ:8u/INI$I$$I)N!j"JRI$I$!FW!FW$JRI$I$gQߕgQߕ)I$JRI$gӫȈv}:\$I)I fs\3Xֲė8 8p?g?3y.A sđ}EYY=#llw8賿ʏVbUn8na5ѕelk)1cɇ&ׄw=_wgSQj"r$I)I$JRYG~DD;)"I$I$$I)Ht1_b7$$JRI$I$'w:e-ekNNKoJRI$I$$I)q[V]+ڗIAinPno 'UN1̫/V:CiGYmǗ0zDͻ6]8Ydž5W}k]YG+vGgY;k eW`JR羭ս;nN0Կ@qn?Po4] ']I)ҋ}QDI%#}QDI%#}QDI% ]s~R_4үqRD/iEOM$/iEOM$/j];>.R:}ozJT_4ҋ}"I)_4ҋ}"I)_4ҋ}"I)z6vO??4+R8iɥ??4DR8iɥ??4DR8iɬQޟF2̬NjuhN\5Ij,ۭȻ$ ksT3P.0gs H%?`I/O?/.Xc lrqu_h%ӕkɏ_z[?.} "]YunsL:w#}zx1$ͣbXy]Uu` J5>\OjmrPZ.%MJqJ?'.G??4g&JG??4g&JG??5 ލ摴4Y,"JT_4ҋ}"I)_4ҋ}"I)_4ҋ}"I)_4)z5Údt:?)QJ/h$qJ/h$qA˯>021t]CilYI*I)-oIx}; Ɩ5nV֗<=Y?VԿ)k$$I)I$JRV&.uͦ,\c8K\0D$:Tb2rGCqC* _IŦP)vU;)L|>211-0}W2 6mצIJI$ROկ:8u/Z'w:e$Y$IJI$RI$oKQv\Ե%)$IJI$R++RDI%)$IJI$R3?D3?DI%)%00zN~=YU5ᗱ48Y7D(cT5_7198T`Gs1gWMdf⣥<$ tJL1(|mt3Q:D:~.uQ8#(z qmo DhG_#J.atO+Ȩ}ޫȝ? Qگ([*cj` kZ 4 vRF# v)$E(j"@]MDIJI$RI$;w1gRDI%)$IJI$Rb7"!oIII$I%)%:GIʢpy=2n\V`t/+ȦHhkLJwbkziqկ:8u/Z#uҬ1Ec@ kFnP ]9)$IJI$RI$-5+ qIF\WZf`0x 92pk͞o .%)$ױg`.>Ggqt]}+7lǏRdZӇR쥬voNۍphu/Ӝe~[s|SФ7??g $7??g $7??g _ӷY ouSqJH8qJH8qJH?^8w|]$9q%7??$9q%7??$9q%7???Dnlw%PKߗaYsU7kp.xk8V# &dg> 8k!,VUXDWoi 8216k(Lj]6'2Yo5. mi#-|rgMcG[_~ψ}z(Mz~dvVnq1?*K.XdžB喇qtLv |*VFCG4{Yr]]RΡVfM8m }]Kݏ\GXn\KOq%G=ϗ@jdub:Hs3Jo $7??g $7??g wgSQ-7m&q9q$!A)q$!A)q$w1gqFk@f|?7??g $7??g $7??DguKrisql9d=]5iHǎY/#J1`o":!oU=np?.Pm9Vx48Ͼ?3uv^]xg<~ycozw]Ɨ'iq}}})nEz; 1v.?qkƆ%JyvuFV>=nۯ}- s13=ABYHr ZVԿ)k,tZsq{Zn qk h-XԒI$$I)I$JRI$dt^vV=Tm,{\!D+i$,_up_}Oկ:8u/INI$I$$I)N!j"JRI$I$!FW!FW$JRI$I$gQߕGe[vg Eޞ6%/{4G!_?ϳT>@uRLYe߃#tOQj卮c>Oai+ʏFgۛYDyQ-gitI$)ϧWKu\Թ%$I$RI$I%#w}v5%)$IJI$Rb;"!şwIII$I%)P잧`Տ\8v1t'>`}Pyuzi<Yw13:?t1_$I)I$JRI$_up_}Oկ:8u/Z)I$JRI$I$$I)I$JR']KYdZӇR줔$I)I$JRI$j"N$$I)I$JR}oz"}ozJHI$$I)}.EYW:ffٛ[Ckʾ5ցS]E٭yƬFqV~{IyYNUE⟡~[7[fSct|Mf'>)@G& V08_Yh|OY.y>-JieG&97/$ q{ݥܹ$Qߕvbn4cb̟.bӇH0;<<ė8J2H#b ICsRD;>_?.III$I%)$IHj"@]MDIJI$RI$[޵U^V.;ʯ>̠'`N)z4{ǩ~ݣ}X6WSr>{n,"dc OO˛, c FZdZӇR줔zD$G"I)OK'"$D$G"I)v;uq'Ok?䒯qRD'%?IHG^?oI$'( 8n-#FWzD%sqϧ"Sb xif[ 3&OLSc9P"P2!2~YGBWr,mmk;F4rߴ2/oJo/ byWdO; 5V'H/GtwMuVưH1#sr f=" 7զguIdIOtr GYwv)O'$gX~?oI/Q$JG?{H$~?oIBѸCGCsR䔯Q$ODI%#{IzD$DR?Q$d'cV31/ۘBY$uc].LM5d#)RQ0^X7xݥ?YUv/w}v5 agۓJ4?ifV_ؿ֗,;z?vq?CgUei~ʬ_I. agۓJ97M:l91hv}*ujiznөdt;B2Lh v {IzD$DZ'%?IHG^?oI$'(Sc5M5|?GQ%+'%?IHG^?oI$' dcVNF[uA^xI$gI}ԹAέKNnQ-v=< adZӇR쥬I$$I)I$JRI$I$,_up_}Oկ:8u/INI$I$$I)N!j"JRI$J]ɿ glj|i9 Ё8o""/EcQ#u,._X{ֵK\ƞ*~!?YDD%P`ػw}v59I$JRI$Qߑ,"JHI$$I)I$JRWFDD:?)"I$I$$I)']KYdZӇR쥬I$$I)I$JRI$Kp쮌 {Fe$2_M;tV۸7Gܴ=)Y?VԿ)k.{X-a:RTw̧7w׎SФz?3$z?3$z?3_ӷHucutGOף#? )"JWSUsrǬX4b\ᮈ ~㝹! ^ 7 y+3/fc_k=db]F/_۽,1?K;vL; XNe5$#ψGã+&YVP +CQ+~ETcc-cc"t H]O6 Z&G1 TAm!)Ȃ;y:H~pKף#? $z?3$ p7_}UVhI)l Y:G~V",׺G\'ׯſSп߯$k'ݳ$}%CB,O~_Yb_vk'  ,?I~_eoK?>}?K+7OP[$񲺝@ݔߔv}:\Ժv_\8T^jۺHZ6]IuqcttG(L_2p@ČgB(9:H~pKף#? )CH^pIICH^pIJIh}< ~pIICH^pIICH^pIIb;% `4x$!g/^8$!g/^8$!g/^8$t1_H7R)h<Rtz?3GFRDz?3GFRDz?3z_O][>Y[K'h/p%4éRXU.#j;>C7(pЂJRI$I$$I)I$JRUz/Y>xiuْzʞ{+IL)zE mUT` kZ kZ4kNNKo']I)I$RI$I%#qRD:-DINgV5o e4,w.[n&ei :?x2׶|Gr_nģdԳ'~ ޛg1r,Y-hw=_I&/R}oz"}ozJHI$$I)JZ_۪CzegV?,i(ȵ<ƸySgOF^_L~ u}wb"}wb"sI$I%)ϧWKu\Թ%$I$RI$I%#w}v5%)$IJI$Rb;"!şwIII$I%)$IJCȈGQ%$I$RI$I%9?VԿ)k,_up_}RI$I%)$IJI$RI$kNNKo']I)I$RI$rz,^ӬZw/cZֲ"}sF]WיE]?dY>e&F%O. 2 Ta9z1w[Dt:n%y#2K>c}ltOz=o-ؗEn{vMTcdsj$r^1B2kߝNy(3^[kaUv^]**6IUԓ$I|J uRI^fM̨z,Z\9`4U=swx>ٕKeѭ7 V+jAG~^"7)(zDB`{f'Yz=wb%دOG'b^] g+%<~Uhz=wb%آ0zXfePbC*}nsvnIp}  tnjb>; >;9I$JRI$gӫȈv}:\$I)I$JRI$TD;?ꚈI$$I)Hw1gb;$$JRI$I$!oDCȒ$I)I$JRI$_up_}Oկ:8u/Z)I$JRI$I$$I)Ku32t֗m׵WXll~];#ê˱Ex2Nj6Z%)Y?VԿ)k.{G.,czRhw̦9wӞSФQ愽 ?ѳВ$|  zX]j8&[_'WQ %(bug) "45\UGKODOb_'WPHpCFW"brTEGmWj"]1-ǻ9ϥ$$[ܕn'_E4JDCQy1`9@xdcz8IPпد"]xpJ7T?`t/+ȥn'_E+abpJ+C }oz·k{l!siF)p1lZ>VIC0JW #C(FB^hNbHG6(FBJHG6(FBJQ}wb"Ylg%$IУ? zg%$IУ? zg%$CsR ?ѳСe4WWA~Rt ?ѳЗG6RD ?ѳЗG6RD ?ѳЗG6Rj""sGG6RD ?ѳЗG6RD ?ѳЗG6RD;zgBiEm4@ ):H~hKУ? )"H~hKУ? )"H~hKУ? )"WFD ?ѳСM4k&Z $$?Bl4%Q愔$?Bl4%Q愔$?Bl4 +Vo XDIM?_up_}?Jj/6 ֵ kZ4I$$I)I$JRI$I$,_up_}3k;[N-f/Tې-ƷO(~KH}'7&l{l 9s`(zw]ƫ vNٱ+M6SVKf>&%G)hj\83J; >;%)$IJI$Ru\ԹϧWKRDI%)$IJI$R;?ꚈwgSQRI$I%),""YG~D$IJI$RI$:?t1_RDI%)$IJI$SkNNKo']KY%)$IJI$RI$I%)$NopW"|u^<1{lmOk;SϩU:ÞgZa -!tk'w:e Eׁџ3w9.-iwڦ{T\>f/}6Y4?\ͧl5ssRbiT2Yïpj;F)];7Pܖw%6wn,YO[~f1?LOu׸[U{f`}Eв.,#+lm@DmtCrYԗ麇䳿k$ӿugR_kޥܧY]7e՛X5,m=C]/*/m?62UM0~ )~tZkPּj%R];7Pܖw*C6хvvsȦ1)~-Ma>Hۺnl?inKݿܒӿugR_kޥ>~S0vICcd͞+d^@Ѡ4ͮK;z];7Pܖw-e_=b Ms;]/h̖o :$麇䳿EU:M?9si,qkhvYg3!Y8v]ԜKL*u5WSL{ ]y m-}6ܾ2H^}f~˳͢3sn$CmtCrYԗ麇䳿ggu>n_Me$~e>?hهfUUUm{ L2rre,&V~Y}NBRNM?%IͮK;zI)];7Pܖw%6wn,Zj-a~vwdճgVŪmX]-v-47qiӸ;w LnheαxkksAh#KmtCrYԱzY=K/;2˳uukk;^7 ku?i:t}a}cGj;xFͮK;z];7Pܖw(GN6r2 [K][cC54p;vS6wn,KmtCrYԵINO麇䳿F瞧'"{֖Y[kC木 ^NfvF[ʮfъ֚-q-h pn靥=/;ԯ̲vدe"}\K?@k]Ph{fd꒝ӿugR_kޥ󺛪=J/woR)Ŀ3owfNtR2]biq/[uA{홓Jt?NM?%IͮK;zI)];7Pܖw%6wn,Z˟99F3,Z1N3Y)C d $麇䳿F'QC󪪦W[:kZִCZ֌S_*:YK1*n3%sVaKs3‡ۺkmfKݳڒӿugR_kޥ~ej};)?ٻl9m%9?kޤNM?%KY$ͮK;z];7Pܖw,߬_[2>v.%Xm90XYuo`SfD4h$5v/ZXm=_aќZe<c툃Jz ^<65ֽֽ}{\V33jJ( wRiģ3ʟo֖o"uLںR2Bⱔn(9uc툃JzdI%)$IJI$RI$I%5Ÿ1 9TUkzKVۓnMٹ7L;ӨET^gl/$I$$I)6K˃lic8;^4+0}^WVGScүm9}v7?MLFJrGnjedu?[?=*ӑc~N?$k&(ffdgMOe4cQ@;LƑ$I$*=cɻ}okɺ@;WINe2+nsF?sÌikf}0?Wet}+##nI?OmW-hyl7EJrOY]d[uS;u6UKZa" ^«km;hkeyt4VIJI$Rlȡ}tEԆ: J SҨ9b" \6S۶cCHI%9?zF>Ցϴ}oKz>N#_KoSڲ>}^}~GcqkY+**핲$q%5kZ 8ց$5IHOgOe"=knEL[[hJ^e ɤX>`][~Zc8RNp-[e nշt5qi9۵sH-$m$~} c1lƩ 8/deddz?6}m/3赒INHKyYYvzMeyciGkİå+?+mɷ&ܛ~G^ Y u3uIJI+**핲$q%5kZ 8ց$5SeX[R5\k/xbQZ]ov2 _QPN;(# ac=vrЦ*e=kC뱄9kpЂ+ʢcMac%H#a)Wl{pXNF]%8Ol$Fz_ڙYOǷJm߲S62DiβI)(ffdgMOe4cQ@;LƑ$JRI$: *rوZ2 nmN,}!˞Ev9{d˵PN߭d]Kdž:utm`s&]I%98_Wó?YzxPݎZ=d˵K 8vc~v>K=/O]{̙vY$I%)f[˳r7$a<ꅌxy׆R?66{VI)̷ fY.nHy {W ~ll}iVGϰ~_o=H>k$O?j>z>_GdIJI$S_; Khedݏmy ub|߫YE8ӱ+Ǭ{1`@+m$6adf[7U(lxow=ojibggz]F·MX:GZqha?R[Yp$v$3#ۗO\?'NfNc~È(oFpBz2Ykԭ׬m4ԍڈpUY)$Ǧv4P"fhlk$}znm&zNe'TmkMzAh<fQCu]+#+#&2GdXP~0֙IO?г~Ӈ:FGew;6Kt5 ~G`ژvjSv˪[X.;js\]it9ݺ_ ZKc eu=%4sX:Uw0ګwwmL{dRëYպX}dcY{Ń$9tomUP[Yʬed& Al$'._pe>6AhuU6es\!/k?oZSȪ5?du[پTK ٞ.{}6EUwWP@sǒbL5MI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%? endstream endobj 263 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F27 41 0 R /F21 16 0 R /F18 5 0 R /F19 7 0 R >> /XObject << /Im33 260 0 R >> /ProcSet [ /PDF /Text ] >> endobj 270 0 obj << /Length 290 /Filter /FlateDecode >> stream xUMOA +z9L$hXO a5w+eҾmNiF&3% btA::WE maEwy'ƵT1M/b|u6HQDق#i{cFD&Qm0j82FZ+66{X By:-HkZ8NJy˯ֻe0DegU?bcKݠ-3_,.MkM mNy~WIZu>?1j endstream endobj 269 0 obj << /Type /Page /Contents 270 0 R /Resources 268 0 R /MediaBox [0 0 595.276 841.89] /Parent 253 0 R >> endobj 261 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/PT-MSP.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 271 0 R /BBox [0 0 853 650] /Resources << /XObject << /Im0 272 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 853 0 0 650 0 0 cm /Im0 Do Q endstream endobj 271 0 obj << /CreationDate (D:20080806143848+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080806143914+02'00') >> endobj 272 0 obj << /Subtype /Image /Length 69092 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 853 /Height 650 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;U"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?T\~noY:iwӋ}uUUUlkcZK=e!el ,Kz]Xė/%!~/h^y%/C_x./wma^]˼kx<V\wXgSfL2ۋaݢ[Zok,PZt8W[N1fQ[,,i{qHc77&B1'k11no.Ӭ2[4s֐d~gZ1 o';K? u4~0%Ѽ3jcGQeXm루dv>tCMާ}`5dǏQrQkg#[j7E-' _c@v\n}=_u&?Ŏo>5:$ }YWusF5u{h_4"1jP[tI%I$I%)$IJI$RI$`z=zR—緯@Vmo$V \Ogl.?ҿo^ cܼ԰]-ϳҭ {&!dž_X7QcdZʩ2YޣAer>$P2f 0*ýsm{p[3jGϏQ:  2~eDžmqY:=lξfm[3}VEycgaכv0O(0Z_D$2G|ݟc}~=/_dl1.o'''5x˲h@cK߫Wdٍkn3-~skTD4GRү/܋kxu m@E\G>Ewݾp6TA>C<!9Wʷe8V\*k9v Iǵ߈zd%ӳOͦﴚ~eu-ufK`[z d9ٶQN-DC̼G;]#.;MTf-55a-9$ZZ#wMzNfuqY^`k߼\yF_H5EI.q7|wdaWgMfEj :.+Y(ҒI$I$RI$I%)%[]f?MȤ,{Ú`,*=}+eWu=Bh~87okfқ)02aXxK57>ɳck}^w[m&VU}mtXAx5z3վ?MfN3r{7Э%Cpu v%C0hgCv׉/v6Ge{R^$,J]Zvn[\펵?rՏzb}S}-Ҙ[lGg7mWu=ΓkIe[:F3~^ugQjt#+$V}Dhz$NZT+ѿߋkZ'%z7kYf:jI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$.7W.qv˽o xJcR$fddf.>L컍,j`U\NUS}߃75@Vt5SQf5& i?WUF-]ycZַ*4̘}wzY.ZپI(XTI$?Կ`z=zl||I,fޛYZXI!!֕ކΕo},ߏ_7ٽ)x_-\OglW_[ҺM拏C+7~٥sX>nf&V61U/s7ⓒCzD4ʓ13c, tss}9gda_\tY~o},ݐ徝~٥*oCe7Y!}}:J"^z Kz4mmlY1e>y}Pӷ~k?vB^Smn!޵1Eu},7uoGNe n;*\p٧GI̯6uX X+k:xp>U~ >ȐM tYOW>މnNfWkOP۰<4>GE qXƺ,imkâ7G\#]7W]/xYOoȶMH2lϴMo*@plʃpVHpG}ܺaU[ol6p-s gQ dYyEr)#O{ajvq{j3cWޡ^潘 o"g此pTI$!S7n5OYL<\UW}?84ԾVRq}ĩv vBuO k+s_mrlgtϩ5;.ӋY/YVտj ֎:\-v/Sb8U9β6@ WbәVf3ӐSxix*e6>NU\Wc̖l1 hU}_ n_0'n70ݳשn-[}\>Ghv=Zi+ #gv>qs1 ]AV0/(,۶'cI|8VHpDkI3n5?W}.'~Kr\}>d?S,"0C;$ylUvM?uػ=f}AG2?D~{w讲2:nA`=cE cSn]ًh^Y>7 ]#KdĘIcI@*}پ-&wm9=I-$cO}uSw۽/f贳33 ՙvM?uػ=f}AG2Bx_$H>W<ֵO?Jo7ֲtԒI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K]n]zlcVɺaeg洏;_.ڥUr^ϩ}f]cu,k)%k_6kFkheW 0؝#ӕoZet;OmaҰX82_EY]~{$GvS3=~԰2:[mkׇVւ][Lid,?_VzeXّsCd<ns3=\*՛~;~:\ss<+SWտF54@JJ{r?w.s=/=y gl?Osi\{ϓ-qǹC}Hh44ۚ5GkU$^p:KH4hk^4pZN^G~Oi 6e<}'~k\^z#NOKk{FI6n{I燶q^?JiI}$sI2I:J]6M9t#| Ik4$Ps? `~AI$4ԒI$?Կ`z=zl||FM?ǷVVd>kuC[c855[4~C[eY[+1!Y n݌X֘o)q&K,-WtzWSr>lYI+R'#cۓ]1\δᬍ^ ʸ*2r>v>ݹ5c; uKle gE_$>I$I$$I)I$JRI$I$-?G=1`ޑYc?!x0C!}T9Go͇ v7szF7W\*ڽ2NۚoUypz7YK/F?*/ z.?#[fTbol"cb0׋Mt0ŵ40@Rbq.q4 b`e0nu5>rƗG:WMϿzCeIHOl[k^ǀAeW]hWmP~< @;yd=sr11:#{:.CךC̍{E=GfW.v&[jV/Fq:v[1+eB{vXubV3>ܗccns_}ٶ\ ȋ^^ekm;^λeev`7|JE: vcNj+8Nb!m:Z+n bd VʎEȯAJgqDŽ?*q-Y8tya 1]alq+]*>o 0/k6{.?Վ]6uMosY_8u<;0rw 8ÆH@Hj1:o^NOU,Ȣp{.u;t]ľ=k0mYe,lcfmDύg7Mn&+KklLN>)$J֙oj- ΚNz^sk#\]$8gz {F4ܕo /+#1dUnVa͞7f]fQz&F8`>DzY%7Z֛[_/]m5>f2qY)8g3ekv|ҩz^?LeYm;u\<i¶D@,s ȐT+ѿߋkZ'%z7kYg:*I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$.7W.qv˽o xJcZ73eUNusceVʚF¾߭{Xrk;^Y-tCWÁPY7gUl\E<كc[j'rW/}}oS/|2/yN}I::O_:_e_󡤗O` ?GIY$bak-˵:l&簖<5Zu I3&cQfc{5YX9氵ٗ6[& Y[l6}tK> ]]3ލΗFsk/9s$$*?WMWIK,zη~{]k2vMaC}Mb4h8 2Fm{5W摡+&d ׺̹UZI$,*I$SA_R =K _޽Z>mWcT&cul+}e~5:!۱KRl?!oղ},nq,kLjjdtzW]=+ f96,I$OQVcɮk^Z[epF/ e\\cu*i5x9si oGQ,P3]1Vh $xkCٞXfc[_Pꤳw#oYYR{{+}E%޳zVb^? E%޳zVb^? E%޳zVb^? E%޳zVb^? E%޳zVb^? ESӿ˿% g+_mg1e_~_n5o9f-;*9(R0d;L3-fM;<:KZf[)A:A RI$ms{p i$tSE='KqדSEu2/2:9֖i\kzN.^^οy/-CֱՍA=GL}O~ 2]itI=;SYwگf36aLIh# K:uV0;R&-eWvUn ߃Hp2?jN.zzF~cgF>ך^ʵՍn@ŶީwMoϣc^;NHMOtNB:u `zfc r3r 0?P6U۷Rxq;`uK&Zܗ2a~A\M8kC͕qo W<ֵO?Jo7ֲtԒI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K]n]zllS5WzVu+}[]ϗ k +osZܗ9yLv;YMszֶg{Z"THmڰ$Gco+%7VkcK? u?]?[lWKo+)A9Ηl{{yvaa7V+q? f_[o:^^oݟXAObl~A9Η?WgJl~A9·x}r~-ԕ/3/y7`r.8U[*:k}W]u~SZִIsgϿ;I'q-Pqd_awCǾ+ʡ깍A׍0`QX`z=zR—緯@Vmo?U(ɧ[*l_qkvgƴƫy`T&cul+}e~5:!۱K.#p;q]?垕W`Jٿx*|?G͋7rrRI%}gXUzG.ύ]GiݺcYoΧln't?[}]9Qa]Mc1ke{ Y:L9r({q- ctޑkTKla:sYHHOZ,F3qFKȭ8) 439\n?Fy}PŮz״93a?Gܩ U%CuA%=XءʺEVlpf豻O_QDϧ;\Cɿ/Sؙt\;9L@cxS`ZԆqs^zNX.Fy]k2#m{+4`[ wL U>nSjˡL6ƛܹΑVE,ol.K<hs!u^UbnEkݐkwߧb.OVXW733qާoRf>Ҭާw3۰ҟᾰ?*߬tn,91C78c=9{KIԒ{3ޯqơ˪ \[Z3hekߐ[[i}l;$ct_X:*2~=;'Zjc/IwcU_-]ka61ZګpMq3KA ):gEvV=^XݕXvk}afUie6v4<:6Mg}K]^=w=ԺV2gLd6`apV_H89œNOv轶m>Luatf?NZmKC^27ml Ĕ8K/f8K/fG;'/$IVsZ<5:b)бm↾k-w\-D1p DؐgMe98+un{h<2zH̪rqي]>րnHӺI.zqԴk}*UT11p 8{IatH&mfI#.#YRI$I$^_ZY?T+ѿߋkZ1RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$..wế v]nP'Շo8ٕ3"}V=\ k6>NUY ?`˲~wM̨˨ޜA@-!h\O?z\W/? UѲq:{ssF#\wX@`qeE&G%j͏Smw}9ٕك/`m5d "E>%coff.&V-V9}Β\TAҾu/}KߋnkV&'6>NU\9xՕv%bȡe[} KJo Prz(S,ecŕAcIZl}[ʜ 8? WAsC&w\U-EߝԱjqCݤ;N߭}1zGc-[NJmS6>NUX 7{=ff=OKf7.׿0U{mm;@{St2z- /\s٘Jwտj ͏SI)Va%6>NUZI$7l}[ʜ 8? WAi$WAg_zo=h,n|n|R—緯@^A_R -mr74~C[eY[+1!Y n݌X֘o,da {}neoCƸYd5v3cZcUnP|'u.?ҿo^ Y_[7Ofn^NJI$nMm9#g aӋOģ*esа'{?ig|uz^ޜΛomB6+3DžppYUה! {.)UEz;5m-2*iC~߫E~&kک99{+ke65j8:.[vLm״l;}F7w%:uccP,V1zgM9cJX WmyTVVsCz^?3~ݛDʩ~nV==?_SKY`g^ʫmMkwKxUO?T0qq_SIƩȱƬ{[}W2k5KhoKhoK2Y>񋼾f*<7SZ)|{p`&T0`}^[1U>mY-i/kDOOOO/ݏ_x_c{KN7`7mM6Nc!u =?}?xP>t̪]E9|I gGՆ;G2oXƿU]k_cn(ּU=I6XtVŒ>PT9}I%>)>)yczb/\O——eޫ{d omoφ#a AO}E>nJ2i=Vʲ!Wc\Cݻı1X?U(ɧ[*l_qkvgƴƫyK6N\Ogl.?ҿo^ bܼI_h;V?77zbrKO8c:\jyc+-.a- Z*mpk j3,MPnů*^jk\FClsvƷvl߮=n@nS]u:YGD]8#{`rJr>~uL;2:9_X^| {Yl>뙕da`Ui"|I'FD?ܒ.}??PγԱ- 1;}u쏁l7=iU`նCKtr`r_toO،II>_gT꯱75[QaMStffYmۯKkaF4`r_toO،IOR?ܗ8#{SԤoq:7'F%'FD).[Nѿ?b0%4~_۫ѕNk2h%8j9ąmh#d⤒I9jI$I%)$IJI$RI$I%)$IOaOM浬~W<ֵcI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\][uo_g>O1"Ǡ݉ײèkP}@`c+p~NSav0nidu]cchc/; mԐF utu?[ى>{fC+7uf~(}Wo-*IT{qC?]O6beY徝~٥*li}{!}}:JU/<\PťWS C7od2oyo_|{4%RZUu?[ى>{fC+7uf~(}Wo-*IT{qC?]O6beY徝~٥*li}{!}}:JU/<\PťWS C7od2oyo_|{4%R\n} ~܌fY{=&VƱUxyһ ކΕo},ߏ_7ٽ+ /){zgȕN}j5w̟GedSuMy;)*pssCvhZкV3TJٿx+\Ogl.#Ǜy9)$i*2r>v>ݹ5c; uKle R'#cۓ]1\δᬍ^ ʸ[X>CꤒILI$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$^_ZY?T+ѿߋkZ1RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,7.{n-uZ5I*U7xe~gG*c߲U2YQ.n:Ӵ %ݒU62: 6۩!iӒ6/T"(ї^)ޅҷO8G`ޅҗ^+q$G`87xe~g3z_JI.+v^)ޅҷKv 3z_J_7xe~gĒG`ޅҗ^+q$G`87xe~g3z_JI.+v^)ޅҷKv gԟVfSx-{Zrun e$I%JwI]Sg<<|J}?Tvnw;Di$'iUn4_ OZ$_3[:gIoԱ۔1Y7Fݡwm2?_ OUѓ}z-1^֖\5D[ɑ>4I9?OStI47OZI=O?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&IL)zE mUT` kZ kZ44IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)`{C؝PamԐF vU62: 6۩!iӒLԡ/vH$IRI$I$$I)I$JRI$I$$I)I$JRI$I$$uV=[VK뱄sjyk ֺ2r?coVŲ6v:+7xh+yyP]WY21-}Gs;(CzXƱ~ @~toTh"$%"jW=%~d^z%~d^J{ė5^~%{/m??)\{oKkK$Ip_Y/׿,%~d^J{ėO :dPen.gOSTtޛwPY )DI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)`{C؝PamԐF vU62: 6۩!iӒLԡ/vH$IRI$I$$I)I$JRI$I$$I)I$JRI$I$,?o6-egM_ĔuϭtΧOF'fQ5{Y; Bw dm\\[ 7]v\zoQ|nL1d=<4 f}V;Vtf %ݐRSwl' Λҋ4zj`nh=/FWYN>즽r+'n,mpkR>׆;wzkuU>wUu*:>&m_Qc]c\ 4jF_܌,^mg-kMk% W:^zgL +enT]i}MR:^Ug=̩{~~hFQͳ'*ZÅjcdX8^~T;u:>T lћm]tΉWUe9lį "[71l}(INywY]T]}aX-[/uOڇWB\nM;Ȉ SҾNetFc$`n'h-]shXw:̗{b>}e}:Υ(d [Wem$֙QnC[F>ie88_X.AupYTnmkk{Ϣݣ#:X>wzh?G1Wi}[秮MW~>>'z}o]gMo#$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJX=#꾴`_'TAᴹu$4A:r]zF=}i}N0sis Hi#ct乓5(j:$zI$$I)I$JRI$I$$I)I$JRI$I$$I)K?-bԿ'" n}{S]C'FOCu﮼zߒڋ[aϊMW0YS uuP%ӣv^VՑS轍ZYeos\!sN3]kts V7|lYkZ%dLm~`7bcv6FӅK7Aʹd\rCE~CLL71n3!e)n~_N)Sӯөѹ?YW3٣Jã#z}۾tGہ{vWXǧkp=,XLweV5$'RW3٣Iz+lɥu~#,I}b)3aәk5+v7wU]G1mp6V=ؐ4i/[as??4Lַ=[ӝY#cjVپO $o\fM%?gG&Ijhлtr?:xӐ+Ԕ~4i/[as??4O`ߕҫ@ du`oyG+YsΡ[\x9o~ 8אƯٗ1JߑuR^|Rcu%+L~e2k)3z1l:q |FοK:/JeV0mZ潎So_cI%USΞv /3n:AI%9?i?cj_zGɮ}O ۻƓJrl8e {ҫwm.yFןJr/NC?οK:/JeV0mZ潎INO=?bҋY%47OZJuY?S־KѶU=]5cg4;%6wn,INK'nWo/,2)t=>#X)~?{?INK'gZߋlBz-3)Ʋ:ǣç`hy}Ku-c6sn~VY$Ϸ;. q}_kXLc\fViݩ@OACo`zJ{$ 8~b v%,XO:I)7֯w$>S?݉uc{c]ǂ5:INKe=3OLSux*آ}GX=hl*O׷b}_]W+>eUe-skۘǂ$%=bKSwPgMW۝EmKg\G[sq~]yWd-̲\+ qs d%=KKqzLN]/ 6KZiINyVzo !2:s~=f3kl6sրZ?HkJvR^e~ǭed75WZ2= lWU6dT/ydcX\V(im̻rc@nw#X쒞%ONG-6s H:,[fwDfS}6UķsZhCh$IJI$RI$I%)$IJI$RI$I%)$IJI$R;>Ik:v\`[Nh$?w*s߃JGzZpKڬun.ahН d&:L.m8ϫ#3+ WY'|Uj4)8R5RC dUmXL4bTƁuyi=4N⒛`!k.,{^6oc؅:Uӕo!^ە}o`2hO*ߝrJzI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IN'?]N,噍sőͼ=ږ m^"Nic?EIM.Uz632ᕰl~W:R7K2ceb-nDjuΩwG.X].0ZmW?F;za~v;^`gKޗK䒞EӇNe.C'au~zu5Cӳk;skO-=^I$$I)I$JRI$I$,u_Z~_chc/ \mH9.X=#꾴`_'TAᴹu$4A:r\ɚ5N]I=eXm625ȯsN4[E0CAP9zwYW;?߉+R_}-{ݕV^,vo۪Jo^7;yR;Pnw9mG͞-Zպ}VRR/NC?^7;yRTz'W2ײhcY8r;Pnw9zwI$ӿ*AGkI,wͶu~o:Og?7yV/VF\`=[``?7r.}Yً;Y s<t6u7'tkhpie{Kkj4SMf'0G٧QK:Og?7yRSf>Ώ:6wP}2_UMݼ3CARz0:=;/%?es۷Wc:Og?7yR}'3)z^~_ϫO?jsF^ipqf}k/7JٗsNETkˬ>ǐ_QgNӧ]:Og?7yR}'3)Opzt:-}6,\q}?J赥l{gi{0ߍMv i s;qʗ?IN>G@shu:i;W\>=У~o':;3U[CHs~}?Ku~o򤧚+o7_ѩVv c2lͼsn5m@>~9AZ11􎵇F>7MpneNkƝ۵'vwYq3\dS2qŴ9}R;tk%:i$JRI$I$$I)I$JRI$I$$I)I$JRI$^oMՕG.OS~vۺ&$.buVe37s`%4?տؚk#U.C2fET}d4hZ곺MC򲰨jɨVǿۡv}r;3zRSOnKŶw<wZ7ޥv]~O= ft8W_@ܿޕg}[++un><_mIx$Q$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S}~ulƽ{j̬@s9w+_W,{kn6h/!IW; OتJy έnOǭͲ=x>r 'v}U˞TDg_OINK'v}U˞TDg_OINK'v}U˞TDg_OINK'v}U˞TDg_OINI$I$,u_Z~_chc/ \mH9.X=#꾴`_'TAᴹu$4A:r\ɚ5N]I=}QqDOFʄOstƞqp>uA9gR)#6~oNv.gO]U9-m-vݮs:}f?AYzXͥ=}[gլL.÷*P8mBL\k\ƽQ>t| 0[ffKkLmhRS&0dknO_6u {\srJxnZ8Vaϼ6 {i^C?tڨk0cIphVH:y:g~G*ZlawΛVM4cݵ6:I'RNw,>_K\6Qw}m*Amm}7\OrI$$I)I$JR^bY?[?+ߕlIN7Bιqn;C{K8IF0?\2}?fʯ8fۚv9h=Ot;Y&K8u$I$|쎏~ur3z({Cd897<tvdq2NuMi K3˧/ hc{S#?#Z(,Kt|CIN%_M{lw :)T_)(T_$a$IJI$RI$I%)$IJI$RI$I%)$IJI$R+ֺ[>~C#cfEC8-\G\|߭WPFGNmvW8;&y--cқ'?,^]ղ e`5]I;w*9YUg{k Yh4zfǸ&=.Ԭ/X}@IJ@'"s~ )Vo xRVo xW3o}m  mf.IyM&<ӳ~ܟm>Inݞݻ?_^gx_—^gx_¸ϬY];dXo7?SCq0[c]k=[2]鹀l% dۙJulC[xJg>>_Gռ*Rɻ+ޑz);1_Dtduz\rٷuu:di2}[/3/K}[/3/X_T[.p-ٓhF띉FUkK61 ;)}Aʱ626eڛJvz]vuLr_E^`эp ӋSefYYˣIJI$RI$I%)$IJI$RI$I%)$IJI$RI$]{gkzF&nii8 G]=*ޫxۓ2՝ L@p-|Vu KL L[v C]q:] snkM{k"8 )~ޟea_k ̫5. i5ez?dnV||iVuf<&XޘLj\ِ-EcTO[z^]=S$R9ޥ.o3N-m[l-.8l.]m}Ŗu&~C5=-ht|\>c01Uk[k4N6Y-ߏ]>'k|zSu,ltrOjNsT#:{ĭR jk`$Ⲿedfatzv%Dz ~M h ?䒞];Sײ Ȯ*fٵ4q.u[2(uwdbջ:F$~k;uN9_tfR=U]acqp% UlioӇhqhn%4IL0~t1[V]帳*Mt^ڧgV9?.ϕ*=\kvebW<: OG'==%=BI$I$,u_Z~_chc/ \mH9.X=#꾴`_'TAᴹu$4A:r\ɚ5N]I=OYz,zпgdI%)$IJI$RI$I%)$IJI$RI$I%)f}g܏}Zm%\9<5hԒVI) Y׵eg3s`~!tWerzV_GdǚWN~~Y%Vm?GWoL{OŮ!uI$fwHيZXhoKG7`xR>/}g~8۳gcli I%<][M8[CtƵhցGRާٰs)fcwm$B6C^M9NYM{n %LO~Ù33ve.$??Pvo+U[cz<]2mk.c~r,a,pBI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R?w*߃N@gPwQ?+ ):װqY_SrܣXV#69־9w CzQg6ܼZr,kmm{A&$s+._’z'V~+k1׍ιg}{xz=?W/rW]0/}C/INQ{uoWbgPk9[D3G'=o7T=&j̯a _s+._’Zu쎱xW2ݐEI%w)$$I)I$JRU62: 6۩!iӒ1O m ebuAKmRCI4ӧ%̙CP._oI$=/.OV9hfa6~7*?U1?7zbRPS7)~{m INwީfal|Kg\.ׅ֒'u?;+"5fO/ٽS/s/Z)#;)??fOh;oTo xR??\#ٽS/s/B翮g,W,{jU?X5fO/ٽS/s/Z)#;)}s8^CB;9 ?ym&*/GoJIz^fx_ć:\cxQ.%y?S?BJf:Ci-kak>7(cfkUI 3tsfO/ٽS/s/Z)'p\ٽS/s/KoTo xVIpsfOR~'[@k!ٶۈClt ĎVci8<8f85q `>09>@J!NxY߉[Yc=F~mBQ̩ޔw|un|3mxixuxpD.ñݳ2klRzxѾfǂ`tTOШӇNTyT+ϧYVn6cpmbS!zr`Tv}U˞TDg_OVNSWv}U˞TDg_OVKM_W.zSUU?QZUoOت\*jϪs*(=?bҊIpx;>Oت_\J'<盕Oت?aƻ<ܵSl[ =?b҉Ϫs*($\J%;>Oت{??.@t!Ǭ2ֱ_wZ浦SҁΩpx=?bҊQNNɧ.cZ%$LSE_mM'sH:=h83l1'ٹX;5~6;sKߴdS\XL 'V>7EG_{ )G֯H'p4#Ww$R_? WK)˶߭UYK>Ϭ Cd?E_? F<盕B)G֯H%Џ_? J>7E_I.}j?`nMZoOw?onD-E[_ԔB֯HZO"SB>7E(s}$B)G֯H%Џ_? To_Z}WOwmuO ;zua?&2W@hg֯ H*&-wכ]pȰ; mTcb lHտhՠ#o?h <quRI$Ȥ 8L?qRRQ35媲?盖?(a)$NXI%)Vv/E!YU0N=csq[6< 6߳(k[ݣJ7 z /Ӵf( ݋FQԫq(/)6lĺvC 8t@T,.s(^p1?kXC;gޜk&:'I%*I$*7SUzW(OU)I"$I)I$Jke?ʭy7+()I$*RI$=SOBEǟr&ɛUoU(WUT/RI$7-U?aƻ<ܵTCOI$rƵPzR5]K1rmŭly`#JFG5Tmm6cl n yisCX'Ssr]Z_mvKC.5~Gͳ܏rەhp2XtEk ^= T6Iq$@?zX J KZNwO$~BMo kKV҂I'I$Jke?ʭy7+()I$*RI$u?;+"ONTI$RI$I%)a?&2XyɌ?I$fRI$$^_xT,˰o*CVUnէ[VQIk\ܜ[t"4Ry}7eakmufz6KknҲ6mLT P4t}at>v9 *=_562X\cG2%5ʾaoOO΍?MӸ,C7rJI$RI$1O m ebuAKmRCI4ӧ%cW֟7<60n60h=NK3R\I#I'ccUw]]Led<[#c-5(RI$T[_ԕeVvWE%I$I$$I)JOa[0)I"V]?Vտhՠ(teI$c"03#`AgHIIG?盖0]nZX'̤I9bI$[ؿԅeVv/E!4].龎nK*4) Ɗ߾`\[67FO[N&ѿf+~O p=$PmN㹭`{%{ 3{X?Qլ}YzkS?aXZ;_{C?>IsCKI`$RI$W(OUʭ_E?WI$I$$I)y7+*_<ܬ$HI$JhNq?z sJ<&l[4WUT?u_VRI$Jb?aƻ<ܵVPrR 9>e$I4]UB,N13^s]N?=-u|᫦PuY].ܼ+o٫ 쮡578~ms7s1Փ,t?R8~*83le%3 뛋BM,/ ?{h;oqU$IRI$ǟre? RI$I$*ON*S,(6RI$TI%)$IJXyɌo_oc&+I(I$"rz ?)>K2<ʷPaՕ[0?inCo_7O#lH^y a:_Qɦe5]uzk}GvI.hY?`u< B? eKw1ƷaQݩfRS VNgt=G:@*?ߝrQu)$AJI$RHǺ?X/1nxm.aI $l`{No,u_Z~_chc/ \mH9.dJr}'dI$Wޕuu1?sfɒ5o'>/U^;,5sj`s\:~R:i,c-?&_[M_4N?J:~UOc: l hɨKL7m%:~VYz]mcsmaA9+Si%[NTۍiGJIVӿU/};Qn7ҵ6Unÿ%Oܪ?zPe.ɥָCm{o};Qn7ӿU+SG~.044OW̝quN۰E_vȫzc"t 8L }U{ 7 t56 !6?盖_kw*㽰h_iGSG 9>fJ>r~*qލl~*qޗ>rZ*L+ ~*qށ01ZXsM IKl\fG6[k ӱilE_67FO[N&ѿf+~O Kvu$,m8ظ}G"tfc8ZL(X]Z>ᵅ;ӵn^~3NLn48 iF IJ$I)J^7SUz lHI$JRI$ǟre? RI$I$T<竐z8=\ɸfű@[UJ:UoU(ԒI$#fkUe7-U,~PÓRI$gGET(u3)t^5 nZ!NFVPSo"WMdT\ʞ]KsNk mϫsۜVOPdHK\A?MWֶ0;;n/A 40gal/;~tqwNst M-RI$I%)`{C؝PamԐF vU62: 6۩!iӒLԡ/vH$IxK=1hWR+esۅF [j-<$EJASJ2g;RPIwx_WAh;n}^ʼ/ x_WAhϫWW a-{*A鴲ӊ/mXW~5rY>v'N>=4$U52qs~;^ևV[iw}4Bv}mcn} wnɬk#k+$qD$RY5j-YesYS?PBz&6f*<iב#Qet;YGT=:ͬ6(|9Nj;灍u صI% "03#;VvڀL4C[A撛V[UUo{5kiq햊b;83,ymk\Yc;ѱ,fL-뢧Sf掚K$=_Y`08 у.h}gþݷ2TbٝTYߛ/scoKwDz hS q[>"~yVϻ2r$5fAD O7>^Z)'pǰC7>^B}ش3 [I'I !k*a}Upn6H @H?zW_8tU~u[Shs*Ǝ읯ݍOn1i~c9M#){5}b,sK.Դ7w2ӈ]*:(zgϽ=T.`%?]_v+~|Qhka/x+6EI/f>*_v Xm&m5WUjtV?]_v#VַakG!f ~6;HIGsuw?'K+i!ǹU?7Y#bq_8Y[I/b=sn;rYasG1{M nGd[?dVgUTS[KHـ$+i%V֯Ly{lƲm}YHkq|B: ?eu[X<5p-3~ޕ=GDnuwIӪuUnH;_:HOU>UOo?Eu fڳk+Twy-Q'􌮠r3c㉏vc6Sㄦ0d =1ן趆e ${*pmu>aZ洸V|'kw5|Xxph;ye,mm. Q[}\Ua9ͮƆ}PTI[suw?'K"e_VT5Ԫڟ8Y\:Nm ž(ma>0>S"Uwg͌B wP,]]x {3A7>^[_[Qz*luQsz ϫWJϫWW a-_PLcFy"ϫW?dEsz ϫWHNwx_WAT;Fƺ+dWM`Ѿ ]$ bwS5z7^OC+ƶ7 9s~דm3O(JvK5z7^OKjoؼ.Gۇ^_S4?*湶7" } [!"I{p*ܛ:Ažc,-!~. фR}^A8':4T'5ݤ;"i$q@Mu·KZ:JwI~ڷ>n8ud}ԭ;Ig GOv5tߎj}miicێ}mpwous9HnQhn}{4P͋$W7'ǫr_aPKbRbK,mߥ]7 Ҭ΃8?}c$8?ʿھ16d m=.2jɯmhssփ`> ;Y,̱82Fn>`fO_yٙ:>omn0I :>H9]/>fSKwRWE-SNÀӃ+i/1a4}V{˷'&%P kC[^r?/'KS=3 c-s4K{j`5tSnï(/ɝc8i85 ;\#RҰg֬z[wѻ#{v]0?UNfLIF$I)KcW֟7<60n60h=NKHǺ?X/1nxm.aI $l`{N2f @}GWy$OC\KXEeZ=1:[D\ZF;%I$Rs?Ԕ%RdI)$IJI$Rq?wm8;6:"$*kFU2:ǂ5AB(ѿ!(rZW~3o~W;k]f)Y!8u0L_kO2m$4кNQ4T|RzEZp`c%`2hugm:6C4[kUA{wN,>X]Lm'R1gA?b8=دؾV_I${I$?t3#*xV%;ym{{mo*I7s lDXpy3zF'Ddn2e!X,ɺphi64:C^궶1jn1ҍdM䗳\#`=&y9Ţ=N5˥\_LYxفcP $I$R[2FAoRdI)$IJI$R?d?dJI$RI$7Eزot+-ߊapݑL=Ç=Vw8._4D͌?)l ++ڜ[{H-sIeszW=0A4ݓ k}=nGx-ˠUEz?\Ȳ^lfEka1ˡ-w`fUxX .-cKI豺V%R쬰>ݘ[-Oڊ/vX:)Ml|*Mb`"\y&'U8=دV_I$ UgUK/R˲m?efDClRL>lin [WUU"+6O4^M`9݃OEd]Awx]j>N>]-ĵeNiG!YZӃE!tM:n2]U6ư0sf`Nmv=Ĵ'-TTY$JI$7;݈7;݈ ϚI"$I)H9IFASJ)2I$I$$I)K/'E~JTyBɋjgtqB87֡w W-km8>=H AT>'Č >~hPN?.§պ=' viNwu2y:fXtEk&ŕV ?H} Ǧ`:fCl܈3 6Y79.<r?]j!FeQAi# 4ڿ5ftdyFŔ-̴sdcl n/\jcڥ@kA\Jk $Vn}x-p"F-%i}LW'0o)$OcRI$ԄeOqħs/8ͱ}OuCM^6wEKMuk(yն,UkN?o16?XV3 avc'z\>w!ku[[C~vF2DK/fBzNkOsKz?sWJοOU1|IYqƤ:I+TI$ eUZWUjq$*RI$I$7;݈7;݈ ϚI"$I)?oAO;b/laO֦uF:ivA\jd7kSk X4Ւ7Wm6li U}gCmm%Ι{d!kb-}&e˚EϞ%GU,s2> Lzq;\kgIoIJ~1S'0@I?}ZI$CE.k,4MPKC#Busnf\tlƱsʶ@uW2?D6V,m%=a#qkKCpm]}벨v&fMκnlj!hokk+kkNj~awh?v%8t#_Km8= sIgkN <0*!'ޟʲsf`Nmv=Ĵ'-QdI+RI$?iv# ?iv# 7>jRI$I$ C)%3O(Kc$*RI$I$,oR^O)Q &/:7cu< nc,øopխvMN٫NNCfu~ºn,en OW.?_79nȶ95PZݭ0j]{nfLͨf=-.c0F*88cݿ246bOPS#7E֬yQAi# 4ڿ5_NSwsZHTäp112̣举Z9hM94 sCm#nmyK xu\v%`͠BqmKc GXo=tSw֬_Jƾ:~d ݁ລO6\I(ԤI%)`{C؝PamԐF vU62: 6۩!iӒLԡ/vH$IxK=1h~oGg(cvB3F =΁%70^aCM}k)3/KZLs {QaTASJ~۶*oDsDۅDXQSq%_ZLs {Rֿ7}~U6U0-k)3/K݇Sa%_ZLs {Rֿ7Խ~U6q?wm;Rfۘ_ڇGZ%vp9`n$_Inaj[Rfۘ_ڏ gFUKzzm虀c?Inj$Hˈi|7>̼6uiŰj"z]w)2?Cf7_oS4\N.Wv_Cq":N8acnwW%-k-M70'5?m =v1(}-7]eSWK+wE˖44Ÿ}b@^tN?av+7뾭V~ˊ\Kkso_InajH 95J&o?x,J&o{l C)!GZLs {UC Ǿln w$n$A:r*C : *if1 l6^ѴFW_8tY룱NˬQmVE{Cv^R6VnӿTb\mkYNE7i+6`n ԁ~I%}jI$L*Q[2@<ԙ$EJI$RI$qO{qO{RI$TI%5sv()sPPe?)D5ſ֟V3ǚD\ʲ\k7Kh)Ź͒[Qpi0 mM<6!s?) fXw3NA?5qQ}:rfXcNѓckd 'GJb?b8=د8V_I${^aheC\ hsdyHYKe }*mΙu=s[CΎ12?Qϰz6n?R6o;5Mn1)&ÙvEިvF\@V٦ݳܵ~awh?v%ʶ6n.cn5Zhn45d~U87lT<!'ޟʲ;Үˋ2,kDZ2t /J̶0Ցn+dWVSSmmO>rA.JZ/P~g%V?r>7RTjqz?/ڵ^K܇Iw4uI7Ǘ;V? _Pߺ[*_jCq̗Z/P~g#CچJZ/P~g%V?{Ԕڵ^CLً 5~f?:(褩~ի2_jCq̏j*_jCq̗Z/P~g%CڦJZ/P~g%V?{>J?Z/P~g*7ZmoeT*<} oadaV[1#Cu:_n?3yV;~( g_8az"kݴs¶k%'`` 7%[]1ٸ:V Cu:m\QJx</?xAu'j61) CR E_M>1_?3y:Xkqz!Ok YN}Cn-`k_]IXtPxeS^l;CwKYsdsHwM2j~!%?BI~ѼgCPU~u]9k.~k= M6k5eMfCqE=n4. iZi$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$V^. ͺj+[$4K@L,,23iSmgBM?H))IdDߥG&fx3v:'L2:>%o.ȶBFO NպWKO3՟Ocvl*÷ݟ;dmS[pΙ3of>e[ٍSSq{qmvwW{i-CHw̉7]ƫA]ȭ5͸*CmG.lԤ$jxT(ksze׉e4Téc#Ooo]upo$Oڧj]C?Kj]C?[%Oڧj]C?QTlgnp 'n ?@\sP7xRP7xVI{P7xRP7xVI{P7xRP7xU,j>u;fz/e5T`m&lpe#룷G*tGNo}X?G?ٟv 󐸙MS'}R{\ an RP7xP>;t}bDtgՈ}AnN]>Pۢ:s}NI>{'iOo]up/o]up #룷G*tGNo}X?G?ٟvۣ ݺ#7>D䟣lϻr_T[)[(n]>Pۢ:s}NI>'tXn9b'$PDf}ۗh*T]ncs}z-^7?q>?I#룷G*tGNo}X?G?ٟvۣ ݺ#7>D䟣lϻp9&wGH$lV?P''y%_Mȯueeotbmeh#룷G*tGNo}X?G?ٟvۣ ݺ#7>D䟣lϻp~6yRkƦzzPmu5a@OOgv*B:PׅU,maU[C.-k]nTHAϻu'un;KӺ=W{7L[<ܗ\G_klu aА[p 'շ.¹ʣܚ?7[s?{k=ٕꩥV8&mv<tjcD܁^H:uk[*}[=OUU40ֵ\8@+l۝z]cQ_XwoçbS:~tmfIܬ#sL"R[v;ܟ:kv?Nfn,;^|~[]`h&ovH:I%/?jOZ/UoIk9m9ykKabTtF]?+{2zvG\sV3mW][j7FYz2'BJП/hfvO폻d4ՏS(]lkZ!kF RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$'i_Vy_fNGvYۿ>#xr ׺Rue,®*Vkk:zmvh}`Օ[p{cCNUIL?ǚlx*y@mMP/տj +vNnWN'Me`7}~X@RSu{1ۘaˎ.P]'PR-{j5n6I.'@rl}[ʜ 8? WA%;}/um6z6 *5Yd\;SYé7eU41<'k@$$I)I$JRI$I$$̻/A nɭŎw274Ú1-%SsW|3%:ˆըvoL¨eecܚ_(6 {l?̋~]gXkOz^%Q9ٌ>myY 4kt <1b'"db)z}7%x]nmti/0-QGL]|@/%VRPl{cwV哉 ,;6=a;j<K-͹8فY׹n8Iz}cic\K\Y]SIĀr:I%O}Ù|+p1U2mnsWwNVFmg[2j5ݕx)%NVZ@vB#;O6ܥd @e8Ot{t{q:OȽ]ys:c5[,`[kZ\q,i$(Lz! Fϭ_#ޗϭ_#ބޟvOcoĥt{t{ВKޟu{~%/ϭ_#ޗϭ_#ބ^)n}j?`n}j?`$^>߉KsWwsWw$>1J_۟ZGO;/۟ZGO; $WRr:~r:I%O}֯K֯BI/z}c>܎wz_>܎wzI{coĥt{t{ВKޟu{~%/ϭ_#ޗϭ_#ބ^)n}j?`n}j?`$^>߉KsWwsWw$>1J_۟ZGO;/۟ZGO; $WRr:~r:I%O}֯K֯BI/z}c>܎wz_>܎wzI{coĥt{t{ВKޟu{~%yaFe{*xEG5G]b1<۫e-l$IjI$SտIw}ͺH}'6֌^x8vGS][Gs: NsNX8 Zn]b?4hqsm.FYINgVKqȢ᳧qs)7cWnN>}^VΣ,eavDL4u]_2/uU^UO#`m,57fև fsףcksN1ljC6dJ_Lq~>%oѮ.ǪP~O NK'w]_Wv3ϩß>[vN9]Mϳ֟+C½ؙ9dN/^KsZMsZ'[OC2>>ɶx]ui:47 vUKll hI2[>Fۮ~E@awb]NvwWm8uӏIoX]] nZ[k$П/hfvO폻d4ՏS(]lkZ!kFJRI$I$$I)I$JRI$I$$I)I$JRI e۫ƢmCD$JL= 2Kuvgl>˶Om:/NnHUٖSIo;e 4%:,Z?4;~vg/u Oҫu?Ks`x:HIN_Wߦ.myVU۞#rksfܷ\[]C.f,;vg݋aӸn9[_~kgO=/OdS\Rڏ,R2[aiv3e5A~29Ͼ՗mPωUQO1Uce%iVf#p䓺\L\MxW;*6Iq$FI$)$IJ\9pۼ.8gB?<ٹo6I%YI%)$IM{z2NnXizu .^ Yism[cLsأuXk rK?/sFd27Aw=&߬jٿq˨ȱ}6fN}; Qڢ6 ܾɾI*͕$I)I$JRI$I$$I)I$JRI$I$$I)K/,CgO; Xh?_u]_tބ+, 'hQ+y9;fWpK̟Њ_Hy͜OuԨյKs}flxFz[)8x.X$$OX)Mg muL,"דyN"ƵK`~;/Vxd]4|p+Vq>:[ݏcjʶQk5ǎpF~%_V-~ewVwU븱{LY'Fn.N˦j|1ީ'۴AcxSzu\g1ҙֻf6Y %>:Hvu#Em~Io[=fgsQкWoΥ1=n Jqz0nʾka{@j;JU[=I$eRI$I$$I)lo{1v/lna>>c)$R)$IO?WJ_vU?S;vnݾ?ш\Om63k6mbz,}VsLt$C;tf>>-e[ٍW9stQO?K#+Wߎ +"cAS%"%c[Ӻz>%oAMoGd0DnmԆ]%< ?>j3;w<6#i:87Xz[[55:lnE &܊X]cFUn>>FMq7NOtve).>ӍEq۪CD &gssiS~-fSzgГ`kO" qs?dWp-s{ls =և=?b҉)Dӷ~wLgO};>|mT]/Ƨ{d`u0!Y;>Oت_\J$K:]VP]zTU.>;C=՝-|Һ^٘x~zgo;wlkf7S=?o4:{kCI%)$IJI$RI$I%)$IJI$RI$TszE閊:PĵmyWSI 85$Idu Yװv(_oWKmkq*f2yӂRdO>_v#j|s0570gfg=66Glơƅ;L7zO M89" y`Gst?T<{~2_Г`kO" /LӺ~.%icǦZH%h1 +)o=KMtgϞuo9>)}V-rv9SZ$'(u.Cd<:}=5b_xW/Lp-s{p'sZ $$I)I$JRI$I$4~C[eY[+1!Y n݌X֘o,da {}neoCƸYd5v3cZcU$I= I$Rg3!wˁ3Nw6n[>MIVm$IJI$S_ pfzp+KձyoY8X+03?Z_-ϛozU+¹{٢ӿޕop^0h!)G{jy۟&I$6TI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRm7>Yf >i6RI$I$$I)I$JRI$/lno{1v>I%+I$['Loj~K1sk7fAÊR~@p3ceGv;mUտIw}/ՓI阖Yˬ̇ߠFI)?/l3nɬdW>ƛ=6\s*~Vf;ًcq;HgBl`z1[K`6=xpDB59_ZgҺ}ytt]];-c RSg]~Vx3̇>ܜ^tcNGG>_6lpu\~ 16T+96s42)[ <[1FrXH0b[xEV?Pj7&tpU,s􎁏exCٔXن]=BI/bqU/ONJ[a\[X,d:;g ;[Nz.VcCd5w)ߓ_K꯱ .Ѭ%5>ӄgPnQ8su=V']oN ,I$$I)I$JRJ]V=Oi}Fۮ~E@awb]ٝj~WYp1誸srٜaq$$nF]gQK7ӑ}[ו{ tQcSS^mM. &VIJI$RI$I%)$IJI$RI$I%)$IJI$SRl?!oղ},nq,kLjJ2i=Vʲ!Wc\Cݻı1LnP|wRI$$I)K3Nw PG7-&I$6ԒI$$I)Ӆ8B=S8]ϕڼ7,ޜ,wIq|/V^ϖͷӽ*m\as}CRtJEzW/w{4\Aw=Elg0\FG {fAeY{X56x0AT]S+'[ivƸ?s 4XY3զgS{mlumaGml˽'E0^g,?z*rt}bt;~.1R}OPps]`IuZ9Us.=O[zh S,6zMk͝S}g/_KaY%5jh};c羜e粱 uN{i7k%{\g~k^05qF{>K$y%g}Y?V}?[VnٍUOٶp:~sף])-CHw̉JzҺX+mr_VptlYo# YoRK[Yޮ@R_Y24W73#"+t <%:9Yx4;+67sll.qI0v]Agڟ ݘeܷwD@X]3e[ ÚD )3 /ͬu\MIVm$IJI$S_ pfzp+KձyoY8X+03?Z_-ϛozU+¹{٢ӿޕop^0h!)G{jy۟&I$6TI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$<ۮ#^n]褒IJĤI%)`{C؝PamԐF uXC;twK+;cq˃Yqi;f?X1vC>ch.%6@:?aHbv&N~;25גֶcFֆ\ϨX}VY-\]" %7Of#~2"dVI.$sdS}8C.ņu&dk+~vfAu/~>=VV:x7֯|zw#]3-әICÒMM_=tSKߣ;fy>sn:B]=[]3 i?Kmk03q}JUϭLa 2#_O9Tls>HcM{ ٮ0F3#N<o_IOoXCu,3ú\c''$}10RRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%8?U(ɧ[*l_qkvgƴƫy`T&cul+}e~5:!۱KF5'u$IRI$>s?y \9pۼyr9l$JmI$JRI$8X+03?Z_t!Yolm^~n|};ҭ^7>(m]'N}WryEJ?T\͟7I%YI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%-/t_7o.qEvbլ?'է|E$JV%$I)+evمW#5] c?\W쯭wb:v[}5\ps8$_/]_ؿnꟳz~?~4ZYNm1]XwYkaK}W5%hCO_W#߱-S|} ۾ 9XqtM?c"E sksX4IIOQko[I~lA՚ n]lm4R״;kmhfxYv8}`XU_ʫ0Hch2:g}\1-3QjķِڛNCCw$AIZ~[3vdaa~Nk\t ',km4ctfF-ևCb9cp>_Anֿkax``k>`0p:gZ_ZOX>|W}V_s#sra۟Sq%5:u}K3rj!8@Z)IԿ}+y`Ru/#zIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$T&cul+}e~5:!۱KRl?!oղ},nq,kLj1$ԒI'I$JRpӆ.p8|?n9Q|?ъQUͩ5ֱfǞ>*/`cNlU`< &: AG/>ୌ;]h-f["JēK v 8H׷#v_*y'c_졙`a}s p1zZӱ6}*AѣrӲ^ ҺPddXrsNƃA@;1`ڷ=⬬l{vnc{˜aR*;=y ڧ?>XN; 8Lw>Vcjzp'VaǪg򴿛[Wr;>mVhW f?N”綮zU+¹{٢ӿ.can|$RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$/lno{1v>I%+I$]ha}[ffn&`ҵk6:\N*K˗[2V\>=5{fv:5 ҖHǺ?X/1nxm.aI $l`{N2Rc*׮$upohҭߩ})}eQ:clLOEi'}oh^4iwI$W3٣Iz+lɥ$\fM%?gG&tJyXh 1bN[7zN{e Kt$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)FM?ǷVVd>kuC[c855[4~C[eY[+1!Y n݌X֘o&b7>I;$OBI$ ]pӆ(s͛ϒ\Rc:U=<׉Xy"qέkL^" \G`0tFc~ǕSln=-m~#p]LrzAٙyqvQsӱv퍣;Tf:7qNwS[YɾvU[t9veO2ʋDZޝʬǀH H Ct9ΪzCk~]7k,w2jMv7K->Esv>ص:wy?{;nO{m r`,ɹ% pB>e>AӅ8B=S8]ϕڼ7*.Vq8u,KA;G1+PeٹN v n|tJEzW/w{4\Aw=uX6Vk{flsKAv%rCR1g>MIVl$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IKc y\F7ݿguki?I$I$JR(~gIﳧm=ZZīy(ɵ cַwcIwNde\' iƫ/l]L}!}Nyҕ_Y}oCgJc7o ufoOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*gu1K7Wo{}:JU}e +Yd2o{=VIpd94xbvqz:WSi~>e|fӯ>{4W_[ҺM拏C+7~٥lOG*g̟GedSuMy;)*pssCvhZкRF< AI$*RI$>s?y \9pۼyr9l*o3noWm8=WY^6^8sEsc L qh b^\x g%^*طT=r?K/alīV{Ytu Cow7Xm{.;'7S{vvsh69\G[w[y(muSuQ98ϥ}u϶ǹ67kC摦3}#IҶhf6c̢nbIvo6i<bcWNDcʘ]!4L7,NUN#ܫ3/X'H,뾹RȩMױNṮ.l}[ʜ 8? WAhĻY:.[~m#9۬իז=n+.6ln>f%Sc"[vnQ޹{6@!I5UF=]ycZַ*4ֿ)AP;U,1{zY(^&Ukm?8d(z_ "ORc yUrGltӽ:B_Bȓ&N}-;<BNeЗeв:ꔟ5WZ?_Nz_ z_ djqqKZ?Pֻuu=/ބ=/ޅ')1B[;Ӡ_sp2Ksp2Y|R$TO:B_B'/bx%utH z zzMu-cp9ZfDG(rK)s:ŷi-9%9#c+&XIh@UU] ,cZw ا0H.O~~ z_ z_ -%C^O_?/_?e{u?=/ބ=/ޅ^ 682ԽOpTW?Op9䥴-2'f#۟>+锶Sm)KZ{~U.[5Gst*=NNrOD/or۟~ҟi`=!fرNRS '=[7hX&R ) #=[7i~t7gOLqgƄ> ?]ʗ3RF,Tv1HDv)qF@u_OFv+)| eQ}-eNC#H>!MrFG}l;I.*I$RI$I%)$IJI$Rn'eYRU[_ԔEvb/t_7o.Cs?I$I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K3Nw߬](ʭȭɵ}^7@|}"(ˆB$Exx6=}$_Z?O˿/Z?O˿/f}I"q] ~q] {3T}[q{kSa^}.J߿_ĺ?Z?O˿/Z?O˿>xg߿_ė߿_ĺ?Z?O˿/Z?O˿*q` -I-Kxx?hWzv=3 T04[X%:/OϿ9,y`s-kKXxx}uwUͮNGKmtܿbr?xx7dH'#K-Z?O˿/Z?O˿.?jͮNGKmtܿbr?xx7dH'#K-Z?O˿/Z?O˿.?jͮNGKmtܿbr?xx7dH'#K-Z?O˿/Z?O˿.?jͮNGKmtܿbr?xx7dH'#K-Z?O˿/Z?O˿.?jͮNGKmtܿbr?xx7dH'#K-Z?O˿/Z?O˿.?jͮNGKmtܿbr?xx7dH'#K-Z?O˿/Z?O˿.?jͮNGKmtܿbr?xx7dH'#K-Z?O˿/Z?O˿.?jͮNGKmtܿbr?xx7e}Wicp!99yzo֯2K֯2K/ڮ<>/ln<Wͯ0}4Yk/b9~آc,%+ I$ԒI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I) endstream endobj 268 0 obj << /Font << /F20 12 0 R /F8 6 0 R >> /XObject << /Im34 261 0 R >> /ProcSet [ /PDF /Text ] >> endobj 275 0 obj << /Length 894 /Filter /FlateDecode >> stream xڕUKsF W,g5ErSM3әthrem‡BRV__`)>">,ڬ.DdfV$mRXnD̖ɦI>3m/2K,Q*ɅIF>tuWmVJ!%7ywDY"jnVdIIƅ1xv2%ύM>~tU!*:VQqgL눺^^T2%r^K}QBiD:]kU.,j?DnM699PJ:pS7LcEPGq#yoSơmg,=P[ ōvx]B⠘v授/-!.[˕x胏#I,?\ xp|?X&- 6FxdCcF7#@‰N3ϥ .BŜrkUj2CXQRgd5(U{p!08ӂyh P)Z7sfq)fUtrLx 5"7 -"?NyQ)(>L"@_gR&n(-j*|oT{{li[EWB?8/h`m5̓(H4~-W Tˍ gCߠ>SҰK@^0E0.COҬMZ `{0 Qm \>Cxh/Ȩxw {~z:l endstream endobj 274 0 obj << /Type /Page /Contents 275 0 R /Resources 273 0 R /MediaBox [0 0 595.276 841.89] /Parent 253 0 R >> endobj 262 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/Computabilit\340.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 276 0 R /BBox [0 0 964 640] /Resources << /XObject << /Im0 277 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 964 0 0 640 0 0 cm /Im0 Do Q endstream endobj 276 0 obj << /CreationDate (D:20080809175056+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080809175107+02'00') >> endobj 277 0 obj << /Subtype /Image /Length 32537 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 964 /Height 640 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$3. -ȴ+c5IU:wYoQ_SCCZM(_ZK^Kr,洐 yeA 9c+v֍>$i, ĸJTk}VT+,eo&y_cТڛ~@ kY28AU}c̣7{EX\6\F JJzX Zh<8f&YJvYWEn:,_v$4gb۶$NݳI$M%uXI/SlI)Ifz_/gK?JtYWEn:,_v$4gb۶$NݳI$M%uXI/SlI)Ifz_/gK?JtYWEn:,_v$4gb۶$NݳI$M%qKN1l?Jǿ_!?JtYWEn:,_v$4gb۶$NݳI$M%uXI/SlI)Ifz_/gK?JtYWEn:,_v$4gb۶$NݳI$M%uXI/SlI)Ifz_/gK?JtYWEn:,_v$4gb۶$NݳI$M%sm8XƼkDuXI%:i,SlIz_/gINK3?^WEnS:,_v$b۶$餳=NݳI%uXI%:i,SlIz_/gINK3?^WEnS:,_v$b۶$餳=NݳI%uXI%:i,SlIz_/gINK3?KqmέO?RJvYWEn:,_v$4gb۶$NݳI$M%uXI/SlI)Ifz_/gK?JtYWEn:,_v$4gb۶$NݳI$M%uXI/SlI)Ifz_/gK?JtYWEn:,_v$4gb۶$NݳI$M%:Td>b$kJǩb۶$餳=NݳI%uXI%:i,SlIz_/gINK3?^WEnS:,_v$b۶$餳=NݳI%uXI%:i,SlIz_/gINK3?^WEnS:,_v$b۶$餳=NݳI%uXI%:i,SlIz_/gINK?g_nE9 c_K=/kۻՠI$$I)I$JRI$ 8ABħ[+ hh'䌒JGj2GIxjXÛ[Z[I%)eZ/ 5RJuI$I%)$IJI$RI$I%)$IJI$RI$I%5FCqYAv=aAKtݡM%)$IJI$RI$I%)$IJI$RI$I%)$IJL$ 1]m`'#aBJRI$I$$I)I$JRI$I$$I)I$JRI$;k"Wΐ5eYP-'#D$IJI$RI$I%)$IJI$RI$I%)$IJI$S[b k(t UeBa{$I)I$JRI$I$$I)I$JRI$I$$I)I$Jrw?O{ QeCZJRI$I$$I)I$JRI$I$,2KQeINI$I$$I)I$JRI$I$$I)I$JRI$I$[:[' n9n/zER2ׇ÷0{Mw  ԰HaC,Rޜv76nIOE^]L1kk7.}o}->z|"HI$$I)I$JRI$I$$I)I$JaPƈNcMBšJRI$I$$I)I$JRI$I$$I)I$JRI$[;?1c? S4I%)$IJI$RI$I%)$IJI$RI$I%)$IL-nv%MBaGI$$I)I$JRI$I$$I)I$JRI$I$$I)P?-EӿjZ)I$JRI$I$$I)I$JRI$W-E~O%:$JRI$I$$I)I$JRI$I$$I)I$JRI$=[:_`dt lƵջ PW::λoEE<11ZAhVZZ ynBOݵKtuw6G] kϧt3]l=cY3诬{T:KìFwjLڙ[:Z K5~uakK(p޸>=x2455D^2ϭR-a+/U;̵u5;as>G5Rɭd7125+>I+BI$I%)$IJI$RI$I%0mcDD1䦡PƈNcM%)$IJI$RI$I%)$IJI$RI$I%)$IJP->cE5x1? S4I%)$IJI$RI$I%)$IJI$RI$I%)$IL.nt&%MBawHbTRI$I%)$IJI$RI$I%)$IJI$RI$I%9};P֧=w?O{ Q%)$IJI$RI$I%)$IJI$R_A?jW$Q$IJI$RI$I%)$IJI$RI$I%)$IJI$S62g^qs%7@?gɴX:sYc\GUGz7f>UP↷nlv᪼cA aݨv#aqkڟ-@lv0'!،vL~ |Jy#CkfGV[{GcO SN],lq=wY߬ϧ }]u1VCX ntZP4Ƭg il>5(rr9FXO ĒIjI$I%)$IJI$RI$I%0mcDD1䦡PƈNaM%)$IJI$RI$I%)$IJI$RI$I%)$IJP-)؉1$i$JRI$I$$I)I$JRI$I$$I)I$JRI$Z#n85 [F84I%)$IJI$RI$I%)$IJI$RI$I%)$IN_N:aj,(uSIJI$RI$I%)$IJI '&:u c\G%gchmzU\,ջָG%:,?ٌ}mg_mN9x ]3uw\h~ױո=KOJtV_A?jW$Q$IJI$RI$I%)$IJI$RI$I%)$IJI$S62/Im?e/6Ycܓj$JI%)\>5SW:7iύO?)/$K]$I)I$JRI$I$$I)I$JaPƈNcMB0I$$I)I$JRI$I$$I)I$JRI$I$(? !M@ v:HILI$I%)$IJI$RI$I%)$IJI$RI$I%0nawiĩZ#n84I%)$IJI$RI$I%)$IJI$RI$I%)$IN_N:aj,(uSIJI$RI$I%)$IM^Z~fE.x'YZi/ƎO]N-YmwksO}AU&.4O %=xJ_5šI)/AΚ%oM$r#^rDXIL ~"5$K9oM$r#^rDXIL ~"5$K9oM$r#^rDXM$vy/M$0HFȱy&YQbe8??g?RI$I$R?oÎ~O|jtoC x5&S_i%^~hןM%_5DXkE4S_5DX^~:hJ`KgQ*Źqc~Z8g%:ߵsk[C7c->艔}`89 a!BUF雀1DBu]!8?[u,vunsKIJzI%)$IJI$RI$I%)$IJI$RBc|ƐI)I$JRI$I$$I)I$JRI$I$$I)I$Jah"tbT-DNLJJRI$I$$I)I$JRI$I$$I)I$JRI$I$/C簵_N:aj$$I)I$JiuL6U]eu\M iKl.}[e4cݿcUu?z`c]!{74!W)OKíUHaOPtWx85F-ùΏ'Ue$RI$I%)eZ/ 5RJuI$I%)$IJI$RI$I%)$IJI$RI$I%<i,y&YQbe8??g?RI$I$R΍(aU5s_f_G3bI$:RI$I$$I)I$JRI$IS4D@L+kc lnq7>dUPiGqj9q1\N~H 2,jߩX ò~Sl0v8<jh6UŬW6[c]aWǂ67~għwE/s?%?(}' ?l<P~5kk@hC|f ^uFW`-6o4;v@<㟙q)KO_yBe2KێȮV[彁~kLo' `yc`$h[I'TI$$I)I$JRI$I$(;g);g$i$JRI$I$$I)I$JRI$I$$I)I$JRI$\708'榡h 8%M%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SӿjZ/C簵RI$I%8Z^abc"-k9; \]^>^qV>\J1ۣw]W1:s_![:.R[+ۀ 5埊J}!$IL^ @RN3[=-21ʭZ8C!LNkͼ@- hfJt*׆Eۏs sFϒ:=NmV1ylycxF9;MOy5ӌq`a8泫̿on륤k=~|tIO\W-EtA8WFݯ$I ѻlȘ|i(S_ΜH׎tzJf߯zG~r#)J#r#S4b9>%3I@##XDst%XȎx߬G"9Jf߬G"9㼤wȎx))J~߬G"9㼤i(r#;G~m?e/6^37~Ϊb>2Wwױ?I?BI%URI$toC }"~߇x5&S_mIAާ6349N?9ILPvtGhN?9ILPwg);#L))J?9I))J?N?Jf6>i;#&yIOBk)aFGV[sGud>!5FGDLLאi;RLJ^G#W(ِ:{Oob |HV -# V?s5Uv)./xk= ET4nqQ{NNK#$&H

=y&.8ƭ'ĞWC#$L?c 9?3) i(qKq%3IC/KS4=\y/Kǟ%ˏ? qǟ%N8_ܐߤ%3I@ocy_ܐߤ%3I@ocy_ܐߤ%*ṄA:p J dGȩLq?KS4&8ן LqI)J ߤw1Ʊ<$i(7cbyIkϒJfwf8'$1ϒJfwf;Owf<%$َ$i(7cW98wo.nRS[C簵/C7}2KcJRI$I$ ]즪~E4Ycn1Ga %cnx /ȲֹGdӛ[r柑\~6ݐ͑ٔ: 8r$#!Exmu41 D'cTˁh;lgnb% 1 tU'h EI%)eZ/ 5RJuI$I%)$IJI$RI$I%)$IJI$RI$I%<i,y&YQbe8??g?RI$I$R΍(aU5s_f_G3bI$:RI$I$$I)I$JRI$I$!3m&Bu-$| `GX8As$RZ I1C@NVi˅PLoBo?&7o??ФJɩ$IJI$RI$I%)$IJP# #HSP# m!%3I$RI$I%)$IJI$RI$I%)$IJI$RI$ṄA:p MB," Ӏ`$I)I$JRI$I$$I)I$JRI$I$$I)I$Jrw?O{ QeCZJRI$I$YǢ1ϖ[2GҗN))I%)$IJI$R_A?jW$Q$IJI$RI$I%)$IJI$RI$I%)$IJI$S62/Im?e/6Ycܓj$JI%)\>5SW:7iύO?)/$K]$I)I$JRI$I$$I)I$J|1/%$H2$IKPLoBo?&7o?ߗ)$jI$RI$I%)$IJI$R۲`u;vILI$I%)$IJI$RI$I%)$IJI$RI$I%0Kt*jaNM%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SӿjZ/C簵RI$I%9k#'{QGч'zgJ'RKK&vc Uŭ$Ɂ:NoP[ n[opI$JRI$I$,2KQeINI$I$$I)I$JRI$I$$I)I$JRI$I$m?e/6^3?,^l^,' I$WuI$JRѿ /3O|jtoC x5&S_lI$JI$RI$I%)$IJI$RI$5D'M_ 4c_IJI$eRI$ վȘ?הPLo#KG8/RI%}ԒI$$I)I$JRI$I$(Yӷe5n)I$I$$I)I$JRI$I$$I)I$JRI$I$aNMB,:SIJI$RI$I%)$IJI$RI$I%)$IJI$RI$CZP?-DI%)$IHlUc<`p!G:k)(wkvlG̯PMn|Lc ',f3k--xqcl?q7vIO$I)I$JRI$W-E~O%:$JRI$I$$I)I$JRI$I$$I)I$JRI$CgɴXzOi,y{SD)$U]$I)JF0?񪚹ѿ /3O|j~/#ܙO}$Z)$IJI$RI$I%)$IJI$S5D'X}'g#)$AI$J\/V"c|lϏ^R}A16ǫ|/''I$RI$I$$I)I$JRI$G<gNjo%3I$RI$I%)$IJI$RI$I%)$IJI$RI$,:SPK0TRI$I%)$IJI$RI$I%)$IJI$RI$I%9};P֧=w?O{ Q%)$IJI$SCPձa7 rOCCrf6;VQu:]NEM]Oe]eB%1kSޤI)I$^-o.sRRRDoLU{Z::p Z|Qpz/R" LO4Y}dꖢ?C' _TDI%)$IJI$RI$I%)$IJI$RI$I%)$IO!3?,^l'gɴXgYrOI*I$s_fM\>5?ksLDؒI-wΔI$$I)I$JRI$I$$I)jNi̾3I ʤI%.}A16ǯ) վȘ?վG旓Əp~_ФJɩ$IJI$RI$I%)$IJP#4<gNj{ƇRS4I%)%Ҿ􎷒q0}[@q 1 Н塱Wrz.-8+ˋ']P!cdՙXA)I$JRI$I$$I)I$JRI$I$aН8 Xt'NM%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SӿjZ/C簵RI$I%#{kti&9;/?2诨1=u \n|1hu93pꪾv85C [G#DZJM*c6X]IVRצZ*ֻs+y1''6OL:mkߎ h -a=~|{}i$]:kJ_5)`t׷ܑ/M{}i$]:kHF4S_ȍ{}`DkSI%0%׷ܑ/FSI%0%׷~`Dkۿe4S_ȍ{w/FSI%0%/I)dΪb>/7^3?,^l^,' I$WuI$JR'qriύU΍(aS9?K$XkΉ`ѯM%v~"_5㢚I)/]%_ˢI);D~:$`-y覒J`K<$`)?E4SyI$`)=[~iyekK?pt3б܋o i[\)$5׿ܕN)Iu$ 8^rI)/@]{$5׿ܦJ` 8^r@Iu)$5׿$5׿i$Iu@Iu墚I)K8^Z$ 8^Z)$54IHp&i$ /@4H y4SI%0HzMi~E4S w?D 嵭+]s+I$f{XF8eeCZJRI$I$6FH>KfWmZ[YYs5SW:7iύO?)/$K]$I)I$JRI$I$$I)I$J|1/%$H2$IKPLoBo?&7o?ߗ)$jI$RI$I%)$IJI$RwD5찺Z;K#엞8_vZycDnwᘡŏ ⌥rZNiޗ_m73vHĆxsj;t2n3f#Y>db'SgK~{m.:$fَH;KGt#4K}Jr7{'S"޵/ֿӳonw~[ukH` w/{6QoÁ}ݷډ?Tu>ȵca V}^'[W#gW |9,xk\b|I)I$JRI$I$,2KQeINI$I$$I)I$JRI$I$$I)I$JRI$I$m?e/6^3?,^l^,' I$WuI$JRѿ /3O|jtoC x5&S_lI$JI$RI$I%)$IJI$RI$5D'M_ 4c_IJI$eRI$ վȘ?הPLo#KG8/RI%}ԒI$$I)I$JRI$I$/=pB^{4?kQsK?cm.C?{NNK#$+Ohx!{RkCDf#{YrS'<{>Wku_ft:ԭv`a'BQ xB2)&q? &d=5K?vҟ$]#xG:~.Fos"Dc[DoJQ?oRehr2/RI$9 I$RI$I%)$IJI$S ПSPVx~Ji)I$JRI$I$$I)I$JRI$I$$I)I$JRI$(uSY};P֧=I$$I)I$JRI$I$$I)K/ 5RY}dSI$$I)I$JRI$I$$I)I$JRI$I$$I)?wOgE͗62,wױ?I?BI%URI$toC P4Ƨr? nɟI%ҒI$I%)$IJI$RI$I%> _ WBu?yqr?I$TI$o?&7!zg|zyzI_y5$I)I$JRI$I$$I)KƇ/-kЗ8_vZ\Rt>IYO|I%)$INOkԯY^MZ+V)/%$JÐI%)$IJI$RI$I%0x~JjM%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SӿjZ/C簵RI$I%)$IJI$RI$I%)eZ/ 5RJuI$I%)$IJI$RI$I%)$IJI$RI$I%<i,y&YQbe8??g?RI$I$R΍(aU5s_f_G3bI$:RI$I$$I)I$JRI$I$!:jN2O/?GRI$*I$^D/V"c|lϏV^O;?~OBI+&I%)$IJI$RI$I%)yoz' .Zj^N?)2t)I$$I)-cV+ɾXշz?e?_ݏ䤒IXrI$$I)I$JRI$I$MBߠyy)$I)I$JRI$I$$I)I$JRI$I$$I)I$Jrw?O{ QeCZJRI$I$$I)I$JRI$I$,2KQeINI$I$$I)I$JRI$I$$I)I$JRI$I$m?e/6^3?,^l^,' I$WuI$JRѿ /3O|jtoC x5&S_lI$JI$RI$I%)$IJI$RI$5D'M_ 4c_IJI$eRI$ վȘ?הPLo#KG8/RI%}ԒI$$I)I$JRI$I$/=pB^{4?kQsK?c&Ne=I$I%;Q?oRey7OkԯYZ\C̼GawI+BI$I%)$IJI$RI$ߠy~MBy~M%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SӿjZ/C簵RI$I%)$IJI$RnOKdz&C$t ʩ3ȹs[HrRSNfCmsvV FS~wWSagͅnlqX=C 7e[2̺(ioܫW+Yu^m8챯u4K'$Y}dꖢz`3sFϵ]N~I!37mK߯ILP&G#kyӟ)J~:s#ky%kyHDst%ky>%3I@DstmGRS4mGR>s;M ?fLGY??puOIUwTI$+P4ƪjH?iƧr? nɟRP>6~rOtm?9Z3IAާ6S{mJfOtm?9Iާ6i(;F3{om?JfOtm?9I))J=ѷL'oF4%3IAѷ<Ɠ9_ܒ}Mcos#X4rJf55?ksLDؒI-wΔI$$I)I$JRI$I$$I)jNi̾3I ʤI%.}A16ǯ) վȘ?վG旓Əp~_ФJɩ$IJI$RI$I%)$IJ^{4?k^hI֢?~~NJL2{$I)I$JwXշzo7m^O懙xc)$V$I)I$JRI$I$$I)@/@/JRI$I$$I)I$JRI$I$$I)I$JRI$I$/C簵_N:aj$$I)I$JRI$I$$I)I$JR?C' _T_A?j$I)I$JRI$I$$I)I$JRI$I$$I)I$Jy&YQbe?;M ?puOIUwTI$+P4ƪjF0?[rge?%ĒIktI%)$IJI$RI$I%)$IOWBtcO>e_܏䤒IU$I)p[>=yH^D?4w43$WMI$JRI$I$$I)I$JR' .Z%CN]1Լ{5SW:7iύO?)/$K]$I)I$JRI$I$$I)I$J|1/%$H2$IKPLoBo?&7o?ߗ)$jI$RI$I%)$IJI$R8_vZס/=p|߃߱'LI$JRI$7m^'[W.S^#0JI$!I$JRI$I$$I)I$Jao5SW:7iύO?)/$K]$I)I$JRI$I$$I)I$J|1/%$H2$IKPLoBo?&7o?ߗ)$jI$RI$I%)$IJI$R8_vZס/=p|߃߱'LI$JRI$7m^'[W.S^#0JI$!I$JRI$I$$I)I$Js~e[2_]Os]Cc߭ܿ ?6EyTN<&އ/rx99|&}.ݿ__A/__AsW+gy;hq$5ׅ\eGv$}? @Cώr* ώr* Ƚպp8lNH G.iWhy7#j* SݸȉS5̭D|N{j7?G}mGb^YXs'4Z_մ' :II$RI$I%)$IJI$SӿjZ/C簵RI$I%)$IJI$RI3 &䤥YX0sʪjk?Gb\A=[~iy+e$z_/gK?I%9WEn:,_v$INgb۶$NݳI-4SuXI/SlKM$z_/gK?I%9WEn:,_v$INgb۶$NݳI-4SuXI/SlKM$z_/gK?I%9WEn:,_v$IO-u_x# $=#l|Y9c hy+X30oe]{*oƼ D;vs -|G a'IROO"6}K>??~YӜ(gԿȥROO"-$UG|>E]perl|<ޤ1YCN3o}{ےILxYZӒkfɘ BylG^F?FS@PϩK>EzZI}9?6}K>??_/+Kؿu_?_WSкoVxU?fwcgsϊO(cE5s<>1c@z_/gK?I=z_/gK?I%9WEn:,_v$INgb۶$NݳI-4SuXI/SlKM$z_/gK?I%9WEnoS%Il=Ӽ,~֎6cq!4pL4?q0$;L9qɌ:/)gԿȮhfMY4:o +۸=p 9Q}|6}K>??_/+Kؿu_?_Rϩ^_vNs?tOSז1[?_Rϩ^_vNs>iROO"6O>??/Wo<~պF԰n/LWEnJg8I'uXI/SlKM$z_/gK?I%9WEn:,_v$INgb۶$NݳI-4SuXI/SlKM$z_/gK?I%9/&oîsmdi$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$үɲ7CӲ>F`{[ŧs"?IV=:x/D\֏Um5=]c 54c[% V~#l0}*{E66 :i?rjV q977Q|Lw7h2C'Gmu|)sM#n1Qj壄$I)I$JRI$I$$I)I$JRI$I$*U{qX:9VIO ivﲋOc 6"3acEou0ͬ6TGm&e6(vZ`bt;s [ZE#_))IS}MWs,u.`iIMĒI%)$IJI$RI$I%)$IJI$RI$Ժnf>a?sXm%2K #!n$7yVbkne8dٚ\Z,Иw]+Sq:6;HYgbP2[KC@[?Ckym;ԺӦ"4 )IS=_jz f{+)I$JRI$I$$I)I$JRI$I$$I)(u7oZ:'m=;uX9a|wY zT_τڷmC\DNr(fk*mRY%olWSn  O+]./PV_jk |KѺwzxvd6V Ʊ-k:K}^]$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%5:6Ff3ǿ{zϻo򣂗Kx\ǹVIJI$RI$I%)$IJI$RI$I%)$IJI$RN}y6f=j&I%SrdSu[ zu'{A?{5Mct1r1kվ'x?<;,/mtRmȼ>c>vk~II_YXlXǃ B;+u;/v sxtv] JRI$I$$I)I$JRI$I$$I)I$Jk]V!;\ A K2owY}-f@tsOJx`f`d;u|q܊omL66lp|އ۞kleNSEDt$h9U׉o;=l9-?$voRSԤ:U>ƴ5=x$$I)I$JRI$I$$I)I$JRI$I$UjӔ-7B:v6Z٨wmk$ *]K[/efƃ O꒜Y_à o-v{o+\'Yǧ]H~wQyoձt͉tlSj̹{s}:>{%:$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$pk۴~qh<;I$:=km5m/hwU,Ȯ;_I}{I'V̂+^·eyU!@\6{gcфX7![imQ ;]RSt: 9a}@e0A$h#ɭ@6aŵ}湠ȫKc {XlqclkI,s^ =Σ_NKe\zLIO|::-y w-$ iyI$$I)I$JRI$I$$I)I$JRI$=OauߵPvjÏy.&Dݓ`s/McsWlu mN};Xd dIMOPv1k1sb~?wtJe{h`l̍c\Ysݖf63?t{?}~IOZӺ]WI,D!YIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RZ`vp$X1a0kKr]PWXLWWJUMzt==`]51Do##9Ͷ麷 AŮmt{K{gt&#Ekqq@{@IOuq+yqJ0?zS]u1쭥sFw+IJI$RI$I%)$IJI$RI$I%)$IJXVumŕ^AȤ'ݫLI)u'T܋qZ5֟Ck{';h}RcAc\IJI$RI$I%)$IJI$RI$I%)3"AЂ$;5a­5M`v.zz3leliĎe.M[ $˹#31jPNK{ux9Ϣ =Nit~GDQ@<=2~)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$u.WT~=ӵa!$+)$#^f>@xh-mD Z$I$$I)I$JRI$I$$I)I$JRI$I$,>uoOim׾ ;f7ĒSX*2YS^?uz;WY>f\Z +NΑ̳]<181ʺI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I) endstream endobj 273 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F19 7 0 R >> /XObject << /Im35 262 0 R >> /ProcSet [ /PDF /Text ] >> endobj 280 0 obj << /Length 940 /Filter /FlateDecode >> stream xڍUK6W1H=K]HP9p-Z--9}f8 |ɣlxЦ$se|5~G9o5KmG* JN(ivF aݲs9SF̐gj:[RtuAZKۈNqh&V09a&;cXAWE[-6pL:L&)j씌xvP܉L;ާ(;tc7;tV™V*s4"`RDh)516 !~p4W.qA ySRޒkYVCDqUQ"6I[vU'hGD^֍>`:rxB': 4;.5w .$)[ q.bXR#@<@;t:U h5F#y-<ؗdV {OyvaP:z.%@ > endobj 278 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F19 7 0 R /F21 16 0 R /F18 5 0 R /F24 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 283 0 obj << /Length 2125 /Filter /FlateDecode >> stream xڕXK6ϯ(q)E%NrN,v!vw9kmWt~GR%z?|Κ*ww$Sޤ`Juݕ_XC(zr*I&&z-MVü8;\IۂV>yۏ-ncݵ/2m ['MKՕ6+}"WҰ[iTL9&'D&iQ.c%UZGrIc?(S(?M0Thwt0NtK[~?8FدpDwG #{ioư,KS~ma2yUNxڈ-SǚWq$stҬeǖ(bbS*$"]_?ExEo[=/-ө2f+o aQ c%c>T=C?#H6OGE٭s#j4}"J}' [otOY&yU#ͫس~܀ة?jHp/?c™RyF᱙:M'_rx5< m0P 543d/x=~Ue*4>A!p΋:oy[ʠ|7ë#= UB1m`<˴q=B N+1~vcMDi7Y:>h>821b@C7N \+RKXnFHǩsPav6X{(-`DN6 eO?Bƈ2_Q ^e`rdkӾ$(g9Xͧ'r}>~)/em% k WwnrqN8X? 77bo{KXt6;TI ӰnRsCR xg#2~ddA8ZLeb&B0א/-8DwsI$9)8[#4"+]~v^k+0LҰk}me=aA:M8܃J 2 UHVEIIm虩tuA-!# 6HLD-:(k6a$N}4#N5\SY%r&@t9E9*~٣Yڛc^l+IOb0.EQdO5㥲L8>Xbl!~BI9{p5P@*6^զ*,PUV#hUw*fh$9~lXqtWS9}_SBܪ-o 9%zNm^;eBB1W}2纟')u0JPe 7PVN.w|99 RdK}"hXd:DXl~a[o !0{&_.޷x5&jX1KG:{j␜3ed㖐"󞌰2^ZM30 ( q]{rHѵEsWǙ҆o<3o}H35#pSLe0,Rђa_`]GUHyJt)*Ѯj^il!\2j›#T[Z*0* S!׽qLP7%3nOixRR`@p~^ݞ-q ʉrֽTKL: n#$*Hahޯlu}WJe4jS㈋tv{/Ta)V+̺KX7Q)\uQ qk7 fE r v~I㐪l]U‘[Oɫ>떚f5i?:; lۇ4Cld^lc.x %^3#=R/QH)TM @1.Aޛݽ?>y endstream endobj 282 0 obj << /Type /Page /Contents 283 0 R /Resources 281 0 R /MediaBox [0 0 595.276 841.89] /Parent 284 0 R >> endobj 281 0 obj << /Font << /F21 16 0 R /F8 6 0 R /F18 5 0 R /F19 7 0 R /F51 33 0 R /F54 39 0 R >> /ProcSet [ /PDF /Text ] >> endobj 288 0 obj << /Length 2950 /Filter /FlateDecode >> stream xڭZYo~ׯ9žؤM։!: 5Ci搳$ǒ =u4OQs..ީp$Rz%m$WN%"Ln)>=YhD Z=Κ˵ F/ E&j3*d&=g?_~&a2\F$ڬO_YB&ꖶV"gט'Z'(1B9˧F,'Y^76AϘi+T8L]tCH~BMlIM .Y//mzǧ/־{@@G k>hRϡ4ud̩9ݱn\~lXSB^!_TvžAvi)zʷ_Q1ڂ^^b[nY&nzn>E辜.:|z,5-#xʙ[Ug 4M9]H:̇%"V!#!RrLT Tu~*F`6jH_.롒"D,zb*/#AVȼӖ{k^M~S:0-ocms]\5:+/TמXz8YsΏ>&ě< kl%TOyl!N2\2Y+/Qqn F"mun`6.xr#Ífj(oikQg8 #2,͋u2L^-L<55!Cub8&}poσe?-5J^ ;p TNu^,nIۼ*Y{)è8̴WAiɳ] 3UWJ߲mKUY%?ޟ,X$pʦM8ok8.Ww枷t:#iKT~`?*xwQFI 7^{hw_sfM Cx)E ëy{{i۬i&ܒ#q|@=5%z=?IWtL*Qp3" {>G~2ؗ L$渚siO`w;'.Ul|W~ qoj<v02%!g0;fG]qp3V#bw`!GiQ̖xiS2@1EWT>Ed~ YfDj@`ƾFMĂRz@K0*% NH }r)-Bl8$e5#s\ xlˇ LCz~T~,Pp3rc qLs1R3` Wfp RH$ m4{J/< x @8xjXoz0< ^koZ^x4y"7wibgR ċzX7`hT8,?f»Y9!BMA6eC~!8z5r$'u[S|]Oi0LAi, %C="i7! DnxD؛(P@:emgF8EJp LMc9MuHj-!}7 EqgZY¨YɎ \&?nt;u " Xd08rh,6Y~X1 iS$j8CG\#Lq{y//,AvOn-(u$%KêX}wlKD{2}Jl :'KWH%㷍B@N_ǖB̈́H+O|J1\q@˄kA0ߓ׏:kNE岟t s4 A&C8 3p4Rpjy %gr3*<.206Zb\.?|A_o}|lhHkKwKՋ2FHl`QzDOj=V#t^&'~0 4Xh+D34"͊tTKXK%q_mi_ִaJSd͠}J^`Ne@.ZB\tsf5T= g, t<Ŗzrf[^BN^ɂ#ovyzSq )z8H#)}gx xJ_#8J8jt 'ѸT>XQH~ P|omE"滵oڹ[!  fZg Y]WҧIoDT %?|:Z߭`}ևIё;|h#y٢K= k/ o{ vOM~-*}WLmZ] PQ $=IVxp=':d7 5(&ʲO1P;2e<=So4WB⽳ף_}o~AR16 nn$[^"M}h% zdLM'i+NU`JWgvcݵ8{ ,ӻa37QM .)f!v(ԮOX?0BQ%Ӕx- teqS'9F@SBȽa,xl;d_ZF>:fQ ^iIL)3}%䖛,RsmrzUw2Q-Z'3,3Ƈ8YH!?vGv72%Pix|ěXyFw<67ya0\5¯z|ƖПㇵF"2]qfӤB2Ӂ- ) lL`A'S9BAL_ %a|Y!gK&FZ|/ZqM^ ebU)f'9Z1_ x\6k#"SҮ&1 jxLᗦU8dۦ>,:gO"!W ,GFM9;?Kvvx[89tj3JA9 ?@S 5RUp=' 꽩Loفf#1hsqVJvr<> endobj 285 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/At.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 292 0 R /BBox [0 0 633 314] /Resources << /XObject << /Im0 293 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 633 0 0 314 0 0 cm /Im0 Do Q endstream endobj 292 0 obj << /CreationDate (D:20080718161118+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080718161129+02'00') >> endobj 293 0 obj << /Subtype /Image /Length 16236 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 633 /Height 314 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;:y"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I% 7o?kk30p§Mϩcm?ѽ+im$llw%_S` ΢zr9}GmuQvXcNw]nڴ:oXoQ#9ާF^ʪk2-َ5Zײ fe>ҺO2iLMim =ۆ Eo'th3q]kkSunp%Z8INc232:m%?26Pi[N-/hsKY'oڇR[dzcngfa;8ٌrÎIn>;ٛ_QRݕ亶Xӻ:wO6Σ^5,̹,mmo`%<Tꬪed[nf;T7c_Pb奤Z'-Yn[g^Zmk_`DƢ: n<"$Ws v-5m'* 2.Me>>FI%0H$W[e@l>`)Wc^VݯŻM$l~[PkǶ>$-ݯm\uϩEGacRIHsl,5m49>Lmah#`DI%#ϩ-'sƒ2.}ŵ?Vm?:I) YQYtk,,bP'%GmI) 7k_e Yv<"Z[mXZtS l}umn AF_h%XXg$hn}IlOwt|Jl_t+,TS {[8OPȶ~5y$7_mN f='s `/X¦*nsLW*i$Te#Pӱ/ȹ7״V;GI%#T#ϩ-'s"I)2.}ŵ&7մk)]uEO&R" j n}"[Gm[S}R5|Gc2I)Vƶ5N֟Xt4;?4R*mK}1{~wݻV؟J:I)PVX#=U׽պťUukjY-q}85\51}`DI%#Lזs v-i1ƭiwJEuTF,y|}KEH\,-ZM2db]C1.JLI$$I)I$Jk]k#}+F!XAJ+>eOdI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R\ޥӶ}NӮ؞V3qNn.+l4{yi>^Hе%///ClKr?ϹxbiFQ{yv?ܶ}ȥ9zgdO`ϴ_IwEhSuY2\]s\;z/rOH| fYI I'I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRuu6uB:WU/:)I$I$$I)ϨkdD _mlE6>kI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR~]r~Mg}?7I$w9I- gLfcj!3k}`Ovس"E)z/o"y~_ޗ[Y^;{D;['KIUFo?Fg?J3?!3?!I*hb_hbJm$3q}3q)%$J3?!3?!I*hb_hbJm$3q}3q)%$J3?!3?!I*hb_hbJm$3q}7qޒI*hb&.GivaiAέy%&I$RI$I%) &n9;Es'!?S~͓tI)I$JRI$d\cb.+*cmJפ/kJ"JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Kh?)uˑh?)7'XyE$Uf{;S[kO y($JR_E_U䊾&-k뤒JfI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJUzowጏjԔI$RI$I%) &ፏfCS}QT.m4ݴ" JfI$$I)I$JEuY1XlchI]+ݴEJߥI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RGiin~1]$BDLQk8FkIpݮMƢ zV #III$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJUzowጏjԔI$RI$I%)BPNڍrqni`' )2I$I$$I)S*@k?+}z_a`+?FIJI$RI$I%)$IMwM{Mq{-* ss*Ɓ찞TR2r~[us=0GUs?`Rבp:.?SդSWy }#_u?]ZI%5~בp:.?SդSWy }#_u?]ZI%5~ّpo:.?SդSWy }#_u?]ZI%5~בp:.?SդSWy }#_u?]ZI%5[VǶUŌsdn sk =W3FwxZIJ@ʲ:Y9ۙQ`tkDAm,ZY<-鸝=ֻ I` 3Ϙ4NϠϮ#gM/d}ɮ$rLz}q>_ 4KA3&t$d>ҺG]"ϳY6 IqQ 씱6nafG?{l|yNDAuuΕedw%'2)Uͫ!dz{{$BVIM_WzRzǫ?EZI%5}^qK_xi$zǫ?E/WzUSW?x^qVIM_WzQqoN5Yvz-NLSi%2zm9޸&I|v?H0;WIr_;?ܗ88#d{.K_gfx'{'@b.g0zHJ5Ck.$zo)9zsùIII$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJUzowጏjԔ}踙]s6턂Z &+G(NmMhkoev<~-cCb+G(4>G7+G(`}rC.:뺷ZH44@.| VO LsH<_TCȥYCmia#p3ce2luo C$I$IJI$RI :>euY|6ZJae0.,~UkJu SD5?O܊?BJk}e?ꚼvg>슾ɷZp';~nwqJ&9%$閲w6Ǘv l԰IvO^"9$z_vK/WdcC5} io׸G5Ԇ!َg{a`?a9I$Jr}^V,fm\~us&FF6 }nGF~c,5W`cAZ1ŨS]mUy01:VφyQHFCzJM=?ۿ/U>+5:_#ipG$_l\/nޯܠIĐtA k W=/KߞFx#'yfǟ$"*1U~?["j}u`eThiuQđ6|T/`➫nqzsG)"d]@L5F6[KִI$E)j}Z);kX䗑]>oHK5s2u5"59nY]eݻ=-dK< ks^TQI)XI$$I)I$JRI$tVZ_eSKd>nI)N'o;wn3uUծ*fܪ8<'r٧V.ڱ|uˠǵn"eC#\۪|캹ߤ=k xBٹ2wtr( S^1'4m#Y?hYK'/iɥ:'M >1XVix{6 .tILI$I%#^ArX=Wm;[q6G}+F!XINg_/͗e?ꚼCqq䤒IFRI$7!]~=+PrGu-vC2 ;c<=*m>6xn.lVTI$&Q?{(\B??ޗb?GQ7,n66 wEvՋ.:#.lgTTk~\\PEI&{_Юc=tdPYIS~Ǒs6 N[܏7Im_dͧH*y=#])7Q l.w1v.R7wc)BDK{q:L֠٢[/>rjc۫q.hퟘ*Ef86V^A>?}BI zRcB;#wcBZV~)~Iy換4aPe0f9.J<+ٔ%֯qq $_Gܖ_#i#&fZ6Hd~O?%0zgzgSFg5mo,}O&~u kn-=E_1JNi("FOԛc ݴc~5Qr쭕cCdɁOu%xajNY^7qKu8J.e$OE}XjNSDZL";+|p 1NR)$R/4Qo_ɲW`,s%kuYܿ1F[`_Jt+{4$SU5z2h[s1ɗ~.tDqlƾIA @"@?O_P^GQywO_P^GQk|+1tiI%8ZzKX׀HqѥW#3zQQ@nǂZ|WGDo{?^em[C8 ?k86@f&/Q?o__7ҋIMODWCkRK^op k- sg_ṷY51ܱ>@Bs/<VdN@wm@A=kR*yx=jZlShkjt :d>Ics[kGxCd%WV-rhc;#9mu:kc 99[EϖvV['5)#CzU+ Vʂпl\Ja0m.ĺ@u%Q3}w_Ӯ=ĀHY$JRI$I$W_YE{gװ3 c*s6F81%%"Ƨ3 ]$!@[(F[|e?_4_K]IpǰGc<~i̾K&`ks:gBV9G}!{I$v\)ە^6+ǦklGYQZ5봖ikQJI$_^?CeXt rGԒI*NI$R俟\Կ/~zWI3;ti?I$_Jt{un$ ܞ9Cgtc+zb%>roя$KPUK|j}Z);gtc"cV鸗6rc(GP л)$RVg5OhWR.5cxRRTI%"nM^{Ăr}ab|fZ6F=awXϦ2{ںʼn׷744v?? gȾn1rM' TS@qiX tFi%ԙOض})7 [cGZ2$l`[uWmVR0d 5ع8ᮾ\֗õHӡWٍG>Asힾ?sTK>Ԝ-6[Iv50d}!BFܵ}AjWYѹ>c_n;؋_~J-o_KW} [}{s/ CLny'~˹-Yj?gCI,glu+9WwWm=%q UI"OshDb": avZMH D04W^Ko?[_$9C;eL+ߵdU%m1!ԓi8]Ef[h75![\?K]wބ+p{{ \ +ܷjŘZ -6==j\ UuǦl[=NӹH-L?is?5oٽZǀ{qӬ,dKkS&tdߥ R첇w-f͕ޫ:o'4P[Ga\C3-asokmtuݴTw{g~P?oV%W=u#m{BqkV{y$>g$$b +wIɽK]c߫Ē~A'wMti'a<>{i~&4'Uc~&?b%g>Ȏ[ rLUJY]TۿcK)d2q'hfcpM\$IJI$RI$"n3M]xG@ȹ]]icWk#$I)I$JRI$I$ͫ FUkPQsۛV8ןc$I)f.}^Um& Dg~}I$l09@Tg(~}#-t~Ob~}#-t~f9?[>e$Pc$I6JI$I%)$IJI$RI$ huFGCIOXĂJCtܷŮmc8Kv?Tr~J'B9}@us|A6{.cn_o>V/$KII%)v_Px}AjlpRI%EY?b>˹-]wK2zGN˳պ]~$[3xjV9K$(qGO7^7O_{gȪ_~O=ԾKҿI@[Kot 5SOc5/>yWT~3 c :ښṤAPo@mpshk\ GQs[ +,yh Y7yFQY~"**4^3_D0Y}4=X!V~$?^Vdz=y|V褒ILĤI%=O(]B@Bv_^m(RI$I$JRI$I$ gFޠ6-b#:ṀELsRRDI%)$IJI$R;S[lqmzOk!]GenBdG2RRI$I%)$IJI$R+uYksg`#Uo_c?5SI% m*SO-"@>$/OvR|~(SM_eVb2I)>[X?Qh:Nc6Rfw04"I)5>_q&wXslrsf}2*Ҡ$lo}DϦf|}F=Izf=GCwkM$-m#k`|})]m̛iX+#GI%0}o}^lsO5E6U>_1`"{ʴ6g[uO2A0F=$ª[6Zg<4 `Ǻ*@NJ?TEdYH"YOwCwO?%4RhK,ł[l6˟ukp{il yٿ%a$^gҫ/oC5iksO I$~% IYU4c!/?WRJʩ8خ. °V$I)]L1h~?&Sbz_lO_/g/g%1f'zoOR>?&>?&Sbz2qKXxjտg!E 8!%$I$S jh{O Uc!]I+SK?OBЅu$_~+%eT}@GI$I%)$IJI$RI$ e>-wmS¾ľ֎5 I)I$JRI$&v(v8Z}[XBk {b;ٯ)I$JRI$I$$I)I$JRI$I$$I)Kj嶛*kxlLg4^scELp]9$ ߇`c"}-Eڛcqz`>>5?{s),Syޗ̤yW75ƧwΫ[ubL;/T_3{rۓ[/{PI$$I)I$JRI$WK9ZUzrI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)H9;솀]UnxZ%BPNme%3I$RI$I%#X\^ωkQ|WHU JRI$I$$I)I$JRI$I$$I)I$JR~_ߗ|eG?pc. 4k]Mk}ml$*ydJ98uf߇@Z3k\j#@ud@Duwfậh_X`ʆ]b3cP6s@ufѭW/1ƶkвKpKj]ͳvԱq9Тp6.6lyB:I)2ѽ5=U2zl.#{sˊI)Xtci#_ Ū=~+uoj2I)W.g{Gtʅ8Ic3-=$aSm:OfkZcˀ=?{҈JGM / #aspmu`iotR+ُNϏvRU"\9-.QIH)Īc&#mpJJ~b=kЎJ`e^t׹m!ߊϦl;}Kg$ o]nCgc5?{?}nj"I)Tlaq>::Ggkƿ{GI%!X;l}ս~}/F]6n4Rqk1D~,urk0:Of]k}<tR;e&}ssJTZ =8$7 [wA~ߔ)_^FP6zv>|}76QRILK+iql.{]ӉUZLG>$J~b=1U踸6viTIHǯwl;}Kg .¥z.6$wPѽ5*ie &}s.($XTci#xOv-W@ecFI%0z2wt^wOSU.c$%X>dR pǺOf]kcD\͏.g0ҦJGM / #as-tuB$Wבm}|nl2WW"\9-ĻSI% }<%v%W{h1l}{B:I)cIpl-{?э^>LwD><=G:RIHKK3Cg;e yx[QIH饔3c ?{^5X,k$v}ּktRk=N+uojW.g{GtʚI) 8P:H[eMn7> /XObject << /Im36 285 0 R >> /ProcSet [ /PDF /Text ] >> endobj 297 0 obj << /Length 2558 /Filter /FlateDecode >> stream xڭrhK% _D#= $Az$ow3#9VQd%YY/ޛxS)mMf z%}0~Fvs.rkIVG~ѰFǪ dm,q 1\FNNTaMux͟7Ey$Ʀri f?5lŮ{*ϫXU~jV2ÂO`͚m ,µL-?8iuQb{^Nl~gW#Ue3Ȭ$Yܳj.Rn ݱ*8 ŵ˛iq?;0 ZX+!}u D%Gۮ@,&GTm: +4M=1]Hڀ:< TaEڀHUG.?EPVj?lAE9 KZk BWW(kJjҨ$ ~Ӹ//.{xѸ; sޮEDbFdy%IH5kPʵ|ߗ$Z8ۀi!OS%MsN"Q.o'AwyM@MD+%[d+J T^>hx ٓK*J~|ǏƓ<. &8G@WmWy; |\PrrAuU8cɞ7Bb' 9_r9wZ q1F~a'l p$PgGA95U;66*Wtng # ^AX~ - xFO$ǚ+>=m%\Œ8XW*z۰Onq2"Ie&;֫48%TO6^ROd 1sv\MmS폐WnY]K(AGܼR*ɩ0q;U)SHY( {@fgRI5{s&e 1/̚CN;׊lR(SV&}Gd {v 8V#gIփBK=-:'VYLݘ8kA9;>bdo+6fdb߽NpM@a%<;w~,%Zp̮q&yi aԤPN[{AY$e?m3񞛨} _aч^HrPCс[hY}mhLs2,(b[ih{ai }} (B0K|/X$P{ٹy _QXt떚}@B;V34%|ZA$)ݾ,R~0P#O .]4cL+'G`ج# qPE+aHc FxS-RQ;h_9 .g{Կ|5B،PGIOo:~pg\U(=Ɉz~YJ} 1J窩+g C(PȰD?ᧄy4*T:%ũ5§ =ɀ;E|-G|;vTE{ĜudؤLje*O&U绵CPO}]b%ɭa1BcZÆN1UFFc Y~Wg4˲PZA ,C j'[ͱt`0xb_8. uesÐLwg:OW! 40 5ڥ$_шq+7+w,_ܾ)+ C<'&eqU=ol}SRFX턵j`oQ' 6T;RpCAS MxQ`ɖ+~)0I!% E".htMT(!Ĕ>ԣ|]gC~ ک^7 ƩzY|{[|}iuV}pq{%1;۸|ߝƼTQ/0|6!pJԸaf?\ endstream endobj 296 0 obj << /Type /Page /Contents 297 0 R /Resources 295 0 R /MediaBox [0 0 595.276 841.89] /Parent 284 0 R >> endobj 295 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F30 40 0 R /F24 17 0 R /F54 39 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R /F27 41 0 R /F19 7 0 R /F18 5 0 R /F21 16 0 R >> /ProcSet [ /PDF /Text ] >> endobj 300 0 obj << /Length 293 /Filter /FlateDecode >> stream xen0EQW~%HeW5;"@J&> endobj 294 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/rwtable.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 301 0 R /BBox [0 0 614 673] /Resources << /XObject << /Im0 302 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 614 0 0 673 0 0 cm /Im0 Do Q endstream endobj 301 0 obj << /CreationDate (D:20080718193126+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080718193145+02'00') >> endobj 302 0 obj << /Subtype /Image /Length 29957 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 614 /Height 673 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;f"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJIdX7*[hȳɶ]X75ֽ{~IhkЮŋUCcck{]aZ KdOџ}co[V'Ԉ{TaeXYWednj6뵍̮8mU_cGtw7T餲O,WN#:1}ǿwkcۅn;O$IUs)ddֺ{}OTma.k FHBSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR:n6..1v5UWS@w}FIMղm%8]KNimؙսgEOxen1EΠ_F}Gdn ڶAdS+oھ_/}OOo-f=SӺq.˳//0;d:eڋKMMkCd;q;I)?VmXKjĥ1}l+j=h-ikD6o@vgW:Z*unkߵVwzT-{XC&6$ Y3 4:|fIHɏS]~ 6YWڠL4Rpݿq\5<$,k7=q$SM6נ tC81e;ُ" oq6nݿcwnf&T2 XDI%0hgEm` :0hxzxcZDJCv&K(Ƹ*fM^x4Rq11v=5]5657Xmy{d#E ﭖgk' TьzSI+hh'HDI% n ,SlpxcCbTɏ]gocp($ U2#m,$#>lвc-ƇN4bcO٩ѻhlTR}gcl|f&ThnEL48DS L` u``m8VØƴӐIHnpvE@lc\@*~>ҍ ᷈SI%!c]D&5쀚 my{rB:I)SNk&v in=L4DR=f,>3~.6L};}FDEI%0eW]mePFƀhӺ8Xx(kL|@GI% !Uk7=q*, `qM$\lmfwFMN3JGv>>KC2*e@e*hLcCD"I)x4[N=Up1"tad+FI%!ã츔bFW DhlW}`cYq&[Nqh&~jJRI$I$!)1 oVlyB".ãSS+$pKZܒ$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K>}fLJ8nخs#@^Ǯ9QC#>!$vix˿)~_2󊠒r~?wns.8˿*I{?~_iW}w;cܫ,ax8G^ӹ +Q^_m[ᒔˈ|nhGWVI$$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IHfMVmmp'DCǥW\y"$$I)I$JRkƾ/=lj.h%XC_Mw,k^8HIII$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$=sY+ӗg7=7~c_jS. wPP[1?hk}czCWidUw +xcl7"3X nP ~.L̻$͵8C=;yq:4sf.vF5dSkiw$1Ţb<z>KEYT=G*1 U`w{-ɰ/%&|Q`o҅yrFcfꗥޡ\`%zmyJ]1wP ׇ?1ܴ_='1ҳ1ҳ kIII$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$;W4RY9Zz.-ƾ+qcVSg|/Nj&RF8d~Sү*qpXw_wgp\cү*qpXw_w_yr}˙3BzU~लlٍEXv8I>eU>!\$%m&,#(”I',RI$I$$I)I$JRI$I$$I)I$JRI$I$*K)>1ZUzSW|bJm$I)I$JRI$I$$I)I$JAk0qWS4mwS]7cZi "$$I)I$JR /ǢϧULcQ-h ѐ8%1ϊJNI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$/$nskNJ=sY*ħ(B&#q&LB?Q+ EĻ'q45=c0tXh z"DECJwSe\  9PHH (\/PT~E+Q^_m__߱;?~I$qԒI$$I)I$JRI$I$$I)I$JRI$I$$I)JR*όV^UI$JRI$I$$I)I$JRI$b1ph W1}ޯ_wn7nfUI%)$IJC>DzNkM{D {`|q(6-8km{'h %&I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$Rg7=N^c?R+?;bSvONcCumkr` |LO >~q2 j}a2vXv>d~E6G;yJqW?"Wsp>;?~ֿ=/Sz?:qھStNqI)u?GK}έ$StNqI)u?GK}έ$StNqI)u?GK}έ$StNqI)u?GK}έ$StNqI)u?GC8XHh.%yU^g)/2iU_Oe_)I$$I)I$JRI$I$$I)-'6=QP誺ic5kD QRI$I%)W}`cYtKt;DXCǹ4WCmclh<Æ?zJHI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$/1o{)^6̻rs :*| DXLB@hP?-_AguKR.bx%1kNGsگ)JqW?"q^ˉugpLhr8'[Nk5I4lWVI$)$IJI$RI$I%)$IJI$RI$I%)$IJUzr_/3 PUzSW|b/2ĔI$RI$I%)$IJI$RI$f1kZG@¹8td<je\z:JRI$I$!K1S0~E_*ƪ25 I$I$$I)I$JRI$I$$m&Pƽ-&C])' cA[|Zdu1oþ6Wf+Co2k.wM&PbJ{@ݝǧWzݶyRt9=GԱU&浯cZȒSK95aMsLnIIP&JC[.;w[lBe~;zo.1)2H;8XEUXV*:x{D|C\$Ic@A6CW:c!^geoQv=IJ^֋`ClmILAم߬WS[=355+{?[Rt,7 榵iso(rH?hc7qw߹IIR@.`WWzݷoS><ξDeIIA:k%g{֝KRI$I%)$IJI$RI$I%)$IJI$R^%{*WK9%6^U*K)>1%6I$I%)$IJI$RI$I%#:ݏkM{D {`xB"%bwkeeN?2JRI$I$ rq(#iXZ5:?d:MǤ{L )"I$I$$I)I$JRI$I$(Xʞdncn>4 _mlE6| vOJNI$$j:5c"Iq-jVWIM_d+ΫJoTIUVO·_jVWIM_d+ΫJoTIUVO·_kVWIM_d+ΫJoTIUVO·_jVWIM_d+ΫJoTIUVO·ckW vO%%6I$&V+evLOomڊE-4ZvXlʰI$$I)I$JRI$I$$I)I$JRI$_/3 PiU^g)/2iU_Oe_)I$$I)I$JRI$I$$I)-ƲMy:ŠXCǹ4W\y $$I)I$JR.ãSS+qֆ| _~5}1cc.+k6ݡ4ay__JɇyI"g+ q#lY[-[\k11ʜX0"DBz9l}q[+~׺F[AqU4д#S Y9ϵVֱMO9yJiwQk\XK9#*mafn@7SkYSaSlouv=$4VU*uf{^t?Ǒs6 &=x۹ۛ!P73߫i?E&GͿJm$#_m?A6l;Yqu5>Ƈ6%.$L1:nNU1SSKA!y9kZqV G|1Ke1PIy뿽WK{ޫ>?<_DIy뿽WK{ޫi+߇.c,};Cv7l}"g]:q0<%2I&I$JRI$_/3 PiU^g)/2iU_Oe_)I$$I)I$JRI$I$$I).ãUS+qKZcG@8٫ti GIJI$RI$:+kkZgTD _E>F$IJI$RI$I%)$IJI$R|W0H4k?+}q}|'JLI$,O?gP[koT<?/ɱpI$DZlWumOu/k`6? I"M׀I~.^;.s08ɮ/{ZK)^Vܻ4gʿgV[0ftK2 k6XƆޯQeR^Mv. W+w{)V9_06I$5I$HZoG^U?kM)dI*|lKk u̡/c4c"$*WK9ZP)Fic$K\ \s]sH1EO ]XVwP l!ӴY9r`.\~S7JI%:=/5`~>CnѴ3kę>E9 䤤k ;C`H E=G?|,]>Nbcx~@IDȤI%)$IJUzr_/3 PUzSW|b/2ĔI$RI$I%)$IJI$RI$+3HH V0;,maIgEIJI$RI$ +FCX848ގCu5Zk m#$I)I$JRI$I$$I)I$JRHݸS>{emaez$I)KoTՑY6ZfX{ G˃ Ö W/Kҿ3Rҿ3Vg*_4Iz_""*_د?RC拲V`t 5cq x)^B\N3 t#f=HxN1A{6RI%}RҲ7ێ5{ih$lT@;?_oȥ57I9w(57__oȭdr9LjxC\!4Z@h!:HN I$[[=i[`ZRT'o;EљGwIfӟ:&Ih~iY8Mv1WE.oB}stӲCmUXIkZ+;LmkѧbdFv?U}Cwݪ6;؋_~JI(~J;؋Jj"*߿b.ҪI)Gu9ĒIcdu%.%{J_ Ky^$ҫԿʿWE?$I$I$$I)I$JRI$I$ o_wo۶ۧX׌jZ6=QRRI$I%)N1;5N?2,ƲM<LSa$IJI$RI$I%)$IJI$R|lV0U Բlyp>ǹ$:he -ayc0mut-BJNGlf=;_>>*L贸=vq.RS4)Īc&#msؕ^u{-1 ):Jqpl-{?я^>LwD><=G:RTKK;]hlT?ou /YsJJH4laq>{T+¦uϺ׍v-w@ecSz2wt^wOi ӋU.c$%X>Ss͏u̺ ?ǀmL\>ǹZ =9%$IaR-C;ilPlyBGlx}|nl(2WDs[wN%T?{i1lx5pILo=bͻ뉏Dnã!䰵ǵ5Q#;蟂Jk;"7N+))\/gI^W{q.,LOfwǓ8)A^OÉ?ޤw$['?z_aGKU~ ]owh5c282A~䌪I1rI$I%5zWj]WK9.%zU?IMWE?+JR*όIMI%)$IJI$RI$I%)$IH誺)mkZ "*>j,c9խ )I$JRI$s2h"Cmclh<Æ?z"=,Ƣz䶦64@%$I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)%xߓTUmLk{d%Y}|]e!='ޫe1$HKCWZ[sósk*j=Kch14X?wMGo SgIp߬~;&Gɥo_^k=JN9ud8C֗G@&>e\=A颒I$PI%)$IJL~ ;蟂Jk;"7N+))I$JRI$I$$I)I$JRI$I$J_ Ky^%ҿ?/WCR^g)/2iU_Oe_)I$$I)I$JRI$I$$I)ã!]S,p5:ݏh56Ƕ"$$I)I$JR*ƮEx:XAļSFulIII$I%)$IJI$RI$I%)$IJI$RI$I%)$IOvf3\ >WOn7Q\FO? rb*Ihc5Ʒ"q߹>GvN,1Pkmm5;-<ڗ,xlԕ)Qm^E~X쨂OsU4 ʟK]?oKV]?oKV1ZUzSW|bJm$cFV^YS׶2tY_{, _W_!आ#bJbK?w/X__R}}ߏbZK?w/X__K{_KIyr:_i}}~=i/4X__So][]-.NDQ/ϼSDZ}!% ljmšʇF1;5#*>-ƶ6>t%Ša%)$IJI$RmMǤ^#h>KyTG>䔝$gY1>;G\[c{C2'K?ln$힯sr?=كzK?ln$힯sr?Ge}?_OIyLT pi'7/Da.c\y ˉQS$I9I$JRI$I$$I)I$JRI$+oT|0wѓ=o?ܘ[gRbV5X{'XmiQ^1uc^8ϖ(YZvmz[&e(ίMx sZIhs$OHDPVC6\ h:_kGoa` ߿b.ҨKj]4>Xū;؋_~JI',j"*߿b.ҪI);؋_~JI$߿b.ҩ~"*$[*V6 h@RI$I%)$IJI$RI$I%)$IJI$SWx^/oC_^u_/3 PC+5Z k` - B"I)zAƧ[sU"ӳK^+Uv527P5o!yͭ|I$¤I%)$IJSʠG]#FaF8ѫ2o#dQ^Es5aDxImLmm'h'DIJI$RIEel6XƴKܒ `Z{Ǹ5sA*:gˣgIBmW@clh0D%%7Wk35˽ EUÿ9h-?7Sr{m9{s\pQ5ϐyI^z`=~tPwD-?mG懍͞ڴJٵ? U6ȼ*mMbYyI$$I)I$JRI$I$$I)I$JxqR[EWm9B}~{%?rpk|`raW|%z_zo/S}}DO?V@ZT*[ƧHv"{RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jj/ PakX$y,Ժs:n#K\+iNrYILcm3"~pqTjtG_:g̣gI%8{H7{][Z6Iƴ5ѓuc^ZzKt{ >N6e##_Sm= - )*I$I$!b1ph W1}ޯ_wn7nfRS+1HC,?ix^ϯYQ5ϐys- ;;踍Z g!$h+#V ذ .w2dAI$MgʽBQC1z_ͳ)l[/6I$I%)$IJI$RI$I%)$IJI$RI$`T4i{AJ:OB߭_{Z{?lǗ'r~*q޼$wꟴzʧoGܪz|±T;@ֽ(Kޥ!^Y%'|%A5TY$I̪I$RI$I%)$IJI$RI$I%)$IJIU=G9mqi- i-ao Jm$ٷIGf&I*q-mi~ٷIuMg?R4t<^jװxe^ȭ?Hm W9_y&.K.--x,nk:Omu9#*ã}MunìINb6m՜,~>Cy+nW,R.kd0o6Z*?s{Ccd0wW : vcQmGcVh\4;#>-L \+kҚᡍw5sKoJ*SʠG]aF8ѫ2o5ɇuW>4 ,-lf1W[C kDa#w~_z moMrHw:~ޗ쎥߇Oܫ'0:^}YYe.kZ\LhFT~D[F";21:RI$ȤI%)$IJI$RI$I%)$IJI$RI$]wY^ˮ9<9͠HؕW~UT[6Ksw84]xPƨRG̡֊ZIsX ѺEh_?oG^]]>AtىU:mEcs\5H:K_h$JۏƿK_h$j 0@Dי.u_sq>igTY[ waӍWr)ks0RI$0$IJI$R~)oH쑻Xѫ2j0n~F=};jc sA(tY]m?ͽs4i4"$$I)I$JROǢULcVspx>$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ^eU̺ʣ˰j,| u[e j;^DH{($i3-ō opI)ҿ6ȼå8 mMcYyI$$I)I$JRI$I$$I)I$JRI$I$$I)ҿ?/WCUWx^I)I$Jiu[z^N%-fւ`LT Ǥ>/KII4X3e?^}^g؇Wgؽ1$?{|jCb_W$gb/^}SXeqC\ II/^xDlhpוa%!jp DzDf,bKݺ'Ӗ~ji$4eH dnǦ"XX[ljkOJGu[3XZ*m}%> m7"$7"fËk[1VJoEϦX"<}G$=zt鸷v-Mƶ>tR -Ym's `|=mn{Mpn4R*.ޥQap`Ŵc㭡߂:I)־ʟq&"Gĩ3su&ckI$׫"[j@2J{.Lkۖ1$wznwO?5 o{)Lk ~ǣ$ @¥bKs%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SWx^JJ_ VRI$I%)$IJI$RI$I%)$IM| F5}u1k@*ã!]S, p ތI$$I)Hx$64m"* jXkk %6I$I%)$IJI$S_ NHwiWnvwa *c]FFY EIJI$SQS6cs\1 #ihwKx^I)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$U]Q$5Wx^I$aZ|nx#R=2= GM%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SWx^JJ_ VRI$I%)$IJI$RI$I%)$IH4k8ۣvǶ<F1;5G} %)$IJI$Rq/98䑴[,n!ڛMm= ֊@$$JRI$I$$I)m6Uwok1"D _\o4I$;|,|{0oULcԑ-h:??SդSWy }#u?]ZI%5~בp:.?SդSWy }#u?]ZI%5~בp:.FYlk_l2\4VVvWWbJm$NО9۸8LjI ȑ?I,#r).{|?oI/$QCz=>z7$^O*!= ҿ?/WCQ&dTe48xÄҿ?/WCSI$P'v(.ؕ:Gw()I$JRI$I$$I)I$JRI$I$$I)I$JRI$+K5ZUzWjI$$I)I$JRI$I$$I)I$Jk,یks\Z V蹙W\쵍{gp?z"JRI$I$ aRl:1AuU2ĵ>t }ژF$IJI$RI$I% ͹YuU>ƃĵ~t;S)ǤָٸHG%)$IK8ǰ 2kFV6n=I]5ͻ"tFg?{vcs̹~5b]/QN98s||QBDzM_K}ts?kIPHOݗq>_ 4KA3&tHد7)>Y[f #Gu[+> ֟%YqO{!/[?0xxAU*igugcp׹ղ7C5*Iv =BlkZ`~+QS)Vκ4@]:M*yt!pDRxRI$cRI$Q%QFԵX_^?_^>=lRl%,V)ojHec6]m5}o/ãdr%o }$A(nE, Q饔Tk'DI%)$IJI$RI$I%)$IJI$RI$I%)$IM^%z*+K5ZIJI$RI$I%)$IJI$RI$I%#ǥcژO$4m"* ̺Eڝg$$I)I$JRWu5Ov5fp"-`w XÎI)I$JRI$I$9t}m}j^ f>hʾ{fKciyanpi )I$Jcgnȼz՟ͻ"Uo~w;fHWic{`{.!Zeys>CdZ֏0`b]Hp/U$M\S_9.=U5^=wSޅ?/3Wm$}OQl?zr«/nʜ ." 7b`oxFѯt do=Ѡ4I$$I)HtU]M_B}| F5}U1րRSa$IJI$RI$I%5v[U"l}65i.- +9lK@i{it~)I$JXAԾ\K\ct &O2WDkɏ>\7PM<'I/͍N0;^'h %)$IJI$R0vN:c48ގAxAh=o97?'p8ơ~"~DdS (k--%%[~ev,,EI% {3uMtks7)/s@{Խ>$Xlz.X.Ĕ,?aiU(IMI%9?W:NUξ\=$N5z7?l$.#qFBG%5z7?l$\#qFBG)WgRmU=I.9w*@$X05[0ϱ'%q[6'K¦km{i?@C'%vpcL4`tI\ל|{hKtC LEf_R.-L&,R:pq8$nWMAX粺v7lM;/RVX>7+cM{Zm,{jo $lo]/B#WbNĻ6jkfI˱E|̘>c *gܗΟrWJ_ VkVڪhcZֈI$$I)I$JRI$I$$I)I$Jki7M57}-F!c^2qh-1y;$I)I$JRbwkeeIgFU}[ml}5KA))I$$I)I$JRI$I$$I)I$JRI$uΑkꮬ?@h"A{<09 I ܬ#>8H\e8rqNmf\sk-$Y#\>&. fJlq. I~2 Gg6Xp3?ދ$/? }/? qI*f2_f2Jm$/? }/? )l+%l+$ҫ#; 7V]AmO?gPP_d&#?$I$JR쾢G5v_Qw~J߆>?\ߌOI$y$I)I$JRI$I$$I)I$JRI$I$ooKեW7cǷJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$q(qi8% WYv5֙ksO JRI$I$!ڙMl=&F=~Tw]ULq-hi<RtI%)$IJI$RI$I%)$IJI$RI$L|enԴ@Ea A6!]'__K[I&{r_;r./я1~? ?./?ޟqf6ܷWRF8qA e,JsdJI$5$I)I$JRI$I$$I)I$JRI$I$ooKեW7cǷJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$s2("k0"~DXI$r$I)I$JRI$I$$I)RiUXzI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$mf3.ci`~N3VoV-9;vնͳ1D⊒I$$I)HX ljq)vU~m8ޯ_wn7n $JRI$I$$I)I$JRI$I$$I)I$JRI$I$7(.at_?.td[&/#\W쮆bȸ0>~ zzs CHk&YAg::HǭԀA2a{]UHGTp(8;zXKjg2FM;u2;XܬkǨms126641۫54{X8 .NK\ckem]ll9IP3  `4{; >:LT3(c ]k5#c۬!t.Etc///펑s?v7rƟ펑s?v7Ji;gI/#c۬+$펑s?v7Ji;gI/#c۬+$펑s?v7Jso7bՍM7@kFI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IHeU[(Ikk#h?D _dS+tq-h>tI%)$IJBƼdUѴ\QP詔S]} 7RDI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S}|0]/;7"[XnhLǸ~?3$9ef0pCeE%{UAI$a_U-I^gI/}W&os|@ZVCc1GkV衤Gy "?x$NXI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R do=Ĺu lkk{C$iSIJI$RI$_уE]Lc0Z *2s/sp ݗ@]bTpwILA3!ŔZ׸ !tMnv%5kX']RRt-Z~TQ x$ 3o.onf!J17qJJwUm~napNPĽ6%'I\wlֱLMTڽw8 ;wh=S4ɑEo;LĨ; /i:IICq{L5Jf^b[)"H öUw5: _ck.qIIPTjÁ7o9,ֽI 3JLؔ> /XObject << /Im37 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj 305 0 obj << /Length 2651 /Filter /FlateDecode >> stream xZK6ϯ `[ CrYa-AniVKmIɯ*Gn,")UWdxu;lrk7W4i1"gImͯ_qmincMS[E8*n<1oW?.IqTf$8oW/8 &,Ypoɦ?o|sk6ʘV  Wi7:LEdKCJ =۱T4!aeݖ՝˻KlSbǮh7ҍb1V1O浛7qKc*ėĖ@̍~q8:&Dlb,s}?H_DUO>M>vqOZ}\cSm, U_,/&]wMӡ1N%q”Ist.sX9Gjz)`?VwMUeH-<;H&r1̣-!gucƋzJwi8bY/--⾥vk9ER~AdEnH諢mWh Y K>C0P߉t#S>ey[ĠZoǢG%Ȍ\D)QתR:zG2DtUuپrUUڍ=qr`KI]cAe7wQ+XrkJGEs :IF%Q12v^9"*vhB 2g#n M1[158# )iL}.OCDNN&o5O3aN1{vo5jh(Z Laagt$PڿEX *$qI]<1_9oW_)fﶜ lAlLn^n4гS}Gq3D !Aܺ>BFjLjfgq 9~.^/-d[{jbAB&8liy42+?ۿd)q>mA@lBZ1v=f+Iq7͝_D`o\Ӣ4\@ЀC9ϧEjr.P_>TΔ%3==v^MxrNoAl*("h p$REDIƧE~qȞJ|6Mp Pldvj\MCN8Z;>:Iy_!X AH<l$SkůA֠ c͘zihwV78G\`winlS3Rdu!4@9giB.,R,)=\zi S+?ͺv%u4M:u;; EJNC!ѡd_ gܲ0`/∢vK|]j1֙^UǺ0k X 3%R nQ[Gׂգ[*'*c2QbCHUqZjpn? kp<f[ x˧H;6- :q. dYL644]? )0+hҰUU +hyDÂϔR9C`݈h\yj*ޱbla"?i΄ȇgT>Tw!2 \9xItpZ~G}wC -5YZ8RӸ<N{;L Jhi뭫[aA}Hj޵W؛>7n"Tg-α'(oKq^RX4, KövA@&&]iBJ 38gA uh}-hO-Ϯ0[[Q-/*HF4h6NkkF=h4g3T._ ?!r. sT?} ׎hP?t MŒG ^@SS0ƘbB[se1w{Qcvu1fl>, @}XG6 |qӡ)!؝S>z/q]qq$m2ƥᔿrX[s"!f"T)rzX'l2ۄYZ"ʇ6!BTߐ9"٪pAd/Ck9Fŷo!)*֞=?Aa}Oi*z2=Tcqsoʜxi-RxM%tW8s83:;AF*Yjb{bZMߺWO6ka2Z843޺lYJyMdZ)ݱm|b/,v;7լ4iuEŽowBE|-/FL:f1T WKW -B6R㛯NYe;i [PggRݺPNYt-MAeuޡ=t Z','hC5FMr= Ov endstream endobj 304 0 obj << /Type /Page /Contents 305 0 R /Resources 303 0 R /MediaBox [0 0 595.276 841.89] /Parent 284 0 R >> endobj 303 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F51 33 0 R /F53 32 0 R /F30 40 0 R /F18 5 0 R /F19 7 0 R /F27 41 0 R /F28 49 0 R >> /ProcSet [ /PDF /Text ] >> endobj 309 0 obj << /Length 2227 /Filter /FlateDecode >> stream xn |*cY ic`t)iTȢ-EJ' @|aի[?]ݾO,dp LXD]| ^}LdQũL1r$sY+ZkUSʄZ%!d#ѫ]J('FdQP/A$d_ shZXW"Y, ę*,C١8 M˺Yyc GjTеq! KrF>m#rpl\6 (@I3Z[0*a騐(f &%,&c]7 H/Gq7 ?ڡ.UGiKxvdCUE{RcS?ԥ=x m]hUcB'\MKZd,urOnGK󧯫< :Р8"U9)Hzd2^+OQ5q[5bacT"$k!oB"C;'hC-WF,6BGGT)HN \Cur2U(k!U ^LDgz{}ȒrRt.{sB,Yy )G>F_^>As}\#%~ڈf H#>QW 2.~M8;d⧳@w[V}Q"7A3ڇweN78ƜKߜ?6 n kTy1ii |tݰ/|,RAE&,,Z# S㊅euD,XD2ax$ӡGt8W 4Uو9 NΦh?-U#w\4znLe6id]n}ݑC$FF'P_Ƨ2ARUpzc/;S9( ? I& ѽCH$jHSGSo\bv -w_^mI')=3WR##2Pn⓻A=bz8豞b(B?'`(r_.qo68܍l!GeMV%k5JpJFJ( )ig$d"Ӱ9է*Hm7{CUS@ ҉yGuD 8&/*w%Ƃ7U7*~!&0ah27+b]N9ri+qERxABj+R=ujQU2wj&9npa4)ޗ%/4e,M )׈qmܘo0_] ڇ١Aq56Xi'x q#dNy.b* MF@Wmnx#- =J ;BEI%֕:`S|p>YS,<^0Ai+3Հ.>"A2lQZ o$Z)ؠex GR"3z[%ldGl_jt*t Ͷii(h42jmJyWLR4+Rtjnwiznr=JHsQO+yLEnr_RpW;`Q@xjOz!/Fp}9o[t ϧg7^dwvGMVQ>6YB|F{:{-mf/]zFhn%1D#}\z֩@Kt1"I.&)T3e2ˑ4*CtȏGuD2 z)^3(2\"<~Li~;֙A~TwID@, L-RhsѭA=?Nn'3=}p?UQƣ^9T,> Ʊp2NH gyq endstream endobj 308 0 obj << /Type /Page /Contents 309 0 R /Resources 307 0 R /MediaBox [0 0 595.276 841.89] /Parent 310 0 R >> endobj 307 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F51 33 0 R /F52 31 0 R /F53 32 0 R /F19 7 0 R /F25 48 0 R /F54 39 0 R /F21 16 0 R >> /ProcSet [ /PDF /Text ] >> endobj 313 0 obj << /Length 289 /Filter /FlateDecode >> stream xUKO0+NTom1R*"7ChB[qF-gLr67wΣ by aSDIHVu!L[zWBj)|<@+*K6`Tta9;2Le,TPp uӍ6@.C\5+$`("qd v# ͋1~jļR倕7IܿuP0as]KoHBZxX Mz\(vrtNByu.C]|BU!m>h~ endstream endobj 312 0 obj << /Type /Page /Contents 313 0 R /Resources 311 0 R /MediaBox [0 0 595.276 841.89] /Parent 310 0 R >> endobj 306 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/delay.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 314 0 R /BBox [0 0 828 779] /Resources << /XObject << /Im0 315 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 828 0 0 779 0 0 cm /Im0 Do Q endstream endobj 314 0 obj << /CreationDate (D:20080719113254+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080719113309+02'00') >> endobj 315 0 obj << /Subtype /Image /Length 43522 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 828 /Height 779 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;; <"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%#ɽ6:Đ\bHPm~[HYe*y'ws[ >DnΩ\:#0C+k8aV\6D\m%9c!3Vcꪠ(wP{6z{֒摷^v16-]C'\샑Eov>>+Ǚ>FG0]Ӻ~F+Ʀk\_esW9#i%)}JN1eP}g˯ڭ7?k u~֛m^t3K_id2~!WEzV^-x9XxѷDz>lihӺ~e_NEߏeӺ8-x$/?SKc0ȣ[n3M– ,doK?g~=!dz sUNiee'6K756Ӻ}1~e-^Ki;{~3tl5R˛̖k6]`Rr`aA"#Lmah#`Jk7>f6"I)y>bX?Vm?{(k,b2I)ƯSptO->Kl)\Z{)N d/JAnEռ>֟[7ZqsG⦒JEM_Lp,,$ozȻhn&?KGI%"*e/y|}GJVFUo⦒JAVE?k~dеOuǶ>QILcW+s`vpoM[>Qz~EI% ~EͰbzշ;ST1?=$k7>f6 \mm?Vm?:I) YQYtk,,bƯPL~ji$4m-~='uyMnEռ?}$iM6K}1{RIH>wݻV؟JPVX#=$׽պkqn?7C"?y?Z#}85"w00NJA[I)7Yi;貈,3z.mŵ7մIH49>1Hs}&ckIJ@̋`cmcIn5m~ ʈ ˧Y`cIL5zA>-#?5 o@yFI% "ZkmXi,{kuOcKC鹣SI%"- =7Gzmۻo5m_]mYKEe>>إ]}{[:Z]AI)YXƶ5B=SYeX0$*n.} [Om\uE?NǢ?"X[^c{M[ONSw2f6$tZ\I~?{ƒ2.uŵ&7մym.IHʈE>`cc^t;hM$ůǶy;S[mokmXiIL,{kuQ- =7$zmۻo5m_]k<|}G$«e{[?9C"[jY\tRˁ,aS6) ~Lacqm{GմkOJGuS3XZ> myi'oxDI% fEΰ0zշR*N/}2R"6ǚC['% oDN~ǔdR r-Ymk?%9mn{[_9TIHAK=B?MQ9zm-ն';>H$WZ,O"إU[?9SI% "[jj kDzD%($NJOM>->Kl)IcaacђIH,ȹ7i@XFjcK %'I$RI$ ,Mwqnۻѭm'䌒I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRzO{k̽9sAQ[\wPu͵W;ۯ c/-Ys0c/$HYzп[>R wEyi[Cw@(4S->g}cI wE/п[>W$S/)A`}'r/Ϲg usn5&c<9?my7=Ms3e%+5߄O,e2c[j@$qTI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$C}='1=>8}iDN1III$I%#>|zNk`m#'Kp1j}m% OގI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR⾾M?K\WGS^ct~돔' ya44FH(aKr.6X85$C!Ym?]S6$9'xw:Yz̪s˚ cC[C;N1;2(φ9vgPi[^4!yP#⼚KcK L8'Ec[?hpyٓls4SN.*euy4ŞGѤN%bw߼J2"CH{Y9 ?~=fuYGs_ekq2G#B:˫ͰQ$ƏRC_" 姪0:j5{ĕ_fCn1/fCn1ni%WیKیIM_fCn1/fCn1%6U~љqľљqĔIUFg?Fg?Si%WیKیIM_fCn1/fCn1%6U~љqľљqĔIUFg?Fg?Si%WیKیIM_fCn1/fCn1%6U~љqľљqĔIUFg?Fg?Si%WیKیIM_fCn1/fCn1%6U~љqľћqĔIUFg?Fg?Si%WیKیIM_fCn1/fCn1%6TȨ5⹬/c c{b$$I)I$JRI$I$$I)JO}}lu5Z&~j=ǫ!yp%$I$RI$:ddWl%$#eUSe6ƹϑ>$DIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)q__?ڮ+oTG/1?u_̇0CCgB[ <K32_eW+sZ!ò:9:۟{l}Gun{átB2m}hu/ s|PDGru@ET@]}s\@ gF֏?ӭͮ?~=X?0EM9<pI-RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$Q?իJQ?իI)I$JRI$I$$I)I$JR띕1l 'DU}vUU,e5 I$I$YT}bvպ[?* $ѻkm;b;ʰI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRw͕Mn6Ă m$̘<30 <2^7c]$5]JrJ+I?) cg4 '2P I$U$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jj:Z:ZI$$I)I$JRI$I$ rq(#iX@!)1 hn򄔑$IJI$R,ۍnKp YMY-icM $$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$uJ9Ãw50V~ءdar2s WǠch15}]ul/[$4ZA!:rJ}Iɛs2'w?ܮ < {B GQEUgcwKv?U-_]REU%6UgcwKv?TIUEU/]RSi%Wv?TgcwIM_]REU%6UgcwKv?TIUEU/]RSi%Wv?TgcwIM_]REU%6UgcwKv?TIUEU/]RSi%Wv?TgcwIM_]REU%6UgcwKv?TIUEU/]RSi%Wv?TgcwIM_]REU%6YG z~MY{_]69hZAqi$Q?իJQ?իI)I$JRI$I$$I)I$JR}5WбD,j65X;,m`Hh %%I$RI$HSaȏKi7}(DA̠_Ӵ[ [?2JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K$WSb;H 79O$^I$JR>@wUîO|OW~?zDImʒI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$^gҫ/oC?чuiU?чui%)$IJI$RI$I%)$IJU=_z_Ehݺ{ʰxƧ$ `o1G⒒I)I$Jke897Tb{bai#B!s1"SG0'"$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$V0k鵭4\%]Rùt3MHb+ĥvS1^ז~}5PC=QUᛷGnԔ$zu٧m]]w vč1H̟_t.jhn89-t%: ,Oڽf]_,srIΣ+!Vnu~Oq,NEMȾe-]v3e=礧Q{cKt o'^\>ΕYms1z,>zݹCc;i},mckk6[~~D>~D> NV_N>losŝm;Fݪ鐠=ڿpz_pzTgWn!Ey[yTYRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$U?V^%{$Q?իJQ?իI)I$JRI$I$$I)I$JRM5Nk> kD@8Yꩌtj%$JRI$Rܜ{qHmun#6*A%ɱŦ#$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$:77Wsń] -t>nrkoYMdOX>?RS_WrqW#t89EW8oltV3?U~Un;szQ-{,ulXp($ $V*VVNmw;+%vQn-Ǭ?RvW~?p ]5mr" _׮$ˍSu;&uNkwc,t*L=BSWV+0_,m)](OU#wWFJyΫz Q.5Uܬwcu@wXFA|z&w)NןgO<{2ݎ}5}EӸ $=/_fuX,BXvM V;I$z YǹQRW_uqN$SMYb=={JJo~ #c>8tSRvG8;OQywr*I)}6nW{ClϱaZJGM,+>9y%B**Xf\IHnū f4,{?1S^lmN֝ߊI) 5T\^APK=hH>k[}FIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SWy^+JU?VSWFեWFդI%)$IJI$RI$I%) dѐ8%1Mn='5=> )"I$I$YW읻fى uECYM&!~)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$vU]_-s?#"EOW/k?+:JRI$kVVa̩i!wȩ19.dU;R_X?cgEIY =/$u}`5WYKDZ}9%RO;=naf 3. I$W<֮gQK^Ak].x|7m"ys ϖ9;^pO)b[;vlȥ;vlȬd?yrܹo8m"m"K9ObrqVü2 jNVD6-ϚI$P"v7laBYi{[nߔRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$^gҫ/oC?чuiU?чui%)$IJI$RI$I%)$IJAģشѭv~,ƲM<LSa$IJI$R _\oĹ 3~>FEq֒RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IH/[ƀE֚=4P}b\ER5ݵO=I$Pl+?'&[6ѯnJOYDUn$i. HM%;NEn<H $淩 $.` yUvRmbְRt H]]#ixl=hTyѷ ԕ_ٝ?>eϹB^z\E8VPƚHo y絮p`$L v~1sY}Ja&>{2.mU5]L=ڡ{?wߞ$M\JWjJWkI$(GU-8}W{k行R`,beu#^MLA붯^] zIqxJ8~? tI% #ysM9sv;\7W?Ĝ4?3>Q-G%?Bo4_ [|q> )RSFk>N '0}|[_*mT*mt`r$EuIBT_/v>I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$U?V^%{$Q?իJQ?իI)I$JRI$I$$I)I$JR]`cUp"S[^84 ^rq)#iX[n$JRI$@ Q>ͿKvӶ:f!_ "4-}z?V\G}I){\9<5$g紐k[zVO$)qf8֯;[c/gkw/X>?&>?&{?}w|6ڨ@thx^|L4%|L4%}yp򣪇0n$?L/^:0G4W.1{-s=MU>%D* ˌ,c)S2#I%S2#I&eU65dV]Ay"{F'/Ihy};Xe-َ=M5M~Zǹm|X<Ҿv>=s;mkG|+5%SOwZ7kOۮen=1lif9Ku`z>Urӽ SzMuN592D ;䒖^+5ҷT9~WյPVC]B `[WyG Z j_'?ZޟSޅ ꆧ}.K4~jKAxou(}V6vZߖߚWs0?oRW r͏W7TI)I$оغ}It+;'/>X$Iq4ǟ#(WK(ߤށϜBJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRҿ?/WCUWx^u_/3 PiU^gJj:Z:ZI$$I)I$JRI$I$ `R|z,T:5խa\:2u2.hq%'I$RI$ -}CMyZb1OT;*S-s?#"JRI$O?gP^|S?;(V FQ]3,sdpv>,<bwe]'I/ CdOn%ϗ:+7yI%iֱFApݽ5BGRO%@'R[a0?WR>O*G_#u)%dn#n`3.qWIFM+RI$K}$VPGa cZdWn w()I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JJ_ V^%z/oCWy^+I)?jҫ?jJRI$I$$I)I$JRI$Cu5Zk m#Aħƚ^'h %&I$RI$Ue6W|zOkdHkdD _\oĹ RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IM|eد`UY^;{eoc U򦡹-iVWcC[ `%%IVk:j)pv O!n[+'w[mp$XUױHt3=kՙ$JskdqeNŷW;k{l{\i$ܶU1ӭnjPu}D,TKe%6RB.h2N|e= k#%a`~T%Zu`7KZ\y{C3\GmeN[mi):Hq{=maٻf-35'*ڬlh+Ր|ˮ%'IVAE!w~D[{eoc U򤤉!Pܖ+ӡu!u[sպv \DIMreV'6\)V/Ec/k [=?RDzM5%{3ƺ*u~-Ȓk-/k9z;vZ @i'Oj*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRҿ?/WCUWx^u_/3 PiU^gJj:Z:ZI$$I)I$JRI$I$*=YeěMny:ŠXCǹ4WX!4ap%$I$RI$:ddWl-i##/Is#h5숒I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI,jx?n]M eIq2~.1H|X?inE7=|cC/ZK7ۃ"_xV?? ȭΏժhc fH,&b<"$trflI$W$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)U_^ҫҿ?/WCRRr_/3 Pi%5zaG~ZUzaG~ZIJI$RI$I%)$IJI$Rf5ImLmm'h'DUex׃RSa$IJI$R,>Ջv6ntLnxAַ%Ϩ)o;LG )I$Ӂ RЃc$픕o}7n7$>rJ¸pIV]I~.q$+w *½r*熱qt $IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$}{cl譭9p<Y`!tk#SblRǛy>P&OQRIWsIJI$}I]ԟʤ}B$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$Wx^JJ_ IJ^gҫ/oCk17\`-I+#\WVd\mk70d,_XxtlX]^sp{ǒt>hK>Otځ{\˕vOd+66W┟"'2I)y>)ILJK :!z;e {̸%y&?􊿮ʽg5 7~_bNIMղͼ2 xZ+dmft$JRI$l{r^ m,uHh.DCdQf=9 8ADIJ^5zLb4kβy>OTyMSW4#aI$i)$INշ9^Aj4!yZ^[gI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR羼غ}x 6)cܼ$UNX:aYo?IW{wCxn}@Im$x)v_S~Whk]qS|F~SϡvϛrK,lVS7ڿggb_ggbJj3m}3mI)|%|+I$?Yؗ?Yح$ggb_ggbJj3m}3mI)|%|+I$?Yؗ?Yح$ggb_ggbJj3m}3mI)|%|+I$?Yؗ?Yح$ggb_ggbJj3m}3mI)|%|+I$?Y؟m.۞-]5YUzowጏjJm*+K5ZUzWjJ_lcK, kDKLLo\$$qs'ar?X0ٝ=U{'NhӗBO:g 0$ :wN0|$Ii4TI$$I)I$JI"Y_Bl]z'jNox[2.ãUS+qֆ0-~F=jjcFY:I$k[ XG$ZINv}7QVli*?.w_U2~K@q#$''_xZ ʜ\'ןop^{yusFKHES?Tht3&KsXsAx?v2G@]U;KXL @=D.ʶx-q- d*vem;II{$sV6+STؾ_{lyI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\׏0Bu = ;=!`#>V/я>}Q{GOR^4O1/я{G>|wR;*4O1^3FN M\D$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R^c#?ڭ*7;G%6v 8Xa߾Ak@?|I)˿K;/*$lUzWa[ר+%u /7Bt>hK>O+x7VI6T}z6<㲮Mc^E'm8=a2 vѤ)-=ޛ}ӫcl۷ў꽴[ZfU=7kTjɣFͷ],ڭ CF7;LRz01]WS[j-㸗ӱYLqΨjʻskmcsuTApkֹ#W~ݽOW_kC,!j#ϒPʴٹ X*sZֱͳkZֆs)p˩7:Kc=Zn=`uPY]?K5V23+֗sZ ݩu>%WN j:${t jSG/*E_o^W?V~_b;/*U_Fe9s׹=65.0x@ƫ–6O}6Yl<̇Sn9|c` sdIJI$R;/FϴGO" P;CMվO%)y>OW.#'fyepsG&UM~g#.]?߹/yrۗf$yr_3~佹vWGO/I\J^Ks[2v \`s TI')$IJI$RI$I%)$IJI%Fd:U k*L~uN?JMV5_e5T)ekj5v#`pۧGٓKsٓ`66L4})chyG^kf쟲z,8}/I;ur_OI=U0;veVS[e0#P& ~;*멣 olY@?i z7Wg+7Sޥcd>Wt`bt~=EPq>?ao}۝kow~"^x.fYm4~ӊN^׆0ߵۃR:5bVwfm3he~m-u?hאejU kٗN5vNZڙvf+@)%_[vwMu5itېrMl>ق:U;8n/Vͷ>2,npkǼiRS׍Mk:m?ifH,>o4_?lv7L¥'-p')}xS\iĒ_ l,{z:nfA}](bqZh}k ]]\ncոbbF5b#.^ܫD\?GEW+N-8':l͘)4lCYsJMXѿ2d>\ ;\$qv沾}gv6nɦCm/8vEͽUN}^5HJ/N^׏qVr:^UfxJuI6*6g" *RRtcӾ"g 369΂=B^47OJH4[S?&ۄF׊+aJ{l~dHYyRRt,clun ݧ 4UeS]eǨ#鱉)*Ho2 l~[uO˟IfOǤ(U[fO4 hǺ*@NJ?T!ƽ=o53k;]DI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$Cgc5 vm{\,E>oSW|?VIM__;tR(GEZI%5}|?X=w?3);|0,gź.efsN0|Ii4TI$$I)I$JI"Y_Bl]z'jNox[2,7FU,kN5Y-Emۀt~*:TI%)$IM|l&>^ai#aM;*kDDI%)$IJI$RI$I%)$IJI$RI$I%)$IJP5k]{M EYfRTI%)$ILMV:ƽԻ}npŮf>M$RI$ R<4=ts>ji$$I)I!ZhǶ$>ֈ `T|z,T8 uk@*T$JRI$dܜ{qHmud@p-(x-}SK{yݴ9VRI$I%)$IJI$RI$I%)$IJI$RI$I%)[oy#p-0$I)K+`<ԝ6k0L1P)1!?ǣM/=skI\qk{z>O?&qW>O?ǣMv=+4 rݮ/š5:jzwՏb+V\3ꤒJ;_?OSJrRW/V(r2o_.t΃=Axn;2RI$K7T?!wˁ*8//\I$#RX=x۹ۛ!.dT@"ڬ»aI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR#; 7φ0e6aD$IM\?aLL|ȭ C(VSC'MB߸r_:oTзܗNp}$U4?bt-+TcՍ_HRBV:f/h"jUp}c%$/Zoq1ܗ0=_7ROZo?}c%$/Zoq1ܗ0=_7ROZo+qq1ܫbbf+ꦶ8^sZկJoI)Ea?{kT;C{%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$WFwoxZUpgSi$IJI$RI$I%)$IJI$RI$I%)$IJU{,2u;@3Vq/N-9$mey:?$IJI$S_:`d6 64|ՄKG|V9N{'1QNBS' kI%zowጏjxYhʯ!VEԉ{W_~%[}ksMk5 !!p=RwR˸/ޝ\NNIj4ݑ`[ck `I$ƳI%7!#`>zVg8rN*c[Y/뢋m5SaS$ܪV4ns \ 8EUّn4394}\+b{ldI%)$IJI$RI$I%)$IJI$RIyk7>n0햰KNNL /6?XH%<~ܑmR}R^m<~ܑmKxa#ۯ g+ߏ)/<׬˦/cc\MA"D^[JdF |Ty1uuLOfI$b$I)I$JRI$H +J0BJm$I)I$JRI$I$$I)I$JRI$I$$I)H?#>15sA(tY]u?ֹG|RDI%)$IHs/8ؗk} kKFClDz[]n;c>PI$$I)I$JRI$I$$I)I$JRI$I$$I)J6zQĺ )E!%&I$R}mWo=z*󯭿*f?u~#J.Ic1Ĵ:4%HpF:]N9A kczEycG4}ʩvNC}7}@%ѶHh|r[%u@VGb?&3{qhsj,pyؤ ^fn`^ RcccۊsSKmR<ml3ye_W$4>LwO4N(a/.Ȏyˠ?_sWcKZAhAvQw-&r4VOr| nC1Pmo<S䄻U~ћqľљqŴM=oY6չz_PI~x}QYԲu~;cp³ɇ5VJm &Xfϥz3qkp9+'[_C][ ĴjB5SVu fE}ۜO>5> }l9> %eGO*ΐޥC[t?@^v]O-=xfj*c[#_0l`Ov]¾M?GSŖ=dΧKI*vfncii!iI4G^G57Wmcr"Jj#u?]/+ΧKI$?S^G¿Jj#_u?]/+ΧKI$?S^G¿Jj#_u?]/+ΧKI$?S^G¿Jj#u?]/+ΧKI$W`4Z~ mݯp>ׅ[Cg{b3.6ywkmuZ%yE+ gNW8BI$aKzmreu?999Ux-{~^q ^I?3-LmKL59*+gGǚ$xQI\jaΉ ckn4kZ>IIC\$<\qj<> pƳ/XWNox6y}};U`1IJY[hƀ`9?,UI,ﺾcv7i5ט^k3:'ݸk7H.<>໯pt}%?jMgVWk??ޥggג^C/e}௼ϯ*3 6EX^#q;#; 71O_.%9Olyc7c]$5]I}×yc7c]%:5I51]%&>WqB4|n{#|Q I$e$I)I$JRI$I$$I)U鲪XI`#vpsv|D"$$I)I$JRI$I$$I)I$Jj)dUz)dUzf>CSS\Y $ѱzBlz%I'nJY8q͓K?i?dF߹/coܦŏfDO%lO4rcoܗ1ѷKg}w|  fPMOZIiS=_oQ&76Ƞֈ@9rd8/[]S6O٭m!{, c5'tސj/o0$]-Į.67BЭ.Nw$W'ի)$QexTʇCK[[eUöK,`[I"?a}Hű<4q?]/O{m2j ]4I ?7ncq$QRI$I$$I)I$JRI$I$$I)I$JRSƢ1ÝZ spxTi$JRI$`d'4Wnvwa *bݒFFY EIJI$RI$I%)$IJI$RI$I%)$IJI$RI$ ,"ju}\)wGI%#N;Oq`c"T41^#XȈJ@}5 W \]GRM]XY ؊J`q\֋`Cll/s"в<ʌJAkC⊪{<_kg)D+Y-o1SI%".㺺KXޫmv1>RJEsqcٮ*œsZ^?,gSI% _ULgw2<Ɩ~T;-ljl3=$) oCq>LeBeW]cdR ,"ju}\)wSN;Oq`c""I).'!c@Ǘ3(5}5 W \]@QIHvScg;GGmRi/kE}Ķ{{EM$Ҷ얊,ͱ?voI)I$JRI$I$$I)I$JRI$Y4^*Y4^$$I)I$JRI$um@q L/8=G//V:Z:.J ]}n >K^͌1VֈO`jZ?E?%?LCdR,$)$Eq wuky1I$zI$I%)$IJI$RI$I%)$IJI$R)5:DzE׷FlyBbwkeeIgIII$I%#ʯַcDt숁K016tRI$I%)$IJI$S -.{kcys|IP/$][È%6e/"_v1rޱz[j?d nZ3걗U mup^li5ϫןNc28U/Ed6ޏw 'M -d*k"9k֝|Diպy 4R*rqA8 J}_Czlۦ6홙GI%"'k*n!JVezAnIH*½X=:ydlFٽ@Ѽ޽9%,3KK%36mޗ??^wާ-#??KlNI/OWE3c}IC)OV@8@I$ RI$I$$I)I$JRI$I$$I)I$JRec[qKtU:.fEW;-c^$Oޒ$I)I$JAs2+}%$O܎{ꮛ|zMk$m#I$$I)I$JRI$f\*km|,w>0is>9DIJIE6 w^7WTzko,t=%BKhgܛz_3M㿽;b^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;rn{^*^GC?n;M7*̻7GJ ' +wCArX=We;Yq6GVBc3a$_gXi= w(&.KwSw _X[w`rp WKߟrn=ޗMx\IyM[/&Wu)9s&Wk=-_GM?WJ_GM?WJU$I)I$JRI$/iU_1I)I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Hxv[S䆍~E_1p"[^phI$I$Yt}m}j^ f4EUfKcio;LGXIJI$RI$I%)$IHhEbb옟#Wu?tXU,"1gquks?RI$k$IJI%/,3!ض۰3G l{cc!K0 M$ rW颌&e !ޑ^'c.2p-sl͹sjfg KZ-|$a\'x-ҫ+1Kcp{EEּ}襲ṡИ_# V;"_ٍ!ud="Ɩϵh ]LU9%~6FNٙgN;l 5}.~'e:@&`Fa} Ū݅4]f3߬<%+W ޯ ?5`ͧu;+ysDޣ=Rm5Ҏ/Jv^j6Vډ]"Z4. 礮ӽ]ƵZ}ġiq[u9GOjUXd5MP`{o! 6ΨʩM,?5*,5(g eZ|z_I[c2ƆkD ]4OmP,s, h`zZ+Zh2ޗm \mͱ혏jv8hUA I$RI$Do]Ԭ|lE686t K&(7_YEq>!Y?jtGHss1۫Y{tuMVjtGz]'+^Xخk\ӧi||$M9Mϗ4`=Ʒ5Zşw^>,"..ng~I$u$I)J: 6A՗zןURI@h;eUV-pk휱cS?su}e>Z_5E$'\\1m-zPߩ63:;A1Um!_]X 7k|,dIUJen')u9?FnO'YSwSϡ_mLC]fzMERI*U|[ǫZrksr`&wK<ęͣKT+YCl{I{j?sOiۢT[t|6[깮}ۻkZݕằΚ{Ja9-/f ycg$*?&/&#U?gkkwphq+:7UI$]:uu][9Z=0{~G:[Z/y`!ݻ$$wnӳf_>==ݻ?CWaßЄTYQ 8;"Đz|̍=!Ulzhz6Ze9񈢒T-\3ca8Kjg|eIcP1-skqRJiU:rYuLf8dXkkF0Y(XưXVwq;óJ}[FZ.C 25URI%]$IJI$RO}GatQ?ozlRɇq"M]xG@ȹ݊]ic_X &6= 9>Ƃ78ow%m,?gSS"_)|!+2":xvrKKve?ՖUFSm#^B%C3)ٹV彍8d\F8u$6T?_EuP?!Qs͟?8{TIPm$IJI$RI$WGg+JR1IMI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ@¥X]ULq-hi`do=Ѡ4I)I$Jk &e65qiXA̼b_Ѹ[RI$I%)$IJI$S_6-KԸ 9Wz`6U\K\FIL-iuOku% _oVC#{?kRNvY ;XKouM5I%}{lɥ7$O??6cgMzI{_wro?iq&I$௻ù|ouM4X^^Wܾ[7_{lɯRI/t+_-cgM/??6ש$|xw/q&?kԒK> ;X[Snnkݗ_n3ߺJ@$Rc0 TeJפ-(WP- B`2R~oHnlh l'sO. vZ " { o?iq$I%?ާ,~{XKouM%I%/q$_x6ܪ2-WZlq &8bԒI(YI$$I)I$JRԿ cWGg$I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$!ewS]6=H@Ƨš^'h %%I$RI$IkMGl{shvN :X'\~dI%)$IJI$RI$K.KCΓHp:xNUIi@#$YUCHϘ w]] iH@QIH龬dAPnn3Zb6B:I)4Ǭ 2W,fyrJANf=StLi+1~\C`5J`Y ϐFr'qvdEI% 9Dbȫ֒0 R "I)WW{=J uf\]n%ǁÏ$7eю\A"D5?ZKןdn<|9SI%!*[S#S-#fSaμJGulĀO䔩TIF0IH}bɧo 2iA3q9eN%0ZtR 1~\C`5O(a < TIHɧ"}mG?D6DbIHvZHN SuwԨf$?,)gc\]n%ǁÍ{+!DkH($~>0xrN]@-#dR syνDgiHISI%#]Q$APη;lmw?tR+iǏYŻ ABZK1ˍn RI$I%)$IJI$RI$I%)$IJI$R^c?ԭ*K;??%6I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)WӁok7-FU,kN5Y-6 8$IJI$S_>у}F]O{O0ZB}/TF4IDIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RX\~lnȞ'r.ަ:wtw 棯:þ.9Ḟ nloo%[-w7Ϯ$$bϮ$â=\gÃ?"8jW9^g12[ۛrra+tIXj)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$WGg+JR1IMI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJCQMtU*hcg] "*>j-c9րRSa$IJI$R,N5%:G 8U_V]Ay?gP\gHmVl.QqO?)oNj̽Uu94R[xQw尴P}^ ݤq ʲ,ƲM1 rTo0#pj̙}ſQIБIofgT_i21h4Qxv%SO'!],e=j.eĶ_du>ߢ4=8}| `^(z?oW菂_P uLh̞?.GZ j_'?[*1s'ar?_1s'ar?r*1s'ar?_1s'ar?Jn$̟I~̟I)S2#I%S2#I$JLo\$Lo\$*1s'ar?_1s'ar?Jn$̟I~̟I)S2#I%S2#I$JLo\$Lo\$*1s'ar?_1s'ar?Jn$̟I~̟I)S2#I%S2#I$Կ cjc~O$k.7uǹ[.u@INI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ ^:2^u2}t5xGFlyBJHI$$I)U7 kux?T;lk{K_&=AI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$oTUR>״_oT,_??2 اeQX6;1disu26C+w66߱۷۾6cwpq{p}OyL5lcZC}k^pO:~m cXVʁ#@\*k&$Fr;6Ex7:?oW菂)c[#Կ+KARI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ q('qVHﵡ#*Yv51N)I$$I)u/Ǯ7SK@G@ιY{ V0`/]z9k'7!,`V)$RԒI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Ht\̊+ȮvZƽ8HcՎKicki<ѴOܒ$I)I$Jc`aai"5u9u^m겱$UK=ǏK-eu-X;_~ i$TW>xϩ[keD-ۺvϣilm9GI%#PA16>V'\QqcxiSI% 2+cm}6i=UP׶Heפֿ$ hv?)ʮC`OUFI% 65;^u̡DDZyDR:oe.`xcZTKm1&C,_^>PXwLzu<}6sW`,s]IH)˪cm'UhJ캨~Ƕb}XsJ`Y]^t09 ߂O,b}J_>[($6o[n"KgcT49c?umr"I)Vo`p{^PͦA=M)$쪨pka$O)hv?IHiʮZ}J}1ͦ nm׍JGu̡DDZy5qJ{K1F>X֔DR= wN4?,_^>PXwLzu<}6RILsW&5!;C.߱}VV>$캨~Ƕb}X88vh.IHȯ"}1`VQ9HӶE66$CCA16>V%M̽ǽa5$׫6^+cm_MkʪI:}$=/Z7FnF r+}j2I)[i#)_1)s(f1c`qDI%#^ ~56[ۺvɦftR++ǏPXwLzu<}6k,hplc?)SU O>+IUecILsW9!Q&ޘm+}|zl;6ۺbE66*w^ ѱ$s/f1c~絥BmV m`O`$7eWA {l$VX>?UcG#tBI) 9U^6@UecﱍMnm4HmxLa$Yqc`qMM0<c}gDI% } wN4?ٶ[($ͥzE$Sioײ> /XObject << /Im38 306 0 R >> /ProcSet [ /PDF /Text ] >> endobj 318 0 obj << /Length 2919 /Filter /FlateDecode >> stream xڭZKo ϯh,Lk*6E2,agrK%GׇmrXUɏdwU &nr[(]muo|M` Um48enBȷ׫ܶml{ Սͷ2'}w~g`1*\TV(6_Hrq>=ӻAB){n2͕>koMn3zs2U+˝@Y'c*#>P 98ktXLf`]UuŬ}]WnnscQ!@8峂S)ϡdޖj=?~MK&d.jɪ"#b\ 8[0CͣKwhA!Ɇ~ub3}la)Aiht`K̐UMTcؕjO4QUܭ9w7W^NF\cG]ӞR|beϐz \az99`szKdpZs|iD8 D!jx&uHvW: 4Կ7Q>SR:OY\^:P?OS58w*m v)' ɏ…0t!i9NɹeNrHIELm}8cTrΦmَ\9 EaT >e\*<$qP3&XHZBR+ q3=-gɊEׁ}bP EbN C XNxA0%{kn, ĸIE*q媰YBh{fw!: +s̚^i^dg? ɚ"ęq.n Y&8Z'8ǎ L0Edjx*&$MF%?.lɵ;?18PMUZ\ᢲ{|f<O8~Ǩ$"F-h Aj[) T>&fc W~|>CX]eBLn{:BgM0U?/1Uř.{϶+Fǭa(Qit2 j0;aNf5<1/!ǐ I+QJ)Erbw$ibHk*h93Sf qJy^֒HNsE,N댧c],8?k,J3- eOuH+Y W2cwa1zu`]!IKa5M*H)ǁMh0xҪ. #?aldkSm|ygNd˰ͧlV÷?:d"9dqce <mS+'ˊw: م]I؁S+@fmzJ J fdL|-᧽LŏwaLP _VĝXtAiG~xVV|P(4L!lrR yr58uu5(u+%޽{sV}/%@'dF3J\aOqIw@a@`_-{t?Ӝ8ltiƒwCZB5k_Ll t02؍ME(/QEgR!H,)5IJ\D{yӏ!^AwC#]?Fnh ;O "͝¦ޝ,o[H_bٹ:{ʥX:m6P+c]Jf76OpO.ut:>-=ӑ4֓L?w/ 2ůHy@>#J_jf endstream endobj 317 0 obj << /Type /Page /Contents 318 0 R /Resources 316 0 R /MediaBox [0 0 595.276 841.89] /Parent 310 0 R >> endobj 316 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F51 33 0 R /F19 7 0 R /F54 39 0 R /F21 16 0 R /F25 48 0 R /F30 40 0 R /F27 41 0 R >> /ProcSet [ /PDF /Text ] >> endobj 322 0 obj << /Length 2926 /Filter /FlateDecode >> stream xڭZK8022ֈK[&`w'}Y$9(,uHOeɑ,6Y$b=_^&sFY+m|Imwc8vv眏V6͢gNEݛ_^ey+dqZsn~wF1٨&εO7>$ $M=mbg-ۛF*έM7.7q-oc;Q6x$FEsݱ{@ WQ[CI)rMf8szU56v7ۥ6c<3qYl |(S`q]}\S]ea26ߌu5?b=UÑD0 .y¾hxCbߞJ wPNұ593T-~3I*d.v7E<0m*_U;8f֪n~ Xdf&M4 9TyC~$bvΪzV8jmm@Θ'>`ԃ_ĄڪyK[-z  l'8dn}0|C:8bi\@7pyRC瞻]yb4{8qU6ڮ=w՞T3}b>z>yaY3c Qqo?x'2)ڦ~$. (#}vً: :V \#3ʮ_P+bSw_v_,tt2FN=O(#v*G^w0"fQ4qpU\fڑm[d),j`)Â+o&l⃯+hI'I|<Fȩ0]2{z<+N5nLtv`fwj (eU%<ϫvX gM: ]?Z Q.;>6v g@˙tF@y3![h _n`\p"5S9[?͎ŽR/4D'@2U"AFS#Sٌ(6)|"lN>cHY6!+>ٓ14pr[g̪lU[5EX\0S*qS' aYUB'_bnRHP{]cʼnMH'X}Z2?Č$]6a}- 8=XҨ8΋ϯeHf$I~D%,&D%~)F(A Clͭ`E ^qG!rpg+yRsIH,X/*03 <*sʾJ_5V6bT0|_0zK|f].nKB~ xX!f3*~4.p`L ߣTHU*<8̾$(zj$rI&(fY^6*;N8:Q9څ`|*Es,z'sۋB˜0p XgRQweqx}QVY)kIf+Y|BSRyf2jpz4?Ē]0`eO^>]lOPLqBJXkz#-~~wCNi}=JrSbd&̓r8nTuh5e2Ylj^m$BbX3u'ټ0`uE,>K i$j [' z[atZgC,bϡlD> "Sin82e'PFG,\G|fU gnW%$CG!m?Qltߠ]WMWDt{@|@U\"7}IEl̿#APcųG?c5K +R_}R`QA2<,()sUS$DS΢u(o>DTbğFw@o#9%sbkt0v&W2H/ҳNIG"~ kEbVT&Bcr {ζP-2Ю#ïe4z26ȯNSh6&Seg/eZ}]>m*6."n P}!%RYN<&> endobj 320 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F21 16 0 R /F54 39 0 R /F19 7 0 R /F51 33 0 R /F27 41 0 R /F18 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 325 0 obj << /Length 362 /Filter /FlateDecode >> stream xuRn0 +x%{ [`VnEb~Jzə񐦴զ)I_$4R n97%@HVY/b)$Ѩ~2O .`7d[@$@ 1.?S DR,Qo@?jOTn@^}5hu|ʯmMwKƠsǸ-xAU^vdž*cJЉq9b> endobj 319 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/Computaz1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 326 0 R /BBox [0 0 982 668] /Resources << /XObject << /Im0 327 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 982 0 0 668 0 0 cm /Im0 Do Q endstream endobj 326 0 obj << /CreationDate (D:20080730191600+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080730191634+02'00') >> endobj 327 0 obj << /Subtype /Image /Length 46436 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 982 /Height 668 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R_>pVאI ea.-8ES/"ĹX֎=i%9|z]2pcYX{g$:PkkumSutDRfcү:>}mc]Ă GM4h 32fGcCkX[ykcwnݒS{}b}8op^hkl}ݭkunvucR꘶45"Y[n*?fm+r#qO<GScKs ]INI.{t\l{\85?M%= K3nax[o^D餳?Q/ooINK3nax[o^D餳?QQ&ڽVЁt).SUӟpf;jE\ 4]ߢ~,k1=̰6Ӑ[S sZ ٻi0%̬|L+;̾Y\95x9^D餳?Q/ooINK3nax[o^D餹OX}c,`m֗:p`,]:*c^]m up] 5ڔ.F߱UV;vr/۱>߳ńg0O;Ak\/ JtYs ~(߷J$M%70-҉/ JtYs ~(]ECnq4? ,ooKnax[oS^DQ%:i,ooKnax[oS^DQ%:i.wYSR6ۡp~WQ%:i,ooKnax[oS^DQ%:i,ooKnax[oS^ECLl\lInE}E!$If/ _s ~(4g߷J%70-҉)If/ _s ~(4g߷J(i [oINK<\[lKMnq7۫Ij߷J$M%70-҉/ JtYs ~(߷J$M%70-҉/ JtX]Wbчc=PcEAhW즷8[%'GS^DQ%:i,ooKnax[oS^DQ%:i,ooTzCǪWo/5%= K3nax[o^D餳?Q/ooINK3nax[o^D餳?Q/ooINKfT6nۮH70-҉)If/ _s ~(4g߷J%70-҉)If/ _s ~(4g߷J*5Lcm8^s? %70-҉/ JtYs ~(߷J$M%70-҉/ JtYs ~(߷J$M%tΉ} Fu>*߷J$M%70-҉/ JtYs ~(߷J$M%70-҉/ JtYs ~(է;lKqБ:M$IJI$RI$I%)$IJI$RI$I%)f}Z1?Y&bij$M$IJI$RI$[WuHelsmh $g{?JGD\^Kfrs),m̬5ys5..=.Π26A*~ּ:?G^T^klO|8Rȿ$tyu}&Dk_}L\hֹrJ'm-lfn!v+:5%ȧY+TH$m!ڢZmixv/ sY8VO\״Ӷr˜b[|.\pԬ'h̢myqnEKg>Is2x#e4.tBGs۔"R"k6_K)ec!Nz +֒I+:I$=۲%3I$RI$I%)$IL=0x)7點SIJI$RI$I%)BGSP)I$I$$I)It%1C _A*jM㏚JRI$I$$I)J{Ƀ׷%M@}3$IJI$RI$I%0AvšǒJRI$I$$I)K/STV&T$I)I$JRI$I$$I)I$JRI$I$,ϫ_f'K?"YVO~D餒I)I$JRI$^VWֿ#; RP;y38G!?|Bw疸:gDsF)?}`F5OΣ{o)F,n2~W/?m^ش9I@(a OSI$)$IO%3trîª\]Αj`GdC>ʼPI?85ۊ6Z݌;~t:?ض~=kFMwcW.P9!/a>O9nN"I$^I$JRc÷*jx?ܤi$JRI$I$$I)~%57s۞>Ji)I$JRI$I$(W)W$i$JRI$I$&)ƯxSP7xJd2/a?m^ؼOOյ{b俛?y1$JӂI%<}_y%*%z-OprZV?|R!O"I$=RI$~ʚc÷))I$I$$I)I$J`ߦ{sMAM珒JRI$I$$I)Jyjpy)I$I$$I)It%17<* ?54I%)$IJI$S>;x5Ex䝼⒗I$RI$I%)B<>?MB<>?%3I$RI$I%)$IL~8;7qSIJI$RI$I%)@}35<RS4I%)$IJI$RI${Jjyy)$I)I$JRI$ɸ?Ej,n?OQINI$I$$I)I$JRI$I$$I)I$JR&bij-5kLgINI$I$$I)K+_+Ue}k3%]>aҙ9Lqy7:7?1O[W/?m^ش9/C3~eI$$IO)2W^d7dC>ʼg<|,KS?\֧Տ_8ԹCx:qs>ȒI-gTI$(9W*jx?JfI$$I)I$JRI$7點SPow=?%4I%)$IJI$R+<+S4I%)$IJI$RJcWo<yU~ji)I$JRI$I$6}s㟒v?k>;x%.I$$I)I$JRy|'y|'JfI$$I)I$JRI$;7qSPwo=榒I$$I)I$JRg{*jxi$JRI$I$$I)9w<<˹q䦒I$$I)I$JR&Tɸ?E%:$JRI$I$$I)I$JRI$I$$I)K3ȴgկ3%%:i$JRI$I$,FwUHԔt>xJd2/a?m^ؼOOյ{b俛?y1$JӂI%<}_y%*%z-OprZV?|R!O"I$=RI$~^5<%3IfQ!cm"+}[WukѸ{ olÞeb@vN9}IHRS73!59i5ڂ4I%)$ILn~MAMRI$I%)$IJP'SP'ILI$I%)$IJLS))_A9_?55 ysM%)$IJI$RI$ϢxjjM|RI$I%)$IJPLM@}3$IJI$RI$I%0g.ǒ9w<O_??~cW.YkS?\??RdI$I$R۟সszCq];vGiBRG`˃ fu ̻Nk97]skA%\D{B½t ,kev-uSk5xҗ=#^Z{^Ŏ-ePvt{;竛=!~p"?Ϊc菀Dx<#Ծ[c0uLMa`: UOPA^*- =+Աg.^f6RI$ĤI%0ow=?%57s۞>Ji)I$JRI$I$(W)W$i$JRI$I$&)ƯxSQ7<ԒRI$I%)$ILl.?$}s㟒v?J]$IJI$RI$ 88O5 88O$IJI$RI$I%0wo=榠ߥߎ>ji)I$JRI$I$(yW⦠>^JfI$$I)I$JRI$3sMB]=%4I%)$IJI$R_Տ7EcM))I$RI$I%)$IJI$RI$I%)$IJYVO~E>ɘ,)I$RI$I%)e}k3%jFwv+>:S')1}.;&F)j}~%oT?ُ̩$V$I)?O?̗(W,w珓ŏ6O)j}XKZ+(p9O.c'I%I$/^k\X w`x=l;(M9t< w.< ^r>,Wk -ֹ {KEVwG7?WD9TLA*I$bI$Mn~M%)$IJI$RI$ ^g{))I$I$$I)I$J`]=%5 w<O_??~cW.YkS?\??RdI$I$R4{Ep?K`׿Z?So|'݃ I,[ֽ=yzzxo PI)ܥ$I)~s~Jj n<|RI$I%)$IJP'SP'ILI$I%)$IJLS))_A9榡Wo<y$I)I$JRI$]~I).?$I$I$$I)Jp9q*jp9q))I$I$$I)I$J`{MAIK|RI$I%)$IJPLM@}3$IJI$RI$I%0g.ǒ|{Ji)I$JRI$I$,n?OQZ/STRSI$$I)I$JRI$I$$I)I$JRI$>ɘ,Mf}Z1?YSI$$I)I$JR$g{?JY_Z/gI@WC珘|tNS,b\vM΍? SV7?1O[W-KRI$8*I$S(W/M?P2Y'l?`R+,cW.Pr\)~O$KY$I)K_K|?-E7I$SS-gk?^[ֽ=iG7ǿ_( I$RI$Mn~M%)$IJI$RI$ ɘ,)I$RI$I%)e}k3%jFwv+>:S')1}.;&F)j}~%oT?ُ̩$V$I)?O?̗(W,w珓ŏ6O)j}XKZ+(p9O.c'I%I$/^k\X w`¤K)uO^a-gk?^_/?$Jw)I$J`ߦ۟SPow=䦒I$$I)I$JR|y<"|y<"JfI$$I)I$JRb1ILj ??55 ysM%)$IJI$RI$ϢxjjM]榒I$$I)I$JRg{*jxi$JRI$I$$I)9w<<˹q䦒I$$I)I$JR&Tɸ?E%:$JRI$I$$I)I$JRI$Q'Y[c\.1ծuճכ nU%}!HcK=.ݴ6c=oXȷ-Y6EBW;N 䒝ukLgZk3Ȓ4I%)$IJI$RWֿ#; RV$g{?Jb<|2rcntobl^'ѿڽhr_͟ʼzo}_y~x=XsdiՏ_8ԹeOprt'?K}$ZϞ$IJ\X/^j,Oɽv*I$@zo+; YWZVwOj?_=l2CRI$rI$ n?G [ cC,$8DkmF5ֽ子q[I0mf3Em}~>7R}JuXoK>0m LitIkt?F=]>kGu=Kt )I$JRI$_O?Ȧ_O?ȒI)I$JRI$LRR矚_A9椒I$$I)I$Jcgw<9'o軞RR$JRI$I$(YxYxi$JRI$I$$I)y55}&ߎ>ji)I$JRI$I$(yW⦠>^JfI$$I)I$JRI$3sMA{Ji)I$JRI$I$,n?OQZ/STRSI$$I)I$JRI($I*لn9I$5UEF3[nksUomQcVo+?D;M4WBJy~AUƵE-a #t-WZl{鲚=䮑$}]v#mʶFMsf}Z1?YSD{c{5ILq13ƿA&&xSI%0 "=k$D{5ILq0O:Fo }l,Fwv+>:S')1}.;&F)jçI ź7?1O[W-K`'\$'\)8,qm|H1=BOm|SI%O_??~cW.YkS?\??Ra vÄ=ǙLJ i-gXl:{3ۏ vÅ4S ÅCd?߮i},QsOɿv*I$?.  }7cx=yzzxo Pl?yxpǙLJ i)ܦǙLJ lwg)>tnqvV*c౎ӫ(rC6Nt+_&[ZɍrƗ$OM$}LG~ 8ϸOM$}LG~ 6;R؀4yq⊡gG⒔X0&#?gDq঒J`X>&#?1i)0&#?gDq঒J`X0&#?1i)\!S,q"b8II㏚J`88O'1aOi)98>$X0&#?4S0#w8ow+IJI$RI$I%)f}Z1?Y&bij$M$IJI$RI$Hԕ^خ0LX<~oblZg!Pf?2IZpTI$?P2^2W^dߞ>O_??~cW.YkS?\??RdI$I$R4{Ep?K`׿Z?So|'݃ I,[ֽ=yzzxo PI)ܥ$I),;&.asK/vOyO#.VURVUROϡ`k$KI┒I$(W)Vdy<"JfI$$I)I$JRb1IKW~jJcysM%)$IJI$RI$xgU~s6+lkmwIE rY/Vmvk $wkcJr݅FwLOfE6-61ɇnޮ7[E/m\~f=59R@%)$IJI$RI$kLgZk3Ȓ4I%)$IJI$RWֿ#; RV$g{?Jb<|2rcntobl^'ѿڽhr_͟ʼzo}_y~x=XsdiՏ_8ԹeOprt'?K}$ZϞ$IJ\X/^j,Oɽv*I$@zo+; YWZVwOj?_=l2CRI$rI$?+4_,;&,g=?|T[sWK[sWK?>1xI-'RI$ne9ֵԒL{G2>@M͌nk_YLLU. TK){s,s\q SԪ.FZZ.߷i?K#N257 ێr/,uYKisָ6p\歬jc*PScm%s <(彏:$JRI$LRS<*2tSIJI$RI$I%1FϢx{MAO~wSIJI$RI$I%)@y4SPLxvi$JRI$I$$I)ǒ|SM%)$IJI$RI$cM+QeXqJuI$I%)$IJ\llޡE]Jk?Wy}F㽅W`uLl,Tꛩ6rS_d仧Lƶ=Ļ]5V65pH ׂj0)u$|FI$$I)I$JR&bij-5kLgINI$I$$I)K+_+Ue}k3%]>aҙ9Lqy7:7?1O[W/?m^ش9/C3~eI$$IO)2W^d7dC>ʼg<|,KS?\֧Տ_8ԹCx:qs>ȒI-gTI$.i},]ƗO$YO=Ozzo+; YWZ5|D)$SJI$SXwM_]/Wz_3 >G*]9֫˃]9֫ܟB?H׼I$)$IJ^5dԳoC֋^΀^ʼKEnTsb[a` yA̓ 5⹘$⤒I9It%1V7Rt~jjcu'A·榒I$$I)I$Jcfw#C?$&F㟒vR$JRI$I$(X` HqSP@5#Q%3I$RI$I%)$IL}iSPq7S߁RI$I%)$IJPu< ;wSPu< ;wILI$I%)$IJI$S.8SPO=ǐM%)$IJI$RI$cM+QeXqJuI$I%)$IJ\(Ī *xu5c701U}z³!<-uuvrJtmMɭ;8:ۚ httΩ20En U.hkƄIJI$RI$I%)f}Z1?Y&bij$M$IJI$RI$Hԕ^خ0LX<~oblZg!Pf?2IZpTI$?P2^2W^dߞ>O_??~cW.YkS?\??RdI$I$R4{Ep?K`׿Z?So|'݃ I,[ֽ=yzzxo PI)ܥ$I),;&.asK/vOyO#.VURVUROϡ`k$KI┒I$/*g?*XL1gU9~aI$s>.vVӮc]˧[Ht>q3%$I LS))j~jJcu'ARI$I%)$ILl0jF~IMfvhuI$RI$I%)BjF{X` Hp'JfI$$I)I$JRI$8榠nCSIJI$RI$I%)@yxF'i%3I$RI$I%)$ILuvydRu8pI$$I)I$JR&Tɸ?E%:$JRI$I$,wüdc=2zkIfrY~˪±dՌmۯy#Ui#)/54e@kخtwSmlp9u3*W|I$$I)I$JR&bij-5kLgINI$I$$I)K+_+Ue}k3%]>aҙ9Lqy7:7?1O[W/?m^ش9/C3~eI$$IO)2W^d7dC>ʼg<|,KS?\֧Տ_8ԹCx:qs>ȒI-gTI$.i},]ƗO$YO=Ozzo+; YWZ5|D)$SJI$SXwM_]/Wz_3 >G*]9֫˃]9֫ܟB?H׼I$)$IJ^/T~U ʙbʫs͏;k/rÞI,}G]˧\w[N1|tfi?JI$LRS~jjcu'ARI$I%)$ILl0jFQvXaԍ$I$I%)$IJPOu5 ILI$I%)$IJI$Ssu=CSPq7S@4?4I%)$IJI$R'iߺ>$4;ILI$I%)$IJI$S.ԝ{4)0vqM%)$IJI$RI$cM+QeXqJuI$I%)$IJ\l iWVC_]l7ZXX5]B.F^}l6X%5 sbRSSNnc ,6e`7Xt^U^$]u02:.%)$IJI$RI$kLgZk3Ȓ4I%)$IJI$RWֿ#; RV$g{?Jb<|2rcntobl^'ѿڽhr_͟ʼzo}_y~x=XsdiՏ_8ԹeOprt'?K}$ZϞ$IJ\X/^j,Oɽv*I$@zo+; YWZVwOj?_=l2CRI$rI$?+4_,;&,g=?|T[sWK[sWK?>1xI-'RI$_,a3şV?w?_=$Ydw[Nu#6.lc#7I'0)1N5cLԈ'⦣Q4: HTRI$I%)$ILl0jFQNk 5ڑjSI$RI$I%)BjF=,0j8%3I$RI$I%)$ILa4?5sDF⦒I$$I)I$JR>$4;SPD~)I$I$$I)I$J`%ړqMAK'^#AšJRI$I$$I)K/STV&T$I)I$JRI$~j*%V]sEViǚX_[zxXnԡave /udIO?n*$ٓIeXc_TÉn\?rW+fX2̳%~}mn=]JRI$I$$I)K3ȴgկ3%%:i$JRI$I$,FwUHԔt>xJd2/a?m^ؼOOյ{b俛?y1$JӂI%<}_y%*%z-OprZV?|R!O"I$=RI$?-wˁ_KY{?xTIe>?Vw?ſ-g]k֟+~|{eIN)$IO?a5~WitXwM_Y|{ς0̩wZ. wZ'r} cp#^$ZOI%)xS; YW/*g?*6?ůdzI$u#6.sGgmn]:Goћ)$N`Rb1ILj2ƙ'AJFX$5" RIJI$RI$I%1\dRkjBvR$JRI$I$(X` Hp'ԍG{i$JRI$I$$I)9O}#CSPq7SHTRI$I%)$IJPD~jȓ4%3I$RI$I%)$ILdRu"4)VdRu"4)$I)I$JRI$ɸ?Ej,n?OQINI$I$$I)KEQn6mkMcBcυ:JJ{-iig3.ۋXk ]%[_K8c`kfcH]BJRI$I$$I)K3ȴgկ3%%:i$JRI$I$,FwUHԔt>xJd2/a?m^ؼOOյ{b俛?y1$JӂI%<}_y%*%z-OprZV?|R!O"I$=RI$?-wˁ_KY{?xTIe>?Vw?ſ-g]k֟+~|{eIN)$IO?a5~WitXwM_Y|{ς0̩wZ. wZ'r} cp#^$ZOI%)xS; YW/*g?*6?ůdzI$u#6.sGgmn]:Goћ)$N`Rb1ILj2ƙ'AJz\5U8]2nC\IU}1mGr+ɾ豆z--}e5e7w$$tec2ZIsDFM{df8VRI$I%1\f4:a8&\f4:a;x )tI%)$IJI$R,0j8MBjF=S4I%)$IJI$RI$$sh~*j0##CSIJI$RI$I%)@yxF"OHӿt$IJI$RI$I%0aI׸pYI׸hRI$I%)$IJYV?_Տ7Q$IJI$RI$:Y]`=eaps ͨbU}{=Seޓ@o~I):1ԩec׶*`DXOWbt,S][_nc{C6FShck`%3I$RI$I%)f}Z1?Y&bij$M$IJI$RI$Hԕ^خ0LX<~oblZg!Pf?2IZpTI$?P2^2W^dߞ>O_??~cW.YkS?\??RdI$I$R4{Ep?K`׿Z?So|'݃ I,[ֽ=yzzxo PI)ܥ$I),;&.asK/vOyO#.VURVUROϡ`k$KI┒I$/*g?*XL1gU9~aI$s>.vVӮc]˧[Ht>q3%$I Lt l'RS3"IHmsqkߵs@Mּ>?|6k[qgs\|‹}3>8&~;y=hqAuG^ө>9scy'@EMȭV潡pA 2kt gHl3{/ SP6,! \r8< d5-v'I)\$I)1k MahuvR$JRI$I$(X` Hp'ԍG{i$JRI$I$$I)9H9SPq4I$I)I$JRI$< #N'iYILI$I%)$IJI$S.Ԙ> dRuhI$$I)I$JR&Tɸ?E%:$JRI$I$*m'G1^fn2Z<+}˽K xql )I+ieM=}ou;u]jzYūT/e,ҽ͜4{RI$I%)$IJYVO~E>ɘ,)I$RI$I%)e}k3%jFwv+>:S')1}.;&F)j}~%oT?ُ̩$V$I)?O?̗(W,w珓ŏ6O)j}XKZ+(p9O.c'I%I$/^k\X w`¤K)uO^a-gk?^_/?$Jw)I$J|asKÿj\|eKG;ԹpkG;Թ;sX?$x$I)KʙbʽxS; YUnss-%_sI%Oչt_;?nr??s'II$s_O(蟁IOьHN4w;sD4KKv7ᢕ_A#~`gщLP%}]? ^0 ^$o"#gˢI+2I%1\f4: Mahu$I$I%)$IJPƣSPƣ=S4I%)$IJI$RI$$L8Ú$#RI$I%)$IJPD}eM@yxF$IJI$RI$I%0aIMB%ξ RI$I%)$IJYV?_Տ7Q$IJI$RI$C<.ַ.Z-{g^>}$t7ZC\\;GIJI$S_;>Kxc 2u&jI => 5 5Κ"<qmOk#s^wt7_>ם0-hLSSy$:$o_8dή6V<@{A3z7Vcw0>u\Gd˚`6\m9Xg w$ߵ{4,4धYVO~E߫YkqYzv;v~%-^<y-fu%3I@9%LJd瘖3:%3I@9%LJdwx쒙Fw -׏+KzFl1lǴ v+>@S')1}.;&F)j}~Crg^俛?y1i(<Ĵrg^cAZ93DžifsL -ׁJy%*%"?X%y~x=XsdiՏ_8ԹeOprt'?K}%u[sxZϞICs|{xsc<$k_Kw{G1o4 .Qgj~M}I%S-gk?^\:?: N?xo P97DŽ?G1ܦi(no[G?/ÿj\? '>D~Y|{ς0̩wZ.w_⼐u!ܟB?H׽ICstso[G?ഞ)JG?9xS; YWcxS; YUnsůdzI$u#6.rtv@[߶?G1$8O47?_h9EϏoj/'S?_hw~{GRSU}_A7Ұ5 ^^y/ ?xW9=.xh⒙X` cQ{HaF׹[$y$(9 ן"b#^|RS4牆'9aFi(9 ן'9t4ן%3IAx "5DzNsh1))N0扉#4HSs7CAyILPs7CAyIx "5ILPs7CA5Ix "5ILPs7CAys& q?Jf4 5Dh OǼ$(9 ~牆My?rJf0t^Oܓ0`i'ILPs&k'9a馼%3I@a馼s& 5p%h-{7GO_??~cW.YkS?\??RdI$I$R4{Ep?K`׿Z?So|'݃ I,[ֽ=yzzxo PI)ܥ$I),;&.asK/vOyO#.VURVUROϡ`k$KI┒I$/*g?*XL1gU9~aI$s>.vVӮc]˧[Ht>q3%$I Q?~%>Wo)( K1}+XNg%jaW-OCUG9?SI$טRI$a3ykƇXN@IKI)I$JRI$a5GiMBkߏJfI$$I)I$JRI$8Ú&&tTa:G*i)I$JRI$I$("{ #㬩"{ #㬤i$JRI$I$$I) k0|"4)VdYM%)$IJI$RI$cM+QeXqJuI$I%)$IJI$RI$I%)$IJI$Rgկ3%iϫ_f'K?"JtI$I%)$IJY_Z/gIZ+_(|e_KɹѿڽxF)jš6c*I$I$JyO%*%'J~UK?c͓ ZV?|R喵>?Ce/DIk>zI%)p?K`׿Z4{E5?&?$}ſ-g]kטYZק>W7!I$RI$,ÿj\+4dpa?R?o_.\?o_.NGI$)I$JR?wh^/T~U[ly_Ig=?Ggmn]:?ۿܺuC7IRI$*J/'RS}_A7Ұ5 ^^wK5\O?]I]y$I)1טN@ q'n$I$I%)$IJPƣ榡a5Gi%3I$RI$I%)$ILsDΑʚh:G*i)I$JRI$I$("{ #㬩"{ #㬤i$JRI$I$$I) k0|"4)0v#AJRI$I$$I)K/STV&T$I)I$JRI$I$$I)I$JRI$I$,ϫ_f'K?"YVO~D餒I)I$JRI$^VWֿ#; RP;)sOյ{b>? SVCly?7TI+N I$'J~UKO?̖;'O>?-j}XK8??1_$|I$JRƗ.i},Qgj~M}RI%YZק0uOZ|Qo aBI%;I%>Y0^?a5~Wie?> 2ߣj\5ߣj\9,T{ĒIio`k#)W-OCW;j?Oܺ)$ I$S 5cC0 quYvM.0eqnwҦc[ڱ79G). g~Hf²i0,s0wHrCȲ=^]Yڅu69paӻ%;$JRI$a=X` cQ{2.oe1 ,sj,esy@vm8.cN-5pKdz]L 01ʷ'*RN׶]m[?Hs?EhH;9b6H='%;};5O XcC몰txX؛4VۻhlĘVRI$I%0s:G*jt9tL諳a[ɥgZ,ibgO>%6A˧:ݏc-clB73!59i5ڂ$IJI$R=T=RS4I%)$IJI$RI$K>h4SP]hI$$I)I$JR&Tɸ?E%:$JRI$I$$I)I$JRI$I$$I)K3ȴgկ3%%:i$JRI$I$,FwUHԔt>xJd2/a?m^ؼOOյ{b俛?y1$JӂI%<}_y%*%z-OprZV?|R!O"I$=RI$?-wˁ_KY{?xTIe>?Vw?ſ-g]k֟+~|{eIN)$IO?a5~WitXwM_Y|{ς0̩wZ. wZ'r} cp#^$ZOI%)xS; YW/*g?*6?ůdzI$u#6.sGgmn]:Goћ)$N`R%))z~IF߀RXX?Jw{?/ SPg%jr?y.I$’I$Y['kI ۯfM}SO19G|Ӛtb#dďNOSg-kxq:2m5ۡk6\\[?1> m-sK\ٴþ 3$Y=:xӯ3rbLjQ0=_I$RI$u} Ŧjդc;.w>6),60~? ٶͯk>v{Brcf6x8N*.=k9 ۹xCϦzlϨY|M{}'~k޽xԪ.ٟXIs,q^Ʈ7~01Hͩ$SjI$S:Ѻ&tW:NpYz5HfPAtnƇ:]>Ss.Ňi 0\~gHY;(rg3DGGNnw c21RH{mAgbeQWUƹs\ǐ]\%ݏ6tNK UAi:;9}h,vgW9!teN}wdk[I;l'Gnf;@Z'FnSNx1}$S9I$ROa|uSPDGYILI$I%)$IJI$S:K1 dYƃE4I%)$IJI$R_Տ7EcM))I$RI$I%)$IJI$RI$I%)$IJYVO~E>ɘ,)I$RI$I%)e}k3%jFwv+>:S')1}.;&F)j}~%oT?ُ̩$V$I)?O?̗(W,w珓ŏ6O)j}XKZ+(p9O.c'I%I$/^k\X w`¤K)uO^a-gk?^_/?$Jw)I$J|asKÿj\|eKG;ԹpkG;Թ;sX?$x$I)KʙbʽxS; YUnss-%_sI%Oչt_;?nr??s'II$s_O(蟁IO J5}Ɵ|J?GS+x?Zw{?/ SPs?ƟTtRI%uI$XgI^#_o~EcWM%xA.{h}^+|ǔ?k%:2OWTL<sg?/Ka$I)K"djϬ]~ș?gȳriIc}PbT?/=ؽh}K?wN?I$$IO4wC׹iu{ L?a;7*]?k\|eaK5dj v⩤u dH'#iY,;jo-+ ~7Ǒ#+%ĒIiO_??~cW.YkS?\??RdI$I$R4{Ep?K`׿Z?So|'݃ I,[ֽ=yzzxo PI)ܥ$I),;&.asK/vOyO#.VURVUROϡ`k$KI┒I$/*g?*XL1gU9~aI$s>.vVӮc]˧[Ht>q3%$I Q?~%>Wo)( K1}+XNg%jaW-OCUG9?SI$טRI$}cWM%xAu9_6ԕ5TzosPvꂂ?_PU1zoϛI-I$.w>tK"djϬM/"?7RI%CCZ݋Pb5/8$JˊI%ycbhf,yC,xR&#D_\^1ů .t2I:|~[]v1Mpa;孂t\.#nƵ̆L>(c&,:֒D{@'~[4ONތ3g~QF_k?R~d}d/MkM`ZwsWH?J12L\LD`w5+1ynnǟ$bb$h`}TI'0)$ILqMBIw`h4SIJI$RI$I%)eXqYV?DI%)$IJI$RI$I%)$IJI$RI$kLgZk3Ȓ4I%)$IJI$RWֿ#; RV$g{?Jb<|2rcntobl^'ѿڽhr_͟ʼzo}_y~x=XsdiՏ_8ԹeOprt'?K}$ZϞ$IJ\X/^j,Oɽv*I$@zo+; YWZVwOj?_=l2CRI$rI$?+4_,;&,g=?|T[sWK[sWK?>1xI-'RI$_,a3şV?w?_=$Ydw[Nu#6.lc#7I'0)ED =_AWo),ic%;jpW]? W9osI$8RI$߯&OƯ.w>6,7-/)I$;k v/`^?CZ݋'Լ_cwTI+.*I$G?9ysgs-Y~Ae?N.ڹ5?N.ڙ;_AĒIj<*I$3S /L^g3?:rj_Oi'Yovc39 ]?wjֶݼY~jI$5$I)%jqv8AJRI$I$$I)K/STV&T$I)I$JRI$I$$I)I$JRI$I$,ϫ_f'K?"YVO~D餒I)I$JRI$^VWֿ#; RP;)sOյ{b>? SVCly?7TI+N I$'J~UKO?̖;'O>?-j}XK8??1_$|I$JRƗ.i},Qgj~M}RI%YZק0uOZ|Qo aBI%;I%>Y0^?a5~Wie?> 2ߣj\5ߣj\9,T{ĒIio`k#)W-OCW;j?Oܺ)$ I$SOA7?"+&F߀=>Mnc?_PPS+ ??CRI%’I$2~5.s_L_eYoJI$Hv>X_w{{^y?澥ڤIYqTI$?a;נ0P;so .YwsVɮYwsVW&$KQTI$/3?\չzb?)[gf,ST\uVEmqѭ&~\]EͬcT[s1a {\@`.K>2K%7kv3.S6F#hힰxg˫-w{zI%)$IJYV?_Տ7Q$IJI$RI$I%)$IJI$RI$I%)f}Z1?Y&bij$M$IJI$RI$Hԕ^خ0LX<~oblZg!Pf?2IZpTI$?P2^2W^dߞ>O_??~cW.YkS?\??RdI$I$R4{Ep?K`׿Z?So|'݃ I,[ֽ=yzzxo PI)ܥ$I),;&.asK/vOyO#.VURVUROϡ`k$KI┒I$/*g?*XL1gU9~aI$s>.vVӮc]˧[Ht>q3%$I Q?~%>Wo)( K1}+XNg%jaW-OCUG9?SI$טRI$}cWM%xAu9_6ԕ5TzosPvꂂ?_PU1zoϛI-I$.w>tK"djϬM/"?7RI%CCZ݋Pb5/8$JˊI%{?o1_I%#MI$J|Smm5c-sGlvs@VGlOW?M`'¹ WT妽-չȝGw qge#c8+K%Xlj̍ Z6kk\쌑-Gd$iWulw=o.v< NosXְw9וP?L[^ddMtmɘ,)I$RI$I%)e}k3%jFwv+>:S')1}.;&F)j}~%oT?ُ̩$V$I)?O?̗(W,w珓ŏ6O)j}XKZ+(p9O.c'I%I$/^k\X w`¤K)uO^a-gk?^_/?$Jw)I$J|asKÿj\|eKG;ԹpkG;Թ;sX?$x$I)KʙbʽxS; YUnss-%_sI%Oչt_;?nr??s'II$s_O(蟁IO J5}Ɵ|J?GS+x?Zw{?/ SPs?ƟTtRI%uI$XgI^#_o~EcWM%xA.{h}^+|ǔ?k%:2OWTL<sg?/Ka$I)K"djϬ]~ș?gȳriIc}PbT?/=ؽh}K?wN?I$$IO4wC@?a;w9!]g]gLLI$©$IJ^g3?:r3S (y? ?/&2uo3?Pۮ#W1kanO椒IHRI$,]>9g{cyqRo&?ϯ^R[k/'/41$WII$JR&Tɸ?E%:$JRI$I$$I)I$JRI$H~{=M;mΩ)"H,̢ʍ͵2YRS$3ȴgկ3%%:i$JRI$I$,FwUHԔt>hJd1}.;&F)j}~%oT?ُ̩$V$I)?O?̗(W,w珓ŏ6O)j}XKZ+(p9O.c'I%I$/^k\X w`¤2}ſ-g]kטYZק>W7!I$RI$,ÿj\+4dpa?R?o_.\"?o_.NGI$)I$JR?wh^/T~U[oůdzI$u#6.sGgmn]:Goћ)$N`R%))z~IF߀RXX?Jw{?/ SPg%jr?ytRI%uI$XgI^#_o~EcWM%xA.{h}^+|ǔ?k%:2OWTL<sg?/Ka$I)K"djϬ]~ș?gȳriIc}PbT?/=ؽh}K?wN?I$$IO4wC@?a;w9!]g]gLLI$©$IJ^g3?:r3S (y? ?/&2uo3?Pۮ#W1kanO椒IHRI$,]>9g{cyqRo&?ϯ^R[k/'/41$WII$JR&Tɸ?E%:$JRI$I$$I)I$JRI$KM>#qyov>#U^30*{>yo]rſGOn|8ƢLj~UTl/3cc3#Z66'H[Tqz6V)e=5:N}ZUZ {{8unhJ:==+s /$%7?Ѻp(>E"@ I%9qr_qrI%9qr_qrI%9qr_qrI%9qr׺XbK\NK/meսW0ָ3?6WZ)b!Qs{'?d#b<>_/_j$roeoe娒Jx߮F6&Kis}:aq?wui7@'ԓ|_89u x5w //[[?! B$HzU7z1\# \p+9VL#^lyXBBBgkӺ.MYVLǷWgQ%6S4sBu{j)?GT9/Z99YTn˥>xkF94?xWTsܺQGB%X-/lRhoe娒Dtq1ye\S/?6WK?6WZ"g~gQ$G.:Rȧ 4Ȑ|S'}f=/"PIͱͶ@g>]xm ~fFs6uNC>l5=|x ljm4cD5IIRI$I%)$IN,KعS0٤oli\%)4z-v[džun skɺt>Pƻ{Fѱ yIM?X9ޙ;kcNUe}2涳C}74OٱZ_ˏ+R^U`<ii-p$JRI$O5̶]`GC}p4s@+Ly )c]?-`9}2[1ƃ,sm<=8yݏet k s@*ddWVK=OQf?!ܔ*94(Z4x!ۣwVRI$I%ZXFA,lhRS1 j=ԗԅ4S^P:ڭo:M=ٱ $d|S$I%)$IL-k5H :'iptҲMless.}K^A{ Uc\X$ S}X›o誠-2d Wnm߇f3U`aYdԂͶ?:>̇99u!vb ($?8d^ћձk6Rl{݇3ɹǵ}oxikF.H'VƼJ{?:X3]:04$bRI$I%4NA6~s' j\K:{C\(kCD5^ϊpַq^8%tKe9)0m"Ac̓<-΁cܪSэH$u$IJI$R/֎^7Y7/kw m$8/..9ƺpz#]\Lcs7#UNCuZ=և6]5=S'eNG 'B̶|N;z-oUdzdXe'xiJ{tOܦ]A*8iדCG I$$I)tXkc`nn+^!^t'XYw^[sMy7>Ya d{A^>qȪq 61ͪ{\S֫t %%=LΡc0{dn;veZ\MWtdS{_klՇP`hsZَ^UҲƭ^/h]RSq$IJI$R6/R1<#]W[p!"ARSul|徎T}'6O.ɭ .O7F?Pz]VhȬ}hgc[5i0<|a5ī)cb ks:&G0Oa))Pd1VHsLyq{#Jmi t|̷Ue%ZF>\tkŧ1V׀sLmCr(h490ߦapvh{G0%u? c`tz5n㻊oWWJ]$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IO1~Ӑ_FE̚lZ%ƽڰ }W_wN}ޣu4~jeIv!W_1:hʢC {C)VZ@$ƩI%)$IJI$R׺a7Չ]n;qHwLk?ت[CۍckM{w{BJy_vacfSNEhzM#R}/]uגeOkxsHsLi\?S}eu;{_[fp+Ѷe(*}Y3Yv|gD^exuյػvǣe&6eeV:hV*v]aem#[NXϱ[]nz/kNir.v&zEv>E%=/5uosD ar/;3tzWz]6u`U$+IJI$RI$W[lhs]ڍ24/`>&t[Itk5CG}<נsN\S[X}έۆ⒚W:v h(^*?b;-||34Las;t\Q]Fl[L5S9OJzXU龐&/slP@6JzĒI%)$IJYgQua"?б}+ݻSVӔ}W~U1k\>q\_N]Hn~PeW\VvӨ!*[Ylَ׊ZM탳y;`K7Pu\ݭu]w`7J{/Վ{,N?{)OuI$$I)!n47)[ØNKݗ#kf>u)g苞WՆaklkjmnkDINy4W]efus2+ps\$9AD.?f^w-wXhpyL.Mf Fڃeeg?BK<'Ä$I)I$JRcj}԰vbDǍS縹58Ey.}mɉ]yZ1kZO>uK귨) n;M\K.ӱ:?I{}0cOw9I>%%=K;ẟ cfZ))I$JRI$OI=="Zfl t;p?mOљUsƠ-~v9^ai7{Z%ro? Ru:*i}ۋA;%=[z7".#Kcz-5/6T,g ufbm44s Sq$IJI$S+ms$8G\_[¿)!3xuL:7ow~!vʧR.ڇ쮻^撞{꽹6/ddcyRAs+?ӮZ]x\W:C=vV[}OPǭ m nnΣcvQV[fPn1%=J̆6 AEM%)$IJ@£2[sO ꎒJx.GQu[ckk(=[Ϝe}7ZGevVz7PY!/:CrW~bSUm}X.\II.'﹝S/kekGx6= hK{w]))tI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%,懂AAe-kִ@@v)I$$I)I$JRv=FEʘ絮k\ tn|a$ I%)$IJI$RI$9w&jkbk]I$I%)$IJI$R'}4and.m.[k?;kqX[i$[K=ʪ} Et-aIvI)I$JRI$NJyяI ]e]o v`^ ;1g! 7.k'mh,p:yNI$$I)I$JGV]n5p5sHq]c?ݎۙK1`U m=ߒr%8UfGLp-֚jS?*I$I%)$IJAħ5V״8:$ni`dS :M5vM 0lڐө]EJ£SKx tI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IO endstream endobj 323 0 obj << /Font << /F8 6 0 R /F20 12 0 R >> /XObject << /Im39 319 0 R >> /ProcSet [ /PDF /Text ] >> endobj 331 0 obj << /Length 2956 /Filter /FlateDecode >> stream xڭYݏBy~/H6h"-QwD(,RK o.?|h3oo|'U #f0.ʊ[lW?g+pRfzmV5p︫nyV]y_z܊ JeUfӁ!o>]qW|YBfj /_WR;fupշƂIYL~&+c$vib e'?]]hه^Fi%yhAH(@SV&^960-L3.V3`ǯºQKP1 ԒE S= :ӗs7JiA[`FQI3QXzqa rY-,u-N?v^[a@gd9'%Q >#P"ϟ;Mōa[Ǝ>ɬD"+Gsf:́@jYmrPm!Ԋ)W)~LC .!ׄ IDž~ C=PCHpV(IgkAƸl[l Zw@l?(@CNvbOA |AQ'L }ЀqNEz)v]t‚m30<%=<͛ GK@ZGHD)I*"oDnP 7awMvw2./nqGKFМ@qaM0 !8,d-Vxq.1}$E GxXZCpWNh9F'x,ފd]4ڻ%8ڼ5Ķ_Q(Z?sv0X\Rqݦ ˘T\.Xg !UcٮrP=/o.@xowC9t:nSj٘cv4#Бp`;ݡkڸOwuyҼ%G I}kQ꾾mim$'o{:#}*ZIonn"Ȝ\%YHwv3]8 COզV-^ [X} (6C_֦Su}M/|D >(~X(/fDhDY$N`[Q`p P}Gy*']اB smPޘ$\l1eARnJEC/\)-g| oRA 4g2AZ#ﮝ</br_!92ɢ3YDR([Salf*Y* e7p eY,7':벘+0kݱ0Z{tv*u>!Wڍ(M8йb_YFNܥ VOU_ЊligJ2ޗDiuC&0SUȩFl*-i {27YyOjݙu@RI}Xt flkJ k 3KgH]wc0TcdS1l/}@(&MP!Uia:6 T(S7pB>ݟ|LkJ4uL \2PB/0d2\ʾg5`vV[^MFC N!y24}8Yؔ>HYMDVCk ][w!y2}j sQb,<ɇcBED8֨m x?- 4DПphBm>P/ asF;%|Ũ_}ƮBo1ˎ !N[X1ѷ1teFx$>qlF^,o>ۭw)<@R̮ Co3jzD=(/D@SRZ-.ք Eb>ΌFPw *ZqP;i@աc4|N"F/Nc﷜s{psC*0pyzf 8]u064mJbsj,W%MVcřYl嗟T|l^Ϥ endstream endobj 330 0 obj << /Type /Page /Contents 331 0 R /Resources 329 0 R /MediaBox [0 0 595.276 841.89] /Parent 310 0 R >> endobj 329 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R /F28 49 0 R /F33 42 0 R /F25 48 0 R /F31 67 0 R /F21 16 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R /F54 39 0 R /F19 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 334 0 obj << /Length 279 /Filter /FlateDecode >> stream xen0~UOf׿QT(ToChFq%F5#ToY{*!%T , rUMG h)=VBr8$ht>:[fWMR7C?1C+Lc+_K/-ɺO>ɝ&W|JJ՞keu{RXKl{RouwYeH endstream endobj 333 0 obj << /Type /Page /Contents 334 0 R /Resources 332 0 R /MediaBox [0 0 595.276 841.89] /Parent 335 0 R >> endobj 328 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/RMS1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 336 0 R /BBox [0 0 933 301] /Resources << /XObject << /Im0 337 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 933 0 0 301 0 0 cm /Im0 Do Q endstream endobj 336 0 obj << /CreationDate (D:20080719202400+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080719202411+02'00') >> endobj 337 0 obj << /Subtype /Image /Length 25481 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 933 /Height 301 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;-"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$̷"c׎5k.]p׳画fEoEY{_L4i Wt~^=v\t,mO4e˅l,sιn.;IV&-8bӣSS$K&sأUC2NɮV8,ʘ,m՛OԺ_OoO^콙vc0mc< v]ԝp_Qmmi- o`Jx_qa~]M}`m4eE;ZLŋC"6Z>mb]k{,8h6!S EőCgMKr ka`=$ެ}I۶n|J>c+Qeh$qk55(u35SgmGI%!tSY.5Clqi-SI%"M]mY3%E6K.W:4JGsos@{Խ>R/k#!{4G$g _v5ܧ{+w+/+FI%0J mvώPmq9ccA]na$8-矼\ȉh)sX{Ki$T!5?βVMz{og޴O#\ܗ{YQejUqk55򩤒TڞTȞf9SYIL.5C\lqi-QMY]YXJ@g e F]Sct^~TDR:Edd=tƖ1mWݭtXȎJCsrG쮱Ԭ~lL (sm !14R[molh[gmMk3Kɢژ93#Z.5.kip4=F4=ƶGu"lg֫;}'noeNanc=}ny$(k--% iB4Y]}:#IHa5SkGw {Խ>$t2Ǻt,a`{*,˪us[S~DtR+>eu+/+Rh҇9>=SI%!q9Ɓ~&Dֳ4h393#X.5Nkl7ʣKrZ,e}6Gu"lg֫;}'ni-?JCKrO,Ӭ>;56U6uNs7#/s#cG=*[{ZFCN,/DI% c3sENz)\ܧG쮿+/+EI%0hUsM}6{{wIBf5ӑmOlh[gmFI% E1?xq*s[f4~M$Xl,,Q,d]WvNݶxD:I)pg{+=͌/fԪEki`4M$g}=ʜܷ8{k$t X#^ʠg %TkZ*pt[#GI%"NY]|_>IT=6O%4R YE=+s MZ>h28}Ny$q*s[f4~Fc,M;QS"S -nE5 {A$J"a%1iPNUW'YXcQIH-ͦIM)!YK78=s*i$ts?H~I tM}cQIHȯ=Aaǧ[kIʽVas]4R rAccBWeC=8#>2X0;_](ѓ^Db'ԭ5J@[g[nbE6[{(hs&?FX~−JGM̽ǽa֕ i[[h'N`$7eWA:N,lrZ7FnF4RrŬm?c[M/5;^5SJamÈ<⚛x.`xcZJ@3i6[mݻl6>ͱ*WdWwoMTS m G1vp̪cm'U=$7eC=D* n!` qvSI%"&Ńo>oQf="w)$CCA1c?umqJ{7< {Y֔DR i[[h'N` ɮņuodR:r*8O湤xr"+V89ΡoM%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJLx010%%!me(X}6k1$I)I$JGe̩17<aDC^ArX=%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$u(Y;[p}*%XCAOrX4=%)$IJI$RI$I%1{[e cs$_Lt۬%/oC?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~2u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?I~.u%i$?]?HQ{kA][<Ķ|Q\?a℔I$R *}wd[`{~ZEβM]odI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)1T鈐BJcKjm,m1醀ͦF4SAåP qK@RI$I%5[k5M_!]e^\D2'*JRI$-cÙY%ǺicAp0AjΨXuoƻeV A ZA)MUm]3ÝV%6dX\[SK `xI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JG],7<=i`DU񫱗e9eזgSJI$$I)I$JRI$IeWX.{豭hԒZ@7ܿaJI)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+I$ܿaI1k)ZIk7k!|n{YUs?`Si$IJI$RI$WFwoxZUpgSi$IL+uN}dmiЩҶ&}gDŽ1()I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRc%:d ߇E};*c.h%B+[Wohs4i4SIJI$RI$Tlq5ɏv ?J"E/g"M]xGIJTz{E4ed[Ace.k꼇G)cǥz{~ǔ$#:ۺOUꦋ/+zE5l]6zx`ͤe2qnel-,5{[֤*kz^8NngRے˶v clu|KZ TXy7c3'.9}>X77 =$iY{K>-gPn[w}w[d$ίe*iqtxn{r\1lenM66**I) k#%aGϳTΠ,}zYK/qVRIH2>mU *u-֦zc~ów[IH(fk\NUXWS ]u73:q凌kspYI%#{+Xʚ5VWcC[ `0,EI%5}Goպv \O!n -uVlkdR:⨹}˘{K!rnGѮ0}XI%5f{8S[#QeNŷW/4m=a-H$8n[]}:\xlM]Ѯh^ܗ0 WΦ|e 2poZBɽ m,u 䆂x$$JCEr+"= `]vO4d:-zqpc["JRI$I$$I)I$JRI$I$$I)VMXe]>M.t 0+~tciك窿\~E=+/.vRt~dbϘ4;v}/yO޷<'[gWg/{?z?ڗ蟽o\I{Wx>:V6 78~UGwl]&-33ܩ$NdRI$I$$I)I$JRI$I$*0ÿҫ# ;<^I$JRI$I$*3 ҫ#; 7X؋,t `GCʘgұŵ>w҈Cqֆe_߃}_e,{\JJl$I)I$JRI$I$T5'Z؟q'-jkAK\Z?\@=uh/6Fzms$ʎs1:59P=Gx?߽ޗ$I9;k>5{/qI/rJN]m-ue-,|Nt\on%kSDFPTI"I$JRI$I$!P̜{q˘Æz"kM"l KHJl$I) :r,$}1WƵ]Ǚ\ jXIJI$RI$I%)$IJI$RI$I%9Ew^f3ȹ.9w .s插Iht rP ]_.Z`9) -n7ӨzoM\/Ӓ2;>{YǮSCG"cC5IUQnHNfm$_RQnHJuE-OJm$_mޫncXlcK[JRI$I$$I)Jg0zHI$I$$I)J0BH $I$K+}6f|CZ>MD@Ǯ]m3 o%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJLL NS {F=Y -c^J"5MB7RI$I%"V,,6G4U_$.qG}+~VR赙}Bֵ4pCqi.y!7$$JRI$I$$I)!]j_[+_P^z}I%-exm1/?e-p٩`a V4$H!~3w+]Z㾦7-[{+cw:Cs}Ŭ]?EX<ɴ?GRZlmKkOc پ)̍I%)$IJI$Rso8wS :NƗGxX2#,pqtIII$Ycc9 UX &=c+"$I)I$JRI$I$$I)I$JRI$"Ļ/3^\~Ej9GI$I%=7wg.'?Sb핌(tyoԒI'3)$IJI$SWV\??zZIJI$RI$I%)U/V\?aI$RI$I%)U(V\?a℔I$Rn6}dG|eA qz*6}lgT+HRSm%W"aЗE%6U}>r( z}OQl?zSi%W"aЗE%6U}>r( z}OQl?zSi%W"aЗE%6U}>r( ȱ9Z+]vpRSe$IJI$RI$I%)$IJI$RI$PBt%%!©M]Lc:tKM:2JRI$I$VڟMdoyGb51Yc{%)Wс/kn[=XBſ8䁷֭m7RRUz_c[87P~E/1iY ۟3!L/~wK|uxJ.y%쟼^|uxJ%>:<]<\r{'\Fm4_]>5/+iJ(\/OT~E.2HշNS7BоWZ3/`RI$k$IOcZ)ZՈ||iT2?̏׿.wH n[8h}AYGc֞-O#UA^$VY%z1Q/(^~ux;J+;T΢ӱAɫ}#S &9%cS;;AΡXY :[I4Oދ_m=F1~NEFU6=-i!PmI$xU|JMX+c,h)徻m]W[lcKiq orh" 8pH}~k]Ae A 4sf@$k|uxJ%>:<]tGē;KAu bl0>/W%1ҿu !}_c_+P\g}^^mH8G~I$+e""I$$IJI$SWV\??zZIJI$RI$I%)U/V\?aIc}k];;ƼD8q7bΥ7ëonRCYw^u=zJ+gߏ/:{%Kza/^|_EUpgwnհfd:Ƽ40BQ1$6I$]U`kj?OvKt| uBS WI$JRK?}{- s'>uDZ`XODŽԄ"n> a(|TI;t} %ˮ+0(x;Oś 1yu]s%x;O_Ng?}%V뙽PZFtJ,8 e9wJ0BaH '<wګ{液X\D;Cg?ҊX`D>BLA <N?YGc_1Qsi'8t-'ܽ'?wDխɪ+cֻk]0H?Htl?t3 qB(d_[6pOs-3#2e-"d `c=_P \ h`s)۫p?KγE&Lw)jj zO(?w\H8t+ܟr1QV*vֺ` ~r?qYT8G2Jƥeɴ\Cv杲> $(\/OT~E+Q^_ml[6'f>~;A-5B+ky$3FZpwJ_;~WMo$c8?;~WM/ҿw&Kv 3Fec]\u_I$WK+/Փ`s.}s߹uS˽OZX_c[cc Ύ`wIO~2=;\t\SZX?U җ|=:;^}\W}'6=ğPkU/61h{A$scyqBIO0*KhPa ;IiB))~U7vJF"Zͭ Ffᴃ#MGAWss(ɦ lc78n;]5v51(I$O&7Mf}]hՑy)$E/uX0?^i6X-`klmToW_ASgʢd{͞Y^C"ξr: ξr: !$8rݟKu___o}fujɿթf6}Y+W/GԔc#cSy&gT_NI$II$JRI$I$$I)I$Jj=?+ӯtnz~{}kCk;?Jy]5ד]5"+kUOZAf5MNJDxvye;ܿ&r:I\ri_/It/?kY];uk۲-. ^[JdFG/% 1FEW4π Hf/'@/tF5Y-kla5aٖ93Aakaj!ϗctYknzrwIAO[sE$+qk2+{+#,pl$I)A?a}V s&usH"A]T>k_epthY~yyqI$0e1KZgEUX G5Y*c{Si$IO W ήWo]bљN6EXl7~Oo?D˙d9y_2RlmDY6:5,[cX 08\|a/<.>5/, 9kĹ-hƧ%g"{\5-%e}V^4eni ޛSkWl8K ƭ ݥXY-ƊYes!49^7;ݣAv0,e6 Klagm~MBN7XNd ѺDS aKIi-!GH?$\O p0m$v$0CL j/-qFE3Tv9ǫo¢b.ҫ1 f.1ֶ|JoWz[׽ {9Z8š u9?zJJI$$I)HݸS>{e  x]4d d[S,tq.h&>t:SG=> )".,?M^eU]WcI$-%$I)ҿ6ȼå8 mMcYy_Z/]WkK6-:i!yJ&]~=5^W}oAy LPz_KWJJ;=r~힯sr?nGV{]?SsnUX +IUV5Y9Y.kZhѥ\.+77YߒH )G qWO۶2X}/ϨXq.Z)'2>Q(ec k1:jJ>y=iA/$Ej)Q[7`B)+7իmǧ }ޯgwnvfQmC.vQ5Ѥ,TI% ǹےDShk~o(u>\nc{S}|GPe|GPe^1sydI5I$J}'GPզ>4Q Zj֏õq-+~9cl#s6=iOeZwlwq8A#OlXZg{D2{W{t|OITUΓ]vk$\Cإǚ<PIU8tLȥ/J?UQ܌xs֑7V4 -$I%)$IJI$RL\6~SK7bg9c[a4k}oh^y.ʫ- iqt <.lm5 ύYzU=--sL63W>L9Q夒+qcC A+f))u,u:7= &OA%' 1FE-kqZA\4+ӱ_L8N%AUS>M_bLL UeGcҺaJ?/,|]cl H0a}m7}[cn n@g.-^OW?RW\T7Y׍7cDwPIL@;FI$CKy4KK\ 5ÂWt'Fe5 wu+;//6?>M_ٸlɥ75i$u6['6Y}:=*8XYӾ w9q n')Up˫=,cȩ)I$Jx_?_]v,L ً`% pqW ή<<'"%›u[f#1re^wAKϕqWzƱ2k2@6[6Q ncoGcv3mޯ<{gI$L?_ bx=/j-1oc.n'?k/Wd<>y_2jgM'bdscclq߻O-X:F&+K)fƗ9,cˏ%f:G?^eI$r#aK1A]FoP~EC7BȨ}fsYO $h$IJG75A l|7cGdH QLaf7QKq讆[SO0 `ac62I$$I)m݊X9hVa˙Scnycc5ˆGqiݻѭ6c䌫X g&SYyw;D%6mƽ9N#$pz_pzJC?ޗC?ޭ$7qP tSBоWZC49T`ݔRݭqm6[j6㤝8k+Xƭu5- n5v3 1Ճł5zRI$S311굹Q.qkLE~$.]UYCc@0 )X?QX<I$s" povkw0zJjD>~D>I)3:nT>I)`B)Zcc_")~FN=QlcgA.iI$Gen^dDD22vPv+:ha%#nZ<fyi$}}դU5fyfyi$L*1SI$I%>]L1o[Eq2iFuvA{T.W??ܫm˔O$_}+ JآW/Gԕ[_l4r1Ԩs{Z Z@%c~88~`ZI$:m^c?ԩj%W0vQv+}Qf({k[~;]Y$FVokrˁi:kv?>alS_8.ߊʊKDFo&/VwRm}E$i [}y]+-Ȭ]@\b>(yїbu _Mvʀ/hqgtOMG*-^[cW 6uY(Q[)nhkDFZq2rl-soTԏ}bMHI*?ݮwDOҳӨ:bn5V<\f_JwR}zرя/b}+?qqKҳ_bF?ŋ~)}o羢Ay뢚I54 "9qH I$R}+gPַEO엻loW[?+QRI$^ujZH;D={*رяgh˒S+pkd ~gg)zv~OXرяG?k/xzv~◧g+ŋ~)}RD_g~D>I)37I$ֱ A< tSTgyf`yi$}}դSWf!KnT>I)f14@A"`JtǍRR<[эVDmX7cEP22F4SIJI$RI$[kăC͍z"]v)vl6VBsrq`!14@p'DCc^=s5a)"I$I$$I)I$Jq~WZz?l[:=c0ash+Կ;@ItisP(fJ쎥߇#w'`i+:~ޗ쎥߇{{s}KZ37V[^C K SF8I$s"I$I%)$IJ@ν95_MOKZ\'t;K(赎6n6III$kcA=c,D:eO홹ֳO"JRI$I$$I)I$JRI(c*vI)+uMVc\x%GGrt?_Ns+G97s!o}>ٱ3 2Wr^/+d͏pKGrt?_Ns+/\]4.*}0L5IG/{>cc3Mmc^s#Z?qrI.^y͸Eos=@'c?V01ٓ$T-:,27mibd}in`ZV: 7FCw\ o?gqZ`3Psv>;9Y$̮ԁml4`On!7YeV7(NHuY>$45YcY>PFFeʶ;qy{sqk4uI2kTuQiu'Ms$.7o1.ñeV6HJiJ D}>ٱ3$_fDϸ%lL*I)ٱ3 NJRI$I$$I)I$JRI$I$4\.ȭE66< ~nFC+p@kH"JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$'LtXu;V:88V:.YSsA()I$JRI$]e^\D2'*ϭF81%%)Wp1ExuV<Mmz155.q3Jn$v^&1 ȺcI!O֤FRF$i ә{I |Mn~ 5ݑUokH"RRt-_ckgCFe59 Zkpp2$3MȨ;vv"&eJlhEӻ BJJ>MXש tQYYȪcRR]%>+p߳"tN׽1>k}mPH J_c?t}lgB\5ݶ7znvY"OLݑF3C,eM& a*o!2ncHII@?UdUc k\cec܋P,xlBJLW,i7z6ǎ!BLc]HqBRRd-滲*㖽iJ%SC=Kmlsh̤i!ӓ e 쒠3MȨٻnݻIIs(V%}j^ُ{򱱣7WN86cBfHwL°=ͦ[!DIMI%5񫱗e9eזU7XAm|fh)I$JRI$I$$I)JT2-rO3/"&%Wr?9}pg䓖<0XZCKCB[|JR}iG '~S#ہC{k}mm{󠆂5'`g6;sX56'K]دr;C;MuV671D@rRX}+ r {^mGIu gܶ5ض^ÿt<` `h滟t J'"Z>Xcc~݇>Iknz_[oޗ ع ౿XF߽tT:f_M}nDkE$e~(HH ԤJeI$JRI$I$$I)I$JRI$I$$I)I$JRI$SOmLc}E@})'k,tI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$&NU#DccYo>q؋,t ~6tI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R:Azqz^{aUcc^6#$$I)I$JRI$I$*SLҫ?̿䗑_x~o 7dW0@4}@|NT,ƒ@$=sxO \^1#gm3V}׾.ȶwV,:i'Nv~snK-70mm/]{ v1X')鬣*OL? ;n2Aʝ]a\9QH٣<"c=M_W]U\>5DJwRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)w6[A\KZ>NDCllt|I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$&<N9}CS7[(x +k<()I$JRI$dn{k>w҈uY= \EIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%5}e1EV3qV뵖>3k_RI$I%)$IJI$R^&e[Pi &[NUw11q v+Ğ>P]"t;@zo#$?ܟ.?5_GI/1W[96_c_'?I?ܟW*-nV&~eI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I% e)3 oY0c~FIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RstPBJcMLS_ЭD4 *N=6}u1k@()I$JRI$&v(v8ZumA&cTI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R*YuoxuʭLJW4lcKv^>IY+Y-o1ߑ%3I dVo/QߝǣW7zݶyJJNhgc,=ŏ,kJqdֱS4*~qxSܲ<Ɩ~T;1ljl3=%&I@) i>q &?KO+Ӱ~;%&I _g:5]T7=X#Ȓ$KsIc1>% ~qPup_D~T$+ݔ=uޥ]M7h8ov褦i :2* ,s L~h|QUOgs /):JsSZ4ŭ8 4%V7y|wWZJJ~w=ѻvF'TvC@;aE,=%$IBqdֱuU1\YRRtnv[\=Ucg*z7zRV>|7lJf .q?hc]]i~pZK*JNhc, J^擐VV$ 5}5 W \]@TvScg;GGmIIRPi/kE}Ķ{{E9ULlr?S?*JNk⊪{# Q,7 榵is[ qS4vK_?֢_N~|v1>Rs ,y`X&cXȒSey4ʞeccSea)2Jw!cn;gvɏRv5^IU XaSεw~U;dƽX#Ȓ$Kr: ^#X8\!kJNn߳W]Y%IT 5lwmhSUc,kkkqx2j\woI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$&&)|RR,KM:IDzEf6Ƕ>Ji)I$JRI$K,}Ot./gĵ(s[n쮺.{Gwzr(i~=58ᤤ 7?z,ȩ0=*WbGnӷpl1%Kc]T `rwpNnCcUvq%'I,wwUSvi(]MUWuSJfX3{ko㴕-NEB۰q3)):HwdYP&6q8iS4*r*熱q1 {11}u8ǵ )2J"\J7z6ǎ!BL[uvEo d$ 3inEUr=u;6Ln{DJJH9dZ`T=T ۰=)):HWbmMӺv 7❗e^,k}F%$I(>jֲƲN4ecdٮptO$}dT, ۺ|"fThvEO%$IBgEC0V~ SU<5kx%'ILg_]DǵSz}(H;$s12In=@+xq$?ȪXNuԾɍphJ|Z [>JJHs]g܊`{K&Tt1n#%%IAe^v5A;Al}Nt?Ӣ|N=1%'I,wwUSvi(챬`:wILB+'wٮptOgE 'nOL!ݑYSIlph' S}9 (cspIIUr*{\Lk*Wfbc܋먑 XRd=j}/_oIcwNf&Kq[III@?ȪZNmԾɍ!~%%3I|cZ [?)P.nEF۰=&e%'I lhMӺv 7鲯^ :;$i SN|N=1+p_UN<`%MuzX 6w 4eb5ݶ7znvY"݅S#O$M3ԢɍppP?TUc cc^IIA/]]E@ᤏRjōw#lxS4iqn=$>D?ȪZO)):JM /!_2|]k-58II@&DdTlۻw2~V64}}Gxn!%%IBZ;An4C; !Z{\c JNٸxّ}U:'k֘Q}5ƶ$%3I \5ݶ7znvY"OL!ݑF3C,eM& a*o!2ncHII@?UdUc k\cec܋P,xlBJLW,i7z6ǎ!BLc]HqBRRd-滲*㖽iJ%SC=Kmlsh̤i!ӓ e 쒠3MȨٻnݻIIB+Ew1ḅ*jk tQJfYWӣ"_=0߂mE^7v鍱3*Wdcr-e!GpldžRT+k_{H-ӝBYWӣ"^uǵO RRtnpfET$5kLx!MʽwXޡ 6w )b$NV.L{o㴕 3ky6=%%3ŤӎNUma#* L1> /XObject << /Im40 328 0 R >> /ProcSet [ /PDF /Text ] >> endobj 343 0 obj << /Length 2944 /Filter /FlateDecode >> stream xڭZo6_K)RK)rCYwuJ>ovhD |o(IJNJ(h0M6Cvכv(;tTV$HAU[럯~J6~Ċ=T}yWS7%8$yXHAM ZpxUdQ6YaIrnpH*8Zu-LTSbH!ˬZ( qn32Dh>D%svN|"Q:"̈'uKCj!#x[LF/ܫڞm#kØKD1SdfUV*!ad rHpS4(Mf. a4["9PXVާ B#/+: ]W*"CI~>E<*A}E*:/)BH3M7֡ tv4YgR oKDNgki7uQvmg9Hghm٩#MJ&صjө!TK@eN`JAyoJSg<~`-[` M$pnj̮o6b)[9DA=YB-?FuoB8ȑL 4ӊ5G'TJJNTXa[S3cZ6_/yqjsD=2 .b,}- Mm[h21̴kDX''KMQjޡœ*~CcWDw9FΞX@ٍNAl푮e'ˆq-~j־mx|;ț5Yej;w tRWU'O~) C;6I_sseȪs:, CTy%m(X m{]g ~ȅ~=O⦢bﻢmv: }h'9G8f%j"EBݍ=‡)It" N=FV =T]v :%B>,x٪a襞ۄx3$MnÊ|^S3M\@.~CdvNP8 厥{if#!7Swnx?~T{$#;>Wzq2/?dmroƱXЍ"z;Kj1"[ O%V2 fUn{=*xH?31dFĪFg(Cնw yTgb.k?h~7У0.^N 8k>\2vC)ekY I/wVM;qnc?MȦƆI]Vxqu"@Mi!]<;7J*a$%?o]9rCdxEUvx``'ʚ&(LWqίW5/$~gl-h]Qh߻f3"1|Ԣ]oh\jaO4KGnHa?-G{{ 7 mz endstream endobj 342 0 obj << /Type /Page /Contents 343 0 R /Resources 341 0 R /MediaBox [0 0 595.276 841.89] /Parent 335 0 R >> endobj 341 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F51 33 0 R /F52 31 0 R /F53 32 0 R /F27 41 0 R /F54 39 0 R /F21 16 0 R /F19 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 346 0 obj << /Length 302 /Filter /FlateDecode >> stream xen0~UOvo"%7!4 Hġ fFZs1 1a JzJ|45߁&xdà#c&LI\4My%A- :bְm9h$flЧi>R,lШQLq" :݋a1Վ`rj[MVC0)xsKeVdrt7.!Y4վ:ɦU(2OQST?D|P}Q]ڵ,KdCy胇'Uq endstream endobj 345 0 obj << /Type /Page /Contents 346 0 R /Resources 344 0 R /MediaBox [0 0 595.276 841.89] /Parent 335 0 R >> endobj 338 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/RMS2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 347 0 R /BBox [0 0 1430 521] /Resources << /XObject << /Im0 348 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 32 >> stream q 1430 0 0 521 0 0 cm /Im0 Do Q endstream endobj 347 0 obj << /CreationDate (D:20080723133152+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080723133211+02'00') >> endobj 348 0 obj << /Subtype /Image /Length 45672 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 1430 /Height 521 /Type /XObject >> stream Adobed ##''$ %'% $('++++'()02520)7;;;;7;;;;;;;;;;;;;;; ""2(!(2;2222;;;;;;;;;;;;;;;;;@@@@@;@@@@@@@@@@@@@@@@@@@@@ "B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$'TSvU֖:{݌Z/tm%_45๧ok[0I!XIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IMZ]:Ʋ UVʮ uW8tÀ {*5&h()Ѱӱ[\aE. o p,ߌ܈7TST͢c̒~eFPdiwQIH.eIw^ y Qy?;ot#Cog.sHOUBĒJAV)v]{>݊̒!$6T)mAwJAf-v]>O{Gԋ-A$t ӜTƻtf~$W"$G!I3h$SI% {9+y]\ILHLǑ ʍǘ.3sEI% 8LsKg>Чu A!$Eh~$ S{>IHnmIw\Ԑ uL*i$4ⶃ NsMn.v]{>IL-\ IoMM @9%$a1.Bȉ.sHEI%0eBmd(t2 O{⎒JAv#/2Ki=LǑ ʚI)ǘ.3sQvot#Cog.sHJEh~.%$&T|b$OsRB2I)6m"93̨S 9%$6\Ļ}"[Pg$)Ch'NsPL.B:I)ȉ.sHReBd*i$2 O{،.ILH{6"AThnЎJGu A!*i]TJ"I)xLہt}ОfD9$#$ fb#?|ʅ8.ӞQIH-eΒ]{>-\ݦ~DJEM @'_sTJؘ]3?MntR+ۑ\#\Ԑ]Bd*i$aH.%{RB2I)fcL*47`9%$L{{N[x?sRB"I)4 sPf+v]>oyqt#݌܈71P ۬DrgSI%!{TJkps|$څfЎJE~3r"K~Hc62ITIH)eAwl.8#YPLǑ ʍ8ǘ.3sEI% 8L..B{+{i@ B2Zpt%'I$RI$I%#Ʊ4DU*uܵI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRev5hqps-%]c Ï1?$7SҲ_mp,qІ:0*=-κ{ET6;qc>SJI%)W4Oݰ~Ua$\kHS#\/07Gc)}hqwkSZýi%a${'Go)uI.j"I)}gc^[ſEI%0aydd}?"/ցJAsi5)ſ"<2@E4R*k{Z<6.}kv;?:I)α?%Jx$ DI% {ƴ8tSH|ȣCtkG~V$ϼ;F5gIIRI$I%)$IHp94B}Q,,nlqRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ@}.u`7:-ZX?):]&VɉMyV?O?j Y[3Q%X>4zԔk}oϬ?/G=I/l+} }`?Ϭ?yI{a_x_K}`?RK BX>4z_^z^W&X>4zԒ¾7пޗמ>|h޼$M/G>|h%}oϬ?/G=I/l+} }`?Ϭ?yI{a_x_K}`?RK BX>4z_^z^W&X>4zԒ¾7пޗמ>|h޼$M/G>|h%}oϬ?/G=I/l+} }`?Ϭ?yI{a_x_K}`?RK BX>4z_^z^W&X>4zԒ¾7пޗמ>|h޼$MN-&h?vj) -r2(pm.7h"![qi I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$ipLCt7III$I%)$IHp8Աֆ~cǭԖ4 JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$uծtO-ە5$IUە5$~?wI%6D>'_]Bv6Smk]ŧ'5km/'yiAģd JEI$JRT `\tg^Ivg_?)Eg#plV,Ϩ;,sdU]lGlZ84" j,[o dA^aL| OYX-4^mKoęQ̢bHi-vƆ;w~vqj juӴp7 ?t+'mA׸?Eŧ6KZ2C`lc@?!\X.amrSu>ẑRp9%3sϠluE 8i䭾+ʲBkG=Wz]y0]h.?P[:2 olh"CiS􎳸od[n,mmq^ϧGuK<Kg0WMwNkeտ~H|+j`}́Y!7X散Vq͚m$'<wB[Ym/2>Ѳ=ܞ|u%OHh5ۜX4<;osW%6 {X6$ś8FֻM!]BR¶{Fޤ~@K\ F قߵd [P<'Zu2 ` hw qs.$8(õ#h?mֽTX+8\=%:L,SXp۹Ig#{GA5Տ\Ɩ^=S^^V`4_1!lZI$\5ԗ8Ē~e"Qnyw 2 <_hr{WCQ lӋmxnp嵐w~? ]GRNw65ڎ~ LifT9>Hwd5b\4'\IЃ%mEc\CD{SZڟp,5Mf;uB:8cqk эfQ!/>MhU\[;58|_股SsnChѨlD˜'cQ lӑ^51h%I;LXKY#j eO{>wz`9ߚeC{.<VwKױi>:ƀ#Xx-s^4i"|Mŷƹy!p-. ήGmXT<A ӝH0 cpkA$+ 9dXvs'CWcYHЍ<K\\;kD&mGޑ(*;hhAH( g'_]iGĸxBHD)$E I$RI$?P?fϨ? POn]qaǃ% 5Οꖏ2k"I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)A8ُ91À?8III$I%)$IHdV׷DCǤcVDDIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SVuRեVuRդI%)W{2?7c,!;]ih$'5t '5'_;I$I$I%)$IJI$RZr@pC۵AI$$I)I$JRI$I$$I)+^9Aԡ$JRI$s2&~M $UΠL-8$I$b5!yc$JRI$M{^80JRI$ b 8II$I%)$IJI$̶`ltI@[A]?Crsõuob2cti?^ s,?tI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$.,FPvbu⒙I)I$JRI$=f=aH1>0!b_dFGJ*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRJQ}vVw"!#A]/"">wi%<:o_/ȥ<:o_/ȥϲIWϧWTw78 R$I)ͳN-ucud՝-(m$G󚘹&Q$Y:{JDf& mLi?i'^ rUΑkk'ؓ>$MhtԔ|P[A.d|w9_ޭ}/ɫI,I˲[ljqg.,தJRI$smtlsG~G5$°qPe4&:I) ̹~GM 9>*i$T4mios^˽hx$w =HA?IHýiymh$HƓKni%FI% {<]HĉtʦJEKmlsOZ[\ {v + $W6F4YߑR<7A> @U4R xw#ɥs@SK#J`C@#tsO->Z[\dRka'?"a(n-DI%#X 䍿A;AȎJEsmtlsG~G5I 9>*i$4{GZ[^ֲcK$i#Timi"l|na W6cK#JaPxo|@Iu2{GiJCsnq9)ߑS! 9'?M$괷ɬe״O߼~DtR;PZ-A?+J@^Ga"͵ѱ;]TSA#wiOP4?IH-e44,->M$ -resv GI%"8{iwsT O>*i$xǹ֖"i$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)A<4鏒{_$JRI$I$7;"\ָ:665$߁M%)$IJI$RI$I%5Fևnh.wS+{YSsVSW&=MZI%5}Lgiz_դSW&=MZI%5}Lgiz_դSW&=MZI%5}Lgiz_դSW&=MZI%5}Lgiz_դSW&=MZI%5}Lgiz_դSW&=MZI%5}Lgiz_դSW&=MZI%5}Lgiz_դSW&=MZI%5}Lgiz_դSW&=MZI%5}Lgiz_դSW&դSv}n 踻..^FH{ |ILĤI%=_*]-id>Co][v_qI&.|I*wYifI$(Rc2Zkhs} }Xͫ+5)0smН=wUs?=ح,I$I%)$IJI$Rg q-cy =Et7nRSGdc@fXF4%>s_en5Xˀ7mIX1kvs\5,lZZ}8_8X*i&tjNKr&~\RIH;i&<6 3 $so'MsPfk,v>lxyl#ݒx?;1h,ݬDgSI%!)cTksK|~!$EMf5a$ćֹ Uhǘ-?qU˝;Ƿ- ewXԂJ`m fb'?tJ9-ȘsFI% ~k+v>Lyxl)shg-sADI%#$O=@t}導JEvKqC\Tps7k<TIHiewR!ctS -7q Q!?yoP$mfl)]ֹ Uhi\6=-$sFmߑRRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R-70tXGҟ%%I$RI$I%"ţ2 U_̞13:n&&#0}o]?߼/!I/i_y}{t~y I{JσkO RKW|^]?߼%}x^B^Ҿ/׾O }o>}xKt~$}_k)%+>}o]?߼/!I/i_y}{t~y I{JσkO RKW|^]?߼%}x^B^Ҿ/׾O }o>}xKt~$}_k)%+>}o]?߼/!I/i_y}{t~y I{JσkO RKW|^]?߼%}x^B^Ҿ/׾O }o>}xKt~$}&ubʶ:xCOLP_(d=zT ;,oȪ١60xx]%/);.?u+x@pcI$%$I)I$pC`qz4>{yR-ft+${>]֐ti6:wd>Z%%>㰸WS' s`kWqZv}1S/R"vi%0V=]MͲ{`4NûY:j\.:KBzuVX~,cK啲}w{GKO%Z8K4SEۋwP]sXN9pӸٷ_KGx U4Tḽ.\ PrָoF30~(*)o;;Qs~+[]i$H%@[YV1 %ߡ9IY].4Ii˪"\E, ѣ\ $~qw4?wO϶~;v;yJ#nI-v6:wvK h$w H%qK]Y{Ip ] ;kp=+q.&J@ƃI%۩EOg3sJdz;@{h* %w+XyW "|vTZE)$IJI$RI$?M^n/ЛU~(Aq 5?D)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)ˋ-c{8:~P<ɘ))I$I$$I)Sǭh?;M,yйxdI%)$IJI$RI$rb9O{ZIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$W ? V\.l%6I$I%)$IJI$RI$/.r? ~. \~Bꃀ:8mwC( n̵ۤ&A[Am2 Z h=ġUm6hnB HPU/G' ͟ck NWO5\4_>lv w9bI|v~PR.+a9Ov_SwO1g $JfI$1sА<1TTIMr\-i\=ͱ!ݛ'M8G~;Tmr,hC5v8u:F癐 9ֵ6F$UI* س!R֙@?:Um6hnBIR-WQlD֒@qܨ;2nnBIR:h!cn&jL:I;8AxURJlZ ѣk~]IEf}`"  :7|OUIYs2&~M+twK@i.Hd⪤@.z@2Z vIRl@`'hccAbbuPW 9%/֘q|T[ ϵDF1*Z485x$-Jz{ ָURIVoT%01iF oc9:nwT-+ A$W[W4v͒8;[8#NxӅU$VRklkh[(NُHf9%y'">?|vjAxO*I*luKÉm,af ۴rxωPYyx/hh:{a:iݰ"T,i'zz45iIkKW-]:򪤒,FC_[+lA&{H|BJI)I$JRI$J/Đ'A))ЛX_S7{v>P='5gE@0 tI)I$JRI$ѳcvFc숃Aƥ:ho!%)$IJI$RI$I%5s?=ح*SsVRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)UW ? IMI%)$IJI$RI$I%)`k6Lx y$c#a|ef'%2?K${0|ef'%2?K$ffgZ_" +gOLC-F*@Ǡ=Ʒ\_h?~RϭX3h)I$JRI$I$$I)??iUrbI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)J6\@*\sJm$I)I$JRI$I$$I)I$JRI$I$$I)H]wc:I)7t9Qt\c?*֚DV?$Xmlocc$7dL9ՏBvnTIHiuch("?*:I)y6?%M%֏J"I)rKcT:v?$ #9oJAvIc  Qqel~TNI۱$M"CKĄXml;JI)Y&F3Sݐi0V?$ٺ7sdR 2n>b#aHiw$tmZ[h7$v8kΑQIH:v? LySI% `tR$`1lILacwm'rE閹 EI% 9$;ns~U;4 .IL*$:Mf#򣤒ycX$)fb#򣤒[aHiw $ DI% $ns~U+45ΟݏB*I),/n#NIc]j0y?">nOM$]kϑ8؞[I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ ksc:~peŖ?$$JRI$I$xj@o!Ws1U`9}w;kN8U?`0˘w{ԗ=s/{Gޠ. z#j> c_ j^P`K$p\)v+Jg\I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJYeH;.KA$O5ܗ*|]kZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JkZI%5iS%JVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧVIM_T_~ҧSW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?SW>'r_?R sjZL~Q措.YUZ후MKctRdI%)$IJI$R,[S,ECk>7HxSX9\ CNgw*1RJuT$?JVTpݯ"+]3M ?`0}RQ菂358ۮ?)O4I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)44I$?җ?ҭ$oJ_oJJj~)}~*I)gRmm.,|'UdJ{?ȍW$IJI$RI$ճ]ԳiU]Գi%)\ۘ#:ֱ᧗L|S4I%)$IL^A| ~!W_?JI)-1րb"@gA453q?qȢ5?0/.6a I.?y$kCNgw*1MkhtNnMbtnS^2^4$ N44 Ҕt5X*L_#tUGIF> J˪I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IN7Wׇ,q 鮑ą_{x?%NWS ` x!E,NbQ^I/o%z|/$?KN 7֚#T-UaNRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I${?ȍWQߑ> )I$I$$I)ggUjҫggUjJR{_ ZndLC$IJI$RI$‡5$߇e4,Z>S+EIOX2. w*#ū.Ri/T?O%/ks|Zk^ w)}JCcQMW$@VҒI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%<Oj[]?eWfo$SWX!Gq4sc  bp$-Uaf/l>t}_ɫNm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cilwM%6U6e;&̿߯Sm%Sf_cizy_҉)/14[{. 5ߢZ;߼$JRI$I$$I);#UG?=wF菂JdI$$I)I$Jj.YUZ.YUZXGҟAk L|ILI$I%)$IM|c_;7t1xɭJ*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$;-X+{`$IjN' )<[¯~XVu$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JUJUI$I$$I)I$JkG}Ag#$I)I$JRI$KV*KV$ YI}wfO,7 ):I$I$$I)cxh $E_1c-cA$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jr::tG*?zC,8N72qOޗ?zKvW72qOޗ?zKvWX"$+ԒI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$*KV*KVI$JRI$I$$I);#UG?=wF菂JdI$$I)I$Jj.YUZ.YUZ<ɘ*hO}|RRTI%)$IJI$R;M,yйxd:6lnlqRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RIr_ etrH4\"޵%X]K]ekջ~Lg7v}=%?8}=OIy8S^d'ωqӨI'3)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$FNF0׹*Q))캼lmɥ.?jI).?i~˫vJi˫v_ݷ&$ݷ&캼lmɫ$캼lmɥ.?jI).?i~˫vJi˫v_ݷ&$ݷ&캼lmɫ$캼lmɥ.?jI).?i~˫vJi˫v_ݷ&$ݷ&캼lmɫ$캼lmɥ.?jI).?i~˫vJi˫v_ݷ&$ݷ&캼lmɫ$캼lmɥ.?jI).?i~˫vJi˫v_ݷ&$ݷ&캼lmɫ$캼lmɥ.?jI).?i~˫vJi˫v_ݷ&$ݷ&캼lmɫ$캼lmɥ.?jI).?i~˫vJi˫v_ݷ&$ݷ&캼lmɫ$캼lmɥ.?jI).?i~˫vJi˫v_ݷ&$ݷ&캼lmɫ$캼lmɥ.?jI).?i~˫vJjI$6IBQ!ZIJI$RI$I%)U]ԳiU]ԳI$RI$I%)$IM|Qߑ>9"5_D|S$I%)$IJI$SVuRեVuRդ \sOo1gwO$I)I$JRI$qc #*>_[ݩsOąa%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)r_~?WX?F侀XǤJཕDw5IU?y>V#C| RbݳUicghg3uG#?oG#?oJo9ޗo9ޒ)*ߴq3z_q3zJl~H~H)G#?oG#?oJo9ޗo9ޒ)*ߴq3z_q3zJl~H~H)G#?oG#?oJo9ޗo9ޒ)*ߴq3z_q3zJl~HhgSa$IJI$RI$TJ?EZUGATRSi$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IOWuޢ/p'_3{UTy-ۙ=ޗTG*ww{ws;=$ ՛ߓKdf QcRdoe$H%I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)ҿUFԅiU_*BI$$I)I$JRggUjҫggUi)kӬDyWem2Ri$p_c'e;K AO1K^;JMFnǂ""ѫwg "lH)2lKiZÝGW/sI84w?w; Cjk - Ny>L#BesggUjҫggUjҦRxq4D ksc:~pI)I$JRI$sr׷DBƠcV C@o!%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)r_~?WX?F侀XǤJڳ4>V ݬ;NjI&Խ AnWT&-<]}-I%3uऒJcx%x)$ l I$;[I)ऒJcx%x)$ l I$;[I)ऒJcx%x)$ l I$;Z>n*W%wIIMI%)$IJI$RQ(PiUҏQIMI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%?9_+W^bzm5[d_?Rەwī-iXZQ>q v!-RM=a-ٷkIw#h`I%C%:'>ĵ)y Z7`kF_6` kin׬Vv4T >WW 5S+?o?T-٫S+?oS+?oI L_9ޗL_9ޭ$1ҳz_1ҳzJjJ~JI)S+?oS+?oI$L_9ޗL_9ޭ$1ҳz_1ҳzJjJ~JI)S+?oS+?oI$L_9ޗL_9ޭ$1ҳz_1ҳzJjJ~JI)Y^>uW+ڿ$$I)I$JRI$I$JWRWD JRI$I$$I)JUJQ÷"Y[pŧGIO/2hfH~BKCZ ]/ |=/^66'o$R$IO}VπkЙ-u?;\ˈv (P`hFBBI$jTI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$n#OgIeuO?Z^;."KoeuO?KeuO?K܇pn]D3$3$^ܻ>KNjY_Viv> lpֵyxlI$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$v+JWX9ZIJI$RI$I%)$IM^7+JJWR]03N8;?"| dR}E%Ϩ5ܗ??o)>5_GIy??o%<[}j:K33) .4ŻA-G8+!!m_Yu,e-\gYv70ǮO~>;@?GJ͆oTZݍp1O#BIJƤI%>oᰋWBg~@lbގ?Ϻ&sFW!d{O o f0 7I|$Zm$I)K3BA+goI%R ?# [ks8!򄔝$IJI$RI$25 ߇dD N=ܵitI%)$IJI$RI$ -m-.qI)eodi59c?tV2nk]N>qM[QwnnzYtJjvِ>ޮt>Z:QCƴ9#Ys)n8LrjɝkȊJA7cn3 Wd׌% ~TTS ed!՝E GI%!2c{Z|@fo.bwNSI%!.?tYENp$JÉi"$3>Xx*WeU$ y:}Ӑak0 2I)P{Z|,7s&I)95d5Q9lcn3$Wd׌% ~U*ed)UE Ove8(QIL ߸m:GBrL1t~#$YENpNDI%#",ppZA ϡ,i<@ptR+ƍkgʤoOM$r 1qkJ1׽>p$\ʛ$Q*9A$>힣wLm&~ wd׌% ~TDS ee/vXJ:I) ٔ{SptI) 9tcMf}kh#p$َ% .09cH?$=E.7 R*hx@$ۚ=u†> }R^;JX!))mW+x1㴯+^z&s\+~{4yZI)1``i.l@.2HXg -pĉ#A (z_]vQ+%Wh?I(Y uc|~nKF]obuIMNve\{Z#p;wHsJRHSs=uc{%Ym r0 )2HSKKne %3I :BJN5F>*Lp2i)2Jf@*4eW; s )*HΥ\'Scyy!{2<+Φmk> ):H7eՎ@{1s 7϶&RS4i˫  Mnu4;kIIPP  )"H:G5F>))*J[G9a$ ݙV9o'Ne%3I gcgRm. ):Hw^q/ 4XAI)"HSkeՏ( YFؙP2 p'%&Ihv8m̡`xi!S^@cGԗ&bI̫T%\Ƴy:s*4W; x$ ?:ݴI$WX9c}yYA;iPVcvTI '\׻[v%ni ~!s rtO2<ŭȫI^[5 K/RK/VBHq9wuoRKE}W6F.]> }I?c.'I$FOӍSdH;#|JQxk~Z̏K׸ykܰs$1qM#o< \K@-A i㴒'I)!55ys޼|ס;O{z|+i$P2gWc?:8> " J5IzWYsTGTKȾGRuqKGGgR^E;ۯH^Ҿ;>/_GRԗ}8;◴Ϯw/_}v}u%_n#)}8+#/"uqKw/i_y]IyۯH_n#){JKȾGRuqKWGgR^E;ۯH^Ҿ;>/_GRԗ}8;◴Ϯw/_}v}u%_n#)}8+#/"uqKw/i_y]IyۯH_n#){JKȾGRuqKWGgR^E;ۯH^Ҿ;>/_GRԗ}8;◴Ϯw/_}v}u%_n#)}8+#/"uqKw/i_y]Iyլ{:O) e>1h^ݧ"kepeBQW%:n3&XIkty+?3rJk|{[{/.^:ƺ[I { @! 4y·Z]c2cnkuL[^ƽN[:Q!*nuHkA hk`x$H]11:*i$̌ QV1% \?_.GpI$,Iu`7}MpVa spc;Jk >N籕+/#>XI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$'^`grKG []qkH /u4+ ."KUo }8h ե&wP=:{A5X "{'Uh.f赴NYpS C[yOp)%oշ4 Duf:gW2/mU 2>1?88JŒHk00q79ln`3vAΧB#UKLƂ `1Od\%У {%ofV\dDpyF;cP2tea\%Ihҙyn,LtA*C WcP{ f0t=p1%}$*snKVNN459v km74:=$בB礋kokCCHh'+v=ߤi?Y*Kfݾ۽RwƉf5mhm3ZkX%n>ܟP)1`g_#S7Zn>c!I!7- ?9i[ci /{Nֵ4VF~q@URs h@ʢ2jmulq =t;%ovàG$pZj%$07hG)Cw[[wN+W Kcr݀\XuwS'O1|dM qZe i6;el5dpsA弈Tsqs6x$I I$RI$[ϟI^ZsژYsCv/ɻyV,7uƟ;J_*BQ!ZIM> JE~.ŭKBollǓ例ܗ/Z__{Y}/E^:t%:t%}~t4wLƭ@2OVRI$$|ON:־xkqitmp=0 ϮAt%]f:Sc5y_qKqL{[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR[dR~{gBWanOqc<,U^[sYص4ߔ =I087B ?ѷСVSY;\^[I|~qJ5/fƗCة0fO Ha)}n4AEHa)}n4E/?s ѻһϩ@>Ps$2I%MyXi^j2@%K/z,ɏOEK} } _1_EK} } }_w|nnkdPЌ˓,!)I$b$I)I$JRI$I$$I)I$JRI$I$$I)Jx'1Mڋc $$JRI$I$x Àw%[Ʊ4"JRI$I$$I)I$JR 'E(OIFߢ~ )ԒIYsI$$I){#ϩ,c>3'F"IRxnhgZgxMTn {M[÷h<)%J-9,6#vq9-L1;4BI*EOV{ X.8swDOorwuR YwYI4TRJxiA۠ՏTnv5ssY8TJezͭ1:βt7hTciPI*Un`hns8WǸP-kZ#$Yny.% 톑!F{Δ ?IŤڨqC4ZDYV#QoEhkZL4OO'T#Mn; >D2rֱ$w.>w쫤*VS~?ɇn UZi9$-M~wm{m۲#vߣuJýǍwpTJSe^,n6ZԆgܬ͖oiiil#,Yn}a 3v[չ1[Jmz]꽧kZvT,vېinEQ$+hn7y-ppiDion=OvvDnt?IR[]Yk6o۝}: "tE]V涪˃q'h?_|ed;.X藸$$$I!I$JRI$?Y+W}[ϟI^ɻoPof8d ]Mr9#3)$IJI$RI$I%)$IJI$S]ȝ>,!:MsyW/E'5yқNcRI$¤I%7zMMDlWjVxinv55kk_@ǐyJn)菧hּd?lm|}D鬲pkp™/G>MKsZـwC` |2C2ޤcQv!%-QqJGKkiy7LƑ<Ӿ;tk9 F^R״GOwXMw0m;mp3q%ml6u{ݖOx!snn4ʉ1!WwWֶl^9N-' ^Pѵ /ӯL%n6ا}asY Cw;uQX^݅ N1hM|5ݻ7nݞnwnZ/D+3chs] O$̥=,qYce-kK[n.F{y4/6Aooqs < vq۹lt3l>Xީ. .`q#uIN18aH']SK6`|sBu =MQsZ:=0o}#hD-UldtqdHgs6vbvͮe۬k2:}I:5F:]'#E*-vAk7<ctu聴8GΠƖG\\H?i~ALK~cxwo 9>/fmEoѣ,;Skp#_w^4kCy3 afw6h;7ZpJ(͵uKZꝲstKqcD8jalkO $b:V7!sn;wH HƬ6ygNzGKs/suG_e`ew:D4UG 5򏄄MZ)n+vqcL?xqg[cY5[ c\C@Ս~VeYRliQꦭ+77]qG>1 $ci /{Nֵ4VF~qU)sX\7bG*ͮc7k18 !i ~Kn l53)c` ] GmaNľ|X7=9knQNq״L5St6XhII$$I)K ;k QvPy&Yp|UFvTQxcvLi?WP]Au\O@je7! k:-Z $:I)_"$pK"I)&V|IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)ˋ-c{8:~P0<ɘ))I$I$$I)Sǭеyɥ:nhw%%)$IJI$RI$I%)6Zo;~Qr854?JLy)$0ՌkoGQI?,?ws7?GQI/p|nf?/)%}/G73s޽E$¯o~#רUx]73sޗz ˿o~#^^Wwz_s7?RK*_.Knf?zI{_ws7?GQI/p|nf?/)%}/G73s޽E$¯o~#רUx]73sޗz ˿o~#^^Wwz_s7?RK*_.Knf?zI{_ws7?GQI/p|nf?/)%}/G73s޽E$¯o~#רUx]73sޗz ˿o~#^^Wwz_s7?RK*_<'){` <llSeHy4,~ݳ* I$$I)I$JRI$I$$I) | OνGJ:Jp>^t;7O뉐u\OХ@ l𑖁IlL L A۟g%53t%53t%ϳ IlL L q{s㤶?ooq[S7B_S7B\A^8-/. n}tЗЗW>:KcjfKjfK+۟g%53t%53t%ϳ IlL L q{s㤶?ooq[S7B_S7B\A^8-/. n}tЗЗW>:KcjfKjfK+۟g%53t%53t%ϳ IlL L q{s㤶?ooq[S7B_S7B\A^8-/. n}u}AoQw8X"Sg C&HOP*pc{<,U3s[`gr ͏$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%) o?"Z :III$I%)$IHٱ#l vDAàRKZFIJI$RI$I%)$IJPnp5U4Rra#K@Jam͠KD܁-#$ w)_x: EI%0eͱD:s+f|B:I)ٕa>Mq5f>)Q̉:x?(QvmmvfcIH]? OJxy?*"I)yg'): FI%0~S̃ p$v3W-6]ǐ'){r~`ʠ3k/۬}r:I),Ǎӯ'&\q?M$0ٟ6~Pٕa>Mq$5f>(ђ̉:x?(EI% vmlv3w){qĺ~@ȈJGMͼKf<Bv3WIHnf9Nfo"x?4Rrِa&6]UtS nm- OMNCrt~TDRY~fc• Ǎӯ'TS m&>!ә]3IHnˮ\ Suc7Q̉:x?(Qvmlv3Wr:I)׷K Ssoُ0GDI% 6]LU')u@J`.ifb'9P-?0B2I)67v;p<ԒIJI$RI$I%)$IJI$RI$v-s,te9ZԂ]`Vc.tĴ'-!cR JL5 *"`8G5%&IHt1}ᰧu͠I%$Ix?kT3XmǁJN-lj3sARmݬDgILA-cTksK|~!%'IBEMf<'TinDpkTJJYl:f> Wd6&uwH))*JZ-n1 O@(uf2@KBJN LT͠3v%%3IL湿@&5i&<6RtP$CR Tĉ\RDǻh6<n%%3I^`ioP e&wX~!%'IBEmf<'TinDpkTJJ`vt}߶ ewH))"?z6Do@UY潢Id} -\ݦ~DJEM @'_sTJ`~t7ݺIHnDIpsRBu LyOLU] O{F^deoI$9u93̨ӌy?;TR1K;m eoI$t('E%B&V|>GI%!%?uoI bX2JCN+(2 I.=:I) [y 8hIsTJ*I)ؙtf~ Wc"$G!$ºM&<'&Pe.]{tRy]$)m"93̩Sy?;1KtR;m eoI SKh'NsDI% f+v]>oyqt'%?uoI$m"93̨S =%$6\%'pDkv"Z~ASI%"ywQ*bfot|R+ۑ\#\Ԑ]Bd䒦JAV)t%{RB2I)9uL*7`9%$Lۉt=}Чu-A!$[@?sTJ0nB:I)ȉ.sHRm!۬DrgSI%!{TJkps|$ʅf<TinOxpt)HAIH顴9D7 vt}ۡ$fD9$)6m>$eM$FPdiwQ)eIw^$ʅf<TinIHnmIw\ԐjuL*i$4ⶃ _sTJk0k{$E d-!*hmiwQ($ c]]<7n+\#\ԐJ`CLyOLӈ =%$F^deoPLǑ ʚI)ǘ.3sQ8L..B:I)67T)l .I*i$a2n7.!=ح.˜IL=!nɟeBVdksFI% q.'NE d-!$@?sTJpnL|}ۡ$vD9$)2md*i$2 O{،.$XͦcȐ~eFv9D&9ۥ3vS \ԐJGM"KJXLہwpGI%!%sRB6m"93̩ӊ 9%5LۉwhGI%#x?%!*hmiwQ($ vt7ݺnDIpsRB*I)*h$C{9$F^deoH{6"A4R*1ۏ0\g&9ۥ3vGI%# \Ԑ4 .\J"I)xLہtqq mIw\ԐJa uL*ⶃ NsFI% ;q.=pp.l-A i$t ӜTKg>ЎJE~;r"K~PDǙ$ʚI)8.v#/2KtSͦcȐ~eFf9D; vtݺ39$"$H@ĨWʝOG]$7b$OsRBm"93̩ӊ 9%5lۉwhGI%0s`Ȗ ;DRot)]܈7TS h$B^7{sbURI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S endstream endobj 344 0 obj << /Font << /F8 6 0 R /F20 12 0 R >> /XObject << /Im41 338 0 R >> /ProcSet [ /PDF /Text ] >> endobj 351 0 obj << /Length 325 /Filter /FlateDecode >> stream xUMS0;CBI# 32 9TC[>QIoOv3.,`թ 0e&\-dW/ՙ2)%imȴjK˫MOT!yb>倂[aJeQD0ԩI䔠 Yq+ldu9ځr-,ůҖ;ZW6; µ&M<0zT Ӄ,n@, jooiȅt1G곦xJn)S*#.J/(2&"]M_SNP}ݱBB=P& ٳmSs{K 39h? z endstream endobj 350 0 obj << /Type /Page /Contents 351 0 R /Resources 349 0 R /MediaBox [0 0 595.276 841.89] /Parent 335 0 R >> endobj 339 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/RMS2b.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 352 0 R /BBox [0 0 742 494] /Resources << /XObject << /Im0 353 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 742 0 0 494 0 0 cm /Im0 Do Q endstream endobj 352 0 obj << /CreationDate (D:20080723133152+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080723133204+02'00') >> endobj 353 0 obj << /Subtype /Image /Length 37457 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 742 /Height 494 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$gP{-q5)s\X~ͺ̪RJco·/&kuvYMlӣE& KZF5g;,#G7T)kcc-]9i4$pJJs.[h]òs-mzF=jm#Ժg[ĹR.sgOʧ =kLƂLIӟ^ͪz,eyݺ{w{;tqdzeSʆ>N.HwYe~:N)o֎gO=E⊱.'Yim[(o =$ϷW?u^۪9cZm8m[`ps:[0DQv}6o~ t.vʱF.6VNe-sms|k[S\4hhRRKe &=skT\1ƴ$76YۺvɦfJúcӭqЊJ`˘f09߂9u^m겱$eC=ǏpD}YŰ 5sCAw঒JEFEy؟RχʉͥzE)($w^ ѱ*ne&=s ($Y[h'm`_vUT׶HeפֿFI%0Yz6;tR7O(SU䵍'YXcQIH-ͦIM)!ۙK78ckI)70<c}gPH6ӶM66$oM&Z*ØO8~ i${1hJ캨~Ƕb}Y`tSU88vh.hɯ#w,b}J_>[($ͥzE)SP燐L~յ${78 {=*mOwk{GI%!*ka$H)hv?IHiʪ+}jksi淶GvSkƿcGI%0R#ckjoeแc?uj"I)ͤۺvɦͱ*WWӭqЊJ`[e^Cu09߂9u^m걃籡$캨~Ƕb}Y`GUk 4R*2kȟLX6|=FT]Klm1"K {(hs&?FX~72o`x:=($mOwSkݕ] =:=$hv?)ʪ+}hFI% 2^k{m$we6k1YK=G9_8{/>YkTm&Kml6OftR++ǂNǏBvV룘O~ i$fUs1ƄeC=D*$!` qvQ&ŃlO[ke$ٴHĊm-80SPL{[\QIH鹗{՟iP6,{Z?JCvMt,3})Xjct8:#tBI) 9U^6@Uecﱍ ̦IM)pGI%0RQx1y,*4,+}gEI% }ݶ}vٶ9 )lοz~Q˿ev^^Ypmm5>鸉:D辶ly#ml eO}JRHWcאyxǧc75JU~KWvy%%3I:ixXkJp{` G+uohIIP51z$l{,*WIaԱ}ޣ )2H¦ u6Z?׆ wR۱>Ǻ))"HtX {as0eֺfuoyov5y=;_>>*M`K]dRS4iĪ֒D{XsփDz?cRt,87MZ1);QpC }Kg9В*}_[unZݳ37(+x5Ԕ% eL\GJXtci#׽%'IZp{` G+uohS50!wOi Ӎ^9%ûRzrk0khqunkRtc=՟iJCK^A3{?}qII@f,Zip3\\Jj#6 zv>|}76RRTKW ^NBJv:H}X>%&I:~x]c{B%2'^O4~))HT׎ayϩcsDRm[v3?C~򄔝$+ezv>US)g<^<$ :Ggkƿ{݋U{V>В$jaїm?;T)ƮK t>YzrJLTaδٷZ;e&}ugcRRD顔4>R=Pw0n%'I j#6 M͕&UD_]i SUZLG,su\u{-=%'IBʙe~t׹M!ߊ8Ϧ^wsX8IIRQc5 $I%)$IJI$R:YS.:Ԓ] R({8~TdI%)$IH饔0~69ȊvUKhpu9HVRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R8dm1{nUtS]5} 3Y@IIIpGY8ֵT憂ƞZh&[-Iy/3?rw&?CtOmX?3o%_x/8X?3o%=>gKے^q=>gKz}`Lmܗ%}/z}`Lmܗ/nJ<_GIy/3?r^ܕx3?r_fm佹+}%fm{rW!:K?Om䯼CtOmX?3o%_x/8X?3o%=>gKے^q=>gKz}`Lmܗ%}/z}`Lmܗ/nJ<_GIy/3?r^ܕx3?r_fm佹+}%fm{rW!:K?Om䯼CtOmX?3o%_x/8X?3o%=>gKے^q=>gKz}`Lmܗ%}/z}`Lmܗ/nJ<_GIy/3?r^ܕx3?r_fm佹+}%fmˀ72 6r^W!2HtTb7vDLfCK)q[XHF@Qu_elsHI$$I)I$JAk|NOGPfqCI$$I)-"XFزHaF'nqsL$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$*>j,c9խ8W;'uL.hvzJL_(3?N^coCT,<ܔIJRI$J.RK|K,ۣ1%KE%aL.h4tms֙HGV3:cʳs[C,sm7n֙s)XO sZ8ձe/{emwHf :rfo0!99 XW Ihىqv>MnEk+n?FsoM͢}ak,l6iӝpJ鹮2⹻/ drï /ߧ;شWw}26]cYew`.N/eisF 9kkXvȂDjZ& jpIX}c0H u6s f>/~3;wz۽8V-Tt VX=c}@\\!#Һ_]n^ښLwصWw6O-}ii!v:7mp niy )} 8旵ua"  XUtu'~ֵkP'o,tp_!61^͕]ƛJT%oєSmK]vZ$F{x8v,{,cW70,敨D1%9[}Om9;bWj"vl_Z7X8>ڨInw}7qjۆF[Wmu9wzPpIhA6d0@e.vfum@$JWNv5ghoYkHɲ}M8ua/-eMmV6kq$f}_(-\$4[/xˍ]kesXEc]{<2 ڈ#u$ZK~`]eCZqԞ].Gۋq+͍Cme o$8 W rG.Kxnke$I)I$JR>~!EIM[_RVtXSk/,h{gM4 zwJ}LuW鹠hiG]AàbQNMli;@l )쾟q/9]tܺhkG ~3jɃGI)ZI$R]B}Zc:}ia+=$ :ـ)v.Ʒ}uYl{+Du|6f ]U{KZ=?M8ütvƺc$(HS2Yk L8\5է ;ml}==-W.K{"bHҁO<|d69\C@ Hh.NOX;\ڝJHPOt0c)ܳ/ H3C -'BOU/EU`V76} v05I*.Pɥ8eu;+D?UJeXj`{yy/c6Gg|FMf5βHu7V66eMo;q]ӣelc\6Y%~|bIj!vmGپowz^j2{l6NChI%J&fGcل1Kc0\sۧĸ]V1m[[j6ƀlgTBeOR̯\}'v}*ͽOã{xPi6beڽ+lۻmm YTG2$+/y;ݍke k^dK[~|[`Ʈ`/{Wv qݐD QfCv)}U`=?Woȳ2Qu=L4 /C_6h|RIR}Q~c[Lk59Id$H&ͩ$IJI$R *LmZt /(곢Z0O+`~w@t,[ӍVDmX7 TI%)$IJI$R:. l丷"(SS)g_ї;W4I%)$IH鵗0V9wD,z=fY'Ǻ?"$I)I$JRI$I$$I)I$z& 2魶9֊@׺t1D,. OK OR'ogrz%そqipM$blNLrFFI(׵zoQo|z2i%)$IJU, kn3ccNJEȢek<ÄREZ As``-Bj=FGp1".FJ^i^4M EG)I$JRI$I$U>}v(8;"Q%)$IJI$S_ ݻֺ7L_b<,{Ef6ŖWousڊI$\Ræ tkKc, ?豿YY?W RY$ ׫޳TYEcNqG>?YEcߪdfEP+Ƶv'X&tK56X"}#d p{C)eMPms__j?-]*澾Z|d 6>ffQm#w>'кiI['A{@qo#o}#'⼪CcK L8wQcJWYcY[3C}7jt$7}3}Yp|GIUy6i }#m?ARlEǫHX79I.tI.%ĝI$!lzImLmm'h'DUہƥ<10 !_4v4:'( kj64>KCr*e@(UE8譵2gkhCiǪ5Nv&IȢH kOѧ=6QӁ<6 )H4cz+ƴm۱c\Li )SNk&v in=L4򄔑$=f,>3~.6L};}FDIIRPe4W]mepFƀF=U>#s֘vCKn{E6UY[]TtILBw٩ѻhl``Y'vƗOĤ!ݏ̊kA,hpYJ)gEm;X?$^ /ӏUo=kH9=x$;" @608RRd=}/Co}8coN&3讧ƴ%&I mysrB%{=;mkpRS4in=L$VOa@``Y 'v$+qc4v4:' )k+lhyhN;J1ƴEV#sRtE6U> mF\\mfwFMNh)- m] r3uGAȶ],F'(I%TR~9NskA$%}Vu 1-mq-i{R fKTe}%S]Ys+i{iUII%)$IJI$RI$3njnH@<|Sܶk0%du6cXrlt\ѷWug\ߤ:.fk4[S>VgSc |'\X#^ʒS3eNi8ȞW[cQeny)2JwvώPm'W`uկII@i3_S7).s"^~T$:[֑X5ޤsEN ޱJNv߳Y]|_>ITX>洆oi{⒙K3ȶ8ena+G3$(<\j6{CMM;RRT 3Im 蚜]`'srwN%$IsY|ƖnYSO) qgj,3mS(V>Ӷ|vJf -i?hh+3uMk3ɦ}Nq8\Ȓp̊>y{K|R iCcC[ | ޒ$ˮ?DT?%+ے5QlRT.EkkK[=?,kj{#T_Rt.fc83"<\jiRS4nSw}oY*.fw-\Swsr1:^#ĩ5{,i`{*JHlu=ʜqߑ=qgj,mbJL]F|)n[\~ev64^$k3ɦ}Nq8\ȉh(sXG=%3I4==ެ58;oZ'RtnKW_z/+RZkih?.ILI$I% ²qeƍ{?M̽&%Ť!%)$IJI$R KS^t:]SM1sҔDWgR}IO}dsO 5i}dsO 5iC叐iK>jI$_E6N,k]?@QV'}`my55͵'<fhWDY}*GKũᵛ"dwJT?WVkuK#UYQjPǣ*VEm0x=Nde@KJ5ܗqkYKJ5ܗqk/WwȺFn5 ^ u0u#!'KI+WJ5ܬcaf4Qe Փ>lpG{ڏiBȤ\^-0[ фD#zt)ŷŷ{?uoV?ԿԽvޭ%߮x}G61C6n֗v.6P HRKPK>zzN9SAˤc SAɩRI.So@'eaIr[~ŷj<އ=ZK/pp-{Re{Ir[~ŷj\zi.SoԿK]C%ッqmڗ88?߽pK~դOpp-{R. vWz)ŷj_[~.V?KoԸ%^?y\88?߽ッqmڗ+އ=ZK/pp-{Re{Ir[~ŷj\zi.SoԿK]C%ッqmڗ88?߽pK~դOpp-{R. vWz)ŷj_[~.V?KoԸ%^?y\88?߽ッqmڗ+އ=ZK/pp-{Re{Ir[~ŷj\zi.SoԿK]C%ッqmڗ88?߽pK~դOpp-{R. vWz)ŷj_[~.V?VzwL.^ʍq6. vHh@~oԏnt,=`&JI$$I)6F;_8 a6y)I$JRI$QzslɈq>[|'\I.\?lk耬$*F?ꕥWgRJgv.CXsPe`VCKV!i%jj~D?KE@VPp/ީ[UzvRI$$I)I$JRI$?=ZUpG{?k:gQVyM`6 tI[k$INc^/RTu>m|_N+Ûy䀬(]s(dlLySUٔm{"..ng~I$u$I)I$kvK]okk|;9%"Iy5b@}mm.1>*h8;pL@Sr1ߍ` s+m-cmog!$$]2i~^ Cߣ;  JDI$r1ߍ` s+m-cmog!$$.6;;/{Iѭ'MRR$ǹpxi =u ))I$JRHcc V;JRHɰYXwq1ֻdzR~&M_C[x%ǂJV*[Ĺ /=?/_Snݳoi$,-K7+;{}?vl{kl h+A1I^oJu;"-E`5K1[a5 UASŲs WoI$RI$U{bg93m1\t3$SIJI$RI${ _D:ie ,d{:%)U7T*F?Si$IJI$RI$_1JҫԿ cI%)$IJI$RI$n.eO{lꋈ&'Qc"E_I)u/W;UF?:gQVyM`6ImeN)l cVnCDJ2h2Ud7d?M68no$خ}%c sH[PmCG`%@k HmFD:C2,4EvP7l wσD./RUyu>m3*u/ɨDI Dȫ?YK8ZWg~B}.r*O^JxڗV3?U$JFI$۩uuLX4b5́O1c$iUnַ2-:ǭ{?uVǽsk.e/+,o{\j wX!ž75Yj6h~cXBb U4mav+ q %ž2}ouv4%kFWAoRJ܌6RDCuaż&J2,7\w=ѹ$$E#ӎmgƭèEw.vI{6\ߴ>svf4T7s:7.;qֽ8[7⹯ϦfK-:Eu5d\GM s %ž2eS'՛6[͖h6ƋRsY̜VhuXMA=֒·X`$""VK\0F;\Z@ylHWfX5.uw266xXi$EJfcәV=[:Gw;C惧1ӲIǶXohiu8WPi]0KUP>Xᯋ\ROE4^܋fQk.~a}kc=@V #31Wڙf?xȭU^ s4Ke6=mtٖ۴0͉)Ի ѱc#G<mS>d SkmW3թgn>~EW յ0 <9Ynƹ2s@ZװGNJO{;qq40MUV:y+mX[}O.}Vy,̺4 n=0̗Ze.c\g)1=9iBT.wcf7#%o 5<@`/U}߅Eʘ]vHlظ'$T*uvU`a !\o|#[YMo7ƽ2-wI*O5}Z3>mS>)Vm/աd sd4It \J R O&,ᢌh䵟{D?rDz 0Ye9:豗6\g)u ;^DH{r6:gUͲiA{ Q$ZMRI$I$-?_B[%SA̹\ $2Ʀ|z`{ 櫷٤I)I$JAK|NO=G@ù>'{ۧ^#$I)I$JkWetq ls萬 r+um-?}sڌ}V\}I)I$$I)I$Jj/iU_1JJRI$I$$I)I$JRI$?k#GȹjIԟc&V<3|%/]KejCb%>vO.ɥ2??4^ĻԆ\ >wYז&?>so,dwĈl> E٨uѻli1\ʬbdu5/^ȰS.1M>b͌䪭8Iz/t_.ɥ3:??4⯻K|%3]Kfti{_vpKgGG&G.󤗢ΏwM/.ɥ}]I/E_3]K*Β^3:??4gGG&t_.ɥ3:??4⯻K|%3]Kfti{_vpKgGG&G.󤗢ΏwM/.ɥ}]I/E_3]K*Β^3:??4gGG&t_.ɥ3:??4⯻K|Ro>͗w?ΏwM}3CvXLH@&8 M;h9Tw2sH{D5Q6SI)I$JaK뱛2᠍A!߈SBƧzSLGsQRRI$I%#TLmvt"%.ǩymO ,}r:JRoZUp>$I$I$$I)Կ cWGg+I)I$JRI$I$$I)I$JRI$I$$I)I$JAK}LΈ4 4H 8A4[Zֈ$ [FC]^Ki?i(f5$i!]-Iи4G( 2=]ivdD)):HWWmzW:hiRe{a{%3IocY[AOu7^F֝|}))2Jc[=@ό 4Uus맍kcRTFCܗ;XDxIl]4 5$K,lfw82`{\k?0RRtn5\cִ*al6RόD$i Mou 5h?kBkh{˫uMI(Zǽk8Mvq<4$C#l>DOѝuvkKCL JJl{+ @:cY[AIIApuWiҦ<հXCRόD$i!SUϫs75@Q}.cgJN̲ƆahOp)R+n,6i%$Id6~aꮰJS%&I@1⭆_z&|b!Bo{\֍|} )2Hѐ!7CXG&c[ ILBk[i DKnOk"'IIBlUk#?[cIL@?uZ?S}PִiIIP,y` Q'չO )*H!%l>es,kfw4$:Yeme3 <=(2= X)):HWUu\ckTNJ |@񈄔S|ITiMhСfTTcZeI$I$FD;m蹹 l丷"$$I)I$JkZs2E0vі!mw0ä{1ߋQR\}Jҫo%6I$I%)$IM^c?ԭ fP=:ip&  O1Q%6Uv?ߣD?ߣDIU~~Si%WoS?KoS?IM]O1Q-O1Q%6Uv?ߣD?ߣDIU~~Si%WoS?KoS?IM]O1Q-O1Q%6Uv?ߣD?ߣDIU~~Si%WoS?KoS?IM]O1Q-O1Q%6Uv?ߣD?ߣDIU~~Si%WoS?KoS?IM]O1Q-O1Q%6Uv?ߣD?ߣDIU~~Si%WoSIG҉mG҉)?J%?J$Jާ(ާ(I*zc[zcJm$G҉mG҉)?J%?J$Jާ(ާ(I*zc[zcJm$G҉mG҉)?J%?J$Jާ(ާ(I*zc[zcJm$G҉mG҉)?J%?J$Jާ(ާ(I*zc[zcJm$G҉mG҉)?J%?J$Jާ({pp uղ%&I$S je,2k\S`o:9p :JRI$I$X z`dGzm۽ktU9#XIJUp>+Jɭ266Ǻͥ]BJm(C$r?I)gܡm^$Jr?Iz(C$I*w%gܡmJm$(C$r?I)gܡm^w$Jr?Iz(C$I*w%gܡmJm$(C$r?I)gܡm^w$Jr?Iz(C$I*w%gܡmJm$(C$r?I)gܡm^w$Jr?Iz(C$I*w%gܡmJm$(C$r?I)gܡm^w$J#=kHkv0u*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$/ PiU_^)I$8;"Q9BKgcd2w~*i)I$JRI$c2+6eqW?=t]L-=Y=J"JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$ԮedRvU6=&֒9BGz Lbe!IyvK?sWw_gESq@ԣ0wC(F@Kwu?SҘ{Owi$wu?Vn:MJᾼz? xGYpT>uӮj_߮_`${P%ܻ߮_/z?ڰKڇ{^]ps^M`y~[_Rs1xh6 ]:I$)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJUzWj/ PԔI$RZN=>'s#Ns2}]׽1.vEN{[mzxWcQRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)S?Fo/oC2|d?Is/j|Z-ʽVJ%h;N1"E2$45.O>9s>πV9D>iSǗ?ܤK}ѱ%御~᛼J>ׁ~]Su{4^vEȱ4y %yr\$j L*~[1g>I)u uV6vD"]j~5%̮uKEǦכֿ h wIv!^y#~Q}QwUtRUgcwKv?UU;؋_~JJ߿b.ҩ~"*I*~J;؋Jm$"*߿b.ҩ);؋_~JJ߿b.ҩ~"*I*~J;؋Jm$"*߿b.ҩ);؋_~JJ߿b.ҩ~"*I*~J;؋Jm$"*n31qS\Z{H0ZrS}$IJI$RI$I%)$IJUzWj/ PԔI$R:ne1.n-%tR+I?qwDIJI$RI$TLmvJeYeO=Gr2JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$*}gH9\TrfO_,^I.eSiʭ}Bb-~L( $7^RT@;`O>9YEO_(]#Jr_z_ħry7>.nC+.\?tG >`aުqpjm5 3$̕k>qL*~[1g>>PRTPRox_kW4N?[}J:I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJUs??iU{<竒Si$IJI$RI$I%)$IJUzWj/ PԔI$R &xwomбE^m=3TI%)$IM|'e.u h=Ʒ 2^5՟Ũ)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$v+1hjI,r@B\A'6HO%lO4r3\ki'Ra71ѷY?k7>[lO4r_fDO/R&76}~Q8d#?ܺY^u7;9v?dF߹;qc&9#>2xzS3ys8xc}J;i$aGK8I)OÉ?ެ$aGFc!JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRyW+Jg=\I$JRI$I$$I)I$JRҿ?/WCUWx^I$RʫfclgRIw⦁K|NO=GIJI$RI$YC I_E_ WKh!'_kBI$$I)I$JR=aX-ʮi2(4e ;A|N217~1m{wG%>U{qg:m?%%ʣ;Wzd˪|pH=ѕN/a#nIf蝼J=QO"Zٝhp))"HtюzSI44OPn ,SlC>3~..L};}FDRmAA6#o )Ha~=T#s֘ !Zc\cBJNm~688N.64zN6ch )*Hz~Lݍr*eƇ JHTC=:+mlkh!ՁCŔ[c'$2\Ev5 AS4j molxmS4i%QvG@Mf mǪǞ^4Ɯu3ӾɝhpJz1Y[*i2Em  )"H e1m+qrv;}FDIIRPeWڠL:p߿tF11 $ ]Rz|F籮1!m^68htILB~MtޛCf8( [;dX12v>>KCr*eƇ)ꦚ[jg;XD V ӏUo9kH9=x.Ȣ\c%FKFN(SK鮢G@II@ cc/{cNHSr[md״8O!ӏzSI+hh'HPn lPwo htJJN;~MwmCy)2kЮ#c@ ϴhN;Lz*ƴDŽXY/Ǫn{RtE6UY[_TtF.646q;@IIR@8.v=FݼbeN||TZ cC?9IICq[jd?V /ӏUooc'N@IMn!Wiq@4^J6p6dž!%3I'{ۧ^#Rfclh#PHwRI$I%!żV[\sݏ~{QmMa'i=()I$JRI$I$8abkj2-"۹278e%)%'^Ikk&d >u$<','P_RIyw6߽/mz>1_QIyw6߽/mz^DZ}E%~']{GNsmw{R^]9:ͷKruoޗ{1_QIyw6߽/mz^DZ}E%~']{GNsmw{R^]9:ͷKruoޗ{1_QIyw6߽/mz^DZ}E%~']{GNsmw{R^]9:ͷKruoޗ{1_QIyw6߽/mz^DZ}E%~']{GNsmw{R^]9:ͷKruoޗ{1_QIyw6߽/mz^DZ}E%~']{GNsmw{R^]9:ͷKruoޗ{1_QIyw6߽/mz^DZ}E%~']{GNsmףt`SulTD~<%ٶG56Yd8Y-Ȫu.7NZ7s[`glBk#a$IJI$RI$I%)$IJUs??iU ]N^d֮INwҺ;\Yk^ !p#X\'M?ײPwuuAv_].,CC]^Q_4~cw}bM/u5ۇbX__Kw}bMcݏخ9~_Es:Vƽ ۤ5-}Cg}]JTv y)$L\Wx^JJ_ IMI%"ƧzSLGsQP0n`=tI%)$IH1)v=Nc$mxYc0}ԹjE0G-{5%)$IJI$RI$c9 Kf[sx2ױQS^?xK?畈痚I$V)$IJIhїE9܋ih{686JOw`x ܇UnH{4p&4VIi\[IX\w2hqp3QYEdD!A>z]˽-i鄣aTZ-%>ۓюK!En;vӣK*Uv{47pNw$ӭpc{~Y ӎ&xozckhk ƵݦKtMtٖ uMpmvYߺ,c~46ƒ~^{m0h+N`&Cַhnmc #zMsO~/%c.#stLi:JpJ.+}ʞkkm,cw~8³OEu=J|{^.K*q;K@ߤֻ; .JJ}:( >;x!znи8ZSHme"sC  q:jIZϳAי:czqr:=ϮX͌1l9܁ti2jiW+ʳ/kM4T\6VWϪfgз,~[s7hl3F:hDI%LAktYcKlc >XEh礵1%t6ӧӹy{]]3P;Z5d RKO7WF)kex~ʚep#.-k QRYun5\4 W bK[#h70cUU~= K2< kn3.Iem`э|3ӱ=O1ىY%]em.8LG.%8`ξ=Z>.$X~sVIk}~ѹ}>C=U}&:>ap-}Zz}c,;!sksa2[VLI *eZ ,YNg|<|Uƻsz;zy%G_z컷ݏn|Ԟ;݃oM7 ]v%{ cASW2~=l_JvǭO*hT_PYgWR8Xy~EZ5=!t߲gãgEg&J쾙q(K_LLȦ.aS/%@>?xUNP`k,%P'(\i>;e/].A<))/J?R?%?))\*-.nQ潡!"A w@FHcX]w' OT丵%ǗRRtI%)$IH鶻X]W{c Y,ǺnEIJI$RI$I%#au_D9:GsHD,z=fwK#%>y\?,+]׏pijyX9>yy$EbI$?f}$}(>枎(~ c[A7/okE$'#m~dNf yJN)4Shu%<ʫC[0uY!A\Eꮼ"׋n;]}s: ̋=Qu5Nu m:5tk4"wnvzC_ϭKih`za_3rI* -ܮ~o2FWҝ{x>JtwnuZMn {}"\pZRB_X<`cSZ˜Kl/q6TwpH=}۷fڪ&OnvJHҌѽoRe=/񭰾Xk۵ d=VPϷ5Ո\jq$C]=HUJI.g~MG"VxcvU}T:Ӳëtbcm =p`A hB}۶uƧq;yٽ^:ў2sl aCpy.ET]Ŭn\R[a{sA _KH!T5ҊHW).;hud, 5/<2-ef'cu@I$]63qs)}U v[?͈㺴z-ȯ;")5e@_7{ƟzI !+@ƭq7XW;f`&{snn BLLyM]:=JM_!ΰ9;`>ZM7ֶ=Mu-s`$Dm."}7ٓ *}<lί1;ɭ`qs\|Q$(ȝˠMf;&:Y]khLS*{@UhcL=Ϊm 7Yg$qE6*mam:QUViU3b?$i~Ҧ=oEk>ͿK{_:P{'-"=As# d OuQ$Rlӿ-?/?mSK]6S[@G`ji=Ā#; 7׽RI$I%)$IMf_N8,/X3ˑm}/ph))WS{wٍ!~!;^+Zc`hkAvcc/6~Tj6njZ DvIHŽŴ]] ! |k3py㖹O(-iԀRS.z=!_2Qc-BXLt:IHnl7tDvF><e[ُ S٘'⒘꬯խ}zAn*Ľ)=?p( hkGܼZN׼4ǎMTgH Zy#JGNN>DݿKc|`vn,}M^E|٘⒘[}44>SI^>on18O)"R vW]=熵$ǐ) _k*'P kA@<~))W\n#lx 5eb.$1>EGdZ8$Vfa][-sӯ*v]U,-{kg85*E: D%0"M24%GfD_W;vonDO(fdcU 캫kk{^} Nu Dȟ@ hUsS}v;{\~R/lq 1E hkO Tg=y 6xQ'"} Ynv8:' $> )pgk>*vM `>mi2@))WS{wclh18O ñ:'O Q@@!-@ە@T]{g*Bڍ^{Mqx#l‘#JGV^-,pCcB:^kx{Zu%5E: JceRR׵e5Ydh,pt}d BJE?S'nݻJ|p 76~=>)"RS[Uj{^} <…Y?e7cǵ  hR+rhv =n,ۚ6 `yhS^smVZ浮vۣRGq?IS(dmVS֝YO6DiS=μhj9o->Z=͓ י}kgPcϓy)$dúAq  !E$R~?:c=_o^OWTcG7|"I$3$IJI$RI$I%)$IJI$RI$ ݏ.`4ku me1.n-% i)I$JRI$b\슜?Rjs 6x;D ?eM%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RIT}}/1͢44 Oak9 }eחuE\'粽W̏u%B_ _Շ'XzA$3#I/ڽSdۯ&a_v?a}I%念z_]ޡv]sksK*L?l]mDlRrF\5w4)$$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$էPڭ*?t[U}`:ٴwZ=Ĉk[0.$d8ͅ> gdgoYg?&> ף$rx+؇縿T94APDƂ$J I&.RI$I$$I)I$JRI$I$$I)MΓD !khv>0^:JRI$I$8zY;l?Gr2,δuI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JY3W>$f{K&!oK{U$Pum36;}#'k4h{[q _?K>π\dZʁ :;ąctC?y|H=JNs(YKLt۬-m$.u$jtGJm$.u$jtGJm$.u$jtGJm$.u$jtGJm$.u$jtGJm$.u$jtGJm$.u$jtGJm$.u$jtGJm$.u$jtGJm$.u$jtGJm$.u$jtGJU?O]?iRľ1mP ԔI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$Us?AgEPVʹqΤĩ$I)I$JGM̽^5՟ŨtRXH/}X"$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR/oCO^&d%ɇz?$^%W{n=i`CI$n RO?#8??gtC?y|H=I$MI$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)/M;<8~Gn {?I$$I)+ʹu7 -"XFز.?=)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$:QPe7ij$#F VcAoo&?^??szsI~/OI/^ޟ?szsKw^sMe`;$xf'H|[71X.~I$9I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)/Lm j Tб=^=TI%)$IMVet^q}-y{QLsLcA?!$«6q8ir*熱q1 :I) ٘ ȾDcG)zƊw#lxIHi%WinV4ga܊x{C($w_N;=KmLȣ%2փJ@"XNOL_iwNQRIL}6Uƺ'<Ǿ]kx($gacӿ"kL| D}_mez 7^5:)Q?g/M>;IQ9"DT, ۻw2JGvF>0ȵ` 'ogEna<šI)Y7UNEV<=&5fbc87"qkI2IL=j}/_oIcwN^&I-ǺKD[È%$l5]UokHx%Ng}?JGNF>KKe  %A/nEN]>2JE~V.6ߴ];oَcq*L*뱮 `s)SOtN=1vn;;*;^tSMuzXWqxFV6L7D;IEI% 9-vEB۰&eN|fdZʚLcA?8DI%#rQcmd?V~ SUw cc^VIHn!Q"@i#D)^J7z6ǎ!M$L[}v$?J4vEUkHx%XI%#q_cjd?9-.ǵ&~RJ@3]g܊`{K&Tt1n#$e^v5A;Al}Ntd?ӣ"_k|GI% 7ET蝯{Zc D}WemPqM$lfM2JGvF>3C-eM& a*o!6LncB"I)y7X*"xc {1nE\$ H$>7ҍޤ㻈P3%ŸiHq$$[CWdU[-{'^ Dhg}ny |ʚI)9 Zkpp23]o܊`{wOL:I)Xt1n!ISm^v5w4SI% ; !Z{\c WffET蝯{Zc GI%0}WڠP2rgWv:'J*I)Yg`;v:|"eN1c*i0 k$tNC=J,m nUVEV<ƽ5tR1nE]<6!L]I7ҍޤ㻈SI%!3%Ÿk+{\@k"9k֑>D[u43Ծ7<|jrqAv=IDI% &DdTl7v"&eJlh9GpldžRIL+kSΣD:ёUǵ>]S{Zc Du]5@> 6w i$TebٮptOgE6`($wdQSIlph'XJgc-l88ODS_],snuvXI$I%? endstream endobj 349 0 obj << /Font << /F20 12 0 R /F8 6 0 R >> /XObject << /Im42 339 0 R >> /ProcSet [ /PDF /Text ] >> endobj 356 0 obj << /Length 1817 /Filter /FlateDecode >> stream xYK6WV)z ridjKKnKdk7N[=-E7|=3d7w2H)j6:Yes7o83H*!j2mb*sj`E][짛٧S Ƴfg+x6È}v 0^g~<[i8J+Z؂y[~P?&osrlvU}gқwvc,}lnX6Ln[tUSn(l+ cA‹``>uv%Nem,[7 i"(a&D#*YƹDRFP&p^/7βW sn.~ƅS!+M <1L$+mIlMhI cz paT{~42^ X"a!;F쓣jOC7/yvA=Xmր`&Tus7&zH`2nal rLuٕ/!Q>|]u>3<]ajS1܄ΫzQ8_AV]Zm iqG{HB Ip}z%=NJ#E>tĸR v)Vq lkWHnhxl-tm6~Ee(Z#=!s0]93a1Y (|$%SKa(CbFZh`(ZG옚jWd2p߰vsjR*h. ZrjRW]E]I# V$m%(l:)id@'} y]͎?l3G;⵷s2Ue62ig&J]{>jPw?A9 -/:fj&(`w@yok7t?iQWAVmR2 T"N, r {h* 6.3izHYfzy+Eg>n?nY"ݵYҝ ADFz>?1idzc^GEkqP21jb8ӎ1٧K& .EJD67AllLc3o #>xi2z35Kb$<%4(9lJz9I}U{?yFM;=^_{z[T~{3 endstream endobj 355 0 obj << /Type /Page /Contents 356 0 R /Resources 354 0 R /MediaBox [0 0 595.276 841.89] /Parent 335 0 R >> endobj 340 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/ITDscheme.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 357 0 R /BBox [0 0 790 558] /Resources << /XObject << /Im0 358 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 790 0 0 558 0 0 cm /Im0 Do Q endstream endobj 357 0 obj << /CreationDate (D:20080722111202+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080722111222+02'00') >> endobj 358 0 obj << /Subtype /Image /Length 27134 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 790 /Height 558 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;."B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJIV=?3uGX_v31aѵ1#[\%="K;f?۱%8>dC(i̼[rJz+:#.#O׏#R=+a]]۲Jz)5[+fC}ZiFRe[ p%=ZKG}f1/h?~Ŀ%c/\ϩ, )\ ?U=<}ʼnLW֬TiIOV`{;.!`T 1R.k$kSs$~Ir?>/'?du3CJ_c?UK쏫/[=S$Q2:$NJ?]ű| ϫ=FTűdžZ~ )I0!9D8!:JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$K+3OSC2/e.pSc0ޣ RS9~*gak='C߰~Ss; g/eC˶z1`{\\#AҞ%:Y:WBv+_WVm"skj̈-kt9i9.^k5IաRS$0uK7&ח[ZaΨ =\_1TSk[%eCah=d%%=ZH8TbS˪wsOQRI$I%)$VgՓr&67.ݵ$u%}kNGOewxz'RR}fy@,l8ģ$c}hdu>Eo5nf }{??n|-JkúwN囝zWtZo䨧ygtbRUWVJyO{7 *%ג|g<-\,&ǫS4tRI$I%)$IJI$RI$I%)$IKĒS;Nwl/m⍉1>d[lˬy=5K?.3 UgՓQ˘8΋ɬ]c.E9[!rGF+}L X'LqscB'E3hɏa%=rKat{+^ʬ_X H ɥYK~m%%'I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$}lλFoH9c1ne9UۼR4:NݺS?պ_ <:szgSkl=jMcI$*}cS#%ciyίex^ǽ{ <$}w}c[WO9jeW"m[ƻQ>Liنszo}O6CmOdS}QY7mYKf5?A&= 8x?[~u_G[e]tz!sdpIHmd|tWb0,֚.a%o[~G%yMixJoRn#3Y tF̆h?y a%=JI潡!pF'IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\]:FI،uaظ}U&ioNa. 3=.Gvx7|FmW=߼w))?^r};d>hZԙ)Y($ӯm7(m/?O/K^azf'Tlnc9Q:G_ϩ[(v3` h_=kG V<1C֭:E{f4;.ƞQ0|RoK=O5U?/d0xG޺Os+c߭nq[$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRnQv&}]itSǻYԬAs>"JbXt>x(Fx8.U=3lWau,zh,HIqǢ}f}O[9%mƼ wVBz݋[* 90I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJCȾj,ɸt<5q30yՅ_LOn]9=VIIT:i;8=_~*)RI$tx-Ւk>o+Ug}a-;IOUc.e49!MP!oom})$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RG^>V߷VYVfRv_QEJx־}M>va_vUC~%ux9}K3"p?w$rke |?1~I`}_݋wKΩ3R?M~v }%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)B꫾h],{|Z)[j3Lkc9 IOgNW*S.ľiZ#&{1ѹlvǰQ[Dud{=i%%> k;^ls\;V?n~Ü;Cmn`귞=ex +=x_0Z cfxug2?/+UgT4cCy ΟVT:̋HjuX5k_/~ց3̌j&ECG8!a&9b;ckck`րց RI$)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9=KKY2NlNp:>,J>uӾau f[GwJPq(~.UmZ[eop=))+p{A).* #ީzKKLҺw\gPw6,sykIMĒI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJL5/y kDtBť9/mUT,y kZI$/wP9/պ Zuڿ/%OM'꽮U8םTxz^ѺwAgN锊if5sw.qV111qéQKC+<2JRRz F]5G7ޕ7Cao9Pbe}76U]W q tX3> pm -1zNFEX^RYcnq!~GP%dk$A-x u16 K߿6ǃ<2zIc 'enU}&8xx85O"[>h,ʭG.֓vNZs3pY-o>7IW(9#,G`2${]>.McQ$(RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$.k??'ݵ?\ޚ}f4r@xZJr~eX]v.);2-EB״Эebf^Sz[Cm4oG-̨|?nf II)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ `Ycic5ʖFEYcic5I\f=95}?Vq_8Ζ:`ܬى^,sxv]5[k kF;'kZƆ0`%)$IJI$SWٝ0 ?#X]s扏o:MbULh rs56]cw8@]IcauGTs H%6(*1nic{ 2gPu&/곋Xn.?:}YA.>[[}!GSo>, }k:JΧ${ڂdA +OQ!}YC3&Y:^EWY<3)x~jCf@WH}_#׸׻ѤJFI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$mZ1}$V~zOVoLG?9W@Yg\;>Zc1_Rnf) jsJwI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)FSm cs$%u,;>׺W1>Z;~d0#cfv~XCD贏ʘڪhcZֈ vQǣqک kZ RI$I%)$IHs1kÿ C2*}/-5-1t_H阽.:bTZD0DMr-T;mc]en9:[^Fծm,1.qha%:]>],{OBI( xxc\zc8Ñ^Wv0f߯q~ Mo6cKOJ^T.Kloo7zm$I<29c6Tm=dP;dU7޷3U]7W8jqtd3K)]g/!~)-p%ݒ1<nhG<1vdHTN΢I$j)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\֏.ƮҬ}o݉8pM,w@Jpdo^2'Twk7c=1g&g ˤj{?i^Xs3%}moӭ$M$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$ֿ6z)镌\iֿ 䤦~~_בkw<\so#=+tzgNUCvw'{IT}]9.7eW]ss:IJI$RI$I%)$IL-k}W4>v e Jqi f=lkimD0n ]z'P[ƷR\kpGyU>Um?UzMW5JCC4 e$IL^ֽp!Fdp-2=jEribt$Ƌ4kGW=C7'&7!G:@L~EY.F[2EҺ7Wfn)G&<}&8xqsSӘ_o;{"eV9o!"}2⿘xˬ%?$Ok$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\.s;B0Y;Fs^Ф??aS0lc4>?w ]?}Zw%{PA5I$RI$I%)$IJI$RI$I%)$IJI$RI$I%4V}6cqqob}Q9[w޼HJ./5]J~aQ}^r͞l̮%)$IJI$RI$I%)$IH2*Ƿ*m:5sAc<:!.&Y" kĉGٝ0 ?#X]s扏o:MbULh JtI$ Bt$N=]9}<=7}CRoufz]_?}*_Wۉ_T49_Z}?6Nv9`xZ|GI0|~Feh:5վWzvkNV;W3K+p? ft.bci>(?_^}^={ F]SXzok>ϝ󏟌tuWG.ӫ3XJK^ )I$$I)K>^c.r'O󴏇 .cg` 1='Ifg3 4$7NN&R3P8I~K/;< h!rU2:R7Tid?6/)']'J4^OP\#\4sOs=S=>ma?"V,r0DGbd*>|BкICz(~m?]-eUN4fM F=N_CbS仺lAGp2$n27>G}`u\w6zqi=?,KvהI»+]S뱡{L5AG#,`k9~!r_V2.՟#Ϡ_rdO.'Pj:weU߬~ضM#Z=/|* oQw^G,fv ##O[0Gs="Ht_NM,xZǷH GBI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,]#teoUox^]WƈI%9W?qv7c\Ya\ _G}e~~9ǐ~>AvI)I$JRI$I$$I)I$JRI$I$.?O֏9ewa`~.pCX};Ժ C[>0:G^qw{Ϲ?q%%: $JRI$I$$I)I$JRI$I$]z'P[ƷR\kpGyU>Um?UzMW5JCC4 \1ʽjs `㧐COKɭHZ"AIMI%)$IJI$R9+>Yidc_tk3KwUSIۓQbh[mz ")1ǐ<~/NM 1202upح.:M,]e+A8 ÓNPD|ËS=[gUxBsCk +MU>tcX`Up̀?z_5}94בeV>s\$|+uTs/$Lnj[]_>,\|k12,֖+edtL\o/znS0qr~蝼f?"?KDI)JI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SEޝ{x5uok>H?SwvXٟbt-ȫ|?S}KϬe?^k?7OI$RI$I%)$IJI$RI$X\:ӺA̠n˲15.m`%9=3~e{z8]`h˰Y?U#>t,^!}X?rIJI$RI$I%)$IJI$RI$I%5z-/3 1=hV/]ܭ.=uYր`]G/?';nSe&7zm/ԝ:6T{Nˡ9ixRS}$IJI$RI$I%<7[jOCT=[2FܚI)Bko>繁.D}6b,o_Wf?̡,݊=_'b_-3[}*?T?71Sٺ9в|Hb@!Et',RM^r,΍Kj{__ϏuGQ'G ŻϽokYgWq{= wzyXU?"LO=9!B[=GONvtI%#QI$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K/7EgvM/YJq>ރFVG2ac|jO}faGyz̮%)$IJI$RI$I%)$IJ\o}}XWjeʿJ|p]>ne?m]akqxug\OD|RSӤI)I$JRI$I$$I)I$JRI$I$9a߅i!>кONt^Kc1*e-{\"L&9t|1sc|­W/#?Lyj}8I0TI%)$IJI$RI$d~30 =f)Y5KMôѿ^5cE2q$XjX 82t[,}NޣӶs1qyWhjS! ŗ9oON=1 '+ɣ7Wi )Ƈ1pAЂОxSq=/9ktcf!'eQXk tܬ|a M#u$DHW 3K*Q;J'pZ7\:r+Kg=s ?%;uO`X詺}WcC:Zc aY1''e?٤Iu$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$.WLr-;BNұ:C*${!]\uҼ[~odŭc|JJzI%)$IJI$RI$I%<6^Eo-[L[{eLmU5h4.S_Q>~Cz}\+IJI$RI$I%)$IJI$RI$I%)$IL-k}W4>v e Jqi f=lkimD0n ]z'P[ƷR\kpGyU>Um?UzMW5JCC4 e$IJI$RI$I%)$IO9??XiqZ!]:}=W߁x\kkX7f`7Ld-ѯ8Tc2:KQշG//;+'7@J~ .J٫,k$j8T:g ^GtSǼqc$-n}x,/TgW?ܺ|,nNvŴd0Y[Rg5ics\ +1-$\aֻ_M@ų-mn״!6qF3;Aŋ&_ \GUyxzvS?״)F\Cqn|'G&6OPI9I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$.Ct?lg滱ɐ;ɏW^ށ҈U=o{BJuXSzVs$Y-vOĶVJRI$I$$I)JSΫt쮣wxy4?er.w[̧X]|n^ۉc''\ \6BSSCkh5SIJI$RI$I%)$IJI$RI$I%)$IH2*Ƿ*m:5sAc<:!.&Y" kĉGٝ0 ?#X]s扏o:MbULh JtI$I%)$IJI$RI$}oL\COV.WT,+r{ <qgrY=z;[Kmbҳ91gysV|նeYXμ'~t#,AAW\_X䎍՞zMq3f)=oEcc6ɭ·pU\k"$w':JwY/o^5P&qn%i*o{JzEﳤuP+xz֮OOK_:ZV}&ܒ$IJI$RI$I%)$IJI$RI$I%)$IM~٩6BN =e˜d4@*f-ywZHfEO弆>.ӫ3XJK^ )I$$I)I$JRI$I$$I)z1"@o>\CsL#^-9d7uW0GlU 8WKpOJOOQD6ܿr_e㌟II$j< On쮞ݙ7O3ph8/cY[|+Nqccg {?Oɯ$JpzOX;wdݹX㌚G#zwPuauV kVW5UU1]2>ߎ}'>T?FVx~o3 RzKҤUS.A jFRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)羾K2p>pG '#.ؽ|cmn:gHoG|7S$I)I$JRI$]gefC=;LYHȰK&>~UM`bޣ}um?i]5U2Mb[C<D$IJI$RI$I%)$IJI$RI$I%)$IM>n'Gʡm+w01i*Ur3t̷oasD J붷sC{K^j H Pħ0cƶCВ$I)I$JRI$I$$I)I$JR羱/7=1y_q] EeQf5֖=\ LjW^lܶoc q{Zɏmak-#PA,وr>帛kBַ͘|Ph0% e:Bw_蘿XzU//D`UYc|VIO7;SC^ޱ)+?7=+ǦeGC[jq9y7oz}O,acyGgn?/v3*u,Cv%tKJ\{~> "K9R;`7UMy8>Z[Ú-# JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JP8gQMG[US̓/Xye&Y{.r]+tOꙘxuI)I$JRI!e[bn_g_+/*5-~xe.%)$IJI$RI$I%)$IJI$RI$I%)$IHs1kÿ C2*}/-5-1t_H阽.:bTZD0DMr-T;mc]en9:[^Fծm,1.qha%:$JRI$I$$I)I$JRI$I$$I)Ӊx'/ZmZytUwU{|Si8Jl|s_\6eu~MCZ `tu\#;%1Gm))I$6VXh{ \ !sYS=3%\>y?4t~7Rij 1CqGLoQ cw œGiGca"r!ʮc5k:.vOO]`,ECg}ˈ_;,τ <@(m(yO]C1[c{w˃]Z~\:'i.}_~9? NbRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jy_YwcTO~ դ$I)J^v·_+3C}ZnISS[CC~t?%GlőA~t`1aZ)I$JRI$I$$I)I$JRI$I$$I)I$Jamu[깡kA{(bSMMk1c[Kk!{vhUv[:T5[;ʩ:ijRǂѡ%;)$JRI$I$$I)I$JRI$I$$v{]Vpb1,˜t4%; N aazcDr?>?0_s]fV>}&jc˨uExIn_Vλ;X݇vųՏoIǢ Ӵ( & H䎼'nu:;:N~9hpO:.o(G׎znO]*z]ۉ/ Pr~_ٽ? yz9Kk Y=/6>/V>abg ȲF[k\j{NNև:;-Uȿ7]##1_gִ݌iW$~' Qn0{@vs7O hnS31F&Y SF-+Ƕz{KnvZO1k2j c}vλ̜N_ղ4%l{))y'\w>}>ç18͟Dv))I$JsGbz.q{~V?Af :wRhogg͵rX{]>E]OZ]u/K$U5>4??c}cVikwҩ oZz{l{zewWs)acZ?5NHX`ɎXa1(!Y?('Ց̋pe[Zgd]l%m~YlF}_XClWY'f}"Ja%e ) ΡVU~]ΨnjІw6?S+\N[r)4ʃ-hq )I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$#0 p]Z0=''I%)d}o5:~zOWhTKæ liai؄ltG?-8XWjML;VZ%$g IOV?g Kw~i.Sw~g IOV?d7*?6}t`ŏ,$Irhmd%$d^n%XqUuV-x-pcM£}ac1TӄֈK%=K00SդO,gI/,gI%=ZK00SդO,gI/,gI%=ZK0_c}>O{SդOc^f?M%=ZK^f?M/cSծs# bsq6:a=  77~_w=,ɤŽ3`;Nv>[hkq6l{Ouޕq~NXe3 2>Nj>ϋC̨0wnF ߯&w 1i)ӮZfdr\K?/L:N] loc^NL1-s!'w&+gc,ܯg_4O>$Oc^f?M9^X\Oy n[4c'lc>>,ic:}g饻kgIIHEcW;?sI{E,*n`se}mD> ?H&ޝvkŹt\]ikN%߯&w 1i)\w 1i߯&}g'fNxT1uhfF~n5vY~o vL>%鮇Dž7~羨OvW}Q/m ppٻOh&Fǧ>L8B ˣޡwJT>^=sVcW۟X3jʲ,ɷ!ϳ<7޹)u-e@]m߯&w 1i oVP/ۊW9njvA~r2~qe,xTʘژ^xdqO]v(85ّzJz)5ّz_[g= OIr[g= O5ّzJz)5ّz_[g= OIr[g= O5ّzJz)5ّz_[g= OIr[g= O5ّzJz)5ّz_[g= OIr[g= O5ّzJz)5ّz_[g= OIr[g= O5ّzJz)5ّz_[g= OIr[g= O5>?oּf=Lw%=ZK{mܗki.Sguzzr_;?ͯSդO׿OP6IOV?w^秨_%3==C%=ZK{mܗki.Sguzzr_;?ͯRgmM;>ukXgGɿeԳ*vU8T[Xk}өޙ{vά>m\NoO;z5mCnE՞[E3{}˭/Nf o0|RSa$IJI$RnܟZK՛zʶ[vwz,Ȱ*k%sڧ-dmp )Ӻ?Q=:{ݍ[ Ien&6 cfn~ ,yf:n&F> 4d:6< s>JaM5c(cjW[kZֈkZѠ)JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$.vL*2k?萯$ToUI2m`["qu2tTJyO7XKc?VJyO7XKc?VJyO7XKc?VJyO7XKc?VJyO7XKc?VJyO7XKc?VJyO7XKc?VJyO7XKc?VJyOv'֬ƻMW] ӗӺ"k$u|2:#v!ߧs=z]M7ӑKr({lC#DFCmV؃^{Gu}Zߏk$cRl ;E߯9N k >&uKϰ?eu-E};T.ʽC1,`|Iܕi%<~Z'Ŧ?&R?RznִOC4]ZI)?>zwJu!6PvxN.gLXz^bu>}KYk7o%=2I$I$$I)I$JRI$I$$I)I$JRg5ik-p$:ԻZ ߟyAr]ߋǥ/IȨw՟p;S0,!;;I$RI$I%)Eeluִ9@ԒOyB})r'2q>o#%1|ާޥg-%1{Pq1hŧ qګ` ~)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)buUu6U2SAƳ2E,kIIA !:zl[XX-?T?z+sz^EyT2Asyi))I$$:,L=պ2z>;ο%7>}bۜÑG /E'Sdt]-̴j?2/V2iw/7Z!cήl)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$d;t.Aڜza㦫I%<8>3gU`캬ǰ<9fY f7FƯ̇4Sɻn.~'L`iu^[zGB=':W<8JJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$J_*ny&[KdrS}%o=SN;}>qZI)I$JRI$I$$I)I.{'SWvwksAUФ$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$AH:S/C''_wMĬ2^hQ{qXS?PK'~.$ͷ׏}]X\{op>kw<{1t׀IP}S v=,{yl<޵ֿX0o;7i[}Ce}^pUY0׳OOACa,]ZI)??%лcu{dդOu.?i8/3e\#=bI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR:_GW:{wx~3P zM`#y hWGrٸv65Teh2pujޭmə}Ze~qk6~%>I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,C3˫mkCce54Z I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$J endstream endobj 354 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F27 41 0 R /F28 49 0 R /F33 42 0 R /F30 40 0 R /F25 48 0 R >> /XObject << /Im43 340 0 R >> /ProcSet [ /PDF /Text ] >> endobj 362 0 obj << /Length 2826 /Filter /FlateDecode >> stream xڵv6K5 I'9L&@5)5c6)ln8 tX D8]]߮T*MX\cW܏U("XFVMN:jv-jѰﳕq.rdNTە`V#w/$Jvqj*a񇕈e>~L[c`ެ^c:NR9-ET? jCʸZmvǪt-Ρ{G<~;Gc p"@Xmwq9qבYJ9G횦C%~,!bR:=9je΄ $hٵ佾a74uYwE?022=ĸA dvӧ*,ڎr,l,=ϱYVw}U lىz_KֳsTT$ ^Jec%OCQ"ß9>-{\1]ST>yY^zPZdmerۡviy <&;xٱT./~)Yl`:a\pLELp( ̾y*}v$2"FTic MOAڂ9  >u'5Ub#; q%Wd+h\JjwQ+SyڷE8a3g! 'PxϚH-l|s5 B^bo 2(wϸqE`F;1x+3q%4GN5TVm+بhyϺ?<껶hر=71}/Iw]8NRŶTPB35 kvk0c:D-'=LucIDRb݋s2$N@MՉd)KfIm8i*gilI:`UDΣ0jv4o]ȳ-w%:-y;JYϰu\L`f _ !_gv/g$]X++JRef@4&`% Y ~qӣ$r d  #)1JGĄXb*< ʌeNj!3ٲ(w)9^A͡Ę/4b&0B7g -8suUDz"  h@k@z(&EC7*ꮠF>R&K#E·F9;оȍK~#_V:G\GpSIRJMmʩ69Q7ƙif(hX ]gO4krfVOۂ˟'\RH6XR7Yuv* H%EO!>|7L^~+&*WQGU,t(O9SY$))Q@9@X>+uR=۠v ޜ;zq{P1CVq(]ty޻ iCK3r Xd7DxazA]_^Dl' ,rk@ CS[k+bc8?cE-\7zOPiu`S|RrW@O'TTCZy2;0Y<⏶\( +B ⁚'`1o" Դ-?v|Uzn{,+S`PQi*zjsq [=)XNt,X5*z=vytJ_;=7ɹEH"u]I~B>FMo#q1UN]VPu`75'LAM'*}*&cRoԕNFwT){jN `5 ZpK½{ ks&-~(pBl -]X5:ݪռXӰf:K7t?TqVU:jV櫦pЬ S>L7%Hb-ꦸi\ =O2`[,+>w)h&Y>Ꞔ⼫y&Zr< Yq"=?#Jch '> endobj 360 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F51 33 0 R /F54 39 0 R /F52 31 0 R /F53 32 0 R /F27 41 0 R /F28 49 0 R /F30 40 0 R /F31 67 0 R >> /ProcSet [ /PDF /Text ] >> endobj 366 0 obj << /Length 2336 /Filter /FlateDecode >> stream xڍXI6_3ܲ(j͜ldq9d$-m-~2K7YU$|U2*ea]aTz[?~z!veXfqZea'etY~~ze$,uv5~E*+Iv;a0nw~yx= 2 <_qA,譭mc7~ʴL71e }?$i_3Keha3S۞L"^F#,JiRAI #tP ݩ_WU`'fQ\S}g4 l<~j,R&aǤ`CTFD'kyZPڛJa(Fq4ۓ4LUnp RAwR. ؍l޴L|n:BޟtC)o-U;sMG6/3B7pV\;YH|& }f*.rBef_VqNz+^dD0XڎlOe?!AJ?A8@70V?U|ܮ/D24(0``1Dxf<<%9Ɇ<.4Adi#0}~Lg&11J!%ꗕwȔVJ]31;.>!~&i3ӏʦ7;0֤) EԡoϘ`$Ir:+o$*Ώx^R0+L'S9)$5g Ѩ(RbqJe>*5_p\m[ӹ&>`$R}dhU0Aq 6 Pa&:1N*@X\/e= ^qSIp!4Õ j&SE/nYa+˅Ї^3Eq8H.)":p5Rt4fWܐ[0ץ \jmRr:,p 0s="R?ğ4tqpɐ]"5= <;-x"]"-hN(MZrljߖ.gi %JRDw}8xKN NYĘ:hM@[3gFP[6c ;fuь% U V6WxG0",$l^D–,YqcQ{ 7X85y/#HiXغ?Sm'&Sc'4&_lœM ˵BIX &F[ߓHBnlgRPE<ǪݶhG @7nJ7jWskYiZ5t `uB9z'Y?% /@S#o:u* >>^o 4B*HLح4d\ipF35כؔ'8nݱ;{ }T=.¤}uƾ& <9Gàc%.B߄u-c&QDE,;\T:*8i~}QS)E|,UW<9I89ޫ ~/H>t}>F˄㶔3p`pFCrSVVՊ"K!TljO[dyXsx ِ6-;v_|GDϡy'wJ GÆޗirj endstream endobj 365 0 obj << /Type /Page /Contents 366 0 R /Resources 364 0 R /MediaBox [0 0 595.276 841.89] /Parent 367 0 R >> endobj 359 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/ITD.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 368 0 R /BBox [0 0 365 177] /Resources << /XObject << /Im0 369 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 365 0 0 177 0 0 cm /Im0 Do Q endstream endobj 368 0 obj << /CreationDate (D:20080723131541+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080723131554+02'00') >> endobj 369 0 obj << /Subtype /Image /Length 10427 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 365 /Height 177 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,m"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TC"j [iq15IIIB&Ńo>oQT;)/ftڙX>s;nXߘ%ޱ/JnSힶk_ c S$̏YvR*},ȴ^{+BIcL3En_NXeE\=^a.=45ɖJvXu̧]6͇v=ղKkK׵M!6lx ɭ$rk`O]ޣjHmsuSXBJN2oxy:1)S{/i{=ug))"H ͥzA&$hoŁ5Ǩ,;=:g>] )*J `,pv ;P.ݱ'UhII@2_eV<8"Ykkpqn5sKAwNEy重|=FTNm"Kml6Of󔔝$;e9c?umrze9׆$ )6Owk{ݕU {l$VX>$m`ևmѱۣ|B$1YXԔ$ 3i[i#iMa w\L{Ƹ!{/is?HV~Ҡ]gn4qf%'I úcӭqФ˘`c?@wN]Wch1>}cBWeC=Ǐ%\[vh.hȯ"}1`ϩ[ke%%I-m;dSil\3lyʝײ<Z)$NBI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$oQh0x8QyWUPn`l}4c@"MnWe|؎cY*'v? "I$JR]%\{{[mnwU=M eUrJLI$$I)I$}cVmD $Z$VY]5\ s`4s[IOA۳]M:.<+KQPlѨl9WG63~;8$yU_kG7.r kt2Cѣkah h%f]Yu:K%iǴwr~O}5Xn!yeMvQ;k;MLjݧYt:N U]'B]UfYVC9!'rgQg(ktWowο*zuimv1e5]kǨp:ǀKZ\{-?ok:,ZY].}gc2=iv*Zkv1cop{9MȰl;[\ :U2_}xk*;M<@qJ?쵷ke5axX3@{AH izj:׏6zU䎳+`VXbl1ַqhf׏eU H닜MOx!+:F78;ZS}\ sƐ+nhi"\qh]4@ߥNk3:f]ʢz021fSOwk>Fjviۤ]]C칍ߌqd[[C($8 2)%F m5*I$I%=Src-fn?_mR?bUCv_Oɹ6>Bm o=3eqM,'n|^}Wr_cnk }ŶGvV_(YTI$!),۹nnnϞD]Skij_ ejJLI$$NPdu]0R54jZ4k`! ʁɉ>.4R5{\uv0kUI%?;/G+:;Wu3.c#$5w5?+@gCGKK$?k:jRƳE{9?tbKƳE/k:jRWK$?k:jRƳE/{9?tbKƳE/k:jRWK$?k:jRƳE/{9?tbKƳE/k:jRWK$?k:jRƳE/{9?tbKƳE/k:jRWK$?k:jRƳE/{9?tbKƳE/k:jRWK$?k:jRƳE/{9?tbKƳE/k:jRWK$?k:jRƳE/{9?tbKƳE/k:jRWKcSYg^T:ۮsۃ@:mΏ#\o-4;e,0wk%5^q!ʗ67?yUĒSFzצK|'vpדxDʸb21d4@|Hsy`?'dI(_Ҿ*&H4ƇGIJI$R^k8n9ս"v?y(U?IJ9|`1>ėU?I/x/ʶI#l{{/$ IU?I/e+߁}1%_lK I}/!^? /3ǂg__lKw _LIy<[?ǂg_vWbK*o$<[?_B^gV|$*o$ݲ?x/ʶI%V|$~ėU?I/x/ʶI%l{{/$ IU?I/e+߁}1%_lK I}/!^? /3ǂg__lKw _LIy<[?ǂg_vWbK*o$<[?_B\FFESKZZC͛nCc训G(hC$d$,j,b#}+[5YXk'+$I)HY n0GomEU}SK}۽jglUg%6I$I% nFׇMv#ͦ5 8Ns͒y 轣>#e #lAiǴØÚ{%V*bZ6<;ŤԘ򬁸]`I Rr*Ԉ瓪I$PW:E̮hmAlCsΒAs}P$ I_蹸cjYbGV[1iT[rZ3ۖ݁Cou6}RC~=I+/J]ոzӶ=)8K?Tmsݒum.&^ y*(ZVo^v;E=*vŎh{ԇ #Ժno~n#WTvޝ[muW'椵`zx3#+%~}S.-q=CZi칷mm 0}D\ w[+[Fǯ.jnCjvk#ck fX%^V]Xvƹ4Iѹ݆xJV%oY+cÚw}o6 $k#LXeT\T+evKe`e D.F08v5u:" Z<)_lKq7zGq X="YWz[l>F;CQ:u;kj{K_E5Xoј2׈VE>3g~Mh}VV=s[kw\h.f#~)+t }vhT]r}+`Ȥ$HI$J{M)eQ1zM)eQ1z;/hmE#s\MR`᧞Q/ی6=BʤI%) "Xeuc\"]v6ߢ c7 )"I$I$$I)Ց[GPAx+3'f{WQl/t VJ~vIqX 1'uԿ?ꊮ;$HKcuLN[\]WS%ίdf?o'IFbONĻ6]Xёz譮]6l79ޞ$jM9XP1YxevKa]]}wgOڇOtGL3,Σ-7[rb̋mk -.ffuZ1rlgKel~``lۙVE \VM+p{Z湦CFu,q{\9KNu>}U}wCXdQj[k*_NShȮ ~l^~No13_bꅕ.!z c⹚u/uvV=sL4AE/l_5W_X(՝~}Ř﹯cs1jB~5}D\Ԩp~]u]%YK㹸Dk\vK{0ׂ7NŤ-{[@sAknh?4a;d`$e.nwXZ=涼?Gq̻(-#&Mt\.i#.p}sI4<)q}OsZAXش|}v=ouуnFV3l!Q5[v7GK0᳧tۓmCYX*c7n^c-$(vO[fܗPۼzY7adpz46oM}xTdZ+~=n9dd}-s688l+ $3\Xrk7EUSYsqDf/ ܲ2^Sh^Gk\MH1lc68\OĤ Te5.}3-G$Um;Fjqmvd~-kI.fײ {G~ }o=67[Tmf>2.sqn,vK*yk'p2lc4Z(FDI$rI$>ޣs醳V~F=z?uoK/ыUg}?&/nvE9u]ZXm< ~`Cfכk+\h`ak|ﵠ)hmuZiKJ"I$JRe/Eσ-c5.cװMW29%'I$RI$I%)$IOKQݯr]siyElԞOP?V ?? Z^2~?V ?? }?UY~|1%'gA/km #_u^2~?V ?? }?UY~|1%'gA/km #_u^2~?V ?? }?UY~|1%'gA/km #_u^2~?V ?? }?UY~|1%'gA/km #_u^2~?V ?? }?UY~|1%'gA/km #_u^2~?V ?? }?UY~|1%'gA/km #_u^2~?V ?? }?UY~|1%'gA/km #_u_ޟwM6;lk[13gkBJHx2klͬ=> o^~;䔙%[^SۻvBS}",Ƥ [e/nMQ-3clugٶ5ILBu{ٶGj٬}Oz~ͱ?GJNԾ.}1nru6:ïwkV$i UeOmFck}#k6G%VU@ۻNQ;IO5%%I:Pd3lֲ;u m;~%$IS6fw?l=hPf5Ԕ$Yi7nb~s5+}Zc{ukRT+ױ:ïwkV~uc[;"Gdѭ%'I,;ʀ#cq8:w;$*i}D˧&>X MO⒓un[c3;~*kuMi5)"H Ʊ^ٴՃ]K#eS$[xk"}w>vWX\^׺&K\;CG()I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ endstream endobj 364 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F51 33 0 R /F18 5 0 R /F21 16 0 R /F19 7 0 R /F27 41 0 R >> /XObject << /Im44 359 0 R >> /ProcSet [ /PDF /Text ] >> endobj 372 0 obj << /Length 2331 /Filter /FlateDecode >> stream xY[o~J5%}mj @恑hL:"7R2h` ̜w:pi)MPgMav˕b!+m-.\lfrկ`8g+!FFZ{\}9cX,Xߝ}H ZPœ+]!%Z)XpCpҚPXys$D0o4_۪o8x8imt-uݜ5KW~K@=gܬ5!Y6_$0E0bBT~uו~{ċ6F8+aZͣJeo YS7Ds#&Tҙ-] 5tL%ƋiD4̠0vhNG+|J܏;Ba!w!&iɟ݃23ŧ3M٥d"یS >SɂMu"8ZgU6y,WA`(JDm>1I'K-8$O%#аMWa7KF0-b'~F5v՘PL_=O{0&i8F#HW _ G:}wv"+N$suN>U@5կR fqÞ8+&)EgߋGiȷ0Q4gښ_Dpd- R)ҷ.5̜@fa浴> endobj 363 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/WFS1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 374 0 R /BBox [0 0 877 315] /Resources << /XObject << /Im0 375 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 877 0 0 315 0 0 cm /Im0 Do Q endstream endobj 374 0 obj << /CreationDate (D:20080723164414+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080723164444+02'00') >> endobj 375 0 obj << /Subtype /Image /Length 24672 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 877 /Height 315 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;;m"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$_eu44rSSuY2j5ZhA )I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$/{ki{kZ s*8eוe71VniW6~~]Rk1hΟNߙTO~nqCΣ?q )3= Utِ79m0fBIL_]?3j̛Ƣ,*-mg_NvWF'#Wt|l:Ͷ(k8Y-:AͫYɥb0#)3=07KfyIN?]~5rw-omtsI ]1n9^ W-̦(k8B}h_/e(xuO7$;V OeCAGnOSʮEU RS_aۙ+Q0r׸@ԀIIW1z>ORq򨭷ZJ^KE,{F|պNԬu;v\\nkap;ꅁV:]{^чM{[0{Ss+׈&e-7An1ٍqAb]]h8 d9ፍ]H2:R6΋ԱlcE74YSü6F=G/9QY]-@xoyճ h:T9ʮvc01`TXXd(>%= K73o8=8zU;Ele-s8%eNdd,j:&CsXocv4< 7u<Lmn c_};5 4$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$INO?'ު}IďGtԅo'oU>G:BJvI #'_k(Yk8I)g9is $^o9YzcXֶVaнwM8}74W .[k3GRM:ξFb_y sF5]őV/A]=ܹ2QKbdӛNf9VEmx9(|K1/N'cqƿk, kuN^{պ:֌Wѐv> ;LPC$~7~76`~X#*{./geS֍ckyIIW݃NKbf`$$I)I$JRI$I$$I)I$JRI*C"Pk]NƲ7Ycs[\d`Բr102Yn a wFv>>>}l}VC;" ^I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)p,?Zr񭢷<洸uCzGH]eG"[ZI$=cPO(l.u.2=l`7zn 0cPi% 򭤒Cg!VEݰRO 7Q;t KL澑^.UwCjua[."f$L.ѺHcծ:[Cˍuc]Wnxha\]SPv]s[SnD]BI)pv> T٭cZ`'7W?(Fqx-ևuoweJx3tΘemwڭua>Y}nէr:2/\F㓷^͖X: '@d;HYu&\ܜYwCMZ8'q'-"3M=zlY1.;ϫ9Td`CMsS벟5v]"I)vF~V.}̥-|5qΜ/#?t~cqin#YY9JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)KoW؝FL ]U^:- n!txwf˃3䒚nUjk1h>v]ypپ:,>1ȹqŁ4VJsvPǬga15s-Ʃͳի %:[)KGX_SqwJenu;EPMŞM?r{]::, |vp(]'`NOLXky$%='Tu,Χ]h8ߧ>ۋzЪp@fS}^DW;Cgu.mqӪ7t7 WPh2=7x))[O /ve1;$ӂr/cїYQi$d ,Ļes}qD7t )'@WQGX9Nmg< x'Px"?>S}u~veэ1Leyc] xy-ͤ0D0<6=~Vz~1G[r&G ))B}FKr}6ch3'_DֲQE7cZa$VʝSzgNf6[ZY7ٷ0ە_I2}.5+=j wIJWʾ[jOߎEm׵wckd=LJSұvGwe^F=6jMM։2aGe2/m5sZs~I)Xl]7?3fܗcq \Wr܇[(ɭոʷǧc:ުh׏iX^7VE)/3y nY̤1P4ƮJzlNoP;ҺVYQLctVXt+ʫnnmIN:6OO׍UvF#l ԓcoei E̼;Y}[B*Jxfu>}`wLɿʱnʚM״ǻ'$BwS++# 3]Yor ͯyhX h^պnOL(.Scۿcx,o8j/R3#"˱{-Fݻu'X 6I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)gg^S7uJr1:pl;NZ)$$I)?O?NaSyԟH'OHINI$Ӳ12+{2(/p?g[u<ɞ'.SS=KX۹ha"Ft$?Tfr:[!g; mLA#k$JY  :UѺGf7;^Cx!V<Ic!XXoΜ[3Xi c_]Mt>pas < &o_}0mm!pk JLnKex6> q$.{tϬkq6̣85?ѿϿuС}'&MM/ǐֵI'JanMtݙGrƺ7 =7n==wwJʩc2u1hlrply[Wt_Sdf["+i):=wd:*UpL=AkzST}M;Jps~Һ#eY e[L-um湧PZF&˩U2?Q^ ynTjulnNݬ-6|8INw\>^WP*&Ulr{otC y9szxn,>psd/$;:`a5lgunM}G*WdE [q!%8On6M}_f%/ au7.amu^WGCiϰմni8G;s\H#PAQr*u ml#RRO~z anCc&kssS]guFRf#. ,s V&Fek}'6ȁ[XX_RĻ'u]5<=R[=IMG]} UhJϥf6܁^o;?t_3O|1}ՃҾKm{]=%׍nHx̲v:cn~emw_^C.O7撘dwNC2[ X6=/ޱְߑ0,cۑ^S\ Ͳ~ǡcVEO}Ol.h[M"9űƲpז~$=GA9u1ivs5&Z56n.^yc]Xh,pP;.=.w0?t8Ǎb4Kv7] =dAc%71ONGUI> ງtΰ3:g \qee {vSÇ ųFsz5koxķeK #$]%}UЪ4;FGPNYͱn>{D]\ Ȯϫȶhy|U))IPu)#f;͌-s~Yӳ.]XSd@;JzT^ 7m^h,,`n^*֏JӃoSmoC$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)?O?NaSyԟH'OHINI(_l/bRSTu}F]MA8NGec LJM2!hx +U'r3ZcIJI$S_tֺwVfFoP~n}zmS`k ?^⻨}HxK)k}/7W1p6vWSf66Et7Tnp4]COXAi!%<G}h"zRyXϱγsCYn=emyLhtvwjORiWenaAk4s]G|k%k 蒛e+cgP&teg9{KAIO!+TޢXP\O32q. : m b1ߤq VسfEaHײ7amZ'<^ٕcՑ^Cmuf[mr\w?IhpJhuy md5k[uzƝoPSlc=mbpatģ*S`zoR]x$p %%6XW/Vw]oP9,4}g28[ Ƕ)>H.7*CGٺ5YUrsC>"x>aZI%9LUtn:`{ 7}`ѳ9=3tՑ\.ChTR:.W{Z X׆a:3q1k[-w"ZA }UyӀpO"NCuIOBY2+<5Y{%W22ƷwWvƶguq>rF͐Ck0x!%'a;ZFx7n@t/6޼\|ZvOti$7u{6=y4?mh}lN~tϬ"hU;d8G I%0rj*8ؘU 0I2Nր5X__Kꬿ/>ֻ' T6G൰qo2ڙ׼b&d+uާl5zeq]ҙUnA-Α~}h*Nzֶ׆ YXcssZ;2}Bj. džyJJqGW~kpC%d8@Yīc'Dc)+p!65Vvs1ڵ!Jڪykp?"}e[*pk,cj'iKt^Ӻ>;Y74ޝӃOŧZwX(>.>dg[z[=>H&Z,)x))?DӾّc=?{|u/]Q2@t/PNhQV^>)}kʮ[`IXX]{krW[-{k9x[CosRS֎_͜0Mwg2zgSuS ƴx Z p麯X}VR犅.ֺGWiwKͣ/h lkA]g 2mi;it+;~b]`zΥߘ܀Ͳf9tk^ǀAPAVs~}^f]yZjv\ʘLJq2ք=?UC#Zq) 86ƗeKC3oNbͬ~_\f;On ƛ&By2:_S[r\Y'xe%9eыew}XݏU l#[tzX{i/pf~K/֜ ~!~d-.PYS/[xorkט+cn~\큓͉M%{AUz 6S s=}G>e_^9{'n ]wR9䤧}%[ћUG+,Y+LMgP4^p2.lY L%=BJSnwٲ3=(#=[$7l\_Z>31rKKyXFտJwTInO7 O2,m{8|l\\K8=i))*I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JRϧ*}5 hlhxDGYV?77zbIJI$Rsrÿ6Mx>qmm.1$ gaSy)*m]#=׷{/X7F_&OV3*(]{vȧֲ31:mX!, ^?͔ӿ+_t? ,1rkƫ*,8J2JtMYEOV~ִV T2-rJ}:Nx{j˭V x4OZXR#?!m.w}O?3Hȳtj}.$阬dKFuTiҍm̪sg 7hqΥZ!G^mW0zہe.8wv]ݴ )ʫktmtenկf3"?t:wSuo\,[>>-VPȲ6I#OIN:;)·K%Nn9$ӿ++c5殅թk64wsᮜhY_Ѯw))v} kח]s:V1մk-.]NwQX/NHi\֗~X}+$սtNk^ǀAH!%5:NՕWR<Ӣ>_G׍Z5Jka !u쟭xAi^NKAӰQ?/}̳f6nLYUK_tﭝ?3gS< 9mֳRSeu]k \ zGO~V>-ַc즶6f;w%}ܚ-#YD9OXwa9&^Z5i%4̮.-cb{'spybu , TZz~}`oFMmK<$~F yY{ VNߪNQ62KLsY+}W"~5V[s\8p$H!%`]lP^?u ccb׋7[U{>~+86VGP?dS[@Ws 3F=DiErOYIMw4mw8s+}q̩XmWaw }o}+?+m9ps+ci{|VSWd_X1:W} e;I^~nj`]wuzmxcf9YmSF;ٺ "JRI$I%)$l[iv։q0Jd?CX?R??%=ZK}`JsTk$nYϬVo_lԱ?`=l[S71u 4w))Nzo/Gb3Ӧf<%~ﭔcmF^@JtoCn?;P/czoQhQ }fZy8XVQ/c+ѤX헉'RStOJn-$};=Nr]s.U?7jjV?f Jln(H_Vq׏tN]_N߶s i ??=ZK}`JsTk?'oXϬU>;oڽ\k[ wGrC?" A+X>ұ(-k}J@ߨW?7jhƧac4uf$S7gTx3nr7ui-Jv^&e[P9U3@U3}On[-"\wS_R#?!m_}]鸟zG[=l|=?k@[A-=}`J%>K9`*Jz_?6ԕ>Aa_[۹P-"IxIO &P$*{2h;lhOq[6ߚ˅{ 7mq^/GvSF;S]JL:GR{!v4ՙ]$Y 8<54FRQK!eF-ߐGMX}I 8Ͻ%=_J?o]󯩟\g}X_WYoRs}`J%>K9`*Jz WzDg" 2w(_ϬR}`JEؿT񯢇d@q$Z=;au+]X7sac8tVծ>?:KE;3cv(7f)zvE+c[8]X_Ϛ4c4u;80`k}`J0qW9`*_ϬRRlߩ[wQOtmS$79=7.F*l |=??/ԩ)ྫྷ+;cɽۋRW3z٨ߓuUvpX=F^wD5[Q>|)3Ӻ'Jk=YycscwXa Xb1Lme2E/Vï56ǹܥ9U3IO]+Y?kjϪVlʯ4VRY[Xkو_[e7c~}/_ӷvp?Ԩ!=6llulNexUzLunީYc"7jiou?KkX:b7jiou?S-zFWaN.`hhlFt][c7ٝ9pm^Hmq-ׅ}C/gzFbf_w#P_Ԩ!]3zRVD rxY{_UݩG>K9`*JwVGP02"qcn @;١n埭cZH1 v9`*G"տxJWgY5K8+@88KH BX#;uYZ~.dkw^#;zOOX]"SM$Ibou?OމY~e%se2Iajm {f״DK]؅9U3Ks櫩?f_gsۗriꗷ>sZ opFvl}b4V~; ^A,,-Ɠ 憎Zf3[3ϷL_WӖl6NQ??: ֛}XH:{z6_Գ) N-t>K9`*Jzk5U2يk5X6s ?\>aZZ YϬV~O^6f}J근t|eϔUb5簮._/ә::6[Im{m CA]YJzė7u.XZ1f馶_5]Oa4R$7jiou?SC=ܯ*ngYGUMn.7궰i=U??=ZK}`JsTi.S9`*_ϬRSgm?WOK~WT8{s7W[Xٴ3+_Ms,p!sXǂ5< M]/tX>F.V>GoSi.oO»@{&ODI%)$IJI$RI$}c-}c$N5'-1 V:Gj Slsˮ鰽ʋIk%Z !%4c;1Y٭JCg@~#ַm{]^~hW<~DwEԹ_T:r*}&OLZk3&OLZh!I$JR?ւ?S_W<~Ex? E$IJUzoCWə9%=ԟH'OH[kO$z?-I%)W~OM%XUgIIO}VYrY_U?ꜵQJlmWRێÚZdj?%e$,ŻT,Ż}+$սtk_'A I$RI$NbibN'w>ضJI$I%;?3B?ծSVG^I%)$IO\r?Y?W?܏JI$I%:/ù?k\OZBI$I%>Q?u;e:GlRI$RI%:_Iv.qIv.)$IJI$Sx9JI$I%7ŗ}wNv1vˉ_9P $I)I$J|=qS?ka\E*I$RI$/5O{+\7>]RI$I$[ۃ-b8 kֈ?U1f> 﫦,¤'tƺ릶S[]lc@ hI$$I)I$JRI$I$,tݑgmW[sV։$J|7bYz}52% 1GKRIOut>S]Mf#ƂshtsukX9GcjaSy+ST:/ڞaUo[;jy)ju_ԲgOī}m.x& ^պv~Mw[[5>~𭤧;VSs]x-s\ \RI%)$IJTzv]TYf%c skp*I)pv698 I Nk`^-̰UE 6XpS?:PuwI/ڝG(:$۾S2joumlqxc}|E*H9O#vtmocI|K@|׭__cm]-s\$9 I$I%)9~C KN$FtAqfy'I Wju_TS_:PuwI/ڝG(:$Mem/{Z%0*?T陌L/e5cH qRS柵:PuwIBԬ:/ih7INLl?=3.uuicwÚ!oJRI$I$ƺ_02:WuokyoxxrKRIO~?Aֿ $ju_TS_:PuwI/ڝG(:$U$?+_Nͦks ols I%)$IJI$S=[kVakH Nk`^J|Qn%SZ7䗦u1Ӕ֗5\,!c'EMX)n^O/kX=*k)g0Nk`KQn/UI%WjtjK*}!Gh>ߵ:PuwIzI)ڝG(:$Nk`^m[º{$9:0/u^ƣ֪ڍX求em.M$ju__:PuwIzI)?ŵͻefad*S2u. 0I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SO 緮OtޯGLo'74sϬ?O#=sSnQri-]5Vv9gMLhtޑ3zN{?m&sș>I aUceokKX֐KZpV7O7}a.MNq+¯kC^]e:w?L\MxWX+cg e%;i$JRI$I$*=ob3dSͮ-M 5gP悯,Ϭ]7/a`Z|v5`.k= 꼻hz%8ggt߮U7/@P Zo>Sun=:сemnpSdl L{7k\N GQ:qۀ6Z*{m*up0k)uSjc4Mo5۟7@ ;MzSI$$I)I$JRI$I$O}C:P݋NS\䲗ov;ArѾlz;u )s5"Y/n}S52224o.qu᧑'N𳺶1_]M_|h};h x>7\G:Is=W åmm_mp $IJI$RI$I%)$IJI$RI$I%)$IJI$RI$bl ;#ebdo:OS~6kӳˎ=VV[ow< +CgN{0sSkK`֖V95A9g3 UUr[Ki{}6V^L ݵIN-mlv湠ֿ\pr$N:FNm}^h́;A'S 4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$c&gGM*ϴ&#Q,cq:/,#lv.EXX).,`*)v3뗚۵7k`viGdf#engYcV6z;{ ))R\Vk7 j}'K͏柴˾@wlNnti)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$?'oU>G:BO 緪R#?!%;jK+'X,ΰ]_m< 5 I$$I)I$JRI$t ݕ0o7v=v=D$IJI$RI$I%)$IJI$RI$6e}33#.UhS[Y+{~n: ;FI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$;}x۔U[X].;s@.2ϊI)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Js3>rewP!7Z͌hΝ jm52Ɨq 7=q&TIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9X?G{z'= R?O#=T )I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$aSyԟH'OHVNkGt:Ytqo&Ccs\Kix8tWjYTt۾˅5jXkงIHINqbڝnQ`չa}ѮowY'OԲ31Xnke1Zv7{ܬF8QT$~,ΑMdu9`5cQX5͋6~ZURLJzmv;7>29+os{6Dni:Is}Kft_XTddzxY7cŬ-hvm!r+s)Xn8TvKZ7.k ۷))Ir+ޏz.˶z>sn,cOu'/7b9U6k ɪ\HOdi%u[~QFPƮTkMC*xn-s탤%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SO 緪R#?![?O?NI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9=wu{zmAxmcx914M)dCOڙ =DniMU2rNW^h?W'S!VTNXsuٴ45$JI%<T>g֫{[E_,]d=޺k1Gx;)k]ZΟvKvUYBbDUC`wN\t(?KEt/r2]7I Sypm,qc["=ak|C}^]zevU.Camּn1))T=;'.:RSMo26IH]=^Ѻ__mu8ϵԋnkg5غSѳm;-sp}nk.6_:}Tuo2c@M'j8Lg ԒSS 1Վ6[]|[I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IM.M?n-c.sp|_8}Wx5ĩVZ4Hp<JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I) endstream endobj 370 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R /F28 49 0 R /F30 40 0 R /F33 42 0 R /F25 48 0 R /F26 30 0 R /F29 373 0 R /F18 5 0 R /F52 31 0 R /F53 32 0 R >> /XObject << /Im45 363 0 R >> /ProcSet [ /PDF /Text ] >> endobj 378 0 obj << /Length 2012 /Filter /FlateDecode >> stream xڽYM80rk%QJd`n`sP,9ƖKB~X,æ)WUH,X?|}0⼪fҋ?"4]|Gw~DC]tvfL>>Ҟ?VpSiv[4HC_/("f [ey!$Sjp,*mX̄X#&s9gnu׏}t '*a_>NE Kp[8Ü%jX?e,*%@;*c]!l fdk7X6RT1C HJюdyrIP2/|86A-E@ֹLM[ZAft@C-tSE7%d<px2f*pe hqێ:묢FCrs&u=LrGVoH yQ$1xLpB{yF4Rj5ZW1gv]놶Mlq.(͚lx:gy1y QKV({mA'Yӽ؄;96ݒ^ė֤ vlq’AO]g` z֦u9D:QvepZ uBj^o̾禍֦@ (#5ˊ[MFaB DGNi&LN50yHSL0PI!H8vh7P:{6$mIŀt;̨a0S(B3Qr/hu`ٱ-&dD^|9C d jy~J14eR)Yt`| ELGs߃cglVܿ' Č-rGE:cyTAllY2\C nEСX74 ^D1o5$ endstream endobj 377 0 obj << /Type /Page /Contents 378 0 R /Resources 376 0 R /MediaBox [0 0 595.276 841.89] /Parent 367 0 R >> endobj 376 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R /F54 39 0 R /F19 7 0 R /F27 41 0 R /F28 49 0 R /F24 17 0 R /F30 40 0 R >> /ProcSet [ /PDF /Text ] >> endobj 383 0 obj << /Length 2325 /Filter /FlateDecode >> stream xYQo6~XKIQ$CzzMrhһB#i~p(p^Q9 gՍWRۻW%Ҭ,fu[߭7RL7evkaG-j< ?1+3[be.UNKc~xš3_XmWvUθ0ʰR)h׫߮~XNjZJ[0*LP qgwAnM(5V!WyJ,XqP̤FhNn0m}{qf;Tm_m[6J efQ:~kW2H&.lU|pJdk緧>=} nУצȮDxH,a|g!͚sِDlE5ߝq tU;B,54'īpٺ`C'r$6'J?m.5 rnHhyhSӷ`>ӃcCqޞŴ8!f1g`FU CPAx3a܆!v8Ό!+m!:}یb73'46` ϵڟ:T2]8aw$fstR>|K82X0I[deK'iZr=HH*894.Ӑ(sxДcg_KFDy#Kq 1渺D(܌Sk,{9d>sK& @wڇ4X{"3ص,@F=Rۅ_:@1{(>pY,Ii K?Yg3 p,>U ^d |<p3Ý 8ߪIn6H26ݱj5y^S=` Q"es8UwU)-z|I "Hl']fgsq&0nbQ/ѵ|o)a̗=, 4/g'`P)1aUd+o d̽BCU}rtJ"MwVvI1 3\H8v! bAu{6BOYaO_3o2ߐ+x# ^Tfn0Ē&⡫s Ci Vcl!jRla +Jil(I%EApȱ4O\M\M)To^Jy3x cfqc Bt49RZ>o}pC9 IG Xߖz6q8'0PӺ:T۶ہ}GE~3ȥ$R*l=uOL +F-n~ߞBfˈ{'-ѰO۠龍dmۜT J#I`&p@CV#9ߪLUt#j%C|  WgVxL)yߧB`stMRHn5`<wyYƸd i/ב⌸K$Tcd YQ V @B'L@Kai􍙖 !b,ag܇ S68a4,U+R/j G8r..~ R<s }i"u՜2M3$fU24kZv3Tu"ώzE/NLoBT`+BȜ9RɕjF'}X-t/K-]LfZY B"v OGevGB&yD8.SS(݄0S5o1 #%X!"3ԁ مE7M ϛh"Ԑr7+A{Q\c endstream endobj 382 0 obj << /Type /Page /Contents 383 0 R /Resources 381 0 R /MediaBox [0 0 595.276 841.89] /Parent 367 0 R >> endobj 379 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/PatternMatchingWFS.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 384 0 R /BBox [0 0 830 764] /Resources << /XObject << /Im0 385 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 830 0 0 764 0 0 cm /Im0 Do Q endstream endobj 384 0 obj << /CreationDate (D:20080725115354+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080725115411+02'00') >> endobj 385 0 obj << /Subtype /Image /Length 57544 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 830 /Height 764 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;>"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$n?Y:XFm~f[ϧ쟣%߯&w 1i)AĮqi*]lm?ctnRIr?CO 櫳-f#lnhx{AvBJv<[T},zlx즢:B?K3+ٕ]ӲM9mk}]Weoʱf?Fx/i$s$=T$:Eٌ =4IOB^Y Ϋ, {lAϴ0O];Kg~fn%A6z YJzKnckky pc'@Myj_V*m?cSm,[u6Svnwxb;-5WMw2sCU$ulN2:qpqִ.M9c}9;9+S$ qk}_׸>a_/7/P?+ݎ{\O 88|!%= :u<^, u0܈:80#o:o}]G}NygI-;]J0ޠ|Tcc8|vI:1;-8en ak7SGNK,p.pk+~8P˟ԱW1\oum0lp#Ohu%sS_p<㤧I1 :WanS:.~t:,p{2Y}W1^aU_֚qEgu:O[NqzJz@~]XYK22%[aPlq%Ouq{r0/s} Mq>bz-)*smb7UV"yt$a$rߕ^5©5cMq/ ?II\Y򳱯禿c p#w->:oSĿ qp^*nK2 זYn5_}D4K4:knjϭ +fN~58ecrƲ̆m @i~߮tӛ.FI>ݍdsI$JRI$I$$I)I$JRI$Oe:O~uk_ dSդI)I$JR'X{rhg:Z<u0)?ۤwLW7%ϗo՜*뵯u3_x#wGl;0:-ǴC5؅WԏWәj5W [8:ևľΎW`edauwcun݆ izv[o^rsnpyl&Uku::wcf f5 Tr>t<Άm>1Zy~]3'tה/;5uq0ԟML ŹwҕJl۲m8y^*iZ;Ѫ!Ύ]M阝#aKLmDh #EG}QXmmgE}c|]vIO76>f"m&G շ0˻gUoCy: 97XJ.u9}2/ۃ-":M@s SuAjsnL d=ոw{ӵd$#7\yS.jp`cD퐹7z~7՜ڲriِcZ[PΓOGLMvnsnWF3a\۪uCfmq3Juq(fN%ڜu>в:=\v@{ 4scSаǧy]K+3qsOs#q0O+a%>/0NC,\#V;Z };vLjt9]W=O tAv Ik  k@?XYhM.k7xh3SxyUq~;sX~VzYSC2q-e%8x$UcSаǧy]K+3qsOs#q0O+C?ہ/lklot4IOffVeկF\Ct!#OW~tљh⹥ֺzEMa>7GՈbܜo}oQG02mk21nMG||k/,Ůi v>=?eb/Y]a${yZ9cۗ]41X\ )>^ߩ?_(zN00VIv]1t[ԞldXsΛZ$R}X,+-7oq \'HLţ;,dmd iH=S=k6 W差}W(9@>euO=vW?*%cӍ.hV~o}"adxINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$Oe:O~uk_ dSդI)I$JRI$I$$I)I$JR?ŗ$?ծSYN1IOVI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$&sZ5: tR <WV-R]<#JRI$I$SNEN6!xkE[ ?b9qeD= I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$Oe:O~uk_ dSդI)I$JRI$I$$I)I$JR?ŗ$?ծSYN1IOVI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$Oe:O~uk_ dSդI)I$JRI$I$$I)I$JR?ŗ$?ծSYN1IOVI$$I)I$JRI$Jϭ3XvU1; ڍ溋l,q!isIa%I%lph$4kG̔$s2ŷ.isƥ%BdkVk!̱p$$龻K8{lVsu~$IP^fM52SCȓ cI_KtFB@*I3 @I'@Y9Y~ "if ]"S5IBȩM%۩$IJI$RI$I%)$IJIVʻz}DT"w:HvRI!Y]V6%RMTI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$/I2\ĝ?c'?X$IJI$RI$I%)$IJI$R),'O.rtጟbJzI%oo_˟#2-t)1(D+ ~7RX_ր 7sG,?I$9Zs>Ys,p䂴q1ƫ |/]9O[P֑eC>"B^C4$Cts^4s\k_~2>=Ig/F}NEIՃֲc?Xȫf nauZv xLUd]$eOwcj"/wuĵ\]ڟU,~a΄}Nt߶Ocs,:>}>s}鰟MQ:ϭ.c결<?aD80?';a`TT2݌H{h׷rٌ&_- [63MLck(S/_צEe.s?Q料{_cZ[{Cݕ]%vWkmNc pNl}6γ=qbVųtVk69a0FخcmpG!!&#p44csmNv;e,AU3]S)ɡkazzLvh>{k:4}g7^?H!uQ]2-n#\ 6|mO5qVmΩR% mC!+ZA WGa֛[-xֹA>noGKofgl+UsuA&,hמ>r__W[#*ܛ2 {MmuZ@ |`i\N;%+ZA W굶2uk+i{{%Po7쥕K[qhm>,i},KIp;, hT'џҷV7=nSǒf'MZuVf6{ʱѵswcweggGdI:>+?w. }C_`u%5k[ЕVZ}jjvv#^C+5X׸<ׇay csqMy:h-uo-.69ϕ԰3:84vUkmpt5'][I&W|:UNC߇k|FGw-5a9c"eems?Hl$)$E˻ս*Y_٫v֓w(~szI YGǗr?fZ/ٽ.VZ%H_z\ޗ޿?+_t{Q/\ٽ.VKo_˟ֺIR.G޿?+_7]$^{y#o_˟ekTj=<7~szI*W_ekfZk+ڏy/~sz_z\޵JGǗr?fZ/ٽ.VZ%J_z\ޗ޿?+_t{Q/\ٽ.VKo_˟ֺIR.G޿?+_7]$^{y#o_˟ekTj=<7~szI*W_ekfZk+ڏy/~sz_z\޵JGǗr?fZ/ٽ.VZ%J_z\ޗ޿?+_t{Q/\ٽ.VKo_˟ֺIR.G޿?+_7]$^{y7VNgLeomlqhѠId}Vo[!88O.SYN1]Z?ŗ$?ėZI$I$$I)I$JRI$I$.SYN1]Z?ŗ$?Ĕi$Jr>]d}Vo[ApRI$"I$^[Ǽ*syuniVIq1v 4^1˥,m5AEI%P-%3bcŁH.]'ݡӰt۫[| `e$շ`݊0]^vάGcbՉ_N =ﰎ q8FI$n?ONͭᾥhׁ*]&^1slư]sBI*Az w=P44c >r0tem܇ |^I%\@ht? =qG9SUo[߽Lk`s|ʶTMcѕQ&[kč]d}Vo[ApRI$"I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S[GgenZ#ܵ xB),'O.rtጟbLVI$$I)I$JRI$I$$I)K_ dVOe:O~%=ZI$;?-rYUv[V宐c?I$ȤI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$}Vo[#2-tХ/I2\ĝ?c'?X#դI)I$JRI$I$$I)I$JR?ŗ$?ծSYN1IOVI$#ܵGoչk7$a-H\O~u}/^}/l>_݄K$1n|ZY,ey4j\_~?IvXgO^$,ZmḘH\\to7[U/n5ol ƺ .c,1G朄G%wXp):2^5 vSk+eVX5'Oe,8@%dȺQ=?#eϣc`HNTj/&hp}W1Vs\74*UNwHh~7}y?͸tr%3uR}'dž 9x˖@O@Rza=Wlrß/Fc|,?9YҾP퇪٩/ ]5QQsk<5h 9aGf#H)'l=/{?_-ZpťUVC`!"$uޣ๶=.{GY{nsO?&X*#sۋQuQU[`.s`J01+l-61n;J<&CoR;.y4>L}V} <52: :6Htd@ccI}RV~aw]#xtKK~?wvߒ9nTryq3aOh&\D]$rw]xS]li;Ia7Njs[e{?Y荳kwsP.Ν[۹9ۦD0PƀGK>[&>>!hk Hy=m,55(IH羬}gFF0Fݑ,mvZ8YG#;+#񝱗X縆L\{]:je)B` @ Kc$ HyՋE72X,qh~AB&R*Cea`F l˴u'{X>Åԝ~ԮƮAs5^݃lovnu<{+|l9pg+G>Ov=d+wu%Gu>nyĊFsL5$Υ'wnӚCe;\E a93-0"@ 1J2ٻ6{ktawo;{+ gTu9ϥͲ $MOrղ:N5_Lȳ"=CQyb2#1ͱ kI(R\WEnM}d=/ΪMosFŎ9  UbFŌMtIs?~?I~O )I2KKOz_GI/bĬ?j/L`tKؿ+?$?]?}$`t/J.o&?.gOz_GI/?]?}$I2KKOz_GI/bĬ?j/L`tKؿ+?$?]?}$`t/J.o&?.gOz_GI/?]?}$I2KKOz_GI/bĬ?j/L`tKؿ+?$?]?}$`t/J.o&?.gOz_GI/?]?}$I2KKOz_GI/bĬ?j/L`tKؿ+?$?]?}$`t/J.o&?.gOz_GI/?]?}$I2KC֗ΙOGo+S:gV:EcǴ{X8 9a g,r(q #tKZIWK[GgenZ#ܵ xB),'O.rtጟbLVI$$I)I$JRI$I$$I)K_ dVOe:O~%=ZI$;?-rYUv[V宐c?["#zom֮S=.o~Z/l?r.!^$UW)$IJX^:F3Ck-h HrHe M69un,k*_\2}':nš﹥#F8 GH6>Ve>C,7h:\[as=ʒ90 /LbOxȫsD 5߽*ݺ}\k\ veohe+8Ω` _?ہO٩^ڜ 5Շ?q;?JUN 3Û&CKܫ-0:<׻j}Qɥ4q8iخ֫k߽jPȆESt>1[qu 2jݦ#XZ[Q''7&h(A]轒53ˇ3g'@}25 IקfeooR[_Fck`6|k_;ygQo?8]br1z] E='B~nu]7Mؾ m\FC]s@Ӂt^REט!Bwqnjč;m^1MK_W[}-o`2??UcY}UUtԒAt'V>.nVe0>ǽ=O G 3L!u/ÚcGgl}EX̢H{MU,F.5t_>58)riˮ3.\7?F{W)?`x¹ٻ%?ҭLaZmKy )yc 21X]t:h MmX72s\v WMn1qԒUhэYm6׏;@5QM؏cDz7}{Mna%FQ2W;އy]_v}oպzX -ƫ^dٲ7N.:5anpe59xnѸ_WeѪ臡Yv}o~fg^9c8~8HO07ӓS/DZ`+!p=(;:F5cVhMP-c6 O;7Oo3k12w[S9k8d"2&k^WWkO3n]Mkk[AΩHvNM=?t5n=7d} 'Oǥc☆4 Yc}E*_SadbS42qm1zfZ!QK6 &r^9㐀o~ʅlWMmX72s\v "}&m՚)mxT X̓SS%^걩"ꩦh8Ug \<^;>r=ie~'Sq⺬@0C9ֹvNgDAeyS{2˛3Q` +Ku p?hƸT8΢#fg*1aX"2iቨkP4DNMLUs,5k ukqhY0ۍ^=.q{@$ ZM#14SmpJFn5y-NEnIZ- Us `$5USzx#P]V㱡YI)b $H)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$4ȹwޛ[TEFVHyI$UGoչk;?-rH1n \ĝ?c'?X/I22=ZI$I$$I)I$JRI$I$.SYN1]Z?ŗ$?Ĕi$Jr>]d}Vo[ApaoOշ?ZO\oMj<ȻzDIU\I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%0TEF] ?.{]7Vj_[CȽ"I$r>]d}Vo[ApR?ŗ$?ծSYN1II$I%)$IJI$RI$I%)rtጟb),'O$I$S[GgenZ#ܵ xC O\oM"#zom֫PqmEߤ<$J$I)I$JRI$JN05՝m`};Sy̷U+4c]oЮqHk1G@BPWo$쮠k\ւ.q h׹&+@$UhWgdϥC c5)Bc9Y)iXdHLg^I$$I)I$JRI$I$$I)I*yӉfK2l5edm;=טwDt4A*meVSF<UjhnGA$Sa}#kGڲmᓃUczzOFu#gH2slz[ids\zaSppYW9[7G&RmŚ1fzA$zx}[Qޝ߬Xr>^WEno!Cy7z6-п._eVU yv^8enxk.c۪_[ޱjWecvC,_S'#OlqO"D޼vC)w65V誝G]rL|_,;Ȁzs6+~ 2ݘSӭmk`c*ymU}ܼZH2>SП+-V;.YcZh357 3ϡP DogegϬN܋/c6Z,2/Vz.qe~~PҌOI ?xc\@15Y&]m5~@cK)nn&67c8s*t>n_Zɷs1j:s-%GPlcʮ6>;Å!oM}3uK;rŧ{utLk87꭪umK^pFrQeHs5ǻ'5iks\ 4 e D EL^iֿhLX|6~[v^Te cD0$گP[ĵ! h8jNd;!جmkiYxejs/m6'@D-eu2ƺaTx˭Hcؙ3(>yXx$tU.<>3kgle:ng4T-Sau u*,qscxBU_[nkCA5bWTLGDsjscl c퀟ܲ:_7d~0;Xn,4mm.[<}^OV21:>ϓbѺ} ~?)9L Ju1EYSv=uAۛiyy!K#}骸か˜q/~%jCeoװ4x-|I1Dzt{ǥi{x hVX8C:Imsh6.]Wrl% %̓P՜zO\7Xs]Ao♒F;mZF'aR30 %`KAKXy}9Ye:679qy+S|38h8߮_կ62iZl1:,c?Lׇ#`#27FI2J4;๵e˃WD"ewßچҤIHqr:7[-Mo{ʅ5Ɠ!a_I1- ǧ. ky$[i7l_N/_b^4/' i~}wZI/j?__~bauحo$/⯿f z}wZ__]lVKڏƗW߳vpauح/]/+[%GKٻbq޸?_]lV.oUݱ8\]/+K_I{Q*nؿ_. ky$[i}7l_N/_b^4/' i~}wZI/j?__~bauحo$/⯿f z}wZ__]lVKڏƗW߳vpauح/]/+[%GKٻbq޸T2-y-iy4h[+O_uy,FЎz"] LJt0TEF] ?.{]7Vj_]CȽ"I$p~]ԟf/?YjI$ڪI$R[nuaem/}/poZItg(1>86T^K-c˜yRΡulLxcTdUZ+|B\G~맋ϫZۇ_]Y5|G('uJHpFؼI`i_uM鯨 {i>#^ 64 Yc#@ \#-9rJ<&r1*$s@]awQm-mkc,kg^aC7n49bf׷\ Q$ "oAUsG ၸȘ \4ZTZOR5܁x&wN󅤒< Հih8{r1!DFGQѨtbl$Qd eOmUC=&Ecks^IWC 222) )\ōmi-qk =S[ڭ{$8/mm$|0Yo$1,~F32Yk̻wstQ=:EPF,62XqגUuqKR /wEVeƿw`=Ւ&~nk zN>1 ۹D5z= IP:I<"R*KcߍV3ϐ6Os[a{{*It,z5YaL7h睻$A+_>g6H$lHamSI+0Mf]u\̒3YAiZ !B||fzX2I;khh0HtҺ/AY_E53= WMʨgUDȬmcvy۸*HFYg'1/EeQf5Uuv6Hmp_J5յ;inޘ>aIE H}^=K%y>ۘAckD}{W7V_}/֝snq+qEkXӡH) ͛388ccGwyVta8.=GL]FX?P54cf'ϲ66#}ڟIdqE/\e{?4WMׅI/%8˞yq$P֜Fr7)'ĩ$EjI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$INԟ Ww|rL_uk?ͅ?.{]7Vjmi?s7UG#OzDIU\}Vo[#2-tХ/I2\ĝ?c'?X#դI)I$JRI$I$$I)I$JR?ŗ$?ծSYN1IOVI$#ܵGoչk74ȹwޛ[TEFVHyI$Uԟ Ww|rL_uk?I${UI$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$?-'@:弙t6! O\oM"#zom֫qmF"$#2-u[GgenZ] LJt0TEF] ?.{]7Vj_]CȽ"I$p~]ԟf/?YjI$ڪI$SeJ1ߔ"J1ߔ"$I)H-̡ձ8iÉE{[pI,>Yxf6;̎6ܟr$(Wk@%(`]~Iiw _ȳ̳*l{R%sKD:SH>_&XPl,лtY}gZjhv16AqhNY+M,wᷞ ,%Tw~NK>!3(W@Ŷy%ۗfMXg;Z\Ip?HOf]f%;*.{,;쨰<ݻ~dz]?r2i0b^lM]ӽ3_$av!./:n*g vzikZ Kcuc~UG}%s Ás?K܍)ǏA=duwMʮetp5֭vU:;,yA E8 AQ8e3!(?I=KO[ \BTI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%8?R ώ[O_uy3qm|Cן64ȹwޛ[TEFWa?EI%Us[GgenZ#ܵ xB),'O.rtጟbLVI$$I)I$JRI$I$$I)K_ dVOe:O~%=ZI$;?-rYUv[V宐c?["#zom֮S=.o~Z/l?r.!^$UW8?R ώ[O_uy3qm|Cן5$IU$I)2]Pr]PJI$%{'2 Gfts1lƳ2燶sivϚ0鸃$`K[513m }ow[lgS^TNf98ϩaL yqN<^"u/<>n#CW^3?[)}Z .6U5__8_lØA[Uˏ%ljq:(= _f/"`:=X }Ucʡsʱ'i;+ ↽dž2~mZ̳2W!=s c[ÄS3F'Oю|5.dxʷ8e^!枙PI--mX=YShn3=6t%ۉyM0Ll}0{ķ"3?OGO%eLJ,?Uv/oC:3o, Zy sg椐&$<2RBΟcIg]Shƒtx7Do1k}NNlƣp?f>ʦ\$>xxQccБs;<Ĉ7T-, !pg;k.?}@@cۮeu ̄,a2-LEk'}?]TǶ}1]0}7{["u:0 okY].Ls(0@u` 㐂21$ ̊_EYcK<4 <#Xʵzn11RȀ5ŧ3$gtٱMVCjiYuL{k{٣H;UIkwk~'Y75U72 ăŽPˣsec:QD`ps%v&=2ۘnGf@‡4RI$I%)$IJ\ĝ?c'?X/I2)I$}Vo[#2-tS=.o~t64ȹwޛ[?yaw"$ Ww|rX?R ώ[ɘCkg$Oj$IO9*~R*~RTI$$I)I$JRg499H NJU(xjk{x{+kH4 #L)$HI$JRI$I$$I)I$JRp60GJHnLMEI$*RI$I$wccd܊hcCTְ!CtHM 褒I)$IJ]/ZG@I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I) Ww|rX?R ώ[ɘCkgTEF] ?.{]7Vj_i/HI*;?-rYUv[V宐c?Oe:O~uk_ ddzI%)$IJI$RI$I%)$IJ\ĝ?c'?X/I2)I$}Vo[#2-tS=.o~t64ȹwޛ[?yaw"$ Ww|rX?R ώ[ɘCkg$Oj$IO9*~R8Xq"NE%8-ؿg?)~>IN2Kg6/Y_zϼRS}"l_޳$cbxȥE%8-ؿg?)~>IN2Kg6/Y_zϼRS}"l_޳$cbxȥE%8-ؿg?)~>IN2Kg6/Y_zϼRS}"l_޳$cbxȥE%8-ؿg?)~>IN2Kg6/Y_zϼRS}"l_޳$cbxȥE%8-ؿg?)~>IN2Kg6/Y_zϼRS<_ŷW6/Y[u'$I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jp~]ԟf/?Yl-i?s7WCoOշ?ZǗ9<$J#ܵGoչk7.SYN1]Z?ŗ$?ę$IJI$RI$I%)$IJI$R),'O.rtጟbJzI%9Uv[V宲>] LJt0TEF] ?.{]7Vj_]CȽ"I$p~]ԟf/?YjI$ڪI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I+>9o,?-_^["#zom֮S=.o~]/l?r4HyI$UGoչk;?-rH1n \ĝ?c'?X/I22=ZI$I$$I)I$JRI$I$.SYN1]Z?ŗ$?Ĕi$Jr>]d}Vo[ApaoOշ?ZO\oMj<ȻzDIU\xU _gVN80Rq.< ky%lIIܜ8?\]/+K_HQ(nؿ_. ky$[i}7l_N/_b^4/' i~}wZI/j?__~bauحo$/⯿f z}wZ__]lVKڏƗW߳vpauح/]/+[%GKٻbq޸?_]lV.oUݱ8\]/+K_I{Q*nؿ_. ky$[i}7l_N/_b^4/' i~}wZI/j?__~bauحo$/⯿f z}wZ__]lVKڏƗW߳vpauح/]/+[%GKٻbq޸?_]lV.oUݱ8\]/+K_I{Q*nؿ_. ky$[i}7l_N/_b^4/' i~}wZI/j?__~bauحo$/⯿f z}wZ__]lVKڏƗW߳vpauح/]/+[%GKٻbq޸?_]lV.oUݱ8\]/+K_I{Q*nؿ_. ky$[i}7l_N/_b^4/' i~}wZI/j?__~bauحo$/⯿f z}wZ__]lVKڏƗW߳vpauح/]/+[%GKٻbq޸?_]lV.oUݱ8\]/+K_I{Q*nؿ_. ky$[i}7l_N/_b^4/'CtѺ{0{m$|UND6 |%rDȟS=.o~t64ȹwޛ[?yazDIU\}Vo[#2-tХ/I2\ĝ?c'?X#դI)I$JRI$I$$I)I$JR?ŗ$?ծSYN1IOVI$#ܵGoչk74ȹwޛ[TEFVHyI$UI$RIdղ+CZ$cS$휯ݯ?$줱l~q%g+kI%;),o9__I~INKW_rvS$휯ݯ?$줱l~q%g+kI%;),o9__I~INKW_rvS$휯ݯ?$줱l~q%g+kI%;),o9__I~INKW_rvS$휯ݯ?$줱l~q%g+kI%;),o9__I~INKW_rvS$휯ݯ?$줱l~q%g+kI%;),o9__I~INJMv;8D$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$["#zom֮S=.o~Z/l?r-!^$UW9Uv[V宲>] LJt)rtጟb),'O$i$JRI$I$$I)I$JRI$Oe:O~uk_ dSդI)#2-u[GgenZ x9hYuRI%T:G_oc@8$Sj=nCϮ$Up q ss8 I$+I$$I)I$JRI$I$$_~UVَ{+E'{# ZN3-:wڒI CaC 4*I$TI$O[ EBO[ EA I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%0TEF] ?.{]7Vj_[CȽ"I$r>]d}Vo[ApR?ŗ$?ծSYN1II$I%)$IJI$RI$I%)rtጟb),'O$I$S[GgenZ#ܵ xC O\oM"#zom֫PqmEߤ<$J$I)Kwc)]2]RR$IFMoE.1U%S9,®R] .kXAnG"r: *wE?m/#$ |]KH}I] vC"^}<(S,~ӄN5&Huz~J1\- Bs/n|7KXnشi*Vhú0l%sMwp YRƼчay0HpŭyT>Xϙ }P2n_xq1 Z:Z$O۫Ѻ}Z]^Ex#8Y-ͣmsY86w3}P2}P#!\2.l_ 3xs"xuWuz~N;hE:[F=[Å٭痒>JWHf./6vcgbwYNuy=mmeÇ q|<rFrG&3@&@"?s$ I!ّUX-1[?tQ9UdszSLnExZmu7=I#_%,I"w6U̗ڋmngW6\{p8Όku 7SܾJ]Wa>1b۰kc 4BNJͮCnfmM۾1A@\2$|Vm*ltOXƦ0\9@s`>b6xuPΠ:N%~Y ߵR{4_/4?Bf~pZ2]f0ff;\+swz\8RpC gO_S Hη 7%QO[GX"}Jl;GrO:MY{)meuS kX['}Y@۵8b~rI:IR|$mk!|u_~iqZ Vt I$v: O[ EYXfQ[>IƉOtlhztRY߶_mq)Ig~ۧeGOE%nmK?+?ޒw6W/tlhzJtRY߶_mq)Ig~ۧeGOE%nmK?+?ޒw6W/tlhzJtRY߶_mq)Ig~ۧeGOE%nmK?+?ޒw6W/tlhzJtRY߶_mq)Ig~ۧeGOE%nmK?+?ޒ4ȹwޛ[FεI"Ac}LgMevꅀC=J{]ߕf2u~9?+<$mq~ۧeGd#2-u^'Mm.}ul.n'nmH,t:+_ d6WsQrҾWc,ͺoo_׺j'TK;?+?ޗ6W%:jU^e/a2uKH6OK3' 5pRSߤW'e?P.BIJI$RI$I%)rtጟb),'O$I$S[GgenZ#ܵ xC O\oM"#zom֫PqmEߤ<$J$I)Kwc)]2]RR$IQ0Z2A/Sn؅y$d;(SA ,}صUN3"]3ui qNqap]8Vv-ven}c)b]8Vv-ven}c+I$͐ Z#sKíKZg{>>WZL}ouo|}nk믲ZUkCZHp:AQz^5[;_]Lk0 =!8<ɖ1gvG &c.>&>#\vo;ysĹI:wT)FC\2~ˋ^kYFi$C4dI23Au!8MlöH= _V47uLt4n'v:QϗI7|"D UrDA.eu^o0D iռZ$O$c H u{{ukBs6,hɭxKɣ6ڜ,t9y ]$aD*D]9[`;)5א%g -:+M$s9$l_dj8Yב,6R"2kΠWcDʇR7[k#k=[D뱏kgJ13@$}*g#;LmuNC:{[yIdϓ,cR$ۨSSse[^:ĨQ쬞S9[eB?b||ёS- psC3"nR\xc9ˊ]u'vPIV\I%=/Z*/Z*RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)?.{]7Vjmi?s7UG"EI%Us[GgenZ#ܵ xB),'O.rtጟbLVI$H\g,~t$8ؘ،mm$JRI$I$$I)K_ dVOe:O~%=ZI$;?-rYUv[V宐c?["#zom֮S=.o~Z/l?r.!^$UW)$IJ\WJ9*~R$HI$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$-?m -?m)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$S=.o~t64ȹwޛ[?yao"$#2-u[GgenZWIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WIMؿg?)~>WILk`DE$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%0TEF] ?.{]7Vj_[CȽ"I$r>]d}Vo[ApR?ŗ$?ծSYN1II$I%)$IJI$RI$I%)rtጟb),'O$I$S[GgenZ#ܵ xC O\oM=[Ă>tZ:N}?eq[>Kq.>V{sbXɎcL"&~\n\_~?H}%a7U?zd3=?/$_vXgO^%O %=?/$ݱVs5YIs?~?I~O %l_\MVt\_~?I}%a7U?zd3=?/$_vXgO^%O %=?/$ݱVs5YIs?~?I~O %l_\MVt\_~?I}%a7U?zd3=?/$_vXgO^%O %=?/$ݱVs5YIs?~?I~O %l_\MVt\_~?I}%a7U?zd3=?/$_vXgO^%O %=?/$ݱVs5YIs?~?I~O %l_\MVt\_~?I}%a7U?zd3=?/$_vXgO^%O %=?/$ݱVs5YIs?~?I~O %l_\MVt\_~?I}%a7U?zd3=?/$_vXgO^%O %=?/$ݱVs5YIs?~?I~O %l_\MVt\_~?I}%a7U?zd3=?/$_vXgO^%O %=?/$ݱVs5YIs?~?I~O %l_\MVt\_~?I}%a7U?zd3=?/$_vXgO^%O %=?/$ݱVs5YIs?~?I~O %l_\MVt\_~?I}%a7U?zd3=?/$_vXgO^%O %=?/$ݱVs5YIs?~?I~O %l_\MVt\_~?I}%a7U?zd3=?/$_vXgO^S=.o~@nNCO$~zh0pvݹ^)r)*1?4cBɺ$IS\}Vo[#2-tХ/I2\ĝ?c'?X#դI)I$JRI$I$$I)I$JR?ŗ$?ծSYN1IOVI$#ܵGoչk7$I2)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9Uv[V宲>] LJt)rtጟb),'O$i$JRI$I$$I)I$JRI$Oe:O~uk_ dSդI)#2-u[GgenZ'U$܀'MU*z}̦Ԑ6Lt IS_i)wYdH?0 aN>QJXJ6RTb\){I ۠$'N3EDzMԱt)X@TwٰXO @"{K×~A5;ѨxG?5bQ\4rJVӢ, p!٭qr.8uvL"O,[ꎻ-ᱮ B&ذd9$R Wo$v(68lHْRvlߓs=?T/q^X 5NRP$tU«m>;RR2;H>e@cK $Y<󀒄۵I$+O\HcII:@RSuYkSk\$1G{ }.Bie.e?l=})x ?xVG!5YhGYU9챢;X:J\1l@06>Û8uA&GkI75[pXPCA'Ql,|&kƛ얻Fq}H;e7;md`exA"o$W}\ʨ5L[ss$~ 4cQ6[X05?4,:2\ CvF{ψe8>9 2Q !pwoOe$+(%scY]i_Ve`ygh: !ace^s~5 %nXK`':d5 b3?mFunԐ-3yxED-=:ߧq`տucA Cl`l ߼4*xtdW6mc!H6ULjȲK]c{ʭُMkhs!bcDqiv,~.Xk.hEVƹp\GSa<3P `nI:u@]WTvU..8FT3.ϴmu5 cIZ:fNU9qfҙFw5þ7W#g?oչkbn5tssQrf}^ҷ2.޶#}Z^&W),'O$ts/?G7̖I)tsrY6]I}/69}l <~ٕ~FS:kַWLJa~*y:T=WFuB͸ՆxVRI$I%)$IJ\ĝ?c'?X/I2)I$}Vo[#2-tФI&E$I)2]Pr]PJI$I%)$IJIkZ HI)1qkp}tրGTA$HI$JRI$I$$I)I$JR4> ?5$FI$JI$I%0num8MkZ6atE ԒI$$I)KO[ \BTI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S[GgenZ#ܵ xB),'O.rtጟbLVI$$I)I$JRI$I$$I)K_ dVOe:O~%=ZI$;?-rYUv[V宐c?I$ȤI%IN2Kg6/Y_zϼRS}"l_޳$cbxȥE%8-ؿg?)~>IN2Kg6/Y_zϼRS}"l_޳$cbxȥE%8-ؿg?)~>IN2Kg6/Y_zϼRS}"l_޳$cbxȥE%8-ؿg?)~>IN2Kg6/Y_zϼRS}"l_޳$cbxȥE%8-ؿg?)~>IN2_ؿg?*lh`h$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$;?-rYUv[V宐c?Oe:O~uk_ ddzI%)$IJI$RI$I%)$IJ\ĝ?c'?X/I2)I$}Vo[#2-tФI&E$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$#ܵGoչk7.SYN1]Z?ŗ$?ę$IJI$RI$I%)$IJI$R),'O.rtጟbJzI%8x bu_J83tn2usEek0h8Ǘr?fZ/ٽ.VZ%J_z\ޗ޿?+_t{Q/\ٽ.VKo_˟ֺIR.G޿?+_7]$^{y#o_˟ekTj=<7~szI*W_ekfZk+ڏy/~sz_z\޵JGǗr?fZ/ٽ.VZ%J_z\ޗ޿?+_t{Q/\ٽ.VKo_˟ֺIR.G޿?+_7]$^{y#o_˟ekTj=<7~szI*W_ekfZk+ڏy/~sz_z\޵JGǗr?fZ/ٽ.VZ%J_z\ޗ޿?+_t{Q/\ٽ.VKo_˟ֺIR.G޿?+_7]$^{y#o_˟ekTj=<7~szI*W_ekfZk+ڏy/~sz_z\޵JGǗr?fZ/ٽ.VZ%J_z\ޗ޿?+_t{Q/\ٽ.VKo_˟ֺIR.G޿?+_7]$^{y#o_˟ekTj=<7~szI*W_ekfZk+ڏy/~sz_z\޵JGǗr?fZ/ٽ.VZ%J_z\ޗ޿?+_t{Q/\ٽ.VKo_˟ֺIR.G޿?+_7]$^{y#o_˟ekTj=<7~szI*W_ekfZk+ڏy/~sz_z\޵JGǗr?fZ/ٽ.VZ%J_OO=/ Xq~ݳq'\I$WK_ dVOe:O~$ZI$I$$I)I$JRI$I$.SYN1]Z?ŗ$?Ĕi$JRI$K&]Vֲ d7휯ݯ?$l~q$e%g+kI/9__I)Ic~KWJvRX߶rv$7휯ݯ?$l~q$e%g+kI/9__I)Ic~KWJvRX߶rv$7휯ݯ?$l~q$e%g+kI/9__I)Ic~KWJvRX߶rv$7휯ݯ?$l~q$e%g+kI/9__I)Ic~KWJvRX߶rv$7휯ݯ?$l~q$e%g+kI/9__I)Ic~KWJvRPkܽ8%M%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\ĝ?c'?X/I2)I$I%)$IJI$RI$I%)rtጟb),'O$I$RI$eJ1ߔs_Үw))I$TI$$U0V8zukȑ?$I)I$JRI e`,~ c@.{xksIIQ奅F"BTqu3hV>ZANJJvI$Y}O'M]Cd'9V۽s͆INI$I$$I)I$JRI$I$$EV]V}_{4|BJQ62]I +'QFIMI%)$IOG@@I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$.SYN1]Z?ŗ$?Ĕi$JRI$I$$I)I$JRI$Oe:O~uk_ dSդI)I$JR2]WF̯W;򔔉$E*CȫܫXD7]GIT^~s\ YIO/ֱ:W֫>ǚuCCGZT{Z`/$>'/W:nF K*cX`pB^ٍyk\gd%-?_mem/-q!w3 tϮ׌^k;v`h;kFH֏8?R_R?A~1qfN7iւDG*#7"6?4'^/|M%_Y#q̐;&*Juz֦ulVf+P;nծ>j%Wz[=fu8O88#@׏7uV/8x[X8{Rv?K·Km!򰤧^Z쌧X~$<.Cdegѝ [cU4Z!<կ>t^vXy-{F<›h_C-mscZ$Wp3/":1rWۣeC*xMŧeS+c\ m[NɗxqX:oCLfF!sYu0\v{E`Q'?R9CpM2]鹅e\l9-F-<:z9kȭջ<S'&7t̢cKFkn̛q2/ k$:# ۙE}uq{<!#$Sa ys(}{G%CY~VnN+鳧U}QgM$ *_YvWnyɫO{~:(?Wr7Y}tWf_Vu`YK^X@Jntzq`9q9YM~?r&_\[:}#+4o9uV Xd #Z?ϙHb_ޫ1m1HhOo0;Ap kuli zϲ9ΌAcUxY1D_kk?cvx.S~gegfcM8+aiswHh P/k~5 -okw %*T˪;cC|Cj,8jkx?5 *RI&sƗio3QSƂ!܁DC~PC}%CI KI IM۽'7wE/۽'7wE%7T?n߹n߹IPC~RC~RS}%CI KI IM۽'7wE/۽'7wE%7T?n߹n߹IPC~RC~RS}%CI KI IM۽'7wE/۽'7wE%7T?n߹n߹IPC~RC~RS}%CI KI IM۽'7wE/۽'7wE%7T?n߹n߹IPC~RC~RS}%CI KI IM۽'7wE/۽'7wE%7T?n߹n߹IPC~RC~RS}%CI KI IM/I2sI \<~r.EI4A%CI KI IM@jIN:Lx.}okD;RZ@ ߨx$IftQn:;PO\RI$I%)$IJ\ĝ?c'?X/I2)I$I%)s_Үw+\WJJDI",^L5]o/v=X-LGI%0_S5 c[OakȬ_ ]MXCVNCA--SWt id^ wu>c,?eU[M6dz"\;Kh{FY$=e _MΝp|ks]pXx=C7[%.ʬuV̍,vӤ.뺷Ss[ev4piAU\~.nF.5v],c0 JIӰs^Bc.s9q.qf_1juy:s뱓0j}VI)Ӻ.ecZݨ2=i!Rպqۊ &//q.q1*N`krn`xkF`$AfsE~yR6~igjI%53zWO/E8TH,X\XA` Bz:^3-m-xv@m\?L4=vVIN_OzVQZ65 T:]X^.N; {ݏ1E.v_N~݋NNߣV## ~K۝MYc9nG`eZx-#a2MưMm.ݼV4ӏ[i0|SIJI$RI$8j}mEC-?m1/JoIL}*qpKү$SJoI$ү*qpRI%1/JoIL}*qpKү$SJoI$ү*qpRI%1/JoIL}*qpKү$SJoI$ү*qpRI%1/JoIL}*qpKү$SJoI$ү*qpRI%1/JoIL}*qpKү$SJoI$ү*qpRI%1/JoIL}*qp\k_R<du:\.SYN1IOSW^߸)$ٴY cq Ib?c"5ރ?pAyu)$OnjOܸJI)I$JRI$I$.SYN1]Z?ŗ$?Ĕi$JRI$̯W;Ѯs+U%"I$JI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%=/Z*/Z*RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$Oe:O~uk_ dSդI)I$JRI$I$$I)I$JR?ŗ$?ծSYN1IOVI$$I)J'cy.0DIUԒSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUSC6/Y_zϼUS+> /XObject << /Im46 379 0 R >> /ProcSet [ /PDF /Text ] >> endobj 391 0 obj << /Length 3281 /Filter /FlateDecode >> stream xڥZKϯPbCI)V+Nv.)\SLR3O7Rjש\G_J\=VHWN(vK_~"-2¤B+ACtj׏Y撿lX?UTGu'jKV.PDz/VM/M)&PՖ̳jmyYz+9nB˯bw?D*bGWif-ջ<|wO R9KgܝXw-0oIڡMO6ysuQs&4jkJqk]t@17R :-ȗ89ktGnD'9]#GiU $ۣ?>ƶ.}yGP8-Cs_z%rL}5ewiЂ~ˢ[<.hX434L;lʦvn@SVF:2ꩿxIk»#`ES|@YT4ڂ^Ssy3EX5% z955zFPDy^,)3S%+Tj|T,N`*U?,Hۚ4bXz_IڸTr$%unmHpG,~ܺ;O6.$=/V>:FHfCÖ 7n\w硹| lTۢɁy(D 0~bH.{^o[]j`=K'[2>gjhqʘmck &2֪ k-`UE;rX SCdA}u꫁ORrFġZlSx"}d N_x-]_R\ٳ>DP`ZR KN ]+}B&MWdk64dKλoLK GtAk$pO(XЊjbb0⢡gt-wʦe1Væ9N3Ka ;]t'>ZЈEd:_"0EvD"9ePdU V)֑+68Ő++TVЯ-=xQP=>m֐F8 XOD4VrbNn6(:<|a0Ы A y:e ǚ2]qmSrt ޜ1W嗀(BgWԩ?0_ݢ&#oB`o|4U9pW-1$Kd2ڶCTbTX)mh"T(Rbs\¶~(w(YK{qO!ܐl<< h{xR /AlJ1 즌Ӽ`@9fnS@`UF: lJi(DSB82)j ŏrtLJtF~FЇ 8*=.‘Lr]`CB_;6,Ksw\z[βffz,F!S3c(uQHB-C}\UR_,n (=Ȥ! i&cyxH¦2)C”FUk }Бz<@z@y삔_45ƒ~LzKGqc;^d70Mxї5texߍ0Пl(ɕ(3^6>% taE//T`S䧹 LmnU-?zj˹Bґra) ߲SV ![ރۅ|~S@vz-f=Lt#N^9 0.Z& BJX y?3M"l1r[ ;L.=n H*~r$` XV!*nj* X=(B1XFOH]ҹa6NN's=-z1T}f@j Y4;bE` r0,[n2/r{F?1,İGRk y>ҥZ?\P,)G{Tg1T!v ?"K3$i S!j669&^LBic>GfLd|Ǔj*urO%S%`Z\ @T|iŢSccfa S_WVLn k:n*v%j8nA&~7A3_MJ"YLE1R/Jq&Ro8ѩzƉX> XP a٨?kz͡B/Jjv~`F,~A`Ѩgw0~8]hAK!bc#TD@n4|*Y ԓ`}@2*~J]X u\Ndȉ'3C^UV0H %˷x,〒 M= @* P8+)cë*a4 Xt2Kvf&]ӽ[ KL$hGOf ivl V%ml3L efNR%OQph{V)HOz{ )8gOQY|1Qsʍ`Ms[pcu$ _G_L%#+oP+` a.AZC4m&%]ͨ7!/@A=lqf4$23R0$ C~Sӏ"5* \ t=^e(3;VP7 Mw endstream endobj 390 0 obj << /Type /Page /Contents 391 0 R /Resources 389 0 R /MediaBox [0 0 595.276 841.89] /Parent 367 0 R >> endobj 389 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F51 33 0 R /F54 39 0 R /F27 41 0 R /F19 7 0 R /F25 48 0 R /F30 40 0 R /F33 42 0 R /F21 16 0 R /F18 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 394 0 obj << /Length 858 /Filter /FlateDecode >> stream xmUr: +8ٔQ(2n:^.TvSo,o7wYVbJXIZWl۲᠏Q,2*G( Jswc$bm}b"M+2)sR,S|n6)9kD5{EssP*IeJ@MeVd앫g}}{dEV&R,S2ENweVTqmPRoB0o̟qr1Ov4=Lh܍{C>jkXi y0H_wCQ S-cb(trSz s{DKn?K9T`3=nIW0 [T͚f[ 2=eyMG2}oGֵGon@(PyzK@@ʽb7`d1[zTwm`z-ĵYwШoHVvדkpʷ\fR|a^wÒzEoq聅֑]SpU&Fg<;]`FX[h`~Zx8jٞ{`}tBԐ߻ j (EZ{C5qḴ2gW 8Ӊ=tDu9) 1;BZh+ia2؄Ж7,IqxƵ ZiU|0ٯEg/~Ӏeeuf3 m?L(, *#Nʫ+r)ulJ-`|Қ&A tll ݯO`z: Dd*y endstream endobj 393 0 obj << /Type /Page /Contents 394 0 R /Resources 392 0 R /MediaBox [0 0 595.276 841.89] /Parent 367 0 R >> endobj 380 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/WFS2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 395 0 R /BBox [0 0 656 798] /Resources << /XObject << /Im0 396 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 656 0 0 798 0 0 cm /Im0 Do Q endstream endobj 395 0 obj << /CreationDate (D:20080725161221+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080725161240+02'00') >> endobj 396 0 obj << /Subtype /Image /Length 58514 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 656 /Height 798 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S7'f^E )v, p Ú '?aiiuGZ)U-?M/W)ֲI)U-?M/W)֣,pc s`9$GM=2ϦPA2XJC47OZ_OStIdS47OZ_OStI1uN56{nk^\@%P*eg `0^%9OStI47OZ?I·?,))47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStId~_J_Wo۳ww?M&?aikY̺[,6[97~{wIN?aii?M&INO?aik77՟W:N7Jprlk5sX OJ7SI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)?BӅcOYz,I$ǒϫlI|J\ֽpجQ^^#Insǁc?z_n.5"mvu:Jxc}S4t.Kov=UfCAzV:DفLM5"=bnqh]{>^dy y(u<~^T`9_s"kIxJk_Y*ʢ A]ʏl;y-Ocvros$M6?I{:ޱԽ/W̴9fׂwəl6bXe\$5sx+Qr?Tqߩ?;ױ:X]:hGQJ3+k̊kZ=9)>tgL.1u~cp?HA[}-Yw\1VzXAv,u>76ޙk\͗910|:+k5Cjxq-ce!~^]pc3HmrC[#a7"ZּmphpiJpg??}//{^27@y vƆ{j_\?\]njm=sC?8mU;z.oTubVNAWi_sfݧGZ~?m~˿`zK=[fη>]mnkKݍ[lӱh$,tet;2nuA[o5X,u8ȁ+o\ި}p袬1֩HybOO֜:-yxOtjŅk2W۷or}UWp:6dRio}GV]tcQ#n+Y%)dlįY~Wyk,?o6$Y$NO:Vf?ϲmpM6o%6^U3_R.WMҭvC_}|蝱%=I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jrzпge ?=k$$I)I$JRI$n%7]^I]W{ w4($(YMvne;x$F i$$I){vZ76dL'ȩJR{vZ76dL'ȩzoBnOr-!ٗXyݲhZI$]hْ0|;"I)I$Jr>ӈgL}daM/tz&k-vzzCg$I$,?o6-egM_Ĕ$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JqXh9ϻ{bfT=Ǝ;^7;yVI);Pnw9zwZ$'r=Cqʗzsk$ӿ*_UJr/NC?^7;yVI);Pnw9zwZ$'r=Cqʗzsk$ӿ*_UJr/NC?^7;yVI);Pnw9zwZ$'r=Cqʗzsk$ӿ*_UJr/NC?^7;yVI);Pnw9zwZ$'r=Cqʨ}ax /þ;5eocD$]*I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$3&?:mʾk5u-߱^oxSx?nC$cu%P%:,G/z ~?{?INK'7Qޡm_^oxSx?nC$cu%P%:,G/z ~?{?INK'7Qޡm_^oxSx?nC$cu%P%:,G/z ~?{?INK'7Qޡm_^oxSx?nC$cu*}ot΍ԨyϷ6 c-1- Jz$I%)$IJIb7guzF x5vfc\r1fMufn{\îʟ]>tU{n.-.;Z[$S$~,k1]6@}}:9k:_Pnfk<@p>a%60CA&$|O44rVOEekuLȷ }PK_݁}m8W;qlɯ)UUƐ ))}mZak-s\4 5OM浬21oR݇ۺCeP*e=lnzgs5t;b\: L| +tH> I,zOMWdSe!cZ%[#^ JtOJ7^bJuI$DY}Stu r K:`$']GM-eԖJRI,!_gG.#K+i#Ի'{{ZLwݯ )I`^rD;2T7ZlLH_K:M!*7ae~cYH~`Ճ_-RSYoXTzHŷkokXu|7VC*'(u6d^P71IOVϨ+:Y$ٟ.{bCtWCzNOZ|G_{Nv7l^ἂԁ]Qͭ!kd$UX#/iubϴHL1'@Ogo)vG"YQl8\= >I)ITA';j+u23W>[')(?W5GQ_Osus IJI.1}TYDSI`{ls6?r`X;6qZ(@kWpL#o%;(RYS,}nhs~$$!g? ̦cۖk}EsJl$՟,6WIV"^N=}Ohqݻ?{dy$:kX jJͳFV.&N6UVg>5 }q5f>7JtkzOk8H;\9iSY]VuaYl`kkMK[u^QlKi73 6DԔ5x% *KfW/]Ⱥs:Kj1 ^ǽ"v#IJY=gQ_plsֲ?BӅcdI%)$IJI$RI$I%)$IJI$R?ש~Ud~!W~پYa8tNS_ w:VG>lmi}=6o[I%9=gQ_plsֲ?BӅcRR~'OVlcqsS˫ {5n$uv3^vH&ӎavlK1:?VaGFY4Cƛ ׻쒻Snj3^)Cm-9.~SsDӯ!YX=r~ٹu,0}f#_tv$ul=o!,19:Z}܅Sޙ VC{^FQ9vI$閒mˢHȵp?5:w>{WzxEh$u7 u{l6 <4="JyoM1km~^= ǚ|FR[8ȟQв|ǂ!CGǰ ~;,cݘƺ>]k;}oǢWqh}ucՋ]410mkGDtVK:2ʉj ڬevV p0b<-em=sLs,+:.=,|zq1`cxk6Jy޻^oI븝sm{fHw;D\|s:wSm5ckk86v88vܓw\E~-Xlc]sv;ҹX͕ӝ ꒙Wc-cmxkduוf~OFd?+*LLJ)#Չs ǫhck`֏)~u̢}[k}['ۻu}־qQPke⧺>/ݵcYƧ`fCϧ7 \>c} zLMs[@e%5]\.3oawI{sA.0<}IuX]K,uPw7ZXݾGZVtu02m`;:1MHq.QE8WM-[5hREgM_Ŭ~W+<ؒdI%9eLGf`],mT)-.sXmogDI)WQ~~KYd⫨?u%N)Y2a8VYc>YsFy$ulO#'\)[CV얍L똕t?Tr SӺp}!c[u${փrn'?Rijf (qȳkmqѥޣvubJ|wA}kNGI+>[Z-m:vCXǻ-߬=_wޫkuHMN{_mns6IN\?:I+>K-q ~koW꘿Wrp^m+.s1[As\봉]f wah Q_x,?7GSF.tfzLs^lxqoh >|_7UO>pr [8,m5d^Ciu VS_+⋢bZ_Pp/NYtgF^rmϯ.m@slh,FW|F幍S[h9%8yfn'O~fuǨmpk[&L^rFEG2|Dacy6i0kq-+I%9cvߋNmV9~1Ʊ·EHyi*8sy\sencKp gw~Ff}qm> )z~&V]+qECkiquOxkuodu~GLȼWk!֟tm'UXvOU-kXWKZֱ}3#d7-m:Eq͕='.$=w"^r)TӉ}cmk+sY0pUuQn>]-}">bK lWVJx`}ldWԺCƱ\c+tΣԫƣۏuŕ{Eogmu7cz/X=/+%WdVِ.QPXs]F%Ul{Dо7%9^e%C#]^ݑK6<]UR}` -ښI45zпge ?=%:?`ƾ-O56^֟Q -L\My4Y깂:p`IO ;>J.àegt2nɾ6c:M$?M&1q1phn.5Q\쪖 %e%&I$RI$I%)$IJI$RI$I%9=gQ_plsֲ?BӅcRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$gM_Ŭ~W+<ؒdI%)$INN7*?RZ']GM-dI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)dGZ'= NzJuI$I%)$IJI$RI$I%)$IJI$RI$JGQƧ.c:˃wC> I)ԺRaOɫ%ޓm:+*oIxYU'eX5Q̽@[}Jh7ku4IMI%)$IJI$RI$I%)$IJI$S^vaa> <;>Nͯ#/ :[M=@m.۠1"RMfn*{^ֽHxۧTgiȪVjǐL;-]gdLgՋjmFC 6T1~KE{.NuU3q+:gJ,ͱ6^oJ9ѿ_|@:AMU8 :l5{vl$ik~2~_#"zciZ܆:Nݮ?Һ6} wS٘G=&;hlayV?]if?lsmmݵ xv%=zëu56{-c  ZryZ}?:^el}A v1qc 5 깏;}3쿲g}>տnGnݺ>i)LҰǣ&Xcv2gQNΖj2YUnK7v+g>tf^u`c3"􃋙cZֹCZ SzSӲi˩,u6և is &];VzU8uk,mM.^[; %}vca mgsA ]=.2:nD}*5es\ )+Om&~SK64>ց2 z/P6t[31XCF;Ca o`%ndUVUuW0׀|J@Cr=9nQ>#;s1Ve%9f0wsqYP}b;Zd?ϼVjv?mߠX7xM}/E>܏^n>Pm{+khwꌴAIO1H8EƪYsl|CGae`ScN5}F졡uXZ7ӗ.%)d⫨?u%qU߁JuI$|jz4N m YdlķX=ہ<$I)I$Jrr\xN֬:c|l'ǟq'z~ ynOHZ)I$Jr~W+<صOJ7JRI$NվfuޱO1k}ob~OlD×Vz֯ןsݏV-ƊH5ݱgT؟Zjݖ+eX$u2jxT}eXny5.l`6d:EWt׍zxSel evwni":-,sk݇eO;V^*ɲݹn%2z|. ]n/,Bڼ*qko k~eq'"̯UzGLY4\l`-s[KChgjߓkls)< K^`ߪ=rײַWzfCEvP1juX>ڪXֵ\8 v>^.UX-Sn=8+XƼ>kTԛ]հ5}N˛efCfOơOSðYӳ"z d?{t!h??ቖ0[<0_UXa$K\z^kUYc*Sc{\p'G5ȤQNUUu벻XU}@q313nV m/m0vs :6oLNOMiz.^W>}6j9Y!ZY~E[ma G9xk򮮆=Ѹ$jmEfo/kp 79oĻ~6]\XM }7tAd~睈Yndz~=Zꩶ\YSaxtIOh2ǷVU/z-V<5"$ԫMcv89]Y3ڜd0{+NGռεk?Sӱm61Mes_'NԬky68 juIODI$,oUu7N7*?RINI$~OVf2\^Ck,p2\>"dI%)$IJI$RI$I%)$IJI$SԖWQ~~KY%)$INOJ70X=:՗MkKDTcu$Y%P/G/z )Id?{?K7QޡmJm^έrzeEyuNc}͑TWOgI2lJMonрl㪩P/G/z )Jkʳ.XktkI 8#C +7Qޡm_^oxS20px?nC,6pNx5P/G/z )ul{,2Ba=\gl}G/z ~?{?IN1cC.$<]2|Q +7Qޡm_^oxS^̚r1Gs^Kh>jnCcu$?OƸX%;CYxcu%P%:']GM%Pt~mٙU.~@me&1P9܄.oQ61@ $zeնڜǴ9Bֺw~hu: KlGŧ,qjMchkGRegM_Ŭ~W+<ؒdI%)$INN7*?RZ']GM-dI%9?[?+ߕlZʿP«`d˛V]6cX@pm,vAQx?dOnCcu$Y%P/G/z )Բc4ACR9iy.tvSkx?nC麶=sĖl)G/z ~?{?IN?xL20px?nC(W[*nI=Cxcl>zJ{\YbnwMߕ*̥dz1,u#imm%${ԒSgi][]V}v9#*՞kfMtַ {ݓE s어7kZ[328]FV&.uͦ,\c8K\0DCqpeTV.0ր)),6$V^k9 q_qk,:/:Ȯ;{t;^,--@1"~JI)-ͻ:̟pU!-qh{pQ+RV- ߑV>"ul΀.$ҮZwazAսFX eϷݺ[FKL5*9Q}vcCӻtm$L{Q^{0^_lm{a8D 4ن^^s (wQNMN"Ss,hsO}C$buNnYMa.FFVzd9Yݧ$[.r+m}muLqQ@:Jy'U-FFcdu<_U֌7d^ֶTPdG}]ktU}K+ S02~9pwVUMY-;#oA+Qmla% .$~AI%)d⫨?u%qU߁JuI$gM_Ŭ~W+<ؒdI%)$INN7*?RZ']GM-dI%9?[?+ߕlZ'g%z͋Y%)$IJ\'՞ZbA͸c݉YeoZv$WuޝAꌢFv6~={sqL yk\]ᢽoL#b}gk];Z;kVZ78|BQk L$IO5{VY*Ȇ5ay5{l.$DWwO[m\}6<ԒSbx.鵲ů ټ˜x.ia]ԭ鍷&9̥isXKlsX@=ԒS`t8]gj ojk]8{j7pxv:UB,=I kĉ+$Tf~MC%/vlow@iQZ_1驵?8]f:v{v2|C-}쭍dDuzϣSڪmuQ}wXK\Z6iY>׬/cmskw]kXֹkw䮹1:IO`t;tk0*(ţ:r^68umlfHf<-}5?*Xk̷&Aa*V54A 3iUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OVzOK{fa}Ulݱ]#'u>+~a4~ ;Z;wI$gM_Ŭ~W+<ؒdI%)$IJI$RI$I%)T}fd}~=VWW~ȝմS_ ~u/ڝ*܏9j/C+> ;@JrqU߁Y8?oIk$$I)~AYخ~6T[CAx?J7Jrcu%Pk$G/z ~?{?ZUEcKZָpvQSP/G/z Y$?{?K7Qޡm78CwHl'{ t'td1̫~82-Ji?{?K7QޡmUP9 N`n7ޜ8IMG/z ~?{?Z$'7Qޡm_^oxI)x?nCJrcu%PimtT;k:kDT]2h{Z ꒜G/z ~?{?ZLe x6մv1|QSPG~rsnΪ\\ݐZ1zi7N7*?RINI$~W+<صOJ7SI$?S{:M9y&1khm GAgJzg^ɧ/$cf; m~vH$']GM-eԖJRI$wtauN }u0t:G/z }lįY~Wyk$'7Qޡm_^oxI)x?nC+jU=[ǸX̚I)nCcu-Yn9&; NٗIn?7Qޡm_^ox1nF=cGQVYc.srJJrcu%P_ ʥām/m$h@s )x?nCJrcu%Pk$G/z ~?{?Z?j_w~Af#?{?K7QޡmҾquW[5s |SPG/z ~?{?Z$'7QޡmK9g7ݝUX!uc"(o!l,oUu7dI%)dlįY~Wyk,?o6$YT}fd}~=VWW~ȝմS_ ~u/ڝ*܏9j/C+> ;@JRI$I$$I)I$JRI$oUu7N7*?RZ)I$Jr~W+<صOJ7JRVC11ʰ9ͥyks0ִI*:kUܻ+lDn^'?Wx[pCrޫ̲.˥nF[:ioi[QkcŖM{]+w[>ܬK~qD5tݏk"cN}P0m}C[3rۗ'9֓ 9i ~)Ku_]G>ӍdFzumOww;KHh rӾ[Щe"8'&PpuWWUw9-~Y.ܬzc)eu-m-k}:1˭vDAf[:_J9_i9x5Ⲝ쩗ݫvEN7Ԝym/9dߏESֱ`gik99:q3:pqz;ps~Rm:dX_Y" \Ǽǔf&ϫ8ug~7e[3́cKܑuIN:@f};p}c"3Uv7oNq;3<r.~C{w?I QЪl-Nc.p-Y[yqה=_tS*~?Y]y,v2 sAuv-*gV8_iʅn^}L~?h-.YWٚQ65 nünXӈ.9IKhgv-N=e#f&lzUuo}m]{x慏20qqqmk{ iW]~A3:2B1>;C|!s>))21.0_/ޛzOmh0I;5o@^?/slW[,i!Ct4ZV55dY\,s̤g0:QMŻ#+({Z6t JG.Le`ه~^Kf!)Ƨ^)x`z6cqp>P:@gM=O*0mUı Һ&5 W'Z{slc,::9q#~`P}GteULW.eIJY8?oIk,oUu7dI%)dlįY~Wyk,?o6$Y$IJI$SԖWQ~~KY%)$INOJ7^bIJI$RWSgK˱]E6I`nv]@`.at`uKַc^/8εִ2Ƶg8< ]_oNvn' 1̡ eMa+nu^݇CQ[6S`!sw7iIN?'LЏu/`tHp,L?Lɢm.ckmi[t'w+S? o{۱C1iIN;kY̊FEΦ( u@cZϤˉh3e\-uO9isCHۇUыVWl7fߴVA h K '7ܛ]hkܒCh%ޙ.{FHnվ2xnkYC }>넷s$8hLm;I=2ħ7=K3Ŭ~gxM~ UuZ*9,c\G1%9gֺKccRl\]nudA cg:i6k_eN'v/7ۋ}gܷ}V,pv{%w1jWSiܤ_냣?{qqsV)+~װ `T[ct|jo}=݆8k\]A m{->u;kMn:n{,c\=8imMӱ62]~$sۢJC>u>}=Mү'k([h{d^4y';GJ9}=|X䳾Νem~~1sc#XWw@.ؓ!t=i_}d8pm{|h4X)nݬkB46l :}SS+}kr`"JRI$I$$I)I$JRI$I$,?o6-egM_Ĕ$I)I$JrqU߁Y8?oIk$$I)I$JRI$I$$I)I$JRI$?,}i'-9O>X)nݬkB46l :}SS+}kr`"JRI$I$$I)I$JRI$I$,?o6-egM_Ĕ$I)I$JRI$I$$I)I$JRI$oUu7N7*?RZ)I$JRJU/u2TaېknI~كSO֯w#RSO֯w#RO֯w#RSO֯w#RO֯w#RSO֯w#RO֯w#RSO֯w#RO֯w#RSO֯w#RO֯w#RSO֯w#RO֯w#RSO֯w#RO֯w#RSO֯w#RO֯w#RSO֯w#RO֯w#RSO֯w#RO֯w#RSO֯w#Q:oRGk {{{9쒝$I%)dlįY~Wyk,?o6$Y$IJI$SԖWQ~~KY%)$IJIUåΦY<{r `10bvi?cjJuY?i?cj_i?cjJuY?i?cj_i?cjJuY?i?cj_i?cjJuY?i?cj_i?cjJuY?i?cj_i?cjJuY?i?cj_i?cjJuY?i?cj_i?cjJuY?i?cj_i?cjJuY?i?cj_i?cjJuY?i?cj_i?cjJuY?i?cj'MY=;Sv54d{c{`cA=SI$,?o6-egM_Ĕ$I)I$JRI$I$$I)I$JRI$oUu7N>Z~ yOPZ)I$Jr~W+<صOJ7JRI!dl{/^XZ˝d蒒߫=C"ԯvVOJ/sՐͬs֎<#'gVov.6C}`籬swgl4Jw\gnӨ7"tk*O{Mu. hm踸x:+cdkzu?j\ߦak6S}Rz?OM[%c4 z;H][G6߽)dzGq&<4IO\uu>VƗ6myC[l21o_XuYTaٙvǰ0RSzٝ+97/s,ukM[x]JRWQ~~KYd⫨?u$$I)K'g%z͋YdlķX݁]SyINI$I$']GM-e֬{nTJRI$?o6-egM_ŬI$$uMX9װ>`󮕖N/:jyvu<~s.ݕm[c^9BKu,~uwlM.'wŻgyAhNۍ>ۜglhsAuPgm,sw8N)$I4Oּ/8|D?V -LDdp>}ʳ,~0uZw=[s\ٴ9 n1| )K}igT鹂\2Xc-nډHgdQwMzMĵhLnë-[›z7zoyIMLΣV%b:쌝ƺ,e}b |Y`꿧LϷ]:KX,vkSҺ}<ˡTVuYwk}[ɿ!5 4$I)K']GM-eԒSI$,?o6-e`wvKGuO}%:$JRI$I$$I)I$JRI$I$'7>t*`|H)ok Qf.CwW` sH8 +=Q( nl5@X8 O)IEeV8K\ BJr~W+<صOJ7JRyBlObt`vmyO Zm>$j Q$G[:.FƳZac+4L7&7΅р}Clmoְ~H.78Yޤ4L21z=!]u-u oL;ƼVzSޘ~_OwI\Cc84lrVoNNGQƧ.=VZLM5c(cjW[kZֈkZѠ$OP6b8zAkcƠ9u^VY`o\=6N.19ԁ0'TS^rmƖ)ԇykEƵ7hHi/4'wճvu&\-> fOlrcйuW vFוWL5*9Q}vcCӻtm$L{Q^{0^_lm{a8D 4ن^^s (wQNMN"Ss,hsO}C$nAٓ{X]Qx/pNnm5Yd qkC. p:V@@:Jy'U-FFcdu<_U֌7d^ֶTPdG}]ktU}K+ S02~9pwVUMY-;#oA+Qmla% .$~AI%)d⫨?u%qU߁JuI$h B1Š-qݿ|oZ㓘~&RߋAģ;\ A摨p"AV{zPuk:hp=WqSA=S,pA $lįY~Wyk,?o6-dI%0ڞhk_hi5,k=?^K:}DcRWź,ȷ`k6?!wv $nՏU"EŲkd_g*~F2~fdeu-1mK+ګ{65xUhckZk@nպE}+Q{`s-k ݞܓ:'ՎctΘzJhVh@s~rc"Jr:F=gѩSmU6LJ(Vn-wӴYu܃WEwL6;,k\;wW\DA$s:fk:5}bѝfm9M:UV_A3>}5rzf[X }0+G0EzzU1&G*JRI$qU߁Y8?oI%:$JR4tjsEn8lnߋ>_Zķq?G,ϵt7, ;9N],}&|I$I$$I)I$JRI$I$$I)IABtSGlLac~ĻBN5*I$U>*V54A 3iUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OVzOK{fa}Ulݱa~ϝK2* ;XI% zbϧC#JRI$I$& Py IM~ѱ2ۉE ;@ԫ$[UW/clƖY[s\s\ӡ,W)ֲI)U-?M/W)ֲI)U-?M/W)ֲI)U-?M/W)ֲI)U-?M/W)ֲI)U-?M/W)ֲI)U-?M/W)ֲI)U-?M/W)ֲI)U-?M/W)ֲI)U-?M/W)ֲI)U-?M/W)ֲI)U-?M[=/ǩzVvƶbJJRi>u,ȪCX$H5a$ `cՋW> mmI)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$q䒒$mݕ#aY_l9c65(k*e7]o6k%%IU=9.TKnc\?1<ƃL?j[:f&=zr-#!>ִW1s<$U%_]>F_]>FY%_]>F_]>FY%_]>F_]>FY%_]>F_]>FY%_]>F_]>FY%_]>F_]>FY%_]>F_]>FY%_]>F_]>FY%_]>F_]>FY%_]>F_]>FY%_]>FudiĦ̋y֗TmPԒI%)$IJIeeu>Rޙ114cӑmƵ\7~wOdO~wO~wOdO~wO~wOdO~wO~wOdO~wO~wOdO~wO~wOdO~wO~wOdO~wO~wOdO~wO~wOdO~wO~wOdO~wO~wOdPXnOQ&JlȰWiyeM/vL 5 g )q 6,m;"|RRDLFy Y |oH㖑\4(lD}J˨^kԲweķͦ`=NakCxݵ魯>P땜&d.;C7;FSuΙm7cUva1Z5o#%=VOLm{]%u-}w>-oډiZ!KwR'΋C2>Ӭ1vWUΣcv;sܶ:$<1 "Ar ^_Zoc>hd7RSaC֫7ۿӑlĪ=OWӲ0Gf ,oIYM=]}K.O"YqmmsCc?kˇi#AJz= I10̕%Ϭz{fx!PĿxݼlcT}I4Zm37'XL!}2>))Y?[?+ߕlZ'g%z͉)I$RYF#ײi7XY[EEߣiݯ: )WQ~~KYd⫨?u%I$$񭉉wܫ/B4_C_Kw r1?Vj7T ]mRϳ9optIOP^ƖA0I RSkl[  atnOP}VOLʳd ٍ]osd2sOT?3.1(v3__n'l 甔i$> __>2?hzzxghǀ$7_뙝{wtle7䛞Z?B{7`75INJOݏՋq:UM=Ӭ΀ft>gSncq֚K*J[;y"8SrǦq׾qoc=<),pk  I$Dz6湦APA C#df+U}k Zʶf&6w&Ί1q\ҿm]V킜F7@oySk,0 `shuTVultas{-v9w[!L5]2JRI$?o6-egM_Ŭ;C߮ч&-};=eukm<5ÂW+5~k_f}gIQC_:d_vUfk74Ϊlλ rYX}_U7b^>S-j<ƼhI$$I)I$JRI$I$$I)I$JRI$I$$I)rօ?3,G'==hS??"Jfөs Hnu%wv<}yy9؝g3]`Ɛ) SӬoUu7tnN~#{x"{8v BԒSI$7Sd{uh۱{~4{zoJ^GIgP݆8kX$}P}aBt8>ka st=Աׇzq,wTmz"I)1%:=WhuUm\K9EWPfaz1[;sak3#ÕJq:fJ=7-`kk汤Wg=k[IӲJ阹mTnswBI-SMΐ3cT|l1ememtZ-k,uu@s۶vasCna$؟Wz'Tן-_Rۈys^O1NΣ]7z4X*q@sNI)纎6V͆{ܾs@c{%9i:+gQZ׺.I`o`-t;$;՚-u/ٍ@]MOeg՜nzetێl{@6?}9.$Uo/ lJoVj̵ֆ+i]t_V[^ dgdߝ?!I%ϒI%)dlįY~Wyk,?o6$Y$INDшurM9cQwAkI$']GM-eԖJRI$O/7IS^ǮRnyẌ́_PnA%+z?T6qhYvg2*ƶwI%88}'+t̚b_l1ڙVEGGavPq}mb֗cPmC't$JgQnKWm,8@ 9C'U^װ:>~=oW?hYe׻lǚIM+jcEߪ9 yݸug۱O}OmNUې`Y$cadz7.{۞11}1sѹ13Գ00n'n-m)=5<+I$II# XI.8,wl#{f L6z nC[i*I)e94;aclFuUƽӳ,^zN.#pkI6:em1<]I)6W^GS]N(U&elv^uI .$RI$lįY~Wyk,?o6-d?Z9_CVի;}V63Ӳv:x><f;zJ{WJYpxc]`8 fqZ^2)}"[״:J[s\+w{rJKӿ_B?&$$I)I$JRI$I$$I)I$JRI$I$$I)I$Js>oOL??&OZ4ȒI)WN)4]}Z_<}uQ/XvfE5IJJr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OO47OZ U$I%)$IM,މzk[dS] i1$OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ_OStIdS47OZ FjQ{ugk;>H$xb1lZ jd<^FGT{êʱ4Y;E`JR\+w{ru? ܒ?&*;O+ )I$JRI$I$$I)I$JRI$I$$I)I$JRI$ϬG'==hS??"rօ?3$h9?TPe;.aYԶz63=ꨗ$W27kwF}~ : {'F6-n;1ݹ٘Ǘ{6"WQ~~I)_^oxx?INOnCcu+Cm+ }ys?{?K7QޡmI%9?^oxx?rriĥ["O:5$wB4toSe4Vn]-f;nCcu+~>]LƇFRʫ}[ڶ>מkINnCcu+9}Kx6\Hobӵ *Jrcu%Pk$G/z ~?{?Z$'7Qޡm_^ox?[/g~\ٻǂJscu%Ph^j_{6. Ύ4jc5SR{L4!%9^ox>պgFTuۇvCexE1hvtK'g%z͉)I$RYeLGf`],mT)-.sXmogD\ OPcˎF=^oxWQ~~KY%9?^oxx?INOnCcu#u:+e4mm6Mo {)apǥeFEVcX\+en $nCcu-e2 un뱚DUrVzj"Ï ;oRG/z ~?{?Zʖ_X9ju c[u}6΍.߱^oxx?INOnCcu-dSP/G/z Y$?{?K7QޡmӺF۵@hJTTvINgnCcu+˥O$X$)x?nCJy޷պgFTuۇvCexE1hvtc,c5<t!elįY~Wyk$ޤK=;;ɱꯂ[Ev{IZ*K9k"?ԾVpz=[INڥ\+w{ru? ܒ?&*;O+ )I$JRI$I$$I)I$JRI$I$$I)I$JRI$ϬG'==hS??"rօ?3$kǎ;-k,G-Ns/>׈z_ce=ѣmpP})ԖWQ~~I)I$Sp/bt< K1^+PWcfZ kNU2~gu^em_; ,9Ipun}˥8m]y97ˁ՗Mg^YQ>S+O'rY[po,yPEX 63];uγoYFw@jimuLV%mK[oP\_՛8@"!ߢHXuVu_\*r(CWx.miw~Dz>Q%"uS-˥7Y~L+_k{+?YzN}Yev֟;&A/i;Z#iofFet-lmXp[ƜƊY;'7qbf9 )?Jo7֍Վ} @kG$*5Kq nQ-Gl<bdRomb+$OdR}5+&jʻd>絑&hH%j\YSeiklf 9,O=\nc9tCx^[ ,ƶCak2s]rz_J극2P8UљKvPkXwNVk%rNzoy Jt,l]p8/piv2RSޡ:_ Λ3-ȧ3tӶXLV8uS?I{Ɨ8}2;ha]z/cqc|LP9Z:7 y<³_KoV`m lZX^!|RSOP8[rcn݆js,.#NV?]MäӑOTXk?iʚ6 7y.'be^MwUo2][&7K~ҟwSb 7HR]X7CZ3WK2]{/84f=Xg@09kNE,WA3MgwzU̯'[tM!uh3$@:OMa7mĘ8%7OJ7^bJuI$N1wLYP c NI$']GM-eԖJRI$Si?PcWoSNGW`Y|j^+A}266SVY=31zv]@mLvw-cW^E 79[{ wix. )=NƳOW˭}C"^ƜJ*D~pnFVwOO.k6Wzl֒?'ϰ97PƻfCIշ5~cAdiv&MwzM{`)XY:u}kt/˭엍=:8"ͣ{wtzUQ6WeT\4]\ +/A3l=O 7_cp py=1V<52:\ҩe)DzVmd8 A֘ӳ㿩cu&ӷT4uno$;WHnekj} 5]SC,;Unw҉]%2tN#}l:,6p1멻{NY[в_@X6W`ÃWnVL}U\/.]Tm>iA05Z9eщe/!6 ̍=GJs^wa>iW>&s BY7ct`6^m!βƇ K`W0jCZ\\65oIO.*W]}OYCKXV*/N?+'_oOADCgT 2{J}=,bRmpsZC>Εվ81_kC@vc@ )[xֿ:ާV=U^q'ul۫X)`kҋ\ec_ahhv:vRI$lįY~Wyk,?o6-dmU3__h/g-xj?lOo f5Ȩr/Ԟ_\ nm~tKl]$]oE·+[s)/Nk ¯ӿ_BI$$I)I$JRI$I$$I)I$JRI$I$$I)rօ?3,G'==hS??"Jf~tLo=.ޛYt>굚cb5iZI$7g[pzm]Jŭ2=j|X<RtϬy4:6Wf>.FKK8` [ϊ,c\Xe DRINOzs/ӿ*I%9?T/NC?Y$^7;yR;PnwdS9zwKr=CqʵINOzs/ӿ*I%9?T/NC?Y$^7;yR;PnwdS9zwKr=CqʵINOzs/ӿ*I%9?T/NC?Y$^7;yU=o?u<\~e8wS?gfshc$I%)$IJI$S~k:gLrVF+#%[^qr=CqʵINOzs/ӿ*I%9?T/NC?Y$^7;yR;PnwdS9zwKr=CqʵINOzs/ӿ*I%9?T/NC?Y$^7;yR;PnwdS9zwKr=CqʵINOzs/ӿ*I%9?T/NC?Y$_Xz.@x8Bp簾~n[.I=F:kX jJI)ÿ[s|Z,n!v'U:3hκ_]5.9>[Y= ө`{?RSu? ܮ]oE·$;O+ Nk JRI$I$$I)I$JRI$I$$I)I$JRI,GtΟ];'ZYuT #RS.~UQw:r:~5meĺ9ΥR~Jj}gV9?BQMo#)i%3I%_v,e4Wk:AcKZ^a$:|XWSs:mF5O o|V}+O9z~dTvon5;DS$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OYY\rqV 7SevWS^ǶkAhRS$I)I$JRKt4u<<|OO5 nu }F'h47OZJuY?OStI47OZJuY?OStI47OZJuY?OStI47OZJuY?OStI47OZJuY?OStI47OZJuY?OStI47OZJuY?OStI47OZJuY?OStI47OZJuY?OStI47OZJuY?OStI47OZJu^9堝1L.g7՟W:N7Jprlk5sX R\|ڽ\wp pk6[}?[qꔎ-ǰmV FKUS/8pZ Jfu? ܮ]oE·$;O+ Nk JRI$I$$I)I$JRI$I$$I)I$JRӺSQq˩myև@pk $'iUn5M5c(cjW[kZֈkZѠ)ϬG'==hS??"rօ?3$kϾ_WMɇZn+ǎ=eRac=%>qU߁Y8?oI%:$Js:[*77c^eэwZ@$pNeYV.65YnYՋ]mٕHؗ4W32nOPdUEͶZ#aK2K2>zǢ)dmV5>%7Jٝw ޳܌<ߪ+״KutYs=IO`W^ȱc1I|iqgdԘ_v;s 5ޓKFʺ5asN[r߽mYGT83C4 U@tk%=gEγ|kCNCk#ِ*mKclk,#ұJz7D79fRE61wk=eNHhLL4:=:5kninkuXn=_[hvvmnOi.kFGGwY{x±{8Ahu /sI"]e.6R_kju.lwfgHIM_T^0ajqcho[aIAl.auJF m{q40 ?5%6R\U}]`W}eԒ+WXs;.pi=LwF顔 㱅5L[m \: nkpqIV6p ,{<4!حkXגDCu,J1d}&tOiqRhƳUm9SUع_7,oӮ-o U::{c^oפY?[?+ߕlZ'g%z͉)Cuǵحm8ǻk\= ymk9:=%5=RoZl2r)x'UO.ks'"]w2{y\INN7*?RZ']GM-dI%8[z_՞gY(]쭛_hu꘽׍_.7CkfC~yo񭗉O[}/B8C˶LpzgO.*cfu-k m:T?F,`@>a׽S@8Gz\Ѻ#iuQ]qqӍYb5>:,SG֯OméeY;ⴘаxgV]5Y,k^2UV.S#u̎SsU{]zs ԰#VոÚC`׆ϭYU߫;Nʭc185{7uIOX^}]26\[]d;3ς~Ү X17P_ek]ǵHJz?z~zϳeU?OLClߩx+_Y7>wO6kNAs|Dkur=gc`d[(y>eb8YkqnE$$I)^bY?[?+ߕlZ)Ko a\*b6~#q?9_s>u>>fW?'9kM嶍?[s\+w{rJKӿ_B?&$$I)I$JRI$I$$I)I$JRI$I$$I)I$Js>oOL??&OZ4Ȓ쿬}@nfsʭ.kl=zs0m̬[E5[s]IIN7*?RSTW e.ߣ]x<'cM&\|w7#"QfSl;SO֯w#RO֯w#RSO֯w#RO֯w#RS?`e?쾉z޼n?t"WWt}WWt)Vu c =i]An h81,j5/j5%:O-DxksK~+Ծ+Ԕ=[{BSKC+kt kDg~wO~wOd:h嚺oǗ:dvh 7?Z}K?Z}IMdmcb06gЯK4kKDߴj5/j5%:nʃe-l#p#O5_]>F_]>FL|KNKYFK ,6Z[IA:[X׋ݕT7:泾+Ծ+Ԕ,?o6%_]>FZ=Stϱtُn?띳conRS$I)I$JrqU߁X8k_Ժm5d㹹P溋2#f.@ p_]>FY%_]>F_]>FY%_]>F_]>FؚT[ݗjga>lVO~wO~wO*h嚺oǗ:dvh'?Z}K?Z}INkQ.",j5/j5%:WQ]ὋCOHFVN%ad;f@cl,25dWWt}WWt)n63qv6\79NSMxU 8>eĒ~+Ծ+Ԕ,Лկs+V %ƿTZI}WWt}WWt).Duf1cTֆ2afַIs:+'?Z}K?Z}INK'?Z}K?Z}IJ^b\VOTy3]>cۏ}lXn=/8' JynFOHgޟw[մA->\5 ['f/KǓ^%LA`|/ֱ1!%5?cu%Ph3.2_Y/} H,& ZU[]xzlf7 gyuwo47Qޡm_^oxI)x?nCJrcu%Pk$G/z ~?{?Z$'7Qޡm_^oxz5>ݮ~Ɨl`:GrRZ[ȘpBJs?cu%P_n].~%570>1'INOnCcu-dSN:6R><[+,.{CķX+{s 8-$>pW+<صS_Tu:z7Tv]MavwerQّ;Տv GZo__@XY`iIN\+w{ru? ܒ?&*;O+ )I$JRI$I$$I)I$JRI$I$$I)I$JRI$zdt>&K#unXX նLj:_2΅f?̹>m )^a0]gkAM[z םWbX 0^C|IO,oUu7N7*?RINI(,3%_ ]s0}e7 [[vIv:+?E_oY6>*akˈxۿ Zi\H. lh1|J/%yU{_Ӊ8s05זsbФ~uRU#s+&]U_X6>J_]+m-ecTebztUnIPL^V[}'Vnt1m<8˘ks~!<SOP8[rcn݆js,.#NV?]MäӑOTXk?iʚ6 7y.'be^MwUo2][&7K~ҟwSb 7HR]X7CZ3WK2]{/84f=Xg@09kNE,WA3MgwzU̯'[tM!uh3$@:OMa7mĘ8%7OJ7^bJuI$N˫#"T;kk-INN7*?RZ']GM-dI%<6憵kcX:-א'W:%_n뙝k4~MMa4ʫks_=Mi^W:O[.k Ⱦ.-7x}>jvt.nF6[o]W6Ɛv [~e%+`W0jCZ\\65oY-Y[Υ9.^.k.|JJt.sGV419Xא>'i8vqdౕ[Y'{=w:?5 }\Y67T)&,wГk5V2FfSs/7 [Si"`!ʭcw{O!)KqgYԍ`ȱ6Cя]MruT_XwHޅ|Ʊ? ~. tZc~9uZh,ձ5H ϻ.K.y ATdi88 gNZNu+_ޔ]e6Z-s CG밷qHI$'g%z͋YdlįY~Wyk$'hY+S5&Ϫ/eNeڟT-ϯOX`?7_<އ/zUOƼcE4ݭp%=c3.ۑ MdYY_<6Zݾ,IޏINUS~>BI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR͖挚$ѐK7FØ4񂭤ڽG 0-|i~SZ7јm4_8ȑ-DSs//]^԰+"Y22iuY8l|\Unq{IǪn5RG*Jr/NC?^7;yVI);Pnw9zwZ$'r=Cqʗzsk$ӿ*_UJr/NC?^7;yVI);Pnw9zwZ$'r=Cqʗzsk$ӿ*_UJr/NC?^7;yVI);Pnw9zwZ$'r=Cqʨ}ax /þ;5eocD$]*I)I$JRI$+Y>edӔ0p]-.U-o>(UJr/NC?^7;yVI);Pnw9zwZ$'r=Cqʗzsk$ӿ*_UJr/NC?^7;yVI);Pnw9zwZ$'r=Cqʗzsk$ӿ*_UJr/NC?^7;yVI);Pnw9zwZ$sS_}53vkw>Ɖv0IB@xN,xki<S,36Ne020m0Fe =ǰ( p%9?s4Y"_mzOpV[Cִ@hI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S endstream endobj 392 0 obj << /Font << /F20 12 0 R /F8 6 0 R >> /XObject << /Im47 380 0 R >> /ProcSet [ /PDF /Text ] >> endobj 399 0 obj << /Length 313 /Filter /FlateDecode >> stream xeKk0KOA=-@%XMLW~ |,3΢Qj3tq>8܂0 'l2J.Ikt zDMhw{BqyCkߔM/}0 _LrET_!}ֵޔ)G0:`YG9"&;?-&ZiGN ("Cxgf keqW*` wy@W $G!Zru: =JPtNTÖP7]//Aj+Ey~_s; endstream endobj 398 0 obj << /Type /Page /Contents 399 0 R /Resources 397 0 R /MediaBox [0 0 595.276 841.89] /Parent 400 0 R >> endobj 386 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/WFSsvg.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 401 0 R /BBox [0 0 262 563] /Resources << /XObject << /Im0 402 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 262 0 0 563 0 0 cm /Im0 Do Q endstream endobj 401 0 obj << /CreationDate (D:20080725165217+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080725165229+02'00') >> endobj 402 0 obj << /Subtype /Image /Length 19187 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 262 /Height 563 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,3"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$rrp,˺wCx`5ֻW JJLGinKZ6,k[u;xO̶0iȷ2+ƽ:\6֒ZeIT+/\{hWk[6 CLKJOc~KNyIMLұ1kǣExݏsLHm%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S_/㘬*|Sa%)$IJI$SEjkX1@Oyyf3s]_R-iq5{vdmWk,}g581ֿ8'}5XcROk3Wz~n^;@VqcEtT EqlDu΁ղU}%}]' { w]{1mzN1'{ZGIO?YΝ,{c&Cr[ӠNkgU}uma;paa$l;o$6uJ[Y݈̆"ה߲lks-q[:q~5exͥP~JAn=?s2m~dөDջO47vk)SUN|zlbǸ}[c4tR;}\H: ?[6Z}kG঒JAV=ռ9V>T7/GX=>To6ّYX+k$I)?V|)bI$$I)T I7XG eU_Z.7m7NxU|JI$$I)I$JR<~h'RP?"J|>m4,mO? Ip[[t ǿt@`9Ggw,o$ Ipi#bЏ{'w,o%C`faǧUK="9㧹yBş)GI3.q B_e\׿?Tr1]k]J頉ˤL1Mcۅ%/wz\8:0cq9zH?7_$41~G?7}]sX+ ς5.Ps8Zr%9#z=*b q`kF{a]U/q]h _VtI%59¯?VRI$I%"mX+'X'*u}+fԴ"$$I)I$JRI$w6TE5 $%~e",hmNpݍ]|we B~`aN?O©UdWe?mx5YótvZr$U si9cӎƵ1\VA{ G3:r]KE{wkwd$n64+m_'L羞(+9«ZdqnV=6[cOFv5;gRK˛lIПjr:_jxG~7mVSc鹎X<i YğYɧ+;~;1ET9q[ Նӯ]qK|h^y8?#kM7Ri!~7ɺQ{D i5U>_"ܾ+=3R?_]vQȘY]y4ѕM X8A<|ޚCq}ҿ۱r/WF6YCic|uЁkzWcǵQOSgk`hP}dʴ^/1_>b>׵ߢ9wJ#Y_=b=; gS+ʇOɿ@Uߎ̋ZM{7whRm:)*=3rncFȟ^%^IM|)bOsI%)$IH1}we=]h{>XQ1}E6򎒔I$$I)I$JRS.fȒI%)I[^=m`i 9]74QI%)u$ԹE?RWR7s_ʼpEF/C^y8?#>_"ܾI$i)$IJ^/1_&1\$ ?+'BUX  eqAW}lSvXz{6U}-TMI%59¯?VRI$I%#9 s\#ݵ_쐈M3,]qA%)$IJI$RI$ $?B{¶R6:§gEhg/^8'\T{;lt/O_c*VGFHW.U Sm"кV\z~s֞f4\Hv[1q.]ʨv | .^e5}FDn=n $.g_ mBTlȭ^8%r`͎pKlt/OH^pJܪ9c*UL<|f ր0C I;ڀ)t*u`GY>2Y?P몺cp{ֳI$S_/㘬*|Sa%)$IJI$S_:v}*V깶4ixܖ2>ODIJI$RI$I%)Blj3gOIO͠_HAQRIjW6oWXQ(ے65Rm'I$S_/㘬*|Sa%)$IJI$R:eO홹WɁWƮ]mWJ4 )I$JRI$I$(]͟?MBl)u=?꾷Q2v۬5YWC2k σrH97fdۗ^[k y.q9+N@ʨ9 ]vqz?I Y̌<2(cnnӬ`&tk~{Skcp7[鱤: ݳ<:=vݵْnu@'N;aQ{ ݿcņ95=AO^?.=/긕fzTU9 " qZ,e_ӺI)?V|)bI$$I) lȬ,5dFPTa7lskGl)$I)I$JRI$w6TE5_[9p |J~qIu?Y:;#=gi֏G]_6YvM/l?{^? ~yE?RWR_e~53gZ}igYٸ.af\9 I 㘜IH^y8?#K`Z?XӍsA!mx*Hh 9$_Iue~4joS]_6YvM/l?{^? ~yE.^_ݧ^CdNXj:Bp2V^^#GmW})$=T?!s-}h3KnYUlI$S_/㘬*|Sa%)$IJI$R)uVXcc^6#*־˲"C U? )I$JRI$I$$ݱ;A?rJd90cpԏX5?x1x5 34I7VYo&x1x5g`}c' GcL `0~HLh j|޵$?u?TǾs܇=<3nݮq""$oMy&7VYo&S?+=^y7VYo&<Yg?_wWK??gк}sQԫanY;u"&lN(.HLMuʟkLc5`DUcns }vU7OI$_1XU9JRI$I$u]?ZGD*YuϮaWRRI$I%)$IJP?"SSxaqЕ4^]:ΦB>jk]}`i0=Ĺ DI)u$ԹE?RWR7s_ʼq5plGɋ32O,~mfn_O1hcRIΡIklʵCCp`.LIW -IJKnF&v>hh}̤\1ͯyu%PHQ.^(^csag~s4m= s,[jm'v֍HI$_1XU9JRI$I$7ez1ҫnM/,,eM%)$IJI$RI$ )]͟?%?9.@mYn>M~δ_!rCK 2ԔDsČvzgՏv>6{n 5EgP~?`y=.,ʯ-=W<é5v6l {o@"UuUNܖ 5{i4[&][c*u!Cɴ8Iu2,0*H;\ş)GI Hvܾ~&s{I W'NۖrZZ?G=O^pEF*|E}?7̕O_\]y=y kZKN$` hv~#)x?$V\o.kefӎIVmK>Sx ݺ415wrm{_/~>o?SӺn^ܭ٫o1}e1Shc>^U&1w0zuӉ}'JI)?V|)bI$$I)u}+f kZ1}we=]h{>XQRI$I%)$IJP?"bi J~pI{cw8lh=vq[$ݧ~/ϫ{IycwI/ô⯻O|Uu$Իo>V+]7E9C/UMu jOnNfx×d$Hл?^ob5L2@TI}☄Ď$Lb:?ϫ{IycwIZ;K-O|U%_}XKϫ{I}}}&1\ϫ{Kon11ڛ[|"ɇ ȒFm+{k>n ~-k\Ue>ńxC\UْI)?V|)bI$$I):rX[c5f7 `Aݵ_쐈I$$I)I$JRI(\HhCOIL_<XrӟƇ׳&{_gIY7֡ ~K %9$ou#3Gއ$ϿXS.:Udߑ[pu{u}ba:ϕ04;.0%!)$00ӯϤ3tD"T0{)p{uula9%8 oy p/I/ou%{_gIb>?tA$}/߳$6VF_ռK2lu٫K}IQqI4aPU_[+ݷ鍾_GtՄ*u`GY>2Y?,RI$+ _1XIJI$RI$ V_dϯ`F>+ڲ31enŕm@َKvĝб#fs-}?sKpS,x߻o['j\'u$Թޣ @ʮﭗWv׍L畿..bmM'}}ncx|b$|h^y8?#ogWapɥ m𗀼iu^qz{pm=F  Z`U>_"ܾ$^L6̡cs\XZt |idCVPY7uv`=/{KlK;W%O륕>׶f>!O"JA~v+r*k [Bn7v6V[awV,}t]ֆM.哄֍l"ultn$펓sq䗗}?ltn$펓sq䗗{+\״=9{*} wLh^\?"tnb^,%鶭IkX VIjӞ[rmnKid2[[k9.xkwiNuӋ}Y,.mٕ=i AX&"(ʙvbz2[2F˳1meRZUexC]VCykݱ v;I)K&1\Q{_/~sag~seQhU`A k`XC_`7l wmil*MSE8譵3hhI%59¯?VRI$U{\@ý>bn%/vSk{ҩM*¡OQȶC`ffZlIa_KZd8φ%<׿Gan}jͷ;#۱npm7{1a;??ؤ6usm^K1~K{F =MYt#\j,HcDx (g:GG jKHrп?? Z a ԟ$8r=Jp_M{J?a;ϬەY+ɯvI/ϴ⯻COp_Mt_PuכiX\{ {\|$&$ |)q_7uN6l9s|j0/Dbz3>#nWKf}eGܯ&%7?b;ϬەY+ɯvI/ϴ⯻COp_MzԌ\F.S=;0eǖ@f\ 7xc'QH4j"gװXW]qAWƲݔיmwɾNqQ26I$+ _1XIJI$RI$±P}\ uݵ_=)QK% 6;]ub:JxӱQ\N?Es b'fnK(;\6Ah;Z^ֻ5kLƧīyȺ[[Ze7c!,5E>jHYX$Ekl̏ߕgc3] I oW:GG Dп?? WnfȭGZvLzm_mJ/0ZnDWG+ l~cTFݟ_Wm҉crE #\~?j>}_mJ-}`8>m 6~Z؝_r?RWRnN[a) ;ǞrVG3tԅo.k=&} s|VمX F*أ1&IpĞck}W"Cr=6DXܯmQxu7W kbwWXܯmQ/u~~W($Grx}crEt0*8dW 8jFz^/1_1 oSLr$lu_k3KnYYS{I,t>LU$I)?V|)bI$$I)=; gS+:vcc9Z'dS`i63$ egwdL"M._ɔdY%22]I{p쏺ļ7H>/}RKۇe}%®97+3gOSP?"pf?9#3 -eN8k|.l!!]Sl}=yUn7PcqUŎ}E6SP!zZh:r Vψ.>>݉gPspp uMnipВ"%*V=6UmaDcݕ`A_yU?RWRWORs+ckwC42SS@aN"c-_e7GSVH/L1vzOV1mמ'O\z[p`|MuxLlk2jn{j缆K5k}+c+'idY=;d?е"HhsEH@%tѳm_]ّsnC]]ik\h%Rn"$?˺d.^(?V}@]>H{nW>OX2ݔ烵W?T? ާ(:ޭkrՇPX57e-MM%Gj:7OGY}]vOE^IM|)bOsI%)$IHUe>ńxC\EU_[+ݷ鍾_GtՄI%)$IJI$R.fȦw6TDI-W9HvcUKKr]2,n] I)K'.Yğy_GU/L1z[2I$II$JR{_/^/1__#Y_=*ml>dD )uVu`+~lTII$+ _1XIJI$RI$Ŷ]Xt7?ilǷWPG,ȣ"AHlDOMUgoVX&t> a$LME$(WCRƫ+I;[CCUzoKWWCWOzM]jFN9ւHK$OcPR=ϲ;m gS+:vV}*f-k\W$I$S_/㘬*|Sa%)$IJI$R z]OwZπ~Vt .uMpk~oGIJI$RI$I%)B[S4!MBl)0G:'v//2Ii Pqװh;4],_eHp\swX N^M.!k@Xx<]_(?u(Bv NFqG~ﲮ#gp7CNMwמ32SzSP'~oWea4ŕ5/,_e1@q+~n_A/,_e>?r?`Wx/2oG+}_{.2`/krF1AJFF:u/JM/ eqAW}lSvXzsJUFa$IM|)bOsI%)$IHuE s\ ӯifEϯ`2JRI$I$$I)J3gOSP?"J~r[/ΐKÿh_Ux͝ 8cO`γ[b&,.ǩحήV xkZVpmWqp}>͏s)u00R]/sAD Wٓqُ=YsCm KdǴlιOjѦ\: (;Ty;b;3*k>+6luYH$!f5#9`{K\CX챭@08@> ?RWRzgលC*N+S^CeX7{ﭶ'kp(ejW ׹3^醉;Aq ^u6r1pke a]GL{ ~KdFGڼiӱzy¡:-xt骧;[Y|]xuߕMVHָKH<IY陟'P};wznۺ Lx+ft9~=rkm6GkF'<# Y{n ^ߤIkL`B LbWxOX7}[Ųjyn{uwr<~S?O8 w:q2Y 4gãgENE4-cdoۦTMr(n{kAX>"*]/ T =Ke'I*JkOs_/㘬$$I)I$Jk>ݔגZ˃kvqV빖4Ok,I$$I)I$JRS-5%%?9$;uƝ`A}M~WgEjqG\v-$}k+?)~__lK=ڮv-%?RWRֿ+ٳ"wz'&ەu 5ﶷ0I}zKQN9j6_':\^y8?#k`gfcۑE~C#vaTeE\r]_+I]ֿ+ٳ">_͟=bI]ֿ+ٳ">_͟}b^/1_?W6W}C>S{Ul9U~lDW,ܰ"Fhj5O짼@yUL* :r+pQh_6dI%59¯?VRI$I%#T^f>!O"vSk{ҩha%)$IJI$RI$LHh.:IL]M.;[I<)Ϗ慅??̳I??̳I{s}oޏ߳g/gab,ib,i{s}^?z?hw~Ϗ愅A PgW:g֎r'LnE׷#cSPN@]Tk\6 Wr;n$VK\- wh +Ri|L4%|L4,/C,YeM/C,YeMn/!C|L4%|L4,/C,YeM/C,YeM/n/܇G3Ф^hl,2&qz-yV hn"c{ a(E:f=8^{a VXL ? $JkOs_/㘬$$I)I$JCM/#аW>2hu q2wmh "$$I)I$JRI$w6TE5 $L^nu*JB n1ƶ9s;CZxco\Iߠ)$(Rş)GIr'o}ygә1/E^y8?#,DcX+|zuItw*i)UUXic1s`5jI+@ HM,RVGV1ksSiq`*ڨK&1\Q{_/~sag~s5>즼k5MwS]̵41Z4<*M$JkOs_/㘬$$I)I$JAE.ܗ.Xuׯ͈>˲)1UO()I$JRI$I$(]͟?MBl)u8u ehYVVCs[b,e)[mX{%sdI+NQjˆz*:wL<<'˳}v!?fvdGOgQ1*}Y^oIz~ z t-~vmzdZ6m&an⏅ղp꽌sˬPF̊Ù@]= ;+SmHaȢƗv LrO+o\b k}:rmˬ}=Yc92\u$?RWRt/}ZʞV,uڤ̮h6=;$6ODW/<zge/~mgn_˫KK(WϬYU[e62^{ ki E;4A}7fOknz;^S-<ɍ7b)2+kǹ, $4kF )WI7])cٷG:ݤޛ/kr#Y_;^SI*RfEc> dWPqыMWe(vkhIL8 M~RfOϙWI%59¯?VRI$I%#ϥ[{ZD*YuϮaWRRI$I%)$IJP?"۽aGޒR^G@q[ؖh6IzO4uK:c]}'o>lgQ[s5j}\>u& i۰ yrv] 84ٯ<zgeߪ}ig9ݿh~ d3剔Ò^1sRƎqww$':c1sR.6^/1_G_]vPT!<$y"n. R ez yWdFC5s gݵ_쀫3I$S_/㘬*|Sa%)$IJI$S_M}aU|OXBmVz,eM%)$IJI$RI$QŵÖG$I/k1ѷ@բ?50+Fb97EKm_hMdQx$?ɭ_^]'MF0ƍK%N <$@e$\Ծb_dwh؍G124?2H/^ʿƿ{X,jhML9\X|X1hޞ$?ɥ֏ olOyKmZ1E6l!$h5LɆxʵ4cз]nKuǀcnc)1]O*5I$+ _1XIJI$RI$=ghDU}we=KmgUS?+ I$$I)I$JRS.fȒ|Ӥ(2l KԱ N{ [Hs%I_u|zhuiuտҬ;{KKF&teǮC+u~mƹC`m0}=Au$Թk.v>Cv"A5$9Z?RWRfo}y?-^,pc%q+Ͽd- S-dJHįul, ^VETl{XKd0V4/Hji8'7. r1©{/km37L#Yh~)K&1\Q{_/~P벷pmGk]RWr2,5Xhl2?TIL"G S_/㘬*|Sa%)$IJI$R .uMpk~oGC_`7l wmil"$$I)I$JRI$w6TE5 $%Y8lV9oš8ZLmqk.tD$HӶkɣ썿9LC}Cmth2[;/ 'F@W~spsw5ÃE"G\Hڑ2uz U8/7p\+Inw0Ǘ{~}ZW.gQM+`FDgL!^޽>F_7btL::-/u.5ۣא<zge/~mgn_O%oe}ί"ŵ!@ K@ݤ jduޣ,9.e}:1۝iv{VZI hIK>aSoռWւ[Z˿5x{_(9ϒ?ϓ;؋_MnKSoQ;f>BmV%63btmq ͖92vhWI%59¯?VRI$I%!U><"ʾ5>즼k5MwSI$$I)I$JRSIO/_cq`GկSƷkK菰b]}K_u'`Gӷ k 2y4'qǂwd%uמ32j/clacĴJg8[K菰b]}V>O>__D}Kz_|~w^/1_ O*Svԟʣ݈͟5FɋID:eo~FE_vS [p{<~V +a$IM|)bOsI%)$IH빖6f>%O"gOIJZ 8I6L#[Mw3ӰK|$>N=Xච@:$0ӿvya%'I jrA#ꐥ]5_ ϙIL@ 4q%?bc8>֒@Ȅ%S[\=IyF58贷w2IĤ ? zi/&gs ;!΄~D$!Mt3eB3̕ 𱪰ZƐ;y%%'IZ26q$)kz{#lI򒙤N&>;i2>d ,i.=Ü8m5N-8B8c*OQ))*Hb}m~ӹ0v=9 v RBJJtU~7]$|XX?ԩ;.q4^mȬ5+1kI FpBuWP"h'ВI)?V|)bI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$|SaW+ )I$JC9WS}ȣ$g"~_{($3}ȥ9W2I) ~_{)Ng"JC9WS}ȣ$g"~_{($3}ȥ9W2I) ~_{)Ng"JC9WS}ȣ$g"~_{($3}ȥ9W2I) ~_{)Ng"JC9WS}ȣ$g"~_{($3}ȥ9W2I)m,+k:|IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ endstream endobj 397 0 obj << /Font << /F8 6 0 R /F20 12 0 R >> /XObject << /Im48 386 0 R >> /ProcSet [ /PDF /Text ] >> endobj 405 0 obj << /Length 544 /Filter /FlateDecode >> stream x͔Ks0| Yoinx$ ]`{1o.l9EX5S0#-6F={o:X? yϽW<+C0b _wm%Z iQ/hx|'ElY+$+E \>"J4HhS"5DR ׽G@ WR!diӛcۇ 4/$-t]ȸ!BX$arF[WT&?>y_c ?4ipBL 񡪽Ϭn;V]n0vh*b(t `_̳f}^+I,)#Ш1$+]DCKM vv TN*ӰBPuo@U6ԅmLJW ZFTpDLDWD|Z^&6s_+-1FLfް+5eIϫͱNY33dMءK@?*PeѰU׃M5o!N endstream endobj 404 0 obj << /Type /Page /Contents 405 0 R /Resources 403 0 R /MediaBox [0 0 595.276 841.89] /Parent 400 0 R >> endobj 387 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/WFSonde1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 406 0 R /BBox [0 0 1218 969] /Resources << /XObject << /Im0 407 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 32 >> stream q 1218 0 0 969 0 0 cm /Im0 Do Q endstream endobj 406 0 obj << /CreationDate (D:20080808182909+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080808182926+02'00') >> endobj 407 0 obj << /Subtype /Image /Length 98662 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 1218 /Height 969 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;; ""2(!(2;2222;;;;;;;;;;;;;;;;;@@@@@;@@@@@@@@@@@@@@@@@@@@@"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$s,/k\ a $I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$uLٸϸ7{5ٺpl[U20~ӓs{#+ƿtk  )z˻vf]te>6q]e7n`]ū:γsw2܀lj"XLfHZM5=Whg!4u$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9=_Ul\ez7Y%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%#2Zv:4b|`>/JŦP ]=i@]uk̯]svX }䤧#>0q P8Cq8 iOoZJۂMNsw\o.mO o:s~$~b'+_n~gTCw CYjDiJs1#g @1}Թump{ ?GWs>Mŕ[1X>,}=mkYt}ḨtP9!;lsa| ȹSs2=[/zYsЩ(Mǔ [՚9:K5\I-jƬ-`e{ct_FoX2[=DFJ=SS&lsI'k71S)lnEؔ_e]iTj̜U4k|=g}/ l?dauNSjmͱdwֿqciਲ਼qǣ; ?V ݶ:Z{$T}}q`]H`ѷݹa&=Zumx)MVαqH/ԘY=H/cG?:mun}=OK/efV\ N%%?Z)Plc{,k v040fD UhÎ#cxkYÖ OpB~g}/f#scOsv0A[=L}}WYXhqqSxfU{cERk7^>p˭{5]=W/w'cJbmv=ﭯ i-hi{ǚ.,lޞӍ_N%hֿiiRS&iV^mk2Ye;o*U(~;2lu qvnm`>FEr2kw2piŐ|9CqR/ӲT*SS"K##込.1|zsQk.;kkkCK[ d:dJ2͍ȷu1Z =vk<:KR?cÐcƼaks";2":Nfu~Ut!{Xxb [>!%0g2.QSޠ[kZIkF_냮Us~{Zʎ]5`,J쾋OHәk^^2@c[[KjLiʽGfS]-XwVϣ$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$~nvC*u{vF04'֌Ji]ZVƾKG6TJIJI$Sѿ_6Z˜ty')x\60UV:q2\OyRS +H9q?WINK'r,"GY_E%:,ˉ/`__e$.'<)\OyRS +H9q?WINK'r,"GY_E%:,ˉ/`__e$.'<)\OyRS +H9q?WINK'r,"GY_E%:,ˉ/`__e$.'<)\OyRS +H9q?WINK'r,"GY_E%:,ˉ/`__e$.'<)\OyRS +H9q?WINK'r,"GY_E%:,ˉ/`__e$.'<)\OyRS +H9q?WINK'r,"GY_E%:,ˉ/`__e$.'<)\OyRS +H_OE*X[_v=Բxk\6|BJ{T_kGWn>;t+>}=k 3k[n}8\6ѭk )RY?_e.'<))p^cSNVmLIVOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dOGY_E/ˉ/`JuY?_e.'<))Id\OyR +HY%9q?WKr,"dq2Φ]a%`$$I)I$Jy}IeY>,ee{NK Y[/ &=Զ8V:2$I$'KmkOF?k$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,б>?-A== BI%>5S?Kf{U] #11ԓ{@-RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$Szo=k,/M”維dI%)$IJI$RI$o}W mqg-dI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SOERլ~Ƚ7 QڵRI$I%)$IJI$Sѿ_6Z'KmkRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$INO?J?V")G{jIJI$RI$I%)$INOF?k,/2IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9?T^(mZ'Y%)$IJI$RI$I%9=_Ul\ez7Y%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$Szo=k,/M”維dI%)$IJI$RI$o}W mqg-dI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SOERլ~Ƚ7 QڵRI$I%)$IJI$Sѿ_6Z'KmkRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJU:wgNReln6Nd譬acf^EO{ִO`%%"gEٶ2}nelOVz h-8mz|_mme,c8rak$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$q{XXtkKM$[W}fnxᵾ)긗<ű0bvr?)1JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jq1h]J?)3ck'ummuc؍FPe,ٷzYdӶuPY[m;\7GUSp[^45hֵ$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9AE^nmu%4tgjٗ:q2KmLqxoqkg]s sZA͍'#zvsymmP:CZM`WKCJvI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SSg~}!d-Vv{d&N?.{uy i{Ի-i'cK04K(ga}4iԏ,\V^;Zfۑni};^wH:$I$RI$I%)$IJI$RI$Szo=k,/M”維dI%)$IJIQ깯elm6.sƹ#vݠB_Sɳ",mO6YkCZ?H:ZJvI$o}W mqg-dI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R. uv49k湮Ђ |~Wڍe+[8T[^[{dv--fLORI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJP9ya ppSI%8//9UW+.Mά 6Z1+c>D37N4j_|Z)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ )F9;lf2I)=-z8[{, Ǵh4Zk')I$RI$I%)$IJI$RI$Szo=k,/M”維dI%)$INO[tǝܳݛl۞x%/zX5s6_]k - ZjuVs] -s\ "AU[m7d+.5XFd @s)I$Sa򳺣;26KI67g l3yg-d\1Fޑ8 1l&"R q0nfN=VKf,Kdokf/+ ;X6ȯ'2Vk%>_R4C_6_Z~\1k$鹙 s2XM?l3yc+I<5īY 71S*ǻb̰M/-reo3v;X~i!T 8o降ʇ1'f,K(߱/_W3?Gev~-R@).&?K̷|Lk~/MΗڙpG'y-G}vR> ?Ѹ;4wQfF"{~܎S73@?+VeL:_-^ emb@0vpPJe@<9t9\9}o$߲ ڙzGo%'&?srEnh:Hp:7s342aӳ ڙQ ?Ci-2tGw`{jG%|T98%4?of*3Id3Lp~:ǟOm8P2owLV^Z#ҍ u}>ٷdo㎴g7n$F8?vʃ|R;cLj3y*L陏-*k'bW[iT9?I?uKk9k\ÖΎq陞L?GًoFb2h6!FfkGqHn\1/kf/-ux|]x|{E/#Qi;ѬC@&dv=> iN(rީ˞}sC\^9ٻbf%wr'k6~k= C͆'_=Z-~*K zK &cuΗ[L5ThCEXls9Sj7w_bffIz4o:NxpSf&@krc.T:9s7r$1?윽GUOi+Gw{ uVY$'RJI.ol3yb2}aNk,.S.չ_r=W/_7/9{G_MZFDX7G4|| i$ ޗz_->_?tS/^_L`D~*iB3zfeyU\:I{*x5>KG:uz Os?֮( u?[_?CUiOǟ=b2>8={.C~k"ΧԲf7_Ib>*T>?j? ?[K̺.Ns=:<~^?/ϱ5Qi+ Sc2^,2?yB7z "Kn`W1;f`*ei{1~e|ӹy fks%6윲r >^ \ً?ғP^)Kq''hYPw.Ε1L1x |ce_̴ic{9t,\oYbͧ=2Vtm*tf/Z-kA?s &:}zN˫+,;i-ǖIlctdA`tLuLDMFFᑀA"KȘgvDk~jUօoArkIgT'̹яaʪ) &N8CsXN~Xsا`or|:M(u Gk[FS(cy>g~perNhvYsXf}&鹤S+Rݚ31ʙ^=DNѕ'پ$XDq|mZ^hWrڹp f/?*zV]z_&=Nh8lq˾'+v(O uܝʳehr㯳聩/-reMd'EHu.-]+-\i#bx'Jkڹp^F|Vp*;-p;)1H<\tpًLkA?5L ٍo Vs<lo: ӱ@ȅQ*ьw1YvLf7.;=VF{{ B눞? '񏂁Gąp-=q^ԯiMxs9f7x¶$Q)OMG⼒0f}"zTN_?7rΗ\֞;%]i*$0Cb8ӳB8Wp}f ֬4/z4*yoa{X ?Ѽs,wTHًA[3o"59'' "[inu\1d :vsSC7kSRϥv`懂$AGA$@a^c?IɯK)bK\m{Nv>DzXrG42-V^\is$jXA1?.Ð:vk:T1|Tg#eA=-C,ewOk{tLZ5y8gTɟcG,[⾢_t'oĨIXs0-_\ڕbu1m[3y?r]? Gt~3ܫ\f#^wWa]S+F} n?wFoJ6lA>^IJ;HIo=߼/vp٠֠i>۳Gf\ǪLC1~ ct˫=S/Rbd B zV@ B@Sg;(_/_K6_Zi7'k>GY Ԃ?sZO ҳ*oT%~/n2V̶l#m.8iiajӑ^@;Ou i5yxcfYO;ǧf5>_p2jZ eN+Ov|}B?Lymk:݇GXDGȂ0n>?=R%,Cj%g6~cEp ZT)v;vpo7zf<5O[Xz/0~g7c~.g[_//8cm-.uRXnz_}1Y 7N?NzTǑh&o}"$O0OƲ|)zɴi "|X?XA@oYE?6GR -?P?Ms]+?0O0D( v%-t4tRiAZ>յ1s'vYU*A#yI[]#Fp1پM-d?K4OQA:=S[\ M.AJYoh>}3 /RXKОA.sn c?/Ӳ/8mR@Y5G|>i#X?=/2Zϋuo# XC`4q)8ÿ :>#_?0faC.\_b-iwb?-,?3K'YzlyX+ Nө4pƻ\]$,`;w.6|%nh]o&='d?yK}M?uFWD7J[-w/"Epס?摕 |>UKp68|aߔJTZtTYW~4-;^>O73|=ʢj~P!aT^6㏟Sy9jc%<?ڠZ[|X% A   st6Rk>"\eBkx;G۩̐N[;kXP+Q_ڻ[@ {[qԩH:y5D|ڛG{>hD x O~ xBCYuyy}{GG;(5t)`zś+mbþ)Fߘ p8=/_ep K"^/' ][>lq 9--񁽇ʛ!"P[xs Hʿ?Gh>Az}o;>gJBG =?lvTI ,R,`R[._RHDh*Ld=|fLO< Ol ?MRE/Y-gM.Ai>rmv.w. G$ ˏNp}7G3 ji!Q}R-Uֻ`?ޢxh-}>ɺRS;R8,kx{Og82<xiv"Y?;P1[mg?Omsxe#su;7  C[ $&k`O}*xo4y0!- Jq-|tOXqҰDr~`,?? Nx_}yRv__YPs ^ f@xg`\ߑGqwJ8hַ#t^|[?-OO59.>MٮOhǚ*>a&1AW GQ]iqqI!M8>AUM'{4?wD 8u+G%V&wXԘ=-x7>Fc]YP4x_oGŮ6];(ɾ_֞[C >)TݧE{`G*73o h왛XA\ɯ zZ<#wv?"(cC^xcBTd~5Tv)4OL1xh, lԨ0'K=8nCwf>)zMeo쭣G7iE-}tpߟ4M8a?=(n{A8p>m"+o}8>[.8KG>?)o=GG'L6.qԟ7J,ѳ,>j_4 OY|ho'YKo F嗊ghȥH4p}:-o5q/ o?K˯+Zi)»:|+~ZU?k$^,|#ns^?@?_$'ZGL И"ʇ㹨{i&C+W(ѷ(\)zw[o5me5ÿq .|C~Os,}J ꙫ`0Li(c$9j́I,']fI) C!h'G<+[߿/;v5n#woػ7]Fs>S'̔:j>sKX5y9pkZ $MWS񩾁Qv-^6C0K)iyqO:U2ߵ DK-a~B~:am\I"V[䇚h^6}3,DIHZIL+_葬uF%gec?^k?3ow~mKYjݢVʘ!hh4@DI%6K6:M,^^5E IY!];_`p$J$?T^(mZ'Y%)$IJI$RI$I%<#eϭ΁?v.3ǀv?Kduvm<)z$~5)5|aF^k<|~Pkui /ϡkJrَRR  v8o7_)"T6]}ÇŎmC~e^$.^(6=F"@ GNtal`~ڍfGB+v#G%.tfv}O7Gs~#ߣi8▝֘?s8pM1rֻ`S[[#lxJ8Hmŕf: ~~ {.oM q}ڟ@M~1xs;CCmM_N`?o;0 AA$SO/ {X~V]o[ R(vm [I>{#y ~BR7KuA*]ď(bك][.r[oi'~? lJﹱ?[.=r[o?)~kKu?GGKS)zjc13S)R#-!?"zOFrgdG(b%KAc530\ǿ? C)Kp׏OiBQ6k c>dKûqt;]͑VU †c:;o-?tȡ0co\^"?B};\~/Oѭ.wgp)R z_+?~YKûGKm?O zVm?/qkp^?gE/E+a?p[n=h^>\?7IU!?iY{ &~ͯ3$g&}&Z-0'q/@p▏sKҴoe/͏?0?@KD˱?%~ oR}7c\twy0ԢU>&:_ձFqJ^?G)w~.!-5~&Ŀz_ 뢺k@>='sB(wstS5k@s(:9NEN}V]s˚>a ?³b4-؝hԹ)'"Ο'%ŏQF9;~FS? O)h%!5?*_um655/=ϗGww^V˸0sw/ѿٯW+:2_A#Jo?sQc)3 wZc@ti9ڿC6UE=L[[gIz7;]h[7ԠbZQuL-}e0i<Ļ=#/S*?Ѵ|/p=߳`g^'}V{?ԏn?$g68|mwIK~7ܥzjcJ=G}?D0E4̓'gcOQ &hwЮgo^u=lD"t1k%&<2mŐG!^_5&K+@h#@NYli?=5T~_̴3>>ږk ޳ݳ$ؚ8,ri`?(?P˝~j^\8C^8aKиqyzYgT/r>)_?\՗/d3W^Ǜɭ2얞rlK+mw6cOIu8Rs)ޣ(߳1fgY(eX5g]P}j̏M zYW};XnwE#1Όqg67F;nҼWW%X4w;K%׎=. [?v鏿N (v7~?IM4w6 /ea󝵿_hP׫i8<;E4?YK?~xOp.?*?ES-?_3G*OuEL4)k-̖7|}v[,r\>_bO:Gqa-[?߯? ?γ r_Hc[W-/TO/K_cZ P:~3=n=eR [l=:c\c?M/;[I9p}6cOYQiSQ;삛WI:m#F?ؚ+E3"AЂ%|(]%KJ{hy&j|?t'E)LJQr]a@Bxs{GO)M Ú~Q\G=HmD=HQZAUrq\]RClY/{~ XɖX&[zRDrmȖZ&<ǘF'0L/noF[=#Nց/G5qoz`oÏ-l׎X?yHC1<9KKW/u C=Lj>G}Aޠטwm8D0:sj$qH 5 /aX1d|;蟽+;H*Xj.i$3 H/\x'x䳐 aʛrc }3=9G/[걿-gPL>ЧU& ]B&G@/CƐBҭqM76XDWB /%HၿՖ_eERҽF-K~Cyn]1_O+ŠYRZGMN60~KAd}ߦǷ;ʓ2^|'_Eh?)Nb~KYMv6FL%*%$%wkǑ~Q? ,rW`|O m~{Ťߒِ8{Ť;% ~cR~dѳKִsK$%ާ?* !1Vl<ߑ_kh1_ŏԨwWs~SGU/]_&*uX>$8"_i#>@BTU.Ɵ0#k/m׏;Ow򣤅Dz>Dܪ]Ō? of9w ťdG+JO6hM*?3Зر3Е=_:?3ЗFBocg/Q0 6;? (pLro63cT+hD B9#}ğ\L[c@Jd!iCXx2J[?>/?ݗK9_ȍc3/=>d`?+~ yxc#R,G##??4dg&]ڛ/^2J^_lc~L?"i 4/RmRك]Z~ _+/FK }DTޭ5gS(wV'h_?#qo h }Z?()}>?a]K$I,+B~U5+>.CkQYS+-!Jo)?k }}]qkGXLHha+3m/}ȥW;`H }l[)y0HRL;ˋfJk2'ꌫ~l?Ծ9m0({4*'}K&P_F-ITVdV"]Q߭=iF|\ZO;ko̿5YI.!^#n+shGƟ?rc t8OCBWgܜ`c}&Oh'QFCl/~D}]eH~Ųֆg<0KĪbsy?3}Qs=Ky`6Jo_gt? V@.(_gSʳZy1|ԥ69븸emb\@'EX:ai?A[(7ٮ6 J2lm6<7fgӼ7ʶ ]W ?ΛhVSoA[u"UF?u1@uU=?ژ8u ck?୤GEpOW1S[a?/K1[|Om슱xT_ 4oLiI>/tڴ?|~v#h&H4V>owB=/oy6?DΣ=k?*nuМ=E@)n:̍rsW*J025PnG|ggoc>5X֎B*Nvh֍J\R [ >haj;#BԿ&6<-we~Y]m kD}Od aK~I ښ\I&Qdu\raeuUb?X^QkC>=굡 _濽o~o%I% ,j]??F;?K9Em<K{ܔ^ 0K%yV=Iqš]ziFNJI%W7PH.:5Iqybdh)OERլ~:/N?QڵRI$I%)$IJI$Sѿ_6Z'KmkSCT Ah YLoīx ʭw5|"Ok6ρ׹RoMtI%Ab\+%&{G8G5Z9x̬dp9Hlv[(IQ}v}$Rۚ;oh!(V[S/c5<scWaKgX#uEEm-pAδ;"QFYߥ?e7YHo<^\89H !)Bea&%o{~xy¬I6ȕqFsK"AHOJ;"P*~3m}?}ٕe>H7ӨH…'f~?nֳߖIn]5<VlD~_du7mJ+1Dz?ϗ7$hz:d_Ï1U!_d-1{?H}$e:]KF*sH FI;'ۯ䊌A5:9T2G_dpÿ%Q=U1/S[M^ƓFz7eOrWӤ+MGWےAaȗmgӥ5Aw GèP>\ׇiy'"PC`OKSŰ懈px9BHx R۔[ %:_BYS }vܗooP H\{' /hDܪ_la8@eE1ID s &?tp=/'UJٟ/F!.^t1Aش=<Ō#gG(5?/بV]ݒ?2?/S o Vpؿ8s)Kǵ0()k4g >wMa_Og_g{>}}ɥ?Y&W==s? }Ǜ7lAg_i{?iz?V?__cgr\I7,Q4?e7w} wvV 'J\9_ZޮC@Yd߃I?ywVRK^#~T!wӺg@N0(Kt[Ul{[bAKQp:#Naj[!2,G ޗgҵdď(pw+/:m ݗN75;>}m%Oy5G swϕo 9 KۭW{dªZ,#X )ec[m?6~1+Lck/@^~?ˬkX;[3m֗Z?諉%\KOwֿvWDceLh&sDw)=T1kKLViϼ>e73/nX̯wPKڗ]kI?r~jJOTw]lGR{D62ihu rjOU{7+.?hq{Z\ _aӵ.#Y; s3g?fOUNN.h%Oqc.=VRBY 4 RI,뺛y ׃y1MGN|a@dg36Xy0ցwRUFa\-X #Zxs:kv*˿'u$J%U:Pn^ߥc=0yoӱ[NI$} ϧ\<qKo ޞrp} 8[N^I$PI5*Y8gO46Opi YYNKZִ8L?W/4n\/M”維eOERլJI$I%)$IJI$Sѿ_6Z'KmkR^Au$Sti&XyߎyCǯ*WcCG& ?·,xwT{X=:ttI%9x3e kiBf3>Q] :r |f*eln%.n.֝__#_x< #+]P gquGJ{|¾QeZع%Yc~ncEe+ 7 ukv. odeX=0~V;O8UCp/i{CpsOM0 rpo`?8Ue7un>r>hF Yy=k~Cwe8el$N^/ ^(ewwZ3vƺݎ^?uH;R2 ꤺǓY? 3Gf;D kXN jW+nyi?^Kxv= iyRM+e7+w/\h'i-VRKvOx>VԒoe$=Ð~?k~kGSn]/2I?gWv3ɿg*u^^J*XXYۏ?T{'ace%[}0/r,KwW/?e%[܋>_eYWKO[)*eYW-"Ϻ&r_IV#7, }d T{ghJYI}~.q*uqd>l:3(?U6*`4%U>bfnhzo?ߐ+ hot=Y{ZnahKo^@5?i$+ُ]|UEYS|CD. l|+@*SMJ-w^ZK襳2_]c;G}ԣ`Km 욱cYbA[^Jp3]miOUW3ҿ, Rr52n?OJIqDl#d2𭡃;zf82o>6a*I{Ont[:5Gi~}5SDL\e[I*m|"K̷ZDžml-UlX;i~e5TGJΗfHƆ ~ zgk}w+oR2w6[dWK rZvZ^?>ZcX h@RI NRܦ0v IBYKK;U?kf5Ŷ[{%-7-.&kG/b"6; G;,lgm}w?u<ްgVx4DT6檑>m^DžM}BqƛHkpvԒeO%{qZ$ 5뤨P㶝ן 7&t7}kG'.y5o |)gA7Ԓ`GLJ򇲯qO_G>5p,>?>rrɼ韖k6즶w|O2HK$+@RI eӄ<0q''4MeW3Ӄ<}4nhxgQҖzGҸ"~/5YI`%Oqc>o-vj'kMU,wRЦcW[CZM$d2ӧdI1*Tsٜ(ߚ?JFǺ$}Mu~m`C$^}qP;)D5V}κzChɒ$ddlI&JR}%:c{z c]d ٭`%zykcaI5[Tw?>[Iq$wұOwg I(##e.O?J?V")G{jAJI$RI$I%)$IO7K7>ecSccQ;1CU5F:7V]SKq.$O6VK,oѱ=<[`{\7][_oI2kVmqR@<-DuOOiUܩKY[h< !:*%د4MN>ul4oL+tyoW|,j11Rd4>4ZdM3X boH|KL\37BwuGFEy-SDU^d;Ks`}*h?R}ĕ?{ҳ57c\G Gr8FHV4dϭC5{7C$UQ&驿2Y]Ť]KYvfu{<@!CNe:Wc\|WbSmA[?}U]U:IT27aoKgҥRGW[8A rYzvuL*u,V}cmߵ1O=ߑXk$*wgiSX~X#R|m?TBW|Rr,ְi$o^ܿx?Ծϒ陋`[> sKA~̠&]Q*I{fׇE?B7B*?RU?jc5/=Cvp?w.}t7m%S2ʗ./%{?Ͷm̤K֏@-7fЧWOƤj`>0 UWaSŵ.x~ IqDt_fw?g-HͳUi%̋bDnUE{CVfưdD&nWFI(cjLWlJ[Jq帒k%|  Gۭ^H/`qTTa,wlwV;V[jhhw?Y?e5V[mc¶wϑE\I.:+۽i˥ΗfHƆ ~ i!)[I$vExk? \M$IQ?ۼݭ=[_#k~*OjC}<{yUccqw)?m9Ye{AʵF5XS?.۲.c֑S~s˗߽~WKܭWZujkcE I&RpI$;=h丆iH۴ƪ˧[ߴK?'c #}0p}6pI>7_*gkyM}kG7w4`5^I/vCm<: $^TV[7Z*?#J[uBi}k9.!|ʥ_cmXmx՝#؎"v ?j#LJ]o*p&:fȷKܯW68mMm`:'dL$epA˧ x`I &!ddՈek;Tח=^?\Z?m\~M/]m%sGo@R{b?1-'d_lM-V;ob긺Xw;=<)B=ԒI()$~OV!gp@ ]JgDM6Ǝ=zc>|8Fq`p&"l>:Z N(u=EšY[CZ i$&)$IJTQ[Xƛ.Eu`(uq(g-dZ?~~kR4a[cK5X;L,`"8N,74;0~ I!FJza_5?%i j5{͵;ZUxT~ٓ;wݹc坵 ->׏rĶPoç+B2ItIZ`}_c|}Vӗ}K̫W]ńG%q$p[큶?uYWvUr*[{~>AOD;Wઘl$55}.:U7Dثq%OW3Ǜ ^?(wأ^;1:\% SM.І^)2)`>-M9W[I;ܟu;5>ːϣv5!Fk:e=[I/p}sߥCl5/>5ߑ+i%;~j5?iV>vKJ_q6m,[I+oY;Zxȩ=B !;JţxtO8`%+`| P~M>m~ˠq|-~G%2޻߷&C?W2޻߷&ʿz~U^NJʿz~_*iT;Uy;i**i~̫ɥP~E>m~̤l>Fް~$Rw?gvo67dϥcG ?=_ODn;>LC7`r*=ޛ7g\U7:WVN֧&]l?Gc+[I.(/=|}?dԵ~,9m$`l%|},?XNz_`sE5I{WKS^9M/Qjâc?"2H=R1@lI$IWcPb˫i.*wmo#iוwXžv3f>YE w*rs'gL f#Caoݾ@#?WNn6 ldM˿^'t@ }ܴ~Ñw.ݨ IC~9i$Y⤒I1rIVX؇m4;ˏ܌bdt$ )*nȿgHЗزo$Lw;!?ۭ-㽃g'.6ưv@MGDZpY4lWoϹKi+~Zgv?v.>:zN5.lcE%q$Yt"I$b$0׵%IY]*v-)}/'FF}R{D|Ɩ͌|(l 'US rѰ~Ϻ.?ڬb|)kIܽqʰ#?ઑsdr}vYִpMIKtI5*I%K'QHeq:0U1.{ˏ*ޞ~wpaȲqVq:uDwy%;t~,ޮvwl;?zi'ؽ*gl%{]<W@5C@$J5I%LS%_7>?h&wW һ=_l|>V+g[qmWǃ{4y4>- ڿv5'AaN͏!jVm1 #$ym||~'GK{}OO=9lݦWLJRg+٬ʱb]nM+~K'l[2,nn)7,tYºV>i)I$Sa+,oڙ&S}M<o,oOo1LM -Ƈ4$SIi.1uĴ|1S]NcO{II_/Y[1882 gIq}%Լ]Y'M2|oS;鱷şK'?j7U(l<k~![LLNp;)#V׎ۀ1FI H:(Z?_O{g\}V} z9Km5;k̲5y$tŭFz4cDC*\$'48DتgMl5ާ~?^IQ.]?;6~ +9KmuߍO?A IqD_d:/:7gT#דUBƻ"!f5Nh?%=:JAj X/׬?*sj}ĕ?<}͎aK15pG5q&J8,j[3JOmFqq?n$pIzi]ppv?cq%OCO"yE/l}^ q%OCO"yE/l}^ q%OCO"yE/l}^ q%O:zT?Q=1Rԏ߂^߈W[*~q H8Ծϖyh`~W9. ?ISǜ~M~Z_YԴ%Te~l?KFz RC?W>eWӵgTjT2^VO:eT%۝qlh'WK##~-?S9US~69 /G1J7+%vyOisE?_qOacgY*I{jӏV8ȈII $vMXm{X<\C*c͹ű:8-8y%G67cXRʫ iE;#r?85c ֽ.!Ue_u[1UDb̥߽U/\DAűoK7_6y$6o ܴ~Ǖo$yTyBv|Ykd]Iv} yhn+5NIԒI$$dlCZvlRFۿƱ[OEu\ʇMA;z61!ִf5G#s#G`q-SM22cG^D:\q\$Z/3JN Mm`H $%RiI$b$b@RR*X%nõCxF2s?)= [:jssrO 5Xc?bYn:oF^Ӽ|ɪ ~>?vW4=,cq_,=h4Q(8ԼX[&ǏtĒ9eBI$rI$2hnkI~ r?Q/=[SR@:I9+<^vCi'!љq{@Vo|ր'~>?>2s5˸7V}7|lZpƱ RMIHWDI1*I$RT2zULU,5 4OI$*I$RIf_՝Qka3T:=M6==֓.0ƴn}4jJ gY Gw~W*Kf+8s:s[>ruWc˿U{tPI$JRI!dW[h8"%Mnzx@`Y=b bkq10$nɱ">4-[Γ(8[`eCp=u7kSX÷o")G{jY?T^(mZ$IJI$RI$I%<RnPL)[67߻ =U܎Ǵ9h \mOt]iV?mI~1ƚC.UYixsO~O";e)RI$q ²L͇MRNvA:/cMWDc V9sZ|ZFSΛW`'.,$13in^8sOuȣ \ $AH2iZcVC|Z}pOѮYh -1w mIe'4VrnۘFOeoIͣpr<0ƼCwE%Ab̖?I MZ~WBQ"@I&e7ek?Sc{KK_e_I:9%/3P~&Oı~Z:6K6?VSvZƽN} T"YWC7Ga-C2Nj sv??qo~ئe?;nV龼xil;$M\RΓiihw4lw͂e(Pbٮ\- qRٟWE^I?=u[펍eW#ok=K pY_xm%?W V=G#J<U+imlUoظnu_՞W1o&iύr_fgiSP#{7Tg3h_ľזߥ?Աb>{żIx=~נ}&ߍ6~]>#ݼks{[cp9Bri%]]E? aԒI$$I)I$JRI$I$$b@ԤA~e+X>.gU36*p3ZgոgawZԂjkGٟbr*?-wĸ}6Y?_iwhPǥK PgA/f?e4R=/lw =y%GcMg{kR~ ?Qdf;kgT86ű4Ӄ5  ;cŹd6M zqUL.?浀WG?{~˙g 4ȗ?nc?ͯheW=3Fᅰi$%#-6RI$TI$$ձ)vs u{lOk*oC觌S췎=*nM#:})~6>jc 䆀OU/U"(_?d]mEޛͫh?9WK#m?ڮT8ta0%#$a$WI$C_cƎKh@Z$l2167k?iΡ]󝵣Ҥ7ntվI9%QwZqFP>oуqCymv>Lуx_zBzWvkGF9} KݐO/juY 4p$kI$$ƲxO#ADa%쬿%{ ksGt\^̭}Bʆ?voQ?{qߛ6O^R45 i{>UN婋^K68~/tIR I$JI$ MO4}r>-w_߻4GZgݖ>=XX1Z!MC![I$bTI$$:pjcM_sH.{ kFǰ >B ;ey~ }-+[SOn4*C1TwI% \/M”維eOERլI$$I)I$JRI$/2Y=_Ul\eE#Ok?75Vga蝎2V?}3 ;&Gb5x($*oTUl%e7d?< }GVeb^״Zd&uiRI$ĩ$IMLVS@c׏#e`iQji$թ~i$4Zc>MYlT#ETr:Mva"pYVU| |=jo]'qB[ ,dG$~o~ѿN3Lϸ {WWn$ϣc_}GXL114R*I$JKN-j߾ɭ2⭤e(Pb_O9OZ%g[kWOIv-WUjoocc3kW~Du_#/X74xJ_˪A"3eV6m_C%OYgK'i}ȫ]*hϯƻ55h]z/j]JxD>> v2,ppSe Gp v,I$ԩ$IJI$REv}&4@($ *gƨki 0G y$c[óG60!3? #$"w\ I$JI$I%)$IJIE6. aTZaָ9sdF@n[*? }. lk?ߨK=ȷT6?> u.%:?˴46E%큼foVàu]hC&!u?\rM㍵ Kc?=eX?/L} z kx*'Cyv9[UmgP·[X?q+%O-ŅTCvƴx4?4QkI$$I)I eӈX84~*Uy߸,@: ,G#@$l)~H|6V֔}7?flvkCt?6\~~oCAZã mV<ȌUHsəO?v DbO{M9G\I#^^J I$kI$$b@RR,uw7d8i>nMG/x5y7rِO?kxF֎K*ߦ%O@ltUtlvYhuZ}BA +^8/^}7/Mkj>/M%/2g\~i$Y[$II$$Wek9skGĔ3MfaۃCU lyrδ@Ē|k^kxeƼF;%iU>Oo9] ?i%՚=-h@I/tGU{ƫX4pրTQIrI$I%)%_7QsdF> hUĨKT#gAb?hu"Ϗvk|@@Ru ';CgFw ͔4$8UpCzgU{c`54)$*I$RI$­78Y2zY}QlG,;{ ^uFckںxv\Ǚx@4=WSC kD4 M8cJI$IRI$/M”維eOERլI$$I)I$JRI$/2Y=_Ul\eI$, g-:4K,g5t'(Es^s.&>Ou+MFkK^A 3e;\,$j|5oS?U%CuApTa_L%A$IRI$Y&mn?+;`:ޮhukGVJABѭqImof:>eW֬8xs[치/ku9KןU褳Z->/ֳ߼:8M9Gp WI$RI%5~>lkr?fGlf}!ւI,Z` qŃx,83b8 D7?%yE֖ 8ت2g4Rko/gQCl}{G v$ߕO؎#p}﹥;z}O>W[&k- kI$$I)g48ASc9ɭpgT+%xS֫:G"{OGe^ >m?gƤki ~W> 7<hc?=?J?g}7G^>c~UϷ*?&(j?~J%XUsJj?~J%߿bn҉V>\/؋oظ~<={v}_c}1po$K 7~T mܕc~UϷ?7k `3GqފΟ_ѢcGFkϢW[O6TԂOeE䒼}_kG1owɌ{Rf[!ױz\q\'GQ:\}-z"V?{?^I/s\-]hw}G$>W:6 z-wuV!)$)[RI$$I)I$JRI([s(phq~)jfsVikXMxwٟQ^z~kx$]Fm54Z?%!?}_ڶ.+|?c' ߶goY[qGfi'ր57n;k?%K'X̆y 񎎁1T- "Aw7Dr +7*XZ4 ~>?- G+׎Z[ 98ٮKLhk?>]<X58@J5I$RI$*b1.J=0cgg:= Us:6 ,UU˟†VԵk`OXiww{K)0Zif߻gjip=[yvEPN 1hZ $s$J$$IJI$RClc[skGĕK#iT3=دG?%>-zwA4dSY経4~+?KLJkw?7tj_{}g[!>$(CmOZI uú??Il RI$$I)I$^-n׵h9)IREEgM6ìw oS_/FzW} h_W͢dK˜㫉*n=S7'5FETŷG_iy%3iI$jI$$I)")G{jY?T^(mZ)I$JRI$I$$I)toX~͌$-Q2c1ױe5 OVٝ'Ki?N7[{cLzN.dqrͬ[K Le)RI$I$9Xk{Og <Ν5cԻS|X-DQӲ/W!V ?UJsXkTÙQ$ǓmA0ѨtY {k%>KE2p7 $IRI$"t*-,%~;Q|2jI:3v( ;Io?Eo;O)ֱjyᶃY';wIW-4i weDlYbNYY`^C|XM6?g"7K8uf4rǶƇ46XDdI&I$JRg4<DاI%4]0.mB{M.-QWYv+loR{~zkx"Tm ?q~TKݶ. =pWh4n{\OJ}<=vK=*gK ns?+}m {38oWְ-ѹT,lUm6,ppSe Gp vdI&I$JRI$I$$I)I$JRI$I$$I)I$JRI ٗE?N7?* *'cU߶BJ8o~{&CLg|{R^s#Ge z^̼>Ю0IPǯ/Z_b̳[W%WQ{XR[n{? BvtLg9R}vS ߴVO\ﹲS~k>~6 4<$]jηb~ʗ-Yx2]sG}$jh~?ȾCTshw?IWRHupG'I%$I)I$JRI$Vv>e~? Ul]wa۰.dΞښcuEޛ?ͫdo/_QN>OT;mݛ2hGű>K+xTa7m2ֆDdgUHew!ݥwn踕=>mp|9O%p$J5I$RI$Ạﱕ I,i߳Ʉ%;+/VIS~o-)=~gGfgT! UW^~g [wʦ7any jOYK_}K:w̱'|l70$)$IRI$I$$F=Kkĸğ|/fu 1)Gߚ|qJBwA.kƷR֏+;OPoke3Gr&?D^dZ5k>B|JNpZ:^ݒdX Y~I$S@RI$ԩ$IJI$RUs8su> `z_[˱?Ӽ. +8tdZ\aaᣚf ]q1g<_kLٮt^ħ U,k8kDdDT4$J$IJI$RI1!`ee` pɿHPf։f:xvLIwϷwm , zu~-$qq=Sp6F Ӥ維eOERլJI$I%)$IJI$Sѿ_6Z'KmkS 4\y{D|CoX~ w>N9$*QH_P!BuzE>`|Ts_tIS1mYl8e{RjmT⯤dn=>^@lr_G֟2+ I{CÌRsRzȣ./pZROl?Kԙߎl}h${+4=nq!ΗԿ>??y#*=RK_bI{pywS@zWRKyU{z7PŘy#~]~ͼy G_I/v^`Wh~ɟ@K&9N־wW{4?a`C-]/S~ hZIgrT!`BtL\I%)$IJI$RI$I%)$;1fEa߻n7R ,,/Y`:݃KB]c%I̺0$ǝw{|m?oX=]c'o 7=;C?'Cƾ2E)aVŧi hhR6j])ڽ(3zC9W- ?y+E$ ]W阸Gu4Fw%ZI$H)$H%I$JRI$J^~>CyDDSa%^̏踶Bq4LH.`3cT1M܌ql˞QE*=:ϲ$T9cG.0j 5}>m<-qe_k˿[=C4b^~ c~eVv?OQXn\yse?O}TKG?Ճez|#ɰ=nZ\ G^b5-,F _k:\<'K`y+$3dI$jI$$I)I$z,ZqE?x:3:*yBawW ){VpzKqoȃkko oU'/h:I(RSzo=k,/M”維dI%)$IJI$RI$o}W mqg-dI%)Bkc{\ 9y@Ҝy?\ n%aTurk ,?vk;i(]My uv5k40T/ǯ-QU4_pm:gRo9|Gj^o?(9uj *I$RI$;%i"IJs?b}\;o-K}CvߠþuX#ܴRtpicuLmm v+98e=Tb\LiNV,V9lk_+P餳}~?zzo?="v@CnqM4'$OJI2'Q%I$JRI$I$*wt|,V]?᪸tg(P@.q_9,p/ MoU9hN_4p?Y}@VFRsuoYݲR7=Ęi=sd`Tw7Ɨ}J5DV;[>90%?-~I.8 =N_Wk?yu/ٗeɁnKA$Ҿp?]njژ"N[I$bTI$$I)I$JRI$q0Nۮc\xi>h6%S,;iR 3"DqI%u;(g>cb`ik\y|n^qm$iW I$iRI$I$$I)I( $ 8;pXC>O|1{N1{CA?OG7ܣ>*Iq}uΆeN~c~_Ykr&f?ؐc'\]neQ$>Q_ڪc]mhkF|ID$I)I$JRI$K-q׃Yx0KNZi'Yvu^ ix0KNnQn~BYG:JԮ45@@x}Թ!F[ l  t'S4I1JI$RI$I%)7:_{0'O h{oW~KOO`ì&(?u2L>,E78@`?[8`OrT:b-ֿݍAc"7wicU[jc 5EI6y l;&I&)I$Jr~Ƚ7 QڵO?J?VJRI$I$$)7Hh-o815$hJ:uё~3%zmk\ >ִyllM$INOF?k.s|egڱvYk\~\Cx,c{'R"ۉ$bTI$$I)I tS]D qԊqUG|}7L=FR}%Q%/Oͯ}C4ZէÐ|t\_qcIe=g8_Zܖߣk>ipB_)U$רe5&?J!Z%Z@ASgP(WI$I%)$IJL懂At FZ{P6~`nC.3kʠZI)}Tp7E0ʨ G[v1^B춶)qc;)RY1l*5?^GyLx]WjA."=$o{cl,_ 91~◱>$ʧ)-ppTduJI$I%)$IJI$RI$I%)$IHƪߧ[]},ZOƶத2J;VD`+#{#IO?j8#MQ/ؘWU^O?j#K&?UUh$ڮsbcG_RZ %=ؘWTbcG_VI{?xg??MU/XÃpd\bI/'\CKS1(mȯڮk3b(4vI$"w)$H%I$JRI$I$$I)I$JRI$I$$T~psl:0@o$mzbYC5;a8ͬ7g@1Jٝ{z{W6;P}wK>{ U2;4@6*uLm45;].'XX* I$ ;5p1DQK+ + $226RI)$IJI$RI$Yu6SH?, rӢ_uWOgY &][fIטf֟?4UbƺxвoP8mxw51NZ5T[CZ8 )B?,~U5/p2 sA+&#@$*I&I$JRI$I$$Nfmm4~*L0k}7}O)H_NMm`t,Y9Iَ?w`9;:.!;%&qZ` '~?wP㏋$l I&$iI$bI$$I)I$JRH9Ytmc.qӛմiƫ-3wc2mZ:ykKwЩ}7ʩ s:K6%LzM;_e:[N#["UK(ckhֈh4QiRI$I$$I)")G{jY?T^(mZ)I$Jrz_~nWl}?p>g}w]'=f6ٸ~IHnū!=Sd-us>׸jv +f,qU~;^;qusU]eo꺇ZCmd864To_CIy7PbSI$uFׅ}0ԆloonQ >Ysuccܠ*F?k#NTuu%c蟊qsjJYf:><+jwL zՂ[^ m>,{a''"I,K2+|7#|@MV ~l4ՍGI(I%)$IJI$Rhx-p<,(sa: gi O^K|k>_\k>5Kۏ*$oz>-N~ʗL< Ǜ]Sl {2GWtYjoӧ%k5, ]_X {twtTj>Cn=S%Q(YIRI$I$$I)I$JRI$I$$I)I$JRI*gSJ"$K9XcL}|'7?E*c/C6KF/Y7S^>y$o= qPz=Rogism/j#yZ$o̧< eLn?_Yk9_`4=چ4xQ_;~Qpָ=JLӫ;Q?IW hh_Ur5FE ^uK7:3=zI$6=O͘y>q})~ʺow6T Ii$.p4}^?U99^f`h "I9nIP)$LJI$I%)$IJI$RI$M46Yc7;B ׸P}Ⱥ=?4Xt.v̬?+C~Eo'OA©UY[X WI*\p>sz&>3un>{3I&NrSJI$TI%)$IJI$RM˳ƾ_ Vk?N9Oe[8I=^ޡՇKh?RvtSgPv*>o' X謮d\8{g_VI&Nr*I$TI%)$IJI$SS;6M-}#Pϭm|Jg/*ޕ:Í^Հ+G=N EOERլ~^?լ$I)I$JRI$I$'KmkOF?k$$I)Jf?Pg}m{fF0|A|°"F&œfDg,]m^?νUD31q0=XkeH>KMEm-p '%3NBn1݃k7A;A7 -2FǗQKMV꤫au,n ־>'7LM$H)I$JRI$I$A }_f>moVI(lP@.g/wxۛܫO /Q'*2-4~hU4:sS{xܮ*xۑK,hwU?a2Gl.*.yj餳6u\/7B_-FS/HK'bIPd;cr;,1_L% $RI$$I)I$JRI$I$$I)I$JRI$ۏU1toátrN; 7zx8oe$%7GW"I_?jGg7cߒ?wQ)~x9#LwS I/~}ycn?K^OXI{WsOKGOm̠ !/Cܬo$Wc3/Cܬo$Wc3/u sCAKXOI/z^` o켟7y9?^>7RԿbOt^+9h?J̗|rn?IwN+I$~powWJçc߅m+i sd;ȫ,ֆtQI$JRI$I$$I)I$JRI$I$$I)I$Fwk+o>%8qɲch_OTID$I)I$JRI$I$$ jIYg}Ix;1'Yvu^ g%-;ha]Ony(ų;nGOMя䅩]mhk@N\?#W/5h`, QmM h$gR4I1JI$RI$I%)$IJA̧m h|Ox*d/x0 z>>;yD}ㇸCk3xuszh=ɰyCV>U h$O$I=$d$P*/M”維eOERլ$I)I$JRI$I$'KmkOF?k$$I)I$JRI$I$oI!7cIeV'Q{ood ]Xc+U%$sH x61uF`}nkxsHp?m6TER\j$7j$uL?[sCZE:eSsbu#Q%mcu椢JI$I%)$IJI$RI$z[5pqT?5>Si ڴOYbs?gqw6ƿHGǦ]?رMi^~Ts?n ɫ_> ɫwA;!lc^<3ի0gPf<QΣ=e3ȹw3-V]4g*9X<SdK}N[_Robֿ:Ui,/<|ޗo󖚿XZt 餪cl,rj5ߐj9DjI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI3$jw.cgRZ,ņ͖mcRu`;̊%?=?4qM%gťˉ?沲?%~oɥºIwϰ){5+Ui,nKeCc]70>s}s7?*\vۓS]fP_jȷ7[ 4~qbZn5}oP~ɪ]E۱Zi%T~?oPctLGo :*HWRI$JI$I%)$IJI$RI$MJ]%o&8 Bں_8̠~j`]_laULem kDC@)*I$SOERլ~Ƚ7 QڵRI$I%)$IJI$Sa곺»nǓlm[f[ Oc`Zxѱկ(=_Ul\eNmfm<8}H'*C%+'\?66Ow]1toQo7Vꤣ]psHAGRQ%I$JRI$I$$I)I$6ϫkyԺ)@zShk}+?oJ_~}uE9_} 2[}Z;&v>{wRY-|,d8}^)njIe?rl:7؍~ ݻ# V$ 6纂{^SOȕǶƇ46x &$IRI$I$$I)I$JRI$I$$I)?OӇmdVI͒#IPs?aVg}υ~g^? w>9f9t;7%=YYWŦ^;SߥQA?U1/ym]>WjI/r??s?m8},,K UdAwMei3?a}T\ŅSk+}8sZ[TI.,]+c9OZ>}u '*"1_5>]hK/wVcd?G/؎V]$;gHa>G!?[k3tE<8~uqoE>?ҭaN&+KZܟ(/\K};igmoRWq$ْ^lEVI{._uS e- cCZ8@ J"m*I$RI$I%)$IJI$RIT긽:EI.w#M,Edim-;$;:iIYsx~SƄR$1Q/Q~uڹNSCց^cUSS tƚs̺Y;UQFFJI$I%)$IJI$RI$l hI0+/ŽCӪ{%uA>8-n׊Yk4Isk@%f~z`U\gnQ(/mo96KWY{[kM: ?TF^뮈l.ޗ9lkbuRY_ߋn5775C* (489xM)DY $bI$$I)I$JRI$I$Ae%iqԺ:O[?5t2N)S;;u~RoRw -w{ʑN_ům>ncI^̣5赖7ŎxFTrcۏYw{aJ~?V_7S3&"{qa^VُxsCniKۉC~*Q%O2,#Ɨ8)<&<[ohotH8ٔf ?eRI)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)%_+<72l*,5$p䐰 ,:,ڙ3`.RկG#rZQ4I0o{;!L-C)3Oc;8~u{δo/V;'O+ZGjZփ~ʿOsio.ֆN1~)Z~UV@csOy`''"#giZ%mTX?\z+KXOčJJ9H)RI$I$$I)I$JRI$I$$bkƎ\)jH܍0#Mnʿ6KO7َݠz۶}>m<N]8L6_c+hpk~~~VX]Ss<"t,ۍ۵4hG?R:o%ʞ״柁:k͌aq+a(fx_^CGNv\_NK+u? :ؙߏk,o?bEm:I$$I)I$JRI$I$$I)I$JRI$9=,;|7r*c Q% ϐ (ϫ\߃AVH)T˫ޟwƷ`^O8qy_9-VIq;?EΫMnetI}6ѹx!5?Bϫ2û씇~X/ Ifv7fEȶ?sdd3<*xV. gi}Zi,ϲuF}]|rZȔv~n-ڲ{@!V餳>ԙZÿ+KK~NaԸ~O/[64 >ݎO?p)CO؋K3r`iw+{ZSw} ]Ƹ~.~OثK3Վ9N,jo9=2P'uYVR?*^WlV֟gb^nG-V餳?gg[/؅fe?+Mb^[F c?ʩͼ}6>l>=tL S5bUu?gT'/L?G*şW=Myg*υ. LN!'j~7[sTzWlJI/t ?y;o¦WX׻_wκ/_xז51zF 1iVIG)JFJI$I%)$IJI$RI$I%)$IJI$RIg_`kVBta)-V褲hgG,X2Q#7̟9ܡw<'U?ߑk+U/n뿖l?+ޥT\~u+/ڭ\<ݡn#"Q0x,soah>y*I(ҤI%)$IJI$RI$I%)$IJIgulwZM֏URhѿvu>05nA#VtEsz7Nhu5AN> hKCLjF;[ǼVg7Y/cu%K\+B; sۯs-wm?`3- E$%9Kt$MRI$I%)$IJI$RI$\C}gv`X|wRؔihxSĊ d:ZT^(mZ#Cz/NP~VbTI$$I)I$JRI$/2X*VQX훆f-H!JI$RI$I%)$IJI$RI$G/ԲHٮ]'FriNWoٯܽ6YCbHc?e U$z`E9`[<˚hy6-TnXƽȬ^ަ1y{RQ?]D_ٺ7y5<.cr_<]K{>eI؃iV$pg$8&z%Ѩ9 Y#ʑhmٙ;_4ss<;%詚j{I/w/%R\:pk[kh44}$duJI$I%)$IJI$RI$I%)$,u=cyskG̬9}KL6[G;fZUtͷ;ƾ,gu_5G-\??G:-8 .s=5ɠyx?˧CKXk_q4I'YdSzo=k $I)I$JRJP+̜uV%<I:.]~\esF\nDĉ$I$>r:2*mf0Vj>aY&I{dM68?7F?k',+qtdzn3뵫F`<99B"ͿbmAXy鸟NrFK*:K~LR(pfFg5qCّ_/jM$Ρ:*I$RI$I%)$IJI$RI$I%0YcCp?V }RCͫQ$v*/Pg;x𾦿庯H:?󸌴xhe±Mj$^S8}QShs?+xK?\{kJe<7a\>J/ZY~s E/u*mW :WJ\;KEV$)xXWZ;nɩ6evGɻ:w]hǃ?tO]UxT}SBI/z/U9o ϵXc[- 1`eLk8k@h"I9nSJI$I%)$IJI$RI$I%)$IJI$RIT긝:1/wX=L6Y_2|>?̇Y-o/9YzflN?,G#&Jͷ=cyskG̬y]GL az==LnMv s-!ȟV7_n7D6"dC'ĕIRI$$I)")G{jY?T^(mZ)I$Jrz֞k}gݲ7}+?c_κzs7>׵^M`rWLJ`YacK$[-0>cΡ]>MXXZFCVUMΏm,Գr0MNQ$\XTؐ!w*Y9#+meesZ呦IrSI$ty')x\60UV:q2\OyRg-dI%)FkK^Ђ$$S~NvY|*?_|zW ^S|j>X{~ U%'#kwE9}asve5|]wIZJYcCt!A7\Gي|)w_jꤲbr)oq/ŏNM3k?^̎+U(Us/h}niം)JI$I%)$IJI$RI$I%)$IJI$RI$h؉ >ϫ6}s+ŵNIGcJ/ +g'*γ }xwu z5-Drz0lO6:}Ϋ*xKb?roq5Y`U}/i"RحPQտXT_V~Pͮ>:XSjuY+oyMЋd3<^??\;KENK/}QG6|ymWfʿ%U,uvC?KPo'1{e}D_|.<n$OuY}*ż-1>}9KUQ%9zxυ}5?񇑹{t餳??H _~_/_Ic/V4gaoKtt%e*æ#,1IΎ$~XtY/_I/?߯$OثK3tt&#'c/VD_齲~'kXR2aIe,ck? Ljn} LKdK/=;(o]/Y==?\x}D_z% C#h?/+?^GnK/YK.S~De?+U/n??uY9x.m[o[ܗ1_j[}t hqV}c̢tXJ2,T^R6 ~w?Vwwb?s½_/]?%nK?i\u[~%,?沧%uk~F=c9ցEj$[DS#"zAhѯw$[u^j$-?%Pjb,4cSYemiJ9H)RI$I$$I)I$JRI$I$$I)I$JRI$I$$epkG$Vqŋam'ۚV>nN9K`uY^UUI+-h _G̋NJ*#15/aa?ӲFٲv^鏕mv{1eMcCG#59_rr<ܠ}x.zt0@;դYWI$bTI$$I)I$JRI$I$$I)I$JRK;'ca9D!z=K9cq6k~M>NR Gs-1n^.ceSG3XůpM@~.?VzV7N%WwұľY\K_Sql;u=<Z $)RI5JI$RI$utnvJo9X纩9q?WZ$'YdSzo=k$$I)I$JRI$I$'KmkOF?k$$I)I$JRI$I$$I)ͷ62K/Ρ+-PRc)`nUcJOz}u~`U$d3lzk:fn;,1^@£9/7\X⼿T, {>Uݽ[:/$(;7i4%/OUnK/}_k}v;#u,l";a#`]*۩$*I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IKBtIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RQ{X.qI,cŬ\5׸|EAN9KajM%O7#> [7З:OLxQX.> n@^uuX0)q\,xuVT?%zsV4Wʘ4pր>A/Վ*O7'> 쇶Q{B_`9? ~Tk`ھUFB:IM)$MRI$I%)$IJI$RI$I%)$IJI%C/b?l@oͬf1)V+ekKCZ>$Sg3;s ttj-vEQeyiktc?ПB?oO?4|w; pK=d9SM_w?KܯWENb+ml5 hTQJTI$$I)I$JRI$I$$I)")G{jY?T^(mZ)I$JRI$I$$I)g-eѿ_6Z)I$JRI$I$$I)I$JRI$I$$I)J_O ۑMv? " œUZ]}vgqE7 k5I?ޑ_4SO6Es7H}e1m𽮣>D ~mZ[ H# k:߫:qǤC-Gɯ53BuY~W1cwu_3){|鲻[Iջ^;~V$&?6SU7oU^'N#PSmI1JI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI슱׵4~+8-D_mc%nki3)zZN=#:ְGٗZT[wTʇ Km_ks 7?)6O\vrjkwxhAd+u~J6>vS+ h`1\_} (xaV?/2,m-ϨkQ$6/S߫}>Cp.cZlJ[M)$MRI$I%)$IJI$RI$I%)$IJI$RI #*6.r5Rԕ%w:acҧܲ7%.#$R OZ'G͢-1sC-e`77*?s4y/+4a0|U.eUPc|ly.?z; _Z_;)*%AqZ` AЂ$~wb>SN?jꤲu\>[VS|q;~cVCr]^ݍ+~NKّ_%[sH %TI$$I)I$JRI$I$$I)I$JRI$I$$I)JWG3~5V1?y HF'B/n3W]\[%36溅mnVIE9-?Ku_t:?I/p?rk=V7RgNZxc|`=>jWWx[uWzes¶*wͿ"d\*ڭ]D_|72[UEߊ_dʝIk?"^x~?V$)ZO;*>6}V$lߧߕOv/ÎߧVK>8?媬:,Gk?&+.Z~H?Dày5]|?FA RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$n]49cgQ%IgYq?7N?F!"è4;S5^ƄlWsO>U,u' ,Zeڒq['URr?ȗ|92]UcA QFP`,g.#*I?5 J?gU*;Ne;tX;֒T?;"۷07Z5F44xSJ?o+W/etG{E-^+Ťy2ʵK"?rgKM#&ߍ`6-DO-Nu?WuZ~`sth$NRTI&I$JRI$I$$I)I$JRI$I$$I)I$JRI$JoUxi#sO""dh)~WL;^;> _a2C1~7kZ[+2/~s߼Ѧ=+oW@l^Un%o8|/.7Szc7h[uc⋍p-5m߀HMkI|PYs SZQ ݏs,+ gFvc8|m|p_uVԖW쌜o蹶ved3tY%+/C]mݴ){`GuRYc&Hmv9:Eu"|~N+I6և0AM%mI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR]|@?$!N}WeO c[6IH3dQACE%7G#)k娒^O*p9CmwS _2GK+shZ%KrdDS?) >_ͩwWI{U9g/alޤ^/KQ$x}*R_g/alޥ^>N_[?/RI/z^` /_-ԗ[?j$/S~rK\rȵKޗ?UwqȳuoeeORȟƇj$/S .~T@K?^ /ovS&=ͼ#?µKTĩnE?áթ}$l# k~DQiRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRK:59e@g;P'^ϸoaoD[\ 3}O'?vrIW0!]׸ɯ %}c$!õ 7As% ?kyc2׿sdj5ql>9_u,}[X>~KO%gr~jH"4I1JI$RI$I%)$IJI$RI$I%)$IJI%,m-/{Z5$|RS$Oᕦ/XekCO,yڳ|~ OlDZ|ηGqUe67@@w( ZM_mm"O>hq;M.kZ]im-?t`KsR?x ?"j sO~aHDoޟk c/^QiRY?]$W쌚?gZ{>Ez?ҫǺ?탱Ied͟"ޟd] qL mI1*I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI%~+?&߸.K`A%t&?Ooߐk%/Wd}/{w͌ ӽ E6Xښ\&YriMMm _Ξk.!. ;'O;P^g<pu6-F0h~9_dy?岑E@nbY#3'KޟMkQ$6T IF$I)I$JRI$I$'YdSzo=k$$I)I$JRI$I$'KmkOF?k$$I)I$JRI$I$$I)I$JRI$I$$I)H98tfe2=(" r?Qc\f{2NVIE9~VSpe&e_dۇI/r'x}e!en<6١6]pp=m{BϳM[]ՏI3iKgtYEeU]7/:ͭ$SRJuYh,j,,w?fo};GcE/j^hU,˂e_PnM6Rƻ)MI$)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)%ڄĘT-i;]NwJ[:),Îȳs)~̷oXw>E,bOϿOKwPޠY/l ?B*QPYZbR_qcOحQn*c?\g!oK'Khjpj|˟ /y=-To&I{lU9k19N#vS[ko>lN[ҒI$)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$^ @RN,}bư;7{' K`QEmM.q I&Ysy5b~k~ONϫ^5{A>!1hNXa2PZV#շܰj ht}^`al<h$deJI$I%)$IJI$RI$I%)$INO?J?V")G{jIJI$RI$A]>Fz=OOp=9ۿo;gIIII$o}W mq0E9ٽR+e1Xf0vw? ~dnogP-Id8fbO}zΧtyAec K.mI1JI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$Rlv5ߔ+)" )=9Ĺ5/!W^6Qj$d__}AR[:o,jI/t`U9k,:OR:vHiۿ^t~?T9L\ŌpKst5ՆD}աW^7 h88x(vSh?SK˰`?|J_=]<}Ye .o*ڭ]D_K3*r_[zjj\[Soa8?65/CAoIeXo|W|or^WoW׬or^׈U,q&7)%ΪtTv%KV$SϪ[oNƋj ~̯/j^h*Q%_++2ޔkfWҗ/[_cJ_+oKڗ?Ie̯/_Yv7KV$kfWҗ|;zuYc3wة9'Io2zاdx}D_iKwXwV;Խ}Q%woj֥^陵@3UK?uYPp5~w9G(oM pGnK/wwx=Km៤owoU.}V9umR,}UeL0sh'Z;SL#kcX~V_[1/Y:mMuQ$Wn}3ng`f;9Ej$[N_윫?7X?w$;&dZ{[-Dז6}2aO:8Mt7mlkG@SI6S)$IRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$|>CoqVq[FNVv}߫W>l9tuPȫ^4r֏Yb9嶦;=e [\M.#n~#5_|f60Rg}X`9.Z%N[>9/ޠ37- M pte9Kr$IRI$I$$I)I$JRI$I$$I)I$JRI$/M”維eOERլI$wV{~דM;ockݶ&71!W?I{k?q k[uns;RU6NVٷtLn&OՎ^+\6湺n$^UX4ّs90L1s <[hxݷdc]hv=kk}65KnIZk]Ԫ.e}f?;k:<5;`$.pWĮΩ6s[^:`i}}i$Jrz7Ys}nN%-Ie}5G)?鄿efdI|~ 3;܏t22ja}6\+?qݦ+-?,%E ,n UlU8?̯kB7dk}+68THES[ F=,y~'IuJI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJIQ8dD [%8Un??l[tyVñ76nbsƎ\%fڷ7L wZ?>Dey5n;L[hKi_+ȥq*[gJ8Z'Y1JI$RI$I%)$INOF?k,/2IJI$RI$I%)$IHrq(fe״=qTj>cc[vTQتu\ojx]^ǟ@#֡s7Z'{7'O$6˽{]ICgXA 6Z<+9V{\N<~&KgtY_rhme}*,{wɎk4v!V$na鋛c2k1}nIN$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI*}KNEwE MWųK\I/FpvysYSj}tꤲr?˪M2\A/M.+-pa^K#y}mful>#"`wl|Y|z/Z^V@604KFM3#j xkU$6*~t^,;^웬>~+E$e9Kr$IRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$r:%/5V]`Zmp?ۣ?B1tf-{XѩskGĕ=W?^#_"׋nȰjy?ogZ@axC??k3(o%\uS[ ct֖c2v.>.&='2oy=jߞ+wX/?q~T2**]VIqB=i~6]8<~Q}?0um.RY?[,l_`oqo꿚+kA."Q%XncdigUO{mj?^GګuY&=T׏;~t]L'cnϲ:i!ӑ^@[?D)*I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$, ph&gNQs).;֒S K`I%8yWݿ9o\|l}U{E;ڟQ^z"D_-Z͏~Tmw?oE g~7%#y*E ne cVw߮2mO?*t]b]h{|*+U%j?PqMq1gR?a՟i54RK/ZECKc}]sYE-iuߑj[NWݢȻ} ?ak?8 V|Zƃī rM)$LRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$TzN!ָcˏ";) 27+85/zfX޺Wi6'pVM޳+Ѽ[A|+`.?rR$%NbӱsK1e`v7{FSZdYzlKF cXZZ>"$d$IRI$I$$I)")G{jY?T^(mZ)I$JRI$I$$I)g-eѿ_6Z)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$]{àp71[ӯoOf:Prc3' N_̥䟽-DeSub\b_zOWVkZ%U90r&b_~.\P=?9c?J&m >?sVX_S`DV5/mw ~V_cT4WQ 1 Msl*ڭ]D_ߡ|ܗ|<ߖR)Ie-=@S/uvې?"\[ر%wz%[OWKMK徶%K Q%[0r>oǏ\Rߦe| {RBIe̯/_Yv7K Q%_++2ޔ#K(c--Gc~N(R鯖U%8OKqb<"J:,ŋ+`ctedžW17}:,_Yv7_++2ޔ=x}V$kfWҗ|?z[ԣwG$h 5gO-V~Q[OWA4~Ox~?V$`O+)3=Km៤ooxaKj*u\o{[J6:YXu?ʱOFkVrZҁClkRNu5 N~V_?,_~{gom=Ũ\qNW,Z6 SYg1?{?+Q$rddΣ|X? Kn2lMk^-Dgז6}2a]`{t~HƆ ~ i&r*I$TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$9`IYdžImvCCM`Q%c7wgQ ~F7_ލ_UGr}w 4e7;Ao3+f+ؘ8 emcCGFS#+\?rիM"1zp#W<OZI9)$MRI$I%)$IJI$RI$I%9?T^(mZ'Y%)$IJI$RI$I%8"Zژ7m604[K 2)doht~v?LI_v\U%&Q骭I7=e8<}GL )$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI/?. ,Uh#a9/S}/.?)뢭TzN d_[ {O*߰K]WSgo tF=<Ҩr?a`as _fdUݥoZ%N[~ḇddGɎBcX h JI$TI%)$IJI$RI$I%)$IJI$RI$I%9?T^(mZ'Y%)$IJI$RI$I%9=_Ul\ez7Y%)$IM R#F~V2s|n܆|Z'UNWձif*jUvVKrRK'p'P ߏuv8<*£0szP?aٙ5$^< TU:,ccd0g} ~ں2prϗK%힊U%G.&}+?̳kiKH)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRJ6Xښ\&w^%8~m vCbJ[:,wG*2~W^WWc<+c,RuU\Ϋӣ\~]''"'Ym?0U>ӵǮܵHԥPT L\lYK?F|q:L+U$)msoŬ#/H(Ǭ?g~*H=UJI$TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9?T^(mZ'Y%)$IJI$RI$I%9=_Ul\ez7Y%)$IJI$RI$I%)$IHǯ%i8imnhI8NQةG?ɾZK}*1,;ǵIs +FU^bxwY)ӯp`ʬ8cÿu䴲5=Rfpe=8I? 51eU%SŘ|XoK}?;΋Y`=#%!Vꤲ3?eQ`hig$|nrym.P8:*$jI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$mphɁi,f%*rϪkTo ʷ5'SuRY_l7]~w]Lx?ns.DžTεRGUw_^;wXxg~?oHA6on-E߾懿R`~tbcCZ߶2nc*[9-@D NGE9_-k{^TESϫ]5v;lpMڴ+E $e)Kr$H)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$JwU}G K'fgLG 2gȵc_7.ǎ_IIR|ιInUm]@WSf7>*t}Ɔ1XK#`##3]dSzo=k&)I$JRI$I$$I)g-eѿ_6Z)I$JRI$I$$I)I$JRI$I$$I)I$JRI$6K,hxB:IBӛFg--nwROeT}UrxYClK]ZMƻwV%\}^J+;0+V8 \&8m6j{RK'8wN]> ?WAr0]S,C*~tbYz'j^NK/oTʯck?߲+o|e/kaRU%uzxua9E/[>5 ]RBTWtn8>ֵq OUi*,\{] A RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$e̤KНOIe~};$K+KQCdmĽU,wīeƤav}<7+7>>ԸpQ%;2[XNsֳ2?cN5c 2y[Q)1ׇCO} %ڧ/pci[NORK#bŧVd~i~696Yjzro{#*ύ}ԚWվSS?9?VI{b6 )$bI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$ձ:l ~INmk采alKnv^Y1*oKS+roQȹ/7酇cKV6jF/l2]k.?2q*rfgfK-i=!uw~vzokY3٫OpY,S깖ѳ"ssHh-Oc Zwe5ډkx2i}UV5{p'gb{Z R]^^ ;˼I%9=_Ul\e>GPꏱ2?Gu-cU1*I_Y%:$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$6I)oFZ]j(UJ:[F!j$2HuU9_k Dd6[2^s娒> K(yC* S =@Qj$ +]fcc>ȟgXoWzI/pb:bc?SWW?ㅨ\cSC`O/a?x7yZ%?t~?NW팡L;_Yv7D?(u}~x T,.[[RǰejOE9W/<+Q$r/<)<_y_VI\;<_y_Rx'HDv?o)x'H8OZ%p~SxW˴O(S' #>xd\Q/WVe)~̯nIqSK?[O=?:¤[$\K~[;B,w/ÿ+VIq9~Xwo ?UZ%*Y]JJoU.K3=ժ^NWwӷ)` ͎~;?VI{sk2,p|}&O XmoZEI9ʔI&I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$N]8L6_c+hpc~M>um奌?'TꤲO|= V, ?%7j\ˮ_Xcͥ7*KT>nÈ}Gxo][lZp+X֏EK#`'>FW,jgtN?g'=?2I&I$JRI$I$$gtʺQ7lǥ}s/dTX27+K$}Szo=k,/M”維dI%)$IM| z-Cuoc=iFGt|l+6/sZu!h0&"`O^I%)$INOF?k.w ^ErC +?#lߪ[ H &$3I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$9`IY}dqc.rCx>b"NNK$u<hK~;YhOcjP>gН[:ph$VeYp4C]{&Zq{f|Z>@-*mM cC@% s>rȰ4C* ߲r<cio8-d㭂nchk,m,.wI4ȝԤI)$IJI$RI$I%)$IJI$RI$Szo=k,/M”維dI%)$IJI$RI$q9]TDO&QiCg-dDNWG߼lqƪMn"I;S8MW^+}G hcJft\z,܄MԖWOl|OY,!/Kqcw6 pSFs.gS_A;~t I=khj^ܕnJ5˚ARLRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RIEmm.qI0Jd˳7Mc!cm!׺PyMg"1/p6PϹA?ۗe[29v68h~C>R 5RrN]8l}G[gH;ԯK)wSk 'v6VO U$9cu՛ύu6提 JSCX8@ I&RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SOERլ~Ƚ7 QڵRI$I%)$IJI$Sѿ_6Z'KmkRI$I%)$IJLy:I)̳MQiTbO|%巷mcIjK1~5E?plZk1VHNWg:@:ƴ~*6n>hExGTrzO;ťD*o$51vM?սhŅRZƗSU%z~>=Ŗ|?nڿgC.o{E/lTW۽??56v>h.BII$)$IJIWfk,ʳ밟kkcf~JJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRJY^UxWenڝ[]>VRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RUsYf=n58o+?5a%)$IJI$RI$I%)$IJI$RI$I%)$IJIV8"r/뽬*j][jkpNK+37RRFzGu5`UnK+Js?)k?l~싿{eeu7sec 9Eo[\?t΁~cq+c+oEm.:r9_ck\[TKoXbVC-xP:6mɽ %~cn?7O ?I_Y5NK'mbܯ,I_Y%:,/cr_k&_d$'LͬOSX27+K%6?enWINK'mbܯ,I_Y%:,/cr_k&_d$'LͬOSX27+K%6?enWINK'mbܯ,I_Y%:,/cr_k&_dk eEL%g}H%[齯fNߴ׷f=Jwjȹ >zdҳ>Un36d]psQih z7)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)W9阷X m5"\bc]Kw>{ K5LJJj~~7Og=h7oSܴvk:-UulH6Ƈ Uژb~z>?m߻ln:J[pzf=căc 9 )I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IO9:eV8ŧ7y3[Ok1Y=g_Jo\I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$vz6=G Ro;v;^lۿN" _ul7z7C[7GpƵSx2g[KImsUN>oMzv6րֵkZS4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$eS2=[o h-eTv .y{ ǻhmq]d\_]7{=c Xl8ab5[K5vc%nsLhxU:Wy8u1K*,KOf =JuI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SSg~}!d-Vv{d&N?.{uy i{Ի-i'cK04K(ga}4iԏ,\V^;Zfۑni};^wH:$I$RI$I%)$IJI$RI$I%)$IJI$RI$I%5pk )tsLkgLefd@lژhIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IN?[ll=IݿKZ $I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$wTvQ,;NfI-tM+C a-OJ8ƜL+ $$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$8mu)h k[ֵGKm?sdZ;{+i$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$?+^Ǻ7l}!{ cVMkg$es9'Ru:$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$]PcŎi0eR e۬{ mt4 pIJI$RI$I%)$IJI$RI$I%)$IO endstream endobj 388 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/WFSonde2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 408 0 R /BBox [0 0 1253 917] /Resources << /XObject << /Im0 409 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 32 >> stream q 1253 0 0 917 0 0 cm /Im0 Do Q endstream endobj 408 0 obj << /CreationDate (D:20080808182933+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080808182939+02'00') >> endobj 409 0 obj << /Subtype /Image /Length 77170 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 1253 /Height 917 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;; ""2(!(2;2222;;;;;;;;;;;;;;;;;@@@@@;@@@@@@@@@@@@@@@@@@@@@"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)%v>>3ב)ϦklW ΒݺnVUm}XI;V>~nۺva%: ,잮r]V-9Amo_ўS#@]%: *?Gtid )K#dGKG:.*?Gtid )K#dGKG:.*?Gtid )K#dGKG:.*?Gtid )K#dGKG:.*?Gtid )K#dGKG:.*?Gtid )K#dGKG:.*?Gt;G äM%CG:.,u]%7T?id ~QS}%CG:.,u]%7T?id ~QS}%CG:.,u]%7T?id ~QS}%CG:.,u]%7T?id ~QS}%CG:.,u]%7T?id ~QS}%CG:.,u]%7T?id ~QS}%CG:.,u]%7T?id u{lscG0%:i*?Gtid )K#dGKG:.*?Gtid )K#dGKG:.*?Gtid )K#dGKG:.*?Gtid )K#dGKG:.*?Gtid )K#dGKG:.*?Gtid )K#dGKG:.*?Gtid )̷CCs[4(?GtIPp2?ΣKK#dGIMY#?_?GtIPp2?ΣKK#dGIMY#?_?GtIPp2?ΣKK#dGIMY#?_?GtIPp2?ΣKK#dGIMY#?_?GtIPp2?ΣKJu]%7Ya^>/3hct@%NKe`۸ЗoG]줱j۸ЗoK]줱+???GU8Ѹ.vRXY[T7oK]nKqvo(yٿ?\e%8ٿ?_D%NKp;2?J:mL%.uYr'KOVpIfܟHuUyHyx5ť.M_[ri}o_KwSi =QkY}BmáThEkCx|SU{/ژ"I\{)OkO~ѧyV$Dzj ~ѫmm+I%q즯 ֞?+B_m'm?$Dzl[e߾($즯Dy77$즯x;?/S3_\Cg*$L \qjIqjYP%,}Cw+I%ĦF&^CCM{NE?m;JI%TWʧRy|?*Iq5~q!&~VoɷII%T*ߺ&-65i$ʚcw{?6a-?#B\eM_η޳&zz\rzz_m$zm? fb'I%.jK^ǫr\rjK^ VK]f5FQEm D`!:I $I)I$JEMtϨ5JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRzϩ˾23JRI$I$$I)I$JRI$I$,?L-WVuOINI$I$$I)ΣTy+EdS#{;&ݷڳ *+:S' com*xWZ#{~~GꤒH)I$JRI$?L-WVuOZ))I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$r@I ?7k(~NJL3j*=ޗ,n~D%VIUWaaUaK_ogA. vUUhVxm` })de6U~oƷJ%5}Q.Jڮ6GaKfwKEW$Si%WvYڇO,}Cw%JiU/O3-_ӿ\#I*QٮM/J0E_I\{)K`? ?7{o? #USW_ogA/5~͟i$=Y6%x?*Wj-?oŷJ+I%;)-}_Q/qҊIqj;ngqOd)7iVRKvSWEW$uIZI.!M_S/_^_*%i$e5g,mCN?ДeΨeSWKWR?m;JI%Tm;JwVKnoʿqM{9U*jo_Kܛ~\eM_riKMuMZI.2,64Ex{KVKeԐzz\rzzoη޳&$i~ΫɫI%.ꦯ&\t[nVRK]MQ@e\u'ĥ/cZI.9wU5fbzo'?UcYI.9wU5frar\rjyǫrٸ*1ܬ߳q?UcJ z\kk4:Iq˺I&I$JRI$I$$I)I$JRI$I$,?L-WVuOINI$I$$I)ΣTy+EgQ*dloI$$X8u,Vo|^DDIUr*=ޗQe[i%W_ooA?ۚ~vۛW pK)*l5}Q/Z53_yK.wZc2UnI%TIV~mMӟ}joO0֜j\>*m$yjR5!hKwSi%Wܛ~_cyYK\#I*<]xpKu_ogM*u6UgP~K;eOW=&9B~]5+>.@t@gEf=U4| zTȫz_1~i$=GbUKJ_j? I\{)B-?П?FOɭpVRJM_qm҉}3UrVSz]ߘ??,'ۖΩsVRKM_O3-_ӿ^YUaVKkCZT-65i$ʚcMuM/60$SWuGɥ:޷޳&$߳<=7SAIq˺/cI;QX1ܬ$)eE| i$jRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$27^JYʙ?[%%:)$JRI$I$$cF6?{B:޷޳&GVpU5f~K?ezo+I%.ꦻ:~5f[Mc?;Z NI $I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$27^JYʙ?[%%:)$JRI$հ^ߵNmLHE˧:ݏc-clBJjQ*dlo27^JIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$GVΣTy))I$RI$O%6岏Zi~n@'Ztٸ̤{Nqt [I%9;nwT;_jԬ<4o U ?L-WRRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%#XisK՝[W5E-UGRSI$$I)I$Js27^JYʙ?[%h$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRJ|J̡2JxCWjb܊o.m$K/k?e[i%[?@^VԸ%VIUWlK_ogA. vUUh6f_oiOm.m$/q҉p6U~oƷJ%5}Q.JDi K(;?/S/;OKewKEW$Si%WEW$\qa.JnaԾ=8\>*m$yjR?m;J;kKW*KW*JiU!^_ZTGu6U~ϐ|Q{%&ߺ&J-64oɷI;1-64eWIVSo_K܋~\#)*e[W-"ߺ&JiZ㼳k`lɥQJ+?i}޷ݳ&G)*`lɥ zvUl}޷ݳ&+?iT{ zv_`lɥQJ+?i}޷ݳ&G)*`lɥ zvUl?L-W}޷ݳ&azPiq_9%JuI$I%)$INuOZ+:S' cI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$C} $"Jxja܊opKI*P]R G?6f\m$ѫml'p?FO . vSe%Wvk~_k[*m$Yr^gjj$Si%WEW$v[6i.J̳[qс/O3-_ӿ\#I*Qf?+_fV~VGu6U~oɷIK;~U IV?JO~ΫɥQJzz_;*u6UfbhZK^ǫrUla tXp 阍⊇Vc_cGHOS~VxNDzO0ȗOǻ5ZI+e5h6WlVJM_]U }?$jo_Kvk~\Cis)zGY­$즯uI/S/_\C6;ٖ>;SWKW*iUZI.2y*yMk95i$ʚdW%&ߺ&$SWvwɴbnj? Iq5OOpKu_ogMZI.9wU5gUOsac+uSWn1~:Tfbr\rjK^ǫr\r@ vqMcb>A$ ꥀ RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,?L-WVuOINI$I$$I)ΣTy+EdS#pyl??tW>]h 58D6U~oƷJ%;x;*m$]v7?5.JiU?ySܗJ-?ϐ?_cMXGu6U~i. ~ΫɥQJc/ezo%Qﵕ'0z 0r*=ޤz5?0hO}g!K=-*I\{)Fݷٳ ہ5[WZI+e5~oƷJ%Ok*Iqkz.▏Y,roS/_\CӖͩsM֜j\~ jyjR= 걣r\eM_[rmi}K\eM_1IRB_?jIq˺<;{RފŠUi$Tq1܈:+50|2IRNIRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRΣTy+EgQ*dlo褒I)I$JRI$?L-WVuOZ))I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$27^JYʙ?[%%:)$JRK'P+ǭ~Eސz,`atVcq:6Fdbޥ^:`{=K }4ОJSy%ޝb/>}Odc^21XR/kh`=szMk%hO%)OZ+',c9J8LZ~AILI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)gQ*dlovCw88=sJ½<3;8ꤒI)OP`ew4έwǰ0HH_+`໧VzIu3+A$tuY;]]9`H0<..-XU6I92\$IꌒJs27^JYʙ?[%h$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$Iԑ%YKXޛȫzw.ʶJ޷޳&zzUSi%[u=Ï?~SU{/ژ"I\{/M_xa8ȗ,~ϟ'i$=ئ~FFݷٳ $ǷWlK_ogAZI+o)i~PM ~RDzl=^Ei$e5~oŷJ%5}QZI.!M_ZxƳ^x*Iqj]2UnI+I%;)ewHٗڪ%i$e5LUۮIwVKvSWv[2s O,?b\~ jyjwVK /-_ӿ^_ZUe$ jyjRm;JI%SWKW*KW*AMasvCcZ?_eYWՔ*jo_O[?EuMYI.2l}4gȳI)%T-"Ϻ&l}5e$ʚeYW-"Ϻ&S[܋>_eYWՔ*k}g_Lp}~,k]I%TggMTå<7sJYʙ?[%)tRI$I%)$INuOZ+:S' cI%)$IJI$RI$I%)$IJI$RI$I%)%@wRi}Cz"$IUxx??}vURUh6{]k{rm$]Y5D*m$.4Zk3?UnI%Si%[v[2i6̳[qс.6U}<Nҩ}!`[IU%&ߺ&,iW+KwSi%W ?JOq!/~4=IUO}c\S,?hwJ}m(>WOW6`cWi|J.X0o|^MSU{YkCD\{)Kk]_w䔏Q$ǷWlO柣]DzlixKvk~\Cig0ԹzgkeZI.!M_S/_[T?\Cr?^gZUi$ʚY _ʣU9YI.3dW%&ߺ&$AT?JO7.lI{jΫɥ:\$.ꦯn4}ߕ/xI{jDn 50|HG BtMRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RuOZ+:S' c䤧E$IJI$RI$Q*dlo~̎F6?{DqҬ;N*lٛE?N7ezo#WEu}5^!r*=ޗ*qwZԂ$ǷWlOF]eI\{)-}Q?/wѠ=r\C榯uI>~mMӟ}j\C_ZT,d~[ \g5~i&ϐ?g|~jIq5~i9$%:޷޳&$.ꦯsĿfbzo+I%K j5;I$ RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K:S' cGRSI$$I)I$Js27^JYʙ?[%h$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$@I H%.z(0oxR NVIUOڊoOU{/n}m_ژq?hz_z^*I*ߴ{0xU{/n}moX=ޗ,Q{rlQYmYK՟vURU_mYK՟vURU_mYK՟vURU_mYK՟vUVuOV>_mYU0mO(8~~~GE:$jI$$I)ΣTy+EgQ*dloI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$c>BwPgҺxz)SU{/x?VIVGbc_ogA/n}m_͟n*b?/n]m_߾(D!VIVMnjw?#o[$KG)pBewKEW$D*I*Ӗ{T>nw l?*Se%WKW*yGJGM_y?,KMuM.Si%TZMuM?"` pl}ll gҨSi%Wu_ogM??+w_j)*߳q_ʛf!J}m&. ­/c;zv+xc*#g60|\SU{3>"%S[ȫz_?E_դv_bߴWm[jWSW_ogA/~͟i$ئxeZiꦷOW߲=_7'Tq1ܛf'ǫr^æ(rvVmVKܗuROCt$I)I$JRI$I$$I)I$JRI$I$,?L-WVuOINI$I$nk0X\cu}:0Bu CA"X?">fX}7=^?EMލޯV,v>#~::6v+)y  n@4ʙ?[%h3#dn/^~~G+T0I$ RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$GU۩m9?{H+; KsRSI$$I)I$JrEXO$}Vjb܊oH1Vp1S[;sAMF6v_blq4Z[VOkҊIqjGX?dԱo?~ Iqjw9nQ6i$ nw9kc%m?*jIqYi9~ΫɫI%K7*{7OWi$U#~߀$$)$AJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RuOZ+:S' c䤧E$IJI$RI$Q*dlo27^JIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)%=Bvv;>Q%IUjb܊oOڊoϲK`?wK]U5/n}m_5~͟hWٶVϲOck[*JDjg!VIVx2UnI% JuI-gC\[i%Z2z!7iU.M_O/-_ӿO(m*;jlOKMuM.Se%Wܛ~Yrmip)*b=ho<]x T{>޷޳&zzUSi%[u=?~X?*USe%Wf'ǫr_1?=_7w_j$ƒB阃_7ۇC8ЗK;?Xz6›EW$$ewKEW$$,ZS{T>n?+)%;),}C.w%wVK_ZT<NҪIqwO?QYI.3U5}<GJ%k9kGVK Mo[rmioɷII% ķW%&ߺ&$@*dW%&ߺ&@*jmi [?MuMYI.3N\dk9yW~ _YnVRKܗuS[4_YnVRKܗuS[4_YnVRKܗuS[5S KsVΣTy)SI&I$JRI$?L-WVuOZ))I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I&. Ԙ@~~5fuc?"$J@ȝʔI $I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I&&Mշ7 Rs(o6h(9=moX=ޑX=ޗ.ȰIV~O_V)*ߴqW?_*,? ?{r o՟_mYKۗeXl}vmYK՟vUJ lK՟vUJ~)}o_Kے?=}Q/Yq҉pa%_V{>_j*ΣTy*ڬ}EOY~G uI$)$IJI$SGVΣTy+E%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RLLr욙͍@%IRUR=ޗ,OGۗdXl~`? wK^VԽvUJ vj_niᖟۇP {r oETD O|2xi~@!VIV2UnI%ewK"mi?Xӝ} l?*q޷޳&zz^[}_ogM/~/yVRKܗuPk~<OKn/ o+)%K5fr_1?=_7'Tçb(ráT\r=SL,o 'I6ԤI%)$IJI$RI$I%)$IJI$RI$I%)gQ*dlo27^JJtRI$[ɯWq\gױ۟[w~sF K~2mxV\&ȩMm0;nlN%Jyd׌ܫ U~3cϭItd.\sWUu4EMS׸ khtw.餒7dzLcVǝ,9jV^Z7pOZ))I$JRI$I$$I)I$JRI$I$$I)I$JRI(>Oh%[(_ic-cww.ȰIVW*?Ծm?З.ʰIV[S_j*J)hKEW$D*)*Ӗ7wKVIV6Y/)}C.Se%[ܛ~_bm[a.Mo~4gywrUVoٸk?RT;/Z~MU+>.'zo3m*^jxp?/ǻ5YI+o+V vf_ni5noP I\{+Vi~W5}QYI.!Mo^<)z_]ՔߗqM/֏zȫ)%kzyjR_ʳ \gk}U9/YrmjIqK;[W+K@+,?#*zz_m.yK*_1?UcYI/r]A:n(o"}4|DI#9$IRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$wѵ>qh\kWִ踿I~*JlDq굣%;)*e[W+X.VIV O}RB_`lɥQ[)*`y\~4XnT{/ZSL*qUc;z~3xT{VO͢k(~O_f} i\U[/k?}'V9ߐ+)%qj}ogA/VUVj!7ڬ}Ee$eS[V{>^NJe$eS[U;KE_&kn?Xۏ%(}cw+)%kzy_km(AT/<0K܋>\gS[ܛ~_dq4+)%UMoq_[nVRKܗuPk}??I~ϣgIYI/r]A7EKn/ o+)%K5ہ)|?E| i dOTҒI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)gQ*dlo27^JJtRI$I%)$INuOZ+:S' cI%)$IJI̚ok~$ʅK=ӄ$z*e%[7;sZRs ֞?+B^ܻ"e%[O%*S4v;y?q{;]aG5KOK]a~Fvj\ WVRd]1a. vUJڟڋ͟gdzJ%Umqɥx?UmS'L-_*JUێi$|.l$?XÏ%+%ۿ\#+-ۿO k>Ul$o?&٬}mor,ig{?&%; *dmj? }Yn<~G%Q[ *al%zvUհ ?+_ʕGl$C_~A_=իeEky ~A_!*`JY[͍ c7<z( /JAG=I\{+V n0 _o VJZWmǟ_nlȫ %qZnlȧuggEXI+ejuggE/vaXI+ejSXN }}ɫ %;*iHdϾ\C?Y&G=Ӹ$z"a%_9}·Ը%V *nlȥ~vB\ Yڋ>?=}4 x%-_K *n;IF?w%l$I_(̯gJ%; *ǛhR5"Ϻ\#[?EuM/60l$޳ݳ$kݳ$Gl$퟉./k%Q[ N@AȍĥFB^j᡼NDzk@SI$۴$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI10I 53X!C7jޜ!# *1{/-ipKa%_v~ qK՟%\AvieXl$gz_iK *i̳&yUU?M-?K *OV?O%$uc$߂\>*J̟gJ%'%҉pJy&GqKow3; *fYWK܋> pJI_ba!*uYl$޳ݳ$kݳ$Gl$)Ka*Uհ? K~7ܕGLlkyp47fPm`$1(o0d"5oKҭPO_hcI\{+V?/Uؓk I\{+V۫E/WVUVoȥx?,+ %qZjj,?gdz&$kg_M/Xx2$k?{R2{Vϝ $kG_[n&$kG_S{V>d$kIXB[2Wm($U5d?Q-?+VK2Wm(ᇷpq>7oyuuk?VGS5=KHwx dJI$JI$~f^E9tH-akGb3< &tEL$;=81\JrUS#{[8>wv|ǸiU27^JN(կ֟MϾV;*_wѤ>?Z̬yq6a$eS_fQ XĽa$ʩ[?EuM/aoFa$ʨ5_r~.K~12O$ac׫j`4`# I;I $I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$r@;;pDIU*1WxAV]dqJ۫E/lK] *j'a8%?=}4 O<|K?^A|GaK *n&ͭ..l$?+'ٓlDGu[a%_Ҽhd~Rg{>mYr,%RyGu[a%_L? ggI*ujIW ]?9ߔ?MgRVZ}'(_`6ϣ[/JbsՏMC5GqZo)i6$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$b@%.*o/h47WpDdz"t}5G] }5Kv~ q pKtg_mm%\A,Oe;%\A:ΣTy*ڏj*%ΧKKWx Q$A*I$RI$Q*dlo27^JIJI$RI$I%)$IJI$RC"߉7jވDXl$s;ͳj< IWSN } d+g)n?Xw%Um}?+K$(}5Em,o ^j~7jޟvGI+ej~ yM,VJZݳE?ڧ?ُB:I\{*_6gM/Ͻ5a$eW^.K7iGI.!Uߓp4?MXI.!Urj̟m?X?$'%҉lHϕg&$W JͿsGg=s? IqS_gA?ٟ%UH>/h _JIq˺C_Un$U~6ՄTZCϏ-'+.a$eS_fOJnwҺ??+ %UM?} KL<\p!XI.2 y=qK~7ܬ$#߀$$$AJI$RI$I%)$IJI$RI$I%)$IJI$RI$LHnJ]$fPϥkG<zw#6@m'OAwM,K] }n. %_gM?q**n&vI :HrO?O&ٓlDGu[a$J͠UIM{?3 l$O@y?a*e:JثI?ثlyJZI4ki%QS9g |Pn;yA;pgѩ@ B^j<zPxx?wGI+ejo?mia$=,?#},VJeQk}ɧe&ٓMXI.%S_fOJWm&y(%UH>ag@5VK}Ǜ?ˬ?Ǐt㒸C_Un$U~/yGI.9wWAsM??71`a$\!o0dr#jcxhDU$H%I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI&$RR!"r nM_ $c}Ο'#. @e~V}KE. vWNxc?( }?+* @CY&,?_, t=K-K'I~G:`p:H2?Waɥ#%҉p:Hd~W 78|J\#NϹYC =Py{gU겝$q$Wps)T{T }m?K8k4rU2BYh6[xcG*Ձo6}5FqV>ݎxRm]?O%qP}oȥxYm"Wg_j?*:I\{*;O?KO(VΣTy(;(E$A*I$RI$Q*dlo27^JIJI$RI$66|\H @u;M,G] *j'a8'Ee. U+gSKVߙj\%V%_fOJ7;]h[~ Ug{>>JuYNث?z~ ʕGL\0v6|\n;u0d#%V>ߎxO<+yDzknXIX-X?YR2U^(7̬l[rOV?]~%kI_BUA%UMYϹee[a$ʸC_Un$Uw;tup`BBC??$\!Xp)$jTI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI&sy |RR 2k7۱Wp vGNh;h p:Hdi?p!/q$=ժt>_ǟA涟ʕGNA?ܐL4rUj3=B۱WpFp>M/JA8z_m ":I\{+Tl)}oȣDzAxcڛ$vU>}ɥx2⎒\CA^x7sJ[?n&\CA ecdQ{|!$H6d?Q-m:IqpǛ~e/s?%U}KkK #.p/q$tupc{r_a[OOGI.9wW8k4rC ?K]63M$nҤI%)$IJI$RI$I%)$IJI$RI$I%)$CvU, @J۱ҳ}?+wN*I4}K];IloȧL[?) pq }_&{?ipq z֞*?7)ol \%\A:H?ѳKvG0l\%\A:H{|!-M._uGUaɪxo p6~G@@i$ RI$I$)2=6;[ *ܓՏ-ߎ檴ʙ?[%h%HVVGQr_f{>G5ˬ?ǏBR~KKGI.9wW@0qhf4@NDRI$TI$$I)I$JRI$I$$I)I$JRJ.{Y#9DIA 'I,iߑ/Wmx%\Ct>l?_hj^pq }2^y. $ <w"ԸUĝ$ +KҸlUnKwU@;3 ٜyhhKwU@Yn?$U:Hb[On} JZugp۱Wp6ϢƏ/JA~ְ _lc%qP}oȥ~GT#DzCY&,?_,#=z+oRߑp4tG X?]} m?X?\J2?Wm(q@\E\!s? }GI.2'hKlI$\!y/Py'򣤗vA5?;q(o0|K]kCx'I$ԩ$IJI$RI$I%)$IJI$RI$I%)$IJI$)tulOhqDI $cg?*"<!2HkgR[<m"+wNg<f?,%\%\A:Hhɥxp WNl<ߑ\%\A:H{0|˿KnA pӤ##??4;6?.V{'Iа3"s? p:Hg'^~#.CIl_c{)TUt>Gz~"*_aDG%QVy0[͌ĥVhDkCx|T_nJ4?$*+_lgQJP}CTh%cA^_-(%;*t4#??tG X?O% sItW aɥ͍0t*= 7;ZR;?gA$B?ЗZys?!%U}/K(^\\rب[OOK8htup[CxЈ5> I dJI$ RI$I$$I)I$JRIy0[͌@%$GVeqGeGUx3@bX,y$O|nAoxbBtI$+**mbI$Z։.s5K*kȥۙk"X  ֺ[Vv9}m>缱6vj"IoP}4[=Ud=FK6j>INPtH =mMsI..K3*muOƬpwbxcǡwuvm,ԧZ%:5Yⱹme51fָˤw;S' cdԾ,c6s,zЯ mĴ00""J,6R@ G @T I$JI$I%)$IJI$RI$I%)$]cYĤI V}Ŭ?.Ӥn?9ߐ%x?E. vW$GT%\\A:HпgI/RmR* @ߑS5EЗ Wt6~ ##??4GuY$JͿs@LGuY$?Py{:Hdg%})JS*5@?/gT|J̡vT+h4" zUcge'#Z[<m"mtTi+y~XKB4tT{{?i[}QKvU7g g \CAsw%##??4tW aɥy?WAw_gg#WAPy{q$tupcgQK]; ?&?/cL4#vF+g hIiI$JRI$I$$I)I$JRI$I$$XϤ>%C8""J LhJ_k "<(Lmoȥ.t +yHKɥU$ e$KJdw_<y} pq sI_0gd};67"2H>?gA/6<wUɒA#<_n?$q$*&It`?*_b? TUJ\Ʉ3KyA0ĥV*"mYpKx?wFI+H~_kgQJ⪒O򐗮/FI+G] e"iFI+G??ك]2Iqɯ;oilaɣ$WCZy> ^?gA$8BAG"ف?#K!#<_n?${$\1tki}L4#$= Z[l mc[ऒRI$T27^Jun׹ŻgpYU:c6֤U$IJI$RI$Q*dlo27^JIJI$RI$I%)$IJI TףhƟȏ #wNm?FG'Iɥ^x7iK'IvAB[r?}\>*Nq?.KLGuY$Oұ[a/3IT{t>IJ_bDBUj5Whg>Tl's )}GI+AxQ }_&V;*tNJoFA$eQKfGFh%ĮǛd~W:Iqpg{}<m\e\!q$I[QK]; ?&S>mR$JI$I%)$IJI$RI$LI Ϥ ?m+?d~GF/q1x%\Q$)}`\!2H?hwjzB4J8d}[q\%Oɣ^?gA*gd}_fh P=$FxI/37ߒԙ$y'*?3ЕE^a T>. %-F zUG?ҳ)cOFI+H~_m[<m"WzaڧGpFI+G]_&a|(%cCm<JeQo?-`?\JCg&qo$WC<7"FI."k_eow?\E\!q$WpOR\rC:?3ЗبDB2Iq˺xchEI4R)$IJI$RI$MJ]$7dT^!GgCd~IƟȗc vW{Il_hK&IɥXx2 WLR3K&IKmM.qx&IeǛg<7"2H>?gA/GL%C,Lq$_}Rԙ1 r:?3АàqS? zU]T>. GVƷI/JH~WgO~Doȣ$>?ji?p%뻵O?dT{{?iz+7G$vEw_<fw%Cg&}2Iqp>O7FI."c+<_{$B3I}'I$<1tgRĩu<Ɔh~~BYʙ?[%"T"I $I)I$Jrsj26? s?#AW~XOZ(^/l<GvU#!ߑj^?r:Iqps? }9n$#WA: sKXhGI.9wWŌmbRI$ԩ$IJI$RI$I%)$'eRvAGG$cKM<5xe\Cd}w^-)pq y%.J8dv0q)P=$<7"?#R{&I@SKүRS=ߑ/(%qWژxkw }NJ$vU}w^%$vUw_<y}%;*t;o?-??4d(}+O6}^?gA$xBAy4~FV\B2Iqp?dg%gOߔ$= 愾@B2Iq˺cكjc>@4MJI$I%)$IJI$RIAV\! -V$QGV%Q$ؓ@m%\Q$7_cK[B\%\A2H>пgM/ZNJ8dwx7sJ[ p X?O%'Wdv_0<>MwUɒA?Kg%C,Lǟۏ%ClLq$Wvė~T*&Itg/?3ЕE^NȭBhJjc8h^?l#~ q$*![<m"ښxk?(FI+H}wv\{?h%c(CXx)oy#$ɣq_?>r2Iqx*Paɥg&\E\!aFI."w{^}<md*~ۏ%J~.'dupDz愆?%.f-|I&RI$bHg.͌8"($ 8%I5eq$3?"'<* A{?Iz*?2J\%\A2H; nkJdv9$߂[/h#2H>] ?+P\Gd~/y0YJ]$ZK*_c? zUrfXϤ>&>GVEu4|zUC}1d-<5~PH%cC(v07??!^]?pTqlmO$>ύHVI&RI$I$:S' c. GVƳI/J=H~Og%x?E$)!S<c/O? ?FI+G]_&a|(%c(CճK}A$vUNp}0ђK<(v_&^] $WC?3;6?#B2Iqp?ei=ۏ#$=')Ktg$<1TgM4 i dJ@RI$TI$$I)I(Ʒ(g.͌8""J L(J_j "\28LڙKLe\q$\+yHK'%U$<w̷$ oҗ WLqSq} pq sI0ҡ\Gd};O6T;d J(v0<IFI."Wȥ;FI."QRK!]).y7=DکH 7Wٙ}'ȗO6@~HKw'} xA%Yʙ?[%\iQ.=O'p?@i$ RI$I$:S' cGVJRHOɩcAp Q.P_S(${?Hq [~oҗٍRWdv_0?JtY$O{oFԾ~JuYA>&>Gz~-IW_cG>?l+? }~ s FI+=H~^B^пI$vU}[g7%g V;&t?wv7]KeM$‡ѰiAKgȣ$WCV\B_dg?dup~I涟1)VB2HqK8cf7 II$RIE1I|L$I 8%{=g#.x2H?jgw%1%{+=$뻵O?OK&IԴX? )ny%U$72K\^ AKҰiRV{&IWȥ͏?0? P=$Vx+<_{IzUrL*</愽*$sH3HS8cG0#*"eYpKUvtwFI/JH~_ji?r2I\URCo?p% 䑒JeQհQJ[(%cCg ܌\^ Cg&}2Iqp>)zLd*}wԾ.yK!+<_{I})FI.)wW{!%=iRhFI.)wW{#m4|S$IPJ!>$(8#QBU' D\\'8*H?igwE??#\%\q$/YG$OK%I ԴXMg WLhJ.?.qx%Im߾M>O6wW$/E_7"JuqRB8(0<~@QRK!_s) ?8T*~3$upG/S愆5Mⶏ7X}'*j#?܊=@:kK"_iow!{'=Ҥ qGT%;* RBao" WJ\{|!-?$\GT'J^T;J}'K)KE\%Puճ=@Q-?hSkϢWڪH߼%(RKET?#^?oI$vUxdY%-~?T\'(sGIZyx6?)(.{Y╕pҿoE/@\?a/_hgm-wW}iR?#]{Izh1"O oҔ{4|˿HR$*H[mIzo<~@P|_s)P#2H>?g<h P=fx-rJ)FB_dg-rdo/h3)%H~Ok~ȗYk%]1hd%aU.g^?oI$vW ԰_%6q2IXuQq'TW~??4.<&{*Iqp^W|)2Iqp^<d*KlI?$upGSm4"b5>IAֱQU?pJWBTWF/3I.\q$/;?#\%\q$/YG$NK%I ԰Ͻ)nyȥU7h?Ԣ'qx%I m߾OI-_7*{%I wW}ȥ軽=pys/7W.RB5g?OKg-r쐸7 &=M %HOFK;~RKETK|c/\Tt^?oI/U-=nqȥo"W\9$߂[nH%Įy>R]s(%Uz˜~qS }/=ފ\ĄA `7cj"~$ZѳЗj/3I/Z?Wɵ1E|z[JR%RB\[nqȥž0$)h[mIR?,;#R\GTysO?]:38Q5_߸)KEz}oC?~ q$UK/\?/U$V{a)h*I_Ot[mIzo<~@TsĄh~Ȏ}ⷢO/q/wWw^z<WvTMlnwOfw%uH?y^;o!^+d! !/A?]RW.ɎTEc߸)L=vv$wKH%]F?$Xx`NX\Ħ~D~I%MEQO'tG TqH܈ LH'{tI$$INO_06=4mAF:+9DCwAkdۗ-~c\^C{ӻjg]` uv49k湮Ђ bSSiǭ1 cC$Ɇ%%9꺦GIq4m~kE4H!VTy+Ei6y|ciK'hK!-}w]TJqH2+g$upDzG LHtU#Cc? }ĻxOeq$/^GP zD$JTx`? )MX?O%® $~??4#˹*{%I wWȥf\?!JuY$/WOߔ%?hKE\3}86T@SKEz}ğK M?r2Iht^V'}#$=)]8QRJep'wEI.%p^6AKwWȢWEpysٙ%UȾQ}ߕ/ST=El,h@T^ jSqDOFMgO=RBC|c/\?,%URBIzDソ$JTx`Ku߸A.0$/2-~?$\^ RBoKy Cd!z.J?0? P#*H_gowfxzZ**H_f~:TO6W. y0rj߼'74|p#U?pK5t5%]}1ܗȩ%]zgw*IX 2)nwbV;+Eg"{4|$\'-~??$4RK"<e/E_7"\E\K8hȊ\E\ٛ}\O(#j/'_[y{Gą}KWɵ14SBM}K W*I$/7; qG儸Jx"H^ѻoI/Ueޗ WJ{17)n[qȥ®0$?ҟymIRoɿ^CxJKў\ P#*H_gowvy-r$/UUZ*w][ysG(8)o$W+kC|c$UK/\?,%RJ¨Ez[=n[qȥ"EI+W-?$7l? ?(%UzNHﹿys?$)o$*("uKlu_gO_ȗKԏ-jѷЦ5> >~XKw7}%A~ Ca)[qȡI Cy[l<|J=$;#Rg8BT{$IowzqpKE\2sϤ@Uv} ihR?]O za$UK?UG$ 7p(%~ =ͧG̻4䔝cY enzn?Kў\Kow%qKUz<z W?/[xgR!.oZ|GH;KЯAR7.̝cY볳k[Y@#;?*^qLQZMo%Y;1J,=>Do;uEǞ_?,q>h%"KUz{_KЯyw9?䄬WɓZo5p1A\|h?г/7,l-_jZ?#5>JOKD.I$$I)I$JsΩ .[VdX T27^JFd{hOo$\HE<w7p~[S%U}JCT='P}8U??*%FQR;r^aA@cT8pD BjH_h"$T%*H_how%\GC=Ҥ]{Ipq!owu\* RB)'o7J$-?$7l? ?)P#*H^;oE/D^=vz_gow]j/U愴U˲BH "4|#M__c?OEI-R wv;r*Iht^~RnEI+{xo"Wu_?>ȩ%jEo$y*Iq+"y ;#QRK"I?p/A.9ފ^@eF1w_q?OO}xK~~o5_vv@Kԯ3kCx'C;?*^ѻI +"H~ѻoI-\a"H{)MG̟q!ſOI-?$\GD<)zNH?\GD#?Ko?ޕ\$Iowz-rD䀣zqpNژ-[~~+~QKET]zwDU.Sَ?p/UG$V{>Җu"I_Ot?>mi"$/&y)zNHﹿ2H ߼# 7?#?p%7;xp? "^|k/RWAI?zqpK՞ zF?$J_ov>Ms JSgBD:~ Cv?%&*O$?M߾r^BT{$IowWݠuho3$T=z 5߸)%L=vv3Df;ȉ%]ڏ?>QJ{?uQg7Nmcyp4fv3#e[c/2{'G`OKw;GZދ|]s/BAO>g~%g.Ϣ>ICk.^~!\ Gf?KD/F ޗ~Ȥhv~XK{ JF7B>iz' :Wrm<|'>g-Qb3?p/E7Rv?%ǗRRSPz,~:6F ޗ3ͬj@zgJdGQf;%-?KԞOa-<7?)*O*,=>D^~@K{|8)*Ӟ\ z-8z^~HKoGگFrΧ|n?U fu<q| ]:I$ ԒI$$I)̮_Tɐu ջrGV6A=QotLu{(%hE˹/Eq$/-]QT]cYnRoDI+W m=>dZ9ODI+W=?$<|$#s)zNH?2@߼#eDnz#~d~Dz^߼%3/R?WAg_g zwaO%WzqpN*cxh$ޡG~Ct$̏)n[qȡK C?u_?>R$~?$J=$?/M߾?\GD/8%;W.C[~$◡_-rĊ7MWhoW_ z~DDU.G7`J"Iht~~ޗwDI+W s 3”8QJ{!J,H%o$V7,v<|G"ׯfv3#['8[zw\~Qa/RW跼'WQ߸~ҖvژMBl)EGȟ\$Jgږ~%I=&i(zg<]qU˳4=$TqpKE\/F7Kg2ht~|?ܟ՞ i%]z}~;j7K+y~J!J,oR5zG^nc|ܗ<;<߼t??/Fo!'ږQAN߾K˾]gf@YO_ʝ4KD5z4po$Z c;M>%3/Vx?(mx?ޖ? ?-<4$<z@]YݠumypKӞ\ _G LHgq?*xmcrZ'@~ȗ{4Vv3%O '8Gġ>熏bP}I[3&$T99GTF>jt}?~E0{BxiIU OK`>d?-<)'_my?31g8!G^ Nt?7Q?7/S򤊉~ .y;">ϏǎG-#;u7"??!%:I$ I$RI$Vީ .[QɹSTy+EZAm=>e%odQRJwGȥ7;T\>%+(1݇٫<I1E|&E}Kow#@8d!Faca"Hsi'4䒥qx$Iq~@r^T{$IowzpU˳'<7G~~14SKEz' zwKET]/QD\'=?Jt}Dp4?$#)z3˜~q!;cyp4huZxWKgq?*^;"^|k/RU௳kkxh%Vxk?,%;@l?!yyKuE ]?)C!'?yT/!ɿKwrT#"H~}/H\#%A\GDz^;~$ʖv_bD‡_7 +߸%]70r޽߼) U.vv3%7KET/<iCَ?w(%aU.G~GDp=~?o"Vv?ܔY4JɿKwrGׯuZx_^;E/K?8f~f-Qx+z-wz^|i]z^~oAT qpOwzzZ} X) ;4|ME W Dl?(MG̟Y߸zT?i(EOI-?\G$?M߾grT#ٚJw7-r%E$WZ*}k.zBpRZ+ׯfv3M$UOXzwzDU.=C?/Q߸J{~o"VaC٣O&?y{[7_ j⭯Kc|5Ko?rQ;?/PKUz<z-wYO_ʖ~Kt}KUV>߂ qpNM6x7?ܔY߸zHEJ_j[ܕ.=&i(zg<]qU˳4=$TqpKE\/w=MWpƷI-a7'%TKET;ϼ*j&Ʒ$[Zl)EGȟKoײۏ+kj^}߇%O q?,%̏KUz|z@\~d~D%)rPݣO YMGѯ[ (ypK?6%Hxz,~:e7N5>I-aRpޝky |SzgIi=EGȟ'O?,%Ȍ)*sǗ}KӞ\ K`>dמ\>C%P3S&wOēR"L(gN+ku I$^~Qa-<7?)z'[xoG~?b"-O?H /귶OKy<4ޗ<4~XJ^{)&+|-<[\yw?S9oqID+ ,kuq?2S4ZDD`--<7?)Zx~jO ?8K|Cp>D༟Ee~@QO̟(gf%)wfJW 1aK{柙 CGā͑%ibRGpIS[IrVIA[9hCS?WWPpwSy .I$KI$$I)̬uLձ1E_O4|!RTy+EZch7/D\?$)*߽("_gA*v}o?ܗq߇@8CaHt})wDyp%/M߾qCG?ޗȟ-r̐J_ ,o ^~{I"^<GDI-Rw;$\'9[qȥ""IZ;{l<|wNmcyp4޽>uZx_^~HKowiQ;?/R?W෠~:T qpOwoqGR_.Il)٣OR1~ C?y}<|JT#fw3?*W%Hxz-8zZ*}PYk-s͍o.˜hohY3/Y4rIhG)zzIXW ?-߼ME)y?M7 ZOv1g~o$ˇޗ_wU7~Kgg/YKU^>3?/Hw.8QO%x5KU~W/EgIKw;̏KUV>߂qpKѯ?GĦo"}ApuyJ,HR.Jgږ~'r^~%J=/I.8zZ*}PY?R+-sD‰!K揸) hSZoU4U>aK4rIhf%/Q߸J{BSgSLH'lo(hR?8}/Y>싏Y*,Imy/U J^w7~K?'?*[;OW<]qKo?ޖ?2ؖvAꗣ_7 M %x?ޕ~c[䤡-?~@$3ICa~ܗ?!ܟ&%)y̟eUWpR ? $64=!?ޗ vd@k%$azIR. 䀣3E[xoR|/TxO%?$Xlw3Ľ}V?!ܟ&wǗ}/Nyq?8G5> HILT⶷$!oU5z'6~pGH ~җr[4K{rJUǗ}KO?$%Ǘ}/Ny$BJU3GTV b?OO~XKs J[xi^?I6Jڗd(% ~ڗwRxoɚJwYݠuKE\/wX@޳;8;X)%l=QO&;D7<߼t6x4| iRpbo$]e/ZooLK.8z^w;Wz,'Iz5~%)[qȥohoEGȟJjJܗ{߇ Rxfi(zCKoRW.f7B>U^߼%3jZ*}=V/Tv4wawowJ{3Ħo"‰/+G(i%W^{ KTz;*?ږ~?/Tx;zwZW}߇%y zz[WZ&z-'IKs4|SgKTT;~ k/EG|ҳ5dwRp .=K=\G4=!)zCKE\3ICoLZ*ٗ }rhW_7 z~wazSI-Ri-zIZOv?G"@DIO6~?yf~^|gHʋ<[Jj^?K)jG[8Ka~ܗtޖU? zCKs%/KUT;~j?ޗ ꔿ}╕Tu^߸'p&߽C&\'P|ܗ{܂#ٚJ?KIW.PYuKg$eHzH4NL=VxTQ?ܦJwaޖ5c[ˀcr?2ؗz^|,~y̟?}G4r^zJ_EmwKar[>$ONyq?K'K`>d#?ޒ=^{RY mqpKarJ 'Pr~?"^|Wfj.{[7rvKz?ܦ7JV?yRKԞOa-?~d%iܫk.!ҖbP%PWGEV~GS>iV3GV>%O '~%P-K|mqpRUy^?t}z`OGLY[u |JH HKKoc? "[f~T<7?){π)y-<)+V\~P lB5D$շDD%"^?A!^?Kicg!;}eO{bSrh27^JYʙ?[%1褒I)N]]{*"AWVc_[B+n4:뮻涭Vi%>rIMLr[QZݸF:^E}9Ѵ.{~&*I)-9=S#խlxxJe- cC@|}AǪd ~ȟW;#ٚJ?~W.?8}z4r U>awJ[xoT ZOv??>myKg/U OKU3?/Hw.8IȌ)jGU賸!K pJl?ޕ% <)zgrTf<]qKoq?OKE\3Q61oE߸)!-c3ޗ?O)wa~Twi$=oq߼)ME9M3ޒ+|(i%)z-Upk.[C٧)o?KUz|z~.'zCKs)rZ^|Ēr^?J?ޕTu^揹H8Q!Զ?$?/Hw'?%Hx7~:fiE>%\m`Kg) UIj<IU.=Q)zOiUwwow ͌}f~+l~Kt}Y>Iz4rJߒ}(7z/SW>߾Kyz[U?/O~ nbRyUq!q2RzJ&xOT~PwRIT?wPJ!Ga~ܗxܒFi(zC/Hx&ٚJ|'e/E>]L(X9p0~hc3VU4UKTxO%4āI^w??/U>V~[c%ny߼/KoRG4rJߒ}x4Oʖ-r[7)KĕU?/Hx=P%PYuKkx|R|ܒGJY A8zI P~$&~M˳"HQN)$SUDQ?ܤHHi?K{tޗ~DA?ܒ~b^?Kyz[4I_RlwrR(yJO~D!q>Cl?IT;+g$ޘ<~:T >?x} 8h5I%oUg KԞO?,%귱^?qI^*Gb[җ*J#j[]e%W1ܟ&wuzs'/Iu+R~ zOH: Gܗ<ⅪB4džn?9䔨))l?Kk.['O?"Jzm?2S[N>\ }Ri'JP|Ihq>A"> `OhP|zyq}4;?$~*&q%=˿ɢq#,6C^?Ldr?4؟R$j)#DRSmgƚ!Dx*>p/Hy~%44O /_.|%ϟ4Ҏ LiĿa0>}+ǗR?J<Lj"%RSfBbCu0 u1#s-/&\#򵓐,r,v>wC_and1]Dr?OUԸq;[{GuR.Yspt NJ S"0׊[JI$dGu7mk0?V?S1@ox-UGRSI$$I)I$JsjxgTɟW~QaQTy+EK <7#J_?>Npo$~D[^yw?R8'O?,%dž KUzoR0~h|䶿+*46?%qYEky |Sz,~:kKz~RGIU.=C٤O̅"L(TG/yȟKoRʒ.?lwpޖU%q?ܔ?}QO_ʗpJj[C&@N? zC{3ICo̒rJvdH>L4}I+g/UqSI%TG4r^"cUފ ʷwnq߼ޗ3*_?ܔ}G4r^?wKyz[WV~|ܖ%/WWxܗ?)bJV~|ܔ}K?⭇zC(ڔ?}IT;+'zM🎩mw l?IT?wWpN+hMܗeccG.zoIGܤ$SU>V~5QoTxO%x4ޗz^|gHV8oޗUx+y&~Kar^?yI\#ⶎ>%MuzL$蹱>ޫ|Aj|}V~Q$uW?>]O$$[')ko!4K3Rc~?PW߀ȟy%~)Kލ.xJ{L[IJI?"oĥ?%- ?6(-?*yq>e/q& K6Ǔ/aܤ [aʟ|⑞i?RN]4'G |' ?R!r?'SҀ L'҈>dωi?G~%?>'L<K|JaC /_ĥϟ R1>?K@_0$.__?ૺw}@\c#SlAuϟܣG?>2? x8Op'F6 f"{xH^w&~A>>%?MCgnyRKoR{4Ĥ[^yw?R|ܖ9䕧Hx賸Jj[Wq[[@)(zs'/IyA"{[g8ho[g/UqSL\Ʉ~Rpޗz^|g'$8߼t/4r[f>#j[җ$<mqpz[{p>Rxq/HxwRp *ezMI)zL%?-.?I\#T*`RG'zM@#4=&~IW%9#Mޤ:J0[>Z?r rޒ#A?ܖޗT~*pޖ~JRo?KyzJJ>߻}IZx>߼~@%/~T?%?(ڔ?}IUU!?ޖ~[U&~xܗ 8 >8z^|?tfr^?t}'Թ{G$}V~Ԁ%joKqN^zoU>-PyR>Iz)Z/[t z-)+ؔ}Kyz}߼+{πRKĥbJP #jP%W?%C1KouKg?KyI> 8 >IKg$]%Gg8cG}rBJoQ#^Q>AJV[?w??<Rt Zm?/?bJ[|?}O>J>?%~ w[U-?z^|'Ly/MuJୌo`>Iz>Ŭo`>|GޕezgK)z)o~)Z[җxnq߼.+|CG%wRx *?/Ly-?|~DŌ:TJ,`Ab@q$ǁ?r[-O}R(w?pKg?KT+gr~齝N GB©@r}O{}{+JJy?pz[Ow(ǸLtД4"T5 ?8N]_}T1%'%w Xٿ2'.{ U*O)$ >'KUTOi3H: 4ʿqR>LL~./52'DO/!4~T7[߂a6A3_䫾^ܠ&~/Y.|:~Q1?GLGB$TtRIn;H1W3U[a{\5#ٛN`y ?sgBcKU9:\$KaSwQ9ntn.> \7Yv[tWAky舂 }!ãǯX2Oē':4p|seuݭMxN68F=v bO<ܘ I+(5ԒI$$I)I$JRΣTy+EgQ*dlo褒I)I$JRI$g .ekU.[]>en? kI$\ە*jݿaokI$ا'anI~̟kI$ڸ[kI$C?d5M/x5}$=f wPO, I{*E$^?I$pja/%b%Jo|srO^?%I~̟kI$ڸ[qwI-O K?d5M_I$?mG_Gd5M_I%4l5M@G,IE7?P 2uo{H#O-UoʿmU赤JsmU%lſI$WslSlQ%Jo|o|&lo|&I\1G~8ןl_W-Ii$c_q] Ok2?&I@ K?d5M_I$?mG_ WIMh?]@̏I$\i&?I%QݧG]W;"IT{*GRW_5J7__K_ZI%Jo|2?$km7$X VQl+9(k_w'a?I*Wskc~O4kc~G_֒IRGg7/+$lQ I-$pA|KE$8T~ڤnGӎ7#a-h$SkJ?&O^?&RHANw"vIjwI-$ũb~nG^?Z4v#qkI$0T~٢'nGf̼5Mh-6D̃ƿV4c^{Z)![z#25ƿP:3#a+Q$'$z??5ujxFIG[)!xd QOd|Լ)=HvuGG>'AxhU rr]6OEޤ Ghr{ \3 x/JI8aT%]q hƴO`tjl~a̮5{ֳv@$O.l]IaNp1h~̏Io2?& K?d5M_I%4?mG_ WIMx4mG_SC?d5M/x5}$ A}?&ֲE s]y zlTRI$I%)T]/oi|lm{&$+i$Ү4ѐ]?G[]-[ XcYSl59g{AV1i~=Mc}L:mctF$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K3e}kKmT5΢\1&&$*LI.w{q{b'@Ea%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)fau V-]6VX=mk`{Dk2s^]Yz{l,giRSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$'fm~9*s\rm2}&o;uOSnnfEiFK]eOs$ Y%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)Bư;C֗v: 8;\X:hARSFEc;}󸽤zV-4o+YQ,a>_u`k]eWS+l:x)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Khm\nڸnαk:T=[Gs m߱8 piTئd1V5;PAK lk\΍#'I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I) endstream endobj 403 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R >> /XObject << /Im49 387 0 R /Im50 388 0 R >> /ProcSet [ /PDF /Text ] >> endobj 412 0 obj << /Length 2913 /Filter /FlateDecode >> stream xYKs6WLI<&!]kP3L8DR۷>F%m*:h@h4..d+^iC$Vlu]}L4_ KW.4iJNzN~ǡcͲ\o8ɛwkL'þMt[9Ucsޗ[=7QdW_P`"]щuA pS»V)ƬnÊˌ()a\>\CbPpKٖ]? 7{: hr޽[Aoy]ÝE <6?[Y0 =k·m%De"$~͈ѫ  ]5D͚R\z%%[ԯu۹Z9 X/IOK2F];lOx[' 9I3E[BwM"7Ȍ^8s2\'ް]ٗ ^o^5<`B82̙2e:'uNSt:pc8EW($-{E&uCfvfW_:T|/k7j]J0()iXoTk욼 )-c0ݦoeQi[\IU}veSv M_XLz l~,@mW*{¹&N]^[rxܹm ! 9MQ# 8F6Xq^ߕ*L۟c58źm Լcug } آtZ6~pBݵV-d~O} OgE̷6NGGJQit@_-W by Ua𼮷@(H!։E $z:ɷ: &\8ha~!` "CLAj4w/;ݿԋGQcTJQ1:k >2H͌ L1uYY5yj; 9qqL" _ΒWQH¨Zi}A!AN#3r՘=IفigTryr NAȥ5aenǨųQ4/V(Eۣ*X IO7C$ LMh bw'zwC#@fP^0Mt&g {&Fc,TB7& !hJA(*oa=3`1;G!K|tn-cVBF8[D1F6;M LσYR ♉=G/)6,;/M P[Ç O~,@Y€,qtz"d*IlA] We |GGbUqۭHdl3t8CgD:,m_zccU1 h8SHɵA|é RWcMq1/m|u_ \UvEr-`P;ZǹJqEmP;*Zخ)AEU]"6}Yf`50קcԷSΏ j*tOsmnZ>LOb:p)p3%=o7~\|n뺵 d'4 M!A!2syyޟ.% N,vy>eLyw%%G~y;.08`OߞǰA38B7|#|=sc'yIuU>,jTЂ>2O% tw!&3ϭl ^& W?JA9iJyM6}CHf$DJҔ?8Zci':Q53QJ4fF5"ViHS)d|vCw/#voɦ> endobj 410 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F19 7 0 R /F18 5 0 R /F51 33 0 R /F27 41 0 R /F28 49 0 R /F25 48 0 R /F54 39 0 R /F52 31 0 R /F53 32 0 R /F30 40 0 R >> /ProcSet [ /PDF /Text ] >> endobj 415 0 obj << /Length 3329 /Filter /FlateDecode >> stream xڽZKsWL|1hă^[+MTKRZrLr,)tAaVRs {lLlW KUDĉ67ϻ0VV˭R:K[wcӯ%?KZvFBsgXf^Kכ7+ntۗkw/_]_=ҭ<&8y-͟Nw޽'W(Gzэ_ڇz\s96tOy4W dO9cێ}^m<{OES n`* %26+2?5OR=''2f;K:_9;'EϜe-^m>\&ޚ+! ].  5kn8^}WTðbbr ;{z?@BG㮢-VwuZ1tɫIEggXT"}AxG-XcUNnL ٤Lf;.nꏁHAM& ~oE*cj@iҘ-Cqt(P3. H^"/ bż}@ GG9޵U\- =uq"V>?j-}@y@y?%L6Cq5rꢐj^>qJzi!xئ'v`KJV=k:1bff /vbTE7.f)r7j -LK75T01D kvfCl4;glGBᲊa^Y7Ln Xބ]B&?;ɇ Urֻ| d*vi;h5 +zq/Cl41[wEw*($PT5hjo)K,Yq `.º8f"4ĖvQ8fKU Z%bݼiƺ v2$RB}F4ܡ y))Yoo)A.S}l4fV`׋;sݭ[yA}&||k%gEe'z/-^hnFr%2ąsiO,Ζp, \FC;+;8aW p-|x mbRﮎ] gnGl,zB-V9lhP{Wќ6`ݦn+j9#>oy=ʪs `?”FM㡡v)|"tBZ-8$fDQ˱# !KsszL˹ Pd&r*O!0:!XfF@^iDOz|(n}N0޽ μ Q( 0+t Da|vt[` Bѐ.%31itw>L8'+?_!B浠 z5Y< 385w1(yk`[",pĹ !L$hԄZm?`8,ь>C"j:dQ?UN+N0/AFZ:N0K ,@vcmKis$ʰM~)X!1bT1FPط;akgJRtm*"$%Ѫ$.h?Lmosea$r)=A9fk4ئkЮIB R#_䓸\{^]w>41㱬LGt$wfB>&asF\p^' endstream endobj 414 0 obj << /Type /Page /Contents 415 0 R /Resources 413 0 R /MediaBox [0 0 595.276 841.89] /Parent 400 0 R >> endobj 413 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F53 32 0 R /F51 33 0 R /F30 40 0 R /F54 39 0 R /F27 41 0 R /F25 48 0 R /F28 49 0 R /F29 373 0 R >> /ProcSet [ /PDF /Text ] >> endobj 419 0 obj << /Length 1578 /Filter /FlateDecode >> stream xڥ]6=KmQ-Kl { ; l}hೕDc_m#Eڗb^"b(~[-"2-etl)rYD6+EZ]}m|{6KR&3ȘLHx0S5d$+GqãwGnm%i$_բ~K5p.J,8 a6{u# LEfs[%+x突cJ5ׄk^\iǼtt}2d-cYIn=8B? bW}F.Iњ^"fT/u5(l鈌a~C Mr- ~8k 8,LFR MkeА wϕ%e(-I( PYrHBil@|b"[Aɀԡdt pD2jC4 W ޶yը4PXUϽcy54[Vf(ڸN zaאH  ."~/@* d;5rs- % dCJU{~eӳԊ l) 3ٖz*W SyhSD,mT#C"z]fuևJ 3rD"AT2?vpU?څ\=,-#jIBc/ae*%4O8sCwTLgWT?u-A;RksLbi0D2]Sfsܹn~9< 1oU)>R<NÐN㹘-QS>{IfsfJ=2ROW9 ^$PHT4e@aүh:ga'"X\d! p|c}Q{݌8b+SM_LM-!Xڸ"y3b:oqBZ:3Y0?3G׍s\/WҊ.2rT.+$' LSQ$) Eݾms}2&"g!fQOT$LC+€F}ц{ 2NVW43)Te(pty@G0h YM!4>4hATfN]Z}HƉP(&)( 0]n#Kq* 4*UyBR=W"߇ h\LOg-}4b7Di\{ z(0709#CNB&y:tL- jyI 7ܹlҺ\_n:q4##d"DאVcC!lC4bhCWろZIVs5T{hP D ߊ.Dk ٻ\m'ZIXHab1W- endstream endobj 418 0 obj << /Type /Page /Contents 419 0 R /Resources 417 0 R /MediaBox [0 0 595.276 841.89] /Parent 400 0 R >> endobj 417 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F27 41 0 R /F21 16 0 R /F19 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 422 0 obj << /Length 585 /Filter /FlateDecode >> stream xmTMS0WVy #f"qvL_]Ki%^}zJ9'YR= $En%rOqr4RRfuut];4ԧ$3˭@Y V(Cx, rU9'Re?r@p&%3'Rh qGnG`RZ"aRKxI8S\̈́c4'"p~kA.7wTىn+9+C.n Hmd|M3e Z3.Ѿho`dc4BE)ʹr,&vӸTkL\mq`_.e''t˄dZ\@c, ,iF yC4"C ]U9~cǩu=!0yC*J'#mCC˩1h_7GQv(5a1 Pvq_=o;~?UYԋWYz2r_?+Uu}Ψw[Dsҡ8FeԊAD g-t[\$dZ<~v7:Pzh_v vx " endstream endobj 421 0 obj << /Type /Page /Contents 422 0 R /Resources 420 0 R /MediaBox [0 0 595.276 841.89] /Parent 400 0 R >> endobj 416 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Delays/Computaz2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 423 0 R /BBox [0 0 959 655] /Resources << /XObject << /Im0 424 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 959 0 0 655 0 0 cm /Im0 Do Q endstream endobj 423 0 obj << /CreationDate (D:20080809172109+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080809172131+02'00') >> endobj 424 0 obj << /Subtype /Image /Length 37159 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 959 /Height 655 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R>Iޣ}]Od_ SӾls=p{wJѻu}7F6@"Ewyw?4IOGF#Z핂u{`+ s,89yX,eMuGmt  }/BIJIQNök>k2^BەD餳?if}_Q/Y_oWINK3oWnUەD餳?if}_Q/Y_oWINK3oWnUەD餳?if}_Q/Y_oWINK3oWnUەD餳?if}_Q/Y_oWINK3oWnUەD餱N^^c~g?if}_Q%:i,Y_oWKoWnUSەDif}_Q%:i,Y_oWKoWnUSەDif}_Q%:i,Y_oWKoWnUSەDif}_Q%:i,Y_oWKoWnUSەDS $YQINK3oWnUەD餳?if}_Q/Y_oWINK3oWnUەD餳?if}_Q/Y_oWINK3oWnUەD餳?if}_Q/Y_oWINK3oWnUەD餳?if}_Q/Y_oWINK3oWnU[sh=>kWah??SەDif}_Q%:i,Y_oWKoWnUSەDif}_Q%:i,Y_oWKoWnUSەDif}_Q%:i,Y_oWKoWnUSەDif}_Q%:i,Y_oWKoWnUSەD*zUnU<SەDif}_Q%:i,Y_oWKoWnUSەDif}_Q%:i,Y_oWKoWnUSەDif}_Q%:i,Y_oWKoWnUSەDif}_Q%:i,Y_oWKoWnUSYX>:}isʏOE6LGO]J$Q%K7+*҉~ʿJtYr(,ܫJ$M%K7+*҉~ʿJtYr(,ܫJ$M%K7+*҉~ʿJtYr(,ܫJ$M%K7+*҉~ʿJtYr(,ܫJ$M%GW݋eF1I$$I)I$JRةGvWgݷGI%9 ch`w)G{_Kx}Tm!X319[ $8T嚝kO25GI$ex92pwefU y<%4I%)$IJI$RI$I%)$IJI$R>Kh  aWJfI$$I)I$JRI$I$$I)I$JRI$vewѪD~w?V~S4_]uWSrk\\cҵ@n>dC 솶-ȿf 5S$uurǚۓs~aw i vkcz쵠pmv'IM9/3:BɱXWsɋ^FI$$I)I$JRI$I$*xg%>lJ 8ILI$I%)$IJI$RI$I%)$IJI$S[}ARbcsHDz۱o5xR$JRI$I$$I)I$JRI$I$$I)?KV?KVJRI$I$$I)I$JRI$I$3+S5)~ZVJRI$I$$I)I$JRI$I$$I)I$Ja_~y<%5 ;O?M%)$IJI$RI$I%)$IJI$RI$ ua<-ՇILI$I%)$IJI$RI$I%)$IJI$Rx?ߊ 3"@WB!)ԗm U:[IGNa00\gO "=N?~uQGcw9)aӍnK~Crw7X>NkhL*}QPݺCԴ:u`]˭>c]N{'\_!O+btNF == k_s[ռ/~uk:^tӾ7zU^bJ~lYMVNCi䄍 Y0Nj&,yD$Iu$I)I$JRI$I$(3sMA{I)I$I$$I)I$JRI$I$$I)I$Jcgw<9' 6s㟒IKI)I$JRI$I$$I)I$JRI$I$/?R-Z/?R-Z)I$JRI$I$$I)I$JRI$̯O'#ҴfWiZi)I$JRI$I$$I)I$JRI$I$$I)'䦡_~y<%4I%)$IJI$RI$I%)$IJI$R-SP%3I$RI$I%)$IJI$RI$I%)$IJ^4ߖ Ə?ջ֢?x;. p`08Q;ԇ )tI%)$IJI$RI$I%)$IJI$RI$XտQeXտQ%)$IJI$RI$I%<[=,̬ʛǵf=lhkA-铴VUB-hǰ^S'ݱ;''AScY7iu55g@he^Zѯhgfdۛu`5Ů~4=ݏe`IZXP5кL246[[)nw~At Ѡ𒜾V/Q}5|VekU~pv%C>]԰1?"Jd,i#^54 @)acLA0{LA04i`#A )A1kƼA1kƼp#AAv$cQ$t  h4IKƣ] _  %(Xt$,iF[`,iF4ƣS^-v mIJL {5Ox⒑ =纍m~)m%+i51tFc h))[9{%7sOxg`))^|G1Fc l>9J[{|G1sOxg9J[o9s>9[G~i)m=9{'<3Kh%-7sKo99}s?4sB׷a{N<6.ht>>g%29{%7sOxg9J[o9s>9ms?4Q#翂^|G1Fc z=<3IJ9{%7sOxg9J[o9s>9[G~i)oQ#翂^Gqs>9[G~i)oQ#翂^|G1G~imF=4 Pft6h ;?xIe=I$fctX?O:<?7M׺FƉ4h=[A,lhFR64L_A<)ccDsFƉ4_A5Kh=)b4^%"4_Amt$iμJFƉ4^%>gAE΃Td9ׅ/': TK:Jdlh#NuR64L:jh3הd9ׄ$iμJE΃^S: yIK&Hӝx$iμ'-d yHkJX2FFƉ4^: yHkJX2FĤlkfHӝxNZ h3 kJX2FFƉ4^2Z 65$^65$^2Z /h#Nu"4^: yHkJak< `F @'Ӑf9*[AyIJ/h#Nu"4É)4΃TdxH2Fx 2 5IK&HI׀dx m-΃TcD :/h#A'^r{ R-%,lh#A'^E$h$>{ŀ )FƉ4u쑱d{x-Kh=$'Qo&HI׷[GK`=JQ{D :Q"]c$:wR<gh ߛ6|pthq`uk@-I%)$IJI$RI$I%)$INfWiZk3+S4I%)$IJI$RI$I%)$IJI$RI$¾yJj_H 퀻P tSq0dݤ1 }}:/%Ur?-+M%0'␬=4SX{) NSI%0'␬=4SXГ␬ISI%0 <) NO4SXГISI%0 < NOu4SXГISI% X9p sK;erW_~{K'8]եӲK:fUe K|:U+?ba͌2 |?(ᙌM0pMYW_hOecly X=l񡇸*?Up=W³!*p ;qv!u?cQvƱ6{.C*/tjVĽd`F%Nְk DyH A0ljy? zc<%4CLxg8Q;J]$IJI$RI$I%)$IJI$RI$I%9yojYyojIJI$R,)sZ=sA"DOSGΣm=pd[neuw]fM:͎C .lm,96݊_G蛔?PZ@ ):km;'=P=V{#k^ 5UpO",s\{tĭI%)$IJI$S)~ZVr?-+M%)$IJI$RI$I%)$IJI$RI$I%>-oUfSk5'y+W'jO!_@f8_n?1͡?6(qwO'@L4Gvߵ(ʵtFipO$F6,F6@~Șw["bUn[f?(|75$H$IJI$RI$ ~<.^~I)I$I$$I)I$JRI$I$$I)I$JRn@^4ߖ1Լw`äK)ԒI$.WHظu~[ȹ/C} $ZoI%)$IJI$RI$ryy)3s%3I$RI$I%)$IJI$RI$I%)$ILm?$Fߠx).se_T:oEf,pCE}%)$IM+z-Yc\ o%JO֜[Sc,1Φ@:uK?^_]mkn{=+Ot֯cl50w{%:h 㸿`lw]gڅ=Ρo6i7:3i6@p?x90;XzYXOvߑhb;-T1~5%6RPH_4H w~%3I@ w~ _uD%_uD~&uD%_ɝOD~&u?rc's;?fsw)K>?r4%~R|7%3IB_9߻ILP|7)~RS5 aԍ?7RϏܨZ^{kN))2JϏܥ/oJfsw)K>?r/rsw))JϏܥ/oJfsw)K>?r/oRϏܤi(K>?r]>?r/AϏܥ/AΚILןpww]>'ܮhO }5 Ɨ8ǃFp+e]ԟEWh2 3⻜M4XCIpX_`AȁU.G$Iaө݉f`m,urA0 1ϒC#du,OQŦ7KǖIOLI$$I)I$JRI$I$$I)1܍ktc#C?$%.I$$I)I$JRI$I$$I)I$JRI$KԵj,KԵj$$I)N@ũ8HkKcRwNn 4Xp aЮpZYu9c\ ϭ{Μx\MttQ ZkĹ DL-%nm=?jkI$$I)I$Js2{e7zf-}"xC|tOϹܗ1s!/r~,n]W{i.φ`(}ZٲaT7XgNs3w%>:'gKw r~.K |tOϹܵ2Υޗ0wrowBM)JJ]$IJI$RI$I%)$IJ^4ߖ Ə?ջ֢?xtIe=I$u~[__#7.bty#0%~oKMI$$I)I$JRI$멎=1zauF> hq@AC[rs#cd2a >jc}QSlܳ 漞{7X)>yƬ0ȸ?A]E?kc&8ej_]uӶI+oM%9_NGi̯O'#ҴRI$I%)$IJI$RI$I%)$IJI$S?Y?\~@VOW;=ߐ,ՓyqRI$n)8L$_rX?QLOylOvߗ椒I5$I)I$JRI$acp;xx>CT8qq(k/HENLsa: d%= ;5-X״IsI_j~f hk]I{|q6usч|c8ᔾJx-Ii2I$I%)$IJI$Rpwzn?$YO~I%)vFo]_.WHا?E? zi$x$I)I$JRI$I$/ sZ /_^E[zbc..vqm89ĸ ':Ɲ:K4^8[쁸mvmF؇M$L Z01@Gwk1{J.P^F9^/E %=O;i$I$RI$I%)$IL-0jFQ)L1H5!H$I$I%)$IJI$RI$I%)$IJI$S)`VE)`VDI%"ɠeTDŮVufN^a/#ݯ0++tÁ >ap u \ ofDh8+I꒞jvZK{>gtsQ8˛ڝgVJRI$eu}ug<>ܠSi_'Uޠ{l)9t)?VXo35Qk=<ע*:P&hZ1Uul0YcE"=_n`]?IYgi[+S4FYx,g⦒J`,!`1{xx &4:oƇY⦒J`-4:8=RIxx <g-/w{ Y'?} <⤒IFRp8IEώ8q-Ti8? /Wչo-\ g?^<M$Xz~?Ay?E4SPxc/Pxc঒Jaq<1SI%0|Ҏ?`i.~kmcp;xx>-mfq`>Hhd+yhq^^"Qed{^GxϬCwj ݴ> I <-Ȓt ˋHʽnX܊G0+Q4ՄG6 <:NGC@ UzG%qZϟ08~ zG)zG%yc঒Jayc#`1覒Ja t<^C?E4SP cht GZGkQsKɿv:I$I$JR?ŋߚu>xחXu~[ȹ/C}t q⑰ @SIiC`ЁNJF'C4S`Ё'C4SdNB> vSI%06:#F|IL NH/%-ZȾy~svI,׵RI$Z`oESx> G+>ȸ?A\wOɃ_u:GImݡ8ςJ0uwht3 ݡ8ςI) ݡ8ςNn|ILhnp9`n|IL`n|u:x~ i$V 9yR6Ύ0㟂Vc !H$.6t: sImtIL`lt?`ltILhlt:uNI) '$lt: i$'C?"F'C঒J`lt: #`O i$'C?TNA<i$'C?T<< 52c@INs\ͭVrYyojIJI$RoyYۘVgelvKXmnv?c&c.u!v=K>sZ7 qӨ19q߿[V羧t܌,Ze\Ӷ%q_Ф$I)I$JRI$̯O'#ҴfWiZi)I$JRI$I$$I)I$JRI$I$$I)񟬟w{ YK'jBg8$Q&NQ}g/Wչo,&']V弶c's;?RI$I$I%)$IJX\?lE< ֒I-wԒI$$I)I$JRI$h;[-kpwE5/&?${$I)K3.)vFo]_?).GapKCI$)$IJI$RI$I%)y_o3_zb_]ύ銿9;?s?I$kک$IKW}Kp1ϩ.PW9y`vI%y唒I$$I)I$JRI$Za2FQ AF q4:HR )tI%)$IJI$RI$I%)$IJI$RI$XտQeXտQ%)$IJ\[g ~ѰGn߹t={`de5ήO}W{_h"w5PNݻ|S갹3^ϨI7A+Uf]6u^NED,$y$-$I%)$IJI$S)~ZVr?-+M%)$IJI$RI$I%)$IJI$RI$I%>3Uw 5i}dsY9_ qg$J6ⓄJ/E1?-Dܷ~Qog~jI$cRI$I$$I)Kȶ?;!])3c`I$]*JDp?a?jCɟ'I%ڒI$I%)$IJI$Rpwzn?$YO~I%)vFo]_.WHا?E? zi$x$I)I$JRI$I$/"-|kL^=1W?g.98${U$I)qϩ.P^F9^/E #5~LrI$k~_I$XԒI$$I)I$JR#g?-F@Wc2seX)$I*Wz'i ?/3OXOrgg/IkvI%)$IJI$RI$Gk^h;[-j.cy7I$Sߩ$IJ]WqK3)OGr?_އI$!I$JRI$I$$I)KȾy"-|kLU澡N"I$^I$J\rs_W}Kp₹/ƟcI+,I%)$IJI$RI$ qQf4:H$I$I%)$IJI$RI$I%)$IJI$S)`VE)`VDI%)$IJI$RI$\PCf0~@mxhq ݸ6]3%=RK]SW~ikmk( ksI sݽ'Dx9rk~_I$XԒI$$I)I$JR#g?-F@Wc2seX)$I*Wz'i ?/3OXOrgg/IkvI%)$IJI$RI$Gk^h;[-j.cy7I$Sߩ$IJ]WqK3)OGr?_އI$!I$JRI$I$$I)KȾy"-|kLU澡N"I$^I$J\rs_W}Kp₹/ƟcI+,I%)$IJI$RI$ q k 1cCL|I$I$$I)I$JRI$I$$I)I$Jr,Rը,RըI$$I)I$JRI$:R2soNjݦRIO/fU.znmnfK8/陱= IN7V?a}a _(tU%M$AW8g-/w{ Y'7} <⤒IFRp8IEյ q[{Fwb}E1?-y>k~_K{FwKgw|TEG;⦒Ja3s^)z,׊I)׊^<4SEX[`G+mcp;xx>@yLc>6 I$Jމ(¤OG V9?ܙ}gwR94l=~wRYSI%0Y9x Nxz,=;;΃S⦒Ja3]w/Et1M$ahԇ|uۄ@A^4ߖ1Լw`äK)ԒI$.X?#4>O__#7.bty#0%~oXfZ5 #K F)!d H'4́J`icZ5 28HLšI)d H'̎4́ i$:d `8#K2IL Lt8y/_o3_zb_]ύ銿9;?s?I$kک$IKW}MrSgW}Kp₹/ƟcX'u,v i+,ԱۥK@DšI)cH8IԱۤtO):;tK@DšI) {|'RnvIH'In'<5+L1cCL'$.h>p J`X閍D0u,tGA i$:eQ,tFM$Ա->a'RLj 4SK2ѨHLj IL ,tF#K FM$2ѨH2ѨSI%04-NS]k$+u<'c6H!}eXտQ%)$IJI$RI$I%)$IJI$S)~ZVr?-+M%)$IJI$RI$I%)$IJI$RI$I%>3Uw 5i}dsY9_ qg$J6ⓄJ/E1?-Dܷ~Qog~jI$cRI$I$$I)Kȶ?;!])3c`I$]*JDp?a?jCɟ'I%ڒI$I%)$IJI$Rpwzn?$YO~I%)vFo]_.WHا?E? zi$x$I)I$JRI$I$/"-|kL^=1W?g.98${U$I)qϩ.P^F9^/E #5~LrI$@yLc>6 I$Jމ(¤OG V9?ܙ}$Z$IJI$RI$I%)yw~Zנ/??VZj^M}I%I$Rk+fl\R-~S\I-7RI$I$$I)I$JR/gƿȾy~svI,׵RI$\"cR\r;_/J)$IJI$RI$I%0f bcH(vb&<ԇ )tI%)$IJI$RI$I%)$IJI$RI$XտQeXտQ%)$IJI$RI$I%)$IJI$S)~ZVr?-+M%)$IJI$RI$I%)$IJI$RI$I%>3Uw 5i}dsY9_ qg$J6ⓄJ/E1?-Dܷ~Qog~jI$cRI$I$$I)Kȶ?;!])3c`I$]*JDp?a?jCɟ'I%ڒI$I%)$IJI$Rpwzn?$YO~I%)vFo]_.WHا?E? zi$x$I)I$JRI$I$/"-|kL^=1W?g.98${U$I)qϩ.P^F9^/E #5~LrI$ωUW8ki: ^}]k-u׵pki>rL %9_NGinEC ꏥw45&=pZ?IusXߗIM#LLa&&xILP pq13ƿAG_%3I@1= 8G&xILP pq0OAG'_%3I@1=> ` % ˄qП |ILP pqГ_. pqГ_.S4#y'\$=%>9Uw 5hdsrBg8$Q&NQ}g/Wչo.+I~Ïov-ݎÅy>k~_46;3ۏFyLc>6 I$Jމ(¤OG V9?ܙ}% Ä;3ۏlP۾_ͨ?!$YO~I%)vFo]_.X1_X?E? z(8ϸA >yp!J3:{iEϸG\$i(>$ $Gm )J3:"gxS4 gx/X0p $A5IMKԵj,ݏ/[|ۣѱy%)$IJI$RI$I%)$IJI$S)~ZVr?-+M%)$IJI$RI$I%)$IJI$RI$I%>3Uw 5i}dsY9_ qg$J6ⓄJ/E1?-Dܷ~Qog~jI$cRI$I$$I)Kȶ?;!])3c`I$]*JDp?a?jCɟ'I%ڒI$I%)$IJI$Rpwzn?$YO~I%)vFo]_.WHا?E? zi$x$I)I$JRI$I$/"-|kL^=1W?g.98${U$I)qϩ.P^F9^/E #5~LrI$.SkT ou{kkZc _I%)$IJI$RI$I%)$IJI$S)`VE)`VDI%)$IJI$RI$I%)$INfWiZk3+S4I%)$IJI$RI$I%)$IJI$RI$OW;=ߐ,եUw 5dr^o|3ǃTI(ۊN' (Dܷ_r[1G湿$EI$JRI$I$,6wC"X\?lDv??S'ȸ?AyzԿ(+K??Qj% W#y^'Nupq'Գu,^0MelH꒐ҫX̦ )&ư4w{y+uW:cGڝfEn#݌\jmsv̪OoQ}g3kY_/f=l;9GZ}xWmTAs 6IM}i阭 ;,.-aO$UoDu84 ko^}#c}]8{jnk$W@IKI)I$JRI$I$$I)?KV?KVJRI$I$$I)I$JRI$I$3+S5)~ZVJRI$I$$I)I$JRI$I$$I)I$J|g'j*ǻs9/7о*I$m' _Y"bUn[/Wչo-\ԒI"ƤI%)$IJI$R?;!l,6wC"b)S,gI$IR?/3OXTމ(~/#?9~OK]$I)I$JRI$I$/??VZGkQsKɿv:I$I$JR-]WO:<?7I% I$RI$I%)$IJ^E[uy_o3_zb5\wrqI%I$RR\rs_Gy}k4<I^ye$I)I$JRI$I$U~.M՘s*$O$//oζ@?io;3"R>UK /rx9ހ_K}ob_ܖLX)*xCr#ܖLK}i$܇/CG׮m;!78Yx]_[W+$ޯ5W+p@v@eI$)$IJI$RI$I%9yojYyojIJI$RI$I%)$IJI$RT3:ǿ! ' ү3+S5)~ZVJRI$I$$I)I$JRI$I$$I)I$J|g'j*ǻs9/7о+$%qd$J/E1?-Dܷ~Qog~jI$cRI$I$$I)Kȶ?;!]KY$$މ(¦tOG V9?ܙ}$Z$IJI$RI$I%)yw~Zנ/??VZj^M}N{NJYvFo]_ŮWHجrΏ"$Ii5/]^E[}C?D^d9^/E +>ȸ_A\wOɃI$?t۔EJs?i}?Q/y_oOZi$3oWnS۔EJs?i}?Q/y_oOZi$3oWnS۔EJs?i}?Q/y_oOZi$3oWnS۔EJs?i}?Q/y_oOZi$3oWnS۔EJ|P=C7#!6 6@1Wbu޻^ܼҺU uuA, >RmJ\us;\D4k* rI u1|s8(Pf۬/[Y֒Cz?/[Y/[YRK_kщnʶq:KNJ۔E re#"dw&y_oOKoWnSI!۔Di}?Qiy_oOKoWnSI)۔Di}?Qiy_oOTzTůksu@$wСdՇS`.s`4 t|buޛbu޺_9ΧEmv n,5GEWGhénȯ.[S5Ç5AU鋱]oC^qno7gZI/b~ |buޏ7ecPEvSIA/yД%(Hعr(<ܧJ-4[O7+)҉~I%9r(<ܧJ-4SO7+)҉~I%9r(<ܧJ-4SO7+)ҋz7㺜"P׮YsWkoum4sBQ'b˃<|ˌԠl>q1zoKbu޻.lmkT&M#sDA?Io>鋱]/C^qno7gZI/b~ |bu޷~v܇݄^,kmzl.&w8x$rx5`/s, ۔Di}?Qisy_oOKoWnSI)۔Di}?Qiy_oOKoWnSI)۔Di}?Qiy_oO\G_:P.MwfO:ȣM-ijϸ뤼GM82ٱyy<"Ef۬/[YҺg^]^%IAPc?>K1zoKbu޽i$鋱U(yޏo3zIų:*HѤdžS1 O7+)҉~IHs?i}?Q/y_oOZi$3oWnS۔EJs?i}?Q/y_oOZi$3oWnS۔EJpVvf-7 *sHoNٛVzme u85rI\_Z3p+eT};5yhɊ9ks~C qؽSbuޗ?z]y}. ?b~z?/[Y^qn׭$1v?j?>O_~DZeowx/E۔E89'b8E ۔Di}?Qis?i}?Q/y_oOZi$3oWnS۔EJs?i}?Q/y_oOZi$3oWnS۔EJqk_YSm^wI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJQ"A >I$X66/NirٶƘ,?xdV>%vΙanF@uVìʯC {Ass0ϥ^wi$I%)$IJI$RI$I%)$IJTH¦䴽X>9oou$=ivIf9V;`ii$jJCYT>^hsG847s[|!.}=Cnʪ=Mv#C~G֜g,v[h!:O))I$I%)$IJI$RI$I%)$IJ\WX3W$Ye~Ѷ8t]rXCtmuT1ֆƕcWA#?RdI%)$IJI$RI$I%)$IN=ٗtlr\_k;'v=gq)沆oXT́]):N/ Šw )\V׹>Ifc[ŌmCRdc=;.rԖuϷ3FQ;[s: 3׍֛1le<8K1st~i$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ UK蹡x4G2I)zC˳/3mE*R[_T5*fḚVrmx{X}sOcSC2}O״ An%O}OV>=9hlwIr#;b;2XǾַI+ۇo?%֤I$I%)$IJI$RI$I%)duϫu^?Gx2;xn<Jx j-e]}-{s >x-RI$I%)$IJI$RI$I%)$IJI$SWaeռA}d F&vUf-4cQe O[=>יLݪ=?2ʬRci)u\e)`Zp8U$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JVƧ+In.%q$}Y`[3cu env9s+.׸ ]!Y}Oub֑k^xYYU_HgZM`qV=IOF"BumMk 4 I)I$JRI$I$$I)I$JRI$>9_{ieb^&b{rвq˩< J|Xt][9Y^5ns]V}/L;G3&WYTW.ehv- 2~+>b<6=@4ֻkM', lgh{i )X /Smt 0\C\X恼p[))I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$oau6TrK\Yd⺔hx$%> /XObject << /Im51 416 0 R >> /ProcSet [ /PDF /Text ] >> endobj 427 0 obj << /Length 1552 /Filter /FlateDecode >> stream xڭَ6}K4iFkRa )m@$[;Tw}跗96NQER{)"4It{eOD"1 -fWGVk%LH4L8Z'+/`p+@\QVJ\zFwtOy^Hyh-AY 19P JgVk-bv93vqԄ7u?M5јplE9L^2twGߗl ;e3m츛ՑJYm=&h%켗NWkt ƙ~ 0&Hhsޣکd {I˃2T" !cOk{y=]9t /Z "k.8xvfx `X1;wJl7?cYmiO:yI'\ؕ]g JP@ 4`YJGدB[X&i,.$ey,P gwm٬/bC EeX $){XLdW~jЁ(8;)UT kZDx)w7a"jkF$Q4-{E<κ }T$1 t &eҏ\շPJ4^}ĺ{kRz)a^ ;:j  !{HOROEJZj.@ wh"l}GcUBDw=A-DB߂,3K\NF\7uӟBu{g٦ p8خ2t?3t!`zXaMpIU {Oeϥ}Tj8qU0D]rjL?+ kbzѶRfO5nhag=7sZIyLkZBZ]uBE =<PLB0\;_ghWSI~ه|6n0.n8V/xPzdj[1_@a ;rO6~0>N% #&޷{Mh-9 *2$Ck y+56jaBQm9c[h?M^lngB}Q(.>O9ʨ+>_Wce?BDtJɒ_J" endstream endobj 426 0 obj << /Type /Page /Contents 427 0 R /Resources 425 0 R /MediaBox [0 0 595.276 841.89] /Parent 428 0 R >> endobj 425 0 obj << /Font << /F21 16 0 R /F19 7 0 R /F8 6 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 431 0 obj << /Length 2841 /Filter /FlateDecode >> stream xɎ>_!f4k" 0$'$f .m.Oyd#@\zWu,n\*Qn4n0v$-{7:ݩ(̢L! c0.I0WJbS[l;WoG6Eʲ#;0vǫ]BW)d8NZ6{C?]0 Եz"7ip?a٬gun^FݴU<ʫ+Ǽ|qyȳU) ͘;䨃$inP[߀dh (br 80D"~WO<A=c[ s 4~d5R,ȥ+^XLhI*z4r8&ԸslǪ!e/XyxԷ:r'ȺJ! )*Q}]yftԸdK{&d_d@C?  ,%RV$8 e{Ah^LF5s1+ݽDS؀@4Vd"tש>jA0~Q;MxcR_FWW^Y3Il]"!3K: w-n>-[V㝹=R\'vHdd}B2\-1>4m$Rt Ѕsl|[㩉4*RÄD lާ3ѕOe޷5OH}Jt"^8L*&cIN׸З(lgkzE7f#@=hM'gdnp(SG`8h+JUFɂr j/a x}Џ+Fʪ@Ul+_%ɤoػx2N0xNYx.r𙆷Vc¥"UP"P]8Gڲ<x)"~~'Z6o,A= K=OȫxՋ-%osc=.:͝iy44Wp0wTHRh!|ZћPVV1vO Z^fa14+H״\J+OZ5gf[b^&ń%QB:E˖&Mt ܧ2T`HwL!T!T#]I00.a#Uc~{ޙBX|JCӗC +VD+jl)(vL0cv):h> endobj 429 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F19 7 0 R /F27 41 0 R /F28 49 0 R /F25 48 0 R /F30 40 0 R /F51 33 0 R /F24 17 0 R /F26 30 0 R /F55 50 0 R >> /ProcSet [ /PDF /Text ] >> endobj 435 0 obj << /Length 2099 /Filter /FlateDecode >> stream xڝXIF r ʬg.La=C[bKKō"tg9X?<޽{"+dBX'^"+qbOTpBi0H2^clΧ6[uơyt< Dzi~1i}Uw~r',W(Iv_~͒=|)Ʉ,Vmsᬅ)xTODS3\{;]Je{{#0 dׇ&/nFRE4kH~#*^.z+uqy b6-n/˜j}ƺp`FA| 끴؎n0p6Β(8yA 놺<{WCK\$?snux`sE3we em9aa˰&ˉa%23&}6Epġ^{ 'LDTS\T7)ਢ\' 3p3=&F|jaԅamx:Sq4OI\=][#=B<PˍwPpt IJg4q!AO5TX+eY]ǫ.zf{.Z %' ojH4k2㖶WM.uڏڅhGF3S.㎐2apHO<.YHDZo֫[qS̈́A)BL m`\ݰ\5ԐVi3X2H ?#PjinZr+O߭'Pj$]cVȮaXk=<<- feG"OJDiԧ)94TG\ُ.%L_#oyK ڷP˽BUO!l,nh$ڜaP)qpӴܥgŷ[\@Ê ,|8& 2+cY*fy39P7 jlYm"0El`th:z~qY^WưV\b"5"p,)81arZ2+$xN 轮f`̼ }sЪhh9inrs9Y2Ǹ3LlUm?0H8jjf-`s ኩ*JW}qK\|p8h fjƧ]l)d@-gPRE ,Pjml?T 3m1N.ZI߅SfA[V* /*ӏbl-_28* 074sV|Es[kÑJs+D1! ;vh endstream endobj 434 0 obj << /Type /Page /Contents 435 0 R /Resources 433 0 R /MediaBox [0 0 595.276 841.89] /Parent 428 0 R >> endobj 432 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Noises/PatternMatch.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 436 0 R /BBox [0 0 631 576] /Resources << /XObject << /Im0 437 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 631 0 0 576 0 0 cm /Im0 Do Q endstream endobj 436 0 obj << /CreationDate (D:20080811145804+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080811145823+02'00') >> endobj 437 0 obj << /Subtype /Image /Length 28066 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 631 /Height 576 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;@w"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RCĥVke k@\BO]0W{9LolRtȦ15ֻemMk^ւ\`;JVELڭh}v05pBJRK2V}lŖV湦4A=Y>X*XneCe@܁%:I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR]K??tjrnɦr/u k(u :I9Y9?o5%+?Z}Fſ7  ﲜ-x1TI%)$IO=#nIί^r0sla=/w4H%uXV5Yxx/5\L5ʵԳz/Zcۑm9?l55VEw Ggl5[V>EKvGUVۘǸ0b8_VrV'9U4!cN fNESluTWc`]Uot'N-أtWtCfVMl u]pg,_gu>g+]ms4]{RSSįF~/yk.c只T5=BGٚr,s (z5_t񙹴t/9!Eu,ǮGқϬ3vKr=?ұ?GqVO]W۾˛_ٟ~LKj(|]U5RX\疰總q'%9Wo]䊫ss}3!|}\Xz~nUXnM|,>KIJYW^aa@]eO: 7 5QZ $'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$'?Z}K?Z}Z$+OڕtΧA슬}>9bG+Ud⫧??tլI$$I)I$JRWN~~Yd⫧??tԔ$I)I$JRI$ai`ki0׃'i|$+)$_̐i&kLiފI)HYYub4n-OTS iQKC+I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$''];MeVJRI$I$$I)K''];MeRSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JrrUӿߟjY9?o5k$$I)I$JRI$rUӿߟjY9?o5%:$-^k{@tn;$@ͤ?dG:_b httŸI$ՍK/peu8VTYe5h;5mt\*WD9|Yb 6V+̮@65s=Vw9mͨ `USu^(O;@h빍:ou֫Y4c{+}@-qkF]g^|RO$m{3ɧ2d}vw*n=24l}ΦV!0NUK&OLZj|ld/=,l\l*MxvUSC%%$rI$dK C#)_[unptk#?F5MX,kˬl-S1zI1$qBQH"qO]ڍtfYuw[U1 Ժ 0_1keVtn8g:;=sgYLÆڙ6}‹Cח1G:sYO9H~M߷mvCE`[Meh>esyb϶u9fu%fF1pu_k;.{ {<3F$'zH~]Cw_ER"t 3>.k{nqNiӋ.>QM5I?ϔ@RN.6m̦_굡t-p# s?կj ͏_SJOf9?(vs?կj ͏_SI}7UC6>NUKl}Zʜ KObk*p_cT5__xrP͏_SVa-4og3l}Zʜ 8? WAi3T;9cT5_կj M$*Va%6>NUZi%'1Ug8? WA/k*pI/f9?vs?կj ͏_SI}7UC6>NUKl}Zʜ KObk*p_cT5__xrP͏_SVa-4og3l}Zʜ 8? WAi3T;9cT5_կj M$*Va%6>NUZi%'1Ug8? WA/k*pI/f9?vs?կj ͏_SI}7UC6>NUKl}Zʜ KObk*p_cT5__xrP͏_SVa-4og3l}Zʜ 8? WAi3T;9cT5_ZzoLAӱ(mۻ`-ř\#zzl$Jr#&DQI$d?j' UPq%cUt7NO*wMZ.RI$I$$I)K''];MeRSO8qSљqI-/"I$\}XI8Mf}XI8MK=6 I$IRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR.Ͻ=ȉRԸ>c̟ I(N/-WCUĖ叐rrUӿߟjY9?o5k$I$JRI$I$,Ut7NO*wMIN?3 OFg$,q$Isc]'-5c]'-5/1O@)$Q%I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K3#G7>2?KsOR2(.I$KO8_ZGp_ W[>AWN~~Yd⫧??tլ$I)I$JRI$rUӿߟjY9?o5%:ʟT3W>g?Ԓ-ĒI%gՏMt#gՏMt#Լ?/`ҷu^Clq4US;\*?WKLmk7=?1LOuNfI7dOM4fLI?45}U쎕GRw>kUc'U oƧ^ v:eȵks}v\BϲeU5 ]{@#P]g2P%q2@:_q>FSYúV7}!d{}JFѩ[k:kp E,a5nO-}?KYG4;⅟mi-qk /Ѫ_'ee3j9Y#e4!|T>_V72{]b6s\D!7 F;Gc)Jn=ZΥ]7/U}7Y}ی.TX7i:9Vn-Yt6' -kK@$On;j^9B#b _k͆Yf}q#%.I$h~Gy_A/X+H+&ԻYxX+H%k_}$]޴?ma< ?ywgOqz/`_WWJ}ڮ,??C< ~Gy_A_I*qjX+H%k_}$]޴?ma< ?ywgOqz/`_WWJ}ڮ,??C< ~Gy_A_I*qjX+H%k_}$]޴?ma< ?ywgOqz/`_WWJ}ڮ,??C< ~Gy_A_I*qjX+H%k_}$]޴?ma< ?ywgOqz/`_WWJ}ڮ,??C< ~Gy_A_I*qjX+H%k_}$]޴?ma< ?ywgOqz/`_WWJ}ڮ,??C< ՓEy4;}W1V%u(@o= Mѭ(8̢$Fp|f.Ͻ=ȉR>c̟ tI%Z}I5\T?j|NO*wMZ''];Md)$IJI$RI$VWN~~)Tf_RO8嗑n$I.s>koŦ>koŦ?~hM_T:oΫ;}O͟@)$NbR Xw캊mukˤk@FI*& U1mQ`6h p0)phᏞ`p$'Q-uݧGH8l,zmd ah<'Sfs3Mlk=*Ip˽섒e"HoCэmnևpiAU|np6Q6[AkF+I%@KDb$@;е)-čضaŧBƲG~ݕhc h%]TdH?5$HRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR?.(mW!t)G{jif߇&.Ͻ=ȉR>c̟ tI%Z}I5\T?j|NO*wMZ''];Md)$IJI$RI$VWN~~)Tf_RO8嗑n$I.s>koŦ>koŦ?~hM_T:oΫ;}O͟@)$NbRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI,Χ~>KcXZ؂A@>))Ic~KWJvRX߶rv$7휯ݯ?$l~q$e%g+kI/9__I)Idc28Аt J?UC]7 Qښ~ac,I2?KsOZk3#G7>>s']4IDGp_ W>$j$,|VWN~~Y%I$RI$I%)d⫧??tլrUӿߟjJu>g?Ԯ*}S3?/%e[$Kϫ?G=1iϫ?G=1iy~_u_6W3"Sg1 I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$z?Rռz?RԔI$Jw.[C\Clh A,{f?] Dzdc[jkV+9<03;tqf=Z$;JI"&<Ў9 F"CB4RI$t5kҫ?+H!J@o=_T:G2~3#G7>2?KsOS2,%I$Ii' UPqSNKa99?o5k,Ut7\I%)$IJI$RNO*wMZ''];MYSљqJ?3 [?^EI$qq{'l7gUm\E}P:o+?6sI9I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$R=xJUcVm{k` 2dd:c\tд,Lf?%yָ"GfƋo.FDckRIdqޗپzVm=Y"#Z&h]^5,qmosehBT:~?5?/߹wgEPPn2A0=OoY9ƿr M[.lȥ[.lȫ(ΥWMĩʹQ[ImO"CІVkc~͟I5\Il>Qw,6W[e.6$љ=Z?rfVK_rf_rfJyR'[S;#xt͹ͣ2~-Ct1S[+qsI2".NnjIW)):JIIJY9?o5k,Ut7eOFg+T3IlYyI$3&OLZk3&OLZj^cߗ恰htW mqCLmk#laI$%$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$gdXݘ4X~ѲkġxGAƱuɿW1X )ٸg=i<|IY}OujX=OujJjHI$JRI$I${A_NV^9ZA T:?.(mM?0??Y95\#zza.I$KO8_ZGp_ W[>AWN~~Yd⫧??tլ$I)I$JRI$rUӿߟjY9?o5%:ʟT3W>g?Ԓ-ĒI%gՏMt#gՏMt#Լ?/`:o+M_PGoٳ$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ƥ:f]6C`;)Xx`wIKQQA#wՠƵ ` k@ I)Hnǡ.}ls$JE\_5?/ȩ$_eC_./܊JE\_5?/ȩ$_eC_./܊Jb5 ` hI$R!t)G{jt J?SOc̟ tI%Z}I5\T?j|NO*wMZ''];Md)$IJI$RI$VWN~~)Tf_RO8嗑n$I.s>koŦ>koŦ?~h$J$$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJU*cx,Ԕ/_qvϸ2I)}$_ݳ%Jvlp%glIc$8g?I~>X$̫/w6DOy[ywGo8np~.0-uցl[TS^5,JHI$$I)I$JRI$I$$I)I$JRI$I$,̏R֚.Ͻ=K?@i$->$j*}I5\Il>X''];MeVKI$$I)I$JRWN~~Yd⫧??tԔ*}S3?/\Tf_RKgȷI$9V?57zbYV?57zbRd4 I%TI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,ըnjJsI$Re6ʮ~u {DVWc:UWxpekJ{mNeXY Ʋco{]S2;[ֺp/*G1ֱ/!Z(Rb43JI$)u:'oߖyxؾ-e[@*nr8 Jnr8%[ܪ )[ܪ ~*Jm~*_gʫi*gʫnr8$Jnr8%[ܪ )[ܪ ~*Jm~*_gʫi*gʫnr8$Jnr8%[ܪ )2?KsOV?ktWg0ǿpلZ|Hc.R7?m%SLU?U_VN}KU좦C*nr8$( LUt7Nǃj 6ٸmkn|HZ_gʫJnr8%[ܪ )u>;p";`}cʆd~g)I4$NO*wMZ''];MYSљqJ?3 [?^EI$qq{'lI(I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%CIJI$RNO*wMZ''];MYSљqJ?3 [?^EI$qq{'lI(I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$G> M^%4GB}Lu^w|?uɡ%6+1V65vf?E_+p1;Lj> )[?zϼR}"dl_޳cbxȤ%E/ؿg?))Il>K6/YJE?c|\:7ze|N>x )I$JRI$I$$I)I$JRI$I$$I)I$JR.Ͻ=ȉRԸ>c̟ I(N/-WCUĖ叐rrUӿߟjY9?o5k$I$JRI$I$,Ut7NO*wMIN?3 OFg$,q$Isc]'-5*zn'N d=OZޛ~U}e?o#՜،N@ŒG!4g> }/%d?If}/> {2V餳>`mKYwtYhp06Gcmz^Ļ Ui,ϴ}e?o#G_=/b]C4g> }/.!UnK3Y`mKؗx*M%cmz_hp06GK?[G_=/}e?o#%d?If}/> {2V餳>`mKYwtYhp06Gcmz^Ļ Ui,ϴ}e?o#|Ϭ/w>ˉUױŮ* @ïh {2V餳>`mKYwtYhp06Gcmz^Ļ Ui,ϴ}e?o#G_=/b]C4g> }/.!UnK3Y`mKؗx*M%cmz_hp06GK?[G_=/}e?o#%d?If}/> {2V餳>`mKYwtYhp06Gcmz^Ļ Ui,ϴ}e?o#G_=/b]C4g> }/.!UnK3Y`mKؗx*M%cmz_hp06GK?[2?KsOKY|~Wu qƾ{ߌ;G)dF1w@TM$Gp_ W>$j$,|VWN~~Y%I$RI$I%)d⫧??tլrUӿߟjJu>g?Ԯ*}S3?/%e[$KI$$I)I$JRI$I$$I)I$JRI(cKCZ9$ILBV/jޗڱWp$/b}5IIRBV/jޗڱWp$/b}5IIRCnEpk,cxD"}c 4?/$FFG>cT? '??*I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)/-WCUO8_Z- ⫧??tլrUӿߟjIrI$I%)$IJY9?o5k,Ut7eOFg+T3IlYyI$$I)I$JRI$I$$I)I$JRI$?6gҫ$E*I$-RZ[Kx$Lh栂h2JNϷKkwq1>C+}kƗ6" )"2F$EskN_.Zy43KXqamtdN09>AZX?? m6}8WK(CX x~($I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)/-WCUO8_Z- ⫧??tլrUӿߟjIrI$I%)$IJY9?o5k,Ut7eOFg+T3IlYyI$$I)I$JRI$I$$I)I$JRI$?6gN5f+`njg?Ԯ*}S3?/%e[$KI$$I)I$JRI$I$$I)I$$RSqqośMӲ^#z>fF 7VɁ;#,ik/SgꚒI$IJI$RI$ӫKӫKRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)/-WCUO8_Z- ⫧??tլrUӿߟjIrI$I%)$IJY9?o5k,Ut7eOFg+T3IlYyI$$I)I$JRI$I$$I)I$JRf^:mFNxgߑ7+hkeU-0 }~^ );Z45@e.}, 9$~K6WWI%8߱zR"RIN7lޯ?ce~yȭS+E/__+e$aYs̀LZi$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Ji' UPqSNKa99?o5k,Ut7\I%)$IJI$RNO*wMZ''];MYSds]meչ5+$,ݧS2?$LokHwgjc~G_ WIU.֟Lok_1s#aJI*} K7d5I\I%TZ1s#aI~̏I+$qkO7d5I/ژ߹%q$R>ȉI$z+AsԓxJ⡖Nn@՟Ѷ_UK?Fu9nνيd%ߑ\ V W?S2?$LokJwgjc~G_ WIU.֟Lok_1s#aJI*} K7d5I\I%TZ1s#aI~̏I+$qkO7d5I/ژ߹%q$R>ȉI%S2?$$]?ژ߹$jc~G_ĒUK?S2?$LokJwgjc~G_ WIU.֟Lok_1s#aJI*} K7d5I\I%TZ1s#aI~̏I+$qkO7d5I/ژ߹%q$R>ȉI%S2?$$]?ژ߹$jc~G_ĒUK?S2?$LokJwgjc~G_ WIU.֟Lok_1s#aJI*} K7d5I\I%TZ1s#aI~̏I+$qkO7d5I/ژ߹%q$R>ȉI%S2?$$]?ژ߹$jc~G_ĒUK?S2?$LokJwgzS_LîƖT5!$IUt7NO*wMZ%I$JRI$I$,Ut7NO*wMINI$I$$ϵe}+5IOF>Օ%=KVWk??ޗڲYqi.sY_8z_jMgSѤϵesƗ8։$IH3Loò~/F%; c}J]qV=yߑ_IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%99?o5k,Ut7RI$I%)$IJY9?o5k,Ut7dI%)$IO.I"(2=ukI l8F!I$a}dwPNgٮ~57mΦΦ.~5Ƌ+4885ǼD> /XObject << /Im52 432 0 R >> /ProcSet [ /PDF /Text ] >> endobj 440 0 obj << /Length 2529 /Filter /FlateDecode >> stream xڭYmoܸ_~ݥ7J^ ܡC-8eWΪJo z5m'E")3<amq(&\c% X&;L=l-.m%rgEv(.'D+yCm?Cc kKxaM]}Q"I/jzCQ]- /MŰ OY *F$U-R^Q^: m{M;tWq~yRqA fB/i7op!{{ntNwf{i|Cmʸ4k :˴~810ۦweG?l2[gJN,ޢrəwY?OZ #qPB< P;"S2nDƸ߾%`ƭQࡊԀT0h@j:^ P;o9>4weuQmw!'QeC+ Jq!?CC}=iOyU+ !7yu.:K #~c?(I<%M̠ov|ߡwB)O@^621f|O/8Tp2B5_vmPHe=׵K"KɡxЃ0Kʄ2Y&7#3y$I']RKz3c2oQ@cAD8e$~s[%ݖhWyǚ~%Rl :#xqK}#Oņ^ej+G@o+q},CL68ty'Yb?ݦ3;pk u P0|=R8d7[0ӰΏ? "V t`rBWWo HJثd\GC10nD.1 X߆\>v==/[|e(blJwg+L" yUsR\'adAYh8d0!Q~^`A`TDvKQYA9@lK* .[hȯ 3&hcӹZmm)`p endstream endobj 439 0 obj << /Type /Page /Contents 440 0 R /Resources 438 0 R /MediaBox [0 0 595.276 841.89] /Parent 428 0 R >> endobj 438 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F51 33 0 R /F27 41 0 R /F18 5 0 R /F28 49 0 R /F30 40 0 R /F52 31 0 R /F53 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 444 0 obj << /Length 2757 /Filter /FlateDecode >> stream xYKﯠs16! 8q8JhtXߞgb+*C.9IA 2݂TRR@t]^9ejVŮ+ UC_ŗx.c2N% STF܇Iqњp \Iy7Xd C*NѕصUNkO7¥=S *++MVq<֕Wo` #7ضlN[pe]s? FQvW]~KKa1$GINs}_(V\x1[~,Ǻ3q{a)0vZkk Utӕ?fs䑷հ^Jn7}9i%jak}A >^D®Ftt^d)idt휠q)SW^eã7/TnwSϕq v Rwo3^!MeJֶF<F^U 㑙H :KwI!#|4iTԧ>|\ ΗN۔=)J%@JQ"?w{ wOAK.?b4" YpAY% yeu+7G:Fpw`p34vkϹ_& ͩA :2ۤPmSHMX!",M& 7mlē+gO:%bC6BDsÀ%8Kwap}[mtfj6~-Á `t啸SCw:Bߴ5b" u#!MD 8=D7gtpR/iyѓykC5 @" 5Zu kX 0x]ٻ@{@ s,fw*vШ8修ޟ bFTOIݠBڑ4NNIp>oRK1䬒C+ax+Vg{ީj,f4(\rY7Q ߻eFlFM 삄V&~_* ܣHLľsX Ag\41jMSϹ_-û enզ['Qo JMĹ1B'qӛ1S _A-|Ҍ2p:irnc>Q8*T֋ƒ$l@s&|eL@\zB1 ϵ75>yd+d6Xk28U%E_QeDB ݄ [eՍ mPX%QI0ĠjI {;ZS9ڿ`sČGe`o_HS1q<"N!_ vjfI~đ|*qĘ&-yntʥvAC 5G*\F#=jl3I$戒fS?˜^ڄ| Q^ IA q-{\9%DWU4{ퟣΖdц~t{2tFO͔"݄[1 4CZ&c^{ެ3.+wS|A×bn{Wrٻ 9V_:CSK%gK)T2jͧ@oq{N- $a_-7^#FH endstream endobj 443 0 obj << /Type /Page /Contents 444 0 R /Resources 442 0 R /MediaBox [0 0 595.276 841.89] /Parent 428 0 R >> endobj 442 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F51 33 0 R /F53 32 0 R /F54 39 0 R /F21 16 0 R /F19 7 0 R /F18 5 0 R /F27 41 0 R /F28 49 0 R /F30 40 0 R /F25 48 0 R >> /ProcSet [ /PDF /Text ] >> endobj 447 0 obj << /Length 285 /Filter /FlateDecode >> stream xUKO@ +,Nau]"Q p*=&m"i+>yy<#"aA pLh i$-DC,$">ϥ1ږǼ;dH "1pаPݤ(tRf덀_.A 9?-7N" "4fp8I fR 58.F3k-#V71ïA/qk\Z\]>wϕ^R胤zo]x9Wr+ҦɫIY>ge/> endobj 441 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Noises/SvgMultichannel.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 448 0 R /BBox [0 0 1694 427] /Resources << /XObject << /Im0 449 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 32 >> stream q 1694 0 0 427 0 0 cm /Im0 Do Q endstream endobj 448 0 obj << /CreationDate (D:20080811162013+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080811162034+02'00') >> endobj 449 0 obj << /Subtype /Image /Length 51623 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 1694 /Height 427 /Type /XObject >> stream Adobed ##''$ %'% $('++++'()02520)7;;;;7;;;;;;;;;;;;;;; ""2(!(2;2222;;;;;;;;;;;;;;;;;@@@@@;@@@@@@@@@@@@@@@@@@@@@"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TU0.K?u;:uF?F0tk5jQ̛iˬk>kjipv'!ԧm%)mnulv 'p-`kϻA62/Tm, -ugx`1I7hJv\>2WZQ-sſYݳF Eq(ڛwpe>6w )IBZZH##O"BP{Z|Rt,7s&9Ud5IIR@9cn3 wd׌% ~T% ed!՟E IIA2c{Z@fo6#⒙N]9&?tYE.\IICc{G%NEy"XII@n}vcI7 R*hx@)*J f[tͧ $ s;^9">Tp &Jf9Ud5Q9lb7 JN {AOU̽))Hg{ƸfSakIIIPpt9tcII@>]4ظuIIC",ppI(7>hJJNUcFRe챛ÁoޒNm5vmk֟8%ʛNzUd5IIR@95M1ʝ {AIIPd ppi:[c\O`JJN ٔ{xTfl߸m:G%3IrL1t~&>]5v.!{14xTW%H?%$Igm7tn*WU%%IA2okoއNm5 ]F9>p{x>$*2ɝkȢskb7 $;+ʕ7 ncL WE{SݙN1 ~T%Y7bwNP2 {\G"JLP#pَ7=S4ȯ$K"ϡ,n&RRtʫ77?*.eO%3I2=> p)]F9>p ):Jyp thʫ&v=v"JJc1ݑ^04(RRD齙X*sƒ{RRtn˧?*؝Ӥ|RS4i̧$Ț(v֑ظm̡ ȯ$K"JHϠgLʫ77?*JJ.ed!՝FAǵ%'Iq=isDuc7wޒFUY3ts]CxRRtȯK<\@S{2ŦRRD+Ϣmm$.c{[?@)2Jo6#Ne9&$Rd-Ϣm}i.[s(n4x%3IDȠ3/7tgRtʫ77?*w2k IL@:ݵk\ {i0q%&IAױ\y:}4eU;G;H?%%I1M.vEx^ĸRRD龼,ppi [cI ݗN1kgL\؝Ӥ|RS4i̧$"ks_cZ| )):J $Q&,pt~$ }=F۸LB5cF5IIRP\p#ugQ{qkIIA6s{Zy?*ctS4˫&v=v"MJJN{G*o K8II@f}kli>eՍ?*JLf't s)0ǵǘi$ [E\%2sG0S4ɫ$G"߳n鍻τ$!]V4os[?@U˛x!%3I/vXSݛN9<È%&IA1\bwNQ.9A)*HϢmuJ׎% K~T$:o K8 Ϣmm'8JJNucFRms7؝Ӥ|RS4iͧ aȚ(v֟Rt,s&95d5Ȓ7cn3 WdՌ{g%%IBsw5ugQ{Ƹve8 ~U3slN>))H4Փ;G"gSƃ\IICĽqȯ K8)"H Ϣm4*WeՍ%%IA bwNz9c4Rd-΢m}isDRpĘ )HTՓ;G;H?Go7tgRtɯK?@U\۹ IL@:ݵ58q=iq(pt9tǵȒ$f};kh>;K<\a%$IÉi(7>hRRtʫ77?*ocټ8tS4iͧ aQCisIIPTpĘ 4Փ;G;H?%%In鍻τ)ݓ^06xRRD*sIM{:7m.s\RX@OqN؇Xۘ?B]1us;od$k5[oW!=3@=_~24kCe{-'ԧA%ֺ:7 Km=iyKwM҅TˮME˷hN?V=+,_mYo3p\L$S˿ckOixmV=*[kƲH;%?f Ͷh1ͶCtѠ'Lt5 F6`OhwTDoDR:k5..t+}nc<d~ $iovߚT3n1)C:BkqcXXJ:I)žm jjuCW[oDRa_K{]TS]V_. | …cwbSIJ@Rֻ5GAŸVב$I)J1y}7ᱜ|XBk?pߒRTI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R&ّ}1Z\~]]Up=֒~?wK($WDWwK(εeƘsS!۾þvj}[ҟ~kf>yR?O+c^WEi$};J%~?wVIM_O+c^WEi$};J%~?wVIM_O+mJ&{2 ~$k.h'U|QXIJI$RI$I% ʤ}*Hlws[t CȎЦIǩ<$I)Huˈ`|j['l`%6I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJUp=֭*]qIMI%)$IJI$R[?25x~dQSV[hc-.%-GAq{з@d6:#䦒g.r~}U5V{[l浾mq3Iu.[}52rx]ii$Ted03:z>78[ٙ5Hըk>Ij4Scb^6ىbx1[.us}'/sXɦD vS4>t]I)eUÙv=B+eL{IJ>,~=b~䆰98\;O}[$>{Z\]| }>ƴ8dSHwQֺwk+ZJ@ZGy*α?%DI%#}7XIJQ蟂DRQXU\{1+/zr"&[};Nk;ڟdqǻ};Nk/j}K7}aTHi$ ױ|{)_GPJ0muu mmo%3I$Rhm5vؙ|`s򄔑$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$W˿?jҫI$RI$I%5v={]OV0vE{2k)!}`K}S*[0N>_׬ Dq T>ß/?WbgU2cόJCWl/B?kl/^ $Y~׼^=\Ix+ xy=K{ax?޸4IfW^{ax?ޗ?pi%/-.ƠG[\._k^_dOdpǭ<4yÁi1۞~)(n$?FŏutU2۷/Q~GPoښֆ\Z@6JI$ScpZGPIN~je?Sѕgm`Peݳ1(w\)C~E * *EcY%'I$Rh 7nQ|k x laI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)J\եW˿?i)I$$I)I$JGK8∃GٙgWOFIL7|~tOM]c()~Co`r)׸5I]ןm.\N65v  7 rW~4n<iBaav"cVkinns\$h }Lv3--?V0D7FR`k׉epfn=`{;AkG\VP`c\ֺxٻ-Mk[rcי46xN(9#Ѷ77xCFى$<~3~H+zoAmԘv t4pyt{j:݌[׼-4S!FCΙ{уָƚ4㮚tU]!9]"цwǸOg͡aTeҿ`B> ˺l^X5gϛc=ߤX#C*jgit{ E}㶒Uc+şs(gIImzNX{#]G͕S_s~W@oʦEI$S/n`1o7ȯ@2qMW*VZ@.;Z 0[ֺ?Nmϻ{*v1mKH${C[Wx].m孥7~k0s6 AJz:eZC3L"Sctk?VͩOgY%)$8Svɍc))H4kϹ~rnk?JNs[-j^sv%$I[v٤Bϱp[|&Pטs6Rtnk7Ц82@?%3I ,|nߜۃ2G$!{[a*\sv $ ΂;' )2J1q?B-y3hJLCY#tK\Z$L$i!R{۷*>fIIB267wsp2Um;=ZfRdH|'e󔔕$ptH;kw $:^sv [sf1 ):HW=cw|J9͗>))H[kf{ )2J 5'e󔔕$s]m3):t$(X5'aFݿ9IIR@n4wvB{pS˄ :·3h?%'I-ap™s&5'i e[s]/~rm|ly!N罃8IIP{eiCۜs xuY e1q?%3I,y3oSYmt5woTMF'Rt{=9lm>))H[sde>nJLl8M<))2H[s] ds%qIICx7oTmYBJNX8RcY$A⒙MÙxk7В9$OQ>woRRT @f w=JHNsĸm>(u[sdRtnk7|OsLkOILA}s] dRt-s%qMKnߜ n.'}󄔕%9l6fRRuW˿?j, ]qIMI%)$IJI$S_}r?a ďI% .w?|t?Xz;SyR®6.aK*I$'II$JRI$I$$I)ҿ`B> WWGl|+v>LokIɡh1ERI$۾yx#rL^#"0b*Iv?xȥ0k0bdI.` ~K0W'o5z2zW6q=>`]brϊ&1MƐ߽BݚnDOe5 aT*kO #r*k$vIII$_k ߆VsFmߒRT;)i?-(Mn{#HIMQ'Sm5Z}Xc}3Ow'ىM۷1{v>@;qӱelnݭgǷp1Lkѿޒٴ0@cY`iƁTVoc.ˬ`u;s\V~ѿޗۏ7Rx?fϱLD5΃~V_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz_n?IM_opIUqFz=77!{xpI)%'B\muԱԐ PrZJm$I)I$JRI$Kq۴q$g*qHzݶ󐎒}Wժ00GX"%c-5Ȁ?"2(?zM yGxt%\?g̊DžrY;LǑ%%Iur ""JHW6xC6_䔝$0""RS4iʯ LǑ5R:$!shޕ7 KL)"H ͩpJcOIIRPe{7̮ 2~$ ]]` q%3I dN1GQ95gY$!{1ĸȟȞx$i UUӯr{0""JLݛDS^A"?*JLnuTkr-6.ILCd iA9Ac):HW7"".m8IL@242 8[7+̪HZ[\TRHsv S8{@9$u'#o*2{GaQIHnm>449p#tsOI) -괷ɬe״O߼~DtR;=*[cG +Jibߒ0\ ta"9ĒIJI$RI$I%)$IJI$S m!zԋ{%)}-.5GCIII$ {k\?k:oc˃y! )" _Y7*6][Q ytϿgRS$Λֲ0zeFqiɰ<c!tC3gQm卨v盛LK fvpi,vIvg\ZMlCKN>{rvݮ'i%'IH'ȞE@#?*JfYbFH !'$(zf- "Uknhsu%3I$RI$I%)$IJ@2wdas>(F>xil|H?%5:QvO&u>Ƈ5cI4=O\k/y]uls`T!,xA^u/,{K5#EW >>7Kv8K`84d>%9u-ҿJǏvzfa ÷l67xp`WV'{M5dש;v7oF^=N\NfoMZk o`s+ݲN'nIN!ϗV!pfT XǝQ7_p Z}O y.Ds {6KCXX]6mc'>b5:oCwIM,4Ξ *4d"`8G5$٬cçɏ# w^\QIH^$Oo+e͏-tR8LZ 7k<TIHiewR!&= !$E-g )sDI% .• lj3sAEI%0cw 0A:sioZIHnewXԂYXOJEFKr&~\_;i&<6IH 3 M"IH+e͏-d$8$Z 7k<T)ewJAnc)t4[hǐ.?pS{oo:I) lj3sARkw 0A4R sioZݖ $v%FL湿@"?5v>Lyxl)shg-sADI%!)ȓnkOeM2>0GSIJI$RI$I%)$콕sILn8~k?eK#VqQO )Wie4VBEiήcMn,^;~_>\hO }oSyW,c]ew>XZN9kĒgOAśZ׺Tvmn߮h\[hػ}xK~𒚸]Ciq*8էLJ}Ι] $6s '/S_l$S_l$S“2kp'Ȅ$IJI$RI$B~MU.RT~O }oRd~O }oRd~O }oRd~O }oRd~O }oRd~O }oRd~O }oRd~O }oRd~Opp))tI%)$IJI$R^ݧ"mno2%'UzWJ*+%_oHIMI% m,2\k[_L!a9w{%6*/6^AώIJ2qIe~?wVIM_S+n;Ie~?wVIN~#2񙴲w8~hަW3wR׹pBW34Lgj҅3!h.s`9$W34Lghx]sn-yb9倍Π:`ǜW34Lgh.[ݍݹ6I Bo\A$7/h|gY%$2qIe~?wG1,n8u+z- 61V1t9HM?/x>w'1Ckcj xcxcw<jx͇{7~ڝ_^ͧޛ|׺x>jc~~Z4Aή k'քeW?/x>IUK7IMCq$>*JRI$I$$I)I ߗV1 'z<zJm$~J<z_|})Oޗ<zJm$OJ<z_|})Oޗ<zJm$OޒI*1}z_|})UG0I$$I)I$JR,el04T֞@III$I%)$IJI#)Ѹxhԟ>L>p$vQ]q".YUZ&Fe8=7ʒ$M_laz<%*0W{/=ޗ UJ?V49x#P*Y[u`ޛjotZA-?=ޗ?WIM?=ޗ?WIM?=ޗ?WIM?=ޗ?WIM?=ޗ?WIM?=ޗ?WIM?=ޗ?WIM?=ޗ1⯟;$PcX ~M_@%Dq%Ojoc5(IS~M_J7@>ב5Dt*&XIlp(7jsm?dI%)$IJQ{SK@RJفcfw߀:G )ng~?"UU_${$=Z Dȟzt}+i?H()_'P9$UkbzQфOzt}/?W{/؟=އr~Ozt}/?W{/؟=ޗr~Ozt}/,xk :VeGzt}Vʥ]Us?=؊ qyowO;=^oj:NMb^?)/S$t}߶S_lI%A_x}6- %S=%+#Hgi_%zt}$ԣ=>uLV r77~M_r=SSpKlOK'joCSpKlOK'joCSpKlOK'joCSpKlOK'joCSpKlOK'joCSpKznfCw1ŦBp6pAb1V^?=xK~sђz=9tJ2Z)/S$x>}xRfMvj}Yyfsӟ.XDi{5O]vne }9^7+JJWRSi$IL)ck` 0=֧Iǥ<\SiU͟*7{?Si$IJI$R:nm$"=Fq'f98,/d[mSSK2X5ABJy-ͥm uO۷$Dsqrqf-sElk}M-_"C~N%9kܴ$)K2X5ABJx,gM̷mvx En$'h].u[oݿev#Z[ݎݹ6HLʯoC]T$;,i|'H%<}9v*ev_sm]v6@.*xyw2re94ڈK`hqX2+1)v4nsu:yK4D:{>%%<~3U]s1kiTlg*ńh4m7}k7FlI^lZp{wo*f9 F:$O$ud>AqgqOun2I)-f,~*4\fX[o$kV?xG\ wXꄆy7oDR:l6--tIDA͸RZJ2JRDm'G¯c7!M_@%VIS~M_J,7Tlaz_0W{. ĕz3򝶻5Ea),-cGDzU&()H8}FP00l )I$U<;T:me~q~*!mwGa '0Gv.w%%I$RoչP] EC1w撒$I)I,}gihܛttw(_>o}IeΎ}GOJ>r/j%U%::Q;?({x}ܗ]T*=C 5.$SWD*+iq0U~;?GԔ(f} אc`a;+Ak?z_3>#XG 3>l^HqW.9#(?fN\F$f2=3bS?+J:IQX=-~x%(Y+ LEY_s/ҏܣ~Y>%U%::Q;?({x}ܗ]TWGKttw%r_auRY_s/ҏܗگg}IeΎ}GOJ>r^/j%U%::Q;ԉ?ts!#BAYɸI)H'bm5%=,3:x/,#O3Kg.3>f}+?uv|80?3Kp`g޼$}Op`g޴D9 uL@øTHGP챀…I$JwBxh >0Xښ\U}{r[e UK;8>jJAy#W\\~Á$R ߾?wm|):N]XmcDĔe~ah0KTyɛ2~LϽ/?(o1/2u*͗&jb $韷3Kf}MJ?cl\2ƹǀ xϟ*L_#CRǟ┄KI$ճ]Գ_}5jccâIg%tp{.GVgTeE{`W4OI\̿+ajk^W#$I$B}Sqv'^j'&|~k ܾLa?UW0ߟ*ҦX~LϽ\;WӁeyNK\ 3Uyd!f#o_3Kf}Tҹ;K韷3Kf}K+W ?ogޗיW'`//~LϽ/?3I/N_,__Lz_3^f_\Xx3>v[sCd p+\9, ~VM{?Ȭ KԖ>ya?+hž%{YG3ud$3`q>w>J۳y-|ډFjv`>9VS if;v`I)I$JA_\Ln; ۽'1%%9_Z~/*阗ol&G_?}T,Ȍ~?8I,aI$JltFMd~*LH( ^o?#S5y'h.Ji8q}6xߏq׀=ˁWoRI-:zu6bOL3⊬?6]EV\YK0@F:uRI$eRI$I$$I)I$J{n';It+JG3 *XuZv;I̭M۠LD3]L;4|*4NI\Gs"5 <~]؟dhjcS:?+O|!YCX*a3߀Oc&e ar7hi mA꭪h|~nf9&H kOV uk!sxZrǃ;9%E#Ð[$ѯݟhnJgqȥ< \*t=>;EvTZ 97`$ګ?׳>9ZUzog$I$I$x3o1+85p5d㝻Od#zߥ~pՄ84LIUog޲fvZW7痙:GN)~bF}_f}~LϽyJW'`Abgz4J?3>i%+韷3Kf}K+W ?ogޗיW'`//q/pkmi'@WW5X/P菂'1L|o=ڝMƴC@3s3cuHu[L~N۶5C$z022ĵD!B@>CgԅCgԅ\ xKͯ*u5K #v[_6K o[ToRTv#$h%ǵ.h4dj9xkFƸ$iߕ ֓Z0]ԏGW:XI .ӆ+|)SNeׇ95[ſ,◛ΝO%[ irx??+OHaNkv<ufz+$^?Q@ I6_U^6Sݧ /=^K> k OUT(/+|i?jc0tԤ9&5>].s?*wK}NԯG%g֖B Woĵwlv߃RX84| _t6 =PLY : V4q.iAƴC@3[{27o-|t ʳvCY{`sɦZu[I$r O{q}VO߳~ݷk߀ vzyh ]b\5]֟>߀ k`GeÞ'w' -95,~VֹcT psN 7[w1ڏ43;Y-}%" C jɄ[F'`~F@崨u ǶVpݍ-`'Gs ):](u oikגYI){rf8'm Oh>+i˳cBzk:ʽB߀Z %w!]_L _5Em%mGIO;K :I:sKN2}o'vX}Ʒlii-.rSiKK81MIslŶ<8.|kR_oi:'S_V%#L <ո{.s_xѾ{wꭔ^)phiu#`q^lq8*i%ڴLS]KZpLsF=;[ w`̑]Uxk6oy$@ XVǚ$Ym]T\|;cߑibc}$udiݴ-;uC_17M}I_P$:yxw\ţHPIm?8Xm-=&t?GۛK.1rn]+M +#༻! ׁٴ~xZ lv>I3u898 ¥wQ~;Sd4kmOv_Mh_Y}4gRk1/I,{wGF~PE}ۿ5Ԕ"SZs:cKC&%%$I$RٱlwDA̠ 74$I){kӨ]NDI}uןѱqIwĩUu.׹6$ w0&޿f]`1ŧhsPc$xL ~V g,`.hpk0ORidtmݹ(^wNӬ|sb/)6t8k#xsv{Ӹ{GM<.U_7m{k>Oس>I+U$I)Az-^[^ocCǸd08K*c>c>yrNhp̀9yIto/O,/= δlp'd#0J̀r?6O/W=}6O/u{Sk~Bgs_'ܺރ+w!Add D$J:;y:y:Oڻ̃<)5h %n%eޟ?rNg9Jˮ`cI$I#{deǨ>8K*fd[4D47iM,8Z]smPhwgN5CI)薼˩ac^A I$$&| W}Xπh+痓$K]f0/#^}~no#\+p?%cݰ恕S$OKcdv/j}m%lr_'ܗG+gkjDGSwc:z[[J7JEܖ~A(F3zy [ H#G4X<RdI%)$IHoqsZ$~0+Oo : XϨ.Or/'}/Lp"r]r_/'}ʟsyC2|Gܗr_qI?Eo^Go.3E5ܻJk>i|? D q~/c8њI$9OngW |\RC4(,8̼/_ܽ$_;y_/K$ff.noKy[$$()$A/u?6]EV]Nk%x_e`ϒd}/W\o<^Oy>#M]yC2|Gܗr_qIKy>#Ke/_y%̼%2|Gܗs|o<^Oy>#K9u_>W7gWo+YWzm.+]m89攆ĕ$JVAiey)6?f/̼/_ܗK3W^g/VO| O|r<ȥ QH?l̷ в.;wD@*&D$JRI$28"QPώV^)I$$I)"Ǚp.##=$:() ~!Cs7G঒w6."8 LyR¬?J{s/ :$ 'h~·X2J.@{KgC|?ޓ\$ILVI^M89 FHx]zݿ9$(eX'RJ&>e̞ؓvȄ@mF )kk5өl?/I$I)J_ //_k^_ϛ|w1Ȥd LyDUxƊqԒI$w6^@i!p_$cvÚUO2?6O/V=}ؽyI1x}lr^>~jec?L|Q1S܆v.CE"0w-3(X}IIRI$_XA|60R!sm.N=W0lv.oW{༇|6/Iu;?e_ $| cK~ RҰ "O- 3L,~S1rLJwA$ Iw))~ 0W~?KI/dfa]-.bޑvtiQ)I$kԸ?Gr^: Unw⨷~3qOjxW1/| /{/(1%1/v~KIu;?e_ $| cK~]_?1%_~W!U| G}\wIt̩^K.}aƁcp]*IљDHj I/w$fa]%0r_x^;<7»]-f(+)1ra*f$JfI$I%)$IJI$R+T,k[e?TRI$_'CvwG'ea$(dH#k{(89k]= llXm{~Jl$I)zcK*XXX ~h'm$̇kpK#y?:9~pIIRPmv }'MvJL+sgpDiq?%3I ]lmn9Rt /V%$ cQ[ݟ%a ݴ}'~*fX[o%&IcV$+uQ s f,~))H4L7l!nwK?JN6CKākcm$?|zn9 _]RT*--1?!5d?un󂙰nf>?$num!t G,त!aHiwcBTD;o$=΃[Ys)_sc]%\H?XT)5n}qII@!m,.XX $HJf6ٖ9}qQ9M1Y?JNmm$kuCFWoii{I$JRI$`ic]qȩ:nώV^)I$$I)-ffٝ\q?W{\?a%"4~|n*sp;m'!%9@;l;w"9+~?KIAŒW!k? xa*G~?Ik%$_{5߿_Iv%_7߀1~?KI/rxw$ƻ]I}×ī-?k$5߿K%_no;mֵi]{4$ذ~g&ss6."v>QktwDR0$IJI$RI$I%)$IH2u' :MƐ߽%)BSC[M QKZ@III$:9~y 3^l 2v*sA]Zp4$JRE#&0[DA̭RÜxԍRdi}>主־cZG[|)):J@'|ȣKtkG~V%%I}cv;gR4{?qokRT*/-2>]k@$JN ι֑FL~1S4iu'{Z?֦{Z%3Ik@KJkHS%'IA 4:NxmqwkRRT <3 NX$(T^[!˽h!䟻`IIA4?)L ? );6B\kG\]ZԱ)85X )2I$I$Y8lk->#|x..'N?yvA6Pq22Z|GRTllzv@x;| ))JAn dG*I)2K`J6f ]m0n2#CdJI)>ݿ0"d#=x7iSI% ^u{GlYFI%0퓷X2MX}#$Yut62%sšI)/}ݿ0"d#_c덭1sdSm0m2 W[c 5J`>Ew7oȊJ@\B}c0?*"I)/sĹOʅwZC mk7|{ݲvFTIHi~`Dk pIL-{kw Խsv$Ky}6wʊJ`ǹ͒>M<Ùx($[c 5>JEEw7oȢ\$w=kw|Rs)2I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JEܖAr?臍NtGoe '- -p%%ITfM}E~s 6?sv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%6U~g]_IM_}4gSi%Wv_M/}4IU]_Kv_M%3R;R@%R>65&?п&I*k i}/ɤҧ_SmkAR]_R:zh#iKiVINnSB4b^rYSWiKiVIM_/ZI%5~?q放?qi$xRxUSWiKiVIM_/ZI%5~?q放?qi$xRxUSWiKiVIM_#AiFߢ~ )U.hp5%_=oVRI$I%)$IH2uA"Q-D!zJR-?g2fP0^)iw$jI)Ha?c[165ƻv3(o0I|RSi$:nmDioP cݴO[ ):HWd$8I3v~蔔$ry=@&1wX~!%'IBEMf<'TinDpkTJJX3A+mH:\RRT*\~`Vc.tvS(0C׻3h ݬDgILA%?yoP enCɏ# $; 3]R Tĉ\RDǻh6<l)_x?;%<~ ry=@$ [LCJ%۸yOi!S܉7l$!{hAZԂE͑?0Z~IL@1;hyh mwZԂ$m *6;OkTJLHt1}ᰧu& $MH5Asç>~KqC\Tp{7 0ARS4)ewl4(>[w I20#sX3A;mLewH))"JZ.l-uf2m6=-%'I`ewH*~ٻXNSo0湿@&5;i&= !%'ILd~ *omDioP )"H c3A+[gZԂ˃ٸLyDӖ1\JNl4>[7 I$*20#sXmL|}a%'I@?kR z [S4*el{GZ{A (zfb'?tJ9M\Rd,eNCɏpHS@?߀%$Ix?kTc3A턔$+gZԂ˅&<"RS4)ew.hJP`ew֔%c~%FL湿@$ ;5vt}߶ 3 !pH^k-v>l{GZJN M\TQv%%3I`ioP e.CL{BJN [& jomDioP )"H5a1~R!!uwH))*J Xc~%^`ioZRt.ewX~-3q ILB%?yoP .c]<}턔$;mLewH)SpH$ W]O[ mv;%Tn"x3DS5%&IR;Ǹ}"[hg Jf7 5@fl:f> ):HWd7$8JE&<"RS4*ew%+A= (:n3@Dђ܉7$f& Wd7$8%%IBE&<"Pe΀=hIIA-!cR fc ?tJJf-ȘsQ~k:|>IIC$ZԂ7 ĉsII@5;h6<ݒx?;%h,ݬDgP)cTJLCL{B%yJJf7 ?yoP ?mfl$!]x?;*pIL@1:w%=lRRdpk7k<TinDpkTJJXm!Ǒ6&;$:nmDioP e͏-$[gZԂ-fb'?tJJf 9l[];ǻ )):JZ*n1 *46`7$~t}߶nIIC$ZԂ76"7zF=m`hE_w;D*JRI$I$$I)!ȉejqSk ;PUIm-eG3C ż%<Ի6bu@̳i566?WZ!&Wul sl8jRg@΋tu1amcCZ5y]2ckvCvG,[VcusM ~hk5wCZ5qxYynu̵e5^hޙ8sH= Wլl7qkcks8dyʳ]e6Y[=0 k4w6Z^RSӺMtX[V>lu^9?L@b3f^fCϠ)Y^흾vkp `}LCv =i|؆ ;9hh)6 a )]]>T`kѻ'mscϢv~zvQptl6G]_S֚ascp; nc۵A-XLnA ;K#l%/VmW)̫ÝdS\3y:s*4eW; *I)ckuDR:e! &Su pT~)(O%!__=oVRI$I%)$IH]؇}Ȉa7l&xJ:JR "vJHI$!87aMfwwI)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$7:;sV鹷sx>% 6 uUw)$6}-^}>GA|?ةjGo" _fIyco_\Iy[+_\Iy[+_\Iy[+_\Iy[+_\IyHʬp^-\y~$9%YmsÁiE_>_c˘>$+ MJ6RQ蟂JkciRr\G~}aui5$G^p9M˿}yK~򂒷A}wRe߾@[M̴Aq25z󟩿Gʏ3pI݈#MBʤ :Z%%&I$R|g<٘~U*~a))*I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)5AI9U_"k;|_+^%܇n %9ڝ_g~CIS2$ۢ ݝ[&[N8ӟ?!6^i"7szI@o;l Kyq]]gPEvvw~*#H@/ڜEAnѠ{ʝ69xnИ]$\aKZ^I>C&{ĎAI#"wT`#kIzD|5X/P菂WgGAɥ74qsy q$IHmkLj`w^D֗0oYſެ,MSKnf?Y!݇]Ėz_s7?{ vm}M>F\/՞c`Dr*|z6p"ױ|{)dQ끬CU "0uu lmo%3I$Rh;o^vؙ|`s򄔑$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$WqOV09<ˆq% 5;&v]2Jqz0eq!\$fijrS?[3Kkf~ђQ0gܗ$3\ǃ?[3Kkf~ђK_c%5?w~%1ٟrdFaWkx x5nkѣऒQjs\$w1sAq"!R2ks<")I$RI$I%)$IJI$R 9yt;!z"JR5?g2fP0w-3)):I$E}ۿ5e_XA|60R $JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$tl"O3∃GٙgWOFIH22+ 8ݬsASe{7ukDS^d:?ǷsBW3Hy+ $v\ڙy5J>SrghpkT2I)s쏿l"_a.3sAEI%#@S\8N}whWcG怬_c3{ZTfo"~؟$-$=M 6K4e$ێOZd7$KCJssEY[7`mh$JRI$I$$I)I$JRI$H'2u' :JR=""QT)5$IJC\杧(UP*sRTI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S_ﲹw;<*bfot|nDIpsRBJJu LyOLՆ] .)):H7b2$/{HS43nɟe%3If9D~,v]>Oxpt$!Kog.sHJ[@?sTJJH0[{JfD9$$(6m"93̨S =%%&I6\%'pDkv"A$*qۏ0\g&o.BJN $G!JM&ƴ8Sq~:}S4uw Т^[n3Rq`(*M{&II@ח{f*4H;$PRT7_l|6+6? ))*J^]k@q?Вs֑T_@7Gc$i!RL I?E;֑JJN=Ix$ )"H uƴ8Ғ$Kht ]ii'$ =ׇ{ZRRt6? )/#?3JfNցOHOsG%&IB_8'B\O4+BJL;֑IS`())"HtI?jwԔ$+͢6ď =nO?Jf.{Z\O%s֑})):J/ > 4L I?$:5gcN` Q#$IyI*u'BJN θ`i#4p7Gc$i OhMkyRRRt-/?1 jM{$JHukv;jOG%%IACדk@K$ x>ƴ8Dyxfn'O?Jf;GOEοvnIICHIyIRD+u'B{p>bGiIIPn'IP .'$ Zýin ԔKK}`~BIx$@PwnqmIIB#`iHV^[d}S4)u?+p>ƴ8IIPq~N| w JJ~q;{'D JH%{&Pח{-?g2fRdI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S endstream endobj 445 0 obj << /Font << /F20 12 0 R /F8 6 0 R >> /XObject << /Im53 441 0 R >> /ProcSet [ /PDF /Text ] >> endobj 452 0 obj << /Length 2847 /Filter /FlateDecode >> stream xڵZ[s~ׯ%P+B{:Mg;ͤiL3SX~g/ @-):NXvG?L 2Q=BJJҖ>Ќ"t?uRpxU I ѭXgxS'KkYBHIi}N{ZgضPru O]nA|QE!Q}ƳN.>)H iv. *lE !%>̐ODJr N\V.F')HQ ޑyiL,(ڐ)p+B&UCPF>M 1[ʞ$룶\ IC)gmڜOE^ZNqO/zԂS(k2.h8GBC5aƱp;آ0PeRx]+޻FquO&q2;@R1V9umGx?S?*8!oXıXs*@2bZ =̴'Lb"67~55l }O[H96DGactƠ` FWXjTdOBWC~uɹM2"p1|~i]hO 0xme"H GN%PLdQjZSu H"?`B2.`TDJe+_}^:Y[:&̀ Z)R.t69 7Zf,M.m|rOf[ C -<+m,ƾ[Fmsԩ[^(-sZψjƢQK:SY|TNjDH!Nzah?%''CxkB_~)pz&fNj)  gx6h:rS1]U"w݅6v2  ʡة-h3ZM6*(a#T~IA) G=gkΆm݇, &wW/vY +-!A]s1=a"pX]RU(N l*Eu EYBQaAx 2ĎrGTmBS(mӠH?A}zͣCe$bj=䀀䨂=-8($&!Pdj#ؿuOWtT#T]_势"?m[CSAp -4|>~s\Q=~! Imh3r.kc=xܾ7n~Y"C>h6E1xlT˟eD:ߦ^~ dTrܤOay*PƅϠH:o"x@jԪeS cElj輾5=(ܜ/۟ZYwM0HwuMOδ=o {^#Τ(2d}~֢%pKP2/uK&9+99 PN~jOhʛă_SlO@rCf-4=B7F4Z9<8Ԯ4Oq}@XjIޅ{> endobj 450 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F19 7 0 R /F27 41 0 R /F28 49 0 R /F30 40 0 R /F33 42 0 R /F25 48 0 R /F18 5 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 458 0 obj << /Length 3266 /Filter /FlateDecode >> stream xڭZY~_18f7/ `%1`D~Zf護[z(hU.,>J+ڔDD d#`$Փ[2LMS'^ʱ^זOC)ڂmV^y+bgnE!r z$w{lʂ@շ2װUj4 A[X!-NƞYOC{[:y6уpQ~y0wJ.Ju[ȂnqJDG-E3 GxJ }ZeH |}b=0gn.O U :hg4c#k}i}d,J0׳;">\SO0B `D1cB~n lh 4s@DBזla5oZfb|bӡ џ~w,hh8ACAKZ,xdDct\Yw!XI2.[aGieEf3l2=W!ԷkgD ~䱭p">&*!Snl#` gUA8lcg2GRKw{ųg gT 1e>R C}L e6r;bc!7t?yُboB8rks- >%Z.pUpex7`D<|o?E-.㗉)~m] A"1sOb`ʌnϥk[`juX:L-*%TJ.d>*1#0\L );@,1&Mș 2zqxiU­"_cQ Tbޅ7-5="o:h c"{Rg9#|i,|)4r ץ+1vj`Aen'˾ҋ˸d[ d)L䀆\+V!f+JSk oNJé郎4H,{t]p῱u 4\<7ѱ0ΘPiINyQe5ܩh4'm cxϰ \R@%MY+HgX:B+$*L#G`ZhL xOݒ`yɻ/s9E&m\* _pVۛON(VYj L ݩe;HzN a8ggp(k )Q4sB票q+z^Ab~̈́1~+; 6Šs~N]z~ktpvln#͹OV-R),%ow]@5^wt,~l YcQu>?D]PNS޹łpd\gQ|pN%" -sHj8IHoq+p\*152)/T>zj!sg L` %}9QF.qYCh1\DŅeH(ts`ջ~r{ GuwRCkT.3 endstream endobj 457 0 obj << /Type /Page /Contents 458 0 R /Resources 456 0 R /MediaBox [0 0 595.276 841.89] /Parent 453 0 R >> endobj 456 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F19 7 0 R /F51 33 0 R /F27 41 0 R /F25 48 0 R /F18 5 0 R /F54 39 0 R /F21 16 0 R >> /ProcSet [ /PDF /Text ] >> endobj 461 0 obj << /Length 647 /Filter /FlateDecode >> stream xu9o0w KA OI4mS4(d-6b+Dȿ//ɇ6;FP lp|s:$(JRz!b&(*6c/iSPJFOvԻ٪&z3 FOjٷmag>΀AA]=%.q II'L0ʃ4ed*9_<mq{@%p.> endobj 454 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Noises/SvgLC.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 462 0 R /BBox [0 0 627 276] /Resources << /XObject << /Im0 463 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 627 0 0 276 0 0 cm /Im0 Do Q endstream endobj 462 0 obj << /CreationDate (D:20080812182515+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080812182532+02'00') >> endobj 463 0 obj << /Subtype /Image /Length 18511 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 627 /Height 276 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;s"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TC"j [iq15IIIB&Ńo>oQT;)/ftڙX>s;nXߘ%ޱ/JnSힶk_ c S$̏YvR*},ȴ^{+BIcL3En_NXeE\=^a.=45ɖJvXu̧]6͇v=ղKkK׵M!6lx ɭ$rk`O]ޣjHmsuSXBJN2oxy:1)S{/i{=ug))"H ͥzA&$hoŁ5Ǩ,;=:g>] )*J `,pv ;P.ݱ'UhII@2_eV<8"Ykkpqn5sKAwNEy重|=FTNm"Kml6Of󔔝$;e9c?umrze9׆$ )6Owk{ݕU {l$VX>$m`ևmѱۣ|B$1YXԔ$ 3i[i#iMa w\L{Ƹ!{/is?HV~Ҡ]gn4qf%'I úcӭqФ˘`c?@wN]Wch1>}cBWeC=Ǐ%\[vh.hȯ"}1`ϩ[ke%%I-m;dSil\3lyʝײ<?UcG#tBJf 9UKXOU55aʹݔRt3{È1?s70<c}g))"H ͥzAi6YR"}}xmt$(2>YL9kCwN]Wch1>}cBJNuPm*ck+pql c]$i!Q^Db'ԭ5simmlm-mJNײ<Z |j$I)I$JRI$I$$I)I$JRI$I$$I)I$JrM^Kӱ7}x{ѯ}i3??ꚼ[Esx)$VXI$M%GVA^A.8,i'伣"o&/HI*I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RoӍۇ؟š 4r,$u;3_RRdI%)$IJUkZڄ]Kokm yǩl?2nII>$gk*}cH9Aؿ;2˟iy!ߛKLI$PI%)$IJI$RI$lރMΊ*Hьj*?O`Uص\>nvM_e/eZI~?_m?_mi$xARxAUSWKVIM_e/eZI%5~?_m?_mi$xARxAUSWKVIM_e/eZI%5~?_m?_mi${kL@S!K] 8\2?gSW|a7(cck+ߴ5i] vֶOLc[~.S0"-6}u\4a>4~ٓz;?=}~v,vYp{=o= s'8RrVgREʋ궜C"ok6 ;^_?}nا+h^͐5*1nvOb/M^5nֱktS>(cWTG5|}0CsH pBuGLwyY_yVfRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$k%2*`\Qk,}o581ֿ9%3I$RI$;%_w0 K*mm mVk] II>$gk*}cH9Aؿ=KQRI$I$$I)I$JRI$pރZ)XZkVWT{"Ůt#j'[u_U/d+ΫJI ڲURVO·Jj'[u_U/d+ΫJI$ڲURVO·Jj'[u_U/d+ΫJI$ڲURVO·Jj'[u_U/d+ΫJI$ڲURVO·Jj'[u_U/d+ΫJI$ڲUT_m[M{+ݺ6LXO.W^c?ԒZ 1^0]6*suOUkDՃ4%"(tyC2z3%2z3)O$y/y/{+ڟg"~uJ2iŤWc^@! iCZ[fG ̀Z ANz}ǰCξ<?6W]պZǂ5AT T[[L{d5xq*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRT-M#Q1Ţlix)):I$I$*Zm,=}c+wZXg`7rJH#; [PqSFwȍ$ZzI$I%)$IJI$RI$k:8BzF.$lg c_WloT=W{bYry4^q!ʗ67?yUĐKObz_cC\I%4^q!ʗ67?yUĒSObz_cC\I%4^q!ʗ67?yUĒSObz_cC\I%4^q!ʗ67?yUĒSObz_cC\I%4^q!ʇq~.9m,u *WK9%6^c?ԭ fP=:k7 Q-oJNKgSKG,I*:Z?du?O)KgSKG,I*:Z?dz,yXϖQ񂒛I*2= ZhI8h+ )בSnc5A ev},͐MV 1ɯ|;8pcdX^qrd0Lc8~e%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$*lE,c*+Opuϸ5%3I$RI$,Eb#Ʒ?袪޵3gov3䒛 X3W>$gk _I%$IJI$RI$I%)$IO}VgP=u-o\R@"ȣ*_T=W{bYry5}>r( z}OQl?zKW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI% 8X@}2%13/oC_^47'gVH'⒒3m}7mܒI*ggb_ggbJm$3m}7mܒI*ggb_ggbJm$3m|rII;`#b;^30?40y?r*u_L|2Z]Euip"FE9,Kvj H4i(uY t< }?&>)6V0`xqrM۪gmgkF($j+ݶ]U&Fû] $H8#!ZkΥ =ђRIRg/ UhcNo%7RU~ϙrľϛrIM_ܳm/ܳm%6U~ϛrľϙrĔIU>g?>g?Si%W,lϙrĔISaʧ2eZ$$I)I$JRI$E/엺"t .}dVl lx~7$$JRI$xǬXF鲺1~[PXoccHSFw?-oCI$$I)I$JRI$I$$I)ط8eiU=ԒǑs6 }SE_]esGa&GͿ_dOVA-_dͧH%Li$&GͿ_dOVIM_dͧH%Li$&GͿ_dOVIM_dͧH%Li$&GͿ_dOVIMneck͎mW 6vପ7;GZIM^%z*u[j"ƀ}ܛIU 7?)}ܛIU 7?)}ܛIU 7?)}ܛIU 7?)}ܛIU 7?)}ݲXBJm _@!X{p= iVPx~FR?n^c6df?$>GV7)w++l|>i(boks|/7K꺓:82IN 79±wNjg}}%_ܑmW:O֎QZNlcgC2S,36~r| LF&F{I]sw~Z7oW:s3q@:x-Ht[k3]ēԹ5)[Ip0Zů)Q$z?ڰW(VcTr~Կ]jI/jOw]j~u+M#"=Rp>KעL_zc@VL2lގS`75Y=ZDd4*ɟYCI)I$JRe/Eσ-c5.cװMW29%'Tr#; [PFb;)m?< 6 p%:4At&ԯao~NX=d 펀6 3}gA^zm9첷WmFk^k,kpt6 ;n#sqn8,uZ/VQ9TM xӛU-674e5`Dv^]F)[]m,cnn4F.5>e7gb7}8WbmYišaȉk:5VMα .4:Uoyia h SԏPRƱ}gRU6ӏ@{_Gf^ǼzmYT3qj®5f뉝eLJ.m8<{*AWUsC~}fJ.M6cW>_k춿S涶}';=DG[/MWEv}Ut4o-&JwF1.fwc0ϰfU'Em is~l8`̳?`mV4YUdALY_gRs*{ln=TbCcSV;[,s%Trl p]p&}` [v?UK'*lZ2[6vM_]REUZIgcwKv?Ui$EU/]USWv?TgcwVIM_]REUZI%5gcwKv?Ui$eӹmW{\UWFwoxZIM^c#?ڭ*qesCm\KaRRooIM_6Dgcxo[Si%Wv7Q/ٸ6DIUooKv7Q%6Ugcxo[ooIM_6Dgcxo[Si%Wv7Q/ٸ6DIUooKv7Q%6d]q4:? v7Q/6DԷZm}Nmo·WE/C=U;ԏ#ӱ@m]䵗YMZ⒙MYѵZ[pNpR^snhV[cGRs~jǥ[x<=>ŗUK<5k9n3+ӒR}auזq o6m8dw g]ʶ524.Ρc:v!}v1qsAwpY o]&Ym$ѽCFuINI$-gʪL1o[UؿG䤑q#w;)Yk+sY%mxm鬳hf=+$̮ԁkhi"&7ƨpm<^;_P+SJoN)?l|/9OKxƾfymK^=FJ~|~YkkK_5=ǘkDMvPk!A?̿!xIh4O'}n䫫y Q]@mm%Y1 c;/E#KE)yOcGwf_.=*]ŏ~CU]kv7ӬOi%7oſ֦_[p]aZepe5iiS=;Yf7l׽v;흀I$!n43" s,ɉm>{RReOZ+X3Dnv/i$sԒI$$I)I$JRI$I$>tgA}Φ\I% [_LLȬ,L~EMpA{Ac<ַ.r.[7B;%eG_gģgE?r~*qނV?%?)~izʧoGܪzJ[_LLȥ/J?S*qޗr)o}3Qm3"쾙q(OGܪz_zʧoeG_gģgElEC%4)7&+mLS>> OOZIM\?aiWnƦǻ=IG_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙q(K_LtLȤJ쾙q(K_LLȤb@xUeG_g?dgE%(< -e͹ÖS6fm<,px5Y@8 SWgǏ??sʵ&3mm4X?N@qZ`HcOvu ۊݮ,m?Nn[kvt uNEn9k8_5=7☳XZ]{k oZ] k7g)c9O<$6Ůuv=D ?289Z6V0SX>΁?.} 6%m4baUg}=h;Ө9%/wy 5*+:ÅI)I$J|ʙb*U3?ſnUW3bnk5fhmmy}vΚ乏e8-^uqphi! z)[5oQZLA*ѿ:>'w_|>/:?R?%?*KxƛOM{K[K Oq~ :wNǷl"?9!)08x'R`r+2O-+AI%,g_sםw^7N\56l1w륕Ƕf|CZ>MD@Ǯ_m5ZU6tI%)$IJU_c)k$8KL~뭭J}̡WmcrJH#; [PqSFwȍ$ZzI$I%)$IJI$RI$6_?~n_AcAdž3[Yry663Gܖ~XE/XE63Gܖ~XE/XE%663Gܖ~XE/XE%663Gܖ~žF. "~()OAumU?ZIMo7WIuu"mq:gˣgIZI%5jtG_:gˣgIZI%5jtG_:gˣgIZI%5jtG_:gˣgIZI%5jtG_:gˣgIZI%5jtG_:gˣgIZI%5jtG_:g̣gIZI%5jtG_:gˣgIZI%5jtG_:gˠ O$jɿLJ ["k*yK&svGcWi'+jF#>sL8 a |%'5?UUɭkGU|1Q"Gf>i-f?ױZ"+a2N2"VYe7K,vhHƉ)>_xq,Cp4nGPx%ҡBNLCzٗ504-"!Dx X+ѽōgd{@#AjD%!-66>Eֱ 6 h |zKiaԸ.srI[``64i%)$IJI$S]W'Y;N}'?ܽQSacB1ѷY\dIJ1-6O'/d}~ɍr?b4?~͓W:=PVL+Ѿɍr_dF߹: 'qInrnYqq1.2I$\u(RI% /1KX$X/bytRby:7lJR 7m#x`>2?V=8\=HvfS4I%)$IJC^q$'{eVXʨ24k@kZ>DV5f۝Nxk@I(4e#VchgW WoPO7 `i{9J`౾~k:?2~eO'%p֟Aov:q5%1,u옮/˿^ kx۴1شWs1\E@-gSˤƧ4 yGl6 110JdI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR 4r,$u;3_Q1}dEVqIII$I%)*[ltUqc+d;N`F#q8|D$X3W>$gk _I%$IJI$RI$I%)$IOSE_]sUoAhĹSXik}#u?]esGaIU^G¿_kWOA-7^n%kQ q1.WSW3FwxZUs?`դ3*5 ,n=y I)tבp:.$kWOKy I)tבp:.$kWOKy I)tבp:.$kWOKI)tבp:.$kWOKyI)tבp:.$kWOLrcۃtRq䭤b9n_>NKᏎ%?E{'%p֟EM5aT,|6_{<6CǸľǟk@|4!KXs2eSOia\@!׿Cc4V64lx<9;Z>h!0Z82czoþF@$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJPe1KZ4:Ymnxyֳ$I)I$JR].ȩaj_ ej:k饯6G;rJl*}cH9\Tr#p~{I$I%)$IJI$RI$I%>O?-uVPWM.o\\Hރ*:ǣn| 汿(omE%%A^%=z^ُ2I)7;CnysA@O %8mҫӒR'~/I?__s*9$coľc%8mҩI?O}4mJ%8mҫӒK?{ 1K?_s*4mJNI/d+/I?__s*9$coĴz. oMø׻1l|Qn^gҫ/oC2QLJcKsCoS?VIM]O1Q-O1QZI%5v?ߣD?ߣEi$~~SWoS?KoS?VIM]O1Q-O1QZI%5v?ߣD?ߣEi$~~SWoS?KoSIGҊI)?J%?J+I$ާ(ާSWoS?KoS?VIM]O1Q3ihN[cs~*I)?jI$s%GvVHo"X hPgV;Y`п'JI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$(2ϥc}oM]/tE+):I$I$*GvZ3f;mV//{k䔕$IJI$RI$I%)$IJI$RI$I%"ɠd[Z.c$rl C%i$3PI/C;h䕤SWC$ ?VIM_C;h3PIZI%5} ?KC%i$3PI/C;h䕤SWC$ ?VIM_C;h3PIZI%5} ?KC%i$3PI/C?h䕤SWC$ ?VIM_C;h3PIZI%5} ?KC%i$3PI3s,id5;c]ӧ[I%1cS]m ckZ)$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$EβM]oe:>\nk{ )I$I$!dn`9hq ncy$kXoI{^%ۣtR;} ]|Ɉ$WPzO߈Owڤ}VGPm$i?)^Xli?0JAo۷@TYyt[gv\঒JEO 0ޜQ{KwmQIHLޡ#ڥ_oѝ\U gyp3$/nV3{~+~$;;^鸻t}Чw}at@"I)>6OIPg۽Aꊽ>K~!$H8#ǭ{xaM$n?hƞq3 n ;o.#[l˘iD$RIH?^xgw`}0#ڊJa_oѝ\ JCw7c])}X榒JEOڤVdpQy*MۣIH.wJ_oMDI% g۽A 9iv+#?;$}B*I)/vV{y…?l~* 6?0JAowTYyt[SO;|SI%"0~oNO߹GW-.ݶ~($W} >UޟNM$83B{ٸ}V[.~A$ޗo?)T L$9ޡ^鸻t|޾ODI%#~Ѱ:t$GAn*]ۣ!$iqYPm M/vV{yaq3 n ?]?GI%0EN>iLӓEI% {KwmJhp{TS mۿ_n=qPg}tR׸}V[)[olXSI%!R~+I}>wIH~>@TO6N$$3ާUΰ]>RJ1($$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$J endstream endobj 455 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Noises/HistLC.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 464 0 R /BBox [0 0 632 399] /Resources << /XObject << /Im0 465 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 632 0 0 399 0 0 cm /Im0 Do Q endstream endobj 464 0 obj << /CreationDate (D:20080812182539+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080812182545+02'00') >> endobj 465 0 obj << /Subtype /Image /Length 21110 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 632 /Height 399 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;x"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)%ްϷ lYu&Ƶmm}czSsvL`޴:?*{qLs2Ya e&餲 >}#hEޯvlG>NGܗ֏}c[.͞ӉSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)㬜̺KuUTv5snޣG`hzVOUc܊Q-5?, VEդbIO???h3Co{Rv~ۏ~K?~}^=I%)sW_۟0c({zˋm$et+;'glIL`t+ȥn'_E_I%4?`t+ȪW3h'mme7+a$د"}$د"}$د"}$د"}$د"3FsM4`VI)n'_E/+q?*I)n'_E/+q?*I)n'_E/+q?*I)n'_E/+q?*I)n'_EVW3z~+o鸾f+ݻh2el$:VRد":VRد":VRد":VVWz·cd]{KWx]"w!n)Ov2Gg^'TgC)h>yLد")?1kg `(~bI?`t+ȥn'_E_IS\د"}$د"}$د"}$}^͡ּW;Mr6+?:VUSCAOb_:VUSCAOb_:VUSCAOb_:VUSCAOb{:zn.Zv\_x2IM+q?)~?[lWWIM+q?)~?[lWWIM+q?)~?[lWWIM+q?)~?[lWWIM+q?*//6t]k+#tSCAOb_:VUSCAOb_:VUSCAOb]qq?ŤJsXEg}]LxE%)$IJI$RI$I%)g}]LxEg}]Lx)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$\>:6Oپ[uٻ6:o<'rB;&r;K[}c=Puoi9Z;K3[<Qܺ$^I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$Sw3 -w3 -I%)$INKs::08n:ZS*͢MS·WUSv?h~/[gSߥH+X1e?Ƒ[k_\XP^5096B_zZ~Ց?}}oW[>R'OIM_WgMa;쾓o音}Oz~#?펫_Iپ=}KqV>#hg?Eޯڷ}INGڗާ֟d}l[V#ԉRSfzK6dlm MlyYW???{bJtRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)yw2YzEe1Kb%Zb?w!n)\|1?eu;Kv |W?Gӆ/~}r~ _Z5IOcڈlcN_U?-ߋXG)2>[<Qܺ$^I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ@2^k{m$we6k1$}\K?K=1h﫿O=h$I)I$JRI$I$,﫿O=h﫿O=%:)$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$v~Eyw2YYb%W|1?eu;K_Is־~ۊS>W⟣?V_9}W?Gӆ/~}D6~r~ bo,^cN_U?-ߋX?]TIg/RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JRI$I$$I)I$JRSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K˿o=Wz//uKя"[.zvWQ3Ծ8qJė=k+_??~?|o)?1kS8bѪO;~Cg/p/xn_Z?O?^SM I$r$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$﫿O=h﫿O=h$I)I$JRI$I$,﫿O=h﫿O=%:)$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$v~Eyw2YYb%W|1?eu;K_Is־~ۊS>W⟣?V_9}W?Gӆ/~}D6~r~ bo,^cN_U?-ߋX?]TIg/RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JRI$I$$2ٌU]U[ c\IDgW}^ޯetsG%:hp! %=BKw?n}#ퟶ>O>Ϳc;&}KT]O۟hg폱?oϳo?ɟw%=Z},j-qvMb|%; $JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR?3}_Ǚ0}ޖ\2[s/^fhzC2ᘱVk+N~G=;l@sxg?o=˨?r㷞dy`#̀6QU$_ O]G?R+\'쮣g|q┳>W⟣?V_9}W?Gӆ/~}D6~r~ bo,^cN_U?-ߋX?]TIg/RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$"{;9򤦯O'شVwOtXE%)$IJI$SFއnFf`s^2_Mn9ޡnn_o<ܿIۻ I)'}r&zGwn<%'}r&zGwn<+i$,﫿O=h﫿O=%:)$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRom^fhz? [=P?r㷞eCߎG\Een`jʯ%Zb?w!n)\|1?eu;Kء7_Nj)?1k'??j!֏S8e}TķG~/ybp/xn_ypwGrꤒK9zI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$INwO'شVwO'شRRI$I%)$IJI$RwO'شVwO'ؒI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)x7S/y^ 3?q4 ?ϨCߎG\Ee?ŏ!o#n.\2Y7~_GW|1?eu;K_Is־~ۊR?ߏP_~ _Z5|_NjG)2>[,~9qro=˨?r㷞d~_KݕC/?R%Zb?w!n)K?~?C|o)?1kS8bѪO;~Cg/p/xn_Z?O?^SM o7WQ&1 ?2'*q_~]G_,8epcPޤK9zI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9W???{bYW???{bIJI$RI$ 6^k粲F5 {g+ُ>[}x%6U?ktf?ۿ'[nuㄿktf?ۿ'[nuㄔYW???{bYW???{bJtRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$3OGнx7S+ {>,~9qro=˨?r㷞d~_KݕC/?R%Zb?w!n)K?~?C|o)?1kS8bѪO;~Cg/p/xn_Z?O?^SM o7WQ&1 ?2'*q_~]G_,8epcPޤK9zI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9W???{bYW???{bIJI$RI$5alſ+*+_e8̆RX[؂B~>G?l}}GgǺ7~I%<۾l-}o3Z%~>G?l}}GgǺ7~I%)c\fw>Mɏ8;o7z>pwO'ؒI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)x7S/y^ 3?q4 ?ϨCߎG\Ee?ŏ!o#n.\2Y7~_GW|1?eu;K!qѳՆV7ux]3' ?i?Tm2=1;)#1ˌptW zdȪNv/^27H=4cz#۲}LW~!v}3ޏG3=8YyLe!־֏S8e}TķG~/ybp/GGމ~6kŦTZ]UmcfcO/$^Ŏy "e[Ӂ9?SJ?&2gy\N7+_Ӆ +^$YԒI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ Zi3_S~s?":I)? =1h﫿O=h$I)I$JRI$I$,﫿O=h﫿O=%:)$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRom^fhz? [=kbW2d쭍ket&oF-ǒ9ί qԒWGMUOM}N=a*'6N_@񘟝+rb~w/WælO@/[O)_Yύozqy>mR|cՏY'G)2?⟬+?X5tQW·?kOT龿?7Y;MC;g=e2{aOT龿_>5yL`OߤqshnNRmNcsIUFtG\e@x%($}I$ZI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9W???{bYW???{bIJI$RI$I%)$IJYW???{bYW???{bJtRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RoKmTk}v0mO-s\5c c|uo^[lf=ɵs]k湥AUg.:Ə(Oգ\u?oBbNScsь'ģ*'&!GMUOM}N=a(ijw]/K_֯Mۗk_t/Z7n^_b_8߈]şL> '?X??p>⟬+?XG)2?\O|+|CN7+lv?8o?d;sb'>-9qr3-9qr(<39?KRI$I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$}]LxEg}]LxE%)$IJI$RI$I%)g}]LxEg}]Lx)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)s?\G lm^>闚?:?+ufLbHfq.hBZuvw֞gM8ӡ՝v5[Z1OzzK{zG֟Lu!$e+QÜ|O(Oգ\u?oBQt?G?ޅoΟ#\J?obkw? r4ߟ] g#?ߗ]>񘟝+rb~w/WælO@_?R ~!v}3ޤ"qN֏S8e?c#h?XӆW~??ko~ׯ}%qؿ͟.rMb6~?ܝ_c_p?ſ#:#n.Y/Z飤d ?Co|FsΏe#Xv >oB?T_ng"YkXkKAazVUXfe;e_cs4`?/)eZ1Ozz80v0c"=:&7N&>q}6^y hT{|w]' cs-1n7I$I$I%)$IJI$RI$I%)$IJI$RI$I%)$INwO'شVwO'شRRI$I%)f7>Σ~?Oʽ3qSb̖XCYsI|%i'dQ>MȮ]Oc"@um\}}ZI$֏}c[.͞Ӊ4\ozeٳq:r??h3Co{Rv~ۏ~K?~}^=)wO'شV?*GCv[uw(INI$I$$I)I$JRI$I$$I)I$JRI$I$$_]tzwP5dӷ`27wH7Lc)$j5tW/@O aWzu5۶?k;;IGefO9!\'7R!o}^_d积7[q}iW?b>>'w]'g.:Ə(Oգ\u?oB_OO]#\J?obkw? r4ߟ] g#?ߗ]>񘟝+rb~w/WælO@_?R ~!v}3ޤ"qN֏S8e?c#h?XӆW~??ko~ׯ}%qؿ͟.rMb6~?ܝ_c_p?ſ#:#n.\s2Yt?.oq9_'~_[q}iW?/)eZ1OzzXO\>'w]' ??VC|>)TI)\$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI [M6=ւ{2X4KВW???{bYW4LZ))I$JRI$I$$I)K;'glZ+;'glINI$I$$I)I$JRI$I$$I)I$JRI$I$/?ޅ,ƏE%oΟۋ78 ]'gO˛tW#/n`k)O>/H2כ_S-ϸ>c |jI|O(Oգ\u?oBQt?G?ޅsΟػG4ߟ] (i?ʺ@$G/ڻ|1?;WK]/K_֯Mۗ؟tl<7a/?g>7돯B?,gIV?Eg#p G~ b~-+E_ 7_9?SJ?]N7+l;ؿ|IFtG\Ge?ſ#:#n.\s2YgN`k)O>/H2כ_S-ϸ>c |jI|O(OկWE/~}|Ss?}ckO.H+5~c oXEտW~{goLt!/IpwQ%}nN0_Cr=Cwc6lGM~Ɯ?Ttuzj^!uz $,jI$RI$I%)$IJI$RI$I%)$IJI$Sw3 -w3 -I%)$IJI$RI$w3 -w3 $E$IJI$RI$I%)$IJI$RI$I%)%1Ӫk7^Os,vXW?[ZTdzvV~ɝ@Y#$rF|&=;|?_Y!}8(Gaϩhz/?ބ|U|3K?.oq9_OoΟۋ78 F_~7R!o}^_d积7[q}iW?b>sQt?G?ބ??V3?q4 ??w?iq(i?ʺ@%Q~u_SXI~_w??b~w/Wæ5/^_/K/?/yJo.^Ϧ|o{_YύozGǟ8Z?O?@cN_[Wo!^rMb6~?ܻo7Wrw9kpsΏeFtG\Geϗ@~7R!o}^_d积7[q}iW?b>sQt?_@/⋤_Z )d~.>c oXEտW~{goLt!/^i7_UrVs|1efS*Ϲ+KN9>t'ҒB¡9WK#}1% &\nгon6Qȹ󲪯t k0'ZoI!I$JRI$I$$I)I$JRI$I$$I)JRI$I$$I)I$JRSI$$I)I$JRI$I$$I)I$JRKU}4` RzJ7>mi}P~ts7 7=Yݻe<W!8d17;r/?g>79  9n_5_J/c#||3G~^#0g4 ۗ?Y?oB9_φ? }#[3r??:?+uI-9qr[?/_S-ϸ>c  2?C'==,_'ڮ.h3OGЁw]'g.:Ə\/..%7W_1?5; ?obkw? 3v`xOEjtz?;WKe']/[O)_Yύozqy>mR|cՏY'G)2?⟬+?X5tQW·?kOT龿_c9?SJ?N?v/1/c?.oq9_OoΟۋ78 Yo?/_S-ϸ>c  2?C'==,_'ڮ.kQt?_@!>lv?XEտW~{goLt!O(/l1K<8?k Ju/z?_%i:vPΕ_#C7#C7gVrL_^i+o"'W)Lw-,xg#|;I"ƤI%)$IJI$RI$I%)$IJI$Sw3 -w3 -I%)$IJI$RIb~W7`cS`z6GXjJvwO'شW;о}]]:Oȩ_%=K+v}V˞TZt|ɤU%;>Oتk/eNu-?Sz=?~䤐 [פNoWcP? /c+{ie3P{; z4>?8̯ⲛ 7Z] eŎw /]q= Kfͻ2良 M L`e.5{ m}muV,y kZ.st\=k:\huWKEM-%=5ZTmad1&9uOh|J@ذ@\2к}d}e81fENs k@|J_= 误,c39ՒI=}j?`5ÐrjMőL],<23.DZZBm{ k nbQNf+ё[mF<4À"A8ާu6{5u-sH0Azկt3:%/[["J2$c1C+3|Cm➏!W}]'_y\}7bFUM­,m8C+HW~v6)9p5c}dGK>R>^_Ź7;r/?g>7=wOO8V75s(*n!&$Dr慠k7o׵lp)G軗Qb_ ߿g_O_?}aiݳ^_?Y?oB>}Ym,w0욁^wvoޡVE/4춧tQKL9Bvo}MzK?.oq9_މ?[uA79WbΣ.{$򔿛` s/R!o}^_d积.G}bq8V7Ժs@}?իJ(6[fC+59sxkZ$|j2H?>Mw]'g.:ƏTW׺]XƱsI=?oŵN+p{LQKL9W>xrC?"Y#F?4ߟ] 㨱߿]V=Z0Kmeokbxi0}KNpjy|X+r⽃t9?̬f}OC:w.ٓ2z{U#z kqy>m\ud IPϨYx[uWUl7n{4\@~,DdkHh?XӆW~?'KjU{5ּ4!gG\kQ?Uf'*q_~\v/g˫yyYqþ7 r KIUc= ׹#~ g'OAFtG\Ge׺ &5.&4{b:GR~OZv>bvB_p9˿ӗC)O>/H2חӺ+ʧc۸ێcs'W]Qհl,W[2jsTֵI)b\$&.k@Ȣ5s0I?OՊYgWk!5?顄TOrƍkXEտW~{goLt!?z+7%{5ּ /_'ΓVWSáieCIw cea~;wLJ@t.!=gP+,gv_}_.ymUdV/ד?Yx[uWUM7n{4\9)L~+yR)_5__fX9Tޣ=>Yʯ=5YpX[ZTz{~ljm`òj>o^;; 7oQȫ"v[S:(AB~Bc ~KC1ӭ8d4Ogk+v[ο[;eW3q繭$z8@{"ox'㎃jGۿ9M=?Jٻn =O98}%.Cíuk0#.5(=We}svO\;gNE/v qˈZ؎XIqXg^U82e 2 4Nt/bYvM@e CI u\͟'MV>u6ŤZ`{*s\<^P=[ [K8 "5 K+v}V˞TӷO՗|ɨQ%;>Oت>X|Q?S?Z`4 S3z_\&}]LxEg}\ ^dj<JRI$I$$I)KVٿl蟴zh~_ٷ:LI)I$JZ:I$:I)I;Y/[rqi^AٶƵmV=Ƈ<:IK@J$& IJMtRƉTzfn^%5]vUf0K~@2)M=Sd}N=zgsvX;e&FIK@Q]&v14~E_T Ǝp; $$I)I$JRI$I$,NΠܧcf66}'l=׿ Ս`ۨ4RI$I%)$IJI$RI$ endstream endobj 459 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F24 17 0 R >> /XObject << /Im54 454 0 R /Im55 455 0 R >> /ProcSet [ /PDF /Text ] >> endobj 468 0 obj << /Length 3272 /Filter /FlateDecode >> stream xZߓ۶~_!?Y7913~h:ԙi:\ә:yID^IʗXE@X,~з7/~+ӕKfua%2tIn~}qߗF)Wcʶ滯+&.uP&VU͋hLWb6Nҫ/[pnW*e(V?ۋoI|BDle?>d.D;5HB&yE #Ebݸcè$MqrnN-+ᆪޕW4(7-h\xVS]}hWĺ+[*ޞүa;*WȖiǒUFgzK*d@S-Ł_fiz-~F5ϨwQÇph|cU߅S[n~|v?] ~ ׷~sZ&ZU]VЉ$wzL[;ʏU1tRk:jX*KdnVVzf+86b)Q{2j5;̚35rL)V&dgGMc%*˓qLKqɓ5g '@":<䩄xMG)GS5єrf"6FRgm^[k12ƭ a7Tɭڮ/o-0Չ߰6Qa%x$oNJq|u8S?wJdb!LG>;`dtP`&WU-dBޅ"_G߅*-q9',¬}Q*n "O[+d7! e}ed8&&5s3ڑK{rb;T)wmz/N q-/OBAĸ0K$XЫ,5ӟdK2KR>(%}I`޳[(`DY/Nxĸ bro%Xwd*%\TQ%UkRCΜ$&qئ>=`SS'bEI"JV5WEz|z{O(EQ_ ^Y3mjĸ2`', )XndɁ)1#8CfX`&.4972'5$N-Zbn1z&vz88LuCrR;R.L3҄1 D+ aU'ַ>Lԇql3U82b`%8̍1:@Y?H \6B+,W'"$s ,:~Bԛ3l=Ӗ^L7L܄h)æ2nM-+n7(M>38ރ;YDZUil>'} };W# ݆nѢWM˫MW~ۢۦ'h bj)9d ˸^I8RL̹4 1xa)+ߜĞr~/&z@R'SzLn\DSJdf3_(}캢 J{WZ"vC9 b=]~Ċ'c!"&š-'v6']Fb%躧L۪ P3,,w@@rb!fT#A G,;iPsNN}fxp7.b.+iNU=@mw_~&XҢs0 WEH! V?}80ZicHO`F-NcV0G *d8o:rɁ ŁJ!}Q..9<3l gri2~9_M;ob}W_ qnqZw?>G::)F'*n6)o*p> endobj 466 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R /F25 48 0 R /F30 40 0 R /F51 33 0 R /F19 7 0 R /F18 5 0 R /F31 67 0 R /F28 49 0 R /F26 30 0 R >> /ProcSet [ /PDF /Text ] >> endobj 471 0 obj << /Length 2504 /Filter /FlateDecode >> stream xڵ]s6ݿBKM&k.iNAjkō>u~)ּڹe!HB }suq6g/Dp %"2Y0^&˷+R"(qp‰YZiݾl:pS7Poha[MPU_wHW/⁘%YAt̓ p&"8}%9K&7xDGqEdWnWD&_i8o<MB048j-$ cde²ThG!P4 B,;e$G5IpU0_%)hy 착Ͼۺ+ͥOYfT@2!"bG";*m<`SS[b3y@y#867?>,-Ĥz_ sG:ᑸ/CJ|#z[<,NW,Nge$kz'aCiH) Nc2w_;V2O|t4v.̅- "<)g&FC*f`RO2AA)B 1-ǝ2[_kۨ6syc9:%e4EYlJ Ife0YyAh+eZU =L|?8uLC&e2}4!tۺޠ 44zZwK_0R!PVs3?BdYo"ZA2I1Tx6lV~[vm81t"@|ܫB FgAl,\((z]E?2F^ +qI)2:$FI]= wW+@.]rb:@ hZfGwDZo u'>D'&Tce!(Dٺ?A)u endstream endobj 470 0 obj << /Type /Page /Contents 471 0 R /Resources 469 0 R /MediaBox [0 0 595.276 841.89] /Parent 453 0 R >> endobj 469 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F51 33 0 R /F18 5 0 R /F26 30 0 R /F27 41 0 R /F30 40 0 R /F31 67 0 R /F25 48 0 R /F52 31 0 R /F53 32 0 R /F24 17 0 R /F19 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 474 0 obj << /Length 2120 /Filter /FlateDecode >> stream xr@b!7T.NU*Z"@q@@6|{g@U|E[?\Qf1&,bi9CBHt87W_1"\h{ss&,ϣGzտ~Dg1n!H2Fѭw XNu|(J2VZ*]mXW,Av' d{|lPm=a!ѯ6hOUxPW(4xDɜ)UᆲXoJ\}{աT>F'3A=T J .bN;[Xu 9=v<8c,% TbrEו$Ŗ'zJ;㫓%؃Hs e &ݟQ` H2aFNRU.ĉ6oT.s톃QP(XREDi}1 &R1NIDg$\Th t:Hp/qm8~O?u{=tCJ99g$Y70m{DOK.F,&,~_BX\gKLc!ݱq• koZ_)|싧EmB2uOj|p:&D:3N(X.97%9ZO)")@qLRdDs(G$egOfkN" :Koxs ~1AAm> =ۗ-]cNBAk = TR:}y2 ) ѻ19i/TZ6ՕOM[k\ aSvm]cNư$<}+o%=csxئF70 _,sҼO`塕ʃ8Lut|%}RG3ʮZu}{]KoR>pha5˸vmBgI9-}+s5ۢXb@*,>W&KV#pͥ>ObB˙r vh`%8//w8vӣݱiFC׺j[W!JϛK8v7kW|yl,e48)aZPJ7 lމΏ:Oj$3g-K Mv `F$΢0iCQɠLPS2 &"=Ԗ0Ye)klj/$;껶sYŬ{7mRY?vKWi"ӿ.%)NEsgd, _/$Ug!׋YF}f}4AmKvqp{> endobj 472 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F51 33 0 R /F27 41 0 R /F30 40 0 R >> /ProcSet [ /PDF /Text ] >> endobj 478 0 obj << /Length 2071 /Filter /FlateDecode >> stream x˒>_Abʖ0xsVʼn]孤2;){P@3۵Fx4Fy(QT>IXe\fs5{{לF#L:IlYnEY>Bxeڮ1wN¶j7j1_T4bG $QBF՛4Z޷%L`!Hr& Wz!nR% Giѳi;S v)ZdqWF/ue~ñFVnJQ `_0G9ySܻ}7`6F &HoM#M(́OyZqF8=жx臰eDAmku 4̳34^Gde:%8Z4 g J;F npԥ- 8 }]5b?j dlP4Z \z}xޟG,,Xn25Rߋ={Ixһ_~݌AVv Ӭ}:~9ud5˗!slwuӡD>݆S'%OߞnO},ʠd/;U˱^w?w?S1='tBq ]D$![r*'L@# N9l6<clIO2^>u9IVqyDU,! ]ٟO:=IHfI7IB|>88'G$?T$UlPV03y￶y m;U/53wMwAH.56VЉZP+%pc08Ʌ _Lʿ(IƱV!9KȢSS̿ɠ{6='fEq /f39dI2ȝeJu(c{kZTywCeD/KRUȫqZ֭ 79s)>KqޤgxĩdfK@;өK 8?ztxRj>h >s{$|pu"vMm;QU+f < 4B8NԴ%M$,sz9ܚU $RB L je=g h{xaߣw']۳lo;;WPeWߟlw`S&FT2 eE %Sߙ0 Mѹ~lH7sl1ؘ֣l.}St~fZ%dɲKm -9C|K, ۴Dsǀi?m"ni 䙈4i 3J׮lnMW~q'ltpVzh { f1P jElƬM32l/9wT(}\@Z4qMs N#IXbN3Z 5CblݒUE<~j$ &?7asf;kcK`@Q,>lt酲f W<.yhO QYfK\gϒxt6J5ĂAR*;)!wpDb`lݔ~ݾg1,~ g#m5ne8x·\HccW$6( >Qf?I Z],՞nBqz̻艹 TJy #" 0D hzq n_踑~/BW2Hy&~8H;WTb|cplAmrH%9l㿌XcwI2v"x ie &"'XC`DCyҨTy's_$,~.!ݥ\0N0cP~,9}AӁz <TFG (ǐY*ԩWƫ\ endstream endobj 477 0 obj << /Type /Page /Contents 478 0 R /Resources 476 0 R /MediaBox [0 0 595.276 841.89] /Parent 479 0 R >> endobj 476 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F51 33 0 R /F52 31 0 R /F53 32 0 R /F30 40 0 R /F27 41 0 R /F25 48 0 R >> /ProcSet [ /PDF /Text ] >> endobj 484 0 obj << /Length 2118 /Filter /FlateDecode >> stream xڅX_o6-eD"CI/3P>ZF+"U׽/3Rrp8Ο ֨Re7wtٰCk>x3B\Jufrn~xx(BHʹTYAy~sxŁXdb!toEvɞ)UTU}[Ty/5T#Y+]򶟍ce~E>RXAДkOD&z}ٙ1ߍ py0o.5+ej͓%ŠSrT<`dogov4=oؗ ɪJ$ȒE-,eU9M$2]& T[1Q m\bY=l,X]/PQOTQ׬\mlYC) .:N::JƏR IvWFǢ*rL!B:C` {! D4vmLSrގ5%qsB0Wx~!s8b3=уiIK^B7!6Q5CCm9aW|ȧ"7 (ŊZf.!ol VZ8LéR#>_28RFrR󽽟'{٨roH $ z}wq8{ĭIHt8n <``hC(#s>pUDC)"L1ANG@Gqvho4BAPn:4$sТQO2oqh)=]JFi P~ ?~q ¯hA"_ߤVA4/Nq=Q;e#+vmO$33{PyppBٝ 7p %C .yvmXB%m c<㐑U d/xz|] .0C ɤ8lA |a ~@'J̓L0$R`}vD )쀾C4 XȎ:!&h+2zè'/mv_So>[F]ɥSf01EX%I&4^HǙ%VМF|dQ8M+}악4JOԧ..1Ƥ2JbeWu8k S3H*lꍕZ #UXפxMpBȶ(tvU1b#%RyH(&v:l y$\# # *)֗ךUbiގ@!RD?aVXZ.n* ;t aKO= yxM!d< /+-[{ܻ P6MJ/LyJN5? Ľ !5AL Y]22$?C(ƙ ['{GN=Pu.EbvZ"aGEoA+{yc4!|q}xusx 0,#=%ѻh`mZ|ygxĐ M=YOC4vQ0ω_;>mpWSḃ-3.U< d$Йqxnn'bJp gK_t,?l[XB6 r2 BuӋt J Jqd{hpl`@00S]̀%K}P U\u.mo ]:eToK~8͛P%^q`6~:$>'nLM ^ACKP/TEoɤ( }SZ=toqHG9.K{'`ШJ<78HNPbEpǮ&@XR#eC6ID֔oWHYtF ;T%Ҏk| endstream endobj 483 0 obj << /Type /Page /Contents 484 0 R /Resources 482 0 R /MediaBox [0 0 595.276 841.89] /Parent 479 0 R >> endobj 475 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Noises/HistBMBM.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 485 0 R /BBox [0 0 611 396] /Resources << /XObject << /Im0 486 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 611 0 0 396 0 0 cm /Im0 Do Q endstream endobj 485 0 obj << /CreationDate (D:20080819132123+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080819132137+02'00') >> endobj 486 0 obj << /Subtype /Image /Length 26017 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 611 /Height 396 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;c"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RYa4בCr֋+{ps\%o_eIP/`_WIMx +H%o_eIP/`_WIMs Zej`<Tm, *WK< )o_em, *WK< )o_e5%ktx8$E%C< ~GY_A%7T?m, ?yS}%C< ~GY_A%7T?m, g^eq' )IP/`_WIMx +H%o_eIP/`_WIMx +H%o_eIg*,\CsT{͕'uzRɸRͭdkXkOӆF(sL%):>w}0ײWձdGnzg',3ښX)Jr?\?E>,'<~KN1d||>;BtWSVQVms VikI+`l/#[q*pm<)I V*I$I$ az[$mxYcIJI$RI$I%)2dT@"ڬ»aJRI$I$$I)I$J@rIl5I)I$JRI$I$,߫-o4n0bYW???{bJtRI$Y.Ug/\^G)O>/\Y@yGRI$j)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RwO'ح[M/5;^5S\K?K=1%:)$JRϻt:#U7+!KEMWƦntk+A$j^7z]Rwe={~j^7z]Rwe={A$j^7z]Rwe={A$Sw3 -w3 -I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJIyT<Λ#Evm;v+\f`cf_pm5nhstZLp0(KPm8o?d;OT龿_sbo'ɹ5c:ߟ]>Osku?ȟe?Zk_@[q/#[q?eَXZ}7?$qHۇPO, Jd;O$Y[0YY4 ƱŤ0)6 "3H$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RwO'شVwO'ؒI%)$IJI$RI$}]LxEg}]LxE%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S֏S8e?c#h?XӆW~?o_-o~ׯ}%qؿ͟.rMb6~?ܝ_c_pǡn?sηO1o'|`??/)eM/E[q7s? ?WE/~}.k>lv?I$zI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$w3 -w3 $E$IJI$RI$I%9W???{bYW???{bIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$cN_Z?O?@|[W['*q_~\v/g˱}%qؿ͟'s??r?\?E7?~f[?f_#K{yx /)eM&|')_=Qt?_@/⋤_Z?x?ޅS>#xzXHwR_;p+xvMV.0<$ovޗ}uم,y.s\8I)CQM|ܴ$pXI$EI$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K;'glZ+;'glINI$I$$Oڝ_kr>C{~썿n?6~Zfڟ`~nm=}.})\ۺkmfKݳںd}]LxEc\ͤ>PmɎ4>?;f󕰒I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)G)2?⟬+?XZ\O·?kOT龿_c9?SJ?N?v/1/c7?~f[n?sη̾G Ok 2_S-ϸΛLOySWz??V3?q4WE/~fhzttO9Q~}[#c/i?ʾ1A_=/DI=RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRs)淶GvSkƿc_^gc$E$IJI$S}{,zޏwI}woϥZ}{,zޏwI}woϥZS}{,zޏwI}woϥZINwO'شVwO'شRRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RokmUj}v0mO-s\5[+<Uw]W>ֲ|}6mXE8K^ +B?,gXq4u-N1) D8Z?O?@cN_[W~o!^rMb6~?ܻo7Wrw9k'ɹ5c:ߟ]>Osku?ȟe?Zk_@[q7R!o}^tg⟈]Im@.h3OGУ/2|cwC=1|GMUoLt!rxk9$IrI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RwO'شVwO'ؒI%)$IJI$RI$}]LxEg}]LxE%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$^];u=L8쑅TBG3F'>-e[&7׺L_U2.}[u6ݱ'i^ ǂkzC,N`߆<}kO_Yύozqy>mS|cՏgycN_Z?O?@ſ(['*q_~\v/g˱}%qؿ͟'s??r?\?E7?~f[?f_#K{yx /)eM&|')_=Qt?G?ބ??V3?q4 ?:c'?iq(i?ʾ14ߟ_@}VH銠w/濞cI$)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)g}]LxEg}]Lx)I$RI$I%)$INwO'شVwO'شRRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ^];y ^v~_~ؾm.G&b8~ ?n5Gt8߈]şL> '?X?r?<_~ bp Gr?Uy8o?d;OT龿_] t9?Mٮc"?\?D/l_=B 2>oG/(Oգ\u?oBQt?G?ޅ??G4ߟ^<_?WR"߶`UtzUQv+H!x7W_1?5;qԡ-9~5`zvNL?ޅgMrGO'lCXwg2_zws|1e '|:wc<>3k~II$I%)$IJI$RI$I%)$IJI$RI$I%)$IJYW???{bYW???{bJtRI$I%)%du:ݴXr00r [mDZxvC+/u?C,SaO?>gϥo%=2KwS?m}Ϳ>z۶{]WL﫿O=h w1&CgglrRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ^];y ^v~_~ؾm.G&b8~ ?n5Gt8߈]şL> '?X?r?<_~ bp Gr?Uy8o?d;OT龿_] t9?Mٮc"?\?D/l_=B 2>oG/(Oգ\u?oBQt?G?ޅ??G4ߟ] (i?ʺ@$G/ڻ|1?;W:vW~wNu/nO~GII1I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,﫿O=Z2^k{m$we6k1U?zbJtRI$I%4m:џen6mhS\lO{vkFwz>g'_Sݿ;>jINwz>g'_Sݿ;>jI%9W???{bYW???{bIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)yw2YzEe1Kb/໿W .G&=?C[W~!v}3޸o.^Ϧ|o{ԟucQ'G)2?⟬+?X5tQW·?kOT龿_c9?SJ?N?v/1/c7?~f[n?sη̾G Ok 2_S-ϸΛLOySWz??V3?q4WE/~fhzttO9Q~u_SXK*'&9ijw^'? _^c/;N9>ݹ?]'ҒI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$<Ţ<Ĕ褒I)I$JRI$I$;'glZ+;'glZ))I$JRI$I$$I)I$JRI$I$$I)I$JRI$/H\=g~R[}oWzfhzG 3eᘱJZ8t`'kpo\o}z[Mgd?o߬p##rrR^b8~ ?n5pkzCw!|o_O_Yύozqy>mR|cՏG#p G~ b~-+E_ 7_9?SJ?]N7+l;ؿ|IC1o.'ɹ5c:ߟOk2-?_S-ϸΛ^)O>/:o3?O_A~⋤_Z?S }]ImQ>1KGMUOM}N=a.BzLݧ!3_zws|1ey'|Oa0z6']]JGYύc}k;(|@?{/??OO$q3~jGVo_6 7ni{ϩ-=Ґ05!{HH4wRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJYW???{bYW???{bJtRI$I%)$IJI$Sw3 -w3 -I%)$IJI$RI$I%)$IJI$RI$I%)$IJ^ 3?q4 W\u?oB+gGMUU~=Oni?ʷ~7ǩnG/|Cɇ?^s]ԏM}qpYpw#_\?j\_ ckx o.^Ϧ|o{_Yύoz9}h?XӆW~??֏S8e?c#o_*Vzo7Wr'*q_~\v/g?Oz&Ol1~t?Mٮc"~YAi}R!o}^t_K{yx o7?~#Cw]'g.:Ə(Oգ\u?oBΟ#\J?obkw? r4ߟ] g#?ߗ]>񘟝+rb~w/WælO@_?R ~!v}3ޤ"qO$JAI$JRI$I$$I)I$JRI$I$$I)I$JRI$<Ţ<Ĕ褒I)I$JRKŗ910q2Zq뾈ֵ5%>}fڟ`~nm=}.})\ۺkmfKݳںd}]LxEc\ȸ>Ëho1ǨM[cg[ )I$JRI$I$$I)I$JRI$I$$I)I$JRI$fhz?ޅ{Vgw/#~z1aQ~neo_Sۆ*܏~_/໿W .G&Թ|t8߈]şL> '?X?r?<_~ bp Gr?Uy8o?d;OT龿_] t9?Mٮc"?\?D/l_=B 2>oG/(Oգ\u?oBQt?G?ޅ??G4ߟ] (i?ʺ@$G/ڻ|1?;WK]/K_֯Mۗ؟tl<7a/?g>7돯B?,gIV?Eg#nIeοqTΟo5bF$I!I$JRI$I$$I)I$JRI$I$$I)I$JRr.Ŷ?= Otߩc$E$IJI$SS3ߋ,6`n,^Fsk{Zi# B>n=oGֻ>z;g}-VI)>n=oGֻ>z;g}-VI$;'glZ+;'glZ))I$JRI$I$$I)I$JRI$I$$I)I$JRI$fhz?ޅ{Vgw/#~z1aQ~neo_Sۆ*܏~_/໿W .G&Թ|t8߈]şL> '?X?r?<_~ bp Gr?Uy8o?d;OT龿_] t9?Mٮc"?\?D/l_=B 2>oG/(Oգ\u?oBQt?G?ޅ??G4ߟ] (i?ʺ@$G/ڻ|1?;WK]/K_֯Mۗ؟tl<7a/?g>7돯B?,gIV?Eg#1RoR|kGt~DIRh$IJI$RI$I%)$IJI$RI$I%)$IJYW???{bYW???{bJtRI$I%)$IJI$Sw3 -w3 -I%)$IJI$RI$I%)$IJI$RI$I%)| h_/7<+O7֏]$~/ojՏm@.h3OGР7:d~.%7V_FU?b£*ߪ Lrapw#_\?j1?H7=?B ~!v}3ޤ"Gǟ8Z?O?@cN_[Wo!^rMb6~?ܻo7Wrw9k'ɹ5c:ߟ]>Osku?ȟe?Zk_@[q7R!o}^tg⟈]Im@.h3OGУ/2|cwz\7W_1?5;OW|Cσ1Hy7Wc*M| O|_(Oo(I*M$I)I$JRI$I$$I)I$JRI$I$$I)K;'glZ+;'glINI$I$$I)I$Js<Ţ<ŢI$$I)I$JRI$I$$I)I$JRI$I$/_PZss?4|އ(Oգ\u?oBQt?G?ޅ_Ο|cww/#~z1aQ~neo_Sۆ&r?~O0Gb8~ ?n5pkzKw!lo_O_Yύozqy>mR|cՏG#p G~ b~-+E_ 7_9?SJ?]N7+l;ؿ|IC1o.'ɹ5c:ߟOk2-?_S-ϸΛ^)O>/:o3?O_A~⋤_Z?S }]ImQ>1KGMUOM}N=a.BzLݧ!3_t/Z7n^OEjtzYhK~W~!v}3޸o.^Ϧ|o{ԟucVr?<_+?&> 'ƾ^_/|'G~I$&I$I%)$IJI$RI$I%)$IJI$RI$w3 -w3 $E$IJI$RX?k151m&ُ4s[ϰ9w8*?n~Y>òo}/[vKjJzd3~ej};)?ٻl9m%9W???{bXW2.=LqVwt|JRI$I$$I)I$JRI$I$$I)I$Jp> '?X?r?<_~ bp Gr?Uy8o?d;OT龿_] t9?Mٮc"?\?D/l_=B 2>oG/(Oգ\u?oBQt?G?ޅ??G4ߟ] (i?ʺ@$G/ڻ|1?;WK]/K_֯Mۗ؟tl<7a/?g>7돯B?,gIV?Eg#1RoR|kGt~۾W>(ʶ)m67kwYYlV} r8o?d;18Ly|R%/:o7?g_=Qt?G?ބ??V3?q4 ?:c'?iq(i?ʷ~7ǩ7V_FU?bg#?ߗd/໿W .G&Թ|t8߈]şL> '?X?r?<_~ bp Gr?Uy8o?d;OT龿_] t9?Mٮc"?\?D/l_=B 2>oG/(Oգ\u?oBQt?G?ޅ??G4ߟ] (i?ʺ@$G/ڻ|1?;WK]/K_֯Mۗ؟tl<7a/?g>7돯B?,gIV?Eg#1RoR|kGt~ׯ}%qؿ͟.rMb6~?܇9kg'>CPnoXYmdߐ"®eIy#H%q=q8#9gӧc^l: N[}_G{)}+({+6k4͕r_S-ϸhK6k$+$I I$RI$I%)$IJI$RI$w3 -w3 $E$IJI$RI$I%9W???{bYW???{bIJI$RI$I%)$IJI$RI$I%>M6:XY1X;ʚ\m _]U~dDn?hmy}%q*1@+"2B\:Y]Z]^eU5` Em`y?E%~c:ߟM?? G_@[q7R!o}^t_ o7?~#Cw]'g.:Ə(Oգ\u?oBΟ#\J?o߬pŅGMUU~=OnY>!/9.G&b8~ ?n5.{/腱<7a/?g>7돯B?,gIV?E?p>⟬+?XG)2?\O|+|CN7+lv?8o?d;sb'=Osku?Ⱥ|&Ol1~? )O>/:oz/=Bτ7?u.h3OGЁw]'g.:ƏG_OOd.%7W_1?5; ?obkw? 3v`xOEjtz?;WKe']/[O)_Yύozqy>mR|cՏY'oT+?yQ'*q_~\v/g˱}%qؿ͟!_YIg_8U_vw/EӍYp'`w=Bqy=Bqg~!藔%$JFI$I%)$IJI$RI$I%)g}]LxEg}]Lx)I$RI$I%)$INwO'شVwO'شRRI$I%)$IJI$RIWt xsĦk.- IMe4bh_zTvFZ:%<rFX#1NWG(cwOXiWUy,dֵkC0>UEu7kA}T{2eb}h?XӆW~ .\pM֗[ *{*ΉtLKm|uqsx+1?;T_%~c:ߟ]^\&?D['??/)eM/E[q7⯈]Im@.h3OGУ/2|cww/#~z1aQ~neo_Sۆ&r?~O0Gb8~ ?n5pkzKw!lo_O_Yύozqy>mR|cՏG#p G~ b~-+E_ 7_9?SJ?]N7+l;ؿ|IC1o.'ɹ5c:ߟOk2-?_S-ϸΛ^)O>/:o3?O_A~⋤_Z?S }]ImQ>1KGMUOM}N=a.BzLݧ!3_t/Z7n^OEjtzYhK~W~!v}3޸o.^Ϧ|o{ԟucVr?<_+?&> 'ƾ^_/|'Gzo7Wr'*q_~\v/gs|/c$N6g#]]KgVz1??c6ޛe[^ iuN HDǓGޅO>\ f#O_?ҏ?}?Y[0YY4 ƱŤ0+??V~6>uXWQY}vc/a )'3b:]xd?7>go/Q蹖/ mx`dXƽI>(X4X2`(ROXRI$XI$$I)I$JRI$<Ţ<Ĕ褒I)I$JRI$~_loO}e?g7t^>m$;៫,W)>z~rŮn^5 gmn+x={-ԾdQ}?b_gvRxO ,l[0] 2ĩ$t@> ?px>|:9%ZZ%Y~ۍVEc^w!KZbauNK'Q.~O[6/ lUi.l1\Ї!ht} 8\a0LY?Y`}Tu n5ۜ׾N"+=7mkfYMYsַU4o&{}n\~Xu*{;1@c[{){q2>*2Re#v5z8Xa5nV~}W:}Wq:}ϴ5V^wO[0;_Vt+m긂}fC=hK09f}1}یߋ8߈]şL]/ˠCWEŇ3:esa~˱[Xrw/% er"t;_Z?O?B:Pϣ8U};m=`]t h=1?|Jqˏv8->yܲ]]I$%G ǧ\:x?Izpηc}YONq.ә˪"oL5D=3W]Ǧ97K.2jrG3D][)O>/:ozOY~usKWV9۝e/a\^AxOlQ3Lt'1NQt?G?ޅ>}o9txT_f۱]{zE+o^˛հzcw2S>!!9'G4`D=<*w/#~z1uՕdO|>l]1Mip.m~gAg(D99i)j (@p</໿VM?o%0;_OsnѾ`tMWcvfC= M.lu_B}w/B?,gUo5Ǧq~?]?Z/,>,4c ]];)>'8!((H(2BhH)]qL#sGHz܁$+u?Ȼ[OKoLr7cik5WL1ǧa185eߧܻV_S-ϸΛ^_}fޡ:] s9hrمrcYx àO~8ǔLt'1NQt?G?ޅ>}o9txT_f۱]{zE+o^˛հzc˱eUd ݩ ÐQݓy#q0"^oGMUOM}N=a*u4"ǭUu{-XecFAj)j!~g+qy>mU[->qB8K.]T1ͅ..mbssD$yHC %+G͛+?ş׈K+}t3?OH}ue|7$q{dG srMb6~?ܽ`V՟z]YAi.y2<.~sՍ-wL3?:>G8%qsS<#~䗢b8~ zQ:oպ]l}n0cQsastռtè~?HN?Y"x pLOR}Q?X?ß O~?myXUl7~4l fK'|7$1aFUJ99((u>⋤_ZcN_[m16Uٶrvc0~/u3ee_}{e{dzLLs9 EӉyz?ok}X?r~ =fNw4o7]}tea=ol}.oJ4d- .,g:U|0qJGrxp#;h/SQ&?G[twMv폮\DXQ.>W;cgC>ԲruQC6`7$8H3D/I!3aIF#` ׍WklQ%5A@Z Wi+kK?buvgaVlvmvnƷAC(cbGi.N߬_]Kec({Z0l$OmQ#aOK8P<=K[}x?VCcegcHtH#s3L͎?E(ZIsuϭjk-vf3kcFpq.isόp֧[~]E[Ik1ovFUw?WY =1Acz{~/_vKv]EVAVָKI삛$JRI$I$?LWYZ/KZ ,ۘ_jzez{lgna%: ._'_+ 8wliƺw"sZֆ8h<0zI%)$IJI$vM1"s!WK`$^ıA#KCUS\.hC{+3"s]cc V2 Tfwdzzm-v$I)I$JRI$:}{q2r鱠ʥղ3=/.ʯȯ~N~g[e,f"KƤm$IJI$RI$Ys 2S^c^vU,ke`INK'#p/*ƿY]e['AѬ$$I)I$JRI$zwSm]{QenqXM7zXf~S:ӱAt)I$JRI$I$$YJۺ?S13KM^t-wҴhdI%)$IJI$RIfuʪ5f]ŌiʫKl.(k)I_eޟڽ6}џOԁۻFIJI$RI$I%)%mOnEcYc6]vn9y֍I%)$IJI$RU:soMΪ2좷:zZc;NN3TtvCr>WC,ǢƲ@9\ݻJSI$$I)I$JRI$/>\av9eV6˛[{It$pJI)I$JRI$I$9Xfl"KH-!s\5Q/Oӊ=ms㵠 a$I%)$IJI$RgRҺ]ˋc\*ɾSM2Qmmp+֚I)I$JRI$I$$I)ϧt:g#V}7;+!#CMN׵mnl A$RI$I%)$IN~WA陷"Y6ǭ[.nz+[-{L-IJI$RI$I%)g]RMYcwuݶ0#JRI$I$$I)JP=Nگm {+"gX^{k$[yWIHq1hŧ ղ$e`5\I0tdIJI$RI$I%4j:ӟ]nuiSdﲺ L{;sNII)I$JRI$I$*}/a`:vA}X6[c@4pJRI$ endstream endobj 482 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F19 7 0 R /F25 48 0 R /F27 41 0 R /F51 33 0 R /F21 16 0 R /F24 17 0 R /F18 5 0 R >> /XObject << /Im56 475 0 R >> /ProcSet [ /PDF /Text ] >> endobj 489 0 obj << /Length 1805 /Filter /FlateDecode >> stream xڽXKo6W=i˧(nk E[ srrwev;ákHQ<Wg,9DtuYnj"+.u_K#\*S\(`V*IS۔]ѮTP;.nUUP۲f%c_65n٧3H)mgxwE r)ԠULJfRw׬d?~%m\Df2w|kM='a["+.-x/'}N/~Amðӱ-`W"3ڑUjx MUt$>-nӃȘLUS˄POgn/eXрߌadWb)deywl})TjTW0y)7[z@zJD\tE/>؇}Ÿqǰ=7sS x+`6H1.b/8aQ Ax%` W@*z-[RCކ o&_"c &9lwXS]~ Ұ܆l茇zUcWt̑(05ۂ& e `xU"4mYܤ !ͩY32 U E FP ^Gm AߢQ_4cH3C/m'Qo9ܠ Q!ܳ U6쀞%zcW(2I]| RBU-h rA@z@)bn¬qk~2 M^pCP +&)Cx(L;,0 ٌ_lX2͑ڨ#3fS}: _;n9W&xܪHsiygWqű"|vwms DZ.tUa|Ŗ&%)=2Za[Z +}ˠTfo(Bίlx{[؍QP Zd] /ʒI`(@ zi`8ou[X_|T}SoLg~2Ob ^:,&_\ Iڕf1fºP5'ENUz3E_χ "SigdT[0Q.dbeSKN8\ӵq*yQeTk.SHf:@GR9^e63 zH[ ~DEO5bj0:K>ptMDb nyWKMà "^m2 |Y;Bh/LaN/l08ko^q"bdIif?!e9ϖ/?ۭ_ endstream endobj 488 0 obj << /Type /Page /Contents 489 0 R /Resources 487 0 R /MediaBox [0 0 595.276 841.89] /Parent 479 0 R >> endobj 480 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Noises/HistLCBM.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 490 0 R /BBox [0 0 613 396] /Resources << /XObject << /Im0 491 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 613 0 0 396 0 0 cm /Im0 Do Q endstream endobj 490 0 obj << /CreationDate (D:20080813194111+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080813194127+02'00') >> endobj 491 0 obj << /Subtype /Image /Length 26454 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 613 /Height 396 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;e"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI%W糦鲪[][w91JIMYUv/K3*޴IPYbZ_?/_IMYUv/K3*޴IPYbZ_?/_IM`.k7bUK3*޴IPYbZ_?/_IMYUv/K3*޴IPYbZ_?/_IMYUv/r)^aea݊$8HI)IPYbZ_?/_IMYUv/K3*޴IPYbZ_?/_IMYUv/k}lK3݋ sW JtT?ifV_ؿ֗,;zS}%CgUei~ʬ%7T?ifV_ؿ֗,;zS}%CgUei~ʬ%7Y|c bKZK3*޴IPYbZ_?/_IMYUv/K3*޴IPYbZ_?/_IMe_'/TئDTK3*޴IPYbZ_?/_IMYUv/K3*޴IPYbZ_?/_IMYUv/ۛAy=v/ ,_ )IPYbZ_?/_IMYUv/K3*޴IPYbZ_?/_IMYUv/K3*޴IfUoa}}/0FŨ?/_IMYUv/K3*޴IPYbZ_?/_IMYUv/K3*޴If[l'eS]G_c)a!.tnx M%)$IJI$RI$ۻwpݙVЪØ?wI%)$IJI$RI$Y:]u͎I)I$JRI$I$!bP1qip׻gEI%)$IJI$RI$+YEǡae4TRI$I%)$IJIxOXiWUy,dֵkC>c,i=[>H(qV8#~_O挄H5)^a U}4` RzJ7>my̋ gB{y.sqs${M/❛00%i^4R s5T>]:CMOVv7n_OEܿ>󎻅^& Y"g$@RI$ƤI%"ˠeb݊Nunw1⊒I)I$JRI$I$!:Z벽>RIJI$RI$I%)$IH՚6Ydd|"JRI$I$$I)݃P+IguUZ))I$JRI.\Z3nbc+e``2=k}vΐ4=]e}]W켌=~}qv'ٽonYIOV*㪸ål,[rFVUֳ#"}aӓe/|0"9/#3$@INH4m!R5|Gc2JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$K75oCU`侻K\6 @Y:I/XU7u\*;V\5ְ9i|A^9yrmG)2U6߀E~ bͷ--E?ϗ{_WÃV'|F O/3k#?0r_y]ߪ}k+_ |mPaTd50FOԲƼlD\<<8'Տ g?_LI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)ЪØ?wV?Yȹ1ضnƭ?vl$$I)JC2Nqi 1Ā$='t0X>S*߶vn0I]/<|?V=Oʷ흻5+i$I]/<|?V=Oʷ흻5 UZ+;B`:JtRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)e}kķX~WyzY_Z-?ߕ^wj|)?1k?N˷RlžpKsJ̧S,kʬAu]vɎY"=1p!W~G)2U6߀Q[[{>_k}_X+1?;T_%~,q>7c/]`.GV}cᶷߏcm;̆ɑG1=c3c~IpQbޟ*eL}ǵۚ}eݪ.)aII$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SU0h 9xE%)$IJI$RI$U0h 9x)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RId}f́S+ڭPns^;XF12 dY_Z-?ߕ^>Νʪu׶k\6[avZ?Z-?ߕ^a(LF@[;W~!v}3޸o.^Ϧ|o{uc[?p>⟬+?X_m_p!W~5tQO|g1?;V׿L8?5`b~wyY1Iv'K_X u?Ȼ$wUL[O_S-ϸ_S-ϸ~/'yGRI$j)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$INw]Wۼu*I%)$IJI$Rw]Wۼu*㤧E$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\'+9+\'+9*nW*rg~^cM_*rg~^cM_nڿ ~!v}3ޙV?EycN_*o"h?XӆW~ [[~?^0Ձ//aѫ_KL=^\&?E%~c:ߟL~o/}R!o}^mQS_e!kZ%sR!o}^_d秬_ ]ϋd?3'euL+-c2*skZV(Oկ>1t-1.+I${YI$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)ЪØ?wVw]WۼuI$$2]zc,uź608="& .3*ޭj2[deSk95tkZCEc﫿j'/..7m:@ )w]WۼuWtnCʺdd]/6Zrl=Yޞ5fağ )I?@yFIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\'+9+\'+9*nW*rg~^cM_*rg~^cM_nڿ ~!v}3ޙV?EycN_*o"h?XӆW~ [[~?^0Ձ//aѫ_KL=^\&?E%~c:ߟL~o/}R!o}]OW/(mY d9ΩkCW)O>/:oAØ2e\\z??V_?]I>lv?I$zI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SU0h~sjcm/{[Gt~?IJI$RI$=+ǩzVvƶcqzOJ{fa}Ulݱa[I%50zOJ{fa}UlݱaB`:Yw_snSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$. rcN眕ޮ rcN眕7+?Kb0:w]pկ '?W .G&Թ|<7a/?g>7돯B?,g?}h?XӆW~ Z?O?B?k׿L8?5`b~wKpjR?>c!~Oo䗮 ~wx?Izpη9o_xk_@[q7R!o}^t_ o7?#Cw]' ??VY>SOcڤIJ$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9w_sn֊ЪØ?wRRI$I%)$IJYw_sn֊ЪØ?wI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$^+0]qpf=;*+cf\axI7/\"@5z}o',+ݍq1doc 8K\D+XTp"lVKL9B]fE>nq%$]_8U.LyJ#M/hkz\&/໿RlGt8߈]şL> '?X?r?<_~ bͷ~⟬+?X_m~--E?]Kpj[^0Ձ/d|&C?/]`."?WV1o&r7 ?)O>/:oz/=Bo|G/(OկWE/~}|͛I$RI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Js*U0h$I)I$JRI$*U0%:)$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Kg.:Ə{omW%lp?]]KgVz1?]]KgVzs_,Cb8~ ?n5pkzKw!Q<7a/?g>7돯B?,gIV?E?p>⟬+?X_m_p!W~5tQO|g1?;V׿L8?5`b~wyY1Iv'K_X u?Ȼ$wUL[O_S-ϸΛ^)O>/:o/7_u.k[aǨ,z+vUMVZ+'(Oգ\u?oB񌲑 ѓGWƦgL9o7UvUN{/HֿE柳}=-Ngd~*oΟۋc3,J__,^LI'4TI$$I)I$JRI$I$$I)I$JRI$I$$I)I$Js*U0h$I)I$JRKNrêY'b^UugKY]5 ;L].ڿed G3ˋ>=k}vΐ4=JzU0U/abې2򮵙d --{lOy~8iyD5'}JtAmqDzy;QRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ^ 3?q4 W\u?oB+gr^?r^?l__'Kq`^#]ԏM}qpYpw#_\?j\_ +qy>m\}7a/?g>7Op(ycN_*o"h?XӆW~ [[~?^0Ձ//aѫ_KL=^\&?E%~c:ߟL~o/}R!o}^t_K{yx |'*_=Qt?G?ބ??V3?q4 ?:c'?iq(i?ʽ[3r?44ߟ^-9qr?~l?^$R9jI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9w_sn֊9?;մ~G-I%)$IM|ne[ٍSSf>e[ٍz*U0%:)$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Kg.:Ə{omW%lp?]]KgVz1?]]KgVzs_,Cb8~ ?n5pkzKw!Q<7a/?g>7돯B?,gIV?E?p>⟬+?X_m_p!W~5tQO|g1?;V׿L8?5`b~wyY1Iv'K_X u?Ȼ$wUL[O_S-ϸΛ^)O>/:o/7_u.h3OGЁw]'g.:ƏG_OOd.%7WFtG\Fۿſ#:#n.T?/͛r$JG-I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$;B`:Yw_sn֊JRI$I$$I)K;B`:Yw_snSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRֳ-?Pq1-.{Cm\}7a/?g>7Op(ycN_*o"h?XӆW~ [[~?^0Ձ//aѫ_KL=^\&?E%~c:ߟL~o/}R!o}^t_K{yx |'*_=Qt?G?ބ??V3?q4 ?:c'?iq(i?ʻs߫d'zߣޞG>#yq4ߟ[YW.N"|錅)hY9&(zg~WM }gS!5՞wPήknuND0^gMrGO'lCXwg2!JUsg I$I$JRI$I$$I)I$JRI$I$$I)I$JRI$ 9xEguUZ))I$JRI$I$, 9xEguUINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K+\+O6ͻVS,k?wmU ]?ob6~?ܻ>䗢b6~?ܻ>䗢__$s_,Cb8~ ?n5pkzKw!Q<7a/?g>7돯B?,gIV?E?p>⟬+?X_m_p!W~5tQO|g1?;V׿L8?5`b~wyY1Iv'K_X u?Ȼ$wUL[O_S-ϸΛ^)O>/:o/7_u.h3OGЁw]'g.:ƏG_OOd.%7V_FU?b£*ߪ Lrap:vW8~ ?c(sD-})$QI$RI$I%)$IJI$RI$I%)$IJI$RI$uUZ+;B`:IJI$RIB纺c+ucK[6c!~Oo䗮 ~wx?Izpη9o_xk_@[q7R!o}^t_ o7?#Cw]'g.:Ə(Oգ\u?oBΟ#\J?o߬pŅGMUU~=OnY>!/9./Wæ1./Wæe? ?/B?,gq8߈]şLV?E\?}$U I$RI$I%)$IJI$RI$I%)$IJI$SU0h 9xE%)$IJI$RI$U0h 9x)I$RI$I%)$IJI$RI$I%)$IJI$RI$qY_We|&-[]FC\Wu߯gV5]?Ӌ]U/ik5dl=C/?R3"%(NXb_S-ϸΛ^)O>/:o7ś? ߳| ?ޅgn3?q4 /=/ob6~?ܻ>䗢b6~?ܻ>䗢__$s_,Cb8~ ?n5pkzKw!Q<7a/?g>7돯B?,gIV?E?p>⟬+?X_m_p!W~5tQO|g1?;V׿L8?5`b~wyY1Iv'K_X u?Ȼ$wUL[O_S-ϸΛ^)O>/:o/7_u.h3OGЁw]'g.:ƏG_OOd.%7V_FU?b£*ߪ LrapOpO Y[W~!v}3޸o.^Ϧ|o{"Gǟ>ܒI*$I)I$JRI$I$$I)I$JRI$I$$I)ЪØ?wVw]WۼuI$$I)I$JRЪØ?wVw]Wۼt褒I)I$JRI$I$$I)I$JRI$I$$I)I$Jyo~ۊWc:ߟ^3Ծ8qJ[/1__S-ϸΛ^)O>/:o7?g_7mg.:ƏcY۾l\u?oBKX͟.Ϯ%q=q͟.Ϯ%q=7cIkz\&/໿RTo_O_Yύozqy>mR|cՏG#p!W~G)2U6߀Gr?S/?F O}_X*^gG`?݃/?WV1o./]`."g-ky~k 2_S-ϸΛK?W_A~⋤_Z?S }]ImQ>1KGMUU~=Oni?ʷ~7ǩ9qk'?ܘ|E1?Ejtz1?Ejtz3l‡Gt8߈]şL> ~1HqO$JAI$JRI$I$$I)I$JRI$I$$I)I$Js*U0h$I)I$3X]-͓hs=))2K}7+~V6]ȬrlSmnl9l:ˮyz?QbrOzovݾ yguUUqKX:];u=ˀ=GtW~UgnۻnM͘ __/8Wsi!.j EW*zeXcph~ <ĸ=u?Ȼ$wUL[r? |k 2_S-ϸΛK?O_Agn3?q4 +gfhz_z_,lv}w/EӍYlv}w/EӍY鸿팿HX<pw#_\?j1?H7=?Bkx o.^Ϧ|o{_Yύoz9}h?XӆW~ Z?O?B?k׿L8?5`b~wKpjR?>c!~Oo䗮 ~wx?Izpη9o_xk_@[q7R!o}^t_ o7?#Cw]'g.:Ə(Oգ\u?oBΟ#\J?o߬pŅGMUU~=OnY>!/9./Wæ1./Wæe? ?/B?,gq8߈]şLV?E\?hd]VzuuWfMkZ^ִ>.n6=4YEe;s48ˈJ~⟬+?X;_8oMC9/ Q$UI$RI$I%)$IJI$RI$I%)$INw]Wۼu-Bjk>ۅ.msUI$(]MY>jV54A i$I]/<|?V=Oʷ흻5%zWK3ՏS2gnl I)zWK3ՏS2gnl=w_sn֊ЪØ?wI%)$IJI$RI$I%)$IJI$RI$I%>];y ^q/v~_]k/?WV1o./]`."O_S-ϸΛ^)O>/:o/7_uͻVS,k?wmQ|tc|W $N6g3$N6g2l#q`^#]ԏM}qpYpw#_\?j\_ +qy>m\}7a/?g>7Op(ycN_*o"h?XӆW~ [[~?^0Ձ//aѫ_KL=^\&?E%~c:ߟL~o/}R!o}^t_K{yx |'*_=Qt?G?ބ??V3?q4 ?:c'?iq(i?ʷ~7ǩ7V_FU?bg#?ߗd/~_/\/~_/OPR ~!v}3ޏ?X?r?<_~ bp Gr?Uy(N1/B|.Ya ෳzF鶊:~.%hxSI 85$?^rsu +ȢNip{Ri &y<1ϗW\$Ϭ_YꫪCxk]cl{CuEܿ>󎻄blŚImI5$I)I$JRI$I$$I)I$Js*U0h$I)I$JRI$*U0%:)$JRI$I$$I)I$JRI$I$$I)KmiՉvk ,/:oz/=Bo|G/6[?3OGбmg.:ƏE_\,_g_8U_g_8UkŃx_wR?5M=f]ԏM}qpYsD*?/B?,gq8߈]şL>1HqN֏S8emcN_*o#oo)?ϗ{_WÃV'|F O/3k#?0r?Izpηw䗮 ~3`IwK{yx /)eM%s? ?WE/~fhz>⋤_Z?S( r?ģ*ߪ XT4ߟ[YWቜ~_L>Q_"|:oܽs_"|:oܽ?_C #kyJo.^Ϧ|o{_Yύoz?ucU'G)2?⟬+?X5tQW·?kOT龿_c9?SJ?N?v/1/c}w _8Ta&.k*I$TI$$I)I$JRI$I$$I)ЪØ?wVw]WۼuI$$I)I$JRЪØ?wVw]Wۼt褒I)I$JRI$I$$I)I$JRճeΥ=1ۺX\G lm^>ʣc+N:[j#HHdr{~z;/8= _~mc-&vG+Z>tXU8߈[WE/~I<0b%W+i}h?XӆW~Z?O?@*_./='&/?@%b~w՜=^\&?E%~c:ߟK`QwK{yx /)eM%s? ߳| ?ޅgn3?q4 /=/ob6~?ܻ>䗢b6~?ܻ>䗢__$s_,Cb8~ ?n5pkzKw!Q<7a/?g>7돯B?,gIV?E?p>⟬+?X_m_p!W~5tQO|g1?;V׿L8?5`b~wyY1Iv'K_X u?Ȼ$wUL[O_S-ϸΛ^)O>/:o/7_u.h3OGЁw]'g.:ƏG_OOd.%7V_FU?b£*ߪ LrapOpO Y[W~!v}3޸o.^Ϧ|o{"Gǟ8Z?O?@cN_[Wo!^rMb6~?ܻo7Wrw9k֟*_z\~vzFQұe,udn`k,I ϒn?sηp#hߒz9uWտֿs݇rE IJְS!5e 2޿~B9~>%k[#)agbF&KǺ/ϭ]kue7UhecD{ 1ǟ/!Ցz)$NaRI$I$$I)I$Js*U0h$I)I$JRI,9WNl<|4Á׈5spGߗ\|a6-+*YvL0Yiɲvsbdf_{[kUeH>IMQ:tϸ2cK:u;c째6} `&;zdK/j`.=g ˫fa>j]ˁ%ݓ{e@o%I,L;~2wё},k̢?]NK)?Z$nw#:ಿƿ?m/)ŵ]H>5s|O}E_p eɉb.23soDͬ5ԗzϗ`4 G>$c ᐟ>tMf,oA㕏0z3~SoʾLsůnoPYZl{ٻkZYiuYs~}WvA! _ܼ33茷\o߳8 x.G& ֊?h2#t ?NOwn=_xgeGL<HkN@~7Qt?[Z ǩo,>`u,zvW~_XWYe8u#Ӫ>8L3|O43{g~o6~?ܻ>䗢:֊Zr0̶OT0>a%Hvv}Dzn9)C+s>W8@|]ԏM}qpY:~рdG::v_k}3n#2s`xuTs@r^ou8߈]şLMZ 9o󭯫/Ax]kZW?e?)?1 .E  ky7R}h ߁md~#93a%OsC}x,LaWBcǁ"ఱ?;Wu]]kmcbm8˿aTP}hwc-̟,'70G89_?WV1o/X/Z>WEfG={@`i11`W'V ryq}g 8_S-ϸΛ^?GORΣgrCߎd>4?֐8ΗòC2 4?s\p7N/Qt?G?ޅaap1r*,Z7 6ٻD-~}b]e`$qu?q3ᓏ/!|&Oey<@F~o~neo_Sۆ-ֆ04߁ --uzH]a[haa3R7濜Ϗ//<6>b8~ rWSFG:?YW\]zրϳZm2>ˮO8Ϟbn |Z2r>o8߈]şLMZ ǩo󭯫/Ax]kZW?e?ħ'D@v{ |\r5)]Z?O?@ໞ*>.E ̋rf]{~&7!Gճl;oG#Dxhr POT龿_uoVVpq[V;1:^Ik~H*_Z+ii:2lh{C0|WW(1 '-̻~tzU}%]fM4WM[~Pv hIؽ%vsK;sOX!MyY\`t,ou^t}/?JZS~}e6 ѓmA2~YӺ{|^(ot̻h*7 ο*۶ bPfc]$WF^fmNSfMO:@?4Z]IdWWt2~َ1$/=JK-Y 7ִçg?bM:led{jgBJ}xQ?7}xh}Z1z==nN=_}ѷ"e/:BI$I%)$IMLҺ^٘x~zgo;wlkf7V.{2\4hscd,~wtNXQsx]v !%: ._WXfSʦd^ۭW{k C/wPI$$I)I$gfl>F~wPݑi,~z-Ceefasu] k qonmthlCIIXbu^l}U}5Yn_[P9uZd8:6RI$I%)$IJIdzf>?Oɪ~%k) q[sߴKu R~_Վ,à8=;BuJuI$I%)$IJI$S];כgQf\ݖd^ѷGw$JRI$I$$I)ӺSQq˩myև@pk $I$$I)I$JRWC枣OOů09,\P7tqURI$I%)$IJP*}kK,9k9iЂIMLҺ^٘x~zgo;wlkf7VI%)$IJI$RI$=+*\> /XObject << /Im57 480 0 R >> /ProcSet [ /PDF /Text ] >> endobj 494 0 obj << /Length 796 /Filter /FlateDecode >> stream xmU6 +4")Rn4I&mߒh^+^6_ތOzo;Yfdc& fZvl{Ⱦ9;RUy4b%xsf] L*ud%$r6ﶛǍg*T͗oevǬ벧H3UkCysU3J)7%e\xuOv5Zk)Cҁg<U#<1{3!wB D+H^v6T_&6 ژh䤮(r|LGTK}ZIqA~sgBK9n> endobj 481 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Noises/Computability.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 495 0 R /BBox [0 0 960 654] /Resources << /XObject << /Im0 496 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 960 0 0 654 0 0 cm /Im0 Do Q endstream endobj 495 0 obj << /CreationDate (D:20080819144256+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080819144315+02'00') >> endobj 496 0 obj << /Subtype /Image /Length 27437 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 960 /Height 654 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R<+}1q0r0fdX+Dz NCytm9AW1sѱUvoth; )ﭣ [k1MlQ! 8of?#65ո1.U_q3Ō2648{\{h}Ze n8N0v9a5;IO^KG:3"ˬKVvP~D$>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_P)tT>Q?)Ica3eq˨zkMco?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餰L&1.n?^OYS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OU/?WT餳>e_RS?INK3}OUUJ]Qc,|OLGu%>s*J̫a*JtYc2ԩ}ʿRM%>s*J̫a*JtYc2ԩ}ʿRM%>s*J̫a*JtYc2ԩ}ʿRM%>s*J̫a*JtYc2ԩ}ʿRM%>s*J̫a*JtYc2ԩ}ʿRM%>s*J̫a*JtYc2ԩ}ʿRM%>s*J̫a*JtY+'%QmsY{wj79i$I)I$JRI$I$$I)K/ 5RY}dSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$ss]iBgpx )-MdmkZ@Tk2>JI)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)] kZc'!BjJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR1iku3,R H߷ )I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$(uSY};P֧=I$$I)I$JRI$I$,2KQeINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRghw:gpx )jh%%%$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$jSP|RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R QM@xptۄ$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IN_N:aj,(uSIJI$RI$I%)$IJI$R_A?jW$Q$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)3M@6nS4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9};P֧=w?O{ Q%)$IJI$RI$I%)$IJY}dꖢ?C' _TDI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$~w;gp8䤣_p8䤒I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$Yr9_5 4G?঒I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$~x[ j鷎qRS4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9};P֧=w?O{ Q%)$IJI$RI$I%)$IJY}dꖢ?C' _TDI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$~w;𒖯8qRQ8qRIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IL,q|,q|RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RovM@6n?JfI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$/C簵_N:aj$$I)I$JRI$I$$I)K/ 5RY}dSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$8t~R>JJ5>JI)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)9/9/JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRmn5ݸ))I$ο֛)廝mѡylfY)o[uns\Hunh:G0F |ʶvVt ״})U^OZV6CۏEϓv=+ey%:XZl+5ϰYcc5['pFm^p7p#g}ecUVP eдXKdp2U\˙\A"GG%:$JRI$I$$I)I$JRI$I$$I)I$JRI$(uSY};P֧=I$$I)I$JRI$I$,2KQeINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRgpx ;IKWG8)(G8)$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$p8s jp8s i)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Ho =Z4<ۏ∸H[16rfnWsC<&r᷼?t}64@,d%<,~Qkw5#PA ed]_+qe2L%uxBւT5$_}\&g|5|UwڏIm9N귷`vQ'2 kZhedepO?Dr1m'Q< Al?(sX(/{5V k"v7|)}8 uPx^㟹 *Ns7~F(5/&?:].O|]GU2WcI2L@3BMu{nR"%?@ZvݳMb5>hw=IĈ:5/<,#"Zy{H1\e!Zuk7Z~#R4y{+)JROuO짯_VW/7_VW-.[GƿI)$I)I$JRI$I$$I)I$JRI$(uSY};P֧=I$$I)I$JRI$I$,2KQeINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRgpx ;IKWG8)(G8)$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$p8s jp8s i)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K_wbW4O$K)$I)I$JRtS/? +/? +-^ _c I$rI$I%)$IJI$RI$I%)$IN_N:aj,(uSIJI$RI$I%)$IJI$R_A?jW$Q$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)37~F.p_K|nQgj^M|<"I$@RI$I$'L%=!y!jrE5? IL)$IJI$RI$I%)$IJI$RI$CZP?-DI%)$IJI$R>ԙ1-{Km8k~d¸>t:KĪ7XbR>2FֳMa]'ulWeGiy,G :DgNP+:Y²}wywu.czbmq-~IOFWխEt쓔}]c*JzQk@?x=JfugHugILP5}Ǚ|5}Ǚ|S4 g_qԃ$k&}Ro%3I@LFgu %3I@Ly$k&}Rm#JfH=ɟqԃHS4 dϸA$k&}Rm#%3I@LGFgu#HILP5>GFgDdžk&}Lxi ɟqGJf1dϸ #%3LwDL<YY!|S&h>JHM"$#tR5>&<4%Y3"c :gDdž"c<ud1hILPue۽Lq|ue۽Lq|S4Y;Lq|ue۽Lq|S4 d1'V]D%3IA՗n>'V]DF%VNq'VL4$i(:gD4$ɟq#%VL$k&}Hy%VLFa"gDILP5>$Gm<Ɖɟq#cD%Y3: ɟq#|$X$9/Ѭi#NTdϸ#%Y3:"gui(ɟqGo⑬Dv))Jgu㔍dϸJf#Hu#ILP5LjR#%L?K?xRS4=3LjR#%L;}3Ljo%3IC?x/L;}%L;}3LjRS4=3LjR#ILPLjRLjo%3\#t+"=LjopA~?΍~ Ey7$}I$JRI$2t~OCOPoZaY&||忚kߛ~AJ#LY&k3%Y&v̤ȏq0#X̤i(6#L&D{i(6ݾ`F&[L5i(66߿&Fq1⒙&<{Rme}ǏJfk-&'Ynq1<ƿ%Fq1<ƿ_+-`Wuah.iIMn(uSXfg= Zǀ i%)$IMŃmsXN gh}Erkst-hΟIm|p>{Z[sHԱñޝ8\)>~))0[cH.c | I)I$JRI$W-E~O%:$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I'Lw%-^ |k>JI)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)@G?ড`4Q)$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$. iߑ\#Y{?I,I$$I)I'IO_,7H^o,7HZQx/y)$S9I$RI$I%)$IJI$RI$I%9};P֧=w?O{ Q%)$IN_]EX,qmb^8L˕Ϳ1d`bow Ú׾[@]JI)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)@G?ড`4QM%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)p_K|n]ƗԼ w`xDIe>I%)$IJN:Jze?'!ezBe?'!ezB忚|kߛ~AI$RI$I$$I)I$JRI$I$$I)P?-EӿjZ)I$Jiun)6_uuL>$ +]g:n k LLNOǓ 9`Z>ۓMUޗ[ݱ"avI$I$$I)K/ 5RY}dSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$ڃ3?)j4A䤢 h8)$!}x96\ h"⾻<-[>IOjgqufưl [3cu22tRwbFkmF&0LK}LZi8S}kXj{ |A))I$RI$I%)$IJI$RI$I%)$IJI$RI$ h@G?4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$/A1w_wb?Ro|'݃I%I$I%):d)ŗՕ ŗՕ Sj/~o1$Jg9I$JRI$I$$I)I$JRI$I$/C簵_N:aj$$I)elk "wA>gS:Iϴ6L4{j>4l=ޟu-c^;6%)dI%)$IJI$R_A?jW$Q$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)3: c$ςJ]p7WFOt_?qǸY~ݾ}o=.ihscsdF"Gi {3oKe9Ywu }tCllT-oI%?/?՟8}os3u<~=Kq]q inclXw!Dv_W{qk`x,ss $Vj\q>}7^%rOgA/I%WR\9'ڳ $Abx牍II$RI$I%)$IJI$RI$I%0H⦡`4QM%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)p_K|n]ƗԼ w`xDIe>I%)$IJN:Jze?'!ezBe?'!ezB忚|kߛ~AI$RI$I$$I)I$JRI$I$$I)P?-EӿjZ)I$Jh|*ww{^rqdcU:O*kîȯea~Rƀ~,ԍNljLJeLn-5C.`2I5xIO|I$$I)I$JR?C' _T_A?j$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ fG9[G~D7| Zhq -Ȳ}wYCʎ`/ǥ!άp7w;ɍY`  2ςB X:&4[ _bt2O=BYWTkw}"|1oKlS1= WrӌD-.u<|| U[@fE5~mu7N\@MD(Ɖ@0`˘rkDb50υL'p:oOTg<"ϓIJ-$l$nyy %T<@u*_j~ ^ gw{x %G5I%mTI$$I)I$JRI$I$$I)I$Ja`4QMB sSIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\#z/h>7~F(5/&?$YO)$IJI$RNYOoY^YOoY^9o_wRI$sI$$I)I$JRI$I$$I)I$Jrw?O{ QeCZJRI$mݦIDjW]T皘*ۻJö^!  1ռYKNƫ,i]9uێYmhvD߷JJ}$IJI$RI$~Oj,2I)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJAb;# 1oPS6)WSj#I$T~E5"lqB&!kS@pn`2ʒHY^!D0AppA I 4@D ֫5cS\5wܤVTc Pcgw{x /yo^~YyhwI$7~F.p_K|nQgj^M|<"I$@RI$I$'L%=!y!jrE5? IL)$IJI$RI$I%)$IJI$RI$CZP?-DI%4zFuB2}>"6 qYRݣisgaw1nl[rrCW^mq:Yi3dCC-e%>I$$I)I$JR?C' _T_A?j$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ 1os(nUͳ)Q??"Ɩ?I I$JRI$^k> [W^o)?I+8I%)$IJI$RI$I%)$IJI$S 4QǕ5 4QǕ4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$/A1w_wb?Ro|'݃I%I$I%):d)ŗՕ ŗՕ Sj/~o1$Jg9I$JRI$I$$I)I$JRI$I$/C簵_N:aj$$I) $4:>k]i#&Qk{1omn k$@+٘X?*Yii.05Em,VǺ2Fl%>ӆ`TlAfL*JRI$I$,2KQeINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRoQߑ7ȒQ??"ͳ)in|K?I$ ԒI$$I)A-/;{e??$I$RI$I%)$IJI$RI$I%0G?~Jj7pSIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\#z/h>7~F(5/&?$YO)$IJI$RNYOoY^YOoY^9o_wRI$sI$$I)I$JRI$I$$I)I$Jrw?O{ QeCZJRI$T˫sl;#\.]T6^E cnc6Q|F1伱m{RwXW θP7[S\@[Ld)$JRI$I$,2KQeINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRoQߑ7ȒQ??"ͳ)in|K?I$ ԒI$$I)A-/;{e??$I$RI$I%)$IJI$RI$I%0n@uy)Xhy)$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$. iߑ\#Y{?I,I$$I)I'IO_,7H^o,7HZQx/y)$S9I$RI$I%)$IJI$RI$I%9};P֧=w?O{ Q%)$INo[.lKJ: Hs{Y"v3q5n;_pkIJI$Rn}?VNI1eUveSV-l}{%9w9̢kȻgǹnNT\^{psIuwCv5{,:-ĵ$6ŭЀL zm[ ZֵqUpC:%="?C' _T;:P9V}!\6I!2 :)?%3I@3w3H3:$i(}R?#\Ϲڐy> )Js gHjA%3I@3v|5|S4 s>s>jA%3I@3:yH3vx%\ϸAH3vx%\Ϲڐy<5߈ILP5uGFsGJfgcݻcx$h9[G~E3\c\wd7|6QimIcKsVJI$^I%)$ILl/yox5Aޞ}W^o)?IA:Nvs<4^ ^ nDhx$n;Q> )Jvq#C'WwOڈIsO#C#\Ϲڈ珂Jfgus>j#> )JqG<|59`G?~Jh6Ӽw3s53\Ϲڈi(}G?#\Ϲڈi(}Q?s>j#⒙kDsR59~))Jq9~)}9~))JsR5#⒙(??;?%3ICSsR?%ON1KQ9~))Jю^ILPx^ILP~sR#⒙+onݏ䤒II$RI$ϠY^yOtI\y$I)I$JRI$I$$I)I$JRI$X7?MBISIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\#z/h>7~F(5/&?$YO)$IJI$RNYOoY^YOoY^9o_wRI$sI$$I)I$JRI$I$$I)I$Jrw?O{ QeCZJRI$I$$I)I$JRI$W-E~O%:$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)H9[G~Dd-"JGlj6Ȧ}/p%$H/RI$I$6}|ϠG嗛ƏppkJ)$IJI$RI$I%)$IJI$RI$Iypy)Xi:ߟJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRƗ/A1Ey7$}I$JRI$2t~OC~OC57I%3I%)$IJI$RI$I%)$IJI$SӿjZ/C簵RI$I%)$IJI$RI$~Oj,2I)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJAb;# 1oP?gGSPT~E5-ϛxc)$AzI$I%1;}|r?,S4;]$WqI$JRI$I$$I)I$JRI$I$7pN~Jj7pN~Ji)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K_wbW4O$K)$I)I$JRtS/? +/? +-^ _c I$rI$I%)$IJI$RI$I%)$IN_N:aj,(uSIJI$RI$I%)$IJI$R_A?jW$Q$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)7ȌſwICw¨mMBQ4>onݏ䤒II$RI$ϠY^yOtI\y$I)I$JRI$I$$I)I$JRI$X7;~~Jj i:䦒I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$/h>7~F.p_K|nQgj^M|<"I$@RI$I$'L%=!y!jrE5? IL)$IJI$RI$I%)$IJI$RI$CZP?-DI%)$IJI$RI$I%)eZ/ 5RJuI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$Rs9[G~D7|*Q(mMcKs^JI$^I%)$ILl/yox5A-+܏/7I$ǜRI$I$$I)I$JRI$I$$I)pNw䦡`)$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$. iߑ\#Y{?I,I$$I)I'IO_,7H^o,7HZQx/y)$S9I$RI$I%)$IJI$RI$I%9};P֧=w?O{ Q%)$IJI$RI$I%)$IJY}dꖢ?C' _TDI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$-"2oQߑ% T~E5 ?gGSXv?I$$IJI$S> [^ gw{x #?G5I%qI$$I)I$JRI$I$$I)I$Ja`)X7;~TRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R4ޮ iߑ,KɽvI$S I$RI$铤_VW/7_VW-N[ƿI)$I)I$JRI$I$$I)I$JRI$(uSY};P֧=I$$I)I$JRI$I$,2KQeINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRoQߑ7ȒQ??"ͳ)in|K?I$ ԒI$$I)A-/;{e??$I$RI$I%)$IJI$RI$I%0HNw䦡`4GxʚJRI( Hbe%2Is_R3r3ۑkzE,/2Eu!V՛sq:mEmv0h`s 7ݸ;$Id[6gR]!UI$$I)I$JRI$I$$I)I$JRI$I$. iߑ\#Y{?I,I$$I)I'IO_,7H^o,7HZQx/y)$S9I$RI$I%)$IJI$RI$I%9};P֧=w?O{ Q%)$IJI$RI$I%)$IJY}dꖢ?C' _TDI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$-"2oQߑ% T~E5 ?gGSXv?I$$IJI$S> [^ gw{x #?G5I%qI$$I)I$JRI$I$$I)I$Ja`4GxʚԮ=6ܚ6c\/8cQ D )gB& ~NGJ([11ׂ5ԗ5:APS>@|C?ll⋰)gPk(vYUas/ad+ё^lm.V K\4/vyaȧ-6c|FKX{*@|C?ᆭax}Gc\i,Yk|3Du> 2Y'YI%)$IJN:Jze?'!ezBe?'!ezB忚|kߛ~AI$RI$I$$I)I$JRI$I$$I)P?-EӿjZ)I$JRI$I$$I)I$JR?C' _T_A?j$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ 1os(nUͳ)Q??"Ɩ?I I$JRI$^k> [W^o)?I+8I%)$IJI$RI$I%)$IJI$SSX[Kw;'"j\}\Ɨǟ 7)'zrGT/vC -15Z+>ȞBK|Hʓ؂>6䘘R٪_|23"L] O cVo"܏H|Jp7Q%6:oo/3~g5Ie͎qKlt߼zJuYcf77?ޒD_yMQ%6:oo/3~)Ie͎qKlt߼zJuYcf77?ޒD_yMr?O}b[1˞,i[ϒgUV c>U no3&JmC'f$* RPoa998%b\5OWA;qNskk/b`KgtoOC3w?td#9yUJ/!D^|T3w%; pi0%#Gf6 sIhY@ wF4`C'w?cuzdkD4D@%n}Rao^37S;H-¤ >r32=`r&7{_yMo>$M6:oo%:,3~͎qINK/lt߼z_cfS77?ޗy$M6:oo%:,3~͎qINK/lt߼z_cfS/'?#S6:ooߪ!u2;|y7$xcݟ9\.* }/\41hnaʷ37_?`z_; }SG?c0R{gtoO/ѿ ?W#)A^37_q?+T~!d3H0ihMxFG9O0~K/lt߼z_cf΢K/lt߼z_cfS77?ޗy$M6:oo%:,3~͎qINK/lt߼z_cfS77?ޗy$M6:oo%+C簵\CSXe񪴒I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JU*w:mh.sy1Jx#F7ά̌M׌npo h]wEˣ̭$VӸkrkMҭnpҾ;yag˺]n[`#&m5.waIO|Ӻ=VI%--sL98*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)"l/ыgȑ4s݇+9XWnϯR/QTq=K,yKWzNk\?$̋Ii!ahҽ\cyIOkm4'atk{#.f^ګb5wK[["YS|ywۚ״pxILI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\[>`RCD 45P3n;ha-%<ՎeXx8,.sl 14[:.yzGFcF쵸9sIg{/DhgS}_PՎP2'%=rI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRzm{XG"RIO~GR9T]eλ/%/¨^0>[?Ls]_MTZE[%sL9 >*20k ׺^cu,n@&W7O]DĦeMmm6;qpkvS ,:>NM̒jh6?oqҲZ))I$JRI$I$$I)I$JRI$I$$I)I$JRI$:I)CPr; '0h֏YX}V߫vPͦ9v=ăl{be.ً̉MeDkkwmE[C$XۘװAuMr?X/ΧZ,qi}aŭ%c}Clt/cv'f5p-˫I$I$$I)I$JRI$I$$I)I$JRI$I$$I)V8˩9Fl`EuÍ@dۓAdk+UiT?\LjpG))}bkqrm\"}.qdWPǮ aqƠ4z-}[07G*9,k~siM%=bJcseasC"qI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R)>FV!$:iQ8h<VJxϫ]7فQߍI2?rrNi?M#ʨ[1x߻Y=k0z9`MڞO-Ɏ$JzaceVUef$z]')Ift{>ŋF.^EnȮ6p]I$$I)I$JRI$I$$I)I$JRI$I$$I)HY8fV`{!"A$.ȹ8#tUP﮽<_s-}?ul1OC,j}70=k zcVJ_{Kw`Xىrޕԝ}8ה[c鑸h7{|%hWs:nGf1M]mc@⺟X*C)0=i͂tINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Ժ]VNѨ [74 :Iюۭs:\IclyOo*]W)Acv[casE] mma )˧%2V :&Ηmr-}R 5f>5[5a?Kl>o.cb%%%=JK ֹ c=8*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)nV]=k,ͫ籺N?Z$-[3ezTc-~+G匦a]o[͍!nk!p+?CkmYe5\V-0-nw>7om$M$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$nIO*ubb▓{Ë/VvKcִցM$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$]:f.@.%F=fmTRCeu~E9nƝ%Otʺ-m-$r%%8} ;:ߎf^Y]ٮ9wvD:yQ8FY]FPuTY[w%]5'jkg#6ݕ;`c&"=v쒞$ Ew= x쎒I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Ժm=RU۴ps\=ok+KUKnˏj{Ŗ{v7T]2Xkױ5Âo=z1m =UmrvLWNi 9Ѿo JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$ endstream endobj 492 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R >> /XObject << /Im58 481 0 R >> /ProcSet [ /PDF /Text ] >> endobj 500 0 obj << /Length 2253 /Filter /FlateDecode >> stream xڽYYo~ׯe9'xݧ>4Lx6I+ʯOUWh ֛۫NpLnvIƌHwm{ejכ22ƃRI;NG43C'^Q_ ۴ΫA)eln~[3G2wG+`g"vdS&e10vq7jgX$^L3dbh$K5bB|`Y_Z<<Db&]hϦ-;M {W6e_MດBJsWu^ο˪i󒻼u93Zs.z(YdokڡJB,7}_-MvrvJ-oJGV 412L%/)˦qEx ځ6sޏ>0J4-XX~pMGw#cKSn0DiVݸp.+/49`esOXit74 F Xsك zJΔB&[l?M*-]%toυ2k2f  HhڂmPɒz̏zQl([apj~EM v > hұ&v#X" WROR:ܠUJ* <Ky"ZHLemF:KA*pD=0{FRIdOe^UtH8Cg wOhKKTYB@IYikAM񍏭w ;Ǣ2qsh W9 ֎y7'[}`Cq?)xcXXɕeM7"{öl荙Vf; DgD>9#\G;GVAqqavo7i\ cM8NYisryw!j2r AnZQX,h?x-Z$D9MT=#2['@w'ƈō|ZءE0z>`J{RZFWtcbˍlK۳ UoBC(0 K7Ad82@6YwpM -T9A0?aBrp%,9#6Rrd"%iX[#d s,4 ~S)TWPGk>2JNX|Pg2L&Ld K$m;a<|)tH7nf5!D[Cƨ>YXylP ¹{H!\ⱙ3^L: ` Y6oNcI"\;ܟɦ$' Zty2fR%OAC3dI֞7miK C8>`5#Rf$!mH^veYCRP0m,nQl&rgor8Q>|ĭ8Y痉Brw8B8AAz|>,73%꯲e qH p-K׉I)K|g:}~.ݕ&^մo5s4O_(tO0. # 1oK~v0c]_DmVDNuɋf'#.wǫ'l'MRPo3Z͘N@/̣t߿ٺ]6/H! }~4jW=S+[w_NLe܃Am85T[_ o}h'/>2j|lh+HA *޲)y( 8CXB酙P+SCJ0GO`r+?bls[46\?ea3g]/˜I2q|]¿cF endstream endobj 499 0 obj << /Type /Page /Contents 500 0 R /Resources 498 0 R /MediaBox [0 0 595.276 841.89] /Parent 479 0 R >> endobj 498 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F53 32 0 R /F51 33 0 R /F27 41 0 R /F21 16 0 R /F19 7 0 R /F52 31 0 R /F54 39 0 R /F30 40 0 R >> /ProcSet [ /PDF /Text ] >> endobj 504 0 obj << /Length 1150 /Filter /FlateDecode >> stream x}VKs6Wpzh&^Kfm2mg:ѥ@Ŕłz$r/~A7H#l&hydeͣM}owu":2ף͇<)B*Ìʢ[{V64'(fvKU`[6:g0o.r͔6憥FUʄM[N޸ [m_{y,n7Y\&Lg]0nŊ忬%x Ke>C=}`b0xZ k tB1/X\a;s~MG o*75}-F,ˌ]<ߺC1!`*3Q5VD^4rpb7Z-Tu:zA|IX,u!EZb\uT0M2 !4`F̡G:$6jI>o8|e2Z-hq7Z"RԷoÝ,`yS7nª VRuF.xK?c}S]bJđ侕"uҡ@Y TnMC!{ K4kKS,@>-?ZuC`t@e۷8;T~#*J7nަM1N4;Qƫ q/;c".=g 8G74طeQ@-YlZ%. endstream endobj 503 0 obj << /Type /Page /Contents 504 0 R /Resources 502 0 R /MediaBox [0 0 595.276 841.89] /Parent 479 0 R >> endobj 497 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Noises/Dithering.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 505 0 R /BBox [0 0 934 648] /Resources << /XObject << /Im0 506 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 934 0 0 648 0 0 cm /Im0 Do Q endstream endobj 505 0 obj << /CreationDate (D:20080816150254+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080816150305+02'00') >> endobj 506 0 obj << /Subtype /Image /Length 24482 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 934 /Height 648 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$Sun:nkm}]0Xhu55p]5SX}9]Qg{޿ս^v= ZY Q}u9}4`ac 9KIOOS͕24Ň& fᴐ o0|GY}Kb\6:c[\Mni%; ,ҿvΕNGINK3ntݿbr?_s~S+o؜,_d餳?J'#K%7:W9Y%:i,ҿvΕNGINK3ntݿbr?_s~S+o؜,_d餳?J'#K%7:W9Y%:i,ҿvΕNGINK3ntݿbr?_s~S+o؜,_d餳?J'#K%7:W9Y%:i,ҿvΕNGINK3ntݿbr?_s~S+o؜,_d餳?J'#K%7:W9Y%:i,ҿvΕNGINK3ntݿbr?"7̮#'#V9$;䒞%7:W9Y/ҿv)IfΕNGKntݿbr?JtYs~+o؜,4g_dJ'#K$M%7:W9Y/ҿv)IfΕNGKntݿbr?JtYs~+o؜,4g_dJ'#K$M%7:W9Y/ҿv)IfΕNGKntݿbr?JtYs~+o؜,4g_dJ'#K$M%7:W9Y/ҿv)IfΕNGKntݿbr?JtYs~+o؜,4g_dJ'#K$M%7:W9Y/ҿv)IfΕNGY_C=\ʪ|djnJz4g_dJ'#K$M%7:W9Y/ҿv)IfΕNGKntݿbr?JtYs~+o؜,4g_dJ'#K$M%7:W9Y/ҿv)IfΕNGKntݿbr?JtYs~+o؜,4g_dJ'#K$M%7:W9Y/ҿv)IfΕNGKntݿbr?JtYs~+o؜,4g_dJ'#K$M%7:W9Y/ҿv)IfΕNGKntݿbr?JtYs~+o؜,4g_dJ'#K$M%7:W9YQ]# ?/]>}k JzI%)$IJI$RI$?従kQeor?JuI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ ;$8Á)Y81$i$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRa)X'n>JfI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,-֧>ֵ_oSkINI$I$$I)I$JRI絨~9%:$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR}䦡ghG$i$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR}䦡gG$i$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR"jkQefo?$I)I$JRI$I$,-G{Z/}'SI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$(YHy)YK~ILI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ ?7}!}䒙I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K/7ϵEESI$$I)I$JRI$~9j,-G{INI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$g}/>MB_H}JfI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$(YK|,ߥ>I)I$KjgV&UYnkA{i%G]Hms\>IŃs~5wwMqQ3k_ᓫBJuRIr ~ֲ`SfVWV%=RJMί~UvU^Um׍I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$ȷZZYY[O}%:$JRI$I$$I)K/}'֢I純$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)J~gC߼,ϥy$i$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR?MB_H}䒙I)H,|V~c?`G\]٬ޕ:pu]崰Db}Q]?"kmYw(Dr-M%kAT>w?Wȷ-دǴSV]m6?sLY}a:uXMgr-{5NCk:ION3MA3۵,6PǸ|?z6lvթͰƥm#sΐ69)Ƶ ` k@ @)$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR"jkQefo?$I)I$JRI$I$,-G{Z/}'SI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$(YK~SP>G䒙I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)J~oC%5}y9/q},hi0C88 O$]$""<Фy}i+?_WYYm|:s^IyVt$֯ۧI%^?b=>,I/_egOK~{?}y%?WYYm_Zn$1xhK֯ۧI%<啟?I/b'9䗐/_egOV7߬gU5Wc uF<9/y8B0G>I)ܕ$I)I$JRI$I$$I)I$JRI$I$$I)I$JR"jkQefo?$I)I$JRI$I$,-G{Z/}'SI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$(YK~SP>G䒙I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K?fԮ[ch?r|g8 $}I$JRI$I$$I)J@gPW??IW?L>ҒI-wԒI$$I)I$JRI$I$$I)I$JRI$I$$I)K/7ϵEESI$$I)I$JRI$~9j,-G{INI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$g}/>MB_H}JfI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$.[ch?RohMKtkO$Ku$I)I$JRI$I$+_rA_LÔ'r? _3JI$;RI$I$$I)I$JRI$I$$I)I$JRI$I$,-֧>ֵ_oSkINI$I$$I)I$JRI絨~9%:$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR?%5 ?3}!I)I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$oh]J?&7'/~OӇ?>`I,wԒI$$I)I$JRI$3STx5~#_)$|I$JRI$I$$I)I$JRI$I$$I)I$JRI$ȷZZYY[O}%:$JRI$I$$It?aIIcI%)$IJI$RI$3ST+_r?G&riI$jI$RI$I%)$IJI$RI$I%)$IJI$RI$E֢"ji)I$RI$I%^Ji$֘^Z=HZKKG܏I)>{O#䐵>{O#䦒JaԖi|VqhG˕4SkL}-\Z=RſD>\yzjD>\yOq榒JaOq旪>]q榒JaOǚ^}ǚI)=]~<[~/UKgM$oO?wiz[>M$oO?wizWO?wji$ǚ^}ǚI)}-Dq旨}-D~\yzhDq旨~O?wji$֏~Q{ۧӵ=>YH{y$'O'^D-O'ǚI)~7Oˏ4!y?.5M$?KB}#kD-iOϕ4SkD-iO#cDiOM$3CO~^i&w{HiOM$3CO~^i&w{H{i*i$Ɖφ򑱢gw}ᦪi$։φlh; ' 5SI%064n 4|4#cF i5):ַtϲ&O>5Iֵw&O>5)>&O>5$mkwNhIMTILk[w{&O>5.cc8hnFܑgwn>q);`mh>#cD[IIL ;}H3F>ϒI)gv}$;n<})Z'hxH?KF.M$?KF>ϒFƉZ7w<})zם>|64xDs䦒Ja~Ow>IzWOw>Ji$|xKoxSI%0[>|wϒI)}Ds䗨}Ds䦒Ja7'%GKF7^ϫ_.}Mh,-֧>֒DI%)$IJI$RI$?従kQeor?JuI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ ?3p:Jj~fuS4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)rG VM3GZnO_,X|$X$IJI$RI$I%)_LÔ* @g?jGɟ'RI%ڒI$I%)$IJI$RI$I%)$IJI$RI$I%)efo?ȷZZJuI$I%)$IJI$R_PO#=E?従i)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R,\=,\=S4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)rG VM3GZnO_,X|$X$IJI$RI$I%)_LÔ* @g?jGɟ'RI%ڒI$I%)$IJI$RI$I%)$IJI$RI$I%)efo?ȷZZJuI$I%)$IJI$R_PO#=E?従i)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R,1Wp"gMB5p&~<蒙I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K?fԮ[ch?r|g8 $}I$JRI$I$$I)J@gPW??IW?L>ҒI-wԒI$$I)I$JRI$I$$I)I$JRI$I$$I)K/7ϵEESI$$I)I$JRI$~9j,-G{INI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$a{?j٫}3蒙I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K?fԮ[ch?r|g8 $}I$JRI$I$$I)J@gPW??IW?L>ҒI-wԒI$$I)I$JRI$I$$I)I$JRI$I$$I)K/7ϵEESI$$I)I$JRI$~9j,-G{INI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$aK?j٫}3t:$i$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR?&u+?fܟ$Y?NI$GRI$I$$I)I$JR?)T/9OR~#?9~OK]$I)I$JRI$I$$I)I$JRI$I$$I)I$JR"jkQefo?$I)I$JRI$I$,-G{Z/}'SI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$(XcfK>GC6jDL)I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$oh]J?&7'/~OӇ?>`I,wԒI$$I)I$JRI$3STx5~#_)$|I$JRI$I$$I)I$JRI$I$$I)I$JRI$ȷZZYY[O}%:$JRI$I$$I)K/}'֢I純$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)J٩=gtSPql ϑ蒙I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K?fԮ[ch?r|g8 $}I$JRI$I$$I)J@gPW??IW?L>ҒI-wԒI$$I)I$JRI$I$$I)I$JRI$I$$I)K/7ϵEESI$$I)I$JRI$~9j,-G{INI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$ap #SPql ϑФi$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR?&u+?fܟ$Y?NI$GRI$I$$I)I$JR?)T/9OR~#?9~OK]$I)I$JRI$I$$I)I$JRI$I$$I)I$JR"jkQefo?$I)I$JRI$I$,-G{Z/}'SI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$(Xco\gT,1[.A3t))I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$oh]J?&7'/~OӇ?>`I,wԒI$$I)I$JRI$3STx5~#_)$|I$JRI$I$$I)I$JRI$I$$I)I$JRI$ȷZZYY[O}%:$JRI$I$$_YznE"۲ߏ^cZw&%:/}'֕v2mNc"AYC[?DI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)B=Ų4>\5 lˀLwILI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$M3GZW-14i>It?aIIcI%)$IJI$RI$3ST+_r?G&riI$jI$RI$I%)$IJI$RI$I%)$IJI$RI$E֢"ji)I$RI$I%)pX=cWGck5\I~_Nxe4ZXזipinV@ű4RlҾ dGYB ?従i)W_s@4mm:L[X3yHFٞ4SI%0>gv6ʚI)ѷg&R>66TIL۷g}v6TIL۷g}v6TIL۷govݼK7~4S'/K>KIL?Msxuٖ}wӿoV_oSkINI$I$$I)I$JRI絨~9%:$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR6{eh&|,1[.A3䒙I)I$JRK>Ҳ~qɸ5Ɔ>ژ-|IJIUؽ62OUM CGui%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\4ծrG VK?'0I$;I$RI$I%)$IJW??J?)Orgg/IkvI%)$IJI$RI$I%)$IJI$RI$I%)$IJYY[O}j,-֧>֒DI%)$IJI$RI$?従kQeor?JuI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ lmSPvp $$IJ\L̫.V˛gZXM#WN>tzhkEβvڮo}[5o>!%!eRǺk=l{Y_c]RZ`ojlȽTYc kFb7u3_WJSk}$5s -`cX=g+Ρg+;\u澻s#̤ͦ}zԲkMgf;}OCwл_λ/BeXlm/ԩc[Ov )I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR?&u+?fܟ$Y?NI$GRI$I$$I)I$JR?)T/9OR~#?9~OK]$I)I$JRI$I$$I)I$JRI$I$$I)I$JR"jkQefo?$I)I$JRI$I$,-G{Z/}'SI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$(X=eq3䦰uއvW׮Ҵ^`ʁ4,IF.K˿u?du?eޱ~y_)/./_/_/oSKoSKX{W58>qOeY/qOeY/b_K˿u?du?dy_)/./_ul,+1&Ufmw0}S1qȀn_a,Q2'lFI$jI$I%)$IJI$RI$I%)$IJI$RI$I%)rG VM3GZnO_,X|$X$IJI$RI$I%)_LÔ* @g?jGɟ'RI%ڒI$I%)$IJI$RI$I%)$IJI$RI$I%)efo?ȷZZJuI$I%)$IJI$R_PO#=E?従i)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R+28??r' QJnO_-OӇ?7̓'LFRI$I$$I)I$JR=h}^Ku~T?C/1 $|I$JRI$I$$I)I$JRI$I$$I)I$JRI$oh]J?&7'/~OӇ?>`I,wԒI$$I)I$JRI$3STx5~#_)$|I$JRI$I$$I)I$JRI$I$$I)I$JRI$ȷZZYY[O}%:$JRI$I$$I)K/}'֢I純$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K?jWT_3'/'IY)$IJI$RI$I%)h}^Ku~U>⇥ế*~!e?IkxI%)$IJI$RI$I%)$IJI$RI$I%)$IJ\4ծrG VK?'0I$;I$RI$I%)$IJW??J?)Orgg/IkvI%)$IJI$RI$I%)$IJI$RI$I%)$IJYY[O}j,-֧>֒DI%)$IJI$RI$?従kQeor?JuI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$N5G+\T~RKcti$,єI$$I)I$JRI$>⇥ế*ZWC_?j|KBI$ֵ_oSkINI$I$$I)I$JRI絨~9%:$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRO'.Wdp?)LKpdCI$RI$I%)$IJZWC_gnʟx5>%?O}$Z)$IJI$RI$I%)$IJI$RI$I%)$IJI$R-14k\4զ%p'I%:I$I%)$IJI$R/9OR9ܙ}$Z$IJI$RI$I%)$IJI$RI$I%)$IJI$R_oSkZ/7ϵQ$IJI$RI$I%)eor?Y}C[?DI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)r' QJ+28?d%8C|2t!e$I)I$JRI$I$-nʳևP7WO?q>ВI-wI$$I)I$JRI$I$$I)I$JRI$I$$I)K?fԮ[ch?r|g8 $}I$JRI$I$$I)J@gPW??IW?L>ҒI-wԒI$$I)I$JRI$I$$I)I$JRI$I$$I)K/7ϵEESI$$I)I$JRI$~9j,-G{INI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$_uK?jS2|lr?!d:e2I$I%)$IJI$RP7WYC(z_r OShI$I$RI$I%)$IJI$RI$I%)$IJI$RI$M3GZW-14i>It?aIIcI%)$IJI$RI$3ST+_r?G&riI$jI$RI$I%)$IJI$RI$I%)$IJI$RI$E֢"ji)I$RI$I%)$7~ecu\Z3u $0^NڛIOH~9j,-G{INI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$O)]ZO'*Sr|-OӇ?7̓'2'I%,x)AIK$ PRRC(z_Unʤ?q>ВI-gI$$I)I$JRI$I$$I)I$JRI$I$$I)K?fԮ[ch?r|g8)PV;$ PRR'I%,x)AIJW??J)O|S'&rhI$I$RI$I%)$IJI$RI$I%)$IJI$RI$E֢"ji)I$RI$I%)r}Omzf^Ycl4n.KmWXJR0Iunc[\6uni+I$3n +#K%7z_I)/ޗdeJs?Kb?_w_YYi/ج,~VGZi$3n +#K%7z_I)/ޗdeJs?Kb?_w_YYi/ج,~VGZi$3n +#K%7z_I)/ޗdeJs?Kb?_w_YYi/ج,~VGZi$3n +#K%7z_I)/ޗdeJs?Kb?_w_YYi/ج,~VGZi$3n +#K%7z_I)/wTYLHvoZV羳,dt<;>zu'溻zFRH$ |o?P201q' S-HO+}5zoMMSfUu↙ڞrǗ0\{ 쿿?1>{?ϳ&>I. .>_W?k}$c+W?iO^ɭ`/bO^ɥ1>{?ϳ&K=?1>{?ϳ&ϨU{l1!sl9pAhRKv9Fr?3ntݿb?_w_YYi3n +#K%7z_I)/ޗdeJs?Kb?_w_YYi/ج,~VGZi$3n +#K%7z_I)/ޗdeJs?Kb?_w_YYi/ج,~VGZi$3n +#K%7z_I)/ޗdeJs?Kb?G^_MVvr/{dpa֑\<̚*鸔Zoq\Si-OyA d>}RpoOaH!A_W?jCkՆ/MtcjlaDhu]&6Src[`C{_RSdAF260)$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$ac,;r۾X0`a$]G<,K[}kK!f6)ɼѹBu=o^g_:m[Խ{-v4+mO4=pctJ"ΛcW2 .rSԃ:dt[2zɧf^]FClc}]vt k5ApI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)e:z57nF w wU:6bIO;:Ca仧G<ݘGc[7M{|~GR=?=5V]7}yk#v<NfmMZZ;O7Y!9l\V7utQ9<Sf 5xV7m#+K^M=$ћc"n>ל 0Cw/'MI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$Rʬӓ[.K,hse83$:L qC+;.nV;sN OM{yn_*9{ E9 C^iDI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$,\|{12,XÚyRIOne ]N?N2ڬ 4LJCœFu=c,cMmccfg`u,gbf-KL sH<^0zqWX9tY $i;Z5IOc#A<> ѺCJ1u-O> /XObject << /Im59 497 0 R >> /ProcSet [ /PDF /Text ] >> endobj 509 0 obj << /Length 637 /Filter /FlateDecode >> stream xuTMs0WhzAdYōeaF`˩eJJ~}r\^Մ\1jK*&BLdՒ[dz*Q  P2_YU-nٙbQa<&g2W$>g a9W|fOJJ;5rBPu^aV crQ'<1}X}ϐY̞.t #_yi&՛4]t 󴟧`L;bhߒNMZt'=oE8{Z#jhlp:b:Ca\ۧ]t'J^hqQ~fr:17f=O ~C`/^IqN  z$4w[;"f+)DKOۅN9RX@c3;gP>Y θX\g󅥢8;z=/z :},m֝v빨#Y!Gz`z7/\URWaqBx['sǸ7dl]2KO@x;tMSxdx 0.~R?9YPO #gWz-P endstream endobj 508 0 obj << /Type /Page /Contents 509 0 R /Resources 507 0 R /MediaBox [0 0 595.276 841.89] /Parent 510 0 R >> endobj 501 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Noises/Computability2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 511 0 R /BBox [0 0 959 641] /Resources << /XObject << /Im0 512 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 959 0 0 641 0 0 cm /Im0 Do Q endstream endobj 511 0 obj << /CreationDate (D:20080819150359+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080819150417+02'00') >> endobj 512 0 obj << /Subtype /Image /Length 34855 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 959 /Height 641 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S`.V `~{Xs\`a9e0XwkK1"4c=oߺV}U6VߴrWȽ:vc4}eM)3r_ܺZi$3rW^r9i?]_%9zg˫妒Js?/Lu.I)3r_ܺZi$3rW^r9i?]_%9zg˫妒Js?/Lugmrĸ-EOTr`:ƥRR?]_%9zg˫P! i)3r_ܺZi$3rW^r9i?]_%9zg˫妒Js?/Lu.I)3r_ܺZi$3rW^r9i?]_%9zg˫妒Js?/Luְsȭvk嗟)`VQ$IJI$RI$I%)$IJI$RfWiZk3+SM$IJI$RI$I%)$IJI$RI$I%)B3:?fgPu<4$IJI$RI$I%)$IJI$RI$I%0y5 L0$I)I$JRI$I$$I)I$JRI$I$ӿe5}H߷঒I$$I)I$JRI$I$$I)I$JRI$0vϚ j9$I)I$JRI$I$$I)I$JRI$a8O5% 1ځIKtI%)$IJI$RI$I%)$IJI$R^[Z^[ZDI%)$IJI$RI$I%)$IJY_NGi̯O'#Ғ4I%)$IJI$RI$I%)$IJI$RI$ OMB3:?JfI$$I)I$JRI$I$$I)I$JRI$ZaP?MB :n>ji)I$JRI$I$$I)I$JRI$I$$I)>ݿ5ƣn߂JRI$I$$I)I$JRI$I$$I)I$J`%ڎ{|>jj s9SIJI$RI$I%)$IJI$RI$I%)F vhy椣fwxt:JRI$I$$I)I$JRI$I$$I)K/?R-Z/?R-INI$I$$I)I$JRI$I$,̯O'#ҴfWiINI$I$$I)I$JRI$I$$I)I$JRfgOMBrx>i)I$I$$I)I$JRI$I$$I)I$Jai?MBx榒I$$I)I$JRI$I$$I)I$JRI$pSP?LqoM%)$IJI$RI$I%)$IJI$RI$I%0a93qoM%)$IJI$RI$I%)$IJI$RI$ 1py椣fwxt:JRI$I$$I)I$JRI$I$$I)K/?R-Z/?R-INI$I$$I)I$JRI$I$,̯O'#ҴfWiINI$I$$I)I$JRI$I$$I)I$JR}|+'撙I)I$JRI$I$$I)I$JRI$I$hH'@n}ձɦm}X;\Ȥ3̱EVȢX+ȹzߚA'XzէucK[],9y1vd:n)sAXd~u3kZ;Ay].=ViαRSoܼ}]KY ̃ѿnoswǫzs7wZr:]O>멱ppvysX~}oOOlJz\fS]mkF J7j=6m%)$IJI$RI$I%)$ILpSP?LqoM%)$IJI$RI$I%)$IJI$RI$I%0g.Ϛ9w|RI$I%)$IJI$RI$I%)$IJQF;<|Ԕl4N'IJI$RI$I%)$IJI$RI$I%)eXտQeXտ)I$RI$I%)$IJI$RI$)~ZVr?-))I$RI$I%)$IJI$RI$I%)$IJP?'撙Ӳvm]eϊ:7Qrؖ]]nkml:k=S$M`ۏ6e0kS@:E9QS6_c|L(SK1hkZZ֍k[SIJI$RI$I%)$IJI$S ~\)s:>sH"yd\ԟV.qgCfOFr}ѷSoG{`DNW~g7##=J#Do~ /.-7r@8)gFfm n5Xz'W7I0I?{ko_~ԯW_}%}?bTmפǪ5s~)Nw9˓ؿM֔I'TI$$I)I$JRI$8[ঠ~n߂JRI$I$$I)I$JRI$I$$I)I$J`]=55r9$I)I$JRI$I$$I)I$JRI$owx)>i)qtÄ)I$JRI$I$$I)I$JRI$I$,KԵj,KԵ%:$JRI$I$$I)I$JRI$2S`ۀȀT1s÷8ʛu O-WqNxOH<41ڢO_kcOX W/M -h2){bˊW؎.byJD$JÎI%)$IJI$RI$1ݿ5vRI$I%)$IJI$RI$I%)$IJI$Sr93qoM%)$IJI$RI$I%)$IJI$RI$>IBߠ8:4|P+6Kڰ>'ହ|]5AFr3">_PPa=4c/&]VT6N#Ǐz_rg:p? g_㞧zy$W^eI$JRI$I$$I)#g?/ <_#g?/ <jh!&pD@h9S-qtLFD%Dh4Ha1 S4蘍8Dh4ILPswCb4$8Dh4ILPswCb4$8Dh4ILPs\wCb4$8Dh4ILPswCb4$8Dh4ILPs\wCb4$8Dh4IL-?$$iF8%H>)) NX0#Aw1a#M)JcÈO4D4yi(93h4>)93"F Jf0$iX0$@h|RS4 fD E3"D %3I@a"Ccù4%D E3AILP,qqCc@h|RS5)`Vk,$Φv6F?S7dm ͺ7@INI$I$$I)I$JRI$I$,̯O'#ҴfWiINI$I$$I)I$JRI$I$$I)I$JR񟬟w{ ^̼g'nsvsRI%jI$Rz_r`g/Wչ[~iyIFߠ8iq)k)p{zp~}p}3㾶 aV1LֿWmP˙bN^w15]7UsƏI0??_Ҿ;7%3 kQV΍4.GuCk5>'q/c]+UY{2&6P浭c_lY}O7l;)}8tY>=poֿWmKuC.?n?dgռzMɸ+qw(A褒I$)$IJI$RI$ ~MFX8%6RI$I%)$IJY_NGi̯O'#Ғ4I%)$IJI$RI$I%)$IJI$RI$?Y?\~@xOW;=ߐ*Pſag/椒K9ԒI$&']Vz_ryKwI%}I$$I)I$JRI$6wC"6wC"ʣoo??j$I$Sw8_fxDp?a{Z俛?x1$JӄI%)$IJI$RI$xn߂[঒I$$I)I$JRI$I$$I)I$JRI$!@Y)u5=xVqoQ%ckVkKhm`w?rn|YOA c:Ndjk^ap{ FcCh!RxּA.{1trBX#Cy2Hizk$J׻_Mi'e=Mᥱ6bߣ.>N&T˽td9_쯫XϘ0%%8cϏj">ȸ?Am1x|KRI$$I)I$JRI$owx(%4N'IJI$RI$I%)$IJI$RI$I%)eXտQeXտ)I$R1ʭZCD,{$@scs|ĂSd`_]#Gk[kaj^}]Fc\ǹ;cdȕWn. ׃f~WG?T=@5p[G )I$$I)I$JRr?-+Mfex9餒I)I$JRI$I$$I)I$JRI$I$/*ǻ~ʹV?o-9~5$YfI%.E1?/& ~Șw[G旓Əz_I+(I%)$IJI$RI$pWpU{x^+|VI$7RI$Q4Յk:'i և%o\?ُ̩$V%$I)I$JRI$I${ƃvvRI$I%)$IJI$RI$I%)$IJI$S?]wZPM kI?o}u>5,ErcK$F1F %jb~Jgfy1>1Ģ$ݺq/}-|OM )Z@}s_"Fl<5$HRI$I$$I)Jh>jjc珚Jd RI$I%)$IJI$RI$I%)$IJYyojYyojJuI$='0P^ixhn;B@YA{ٽvݧIOgGBt8ٷڝ>n˫c\5>PnқsۑٟjV5k.ס916$I$I$$I)K3+S5)~ZRSI$$I)I$JRI$I$$I)I$JRI$g'/*ǻ[o?ԒIg=I$^Dܼ/Y"bUnV^O9?~NI$I$I%)$IJI$SF^@y^F^@yTyzY$TޕI$JnOG V/kZgpf?2IZpI$$I)I$JRI$_)_)$I)I$JRI$I$$I)I$JRI$I$Ⱦy"-|kLX'v~o|'ÃRI$o)82qJ;>ȸ?AmO.P[kdl4RI$$I)I$JRI$h;@t:>jjcILt:JRI$I$$I)I$JRI$I$$I)K/?R-Z/?R-INI$]}msp\I%>sӱzWG1W^ٛX{Xr^M:x6~ B>FC{,@wC $Hi0K.`sZ =PI)I$JRI$2ȸ?Am|//I$+I$$I)I$JRXt<|-C撙tI%)$IJI$RI$I%)$IJI$R^[Z^[ZDI%)3j{X,ip.K[9h'źJJx (%li6ٴr]WDU]1=tzAXә۴i%ť.Szf=%MkX?wMSI$$I)I$JRr?-+Mfex9餒I)I$JRI$I$$I)I$JRI$I$/*ǻ~ʹV?o-9~5$YfI%.E1?/& ~Șw[G旓Əz_I+(I%)$IJI$RI$pWpU{x^+|VI$7RI$Q4Յk:'i և%o\?ُ̩$V%$I)I$JRI$I${׿e5=߲JRI$I$$I)I$JRI$I$$I)I$J|=1b-gƿňyg8?م$J6S'}s_"FL<5$HRI$I$$I)J6 cRPK ILt:JRI$I$$I)I$JRI$I$$I)K/?R-Z/?R-INI$]Sk_\|#򢤒-6U7hmakJ숙.ǢPR%HKmL侰/Zo@81 h.e8kkln%7I$RޯE~Em׹<3T%cDφAǴ #T%cDφAǴ #T%cDφAǴ #T%cu'H cu'H%3I@ӡߔ%'t vϔȟiЁ_>RS4 ȟi0@y&Jfy&|5H|5ILP/"}xk>^DI|5ILP/"}xk>^DI|5IOu>5,E[dp I$m'N9IGbԿ(-5t\?i1Sx~'LG Vver_?4 &#_9O#_fFi15HT%`Om|>`Om|)JO_!Ny& RS4 ȟi0'CTȟi0'CT%'L )>`Om|ILP/"}ry: ӠsEO_.yIL^[Z_X ;[q4X~_SǶmlFINI$^]O-x!H|*I)_:oL˯3)[mfݎt̮-]3Z\w9.%'s注fTY`6U 0˦wJ;~%Fc }w?})I$,o-u6?e9e$?O :qxcx{p#O96U/.k781gsBI%)fex92=Ok僚,1s %<8III$I%)$IJI$RI$)`VE)`VQ$IJQS0I'O Jy>tͣyo:3N{z5y x$ |ʲ.׊g(?}/{e$y$U$IJI$RI$)~ZVr?-))I$RI$I%)$IJI$RI$I%)$IJ^3Uw ٗds7[vrjI$I$J\/Y"bUn^LE1?+|/''y$WQI$JRI$I$$I)#g?/ <_#g?/ <5,E[O1@O0IFRqd㔔v/}KpXR\>i椒II$RI$I%)Fѹ )#kX:xIIBO+cD,ڟU~C6e}m'#oQ})z~ӓVuo`yn:jYcw6D룁Y=9ޮ^o^p62QMNc#eE۩hf$i e}h`nݧ֨OlcChe?%_wn◟}fs*iqkۤ<ӹv59V?c9vyo]n?o6}z9nPIqGAjqR$H$IJI$RI$I%)eXտQeXտ)I$RIF Jxbg挾^#x A-,y/з~ں_vw1湌̌,eb̻ a[?Xǡ4[q{d+$<SI$$I)I$JRr?-+Mfex9餒I)I$JRI$I$$I)I$JRI$I$/*ǻ~ʹV?o-9~5$YfI%.E1?/& ~Șw[G旓Əz_I+(I%)$IJI$RI$pWpU{x^+|VI$7RI$Q4Յk:'i և%o\?ُ̩$V%$I)I$JRI$I${׿m~)$I)I$JRI$I$$I)I$JRI$I$Ⱦy"-|kLX'v~o|'ÃRI$o)82qJ;>ȸ?AmO.P[kdl4RI$$I)I$JRI$u;3"=wN|M `'@rZ$_4?8OZ$ۏX~<H5}xde.p^ Ma4USl*IM` g'(%9"_l,T Ó_i齑e_Mg8QȤ- ̈)MϹM'vC׈}Yh]$x$I)I$JRI$I$,KԵj,KԵ%:$JRI,Ϭ_Lf4Hdpnc8 s|EyXUcP\\K]J6$K]$I)I$JRI$I$,KԵj,KԵ%:$JRI$xn8&w7|Z%ZI$I%)$IJI$RfWiZk3+SM$IJI$RI$I%)$IJI$RI$I%)xOW;=ߐ/f^3Uw 9;o9${5$I)pg/Wչy0^Dܭ?4s47I_yE$I)I$JRI$I$ȼȼ?[ڲI$*I$/k^)?/3OX^ִ9/;3~eI$)$IJI$RI$I%0# v:)O)$I)I$JRI$I$$I)I$JRI$I$Ⱦy"-|kLX'v~o|'ÃRI$o)82qJ;>ȸ?AmO.P[kdl4RI$$I)I$JRI$;3"*=wN|QD|t#SGI$LhU_[S`?ٿO$|I$JRI$I$$I)K/?R-Z/?R-INI$I$$I)I$JRI$I$,̯O'#ҴfWiINI$I$$I)I$JRI$I$$I)I$JR񟬟w{ ^̼g'nsvsRI%jI$Rz_r`g/Wչ[~iyE[_o3_zbY<}?’I%yI)RQؾ/E mb}Kp[#`__?I$V)$IJI$RI$GٟyQvgE$#gbLTϛN]ԬeWCpMmo@ p jfex9rȸ?Am|//I$+I$$I)I$JR ;3"FF} 3菀NNGJI$J16c=WmmNsfe?/$Ka$I)I$JRI$I$,KԵj,KԵ%:$JRI$I$$I)K't:O`[gQ5wk$R:GRvFN _umg5Koj_猼f㑐nnYxpp7n!vi$YC K ^{VfWiIMNN>/qG5ƧI)&5=5ƧI)9cS!S[:Lj{ ؉HHTIi$BHHTIi$BHHTIi$BHHTISI%04G:y=4G:y=ILM΄OuYu\~@xOW;=ߐ*Wo-9~5$YfI%.E`='^PE1?+/''oo3/I|'4a7ϝܞRO*i$|/I|Ja7ϙ>wrySI%0O)zMw'4SOw'^Fy^F^@yTyzY$TޕI$JnOG VzMw'Q4ՅkCly7XzMw'&ʚJӄo3/I|'4SI|'&Oe4STnhu=Xuc IG'LϢ>:;y)$I*SMJڠ_յ;s͛AԤAԩ8`kkgQSFfuu<)A𑩦yG'4SSLO gDrxSI%054:𑩦yG'4R+c9ZAX`u<#P|ٿ-嗟)`VQ$IJI$RI$I%)$IJI$RfWiZk3+SM$IJI$RI$I%)$IJI$RI$I%)xOW;=ߐ/f^3Uw 9;o9${5$I)pg/Wչy0^Dܭ?4s47I_yE$I)I$JRI$I$ȼȼ?[ڲI$*I$/k^)?/3OX^ִ9/;3~eI$)$IJI$RI$I%0# v:E5=c44I%)$IJI$RI$I%)$IJI$RI$_o3_zb[]ύdp I$m'N9IGbԿ(-/E ml~yxjI$XI%)$IJI$R'f[PUGٟ73菀ND|uw}2?(RI$T_յ kjv?? 7)}$[)$IJI$RI$I%)eXտQeXտ)I$RI$I%)$IJI$RI$)~ZVr?-))I$RI$I%)$IJI$RI$I%)$IJ^3Uw ٗds7[vrjI$I$J\/Y"bUn^LE1?+|/''y$WQI$JRI$I$$I)#g?/ <_#g?/ <E[_o3_zbY<}?’I%yI)RQؾ/E mb}Kp[#`__?I$V)$IJI$RI$GٟyQvgE$#gbL5,E[O1@O0IFRqd㔔v/}KpXR\>i椒II$RI$I%)QvgE^TzoAI#p>G'Xw#%$I%HU_[P16cI%’I$I%)$IJI$R^[Z^[ZDI%)$IJI$RI$I%)$IJY_NGi̯O'#Ғ4I%)$IJI$RI$I%)$IJI$RI$?Y?\~@xOW;=ߐ*Pſag/椒K9ԒI$&']Vz_ryKwI%}I$$I)I$JRI$6wC"6wC"ʣoo??j$I$Sw8_fxDp?a{Z俛?x1$JӄI%)$IJI$RI$x1? !M@x1? !M%u_:X]71ξ 3wPUeʼ_{Cֶ5~ݰgt go}V6czQKCu1ɉSG韷sӋ?.7$4|jh_:U,kjX@náRI$I%)$IJI$RI$I%>E[_o3_zbY<}?’I%yI)RQؾ/E mb}Kp[#`__?I$V)$IJI$RI$GٟyQvgE$#gbL{Syk[>G%Ct>qV욭W8]gM/pm븶K  *̚k15Ǿ6t1w$DNW7[̢+mnnEϸ.yWzFXNE[_o3_zbY<}?’I%yI)RQؾ/E mb}Kp[#`__?I$V)$IJI$RI$GٟyQvgE$#gbLX`q#Q1Q},>AfD5u~c 0$tm [y:1~a4;5,E[O1@O0IFRqd㔔v/}KpXR\>i椒II$RI$I%)QvgE^TzoAI#p>G'Xw#%$I%HU_[P16cI%’I$I%)$IJI$R^[Z^[ZDI%)$IJI$RI$I%)% bpKZDֹEpZO`JԱ }[u Sifex92ϭ#oȻ?//!9`!d1?˴a_ܫ1uyh.ƾJd͌kny))*ue7+#۱/ d4Sp[o_n_-DSp[o_n_-DSp[o_n_-DSp[o_n_-DSp[o_n_-DSp[o_n_-DSp[o_n_-DSp[o_n_-DSp[o:Ԟr2ET[axD%k2w̩2j` y@XoVN>WP+i4(C!7cLFp{rt?/TI7w,G>WYK޳ۧ Q$닷U$T=[ݷ굍n\{KwR-Aj$D`g>c$79'g/KԿ Z" ۺo? Q$ ۺo? Q$ ۺo? Q$ ۺo? Q$\:um HiHƳ<ozSnW]ΕsjfKtn]k4z6SZ܌g[;pǷX졗-dȍO\ q  %?O {rt$1~Y?8?ď|޳ۧ 7d~e?/TI/Hl#Ga ?} SdI=\u/|wR-Aj$u/|wR-Aj$u/|wR-Aj$u/|wR-Aj$u/|~oSƺl4 g-_?>Ek+SMe ۧ ޳ۧ A¬vc݊@ $=U̦i؎A\_(?ď|޳ۧ 7g)OAzI}%?G>WYRYwIpwy/RI!6[?#(K  ۺo? Q%; ۺo? Q$ ۺo? Q$ ۺo? Q$ ۺo? Q$ ]y]ڙSl / @IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%0spA9 2މsr+}8xl6Z}^$Q}mC#|SW2:]oc =~ozP23f :s\1MMp o?hΡ3̺ݒ--h2$IJI$RI$I%)$IJI$RI$xLrxxҹ}c1]sEWWr avK?tvu'Wkmkk#pkHp X㑉f&^=@wр5iUS.xj< 1k.9 wel؞Au#kdCm{[M5m`>))I$RI$I%)$IJI$RI$I%8_ nIvEKeqkHc[<y[HvUVtSـ+ї;:>N(ɲhmu,{ _Vů&@x4mpؗTǧ7')Fۅ[Es5-I˭NWI:i I$RI$I%)$IJI$RI$n$=+G6cݲbes:بZ6tݍU ښwډHxq>q} ɭX潥hBsz%4Rhc.k⛃K02<]nƑql1նZ COٰ(& ӹ߭Ӕۏ#̀˲0I վΐηqs^;Ր#P~멏2zSwےo]ߘ~cA%=K}h5]~c.sگ{>t+m%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$u^ΝMG!76NQpm&lת}Y~3hfGuA=SZ#2[_n%f[``c%Ѫ]73Vُ4==InK{u28kߕ9-rJ{dz:>MUϦ.$$I)I$JRI$I$$I)I$JqGOeU0Fu-y<5{EYfOl!lv=/NUcm /5Ic4:jJvPه ^ JRI$I$$I)I$JRI$I$#tJu)9-`9VR3ǘ m=A&˲\_8Ge[ck=5]徱Ƿ*jgeMp-n؃INN긽Zf5 9>a[^s2,7 }L0YuŰd8;w[1-c] ɱ۝q/v%=BI$I$$I)I$JRI$I$&#p NJyo=8*k cK*vwR_5Lzl/:IswtY8Tmh{ \q}waܚ{c= VwG1\ƽk pT-OsEG'ٌ*¡-gǸ=ek5걄y8qhSI$$I)I$JRI$I$$I)JYߵp1Cks7ԒSye<>}yko~z}AͶ05[yxȭakl9̞W!oAc񟺰ȵ'7IOldiô}>NƼo77t)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$^V[cIX?Z0sm4U185l캴;fMo-{K\ׂ/{ZvdL<ϔ.eT]@x |ֺ?PīdXuaTFٕ`>XF3\g4]vS׽#{-9΁D$JRI$I$$I)I$JRI$I$?tvWkm}6!wicn?s;&^c[s 8cqEպ]T*! IL:R8ZK-XX'UƶʽK[E Ʀ̆4%fuq?YYvP"GWcOIOHV1G঒I$$I)I$JRI$I$$I)bQ}tzr1k:_V?<8atʭi5dҨ=G sYUmج}Lӡ2<ì`t yILu޹VETʃL<N:u J2[a,`u&iV̋:u'!c- [^)I$RI$I%)$IJI$RI$ je,""A`7>ONtYohƨc?>-?/$3Ԓ0@x4?9JI%)$IJI$RI$I%)$IJI$RI$U[PsYpf7֏>RSt[1+َؕ+p{Ûu'W|I0"O)42p }M%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%"Ư2)ne-pkuӲhk:gYf%u:oƫBū2Umw-piToT[sicks]]6|LM1ƴCZ DI%)$IJI$RI$I%)$IJI$SԤYML9%ͪKI/4 *!;QCqji>X\?I5׺gKh5N9Oцj=SrcduWP\[j۸_9 WX \iuA5m{5d+it)I$JRI$I$$I)I$JRI$I$ t׿SZv9v\38X6S+x}\_q=prskh6z8 ݶaF;C_XnEmh?mGt\dX[ YeMn#]l{[~ d9]wC`CX ˷> /XObject << /Im60 501 0 R >> /ProcSet [ /PDF /Text ] >> endobj 515 0 obj << /Length 152 /Filter /FlateDecode >> stream xM@D-`n[&&L}A̛uUU2* 1JSM~ kmB$du)oS"&e5˄u_Yea` f6ߋ#O4-c752U|$( endstream endobj 514 0 obj << /Type /Page /Contents 515 0 R /Resources 513 0 R /MediaBox [0 0 595.276 841.89] /Parent 510 0 R >> endobj 513 0 obj << /Font << /F20 12 0 R /F8 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 519 0 obj << /Length 1991 /Filter /FlateDecode >> stream xڍXKFW,.>vO^699(5Z>F~UդFcMX]]]]ϯ=x0I]mVi8[%q:]m߃Gw~ѩ ϲ˄iƴ+Zm Vᡪ~XV&&Q~e*+j:ƾ8OXuVqQICJlVKNzAN>ZFWY~gtq)q3Iv/KN5fZlא=Kﻺ=tGtfLCkrL#J˚/dl&C7 VmujV6\o232}tt3)9KxA%e5>Go񰮾{< Fttx5Z,eOPfF#ccڒ0X" -A<2%ٖ2vM8a:Od4wǓ-캣gaWx o"I,j#٣xcl8]k$WVN5ȧ_8 ]IЯ-* RaYFHЀk(}?ֵ{"(X,B^+x|o ? Ŏ4y{w̒02KחC=q@|\] nTh|ìjXEלË{$XoRp\\g, c^b:ʊ5־k/w}U> RԓO[dk2x)'$joK &F Q>Lo{eFY9|t?(JL:zS]yx.5vU!S5Lku/N K@fJ"p *6o#GCk͉rIG- ߃XJS_o*Bڡs+v͞;8xԠuIdR%VW] uy^N1 {/_=譠P {ؠ,s$@O'}Ŋ"~L8A1| BҬ-o`{ ?aTi.գ;pO7@]'d@WZWp0ˆ wke R]a(AN5K{3򆯍hڨk\itcKc!&un eңY{Љ (5fbk8S'(r@zLqC I =R#bf&+>ĻB-"!澒O2PM+"KWM8E]?7F@ ֋HǴ @:t271ߣ$M|r^mj3fU!SxdyQA,9-V@CL=v> endobj 517 0 obj << /Font << /F21 16 0 R /F8 6 0 R /F51 33 0 R /F19 7 0 R /F54 39 0 R /F18 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 522 0 obj << /Length 2665 /Filter /FlateDecode >> stream xڕY_۸Oav͈EMȡ-}H򠵵rg %Ù73WoEpaw . XnxiW>aRfz2 ǻ_^ 3;,*X"✫]}@|bNzc/q~~!eFkh7۫X( .Fh-Gr"N`\ _'v54SQH@Csf#= 6bfRJgw@z}տwԯvվ"+ 5cs`#@&Lk"`ej=tEt m f8fpah0Uh嘴Aݻ%߁ge[6_~CE1PUX*{=͆Bos+vEt6s8_>-9dz@[U^uKCv`d8K-SA7GX;ZVk$(c旨S0 [M0G\.>qirS}N-Ϥ'&0G{w5~yj!f]a`x`_HCgcٻwhdSFj(ǣ}nañ]u:ͧ,.@BXv{u^'Aif$pV17lfaWtRK벡!TRs8۲QQan&HǺ{VpNMo {<^2E&ı\\77)W^-dNcYix>h5w]e%Y5́ BHWDBrS @9% .*?&Wî.wx{DvZl-/ݑ]\!*]f9q)GjĹU DFD֔Q1\hkO)or| #F6;C]1Z8x!A/ e@iH |6:xE"<5B7@X=a) _*e~И,T轇j]: chlնqctm\*4}]4LodnE]ۮ]V0QM h~DѠ c}k!p(#!Ss0zžHyn1G$;- &d^͞.ݎ⋜hGC{BKcxҐƀoRW Q0#y40D:'y/frnkC*5$4JJńCK#HeK#2#Ǚd^QX8,?Wd  AWЊ$J% rt󨈞1L1^+ج%+HuN0PfG9l%v bh_"&NL{`mB{{I:%OS"NK xFp&>%D3MD4Tpr s8?,&>8wGM)40%,BʝBG0GwucY~, "}O; C!h(ߵD(X"B)8z TId>'Z;<p$_yBy4Ii{f8h4* -Q E8gu*@?ﰖN_rBEHįϡ̩ڦn gu@ݡsAΉnAv^tV6YFH( &c^YT`2kT;zoL+ICKQr8K$am#?2&x+;PBOAZN! Re>6%XE͡;4$RDq k.# 9 ad CzSeK'kHX mfN(R?PmS.<)>9baxMc+1GFU,f%mKhBz=,Հ(%ƫB q怀̹̽k 5QS+L@P}72h]O}NfÑrmCj< ʅrVsGF8IAC1 iwӷӠƒ #ݯyi>+3q5DKq P8IqIY=ys|h}n^8\(2% m=ݨ^ێBF.S 7ܧ~O1t9I UM'5D [㋬/&Y='EYH=c2g ,iavC0Q&,C5nJ}B-H1ivm8W2fH'PX#JAM(xû/ .ACIgG19wx+><߇\rf.g)|A3hE<{/x6I Z=;@ ;U*p V_k1' ˁluk2 endstream endobj 521 0 obj << /Type /Page /Contents 522 0 R /Resources 520 0 R /MediaBox [0 0 595.276 841.89] /Parent 510 0 R >> endobj 516 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Filters/CryBabyScheme.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 523 0 R /BBox [0 0 832 191] /Resources << /XObject << /Im0 524 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 832 0 0 191 0 0 cm /Im0 Do Q endstream endobj 523 0 obj << /CreationDate (D:20080817115224+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080817115326+02'00') >> endobj 524 0 obj << /Subtype /Image /Length 14690 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 832 /Height 191 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;@"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%<'DOu.eή"ZkKsiUn47_-d?M&?aikY$?M&?aikYfnѮã-gUIY\y :iUn4_ OZ$'iUn4_ OZ$'iUn4_ OD]F[n.ȫ]dԹ u I%9?OStI47OZI%9?OStI47OZI%9_U ?U9&IŪ~W<ֵRI$I%8Z.cl]xkfiЂ 47OZ_Yk$'iUn4_ OZ$'iUn4_ OZ$'iUn4_ OZ$'iUn4_ OZ$'iUn4_ OZ$'iUn4_ OZ$'iUn4_ OZ$tt<|!wO6zVt6cqNO*wMZ)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$K2e4%XCZĹ@5ak5%9]Qplp]ӅcRI$}s }vgN-GclI:VGJO~cu;5y=:z ]WP\v\wi#T,uGuvCKi{C]WWN<=/`1^}͢lcœm~:񤮋{ IulGx%5r.=> R뛿%kְʃr[S5\̿;3ӰORpk^[}z4nۼt]2E6b-Hi/;C~ ̧/έ I>g~=2%RSOW#Wu&K\ { BW#eӋgP,}EFV.vDw]]/u2\:.a"K]l"BJfI$$I)^_ZY?T+ѿߋkZ)I$JRI!3+eu)}%9Yk,u?p}RI$I%p>Ρv3km49i >4j1S6[Fa?kgyo,(8W8 Y%)$r9V q k@RRdE-uGZZMWØHkttΗl{v:ۚ]g_pIM7׾7}`$7#nS ՍeE1+{}G4ppNC\mUUe֖ *XL$J8gzVˀ`k~.ƻF0%%=R1cds oW0&/W~]tZY^a5;&6Ή쒝 13yLffA"5.;Xl:c;𺐷;U{[& 5 )E8{.0Axժv^ ?6n5_ho#n镛w֦}fHOk^k js4Jo}\O՜q221Yy&˜muTs|k,Λzp2 NaH{jMxˋw;``wgvwJJtT2:Hϧe1ԸahB.SB߲X\{ W1uocs,k\424$I$6+Ü,uMkoӽhh?to&_U905h2Uӿߟj%*-~gF{qymq<}n!$I%G דoXL֍ƴp ,gEy%)$IJI$RI$I%)$IJI$SzYXՃsqfFSsiьüD\RO֯w#R]ӅcS_]>F_]>FdS_]>F_]>FdS_]>F_]>FdS_]>F_]>FdS_]>F_]>FdS_]>F_]>FdS_]>F_]>FdSWgg31oƿlܭ,o5dI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)deӇMU~æ*JuI$I%9=Qplp]ӅcR7pgNnUsb7Rcjכ i:YqV9vQwRظ 8ڪmˢ}4+kYEw0Z4\7xckǫ%!mm8jT^o՚uuzmֆ<ُ۟Sh~$i VQvC,oٵ浶4alFs_MN=1krNF>֖\?vL9Z_7FrtWHΟ̧g3oCfwOų09/ZPthRZsOQט\眖S[m.|w]Ω)I$''];MeVJk oh;K^Ǵ5T~:F۳LlP?o.Z$NMLs,akMfҬtg8{y&U&ؙ߱i9}NX1p)I$,NoUk5e5it䟴=2H{5;wmLߪߑy̠dSR(mvԸLv^\fJa~efۏ:20*/9lv~BVcR<{.!̴;-{cW&N1< 22=OUۊi>F+Vl`nMv#^dA0; JK[(̫.Ci%Y͏j<.KQ2,{Sk\9k+~m5 JuӄQjʷ6zVzcwfaZp- Բ.n{\xh 4%&I$Sѿ k,(8W8 Y%)$IJI$RI$I%)$IJI$RI$SįF~/yk,o5dI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)deӇMU~æ*JuI$I%9=Qplp3vVwLɽۨǺh=iUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4o5e E muV` kZ kZ44I%)$INO_:8tZYX;6(7sC!ZA,W)SU-?M/W)SU-?M/W)SU-?M/W)SU-?M/W)SU-?M/W)SU-?M/W)SU-?M/W)RUӿߟjT'E閛n.%nYMu8v1Ā$I)Jn/Pfp{Hs\/Ưԭ;Іol}_q/(S4&#QV~F 7H1uH!sVmۓ矱oy7IOyǰ5FZ 'MT1ck,JIJI%Bֺac_KXoLwm,n,_x}`+5հ{llU%)$7]_@]^5%K*>8o1%;),Py]1Xk TߣCulk$$uzGM^[V=sjt>f=Y걯ۺ1IMI%)$INO?Jo7ֲ^_ZIJI$RI$I%)$?T9g f݃UY;u/c"/w%; ,G/z ~?{?INK'7Qޡm_^oxSx?nC$cu%P%:,G/z ~?{?INK'7Qޡm_^oxSx?nC$cu'vO/&ϱf6žWS4uԔꤒI)K'/O:obeNN7oRSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$'=wNY=QplpJjul:VfV+=KǶڙcB:3J-ۉU;.h8sIZ"AЂ:E}Xq)ɵXdWNFete}g2cՐ旆c{Xd>z>a_?;"iEmf,dyj_Uewdj)ki{V;練Ԭ^TN1wzwc7Yk6j۷xS>I)ѳ_ՌVCӠ:c>M:\vdчm+ >+\6O;YӧV߭JTWUD?|~~m郦3ٴu심} f=|SCbޗS ?:{򭮺e⹭ nersnȤ՘f?F3ҭidI')2jx`c_&A??߉p%-mmVcN%95/GvMDd Ys}KXIv&6& r4j.c}@|<4:gl|36=o'/!1aeuT4,e.y~Cqv4Wt$bƜ,¨C[2K{C_t{te̫-Dz7SEma-v]Uh_gNkmVzn n,<v#i;kcj+ǮvTΦ#R$c}\y\pݓ2}`p7[RSMs^H#PA#_LmO?p?ڈ}M'}|JRNO*wMZ''];MY$IJI$S . f'|WZ=3]GQ]MU]{#Sc Ӻ*~kqݕ1m^XX xӔ$wY{oe82iޫlm[۷S1ϭX&m6iʱ]]vi;clrJvX[G@89ṂvS4u{p;r~^rM)ݏw[f;q"׷kgX$%C7+;N2ghrǺja7l0㯾JRI$z7_-eѿ %:$JR'SثYdeӇMT$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$_9+̷WzSiٝy3]GrJv굷49Xã1#C.:T쬧6zf&NN%! 561fAq6XC78^ em=*zPɪcʷkZ[[*Y! UPA(߶>d^|u /BΟUm̲Y*U_]]mM*.K36ާ>_Eȱ4:t4LIIOFI$'=wNY=QplpJRI$bu<;~u~>CK->m Jktq[hf5 +@>'YI$I%)$INv78;$nA<vkI$$I)^_ZY?T+ѿߋkZ)I$JR`ւ\ܑɏ$$I)K''];MeRSI$$I)/R_#&Y[hul`=Q+?h2Xhck><lJ|ۣ.o>>MVfOVʮ=suM XOp~}[³~vN?N_󔱆s422C\YKͦg;"V2=eV?GO_V:N踝72ۅMxv=eLc-&>2)"lJmy>kWEd4i+;>7h- ^Jq~dՎ].0&c+kx4GuI)I$JR]Ӆc+W<z6UyO{k1pcxIOTHA?'I%=G9?I%='Sت:%t:sۗq {(ʢvc J{?=G9?I/?uI)\:$HA?'I$Isߤ#P$%~OK{C`rJz?=G9?I/?uI)\:$HA?'I$Isߤ#P$%~OK{C`rJz?=G9?I/?uI)\:$HA?'I$Isߤ#P$%~OK{C`rJz?=G9?I/?uI)\:$HA?'I$Isߤ#P$%~OK{C`rJz?=G9?I/?uI)\:$HA?'I$Isߤ#P$%~OK{C`rJz?=G9?I/?uI)\:$HA?'I$Isߤ#P$%~OK{C`rJz?=G9?I/?uI)vt^mFjYsvY-{Fkq߲#P$:$˨}SUU=;;F݈X cE`5Kko՞Uc2\icmt8bTZiaھ]Jߤ#P$ t }/Ga{ ǭdgߣnx)Q.-ߍiY]55ͭh-HA?'I%=G9?I%=K Ws~>O+.E; er_V'QۍR }pnM]Ӆcl:c?xQXJRI$I$$I)I$JRI$I$$I)^_ZY?T+ѿߋkZ)I$JRI$I$,Ut7NO*wMINI$I$ ykoz{= H\o^=K>ǚnǫSzyMk2 m:۪Ub?=k\ZC%=jKꁯzYu>+4=;;d`}W7?!W̰u=J{ԗ+Fƿb5etv][^̃P `d0u]p?\[s]oЏ[uL?Ws>YX :t.S.OmغI%)doG¿Z'=wNJuI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%9XSE RrB7m <,սWO3ڲ@sog_5$(8W8 YdoG¿Z)I$JRI$I$$I)I$JRI$I$'%z7kYdSįF~/yk$$I)I$JRI$rUӿߟjY9?o5%:$JRI$_ظ~*N]ddP5쇺Ljs k} "G2dYr~VCgOWi=wn$?#fd77*翦;.cbZKƟl  q=c[WNfOOq4e:wstLVJq]XVeU*n7G45Q·8I;xgԞoFmoMq{1WDW1@Jpsu<^^FgmfֆZ@~+|k|hI%)$IJY=Qplp]ӅcdI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S{g^{}Q]t.{ 0?aikY$?M&?aikY$?M&?aikY$?M&?aikY$?M&?aikY$?M&?aikY$?M&?aikY$?M&?aikY$ªQC]U2ZִCZ֍M$RI$I%)$IJYG3iik's.59pȢ--SP/G/z Y$?{?K7QޡmI%9?^oxx?INOnCcu-dSP/G/z Y$?{?K7QޡmI%9?^oxx?INOnCgtFA9eۗw.#.@Ҋ`UԒRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IO endstream endobj 520 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F24 17 0 R /F19 7 0 R /F51 33 0 R /F27 41 0 R /F28 49 0 R /F33 42 0 R /F31 67 0 R /F25 48 0 R /F30 40 0 R >> /XObject << /Im61 516 0 R >> /ProcSet [ /PDF /Text ] >> endobj 527 0 obj << /Length 2776 /Filter /FlateDecode >> stream xڍY[o8~ϯ" v1tY`1b+Jr=7ʒ$b!yߡ?^k**qUf||ݮ>EޯӯF|SDml[)z}Y47 \rշ+ sJY[>}Q-R~@3+q$ЮW\sLMnU:ɣ7[v<ЕNUW4{W BZ*Cە[nVڴM_mˮjvL,^ 50W_ChE84! !⍶q<~9FDa^0m3l*Ic0 zlxLm $m[Pm3EKl<_'~ت)H,yA)hXT{q ۫ ӫxL}{% = +^D {[`@N98^=r` 'f'OZ A=pJj3q0lYh틞g{ t*ŷxOwKi!(53wzCu]  M<00kv#_g[Ԓ]]R- lE|661ه]0b6/u:" o߂!J0S /ZJsƱάIግSv*(PþL%cMјA7^0  ϖJUy8_nv;qplWAeUKSOi%4-AT``S==* ToY[W6u7LyNBopu q,z  UjO1 {#@Zߒkx9 Yn!Vнƛ[;e;D)`)yRP88t9zV>* NjlQ/ qM ,p3BB-e̫Kl g2:~<Ź&8&Y߉]'Brdmw8D~BdPl;}9D :4 9bi-3:Lk/ e@!jM1gXi H˃uBɚ!q1F)lt&c`)5E L QTf92G&eDaB59fա|dE9LTC=@\IƧ ]ǩ]P52 ѭ?{Q((9䘟0ϑ/'^1ܿS!YDg 3J۔b RM3ѻE1'FM*΍}E3F) W% йxf:YI :Y Z~ g]SY|Y@ <\euut)Ar]ˀ3%3RuF̺$^(޴U)s7\Q5aubFto@4#RدFws'Wϓ:=3&rXE;RH&vn~":/x {s^=-/t])%ai@xl8"N# < _yQ%髃G X & c|)cJ דQC.a_fVɻ;|ƍngR@>396? lo 7u E;|z%b|+T UYG|MXE]_K,>9/sn걳F^IpDIw@7#6%7Q+ Spp;G Hyksn/Z@X[-,*0}]V۠^ˣVWEB$9?8?䎯bi)ab(/iӋȎDŽ9I4*zJE|H!걁?֧V]+=ٗ0hT /, TlL S25S󗔓#lߨ endstream endobj 526 0 obj << /Type /Page /Contents 527 0 R /Resources 525 0 R /MediaBox [0 0 595.276 841.89] /Parent 510 0 R >> endobj 525 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F27 41 0 R /F28 49 0 R /F30 40 0 R /F25 48 0 R /F51 33 0 R /F24 17 0 R /F19 7 0 R /F54 39 0 R >> /ProcSet [ /PDF /Text ] >> endobj 531 0 obj << /Length 2521 /Filter /FlateDecode >> stream xڭYY6~_KԻӴHQW66-%߾U,R-i`xUůj{ MD$Æ QIE<<_N<~($I)ن,s,")&< _wq 7|vdy$7Esᦄş7!yy&31͛_2\,MK&Ҙ}{j "gQPtЊ+L[Kev-IDX^ɱP\#b^s PF`ܖ Y3RFz36(E{ w\@5R6<#˸ V>w,I&NChk' Mƺ9 闳abi%^|&`-}{{uԟ2.6~+ąkjvX,.m<ԝZn}<&5U5,UoV dUC&=Z8E B0|fjnyed8]K^Dwp m?W һh.@z""MbH(ԉ3l9땪V WӞǓ&J@<sKexS!C )K2rU }j?FN 0еP6q#%z `%*& * *jZS `NZhn#mNCa@mw2RP`EPH'۪l_i,aUKPWQm\o@p^dr= Z|fq{6B[ggce@pebky#Qυ &{$I *ni7Jj#>Y>,T6ʃrT}Aa%eM= ƞt(ӰGv* ?r@[T Q9;Uƀ %da!>z:J d&14⏢Y1Grj@YL/vc.H\MkNv\Π5]౼;Cxy~g_yv/2h(axo1(n l]`3 q) (/R9ߪgvj HTC}Jm(qq^#^ WF<ǫ, ~D8'  CF60C[V급_FѼnRnma2f'9w;II'BIz6EwL0LA՜0WDk1!g+`fSyOyZ?^ރ?$F $iPRRu IX*:pW*YZWj:Z/׀ .tE]}FQ86R䆝Jryi,id:i0bU֌W@#%ٴґ)9Thk"Z4|IzmNnxN ^;B~PXp0ݖ @FbAgjRZ!(`Jܩ#ХeLԳX<9 lqc uBC:DP l_͉iݴD/;2Q +Alg1<0" Vqlpp~>? :'=RJ^P&B 8A \R5Z7.yl8Rڽ +-&WF5c槌1*ǭc)*s3% o*NUrO`dq$2;Vk-7$b\L9'ſ.5(:I0P(`*c˓ %[ĶW-={U|vQt&:VIJ gGut'V3NJ7.d)Ɉ=H4C +Y]EAsoH|}կñw~ljU}=8tq8KP׽R|٧d +Gg_^*oh\\x$_^9;sK-?+!)Z#.( TQ ӹcfx㌥bce*T[i endstream endobj 530 0 obj << /Type /Page /Contents 531 0 R /Resources 529 0 R /MediaBox [0 0 595.276 841.89] /Parent 510 0 R >> endobj 529 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F24 17 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R /F21 16 0 R /F19 7 0 R /F18 5 0 R /F54 39 0 R >> /ProcSet [ /PDF /Text ] >> endobj 535 0 obj << /Length 1731 /Filter /FlateDecode >> stream xnF z Xٗ=4H $@1CD%73Hd'Aso޼}y{~&GKΗqD1u69'RFY3NG1RЀ&Z?4a{8!gaCB s.yu"%Z)X'wDXH+ IܜP"ڣ~=߯5OU@sOuҒ}`,1"*DPnDʿ&R*.`_W=˸IE$s} qAfLZm@Aٔ$V (yt g_ԁL,6rmҼ)26MòZ*|Wob րl2P sBrD{x2ZEIѥ=Bt>݈XvT C^1sl&l+tD(M>؈0eR9w=K{⌥CMTB)M Rm (M1K;s(_:ގ0ӄCQ>̍jv*b@>ann[{sh ̕!0ءB2-muqY櫰[X^4Q, I`mێ7G#0Әob&${5{R}W͹0x`Fͳ*~roC(diU.a-^Vm]#.|-7:aV "ɮ wfC.ԂK?ؘ͠w{73 RAKY΂<,@ftq[ LՁbSygfǴ(Iu1s1%/m9jd2cҗ.@ap0@O[Ȫ7w2񵑪Ҹ*oZl.+蘂psy_,U`oY.FFsY&N T;3! e[g0I>k]T*G藶zS$֊€TW눎gY"R揶uOZ<+O^^.Xz5'^*zHYzYa%!h)e_y@ wb\e65OTBoLF00ۡ0(/CY#w x=% ƺI#PۓpjpR*}f&` > +^ M؀*q.(j7uqnݡ(wBҐO+۾Ƙ CQph#)}@o&}`gc *3s{UмWe-q~ x9\l^ fiH(="7XAyY6hדўj1<$pc*eoU]e$>W^/Em0ҾpiO hNs~:Sv:姷c\ASrV"ܽB8@cXky endstream endobj 534 0 obj << /Type /Page /Contents 535 0 R /Resources 533 0 R /MediaBox [0 0 595.276 841.89] /Parent 536 0 R >> endobj 528 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Filters/SSM-Scheme.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 537 0 R /BBox [0 0 395 452] /Resources << /XObject << /Im0 538 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 395 0 0 452 0 0 cm /Im0 Do Q endstream endobj 537 0 obj << /CreationDate (D:20080821133119+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080821133134+02'00') >> endobj 538 0 obj << /Subtype /Image /Length 15281 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 395 /Height 452 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$Ce߅]/"}QE,*'Sة)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJY?Yk,u?p}dI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$NN7oV'Sة)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$U󳱺n31>XƵ5qs$K'r=Cqʗzs%:,ӿ*_T$/NC?^7;yRS;Pnw9zwINK'r=Cqʗzs%:˙iˮdzO}*(~KCr=Cqʸ񍁅skY;4E 'Q>?u\Vt뛑a!viYX=7t^phƭV?fpUV?/NC?)Id^7;yR;PnwY%9zwKr=CqʒdOzs/ӿ*JuY?T/NC?)Id^7;yS,=z26ehINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR'SثYdeӇMT$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$~æ*Y?Y%:$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K'/O:obeNN7oRSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR'SثYdeӇMT$I)I$JRI$I$$I)I$JRI$I$$gctgeͩc=u.ͭk+k8T/NC?)Id^7;yR;PnwY%9zwKr=CqʒdOzs/ӿ*Ju3EӁ]9?k UQczsq f.%477ֳsvhO}/5))Q긭7#C-d;N²zoV+э[j~$^7;yRS;Pnw9zwINK'r=Cqʗzs%:,ӿ*_T$[ۙWc*k˥p6[ pJIJI$RI$|n켷95g9ems\ zs%:,ӿ*_T$/NC?^7;yRS;Pnw9zwIN~}a>p3r'xJ,{6;Pnw;c`a}lijZnwNaT}ƥ%=O8]W:cHeibcVVM`c<~1mUٹ4Dy=Տӿ*JuY?T/NC?)Id^7;yR;PnwY%9zwKr=CqʒdS~{s*leM}9t}qIZ)I$JRI$I$'/O:obeNN7oVJauc{jckZ։s,۪u` -iv|zיN.+un~Mi}IOaz~kk~M9 }NƼ=20 s1R/&>uwnM];=]=RɶεWElɶ=ُSs vlGOP c=\6cY55CGݒ%gb9tֻb=2 xk~fdj-1:|f*龖&[zߌ:%=KVuFv-65]Udz}gsQExyo~~{7ַ{An@d뽩O`3zSNUl)QhduD>DXfsWnR6>[FưAGH䧣UO̶0iȷ2+ƽ:\6֒Ze:OU{CkЦm6DZ}FU[5K75Ϋ?]k}zq0.KEonC{ $-A)\s}ՊrNsv]aٵMMY-sqPCQif>mf>mfy;Nڔ,Λ2wQFS];!^Iya?Zi)'SثYdeӇMUI$$I)'SثYdeӇMU]uX>ڪXֵ\8 <}gx&9}&sËZ]$:>i.޴>S=dcmr37Db=5kScu߇NCokSmn -&C\ pTɏ]]۫extnNi>m;OxTmUo030rm|uvcݛ6_>Q澪+v;C1X:G%MkrMqlzvwdIsXE],_u꘯i{+̩ߙ?iLGdN;Yʰovl4é#pλO@wվQ6݋E5vUYm',~~Q^->_~k.c_ {[:jS$޻:8ӕ[.mZ!.koQQ?lnjw\U[Աxc ~,Pyw7)|n-4єc`^Xq!6Jr~æ*Y?Yk$$I)I$JRI$u?p}O_:8tZ)6K˃lic8;^4++i_]8.sP30k:l$}Z'(E6Wc2wlI?u>_1[Mz g|>[M5mCYfH Q-8_lsq\=U׺{ﶿDZm\ⲺKz}nUd0wn6U eQinR/9"ƾmُ`h}o[0`x ^Ӱ_[׌Z,U6Qhn$Z1hn'ZmMfӏKeeݎ x_ja2v\ӱjcnS}J-ve:COc2{kILgKzT 909vִ4IѠ ~V35~[^ol/s `mF:MONfnM{C4:衶M_Du O=:_Ju96hmv9_mݴ5 )_nNU6>} [kֶjhLV:EhC3.ۗٺ66=WYfEouO6uߣh!۸׿UNSnm[2S4kƦkZ ݯ::L~E2ƿ+ZYn ;w;ۨK^zML{veZkٷe}{6ͤm"D?Xy9OٌޗceWet2m{ͶVӦZ7iJϭ= N^W+~mgeoFk;}cgX]s",`_w:~f}]Yݔ˜KqCroc_S kZ;)XS;l}vK1׵6U5P}0ٴ;_OU;H`~۪p`Л+i-x)/GP9S^3fEփ]_@k#S&KˌI$eӇMU~æ*IJI$RI$eӇMU~æ*IL.T^\cKX18AY_OFQsug7,ɜ\^8q΋a$ޛy9F)\+`oI㨆 ߪQl(k={o/n74@J'Yic01ֽ{UeL}}=h/[or!q %k,{KwN x}Ga5Nh{tnoC~mك(bnZUbg*2Cu'WLыF;q:cnn46z^,.pkǤZ nS qjUsrP1k)2}FtF]BJg:^GnNҥqϱsN U_)^C{Ka{ [k7lzv+3roE9E m$kRYSqɵޛCkM5nƱIM|Ϫ>rr_ew`m ]յSF`/G܏vܼ6l o2(~C}ɵE9 \ƈ,> 76G*pzsmؘ9_v56PݛX^}hzf3,5^zϴ8wMޞ@=Xbje۶.^;,sٰm#i bxf/+kmV67jѼ{JV}iTPrr]DfWf+\Kk>C+~mw6]Д;^:]>wfnvӹ3Jη.\u [{eZ֎~I߼NҘqcc\1ƽaBYц͡ݥO*z/-ޠe@sS~\;IkԵ)Lz>k>Ȳ2.^2\f\fI$'/O:obeNN7oVJRI$I$$I)'SثYdeӇMUI$ 2ё\|_nŪj_]0ZX=C]? ^(K+-,֊, -no eBI)U{秎CqKȲlY5pVx[:r1e϶>EHq- p 97.$]u#V1ius_K*jS̊kh'IZ L}`=>!t[i~C=ײg7{Ƴ[ $'[znGL߰?"\fhif='Lӆ~13ߓcGYk}O:}2I) v[MX}eZ[.i=bNܶ=_:0__N}';N3[\;\نַv$Z3Ѣ6ko!=e osõ\7U*_n\~vjnʝs?eh$H.qncI%)$INO_:8tZ'/O:obdI%)$INO_:8tZ'/O:obdI%<8MacRp~-UU2z챂Yue`UEX>NYYo4e-4d UG`ihw| n3-IOzM/=^zggF3N<__;m~IN e~òj-xֺ\|IsOwnwK=>aqܒ6Wn3u $?u;[y ﶫ(k}+f9S_u:{ţVuT?+A"AstsI)I$Jr~æ*Y?Yk$$I)I$JRI$u?p}N0#Usmn>}n,oҬrҪ~?{?INK'7Qޡm_^oxSx?nC$cu%P%:,G/z W?s1}xDmɧLm^j_;&#{q:{7|o`l$$I)I$JRI$I$$I)I$JRI$~æ*Y?Y%:$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,u?p}O_:8tINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR'SثYdeӇMT$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$~æ*Y?Y%:$JRI$I$$I)I$JRI$I$$I)I,߬984;cnV?9ɢ H(^oxSx?nC$cu%P%:,G/z ~?{?IN~Av =:*q9Ʊo6$$I)I$JRK7FN?Mĵە5kr2hƽ nC$cu%P%:,G/z ~?{?INK'7Qޡm_^oxSku}a݂NʜCs2qnE~zcO"G/z [:-sZ>? )uZ΍o\sN}\7`a3oA洖OnCcu$Y%P/G/z )Id?{?K7QޡmJuY?^oxx?d?qJȕ0uWW̿&[!t )I$JRI$I$'/O:obeNN7oVJq=>k1k n>{ⵞuCCpGLe-GV6ŵxSks^ DfՕV54꽕mxmmmum;hn=&읅5fӱp6O*Ρ3וnƶ22}j0s2\vaո5%ˠklC86.δcF>EW9ռ5යv:$K{$ոpk~FӻYYheC^12ɣޟc1іe>2k^׷tQ̧3rm/koڶ6Q s ;kcky OKr:Tǯ*}"M]ehpscdp}t(я[蹘}qۏ] `} F--{Ku.pޏy÷2mǮf82eŭNmmOnJz\}]U&m_M~X.v;n,`f1[Hss{s,ݴװA#M sE_Y/3Neִ?iX}8uixi-l֜I߽z1ӑw_ AIJ'SثYdeӇMUI$$I)'SثYdeӇMUI$$I)I$JrzS9xXx,ΰݒ lyn9OгzV7GWfOJ[.5zU}ޕ湒v_Uek}t߅NY,e.d=:`!UOV?Wmʻ)عtY~@J.~җ%H%)=?Oz6z?O]un]l;X׷{M0vXnPy \Ոn.G1=cߒFNݲB}:u6эuyCeuVnc O4$I)I$JRI$u?p}O_:8tZ)I$JRI$I$'/O:obe?[^ͥ*Ƕ[\CZN7zs%:,ӿ*_T$/NC?^7;yRRl:nS0evYXsml%̭Vư h$h,ӿ*_T$/NC?6k4>gV9?5 cd8撝Ozs/ӿ*JuY?T/NC?)Id^7;yR;PnwNuO4Ŏsak|zE mUT` kZ kZ49zwKr=CqʒNN7oV:Vxaќ]~]M /׹ϷhkNti)I$JRI$u?p}W`m{+K36:/ems i:T$/NC?^7;yRS;Pnw9zwINK'r=Cqʗzs%:,ӿ*ZM-մOh.{8ya%9zwKr=CqʒdOzs/ӿ*JuY?T/NC?)Id^7;yR;Pnw}eӇMUέձ=xtg:g`߃SCjǵsc]JRI$I$$I)I$JRI$I$$I)K'/O:obeNN7oRSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR'SثYdeӇMT$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,u?p}O_:8tINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)K'/O:obeNN7oRSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$~æ*Y_Ye},X_{,":t )Id^7;yR;PnwY%9zwKr=CqʒdOzs/ӿ*JuY?T/NC?)Ie,=z26ehZ)I$JRI$q618Ƕ5sQ;PnwY%9zwKr=CqʒdOzs/ӿ*JuY?T/NC?)Y?Y/ӿ*պ?SǣZrhmYx}cCXu))I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$eӇMU~æ*IJI$RI$eӇMU~æ*IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SNN7oV~Av =:*q9Ʊ<쾮Yѱmiϵ˚ /mh0|SI$$I)'SثYy?X ûu8VdX܊ƞEv_W]լض4ecv6>i)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJXUUԺRoTë)UbݧI]qVOFz+gTc:c.k_^0C7qn̜}򭤒I$'=wNY=QplpJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)KUtFgSɽg0(J{.$^7;yR;PnwdS9zwQ_I3:5pc'95~æ*JWzs/ӿ*I%9?T/NC?Y$_ߑWUVNs_O)9èec}nv[ $I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,u?p}O_:8tINI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR'SثYs?\^M8uӓ I^e=p[%=2JO8]W:cHeibcVRRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\ogּ\KpC[sY4Z'K]I)z~7JmF5m|ue$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ endstream endobj 533 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F19 7 0 R /F27 41 0 R /F28 49 0 R /F25 48 0 R /F31 67 0 R /F18 5 0 R /F51 33 0 R /F54 39 0 R /F30 40 0 R /F24 17 0 R >> /XObject << /Im62 528 0 R >> /ProcSet [ /PDF /Text ] >> endobj 541 0 obj << /Length 2392 /Filter /FlateDecode >> stream xYKoW(sqsć(){2,KN[clTJjG,Hx^%Q! ldjyB$E=/vZfkmWG u_zG2ERHdPQBep?oH&mcDM;k0SYszt >FʼPLh]D0Be)m[ ,ԪێZWύyUYtU_5̡!U4"xE"3$M؀fbR0"5$NC[u lIۯ|:Ah%4Vj^%,4b?JmHT.Fn׏ kSm@O JǪW@o!SpdR$R 7DqgװHA67񇡧5׳ߊ\.>!x J\w!byE\wnΜp*Ǐ\Gdz]1gԨɀobWHe:N?uľo)ĜYR׽4}Fƣ QcS$]vL12)y h#=؄;-+Ժ}Li~ڏ84ñ6/n8iy=dү:(rBa'ATh v]<Qz7킽ud/+V,d8xJ! a1dm u X]*ǂ5+cE&udE՗?8Y; +ducil;~[ޔœa#$XQW= ,_0I1Qg/xwD|yC8A* @qOn8Xa@'ڊe -Yg=Ka-,4KψLh6 \N\TbW(;b]GWpN=nNC!TPk Dz:i]]k+T`uU6"[Ba 5$LIp #N9 $ijRfd}pP ۵ՙ oXPAIϳbBk P9 ),@ ~h9kVv4ڱVQgZk6,UxIYB9 ʹ{2=Dhnhj.'g0: &YV 3%D a:=c4vD ``a6s ١mIP8q=T$tC_Z]U.J/aT1v"[KjtQm$:exל({NYs[5\lպ-T hPw?)e2 86FL-p_}@)A >/bAa 4Mp$F__yR@wFSR]ST5^x>g.+>U {#RZK6pE?5-׮'?vciKJ(#N["ΰ .|*2#=waOct= Zt/>hwe% CN3"-ABt4)xXhDi`rn:[ތa ʟ>,ʞYsьޱG U-)v2v*5`(? >ɔ($XÜ&ӣ$Cf3S7dH+Q}aQ3fy)p0%ܫR% ЍZmJzC $~wpyZH(&AnBp`;b1A n߹`.Vߍ)DfWct[ԡoon+DroD=|Ԇ3sk^V&đ'M RN.j|[=aCs'KbXJs8bG?K,$_xUJ u |9uVsb&CWSC{q b| ~ endstream endobj 540 0 obj << /Type /Page /Contents 541 0 R /Resources 539 0 R /MediaBox [0 0 595.276 841.89] /Parent 536 0 R >> endobj 532 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Filters/wblock.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 542 0 R /BBox [0 0 670 390] /Resources << /XObject << /Im0 543 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 670 0 0 390 0 0 cm /Im0 Do Q endstream endobj 542 0 obj << /CreationDate (D:20080820163837+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080820163855+02'00') >> endobj 543 0 obj << /Subtype /Image /Length 28808 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 670 /Height 390 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)%JuX ⼓mո@kqy o(v!ֺ w4MʶJ,g-̶'mMG禢ΪZ2h5 m%ui*u[=fC^Êߓ\ɿkm~˺||;n$oW:lgk~CRB{uCƐ=cfC-=YZOX(i*(v!ֺ w4,g-̶'mMGj;_?m$QgUsX}ǶjUoW8lf^?{{+ ~Mr>U[q%OdloKe>[>i[oW:lgk~CRB^ܻzUmĕKuCƐ=cfC-=YZu1UE1^= żZ{ Ƴw̵/lQMU_gSmeTPCum*i=&Y[m7N[{i;Z?CvVITΪZ2h5 m&ޮqu̼5[2;V}=?J=~Jɿkm~˺||Ҷޮ1u?6wGۉ*Z.>= żZ{ Ƴw̵;c-cuxC?؟tI*2(n 5v:hǭD{.=cW\{`~amoW8lf^?{{+ ~Mr^W&c}tz_h.Kۗx_4-m\c1cK+˾m ﳪ \|{@fj^=cmΦ2ʨ؆7ZGT1zL2(n 5v0?EUδeckñ.MU\xjd=w8-5gz~zUmĕ?Wٱ׺=/?tlm\c1cK+˾m {rUU/ \|{@fjw[YU;]{h;K=?0UUYgS9nePA;mmuj8h=5uW:ѕ[@>\{oƯoȹ/lïVISޮqu̼5[2;V^Mf^Ko]旷.޾h[q%Nzǩcc? ;[7 W|gUk42Yi72ԽzǯG6IU}LeQC n׽cgS9nePA;mmuj8h=Wa[i%R:hǭD{.=cW\zǵc2l{qX[kx(ۉ*~W&c}tz_h.Jzǩcc? ;[7 W|;n$_gUk42Yi72ﳩ(v!ֺ w4{b~am$ΦrhvOqzj,u+}]ﰸ^ߑr^_U\xjd=w8-5z_͍}W컧g/n]|(JqS~Av=o,.'ΪT1qi6d>`n5e{d_ҏOm:k*bk{m1PsO2ΦrhvOqzӵ JuW:ѕ[@>\{oƯoȹ5Vskeِװⰷ#QUT^Mf^Ko]敶qS~Av=o,.%˼w?VITΪT1qi6d>`n5egSmeTPCum*i=/lçVIUeL幖Cq֟ 㵣Y\FV>=m&aq;"佳;U[m%Nzǵc2l{qX[k0β+DZm71̀w:xdn:v?VI$I%)$IJI$SOjf}iǫ|xnsXց$ euSWZ9(|~~;Sridil@sNJqcѸ^F羊K6~:>]6cVڲ:Zv9ow͝ݚ\^rzQNp+e.-[;#okaq{Q% L e)zxzU[e[h9 YTuu|NK'WF㑡:em.n^=V7'Oef?NkZw8o¬Rlȩ$\P 3_v /ܦNw|96Zd4?ok:99Ta-֯X9,d6> 8a*I$t$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)%tN[`bZk)e X.ĸW?_ OINK'iUn4_ OINK'iUn4_ OINK'iUn4_ OINK'iUn4_ OINK'iUn4_ OINK.6OZ¦z* SCX.;Z8I$$W]%\U>1s\ӡ!KiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$cc:o[Uqml1hq>s´q X=Sn +,k={GSFC[A#auΣ[ pۑXi)ac NiW?Iꇲ~+y+Idocl8:RˋA&SGoUkn?@wfdC21*m.#f[U]6Z h͓ݟb<JI$iRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jrz7_-eѿ k$,Z?`ѐ7̜{ds=l|ddYU.ijlpkh>tn<SsuʺɽkF6>0^.;s 8uY7ukU@~#{DELzTlp~Ss˩k{1@=ڑ(S)}T@n-wR_xO))Iq=SQSwXY*e쨼 ˈs7?x{B:XgF3ٺkpIMnu4z7!ϡk`[[FL`gcu,:AasN"Qi}mZak-s\4 }X7GoXTڽ[II$Sѿ k.v&G^5:!.#FK|Wtf'D餒I)'SثYdeӇMUK+FGQ92Q~%nTSoh&~ )Ip[`R0?u~1Fׇ724vCC0WPCUm en An IrG}]fe^qXƆ ;.8+?۾urZL-ܜ;*n]׵ͪH5M${RSܤ~~t_[ٟWxklc;Bc|ou zvF!FowRSӤI)'SثYdeӇMUZWk `f<=GOJwI$I%)$IJI$R<}}wwo*x6ٕM^k/wG|w{?7Sq$LRI$I%)$IM\Fe#5.]آgm^ #yX#3 ^vMRϩeu1hB¡Eփ>cװj52?sr&tZEOz 0_[eM{K @w֏896S0=vX nx)}d1f{j"1]]!͆)K}ef#w2'Rߺ~1r^ *A:?ߴ0WNM?j#wF|vND1ju62%Xִ΀g7/[ {zo}Y gR3$gh5-&sɬ[c8*'g }z-?Sf ~u5~;Mu#J8WM_:,ákc:68vge[m,X=HK6qvQheeT)-}/(%Hek5E)$^I%)$IJI$RI$I%)s>/X:6̊k CFz7_$?M&?aikY$?M&?aikY$?M&?aikY$?M&?aikY$?M&?aikY$?M&?aikY$?M&?aikY$}\xT׍E}A*6p\a &V]ӅcRI$;,ɩƖX߫;'ە2kQoWtcޤv9[kxvix AB!o(S ^im ] :+kXրִ@@IKI)>/Ys$^2X>łbuI\tミɿac]?]ӅcS47OZ_OStIdS+ a__P-i5L~æ*IJYZٝ.܌-czuV6%ktCZvk:*5:xcS;j}l|N~Ibu*zN;kn6'Nc$;?}fXs詝C_k)ͷsCΆgU8fޫC_[Wk7˟S KGui$+P]΢ʱpN#pxnN[(_߅nu؝Jۍl%IӘu$T[sߴ-v=< i$uUYEm[c%kqCABWqU\u7䏜農æ*INO?aii?M&INO?aii?M&IO5t \|}}Cl+ݛCDBVO_:8tZ)I$JR{ϭ  =@hdzy~Jګf%ken)WC#{6I$)$IJI$RI$mnK_{Ѽc355c#[n5]C۽O;~Ϗ|=5qI2Db0C7k]cik\dp0K8suPgCu\뤷sKonnvRuLvd K\!dvUAwΎ:3h5a hCCOc 25:'x eQ-k=;kps|sU*ʘ\[[CA{@{˜LJI$I%)$IJI$RI$ѿ k,(8W8 )I$RI$I%)$IJI$RI$I%9=Qplp3vVwLɽۨǺh=iUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4(8W8 YW6GNƧ8׏[jiqm``a%)$INO_:8tZYX;6(7sC!ZA,W)SU-?M/W)SU-?M/W)SU-?M/W)SU-?M/W)SU-?M/W)Ræ*YYk/85[S뱘5sL5+M%)$IJI$SNN7oV'SثY%)$IJUq̌duv^bz44/5ZU0u99:`!5Ϧ>w>;Ooi$bI$$I)I$JiۏfWPe5zo%qcߒa^suBFCkkP1|u~ߒq I$I%)$IJI$RI$I%)$IJI$RI$ѿ k,(8W8 )I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$INO_:8tZ'/O:obdI%)SmnK_{Ѽc355qS'ںٷziowq6z{>igu7I$)$IJI$RI$~[3[ݵnѡ ҫ̶df%۫Lѡy~*t;yTI&I$JRI$I$$I)I$JRI$I$$I)K'=wNY=QplpSI$$I)I$JRI$I$$I)I$Ji7{*fکfHf3MxQe57Sac? bWK23]UeuNJhhoiͫ}mbXawa ?=hQ$YF0UU7d:bkT_[\X4NfKs,ƥ :qPwQkk=MEZ#9fJ^lv+sCKSwԓ1Tc.Ce4!մΟ^K+ƥ6 /MOMV֗t S:K3e;mw3w7x°zY)3. ZgM1ĢmrYR~?Qylx,گOf]f7ڪweh. UrNlY:m׍n%SWu:3-Ӳ[1iԀ*/,'V[{C,%i%nEXDFۭBDqNծfKs,ƥ :qI?fWKr;mm_$}qKnvkSz~;v>-5:ETΛM6cUEtMC`I%;KZzl~?Qylx3MxQe57Sac? Ip^MwֻVZmu k6F,neԻ!V`!*IPr-ߡݮΟ^K+ƥ6 /MOMV֗t U^z[AVij(1hlft߳}}wz>==;6īI%;{7߻VΙnkq(հiltޝߑMQ}mq`YI.+?J]z,neԻ!V`!)3WnCuͭT+d6W'iw~TI$I%)$IJI$SS Sc cZ `Q^7|յOz}-}F| I$I%)$IJI$RI$I%)$IJI$RI$ѿ k,(8W8 )I$RI$I%)$IJI$RI$I%5q>BwDz4F-QNEmh<4Ae/mUuwi湣 5k$Pxa(ASN-HO:m]U=հ֜6[+Y[2}}lz3{4̑/lܮkܹ9F;|`2ԿhN.a[ʡ_QΧ}XZέ7-^]IJylUn-%hf{lcHgK:ʁtd$߻۵gT8%^9@Pg8EJ\ޥC:NoM N`Ȯcle{svnVߧ^ͣilhgj:sk{,rI&~}1>j|cWѯ(#AloI$sI$I%)$IJI$RI$I%)$IJI$RI$I%)VϹP׶i7PͤL .VU|䲖Vy7[[m?& v+ka$EcNN7oV'SثY%)$IJUqml1hq>s´3-v콮;jhi_ktjlI$$I)I$JRI$x?dWP6S-N=_/Og\Tmdz+27Ւ^81o\O XРI1JI$RI$I%)$IJI$RI$I%)$IJY=Qplp]ӅcdI%)$IJI$RI$I%)$IJI$S[[~c a#x4$>ձz6#ra_MtIJ.3]vP\b&Jyrl~2r1 ng9L' K beaRbWagŠkgqY\; k`%!c].Uc|Ĥg@?a*^lVl]} cluLH[ݿ4~?;|qclHr~æ*Y?Yk$$I)J'>Z,6ƴVnj XuorZ1iw$bI$$I)I$Jja^suBFCkkP1|u~ߒ?-n{[b7U|Hi?&o;I&)I$JRI$I$$I)I$JRI$I$$I)K'=wNY=QplpSI$$I)I$JRI$I$$I)I$Jk3%e,}f+i*Xecw5v ǎgU~ćg`ͧ5e7$S,2@(pHiߋwV tjIkXn8mL>Ju_ٛm8YVVe>%ti qAKDcR#OMw7pcwb09H;fSpf'l:%Lb= y<I{b=(rbDƤdexeǡ/Wl~!9benoc۽YΧX.L)Vcu p Y b q͏%C0x$I#ګƷ9aXG;K"JFRI$wtnպK2gW[_K-p`v%¹47OZ]QplpJr_ OKiUn5cuj>;2"kjyƬk=1YW~ֽWRl˲4u֗{K4@BJo?M&?aihFeW{[fu6PNٷShGFJr_ OKiUn5pAhi-n$OJs?_ OKiUn5cu? .ݷp=`]kAx׳t˩ٸt9KIt'/O:obdI%)$IJI$R^]6㱷4_i}j>ͻK~ӻWW<q Md#>;s[O=^I&)I$JRI$I$#2ّnQ3FFJ'>Z,6ƴVni7|W$IRI$I$$I)I$JRI$I$$I)I$JR]ӅcOFz+$I)I$JRI$I$$I)I$JRI$̌UfY{]kqkZ~jҫofo'SѢ6lڭ 6>aI"I,uUIeUnwOe5vn3\4AP47OZJuY?OStI47OZJuY?OStI47OZJuY?OStI47OZJWFz+>bbu\*kƢ͕R[8X.0ր+m%4zI"ꩶ׌{ F,M2gdvSmIO_:8tZ'/O:obdI%)Uf[23]{]&vcװj4=^ mIRI$I$$I)n=]A龬yxk~J⩅{ϭ  =@hdzy~J~McD()$LRI$I%)$IJI$RI$I%)$IJI$ROFz+z7_$Y$IJI$RI$I%)$IJI$RI$~K˃qDT.V|fd{;L~M#auzW*I$ZeӇMU~æ*IJI$RI$I%9_Wuy77u@ 簓 ?M&INO?aii?M&INO?aii?M&INO?aii?M&INO?aii?M&INe?V~N Vf5Ms\!pd I$I%)$INO_:8tZ'/O:obd[>_CXD]C+h7oYUztێg~;^˫s>hKc!:_^ͤIO_:8tZ'/O:obdI%)SmnK_{Ѽc355qS'ںٷziowq6z{>igu7I$)$IJI$RI$~[3[ݵnѡ ҫ̶df%۫Lѡy~*t;yTI&I$JRI$I$$I)I$JRI$I$$I)K'=wNY=QplpSI$$I)I$JRI$I$$I)I$Jkby<]p{Z Yٻ欪̌UfY{]kqkZ~j5#_I"'SثYdeӇMUI$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jr~æ*Y?Yk$*Cggڧgy=j/*Bjci}յˈ?$%_UmI$XeӇMU~æ*IJI$R<q Md#>;s[WL+vN}nV(mmpF=ώOz!I&)I$JRI$I$'>Z,6ƴVnj XuorZ15#_I&)I$JqT97 ڰnn;}.sM91wJ_i?cj]QplpJr~+Ծ+լJr~+Ծ+լJr~+<װEWgt6fEu9X :O-NN7oRSI$$I)I$JR]ӅcOFz+$I)=Sft,[j#)u4ha".)}WWttoG¿Z)O֯w#RO֯w#VI)O֯w#RO֯w#VI)O֯w#P:^]EcYckP0>ඖO_:8tINI$I$'پћN]h=OFjYK3[U{]mhpwh+H ~Oo$Hr~æ*Y?Yk$*]_>Λjm15"۹O'/O:ob}WWt}WWtY$WWt}WWtY$WWt}WWtY$WWt'dshcj4Ӑ׺OѸOFz+$I)I$JRI$I$$I)I$Jr~æ*Y?Yk$*:-&eհ!۾JʯRӊ7R"Fkm~?;|sCl$Hr~æ*Y?Yk$$I)J#ߑܖ#u^'xV\Fe#5.]آgm^ #yNTzI$TI%)$IJI$SOjf}iǫ|x euSWZ9+>aI&)I$Jrz7_-eѿ k$$o֏wvG ɰ *?\vb\1=R%u&u֨o^]{ڨ52>KKh{c\45?hs\cdS5NN7oV'Sة)I$RI$I%)doG¿ZuhfCvU=ZX;4LO~wO.`b}w~'HZUSƂ>eX'RSoG¿Z굙,T)՛iZhRId^7;yRSFv-9(ɭT#s,0{._ ~_Vqux8qfcKj`;^g5]-6slh{C8 4))'SثYdeӇMT$I)I$Jkboa0Spc\o_߷䬪uBpn9*Oɸ$Hr~æ*Yw+;pf1rۜX}"$WWWt)Y?YcoӍk_l\ON޾>uG5k~>80pӋ3n wlTp))I%)T3*':/.ueFFYOlC2N߳_bw}v> 5 uC>͸fO!%=BJWh)kKlȦ*JR]ӅcOFz+$I)I$JRI$I$$I)I$u\^gS,F=v1;RSS/O:obe:~ufc׳##wۮt6(MY=;Sv54d{c{`cA=))UYZ1]\Lmn|**"]ռA~hJC}[s\tu?p}?ֺj,6ڭ첷湮kt $_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4, Wzo]B7 <<[h ƃGYU-?Ms⫠u.xmAk01KGs#IOAǰ5FZ MT|zs`}I$36[4^UmX8̲5ͩsNI%)deӇMUVGIenwOe5vn(s\ӡ$a%47OZ_OStIY%47OZ_OStI32[vQ&bJxr}ZmNKVϳT}&U7g 47OZɸ¿D:,W)U-?MK'iUn4_ OIMԱGKyuc7Ա qV&_>HfDgǶ~t8"WK8W͕̏sv~k}V8vFpݫlhJ{I%)fdSk`^S0sX;ZۀZ$:>iI$,(8W8 Ys}>/=?.VّMv4a`紘RSѤ_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4$_ OKiUn4,?o6%47OZc?վ}'j}v3mO-s\ d⫨?u%OJZiz]?ELf뺎蝢RS*Bmcoh/eչӀ5OiUn4ϫTV :j5}C l|r0};'g%z͉?M&~Xo_GIڰr_]ƩkS\H N7*?RZ˟7>g}?Tvn۽%%=K'iUn4_ OINOun>ߴ>,zxn}%47OZ_OStI):du\} @bLȁ/{lgt8,Qy8]? ٲcVYnִC\#kW v4{[|S$I)I$Jj3-v콮;jhi_kʴaPrsu~ClkAL 1|5fq~PRI$$I)]ӅcOFz+I$$I)K'/O:obeNN7oRSI$$I)I$JRI$I$'=wNY=QplpJRI$I$,u?p}O_:8tINI$I$%t#5Y^Zx֟}h[6H ~Oo$HRI$~æ*Y?Y%:$JRI$I$,(8W8 YdoG¿INI$I$$I)I$JRI$u+zEܼ[s4:Ɨ@&$+$'?Z}O1z\ΧǣǮ{{?'H<-TR^e5cߎeg(kXf&Vn!-Z_P]{U.oS6ۗv=n|[[ğu$V9?i?cj~ju>V=>6=u~S9?hAjI$*WPQ#{7_䭪~Fkr[^☍z48?9>;OoSi$LRI$I%)$IM<Q>;?c]W<}}wwo',wPRI$$I)3vVwLɽۨǺh=iUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OSռ{Y~?Iڜ]Ʃkd9 AZi$$I)I$JRI$I$$I)3vVwLɽۨǺh=iUn5Jr_ OKiUn5Jr_ OKiUn5Jr_ OSռ{Y~?Iڜ]Ʃkd9 AZi$$I)I$JjYK3[U{]mhpwh+J>ܻ㹶I/uh4\ہFIĝE| zW)*ԍ6:(m6;K)zK۽ >?gܻؕz[I*Yԅ5(u:; QkR=Rh?wVV&.uͦ,\:pu ~xkkcZ`zL~yslazVWa?aii?M&Y)c@>eyqM]Hc?co{<㴷ҕx(_ OKiUn5s_fQo<ϖĬ kuTPukWw+ۗx_4OiUn4_ OWnQkR=Rh?w-mt}7X\,1_J+=?0h?M&atQcSS^kǭ4 0L~yslazj_>E,h,.=C6)_{gv~ZFm6{Y攽Nmޅhw{|}OlJǏدn]|-[,BU:{U?Ռz){H}ai J{d_ҏOe%]-mt}7X\,1_I9.m}v\l>_?Jj;_?IVAγRƀ}"˜p43o⚻:[E 61yio+Qm$K۽ >?gؕu!MnqqcBV<~{rm$\V1 z9(~;ߞ2ZnָXE,h,.=C6)_{gv~_5,nDOɅ5ԍ6:(m6;K*67ߌ{j9c`4";6:1'܁FI$fw\uTctC5d9`kkX[[,w.o~-WdTq{)q{-`u6ocvgFF1LӝmI$*fFk]/kDڽG*T:h_gz YMI1JI$RI$I%4mdz+27Ւ^81o\@ͩcՑ[ZƽpDBtĿz?g[&LŰFĕKOJuOǹ)u18 .iN-n}?-!հ#wC?קTIUgKe>Jݐ-3MGIXxEή0!iT;a=zV:7HJ0qie,kv}a&gYnv*F#VJ_V%8/c?$ꟕsR*c`p\ӷcu[i*}2ܶۉCr[ 8 w~)3ʲݟV% |mll PTITWZ\Sm%U/[q(~[#nCaGan&tV[ġo <́*޿jI*t_K\c Zѻ暮(ǷjYK]~h?ޗO^ո}a&gYnv+z7HKqǣ_KQ>IV?ޖ6ZU/=+)?+ PTǚ0o;_L-PF܇Vh"ߊU^Ui%U/U(f[vCk`3`n5'b:`JېmX[J[Ӫm$ʲݟV% |mll WZ\}v,~ͻgcooq%Nލ/ǫkqj1il{OJuOǹ)u18 .iJuNWn[sġlEeYnϫewd6 L6PVzm$QzV+~.=.s6ykFj7HJ0qie,kvXz]?D}zVJnO}웷gm?$"z/Ʒ},sF%Xz[ejITT,{@YSk板$}2ܶۉCr[ 8 w~)T;c=zuVVtV[ġo <́t_K\c ZѻCׯUjISt1ģ/vRƱhl_G>onEٷl-tm25_~3|dc:67F"gngmOMSCEUz-{X[[_ᠴ?9HYT,{@YSk板$K菧TIUK>JېmX[I/U(f[vCk`3`n o-wڦJ'b:`;?c]RgKe>Jݐ-3DkهExǶ5tKq^o$*I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%5:71wF3n}No&v}6U:71wF3n}No&v}6IJI$RI$lߌ΍:cѿۧ;mTlߌ΍:cѿۧ;m%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$;U_[1ʹ9o+ uV`49k; $a$0qnwF5o;YX.qLRgYZwW6;n6lFߥ:UU xp{v55WqYmͦf;chX%'Qf4>nO·+q_`Mb_4lkY. NK?3>ncYc>ёS_ip q~bt} ާcksQ[} 'uM0 * +{:.hòhݿnѷ]V ξ̬a`2l"lsrZ;v8?nrSUW426Ƈ5871v<)}X9be`qu6k6XȷܚS9Jbs*[ocmy25c܍ڔ餱2>,p'3vS}֯cMm%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$wNʷbVdV1v9uOs I0ֲlc^ֺ=-a"{E«y=.|]utVlݽ q 1U-=2 kFWڬv!v:Ac!Y-n*eWEWeղי߽%<վِΧMͥͫ>97(W[[cXD$u<%ctQFWYn-3MS#jNNϻ>s_{`Y$vf9Jke>:h;sO]7Ѻ::zCZt0pc1sigKvnΩ;_R>I%5«+fdu'<ֹ\j\ +gRK-y],̫3]1{Ź}sqN5}lZC:9ߵ:VS}NwlX +i)v zj:Ls_]α_{PY̭7\^.y$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IHr?zSln6{5\WO¿o7`[^7C.}"ʾ˶)5˦u>IOV-9-:M˽&2n8֜+v [kͷ=_N\ kҞ;]R2++uOm->zcCC$g_?=O;1oOGK{*tH(G ]_Ѥ`ǨmU>i ڤ)JgI73"1"0{^c rdÚ=32,3^TPQq|b͟}ػSl+z6gPfaMVcw\mvV]n/>sqdzK]h ?{;d7vt[ $C:} 2wI{:n3jnEWU½ sg5ԚKz-oIxdljmq;nz*I)C~-"N*߳z6dcbl5ɱ8.zSԼ]]5%}䵠Y.ka$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IO endstream endobj 539 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R /F51 33 0 R /F18 5 0 R /F25 48 0 R /F19 7 0 R /F30 40 0 R >> /XObject << /Im63 532 0 R >> /ProcSet [ /PDF /Text ] >> endobj 547 0 obj << /Length 1993 /Filter /FlateDecode >> stream xڵXMs6Whzf-;{lv3L'AXkY+qzo/@Pna}>gD%3"1:)\~~{ɣeVZT"eˈar6G?|#qYt3ְ]ęȲ9w2)n~[fĐnSR*.*2VJ3!8IێxXYتp㮞-d״Z}}C8&ZH8U$?b0ፆoh@O#S]HH' "WLQFKGv ?!Ypdq4Vu&絝{abRL'VvH XJdY3qHg-믈,iϖbCÌv^5ю{{i\u5%ϼE6>f>م:Cៀ?M|,r&1,K);R2fe]~ '{\mB: Jc`9`n JP_OӄeVF+Y;HH]GJ^$x3N<%/|)n} cʭw4un30t$z) K#i"R@X̅0Ψ/"Ut1>_O86L_ƠACN.|gs7*&D[Rv~G*{r㰽 YDDw"3#ar]k ;A/3Օ%j]#U[ e OqxU>]O `ZQ$=S5)|$rR Z^;eR)"cr K"R$EQ[ߝ*cc!:>aH^Z6tyM;%3!>]O!z4|AE!|*cJco/|AYahͩk YBiCߚH!Ā/bEoZer endstream endobj 546 0 obj << /Type /Page /Contents 547 0 R /Resources 545 0 R /MediaBox [0 0 595.276 841.89] /Parent 536 0 R >> endobj 545 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F18 5 0 R /F51 33 0 R /F30 40 0 R /F24 17 0 R /F27 41 0 R >> /ProcSet [ /PDF /Text ] >> endobj 550 0 obj << /Length 1699 /Filter /FlateDecode >> stream xXKoFWJ w/%m 4( -a%kTDʊ/YRC9n=q97/xu%(c:Ҍ62"cIfu>yvm-4lHWW6 ˒#T &2%1O$j5eVۋh o,6JeZ)Xѻ?O,bRH t"ŧ)aGk}~jREv14ґg G2`%=`#&_RzHx*?кiUNC eo&_՚3abtQWp-[6X$y56n>o I|h7tm@CӶ&J閳p@߄͉Tݡ%ڵQ5Jq-x1\ǿ>#L`m0PwUS6nن6\[\I7~(KR3im! `e&4Néjj μ/;_MQ)H&dA C)1>R>*5]YꄼT (\c&-`[d]4'BB)V͜]CCspeLaCa<^8->~kQ7>imXu7we0jс:4-,JeN7! c=e¦*:=ƮEWRXObюp"CdO'\T?;#n|L ,zh@I;wj(j~cyp(UpY!1),y_7uCoIuY֘Eu;D6s9_-cQ@NNXQ(W/UyfsHVzt/@:ɾG:']& .Y/CĠJ !!MAv _KW0p܀QVv,}Aݍa : 1$CR] ‘ mdn(S>S@132+C*>&мrVc9>wb~G@^_/æo^BY4*qavy*a"OULeUn,nժzoM X@"|=V+}x"贏yևvhWzeKza:K^N./; \#K\]hB۫oP!~:;cPFz 3(dډs*R#=h'&ѵV]||Š TKa =EIÆ1VYSJ8g;6{^ {2\XkDDݾ-pGXEK;|ӽCӏ*/2$o F5$01W<+, jMsN@m6Y0>[.Fz,;?R_~@$4T~7\dc4'8=L MCS?6 J ztp(jӏE;A_Q,KQ}8WU #&u4]!BҶ^zaЙۀ\wZLK>_񋌽L^G_/a? endstream endobj 549 0 obj << /Type /Page /Contents 550 0 R /Resources 548 0 R /MediaBox [0 0 595.276 841.89] /Parent 536 0 R >> endobj 544 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Filters/wblockYann.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 551 0 R /BBox [0 0 514 348] /Resources << /XObject << /Im0 552 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 514 0 0 348 0 0 cm /Im0 Do Q endstream endobj 551 0 obj << /CreationDate (D:20080820192853+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080820192906+02'00') >> endobj 552 0 obj << /Subtype /Image /Length 16658 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 514 /Height 348 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,\"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I}R+ϲEuLm[H{s{#UN~ٻfg[(ݾ~I5uCYDk{ot̷d6W6I[Clɥֺŀsݞ;ʕbYMf 4|̝rIQvCZkkRߣ^N:c:Oڤ`Wm/6ϣ{ێ_1RW>C'ݻ;qX?ؕq$=oQߋ&vYU,5>{_gZ߅suy mm#Lw Z|KnLɡs[e<թtM[N\͌ٽ}i"b t=:~#2ܖ]mki%:|12f16| hmyZIG?,v74ԣ &Z3/@vzx:*SU^=d>n8} k?iWGܑ#~zi+fn~}ӏJVYU,5>{_gZĒeG~/xlj_suy mm#Lw ߉6lN+[O.ki$v|z*f[]{t+O-iad]f~EC[chOOJ^G`>XoTӫ*{iPɵ}pҗro>iۏ8ī%z_$?vTӷ*zgPɩ+r?О,SȠVskmYcVKܐ#zvj!mnm؜VI]C3!nvmm>g٧դ UGn;}jQKu m =c4#HޑֿB=?{U4ÕO~7nNV?v>%+prǪu _ҽ/g I{ޣݼ6U5/ɹ:`6E;οɄ~[r[}u'txP5z^Gb>X~=MVbd3-.ͽcͧl4zj0iu?"`!\gç[I/r],z}7iՃ^=d>n8} k?iK9_d7 SvccbUĒeG~/xliۃf=Tdn9}{?hO~MΩP+9,1uL+i%HVB=;tU5_6lN+[O.k̷d6W6I[ClH{wU5(ɥֺŀsݞ;ʔ`Wm/6ϣ{ێ_1Uđ$oH_a'ٿhd}n?g9VcK:MO^pwօq$oQߋ*d^~E[h"S_wd?--;:U4016U˳3Q œoUH۷dHWJszFQُEbզ举?m,W1c>Q~=I$ĩ$IJI$RI$I%)$IJI$RI$I%)SshmQlwo1%?5qT;bmx WO{L:s~9k8=iZ>n>N {\ǽ0͓2 ͵}RVzO[cܮC>hqG?œ~HzO~H7~۬>-ȵ\5{ y%#h'[7yDIP2'٦ԒI $I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JiV87ٽ첯ck?*u}Nk6??GߕGWI&%I$JRI$I$$I)I$JRI$I$$I)Jo=Nm:G6>MkVe}t:SgZi6.Z6V˜`MU_S.ǰ5p摡,ϭtwծ걯هnsj|8Op>FBueUuu_K2G,ulkXv<ݾ|)a=Yς.x;h-/ Z@..Zje;cYtRnq9+_#QH#dֹGc]BY9ScqMhk;bCAs*Wj22{ͦ-Κ N8OwJ}5ۉkqo aF'?7pk{XoS}96sCIk "g;?Ks1}߭םߦ5u=TT48$Nls#Ȑr͗axgF7v6TM{fI(I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%4|Td3[{lc\U+^>=䴲m?.Wo# I$I%)$IJI$RI$I%)$IJI$RI$RޫmcXui./ze[Tu|llvYW5EO˓_QvWAX6[v˜ց%sc:Լv~`sbcI: Ef'S`نQvZ7zg9q䯱8jGUYt~,ٛvL2eZ?jNC&1""8/43c@//nS-m},2{NtEK: \6\ >11l$nr<.2r/T%8rNY$ xNR4oO6ֱz/D鹷f+ae}eV!^yp Llluyv[S%G!$9jIe9r 2㪣WjI$UI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SV垧}Olb6S\h&ҫ[2S׺qE ŭ~AǛ\i?%XcǿI$)$IJI$RI$I%)$IJI$RI$I%)S쟵vn_ٱY>J\oڣѸI&)I$JRI$I$$f'P~u,Ǵh{8K]<))2K>;(*;+qKEe>˚CZgx]X VtϨX68?YNl_c)'ĤڮgKcdsp ASX?X1:GWޟӛ,IJ}u70VF6֖gΝ^WMYs,8x[XA/,z(ܫi$LRI$I%)$IJAι_m cdsa$#u걹VdPA?zɩ2+7aMp1˧TLPSu6k굓 H )_J/Sְ׸Wk4Z~ ?OxW݅Ԉ?̸O5ӹ? P`5ćd00I51ĞQRkXִ@@*Ʒ.^|\UuT;r+li@.AS/0S=7 RI$⫨?u%qU߁IJI$RֺDduk)9WE1&Q]t+'g%z͉)[:=7&澗X[K7 h K=glٵ̝unָC{.[}j\zr \Rv8\7m!Lr[O*}L$$JRI$oUu7N7*?RZ5ec_ek,s@x$IJI$RI$I%)$IM:_'f՟ov+V㞯Cjccy~P,q~aw I$I%)$IJI$RI$I%)$IJI$RI$Ve}t:SgZi6ҩ]oU61S:@?{|EvʹI1JI$RI$I%8 'F6-n;1fc\r1u*srjܬ,᯵͵vxSRoKî겝몮_U _;sHǂI%)$IJI$ScS.;`mzꟈ+7Ϭ=ˮkO]oӜ{> WQ~~KY%9?^oxx?INOnCcu-dSv?Z9gUV.&Enm-s]uxgCy ad⫨?u%+8178kܒY_X^+fkn-$ MƓgَ˲"]4TV؎b Si$JjW{r1M@6|{ѫid'Jګ[S1Eͮ~@OZi?'6c~ I$I%)$IJI$RI$I%)$IJI$RI$NWɽe~[^qS쟵vn_ٱY>J\oڃѸI&%I$JRI$I$']GM-eԖJRI$I$$I)I$JRI$oUu7f_E~F{7Pkǰcw5ֽͥ212 ~?{?INK'7Qޡm_^oxSx?nC$cu%P%:,G/z ~?{?INK'7Qޡm_^oxRU߁Y;nο&s#k)6hǢ-I%)$INN7*?RZ']GM-dbwVGQa'v3{m 4r3?t@ޡEδMi '>&pdtHFۘ))*K'ׯ7:6Kz~;3kCYg=ԾCeJj̱GQCjlk_m11ZU+F[f=gVߒWU0¿D#AI$bI$$I)I$JRI$I$$I)I$JRI$n946f6; W{r1M@6|{ѫid'Iri=}UٶI&)I$JRI$I$']GM-eԖJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$']GM-eԖJRI$I$Uc{mߍ*1Fh*W?kc}-^y?%q?/.X|܏I$bTI$$I)I$JRI$I$$I)I$JRI$FCtsk-ֱZUkfXwN#6x6k {|ei$LRI$I%)$INN7*?RZ']GM-dYsYx;X8&D$A%9zwKr=CqʒdOzs/ӿ*JuY?T/NC?)Ic[U[Ke?5kZ%srJIJI$RI$I%)$IJI$RI$I%)$IJI$SԖWQ~~KY%)$IJI$SNqWɡFC1eǿ(V8Rj.\l~KK'>?V!zaB?ʺlI1JI$RI$I%)$IJI$RI$I%)$IJU+F[f=gVߒWUNWɽe~[^|5qE6MnA.=L>֜ 33H+*e;s/8C$ղSh?o8e'9U~&vn)h]W.WUMg.vȦ=;<: J{e mumu=!h:t}[{U~5/CM1ssLCgP õX:wfEVuc-ùsZ'%= K[sszNg :p\lmwf/L\ކοldz!̨ =b?=CJz% ]S9K\; n(}Sfq][깦cכ$N/N7 r*m5\}6^^KdxBSФI)I$JRI$I$']GM-eԖJRI$I$o=Nm:G6>MkVe}t:SgZi6~JU$IRI$I$$I)I$JRI$I$$^ΫGߑI۱.}5@;pxt%}^c/mu\̚kq;D{6jJ{ԒI%)S쟵vn_ٱY>J\oڣѸI&)I$JRI$I$ tϬwӔ0p]-.c` [ϊ?zsk$ ?oUxv߇ue :&٩綢a{=@ $Y$IJY?VԿ)NV-}mXj9\8I%e}^n _wI;=Ʃ5,cd$ b\*kƢU,K5$2Jr~W+<صOJ7Jxq߫]3.9O.{%uϸΟ P)b'4k!ʶQ15$1og_sb)5}Vf&t7\ģff%19>N^$=/>Oe45-;OStZevVӬsYպkVmu/jY:ЂAJy#۸vt='T2'ͬo Jb=l7/9˫eU4YCv$.ccVr?Y8RWNn-=Ex/k˾q k`3? ~O+%++fSs:[vc9G?F$LJJaH0^,{X:=ŭ.y{n?5ϭknp =\G#)$G/z }7;b^>=O\l~KK'*,;{cP D5O=^J;w*x?nCbG/z ~?{?Z$'7Qޡm_^oxI)x?nCJrcu%Pk$5/\}=d2~nYDZi$'Igf3wNE q/QXeԒSI$(UMT69/{wsISI%)$INOJ7x?J7Jrcu%Pk$G/z ~?{?Z$'7Qޡm_^oxI)x?nCJrcu%Pk$G/z ~?{?Z$'7Qޡm_^oxI)x?nCJrcu*d}jF~F~ ";~Eγ+XW `uYP<\|{v0^]H$mrV:N}VMYԵ8mlfk5d9zwSMVN=uVՃ+x-s\ژ ^oxx?INOnCcu-dS-u΢3=lƒQ~O?ƎvVcu+U[zM 2-=Bd';x(9?^oxx?LSPq]>}eo6SQ/4>M$DBSкvwK z"浧#X'hJyOkg٧դ UGn;}jQKu m =c4#HޑֿB=?{U4ÕO~7nNV?v>%+prǪu _ҽ/g I{ޣݼ6U5/ɹ:`6E;οɄ~[r[}u'txP5z^Gb>X~=MVbd3-.ͽcͧl4zj0iu?"`!\gç[I/r],z}7iՃ^=d>n8} k?iK9_d7 SvccbUĒeG~/xliۃf=Tdn9}{?hO~MΩP+9,1uL+i%HVB=;tU5_6lN+[O.k̷d6W6I[ClH{wU5(ɥֺŀsݞ;ʔ`Wm/6ϣ{ێ_1Uđ$oH_a'ٿhd}n?g9VcK:MO^pwօq$oQߋ*d^~E[h"S_wd?--;:U4ʯ_2m}F>c4}OwvN?*I{ޣݼ6U4ʳY2j}J7㽟' &T(AGw:&$+H*~[r[}u'txP5zLf[]{t+O-ii$=UQۇf;ad]f~EC[chOOJjrǶ _gѽg*H7uЏO~UM?}ߴ2}M۾ӷՏݏqJ1꥝C&cq~;kB^취Co MKnuN?"Xͭdwa;2ܖ]mki%:|$.؏=~ESF%y\SW F8 z> Hz0iu?"`!\gç*W"ͱ&7-Ǩ蟢ٗKܗhMzu`Wm/6ϣ{ێ_1RW>C'ݻ;qX?ؕq$oQߋ*vYU,5>{_gZ߅suy mm#Lw I{tЏ_~Mj>Y]TmsvAUMz)$AJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IMJW"ͱ&7-Ǩ蟢ٗBn;fXv]NiY?Ν vL%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJYCu ^qks=ިshɿkj Џv-֚5?tgbّ^>cȱ;#\,>}x)UպUj1 fX} zdl?K,Gv/C>Z.wQm]59«vM,{)Sَn7Ë )պSYsfO Z[0km;[[OQ2ii5:mh2XOp^Կkcߟ. è}qosj X潷s+fX陮fyƲαלWN[s*c vf[FGJz^adӐ[lk[kwվ!QgHSo2hޤRG&f~ݓ; = #U' ~+-usnEͯ=whL!OK989U;ffȲk5[FSZ[wk~rSSuY2j5ZhA 37]_b?W!g7ԛkix̋]:CF,li6ZCԬ72/Yiux}t~M)ԱrOL/+Ye-{,c4㢩:-+u<|\MK,ens)kݹ{,߫]ޏU&ޟ잝Su**l{L(nVOH=}:'le2y76-,l55CK)ۨیX8llOV麬}mZak-s\4 u[2o[p-og׵ufLѫIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ m/`pga8 HFE5W"W̞0rf;e̠m7k8=)\~m9\fz~=,7ًWR_gK7msYElf9Y }iy2co~_k@O,"fE΍sf>_YzC Sn>@^[maEm)q1phn.5Q\쪖 %erG]zLkD_s2&Cn=M0/ctΝܼﲺ U]SF591'ޒW]S>cc-fqOqQǫ/]^Lˮ~۳ .5uY͒9dU^)ssŖ㑰w-mkÚ7l1[nF;2jꝴu+ g]oO6ޥnD۴< Ϭ}A'';pk욫5 s$ԧʦ'okXopA<#.>Ϭt^w}V;)e)ƣls!]6]th[M,uw&\6 h0Jo$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRϯ@zfgNzvM{]6<I%4i}QGOŪ5kk[{D66QwO:v589.-``a$S^5ʩ`\a &Tq:wOفN+vm6=4OJjSzV=Ǫ+_S*cX{746 fטQKOJ쿱zL~ݿK^9VIM{zwOt뱩 5ϭ5aDhU5RX\疰總q'M${Sz=3nf=m;&C=u'>򟇎4Zja}ke͆[I%5?d~?'GzmbjǩPUM ֵֵ@SI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ endstream endobj 548 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R /F28 49 0 R /F31 67 0 R /F25 48 0 R /F18 5 0 R /F51 33 0 R >> /XObject << /Im64 544 0 R >> /ProcSet [ /PDF /Text ] >> endobj 555 0 obj << /Length 2499 /Filter /FlateDecode >> stream xYK809i+$E16" 40$9VZ:Naփ%Gye/V,ŪU˛?+)Bru_eEldT"_ݔf?+*"U)r&2P+L&VMfћ7"o>^I+y"ѫ{*a엕eQJL]\TL )Q5෈玡zq<2έnL%Tqpq߹OU{FNR&3SH#G]K.,ҵۃWz䚝CYJӸ0jIltR{Wg^o$Hiv;ViNH픡$hxt}7t'imv%ąx;aV]oV^o(?H7mTKkW]|+KD/ *@/;C_QKM;x\q'%":;u}KƱ3pǟmu{}W Ly$ -S> ~*1:$htUsOƹci2~ꚩ!*)_n0c<,`[㱩orOcq p~_lp~'e`qfص|m'[.`/ !CgXHΰ _bmg $Ua $;o Qj Ghk;ROm_M*6!t=Gc̀Ǭai0)ucnG u䞐 R` cGZѾzG?rb034ܟ4Uuz}Wk `oSH0î=QX|0}e^=(JdWFO!q,w-ӨB!#EX;>@xߊ< 4p"W͞ImN1_7Z{ hmhVچ`ul o`/( L[;@DW.E?p z. \ixmIZyVLKJ ٰ5ƫTĩjNo6s9S>AŎ+A/!A{ED}$!?mC'QpB Bq6KYFBrjQDoZ^aYҰ+ypW5a|*@o(޿,o rc=H 2ɏX!ZAuǂ&{+ yl;y>SO3|_fpAd+pYDR?5; k.ptjK@Һu}?@31kPc(ù3PBс1"7(|t$Kc*K|n0[-oQ1nxs`C-˟3,CSѵILWAa*#U 7|Dm-JqUQ%sIr b khT}>~Q20)?8WLo?3tMώK@PX'LݿZ5*D:Eqty˖3!UG[7庒\Wgڛj'ITߓ'5(n ̋&=cyVsFH5B[ upT{&!^.BI`ǿQg0={<2If2+}!K5Xc異>sV6G6&6nH3vw0ySSj en'3;;N$awg-px\:Sde,e6B^aw9_U$? ej=~B^a58ۇR&(b Jhlk;#WpXF_ϊ1׉ QWuh@Q4\N .y+5qeg9Ue*CuDlO6̞$%d@_ sRdj5䢔g@0?^=ӡsۦqkVPA},^L"zŵhAnePwHi2P6ct> endobj 553 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F51 33 0 R /F21 16 0 R /F54 39 0 R /F30 40 0 R >> /ProcSet [ /PDF /Text ] >> endobj 558 0 obj << /Length 1447 /Filter /FlateDecode >> stream xڭXKo6WDk|SjKu)l$%hVtJĀ͇3߼8C9[]R$(T7y@DŁ Il/1E$ /u[ͻeÂqhBl, ٯ7g p0lg>` $ Z}D0/?̂ %I4 GT +wSOcW"T?ۡ#t]d'?/"DaHrO]6.33gdm>-NaTm52{.ȲW3(k]/^_]2< 檋[K{X!&yGP (&I'/̒ D p1S&,>DBDJ] nt ORvaM"_0j0-R]-"w*;i3f Y#'Jћ4- OU|Qi)aMX@ 8X/-4$$Cd'7]PqRu_Y'qkDnT;jhL;uf}2+=9g^.D1p{KK]CZo@2Za Q[PmzꁾVvL1^?2 6ۉS0+G҆tUz]8Zo5& Rc鎧@N|]Ym@x,o)2IK-2A~E׋f âUYQ/] SwsVi?1 JjkIX`2&ۑxV`$l|?\%6>G@.:>mvWÒӖ!c 3•a'ﯺUlib QHT}:*9f<5 Ԕ,S\,ԢV VYbb_dGs>2Ϟ1uU($7ړnv 4/1H Kl2&+=FwxyGwtsgPAΟ_;v^{N`$:6cg!G SB!c&=h' ^vy8 ~}$: #6& 瓮v:TGWC'TG*Sp|&B ozWMs{l `CR%~=Bub4>KH2(xnՏ1 ,FTp'&z7ySP2ZbJ&S%VXƲ-#x*zξcs3#K60,WO{F;1GVO{XFŔi](awuC]^}jNͫ%^FP1^s^mUԷ_Ҝ e7=!GwE2]L"As\& endstream endobj 557 0 obj << /Type /Page /Contents 558 0 R /Resources 556 0 R /MediaBox [0 0 595.276 841.89] /Parent 536 0 R >> endobj 556 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F51 33 0 R /F30 40 0 R /F21 16 0 R /F19 7 0 R /F52 31 0 R /F53 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 561 0 obj << /Length 330 /Filter /FlateDecode >> stream xm?o0w>ōx౩!R*linD (&R'{d΁P|@9dLcs(jإdh_lkF@c N8MsP*KbyjЂs_㹽tek MG;FHg-|t3Uht4aHNIM,Cp:e6yKVQsPZ`;6Jg23kL{*/T^ TH>Lrq+~>ۡrX~۲cqr}W1݇7Pkfv5v}" endstream endobj 560 0 obj << /Type /Page /Contents 561 0 R /Resources 559 0 R /MediaBox [0 0 595.276 841.89] /Parent 562 0 R >> endobj 559 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F21 16 0 R >> /ProcSet [ /PDF /Text ] >> endobj 565 0 obj << /Length 150 /Filter /FlateDecode >> stream xM0> endobj 563 0 obj << /Font << /F20 12 0 R /F8 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 568 0 obj << /Length 1472 /Filter /FlateDecode >> stream xڥVKs6Whz 8cx؞r$j3$3E$*@Y\z!k߷/N/98RbjHt0q.gb+MYme21e4,2RqN|KJJE)U>&Z7oL RAN,SQ)%Y@%$,8t#ZYg+a 2yO0㜜6ă2B&"g`4jPt-c]hXZ'jvAۀ+8䧜Rap{[wy}:)͋ZhC26M` )c249 zz pg&wNhBkQ1 -Ǽ/0|ͦsw3;j0e'Y 'Y]vTƱ LLy3_Eδ ?:"b> 7+&,;3IQٌUf& ;1YF#1fAR{MuiF>hh0MC%P`X7=^"9yT8Af:|wYaEwm1Hczb=( ty2*S!ˎEGN%/k :BegNj PeUtjX~^ve[9$n}8˫M]^ZHc:"oѴGc> PA{qEGu$b~DNPI$:뷻4pqn)$ݩ5='> endobj 566 0 obj << /Font << /F21 16 0 R /F8 6 0 R /F19 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 571 0 obj << /Length 1138 /Filter /FlateDecode >> stream xڥWɒ6W* ܪCΔrr-"T% 9 .RkJ.*I~kx!&Y| qRZRqwc[o7DaqtRҤ0f?;Om5Lrm fmBm Mz?sr۷=(M^q4J)A.Klz)Ʃ*Ì~7)"NN-bkLM7>&ٹ.ijsϽsvb8Mۮ,}Co˕UN56nΐ~` v>xNϢ j4')X ΢t]f֑06?`&fkO}NB !vr.Ht#In~W3/z[u_&*Rja{Ʈt3Bb1z9'΋Sϱ2s_luu&^=@!s XZ<ni'=Z/?"By5R2~ 90#"9`*dy&>sYa[(Υl~N(seik0"&bX0.1ϦQܗ$uS˖0RBR8 @eYf4w"T"Q]҈XqjNOڗp-}9T:,Q31Rԝ~͘{wpN:t( SKWXNX"NZsgY@?îSejtOv>]!^İ9yGC 5)&IzH i,OQc7$\XL!]Ś@4呷+m%zeii˂@K^x2I#w 曀,ܹW2xCe~3wĨ|3sp3:P::> @) ogW=2@n@{MeQfFmřdVwI>}XbcQؾV;>M_M;^ Xѯ/EیOfw/ͣUl$LM-).X߱2/r-&ooɥ-aB3y2?x/i endstream endobj 570 0 obj << /Type /Page /Contents 571 0 R /Resources 569 0 R /MediaBox [0 0 595.276 841.89] /Parent 562 0 R >> endobj 569 0 obj << /Font << /F21 16 0 R /F8 6 0 R /F18 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 574 0 obj << /Length 906 /Filter /FlateDecode >> stream xuV]8}ϯi`:jGm]v"UjU3&k/H#'>s?(MxQ?'fw/;]psݏiP/A ΃ˈ<9aIA9$dRpV͟Qyx!f"uW[EHhma5ԢWm3BOxFE{eM6Ǝj<4!:ԈztT,bv2>Mi;wyXO2oؑa:U&:XZIN c6"h(,3F_sb2 -byhUpq <ƋQR4$&KtsizirX0,R/^uɛꔚlpv J|i{zmcK6w.92oʂEKgїkwTz^7/L9zQtaH_;ϬȋW*aZV/{z1h9]xҢš^EKe9N1Oԭ ]V@f>=}eh?>AIA 6=7aL8j#a{!\q/FnͰ^mɣY"7^@6o۟C֔B5 I@k{p#N~:g/n:c+ǯxx^[بZ*'׵%, eIH2j uZy,:#?xp^#BBQr~n<&(V/>o0񩸜T4`V3w[caZP0mgJ^ ʴ *&OQѹ$[-ϰ v endstream endobj 573 0 obj << /Type /Page /Contents 574 0 R /Resources 572 0 R /MediaBox [0 0 595.276 841.89] /Parent 562 0 R >> endobj 572 0 obj << /Font << /F8 6 0 R /F18 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 577 0 obj << /Length 129 /Filter /FlateDecode >> stream xM̽@ =O4pYD7mU' Eb eRכٳe4eP3g:c* c":TzV=D\'ח.pN;tӂ" endstream endobj 576 0 obj << /Type /Page /Contents 577 0 R /Resources 575 0 R /MediaBox [0 0 595.276 841.89] /Parent 562 0 R >> endobj 575 0 obj << /Font << /F20 12 0 R /F8 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 578 0 obj [559.1 642.5 589 600.7 607.7 725.7 445.6] endobj 579 0 obj [826.4 295.1 826.4 531.3 826.4 531.3 826.4 826.4 826.4 826.4 826.4 826.4 826.4 1062.5 531.3 531.3 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 1062.5 1062.5 826.4 826.4 1062.5 1062.5 531.3 531.3 1062.5 1062.5 1062.5 826.4 1062.5 1062.5 649.3 649.3 1062.5 1062.5 1062.5 826.4 288.2] endobj 580 0 obj [513.9 856.5 513.9 856.5 799.4 285.5 399.7 399.7 513.9 799.4 285.5 342.6 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 285.5 799.4 485.3 485.3 799.4 770.7 727.9 742.3 785 699.4 670.8 806.5 770.7 371 528.1 799.2 642.3 942 770.7 799.4 699.4 799.4 756.5 571 742.3 770.7 770.7 1056.2 770.7 770.7 628.1 285.5 513.9 285.5 513.9 285.5 285.5 513.9 571 456.8 571 457.2 314 513.9 571 285.5 314 542.4 285.5 856.5 571 513.9 571 542.4 402 405.4 399.7 571 542.4 742.3 542.4 542.4 456.8] endobj 581 0 obj [610.1 544.1 607.2 471.5 576.4 631.6 659.7 694.5 660.7 490.6 632.1 882.1 544.1 388.9 692.4 1062.5 1062.5 1062.5 1062.5 295.1 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 826.4 531.3 826.4 531.3 559.7 795.8 801.4 757.3 871.7 778.7 672.4 827.9 872.8 460.7 580.4 896 722.6 1020.4 843.3 806.2 673.6 835.7 800.2 646.2 618.6 718.8 618.8 1002.4 873.9 615.8 720 413.2 413.2 413.2 1062.5 1062.5 434 564.4 454.5 460.2 546.7 492.9 510.4 505.6 612.3 361.7 429.7 553.2 317.1 939.8 644.7 513.5 534.8 474.4 479.5 491.3 383.7] endobj 582 0 obj [826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4] endobj 583 0 obj [333.3 555.6 577.8 577.8 597.2 597.2 736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4 791.7 791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 888.9 888.9 888.9 666.7 875 875 875 875 611.1 611.1 833.3 1111.1 472.2 555.6 1111.1 1511.1 1111.1 1511.1 1111.1 1511.1 1055.6 944.4 472.2 833.3 833.3 833.3 833.3 833.3 1444.4 1277.8 555.6 1111.1 1111.1 1111.1 1111.1 1111.1 944.4 1277.8 555.6 1000 1444.4 555.6 1000 1444.4 472.2 472.2 527.8 527.8 527.8 527.8 666.7 666.7 1000 1000 1000 1000 1055.6 1055.6 1055.6] endobj 584 0 obj [639.7 565.6 517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.5 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5 490.3] endobj 585 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500 277.8 833.3] endobj 586 0 obj [583.3 536.1 536.1 813.9 813.9 238.9 266.7 500 500 500 500 500 666.7 444.4 480.6 722.2 777.8 500 861.1 972.2 777.8 238.9 319.4 500 833.3 500 833.3 758.3 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 319.4 777.8 472.2 472.2 666.7 666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 736.1 638.9 736.1 645.8 555.6 680.6 687.5 666.7 944.4 666.7 666.7 611.1 288.9 500 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7 461.1] endobj 587 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 588 0 obj [531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3] endobj 589 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 590 0 obj [935.2 351.8 416.7 351.8 611.1 611.1 611.1 611.1] endobj 591 0 obj [638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 575 1041.7 1169.4 894.4 319.4 350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 869.4 818.1 830.6 881.9 755.5 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9] endobj 592 0 obj [625 625 937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 812.5 875 562.5 1018.5 1143.5 875 312.5 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7 500] endobj 593 0 obj [500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8] endobj 594 0 obj [613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6 408.9] endobj 595 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500] endobj 596 0 obj [377.8 319.4 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 319.4 319.4 844.4 844.4 844.4 523.6 844.4 813.9 770.8 786.1 829.2 741.7 712.5 851.4 813.9 405.6 566.7 843.1 683.3 988.9 813.9 844.4 741.7 844.4 800 611.1 786.1 813.9 813.9 1105.5 813.9 813.9 669.4 319.4 552.8 319.4 552.8 319.4 319.4 613.3 580 591.1 624.4 557.8 535.6 641.1 613.3 302.2 424.4 635.6 513.3 746.7 613.3 635.6 557.8 635.6 602.2 457.8 591.1 613.3 613.3 835.6 613.3] endobj 597 0 obj [470.2 470.2 470.2 470.2 470.2 470.2 470.2 470.2 261.2 261.2 299.8 731.4 444.1 444.1 626.9 624.5 625.7 600.8 678 561 534.9 626.9 663.1 258.8 442.9 650.6 508.8 819.8 663.1 692.8 599.6 692.8 606.4 522.4 640.6 643.8 624.5 885.7 624.5 624.5 574.7 272.9 470.2 272.9 470.2 261.2 261.2 450.9 483.9 417.9 483.9 417.9 287.3 470.2 483.9 222.6 248.8 457.7 222.6 745.1 483.9 470.2 483.9 483.9 320.3 360.5 339.6 483.9] endobj 598 0 obj << /Length1 1491 /Length2 9560 /Length3 0 /Length 10423 /Filter /FlateDecode >> stream xڭeT\[֮.  B ܂C@pw|sZMUb]X98zN6 TzzI' 2s 82@s/#J8z:m\L9N 30@aafЄX.lq{{_ 3 hɆ Ý 0*_V̖Yr:9CE=@+TvN.jobW'?f {{@]]Ne% ߮Oy3{8 ,Z\,lVf@KoZR,ӿ@`-O7sft@x94b [xfNNf%^7'zPl` 4/ ׆%2쒿I.se~4N7A4NƩ&ok&hNͩAoV0MvZ@.o@ /_۝uP?ڏ?j&m@h_v 1?ڙo!ߙy`ޠ[ 48^&s4sV.cv^]Ay1-NhοE@? M / tqB=@hzϿ/ÛzZXEx<| :_{A@uab:61O` VKJ]6XoWk0wvɜ߷ʜOyu3Mj&ӻHWq >ji:UZ.Mz[ؗu(i+#_O&^;KAz!+tXz ?xň@ ~2F7-'9ȡFf͹\C?:TSz*OB;oIc_dMy|9 }C-yq*p ,܇iGb8O0vnOd:>Ǎ] [> `o)u,Jy#UCD}:z&刋!ooj'y%fVl =k8sWV 0w򼼉tG;tWkJ̡h4D٩M7:qcѤ ?+L~PE݆>4:cbd|\a9&Yfwk|90A,u HA+mG9\|Jj<xѸ-pz u5lLG.AEװL;ct^)Ԙ+IZ1UgoHo؆I9ku :PաҫW"GwL.V5*_px7LXʇ9P$fo.ƕ;GByxBVٴ/g8{}-CE';V[{G1LM,&RUKf [ggtcD]+Ɣ@ӢZ];&oK9NDR*<&4!bwٔK-+ _gɈPn$ꌨi2^&?$FcU&Kq{|jvwթ*8 ?5 wr4\ZE2q姣zS(9 ":pïhJ9v'O|alўWqMh}ĈC)Ml4}V0j 7 zUp}˭C#] Îq {naeC$߀J=KaPˆCZ5Lg2b<.jQk\-}DI%{ܳl&mh9M@_?TflbjJ)(b|NJXY?w99߷wB2k3`}'qq3.WSK=.3(%p#|Dʃ )۪aD..mañ9!a*'=ǍM9.*$XySPM⧛7"=p[ K)1epI[]XyUWh ƍ/_z07=n[(_]~N29$Wl6 Go#`Wn/3ԍt5{, 2d4eM*}~YjhhqnsK26auV+KbSR˶b7_IAY {ۮ)qFK!~Js }!<<-n7VI!WYyhV22Z,r]5PaͲQ<8 SqY<&ÏU[ܼէsogs ^|ԏbcN0`擱D#s(l0EVnuȐZ ]{0 y;kW ˚Z|_F7zF~ŏMwXX9UCy7O9P>>)Cw|o:#fyxS͖7 0v̹gEsך$OLً偱f@C3Oɇ']7Oh_~]5Ӹ2L0kj=;QPYPV n{O9q9siZ\Zf}/- /pxxTNϰ%W0" "BSaDPy `\5;#Rt0eRFDĻrps/y1"Z|[\!W f|i׷7 ?_ gJ6Y`÷}uP9y`y+bC4-6o \ ^]@eO5vb]~wsU2aHϰW(w˯qQ䱦=TGvqeXd2,9j^5Jǵک*ԯxxvT/-1%k3燙TQnBZvj's=|rea_OJQ=u1I y:*`p.d\2U.7wji@%W'Ba"sN<ٛTf! _nyv˶ ]} J+5See^9i;)G_H(B"n!K& ^Cu 8J!Yxۤ5%,s&X0\wO{IsHaM/qcn&_lg~ڏ?%rE:-P{xLqs3T7^Ǎ%ǾtZd U,TtSJFчZ_ٛW{"7w_OT1m ӂ Dѣ Sޜ4Ho$R|O4~0 c;ZE= 3 A5%dJr7 '稘: B/M O k@=jRD jseH'Z_i9\`o?jp|W991$1~˾p"5& <|.؟}s8hP5syrNgk (J' A#Yid `<\h(OѼ<~*RV}!n3;=jao45ČnUjcWW)1š-`fKG 61ݾn~Sw Сcxa6-: &!= 0uN}_>ZoQ.S̭Z-Y%dz=]!{ {qV_ zYdR@Ff,LC8_$\HlXg7qHѹu$^PtSVѓ*8+ @5NE+&ï_rTu  ʎL"كKDuK@қR(gïM?LVZfȕz,=Gރ'MLuydfQG/|ͮ n'epw#CYa^F?i(aB& p/eo+ ևRC&2ע}SrXM6'#3p'q ^Jӱ{.q;Ď-kFײ·xv)x 0>ǒ_a244da=#A:%FZFvK1JKv-5ܭ(%ɒ8&,&eU&h'[kBq2(?fƄ~'~"WUvоQӉDy5va6\p3ؘ03Hcv.Zr7M#wg9wXYfsvm<R_)tPcN֐=:3].Gx,l@10#aWʢ@Yz m7eI:T,}##mEԥ7My3rsr/zr ,%nh7Sne SȮ^~ɺ'!,6H¨\|iTuB=PfEP.Gh-{V"I(.)lV4?Ϫm窰F]6ȍH $oTj8rSqzAF뚕TH~QX/.^5}bܧ;=-c!``vCo&kPVnݰFp':YudÒ,YIݰt8"(@)amBە{b B_׍AEֵRI)5&:3gQ󳀆 k.qNwa#6D>|~Dy,ʃ%|ßx+ٷͅ2"qY++]=Bӧµ }Pmq :K{9Z)i&IRXLv9C(þA @X8PJU^ّzO`P7Xv#Ƚ~qъa6cc:Ƿx3c&ѐGĹ"-L Ow&E+TJ[k]~>}Zݸ 3wGm*}?Ok+c%;M*:Aʁ[cl ʽa{P8}Jt(tٿEP6u]6V3NHWeQNٺI,d*DDOϯljbD^?x=a7bT933i77WЯcYb#-pU—_Pl"oQx@䉃]̆mq`|n;Ӟ =>`}R%'+ruIiQvp *GZn5oo"v'@|fO$誛xԚ\-wv9ЈQ!^Dz~*lk{'g>'~f'k8JK1QV!}(,3=z ''.+\)pO=*e-FUk1!u'#2dBd2K smAf}l*P$eMy&??-|"2GqNYTyN0Za^SPFI:s[.^G5G4m]Ղ΅ˆX\0_I u(] Ik< E05egM%x[ Ȓh>buimK.(#}aY ˬE^UOuԙ_Xc|9Ƙ䫞eoqqE(t,R@ͷmqTB\7@9ZHn?"f$PjS\3Z˷T.5{l%+eT)ύ7]}TdԨS?HRl]98AY_Z<`MW"56*6y&IdWK+yuDS /H~Nۡտ7\{pAnkRJa9iouy{7ن X$A6xӋqԗ+MV5"BOcp ѷ18[S&0}`sROugO?*Ɠfi˸ ss}T4{ic!,MKead>ЛفgԪ uҡ<ǪcGc@~uNze~ڕzǚho['<Xv%x9at>١03j*;J f6ʟD t-'i.¿ B~$nx m*X~ҩX3 åR|.viqQυ⚇*m{(c W#mCvi2F\߂/_pxͽ M秽 *.GGgM lcv0G…2Ek:)on4g(*}bd޽syZYֆ/RϴvXs&- ff~=1+] #D?54b9ƇMfE^N}{PLf;|c"j#yX &2"a`xucnYsiN?Ѹw2p8=^3g ꦀtNAQ( C:rK)Uٵ۪;4jJ#ϱK8}Ez5H* Zˎ:^yCװ_SaX$#>qgNJSTn>& ! EaKCu3]51wIԀó5NQ=#Lj/<,~nl涎0c:r9Qj^i1 mr6ٓ|(zY6Vuݐ^\ڂEx890'*fݔ]_IǗTl\RdՔ^H=kFč*1)=k`W5nYSig􏸯Sv9jiu,N'J*Q& 詤Ђ}|#XQz".=/6lbR;J]zQ` , fU'mFX2FlWW a+.u 8M- d#}4\νy]I*(=}"]ee+G߷7=Fc23+$T5U Ft\zLjj 0t#g`7`۰1 ܀=|elTz \rlϢ (qxq{32''DVmnh:B:Q|5+qxnVL3ԝKܑ?ƫnWge ^}Y =@}1o9cs@PZ.asW`3^Lo{q 5N!gZMMS2D"zc[-JuZ Q_J1uk]72XmX=8ȗũ[J&Ro!ޤ>'rp,͒润ѫ| T<OSyEӖ/4> endobj 600 0 obj << /Length1 1684 /Length2 10189 /Length3 0 /Length 11129 /Filter /FlateDecode >> stream xڭeX^Ni%F`膡)iPiwsΣ眯5_Z5=;v)sS+;7@FUZAO/ BeA`07@à88B!V&Rv`g rrl `W(@ &6C\`K=?-^6ws-w L &h`o -08:jaJlm߂I/>b ;G7W3@lCu'`(l!fR`׿ .O: `uklo%lNm7ҬuTA]IOqx 8aeٛ9Ca_rvA1`/Fon {sr;Ž`,1N~?K&p!!p8UPC oHVA*h!Xw`i!X==rC ;Gػn?}²\!D,OJn.j a]XyX_oG q+/݅_/jzܰ jbl:`?qGa"aqGnXNnlnj?2Ia[9 3/a./0UäZ9,Xu ay`*K az ؑvfv(QA~.h s_6- Q{0DCK&KY-btNa-|-VvbYֽ+K#Cޣxx1&2nJ2MHstR??HI^~_yq:> 5\{mWz|vXH5/&^SI8_ت^BDuZ#Cۋ4Ҩ?DO"X6T ճjQC xP+WOu L3Vk>L1G>Y~Oɷo|e~70WWRE _*D⯀|juPBac >w[6)ykIƭiwb>Fwii4BEv?z]{s#!z7V0z=뼇,m@'7*"_QW#\x<!'a`K=;ȍ':l/{!mSvv_@y^iCU,ȳtXihKݐ2Is#t0}0$-H.oc?`}ԧ ONK-8eќ4u/~8"9nhzD,Zpxl!sjTHD C : O굴az/VAh\?) NW2a Ig!rD>7@>mї(K*Gm03B_SkjcƏ/xC/:_x_zu >k"#[xGe_Jņ()w/Ɔ;~ &5*O&E rY0SS{] Έ`SL:B9qTE͘%b7A3;ʭqWe{Ɉm+[CHg>Q 'TjšJ'+5h|\t/IB!-0|p0I5}b쀶0r)sAsr,H]?p%5lۡE!W5'P@2NV?~z5>kb"[-u,Z(oK|\Px PfSwW'uZ3u)>4qȀxmZ xYR۾Z)EHUUgSK)3n=(&ew_mYqdg~EҰՍQByPX?2au(Ĩ|5.bEGie$!]2۽~=%Ljܕ-fGDY؄B35Ltt5}¿Txs5n%U>l!1TtNyԓFa M94c`<9)15b.%'q^5ٰG,TgߵM!3@}KoݑIS xM:dtLj.Zk:3יqV%1X-b9% IrX| ܨG:y]b+N z;.%y}"5w-,lbcѲlqP[[Qt95l& @^Tc&7*Ҡ.##asv\M3}ȋ+f3:5אncJ'ׁB;Sxa։Q~\N1[-g_>Ckhf˓ԝaM55 ( tfuK4Y4{2kԉ JjaV~z0юVHa'﷎ {%{o )bvnqDn5O17>GhZ7Ǖh\j# [9W~ArrrB{ x#b|طϬrdH7ߌx= Ub$ck!$Ͻ20xF)J9Ƹ DtVS&#=bG@?52Ō7I*ZF_dfɍ/eZUp KxU,@A踪wvJ+d6&״4i%TÆ8 >6ґ:  [Öȴ#(F+妨< ;^4(5|{D@To"(XBF闵&3~3mTY1u11$GGN]|97t+ يx O~ q);8DSޭ:Y<]E2\LVc>@$V̿c%$3cšH8UV@U0 ֧#ޟzT3-*bz7qGYpm +iCT?zCN{)ēwbq4i+xr3HO1Mv?G G$Ty6Ux uzƹr{&ɹv1+dR!®)E+&payG_w(C-'.I5{N*g s/ˎ 3=̡rt"mCHILL f8{; sptOߌU .-UlCpCǔ^ϭ vIq^Ms%-ʂe0HeŤH꧳A7 jM\ 3)a88tbN l$h 3WSnrumU3s b?Ѵ:bC#-q H/5d D"ӧl5z"D"Zy~1oS=-ӡewE?Vo=Lc[Z .Xߺk_Pz^rG&(P]umqLbx D^ksw:V*~ rN/w)3'5i/]GꁝձF"c.иn9J5h֣^XqüڌP"iXYyͫ\C&]&wv LuG蠯^/kt2hxp5 x4\/5D_*rڬ̥q|QuFԁV>Tp; j+@FD5g'Ad#'ߏ ?^|ź-X!x-b#}2!ʨeE#`j[fS@Ոoilk --o xf%Cb<'XE&zyDOTLPuM=3fe_W"48ڥuG@Yq򓹍]._仐XFjGilCCh8'{ _Q8mkpf8+ܬic\4XWVwMe?ܑ"O!k:hc +)b[z%n8rz:M=Lk2Vf%3zv߷AQ3 hOh1/ʳ+<~TxUzbKOK7ĩ.'qÂ/d#WDLx*8~!ݺ*s&a~[wbk|aSkO-"]5ێhVQ#w G=2G;\_efb3/nJ./ɪmEM$qĶ#䎦lD x@ZqpI-3$u}u-%Xűy>dx`jY+gj{smJo[ Dg̥9>SxQ?p>=2 ݭw;6!me2n O&mfG1|_D+va:\<[}o! h7 0*^t}5I~oMypŊ9i[uZ![V?TbRm"Mw3(̑)ѝ`V7=k+s&%qע,iUW$i ?`L_'Yk79Sz2Օns`$T:W3 45]>YP.+,wxNA|(Bܭ#_X@E{~35_O`_8Z83l}N(aRbNn aWw.֢?L8~RF,811WX?=N+-iKm-3 /4y+u-SNlwR8d7yYDZ:(ȡҠ :jgAS=R#'4M '+O1҈a};!:0itc49`4xt&4\CBUDpb=Uk']I)+Rn<[6[VWfEՆu}=/>`_2G, 'Fo^Ff"<6Ar_6U'ė} /OCODwp^,zRs|9vx*v75@yp|j`BtoIrcv t8<w~gL}iQQMgeCA"~|lx#: ͼ#ExFi?! QJAgee p˨[#]0^ힽ9J3\ j\xZq jCY}^h&Š1@KcQaUpQBj)x4n&D$f `*-P}0X `j-Ӑp/h="kƹ21V>u0Ae ب:^b(Cf\]%г7}.fDyOf:*Y2"7&,W̮v̍w咍 dBjO0oU VfPɗ^UB[$CH *1(rEduEc6f r^CS5=mtBQ)lk(㇤tCN&M]_na*Ǔ|s z8M'OߒтrHajAYwS)Qssh+[r.jN ׃lR:G%C hSѤJ#2EFWTi-ZH[ҭ.bI.X*tBpb`' \~>\-5~(  ?_*]X d[jSzUٔ9#ԐJ]*>7 *e`,s;\J7f$/Ase_"4#aZ~.=X >5>5?TmnSgwopD|@WJt]MV<3ӚbM)E~3Ԡ#յh;$;L*_,TWl8􆡨JeJwv=( 13*`YQ@>/x|?] ݦ{k#x5N+9T"UG[B%:j_MPfs#ل&$綂,kjlG_9 ᭽-Zn N*ؿ|{xSB 5 C mvc4eAZ돗G KBqzH<18._"B}Jn_J7\цUT2h5ϑ4%:A C~N@𭗔J2^{[r&~oizܼ&bn#Mq,T,8o55>fq-Ɖ>-~:A*!s;4Aegb$FYRZ– .{Aq % #q P [ı-Ȣ@s!X`LGq#ۡuj {J;.f/O; "G>}skY`RzU;E( pֲRr<М) 5Pzj0rJ9!D cEp2guw 4VWjDa^cǿmE+%C/%޷&{pbi^ND&d-|Hֵ$J#Re'0*c_L@v%r:ow6P&[z_rٔn[7Iڵ*ܧ*sPdR/99+; zq5uG.ʍ@S"^Ә@:i:3҄EgۯV:݊ V1s $ 0 :0ilV3j7Zn˾2~ e.~ǝi"6G >uf+<k=p\gOTJEb6yh]P> -JagȂjHݠuw*#$+1Z'5u' ^1sP|7揄 hus тuwl1IXr9O@t;ˣh*u)Hqh^862tq؆ a~+me7e5ʡ"xo%L)x_.,t" +6~8V-8/5B ٧#o25<]{`q09RTivu5ڒ5 {)?0 fԭ*fM/6E$\oZ=龯WweD<4M] cQD ~ajH0ŷ_R,xA7(]GEt8S<٭R@j欻jhfMIcF79 ˄!&|B b(Qe䯒]tP#xr_|`g6tAߟLó <Ϧ_MBUȢ>}(5/M͢6v3c8vM> endobj 602 0 obj << /Length1 963 /Length2 3648 /Length3 0 /Length 4279 /Filter /FlateDecode >> stream xڭyA  (w4iT #} @Ȧ IIlzHl#";0pp ;%8?pHo=Owf($]#{?Ch?4D+"mܹ_0S{_3k Gc >)ŐLMd d!ku䕔8_`"QDE$[bqr @J(Ã~TY "9l 7`IM o" Mj7AȷFE%CANF"~@eLd_#e #_OEI.x< KsWBQ q31㰦vxO+4aZ` MBTJ8q$UIYIdaBrmbK>&U<4!8*8W4gh8)F-I_Bn8CSKrex&:QJ| }hSBF=4\U!f:z#:$*6 ~5׺ Oψh 㞵s |}DV-qlP f.h<͡bUd 5us r{]o|,J-% 2\Y_m@A,FܕC})7(gZہq=,"rJ!><2&C[a-47u)9rƴ"B",1&)E8'u'"Έլ|"Di9β9J|;,4|yܔ_$AF#,+yo$ÈU)}F"zE#yMiǔkVXH|nm6[Cˢgsǿ Nak ]>3Ljxd1ar)ɿSBL0~LSGv^ў7*޸'31C|E[`=b>{͔u>G8OBC/΢ذq2iUj51oe3[DždlMChҊ^m`-AJa^bR|N%6, ag.<)e3d9W2t£-t'O/PGf0NSÒgwl0:R8x(ܥ}Z2e ؁aqUe{IXѻYKn(起(+lvqxL>K%ihsYr໼΃|/NʳQ)N`^;, 礷TLҴ2 `bVI2z5%Soy* U.]Ӌ64{;oB 3z{?vQ]#@lWÜˈNF%KZV̞XP KDP헥N4"ts2hD4E3Yx_ sXlz~fU;t]5cPRrCe4GuL"31泙iĻ~]-qsS]Tа_S8TeҲ}\ Mܘ$[ZߑdI6~ŹsZ UOgS1QS^COlHZ_()|nc@rd₇|܊%т ]5!T7O *KOƷӻV÷M86x8(oah>V͝GQs^F|sw@Qn@rQhh{Aء©jtjG k"9Ԍyx|$fƨ恁ȅC5 ӷO?aru-BAb&Ϯk 9=̑#y]-vӄ.[V}ݲOU(Y$ zpU1 ʻ|v`>S0zkQvK(<2t4s%lLJ#,Dhf3T˞%]3r-BT/rikFwK>~v点%sx@E6whKVbeݙ'=i!_Mnte -nI]*o,I ||ȵ!rk_bΣX[:'(JUD'lEcђ~W=N['+0 HŸI:MO ;, xa)ICxO^ŸG-1&++u rNϙe;kcIBkc:-C.5<<\~Z:cvmq?1G92ߣoJP,X6py_X9"oBROK:kJ_lD-KD`Z7RXe՗:LXw?QR ƪ"C:?MX߽. 㳠BYoNÔ#Z; 7|m ']d5{ub؂?ܕ8a4ٺpD"=H.sИ;z_Pׯ+Z\ttRdvh*!dqG|whúXs$U Q = ^ %;cY[/ '&ו41ܜ<h_$؝vy[4f}_>ĬpiBRaKn| .T_;(dLJ;K 0n _ M()nsƶMQ0XBPajRS<{q|*.Y#z MR8gUja+Eg5,mL'ã^3mZ7S&#j?Bn,񪇞5AR{O=Le}1,}7%ZfzAacN'ǼҗΦ\1ѹ9j+rvF3 WOQm)2we:ߡwu4:`躽u6%(: jmhDZ ^sy2=ܓ#VW3fTlV+cqq7?I)hY-uZ&}lȤ @B]>>w endstream endobj 603 0 obj << /Type /FontDescriptor /FontName /VLKWVG+CMCSC10 /Flags 4 /FontBBox [14 -250 1077 750] /Ascent 514 /CapHeight 683 /Descent 0 /ItalicAngle 0 /StemV 72 /XHeight 431 /CharSet (/D/F/G/M/P/S/a/c/e/hyphen/m/r/s/t/u/x) /FontFile 602 0 R >> endobj 604 0 obj << /Length1 1263 /Length2 3547 /Length3 0 /Length 4270 /Filter /FlateDecode >> stream xڭTy<,_kY 3c,cY"k-.["dR}IKP7u99<Ʀw{;/+ 4- Xp<#`yyP B TTwp('ggtsIzǝo F ă-Ո&_]VYL2YuZ!i[l'((Q͚{QmAwzh*^B?RuἭ L3z[S (JCrU׈3X2F]GKQσ)^R; -MR~-ז %MJPbs4tA:²c&5, F8sElDCwm kbq< EÏ֯j :&O~KO⣎s&B)  UwWD׈L!QןR@\3yrGrW`;|\R7-[j.AWxJuRnZ:FUp8iX5i_Kg/|ųhN!~\dw>cURC& [Fsjf);W:7_1Ul0f%qժ\ ZBʘM7{!JG*AF`N]`(]^~M?CA vvla}Kˈ$5EKy] ]rw%:w3:z%szD)!Wņa|d΂5F{'ԡsncC;7,lIS׈ <̱,pTRUfImԘձskΆ+}7zn)=\qdsaю%bzoL_XE0c@~:AbrCSƻµ8M0vzd^~bKS6q-No.&G»5&^k[RׄBjN<6|6BܿaVі`Ⲗ-8TetG-@E`4qHH;#7mq9& T09t&%Z@iPS>ٗi&߰g$٬ M]m˜i3 Z(~jCڱ@WE$_j_CikV G ŮxvklV]azUQ`N:x`c(>mk߿D;_ܛJ+fjm7wN?9VP2sRRlMv~{jyGACOMmgŲlh޹>#]HT4Xu.%Ưš7OS7_b;' ŗ"3~gLg?*a+>R\Z2w*A:| dn-1i_Lce񰮱ɥ. ]9fu :L7C)~jbA:Ղ\|@ۤYIՔ㓑Jͧ^~a{:bo$ jI]űAi Au6 {tʮ[^&@0ykGaT]ZG">z%heCYKz>&{dDPkk4NVԚ*Vn"- 9r_:/!g ^4G԰ż1P$FNer4\,Yrc^{ѫZ/=<;M.za>[}bؠQi7kw7jjW]tx҂"󺐠Λo% OE9ɽ{R6k}9!:xb7" W '-}|4{˰jsrƾqeYM8>x}:^yL[ ucs'B{Xcd;OaQY Ai﫸g!U_>7gKj! B|F\)ҧn)8"ݝ!⦐ZD%)?q?^Ǫ&1@714f^'Xq+O0\WJ>f?o+ MDR[41 6ҦtK7ۋq^N[✡wfDk S"1\tv,M)j0N*Rm))Y0>5bʵINY)6KLg$l?Y UޜA9_[%(Y7#BU%Y ,+Xi~>U~ n:H|ϲR+I20$t 6P0 Ԛ?BץAy0KWTƷU'AӯOĽecP7c@i,I-~Yw8c.|[8_-sSJ\3K E'uA"#!Bsw5낹9cbL21b]wP'̖aLO{7YV+hvG{.ktjfSnvZ5ض 5سXt 'j 8OirwL` N0> FSw}5r㋏<~g mR,N~L ;|!`#È6!:z҆<iFPbQZM8)pMK|6] HꈘM%>ICfM"ԱIH= s3OYX\#L=aa;7:1]dgPL TWp-Xm~Z R֍a5pq-zs%%ܮct=Miy;- E6G7*VL+/c  yke{I_Jtt϶P!-tp޴R. G_Y.ś21*MoҔghGh_ Qh|#)jÊ7'u%̈? 1j^YGPULXo@ߘe9rx v0B~Sd endstream endobj 605 0 obj << /Type /FontDescriptor /FontName /GZVOCO+CMEX10 /Flags 4 /FontBBox [-24 -2960 1454 772] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet (/braceleftbigg/braceleftbt/braceleftmid/bracelefttp/ceilingleftbigg/ceilingrightbigg/parenleftbigg/parenleftbt/parenlefttp/parenrightbigg/parenrightbt/parenrighttp/radicalBigg/radicalbig/radicalbigg/radicalbt/radicaltp/radicalvertex/summationdisplay/summationtext/vextendsingle) /FontFile 604 0 R >> endobj 606 0 obj << /Length1 1480 /Length2 8877 /Length3 0 /Length 9732 /Filter /FlateDecode >> stream xڭeT\Q 4ָ;C! ] ܙ[zgCK,f6Il,l Yuu6V +-d;H@A6>>6%$nkK+(^?D<1{`rf  @NU2gAcc[A Kk4?,:X< ;;{qL, 4"V s'vS4GLWwt 9R-п)̭{Ujbgm&`i0qr+n$m 2WYg? 6?mu5\lbUwsXl6%+@ &࿪I9ͭ,\ v``X;\ Wc  M `rsb@?J!^P? J!6be(`C Sr!NP:C Z!I8`;N !OX6-0Y4q¤f`{?)XaB`@! ֆ_Kg'9+7G+_ X/c¬0v]y O1S6S?˰&h870+G;g.ršp3qK;$пp am0 ;̪_OT\3;3/AE7[X^ + m~l&`TT-;V€e)Hè: 'ƺ;\9܂k^̳C 8Ӈ.;U @?>#dgbӱxrťEOPٙso[ydsD4fJ{p.x>H?iׄf _X5qzg25b$ؼ(VTMd~t3A0c;`23!q hs_K J%"fyـ3КWTB׽-Oy2jbߢ664gfh?ٔm#GnD(E:;l%% j*ڹ0){yle{"2 2U|d:YjwQÊ}B3 Ĉ&%BGyHd)b2,3n-֬& |ArF*gn5fuzM9)t%`7sB$ #M*$Su2N]j #5 r9\p<7E%4.FoŶ8MK OE%CЛ`ePRt{gѐz $o; T/,?Hy}ep";҅qrd'oKV rBB}}5[}& AF؀Glgk+3=~b4O_w"7Z5IlAW1%JW"]$7!ym Ò+SC[[mC hb4p HM=Ґrmpυ*ctIfaWRg].<\vhΰ (޲0@ D /bVh ?gڻ6H`I#['8 BrrRCMzɛs}dkJRm c'j7K0<Ʋ9&(kTwQf8H_R#~DGCzQEG%$LiŠ'$u,MǏq(q(M8$ř>՛C 3-6`Ҥk3_-[xc8gĄX&I!2wl/fT 3Җdֲ_KW)j~T#%j\f ozV 2,g߻`)0ގ4s:58ݻVǣc7*b΄WC{FI6ռ3,ehm^kw;˰J]w $OK<˽2v!}ΝYLC I褗߷`QZ0/~B=^oC?BP_Om_홙e١w.nt^(27 ㋸pdR{ؚ` mɹ8* SUyGt>ޝ1?W Li'1P##vaQ{G/>>s`F,l!\,w">U{Z= W#A yu!q:Kw|38MY]78ueSQXnI=aM6nHRP%`tjcZ s9rQIҮs JL)VC.٩/DbEOx ;%Z!ƍJ*oPlIu9jJ)cqnuk IE]{uKK,d9bLoQVygo>|- )CmAq{%W([x!Os1cUe,{BAOGCtPVU3;eN='j`IZC֞-^(]YiT*JaCY.|Q/7MU_;!ʆ&Yw϶g'!R;{Gv1]F ҵ#ܹDrƬ vy$;_*}CU H&Wl s5/>v2_QNgWa$sA.?d(wzF&ځ -~W/t*x&(u1Yr hƹ 0"Aʘ]`:h^#h=S m!aT7[%$͔4EU$Dszf~k2jOvRvt夺R#r)!/V2#2zX~]=?mmsel!ʿ}!2+*[ܺt_:V}vF7*kgp;sAv2Ho#G;I)'O;,=%f)GIW@ɍ.u؜rP}/;}XtF K ^% _ZǚQ XlHe)ם+$EY$dMդzkEIXKar4J.כhwR#!q671'UGʚт3}r|\0(}{]*)w܌,]W$7 $$6"vFWwYឥ*̅w= aD(DkByY75URQvr=t3BV>\Z_+?vh1͈hwEʾ`:s:OḦEeAY Dvqs:΋O y!HoI%l KLƽă>E,STۧDpQY~z;_oqðč⸴}Qv):JRy:iߋ{G¶O]j:.,;zZhP )g~by|b?]Tշ;1x‘bS=1ۑ=P/<Nv_G7 ާf?xb_ `o8ki%1joc1mͲB?E+i3Gm[7m6@Iw WA泽Jvz ?O"?K(ټ[,`1C>zX}wg;e ;li{3Lϗ8sM(wLFXc,nџH廋Il"nxW VSTj8"CBZӵCF*4bIt7صۻ%aS{¢>W O ^8+3q_?D1<$GN)R:ԁýfQn<[YcTtQI,Nb~H4ͅyׇ.,Pd#΀Jyކ=zVA<<*]kd`_71$А*zF{KU?jQ"+`& {O"mtF78quJЙ\ 4ICmBvsw E1sJەN*GK+%2OtTOu,ޏ=TɖyµCU@iH!֞Ȅ X "-\Ȥ<s䓟 8!Hd{٣yr rfPCHTZQ)a| 6Z'B7-aho(T0n"#'{6TטQtW9F^ B[.ht5Ab[W}~'FRxL@Es/&ć n4XrPӜ0!meȭ Ll]6-r f9MKܯ{q}.LCed8jr='>EYp4[Jil脤 [mjgɘ;s Jgߩ2F¶" 0ɭ7NumB)5{JDlk u],]s$P*dqWƥ#u>76E}فIo$BPfDus嘞+SF*cDnm "@ ǶZR}|?ܚ(җG W!wªEnu {E?X䔈)X饦I0Zv"O5#}BZI{1]3 nqOƨۛiLؠqr➎Ș%jFjIG[Nh" {t asPڝfzca%b:b> rI wP|?颊jBX)v(@,'*XVնscĠ$R7kIT_zLcCD9J)ww8<#Kwh(ǥfqG#Rq"CHUU>&}P'"iˆ6u:($",~zT=];QS u͜xg6(?/(x$>DACW~C%SRyj/XU=t a.MT'8N<sŪ;ūcI"f+n19R1WtFm^5z,/e5Z@fuGAVs6<絙k ,H"x附Z1L$9:*#< hTMmeeiq (MF }{PڼQ_pB앚%^A۬7;׫,M<<$v8/&_(a!()_fuLVSo8#F%6kVOY]¾j.LosFsg筅I Iە`8źf)%* !R{H$M4p:trqs^J+X . ]]iƋfxtm0&jx٨?|܁Z`}Ph.!F=@R?Č%D8DIlZJ&eqӎ("9RRR6[N2͉v@_ܥ{Qᇽ%?7ѯm2*"k«3c{^ru&HԿwxP W(iKNWng'wX"V¢OSR##i.{+BgM|h˘U"{Q[GcsI]"*LRZ1\+>oպf~߹ rFIh+{d3?5<=*#Q}T`G nScn1B#r>2U^f!}Tv*_ E?ך=qnjфyfRxu)M^rw“Js s'ELe91`y|tS1_6 rso ζũtpK]isr_3*D-חIOvRxPئ5x8o *ZUx1e_ِҦ@? Qd#`o!ΌXʞ:DRߝNە'ҍJW(ZZ]yASqCԲ@(Ts|)3,J,(Up-㨅Z.{5O柼 zH6>wjyǿ,.2$Abn/' ?V>;!)+CvVUeG?&~|#/Ѿ?]2{cO[2ts(N ")+q߫,xuB_ÙMGkoEOOJr]Z9i^FDDj@X04'|2]D,:3=7s1hMIg)9J~6 pWv,Tszjb-J\!p"3u\yrL$Dl-2bTa h]LA ѝ~$1Mۯ' 2Apkd2L^ Lf'6i^xn}]3YYWM^0Tms!0Aq,˗)BjYr/H<2j%V^l,P>DQF?8ғWN6'Pvౝ/VO4Mu?Y-bufD%D)3}_zf`|H[kIl"xŠ.fklJKI@o'3XIt?l !vM +,[=FjZ EdVSEި'nM㽕^{QTqce4__bW J8FTަjPQϔUI1=#g*ŲЩJe R1&:}VɊxeIt܆T} ܇1_y{%c O! endstream endobj 607 0 obj << /Type /FontDescriptor /FontName /PZVFAS+CMITT10 /Flags 4 /FontBBox [11 -233 669 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle -14 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/F/G/H/I/L/M/O/P/R/S/T/U/W/a/ampersand/at/b/c/comma/d/e/f/g/h/hyphen/i/k/l/m/n/o/one/p/parenleft/parenright/plus/r/s/slash/t/u/v/w/x/y) /FontFile 606 0 R >> endobj 608 0 obj << /Length1 1602 /Length2 11926 /Length3 0 /Length 12833 /Filter /FlateDecode >> stream xڭc|^c76ضm۶ӸImF'۳[_uk5ɉTL <Qyyif&=93^`ȸXXL<L9z̀p j/?ln vlt89f@gnۜ<ҮƶV@=3ۿ׭\$|C]}ku4}.ƶV>4?wtpU?M?MǸ!/QGf :X:3_şQM| b~lk~`~ `g@CY> //vLJ'kycp  ˇq+s5vkX描/xo< 0^dqgeг38j4usvڻ8_ͭ>$ h `j^/^4UI킟Q:֐p:sR HxbmU[̜} QwG1l e:uA*驞P@]e=ǟ+厙9 q~GA/.^o-ç}jm&>t(rX.˼E{[YY'>Di=ǜeC-1'hn?ٝ%@KҔVë(@5-dz,t wG(L0;BbJ~E qqynC ] I˕%NE{J=Ƅ99Hml|*,(/=`7! D_($]f;yK˧סkLsˎB}^t acP@nTp]zv {!+SR p7V)zdeYIIS =t,^VL/l~%veE DWO ߀Kk{8s)044{ȷ;cS &6wBQ*DӕArE/ L^${=֦C+ͣ|$T 4vh J+G#Gpl_S%\ RxTBn3s-% Z_l*fY%Vnw2"{ҹo @Y]-b[۶Lpcс4XAd5w8-d?.t="ލhZ\`J&.|QlHuAfXH`kkXv.EQS2TdNU DSrEAh6^d3*]H]5lܫ j!BZ%ϖ+(.uwDtcd|D 6 ?>_ q>6rW96m תX&Š'a?f3;'v|4J%8 -?[Nxa'f%6$KrwX=$`7ɟ2u;Nem0 ""P omU 4 ,krZgx Ep .6HO(:PlDNh'xB1dUb=k!b~a@AΐJg0?NZ@+8 Ty"BTLV|pQkD\ W6.n'l,}'jW5%zOBD1^G[iTBCIk'R'}`xK@}Ԙ<ST:-J XwM۰ P ycqc^}c)J?on{V6s($QgD娦 _&5ٺ_qC,01-5ځ*7(qt )hIJu( 8LaFe\S2Ƥ5C) k'Z+~[ki!}uQBi(Y>fbzfpm܄ޮz1z*RG~ ã;K=FN=Rc$䘋ĐGr0floy<}SF[.PN@ls )'S |ɒw4]KPi #WuYa;e#l'>˂cuWyȣl娊 eNK+ۙzYOgF`\7k? ںyn0DnWrm8A}jf|dZ(S1n܆S s1 v.)٣ECO<Ž,Y6% H_Qpﲥ8{9?>]9q2_! K`獾bs蠻*)VB"S6Y*?{&h  |5`>@L\UHjի l?@K7%|$0b4ݸ`bK4->h>Rofm5(xé+fAxlj~E=kIf`HV=V$7rXMDd|UWsY& ,zTosO_l-t{H katyޟ q0R,=ە&[QI/rm_9s"[E ٶk2 ȱT(_] O ItcvQZy24yKp1\gnA٣ L񐩅&x=g@ oo>x 60Gidea1-w$׊ZQtܯB dؖ,s˕q岲WDB]0;d*-YZwۻ6¼T\/RHJVlUyC5`΃%E3BiǙ^XdY$+W/o1wk?RT5-+`wLrr4=LAP1/ --cXP]TPxHCmSBgTqzz4ԏPra;8% SնOi+b^?*j|ܕ.de.z:^;2{f>Q1T׆W}g0"=;VG~iG5[RIh~qIF9ޚbw}v62袺pS .ڑ1Is=;}7س\☛ك /j7mur@R0MdH<ʽiN Sq&54ذ:Wl%P/ E0p>]٨_wnFUטZ̬ RXD~D產g,]]x{s3~qr L]u&5-JRih:LoUdT2MuR%3_ 'yKBRď]yh ~5RIiocFJX̪-t`2g^]W{> H7O{ZJlP@a Qsӈ10a&D".F4_ +״X K6\x>Zad3=4aJ,I.Xblx+/'jsJAe³*̱s>^ǿ 䐑ǹ%*i:#LUnDF4'p_,dVdlЍNa1)%s%=Q.R> L9^aXZ1]8niāpNtuBoPp=f"Hз3cKCW-1Fg8_Ĭ̲|7؏Ӳ3BLL۱-Pb f.ɼ.kWvCl@ o3@2Ott=@X2}ؖrz&53 JuA~lYɐN(F'Z̔F;~2ZvХŭ J n7)馌>)a 1\~B)1JBMȫ]1L?Ei9Jʎzԋ 2Ft]LBl#v2c{nxFd Sn=%у>EUeM7ԝzˋ`mB]B׃~R D ?"ˤW ^ift>~'E5L_6>6OX؜7{cbWoCJ+Hi,慯^;+Ր2jj$.I<u,+Fm^i('DqAlQYx[uߋlE% o tJfD7J/mMBsqřy-?f_/̼ & /O_g|&$ g 0_"#%GTJ4r.f wL ‰EwXZBS1`@fvL!/ Nu&otA9E>77y͝(yMaL$ǨϨRc^8  ɻㆭQyJ1Lϐd;PrL X<4՞A[>y>Sg=hSxZOtmkO/YyR+i? MUX~žx8wǴWiׇ;bVT'O`0ƁF7Y_5LKByɃZ(p>삶MqK 4iv1Ɍ8]ge2xKR5aeC0wr$/j~*QOS5Ŷ8~$v-)~x6;;@2#8ʣZ%z21 k7"0-jOo [/QϬJNf~3#H2F-~Q 9-Y|$GG5B';ԉ@ k)ʰK,,C]ofӲ/' '&>q7Fg{Ȑ |iceR{_43{SrFy<n7Lm6UA ]N֧ɾzy;oS]GNQgű{ ɟTNoG6%s(GVP9Vwj3:4Mgply1iC'~ޗƿy`Ө ŔoFx"tkT!uQjNK$U-Cr3c"uiD,ƏST(§7!R*}$iIY/WZLK81x[6,eBLNݚd u wS6 +w_ƎjtZof?6"qJ'vdBT?7PX),ApwuG]Ķ?@1Mcspze_:&m^uzV4pZLK-%@aCӍ[Y4A)˺g1_s@ƴZPlwm'*_xEӌz8Kq&njMl S/|%vA ̀Z/nIIY]P.wOHjV%۶l#w,%z;y}4"ak拑mT')TMJM0X6vTI_بIAҌZo`|UG%MQǐH:cSLި[ɃCalp:c7N/¢CD!JKHʙصal*tmX &*X4/[-t{nT e^ N}.xXօUdۧeL< Kڶ7GP yف?pkW}E6pˠěIr<͚l'ybDa`ZdUiy x#P_Vl{R!!" %ӚAcZ_wFR=.:`6ʜQChԑ@TW?KqL`orFo~=6o-F0'a6IAqA0C ͨ9E`$^rF:YЖ2/ވ g'fTcO"C%kQJ m{:^iSyۃ쇫(NN>%X-W2+9!3A5;~:v5/40r@86kB4tS.2S+6xIf~~|'XC phdq˧8$/c+V?Vs1 UMD&; iiFdH#nY!ijkk=-ք]YTFg EQ̛pfy7! $TC+y͋U5JޕO`@/0,t>[_@l_vXuI<&] >&.Ub(֌R;7W{L2aDnƘj]IslgMBGLU+{y ?k(7;bsUVZ՚}<~+v1L)m{ظ_3Put~-IS$>Z9PIFb\"I,$> 7쩬eI_J=ރmr p)#q.D}Sjc9=k7{>xvbm/zюRں_y3m)yʢo^_IBx c ;~ f Bǽo{Mhv@#DnYٓ5Q.#N@f b_CGˁ(>fAHat30:zDztH1 kLoLTz-N`U֎Y@-yʩdOb{'a/ܞKi) ]e>s^@W4ues3>}wbMM4 ,X^'ܵs}$J7@ȷ#uk<0w5^JQK¦J,ny,uQۯ޷M^6{ByMc+=d撱$2#&E5wC;x\' pc_o}Խ|pL.QS iF_ZZƯ_vuo.ĸZ;I'AHXpر/AM)M M|0s;|G˻VMX($X ) ց7,Jb+c1$: 6/bH9nep5 HOࡗK+n{[\3=lΜ^5A!\I .+1M".͢$ 鍄[DNx)62K;a6#B6 p$\f[#6:l([e E/,gZT+ y$ (dt r\Gc4iiORGJCj~g q  F44Y(لB]No:R|gޟ#9΄2Va_9Yޜ ?/RN5^ň >') 4t };_RXPsqjS,&!{&y(̥CZ\-E1_+U H5g,/?*قTPͽ9 狖I_uDt.߯|eW0!/"pϩqsO,3E@H7&ufճJ֠*Ec'e9T-fE!ӝށ8])JږFNFFx*1*gwr6WKH!DՐyTSB "\C~e }k䅽ll<}H KCgHXJ+\Ia=H~Ŧط F80=.&2͊O?TFDQPytͯPHBGCH&RNA3Qӄ0OwzČ$hZ-%k&a@%Cᝫn f+qw~ƤhnP W'(W8bk9i.p 1Z"aG19 JjLMF'xiyiM%s|lat+k[|"m)"wԖ%+0ҕ= A{c|RElT'Ml[u'9Tb+@Oa!DrbDq7PP촮N` lІMq?(ڠh!Mdz3PR+o<\^*MSP>]ީ0EKI{Uo.$(jl!+D Hu}$<>b#zQGDʑ@*EE=6l2kֶ.uUvuw/F l_/$זj]Q0kгj_2XzWߧ2.0- &?uj(݉%`edT]"{Vߪ %0j _2 Gŧ.L#3q1fdaƢ˫ʡ?_kn}֏G83Pi[Uvr꼟!E@HRJ1!ZuQO6E( hv7}݀e2 wgIoA7`]| 6L]ꑍ/z1Xh}.$)mKC+\CS?[0Qڕ0H^6.\Д!'2vJabDlTC449L](5dpPd7~~֧1v4_K2!]ChA'(%FMcRpaQ:ێXBFaCwud+h~ppE1r׊<r@I/“CW>nE [ 8vjZ4!oszP&;]*Fz wK's**h{O#-ub+F ̆e4) >7:RYɖ湅NT"46\NUy6=x)2Xe/1j(3|+bw:Gc|汑< FMQܙ ʡAM՝S$9zxr\Aty'gmV7=~#L9b)l)0Tq阪YFq=k,2v)%o Rq>Mb"x0O,'|5HPFA3BMs{WB$AډڢG8D[[l)RiFeLQp1nWVlڲ^뻵=lsA;߽Fb dJb4D87amO endstream endobj 609 0 obj << /Type /FontDescriptor /FontName /BRLYPM+CMMI10 /Flags 4 /FontBBox [-32 -250 1048 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet (/A/B/D/E/F/H/I/J/L/M/N/O/P/R/S/T/U/V/W/X/Z/a/alpha/arrowhookleft/arrowhookright/b/c/comma/d/e/epsilon1/f/g/greater/h/i/k/l/less/m/mu/n/o/p/period/pi/r/s/sigma/slash/t/u/v/w/x/y) /FontFile 608 0 R >> endobj 610 0 obj << /Length1 759 /Length2 1239 /Length3 0 /Length 1777 /Filter /FlateDecode >> stream xڭiTSP *KP!$ J$ƛ¬JE,x<&!(B*USdEu;s,||4 bԎL$4[ gi Frd: # \.T%` , 0EpHӃC"` CD 0O  p/ y!>2RI4P`"5@QDgjAkisL(/2W c'@EbCTƁL% a BL!( !/,EW(_Jo~N{ˇ]raD7F ҟŘg D$f}Z2kC0NaIʁJqd#|H ؞R1&P t:-#2 7ھi>U3B4*)t<Athl `$x8UsM=te_VXKwӾ/p%wbBMϯ]mPmqiFmk tռ[E?0)N 6뷨OE5!J:G]s#V_5zBDKQUuӟWo<1(Y UoVrۓ?|~ ij^Դ5G1F9qSFaWaS©lFGhm+Dۜxxq1~ 2jVӍFc7OUJСB |x\?j>c5Fт =oN( 6&Lmϙ":̖izmcϺ~4p)TmyݱW00}X]E\Y(rg9#Nސ ;rM?{Nfɻ cmǾV;)z d?_}7I>v{#C>};!g53zT endstream endobj 611 0 obj << /Type /FontDescriptor /FontName /KHDFDF+CMMI6 /Flags 4 /FontBBox [11 -250 1241 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 85 /XHeight 431 /CharSet (/c/i) /FontFile 610 0 R >> endobj 612 0 obj << /Length1 979 /Length2 4578 /Length3 0 /Length 5223 /Filter /FlateDecode >> stream xڭe\kPpH SDj@Zfb$V@iI1H AZ$ϻg_rZg20Q"ma`$-"ޕ\EE)T`6h8fZNq $@ *(;@|q!!pPvrP07H!&!h-ta'sC])4 E"PHy vֿNNz6ο 6p'-@:an]$w)/o0(ٻh'8DaIE%Q` jGClPqo'd@L_C.0?ſY `! ,|sW/u #R77o K)q))S1y`^A@}yp9_ҍVe _$# M?$M C*.@?(6ॲ?(v/qWLr/ {Y**H"q?w77\~`^0XL=s =Cp/S\R`rܡ;ֵ AP; eF }5`V&dAgF{3sZyJ i,qβёg~}3IP ˌZxɏ阞5 d6r]Շ)'"3t Gr,47rlN&s.K#*ΘlŠ;K>}65FɜF4ۡ0C2+sSbܢ3রBy[-RgchO B&j *MZ,s6܁6O͢C7E `tw ?(h.F/>7$Yz}?bGQ҄d=G%!xXXs ekWK\}mQ#qn0/I==CUBrQ/̤ƾEQTL6 ):,Z=9+oaVJK1gZ\ζQKP֐~:0:BT蔳}&64iZ.0C{b p!?a_G*,#]@f)%mZ9Q/Y,JGI9-'c*F^WvkH t%yL&k̳D5K&N ~z' 1TWdSPsgШ듆6)R1Yh3eQouUd3]K)(<6"QJgL, nό > Hc5 Pu|gL^H漦 q 6?{KAa{ }c-k)s=G= ֢J]Sf?܊{S; dg.62{ܺYEWN),ӣ+HvŔ&gZOb[j^,Nd́M;F8&C78LIYzƾ:ߢyD '$nY 7樃fǓ0 \e[LO >]M{? ̦0;[sx-K)YK/I3D@%=BO2Lr 3`@UH_4XW-M(B q\iPO\r$DTH3DzAl>>#m N1>E/F|E1Y^rcU3w&EԄ̈́*RWǐ/(#ˣ^q,*8;Ēj7$0IW zD<t'pN 6CA#}9(*0a=?|p:E!C$An-rm%~ g6USPdpjɩ27ȡ7bE m2)}`W-0/ sB~XBݷ~ZD z q!fx+}G$&y'f#Zifn[Ϊ :ڽSK=WV9JGd]]L2D};ы_s[9IW,^EQDpdz;<2*3 Ə1Q7;f݄V1([kuEˉH"\02[cm70GWW~ոt'&k|DžzhE`*۳q:ya^@SX"N9y1]S.n |YP{E=:ѶbFHαh +D*J~uiyKKzv1 j xǴ,G`^]rT*O].)V`-s&G~.zn R- ڡ:)* h}gW[%[NQ3>-=$[퓀)[ y@ԧ Ymv9q.;|f\D&$ؿq~Y5P*udD%fѽ6}LTWAz7wq5C1"mB IZRUE<"Q|i"kFzy]F;}eg+{\PO^#_-Vn ]KwK<]ImuוXN-4J sH…ovk;ui [ B0+v)"$vέ6 ~y/b[ɈP hs|W̓v%dJ%qlC֖Y6WjU巎 axy]JӋw|q3$ m`䝅jYi CfҩV1F~vZw`O_szGmQ\҂KB %n0y֙gՀ9Lnd,WL0o=O}}7%:{MT3X.Wl.t `Sy+ !}ջ9G6ٰjC= Ѧ3J"q]EOTp?CLg8+ @ܘֹhXJd.󘝚95OgF#ۚQ&"D"9%z>o %]QxuU˔ӵ>͔0' #ՠ2z*38&\b1,ऽh!pt *mS=0qb[e3OPuRi{LihO e'DެGA$\΂p%kE]G<}u (ڍBݶxDRv}QM7]6AIwrz½]RmNs3iԝ\t_GOv 1pຨaw2T6Rl2J5t,գdADXXΪ?d.!jR+8wdz<8\lT(wmZWsڢB6Oe,!6z ZC"0_yR>m?q7A@ hʻЊ~Rb\uy O{Åh>x"<T(a=Ԛ巾Sxx0]xP{O'57\Dپ$s5g-Q8$:D듇 XÛ}l#T'_=YK*~c{ݫ ڮκ9,ZUxi{+@iI'LzcK.QmNˈcF{gZ7_H.$Qڞ<5[̩1~_}R`IĊG1ewU#pyڌk7ɾJ)C2O<airW̴C6؁ԻzHZk'A0{fD+Q Y˸EX닀]x [%J~e޶EJSyUFj?bɦ޸62MEaJH5.t7bZJLɘ\j؎   endstream endobj 613 0 obj << /Type /FontDescriptor /FontName /UXJYOG+CMMI8 /Flags 4 /FontBBox [-24 -250 1110 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet (/D/L/R/S/a/b/c/d/e/f/i/k/m/n/pi/r/t) /FontFile 612 0 R >> endobj 614 0 obj << /Length1 2193 /Length2 16263 /Length3 0 /Length 17435 /Filter /FlateDecode >> stream xڬeT\ݲ[@c݂ӸCpwww'8%w |<{}޿hFj֬gU͵ #D+hlkqec*22ȄN6"N@.#''@ h㏋ lk`njlj h t0728?bXĺNtA++?;@G И`ln0#Io.?D(%!` 4\JY66r[k;g'@`]Հ& 46wNVF6V@ÿMbn@NFf+G@+r@('Ok/fq0wh1|tO.Q#[csS+cz>01nll>>j 0ulzL&6b !Ћb@/@/XRC">-rCC?E}hQCZЇ?E}hQCZGvGv?ibPm`mqw >F?kgˇo``d to>X?Z}cC_'Ɂ#89?{?'5ۺ)&#_ +?G/??2Xquv+ۇ_9X>nng[އ  ?:l~/Ɵ0}60r?S?>GH? 65+,cIa1F@\e33,rv+OW!g?/?S hlh_ZY,e;335G~lrZtA?9GEkFUҲ~T_>b8~(sk?v"zTFH͓C?󣤜i1Nzew4[^5Hi .-.2mkjU<*mOQ\ty@0!v>6uE ݣO:]}ߎ!/VPٍDӼ"ʇkD =Z.{2ҭTB0)ڗ$COXP^v8=&i?`Ơu2+Pa(*- AA{*9 W`G%уkKB92BÁ/G$~̓$x~7G>.\qB!Ȭ gdZ &Ԗ"18a):&w,t<ݶ-9->y:)s )Mk4:RjCxRX菭a3FZ`L$$ 7C_Tl^k`R%+kVu zF=Uyȥ(Aa$ bfums@v(.. Z{;NPbVE 0SJ3I!DhuېyBGv$lr MTRa>sN;qpsW]@hW!,G)ŌrȺPh+;kZιڼ#ZA]XB񅥐cްt\tRS#6=|"x∯?1].=ײ cZCd.a;/Y,ϹK 1G~H "f<3( oˊDg/ x`l]5}и|ڞ(i}TD>7̈́(1|>Pa~zi}vdztC\|ZAO 7ًlrB8[T H'Yupi'D۱0 j\!/^/Zoڶw,n(mAThv_+ lxeӆgkFj&SflvL/L݆AC("Y. 7Jj^fߒV5@(:T)YIw[W5<\J"vk݊} r%EGfrB6ssE#gxmԱ<8# |T 99E4˚g8RJ´ zŔXcЇ 3iUJ{gٶjqQM`73 Wz+BlXGNŘW7wʡ;3orLt5Kqd8L;)b un/6܂Uvciex7hHCQomGYNUs` W(`oqe+b7m+ f%Yv00?toŚW :"x}mglR!vX v`&;Cģ%.2UOIʦa%t3zhB!,2ic[>7^Wlw{YgEԖT"1%U)^{Yd4w%0qljA؇=q#Td5j}0Os|gimjoZTrLLwEMv۾@{ b!Rq)]V|⛎̧t $r?67a  ֈ7,'U59 {]|[B/\ bryZO@2\~rxW -蓩p7 yVUq'Wb@7%o*{`<6G 4"Ks'2\cHQ(Ӷ7)fFdM}Ɛ2J,ܥ7@3!GRYsywAG"vem"ZL{]S;\ K׷ <5oxI) E/U*zVGaZj;-YX\ԟfw8kd`egYCu/t0)fkѣU搲e1I.0mXfRY@)2zD^B ǣ@-}@)Y8ŀ/}o&YXmAQm<eoaUFL1)%(h|A'DӪiB]GՓ/6!s}6蕢Q ӓO(ӄH3g&ܘAcv# MD.`bDc6Ps9Fsp~a~~`tSvQm`)6[g܌tCԠɔ0=|7 yJas$_N6ʪC7q_V  {mQyJV1f2@N_T +E]$z T0-PƮQӉtr-RweSm-}<~{ 돌s$Nr-bܥJ.P uͮ:_RԴ7`8S)'4Wo+ ʔFzЧuFɢҭmd^M1^6r?w,NԒk1)Ѻm2ږ6I(ǹZ]GalVd{ E̾4I];&40zUHm.#}*sJv }-d8}}7}sp=ZKHrj^(R 7Q [LPqŰYlnqC%SW܈QGЀ4~i > /UAI4uW&v&<[WkЕ^y8c#y4ۦ 45I n|NXJ> J<{{YVP#/4MɲR+2Q2Ei.ع{JopCO9{͜H턴AY)p4 9'iV3ς;H%k^{N!b1Iz|  kЄ'B~訯jm0b{^ԧZ=UԶ"6֞lNOr=;]0sMN<(,z5w3|\d;tr;*kYFGP .FxoH?$2mF$)1'RM(.j#RMny*yx袧~31_'eV=^ς@ \I|Ft"V*ruX/YwqrM y[2F$ ) V2Sai=3fK;`Y0gl.r!aC>;v5_0ؔdg4P_z HQ omP^ {7a_oAG߶KsA2kTrE^¼"5W8W5z*9eՉo)VԿKw-Ix鱐O䭗';%B6~A믹c=$痒xUElFD^!kT]Vda?8{3I'x88>CЈtukfy9Wx[#rSԬ];xZ&iO{fQ 2kQS7&#{U?2/sf$b~mq" y>Jq1EdAzOD?H2n&=ز$a"x<=6;&(8ҥ=@cZDv"LcMu"\$ý_( d>OP'6`fŧ dv>!N;Om{, 18a/-SIZ?0vmW-ԯ+;H(>gǓ^/ Q(T`>ݠf6a|(G+`.Rv9H c. E$^Mr {Spu-~!I-Quqx}3Eίy?~Rz81O:o^7 P,pR1< 5#'z8G x}M8Ǵo5 j4 67);od t .MPضiqԻyѯF@v/N3 < rvH:,$%)},4$G AN1ۈYۻ@y9ޥ^0-^nuyx| ,jS"W":}_%Ik"h5]W|KKP*qSho4C ۑ}4}Xs3y^ꞻ%N0WcYVI8[\t4ސ8=$'|ڮɊ9rl?$of)_~N8T\OkW-,[Ua9 ]7D|RP]fM5> Ò&Ϫ ]e3z)/AΐUa*J5~] Qm ].:>ޡt5㊌fyl_%EX@<Љ_;4v&{QJ8 06~#'ܑYNCS׷GT#-L4s2E^XuH:CzX0KQr@!k1ȧC;-ͱd̡gSv>h6'{BlC^mS]+ J?:j:bޛcWF 4006! a?}_TYP_.rђ.H](sH$$<^$XDd9e??K3CPQ7DTY></h\2J({G]t{?)wE-{mtko$5[3cJȤR-a7F(cxw ]R*m^`mN굧* 0i `bp`jQ4=NϏ7Nl [ "Fh)1윁6tPh8{B.O lt˕/o{! vnY8ó{ D~as]VsG $rH?_ ,bԚxwK Mz]mhJ0<{y40/n6#UA= 2Ieު!r.waX YIMǖry+%>6̠&NFZ,)RlؗeMq4pDj 1H>)?jz}Z<"8 p[(SV^vigȑ|/_CBEZ#Տ]1]@S_ lW|$}8.t4\2 X$F[LT|tL!Q;kkKFVTߋ(!1KrBgT$ *]~mR hݑ+pfy$/-H@[рxIw6Bw4R.^< ( NQJK37D ^ G;$ЈTR9ǮZ&O4L5l*#㚓gv9X3Z9 FpO|8\J"ǣ܋Y*?n$n'!K(5~S¹aU!e_~ps͙lqi`Xi ר` ېٯ3I#I'7ڣ"c Xm+nio~ȄLv 4m*R #CX!vi,Ao?. #YUo|3o0D/X&=hdޘ0+4tǢR;ApS'o%GZZTE( 4kHdѮd 5c`bU"R/D~"j)RT Jg-Ti0p@€O ~/9LrN\ZtK*5>#+$ڦH\ 8z6'$y\.3qxSdUcvmFYu?}-Z*{"~ߋ D¸rV`HКǒz8Ӷ.e56<kQ`8Ǥ'ctEYf⓶ǘ|'&qKֹ\g> FoQH҂ӝ pp21!OJ  Y\-bfE)] OUV6,NHf1Ls \^ s?}rArEgl XWӼFހs&9)Sʐ]i?=88 t@)R"ڱ@kM&9M+0-0q\0%NEl+|Py9+m }^$9# ~2'6 93nY8\m?AINwI9 {GҔ5q1]1HjTH]n5%17D%la[p}.ZN6̰2D}9?J.WTZiڕo=u3FdR$%OрF(%,u;<0{<,&cs'H>SϷ짥aLSb7}}]N*:!ktxsYr>c[;f0cL5D_ I҅hRn(edR\lk>6w4}IhSfF 35HYy$+I$fBOAfL\=OU8ÊXE{鐭1EkU44!™C>5 1P!T/a]]crDv4T(\lo#$WqT`T7[OZmH3ܩO ࣾghF&ۿos$m,ƋRQ[Y`@{d_xܽ iG!T;!WϢsTkM}j=EE~}6e*Hmuqhŕk][2BrAmOM5sqw&lu5_Y-4|%V6C*|`ن k>9\bb2_E)ʣOZ-9$}Qf>Eխk<||[V7N32iq{=BH("ȋar*R'WtyG"!.Ű.[{=095@A#Cd :LGjʡ?b F3G<+?\Zwr7O&?\*^ >G']<4ow퇝<ɮzG2fe\zѥ0su819{>e k̞@`;3%-Pֹ DziQJ딡qvMd&~0;8PE4lMCw-_[&#ddU=\  >+(t!hP.lbVwW޺=CD._C ^YZөBjx0^)I47X3wMx<E\#~t'kgRe"xWUk a(<0J(Ԗy=mS<d⚺FN.3*yWkB̑nKf?X"<+d sTolW͹hG,U*;%CLý;IzianA0_6qOuf JR0gIqRQEr]DWH ˟IiZDm.L?v–ثm2媳8!fTըsU\Q/>cٕ3?,˹tVk!—0ipҳ1cȂFJ 2VN0O|wF"rL;`@I3epgjMv .`RVy ƕ!odjaL;wigk^b j'jI Iuo칝4sCN"-b,}"[, }}+m t:% ՛/E/8Z>G*H#N-w^ JN?P Nzߵ;*}\A$7Nmh&?*J1S kKxU14?~iQBǓ ^ lR9gyD/΁}*OaZ&_G M68{/N-.'e, 9,Qf~K:3bㇲWD,Av׈pW],*φ6Ylj=!!•fK Uu<ꛡZ z,i؎+"N#K;^O@ҾFZ; M*\){9.ܥ#lvBװ %X~_:ɓ-ri*odjY8Be6ɞ+QQ"33FJ"&n XR%R#Mfa2ةu؞t(L'&p؄́IF`ǩ˵2q=,bl-8pa-;S6'=Hު~ُmõ? kE+F{y'XbTЄr Sb,̐ȱX/' ~\܂k]Sr*djn:I4PBWɸ;I25ѝT.Qi4}xVB ~///ᣜ'^l֘\3R8j. ."Ʀi~K` 6Je.S0%Zoõ?㜧 Bt~Y'Q9l^90ۙV(&]E' TO<d Wªvө ĿH!hoăCVg0Mp(E MDnv=GuP,m̳<4;__!C=ϲ"}C~l}V !xxzl+jm`f.).cw!UׇKp&F>_^~Go >xwҫCH Qm$QU}&.Jz;>aFJy? akrcLgio(XH'(Ò5XU# a߽nGJ|iI|#潷yvP/Om4Q_5$Yo$'bzz)T _ @Aʼj> O6eĠ#vTԈft-Z1#+ƣPp[T"~';e;cЦ\YQ\ wHoQ}c 'MT 5Ȑ hGAC Eu^yUA>snI/_can-5׿<7+=_3ґT&Ed!R43&f3$JB y 4g*Sye̴4)2SARC" !-3=/+Q=O^s3.ƾSts= SiK%rZ_߽vsF!ReVRd{2wvDq8h!AXR`̛m$ 5QB 8,xׇP”f(Ssqv|ךinG5zC*6Nܱx^/9,Qu^{Y*iK^mp E^{X΂8 (sY39f]5;x ,Ns3>zZ&P*gAk]7\SRWtO2N)ެ)2*7n/[dbr_ۢGkg<(`b[ĝamF 2<^nҶ1r͓*ٟ|Y@v@s*|f\@0[oΡnWqQ7}J|Ƹ琶dzVbr9iCڷēwod?$r{Eep|'ϋ{ޠ8SB%2:lǟd/hT@@푰)5oR-1<hDBDȁq῰K2&~̕O[撃-?nì6 ݥ/KAڒ4Y- m0LTj{|> |z^ Kwe+`y7^@Qu "R-ܵ [O5FxM,^`E]P{ 978AjF_iR*a吭 rm!e)%UWiZČb!ʗ 5U248tTNlpIP&$y̡9BFKnEԻD6ZA(1ޜ0j w3M19x.~Bsȵ` e{D:17*:X.H,9u,4l != (f}Gm>:h]0B.uۃU<"\GPNX/^:ś!)S?pK9łfO)^Q^s id$"Fngo([c6ԚsY_E86I }ykN94LjgYm zEDo|ᐠ1uyr-R2`{;EՍ#[FX] KW5 OOR4k t5ӎ{;.UX]af?;I22gtԷ0gg-g 洬lS><+bi#nΆHe qbx?QVJ| FO.2%Gr_>"-(1gnžAIq`ƾW;Լ Ùk Mޥ}?.Jr;Ѷ'R˜Cxca{yXW;{c6~&vAg 1wH1U m.|2 Wpn .81&DX2tJj݇;W |p\Ei`niK )`- c%DW0ň,I3Ac" ev$.9TR4NG;]t"ʧol(3ʖfݪ@!-CáH 6pgՙ ihFٰ hGNXje]9f(JRaނ5h9k]m<2j=2q%7f%.!U*V9B8vVJ$!j_nYpkGxzUUFaFzI;uƇ]9W'G02P\>[Li_= ]y L~Ԣz|Bl՟fN|՝99cĸ78 ںJMpp Ӌ-{%eqMd՞|AA(D^ނkĘ9IUQز];iqx>Vk%Edw8fjOݶTӮɂO^}5`^zBm qEY5.;k8=Ϩw<{y24R4) rgB.HL{ǂLO_mb􎚨XMGOcЗ\8MCFS:gP?1*~d-}e\mf7PUvJ֡>:}E&Yw[ܴwRKEW{Y(L5xw孌RԹչ݀gЅ ^4C b]l6'\KU`,f1TE1Nn.ĈkOP(6E4.oDLK? 't' ehXSV|g0)DB[t|>7/9^2US<q?>NU[F: V=#Ƙ;w0m$Srft/u"m|W:HMrIU("܌x饤KY(w#-؁L~DGF(yn!b j''FVzL-MߍSB5U' f\#$ \p4/'NB(Hf(T깝)5Hњ)/YcMs +8]M˻P=CU "EY?8>g{YJN5l2caE/Tn\|?~o23 D eJf䏟p9Lp.Jȹ/KI_uvXx0lv_u 4Ye;qFbctW5Yڂ[ U' endstream endobj 615 0 obj << /Type /FontDescriptor /FontName /RYRRNO+CMR10 /Flags 4 /FontBBox [-251 -250 1009 969] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/Y/Z/a/ampersand/at/b/bracketleft/bracketright/c/colon/comma/d/e/eight/endash/equal/exclam/exclamdown/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/macron/n/nine/o/one/p/parenleft/parenright/percent/period/plus/q/question/quotedblleft/quotedblright/quoteleft/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) /FontFile 614 0 R >> endobj 616 0 obj << /Length1 768 /Length2 1304 /Length3 0 /Length 1846 /Filter /FlateDecode >> stream xڭR{W$&Hx NN8N" I$%`cM!K $\48 bYǿ>Y*u)꼦Zqi$pK~[^t=WWk\y|{{CAݘm3q=_F)Q_=7m꒷f?i.g Ac.&Rl\s_&ii죝^z*IyNI֑ =Vk|+Y*R+<8kMy= / cq3~(bݝKey;3nLKɹ bnK 'Z.iGe'1B#+oqWCˢReoӥO[ +^f5FjOmQR6dWo0Fmr8h =ɽ×n4|%rtzK>URopsb G-yjp^\DseJOZ+2oOQuU؉J϶`58Ίș*I<i7S F;Դ!~SY"b)s%rBv;,ʿQsu>!eմQ<"gGMuW櫶 1]f CTkkm}n2MQ8z`Q> endobj 618 0 obj << /Length1 908 /Length2 2500 /Length3 0 /Length 3111 /Filter /FlateDecode >> stream xڭRy<&[Fd׾eRilׄ̋ǎY0ٓ}%ݲYDIP)QS~{&{d?]s0]$ }To@X qT NF؏PH !e{= ~ !4LCKdW"z@O?Do*)?n_d !#o"Ky8M|ofv0bDz8qoƼZMhgV&dMo71||6d|; Qn%֖ou83r` N@Aa_6?V$Qs\`29Z$vK#Vv+VbC9c<6JЯsͩ{gw>3VZ #,v}vFl!3I/tx9z7{>]Q7,~ bmoGB\ȑ(o} x;Ä_C6i/6l1|gYu 1]<3!5f3+:9‹_ M>Q? uw5`\uPtXeJg4}ıZHڌgE oNПv&8s |ˎ4OneŖIyi|(tפF"0\_m oOIm;Ͽ͛JC8dXG`z-򾲃ʲBf[aƣ4A1h 73\[8ml C]R% iiąʮN]cJyâth[k|8:DSmvI-51Ln}Bf5({ڸ(=6b"0pNB{kN8.>CRQnaYq; _,]E9jӌ%B^3l&'Ir9‚1Iĝ 3Qi`)v(Wqhbޭ ;'/~T(QhO(i-턼ٮh&U,yK\S]R故(;VX꺆 kv3wcZ綹 g14E?tHP;8D EѬovb@&Ǚ ;EX3[ɩ9jpY lprz/|`sxʋ-fqWk.FvK 8Lb#syd65=̗ʭb#<{]]˓h9aK]pqt{̚B|lO!Tߞ^psòó$ho/1T ^{}n9DI$KX:b|~nvslyri9+*U¬4_b1og='&=a_'.څ{#vW{ή>Z L~Ж;O#v K)U2KvJW]UWNw `篏$?eJ=]-ὕF^$]Rxy:-AvD4}ڼζڽ-Y2 hӉp֌v9Ѩ#&)ₚկO]B7$:tzRhbeH1 IQ嚈pf۟C?gz-[zt X .D ߝ:)ӥ*U,Yګ 7(Z=3sx}9KAJŴEcMoG?/?Mݾ(˱3dA";k+{gHM~,ZYslq i[azڧ t711%o<}1Yq wh <=_^R7lj=q;c8Z ܳuWgyP ]1XC'O<)5זYpա>nP!MYw'T>e*.p?2ܜ" ˞=$Dtԛ7jЈ{g dX燎MٟZkKr`\|#Z R endstream endobj 619 0 obj << /Type /FontDescriptor /FontName /JOXEJL+CMR8 /Flags 4 /FontBBox [-36 -250 1070 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet (/colon/eight/equal/four/one/plus/seven/six/three/two/zero) /FontFile 618 0 R >> endobj 620 0 obj << /Length1 1403 /Length2 6958 /Length3 0 /Length 7784 /Filter /FlateDecode >> stream xڭWeX[$%K@CBrnIA@J..A3u\^~z&:-].k'K'Sq01@@dl>!1Q1AQ&' ʱ$ q쬀P:9"jX!]'+;ܓ tp\A0w57 Aqx qcvssE"HO5G qWp@4Gh@G; @wj k;7*Á;+-d`ֲ[6@+o;j$M ߷K hy:_c `ˇD@p.o?co(HQ Y=@>DB;gs!Z98Oe!mSy᧻ݧw$͔/Iپz4%2I:Q[uN裢Вq1iRێRѭ9U^W%ؾ}id}1a˜ƣ`sT?LơEuW2){N=B{*qvX*W):Pq-3e4DmJ0.D߇dB^*MuWS [#[5exH׿z9Q"ܝ,PnH]a l?o|MjU#sQcRG⬯%1m0ѹY{(c3ܶҁ>A}#.@+es'?[ Św$),5,[j ajHVDxˮ~~H/"lYǼVC #Qcm!ӱ.,q>=oo!xChuki['߬j3ui!m 8?'+[1updcz%<>1EcJõ>Q:) /sѦas(Wڑ %EH2wT n8Ud',=Vk CMYz}Ml O NL.v_~N>?/$2K0h” J+^o7*ٶ]`d9j%2zw?71H֚R^nR+ !Ĺ슪PVx$mDuɳ9\;kQ\/`Iq;,`GґEǯG|' ZBf6"ul :8[-u=72xLk(U mu> ƯKZ9/\FB]VY]TyPd%q@jq?lm<Ω$ =n^~^oUcJ_ET7yUCw![NYbB? &c.s>Xuc!y0)_ZFsQ.˚.~%/ϦUg9 cFeu-,,CEQ2ϭ(SHLt"Ƒ_~Q{-3EU?Mh/4ذ[YjZҾ#εH^pjdV5C0CU4'apU7os4k,GqXJ|"ɈӚ *Md;q  crμ bUC;s1￐mm̐׷EjњdDQ޽H`"o¦9[Nv>5"@byKӈ5`?1}ط [d==!4~&ǚa}cu[wcY6n \UfBTi n%&2А/)ʵO'|Z~9Wϐ74Ⱥs]&EPKߝŵS-ISbЙ.NyW#pmOuRN̅i/O=^/41i/RaكL =Jjv+$!l5'-_~|>v`ɸUْ\M݆ם\+/榯*BOI4>._nە-_@LPȏڥo,젎[oL/Vhx5A6&y̔JZ|L+?(B0-$*:eّm6wnQo$jr~qSr@dB=3,D[U`k݅-GisxfvcrCnV1G݊mTU|&ͯI ŔQbk-PK, ѶEw9?[ hӷw' –·ZХ")'+(gq,?mPrHu@@x@g:_ϫ'=:={*>:%Lq|![NO[>2kEoQE_OKq~J;UGB?6A" 3{v mP0zOH.otra?q F"Ds 3B+2i5diȎrQ 1[{Ln*N.%k̋zA 1I¹/c/Ui?F7,%'嗀n?ס7hΨ#tsh5Xg4`$S+rrLs݉=s:.ι'Ψg1*2$A ߴ_\iUqdžIX6^3=m9T//+Y5btn{2F)#~O?x-=qHZ:ct_-./E-71/Ui&$أn5n#w7ȳ)IϸALQMg{J$meWIܚ| ak>Kj6waBvPHM]Q(: cy3PbY?#g=[q|_< 9%zbh{y#~avjg-^{HFC1jRa9ȒtYVgMhOÜnNQ-( iSWQNK9n KiEرQt#rTҪ#E.b*b.yrӹYJRN;WB3Z*rcؿVÄH.7y5BІ0'/.1zS*m]hg/D:G7I5 hc(Wܥj;dK#ݧOF5T͔r_.maMrT ~=e$UfV#~(;X ^/yl u]řf]Dǿ{nt#X ^ GY0zl/=F_G)%-n9TCCO>_vK9^1G:a?c"r 1UA N'9uùN[lщ:c`!OwAի$> c"G҄7Tsbܾi3Qr[[7;sRr;?7)zG,+Gy֗EB<鍫p㹶|~&Hw"%gW?Ȁqeg)"Y%3%ٰ*i|_R=1Cf}Kק)$$e"wu3$\6>3ܤVAiF_eN2y^"`wj<  ލoFq({xĞEd*=28P(p7<th2))ĔTն2ܦSx@6sfRG=S4Ow¤{k^hSJ1NKŶ{?֘=Is&]H$q3Ew?p}q"GlCyeIü߮&LBΡied@G$HfvEQYIؽ^r"\s]DsT2KafAF2w}hS.G>&?VԀ*jK L^3ᢉTލ)=*^la`a:4U*s(EBVf|oGhƋ)C|>3b;dNd7B=ظy]lޙ:1V2T;cю9J>>z4{ugY%b`е88o#;x,/%wIXP"3LǑs.@wf@+K]Zr\TaNt]A9.aaU~j TgQpQ=\r}>J廠/b.C߬av3 t ꏾQxJ_9SjQ5~~n:T*HM({#!Ԥjpsd6(z䯃M×#o{X(oXbܥ&xy*`gᛑnBIEmLQ D/{hM<^c=ldv!|!a`x!6Yԑ^#sGk+Tk=扢KY &wBPObD> g"ܟrwuGAD,_j{Y^e~ulͿd$ e l~V17 u&dl[K6c($,9U*\F'q*0[nSepI5w;h>N+o32w=F$<œ|&fI^]` b2C_Ҵ]93mwF-Y[rH{AKlcm75vpC@gjټnGqy@Nەteف|sRW(9 endstream endobj 621 0 obj << /Type /FontDescriptor /FontName /XDTSAA+CMR9 /Flags 4 /FontBBox [-39 -250 1036 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 74 /XHeight 431 /CharSet (/I/K/L/a/b/bracketleft/bracketright/c/colon/comma/e/f/g/h/hyphen/i/k/l/m/n/nine/o/one/p/period/quotedblleft/quotedblright/quoteright/r/s/seven/six/t/three/two/u/v/w/y/z/zero) /FontFile 620 0 R >> endobj 622 0 obj << /Length1 1604 /Length2 10729 /Length3 0 /Length 11635 /Filter /FlateDecode >> stream xڭeXẶFjNFf@rnf^g;~xi(U5ŀ`34ޅ] `gaCpX%M]@v~~v%b$NV]tفMJ.Av榶 œ fk PG3@ rrYP@+s-r99CD "@'@aUCz JҮʦv()#v. 'rPп)Vvs12YxerU\?,LmA-2`T]SE`OfÐ9YyX!3fR`=XpLL=Q Bov=y@؃] )`|`'l*7UUX%U?`CV?SCfÖTn?K 6κE,)]ޫJ4 F4n]ʷEAG*_v^^4ׁ=4q-_3T1R_:~-X#:msܸ|6hI8 (ZbXM]+ٜ]3/)'W ~2"W{/8^Ǟ^)sаӯ4Юnz`lEp0ßӨ旛8LP_'/|f!mgP-|rC0PӁ5㔑 c͈VoT H[Wt b0*nu>Dz0 n$gQG}-6tToMTٷcĉ7\MNgg͢./\Cڵ:JHCXeVDrZL[qUk albtoHW~0&N6sͥA9L_7B7]I6x<*`1j3{MᲉ^N'|@Z_Ü"#ҼcQ]T坓`;\lgN,sv$Aa ۼH 3s{(~%:(&|d59| D&(MT _mal9.HJ cG/~{{J-gaq5je6%ä'4 FIk!$aC!ycG:Dy.:*=zOhϗ @AN?_hG!TfqM05)ӟLNWbm*Sk/Otoz[%b`oE)6NäY _lxBUzJߴ"{ĕ ?ЅӓPlR]G'Gj|1dӬ³;EGi-f9X8{5پXlP&NuIf8BIq~o]rpB+mZ$"%zj)2VnĦS[5t.yY"x051.aEG->sS%f᪂N:{V5Ԣ&|׆p@:k/nu";``ubi?z>u4"JgTEћdKvD1C$?]λE5׸SLbV>{サ۫9&ol-b@.(: 3Ƶ$QS47BBcLd!Jrjskg''C>`0V<|:zC§шE<9*=XQ.Mj A3n6r6.5SC&BdrlPwTMDŽTT[&௛X6Gn ϼ5`DZrJyNA[*L4th' v2(҅] Tߛ cse+weU 5>ҥxhpwWܧpuIirX6|}2S]Ca-. S MB>vim0S}S s5&wϱD`w{K oO\^FDN 6C5}Ohv+q:]`oW'j-}E1b! S!^lF463(= rAdƦc[yctreaD9IZ?'%/T96f2ؼ-)Ga1zOӸd} a_Z8($ w."(a 7 HXݑkM,4ֿ:Ayd[>)78NɻV6=p uhã`6)%hī\9EI>ZP_&͛% 6˙1tWyT<,WG8~<$i$g0։`:*{#$_P@A6wK j5;#H >L*pSN](qAùuλ007N֪WǏ5cO._d|Ȣ%^\aL]+ *]U`xL31z2feΝӷF#Rv~huTW,⼛- G3BvpwYg2Nz]i~ci0AK ?T# !K`n֛s2&”NAz!ՙBsɷIU]ln~*lks >y9Xwx&J? :A2] l.vMT3@uґq#̍v9G+$.DM4xe8Qv/.(G՛sDz䄜8L\{2+JOĹg,,vѯ>_oi˧J~y.ŻuC#C0_Zכֿ6iF@)DhM%`び܃-tf-7 j c,j~Kf ʦӁ,~/tfH|CBu"ZjQ `[fƗ,׌H׼%ؖJREbr!&ՖKg'پbw-g8Ocd Ƿ|#Έ̠#`$~A{wIbG,s3L ~ja| k=S%v, ]`'AxCʑsus1~&.sXy$Ea% mRGJ^g?(~)@sX %M"Zw7֩>|Ê7+'!HKNNiMPd>Hٞ&N "3߭[b@xWثMyqp"Bhm̻r<>0~adj\AFc#km_V[v' L˻Xr8R25V[OW5Gč]ߕ1rj]6!DeClGfHN"W܎w^ w7Fl'yh2ArqU}T^fkiݯΩF3_utCޮDk6SN`)闠:WƜxvIyi\:Pl =|gl;ٍLW b(/z*|}'+,T/{]r{ `>w6|- "FlOTRZ$\X6i1W[D8*$a,ٖ GPˆ- xfˤ$()kr?y]*軈[χv&rETi +{̘;~D>&$OaʃMLݐ]aV8-2j~agN2b>`Mf݁~٣u WY 'P̿w^P_B;r1#?oh˽85K?RT2. 6xv9MbOkI8drD+'wvy@ONŠqFpSp9Esbnw1=mk+-ߔYk]vc[DAsųnĈQt12ѐtYh^S Lh0NKfGN#;>eU,`'1qaIʊ'7HCiAji"sMC" URޜeuί2ʜ!g័q-"8 m+0q: Ow^#6~OQPQU 1Ohn:*T$ Fe6~׶@VifrdioZ*F[~KS1p3gN9O|0-&*}v<(9| 'ӳ!Qdɹ[?2y:,jxں%x& _& < lPH hݤ[noJ`OT(}JB$G9!d8jeE<,[uܠf(tm(И-;tڣ1qGw5i+ũC8s `0zmm$/f'x["*76|yKҡ6kGzQx9OA&kt$S%",g리S[؂w~f2<76u(wӨQ -߉qÞW9 $K)ɵl-"}6QZ" eSR['@~pÃY }'u1%F2BרQ(1'=t|~:Ͽb[MP >,E}h1Ӆ5Dh ˴؂5a CiWĖ0Eƅ3i#LiODE |?? E%&%#|/^~1ڻ+ie뚶ҡҊsnܴ0[S7ԫLT*Wdnj(wԙZ`v X`FվE+<8_s*t•yn`|JT<"T+^Me(&s&wIҥps FRl{PU&ӥ@P7dĕGF >O0dQvL#iMKЊGܛw@QkܬT(87KA[՟o2y )s>k)%["݌`{;eDGd>"ղ 0o' -ʍ4i]@Ѵ_+GŘ7д%ctϺZ@WT,">|E5Δg1ۼV73}>-D^"ff7_}^(&.d7z+1dh@wd l_6؏"[=-nK}VPpPǰv'~(Ema7Q$Jnl|މ-ley y睲AO>O f:z0mnite+BAxχhpJܜiimͅJS woN{ݗ?HwpC(}yJ)\+Kr@~\RIq f8bPշi${!Xedmg5bmš&b=uE V@Vmy _DRԥr9VB-E@8Cq!ckE!n70;tc7gn^pe(r{N4v5Z=0}>O?1G~qX_:3;y/0 ۔C}u 82s) g(kKړIC@μ' <ӥ}m~[N uΫhe\0%^A0q<5PfDsTsC9?06Cy_'Mއ\.u%é uoVR3`M$Wj]S ڦڌ4 ch⪧8) %/p3gH^۱zJ#]S~4y,+ѳ I:qȁLM䖚jWSR:Z+1M&鯩8hs*9\g=X}8],`e%b<&&m1Nùycwb.{<=8DހlFiGrG ~W?4E/_( f0ʴ<3):(og5ň1$t﬒̉j)DY녦J"Fu}4敉>PE&Rr"u<پٴ\Pi>E%pQ=qLfYq%W<4d1j.0‡T|v3ҭ4l]n/;AhB19ZUlVԟ1%5cT&hBl]!_Mh|U٫UYnW|w"9P1Nu~a70 Mz#=;Zn$CSkNfiⰏ!+zٓ $C^_~se-705k68Y>o5n ag "M,塉@#6tqPvaN2h(Der$J !nFO5px[}BX:!#B¸}ԱĊ6ȴ/ѕnF{6rF ![|ARbt+P3󱎨 hD6 m-V_if!AP"efM\*MjzD@~lG߯WMLƨdf AeQ9QXv:'7.CP:ڼiO1@\c)V Ih*^U|wQgw>vߞ' V Y Vf6ۯYia5P7dC 9MsUf3ä1؜">X7sDC8aeN Fک!2t!\/!a/2$P{Vc sHDʭ8ǢR!`*~[9q~TH#:wlak;rµ@ltEx@Ȓ?!:{'դ&M3FRԙ[K_dtUex[u`aڅ:ӻ)y ą,,X\Ty3mRqe 7~(lCK%.z0(_S? L 8 8p~̚+'Z>a3!,oylې7h<mMwuvdȶ{$%57P[yJgdάq,fMףyhis#ڝa}&$˿!ޫ1<2rNzt%,KzOhDN^%FCL0їQjśNNq;aۙ[8DΌP65t,tݰ(VSNZ< M]Ş-XQ޶a_75tDsΉ )gܐڷ ܠ]1К墎Ot=RtS~({VtTY*$' VwhV`ܣWenc_5âdspAjlQ*ֻo#X:SV0YsF0޽kǀ;Zl9]Z0k+n$m]P~@/sãO;~<D|# W3ўߑ_q=bI5-(Ϙx*f< JpBpr+߰*txVnwRjKTD#;vp@>1,.j׭V߿9?]qŕ#%q):[j2c/]*,ĕRTFlPP(%`xM&tq?J !S9s (sQآ}1Aҷveeh/D6.k@C{hU?5Lh3$Cb<j~:|Z(fVOẎs۬Z 5:NWCVSE t?E4'HqrCWv78q4k^ʒ1w]Z%A6#e:wHO>I݈6B{"h̶ezN\1(<-N^eЏC"Qgj D/n5Jfrat 5j4np@ӻs,…T~#V:XJK$ƔR[&S8ʈN"K endstream endobj 623 0 obj << /Type /FontDescriptor /FontName /HDPDAZ+CMSL10 /Flags 4 /FontBBox [-62 -250 1123 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -9 /StemV 79 /XHeight 431 /CharSet (/A/B/C/D/F/I/M/N/O/P/R/S/T/U/W/a/b/c/comma/d/e/f/five/four/g/h/hyphen/i/j/k/l/m/n/o/one/p/parenleft/parenright/period/q/quotedblleft/quotedblright/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y) /FontFile 622 0 R >> endobj 624 0 obj << /Length1 1171 /Length2 4016 /Length3 0 /Length 4730 /Filter /FlateDecode >> stream xڭyGQHAR>>"G=me1y7/>(Nvt%ƚsT9W˹7nox:/1To/z; rާ,e鋨ϟKp׵!5@FF $q!SsatИS\ ' *Z"A6؟"o#N}VޓTznp;@59R%/UQg&r{0mj jE`\*mRDsƶ%iDz=O(hCNJ)74YzFCNmf}h)my}}lِ!7=HV.[;c>]&QCXMޟhv1 Uqx80M_?;Lʛ- o@ Պxrܶwz>tmPIŐKeI&͓t's%zrmѰu$V3Sq$Ӳ6k>Hdp=R7h}qIo֤jVUD[\gSrRQ di5h_PΡ6|1+9c(m^ύԦj+z5oؐƬ!;<*]?@,NuL/n;,w_✴Ckt[z)c>#GáC;ɺvOnn- O yҁZ\3Pґ*an8<WYQY58e >Sϔ1:NXwWXe<0x|rZ9c|aD͗Z0B3午s#38!m iT&er oxwE7܏/UtC#pa <*m>6r"L$ZYaﳎݼ3&z&h~>!Pr{vh͒9rKjЋfi v2\}.KK:D1 5jtu%=ǩkyޙٍZMJ`7[s<+&D?EvJb,`#T3Uy;Kn'蠑Q,CLQM]hIR$;K`Iu1a0=ȹRh[2 $Pb|@ӖIgVjo`v!IZéw QUBC)}utbuU:CX@7u;=j >$s^~jF݉z4=9vfRLKwkbژ4xU$qՃsJE_0gjP),DPnĻ~"'4h4^n+}7>@M.r:-@ ^rN: ,Fyu42AS\f;pS:uOhMswT]}q䔛@-)F V>ŔsY<  fY@-rO6э)+I%.J\.g45|Y3H cgظTgɟHiI= \~>Q68lmԨܭM YeSusU+8[˩ʻC_Bpzo?r2B@GkYG 5we;H)^w~"Z^u<(x d?#k ;T;տǩ;43+{}_e Qi0+ ۍ?P'Ga)gP걂1Yx"Qj" ˯)hvvȤK1-^ӬwP_k$@e|%d*Hev1% ["gW}"9A]*T)whhB0vZ$$éX. ,$Y _T*Uϙ ڰò.3by] rtSr ꭖ,Ɋs[u4΄jtݽGiҥ72r3*o~VjYNaϒމEWV lܽp{a>ߌf)N]Z.wa4:>%vZQ秽_)r{xÓ+#hgh⛕N 3iۿR]W)y#&`y/״tXМ,1n98sk"&{]ܮ~i5c޶vM'pwG~溰qjSO(~;I I1!UqxͦkQm*-=k)}}ҝW?:gz̰> SU|^o&ܜ6ӌ _}^# ׬_Q{5S.}>kI-1Jf]R!tBB](@~4<=kFL$$H`^O=$9 !R)Y7 YdfOͫWB1|W*PJzŻ~H 8\F\U-kTԙ>j͑+c`VQD/)K:{2H]zLh3z,(+[ԓ':Fg;Y`nQ£WDq\QZ X?͕9nj[cVDJ!=<"+UGzbƷZ5>46] gھuErJuRŹ)٩B.Z?91-DF<ߊq>|bWU4Qn![MӅbl`'ޓȱWtR:NJmƐr(yoB΅eSYa1d܋OƯٲeJs7v% j ;?wEmc"scSN9)2~ _Q0HycH ]Y|[VzZѝ`.?b]STWEz$MjꨢnV~_<7Ka?ƙ! 7T2|>W| endstream endobj 625 0 obj << /Type /FontDescriptor /FontName /CHYQXN+CMSS10 /Flags 4 /FontBBox [-61 -250 999 759] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 78 /XHeight 444 /CharSet (/F/H/a/b/c/d/e/ff/fi/four/g/h/hyphen/i/j/l/m/n/nine/o/p/period/r/s/seven/t/u/v/zero) /FontFile 624 0 R >> endobj 626 0 obj << /Length1 887 /Length2 1966 /Length3 0 /Length 2550 /Filter /FlateDecode >> stream xڭy<{Ǔ-Cv^f}h,7Js3fa03JD"6[(dwS7UH3{=9뜣еƐςdU.pՃR@G&١9734@_A[rR-[M `M)84XF2RP@7+w0(0848 Hئ#'03 )ADEphk? ptQXE ,]V‘m7[ y耏TO=fOB18$b@x## HtcDJP?2P="SCx\ASFy#NoW 0W4y|[{ kd #ѡi Hn-o;Kh_hX2A>4ת_Dc.:uTzgɈO N)l(%sܞ;L1ȝ bW~˜ P3/X;ǂ7J,lYjg!ksB<ؽ&^6oFeҨDޒ, N qћ}uH=RNQIag_kWT&iaX+J(]GUG=d~(^C~. 54 M-OسX)䆅Ɉ^)R;cXtN<5Y8"?Mag4=~e#C[PzQv{Gأh .jʻBb8"H ;Un1six]Xz.W j6m5c!o"gijڃ9_'n6] yBU~8G/c ѹմS ~ w#zu `1WFnX!{XMf7zz:5ד XX^H4Kh`d„:&J/[UXi^0ѕ4l5@-8`B Q:l[IPA)y:)VǷS %+:jgfUfK]t%-t֦<-Yg!kgeE~e, <;1AePsh5G{BHk #o#ZvʌK*}\ye5уB:Q-.)UV6IKGUG^.p@*ulC_\M$&R7zΞHqOvߙ_:уUwrXvMjm]ɲ =koa=Eۡn95/CuՃN_c)$*.]՝-﷊KKjbިsP1`kVTG.QhRs>¨rw[[9aK zRhr2=T9;lD6rhUO$mPx;4_Pe endstream endobj 627 0 obj << /Type /FontDescriptor /FontName /GNFFWP+CMSS17 /Flags 4 /FontBBox [-58 -250 939 758] /Ascent 694 /CapHeight 694 /Descent -195 /ItalicAngle 0 /StemV 76 /XHeight 430 /CharSet (/F/T/a/i/l/o/r/s/t/two/u) /FontFile 626 0 R >> endobj 628 0 obj << /Length1 892 /Length2 2251 /Length3 0 /Length 2851 /Filter /FlateDecode >> stream xڭRy<NRH^ʖe浍5[4a^f3LH$P%אRJ$=k!o߽_=y99G\NNC (vv( 4G$D!uTS]7@:TKDy = +!D}kͤ~8<? ""~:@?Y@׬ y q!G^h| _E}.nw洃̏}~Yq)]Ϙ H'ҿ\~e@$bpA(h M/) #` dz @$"`I/@. ("@p𓡤PD(ANƒ H0gOU~"m1$TNESWѓB"Aӥ/ G_)@wDO> %ݥk-{cަ0or(d  Lxfp\@ ɬ?gYP'bfzWތ,Is*l2g-u螧ߟfWA:fOVI(P7?*pWLO[F[nA蠯+ mʱh~Z9d.ω~$r, c 3ػ魂է] ɢU$.{b7Rjevv04IUT ߔn` zx>av{-s՗ﱖ%eKKK FC,mlݬcT|wCz3_F]ϸ}gZϯ|W_fH+^>^d@QC֦Շꇘsχ0M%]+)9Fhsn`4cZُ *O 9aX%o@FV76̍ډj٬]MF"JfD++<{.{=v?9/nX">n[ELx~u7s7riZĶ]&<A[Xq5z۲JimoP9+Mq%Ґ'gq;Z{EKOv~uozok=[6%e\|s}D0NGcrEceCc+W~lx,ʞA0ocyd q#W0,ufÌJd7 I1w8e$ u Tk~uǥ&M 8}.l_d0SSr,)4_kt"DuG`݋nVw%Cն wf鬢D9T&/ZF\?|E*>˻]"]xn¡_h;"dGEg>礕jέkn)WZYW¨І3z4P՘)~UIHqXs^ȍ"+ӊ3KjL7 L[[o=Yzኜ?8xSPFin=;Je ,)#G,\dTIqb5xĉA^TX[lg,Y{&`WXjO `\VJW}O7zTMWMmytt%=F(ϝ~ѻ係(m uzDvd4Y$HU%oFMl4^#Hr WIKtwU73\dbDwʻec\IxMd/ƾuD=[:W4鵐'y =swa.-9Jʏs,3gPަ2 ڟ/]^`C,o81E*>! p?';=yV ceNKaaQZ|PV?S &]0Z7`'+v%dm8T}mRru@+>4a ^&ۿ/D[>2.hL49Ң Je|3ȓ3*i5"V[1ZVd 'j#[&v+NU3, ۛՌiFH \"Z}*M_F8.*N>ҾtoZ˾UF囂ǖ:1(dOٍuKV @*jbǭ%S>sAsq٠k>8OI:Q:\QrFrQCa)ɉ"Fڽzy>O]ej`rc&]~K |e3fʰOyx~?n} endstream endobj 629 0 obj << /Type /FontDescriptor /FontName /SZUWFG+CMSS8 /Flags 4 /FontBBox [-65 -250 1062 761] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 87 /XHeight 444 /CharSet (/eight/five/four/nine/one/seven/six/three/two/zero) /FontFile 628 0 R >> endobj 630 0 obj << /Length1 1224 /Length2 3244 /Length3 0 /Length 4011 /Filter /FlateDecode >> stream xڭTy2ME"퀧ʮӏڽΔ߅̲ ߠ|,ݬzF0tTX[Oe`?fev/Vl1m'C. s5ُZ(a)֥wBTס5Be݄P5%,LwӡĠSrvaOf=O쏎ÆI'eYrZSZeTO}谜TwV}̶Wֹ̓G+$lX}Ռ&\sh%֯kP=TُjVKG̱L5 =B/9bx+[tV Pgw}ڲ\׋-s/=}+XlvӼ~sܠ Ә4 )'1Sfi2LYO??jbYUuMՔc}H[Hqh;hysqyY~Uc'~7ݨN}¤p(ƞ7>kh#=2Zi݈ծY2+.uF ϨZCH E]O ]z+rVMV D=]E}@Vɮ-Ik=;QqB6t\\&>uBUuA+B`_p˥{^x~a>4$>P85iD8~UtQZޓx!p1DKj wx*o K:ZhB8B%sETpA@MMO*JYdsޜd-dVW,KI<;vv; dk9S>&{h>ώn"$8Ģd'3&LΪIuxo~ټ\<m!hgqycXK~$gQFoBSb[z_..!QTgmntJV\463.-HU'+Lf=ԊX KeCm}(N Q8-\{v>.p+MXPY'_^̀oZlvQ\^ o7=RpM1$tu;ѵ'Fk'd7$e\2ZH譝=`s*#\PnI2%gqh<9qfe]1s֡oYJ[LλbCag{yFƮB2LiLotF]9SSNI(omRrz^ C9/ FtJeq-JIw>G.Y/o-"ܢs$THeo8O ePgsj K&u2~*h)5zxyݲSQZ6MJMZ%)vβ> endobj 632 0 obj << /Length1 786 /Length2 761 /Length3 0 /Length 1302 /Filter /FlateDecode >> stream xڭRkPSG@FiyURHAIrp0  ϛd&ƛM(3 ZP|"j[ X_"05T,ѱTh :w09!N , P8 ! Q #h|!@S8!|." $4SQ`pMjHb2 (tbBA NhA Br䘌RpfH+2u HjiS`&mr- \er` zF7թT4TZ 9$48-1z4+P&JH!0m,$aV􆍰cEŧ0b8ȠN<\#j:#Ӄ Ah!F͊eÕ (In@>0\ilNP@'Sɰ=*a lBq)6B[Cblȇ׍"FOFP +xO(ӑ$ĩEV`tꡌI.Ѱڎ//~h^rb.L^ JjO_MicDz˞mnϾN,έTZo7&Ua(*Fyyj)&]k.L4FIjϾ9/e!]&yX^Oa/2f~)YWVg8 ;wS̠_nvrVdWXzF\@$Qop<\8 xku숫CL|ĚI\eZN^~yp׉U{u"z꧕! ;k8Ư9]fq9[)Z[16V9:9-hy(+3\^T7UZW{0|m;]V̝%` 1Dam}s"EzQ:.b:TY<Ͽ˜K՘u3198'pZ->Tq,GⰓ-@WM,T;>2+vj1b5_o+؇CMlO~,UZGrOv}6ةO| ґ{C/ Ͷn97w2jP5U,n endstream endobj 633 0 obj << /Type /FontDescriptor /FontName /FTBWJY+CMSY8 /Flags 4 /FontBBox [-30 -955 1185 779] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 89 /XHeight 431 /CharSet (/minus/openbullet/prime) /FontFile 632 0 R >> endobj 634 0 obj << /Length1 1581 /Length2 13092 /Length3 0 /Length 13985 /Filter /FlateDecode >> stream xڭcxe֮cΊmÎm۶mctttl8y}{~{Ԩ1jκ$#W434ucg(K01`ȄM -lE ML\\1ϋ?7;7; @@)LO@ clnbYdgdaA(3 hdjbL00rY0Iﰱ8:}PK&SAɧ?Rϸdػ88dMm;UdL-\l{TH@J︅9_q[V~ #'-F?[Ay [ge{1\$G w*3}&~J翚[ؚ07'&O vΟS+0sg_ M?`C#A1!fb0H!V'>~ .>+賻>j!s?Q0|F Ч^g9S_)~ ZOCdӡӡ_1~n_/4wOW6 tWH̵7p461ue迏?s?]9O Nᧅ?s>K:;Y_n+4~t ?MI{ ٹ{1?5|`ps_F.u~%˦O徢TNx]!M<'<(s-S&!ȖHgR ƦlBѨ3 /NuAsm# w[h.VH6\k8 "n|&6aӌIRatrۥSLT7ǞO-cjgܡ/cZOʕO{fr7ݚaʴ"\Vk:@$q]O_(-uo9k Gt. s9RF38=W5tДTV-qʤӕ6 z됑b9vδpxJy59f.L6M F;ӥ%]8*d9rCJQr6Lg,Gs(,2ʤG`T=rU\pg.cݏo ҁ^N ֜® :vl O-=*ߠh!㦹w=ژq!QOXLt˿| PH"AeA}POUVD{r1RYRk71R~=5Oo4Zd?fN8*lC!K<,EZtBi״(^EW.eJ{Cbu7' \$tTJ]\zYӕɭ^.?V#0} d5Iҕb)XquI.j d XL1NajڡM ,Ts.7m7yJn9)6T_gshjU֙Fed^  s<]([SrE`=1 F'LɣN j64J` DbeW8rcf~cDŽRM2mMHxqf fT, y̷M\H0 cEp .JBLZ.Nw*R\ q;}{N1Bѱq1ۤ|[Ӫx rò ėVO$wm^cCʽ$!r3j, yؒ;*.K7LҾpӸf;rXh(R=l~g0J,; PsvTN{Gh۫\jNk Wd7izPXr{bIrk5?aeŚ[J>Ar%AR=IABTj4ƨhqI(mG߷r~wM[V0Fk :Fxޯ)yt6"OvC;EԦP~F9 6w۪L6 LS3()`ȳP^g@qǐT 8q\HEX_vN F֭C"8WAbm+ .`p2U.kw{˧:nݞ㜅[gr ~% "8Z0UzquכDf*߸H 7/'څpV}|l qZ9CssXH$CK3z,"[EAoqݟyOWKw9srAJ#EsKAGMɯ-ˁ[1s@5q/+(Ќ#P>hvV)h֝L$䪐e} U*R.{FAklȥrB3Ͳ/g;Mao1DY/[""Ia݁QHgY ?1J%TjMG]RA6chj4҉KVP[?CT&ɷ"KrRLޢ߬Z+ Vj`* ZQHs[%p _9&j*,Z06p/.YFJ QfA&nףxYG6%49Kn ols* '%e*VEhFrZEa~l. ROD1۪";_+%P@g(Wvuj_u,e[gx՟)׀HX:xpcAL9BK˺O̴Xkgyl(@WOr74cWWA/Z.S<$\ЛMXX_T)u˗mpDz)ޚ \= k9 /3槙R򚺒\J)5$%B1|ftЋsՀb $:b6ـ%! {0qf޺.n׻Xt[uI &J_BR|(85y.Ĵwa房LV]JF|z4w~KBfO22,1g׬ww,t&W@45vå鿗PHkd4q] f_ڃ%ݍ+꥝#Q`gJ@a>J qBP _9Sde&>b8iѼAI|_g?[U#(Ѱ;g8nJřʫc`.<{3/b3I`P~2lDU=lzq򎚕ڤ9g(rKy#}.H2HiDwen9nFA$^+N̮1rbd3md^-IR+"LkKRAMC0D$ Nz-U j"+x+~Zc%BpgbgO]edQw;pw$>[-H~vc :C.n*aM\|EpyY9୳r%"Ҵl11.J8$:rӗ|u/ qϳ4T(+GBOV+k)w8X%O[ R!wA{o[OdXt-]'M6)o=PRJ}Z\o-|z5oM7Չ>Ҋ@Ů 0h~/乐ueC[ oUWU c=z m~ȋ£(UA2Z>lJ](Jkg z.tW~Ɗ_ e24%VW?_\,\'<W'|yZIOݳR9;Y6s&Ea0`a ;>O{Epb-tp  `5N~;(2,!6,g,3/; >ėltT1g-1ߨS៾4UTIl[)ƖiI_+nBم6ye^)P-95Qv(xmSRE3}~C]ejI9hi}D27lLRTsq#B4{B?eBek0ȵT]|@J8GqlR{W>K MFWGz~Ǻk,z= xqwm|oL~a#]{=Z^N"N..#^h5d*"v nn9KGwLG!Iۗ|6>ZF AUq`R~W[s1Ƕ@1&B#N夨erVxl`x:mep3DjgAUVCrf$" #w---35kRqE׎z=5,;FqM-褿CJA(ˤ@Egmm-JfRχ" -jF,N_TYD,7^c73"L,pHMt$Kԋ8r60| mާ?@K0uGIY?+n0~1"g ѦI,X9÷ID]pgJf $ 3,.A'6mf2pҠ-{.3[MA#/DI~.6nX|ZDS"ы+b>[}.rcԍ/MNE徤;dAвlTY9/)qo{Ɓs䃘N}]wdIoӧ5_}dF፝űj ~FV?&L'T0{O_LN)NN9Pi4q0xߥ&18BLG~QKKDQZZΣ3 MA$XmxR y7ݡ"%77^̼&ȟCh_ :pq{Os݌Ns %Z 0A1* $xmlkNN[kl(} A? ӳy 2Z`;PyWjwJݦJ7]:D'm4¤״vRNmYpLj4Kneuw-Y j -MhANSYm~jG qyUw+ ԥAůggiN~7>>5DjH+ptqpDJx{]|yMҩɟt,a=&լFmSrTcΖOs;@8Y+#9 8Vl܌)j6n8!F#5 tRp=Ih8Q1TeVE?v8\o"<"2/vUsؖf_ BGC:BDFhǷM}Ӿ|bpMハ#:锷C?ÜF e(KެrmJ5M.K10=:#r1!tLCwX:'R\en|z[@q/;􄥦Njd"H". ;e7>)wK.PWR?3kM M |$ZwҶ! w.(E ,)Ņ("`ZyM;@t<=h,/>^ٸͣv}y1Mm(nîϷSqPM([gKb+s`3o3"a S"Hā]]V=2(C yޚ/ ,[b_zr!HױAƙ=U<;@ (l>Tb*a 1<~2RM~`cjjK.ǴC:`( !IzX n,oK2ug;0mT='-SwժnȦ3q׵J[fasZzE _96AmfBlge~]MI(_y nu `7`2B LG ?姝mwo9ۧ"b/$*^HcGM= 5oC҃`-67s'4\i uxH9t 'F/܌,)J3Sm KBHp EE4?ؾZXJ`N+2wBk7E-?q[ O5eƨ2#X4b$x@ߚL^$V2=f~"mnA1 yk(|k5#ߦЗ[6-IwL>-`ҔQcF:yɾgW  =QI'w=GkϲN=k?(t?}/!c*T6vwV9vwkB[ \ ߩB;Y{f05j .dV 3_+zz< 4АLHdd󚋑[BQK䉦݁s,H̓$Lz'Cm#Tp9eWI!>$+ac lJqR`E6'S Ep}C~?Me0K70yQGJ5k38 [Mt-}ݏxEIcR-ob;we/"(U_WnH41|e2C*@:1d\^D5(&W k&Fk78\OPh _NB4OA2@}Q=¹ lΜ?2zJ"[0%3s]yusd&B*Nr?f9 !í} \m/|MB?ԌLaw+`6"ED|uj:a c\5{We,qsZECsp,d8W[Пxڻ}ppPC*sgh>, Z&.~ H<]GQ`⋦iYρ.ow!mGgk)_ }8({_|A n:B9D2]rcg)"_WXF9;A>ݞ=?u7ΪVh9Zx@d +'  d6 h6*+tb#FaK#q,֩hp;]hJy p )|O%qfb\#S3 Ǡk֥xn0LPm 4sq F`*¾oIkj.8\BzB.EwAha[ 3wOC)BJ(LV6P>X@mX8va'9KvHjz%_`Jw) rQ`}߂-a32%\ȕC8?3^~hZ )@XwZoK,iiS+{Y %̘!Ѿ2=%sTgۦ{d+k!t}4;j\[9SJͭbYcx3uJ/"raM0 >4я5Ȭer IB_R;T:_^I鏴F7Fdӓ\s&I}ã"s~o2 !_qn as)mő 64._?;0Zf`MS6^reӞJМ7*ۮ]M-YpN|a%icfIdIS9_gyIJԸ&+%RIepGzχno  T+Kȯ6Á}  |xSFc2K%b ʤ tםj/:#Mk 浴@EuN>eݪةhǀ& O#}1ˆKysT U.ݯPmm.;ұ qf#ARJrC[fҳGQi*XIZ[B#{{_LI7^+xD3!&HscӬ6,n(S7˟y:!,N6:zj'O.+~`SG7z{r-u$QQWpDyCT ].$zclBCsi~I!$WK+Ę1Q2԰H\,R=͝.s !I)ʛlJ(`g.ʄh{"i0I""R[# ;te * L,u">'¼Esx DvP71$^%*]G5̸D1ig^~a8wVe}&!7^K!O%SL|.in(Owi*\3s[1::jdeq#B ӊJB~1uLE ` &^QR|&,H|YA{ܬiD)$= G*6^XTzSQcꤊe(`L'yٽ?HZgY.p㛣f^@l`Ϲ3I(> endobj 636 0 obj << /Length1 2105 /Length2 13676 /Length3 0 /Length 14818 /Filter /FlateDecode >> stream xڭUX]5;. kp nBpwwp׽w'.U5k9_JRuFQ3{ #+++ + %ho'a#ae#up"a"ae`(I<.$4qv$.[PScu{S œDƆD$jg hBb!0Iܞf3WuAHh%$Ɠ `db!&rQ2':m6aop"Q78Pm)̀+bl4tzT.$.NvfWsR("I?CShD 8=HY@eL hgAEbdZ$f%ڙ?ħ VkA v?Į @AHc[Е0mZYAWtژc` ZJfr.2 T)`c9o5yc?@5qۀ.scS1+  ZL?֐_ \]A7?=-_Y@1at+?n{WB,C@-T꘥%  &m5O\.ZWE+huU J`rgm)Pـ&ꠃ_,Ҁj03S6/K;X[++(_a'3 O )q8lclWb?X:ZP\:/R] {A# o &fA z YAo:.SVM~tb?:mJF6u*30P_>:GNH:ƥ-dx|ԹPw :4s <1V[4}1xB# vG߭'3[G*F3,T 5ͱ<#l5)j}** ~Ҿ./& X)+ F8d|zp8Fnشsy4^ 4ԄL^x% L^P4( }PC<4Ȳ+ axw87 0֍mtѺq0"4>k6r}"GLeu``[?qR3(Ƽ|]]ج.hdf>eH&Ҍmޔw%)~e;Bȶ)c(P3z9LS3uU*_PcsUف ''!/p՞BloLr%ߙXRҳ?a`Rue/:mNjG ~C@),AaQG H3.iL4dj~U f/ =org1u<]9 (%nSE: }Gb Ŭ6|vcS!*t͇i=g%52 ƍOq3Xgsyzq(Rn$'r68DG=>?*ҔaYDE{=1N.:iO16g~a=) ׼ҎLC5!e&mq7xt*J4'æSfB-B. QoKKoV?hh`RRףޞ SL%?'tşD~S[>z錞c*CI'AI* zT{"Ca_RRuƜY={4Z^K[NQ@%[`G{P\pU6h`0ѳT3)KUpEȠγQ:\iPL^x^4e@7.~0usA a%YDuyt,\O.%5Cq0W I}ѓs'ytǾup eeBצhSpy ,2!awp)-~?YG9cV:Xe``Q٨kЏ+ԵlG&<]4^xFH?]wr LKXb"WwTt7v$iR6tg=MxDk۬uľ(FeinHnN8m-+`ycLūy+:9xK^gbs*}駄] :w*;v^BT`c. -~=I& weP V)W3!Y\wgѩ]u.x#UO=g(VI&oM[=E%sȋ;bdMXj$tˬjH%i4Y+g' \!Jt944ZG w"} c_/5^x)ouKݽ`zYNAb/jKpl- <\pw1%NEyY0چ: )><fhOF!8:>pBpyS}5:a1MYh&QUqǝ,31v6ku)*EBʑWG<΀umG_P}ɾOLߖyHOB_RURY{>i5 +dӸ!%!G$y9Ҷ|$Nk, 55Ҍk{_x2U sӥ/_kз| SCLUdqe5Ud lV6] e/e^#2BXcQxN^G+.^~SydR~\4r_ˮWLȖ}1 "ax&XU*5t 4QG <:'2?(x2`A.~Τ/JY1bZȠt]ߌѴHEՔ3s?>2p*z46 L0 q}Yv/ڕW;J]͉O ,:z8X@26EOr$Չ(y qա,љ) ,O8qOtWKLlƩpcxU{aS7a[&xxP96jʸ7zŃ/к<܀ ^%7a.Ԇ%UcCxqXQ6BL So7NvzO#c9:x`zCȡ6l;"NXbvhXv_kU:+.n{'LTēnLm{q3@5lWٍ(r) : U;RTB0%4pfO+r ,a?;aWอk~awp ?H_ן)( )GPX;lK%{U OueRHww)6/nsst<)|kI#D>]&PZ1*Bj˟D[1kڭ'NeU qgM+y75.Yer-Aeد s{x'5#/}י7U8|B $/tRrxQH,/?DqRPU>j*)pٮtycwJ&JfP AެC?@S y* [e (!PX"f.CuuR)?HjA2=jG 3ɲ'j~<^J]uIdnGpȚޗD7_g& # ĺl9nckE)JF9F`tW0 ٦I=>ò5 SeK XYK "v[cd i>9pFfQ6:^.`E= N.ICyN"6Uhq4O`Cy !QYCbm1/^^δ-e4@>;w6ު .¼}'U!uQ Z /]Y*X.KȄVQ2,F?jЙTȻ V8r^*SGF"(h/)Y?=FnKϪB"Hq9k=PTl2 ++}P~iH+2Dc ^GGoc,f%}hc,KBb SaJ;s sQ٥O{$"rW۽X/[UuKpd T ubz|PӴꓱX`!eMO ݍlTŒ[Ǖb*Of|.pήa̅od29҃kRێPefMa5>_:wjQOY~zUQҠjiMyr;RR-(۴Zg[,Ydt΋mt=HH oͼڠcaNh|14UE[Fd4B ٕeݪPZ|6Y\޾,GGOĖz٩9>3rb&xѳ,OdKh 2̕Pd=<T5> \elӞOIG;MUsћ\ۗMKS-%:ͩj9-op(1GTw8sA}Om`7blD(8JFs=l=z?*es@pIVN@"CWk&5,M2(_;afJvnh[7@Ay^q,N%4=?ӻŶ%UN1C7_w@_Z+ ;׏4돼M/l84^ Q*<poN+H|M_eBh}2)<&YUuKwp.K?Py}AϜ^#vzV@G֧qWw*= &0B96oFܵtsAL9]c[tc<|y8#~b:*3 /g6n|Z[^i5/W& tS'~p\`'=:lFB2)>(\N1Kp (Ja@qMX {TQM;YsT9Gpq}tvLqy7u;OZ\VĶgHsyT1vAwQ_wsT䆬=kArzu/ۗ-H_FodV՝gbҪf.[SLjbY- q10V;-xhy5+(JY_8ZF[ψJZzعC턥mTH0>)y'7C y:/X.;zI獘Atm*WA;rhZ/,}%6gk"R1,y7*RZ$DcJr=yti9Y_UgNd ]Q5{yrW0bۢr7ISC/GbwkG1 暰@{\x7]Q(o< =z4SysNkOoA݇E-Clܐw7 W6, eZc$Cъ>*E=)hGxiCh#^ 6N%F'83A}2W-"+ KUyv0ޑ 65\2u+|Ʀd[r7އcFWr빔|).c K[ t 4;ܐڰ01JsJ%/З/@{{ GGI 7"mie塃M4|Ay&Q;R#+KJ埱xgа3Cj H>U3 Mą 4R)IT bq_m7o8 cL6D?͡ݍ3֨lѥh\ }Qy1Dg-RwOĬm]0&aH.;z5rB@Vy+pm]ZS{/JS̆-kz# %n GY$z% ߅pA9C C) ` 訓i TNLm"1r~s~s8]%6D8]m߾W2,/Y[㋴r;&@52wսJvn$/CBu*BDw2tH=E~ )@2TZ>.~h?_@g=` ,-9>śJ;i.l(;)y6zt#_KvǝZr̦"}SW~R3uPJI;m,2ޙٕtK^ l=$Lˑߝ; Xsaxo͊'`l=a2B'"֣)Zܸ0}o%;E2"IaMPnW矑.tS[t ԊC >~7=O:yY:CP le?mFZ؛~}tZ}@Vk]j:)!_- .RX;=6굈|`'\qj+{ܱDq['ɇLU*; &bW ro$_Y:d?(W:X+RiuBdR)4=U5R$;iycmw"#6qEK;wqC8$~-ޱ L(yQ OԷ c%h1Zu2:Vx?#'e rWUZO/WsWn."5M@C_ տ8F|/wᙱjN ҼEV(% g+1f$!~jdtA֓`M:pS=-IVm ʥ[PQ/cIy. K?Z-xD3G׹{ltR[ 6*2!`z5{H~+SH霭$sF0..fګ"g]L'd6`'R^$ *T7ݷ;-ue 7)e\}Vƶ#}j^de*Nxր w7em뽘,>ڐgy4J]#xX?y1pr$MU %l'Qzs4ԮTVpfN6C19wAo/?8݄ VáEyАzD~j~Al$~ jEu4QN<𱂘'$6Th#(CֻWH9j^4,TQ3zG-&ɰK5{/I`i`j}IؕUϵP3Z@~Evh9r`c CBŶGπ>kǮ ,5z[:hw|q Q(h/eFhd{S&P#D.e)R_BB~7~$=uKB2-Mm;VI*aۻRPKr"Lr92=;cպbB)qPf F،OxB\ Uq_B󛡁;J(\KO y ZHl&P.Si5Ձ9΋a>W7C)["#2ZqL;0ie/ ԓ֐nү7A\>/hTс14(yrge3KnwgC.Π^>O"nۉԘdDg?y!\Z{ rL%T~̬yW˄QX5 U}D{IiRҾ0gag0{& W g9vo۰E芞-3.ePŏFqIU׳)aNbay?hh (8;G3 9J$@/ό5A$̸]:.>&y9*Ð:S,}A@Sn:_|h>b_Dk7Rڴ(DZQڏU~ߦ}lU\|~OrQfpyC@AxtnO>9\ % AQ|Yڜ: rXN@f !W\'(^e|IF>z)ٷ2r`i_r* C;>}_Tty)xz51ոvz\ȬT\dc"q0IqN=?N|Μ7_nh ysqtKq@Lv~ jd}"n:^cY24oħ)uQjDY%'c"o~0|'^/^֜#r?UUBq9t| h/.֒k;Dsq9p[rbk0)4SRDҙƒYt86i*`[D{@H)ka`j F0,(m&uIDF ,}cTr?_q )6"3F7`u/v!(¬\S6bh ҏ&G "_vG5;jK/NT(ϦNOF(¶Ck:dΜr|\LugաLS+`Q~^ u0:j蠕mf'_%jugE9&(zPPs$c34AY8Eo6"? JI0 dvI4,[YنS'rh^JD::(]ZwY ̏} h>-鰴:׾^wzׅxl{Ī׻6F_aBg dT}:@7`[:녛ޟ?&@hG}l>6G`j  WX!|'fq⋅[tnBpƚF= V Ē'ijK"7Õe[EQVٯA ʉPˤ^u#U^mMl ={<JU6%Nwvomo-GcsY\9cI[ࡘ\c|,qȑWw[Je$BsYzizȐfZyپz8XPҍY]@ljq1Nb݂$>Ÿ3*k~s-}H; v-U* 5cmGZWuYҍJWـNx2 &d7x<~=\tȷAi:Gsb4<L?(fONSz*#|a/lhӛ̞=+}vrߋjQ AլA_HF{[o.]p) VMh gֺM+icĄebځΚ5'\iPN .l-lE 0ޕ~mS_}\z[dzHUӵb/W,&Wb ;&EzO6X&o+CD.0>~ ,ũk7Vfe"D<`sQo3]>lՐ&m.[5RyɶY!Xʁlc;p@h yD.fxؒc󠉸ΔXHc\ lAB"A@"75=[q 7솭fN> endobj 17 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OZITCD+CMBX10 /FontDescriptor 599 0 R /FirstChar 12 /LastChar 121 /Widths 591 0 R >> endobj 16 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UGTHMB+CMBX12 /FontDescriptor 601 0 R /FirstChar 12 /LastChar 122 /Widths 592 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VLKWVG+CMCSC10 /FontDescriptor 603 0 R /FirstChar 45 /LastChar 120 /Widths 596 0 R >> endobj 42 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GZVOCO+CMEX10 /FontDescriptor 605 0 R /FirstChar 12 /LastChar 118 /Widths 583 0 R >> endobj 31 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PZVFAS+CMITT10 /FontDescriptor 607 0 R /FirstChar 38 /LastChar 121 /Widths 589 0 R >> endobj 41 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BRLYPM+CMMI10 /FontDescriptor 609 0 R /FirstChar 11 /LastChar 121 /Widths 584 0 R >> endobj 373 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KHDFDF+CMMI6 /FontDescriptor 611 0 R /FirstChar 99 /LastChar 105 /Widths 578 0 R >> endobj 49 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UXJYOG+CMMI8 /FontDescriptor 613 0 R /FirstChar 25 /LastChar 116 /Widths 581 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RYRRNO+CMR10 /FontDescriptor 615 0 R /FirstChar 11 /LastChar 123 /Widths 595 0 R >> endobj 30 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YHTWAJ+CMR6 /FontDescriptor 617 0 R /FirstChar 43 /LastChar 50 /Widths 590 0 R >> endobj 48 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JOXEJL+CMR8 /FontDescriptor 619 0 R /FirstChar 43 /LastChar 61 /Widths 582 0 R >> endobj 50 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XDTSAA+CMR9 /FontDescriptor 621 0 R /FirstChar 34 /LastChar 122 /Widths 580 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HDPDAZ+CMSL10 /FontDescriptor 623 0 R /FirstChar 34 /LastChar 121 /Widths 593 0 R >> endobj 39 0 obj << /Type /Font /Subtype /Type1 /BaseFont /CHYQXN+CMSS10 /FontDescriptor 625 0 R /FirstChar 11 /LastChar 118 /Widths 586 0 R >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GNFFWP+CMSS17 /FontDescriptor 627 0 R /FirstChar 50 /LastChar 117 /Widths 597 0 R >> endobj 32 0 obj << /Type /Font /Subtype /Type1 /BaseFont /SZUWFG+CMSS8 /FontDescriptor 629 0 R /FirstChar 48 /LastChar 57 /Widths 588 0 R >> endobj 40 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QXTUUN+CMSY10 /FontDescriptor 631 0 R /FirstChar 0 /LastChar 112 /Widths 585 0 R >> endobj 67 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FTBWJY+CMSY8 /FontDescriptor 633 0 R /FirstChar 0 /LastChar 48 /Widths 579 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /BaseFont /MOLNSW+CMTI10 /FontDescriptor 635 0 R /FirstChar 11 /LastChar 122 /Widths 594 0 R >> endobj 33 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RMKUPE+CMTT10 /FontDescriptor 637 0 R /FirstChar 33 /LastChar 126 /Widths 587 0 R >> endobj 8 0 obj << /Type /Pages /Count 6 /Parent 638 0 R /Kids [2 0 R 10 0 R 14 0 R 19 0 R 22 0 R 25 0 R] >> endobj 34 0 obj << /Type /Pages /Count 6 /Parent 638 0 R /Kids [28 0 R 37 0 R 46 0 R 54 0 R 60 0 R 65 0 R] >> endobj 77 0 obj << /Type /Pages /Count 6 /Parent 638 0 R /Kids [75 0 R 86 0 R 91 0 R 101 0 R 104 0 R 109 0 R] >> endobj 116 0 obj << /Type /Pages /Count 6 /Parent 638 0 R /Kids [114 0 R 123 0 R 128 0 R 134 0 R 138 0 R 141 0 R] >> endobj 152 0 obj << /Type /Pages /Count 6 /Parent 638 0 R /Kids [150 0 R 156 0 R 159 0 R 163 0 R 167 0 R 174 0 R] >> endobj 181 0 obj << /Type /Pages /Count 6 /Parent 638 0 R /Kids [179 0 R 189 0 R 196 0 R 199 0 R 202 0 R 206 0 R] >> endobj 213 0 obj << /Type /Pages /Count 6 /Parent 639 0 R /Kids [211 0 R 222 0 R 227 0 R 234 0 R 240 0 R 246 0 R] >> endobj 253 0 obj << /Type /Pages /Count 6 /Parent 639 0 R /Kids [251 0 R 256 0 R 264 0 R 269 0 R 274 0 R 279 0 R] >> endobj 284 0 obj << /Type /Pages /Count 6 /Parent 639 0 R /Kids [282 0 R 287 0 R 290 0 R 296 0 R 299 0 R 304 0 R] >> endobj 310 0 obj << /Type /Pages /Count 6 /Parent 639 0 R /Kids [308 0 R 312 0 R 317 0 R 321 0 R 324 0 R 330 0 R] >> endobj 335 0 obj << /Type /Pages /Count 6 /Parent 639 0 R /Kids [333 0 R 342 0 R 345 0 R 350 0 R 355 0 R 361 0 R] >> endobj 367 0 obj << /Type /Pages /Count 6 /Parent 639 0 R /Kids [365 0 R 371 0 R 377 0 R 382 0 R 390 0 R 393 0 R] >> endobj 400 0 obj << /Type /Pages /Count 6 /Parent 640 0 R /Kids [398 0 R 404 0 R 411 0 R 414 0 R 418 0 R 421 0 R] >> endobj 428 0 obj << /Type /Pages /Count 6 /Parent 640 0 R /Kids [426 0 R 430 0 R 434 0 R 439 0 R 443 0 R 446 0 R] >> endobj 453 0 obj << /Type /Pages /Count 6 /Parent 640 0 R /Kids [451 0 R 457 0 R 460 0 R 467 0 R 470 0 R 473 0 R] >> endobj 479 0 obj << /Type /Pages /Count 6 /Parent 640 0 R /Kids [477 0 R 483 0 R 488 0 R 493 0 R 499 0 R 503 0 R] >> endobj 510 0 obj << /Type /Pages /Count 6 /Parent 640 0 R /Kids [508 0 R 514 0 R 518 0 R 521 0 R 526 0 R 530 0 R] >> endobj 536 0 obj << /Type /Pages /Count 6 /Parent 640 0 R /Kids [534 0 R 540 0 R 546 0 R 549 0 R 554 0 R 557 0 R] >> endobj 562 0 obj << /Type /Pages /Count 6 /Parent 641 0 R /Kids [560 0 R 564 0 R 567 0 R 570 0 R 573 0 R 576 0 R] >> endobj 638 0 obj << /Type /Pages /Count 36 /Parent 642 0 R /Kids [8 0 R 34 0 R 77 0 R 116 0 R 152 0 R 181 0 R] >> endobj 639 0 obj << /Type /Pages /Count 36 /Parent 642 0 R /Kids [213 0 R 253 0 R 284 0 R 310 0 R 335 0 R 367 0 R] >> endobj 640 0 obj << /Type /Pages /Count 36 /Parent 642 0 R /Kids [400 0 R 428 0 R 453 0 R 479 0 R 510 0 R 536 0 R] >> endobj 641 0 obj << /Type /Pages /Count 6 /Parent 642 0 R /Kids [562 0 R] >> endobj 642 0 obj << /Type /Pages /Count 114 /Kids [638 0 R 639 0 R 640 0 R 641 0 R] >> endobj 643 0 obj << /Type /Catalog /Pages 642 0 R >> endobj 644 0 obj << /Producer (MiKTeX pdfTeX-1.40.8) /Creator (TeX) /CreationDate (D:20080822185426+02'00') /ModDate (D:20080822185426+02'00') /Trapped /False /PTEX.Fullbanner (This is MiKTeX-pdfTeX 2.7.3104 (1.40.8-beta-20080627)) >> endobj xref 0 645 0000000000 65535 f 0000000475 00000 n 0000000364 00000 n 0000000015 00000 n 0002426328 00000 n 0002424622 00000 n 0002425480 00000 n 0002426893 00000 n 0002427178 00000 n 0000000918 00000 n 0000000805 00000 n 0000000575 00000 n 0002426042 00000 n 0000002265 00000 n 0000002151 00000 n 0000000987 00000 n 0002424479 00000 n 0002424336 00000 n 0000003668 00000 n 0000003554 00000 n 0000002357 00000 n 0000004080 00000 n 0000003966 00000 n 0000003760 00000 n 0000004362 00000 n 0000004248 00000 n 0000004160 00000 n 0000006330 00000 n 0000006215 00000 n 0000004402 00000 n 0002425621 00000 n 0002424908 00000 n 0002426470 00000 n 0002427035 00000 n 0002427286 00000 n 0000008213 00000 n 0000030054 00000 n 0000008098 00000 n 0000006480 00000 n 0002426185 00000 n 0002426611 00000 n 0002425052 00000 n 0002424765 00000 n 0000008511 00000 n 0000008692 00000 n 0000033183 00000 n 0000033068 00000 n 0000030233 00000 n 0002425761 00000 n 0002425338 00000 n 0002425901 00000 n 0000035584 00000 n 0000062075 00000 n 0000059812 00000 n 0000035469 00000 n 0000033417 00000 n 0000035883 00000 n 0000036064 00000 n 0000096076 00000 n 0000094403 00000 n 0000061960 00000 n 0000060037 00000 n 0000062369 00000 n 0000062550 00000 n 0000100866 00000 n 0000095961 00000 n 0000094604 00000 n 0002426753 00000 n 0000096419 00000 n 0000096600 00000 n 0000100560 00000 n 0000100608 00000 n 0000102986 00000 n 0000115368 00000 n 0000122946 00000 n 0000102871 00000 n 0000101033 00000 n 0002427396 00000 n 0000103284 00000 n 0000103465 00000 n 0000115666 00000 n 0000115847 00000 n 0000125178 00000 n 0000165110 00000 n 0000197090 00000 n 0000164252 00000 n 0000125063 00000 n 0000123112 00000 n 0000125483 00000 n 0000125664 00000 n 0000234369 00000 n 0000164995 00000 n 0000164429 00000 n 0000165424 00000 n 0000165605 00000 n 0000197402 00000 n 0000197583 00000 n 0000238245 00000 n 0000267283 00000 n 0000314900 00000 n 0000237577 00000 n 0000237459 00000 n 0000234500 00000 n 0000265008 00000 n 0000238127 00000 n 0000237753 00000 n 0000238545 00000 n 0000238727 00000 n 0000313228 00000 n 0000267165 00000 n 0000265117 00000 n 0000267596 00000 n 0000267778 00000 n 0000322026 00000 n 0000314781 00000 n 0000313408 00000 n 0002427509 00000 n 0000315245 00000 n 0000315427 00000 n 0000321665 00000 n 0000321715 00000 n 0000324288 00000 n 0000359833 00000 n 0000324169 00000 n 0000322171 00000 n 0000324592 00000 n 0000324774 00000 n 0000362477 00000 n 0000362358 00000 n 0000360015 00000 n 0000367304 00000 n 0000377675 00000 n 0000405154 00000 n 0000364767 00000 n 0000364648 00000 n 0000362630 00000 n 0000413564 00000 n 0000366495 00000 n 0000366376 00000 n 0000364990 00000 n 0000412793 00000 n 0000367185 00000 n 0000366635 00000 n 0000367606 00000 n 0000367788 00000 n 0000377977 00000 n 0000378159 00000 n 0000405456 00000 n 0000405638 00000 n 0000426612 00000 n 0000413445 00000 n 0000412931 00000 n 0002427626 00000 n 0000413864 00000 n 0000414046 00000 n 0000427074 00000 n 0000426955 00000 n 0000426722 00000 n 0000429056 00000 n 0000428937 00000 n 0000427155 00000 n 0000434855 00000 n 0000432732 00000 n 0000432613 00000 n 0000429195 00000 n 0000457259 00000 n 0000454843 00000 n 0000434736 00000 n 0000432943 00000 n 0000435145 00000 n 0000435327 00000 n 0000483854 00000 n 0000534351 00000 n 0000482825 00000 n 0000457140 00000 n 0000455012 00000 n 0000457562 00000 n 0000457744 00000 n 0000545099 00000 n 0000483735 00000 n 0000483065 00000 n 0002427743 00000 n 0000484143 00000 n 0000484325 00000 n 0000534645 00000 n 0000534827 00000 n 0000547286 00000 n 0000576296 00000 n 0000586800 00000 n 0000547167 00000 n 0000545247 00000 n 0000547577 00000 n 0000547759 00000 n 0000576590 00000 n 0000576772 00000 n 0000589695 00000 n 0000589576 00000 n 0000587018 00000 n 0000592966 00000 n 0000592847 00000 n 0000589894 00000 n 0000596056 00000 n 0000595937 00000 n 0000593165 00000 n 0000601044 00000 n 0000599026 00000 n 0000598907 00000 n 0000596219 00000 n 0000629647 00000 n 0000654811 00000 n 0000652633 00000 n 0000600925 00000 n 0000599225 00000 n 0002427860 00000 n 0000601342 00000 n 0000601524 00000 n 0000629944 00000 n 0000630126 00000 n 0000684177 00000 n 0000742679 00000 n 0000792499 00000 n 0000683188 00000 n 0000654692 00000 n 0000652827 00000 n 0000655112 00000 n 0000655294 00000 n 0000789918 00000 n 0000684058 00000 n 0000683333 00000 n 0000684475 00000 n 0000684657 00000 n 0000742977 00000 n 0000743159 00000 n 0000835011 00000 n 0000792380 00000 n 0000790042 00000 n 0000792797 00000 n 0000792979 00000 n 0000836983 00000 n 0000891614 00000 n 0000836864 00000 n 0000835168 00000 n 0000837286 00000 n 0000837468 00000 n 0000894314 00000 n 0000904369 00000 n 0000894195 00000 n 0000891818 00000 n 0000894616 00000 n 0000894798 00000 n 0000907265 00000 n 0000907146 00000 n 0000904551 00000 n 0002427977 00000 n 0000909624 00000 n 0000972861 00000 n 0000909505 00000 n 0000907417 00000 n 0000909925 00000 n 0000910107 00000 n 0000974933 00000 n 0001004475 00000 n 0001075427 00000 n 0001003829 00000 n 0000974814 00000 n 0000973042 00000 n 0000975228 00000 n 0000975410 00000 n 0001074223 00000 n 0001004356 00000 n 0001003985 00000 n 0001004769 00000 n 0001004951 00000 n 0001108630 00000 n 0001075308 00000 n 0001074333 00000 n 0001075731 00000 n 0001075913 00000 n 0001109891 00000 n 0001109772 00000 n 0001108751 00000 n 0001112343 00000 n 0001112224 00000 n 0001110018 00000 n 0002428094 00000 n 0001117927 00000 n 0001115620 00000 n 0001115501 00000 n 0001112470 00000 n 0001134812 00000 n 0001117808 00000 n 0001115795 00000 n 0001118214 00000 n 0001118396 00000 n 0001138454 00000 n 0001137762 00000 n 0001137643 00000 n 0001135004 00000 n 0001169065 00000 n 0001138335 00000 n 0001137961 00000 n 0001138746 00000 n 0001138928 00000 n 0001172026 00000 n 0001171907 00000 n 0001169175 00000 n 0001175269 00000 n 0001174616 00000 n 0001174497 00000 n 0001172189 00000 n 0002428211 00000 n 0001219443 00000 n 0001175150 00000 n 0001174780 00000 n 0001175559 00000 n 0001175741 00000 n 0001222672 00000 n 0001222553 00000 n 0001219553 00000 n 0001226675 00000 n 0001225962 00000 n 0001225843 00000 n 0001222836 00000 n 0001273767 00000 n 0001226556 00000 n 0001226113 00000 n 0001226969 00000 n 0001227151 00000 n 0001277724 00000 n 0001277033 00000 n 0001276914 00000 n 0001273877 00000 n 0001303856 00000 n 0001277605 00000 n 0001277245 00000 n 0002428328 00000 n 0001278013 00000 n 0001278195 00000 n 0001307776 00000 n 0001354737 00000 n 0001394973 00000 n 0001307110 00000 n 0001306991 00000 n 0001303966 00000 n 0001354102 00000 n 0001307657 00000 n 0001307274 00000 n 0001308067 00000 n 0001308249 00000 n 0001392846 00000 n 0001354618 00000 n 0001354212 00000 n 0001355027 00000 n 0001355209 00000 n 0001422763 00000 n 0001394854 00000 n 0001392956 00000 n 0001395267 00000 n 0001395449 00000 n 0001428672 00000 n 0001425959 00000 n 0001425840 00000 n 0001422933 00000 n 0001442448 00000 n 0001439749 00000 n 0001428553 00000 n 0001426136 00000 n 0002428445 00000 n 0001428960 00000 n 0001429142 00000 n 0001467771 00000 n 0001442329 00000 n 0001439917 00000 n 0002425195 00000 n 0001442737 00000 n 0001442919 00000 n 0001470213 00000 n 0001470094 00000 n 0001468001 00000 n 0001472926 00000 n 0001536041 00000 n 0001531135 00000 n 0001472807 00000 n 0001470401 00000 n 0001473229 00000 n 0001473411 00000 n 0001595829 00000 n 0001616523 00000 n 0001715843 00000 n 0001534796 00000 n 0001534677 00000 n 0001531315 00000 n 0001595206 00000 n 0001535922 00000 n 0001534983 00000 n 0001536330 00000 n 0001536512 00000 n 0001615669 00000 n 0001595710 00000 n 0001595316 00000 n 0002428562 00000 n 0001596120 00000 n 0001596302 00000 n 0001793671 00000 n 0001616404 00000 n 0001615779 00000 n 0001616818 00000 n 0001617000 00000 n 0001716138 00000 n 0001716320 00000 n 0001796920 00000 n 0001796801 00000 n 0001793807 00000 n 0001800648 00000 n 0001800529 00000 n 0001797119 00000 n 0001803505 00000 n 0001802604 00000 n 0001802485 00000 n 0001800826 00000 n 0001841320 00000 n 0001803386 00000 n 0001802720 00000 n 0001803799 00000 n 0001803981 00000 n 0001843182 00000 n 0001843063 00000 n 0001841430 00000 n 0002428679 00000 n 0001846351 00000 n 0001846232 00000 n 0001843310 00000 n 0001848838 00000 n 0001877563 00000 n 0001848719 00000 n 0001846539 00000 n 0001849135 00000 n 0001849317 00000 n 0001880449 00000 n 0001880330 00000 n 0001877720 00000 n 0001884254 00000 n 0001883570 00000 n 0001883451 00000 n 0001880613 00000 n 0001936542 00000 n 0001884135 00000 n 0001883769 00000 n 0001884556 00000 n 0001884738 00000 n 0001939699 00000 n 0001939580 00000 n 0001936652 00000 n 0002428796 00000 n 0001944374 00000 n 0001963537 00000 n 0001943364 00000 n 0001943245 00000 n 0001939898 00000 n 0001985300 00000 n 0001944255 00000 n 0001943527 00000 n 0001944664 00000 n 0001944846 00000 n 0001963828 00000 n 0001964010 00000 n 0001988908 00000 n 0001988789 00000 n 0001985436 00000 n 0001991799 00000 n 0001991680 00000 n 0001989095 00000 n 0001994330 00000 n 0001994211 00000 n 0001992010 00000 n 0001999189 00000 n 0001996718 00000 n 0001996599 00000 n 0001994447 00000 n 0002428913 00000 n 0002028058 00000 n 0002056367 00000 n 0002025861 00000 n 0001999070 00000 n 0001996871 00000 n 0001999482 00000 n 0001999664 00000 n 0002055167 00000 n 0002027939 00000 n 0002026053 00000 n 0002028351 00000 n 0002028533 00000 n 0002084464 00000 n 0002056248 00000 n 0002055371 00000 n 0002056665 00000 n 0002056847 00000 n 0002088565 00000 n 0002087039 00000 n 0002086920 00000 n 0002084586 00000 n 0002114685 00000 n 0002113703 00000 n 0002088446 00000 n 0002087215 00000 n 0002088859 00000 n 0002089041 00000 n 0002150201 00000 n 0002114566 00000 n 0002113848 00000 n 0002429030 00000 n 0002114984 00000 n 0002115166 00000 n 0002150663 00000 n 0002150544 00000 n 0002150311 00000 n 0002155927 00000 n 0002152935 00000 n 0002152816 00000 n 0002150744 00000 n 0002171278 00000 n 0002155808 00000 n 0002153062 00000 n 0002156226 00000 n 0002156408 00000 n 0002174471 00000 n 0002174352 00000 n 0002171495 00000 n 0002179474 00000 n 0002177368 00000 n 0002177249 00000 n 0002174647 00000 n 0002198233 00000 n 0002195413 00000 n 0002179355 00000 n 0002177543 00000 n 0002429147 00000 n 0002179770 00000 n 0002179952 00000 n 0002227695 00000 n 0002198114 00000 n 0002195641 00000 n 0002198525 00000 n 0002198707 00000 n 0002232107 00000 n 0002230068 00000 n 0002229949 00000 n 0002227875 00000 n 0002249423 00000 n 0002231988 00000 n 0002230208 00000 n 0002232403 00000 n 0002232585 00000 n 0002252303 00000 n 0002252184 00000 n 0002249604 00000 n 0002254079 00000 n 0002253960 00000 n 0002252432 00000 n 0002254761 00000 n 0002254642 00000 n 0002254231 00000 n 0002429264 00000 n 0002255204 00000 n 0002255085 00000 n 0002254854 00000 n 0002256957 00000 n 0002256838 00000 n 0002255285 00000 n 0002258387 00000 n 0002258268 00000 n 0002257049 00000 n 0002259585 00000 n 0002259466 00000 n 0002258479 00000 n 0002259994 00000 n 0002259875 00000 n 0002259665 00000 n 0002260075 00000 n 0002260134 00000 n 0002260460 00000 n 0002260988 00000 n 0002261561 00000 n 0002261694 00000 n 0002262354 00000 n 0002262989 00000 n 0002263637 00000 n 0002264254 00000 n 0002264649 00000 n 0002264728 00000 n 0002265083 00000 n 0002265150 00000 n 0002265777 00000 n 0002266418 00000 n 0002266912 00000 n 0002267581 00000 n 0002268208 00000 n 0002268680 00000 n 0002269103 00000 n 0002279646 00000 n 0002280020 00000 n 0002291270 00000 n 0002291695 00000 n 0002296093 00000 n 0002296345 00000 n 0002300735 00000 n 0002301228 00000 n 0002311080 00000 n 0002311441 00000 n 0002324395 00000 n 0002324791 00000 n 0002326687 00000 n 0002326909 00000 n 0002332251 00000 n 0002332505 00000 n 0002350061 00000 n 0002350653 00000 n 0002352618 00000 n 0002352847 00000 n 0002356077 00000 n 0002356350 00000 n 0002364254 00000 n 0002364643 00000 n 0002376399 00000 n 0002376811 00000 n 0002381661 00000 n 0002381961 00000 n 0002384630 00000 n 0002384871 00000 n 0002387841 00000 n 0002388108 00000 n 0002392239 00000 n 0002392684 00000 n 0002394104 00000 n 0002394346 00000 n 0002408452 00000 n 0002408824 00000 n 0002423763 00000 n 0002429381 00000 n 0002429495 00000 n 0002429613 00000 n 0002429731 00000 n 0002429808 00000 n 0002429895 00000 n 0002429948 00000 n trailer << /Size 645 /Root 643 0 R /Info 644 0 R /ID [<44BEB6A8BF7BB7BB543073DE2874A422> <44BEB6A8BF7BB7BB543073DE2874A422>] >> startxref 2430183 %%EOF faust-0.9.46/documentation/lac06.pdf0000644000175000017500000074541011702130733017131 0ustar orlareyorlarey%PDF-1.4 3 0 obj << /Length 4026 /Filter /FlateDecode >> stream xڭZɒFWf2,X ۜݲ%/D8<>A4 n/ɗYUHH#Bfr)~}w /^y TV:Q'7n폛m7޺luox%~yG9 -/6Zg~xh4gXӑ^uߴ*^iGmݽJ=' Ct%N[?u@L/UȪ?}}M WIy}腼K:Xbh}S4?^]!gCق‚؉ho=]صqQiZ#K9en!'* ~ɺm4)/6 O\f|_dN~1UO}myXU ='qÄWiKM|7^=#w$y_'˜2\Xz9*tiS|~eaU2( wP"ǒd%"'ZՖO徶mϴl щȉc7SC8.w6,Vd &3*ω\B 3:QJy._BY %zyfx8x9˂+i=f0.72 ܟ}W hwYe~eMcCrd}(rFߗ}0/SBKpubv>a{m"B%ģfGYnzH.읝v4p}/^XO)03Amz?^e% _%)%"cSn \ɅMhӨʼ\ޕ={;Tаrl!qgzyy&qZ֞#3-슧 IDz˺‚b}vz^bSKѓ)Yu/a1gA,lO`TG5B" 2ٗ">Xyw&9wgPCir|a- k1)`_l4ڢ \LϿ%i-#Vpə$BҞƐ9ťxw7ނyү,>/Az~H (~we#VR7\C'M,0Ľ8"GFTeY'>5,:F%"2 1Ϙ.ޗ=-iAhҬk f Ǚ* 9] la:u*IX, {!Gez?ЃlU6ۥˈIY9pRAys$5V>%Vτ(WːA%k0)Ic} l8UΒmWXmDuGSK YĂ@Qs2#pgHh?tUf'=t\9ڼ}U4c&7;51%N<0ZG/&;+5=IyĪY{*qR)t֩a:(MAPݭ)B ᕟd-(}vaH("v ZzE[Me& /1G+_i'5i2E9^@/I#a* BKzJ>bO qZɼkYpJr⽦l7#IhS1`l):}F;4(ޟã۱ɾdy .@ MVdf۶=5a#.cj$$'^ t]Jv&\wbu4d|cSV]pċй |Ҧб43Rg{qH2#NC;T7_a?~5gt8ґ~ڌ 0x1چ aMlesJ9DRiۦ&#jMlqJslivN͐%[dSO^m+}d@$0LD=r*lI g>#ǜ dXGY g&Ea'Fa & p?at+b8*MA\Eq5fK'_(6ʏQ ژBYf]3MyL$cq P2WJ%'Q(+B#\Dv oh%h],0'|lxhULM6pIF吽4.78^˅z2L(ѩ,R at4hL V Ldz1]{VJ6x^g(JMOǼkC>4"5@I^)KRQT 8L|ܒl< \ɍ?iH{H.[]Al-L $HBKXw_4%uy۱J&Èc3O%0chok0gXZ8.]ʪI>Xa6?Jb7t^9墀I$ϤS`|(otcϓ:pm~^i"S=l ϏNhڑY}DY/1a$cK{wA3q`wc9]ćDoL;.!+6IR]R2F`=B|\ΒVD9ġ0|ok$ڨ @}hς-`4Ru 7d{$,O@K[?"z}o&gys3Q#{nʵyrmLd$[~sˌs埈7HB _:?]oA籣8GTS( :#PgRkVβy8w n$[*ľ ŒPX/wQVTtY1%^m>_h.nDRF#; JU,@ b §w?#Gh|Pw)7\:qvX;n1-VW> endobj 1 0 obj << /Font << /F17 6 0 R /F18 9 0 R /F8 12 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 20 0 obj << /Length 4907 /Filter /FlateDecode >> stream xڭ[ߏ㸑~¬܃fHJ6b t8$yPjҶ<@4zAm_} 8oVp^ghz'ݡwAKku红ٟɗUn`pZK@XyAOؠ8?xX^װUڵUJ'XďI~&F͛Yg_Rq\ mOØ0yjsa`?7<,2C(Aޯw?o~sS5P/*ՙ;*aUq5TLS%\0\ЌX22g>ʺشPES]i^Eعh "(=h 赫aԕ3ݐF}CyB6c=W«$c?A_g5vf<kЂ5쌂%V ÃշڷiUFe-U`+qugb_b^o < 2`;~IؘJuXW' .%lQ??M/\^*!b lP"5爁 Hf{ [Gf6[Od):3hih6XJ:XI+ȱ%HDH`G!fEۚh<R[R[o{k4Y}{EFU%I wM_ﱭs)(dɗ7|M(dʀ-ҚŜZy'k8IRqps-:Y8[Ǣ)K+d QUBNj| dUz1pm 0JORhq:/  [D4? LMz ӳW62$5@e]aN>F o =L /6+Ci#oBX^q5Ջʑ t vt⶧z|$_LU%0!kN"pw 'e* WjuE32z~%*g1EI=rΌu|XWON[Lc/#2qX E\wむaDyI«3 {ԾVBK+>#LkS+/oNw rp]\bh\hບlWxI&Jq2&\|>'$ME^dfϫpȌ*B04OQ;b)DGS Y`F04c(gq?ڙ4;NŘ)>{!,OMΆiYL9`V\y&*&j>`K~-Y+}^b,>3)7@og'lZs nb\I(JGJhU6(Ё aC| c0ef0R%Ow 2W]@kAl\7Xq֖D3h(1s3Ѷx|7:#A5)53|ST*-BԮoS/aJ%4nכslK\הmLaëi]TURY̎4T>ñ=w=]pW;ز2BoWSGvvŭpAN'_b?F:؀g+2Tf~ۧCөm nǃ87|:/eL=V,ECUC6F(Lq<C39mɦar^WB)14k;ΊP B筹q*[ҁ{H \"2ҀG.݋C{" MTNs{~]mI.q8I*@H~y$薍ŤsT'&pMk-P;ܛQ*+"tno>;JDUJ)>Q%˜TAVçmkU7 ŨG^{sϞH/jSpŔ&ae3ɾOVGQ/.wk'/cq0 +3 ϙ =u)N&lvK_5jendstream endobj 19 0 obj << /Type /Page /Contents 20 0 R /Resources 18 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 18 0 obj << /Font << /F31 23 0 R /F8 12 0 R /F29 26 0 R /F30 29 0 R /F28 15 0 R /F32 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 35 0 obj << /Length 2893 /Filter /FlateDecode >> stream xڭYY~_1Ѓj(K Xv(8ZpHlCrcMc+ lvW:WJnR?dobS!m˫뮷 CѝxaWǸ7f+/8З*P˕Sk|1VJ?aD2|}_50}~WvGK]}3{CVHu} '0 ^ זɴJ}J R\LIo1(([Og3__ZxŎGc%^Z *~uݗ>Kɏ`>K~Ӝeۛ<^6͓}6tdz<ܖwxȗC75:uقk=y_T&IŤvWMWZ~\žf{> Vb>u\xАVE~$^8v2[XϽ ~4<}y<-j? Hz]笚vE=k'ʽ|]rR_of"P-Y!ԣirNekuX*8Pk` Q'V n;Xy}ws掸xAUҰeYotc=?rĠPu;tI/5 &p?"+`8DSDP&{uh9LU*pt')+n[joAI1U3{W78t5IaH G9̯@67qeNq,Fpxv4.xf'})D}]J񚾬D` d@s|Xx?ݍRf瀞+wܾ)d+-2b5:75p9:!uf8k&\ݑSYbّWDk8[ 7 щBgQ,Q 4Bk o4h02m\Pcgfҏɐ_IߑĹғm(x/宋w\n+=2qDw 109.Ug3E|Cl+Ld>$cI /f%`x̷Se֥l\ U1nQB Ə[ʾ }S*PEa;tih {9w!4m95Qbό`'k<;Q$7y0:2!KnZB&qN1Mhs48uDh'9C$0qgi? \`[e)!i9 ǔ?ofF-H#PlZ3†-,k[@Z1Povl.oՆa@9===(eʑCgVƑ3Y^>=e2 =ž+;EebDŽ1w ),83YabDZYY9K AU h_` Kti #$윙έ S9|o?̱TTt޴SFS E@ߤ'mf:*>eO5/*=H' W@BB58khp@tŤEHM\Əw@&YT" Ru(OJ +Liܴ^S9~055,bܸm1M,@Scm`ʮ SEbꗈ )Q 7 xQ8DHґvLʱ_Mv3r cG0 N)*ѬF&Èa91C[Bo]bٸi:TM+?$ mcGq-ZqۂJKw-d]F PFSÌjyì/CZؐv!MO|9mV_N*Y<7 Za5LԘB,T[uB}lWYSbKEwaFW[2NlrevLJRgǥ[kaHjjXIHsxr]2QK .̱\3~| %namLlVŻ.ʏC H*$U9endstream endobj 34 0 obj << /Type /Page /Contents 35 0 R /Resources 33 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 17 0 obj << /Type /XObject /Subtype /Image /Width 738 /Height 533 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 25951 /Filter /FlateDecode >> stream xXWm5*{4XcbbXc/QcnQc僧wf1s~ΞE@Xvᾯf3{̜{fgξy7z=^bŠAVZcmڡC iW^|nXJNLtҽ|R7_ʪTazذa#G%=zhnnn,YDDDmڴ ǎ3\10x6mh\pAj#,,YY!Z73" i2Y MO>oݺ9p2_l޼Y?tPe+'NTϝ;W?|e4$eի?2֭|eNz H jJ9|iNȼrw0xVE=F|i-{Qo^Y6mRAdeԩS3gTo|9Q[N߱cGe;Lڶm?ri|k<.]2 1nݺe/3ˢLPeirR #Сe(g:d+(Q)*G߸q2_v eD#;2_vR(!,\ciI}9ij֬iIK]Kٶmi{M vܩSD5kVt&Ml:?^0ŋ:88J@kٳ޽{ yySN7oʕ+K˗/Z@D-GaԨQѱ).ș*~…ҥK{`(Er^ϛ7o&<==Lgٲe1ZQ1]xqŊOͣخ˗ɓ'9yrJt,EQƢEt3[j5vXѣG)$N60}Νlٲio5a|U(r.ͭZJwElRv7oޕ+W,_4jƍצW\QK)+̙37*=?rQضm2_UoذA5S{4w$?|ق6lw|i!u7Jh,`)1GGǃ*R@,Y0-}VƌMo92dR͛_̚5K麶ׯVW_ܹxS~(___e%HG̗Z)e-#bG'O(:̗7M9h/_4erE޽{|s`JEҴ|sϣ;wNo,Q_e#1<}T+-\cP#5Qhe'ڍ+rP_tI/Y2ܐ | 7E<{,FGxDmz,%֖39-E 2d7=53g)#G:88-[VFWӼyUa XE1=>uTѢEMfRSqYy _X `)1WWׯ˗92g͚5ѷk4o|ѢE{ٺukDFF|- K$h)+W3kp̙3d"s_/\?f̘!eZv>kܸaZsܹK(!f2wܟᆱ^рۗ*UjРAkժU|K)V;B~|*ӋuaѣGΝrŋO˖-}DD>ٳݕerY|9s :t˖-V {zzի=z2m7 \vŋ;K۽{w&MT$PL{{1cd˖{=k׮Q7l0hР,Y^ +VgϞŋ[q?ϟw9{M67o\ZVT_]dI֭%0!ʟ?޽ .</ ܱc- N`Y,,C|9s0͛WCBB+W:bĈ (<<\odddz3"ћhy;;;?yD&Ξ=.]:>HR[7mڴ m۶Rrȡ5ϟ?%Xvu17Y~qeʔэgتU+?`;vi1ӧOovZrdͭ!C(?7M0a2ܹ+Ǐ_j2~RoݺU߮];eTirDDD֭_̗ 7uK3{zz*а0'N(۴i$s޽++sӦMÇ+.]̟2e2̙~M?fe}|ה&Kq@|9]UE|91CK,E<#Ѽ|Ikb kѢСCʕ+רQ#jK0`aZ?nFKYzv:K 0ZݻwhZKaWJ2gIKbd) ,իnr"i]vIEɣwh> b 1__ܹs]_(_R={&]BdddՍ R8ӧmzzӧ[nmذrdɒZd֭[bʕRKO4FsƧG- 1ܚ{ҥZj-[AiCoy=|NW֮]Zj$HZ֬Y +&"2-/,YX `)@BѩS83g~k6gҥٳgY6o,b|Wʕ%9M41.dƌUV͘1Hٳg 9F'_~4ieVL 2f b/K鐐Ǐ˄mKg ' >Ry#| d)X |$Wfc6  OX3ٓjb2DYHXc@p>}~$G߇& qӧO,%vs|W >?=;E$hā& qcb)X Xܾ}?F$pvnD,KK={'u͛׿ knucƌaRKaYRT4kx=V>#WRR`)qEdd+WR, >>>6c)`)X `)`azꅥB`)OYٳĎH,Ke>,,K-00z,K*֮]ˮX Wܾ}J,R<|ВET7,R8V;,B`)XuZցxqӞ>=_:qb˗. aaq՛?|x#oOt$_ܹX O ,%=ɖL:"/g+YHiWlfiҤ4Sif K2eZRHѷow|u w_TMɛ4t9ݻ,XtiٳjU/U& PE*UORN+W6YDI??mg@I}3`,[{-e̘Rh# Kyhdig.(:uR~j_~YPySMŊ7ow~,%Q^ RKRR'BB֭[|M4y-eY~ٺuiӆD3(QHX?x_鉏1ǏLo1˖M1|D{J2AK rX|уXhJqpph֭˗/e*?Uyb*ׯUZJժߦJBWd59Dr!kҡ7nl9|x޽(Cu|'OU(6{pÿ2;qbC,,E@VpOٜ+ktZtd\cN2LGa)-Z8?R pvv,R$,RKk`ذaX bӖ|oJ7_k)Zȑn,zāի˗?4SFD\E)_TPEKʕxMb=%J_H(˗/S`)XZF,t3/Ee\Æ5]ҧOkYcG3]rŔ_ ɻ "kb;ΝC&DW>Xȑ?C3,,KIg|jg(GxiٳB.23wkL-^j ?U|uzyӏ&Mj}Uac)?uT2ѦMXJ.NX $bk,KBK(QЦM|p#z'OѱZ|#9s&_=ڙe]Gϟ(o|Dfw$Kپ};g[_ؿy Zx8_W Cc.lٲ0 R\Iس2];G0.Y%aLػwY t??cQ~4bhܑOo2yHŊ۶m?g3.k9K1$\EdBw֭ ֭a_W٬YmQ ]u1,$,W\R…ei,X0Z;8W(J2e5*H_/h^0iҠHwߕ͔)CRE/]jӁ" YdJ)NY$Ar߭>)iT 69xGKHXسXZJdd'بQ#٠X aRke˖a)Ve).\ظqAN&N˵K;KIdٴ\5wooo/,8UTR,ƞR,`)X/_|b Ǐ߷oe9qBؖʡ Kx#G>~K})gΜY|l:l޼&FRl7/ ڥf͊& 2>7m+ҵkW,ƞMg|?.ҠAgϞa)D|DdgѢ_$/?bYR߿gϞX O"c)DqdgRKIn%`)X B|i-8>XJ"`8`)5-u*X X'OR,%)ǻw7>v\,;vxyyQ`)X “X `)XZʑ#"*D"uRV8~xpp0D= ,ѯ_ݻ6=zt K9rgR6lil,%:y{|àA͕9sCp_ @aY,d՞0aF`/\֭!wﲝ;ƍ+2&R+C>x21Kg|ٵkstNM,X ڵR,3uZĿ&$xh,])NxE>}ƞ X |N:YP,KRKrDZ,K,,̂ ,Kx7nܠ ^R,,KR \|9,, KR _ X }a)X ٿ%سX[8gDD;V;B>b%K4nܸSND,eرXUYCENmOMu֫WRXJ,ŪKrL2͛zݺusFžVcb)???,RZpjժU*U~ĉ1ɉ} rR̨n/R 67nu63ٙJRKaلzǠ+Ϟ=RhX $]) `РAXJR/#6ph,bA^,\bdd$`)@\9X f͚5X @˒=Ύb)y7nܰ5IRukLî].X @,u!XJ2wH,!!!7oR6&NhT)RK)_|N:έ;)SL`Сl ;CǞRٖ-SJ7%_WwF@ɓ;'OPBl!KILO"X X '2p@,KR X~ ,%vbU[~|]EgFNN5sUX `)`Y,r-xوEK,%ܾ}RKQݰ$e)<}bfy% `)X R5jTRRKh?۴>a)X KR?RKx~~~+X `)` <Kkgggj?~lR,%F<}ˀ`) ^r%X |˗[=ı#""R ^lRu놥ĪU=J=`)mKR سX,#,, K˗/SX `)= Vh)=X WzjڴiX `)VoFMm4R &Mi}RK[6osk6΍"##RKRHc)$ӧmJe~۷6a)NN}||^^^Ϟ=cxK,%,%,#o\mR5spŋ?NeСϟbΝǏVRs̱dq{K,%-KILXX `)XJg禶{xt^ݓ0,`)XZ cF{,-W$ュ`)X خ?F vvwoMy4qxOHH5+n4KCK8q+#b)۷cU k֬9K9uT2ϟeѢEڵk' |wqb)׮I2baGƍ.Gt,KQƹs ?(+SNݺu6mZdի'qqb)K3+RHqvvZɱʕ+QLWWWqk)l c)ƍsDi)6X~a)޽{RlI$b)X b -%$rvnR,KRGlhv`)&00pذae`)XJұ.P Ϲs,%2h Kn= -oĉ=R`)6̬Qa"cǎ$MKyrDFF8qb5]RDl)v^bm"' aaaֿeo?͛=qC رw6xׯ=7o|`54mpM"Y0ܹ̉{}:c)=kaK1{OҤIjՔx/Er8tP X uZJvҥ5DԩRJi7sLtmӧOVW_}eI.w:tNfǎ?f,pp|m46mHƌ齼vƟ/+ڷoP\9WW/^л7>VŢEt,K].G;Qo+V,o"ǹ0,`)XW,%vӛ 7o`)X bmpm4k`)fY JaaaR,j-cȐڵEΝ KIraDZR>{,3>8,ňm,?ڶmĈSNN<8r`)qb)nҥѼ`)z KQےxl۶p̘X ĉ$nlzKѴfb*]ۃ`)X 4X xbRL6d.Nj2dǏ?}KR3f`)`)`j)Ϟʑ0fyw봔޽{HR$ `)W|[cO>KR,[ L?ޫW/ZWZJNM2bD,KRRlRڷooZسkK9vlQQRL?Ě'Omv˖-K,t_}=zhddd!رc4YĖ-˕+٩SSIY["²eZhѱcGCX `)'a߬7nL:q]RR9>[$GZtww;vlZ5jXK,2|س'Nbǎ Zj6m*W`)XJRJ*M8Æ kذa"Eryv,i?\ׯf͚˓s,-eѢEϞ=cwRR,G`)XJ²r#G`)XJRR^ޥ'9rV/_TR&K|R.m5͹wﰓS,YdZlB޽{(]UM_zH2_Jo,KRRKxzS?>s˙aú}iƵkypvi~rfmNhGo<[w|ZUdsGFQzӦի7ehO,KR+KRڵk_x}KڹjՔisRX%KiL4VJ4ݗA-/]]&رȜ-[o|ā `)X R`)XXhf)NNuuk|Ԛ5j׮\`Ǐ)ʑNFm)9s~Vɓ'ӌs߿Û7^1D}#F/ cŪU,K,J,UV= Ve)͛7Tzjվ͗/W2_޸4qāis" /[wǟKk$,X `)X jGߵk{XCsSYd?y…_RO3^`)9P,%v71b)xw.iҤxqK4ٺu}휒%\9Yڤ!6neo_I&.~piM֚1$e)˗Ox P1#$sl/A[Tdiڳg]o_ӑRR,%quDZZJ,,K зo_,KRKRu֝?KxKRR˃`)`)X .۶m{%`)`UlܸKRKR,7nP X `)A޽k?`)X $qvYR,KRR6lR,%8y,%va)X aY,K_Iqv,KR+_Ϗ(̙3c6-[6k֬Qٳgb)KRKaYSn޼y1Ƀ@:b)X R3,%u$/-RؕbJ4RC+$q,,KdȑX `)XJ<ၥ@X,R,lQ`U޽KRKR Nx"`)A\b?,`)XJjG,KRR/^RÇߺu KRbg) aY,Fk#aMX X >ѣGlG*:w`)0,phRv8zرȑ#0c e_5U25k(mۦwssS_^gee˔GQK=(ϝ;g>}tei~PPT3(100\d/YsdPgϞUkRcR,GF`)$,X `)ƻg.]ɓ;_z7K,KK1Dd'XX Ghh], ,K{nKgK!R$ՎX `)i)#GRK,%pssRY cb)XJسX `)`)oz[7mۆE~ѥNsaJŮZ5`NmͿys\/[xNM͕[\ֿqcsG*s.߱cb n]ǎEQʕK,YD\Z@ٯ*<`@s nҤXfY1]sp])_w6ox)woժ^*k=h [\ڜ9#TF  <̑H["eIR`)X `)XC@3gvĆ!Cd˖uҤA=CXMzbΕ+[B^{СU ={6L)eʔaajK>tUΛ7.xŵk{f&?wHE`gM"ĜHԪU)ObMGpʕ>fβbm4P:ztϜ9?suG>*YܣvܹBҦQB6?qcߒ%S߿4̙eH9^>=a6uҥqmذFݺUG#sd*9).E򥔾}IbnR-X @Ⱄ}?-uT/^1yhƌ齽wiӤgl׮W-ENE-R[7s͚i)%n9֮Yɓ~}!]/o˔)۷ަ رI⅞??;~ȀR=,Y2 ń)RX"bYkMOϜ9| ]l&۷/ɬZ58GDeKGݢn:>}ZkȒ"t2,_J]g6`)X QӧO)qXʽ{7o)`RCt,ҥ ǏI者)P.ѱ˸ݻ(-EDk]W|gE#s6gi@֛,bRuOJK ΧYPVĢ_n߾ĉsi;jԏ:0FQGj\O3jH=ZDD\Μ5kS+&ɦ7m ΑڐjȒeZoU,k`)X pKih0n\Yt@U|~LVZi1c/m۶oJ}mR]wBV [Q]#qL2~Ѻu}ggTtdœ-LR$8'$r4bɓS]Rn UNGwLٲuϝ;ljjE;{'^iyF{sdRi$GKRHRlذKHK SCVR\]VF4-ENn kR`^CiR$4UveåK:4ԓ'O3\/AKXʍKDRm;O.(,%2ҳJo䤾F ɓ'/Y ]*-UyIlٲn]_>ˢ_zYF2eLYrJetD3D3őtNs&M9Iκ$ |sC;oSNu}}c{sdɵjU-J$Pքk)RKHwӵkK)| رWc);2g$w̞He|щ_{Jq 黧L)/nط` K1|cRt1ǿ{Piuʕre3>Z5.obȊOYv֭ +{̙tpznӷo;]etOEo}%ӲbiR]^'~]Y]#F5RKR M֒EO,EsӾ=:2lXΝL69K"49Yd:~sСO9W5GS3SWtCG|I麛HRhT)u7=P;WҤI{pi={9Gӛ`+U*?7QWPz9__ѶWM"K^J0t%ʚ`)`) njԨPb<'kR5|S3푉۷{R&o\1=RNUd Η)S3Ifj4Ӑh;̺gׯQt5ʖ-n\/mԺPLk;;;FTQD+&i,X0ѱ&dYu[ի.Ȗ Ӿ}#ŝ{ԟZzyk tCLuQ:e2F_z:kƍOjN=:jnmk?hP'Θ.xBnem+tê<|x4M'ndE6tOsB|}yIX۶ uH׬YqɺkAH쉅> qƍ-Y\ǞZtEPXtÆux)ƧK' 0t2{dkݐ/^ɛ7%'On1}{"XnY ]/_6eid]i1 rb7LB)_qSW+WtiR+ !^adtJÿϞ=lxHD5޽2gd:&ވ=b)@b#CL-ECMkid"nk߾WXBô阥W?,K*Ȅ9,C>~|}Qâ*WZʕ ~?K.m׮͗,׽{˴i?qu[te|ٯ_{ɑb ڛ^oDL)O[vÊ}W&od ɢdPY=Y-[+&.gxaxgϔ)Ij{J [WYRgoҤ+V@>BdiڡC޽HKEb?0~376޼_*^˸ krL~,Hܖҷo_,%F"۷/2 MV)vmׯ/(_-ҥ+*bҟ.\8R֬Yzl- b||f„w8}zS?T[18rnYtil4sgYnF^G1y[B>hV"Ο?[D|Tx,m!-g%%J~VKgݺuϟRY cسá@سX X `)X A`)X `)$>Ky寿`)dĈBX `)X `)X A`)k.,K!xB ,,R, ,K!,B-[F=D!C995pvnTIGH|Ѱa=,Kgȝ;w.$jR@ՎQ K, V$qKҥ [@HH+DMdd${:X+W9rKRbg)= cb)X `)`)X X ,իWfRK2m4 ,R9v񄏏ϱHd`)`)9sP1c%سXJjGȿwywUߺuK#e2ɓ'|OOOe2cdi._^2͗WL@@2C3e2O5eÇѕHҨ7nP?~X2ի|sOAX/_Q~HHirhhhׯcx^xLr効c2;F(o߾̿s2_̗r|\|eԛ2_9FիW1ʗvb,-*FAZleP&̗=N/{2_D's˖-U)׮]߳g2EeiӔΝ3M :u2_qEL2E/LEL6҂7W&K^U/Jّ9sF?}tee+.]ߵk2?Cm6eիW/ZH_Ũ\pAi"߿4_\QZ҂._sIe˼RXBceƍ6mRo߾]/*e=]VK=(GIa1(-N Ң5iʓAsJ x2Ũ[ s`) `)X `)X `)`d -RR,HX^|9~x! kԨܘ ѺuKX2zhKسСC..kAgfx R,%rYdj޼n`9Ay4jp=,K_ɖ-kҬYmAy4lp=X `)ѷs6'Ӑ:uw|9`)X WɍRH~A`)X XH̛7 *S:p`S ,K?7l@GR$wߴi)A`)XJRcT5[ A`)A`)`)A`)X B`)X AX A`)X Wde<9sx0`)X CR׿6mX'Vܽ{&Mjݻ\΢Eceիv䆄ΞP|oz[Iodɒ::h> $g{6-% .+W6W׭dɸ J^=\ή].6;w.N^qc{Q&.Y3gL_]/C,qEҮ^:/{,OլYu*$!?}sKZ!5zr k)"9r؅y4rb x2=eO2--JAA^rm5֯iKiWwjվi ߿DB냥`)X $)KiݺС]/M8Pz+&ܹ#ez޼QtXJwߕvq[L߼_Y`-[c)X آ\m5kV,Z=~|L 1 fv֢xB]8e(9_3gDV`& j|i |/%hҥv4g)=+v*7og)ƙ{L)eΜرZ={Rc2d8^l|߿vr/M_jUj~Yd*T(Ԍ,ܴ1czWp~[t޲lRb~o'\g5)f?xK)-g7Β94YI )QJlҤ.[m MkL/kժ4cBbUlt)W*\jHec]{T߾J*ڼy={3;,˱7o.} 8ztM_S&q.3<ʰajԨ PʒMb+vym$Yv+Y6Y/1WYwHYX `)6g)S?$;Y9r}"ݱ N4wH9bˁ]OO(%ĠAWO(GO?(޵k?Y-"VcR.>}ڪU5kR֬&%~ÇwKz.(Ҧda'On.!̙U8C27%gB_iҤ6wH*Ӳ2=+J}Kv.;v,ڽ{T|]&ݟlR.Z4VV^KWo"˔dsH!C:d?O-&EgIZZnT~Ŋc(ٳ|Y ٩tb/ΟsvD:H3nÇWG)o)J&[MZl +mJ;4?i3xC2;Ig/X0vӦMk9sRcNm'/I#)T&!-\&r%HlSZCidkA0nRҊ8lҶ]ڀl;oIʴ]ʮRHipttl޼yޠAÇga)XJ4C$AEzLL95l],%eʔ'rRl)j1q@ÕXw)`ڴ!rjlU5u^Z~W7>ŦtŎ ״7j`&)R0L4d'}X bK#Q?Ο:uG}_RNez[95{߿^js=mKh/]?7?Uڻب<\]iiUbAX."\Zh( 7T.BHk]XTnE(H@R[E5Èb*m>ٓa* oϜw3ͪeNr.:6Sp[k~삊(B_kx+HJQP]ݩy^SD5vqNIMM0|_J9yrҲ9ں07|F޴ٿIIg )E)EA ]Tya.)E3MUg']v>X7Bس~}5;sj̭\R@JLUUU۷og"i< URߜ"#-̦W^fB<{V!$,fQ:XOI> bۭZtNw4#^++KbcWJ)˗5;w>Xm {:thd_NSJQQwo7jTEeL?hP/mlDD7{~@2ѽi/$'O6o޼7h==PRFLIغ(٧L)|7Iς@z`vzqmghX)e3g&\Gۚ6CUJIyoGjMKǎk~csJj;խn國xś k%\}˹%Sd-ZDnIF]r:RxNس_O|ÛZ/;k(k Ruߜ:͚RbbZ8rWy6˕M)@M):ToǏ>'-. fPWarnaVš~?{ ;>R%?(3\wu۶ez\zt.!}h=wm.=:|yAs?-[6RS´/|s* kw})S <̰SGzߥ:Yc{YKL*su7hɊ K%CI)wgzkFMG R'O޳yʍ֔2eJy?w5F?A=.RJ^͛7a5n]RxÇϟʊj[zk9nV9v<{HzhH/ Tz|H,-ݑ<9yTgSb&z=߰!ȑ\~*hk&-V֛Rxol2~H ׃wY9$Y= 1͚52-Y@yӦw*~67u-G'55Q=׆NH-))j;4sɋ;VvDDجY h\Xj|}wJCỲ~i ic۾ϭ" Ŗ-K9mǵm cpZln~h}M5?%2fd|v]z3t׆;C hdvby{!0*h33<:8QY];޵ҨjΜ_]pfkmc[6nsJ\{ӝwQϯ+ivi6jQ:L&?}u=zb7߹0:#hX)I&˵~|@zbm9W<{TJ޿C8*m֥h]5HwQQYEDx?Cw #AaګeɒheJZ1,U1Z]pT;_y_ T6|(Z"t*>xW|tCUu_;^|q~e̽vRVh5-Qf.wS*i!MŢy5Wey51C3F/=yu.j{G4@;ujWƍKCΝ022]0R p\pA \>NH t5-{y7O>y7=𦩩I"oNʰRh EEnժŃF=JMkZ׸q,)FRq|R F#R@J!Rh4) Rh4R )BH))BhRH)FJ~S)z߾} ;)FRKڿ?@JhR PR/Xh:m}$ sرΝ;W  tBJZ 2ٳg'NȰKχڳ D\!RH)H)@JR MG2JJJ\盝kjjnUUULL~j'OvփVWW:d?bĈk.k#GZ3''+W_pzzҥKgϞmfkѣG[o۶/((0_p!66ڿ_YYh2>}̙@(IIVRj?p@&O^^Qn:kYfYgffZ/^ѢE+V1c ];wN'+ɉ'z4}Yz3=z4ы޽zY'֭[m?w\k%KXgddXZgeeY'%%YZݵ*CfՂ@? ٿVe_e> /XObject << /Im1 17 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 39 0 obj << /Length 4050 /Filter /FlateDecode >> stream xڵZKWlR 7ZBT޲rs%AP!鯻.(̣p&B9^[B{ A'+ 45@($!X`V~LԪF(tASy7Qd$ Jɶr0A |\tZAxieٶMn g+*홽 Xzy&IX5o  %Om "vgXB þn-}"7Y,n8ӍyiZObUy47oWnkG|=-bG% )Lܳ(ĈTĬ~pFs.9Yg}#LS(@Q%b%0`luHfc p4 JK$h¦=Ck5yv ?d꽜N҇4Oy@hdmTx%d3lJC,c+FmɆE.<~};ãzaIW18'ʒaP X:j}:pbtt=ַ^2GAXiJgͲk-dT0.4c%huz1x+˸~_Ioxm ;: T"SqK}YtҾc!4mFFc`S aGGE{P7v(T$9-lq(4J$ sB1 zz͙,f~g_}''rROr[pyYƐ8l|?K@c`.|?o-Tϲל oh ZbpêӘ+Bv2zuT|p&ncĠ" EQ*Vex m~OIkHkC2PDB4v/C4-2]$3۱0MQ|a$O噢%!C׀O\F60Ѱ05tsv/Vǎ' i^Q}Y%dK[yc 0SFX0G灉Wғ/+m}]Qs%" gt?Ր gAQLM*$* :9A|xΡ\'}Q^Dqxk΋1CVWߒ0fڎH2\ x)Kͣ.tBmcex,Q{ApP؅L(Z.ׇJBXqT:Ck$̒ պ`ØFn]aȨ0y5wg3Dl,,QN_ )K&<Q^t#Crb`ncPdܖN*q|6_a (E 8.P+I9_L&r1oԪbr=͉xMK-}D;_{_3P]QS,pީX$'maoL F"i\ 4bh^ Q- j-Z,!#!`Qne o1.gw s&rr'_> NTEbfTx#k 2Ͻ:6.AIv|װjKSlYwCA>C$H_y:7o>yΫ~B,(rb-Cu{QʖC/Z8А1jYPysx%{q̳ ;Rb$Ƨc1`9L#@#mΎ1cZ̥mz7ps1_=f$s.Bn<<aYahq *R 2ܤ(ׯ~ʤ m@d$u `7|(,-]sX5P{(c o* h-!=xwyXPϜɐyȓ&52'@N{ѥJgFSU2d JS2Ӿ,Mw6[qbJ4V+Е~Mb^^{"endstream endobj 38 0 obj << /Type /Page /Contents 39 0 R /Resources 37 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 36 0 obj << /Type /XObject /Subtype /Image /Width 333 /Height 204 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 44638 /Filter /FlateDecode >> stream xļw\[W6| N$̤ۦ+$@tllcl) {ATB!hB!$@%#=gϳ$bh"KQO{ѷ{Dȧ;/~G}'"O;ɞq#]V/D>R?gϿ *W"#7"&뛏>@o7a {(4`[Ioޏ>Qh*Ͼ O?>o J!w"'|+G |쫟vG]h9,nos-1v"|m~x'/ۀ8@1ODE>C}Bxoo?o}Gѧ/Gӏ]>b׮/?'>P!g9ɗ]>ݵ &E>A̡edddDy/ܗrrr-Ё@VV^FFNZZ_%<(-#{YZ撔H@{Y9)99`Ŷ]rV֐RRF((H+H_R> #EE+K0YNFMNVS^NSARPP Rչr yS/ՐWQ4mm❜]WR'k:$4#q.J!1Zl/0o6HFroCkDtw u0)v6<o'uuwHGPޣsB cd2D!G).ve2C7V{B+35Y!fO`GO/MmkikQhf2K' SC۠Sz(]mɔARJmmIC bQz`mc3NawM:ƛVfc+6VE'CBkhl&S nTZQ`v+25Uܭo^Z^XW/޽}ׯ'Xo~})/|ū/_lXyjyW[n[͛`70_x语olllnnB Օo W^@+ěo޾x__zkށ~z˗/^#߾}eͭ/߽{r֛7[o׶n/7lbcLy"c5Ƌ~#( 1IGT._4aŶy5,4L6I5m4,yH#Z=GjlcCuMԪj<@Uzj4L?\Y?\V7\)0p#mcuhUHuh-q6Y2QgVFmԍj`VSO46b[&FUpyY"Ȩ7ō=x*h`׶V阦Ѻֱ&Ve#?5;*Gv¦vS;O`'jƄ 0uzeGE`9~ PH/kOUWcH yrzͻQ1iWW6szAgeeM04buڋեōM!֖חVgxS3SB e~~mҶMVeyyU X &;Nx34Hh}t(͞/N O.lciaauA27MNN@@7 Ggf: =c?<.?*72;:ޜBjT^G`?.2[Pdusw#gNEi5q_mؚĆ4bt&%&':1=F//bg Df Eg „mĥ!{ӉI٤|JJ>,n%EgFfDeȀȜLZb;==EyDL@f@?&c 618<. VD03V6q+)ͯٓy baqmn~]/N0DHm١$NwwwAJ bv>^~c?Ɏǀc| %ɭZ}}=5A ރfãQxS H__o;Hhl5k, z:8iH@xA HJFH'4iG$6E4G%!)M!-)-~M栤Dt' C{%<,#P({@`bO /=838LJ&'mB!nhl-4vfV yFB%;=mq$xr`"9(*59+lc_ Ls&F6r [QSAb*pXt]mquUYUU9X_Glkcg!?'&4a}Cr)vwyiԝ`D|Lk|Yc]ط=Y@w|GT'*TUn>vwtϴsIs)p)0~yi{H{Ws?}.lO%[l:lBڭ[4X}RzseL _}c]g;6F)RG݃+E,gr+>:R`+Z>qg޵ϼꬽlH6^6^tBa!,ֳѯc]uy:x\|6~u8:+_3ڧ>5v y拱 >~Qa 9-8vkʧV kqi&@Bp!6/`Po گʧ6`g퇳 mu w$;G4xEmJrom}k|j};-48zhk|넗[kjbh`wmv mrn ) G`TXTG8_wYQ]W]˫PB̯Ϯ@eou~~ ťy<vOx!@C //!-UUU{j==tçZC2<ƚ wuR[[15 U؊ʊ:⡭MA~Ya"qI;[Ÿs{;;ZZ1EEhtqE[Y߀b+s r +vv;4*0M;4"rh~ߥ `pm3u%7x4zs)5u-*ɾovySփeWDݳwKuJHh0wI#M^X0;K}FS&S'kN3w}VSz{.U&eUM,BM]S,}bkMRlR ,:%Q'F9 4u#)'<md+y\=.<|y6dC;O ~V,u'6YXd޷Mt *(mOcC<ېޅm\[>n,>;C3*Һvj;W9U8G}Yw׶mF4uD߳+ul7uر*G?. (-}R CPԧ\rl|K,38XVڸz4w7 털cm_{۱б.u]ۤG.n<d~>\Ahn`ojv],YU0&kޱޱ5ٷޱo11u3uq(1t(|R[ͻnj[MlnnNm:bS:Zz_iҾR13JGT܁ P6wfݎg~슿gyf@2uu3:c\t@t^ǮMԕ~؇b2[[S[9QัSF|YVg8KoLoVR:[u y li5 }#v-NcZϸ^ΖKe[48Yآq `\9[U]{Rs?hؽU=,{y4kf(5bݯ5Dkx-yCy5~mՊֹ"p1^(o3xL\h@m9$/_nll|:WpP'L4Ln` OMM|$w5=Dh'Nl-i?׿^\Y_}#c[{{!oePAOOO1YNr3SKAљ5侉թW[蔢 <O!5z{8a- BOR;}/_9**f++0%ʬXIޓ|xo<5|y;RޙKbd7rQfsA-_ #4CkJL(qIY} ~YII$Y8NaBy3Sti5VRFq>2 􌪤Mi܌Ey(_{dWlwV\AWQ>#g֥ k)WW\\P4Cz2],@O SxrFU{*u U 6񥔱:.i[U{Do:(rró Ǫyga;fe/9DT2Ѳu.кPP9Uh`f 4{ZY>AqySq6~4GQzCo_F3|U861o`y#wL 3<.gr@s(搽gw~,0kq@< R\\J$twwB>11>33oƦ!@>ΚlzG=|쁹GόXYw ]6BRsNgONrff;?I<vt]^QQQZڨ\.ZnaaIyUD!͂z~EA_EC#]CmCqeh嫛)-VS,kP"}[!u\v"ԝTekӉ7ĞD<).Wyu4|c[v#1#pֻq+փؔv yp[ff^Ω>5 Nm(\OjV4G(V1A'(qTҨGچR=1>LvocJtOǮx]u*k̩=P Ck2ce@?-PuNٶkk}egW:nKQM{~i:|y zVh%mte3P1Q2L}"30=v9]3hhmVYyr[TcXAicKuUs0 L5Pٗn2V4I n:g6{Im;i k_~>J ^¸ͬfURFoϒ2QyThqQcasnaveU =:5f0s`0;AtDxQb`BssSvvFs 푡! g8 =]õխ͍=,<q(Ỻ`f^^D~*擓.'8ܙ9}-MkitXpı9,zi<c@53 I*qgLn4735uvۺÜ!RLk9.yHB>DohljbjL G!4fay䧦)n_@דN꥞K?q-ĵN^?V7ftջYIj7Cn+5>v2dpB6⪓A Fh;73/eyZ11#uv s5G _MrVM^EAN_xxc[3˝匱G rl /$O`1!iF@:әL _WWKKsEDnf0\d('8S98ktFeQý]cAUh2uO($f[ \ [E ~&9nѷEfviJ=MlS+SDG$48WpubkIj'HjHjeHjf9sL#fEtk)7u '=c$m~\LA@IY *v* ףO*]zV;faIC5iAJugXR©gr1Լq+Ԝat Ҧ$߰rS,ڬjfTN;Q-՝ѥC r;3jȟKɗOR;sJ-fDF@D^a9+i]VF~͐ѓ䌢& L~4˧3#˞}m~֩4&O+%E:*"%oʩڥG|$=~cn(fl󨌶H*j4zXZR8tT=V!d SA#,|1%-ܘBރzJc>d,ߵ4]+\z&[>y@u6f̧agn} :6ґ2A!  ᕅ_J=; vR-F yG4)gJj.Q)Y\-~i] r7l?R1и1:9:cM1XS#Sqb%DkO`ed2 H q L D"Яٓťy>=dq 6FGM4ˮR#>11{!i5vHnY$ jLl~=*tI/vbb1(HH;K노Dm ]yR{{_>L[87 3hb)~VjJ<_g/qV'޸) WO;t:XH 34.~<{ĥ{/:H*U=J='#UBnc7k?zy +V*7%]uu#t0̱I1B!9z>MZ, z%eev }@oh52tuyEMU߀/,*uB*, +щqМ]Z]~Ր+Ce­Ll'MjfSƩ]3-JJ͍7lI!!c^@5`1VXa]TRPbqU Jj15L0;nv|6&'tI].>NsqD"_}.zX)R+'az z '=x,y梲NJ/JM/Zf`^5ʎUWwA;z1CJreJ%d*VR'Jg9 \^ R`ǟ"~P%r+` x>vcClt2 4"RT>uy}_)nB?j3?sN"+'KʧIBVFbʡ%JhqD82OO9rac*TU~xVPDjSyd6;1:=:^O'791<)`9U.sf3Ïx9*=E>Ch^uȯk J fu}vq˟w ݞx1<݄Ooib\YAusw4*Jz!d= ,+"z^nl̳XPC0R>an 77I6(Ojd1'!:`T7΋ͷk/X`zhW-JCE$P!TIDVq?~L鐂 e[髞r׽tܤݑ7U {\u:iO޷'u9+Ucޒ~UĐJ񢊩b }*TCTxjaWE)A40z8ߏ ԌP ٫WfiDe@z1dQYz|pemTl6Ӊ/YZǯF"|ŐPA;P >Y)'WI#Lgn<(?z@5QL)N|@%jr{ۢ6hjaGubn?H{`/ 1*z:^HiYKֲ:}#Zr"T_5Zz!(TE%<@8>υK;3F$*+ߜyd_Ȩ]-W&O]s#(#Aaǔ3+e"rE|82G\|@9VR9츲y˃g49FQ%#cc<:zAµu2K޹n+yBbb um<3:Lk d6}c:rg9n-qtB`f*ctdnyջ7ͮq`3FcóW/_qgfP#yhǦ91}.-nncjp10q kp#uT뤦im'Qt\ oJ7T e.i۟Q6~t-jTĐaX1D2SB%Q "U**z(:0^nEhUA Q%_LPpv(΄Fi>X59atT =7kQIm/fH/@\OBO%ZL)y|8"eJnP5K_u٣. !X9qBBb^`- 6v6QKGN ڑ'&!G4Q7>ixɅ6 CK,!WOLCD!"ő~8(Xxp sU%\ ;sf:g45]}'u6߯lDKRobl!#W("r*+S(K*W?~aqARjVO7AZv2D잹5ދw/_% 3[$4u`F_f CU82<6ռ`8>=E4r)4bNV6ޮ.o͍}@9}hKZXvja~35'#B1>1CQ& /^|ӆZ[@J+eN,mnlg !hnnvuu@j{P{ŊbT%TFW DE׌:}Z+zYKQu"ΪBB]҈<tJ$뀢O|ᡄA}fF"c""2 rDS"B|WSSنr wr(\BFB_t=M-BO`>T~8^s_7v;)d|߭,: . S*ۇ,>*S9?A*FB9Qt$'!,|sw'AjQcm®Ubn0Qqpe/'gNGyJU`qQ yP߫G1^ O-VT,C'R-=J{(0N{/"|bRb}*err{\AyvnQKاq#W9}j=*٢ʹy@}ID1d9UG/ZyUaqCpOf?l ίξz'X`z& -8d b@s,12--n}닍71sB:@%z p›/./M2FX##.>KaЁW/_/.,nx'N"Q qXO &W!22ZnTn=ĽDQqUxĉ+EGDIU=:zP>|A!GNBSWp;b*$bn'AAdFA$q{{1舩ărZh%PQ A%~(w4;V>_5Q;WV>,%vH+EL%gJL൏AD$PZ`. bLLYy@rBz82SwgBe*U߫P$T_JLT)L`63۾A6 v#@V;uP+FB-RT%|2pwpVq*Pb){(LWIWtz2~8>dh"b(DJ$DTa<ҽsgw:3v뀎m̌2`aDGQAQ HA$B*)9$TwP޻g=Yg޽_^kR)clwOt[#&1:Vi?oA%-70f̿y_ڴr N[N}w zsԔ9Rv'"ޣ'IM.,;\U{64#ۖUz ÖZ^XPRV<~Ӗvi鸔((SoQu7;23 r:++WWUVTmt7SFFa͍4sցԌbۡCu$5uҬ\RHĕ;*k=Tk9_x/=z'oIkmا_HA-C||]& oaޟ79EY΅{/8CV~ZNpלӛ \h.pYS&+/koiKx2ӌ^"<-&GdxڼOKܿFLw~!M}ƾsja o9`1h?ߖCZ }^,#{n,`pMnܺy@؍wōoa߅̓4 X/_(qZhe-fES;RLo9o;hySz}Mfy7 STYu~70EB.Vt'`?;?i?EЬAs[.-Zh鷪j얦f58]{~>A˚.k}}[7ܶ-6*`TQJZBZČw$g&%ؕ[Pfsr)qVJ+ee%ܢɉ){.9%!%%1%54@8m`9]5@as>+v:\UN1rjJΝ1F@ig;&KNMM;S_6*.-d0^]]cSSғByQFy¼ijfk|6_p-}׷ocߍ|7vԾƶ׷볡Cngk:UzngU;}z h'ԧO~[㻱YMkyd832` luІ&#ns%f}WrCz+IFF_*T*YYֺxS&}/vE7fZKe6V+<ߴO$QQoߵmM,owת+]~Cϥ kѶv6ɝnysUM{}lh{WUcʕoE^+[qV+nҴ4\_qu6[ί}|Û n[i;O?=g}oGjv~/Rb=Ic}{id$'$ޗ79&~ޔ31rqBr{wYp{Ϥ{%%OMNOݵso=%K&SR$OLJNN`uƟ${qgff0$%9L6rr^z7c[4U,-#[!mV=h=i-os%u6V鱶mu]6ﵦevw໲ox[D =K.kF6w Yf}|J\ /k5V#jo #9fL"iٮs=i?`-Ƶ68 no8 xҟ,[.kI3_ym \e6 ܛ{lp5hAK;^ֺ_ps6tٶjWΝyje_Lܳ~K||4]:v?5@師]+§Jk뀵mַ_—4DשƚYD8[-"Z6Ƨf6ﻴҶw}06L|wu[ME- 3,C\"0u`pvmz=uxǤIڳ׋'!&9=6!u[㿌ۻk]5%-#)5s_R̸wُ۳ p+p |`LLDf$Kޝ`vaFF6@ޟ'ٕu .~gpIɉ{BKLts32@ׄ}$l11qq'0:zW\\|rr gHNII56n8r^ϟ~tmw|Ltgu?w|:r;9N}}uS|?;N~;O5d\kvLK/NhBLj^~lV'ystsk0px>m8]8 vi7]'j7vwj;_mo4uց }>mЄ[N}9'*툉{KL1bvE팉sc(&6pq1q1qGFq],nb q ܮظ_os㾎u3<3v^س/8h: `. $$r]^;L_w;]<u0n<]Au )hsn0--/.|%pv:M7ܧ?SiMxur;B>K/qir8F:fu;Wfz8eftsoZ~ﳎfw 1A:.8`rAc:ώt4] ڮgiN[Otyϫ=?cwwoӳg^];;qg;zzG g;zqGwuav3vn3{Uzܣ-nnvÙLh"Tf߾}w~fytM̈́zk6|EO̝9s mEr w}rJp19Ҹ2Ó˶,;Xwpq9q9u\nh˪˪˪qZh8D.;hl,<;G%o\.߼|xD+uWKy\fu\]u;3p ƦƧ&dU%e&e&fKu쌬inf4vuQ ]3|85Yw^҇PFF}˫yW_5hoO,}#~8fĤjWzUYZ+;^QY~(Uve2j2˪3+3+2 ʬ(ͬpdV=\wz9 3(xf)Ýt)Lc?*OwBEґQYj4=e;tgu*2tEUr)UJ*2m9r2te]y ,Owp.Mpe9˲/ڹEN80}iqk=\;G:W,-t|RQ|Ν.Ռ^wLW%9r]9kJer8+JJˋ]Eeee3Q>;8յe/py%^Uv^~֕r>W]|vhu RrLx%!E0 j/ǫN\+)T9ܿ**qU]/w"] ?'u9ܙ,;,+*/5\]gVc@+*mJ\%.t斻]婥\I%}6[ÞV JlR;Fݛ3p./>mN .m %S?veZO2&UiRA'cǎ#Gv9wyg}_2~O>S؍tw<\]8WSSąMw3 9!y;tg ,DrK,!\|?=se@wǃw`6;;G]9I=A82B ѣGSSSXt;<0n 5dh:ttÇRiP1Atmm ;9'=)n" އ9:0A#^oPuu5?_* ,k"$$"?xN>M&yDӬ,Fejw,{U:/T/G=Ud"ѭY?%YdYǏ|>LcWޙ+/P n ǎn+6naA},`~9{ds+_@Y}mm۶M:̓+w^zR+2-`}0;;{aaa9̒ /~0!,+}vm/#}` :-``n"Mv 5p! iӦ˖-RZRR:6*^ݱc89vڸq#\1b-M׬YCY4SoA6lHKKSsNJOO_,E5fҗ)v{mp/̵oa@^x>zT5[ ϟ{233[hvZ. t4vX@5sμVӦMn?W^I7LkjՄ᪫1c!o&Xx<0aJ_ÚFnE@Bz%̇҆KV`WFޮn8?0 g?y)1L@RSSy4h G?0o>>o[£3)/x߷o]w5~+ⷿ-?sϑ+rغ/'d>|aE[_ ;z(.4s:/YeA7f'rM4Aq'0n`Nf0ίjؒI I1 9oN<yĉ}@_֭[W=` `./~iC@Ne?ﯼ_WLr x`=Piii$ ]~u]g301bDhh(F><#KSKFm۶ 27W҉oӷccsi@}4ڵ a50󫯾 cM ̻vJB=]vL6o|ׂ_jz*<'Gk׮tgϞZ"oժ0{(2~2 U,h|A mn~Ey /ҼE5Nٳgt|/!ܗ 5CWB1Ak'Msz!"3x?3f"d]ϋwd.^PD O {<,`\5ehsY"!.Xc|Jhœ:U"m~1jN3 |Y3$1I6'f˱/Ƀ!Xhу>x=v\\v/޽[_n߾Ț3a?qDA骇J,3e,^ڙv\}Tfa@vd;dvSaꬴeN:SBjV/Re2Wɰ&i\Lj4UdEW~U"O|])ZE] ґ,kHH2(N ٗh>7DC?~\$Wc>$іxMKZSHG34(>z!m QukזE5!e! ٳgOzz6!>}:33֠x_T:Zݠ" 'T ~@7FYkFC ɆC8=ȑ#dZdQ}U{MhRbu&%=@# K3${@ZZ" Gcx'''SPL1A=D! :55U3u (2vkL,7ΚjxojkCc1bСTQ?O?OR,ɴȂy2VlܸqҤI`+LLLDY,Oh{cZ jY0olCqs?W^gyy*G1ԟ|IB:|YfYbiF8 '\y#Fu.6l/kg}V1/O?M`ppt%Y0ol<ʒʩ%ᩪ1c?{ݸ,WdZ 'NPn0o07ӯFvc]n?{8$OZ̃;)HN$;CW6k2Q =,!:++K}vXT,Xz*,ݾ}{jj*J`\Lcj6<0ݿ?j+Y"cQ8߽Q[:u0M+I2Z1וR9v 4.T$x=!C͐d,aPXF|`ބ9A%33'Pvv2Fu/Q{hsa'x,1u~0#p u 7i51̲ȢF 7n=~`h.ysIaȍekିѧOi:M'jF]xV`^YY{N!%ʡ0*9QiEK+WDhs7Ppf؋ K~hhA$<<<ΝK/F߲I,OV!sO$TLBBB"Lw ,a|Ν:|?]!]à@הFCC'~ 9%DJ3/i[0F>sk@U<>>tklL,a$YB>MG}1gYV|Ƴ5}YR7l؀@ }SЋTxA>Muz~UKݻ7**[d]I/4ͽ NE AK ߕkg=y$&BN0>?鲚Χ͉)}ZthgETUU;-{Ipx=&sF QKԾ/B=l!l'c*PǏKY 2yį4;~VqznE?at嬏/@|ɵq%2oaYde#j*,CԄem˼cs}H.[NY :6EYtɓçN"Η暩n-K Yde#ЧOuz&~bk'祂O:A7f".iW' wIDVd%8b,d.i__;hEv 4*7ѺPYde՜T07bn*3oE]&2OHy\_Z\. "/|!t'@z^v`^SϣT]:999Y :OEAE[~9n>К{ׂ//՘ţHiӦEYiQ#pZ$22]6nHի׬YjO#-["0s6LǺ^Z{a*S;r)8} 4uZ`Szڌ+!=IS"x{uuCY o>ZX(tZM0צ8dCG'y䇜Y`\ 5fRSSWZa |ͯKsF g-u#S1Ms`4] -ڪO2Qs.څa+Hcn1,궸csZ6BZ`Z7fggGDDl޼Yo=_^[PjZHHӧ5y͢F@:`z+0jY,1~9R:Sb֭7 N-A .溃@w1+'֭޼W&8<6,,췿C85vZtv:$e7mڄ(bnnțDm۶isƽs"62uE!Zӎ;wnǎ 7`]hѢJ1 v_wu:uڽ{7]YC]s5 e$1z<ڢM4YZZڲe˾+5ʥ= y~@F:gt7!|4:[n SRRz[o.ȄZWJd?a޼yZByl%֢;0G/^,] `"Pmm-w^ۥKÇѣGcXuZ?...99Cӎ ="Ў|/qt+| DWܨ`vZ6mMIPǏhȎm۶mӦ/~ vŸxG}FLMM%|ɨu]*GjqνC@1L>R3 Byt`2eJΝ#Ih7K6iDZ^1bа+Kذa믿WW/ͽ Qrʪsm$0d0,DtC1Ǎw7d ;v,5\C4"oӂ+rƍ2y^z߿?9;"9æM(e~|rFFFs}l>a„_|(z< >ڵkQܫVO1 J06U!Q\`~Xgx'M 0z-[p3#HpW_}5k"1@":3kDۨ:Yҭyt|mQ֪G '&&%S4Ml۶MWḸ T8'>>yZWgnUwHcP"o9퉚[uPB9 "@t#?}{0iGbQQQ5=i.8/ZѣnkwބݻwO3!MjnU쿝uA+C*PvkjMsA۷oWybbbvx[l h/Ih&\D8$6mVhYPf*V ҽv9.#W0hʕ,UNk +KEv iA~CBBHKSZo'Z$66;Y=җk^[7DGv I 4Qhp?=] >RRXRu;wb-NJ :~M.z dpW]]]Tޫe4Qd-#tyNT!{3uvIթ kx!$T.('$TVVRyq7\3J3>|XGy^ziIwK1s[ՕBJ;vLHeVEO<s# t@NW]"kYj~런i1G8fNT!ƖXd\njAW{9nLXh?~+" G)9#]d" ?Z MsKu%/2XuZT\Sp]i&4803hXdiun\wˡMv]z5A !YdGfmr}e'$$Ꚛ_T-XdGA8ߺuٳq]j$77?Sr#e[FE 5uu]&cǎrw62AL{)oM’,w9iE^ ~vy:55uA6lPg̘1ڵ뮻wٷoZz5U>k֬ٿ[AjDidddLL  ԩСCٓ|rw%%%|ݺuZ! sAIzubE!M+~' ֋bkӉnfrr2ڳy7XM7݄׿5\G0,,o$>!!+rK&M{=6!?5֦D={N~YfM6 4:t#GJ> gu|͎;?FQs֭T]]OVZ< 3=ԝq)))mԩ}%3Oxb%8uT|||Ν%']t1c$2ڵ+==/9x`7X tK݂,貒#Dz=*t%fh im:!!+V>w0E'O2:nݺ5V10[y :~hh(?ݻ?$++ I|p"40Ѥ"]6mZ׮]yUW]EV3_0l3={6\ rJS!e]ޚ|W0aÆi:bӦM=Y2|jQc&aA67!yimF8e )xGJ}75 ]9o< O0~˻v"ѣ+0.f͋P"w1$?0'cǎ<)=zj2}]_}̘1D]C ]@XcqU&_wy&!>>DӧI'R@Cg}CkA%n9q1նԅjl}YtY ;DP5EK; s58c*frL6a`m)d kJsr1zF%z_smKu7]y{.0H#zݹVQ, -pAkHc ɳ5BW-jQO~4[jwI7#/pG}vvRݿC+)&|K4++hV5J5TDN wݤfN h7q嚂,[$% 4-xر,/N<߄211 {itV-[0oT+L{N;5Xz:SNMc+̀o&;;[Fus 捊FDv4h>}/Gˋ xxto I۷ b-[0oTDs:؀r_,s lwie :_ 1#5x,`nYN# &<3C =zZM'%%=S{0M1^3,`nя#SGksԨQ[o믿~F:Ç3f~tRseY0`Hȼqo&MBCC i͚5W^y% 0B)AmdT̜9S+k/6 [k܂y,ȑ#>>> \\lݺk7lذbŊ{*2!555[kj-76]4Bo߾}xx4Uofgg5k߭[͛O2% 턼L7Xdܢ(!hcx7m1Ё?k׮E󴺺6111))i _<6uN]Aҥ[6tHWF~u/oԷot')#D`̓߯j CZS:̓'iIT5LQ$L阯8O1#-Lхg=%xij'H蜢 x2?`;d4~M6;eTוW^ `p®]bO0aԩ=z RꀀQF}%8qDs#?3e9s>}PD#9IHH ٳK D}|mOvm , 䍪&&(>_w}7mD w-7xh)#/ ܸq#<:`k;D؈B?C4W\QWW׶m[jW^2d_>}M6$'###yk֬{1J_ d, 6^;w^KUmŊpX|Zb /ZOĤ9]uU6lx'~ilOj yg^n 7x-[9c4k֌gXXأ>JIy{-(kΞ=K./D|ȑ˖-*zi&ۮ];xRռ~{޼y:u:y${%KJݑd1} @h[o03** ?~ӻuV[[K HׯGBN #$K'۷/Dz"1w؁OUT"['ZQ=q4:Oz9yԓ'SxF-ډ (@'NA& 7% y'luPi*hԔDS&y$;Si) DBzԧgsUy.Y;=JVHJJ3HJVuLV$3ʤ\2]ȤRک OɆN'*IST?$qXp\ 'OSsC%2ꉮ;>  J<U͵~^12ImĄ-֭SdZ$uA͐C)M-Hޠאdɨat W ʧJ=U>I)씎z#DT y#x*_ 'C O)E{ "К|+C=Pv&DOZaAc~C״90'c ,>&\אQ 9xJ5UE-iGauE%%D#Unr'D<&=K5C4 ִS3*D&D36p`L1D&ʧidd$- Oi&œ*%'$iSBX+m<-H6iV)dhuqPI(r9 n$VoeDj}N⩲JTSPfʧ6̓h h|K$Iф3I~OLi dcǎ|%DkF;A&NІAC!y1^{$=` AҥKyZ|Ř>ڈn@P6hq4  ! V#Ç av*5j&0HC,9y#yKd8#6&lnSKx yjZ3Sz| ES$x>+{wZpLBku;0'*#A(7mz1xҒy%__>j6QL MʉxjTSci,s>4si@51HNפ|][.X,+%B:?\S5Dk)$Ր'L)1jT=9!&]}VpNcBCs'.{gҞ +/v)7dm6nA@BbSnh5O6"fT՝j둾6yj ]mS{SՇ' Ol$=o⩘eOAғ s+&O͏<34mc+M 6Ԛ9IcpޢսF*y6eI;6UK4TTmeBۀUv1ՋBBBx HtQT͛@ZM2$MFm`OZp!1W^M t47'&န@x%m[f g@G5D[(,yW}_v~)-BkRZ2ydI%&&Š)S &=B6l؀0~!T;ɩ%);%J =%tM6B %ԤNW f5F$3ܹs)N !9F)HCk&p#9"D*m G 2B\,Y6Md´S ˜.Gi/*uJ ڊ/ rwܱkEkr-NSQw~m8d ￟ruܙsҤI4Fǎi'xD}Qd@q)C=D5Fr>x"x ;SN87G/zLFÓVd%'o'&@v,z^SO!ZDJ.hܸq/TENhA%_~e @L*((E$GwNa_Çzovx"W^yv&#rA0\v~9HH?C|ޭ[7DH>v BY%~~~ի1:f^DY(;AaÈ [)$W_%&u8p@54{饗R2ܿx":(T(8 B<I~hȐG?t)~}{;tlG'M8oE:TUVYfw9nWbw?.U`ssmmi ڱcר#{̈́@)S-[8ߛ9ÒN8T[^*:*N/e;s1 '޻k͑YdOU"Z$anl+#6E~l[NI8˞qÕ[TuϷ,\ywBIBc|{]n^aC_|a/M8XEY{ˊ@zZiIz#eđ_,"~?}ZS}vG:|DDSǎ>^q^X^pOsWX1uΒ-=͡ZgRQTb+(*/\vgeU]i/uYdE? r r<]UvGY`+rUq0/+Vcٜ%Ei}E^;/[1 w;u/6o:q}45;xQmmmeU9?H/.)(,.(:J KeE$*sVJ+Rd-(9Kn㱗VTW8p$>Xg=XX=ӍSlݰ& f:bo%ߝ0y$#Q,)-f+f``-.)cȢH2[Inj{9KKjJm5JgIeei]uJgmPuӽw͕_tf{o'͚og^ӭO_mK^p[3#?yçr59%y%N ˝3ȷً9|,Ǔnu;J:[JqŇEՎªʑ_n+Vʂ"gyqݱ?꟣V~ntw͠l}[D@&Fnn AoEǃ|uF% _q`S֙wH znCqBp/f7DB =nK3" geû9&h)~$$$D&:xZHpFao/|׻ >ԅ6^6֝Ad4 vrL=b88Iӳ66uBO?=~ ^K%0FYM;؊&ECBB`Ṕb%e[%"; ؋o`[+^lً#ne&ʔ50V?>hѓiBEޱ9MX/6eU'vv=YUw^8!Q^` Fv ChN٣ٲ$$$ |,mVn  No&aU(ƶ/6Px^!˛h,Z|XjX$& o#;=^1WYʮTJI GĔFĒv\"p8L&/0k!!!0Tbb2( Kg$И4V 0TE?̈ 1l%5Ƌ)q zb6Oݘ镦E&*M vG}_X.=xdwՅæe gs jr krNhDnAYNNN~~~QQQIII6СC%$$$o$z.1)1TJ N)S ɒCyjXQ(IQ)eTT}Jokbu@ת{*woS:ˤph.9#{dՂK*Ԙ/suKN5E'.?2}sݳ?kkkpԘџ '˸:f[ƭVېevjb]jWX`~CCWLlVKz%u%iUFj-cXuL^!]' 'D4ϟaQ_vc޾h_Xeu3=<>/+[VI51dTq3K*j:c/\d f&''\^-V)CzNo](LqAZH+AykN~׶´fFlS3ī}z|ajnMN͌OO=&>cDMۦ&MNMNfmc=8X6!*UuM0SLVvHHsUm52kD80ʕ#:5r˲;@z$ɸmt@}3'ʏA}#~Los|c7oহ|g/>s{Nϗ=_o3~K}Fo_k&!!yMo}KOn}_w_勒6eFBIUq]ki;vBUqڕPGg$&%DPv;ty4c~9]t$Vn룘ĊcG1|#%ѰgoKu> /XObject << /Im2 36 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 42 0 obj << /Length 4493 /Filter /FlateDecode >> stream xڥ[YF~ϯ lⵍ}H#QT&ʯߺIJċfwuuWG>0ۏ34ж!nV1fe2nTGFAܨ<{hn oVqPJ,v7qP :XN-PXCx;<0OT$j$Ja G;0UPtxTyAr"B4l z#6MiUshFj\wRIwCm,CmEW/oͱ.ny†*3ZSVJ(FWXmHGӕE:XWD(5d]bٙ0 wlLFФ(U@xR{ k}h/՞3 uWFP\YE\ eJ"ʎ@8oܳ5d518vu{:R8vcrkyK{Kҵnv~3)-tmP5*c=S̖]vP@nLC\Z`"il˴f:0n(@PSSP=ӜefI I4c.X"<#?ܬ+Z^^҄8eGgTHgl1L#x{7Q2jD!Dpl{?ԨkVr8M+H? H~D/ v8^88B9O{`5P+6BTh S;/z|s4'r/?Pt,@k9(W6IRlBϽfl"qڅd8 ;D_J[>a#I xr/l֜sIN֑pDË0l.ݚbOXKFt3۷#VxDZAH"]L;d),)P 3QA݋L 2N͘k9af] Ȁ"LG3>mqPM"M8]_@&(h{(A tȦQ$8BpHZQWsbISh0)]''hdMSR.)ĦA!_Ha0@- 4[L T6$JeqsF%UU;pd C׸M""t} =.(( XXwwϤq:]Ď%ߋ~)ݖ%&q-;Rf:VzvR ^Bg,e&˗_~Jݾ}w]0Ph|Ae^FQsF$31Njϑ5751h{;b%L.7nKxHr\7d/5W5_4T=X&fvԩ@PfX4'6gu5%zp[V1X2f<ss~瞴5@ʈG[ _ z+dW-01sh"+tB`{:a4nJϝ+ݹAY3"H*~Q緦EGaA _.kbK(?I_ ƑET-w_PO>kHh^2dKt<DΓ]sAΧ3[{Ӵܰ(wD2(w>yKto&ϳ03ヒLI(1(j%:,tKvNW ,5s$fsӣ\{p@4^ ~JqFAs2ןttwNK@6X%:Qj?•t'FJR=FX(HDV q[]a}%J[ Cour`/,AU!EN`'ꁖp?tM"2V[;X?@ʌk)}G(Qoȳ\T,OO/xpQD MO)* cIG,(zYo4q׫@i-[vh&b]bǃcuEH,8,~C0X(}ZX0S"y 0c>Zzy4 DC1&}C*Nh @{ \;2\(,cm,/IohM袓i(<%F+R:cϙ~\BZ0S Ļڍtd(b;y-v"W71 M녠)t#>MՏ0$ 4cmA[ϸ@wΟ $1or#f@- DɬM+/=4Kɞk-ڐS}W_63̳8nro 1?{3U[sTֻel02+q)cC`^Ѻ"{.@9yʜGE;ymrFR.d <}veEJGA%u(ajKG=vk}F|sOt&q1B &7~@y4P޷J^ĺ1Qc N6Mlg?o?ҳcx͚~nܐ)~^xzlg auOeg~lyՁ(s-lg7!kLbZ>Vb"3,D:p$.i7́X|?3·D ZvI8:]D>\S0 lRauGk/^9a0_?'edmÚڸ0%(Sm?[gK2md`KyPK' TC'^540A951zv$H0y/(?fbPKEyX+1һeB5nP34iчS+U֗$\fB1+@ڦN󴍗PK@o_}7aO_x l8Q[xKh^ݽ.mwV6\IMi*iQ> endobj 40 0 obj << /Font << /F8 12 0 R /F32 32 0 R /F31 23 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 45 0 obj << /Length 3584 /Filter /FlateDecode >> stream xڵks{~/͌[:Hr:mj "QrwwA6'FZLq\郹Q4nR4m#;1/E  ʴ(A 1[k8}Tr W.5,"5!N2ELqK ~8 @H ;q,dt <Ŵ&w)ȇ}C_+CN|wo:J\O`1pcU˚"UU]O@*`gi+4$kx?ځ˪\YC} <" mf&-(ah $s2Tjȡt ` EV2XH?mǧd'XIHŪ:k U NlbkDƬ;6κfۧb-[h0MF?p:no_7Z?oJQFTlo[wAm9H uxHktY3i? P)3H`mmϕf47]Q~Ҷ0{a-]~ЌItK#s-g, 4\&A'qB!X&(}Et! vbGU=֣!vSjwJ͞ 8ר;4f[U,:{g8-]}3Q!ڝNjF$h>ZHNE?tXY̤fz06Hadl'D !IF-E{c0-u]wl,=ۀ(6yGKЋ0%98Txz ā +3 4‰ԣױNpݙ=f uF8.pd9)l "jEsYNV/H5Ǭ+$41NN\+gUuiMj7TUjkϡsE[N3-sPLLe"+4#H|pPA!Hg\kj2ɒwS<'h b|o~h8u!{ T 埲ۇِ(DasFsS1TƞC=%YHq⓱GtFq%/UJZ{}18I}txO[ӓy\f< R-0qFdZ;b+'xiEK)kjH3FtF Ԗ_(]NּYAE%{=%IE Hhk`L6'}\_TY:{XI$VU d ])zqk zy ^(]€jt|!!FF^b9yGrN4_+;] {F~u/\b#zV7]rB % 7+Ri/GpARSK׳S.OG뇐n4!lGrbT˟8="ZPiTV=GW,{cXV Tg]rgEц\7Ώ?^˖ 6[@_#^ "Ή t*֏ D僑Io UPpLU'=çd>ڎ~Im$S>6gQ+;֒䲲4]cاߣC3 oNnC)u ˇ4J{I=pYWNKe-y.$)D$2 ׌x8)=Q0*u?08^9Np8xΨp؆z'(b4gpRDNq=KN_nK]®"xp$4ģ4zPsl->@rc7wZQ;(Up_ߙendstream endobj 44 0 obj << /Type /Page /Contents 45 0 R /Resources 43 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 43 0 obj << /Font << /F35 48 0 R /F8 12 0 R /F32 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 52 0 obj << /Length 3861 /Filter /FlateDecode >> stream xڵZ[oܸ~0`=DQ-MmfxKk4cm4D8C{n4I #s ϳWYuabv<&0L܏48P_G/ڳPvYm}tsvyyx~=@4Hg7xWn\^WQZk]_Aۇfroñ;t:_/]UizRV;zy9%@=}%NxT´'i񔌊Fv æSyY˷͠Ç\:zM+"I_ TVQF}ܕaBG< f*OPAȈ{;v`6,G!H+N5gn2 ˯춦(mHœ H$1_QhF eyNI'Gd닷?1cUH"_"ajZE̢2gYim f? u'eb?d})F/X'=#3zP)נM/.྇XWzVu䈩m@Kf8QANPSM<U<%:Ck;&Dg>f:'UgYgqJơgqᜁ'Zą UK芶ώi)6sQ@4[8Apy/i0x(T/fQ-3nqƸ![,VD.\>:%mn,a͚YTg8ٛ׷يQ;h@ E_FLu` <ł4T>tx4eS>@#s2$~vovqRȽVfzbE9Ew Γ4N Y23Ė; ? ))uƥYFi, @f/UV> f DEj[YpAG[<!^McK;ڏ"8yv#f˩EQ+I͎9LU}H]382׍lR@4쁁6 Fff*o%zJFx\\ Pkw'GKyR_,XV$ l*Ki^Y2A(؁O4JESU̅7nZ{Guaʽa.I ֢cω\ %9!tF,SՔ'O>%o'è$ 1d r+[?Q?8p@ P^8гQQ pErZ$lRJ}QIMPZk W+,xj%%`PWlsqKxBNi&?V*֯u@^P s̎6D]PIu8ʹΐ룜^ƝMs`"q 8eH0#hۚG  F)08 nԕ4s]4ޙc~(̙*m.O:Њ\ˁCLƧH1ݴ/A][',`lQn1S g~Ϟj+͵g?*@/x@-jڪ/u.gA`!REj ГZFJR]cC͎@r&*[ܲJ@O c0vkH0Ւ3H"H@ 5 !7|5y֌E(.Y B!v&\ 0N5{>IU);\ɵ?YgxחoP u7:@ܹ$< 2鞳nGRMI\ͽ:R?Hw|Es}WF^̥o~/.VW}#L&M Y<@+XnfI]yl˥^?`<ȼ] #ɢyل s}>dw LIn?:KK:"EuVk?N1T%I-[/_~ʦ啽lYBg850~\z2"e-@5|CgWfWnˮl t0pۍ$6 9$l}wͥe][̍I"A䠰$\z`k1v2׍~({wwӷC:f~&8ڻkS Ҫ^R*nw IKٖGh+@I>Wr,1'Vسc2SM}* 0pO  2婋 +V>gP90?rZ : 6tD"T2<ypL(h|~|vBNIFUq tw{c}X&Ƿ ]v Rfu*\\"5{Z. RY~GӯlH!ħ;NRKh uM6V_HCZ`3LcN(n뽪&TTW]ody<]Btj0OU| Kgc_;X/E49O>c0y)?\6c]/^A;Qy)f.N|5ԹxЏ2u e->D_Q]=}ݡtL%vOݜI Ȓ鴮ZG&'C 7{>-GzZ %Rhʖ,(Ra3> endobj 49 0 obj << /Type /XObject /Subtype /Image /Width 699 /Height 778 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 43114 /Filter /FlateDecode >> stream x?h=d:xPCC jRC2Đ! d&C1;ӡt( Ppܡw(Cvznv=htrM!Feœ&jRM uʇzm3[*JG*ZMW{nkgN{?A0@'EDi#Ͳh\[Rza!7{PTjخH4` PXv^:,UU`ii9SSAp8hd {Op;jcҋAp0QWNgnda= {f!{?bWju#]W:_{rl(a{vLvKr~lrj3 V1Y,VZƹQzz:Ee<fGdӪoq(JO mt*6SU!E>[N=ߚ?4F[egH5)qh|O?+reڔ`<7lH?Kbfs ?BN&z\MmT&^ beĽ|q%=B LՑzO+6kH*SǛ.|yc33۝oloQ~|pt2{ˌ[{3mOtOD2“fY3WYdvؘx~C5Fh˷t& E5Cj=4`vu ^88y.DY@ӲG)GڪVU[nG<- \~V ;A;1#aC m05z,'Aw$nýף~ +óac7Q|c~k=* a k;ji~ ff:"*/HS6vAKFh7^iC"IM" nL" I/HQ͕iVmkF9MFE CC[hM<'^|6 _ĽBryWo?lu_ 8f$l|_|,$Su'o[rTJ$q/W|OUd򑈊Iac "Z|Rh/h4ZϐkR靪!;UѳDOD~aH# ylĦmrBQ>o!Dcyo w'4!.rjrrq٧m\]82k~[m"¿QH?̥Zz|{tL큦U$b#6O.n)~_[hZ]ktK!:5W;^Sn&уQUy<͟Hއ* /䁩("=UQ'd*@N t Qoň0 !'FѮPlުfki&5`H  !u&!?1Nʴ~Ba{V1K48f.+2[Eçjw.[*ɯ~OV/gwJB'=-dz)1bDüxX*=;)lבxc"p137d˩f@dozS0xT^v] Yia]y%1L u4FvZ,y_xmJ*ޮb{R: BY雋_rLr bXԖ^3<Jx`: [[[{-T>u/E D#Sym}W]jb} nGi F"`0\V=I]: mw۩fwM{j߫M[vzr~d F~>S?manCs?ڪɍ*R{r{(Oyn_t(T >JDģ>ro%&Er8"3&7q"Dsl~tz?z=ګV@ h4ZMD"NY6OwK-, O [7qK {Ω"lA3حp<8<dR񚉋o~b]ԜΩ>5I5ݪ]s83h4| 5DiS]pmWdVޗ= ڛfj Jk/"-1s:$nD OFhRۍ93G"MLC*mG[. a$fz4j4FIah}ߍu{oFqQ>kZnWh,Y0~m'>}Ηh0o0*GHHmDZ,O0ލbA؈=w)*+ KԮ(!$ZHԂ'~1GuoWXGX93C35s#H<,GηN啑>4r'`(583Oq`ƞ؃Fz;$tjm<>ciyi ry^ߊY/Ol_+w>.BJ l\=mdk{}PzOQ6XcٮNa*0Z;_F[oۨiu]|(sd$s;~_#۩vpCϴՈͲ >>cFztg|2de?`PyVAl|ׄlw/!,Y0'`ha߻ۭ%`L`V:{ 'c}T}j w#H>,6NROf#˳UNgZ@-^~x4 V=%43} [z?{tT'GmԒwf?rrgG8~+[%v8:6 d 7S0BJ`r|GWϡ12g"d#Cs0cT_[QH΅BȆ.Ԃq0Nqd{/?miIk#Q+GI 'R~NRCjKj97(vX][⻍؃R帺?wb]ۢCaw{@ cO6>[ZZ{ݤH!*fw_SW]bDŜi*BN qhWI`"oH^jzs#6" [%&oF;"ҧ/O=Znh&pIegQ8~ lz !d`V17oAI83wl^Z'^rlj0BTlA/!Ϙ0~HiM'#(<<|MAW{3#ֈmr˓DQ@~n4k]`"\-.'k=~ E pR,!.3!3P2CaR*N#(h1c<'U9v[␱·PR`45B f@Ơ"/rnL"poqQ.fBԒ2vbOK= BH(lUOh蕀fx3hONvzXZg a3ԂwDѸ3-6<1ҏ R0<3fdv~7bOkl'tK G]J/ovIX \ZzP; quHcDbߑ`@~ڥx$@fxE>PM֘-A~\_OYs/Qu{PU3ضp|ڀN:V;4^+_ax9q,Z[)S3ΦO(cﳪNjy,"_[uk˷yʾgZ2AQ/[#y[`_xy\[S0`qǬ9V g1whn,ԇ;Q*ln]xuIXGK0{r9h3y='Q iubWCy߻Xm{j}C[ @LWΗ||3GҁT rЂ a=0X "QYK'͊{z*!o8ڋS3^Uù[ rbhC{,Y0XOP-d*cyS[W}HmmSKrfbPKT7 eFaG(/Gf f+:Lyz2`8꘯`(v>ja~jh՞woe) KTsD̠wh3 as z'ƻsez}SLL'}{C|"+/s9E&nLIC sa\xBu>*TA\ܵ$E - sFy#4 JxPDy^8e3@! pjǗߩU^z_Ѻ{;:}v$GK0s"c͠DFealt)vnd֐T(;H?Σtδ+fItOί8(a(nzTM>I-ڕ 1h-y=@;Z̆x]pxLl>2xP"&P; }YrXAؗy s#u/}Ꞙ^C)&o.ws >a<=}`xJk-֮r'BU anxݯ >cqtr~;*ۭ?i!|?j\̉efsЋ~GZ N,eOxP>1ߧ {T~g4_4sT bXh^blhS+vA. Nf/FӢG`-fΩT2]Ov1rַt'-ahk`›Of2>$$sS$ߺV_/)pF~ CbE011KB *3}`Ń bE([9C"bz=Bȕ roE:7ӗ΋~Q=ckT T Ҭ۵" 3 0h Afd[߰ӻb6 Th6Oc;v#{PJu>w|ϔ/0F hnN|n8PP8Y͜-[74Eba0)5,AjX5 r1/%}7 w\.5]wxYBf =TaM]MΥWM'Vwr;bKvP+K>Ff3$Zq3 A᠙|\-lR;v'X0PjfՓff,ELGZ!o\ha`C v;}ѭ/?['oIuVs;V_8ϔB".ڟGpdjaF@@!  d fKB+ tL(@@@! A 'd CD4FіoT  B` B!B(!B@! B!`h}lUh4F[]7_`@\Bh4 KBS0B!B! B` B!B(X„B!B@@! B!P0B!B! B` B!B@@!P0P0B!B! B` B!B(!B@@!P0P0B!  B` B!B(!B@! B!P0P0B!  B!B(!B@! B!P0B!B!  B!B@@! B!P0B!B! B2)vX &deH!  BH(`Cj5r[+=Q` :z ݙ\W{ٙ!^f6 IQ0K_+ZEs```XNlD !>w I-S0dXgw-pP-j% 9++f( uAd2#- !Pd[s-Y(Z(D09`XrMs:WDV*L *:A?'Q P-H Mz)D/Xr;s{o`X=|#W"4w-K MqAO&/B"K_i垳=JwCjɮ`yzyH#CyVQ0 y} `%3`1"6S9'w6萡 pCJui7`쒵z(c83e{$}K@%;s%`>J)E @esM뚗/? Q0XPaUsVJ  ┱;D/6Mu \ e`ZA0?Ϛ[`U-|ZJpAʷ#ZY/NBGޭH-B0Y`P_"KI(YFՏjƸٸZ,@Zŵ$m|f`k*Jf+UC ny*W4]'vES0$9Nq9vpo[3(9lJ]|1h:`@:r}.`?`k /!$5g(`fotMC\E^jpO3Y' E:W(|Lز=`pV3:3 f_}{QFԂAsKy%ekj/|ok&#>k{fX`3rS mU}?y":w"8vzWk<*JOG0maG +n`P8f :9CQJs [zS{oh)CQ:tǜAgޜj9dXN/)h n7:_0(0 }K j ץ,<8[K\2C\I(Agch 9Z`^}m'٪ ^``s8M z Q7A3YYRAXÍ0蜝!UJ `h לY06Yopͦӕ ϗW|N`s :QS0xH TQ 6a༔ gN`p=evI3- ԅ-Z08[:m} c}Ou3zU,tM\LEwVznpΒJQ0JjAA!%0Xo9 `p g7Uy M08E϶k_׳`{Տ1Q~,S0Tځ bʡE%#|tl]`P*ᚡ-߱EA1[nN:ψXJR}cVȦZ`pW.`PHMJL1CͷJNuj!VXy^4u|˚P-lfnͻw@`14x]oug5(p[o< `Pm}ZpFU,fX#iNXS8_T0xMQD2MaԮkȟ"ԶLT ΊUh4ƙD`FJwKz *B.UT]TS_1.H0ouK}#t +1VSjtO:hfl[z}g8w( 'V6w CPnz)(se CS-;AOYS0xŨ z1+:jZ6pvSO>`pumK F)AegΛMqkfiɂ_W멙S0h kzVE0*pF.)aVPf)+^, 1Rъ/uѫgeU! kP(> [nɳ$x0֯4[әf:=>[\seuȿm,\]:^?U籁sor#y7WI-@Nunlg9HR%(7Dn T}JK@q\W_Ac59ΐ=\iRռWPۚ -? 3Dw~:f5[PgD?:3y5޽ uE4}NXkp#6tWx->y,D@4[si\4XH)ؚ#0@Pu7OCi)]uVD%^tkT{ %7C ~ X'`/])t^p-l]e6:GS0_G\UK"??Nk`f /UGn#tF:W{l%̯kP2G^/Z`0,E;٫T@M`lA=Y[9kU ɉ3PKFQߓ3!\ q)A & fZ0GϪo&:n9`p]H-4;Ekh~` E0(wVf;XQG^ .N0(׵ 7 ^%Thej}J[[S0VKe)*9ѫ~pcق~K/]F4]U UkOɤo\Uˡ9zR4Bg joť#4QA3)#c".d%ߍ1 W(B05ߘ (@]Ew>bQ*M0z= ` H,Ia @{f*lX`'|)|&lk(9n`_-{^ 9 0̬!f˞Fbl~ٷbYl.kɂƙ@`U|WmZ sK9 3Ԣ&t cln6y2`mow0gÜY]&AC(Y`tC(!CAn7A06a1s //^W̶0`g=. 7G0laOp$fC [iLl%O x!K ǻگV0Ί~aIU AU t-'ɬ`+ہED0szjq{#C4N|IvKnyv  dA!e(3WKpaK ,M02O'ۚNGs"K-`kx@aꮂa{ E)("aXN] ^~9!,`i.iOs3XtEcy}AXC4T ÒC(kE~}CXGDX F\0Z3G@n`X PP]+']*  a=n aK&yZN k BVу a`Z^`ŷR0,B4 BuU M K!"j?zK ! ^+a'/R0DS0pY`TWC2+.qi(HC蹢``! +'$ *j)Z o aGtS0 וCXU QP0P0P0P0̚H@((/V`5[t^lA@@@P0``#I@@Xj`Ƃ!%)(((Xn`ު2DpU8'7q`  `LYNJX $NJ``@(! U0P  By``P B还m B(`ZYP0P0B'/8!/'/'/'B'Bg!B@`  B` B(!   B(!  B!B(!B@! B!P0B!B!  B!B@@! B!P0B!B! B` B{k[t` BZܢs!B@@!P0xyaBfpcԢW?.A@!\A(`a BV]0H0JP*6L[aCM*. B!7u>΍^Gi z$P0rsbˁ  B!B".Z[,aB!8 54 Fh50` B B! B` B!B(!B@As)P8,pˍu7yS xuvn|sCӼ|lg^yּ, Bc7j@*7>SZ̳]7gS06[ 7C-r3u]~+YOOJoyn2>ڶ݈W3_ 2.`k/j|D<ǖ::_:pҨk,AMRdXAce[HC-w;nlwVH+:G#`@׫[295h_0;JNF 7[WA]ng2 xNqU0@F[Ӡ0u<:W$g"-,T]ä#} |LA-)8hdR#r-ఐdfu:,!Dnݛ,dzvvY`P7B0] aLluѸ`kS-yY!YGN)µ,9*rg/llg!ߊM0 @1$րL`*"uG犄Rnb;>*>MNx@\:&~ ~`?LI)ZS[\{\V( T0 k``@ť2 A2R-rCne_W7kp4]ݲYfzdd+OxW~O A(yzA!ܳ^46*.`A5yt^wey#eEUa}n\]*ՠ(?(lElHߦW`M!H[|!{hYo]q6q:] Zji=m~.\!x.#0{[AvUx=MV0"0Oqo q;ԙg ̳`CWq]/O t$D]M~Du[dvʦ`Û#ק:,P#ᣫ{B.ӭWxQs&KvtX#nrH(^/{[rr}ܼ&`@DNpj-n1 v0~-&w.KbݿKDP0^s Z`0$և֥\Yɶ`gq꺌0uvy@֖O\g(X4W*tK;:e+J)zۼߧi*ou!lF^*8kߒy(a!\k&x;1t7S  JBrlLM+ [%YɢF,yzP{s = DvB^>u. 7C1INPytH?g^ʼc|&ĭ)C3̻N=p?%Շ^`Bu`ЗONf5Cå:Y9<:W$r3Pw!NGe^,CO: ^TgxChv9~gJNZ: 7 e6ԡCGE':YQ;%>p/ɚ ׀kiPވNm)M4g:rP9{i!bb  睯3VnxWV|o\I^`#_ѹ"[t|Ђ?"W{/SZ̳]7gS0F mr3u] B!P0B!AV*Fh5  R-!hjT B!+Ms>B! B` B!B(!B@@!P0P0B!  B` B!B(!B@! B!P0P0B!  BJN~;bKGn%];6"x<ۆB dZ]or8!!(H$ucWI@!P0Hwio5bXx<̘Hnd Y/ZM3uvn3g;B``ok'wg7?vvubzaDE|=(|؂ATL!B2v^nRFw;TWvó! HP%8DQ4FEWH0H0965's%1 Xi  ŃEs B!d  37seTvRx0 ߺES0p$!kn` 8Oԓw` Bp=Cݟt6꽩c"l\_̀` Bra}L~;_;Rl-0% j/jp6*5Q0B`X9*w p[N޹.4ӗ(?-#9B MJ§sy%B!IL oB!2Xɲ!B(!B@! B!P0P0B!  B!B@@!P0`h}la7Fhf{ R- 4FMG3\' ՂA!l>}uk ; 8Y B!:!Ղqn  B T #_agy&l 3ag B!B`` B("(Y/?-|[+b1d[~|휾BY])p8zZܝ/xؚ[ӷJŷɚjv-47i*{Y"Et'Z[NwȒuKn+ҶnDºoiʛdJag`BVS0ܠ` &h>P h,ìb;-K]^HV1/ 9!bu\5.G!AqM/ ~;Խ$WwFG)?n3g{QD%aioBcNj| !dE# K<ʈ&)[;N. >:.Z?Bd7_}d.lr"HRF[pRN S P5f1B o]xj4pp2 GL[$.h$J{4[= bݤm`"kꄘӱsU\ÒB5 cff1lmJ SL-]dN(xp%G Aj-NĩO!P0\ k1-b`@qڋ$P;` ՇnsfxO5 E87xNF!dQ0L,C>)>Zu[ `B`JG%zsG^ws ˴YXAY&p !6p}҄+DӸ#U0H Wıu[R޹i*`0d8|wSoh#􃴭OR ͒p]8[PY1T㸊f"%A! ~ <\ 'V #b$k[IS TW Y} M,Mn3'Z,y' X1 U\Zty̹rk3\BVs Klw5&+=WE bfE#!`GҐx֑{)Œ . B``Xuot%S<(:BsmB@@!P0P0B!   B!B@@!P0P0B!  B!B@@!P0P0R~R^ wU_ ε|dYtwq:;Z G6soZB@0`hk7/_oX;|olZI-H@6A!  30y# `W?~+^/h 3FaU>(M|%!P0P0E~f72;|)=s[9?pfbS/٢GW?'CHe?8+~vlh(S-( --Ӻ; 5~&`M)7B0@! 7V05w75\pR'@B 7zh`;J`A轔9R$ȋu6E l 9eZerZec ~Œ}<0Bȵ à)YrDvbт-f46UEM̆x˩ 2&# ^}$\n2< /WլR$! a\[cg]. pÐa7hN_{)9!}?^51Y;bzihsv:WbnX\B``Mxdǟ=k/jb YsGB``XqĻ$ud@^:SKB`"ot^<(*VVQ|[%!\o1 7A0B!vIP0B!  Bc(!1  BZ0KB`` B @@!a` BԂ]z\bK@Vs>>:_De#y7YyV?^!y'[f,lH!  +-{%_WUա"ě(!IR;% we^ B``Xe0ys# `wBV_-fN.R@]n+ !0ڟڱX4f;\<~k mlDIrhÓlѣ r)EaقU<("d)q;Q-(-ֺ; 5*SSwMđ)eF(! \<|m] p4[Z(.H L. {,[bX]Jh6sf ١ ]~+&!-g솒zǺ 뵓7B` [lEGQ[߿U{1嗱CpH$l}8}GS>">ΊB(n`@i3 "~ˣ9]7J7-nC6~0$4ɹ꺋wo=( YÒ]I! f ff*+u%`$߻ٍ,6Qp^}#.$T]h`R<(w,Bõ ƸA  AE]08&M8ljwv%hFĠ{Ae(¹m}}u1@! 7wЇ6$lC ` f7 >\xys u 6zݝc\U/U>p'PDYf+@! 7y!r ~Mi4Eq<ߊhm@ldfQ&4<%e_} qTjo¹W, ׅLoJ`#+-jV)YBuP2 pO0S+O;y|o[]!u҇l%11Rc[k2:q'@a  | PF4wUK`ң^>k/j[q w#!P0P0U CKAZGO˳%A!  +-otP<(*VV]|[%!P0P0B!   B!/4BBhv` Bn&r!Ϳ B dgH3P0B!00@@!0@@!0p m\\.7XHMVUO{WoQ͜p\.Ba`Xi ^Hqv.+ !^a9!Z";,UBa`X]0y# `!~+^/h 3Fa}E{)/7񕗄ê ) ڟڲpj./1-B{ewʲBa'7Nm_CDj (w)[@XTUG[$6 1k'5>ê8;N߮Og72Y]{1@">ıϙdXsg$-d(#@41|%jPwIWlƆ y?줘p.7~+. ZI!p:Dߢg~~ 9 qUTW߻~\|}Qy` HDNM25rO0wA D븑aI$j 9O:D-uff p2qPٍ,夗ᰄSuRp9|[ ݂ jm h!][. | X][ĩO!0°2W+XA_  ANeX@ etAkE:}OdxO5 E87KOa FVW0ȏ9@!d:OawdaX& LtGB0Lzx`0aHNd_pp:eZerZu)+{(Ua FVl8Pxۀ`@~ȝS8)rC}^UFdp/B^qAP0%ǯ (It[#^3̒p]Ha!bq[*E8KBaXYk11 pr9QeHtK! fNbN v9#`0.a0 W6ʅ ]ɹ?e(k1gN65u!U4ez<N&&H!00px֑{)7SwIB#  m^Y| /bh%VI!0\OB!00@!0!!!!!!!#  X ?\PwʯykKIn?dݒʡ[re݂C7u4-9Le !F F3? -r:Ac|rΗ\<o}hWwFGlRĺbDL"K^*&'X_\Baaf0+ZS]T`ig7fL2ͯH;lr"HU$2\F*22N "[qy+Y1BaaC6|uN\(8q. 끥,FxJ{4[=^ 1XnҶW0H5uBX(JB!9{v# o+zY{1_`n|$5pzp%G ?kk~qB!fI q4ޥ ᙈ0_5/kA z]" N?a C(cm-}9A_0zs5qk:eZerZec ز>Ί_:[c!00`nR}NYFdl?`hjá576دoWYt%pmxԥXxḊf"%A!K-! k؍iRrA~\K9`006s吼,8a4Xssܰ"!WZmL?cJ?{:;^tJB<0HWY H ୰3U!% #RR Q$!P0`pxPtJN* !P0` B((! b<!-(`h>///ؿ6O` FnY> *FdsF8F Fh4FcFare8^ߖ^O? w]o=-G /z8喓>b#QU,*!DRFry~of)hD4 X܅vM_eFG(ЀC0 KNm #ECÿ8סm Fmmk#jp΀@B!@?@Z[%Ŕx%](Ώ!dF[t!h!om.kNI`"/-k\h:>xsjZCs;?!X~G]DeUDঽoXWOb$nM{"<<(l4uh"TĹQ{;oסS0@hKàc+1>Vp!ىFu_!68dmAD쥐Vֱ4 J*Tއ0sh`5~BnDS~`(鸇} 5BsqgF8K":؍~,ù?t#׻vp>w|5?6`!o+t.r}b3 QuqMN@O̡Y&9'\H5$;gF,HECѡ͕tI8ݥt^uCU_}CȞ4u Xw3 e)cLl{h )BN9dסM&h4+_ g- EaVv+"A:Yq;` p]32e9zjH}8Km.%7q'ggFc!$UxBhl[rhA(/ĨN)&eEAb 3n??ahG)1 {>I~i?.R!A!&I7SxdANR)F JCư-5.O8Fіaz!\*ue\N ]d4'Ny@[Nt%ɕfHMW>2 p ˄B/wju?}9S0as:V`L qv%L! ^MWhg[4i_d`8}y 09&$y>΄B .6xܦi)_ ~aΉD;ww2k^;%uy73{g8oQv{g+Tp" 1ȁD"9pF0E.H[Å)pa8.\" .Pq )hn?c?}X(Hbk0jC-vt݃}_$̳`pZmOvDV|W 6Q{edkOj7X,ăv5^7dNO1Up"kf7~`񕁓}EeUߛoi3w@`&~ BOW0TNu-γxNYa*yQG% \ ?,f ŢKKHHJn%<]/y.`Q9=pR>u=Yطzyr)1UBhiNص2}f1Ai]1Js@;1w-BGA)}T5ֻ'<qh@  {NO0< 2ܾJoFVp%ό&NxeT[xggStb^dH"+dE.S_ak[R*@jĉXD0޶B2^+n[o>ퟶp RP3̈`V-$cCfv9+w+ElA3:* (cq,|m0H-` ("L`2|,l~Z5,F[: ٍ4$՗+<i-lbޤG'b{F JBV^&Յ= y۠xG:BI% yYC ŷjh-fxeW`t'e&UnE)N7=9 sw3ahdH#0cCӽGK`8λ:TN/(r5!3`p,o>$fx,2S0xc$z/n}&[ ;RYS5J""V_}2C*e6n>T{@gef-J"rzowpo%#皰^ds@E$)e+u[^'53 VUyg:^6)Bk!$ wqk߬o gm򼩀$< rso*82ttEb7$,CTZv^#ݸF LHcWg F[QQuKHZlo= dRoz m0P1u^ )E(7q"ߒ- Lk*J  `@0  ̗`hn0@ Cy Z@ CpF_wy`E,.ZhݼAY;` V>OG0%e(pXǧ˧Boߑ mcF0 bXi  `@0  ʇT*7# `jY0\`6[ţ !op~pz.'͇KKKEN_reǭxeq'ruXAqP|!!S0J0$E0`psqq4 [z:0 0T>B0 +UԬ[8lVUWJ:eVZ=p)d!So .`P[zu/ƹ: -?~vu`p]Zi[jaі=-//=-Pך``PA7EVr%Bbi< E2#eI_C5,Vnfzz/8%ti?T$:wzxPrܭ\/2員ɒw#kNEYW yGHpqC@~fN8clG o(muGȾp2=EbZ΂:n!a|,S2<,!v=Jn]oLSKMg6j?R%k wʕSDg`% Ӛw7|PRK'Z^0%1y[!G*Gڨ-2Jץ]K ȑ|<!GFY{qBYH$a6-% aWWX$II `Zr:aqDZWnqeq\n؆B0Lð|U:nY=Yg*ԟzԳh+4 ?l-0x =u5uN?Ð髧XuVM]Tu;!GFE 2G]X0лpM|'e1e6Ե&" C6^quͫ 1  -:+p0/* γi%7 `W`H_=}d뭻ǤT(GFxp$;|$ {U5V2:cV0SN>`HQz6_\[cbW]M0΄xCX(\-nau<qeѽ'r^ޓ##ߑrh̎`|2|4 /{9C<׊~|*UOaM0 zk6wzrq>`izSA:u6hokyj!o2ibJ@EqWͫsPY_Q0 ||*iŲiǿ-n?n8/^0`0͐p6 ( B0J< |~% C}2m0  4a@0À`< < H& jh< jwR]N L̀9uqp8yk< p\ + < @0 +0 `T*7v0 p"F o-aCR?}΄v;-Zs mܯ=%6n>\ZZ*rʗ+[?np+8P&qW]?骅0kE\0 00UdpG 2ݭws \}2beӴ,CG9 +UҊ[ůbMc 5BcL0fFag ,_v8W`8zRg'kz9̳`U]2Wuxija (td%X*-Կ}/z,+V!O eW& :qe1q2S0gl1glG-lj6o o\WK+  ŐVA0LP0oe4U&'5/=mI>K?eduS725W;J)}*%:XJtJJvD |d,dH`lwH yV^3 yeő5ԭ!X-it"` l[Ԭ[?K-rz_0 ɀ0)yD7_eIMF'??.;%%;Zfm˕DĐ5˅= GC|Y2|$yWǐ'"gHd0- $7+zpx.h`Pk^de'g&TNQ#f 0Bl^0  0,_[V٩ ķ?S~K9 ){߾u7+3͡?!/_yS)W/C%{ڸzk5C$"4Gbܝ=)atVX&3`i|t50K08I!)(:M^uN8W7lla4z|YU}zu@iM[t[rW>mSTyEv6]Z]uVU?V1nTYGYu&"4Gb#֣-I[?+LegP B*BΨ ;}ʥ* GIzd7P+g;C gm9 P"~p,eIWіE{q1UPxPY>]%t22/绦*/W.x p.`(&oe+(VS| 0`iH lm뀟π3 @Q`;/sR0 mU橅iHEq/ :߫_}B||*i g%L9pqc{  2 `Eǧ ``[_0U> w`ˍZ{g/`Si VUw s! @ ₁9 "9 ``H`@0/À`("À` $ 9 9WCy54s K/bH0\[ R[# -a'À`@0 0  U0q0JFY$ `j@0 晼%r<0!op>a'͇KKKEN_re-|uYu`?﫮>a8)T9 $-޵tu+>$ntnY=^-_20W gG 2ݲ}g;e L\4rzK޹ p.`H6Uu `icrmujc``*j G"AFpC^uUBi&”`Hgy`!g;zZҹuR ܂3%`Y3R0Yῇy.ȕ/W#K0`5%˸Œ^u+e}~ tv{)+*`ޡ)8%tiퟷHV]׺V3c:&IO%Iv'3%^}TP*+Q["QobSq:˙ьx㏆rS*0KK,xPM"Kt#&b K$*y1}AB0K0`0g\~Z`Lçv1?"&(teT&jkOjjmDX@޼O:Kw\?Qlvɲ("r%>Svc "eb*w+2Bo\m=[v"T/J'.ҳ۞2%ĨN("%If!+\J2&t?PU%t5cՁ0˙%ި }D{10;)so(X0dÙ  u$_x;ލz߭[!`AT͸A|ugͫ->=)=_0: X$~8f;G 2isOE[YVQ<۱z҇  000󝍔\!`Eϐy u${%>͛0)PS0)!Իyzonބ ե< ~E`H"0$0$:3↢PI sZ\0D?..9ga3֒IܙDqlj 7߾ujYMIkbDgkJ +2I]<E9nW<=z\T7ˡ>{5`!Rs.7Mw oG8/.Zpu3%r'=ޘI}| 0`wn>جgJaf}TO[Ut?`ȼS ݭ3bfJg[uux9XT{ӯ;6%h!oDnz%jOjn]Cqp92;)Hq zp՝\3|D-Эo@K jjOU?Xɷ$L0Ք榄 rR2oI [!fe}N2 B0*;'V pV/m|juY'NJF#yc`!ۛ)  .`SA#pCJԋa"p!x_U5.%rĂaOUmf< 8x À`À`À`À`À`À`À`À {^ ^-4n^ྫI0 3..??os"aã`pRS2J NՂQD0a@0!yx [0-Lh0̸`sظpsii+_leמ֖.,^Y<}Շޑ:L0%`޵Tw]HжdZx~i] vdP|5 .`(e xfJ08;8`Uoߨ<9p(Q`ȼ8ǧ< yj!S0ԽS=to$wZ1lꮅ[]j5 k+S}#|WQ+!}!=&@hpC^uUl`Sَ=c҂AM[UO:jjԆP ۖn?;Y0qT԰#ῇyKȕ/W)`P9~JSMf7 ,Yƥ/dnOm{ᑲkXn9xe}U:Ӭvww_߮'N Gc7޸>̻ f/A$=Y$̔D̋9TmJ|:E*4Tڨ0].~ϵ͚;}x|B&zӖ񺡺h݊b%QU8s *39  4Sw{jdj$ն->' D2 e? YIMz20U?1|͓ydu~jvLQ=;J)a=fTǬID0]W˖ɐJ]q]V<.IfVd2Swd$R5s)Uz^.P ڮ'N֞pZR% Y^x442 H,+Iʯ]7O0&IaWorm쩲p9BoAd&0iID$j-jեjR`j't~ c[fN4f%M6oJd:[waĠ! k]^k)NGL{"%G)UpCRAz^}R;W;)4n(YP hf㇍Ћj(PGB\dta g&$1Q;蟇cn5C aaR4 U:l=2]̏0Yog`"AuxmwNQ-OH$}dQ*~qdL5AOQEJۋaCu.p#nB?)2S--rbPUT`J"\]7BϣCIͭ,,U4O{Ure]1J¿iَ#J;gJRjR2lp#ٛزʥQU! z|CAmRFۻ^6>jǧBy:a7=Z18J^fd lsk qhozt15G`p/O>.v}{/%ܫ=>3?U`eb&=NC0ՔWV*3J2[#R%1>*:Ze'UҊ!J0<屍OMn~8ܸ1 I,3kCZsV `]0f"F0aB0 0$"%P0 pQ$VY0J>|yPL>F8d^.͐|¤G`@0  &[# { I i` }B|54Zhݼa/Am9uq %ykUB bXi9a h̛`hnXTPYO ^3@('` @0  `@0  {# BAΈ`g@ f3%`fA0 `  @0| @  :` @ *@pɥ;C6J - #8MNc   &y3@0!S02<} ` M@0 0  M` '7+UX*JW_7n޶&`ܯ=%6*%FOR0!`A6}qqq˕ǿ<}ﬗJ2y-E>-)7(/,ovγ+&fn6:HpFX6MRȥl&w eXU[ksLaZ`i [jovýfZ0|,d;$vV毦n{6Vh̞`u[.k}K+NOxf2G@PQ]p k---U[UW {xXz՟b_"j=WMw_߮'N`ȳ!o@/cmysqfƫܩ$$_#`fC廊?dN,5{o꽪"1keH hWuCA+`HV-=_VMҬY)oN ]q; udG?7m! ݊e$][̌ӹ?k߬ܞqK'\ jyׅt/H+,[Tޟ^ ]K*??v^2zHXT6^ՆQjfA0]rZk+jtῇퟷKOSN͓!(D 5YaP DQ㯠dP@nUFg﷽7+f_]Jse]fWd:HzfY*}xdaeV/ W3αx)2s/YocjsA|WQ=)nC[mS?l*m68~~ C0b6Wv` QGm1ZE?ATM>_Ip|!l !r4:MnuSiw-PUw7 tfU\:KfocΠr{;xFLyϒb `8~9΋y^)=_ʝ?%ZUPj9|j\~V?؇E@0Y~2[ܭWu]N ?RP0 5 ŏ1K*)"]YퟶmWf23nP5nz̙ HF{۲v-gx{O0< Nv6W P nKNje` B]~PJq!mI -fI% ]~ @YST޸qk?^GfYb?$!ryU©5 K$-W3{Cx `z7IsԽ֍ӭv/ŭY}`ӝg;y]ߘ۲`͊go=i$}\zyy83qCX pA}*U-u/nTG0yq}Oog_0tR#6;]iu飝?ᢙ`|v#(\?[rNd0K|J x `hnlPRͩZ/*w+B5ihmNL0kuk)ap&/vj2]Ve/^@mZSG/ͫw+ ~zz:%Dp&`P6/ũ22ʽ|Xޫ  ONv]ڶ=GWԥMnnKQXnQǸ*@0l)tTt-* 0mPkFL`8,2VI_P0(޷\]VzlXnrPupnظ#o]ǿ ((zt)gy,;{r8+!"Όy%鏆$jhבl7n.AMa-" Z` $j93..M(b4;3"AqF#0 ;!?" }:s^缏  0`P8A&`NrJ/.T ! j!INE# `>LV04^7dar `kP S `@0 ` `޶~#O^E>[0w΋yks 6# S ǟ y!O3XU<J;Ņf8G@k3A`j5Q AI%Cq ,*slm  Ls`"XP\ @0[y c(Vc綸  y`6`8qZɍ7k' `@a~eIM7}`+Rdat#pp8EFg rOm{Kܭ,},*o><`ZwQo'#q^(|Ӷ{1`VJ50jrwAvgW|shK[ *O޵ʬ3jKC[C-'`pQ?)=J%U-kY)fz_Wc#uw;[8{uyTne]U$}9L[08#z$[Bϟ`P"v?o>0<0٠qm˩;vlI3& F'_0d>>0jZfmyyYi 7*3+@5G \܀`CB0Z 5kY+{֏[턙daLzR90y:яb(?ᵁyL[0LðrmU9Qj.ZYvS(,h?6n.--[ڿRo?m0hBL͉<ζōN˸JfC]ۅ]pqC0ZNC; w]7`aFXm}w/ jvWoR 5 hYSuWD‘S ^rr^kY {>U Y^^ +Ͱ`S1^?S V o'"\!|SJջU%/Wlkk훵ޫÌ fP0 #dLz| -aW% cH( g:C37oCo21mvrۨHl2j]mpTO0QYRSM^)D:^l=A6eE~ne\9X&~U$}:^ڍ g ԨĘA} u;tjQ7, _`F 2csk%:;OGnN7؄قgL/ށ%=YyYZEm..:W!pfg'*FsPT[j=-d;ퟶm>ViZv-ka :Fv }?6(N>3Z8 ]Mŕ2 :;PYN'"`axݐ_W}Rnr|u9O0LW0<bËȏγhZdJ ċ2$!2 pCbBb>4YdϮ!oD0LJ*ŜiW8ؖ) ݂00S0$:< ?mˌJ!{e8q>ZU`HYh+jk0P0;sԞ΋#z~(afä뽦6ޙwV_~,L_0LðFruZBDUW:![0tݤ(&Rcu`Õœ7#+8I}eV5͗׫ɼtb\}'T&r 5hQgM]*Wմ9!d-1Wa*3(&X譋|:?6α{g1fB~K)ۮ?Ð/2㙺ᕛ`0ϼ]EUt3ko{ڸze]W5bQ-H->-|e@X]tZI$Hvp}U *LdHj0i~64zvd}_ nˣ-ug이5gK0L| ]pRzof0gI&6t tmf@ϴ;8woG!˥dd+w++)/ma*.g=^U'qDzOj'W3VF#8 H( E-({U_8_W4hJ/0G"&=b>avf,;׷s|H@o!aƵR+.Qe|N-^\''N>[=ywbwaeÔB0p=_J9[phvF?~ xG0NԂ9< \0aS paCL0|:|  `V8p`@0\;Ui<`qІb5vn `@0  l׾:i~[9# ۖ!f.'~ع-0LI3O(Ԍ,f L0q;ŅZb @0 `@0&"@ BZ0@ d _oP@ t0r!3*t!Ѧendstream endobj 50 0 obj << /Font << /F8 12 0 R /F32 32 0 R /F31 23 0 R /F17 6 0 R >> /XObject << /Im3 49 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 56 0 obj << /Length 2735 /Filter /FlateDecode >> stream xڽksv&`,Ie!MNZ㩔O'#`I}E-n]"P}]{ky'BV&k;ۺ,nV/[]"LxE:%=_ʍ"&:uXA*Z;ݽgKwU{Y,|5SRWykjo,ׇF~K8zS}/^^Pl`v gme9tHE.u[%Bb 1#{yC/]ւa#4@g9!9'-7ӨImS lV.vxAV(F3 L/PD>6vP=3[A9ufK$V7wƺn{5GB-ĉQvtdU/i͟IKۿ5SyԂ @|ƻ.Z|e02_d&x1r?]*I_~_R0m4B;6X 8$"?.'Ɵp3kbUy? )gl5[ݶ%CթsmcMg{)I'.Aj:lQeIN~WT;ΚP܉)Z‘QfM@0 qfifz 7vJټ6 CT`mzo (@6yB7]*&*lX/ԍױ0xYύwԏ>a1`X[:ZUj($ja30FGQ&ˀCV4 `Hn5;`B+C0=$frp~2X-E iq0VS7 x]yKpCIbNU*aXt?cV+1jE|I8;d6B598TXR,\w /D([QJԀzLV CpUIaoY Ӈ\75=zzp!e/ !~qVx33\lqĘP}%\Wzp]ʗ 2k,yADbPXbb,R`&'1A䂇(5!Eȹ'샸Ȃ>ԭ8&,\yb󃰪_.TN9CW>AVfU.>*]SeQ`@t'uH ',)g*F'XثȻ:t0Vs#ssSttp雬.H8(phA$KA=)/zB n^v\_=)JJ hP3 AI Ӷ 5-' ZP;p5 h/Y~ݶ"9M09f JQUI4B] |y: MKKC1N;q \ H:`9vos9ڍ sH wW &i:+w GR؞z?>PV#1jrA-)iFBCX^v|5Mdzde1~׃e/*pdi<(qC?qdr#eƿǔ)dM*9Z,q<ۍ9ԭG݋MK75vnq[2ߖ,e'~_y_mUՕM&izBHy1.Y8gE>-.J&UTG:^heLI) {g2!9}l#k i$č^ORQPEnX9̹pl)<}S> "*᩶BTmms%2j3Tv%o$c N6-8sW` pZ}i!kanWz-֥ajٺ-~mYq@9y0;`5[Tmp؞9ql%c@$`Z yVj۾辋Lzμ')Á޾z/A7c\Źsr8a) K͢>ا5ݜkV=JhuB)> endobj 54 0 obj << /Font << /F32 32 0 R /F8 12 0 R /F31 23 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 59 0 obj << /Length 2848 /Filter /FlateDecode >> stream xڕYvF+Ą4=m%v99$ Ieŋ[ d6bU[Z}U.R7TtqHF^|{녾q7kߓJ8-ۦo^~.jv+,Ųv_!׷4m|EUd]_ {^ Z+(ĔrXLh~+]ූ($R#Wa_~YNAGޭA9[/ZY%ǖ>]QҗPȆ*u>-O:خʥ cDuDG٦rSgUuZX(jif>tܽƌֶY KK3c';I*ܺCtC#9Ͱp_!5rVdJtQUHOg//*6C`ײJs8Z+`Vod=CxȡC?+cN(z!9ZGv~Ƽ*D"wO}3`>8x`-;ӚC<~V:]|of݂E5{N h_'v'"e%0Z c?|S90T91؍;Ƃ~zd׀<PŸ L0ѧi*Hf[ /S:)Pȳ#͗!ݣTGYAB߉Ipp}(gam-xzD /pع+{j9tWY_|Յ( /֡vn(:.hM+qvWx/TN.m.p8n_ILIkVUrh !1ؤOX:Ҽ힦F+V D;!܍đ>/tK_]Y |)r_V ڀq͑؈hcW22O4[%ucF3`c$Pw^ܼƆ\ࠞOWӘ%8KG=EG|2[v5 dfۢ6E˰Ӯ 33>x:m2ab37^6X| Qg 䣬7noC*\wf ⏎ 5yZ꼙8zMf8dEϓA ~l7ȍnh&K HPߘc| "atH̳*,]n ǮmnP)X #U#dxF/°l/rG;iYW"aChFgz1#4CךTmYۋ8kƎ/X:} zAK9Ca"jOF!2+i6gw0:>HtWnpt@>g$| mBI?yAHuYe@;R^Hw@b4KqN--B59P-mJvWi|73O+8cJ1)Y,mO'ns8ڴ ]Ds`d:jat)ڸ UA#c+ - RUZtb|{*ֲzG"ّcq2azLEM 4 gn}bvTCompb3>/u k = 3OjnZ,м0\VH4Ҿ/W-u mCs.EZ "TyެA~ԭbddJ܆JsG޼~U,d޷+ |ԸF?OtL۱$wI xD i{;aHyH]Y_ 6irE /D!!c% ޔ@NKWxw'.C\0,&9:,:Fxv·jκ0b+9\_M-Ff :u&g x-'LJzoЛ٪\' uYQ8FZR}R6 M}'EQr|_=5Tj1[f)YKE!c˹Ruo~M3lɫi Q7ԙmy_Bb% xٱSO4_{ZٳFiJw_?*'db!NEhcDkA!GCc|5HqE#Usn/NȠ7וYQ?u4RS"bDBT?Z[a|&; UεE+"#ӾqQ)iA\f`"A<>OEߠË)zĵ9Rzj|Aoz$IJd<6 &5Ji> endobj 57 0 obj << /Font << /F32 32 0 R /F17 6 0 R /F8 12 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 47 0 obj << /Length1 1979 /Length2 11459 /Length3 532 /Length 12568 /Filter /FlateDecode >> stream xUXͶ[@n 4XCn %,oε&Y?h_NG[FKCbRxppD< rP qzD<""<O;/7GP_P q=r,L8`k @ara tB _N@': w dÉ[{@v` T\l!m<]{ uIa, `Ҁ@07⊞NN@I0_ ή (@b渚l{Tqs]+}@6Z`k{2;/.eCli.zYbg5 psrs&~/b ΃ }1`F|8] Gl!Pvv:Sw X9 rBA.N [*U)ƃ$W'O, |}]A.%AS 6%!" A!{x? =졠fm!L ;lS0Yw_01߱)"< UA50?'0?.г @`}&3D &+>,Y`k3Ԟ LE ):GG61eUG{㥧"O9D}t{y.%>WpmA":gŒt>Udd|ijŲ'FT#jJyazIq3ͥ`,aV|!dcͅxt|^d㹟wQ@:87>&H1l?hqx⊘_v:ǩIt&N[_@~=تxŅqIrXu5'ۨg͖qgUsF[\ lVGvӉIbq3L4B>>v)Mʀk2gu{ʽ}飼nu &bY׷Py#5;w)R[atlIDj k$^+Q@&-9aP_7~K sDZpH~=:,p{Uy8sL'bG3:28`'kh\@_a)T:Qx)*[H!QH /b[՞n I{,3cGIG-rJ Qt!qChZՌ%:h&t߆1 ~D%m-'x;M%Hpa; ky 􌴴̛X.@ZpԵŚ57D[D+J.tELf(L9>YcHYHǹMFmYqlVC=RjqޡkKcy-&.S՗#a|1DžnxwM1lM+9A+xcfSŋ#U_^6## 3le{fFzy L~GNM`< .(|az~)}$G{]L EǞGZ|Ac'k=ՙ&G(5aC";~kOtFMIz?=ˑ>SP󤚺I>@Le, Py<%^I눣 VlKijo*{e뾎dvU\H192B\cӳDc;EM]&hߒ߶קWXjWA%c:'p䛩x5&/=wj-[5/#opk_x.s=moaa~EYϬp8_ȍ-^ĉ + T4pj 7KIɥ,;i~_/"4?G}&f"g3O\vLH9WUbST^ߠ%3U JFqqIk(9\|1.hPZܚKRHEל}g׺__l/:5H9`;FkK@{ w2mi}u9g $}yt{ʗ4۠4q1qaL1J,M|ϬZnǧ,033S׆-li L<ybAN5`^ҖXW@ZF>PVQᆹH7sQ%z`95>>4}#JYȧmd[V|܃gkrZJwgHqEHפֿI%lF2յºws/wْZhm(*'c:,龜K1M_GoLb)fG=`yǺ}&f1M OtG;u؟!#]诘[[*WێI8GDog9QLp/&…XZL˲/[woj)sݏڧ6h_):&S:5g 8}L_bQMeJ܌f+ҽXWl/#o%3㶏rg[!<`CnA[c+2z5 C@m gDNqD[K^=sG<=$W4i>E֕n&ڹKMX`cAU>в%; ;gv{(~On5 j)@ p@ڒ>}sˊejoOiuml!l_9)^w_ЭFRl :K;d?HȞL2.gad}5 8#a=^G+AL"37/2⯘(-CCᴒ66p9)I\A!yLYc&{kelqcٱɶ'88:8b^[~ZHTh#FfoG¾ib,JH7iHH2~5}{S77NB^WFp]F+';?Tk;yq /Eɹ#t6"[D9Q{ |J"k"2,q3=3-g"3*F|kÐWQЦJd^KI^7ZPiոRաk#8Q1aVGQDDpY4"|#}^ ߜ+ʯK%տgի{0V aedMK9uPWPR{"ȒboЮH@Ow@ yjWqr^2Lr1Ɖ7/zd~ ~ QVas}ȋMegl6:+1š}lV RYߴ3QƒӺw=qJΝ 1վ_gomBg }a;!\ŰQSI*G9k4T'2@eWSJȷټpPmFdU>$.-LSQsrd5ku\]vq) > كiA%YU3 1Sz(woEw۽すQ*SI&yJCTChE & `ygR0b >c9]"Y?dpt~}ŽQIȮtMi;ˍ.;/E @+79.7t"g^e r%7?w_*w9puL.bE70r` 0:Zkѭ#j bQ0~\ > "h~{s17wR"c=y#5V]ɴ +>D„/~wO"}d]V^0 6WUil ]CP_nϑTW^Wz#wXUc);'2}7ڊwcD/Y EYHxEW zl\Av1Tqf ЛTw𓚹iݸڿ?OE Ns1a̴4.\P7;K38˜ibs1v/ ^f:^,B|&tӲ̯M:svN3CQ]UZ%R%D8dgPӎ]wnT‹4oTyK_chd渔[ thw@5zy+%E|otz`j#Qޞ\rXq=Q >'zVZg/ם=+r%k/ 谗}XGi"&E'^Jۧ*>0*N=Ev;*DӬi izt;qE" uK%V41ɑoCly(E9'3TS-ch_([n%N18vRf/a9۾b0Ae g|pEWܸT35LP1mٚ+0wЬ|G ]W9-'m$n{Kq.e}4kuߓX~X5NJ HEu!ôukM/}"Ue˽A7aV\l2x s6Wh'ґ >_9)N#x_xtX7@˱MޯM'$ RgA>2fIXU俒7`|0%|Ec67c(4 l`c|l֞qc`!F|89nW{\#QȆߍG=! ܁[!]qj`!CV`O5H#9?X,l+ߜ+~N"O#eRcڳ^|Wiu}]E9Νo/{TxԬ鄤`.j2Ʀ3HQܩM @$"t1A#M!68 L/f?Уn:KTYDx@秈p:1~)'[|O=-zQѝu.V+q1B1?6fN5ʕHYVfgw |L7.,J7W ;MƅYW_o U"[vJ*㒊q2]ݾ $#KCNPKs8/51I\q,%/p$MI L rVUΗ $q1Yv.HWM8dR)|_t*=SOdsCco@Jȇi <1syV!+ĮW~Z~CB+2#582X I.6ѓζXr ][ԫ(`%NTD4.>K>o7eL%~FW[,cmҖ͏!XocgҀdޯ?)jcA]S( mJ|6CcsncU+SO828ۓlY2:NmWYqh3~ faѦ0YRf̮r,'|7gp ajyu*\)VY U-}68qiYZ$MdH=5sT+5d81]X#AqzUZEjxy f8!,Fo7<,ij,[J1fN] Ǽ7J΢ɘ +8f;D@i~{ zi1SG τq_~Nav o+郴l3Q{wkD}8a!F֨=`}RB(YxtfUBKs t;fF(ۓP9ШmG1Y.[EjYݻ SI+䗳VR ]GHu o)1.D:-`K1U C< xMD߽r4 9_'Y{=UrMVDvw#.-$=p$SޝLhk`0Ft00NP<}כM\4DŪGS9w;VLvx$Dk>zȃ1OþRMCfkU̚:-I/P2Wwd͛QҤ^Tb۰͊O:0%rPuvswg 0#+|egxM6?j9yT;Ƚ3%п^y24o^;BsUu%VއVɯ !&m(?qj="-WF&P''oiu[\v)Ǹ׌ٻSosM|8>L&B 0(0q353s>}M_M2 bK4z*mg7}ez rI1"vjQAiAσ.M&/b?%ԻX@[+U85F̀g9ZQ*I$5vUu.جÉ6ICX76=$_ccGce\c`4K3\?*l)Rk{:t#s]"oVlg7 2ohQulos=p Z=%o~{g %bJD MM=舐~va[N^O$4P gŗ$۪}f*{,+] "1E;{?R:E[ޓ.vq8(w#- ]]IfI:ݏN7{,.{dr!tɺwXhHj|>ӀBb﫠[̍yRx?PVW-CRhp s\A,M$uO= CG" P]Oi/wfBflАm$Cŗ$1[1η=/RUxbco>2"V YVa/} C ~~|K yͦӤqDc >M& ;rx(l^k4ѢF:Pc~.;j7M|N( _t:ͻXW.LV7RH6񗚢ƚ Q@s:ń(p GH>hpeK_ݶMX\HJHKxX'S l5/u ϠR{JNT}Α/i3k%#FOj%e_nSs~!t0ŧKHZ/NՆg$΂~B5aྀKg4AD~EI"<]cߕ]f]z5,3ʟhZAD2ѵ `${Ndg=F@4Cu5+佘Pcpe< 8k*[(>?#I/|jj9Ius%.{sRp+Q6o霪He" Ţ:ׄc Kxm  LjOυ YcU}f*ƾxQ_ӓ4zeqf_:S1KSG/^R tC=}xBhZ!:a:}~ǠX+SGiVwyr>R,ޙ3Rt^/ugbPl ފAݮK|2_c\ib2sf֋"`w癹[XaY|k!!ߣ2=+ʸCqK,i`ׯyRvp숻!?m*VIcSxJ򐸼>_͝ j.n8ʢq.QsF8%ՌhE2(;qvqvM^BTEj1/jrҝ|odUӮsVG=a/7VYNG+ڦ }S޴A?=5vGa5%1O|GQppzR)?uvʜ.'63L[#kגc"SYw / G%47ғ.E*+xؙWÙ`zC9&J.g]`yN(gkx̰kpNvaJ ~uLz(IrrBs8{݄ ^Ibj3VYL}?ْ v%,CQokAN"e5јvzX3}~T %R *T#>$O,d٦}}b}\%xvpzJ> Gm=7$So)&YZ*VhΡReF4xs WK9v(pUg;AF$U.&RW!{8qSMA`(A L]uX52K#g?ɥSNU&]~LS!>BWV`5CT_tn[v.H77]6OKû|DSp=:)f󨦖K 2_?(LmO>;kt;K1K=ُp(Gor):ny(9A;+Hr&6i`0am]?U*gf\$ELᚡ7z1[2ЧJ=(Di>᪦ ~jSc$xt##^ex JdQ.NL{bM?AB=90ӂ`wٞԉSҥ혡ƥ՗ ɘ0l8]ي/N$(_u5 Dz00(Ąix'5@CdM#۱(9[rLTܪHFzcD!@qQlJhu;%}VXssbFGMc_99x@>,*Ĵ;0e`=anDL</ EH@JHo;/8!;)"ʀ>*!8~+j6G;NEt.})7 YAXm5ūP¼9|EZ+N i&?j_,fuNa%c/]fزs[.ٻ,jEkWY@ݮY=TVdlVtw{U7d..ٜF rJu՛ᤘJ )9b<"9?.GԼh;1#R/^ W⭡7ff c,TD@g7꿳:L{MJ9]zjO¸d%3Fv> qqdceЁFuX^#E׹5Ϩ3vTx]ݬ [S-C>l;fdm cߦ[k_rȣ|^6(*Qd0QR4Z 03?Gdk+_" -Z/ScsoXZI񸹋e`?l; !R.ApZ2jz#Sa?WV=u%ƚN'O~HHtnaY*9rS+'KB sS Л,i|r+Cʶbc&6J$V7ꇺ= .ҬVD?|p.vݔtoQRP{W|Tj;,n̂D>Z!@g4!6 >rx093ʮoPǩ{Boc/> endobj 46 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName /HWWYVW+CMTT9 /ItalicAngle 0 /StemV 74 /XHeight 431 /FontBBox [-6 -233 542 698] /Flags 4 /CharSet (/exclam/quotedbl/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/nine/colon/semicolon/less/equal/greater/A/B/C/D/E/F/G/H/I/L/M/N/O/P/Q/R/S/T/U/V/W/Y/Z/bracketleft/bracketright/asciicircum/underscore/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/y/z/bar/asciitilde) /FontFile 47 0 R >> endobj 61 0 obj [525 525 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 0 0 525 525 525 525 525 525 525 525 525 0 0 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 0 525 525 525 0 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 0 525 0 525 ] endobj 60 0 obj << /Type /Encoding /Differences [ 0 /.notdef 33/exclam/quotedbl 35/.notdef 40/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven 56/.notdef 57/nine/colon/semicolon/less/equal/greater 63/.notdef 65/A/B/C/D/E/F/G/H/I 74/.notdef 76/L/M/N/O/P/Q/R/S/T/U/V/W 88/.notdef 89/Y/Z/bracketleft 92/.notdef 93/bracketright/asciicircum/underscore 96/.notdef 97/a/b/c/d/e/f/g/h/i 106/.notdef 107/k/l/m/n/o/p/q/r/s/t/u/v/w 120/.notdef 121/y/z 123/.notdef 124/bar 125/.notdef 126/asciitilde 127/.notdef] >> endobj 31 0 obj << /Length1 2137 /Length2 13719 /Length3 532 /Length 14901 /Filter /FlateDecode >> stream xUX]ͶhC ݝN!=w-Wy~xQkTQ)1;%]XYxb ,FffQ$JJ1g+ qtrXyYH1G/gkK+W?"v@gk3{ `f tb@p]@sF$+him􏓌n3tvKIK;؃@ $&Ep6 hb5nbg vn@g9OʸD-A@]$=֮fVWg7@{ܿ DET6wUrapy=z'?L 0qv6Bo0q|X@O,h ~/韎 b099MA&{7;:oi' `2wLL&v&Oh -\DY;_aV.Y MAn.`O3;;? ;Xb db'V:; fǟq3`e ?eZX5n,t@&jo? r!('XtS,N1OG9Ɩ/?Ҝ`'?C`?C` 8gC\$?.8gWCJ&npv?ήU8G]4E^|83x=?w98tv1spbsm<7C770 `,BpB_V N!X *,/[9`+ǿllB_`+Ͽlv,[|Y[Z%!*``\l,ܜ'.e?la @O✃_MjchDD9,-eSb}trB$xXΉvN"mvKd'Qɳ]w ڗ ^;wAGm3JSkʒt )SA Җi}d#SHs* g[HJY Ch[phwz,@ .*U4giF ,{U_a5ڀQ_DiYݓ^5jv5Z1hJ;J7(O ?u_! s+Ta]$Z"q$t -L*F,7DҀ2idrU˥x1'DZX5l] o8 sǎ=WyGO$~#ٷ"6(fTjEC ܹd^9)ʒЪ=-;Q1˧d;#=aL;Bo9{p9/ %x)=<KYFo$0yA>E흵8&ux.xpXGe߽HųvIa&S r-nk+As<:@#l:i${/rwl?9\dqL{0gdg v&۬˱ϳhZJxwo= ASH0 p%-zu2DBH *pNS=35vWzgzry7V^STڛ`&Tw+Qw#sg^hRmoȾ$ WRs}e࢏3'Fm}MCq>hl]Oo~uD9}}0Ɗʩzpjz~RB6%4އ,g4U鿓8Qqri\FW6rùQ4?A}tpNu\v]*\ayrŶS8m&?wKB>uH cCZ}ꀏh}}f2R}6(`#T^sYqkq}ẟԕ?fgV.N]xc{,`TCެLv9i.VVs*cF(ɧ0MJp@EY.M Yzø:o(~9(1|y U7PA7k 4݂#jIC)|J^]Dh}lM^8a545u3U6rDInPҝHXFa(|i3ϡwԖIZ/DV7(VW/vm~R$ Ԍ GZG½KHwf; (JT Ja%?oе)lR4BOQϢU ,9EɊi>@2L(,42a$o- ރXݺ(Yo["tY&/zĽڷepyA y kkʨ,p2~Ul`N !)嚽cBvZ5-95rK/jn<%ct3(:^M GYXt-sur.㾯5MYJfj츝^JK|j*&,PEއr8;pP0F4CvT0'HE.bHޒN3`k[ɤC]I*PQ u|K>NTb-"6nv;DbE|'PwJ/b:b`Y|%ި&y(Ѿ53ۘB&" É1d7Hs JJQ 8h!(և.U-zz`>\p2-?DnLLQnvP&ʚ|1=9f8'!>\/VK~_6{K8{:vFP2|"l 8dl.c-3py;BS8!^܇x)U@بhqaV2-S9!j#kh փT= 4u2D/׽5+)z LIxu lDOQT٧'TEV"츕7~a W{$`̂-ow# s!(5rݕL#(G'(ͧBa|M=늘EH$jξ ^꒣# EUck0Q};Dܖi&V5<]R\e=kXbNĦCWRKqѨVmЌY.S7rMLM_".-qu X&kfK Ͼa9>PU9oڬcBZ|N`9j%^hڂi1*]e`wa-*~I|CC k@#7TB(D9{-&~W:x+ =J12)$5&bÙyX91U w(=$V@.-jvÌ{H}ˎN29 kv/n s/@vёs0~fm/A^8Ұ<G1H*QWJN&ȓf7n*+qQL`fg OJ ӵFd=1/|}[9 JW|8v_WC 0ncWC9-pŗ첿*2azwhC"̛j R^ƺSgJ]KWC֝fpA˴gUxSVzݒn.Ih3]C(~-;iO@8a/a7Z| .i*Ù@Ms% [0_iƙq_G7-t hNzw/@cD0&{P$ߦg0oBR/6|StO;kp4m>X/4ȐN Ě,~UlwfZfK\=d2挨f' %0JrbpVB9. ]!_+.[B*RWJGÓv?`D@+Q nOo?ᤓq+y!.{)Z@2'v4CJ+ ~0/۔SAf5Ú1,/}c0y 9|kP/c"I+PvRL'93Whi:}Z'g\W# j@{pz#O93|iyO!k}nhVQ>UWGVIF޿f]w0HA}R5MH[m{_#bا0B[7ud8)AXGB_;/#ɰ UA [ #]e&x9^Y)QrZY+;ų~(%ĊV ]p,9h|-<ǎf;^ ;#^o&s"0Ո[%O#aQ'v%IyhG+ryY.colx/UGTy[GoG֮)vwYG!}3ӓ&=9XP/QP+hL U: QoӮg c/L dRhk( Dp>\AP`,8b\U~? Tc^=`21l-xE r[w uC(ANCow!FS+=Ң.I.LEd*JG!``߯|GCOr H7Z{,<>7}w{  fF}M OM7 #R 6}]Ժ M)hdWYy`7Q|À8!C;_V C%FI8:EYkZڑ =`gC? >83WRGZŜbBnz/,pPb-Bۮ;f9zXfM&uTe}U9\ʾYYW={J{YX\eٻ. .#+/s >JoO쟷,1v>`#:TPpQ)w:&XbO>Rpitd'Yp>>-lN፶/}>Z44;8Qz ~OyHtt[Ju ,Kwv-ەGIOҗ *sFڒg-w1lfaF KfZ;40~^O'0"/&թEy)#M_%XQ10;m$o7td>9 HiCCd@M 8,54 ao(2/ޞh=T6M態Dj^'Buo wb*Ly+PԒH Pil1NMͧ?+#skcT~ȐYaaPksP%E#d*l I⵨jWRDmLxӁ@^{k- !S4cjFUbUE"9LۯKYWg&Gk03bi6Vue[ݖ”3x_ͶG Ds9 -wfAgc?kjQ3< ]һp-7bXB&}zӥwE¥{kbYlKaApt82 "#5COCȅ[ClD(Ke@7_}X};8Uɐ2Tփ@HZ(_.\qL3{ 7XWZg&~ѹ*|⇪$sN4f'wU8c~)}ДgYGWn %U"ts%뛸HLl z.6K'C*6ȍWeI~/Vs]tGw(Rsl<<֧wL}t<Ò;"2o1+e:C0LӪLƂbS!0bs y\lK"1TrM: [@!-'4Zº[JY{mQ0{sr L}<'L1>u,{#i`˳8fBba0vA8Ty{OLEobZ t/4}/jeȢ*M@مfuhJ=Yn^8Ž0l sB'UVʸP~ CnlX:[H<ۥBB}tcT*h_hEU\(LCqZ9Bݿ,] KhHUqMmF|cldbV!|C t=H3dx&, *C|̲{ҕȗCM*xGBt=n;}TM=\ddg{:MU[ x<ؗKP<-b~Ύ#G1kdo14a摗<F>~q)2w${ XEc LhOQmNBr0R{G_B)ivAĸSFp~ᛗf9yB{(Cؼּn#;q2tS]dyXn#4KP\"*ym yP•" B::pU``xŎ!~~]n^)@ 6M]3;O8Q_W5Ȯ(Xu1T;`=\صwjk+XdhjBj6‹曭OUP!?' 9LR{VFd^Jwy$Ve m~m:Yah~pqaL(OiӍ=uX-nYopCXJ V~Ŀ@ń®ܤgZRa.q}i 4)i\Ś98Ri [ZYI&O(.Lډlcg}Efk.!DWjj=Sb-DIM^z9]|b1^z^758[h꓍DT ||RnѸ^{/fj sS4_@&zmbKćFZj!Vv˸ =(^0DS3A50)'yL aGd%m>%e b~ԙD:>}iUDRdiV:q!8]t5n4KqǺuVH${3a,׍kRӆy>|%Ho/YdT _vQϟnhX: s=&>mp˜X4aG!u%}k ubWİU%? J1=p'#Y|Ņ{#$*pp`7L`v덆pɵ\A2v? 7sa"B{ݒv$03f(MU\9e y$A,q<2Iz, )9'WqN.PZ0Bѫ| Oۯl]7c\a7,LzMOqn7[,$D=mStq)\^/"pZz~I>k93`߬=ZiiirK~Nyq?*߇ڐ ҟ-C2w&'6e2ڻ%8K5`&G4VkyClI>ᎽCt !~c Qkffu+XCF8JtJN:vp3gIP8EO1<)kV)C(*b:~gw"vl'Nvh Vhc}x+,5BM˦6:2-X[6{36DvҢeh~RSIߎ<e;86PXrȜk(oAAJ3DQQz ]Z*c^؋f5E k ;^,>3UJs3T" $2ut,Ytg<ڠsCXn+Wqr+mG{78|76רX)rrg))L_X#2J ~|sm~})m=㓴CB ic~-x6}0r5y)_IEF]ou;"r{Ӆ Z>܍zɱ.zj`RT[Gt&t|JFkc<җgx?wwM|}upد&()d CR"z@w8N}x&qu{ 屷0Ff9D^* Wڬo{k(-hga^_$DxuC~:!g:Qbax3 D.!3ִ|dYbcm+lF"}O9ɉ 05"8eBk{b}YCo_O1[!f\_MՌ)^Ek\?xn0+炨P{"ݞE oE It?& ] X= |8aյK{q QáLWʑg=HMJ!X{:"Z  jz~/F:Dml`m%uߏ ō6 qsmL]?rBh4uĦ&"I?BdBۦ\Mdb`p W'F;AG`WOrD/{&Gk *͐U޽Mpg,'΄yUǖ"S'Ut*TS~ s=xG+`}C5ĨIozJ~Z@*) p\tg3ӤUYK4!fGL  ڴQ$j%U㸂GiDS=;K;67Q`n?Kl=zE,3tfKCkIJD7c_8Zg ~kBZ9,r%НĆ64ER:_`P6 z ,JAtK,]|#0. b4AqQNYKrdYaG; =tS&w:N[GA5\H8%scD˄NJf֐-˵vY|*$סeKm@zeLIdhN_l~u.ekq_R4!j[qOJkgM~rP&ωn;yr'tPp;޾ěݴ-wS% xx$.F']|=})y8~Zq.r+bTtH#SE[5fKM`4x$EDYg׏+ ­;+tXkį}qr&OlrPrT)[hd\FWIvoތc88нW{̾rpl%i6 sRա(jmWKe6$ bveJ@974&2i0hX{>l>k"zbE4n%MKB[&ڼLxl0.v+E (Zx͌K `|%fתTՍd 0]omݣTvp2X6N&tJK+&α.s\NMA*[0|:2-dU3Km"Ӓ1ɶ;r<Vq*]6DŒd*^eB7֠ bpThK(ӷF iL^hY v=8880~H1zHAMw{/h~O!b꾥T6 =sI51ƙ'mX V"'0M]Lm^endstream endobj 32 0 obj << /Type /Font /Subtype /Type1 /Encoding 62 0 R /FirstChar 33 /LastChar 126 /Widths 63 0 R /BaseFont /STKKBA+CMTT10 /FontDescriptor 30 0 R >> endobj 30 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName /STKKBA+CMTT10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-4 -235 731 800] /Flags 4 /CharSet (/exclam/quotedbl/numbersign/dollar/ampersand/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/bracketleft/backslash/bracketright/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde) /FontFile 31 0 R >> endobj 63 0 obj [525 525 525 525 0 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] endobj 62 0 obj << /Type /Encoding /Differences [ 0 /.notdef 33/exclam/quotedbl/numbersign/dollar 37/.notdef 38/ampersand 39/.notdef 40/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater 63/.notdef 65/A/B/C/D/E/F/G/H/I 74/.notdef 75/K/L/M/N/O/P/Q/R/S/T/U/V 87/.notdef 91/bracketleft/backslash/bracketright 94/.notdef 95/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 127/.notdef] >> endobj 28 0 obj << /Length1 836 /Length2 1151 /Length3 532 /Length 1757 /Filter /FlateDecode >> stream xRYXSKJ1"! -T0 e(!$I΁@+ˤB/mmLEDU h:>t׿׷ֶ0u( Ǥ,: xXL3IQ󄤈`q,/,8Nc*+s$p#ʇ0шD 磈TNn"!!Ne 1h&% Ǿj% H)1ɷRC^"/$?`x)B# Rx)$BnP[=iJPR~4@" 2#P i߼w8oO7!n"=_^פK*L:"~u\:(&lG$?@ "#3.%Қ \LXdޡ2?q=`EH$,AI!5 3n;.Kes-בb9!/D~UՋӷܾMt{}ՒB Q8%hPZv_nLFsQwT_<C3z<-3osZB7tj&dQ?o> s/kz׫:GubE+ub2 J{U~KGt%L6/v2O!CwhRo;m/"OQ Y-C}_]+GSZz7u'JotOh@85 ÂIMCd6c;6\ ʲm&{Nh:g 2-^ }ϣjz#h%Є+tk¥_[1҈hkT]o5^m-oj&v=ciӺd&,j&$w7ʏi;pɼ['9פIk+tյ1wpd vCSނs7r}Gf*#-SiW\sZ&o@ϘrDZUׅ.rLp$.ȪM!8aVJ:uweh٬,k>@ĪSjq.V_+)}>{j"Lӂ 5h 6:^=>aٹo>oAuz.9k&݅(+FxC*J@O"SC4sx7Mݒ Gw8~ӣaak;r?\!!C{endstream endobj 29 0 obj << /Type /Font /Subtype /Type1 /Encoding 64 0 R /FirstChar 0 /LastChar 112 /Widths 65 0 R /BaseFont /KZMTLQ+CMSY10 /FontDescriptor 27 0 R >> endobj 27 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /KZMTLQ+CMSY10 /ItalicAngle -14.035 /StemV 85 /XHeight 431 /FontBBox [-29 -960 1116 775] /Flags 4 /CharSet (/minus/asteriskmath/openbullet/similar/radical) /FontFile 28 0 R >> endobj 65 0 obj [778 0 0 500 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 0 0 0 0 778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 833 ] endobj 64 0 obj << /Type /Encoding /Differences [ 0 /minus 1/.notdef 3/asteriskmath 4/.notdef 14/openbullet 15/.notdef 24/similar 25/.notdef 112/radical 113/.notdef] >> endobj 25 0 obj << /Length1 834 /Length2 1825 /Length3 532 /Length 2421 /Filter /FlateDecode >> stream xRkϗXӝL+ {lE61d\H,v " `{Lۢe@lb& G&{p("E1`)+΅ڊd=8b"6 <@;Qc ŝ  `zʐP&YHdP 0wŇ8H8@@c1GD6@< ,`1 ዔ[e2G1jcY|%D!FŐI %" ɸ @Q:%YT߄hS'fs#a1Y#exqN+*r^8GŸҍ\ԑKQkBKcO3INtmui #9OZrhF;Z85˔7'q-SUfPmd9Z- ko ZAZ]DEKkaZxVqש,z>P1&J<{r~|ngĹ޻3Jn͘ff*M򱼦W=$}p`pnN۶( v?tRZJcZJUUVj"XVPx@ghɎfŭ!{k!ܓf&1H߾> D3i>gk -{<@L7rc= 1''k%9LřnjK$xYhy^Nw]gIg|hů+o)ce//ۚMGU]p;uw}Gk/F>s=ݯV+un'g5,.P{9*9 8GQu]g9XHYI_@t ьk8?L(U2{Z7sб<ˍo^ Gencs+y̐7tj4xMq\mY-;La2f2ՒwW#Uc<]vdGf߭3/ok:M^Dr;V$ E}a0+í8gY0恦Lެw4ķAvBb"aWסGR @Fowde6Ĩzgt+l#ﴻȵRq'zQͅ8'8[q}w$aGtnɘU]RX/]Lo<"'aJ^TVLY!- f}ST%K! 7<|Z:/R<hy=G˞iYY'ԉd[Bό&d[> pr/F8r4b, BTЬlS疵n>EDY7/1YP/_,umoH C!{ĽɋKݴ8_{#y%{ $35 뽖[0lTQGgsrZыsBm-eߘwI^L0?`/fou7٘c.192snU_mzK+7KHrKվlgFDܔ$ ü@ *S_ϦMSu X\DE|Fa~a%endstream endobj 26 0 obj << /Type /Font /Subtype /Type1 /Encoding 66 0 R /FirstChar 58 /LastChar 110 /Widths 67 0 R /BaseFont /LSWJFS+CMMI10 /FontDescriptor 24 0 R >> endobj 24 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /LSWJFS+CMMI10 /ItalicAngle -14.04 /StemV 72 /XHeight 431 /FontBBox [-32 -250 1048 750] /Flags 4 /CharSet (/period/comma/slash/f/g/n) /FontFile 25 0 R >> endobj 67 0 obj [278 278 0 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 490 477 0 0 0 0 0 0 600 ] endobj 66 0 obj << /Type /Encoding /Differences [ 0 /.notdef 58/period/comma 60/.notdef 61/slash 62/.notdef 102/f/g 104/.notdef 110/n 111/.notdef] >> endobj 22 0 obj << /Length1 1333 /Length2 7972 /Length3 532 /Length 8785 /Filter /FlateDecode >> stream xeXqwHkV!8hqPx8VX[&{q\[zz'Wt2v" e@<,lq@""E bA:,1ki)(kS1+.ob_whqq'/qOƒm4 Ej Z+[&չvLpP}݌a~K~mJcuE_)[3/0!RറфT1YDJ-ԦY{c:yBv(1ΈԺTYpk\+d!7)/d5\!PU9>u[Ͻ %W+*cWƤ`ֱSw; WAz[w9PBDؗt>Se\(nɣ1گg0|%}76٣Pv]IDc5iv Wvc)I\}7K6y%8.KēsB@Hѥkhzڻ4y/f.9&;!7݀Aojٽ1|Pڴ/ H*5\hiFSE p9'h76o Cgaε֕ޗ3TDFMp /Ҟ~jYQMJ4ϰ+Ր }I,؝ kCU}mcc߳Sv$,:/zCj&hu;YjWKz<XM2g>ɴ(]4\E됓YKmĤ,EUi7:ools=Jeo62 ,?Yi3ŭìlmV-jݝy7[OhBZ59<"ԶnĈ1b"ZX}h1^ fPrHֺZI0OnsƵΝ,"Yע!w$7[)EB@CʹQSL,D;#j3A= n;iX:"p'PYN{åxO;9{B>۷dDvj`G'ou;Ȥ,TUQהѱX4%aH G&9Ƭtc@&8.фb)lW f8/2:eJLiRt>ZM:i6<9?_ 'bgM=4ҝJnNæm@R/SGv@H!˾F4mqQF++P.32#$`p0l`͒H(06eahL7K[3bivQ*N"oR|ėGK ?S&LP1=U[0hOͭ~,47w<djVUpCŢ[Ϸc14n ^.B H{OKCuY0%"R\g/$$HpYmjOCNgnfӷLRwd=$N.SL'ƜPD&wudth@ Rf Ki`.SzJ>NM@ZODfg`̀|{ו%W&_#tB} .;1m8 6ФF͕y_wk]&a]Vr9B)y_/: wk<#dk]{4uLWOCUa=e ydY4j8x+.WngAiVPqm]"Y"S$N3iƥZݼPoSROOYenUtϖpyѝFh_-|sm@4}N;K#N)ƲrzOʱZ'& ZOk^4% 51?F3Z jJL^;ATBxx* e[rn\T+DOT++y@9NݲH;2غ Wa2t"=q$q3ny&NC1z-"o'&>"g R2+̈́Q8^"`yz& }Q̏:>OyFLJO7^;XS﮺º/  5I:'QC+r}?LpƓkN=X▭1>̘r;O2|u D\X+k򒍸֧ݯ76 @oz|K+lǺʲ{\eCU2fy'FS,Ea )."Hc$넺f˳o;Ak6+.[ZV^DFd&i7#ysxjo̾K'|޸ITBTŹN4wwWd{u&a~BT>#zz""9跘0+@aw~'-HWuô mSR;vo] $XEu? X bҍJP1/kcaG@Ծ ;M%X Y$tlY^J0 Qhݭ/ W_"W]d7@ċ"dB5nuW],qO:(5ɽ$QxBMDA!3{ 5vЫfПg{-GFN0ry];)q/HzonѠ<޴}{Hݕᇲ˜Rz;侗y) fMq{O'iʀ0G=-ҳ,לk#U@SZ_ZD3U$gс"**7m /ŷbxaS5Y--f [!ceaդ_0uJҽ|n,\&o|eT3ԙ+>{tOgqoZ)<-nq21E$̈́0ȣy>n{]‘Jն{RQQw{km # WRm][zn.IJE:S=Nŗ=uOP'C;?g["(l`ZH@{M pJ*l#՗\hǀJ4 T[1gGC!BQ:\,E)ĤZ!#jC6_o@}IJG+Hu oe=d~rrBydױ`|^Q~xH~)@0(]U3u-5|J72{P?ғR04?E7X'"#((i(;F]cM m)ݎ-~cmӃ&Ans Xg GmlB:6UOFn|+ʳ,uާ1g2mޫJ]ָP !f^kxaJCU$G襬CC~5 +ܶAyrEL/DS?/D]ڏ)\?T'8sׯj) #Mr/5yms$8>_I&c8׆}L=8l?˥G:4hxt3uSœ%SH2(Jpl%['Y~40Z&C+)#D63;Cf;IFJ)%k#0o磢!j:p=$f& ,A sC`e'WN81G.o/7RcfL9[e `.t/q$VC0b$zר "?EMYi_TE&> G,|_'m@ݎ',v2 7,dU9ŋM]w?$z#Jw> 3 _Sobk\=Ta^mn lf.?IEt9wZCTz; ` Fg󷹏 :NQ}͎/sN2\eMOn 97~ I0(TpoϠMЃ&=SMj498Lx3چup^9u y5%g1ۺl>]mx϶km+ߊʹlR jeeZIњst=@m\ޭ*?rBťLde ( RGއ W0'cݦ${K<3sRCe f[%&" iќ4:^qڬK4.u[c;O8 b }X](s(m˶`(|7MOjQGQ bi^ 7cܔ/JoVj>߆Xt'Ϛ`yLh~cb.| 2&$SV9;i>sr|q2rwS ءsgLX~>}REƺ Xh[flf܌DR6tc~V`%bQZ"aV##OY= k\NJx6VA"&pI0hru)+5kSRs6Fi.&w^!{ v2 ߳ jh(>]ʭl6 (%{va|ey⥳/Ga"́6.~i1g5q\S#nϓ|7Ca+W4zBgW[(a&7H8F <u vKnJP 3 |Kv-vAM%Lvn "u>7 `ksw.5z0Yts<-3LH ʰBGC~,؅~PHuo_.SoΔS].D8"ĺhw)"ykH PGvk9ӡ_͘?>>ʝWGZwuTТWPV u %/* &X^xc湷ѨQo|&zeIb֜B|j\ zWYb3\?(7 `6_FN 3eNtyf"?y$96[jp?gx20㡥\>i=#<מ$2| s[~ﷱe~tDHv+Σurrx*F)Yߊ6ijeĕ7N@@}|NC*wKN?:dF'?_̎%>>rg}'\^ ) 3$"|;pE:5gp6f=+v_idWӉ~+-F[, > endobj 21 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName /MYLTXF+CMBX10 /ItalicAngle 0 /StemV 114 /XHeight 444 /FontBBox [-301 -250 1164 946] /Flags 4 /CharSet (/comma/hyphen/period/one/two/three/four/A/C/E/F/I/K/M/P/Q/S/T/a/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/x/y/z) /FontFile 22 0 R >> endobj 69 0 obj [319 383 319 0 0 575 575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 869 0 831 0 756 724 0 0 436 0 901 0 1092 0 0 786 864 0 639 800 0 0 0 0 0 0 0 0 0 0 0 0 559 0 511 639 527 351 575 639 319 0 607 319 958 639 575 639 0 474 454 447 639 607 0 607 607 511 ] endobj 68 0 obj << /Type /Encoding /Differences [ 0 /.notdef 44/comma/hyphen/period 47/.notdef 49/one/two/three/four 53/.notdef 65/A 66/.notdef 67/C 68/.notdef 69/E/F 71/.notdef 73/I 74/.notdef 75/K 76/.notdef 77/M 78/.notdef 80/P/Q 82/.notdef 83/S/T 85/.notdef 97/a 98/.notdef 99/c/d/e/f/g/h/i 106/.notdef 107/k/l/m/n/o/p 113/.notdef 114/r/s/t/u/v 119/.notdef 120/x/y/z 123/.notdef] >> endobj 14 0 obj << /Length1 1437 /Length2 10537 /Length3 532 /Length 11399 /Filter /FlateDecode >> stream xUT\ݶpKZ R{pww w' ;58-|{nUsѧVQ*1Mv.L|@1uV + (R l7qYyyـ`׋'+(ft҈Ӊ(b vL\,9Lljf'Pg*1XY l0$cgn0NίR@i_%Av6@hZ &tQ4'VBl< `;gW-)AWlq1Y؀L,8KB< e%8&/f)Y1]]5*@\=@?Ŭu @=Uf}+(&agfY8&NN&CJ@oV =^]^_Whng_YـbB l'9̖`?! ס.N`? 152!^ ĿWNFC@f?dCЫ⿉終zz^+^<zi^`obey- _kv/|i _WN/|u _lW+?z`W+/|p _5W U/|p _5 ۫_/7#+;). / zC^v0lX7Jn)(7^ KLZ4\tʏ98&ư'U097{1c`椩BF ] rh?]$^sk&ʝS27|oR |; `*[2p$egPW?~ʤ2J*l3O,#tk,^闪]4RYyE"t"I+X,#.1_euLWu0ygCX 3޾ݛc{A6/DuiԲ=LsDM "1:L ~ t(ܢѾ߱ #;ݍ1'$eH*ɫ)Coj bxNvA7h0p4Z`hN"27tw#tjYpOG⤡ÅX(rЩniQũ^Tkfm3&ʨ*YL ,X~VhIDiJ}lM=ƎOiOhY(!>Uh vXTǔ:|~˜bw&zD*S~*2ҋ!<$+5Q. lꋕ;'ݪnտtgL1iZhW|B< w9V۴rf7c<<˿[ߓtgV `w"<8Ц0Z.4l%KGN@5DR+Txd@d)QieR{YUH~pC+;̙Y~xw!'g)'LHAք]R,2:D, 1rJ1Ve%l* QD6k 0"<&f&lW*X&Y5"cͬaƆ**;'f .O>oMf*_֣5`e \T7_-Cl)\B㻼WM|*Iom|߮6mY;_ԽqTWPBBPl +ϻGCFjIZ>4bA~A~Gw\%pĻ3ѥkc]Ri Ѻzz7Q }Bn~Jq5e19Bn:ٳM?q'=kY=*Šd;б#K['Zn >lL3 8^C}WՇ( 0N5x49xR!9^Ů/jD21knғ xC^H-4L@y:1qL=0P)쑭ºK݆QJ4~K[Bp!T*m>E6{uؿlwz"\mv '}VTNz~ųCx (cڲ]`#aBnJ9(-[(*̀lӔgi/ͨ}ii<.veg(uT0,]6lڨioE-srJm >&-p5"AX灂oFN.~$! 1 Y^dl/- ۥl 0Wp1dy=n5kCu&u%YpI[;><6k]yOAzfm&ӭ,@7URٷƇr9$Qd}?Lu.C SQjו5k5Q`eN'ّ&Hs0VE)XfqP(l'U˔mQ*e|+2M|*\p3)xaK֩p =~I g؈ӌzGZ09T6~ ZWyexD1c,O.-\9yҴ[0X2pw?ݘk1hMPp,e,IFj!گ{rQL=V ·U loT9wH;AB*!yzjR0*>1;bB5G ߵ+zQ\Mw)`l| }}g!,EE3sR;Z1}6![Ur2`Y 4΁N"[4q$/s"8Οn"vr ъu&$㤬, #ϳ]%>Ӕ~k 9bxoq^#glͩZUqrqS5DJߟ8Xm񓒸-+ t>yE$1S0/~`L,!iy '~a΢-(ck8 7kc6Ig1V'b;k݅ +ʰ><'kj& ܒgͬt󪓱TƸ2H E4pf餞a ŵ"4طML:/4fh/)UW,pSaLwD$4) QPO,Ч%ztpcտ&-k} 9 6~,˜@Ed ^!CUm 1jf.*p\uaWBO]IA2p{ M#x:RX>= UCvpm&&s{rAbuDװ}-Y;'f~!GHP!^m "(7gԱNKD2xłCqbrlts/Mk!|S?6*1V)E]΀0^<[@Ir+uyn>/1,THMJOaY'͜;W!_fYm_SK\",ՕJڂ2}hJ[oV l\#R >Fl|dzF(ƭd@EDvYvاwd+rc'X2ȟ1}H?| C;E!9]s.UIW\uSѡar0 kFHl똮FRcxÏN~kbm}4lE{7Pa;:6mS-vmIBT-`\9LaDГZ]\$jȱexwr`na?IC,J>?N vU]he |fLZ]B닽wE6 =WSǃscѱ%[ N_5SѢ4*.(1Iޮ`mfm 1>OcJ2p,]8Wtk/PdcOJ2lH# n~Q9T>6@XLy 5q9XzjmRP>בBim`B/z6p69;w0Pr~ҟ!p.?jb7B!/]n4Zu~!Z;r7AN fl|OڪэvzM_ω vsNԻRTSTՄXB#ݲu[9Dȱb0ԞS{uTKBxi;$*ڮ*U KRNp7X &0lr')h%ߝCmi%_u3tr ~$X"CyCK`C*%JsՖt٠#_#Aw|^LTVeхOm/[% Roޭh౻n`o2i՞E$"D+\m\Lt bRh#6KF +eC]pNC*I+n/ k99qgs.qKv}Ljd I·< 0 m8BKx wX_?dm!*IwZ@pg60TO}+Fҕaxe-m+4w+&4&mv /WsY-|a'Z|tM(aǣu w~GJ^zb[e C GدQF?X zC|<2?[FW:12Mb ۪V2*T眝wVKo/wUsvz5?nxBԋqC3}( gDTFՆ[vTrJپTlݝu|?} f1/_dWIM# 6'0k}c$Q͐!ELڑqp|-Nl<0tJ7=X|4a%G!3,$#,2|XzlfHB% @?2$Ӿi&*A%K$Hk^M6 u>G)4~STIc2gʥ /6-/3h,(~ܫ8jQ9_`shw;AXQ[aDF5)\Wjo27`[V>6C&uG7N D'fΖjGx'nL\B;Z:yI1kf]"^G> axᚅ1EJճhfiy=\77spֈ5x6l)X,ibykA3*+Tffks;ƪ}Y}j= f꠰g.-E]}i{l6@jí*$c#j Iǂb 7:) G`̌.E2ߥ:?YucH?zQME"Lъz~?7NHdӛzc`f.p3uTV`b7UNzU]@n{&'ả'n6-'7]󰀯_\ګ~y;ÀaEWAr.aRh/f77 f QH: )΂6XCj= tDd̼f0={E5# GvI( %< vWAzZsЎ(P3s+16բR\\_A5uuʴH㊗yFjOdfFLS_gcjB ~Z2П֜Yu; NdIB6 6i<ҡBX_*'}OHU?y [Msl$)fKe Ie!Oj~PO?@7*Mbc6AtCU>Dq9!e$cpa*߃z!BNhR1V#]ԹE|@u&PB_0uhǁO5Y/{/ˑ ߽b'B2?+uyē<v?l.~1L5}DUԈEU6 սe%5$[X%pJ,N(wYW)gVųSZ{DpHh.# Ŀ{=s}B0>К_(3ޥ[K?I o%Rrb}-%WkUO0|S5GV_9j&Lcz܏,PV$w?=TĦ-(e;KМrw5/,n$ȗH n/w=U9Q ZtR}aYjKl8E&Mٝ.}3%r Na62[N ω?3-޼>n+{>2]s[?( ͨObjv|31/RfaK(OwA (_߻ }K\wևr6/9wçQ.v8w930j G5!O((\/?Ixt#x`J±4Г?tRٛ'Y8G?;f uGg5AI7ED`aȹ{G[7Ĵ7kid*z.?I}D,gb\yYHAAB!GvL^e/[ 8YRRA/M," YOQeT$p5Xn"AdmU/oy ݻzkn|aej/;sNV^P') E zXt#VIZ86_H>vy6+g|P"KM3^o~ }_ӂ]A.6c&5=S! r$__d3NUU00ϺE~ŌD÷O!+?gט=:٨z}B_3uTkDO-ЪʸR1,=36'قr$rm6#̟JCѲ^+?&59^#w4#ԃl~j'YPz_.y(!P駖01/m ,-b޸ Fd.y+*3y8M 4X'^Q#Byk?SFbV!\8'fLϬ")5>qRldp+*][e_0R)9wdRQ6HkԓYds$ [bHrФZfDOsg/f zIq͌<%Pj4_Dl?g%abD}k)DA0V ]S4#j ]+8 B1V@lK[Įr3E ( |}iM]*\*I?O ]<]'!>vD$BiߖQk7w/5%p6h+t!H.KXwt'~jˏ} Ьa1}{׀M4ب²mI 98{UᲔ6Ȕ6Ep%)~FEDyA=M6._iOU>Bf]X=ۦzJ 6{( 'h, #;|x1["hDg_2 +|ā$t>^>O!6ۙbBM __g m8D|ic6E2Dv5Fąxt^4M ;T\o!> DZB#22/cBT0`|cDVaSRb/zM ע Bmop_~/vŅ V7g~>{qj-F)YB4%x`Iv}b^d/Zb\J~( Zv(Na%`կ8F̩zUgvy:qTq"sKhm/G8D+/+sTN`6/YJS)xUd) 6R#OPGZA0pҞ *o@@FbW`ۙak+Y)6J /6'1VlnjiτB,,^L" !endstream endobj 15 0 obj << /Type /Font /Subtype /Type1 /Encoding 70 0 R /FirstChar 12 /LastChar 121 /Widths 71 0 R /BaseFont /GJCZZA+CMTI10 /FontDescriptor 13 0 R >> endobj 13 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /GJCZZA+CMTI10 /ItalicAngle -14.04 /StemV 68 /XHeight 431 /FontBBox [-163 -250 1146 969] /Flags 4 /CharSet (/fi/parenleft/parenright/hyphen/zero/three/five/colon/A/C/E/F/H/I/J/L/M/N/P/Q/S/T/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/r/s/t/u/v/w/x/y) /FontFile 14 0 R >> endobj 71 0 obj [562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 409 409 0 0 0 358 0 0 511 0 0 511 0 511 0 0 0 0 307 0 0 0 0 0 0 743 0 716 0 678 653 0 743 386 525 0 627 897 743 0 678 767 0 562 716 0 0 0 0 0 0 0 0 0 0 0 0 511 460 460 511 460 307 460 511 307 307 460 256 818 562 511 511 0 422 409 332 537 460 664 464 486 ] endobj 70 0 obj << /Type /Encoding /Differences [ 0 /.notdef 12/fi 13/.notdef 40/parenleft/parenright 42/.notdef 45/hyphen 46/.notdef 48/zero 49/.notdef 51/three 52/.notdef 53/five 54/.notdef 58/colon 59/.notdef 65/A 66/.notdef 67/C 68/.notdef 69/E/F 71/.notdef 72/H/I/J 75/.notdef 76/L/M/N 79/.notdef 80/P/Q 82/.notdef 83/S/T 85/.notdef 97/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p 113/.notdef 114/r/s/t/u/v/w/x/y 122/.notdef] >> endobj 11 0 obj << /Length1 2020 /Length2 15045 /Length3 532 /Length 16139 /Filter /FlateDecode >> stream xUTݶhw w  <;wwwn^ާnQZ17fӪAF$U jcPHZALhfc-"dd"\,\LdB6nf&BTtb'؛[J;9 - m nt <@p;`  &fְ(IX;ldM{!4F6֖nFcXzhZ;?Y:X:9 m*n#3'*oif(`mb dwA`$ghhJhoW`m%3/z 1qQ)qͬlb? {3WBM2;KڄP^ {JHhfmp%mċ9bF& Af ZA:if6s[[ 98 ,ifa շX[2Wuhk'JO`'| 8џ;!!;Okc E]Mgl>3zu :r."= T6[㟚-mz4Vf3L.0fCl"!v`٢X,J!`".E]dE?tC@?tQC@?tQC@?tQC@?tQC@'E1c#c-IT/Ⱥ<͕V:Fң\ߓƮ&nTKLjW>mLzmbNCpwV\T?DўrZaD"ZpU;քH%mK=]f]ɥB|('hGμv-KO(-* H"s,)twFߙ8ްĶ|N^?`v^e y`h.կeO-FW!7":#EbaPT(8j+:C_9؎A%T1"A[=u:iy;o;{9؋fm{OeYʖsWФ k\Up|l܂P#lU1=BCcDRQvEA _Ū SA+MQRٓ%75 48SzHrp^W'ɵd^xv %KD%D`!7I~{ÊC9P>ya oc\E޾r_.-jUk>`r -΅(l[ZIgne8C*NK wYm1&kGܘrYaڸ_)fh^^X}U䇂 7}D;Cp$O41qoN߅w-*7!Xf?-:cUzN0fAZ5m$tDF}z=&,u )KgY#OtB^&-d:ęuږj+F"v!Eȹǃo›`pR_2f:)3*"3ρG6-IA>UH! ɓ\93=<*,ڇ]65]LJk!@o$AeG55"X`N,))1`xW$ClA4VEbqVnV(:ُsuH}tB8@P~tHڦ_Q)A((tf;]J`G*i!j03-ԥmD0D,“҈~].ia?j9kzB; ~m2R7( ܧ7krJwd@999'_]&G ƭGKs 3k\7"'Ҫ%YzA7~ؖ]<*|Rn-$Mch"9ӞSN=^| etIO񓌚퍛p rd㪒`D԰en[{y/#@xdXU{na`zJۿ֎flj/wX?DX] ʮq_FRuM n77 0YH}YoPR0Xl  ߘ!dubkwVâ}x٦4bȋ&r9!F@~J9\C3,W (PKuipM$ֽP[$ ?^v{TLJzR.Zo4 #E"-7=D'GPL?5>v*-NI‚ [2CX0N J7$j}){E#kTIV{As1Pӡv))k]p"oMKxD}X;IPo-UGcH\ @ ad C %ֱ G]A!~MYt<%]EZU* +̠AY?GJF;,8cŊ#=K}qޟsBnoI'Mr!Ajj+ǐА؄$Ջ'Q9?Hx75HhN"Zbg)TۓP2.B+\w}3-K~;;XXȲQNsRJ5 E-;od+uqaiˑANт!XRڇcH/Rɼ$DUڳ2<~C/y˴T=k䲲)~.f՗nwwS{j'STH۔OO1$g-bdkHi *ލYɅЃyĕBԹ(bQ1ʋ -xRww2O -P V=A'.!z/mi1)ո LZc8=y%E[٘K&.hKoPf?6p tڙ6)N"i4)59Ap-H']dG(¨;IV~3G[ԧT]H,ޔu1W qp7˙<;i\orp^/x޴rܩٽ௃iN|G3^8s}!se2?9'R2Ub OU/֪U:c#@߉akAX|qp]FP%ljٌ&]hϑ Q`Em 5IV3If{7pAM;ǂq׌hWȰѰ jv/WX 5m=jʶn^#9'g^Q3|F"Kb*"<;`8Bd T- f7?_H7~wlYi[UxtÓmOd>s0I𲺛(TaJI~G|bZ%J]kE?b_*h$_JɅN9FFr:DACfMGOX0٥b`J}iwÁb`XX@_A[X0&TUS$ 8$b3`KNqi_6)zugPT|&ox+|LS~&26vWgr 5Kl׶MP,*L.fZ͞(Kkΐ!,K.uӾh1z*' Gl0ƴ8l&\k>3|N&"ţ\Q^y7:~5{?Xr-e\ @5DޕDق`B }%ʱ^`Y\GeV6 @O`yrb}&V,)EOp+<ͮc\k,>ƱzXx1/NhJiMzL~tb蹽^L0Z tI+ꂛs>UgѲadֱX*ꭜCt4z3 3&jdPTT޽y=C؈+^QYKJhKAPƗ"5-AVͶ-dGSũV`L7)`&<1̼=1jx\ZE6(B?U)g}?)2PK)ɴ |t~2Tygl6T"n vݾd\RI &!h_i x&RGi|X)|Ϲ\0 I:)sDDiΪ/x,ҍ AQ,-0lgɂn>UFfWY<͸h0BONA:vs't]N.$ѢBxqfPBwl_~*MI?*K8}cL s>PLi=F!M5\76͒#]OsʋlD${a_ϱ `Q|^L6lՍf+^5]燋nT}@Z@vFb:evޗD]BsS0-yܜ +ݖ0rDӃ 'AcMfw|g#I 2sc_yM;ZD=3{WhJy^}?K_w fdH e8J%X+c1{:Lɯ>[B2TsCq.S FR{`;UP"#6(M`9vYFXh!7[G L 9$l>O?SBR4AP+/l{ ;GcdB=$V Bk7Vϐb\F4h׮lV4V-'gBpB_~M=*{D[hoL:h41y(wI^>:`ڲ~ben=Fa rd7Y*ADPKfL` EID 'bz0L-0aSgpE|'Ac娱1ʟ{v+>k0oG=[AØ\ kX7e;TbooAe'N_cg3 Wqh1n54غJ8!LE(NTeZȈRy̝ ,0J:4;ïsq ]Y$ib7^t$88\͹Fߛ2d x{xq D.w?x$$la pkZ:P+nd-// WX=<!nX xhzTIl$Zb_cת2|xA61zZ&|[[߫E- u&; xpeG3LbaJ*}Dw uϱrk2[݉qZc'[%M{oAqIhGkc4 n~姧Oc^n\RwE}tٗ6Bd9MVxBq./[ZL-]jm2T9lZ#IrEH/eݷӌj=4ْ耙aƢ=8u7lP!0B 矌U{,ܽzZh}*LV{WNa/E0fzs'+8oF&T[{^]Do\g;Q ߺ/vH&YNƈϙOۄG19Ӣ]W~4/]:EnGoYo\z~z*{>A*_8ʎ`AZnh_B{hv/Z2s[.6k@ 323>^i'H.Jh633Glm+z"š.YVd+[Lظ8 C*^<\+>,h$ع voqtj#v@;Ύl't8hbޯ oGúm`RⳢ q{Г9u&rX{N=/}*{7]ҩHG7FHݟ-R)vE}^>P`[ҩިA׫T tx~;f`8(>% ?"46ꝶ(l7?[xɕyjg\3:, Z<`L`K!FaTxyWpfhw.zU#%4;!>)K}߇yd˶%R܏$?PN"S!Co}?Es2oI3墼$ִ߯wcPuۋs6(=,6&!.4}Y>7:Iiҫ/&cgAp:滯;h$1&g1&m!| ;As|&OBMSv82}LLJKĐiӏ*ˠWn;殒}K#Z6H`EV~<{|buoPڜ RW`G?Dx9!/ce8ħ\?۔1D̩\&WCk =Qj5!aO٤ Hlaۏ*TAǗӜ [0C#C((3NrmuUH`2@1bCOrr% 9qL}izʴ0zݛo (.w jgЏ K^zy |`,F͊zm q|e~엳B[ ׇD2UWroq}<3Fpٱ鎣WXd ya^V)Fz a.ȿ f*|w2mR(׹/Si^ykp 0SRR-V\ɳ! =36(& =~ݼbqZ!܆?yJ~]YǼ,Xw?BGZW@)D?x;I4 'oT3f-nF@t .(ɴ#w5lը酲CĪ h ` Sf6ud&P:ǮO)؀O g/|3/n0ΌZI?ݵ7~K`=e!N{ADgrљ[Dɠ͍$sdg9U,{MЋQuAO͍~ĵΕ8er6A<ӊyl>A9K̙Jz(F5^BCTc?^HTd=ŕgOM/;&Hdq^{FHkWDjǜ^ޏ^klA5WfSYp ^Lq2EBT\a@| 5-#mJ!΁$;wU` BC98;Xi A74gPȏ㻺pxEFnyZ:Uw$Sb1MV1BEN"(Q"аt{\U!~px2m+>)#ۺv8WRn$dC?ZARk͋.ALZڗ󻣑9S+Sb1}k(wQrA_D aRw7=XMjޯNȉXO+^0Ay~},Q_:M%1bs|<鐣6l)粵CVh^#{N\\ێڞRݮCnZ@ kqRPʦtֈH[v(%, Ұ'lm\XŹHU[Kj/Rj1=fc>#ה2V*~~u8kđHCp됅3# @S{bsj|eFE#O k^:3 aOߓ?ni6ㅋDeN;Dza [q\6(J_*]X)`۟1TVSp*F~$|fΞ퉻my)Mg|3B읛#[Ug^zL>A]YG: νC9*-H&(ԻE Yo7t}k b}W!|՝1ӍK!ԪTŜxH\aת. [ퟒL[t$̈́¢y\lBwbN7{N.OѼ*yuy: ʃxGX 5Qz2nGC.LaiA@c3n6^؈" cBxmfQѠqKZS\/޻k˿nzhf517[ OcG.I-W0870 y.z˫tz"ݗIu*2x ]}1q"=?~DZfs1ԣpjaH_vtW=*rmE`fd½&P_F֠qgQMMW)CI1?uG]{Tu""-Ms=*CZq).+@{Jٶ_*> 2.|A=gIDbk7273EhCCd8Y*vЏBJ|4fE-\aA)~)=> l?Tj<}/y̫20>vTb2۴%]3i}}Iφ}&/h\?|ޭ:G,J'?3 $KRaYI~ #ebhZqB ? WdHl&VhΙ:O3%G&hu iv+DExUwT}RG[Qx=Fhr^/EՔ2Lg绽X^ U~ڞ#躊iVEt08&^㟂 }H$*,ò@e4kZ54(_S7 l{ԣXk lufH-{Ǽ؃Fo\gx(Q].a\[mA7,1*Ъ ofU>2Gr+/L =}H$QPŦ \T:Z2It!X NQ M5̺Y+&}XeZ1=[i ZkIȁ/@|\yx+8@@ߍ||\~?ӸY)NFd))K*W}LLNn]I|GO[-\۫ Ghk?H~|1P:x'}guc/k=N+Ʒ ϸ+a,L mz&ڄo24xRTGMbUe SyoGr2äcZFN3Fj V'lԹ1YKݺdxcLF`6xfX:h)o7%Ӻ騭%; .A@$XfxwC^n0%@)5?"El嫷0v$nۑ $xi3{wYx颃+Lh/q\mlJNZ3I6psݬx (}P1.I/9wG}'ꖠNɛ(M!n -%BQݩ7HJL(?*r@Ϯ(@4RPx"I-Z][&U1 ?fxst*ҢU.(g"0sVuY96F/ct ! ƩX; ;Ew|[.Mi[J8JS\<]_0K)]TAz`J:wuCg__Hg77 Baxx), @v/@;UdP6\UX2}kC=lE_OP_2E Kr^R19Cr. E~ 9rzRXII/zJ yNz/#p+zD.8$vr$>,n1s;i٥'4Qbwoqen/oefQl:rZ*qT-Zo-cHݢ#^(rQ91kYErY6̗-elNI]$U!7Is5> h$8hWO$' ^8`uXxtJ&5~[ǀ垫vİ( n%/B=8Oai^ "+t]Bx7ٌU˵B 1[;4xٙ -6VE2endstream endobj 12 0 obj << /Type /Font /Subtype /Type1 /Encoding 72 0 R /FirstChar 11 /LastChar 127 /Widths 73 0 R /BaseFont /IGHFKH+CMR10 /FontDescriptor 10 0 R >> endobj 10 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /IGHFKH+CMR10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-251 -250 1009 969] /Flags 4 /CharSet (/ff/fi/fl/ffi/exclam/quotedblright/quoteright/parenleft/parenright/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/quotedblleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/dieresis) /FontFile 11 0 R >> endobj 73 0 obj [583 556 556 833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 500 0 0 0 0 278 389 389 0 778 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 0 0 0 0 0 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 778 736 556 722 750 750 1028 750 750 611 0 500 0 0 0 0 500 556 444 556 444 306 500 556 278 306 528 278 833 556 500 556 528 392 394 389 556 528 722 528 528 444 500 0 0 0 500 ] endobj 72 0 obj << /Type /Encoding /Differences [ 0 /.notdef 11/ff/fi/fl/ffi 15/.notdef 33/exclam/quotedblright 35/.notdef 39/quoteright/parenleft/parenright 42/.notdef 43/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon 60/.notdef 65/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 91/.notdef 92/quotedblleft 93/.notdef 97/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash 124/.notdef 127/dieresis 128/.notdef] >> endobj 8 0 obj << /Length1 1301 /Length2 6893 /Length3 532 /Length 7689 /Filter /FlateDecode >> stream xe\Tm[e`nA`!fCIiN)IIS:% %>|ֵ}=lZ:6p+"K4 yAllrn0 Ƀ 8?ੇ@ .>nP;{S$QSg hgT k@n |xOxqyBlx6Pk b%Dp'%DIrP6pbϧ GLHgqE''M_[;C|Oqhm nL5MbpU jf+B!6ZP=;jn+?{M !t}\WQqzL@ ?*/@a!,}Q'E?~f@Q|08IYÝC`C">ԍA#~#*C7~O?O7 T~oBuPM ACUM* uqz@pqT$?Bi(o(Qv JD9@@pQοQ? j?4<j7/+  DAWzzͶPԳxC֒RJGKd>kuN|$M@sz?ʽTkxYF~ k=_Qk|햧Vo3IϦ Eqk0ڳ%o z3jqn|eeYߕJDP1I/<]9IkIPɛDEdHC8nӣcxe>nNҭ'&TS"fig'{hGBL-ח|2I`SCt/N~Q*tJițoM9_5h 69rjϨj3!|9Y?L8BZ|e42eԧU/<{xܥ8ѫVJ%ZovL"=a :+w05ށޖ(dL|[n45Η*E^SNUDoVt$D8784MưJ^YAsr@zԴŅe5#7@jw}.iüʈ@䑚[]"H$\n_؍3+2"̡-E"ahI?5(S>2֒VuN<{w[;ൊyMm7 Ŷ=Fg ?&qELD3~Ts̾UGd巩a, ! E&, 4ӕFU氘dv'2 4ױT²]2OD_\ jƛbm:6qGt es,5P4ɹj)|O96+iK5g6`iup|çBAm_&2Vat7i MaŇq,yq\%64^LqtJ9[deѪGKWY|su )m~پ՜pSpRVAfƍyQE|г ޓpPgi6 SMbk2L/ŢFv_ᬃ!>'4GH%g2% .tY~V_h7f\DCX9<;\XGuZj%5* *Y; ΰǒ쓲`۰s/1h5@=kQfl;.z_o-d,*O/dO>y Ec̩]ȥ*ic֚ rH:5؊?RhJ}d٭io}>~]z:817"<?rae5}!4YPt! w׌(}،Q]ΰbja^*VhuOsz4cşYѸKj=|y_V'JtܭFDȳ2?Ϳ 0&P YbM,tIzh5f{ɮa+aэm7ƛm;5o@>E˷ $Iõ8d0 %ZȠϮZ0N0֔6Fsoּky/(FmVD? rE( 5)AdчY[z4}u'rɆ9|^*9]et///M >\d.#EZ{[8'$IyY6Pn|<jiΨ< 8,ylowⰫ9X=c_*אu^2,KeA)}})=qXYоJijsXLLaf諥lA]sw<_Lש1ZPAjy .ܷ@r<୼*ʼntLL!i 5Ë{hTcXM_ܖ7eݫLbhX jF{8a #ˑz+=^=FUL\u =ĶR#~.6\9"v Rɐ EDۙ<(e)(pkzY˜Y1S-JU3uV9a^jZn,*ⶶIvɯa`W@N|Uh`cH(Ye6S_~G|a^A:jGZ3[KGƦMB4曩0u"C{0V2.͞&b o'|{Gj/ԤJ?Qߦ|$GVfBJ@= 2<=owQԀ5ՇayLEsa c.HqEэs+a [l".{Ppk顮۲K?gGD5l|8g4SmAMns}3sW2[=>I ?IK/KxYYqZb^#wM"יobw:XdMD[Ҍ3ٞKfgC~ULz%6f~O| ԍm1Rju!ڌ6su\xQZekO <L['Bcι"+gij:O7JE f؛u U!溼.}QgQZN;[(Sx<XxFNɎ VXE߰)4 z]JSu${285T6 6,.}xM9[HҕѰmCxT+|dȤJRܵm@B.q33n^gME!+;/CsDs&*17տ< b^PY7p[I%&dgٯ2*sj=wVb{~6fj苨86/^R+tWx׶dMRة80^A B!+e bPcʅf-Ef( ܍!}#*tWI뙩J(f(ԴM;"M~'YV>y[V.ɀO20#OiZOd:rQV^|+Qo˥>]A;D| \Hm[56 o+wD'ctݕm%=7\!R'$lll}dzЬk`+w^ڻ_AlEw0zB0>q|r= y].XZԩk-dq|Og rE7edbPP })w[Lesߦ6_xZE6IsFG% +J =0{N졘cnlKR&,}i Ns^IF/3<^4~gs~Wy_v,+}~\ _6#x9Zz+qϣ`l¹fo(HxgNMbl/^Yq,HDsNu>Ȭ1Vfі-AŸ8ޓ 9eqnǝo.uu ]:jU>=~oK-0Zm!6poM"l?X{+S[RLٶ﴾H>AYf?T0lQgb_$T+KB[CQ٤nT|ܬa.$ bbP|;*N36V%yX5Sax-5)Yc|\4_e1{33\2deZUx~1Ժ9[VQPm/(yXXrWWև'8^軧|6\󃈦F*G/HҤMݭOKy\^ctdu{ͦp׳OE8<நz&j}4"w*kpDS%v;Dt܈k= Y(|Yl扌s_dMu+;7!HE6W;QƊdm;T{-?@)-J?RRw5> endobj 7 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /KLZZID+CMR12 /ItalicAngle 0 /StemV 65 /XHeight 431 /FontBBox [-34 -251 988 750] /Flags 4 /CharSet (/comma/hyphen/period/at/B/C/D/F/G/I/J/L/M/N/S/T/U/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/y/z) /FontFile 8 0 R >> endobj 75 0 obj [272 326 272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 762 0 693 707 748 0 639 768 0 353 503 0 612 897 734 0 0 0 0 544 707 734 0 0 0 0 0 0 0 0 0 0 0 490 544 435 544 435 299 490 544 272 0 517 272 816 544 490 544 0 381 386 381 544 517 0 0 517 435 ] endobj 74 0 obj << /Type /Encoding /Differences [ 0 /.notdef 44/comma/hyphen/period 47/.notdef 64/at 65/.notdef 66/B/C/D 69/.notdef 70/F/G 72/.notdef 73/I/J 75/.notdef 76/L/M/N 79/.notdef 83/S/T/U 86/.notdef 97/a/b/c/d/e/f/g/h/i 106/.notdef 107/k/l/m/n/o/p 113/.notdef 114/r/s/t/u/v 119/.notdef 121/y/z 123/.notdef] >> endobj 5 0 obj << /Length1 1382 /Length2 7600 /Length3 532 /Length 8425 /Filter /FlateDecode >> stream xe\TmIIaRZ閐j`Nq) iFiDt~gֽ^73urrEj2@>Yp@, nDDpPgo &W0@ ,jn`GD @ ݼph]07`_prwh hh [C.0Mgqwu ǿ=Zp8xO A0L} Ws2PҼppl /& d pp;Yg !Ͽ5- Nn+oft`/1/7//?dN  !07bg H @^cn'b$k( ) A- +":aA^'7l ె~ !Aog߄CoBB7! *I1߄0&Az0h&A7!K7!|: 17߄i!9y 얿 ":- @@Dx#u^:D\@Ĭ@ûoC@D BU?$/bGq!v/x׼[";}F!>5^` $f1,@pYƦ)IC׏sJT\8 n*2Hѷ<]cF]>-?2Լ.C5N.ey,հ?d _MNw=RG}wfB^dx ?6!ܥ,J rɓ05mi<4.sN|Sroj5o~r捿at4rI\d.f=O-0]G\SW;O]k`Q +F+ CbZ?!&U7-ۚ_Ўت(>4D%Hh,lL*3i]j v4"^,7}~3/ڏ#$a["Ox"a-Oc\>Pq )+^a h<| /D}JWz1f"D~gd2&z h]?CE- eD"s[2z,x$gwzAϜS,{G+H[``B ̔M\^{듙~Sr*MDžSV{~TV8(vyMlbBr X*^Jm|m:'7#$@Ʒɣ (H͹EuPޒ?bj%x[%,L@~\,y2Ao;keUz%!cQDA&3hң'e'1,|l-%[DoMD: _VrYDu{(=jxJo\H*E)!PB1(kIN&: +v}_jMOW a `}y-&Z1'J z ź쁉 UAQξ ILUs+7NvCaf" ;-i>l酘V_;0[8kA첕.JPH=y8=|o7qZ9)!D rN;b^v&"ԑgcS<2:l]Ʈo<1U%؎vl _3i ,ܒلq(rmT8«oWr>8UifϞkvm)ٍ;-iRFJWLF,ڜ`= /4 OpgirVGR%S˥4lQK|p(Kp7Piox1RoW4Qi!8y~R?Je]ZPc idh+1$a, 蓸EߙV!cf+&R疁,/>ϦPH]ǏGMŧH 1{g(24S~l]20sA{#3QM|w$a_CbCK S]w?uǟe-)?0]QI uwٱfsB(\a~,\p^,jHIb/34y4А] C^jkc|zϒ.Ĉ)BQ@Lu9c"I 5:㵙(\=4N+ImIC>U,󯨧AY2ot\6-y[9cl-ñJkf-D ^;fm~X[-˟-ڜBNMe9pbB]b/{a;v/wfv&p}qCVsCJs޴z~/ũeJjgrg<5ˌӭ;9,fz[q( ͒"%0(R_z?ڇ/Cx>GpVO~/kɡ^z̮B`. "cVyYq Py*JPXiv2!Ss?DRWJG,HLVF6xĶY{{7͔h'x;媅$QL@4^l~d}sF)vJw#2LۡxWAji‹XuR&] 1a;͚ @2=7)V ŧ޺ B|޾ړؚÚ5 %șYIP/AUNʭZoܿPKkh/=c4c؄0XE ¡S{CӚUgNi?'|̗M}T1m.{쏱:̾|y2cK31iCFH߬Ș2F>7oǑT{oZWt68[t ݞ4݉RkY~]o> c~Jd#:q>zQy4IJUX'i)!}5a.^h*;q\d .{ExW=5VϷտ rqx?@9بs!ڨIm2#I"s^ W>3G!p:2I jY6XYZviorM]#o \& mbQ }5(,rV|Խ`5~v~7=x#)KXFg4:, !YXlCƿ<7V'lh+-A3ы3揟b'<ŸT<&'+gt={QQ=b,m1KF77aG[L Yd 5Rpǵϖ="YP94Ws=D*G vb "a)0c4ʴNˬWNR2&zp?#=O̒3.HAӋ: O^a2XgpNڒ8"^^xsG~vӌw[r V~5\]g-&2ڌW@Y?!j) Xrq7o}Ia~_DPRK0/C LJǦ$EױP5e+&4olQ/#;S;%#L<?Ʒ_*i([ C3o)[i,TfݱLxl'|Ρvŋ#O s`N^d|L ѶoI%y6VeFmh`ѐ|!Ŕ0JaB si[=[AU(# O;@KkZ2{J MR"Tځ)[E.o eѮ>d L(;)0q ˈψ*ίD :*Sh*.Ӱt[0mnU24Jz3/ X5Yʖ EOsC&a'gxIٓ}mE$1k:O.T9CbwC&n12ZncP8,>DGq~/D;3>6!1ޜ"t Qd[wnBϳ36@ |q^I e8X\^&q(2keOSV4"ۋ;7Q?r:sf0(z[GЏ }f]7^Gt _( Iϑ| w8bԧG0Z"ei(&A幍ͪcIpa9Kn,ٯ-n̑BKò&ԚX"s:>¾/կ |-۬\ Ƿ*+yjZe=(fd\R\NĂENP2󽸆Q纶hg;f [Vǎ̲U=0ZDh3͋yՆ)*]'(nt74Hyդsga1fKQGS8' ޠ~|%̇qAt4G6”8ūgL9ʌu7/qM' 9g~a Q&k +PQݫ̺RsHU.28v_biz~[-_cxw92O^`%2G[x.429/7{'NpѨt]/YNMϸN11nh-UNyWO#ݼ̮-k`qdY)d,Sm@2vi׭Կ <0j*^3bf#GmxU I#Q:AP::}gNj˯bael?WbkvMfi|Ƣw^ږSI)g{RVNBA }-qll楖kzR)y,7?(U X+pLSr|jcI}.,T2rR,e:q/c]}ġ1RIfYqVpJBc%ͫݡ5z]-lzR&@AFFElO!""O)?~7-PV܋ׁX_+II."T?^F-6kPGH5eP{| yqZyaR1'vb6_u=CnR9'p|Kcv$ 0 MjaawR,Dk㏶Z vcZ^hH!߿9OEk",V3L>nF<3fa<`И-. Y/f E8B?ǩCkE7'?d(cL;g%ujfrRѮ&eH6""_wRڨpM-Yv4Ϭ6(,t"V 63u<8ҙ*7]M_k?xrNLqoLTQfӤVTd-7I;GNO7A^q59) JG.nXneXONC4S~9x49 /m eJ>=M8A6')e6H⪾ ^Ny)'Ocϝ>~ T /0rآ^^N{VBkhOBi{9 dp\6RAAЛB`*ޱ1=G+IK/XeA$u,3LhL4łm~MTa6D'l|0Τzsk@qpahݔ s 1-tPE^ɇsyh u;K5BO9{7Iֶ$#ZbXSM ,B1ub_=Է(/Qպh eqeļC)z "[1XD%ؽ+03ݱ$ELQ; ba˫ P J1##b~ ڎ<(5r-z|@)RFv!3L>pfLW|iӤmgPzŘv_79qxuŏxO)Pu1!SKE㾒EڬNl'Sm_ͯ, ;uJ6ɑ4c~~+ %R! { }bK1#<=s[鸍J)3gd!&x!V⫯7m*%OFia3+\^cX0̀aW> endobj 4 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName /LCSUFY+CMBX12 /ItalicAngle 0 /StemV 109 /XHeight 444 /FontBBox [-53 -251 1139 750] /Flags 4 /CharSet (/comma/one/two/three/four/five/A/C/D/E/F/G/I/K/L/N/O/P/Q/R/S/T/Y/a/b/c/d/e/f/g/h/i/l/m/n/o/p/r/s/t/u/w/y/dieresis) /FontFile 5 0 R >> endobj 77 0 obj [312 0 0 0 0 562 562 562 562 562 0 0 0 0 0 0 0 0 0 0 0 850 0 812 862 738 707 884 0 419 0 881 676 0 880 845 769 845 839 625 782 0 0 0 0 850 0 0 0 0 0 0 0 547 625 500 625 513 344 562 625 312 0 0 312 937 625 562 625 0 459 444 437 625 0 812 0 594 0 0 0 0 0 562 ] endobj 76 0 obj << /Type /Encoding /Differences [ 0 /.notdef 44/comma 45/.notdef 49/one/two/three/four/five 54/.notdef 65/A 66/.notdef 67/C/D/E/F/G 72/.notdef 73/I 74/.notdef 75/K/L 77/.notdef 78/N/O/P/Q/R/S/T 85/.notdef 89/Y 90/.notdef 97/a/b/c/d/e/f/g/h/i 106/.notdef 108/l/m/n/o/p 113/.notdef 114/r/s/t/u 118/.notdef 119/w 120/.notdef 121/y 122/.notdef 127/dieresis 128/.notdef] >> endobj 16 0 obj << /Type /Pages /Count 6 /Parent 78 0 R /Kids [2 0 R 19 0 R 34 0 R 38 0 R 41 0 R 44 0 R] >> endobj 53 0 obj << /Type /Pages /Count 3 /Parent 78 0 R /Kids [51 0 R 55 0 R 58 0 R] >> endobj 78 0 obj << /Type /Pages /Count 9 /Kids [16 0 R 53 0 R] >> endobj 79 0 obj << /Type /Catalog /Pages 78 0 R >> endobj 80 0 obj << /Producer (pdfeTeX-1.21a) /Creator (TeX) /CreationDate (D:20060105043620+01'00') /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref 0 81 0000000000 65535 f 0000004218 00000 n 0000004113 00000 n 0000000009 00000 n 0000245324 00000 n 0000236624 00000 n 0000245168 00000 n 0000235767 00000 n 0000227804 00000 n 0000235612 00000 n 0000226422 00000 n 0000210005 00000 n 0000226265 00000 n 0000208924 00000 n 0000197246 00000 n 0000208766 00000 n 0000246290 00000 n 0000012623 00000 n 0000009414 00000 n 0000009306 00000 n 0000004320 00000 n 0000196300 00000 n 0000187237 00000 n 0000196142 00000 n 0000186726 00000 n 0000184028 00000 n 0000186568 00000 n 0000183358 00000 n 0000181325 00000 n 0000183201 00000 n 0000179842 00000 n 0000164662 00000 n 0000179684 00000 n 0000038750 00000 n 0000012515 00000 n 0000009543 00000 n 0000043139 00000 n 0000087953 00000 n 0000043031 00000 n 0000038902 00000 n 0000092784 00000 n 0000092676 00000 n 0000088104 00000 n 0000096660 00000 n 0000096552 00000 n 0000092889 00000 n 0000163242 00000 n 0000150396 00000 n 0000163085 00000 n 0000100801 00000 n 0000144091 00000 n 0000100693 00000 n 0000096753 00000 n 0000246398 00000 n 0000147152 00000 n 0000147044 00000 n 0000144230 00000 n 0000150292 00000 n 0000150184 00000 n 0000147257 00000 n 0000164107 00000 n 0000163746 00000 n 0000180785 00000 n 0000180410 00000 n 0000183859 00000 n 0000183604 00000 n 0000187087 00000 n 0000186950 00000 n 0000196859 00000 n 0000196601 00000 n 0000209584 00000 n 0000209253 00000 n 0000227328 00000 n 0000226912 00000 n 0000236305 00000 n 0000236050 00000 n 0000245905 00000 n 0000245630 00000 n 0000246486 00000 n 0000246552 00000 n 0000246603 00000 n trailer << /Size 81 /Root 79 0 R /Info 80 0 R /ID [ ] >> startxref 246806 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/0000755000175000017500000000000011702130733022473 5ustar orlareyorlareyfaust-0.9.46/documentation/faust-quick-reference-src/illustrations/0000755000175000017500000000000011702130733025407 5ustar orlareyorlareyfaust-0.9.46/documentation/faust-quick-reference-src/illustrations/syntax-chart.dot0000644000175000017500000000240511702130733030545 0ustar orlareyorlarey strict digraph faustflow { root=syntax; ordering=out; declaration[label="3.2.1 Declarations"]; fileimport[label="3.2.2 File Imports"]; documentation[label="3.2.3 Documentation"]; simple[label="3.3.1 Simple"]; fundef[label="3.3.2 Function"]; patdef[label="3.3.3 Pattern"]; diag[label="3.4.1 Diag."]; math[label="3.4.2.1 Math"]; bit[label="3.4.2.2 Bitwise"]; cmp[label="3.4.2.3 Compare"]; time[label="3.4.3 Time"]; env[label="3.4.4 Lexical"]; foreign[label="3.4.5 Foreign"]; prog[label="3.4.6 Lambda"]; infix[label="3.4.2 Infix"]; node[shape=box, color=blue, fillcolor=lightblue, style=filled]; program[label="3.1 Program"]; statement[label="3.2 Statements"]; definition[label="3.3 Definitions"]; expr[label="3.4 Expressions"]; prim[label="3.5 Primitives"]; program->statement; statement->declaration; statement->fileimport; statement->definition; statement->documentation; definition->simple->expr; definition->fundef->expr; definition->patdef->expr; expr->diag; expr->infix; infix->math->prim; infix->bit->prim; infix->cmp->prim; expr->time; expr->env; expr->foreign; expr->prog; } faust-0.9.46/documentation/faust-quick-reference-src/illustrations/bandfilter.dsp0000644000175000017500000000224411702130733030233 0ustar orlareyorlareydeclare name "bandfilter"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; import("math.lib"); import("music.lib"); //---------------------second order filter-------------------------- // filter(Q,F,G) // Q : quality factor [1..100] // F : frequency (Hz) // G : gain [0..1] //------------------------------------------------------------------ filter(Q,F,G) = TF2( (1 + K/Q + K*K) / D, 2 * (K*K - 1) / D, (1 - K/Q + K*K) / D, 2 * (K*K - 1) / D, (1 - V*K/Q + K*K) / D ) with { V = db2linear(G); K = tan(PI*F/SR); D = 1 + V*K/Q + K*K; }; //--------------- Band Filter with user interface ------------------ // bandfilter(F) // F : default frequency (Hz) // //------------------------------------------------------------------ bandfilter(F) = filter( nentry("Q factor [style:knob]",50,0.1,100,0.1), nentry("freq [unit:Hz][style:knob]", F, 20, 20000, 1), 0 - vslider("gain [unit:dB]", 0, -50, 50, 0.1) ); //------------------------- Process -------------------------------- process = vgroup("Bandfilter", bandfilter(1000)); faust-0.9.46/documentation/faust-quick-reference-src/illustrations/syntax-chart.pdf0000644000175000017500000003140011702130733030525 0ustar orlareyorlarey%PDF-1.5 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode >> stream xZˮܸ+W@Ћd@YxoLS|ݺmw.VQ*X/*ߋk(v-ů/!-_>4]#slfYb&׵u|_,3&n"i7%~>R"~MܢU˚&!Kqe Nb ylgm.'wemb5Y uA 1XƱJi `͕]^?.?|y1/xfexNN/nhpzd#)f.p^$*˧瓵rz)sÏ?m9A5{1\`7 k73nh6;Ujo4:q^.m`Xgih:0>o zNӀ+ỳ1OM;>Hhsa=N]1ٲCDavʛf-By\#%m)}2%</;acwT;썸n#C>Kxp nzƒMX2Ov[gaL[c jK&\DPYm S*wXe|cbe)dl ɵtOlEV2ҚB`gvl)o$t@ zddzِj4i#,(Kcj |3JA5P32b$8#8V}҃G#^ƻȐϒ3^WX,;Vr9;&tHf]-V ~z-aCtk< zaӴg:5شߣ<|^doTq @1HfN1;HDV+6Am؇EƻȐϒEWֈޝRo6Gxv8?IJuttte߬X!"/V+V/həRS$f) kzLb~s`;/VO/4Z4JJô/KnLL\2ٙ;ͩ/;%5no8w'.}`H٘gZcn#6s2`E}t],KۼII.eka)΍ZdXGBE _CyN\׶!V㞅V \-1 d>O7s\C˧'EH?lkx }AsfnP^þ%_Ns]$X6E IIƃuC½ (ɢXl2!ztZ+DP&!23x΋+͟:q\Լ,{L@[TonCNٹ;ۉ֍=gbnr5IfဿsL똰~T7S;;tnn*G)SK=߂=H(㩡gM'M\m'z֋ڴɀ=ow'N6%;w'Ոhyr6jܓ %<~gZk-Z6^7<(e$I|DG ZM({=F?aۖzJ+Ęy'ZOKK *tci9@9> xe<-wA5;#C>KN^Ƀ$齐)[ji[c,Iܩ($vl"#Yq̝TW]ܻۋ1Rk^1}ށurrWi)ǖjvTWiFcu&$¢L?dQp誶A5vaξ IkKj%e0goFàc%ޣǚQ Qnkdk)xj/~ vdD NW iqp&}`Wt4J, (-l+-F)xD:]F|klb'cؔuְҲ[U]nV ۢxnB6Ifρzɦz)1k^@5# bdDѐw ܃t`բUkBGm~~\H qHȇY10D_Yk I(8fHݱ<$=o(+uTvZqYũ'6;}l];ePO0xe.QطlGlW`Bc!gZv12.*/tUS&);{\(Jy[^vKr 3ImLwnG0 imF>2[tvD۱A@O%ўv3xN_"WQg _wm+AA葛kc0YTϔBET0pvX-R'$H k8TjݮDmx(2*0ZQDl=,b#f12WߥXv+Tg!#ٔp>IB)'v7)n7nn:p q0~v#{\tnWwaN󺏼ܯ'B#ehO"ףUYco5vU%a:(J:ݫr/%4E O&;^yrJwuV3ERy?KwyHz_*EuQ/{"AG$E=`JsΡy4TDEUOn䌸LI=F#,nG>6DOmLGG_uDYT"MmRbaPS6%{zĕ :Ax/W!d? ȚɡfR-pK})72AR勶h ZF$[Ă^Ń=$$ym},ٚ-k,s&"qgKF km{ DeRw=H鯔0G5GM7~#y[ABYUaSymKa 3UnctȇCrVз*ܵf*G[kra K H~y‘S<7;PÁe endstream endobj 4 0 obj 3266 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> /Font << /f-0-0 5 0 R >> >> endobj 6 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 1065 628 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Length1 9836 >> stream xZ{\Tվ_kڳ3 1 B *>瘚2T40T$)hG43%E3|AH{Kc!%&eЌShf$>N2dQ`Cդ3rcÑVuu|Sͯx{ҿ#; 7DDv=wJQdK R=FԄ {Mh y Qkc p vo m\ ,q 'wre -ʂU%,ҜN܊hGAeeeRD 42f%XOt-I=sҭy6RoϧBw ?+gEA\h IRy9sIYL+. ;e2B v:6jjmnхѕFߌf:@b] rEIfҙLL; 9pVi:Ѝj[.qzirŽj-¤Nwᆵsڋ4?ppM\G"墥Լ\(L:GY[ӛLXo!.ĵUb:1NGXqײ>uF>#DRi61sOJʵ T'$Bwn['@r&*!le~X!$a?H6iz*B=uET#ucb!oKs]H8D18g?)=ݦN}dDY,M_OEŤyҼiiq㲣c=¤ee1e2oY첸5II7b:^xㅼ۳d+{ZoS yr7)sLuIu9n/~[ꤤMG(+I;$،Pf (uU<)t^3܃١[C.o[-é=úl~epnk8z@W01]=QA?-$GZoT` vo=۽/jI;SeD #uj@d|Zė;-[+WܴBjڟ{Ǧ $oI,!2. hUJ*,h^ȣfbwRr|݁sQvFNCZ;5+#{(;G50"HTl(bXd*6[CŶ"{eH]ZG-'k>$a=ٳ&7Q|v_9f~7oiׯ4HPXTfLu*d2RM(#}o7<NMȻnmw)Z,ZTvsOZlr U=-;\w&i\7\5q'5lPx<1UcGt"ެ);ŨF@FdAv ߥF4<Ӄ@zh` $ m[uݦn]]L}>jcK4Av2vMu:;uI&&$RSٮIN$U2 `B$D b< 5ɕ7#0κ=STR[4E4|q䮉+VLY?~?2&/]9mƿ_pPSXKWVl>,3s¨پ[] x IۥrQ('KĽ2pQz>Q(h-,Ll-[kα|huk9:H-DXN/x5$AΞùSm#]!Ri*BUiE e)&d#!---M/i k*ng m ڥnλiK:V;{ꝵY[;fݰbѼjFfh-^}wnMYĊ#|XG^fCh:&RMцO6EZgT Aɲaj(w~&ȒI+"xX"nNւ-Q=nQ_֪CyK:Wv. w|`KYZv߱c}͓efX~Kd~g>O>__GǼݥ;>xYb=^~nNa"䍘+7ycSG`9Ƕ%k[݂1%eM&(UipTZWJļP*bjb-]%{V /iYη%^[LNU*O!.4_M:9}';w9o{pOڡ͛%$rr+FmD&j6ôHԆF5P8i"C:r,mHcC/ fEBP*k*M\H3l'(1G2$^9d[L!t _!LR@t)OKEP$e ed]+T t 6i{C˟mr2h|tt?,ە"Ծ%"BrU)/^( F,0] %}0؄, 1+LӁXkyMYvzn%w[ζ~ZeB?s6l,<ƪӬ@]ֳ2a#[ u}4|$*LN!(]4 I+XgIJk7eAeJ /d~o˃A hv7NGhCY1)QBT֕^;I '((B-EubIG/D;L h&N*UfHp,#sq$m+8 OFr % -CYAz#H8Z 8G s(&lۉ- 9| P'-3 \EjREI1u# 3^DeDa(B/#_ '<ŘHdHiAA^*B ! ]e{9J HC ˫N}B|zw z#_zѐ?ř>;|Բ<[2<фQw>h,l^$c_s<'R29+6Yb%duRRIO 217#䬡alv2+Yp:GH,:ۂbrVzchښŹx?-ȡ5APl9(llǃ !Tqr<~+|p E$!yBTu:!FLj&oJ}͒OHo4BPw,'ًpģp/"vYBHTt&CI!DW4mN! {1 nshv?}s:~nq`+{w;7* hjo _ L/ǰ/*l׮kp5>7ÿ; vbr#|p}bt\]gÇ>> p!,Sl z'9 9w8q8 jK}C0e|P ? +j8a_>>'vWnTM$f ;9C,l{:lPTVV[^3-^3W#|xu 9l0 *P/WuͰvQÚչlQXS"~VjVqXb7ËdFˍPeP*2KmyKmC b/fqXCQ`!|Sa.gaN3nYPa&9< Opaf9L_ Ei9L0ސ La9L 0^"C0X\y@qjec"`F e8dA#F0,̆Ya0W  ]ٽ0(n9 пw@!1c8`g+F FfH9cT#K3CuUX7+tUK:t|lg}lNI>wD% 9ą@,ko>x!Yɇh3Qnfx!"QRHprpp`lȫm XCH>X8MaOAAdH M- 8  ]ZplM!̮ endstream endobj 8 0 obj 7294 endobj 9 0 obj << /Length 10 0 R /Filter /FlateDecode >> stream x]n0E|"tâ5=HA,5T*R"xڇcܺq黟̉V1zZ7$z:.JѬL\9IC鶬ti0%u-ҏ&vOv!BoޒY쾎't]ȭ"KFXBK7vil޷6m*>o3 YHf̝!߹3%uFCx3|,<򼉤")XS 5TGpP>RgZT@@.AH+-~$*8H '\ 3WV iޝ~9g¯[R𫐩T+pN?7s&J6 O6Z=ϭzF6^8۔i+~~ endstream endobj 10 0 obj 400 endobj 11 0 obj << /Type /FontDescriptor /FontName /TBFYFW+DejaVuSans /FontFamily (DejaVu Sans) /Flags 4 /FontBBox [ -1020 -415 1680 1166 ] /ItalicAngle 0 /Ascent 928 /Descent -235 /CapHeight 1166 /StemV 80 /StemH 80 /FontFile2 7 0 R >> endobj 12 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /TBFYFW+DejaVuSans /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> /FontDescriptor 11 0 R /W [0 [ 600 636 317 636 636 317 770 615 549 277 612 411 392 277 611 633 520 575 294 974 634 633 634 636 631 591 603 634 862 633 636 591 686 817 698 610 557 636 634 634 629 ]] >> endobj 5 0 obj << /Type /Font /Subtype /Type0 /BaseFont /TBFYFW+DejaVuSans /Encoding /Identity-H /DescendantFonts [ 12 0 R] /ToUnicode 9 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 6 0 R ] /Count 1 >> endobj 13 0 obj << /Creator (cairo 1.10.0 (http://cairographics.org)) /Producer (cairo 1.10.0 (http://cairographics.org)) >> endobj 14 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 15 0000000000 65535 f 0000012423 00000 n 0000003381 00000 n 0000000015 00000 n 0000003358 00000 n 0000012264 00000 n 0000003490 00000 n 0000003691 00000 n 0000011079 00000 n 0000011102 00000 n 0000011580 00000 n 0000011603 00000 n 0000011873 00000 n 0000012488 00000 n 0000012616 00000 n trailer << /Size 15 /Root 14 0 R /Info 13 0 R >> startxref 12669 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/illustrations/Makefile0000644000175000017500000000032611702130733027050 0ustar orlareyorlareysrc := $(wildcard *.dot) dst := $(src:.dot=.pdf) dsp := $(wildcard *.dsp) png := $(dsp:.dsp=.png) all : $(dst) $(png) %.pdf : %.dot dot -Tpdf -o $@ $< %.png : %.dsp faust2png $< cp $(<)-png/process.png $@ faust-0.9.46/documentation/faust-quick-reference-src/illustrations/button.pdf0000644000175000017500000002605211702130733027422 0ustar orlareyorlarey%PDF-1.3 %쏢 6 0 obj <> stream x\Ie9r) ~sjGH "!9ďZdу|$}z+>~{~2Gezb01qC>?QJ XZf椘^uVKKÖjv3WLۆ͐_̧ 3kY̘G~aMrgz!a%fl55kɵrQRz1K|f ^3=ihyJ9R{6p! ܐܱd-O~Ir byZzxJhOk@5 Wc`<A9])gmM| ^o P EG+zgxmO঄crv`ֹ들k} ޭhCV$=WRR npɾر\8MJc̯a\3Jz+W ,N!~) ? <3-r 1u<ۑ!881[G=39/JyYDr6?p EFg ѵ!7L `," {Fn-ؑr 8|@{5 dwLT,cB\ i_jsl7ӧ¨L߯:,՜_!Ze3ȠJ ג}\Ѧmo 8Uț.-v}uG} poN:y#,.wA\?'QR2_밿o }]g= 8FG2;>Kf219@We[$PD3Yb = WKSL6T$:c ][9X;Dv՝ M|CUYW}~OlQ DoD06" ?a "e^ q( 0iFdtchtHB~:E4&I@l)~%%]&(k3>geү3Wa^!` N6qt_E4DA1\wsE0*H˨26$`{oyڸt)3 I/ f~%Knp=f#EԠ88 ,.: K0IBp xB|$uDט.rf4vj6$B3Pa"3Rg%O톝ؓںQsg$>uI#=a$h;y^SO}L4A ¼J`]*,AlD(uLm2p*WAgk*wA"Sl/Ђ ֢_HʬX~n3VRDNGҘ9x*AoJ4q &md]ZQFMS[HW op״%`?H9 F :=YfYBmR.=V|zN fbNa yVZ5Lrn/m%@@-g[@f1$x:hW O$KL2 XB v6->swRtJt&25,L; <qq %x d"o_i%J܎ee8˓0u5UB_Vs&wi!01rpbR!g]{Kg fն䯨|ϐN&EKcB!&Gv1є-sP[oH-fi, ڈ$1 1'݂ybOp1CQR*J1r|mŠI? Tgi[{i X -M$SE0V e:O PΔՠ㵻enݡwWCưYy_y!Ɓ~KtPQ%}=#aKB$GP/U2  %:dFTBcfØl3vGb3*?Dsp2 'i(^98eDݼA&lR.8 T P)!@W{4L'C2Um*i%eNEՌ s諪2kɌk$Ȩ-BRPŅpE|}w:&Ern @x##kLUs_AdCh"v8sm=. Ga $rRkLWbCr>wfZ 6sc}ɰR̲t "6=Qkӏ bR&O^3hߢ)(ŒSRFi3dǖvƩ ca㠽:o> ^b҅bDyOHbw)xX70 VgjE,T3_ 5@8e"iOKUI^һyj` }zې,oCt:c_׊u&9+dQIG7%s&)>3 پ@'"]{E`0ץOT4x.*,ݎP~17H2mwƔ珏L&ZL[0!w; -Y,Φ &LIB/älDa; ZA: ПnrD#4&iOO?ûJ%"1la]l|FɱR7F[ahXo:cț@aB>)a=6%DAdQiui:T+ѩiBg7җ jj.kk+?u&C,c>7ZТ̦Db/T OPX<=YhcEKBl1d]BɞmhHt-Bbi3**t̏qz4l^dB KNDt 'p"=#fz1*ʅWPdn7.f7J;b(6$nI鸹BQfoCrHn,0b$&KdEg} ,ƶ/HL!4NRPזM+.ެf0#b+!bSSXn 0tM4v4vFFRɔ͋gFꙻz\koҝb$}DeL{xlZ W|t.rA ¤2gYX d2M8ً`W95Z?Ʈ@2eiEȸTE+6$x!rEDh~<0=8zA(v  -lmy.cP'5WULxZd{,v>5 \uH0άb&5F7 C9XM) )k֞02SI%` 4ٌƤZ-.b_h& )݅P=mO]F%[ o`) ƣ@4-Gky{d^@L{2Aw ޱ\T =AJIb X81Q"Ʉ#}xb!|+aTNx)Lt8TKC T",GOsdF?%]̭>*f6IHV"-ӗ3a進!)iKEIW@8MsCid~{e =B,؊G=F6setDS&2VQ[ Nd`*ߐ7J3 Y<˯Pk&U AeE%NH>fH ZÎL6K-ޓʒQusq׼;+_-Ў)U]nMCO}7f=b[lȢ^륋ZD+fg-Mrub,k 0R_B*!s75JZ+HLdB2V(uC>FfD=iM4vX Jbfr)=N 2T攐1?cj |Ck5٪Ga.5U2׍{ޒ#4v䞯Ճ9N3_?29ncIK0 Zg1dTGwpS::H)Qt@3;f:^J6to.h *"wӥE Jj72b>vL4mQ%sx3fsܜaS?[W5cllʌ2x+w x)>Wս|EVŲ,v !f^R#j} ];2S+Zqoeһ|ƥ슛A i٭`9uPlB~ē} YoSɟ.퐭O!ߡѼ*cb5k$Jf& k(zB"f 99'JfAvc.jK8gZ;jEOQdh4A^A[:C|ħڢ #̱C#]9ԉ-גHG1OΎl|'5]c]ِ*r|96g\BT"S!#pk]tҧP1f{mм{&s$&5N {k`k>jxbONǕ " J  CexT&MHbgDMezsa?Ls jw0#kPKǧۍ {|oi<0H9d+LHł~LSTaf'm ]'ZfvV$=;^k](Kє :ӫgωR=|/p 18  S(ۅBi-Yo(#y,tU84b_meLih2-i3\lBj1lcCMq*iVE5&3ƅ zf8\a`E7Zz\ʪcLq93_S%3FuE4M6m4ftƑ b~1w`3f^):.H-Wi F !C[z~ oFͥ^3ZN{M233&xQoK>64tU.|?V1=y gC"n1/J|qCe3h^=l ^Ld3: u4!`.tP(x᪠oȅoj zOL/HbMH]!h3&a2/g=`+F\)SYc+ D/1ɷ\KppUH) {r\7+tyt)O=+D(%iX93Jx}yUAehX= :XOmY+贕itZpRx'79JiŽm D~j7ɘ}sAVS?gt[9 K.{|WU."x׌lU@7*ӑ)X k| t}9[Lygu+u.qDo'8V}~7B /A >U?K5,S_rC]SM3F~'di6zϕH|NvS=;|LXsjs)`: s&v|ڳ]='Ns&z^B!ya¶rAaz*ꮞc!waO\Un%U[VH/z} w}^ؠhjڠY2cQR Fy(D'50HI(n- ScIazNh1gxVDՙAYEú3uk3`Bs׃b6SΎ!O=[3RSQr Gb4_" "9=:̽jdSwyrK)J[4ADkqYJA!!D{B0ꇀ /sf-QU%)~Ec!2> /Contents 6 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 5 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 4 0 obj <> endobj 8 0 obj <>/Length 402>>stream xKEiЖІ`m2,A ʧ|"K+J[gԙ(JT@œgVyh%:C(}\E+q<Fbhߣ8OnC+qEvVzFD~5ZA++h\.JtU4Z,h%:"шh4JtDߢl6C+DtV#FDGBKFDFDG2!ZT:% LZ4mDG##}Y=+z=FnDiFNDG̉Fe0hnJt yѨj(|[vRA+2tY;Z0P\Vÿfzs  to endstream endobj 9 0 obj <> endobj 10 0 obj <> endobj 2 0 obj <>endobj xref 0 11 0000000000 65535 f 0000010182 00000 n 0000010957 00000 n 0000010123 00000 n 0000010230 00000 n 0000009959 00000 n 0000000015 00000 n 0000009939 00000 n 0000010299 00000 n 0000010898 00000 n 0000010927 00000 n trailer << /Size 11 /Root 1 0 R /Info 2 0 R >> startxref 11007 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/illustrations/faust-diagram4.pdf0000644000175000017500000014501711702130733030722 0ustar orlareyorlarey%PDF-1.4 % 1 0 obj << /Length 2 0 R /Filter /FlateDecode >> stream xݎ,;r8Pofki Xa ]k3` 0Ψ?,&3#a_t=c^? 5~Dh ^wa\ϻ8~Ʊ cjˇ^MM 0MࣃP/6!⨞.6! 1hHfpHHe2mTA"0gS=2.j5фa,Zf-b+jYHGRҘU0 B",jgZE-ȢRmjD50ґDiLT$Qʥ&$D G{ D"7l3>H䂜}xv @#g$VڄGB5=qBZ#gLJjn17:y>ˀjsmƤ8I:Q۳ v c N9F`c"9`c%96`c'9`S$ٿGP JHY,rD93\G,rCH$JdN%#RS$Q(ITn‘53g_m xC&!9IbPD4&!I<{d"xbZEMSڴ$z@=1D*Hw&CFf"!Lbt$xTI䨝9ZD@suIY֣ )ϲu2#].ŧ> KϷL@52س2!78Պ,0ڑEB", BА4Z8Z̢%$ hY,ZG=0E$zeN!ޙHbD&12I (hLbt$1T"9N7h# y<ƀDbIWz3_UKL=_tP͌&Bl\lR#6i\lr 69]lrƖ|dU\n<] MRMMM*@ljLljU!6_l 6ª$b#b#؈\l~MĮMóziBlZشAlzDlzUĦ]DΈDg(DgԋhDgtBBd>)dT I"I3;bvC="=6dbgv)dRdv)edR$!6]l=M&M.زRMn.M Ħ%R.6EMi2M `&bSŮb٪\ꪛj=l{˃-<<z3ڛ_=<v0\kG5kM4b#b#]ֻbS;bS+bSbS_lJ#6$BlJؕHlNl2+bbߣ~/b_E'EE'v+ 0h0OࣃP/:!.:! ":Is IM<0$7f33fllbj@6;xY/L$WoNYp%Oٟ%{VJrr$#5?#'pIN4#]P=I=F@6)^4w/vr)^IyDй1x%S89i1P])$bU!Gg6slsI%rQS¤S<{N͠prsͳI=29Ǚ֙|7VNl<ŧ!DG#='=Wѩ|tbSMgj 6e\l 7VfSl%_l ᄭύv; 6ϦMݬ5&o[ni#56MlXͮɾͺ7LV?s]_O|,7J^QmF jz~@0oB+(e ( A~o*nw{׽_"(dhoA:u5~={P`ӫ*Hp2 AyT N'(AU0 T@WvEVn2VQn+UkyooAƠNW_=~}BSHkIߙ}<Ë-vw~*Bxĝ- ־'lajDh(g9WR6ߚQ({44Ҵ[6ƭlQ$ig(._+#]iQ>M_uB7 Q+W>:nKȧ5so6kW?0:͖^gadk3KSK%YQ:Q@}TF~^DQ k?-3Y7/c&h@8@XQ\C`ƿr ~89^r]O''<]i4L߭uosG٠ǡkBW.>흿[ƵI;7VXww]9*U?ܔ>U@ՙt`kj9qjfPeBպJj^P52 gj]P53 sl50 ,5Б8Ze:z$tuY| qnδ7,+hס5hj߱:y3l|6Kl-Bb59k"Po-C\s6kjzWX| (%b)-E0B bH"5&:ȁI$27$+5HΜJ@%2DƟڡ%Rg{>n:V3i}Wշƣfjߥt; %R|!UaPý]S.ŧa@U;Q P;Q6:|`$$1'M2'53fP3 ۄaPI0:WGLB0GLB0[I樅[̀Ɣ U3Àlf303 8FP*a73ÐaHbfr13 NјtFdfN0Gbfj]l4)ttM^'3Ð^]MĮa^EfSE ѩSё._]*w#"i iӰn_l v=^lzhvv،@feBlF؍FlFgvf9OM5ÐQ-07f3SĎzdLj CzgzV\?) 3ÐMJbؤjaE.Gbfy4bbS)|tت C v5\l zTzM˙j-Qa=Ӣ~S&iQH3Ǒ~꒚`I / ;mYEsOu\lb%61_lb"61\l 6؄r {f F3`FA.#3- #za =#GHuhtVD܈ZD-0'HB٣&!PLBM[I騕I騉IԈ$j@t$v&T+(I$JФ9p^ ^?7 *"_]1(__ڟi;Y_4|>a o|7ɡ6Ho+x3oe~z ]A ܦ+rLX! k\DcE֚_ljUv^)c@o5:S_YOWtnWs=A{ucۭe0Ū莎rq8ܭOwu@ !|9(讠+zݗ3arG<؟;;f@ӭ>Y51W#O7f>Ž(ֽl2Db.Wt }fg>aѡo:}K(>;f6YQ#tqr(hc=EFγ脒eW [} ~G]5˼~$PR~y׳gi&ttHym~&jNDuk [עn+y2o;sE`Kٔo[E8OOluQӶ/#؟,Gg3G,(ز34J<fZ]U]sT]GZWeG zQ=¸AU ja]va\8狍k.6jd9zjبtQ;5 &f*tc3Z@U[Vׂ {5#N[*B .GLB-.G LB@S j$jFtA5 fyr$rZ^T+R^E B/娕Y娉YeU 0Gh Q٠+ga-nt$] 4!iDaFtjD^جrTk)TXذ1_a~cFulĎٴ;6T2qI m : &1ȷ1ط19HEƜ'sThkü[H1 4!9%JY$tn̅"sc. sPܘEȢfQ"(Y,0ҐE!5 SHTIT:- )IH6#$!'LAğsU]U].cXj&MP-UuQua}ӝ3ϭPTAMl2:v)>9:gZ:gJQ.=#P I$1 Il(-M3%$T+ uΠڑ@UQ鼚>Ze9jg٪PHB3B9ZGٜ3gaЅqst9g9f33 T9C@.A=!uΐވ:gPW9Cz&6PF3GW =_lJ%vE.62.:9zMN*DNDGղ$K%:Ntd\tZ$:-]tZ!:^t֭MĮNj:g@/͘.6H،tQͨшΜ3穩3٘sl9sGvΜ3zGa!sΠ1 ٘st!6qΙpˑبstdFlؔ@l ]2*sΐ.Į{5] u΀/6^bS`}jc%s\H1NЏcN?VYP+X#c%6ƕZx*X?+>ܮ&6%^l 6_l2X 9|R&_pIk_%_"_*2DUfkB$gS|t$_Siv4H'^dЈNM~הB"v5fξqf=aM3w6Ş]nc(]eqd.'L.SF섯.trYDb#)Vr;dwOЯ1d6 Wr{n@ 4 ղ=/cYmRؗg+J1GdRt8lUG#l;)ƶ ecP5*O"[AtǪ醊_#1/FKƖ*Í)]Q_£H>BsN9M~G_hb]ܿϑB[_^AY8®;OUm?i:OChUf6S%O߳ZdϲV9~[!ٍ~2Ʀ1Nm.ׅf_,o~C>-؃V:~#Fu";ګOǗ ab_\~y]eRd+`Ee}r/>tC6rzA}O B';gmNEW`+%@lצssWоشjBڑA u ΦMmOzxci۠bPl+u3t ]Aˁ/g5pF k a ܥ%N7";H/_RƀNW%+X+A[KY<@ } s]#:rZuW1(m˱햸ybrQ8ܭOwi@ m!|9a=~W z}tZw6 ܓ)`5H6&,eXac-,Ø˰rh kO+L~|zcm3y?DzmKzC^~` 5/D}mƤqz=#?qZ=d.56Gr[ܬL-Ot, xrS`$_](Ì}v~kC4 {}i͑ ov;cn'Ikz͆kBh$oYZWendstream endobj 2 0 obj 8274 endobj 4 0 obj << /Length 5 0 R /Filter /FlateDecode /Length1 1493 /Length2 38721 /Length3 0 >> stream xct].vVl6WlcvرӱmwlN:fǺ9}~qkΪjV.sWcg +3scS?fn/+~+WPw!9Z[K3 +gWK @lo?.n&/tu2W\s/>+~!]c g _ eVp2r1MiԬ__yc//h h0v7>ۯ:,]`QLQ_t/9X̬GKɹi!^\4_H#u]M]ݾTp?o O, +gWߚ4W-\\_j~팿Z+:,,_}icnOKۛ;xcK4L_Gj hz*fk`l/ה8XJV_c;+[ޚVpp3viW㯮j+ڴr U{7̀ζV@%fj_M?S`aMDA᫥K  =ͣ'@_+*no`feoՈ_il6'dpsp7 u{+'7k6usv߶Jͭj zMqG g1ҥ6_r|WDtlN;OM2v5x¯-+hs^1\=k(ٺm:TuQ)0oKXa5APCR-^>coBeJqVzo7oN=:~~7I"!};/ݼӓAN|^h8̦]BwQ*AA-=As=[D Y^&pqݺ2rPf/m1}߁* iCkl39{;Nj#מ%Pёy 42y$0"l[I0tUu^=zOn&{8\BV/x$m;UoY~\*x{q!҅q(~:!=s:M\{m S:u_[KڅPI"%-SOCjv +;yAu9/$8z!R|շSK:D"ӏEOҍey 3֪/I~=tZ\ov^n1xѴg<hŃZ 9 AhW{&; +|=19@*|,v *+ֿ#J|)EAm .K;U]L$M2Nm|SH>c`%b$B*t^*·;* x#Mx2&bTj_bBѮzqEOK:j Nkx'YEd?Oyջӡz:NBYWlLoiètus[Ta-p 13>=pg;gP@| kMCq(gB YEE>'Us$q|I$MhouP|[{A~ZPއ"D7?m1{%P~SCDݍŃ !*4ytVNF)U\w o嗜ߔX-?PlTeh|(ޜ;Zf(uX)átFT?:.G#FOt޸1]&4 e 105$C1!6lxEi6/wږocmcn%+!!:JXNonuS^qg2$ gtHa5R1 5 k Ι{Pd 6L0$7[tvԕ P/'LHz`׿oTge͟㚛2# Dۄtj} =h vⲘgz?g^!Y0a"H0Oz 5Zt Ih-Y6(]} *ֱqr@2 }CU,+[xmaϾ!p־2 $8WQ"?޻9a[#Rdk\ha(rՙAL|LUDrUWry^Gv'>\+)iI=Ismv^AiT CQQGc7yKڟ~`g|^mAmQǚF3HMaiD3#qLcX]NjH\&A:2(?4DW^McrD~?Y,(U'/W%g`e1Xwy}QRa_A0/VCdAt]SE 8LX3v20m~/ǨrZ0<"=u|P3Cz 寧bD<iIwR&^V|}a~~-Yros;(߰NA,ߑ@W5K! WFhe`i*l(BOI\V5~9c q/5!$.VGS\F)LHSQXTv&Qb>ѳb7^jy/\Ÿ L)"ѵpH얷1[BKYֈSRt9PϓJ6O_Bўrxo=]o253k\nو~Pacc(_"IFlzEIETVPR]CٛhrF3BH8mA43 A-ЉmStm0z4ÍcD~Jc+Lp ڏA n7M3j,fu0Ym\F\/g&܌(7rJ6H~T$ˊ׾[5͝ӫ^ &?0ᴝF෢dlU%P5p6){WZao 3a@¬ipvy[LYvtg(hګ补"w致 t]D ]q@wXXqtd~0l\'\V7͑L79#IN&^fUO˔FNT%K Z Hh :JbŦ,mw%Eg؀Ma9v,L s%q3|>3#vDžz՞[͂}dLХ; +ᕃ!4TEFʻ?)ߖ34Y{$#Nƌkkhq]k~e $#Kl"mmGXߓ c%0ۭ7 S\8FmH=Edޘ0ftȠ.fW\MPBW~\MRJIt"JTs"ai>'&FGKr$vd2Sb[uu`1q'x-Re1q>{&μ6jUzRIM3LNq*O gJ|dI*qN[~C2i: p8 Cm qvn_^5N7oTJ0~z멛mt}VJZȵjQYt%ZtD&\VBVEwy&CX2E,>zgGh?ÜT7h/[r $yk"'/D1)AQۅQK>N/NilY:c+= D/46 TfkQ;kzs@e3t#xl. DR+_*NnVl#겵3v]%&˽t' ^g GZq(g0o0z{h9xAE)9\l*HG&8UZlUjƩ2H&pYӈ'hb !IOu{P#G3ѝz|,9v tDaPcC~Mm8ATY%%c )f~(<KA#S14AiqQS1#! j~HR# PXf` lHV3(Xjtи591 Y-l3gs1 ŹWn ! %xp}OUTYV<*ETwGe@A\x].}m:h3±hz++vLN%@|A>4YNgYFbO ){+P &ƨH;۞ysY~f3s,7f2<3"zxp)d[Tʜw|EK'G'C(X&tԬsbū"q`{M-2@@xNmfllhWiFg ˱4#z礕 v^ݮ Ks;Bn-iG?5>˞AEbǏ\9M4:e*:8Ft06!~B8J/nٟÝѠk]/-42@,>χ_v~).}1Z"c^=`rđ4292%aA _OĸE>D&9o5;Ϗc6.7W?w(ff*6瘪>gH'ҼSA4xR>LsBm٠ɤ\vKn`.Խryl!C$E03C-#xjɏ=R\Jh}6{;aK@95D) M/4Bb9-wޓ"l6 @mf;ඟ@KE.깃 ʠ$eܠ|[nf0ƑF !L8S5 ,Bp~5}: ⼥0w '?tw5hx a{A.< 6/rZuٜjĞOICj֟&v_#ݞ7}5щz}r])-BHm7ʼnt,DRq't^ÍPDI!΂6GRG+)i؞0_G;)8t4\Nh=5FI6;zX ꠣbe4V(ϤNޝ#DH%.aF~_SճwWD| k!{Ү朼na~7(F#DN"WƮb|F&Q:jKw>R(ʩO7nɉrAOt #!l'Ю_^d0eDz%59l%lpts0,zvyL WdWF31Mܙ}h)b?nƄ۟jMAh_:MvbGFg_FఴSkUPAsnk$=fg%^.c_^qb*)w1R.XCd.fw_Na bꁽ㟲Ğ}Rq"Cٌ\:9>m(u$fZC AXHv1)%Y~Y-j gvds hIBjBJ8k֗ O:N@+e_fe=]j[KkcH@Q2;Gae=i9uu֍Cxkf͜)2\RG`6HA-842*ͤ+wSK@:bux2{L^cBh+1Fa:?j\L N~MKzLHkUۈ@Z6vg=ogEX'E6si DC#ԹA_RM1OTXuǾÛQ2^}˵8-gry" (u2E6Dqnr|v.-mh|?PrܚVkSق9wiha>Il cJ4[,c Hqvo.dSڈB)P 0g%3$f-/RXb4o\@Vr|R-BB}Ihb'D6KT% &jt&>P &@{Yw[SL GJgdžgN6hq sem 3ḶJZrDa=m4s;EQ(ed=8Pϰ|U{[xhG%xܜ2>Ku@ԋa~6C,F3捝e!Ih#EFCut٪ C CgARf̼·)6sυFk:ICW1G_}]Cl>Z{Il6G U:Uշ:QvC0Qyx$0ڙLAUG?M\Jyf<՗:v4ɪE.6ȩ@7b|wQD># ^MnmonPJI+inGmNߖ?4@Uwڴ@{!13e@s7M lBA Y\X\ ~$Ǭ(sV>nR&SK K}UzO%r\jhAJ 6oqyuFU'm/ .I<B,m~wsMbG,ЩYD'{4`BCxlDQ Bﭒεdj5!)?{{PABq ( W֞Z @!<i9b\ t; ;Ȑٴ:}w]m *>f=[R;frC 1 o@:ngq~\yJ78>SVSc9)]Ioͷʱ6}ByT{TֻR:Q ñRiw_*9}{uaD!4QO]>ZɄdAM^L7Nӳ5՘$:mIkv 3Z+;cT2յ y jv0fQ`xp \ŜQ3+072Nȥ]"cvi,Xw*%duqfZ#S9ۥf}m!%]2'tN9/Uzo'%F6;CaxFOzgZ>P$xk_7(ku=>G̝ E=UppLng`~Yfe\;Xg5Hg. BB3s+XUbޜc DEqeT!) KSKhmuUL[6cφJ&gߑ-ŧг-TJ4? i=V,fPX+Eil0n~2i*<xJ ԇ*%whq%nnb$Y 0ZZlqkpĜcKڎlDQeRN v~umR%V,*Tmv(Ouٍ|D蝋PѡOrlo<24u<#?Abʶ eNBFb),Ȯ7I<AFۍ1[֣x=|nR&ڕفYrʏЈ8}H+%m{D7Y1N8&O"_Y lslz(f%CA4\0n"[[Bz٦YƦ%)w> { qeT 1tl,Y`kB 20@}Sǃ̞{=8T:5M: DI`X"d/_lދ:7y\8g[Yn5%@xҠ\p}('<Ҷf`WvFڱ)l#c>WuzHZ"h1]+k^@H|EO#t62&yiSLQhm#E|(^=XUXa=N9&,mԠ *v\[y6Miю` i] x1K6.Cs|=\vj_4[wZGf L  C.\\"ۅ$G^0KN' ݈@`tg{ ?Qn%.2&͕ƜP 諜%"8ێ).L5B٩eAlP DqI"=#zlh,+׶l_i-gZ<т.39657KȜ(-x%aOZi3Xnݍ c4:+)dߨ֧. ^D.]⼯CRAm?Շr~lELt$Th0F'L NR߉&EW 0m?^'ӓX IVlɸacVOD.ɄP`f6}fojo Fy`% mMYqp ]|wVmWmVy9# !wո({ JXyH.&21𩈁J NAk{" }^#gLLE2#0KUNu]7'iL&# +1ӍIJ{'Fg5cnQ0Icb'ζ )]E|,!$M0u;I&"Yߐ!FYlE)^^(OEY*F2o&8㎉\Ea .3 aKߨ.cJWa~rs^ {JI.WvZgEӿB<"~8TQO}8֧MΐlCyiEc8QCهTSs.VE̅B&!;ɟ =\WY:^HNMAFB+fƻ=RSYe.q 7$Yw@#aΉT2ZJ|; A/orծ Cv$T@+#6ly~}.߸xe h^$TQ%?&'.n:h(BRc$BQj͎3-N[$aa1ni|SPaϷR$ۿ۴ܻEgDy$+p.=h3r«[R..wϐHϡu;i/ J՝t|*[ deC5u^bC/e1%˃k@cX :kPowy+ #e'pkSo2gA6̎͡`9U7 (S}!.od A y`12"U /1ffUcp:/dOǎ\Iă|*L?Ҽ9CrL$qIK2Q Wζ2SZ6sY#C :"|PrQ n,X-rdcMԥO,M-)qYw}8e@0z`/L5UrF;Z7 6|㉬ɾ_kNnY|gz}YQXq8ЩA -,kxPmՁLr<ˆs, G twjG'R)n¸nr3o⇢mI&In\JQ7yEiίT"cTdısqF1:-3][ؔd햰|vf |~U׌B*c^]QdMo ,T+[@H HnkA~sn$2suI_$%9T$ƗUX:p{ o-5 S(L /?@QDsQg-Hr6i/";>kaLMNtf?@0 nKunbL"fc?^Qڝ}E vA^߃Tܚ5x Zy~<,Xj['}4%v3%nEI~V{݋$ZF4^ka^%,9ځsEEh׶D*HTtTȫe`m,vc7z3mx :WR;HdH}F&VC!1Wa!#LewVWrpgڀwk${)$#6V=Vd) N ָ5}b=t!)o儰uSciz6b:-43]_i11q THЊKQ]{ th3T9g;܉lY-ݏU4oa}8O^V" n_鱦3(ΡW(OxmV&Xt7QS6! ISql~T09`FHb&S4hG3]S8ߍB%KQ:Z_idնߗem&"jw|-H5PܔG?բyyɁ>YXmVd!Uf!ѧc_,G 3%FLAA.Wj?Ys4t4E n=oGK~:>ԵrVfHS#\߭[XE+AʋmcwYkh|ЕvُLu )t)Vc1A9GRam&0rZ幣PF}, ;a5e+z$I-q8ShI_W)ZGZrÆEϦpmrxRYI^+K2-Jeɧm+Qw"Kّ|*uKVe_^95jܵj`D'svTZ8cI;_gʉlNZ )nzlVMe:tz?+qú0\8f&P_m'JU53pݣtʁ[ $.Ȩ<ǎ=='+%8rAZ|RSa2]=SkU2g ''X2x=ju kgg{ˊ͊e_ g,WP3.}l¤YčqE[oa1w_ݤo~tJ ?{Ĥ&fD(Qnk*3X>KRgB&@ )ƦFv=LGǤޓu0gIDۏ \^Fh6|nnxAv= Qy"'V6xј w3|sz'P-Y U.,n.nI&zBgR>uȠ'C?9 5z-LAx>+_j8'1$i\5[`_#~\6?e=0h5;OkޣcVUɜ "b^O3r0]!‘oŘz"@HO帶2h@( !?V0OHqbD2{f|'!3?af$ K^J@$YmX*hƽ9a?,O< r2.p]'AoaG-Ƶyfx/-%Y#E[ ۉ[:'7x Q5y0^U(aCq'e_'.`ɿͧHyi~.w cyc t4A/\+hmԆwN4x ߴ! =G1bBlJnjgc\pmbmr)M6ZD1iU8bt[oKƿrTg0-ȏpY'lWzoR^ju-VWM{swڈ=gbdqd GS_*#.F,hpgD_:*o, C3& VuALkFBUC *;iݬh:}ᣂp%y3tz&wf沓< %?S\vVvI8Gz٪' 0&C@vq)>O~Im3BnrĈQya TD8b[YsyL8"cvnqk\z;rec!t9J1?'J~,n^|i\H 8$l&*k708Rh@#Pvⓚ@BO}RTX l%WgE ]m:ke2m3,G[< [_;v2@1"V7X_}Ħaޣj &֐*')crPnY3mzY&%%`d=fFӲ'8IOI(m&ff-s7Wʋ3L9P{rszZ55`WA1J;-)6Jsh/@[hv_|9<2{P^K#\תu2mT7TTY׻fq9A?7Ze>KWce{}Bf0Gx9)fBYSháq 7}v\ | 0Nv90=. B_q~h'hOFMKW(:S r` ,,(:-+~_M x1 u|kE1bA X15 2fam N|M..m9= )\ZNO+cÙ3IFᰒ\Shr膲˿u BOFTjNn|s#fW4Cϙd"Mr"\R[&@T8[miObVڟ;VB ]w6OVA F1ZYBΜڢns/둖$~n#cNإE9s'Z0,_ٞ'd8(kTϕ9:2 2rkqgn#w&"\i9n@DzF<[S&ҽP+ Fɼ^~9> zG5e|օ$d^b&Wf9X;/ßH9q^冠a@~tz@]UP;_—r|T &o(m7)1J4/۶ ysR+_jԻٵ] 0!R?RJ ]k s?R%M$cF* KZp=RH`boD|M0fnֵ1)ݻM.)WӾ kñRxI~b ~X9it≱ɤ~\=ےN0Q @]S(="C k%, ᚓv/R?DCLХR2b"~RoZ2$ .Dw$m2x|O&?zK{T1ǟ;Rg[95FZ]+jf͸`Qx#o=G47%lT$-Ǽ73Ne,EE-:ͽ5ޭИЭB)ym@5\L[~ɾ!r&-8_JûYs.bV1> _C]Y?syEXDx#K[ 0a&S:wSGmǘ,:Aep`T" =oRG)EGg I̥h'Yjj]X*tPFUg1mXu KP:2M?}+Z4gD%ݿ!3#>,&730o~vtQur{&)O|ESHY OCR p9`DTxAq\ >_h񐕰X%T/ V%A+H5Cu1Y rPZM?w^;V2su~w?1]Jw=M -N8l6㳹_9PY-Du?Y>zrl;wUMu[6vu:!My⏇k7="pp \T1fxWhQPh<ID3H?@:7\:ϳѐ.pAARLKU`K{ 7rV]^5Zh.pHQǗW X F"MW$A"=ɼ|)DR-@7w8 RKMձ7wt;&>l/+ |37v4"A7zS21m.ؽXPBX{(+8g[6%$1LZH{ho L )IKPec[0b^9rCk^$x?wME˽œYW8r4!G2Z qLVݔwu:E@S G~ZiD-u3T+le#i^LLH ,t- 2 &us)xǯfo"8 *SvzvCye([iDL\T?dY4%K@np(չX/S2۬*o:P*Go!ﳬ ƷtfVs|큉պf%aCK@ZC,65KEVi":2dQKl#Xۃ0-JE (p+kE!RPi,q:yFlӓ,ԭPS&j=3ٽp AYv٢N(<9D @3:b_ SMK̝PNc}/4@Z '2eh'}G7;FB` J}V?Aߣd-wY̊ק;5iaYAՆojg*rFIوBX<"Bd^Kyגʣ:q7Npc+*Myz)RkBŅvpf[ biYbm(&"-Cp,cبR=+ۡl(I;L۝Cxk6b|TOQnFF+]Ri/UFTrsw&&`A)c!kY c/([YCsŲ`m'WvaݫCJOGڬMVPM*t" iMWN7la| '48k`$($#w;Ff3yP<ᖓ<HsAZ'ĒAi]ܱlN\V(iu{ Үbg9[/խDs`X0h;HߜN݅z9w7 i7w~&87Ƒ¨vwk)[r%TkuӁ[s[jY, :|*j@nCk2L;y5r h+GM-iB.n[h&E&_ hskuhL-ђa|R8_wɊKۆ>چ\x\NၺXX5!V6z3ef-X)0|>q释1jFb56t Sedi44cU7'Ц\a'+M`Hp"릵%-M}+ HWIIbYh\џ4 gu= ~ծiKtgDNNc񁉢ey8X'cp}4Ha2UDl܉Җ` )+v!A ^zoOɉh>1"j$E,DMѐHENʐЭ~2]V^Y}Ǧ΍;Ox6OQ)!$"pxn;*T~_SM%Zdkk曑2\V۶ByKiO+mdx3:1$$&RB(˨7}n/OaP:+fFEegB&P; ~\yĹ|6L[J螓!݊W~>tsLCNYe] 2_\ms#XX/=.q5l,sa 00=Mv/U KN]CwFcQDCl\7vHSVQ`ֿ ([ʇEB&0wf!(0W$m+ J/Ǟp1HA^2bƓeժZ^Ҡp( ƪ1 +j/RpTI1b.[߂P6b6FN`KL g/)lfYbt.w.o񇻏,]G#v TЄ# fKMٳY&N2gV"_\jo$4?ā5GEdOFXd`@vN^>੃pZCIXSi*_ /(IWʭӜX5oDϰU*0xXG4S_!8:ژWJ>Kgt_ quϢ;1\f$XlWA0Dxk6!6+ކE.MDlAl&U` ,-/.TXLzˋR2$ꚉLesXy}'ۈm ?Ǭ5MB4d`.Iáԛ$(7T_9?ps;q@fKt}۷1~0mLt5v+ q}tsMYιRwl*+p~; NYb;1ĨAȔYv K+g؀XdALOЁx1J;FTA}+"Pt`Dž89'8khdGys q$LWN7)Q@FGRқ]*qK{%>AчU& ~`vݜ'%J¿zf&VU ) 1:v( loQjyo/]\S0p8HdDyK[LD>A<1, .jD?:?XEeɼH\t ῨsA|͙,sgűњ( ޹6%exW?x)LM?|~~gP(BbB%v6i:ou=?Q:nxHhdO9: aE9@括t!wP*k]ʶTɨ_dp>YY% ;x]:>;{hG+I &0PW.j0bOW}gfdKR ?.>֧\ tz@*atg? wn}7x C1"G߇a h;:t)ćLp©^ !dA4^f.*Ye;/6R*'1~E }qܖN<7~:㺟\MoBI9qDz>k3HL9cpƑ&:>.MSNbm{] l `9`JJGi$KSI-Bg˖6=0SX[hbjkZT 5l$r(-MnJC:t/[>"dҴU KUQL_ETR;P}ږdtI?i0ԉVn8'D@~pvXI`6nlDU>-q?(1m4cޣ${0ˢNط[]rm!xB s9FsKO~Y0]ّT \z'51h in8mUJ@aFe)ӧ +EY'.4&~bOe!Hr"btdZ9a?^Bx?[9-Z.)U3˴fyFp p;;8}Po9ָ)9w.N-R^wRzQk8?kƋ+/h! Ľ6 Y `'|3&|EYU1h,YPOEeB᥈pT mkx L,VެW~1(%XϗẐűk9p]?ۖXFVުNÈR5T4 v:Ua*[Vk? Ƞ' U%L \؎m㞧*1 _ueߣt839p62hpB@6"\ևvf[.pvbٟHa/\dd9arYvQ$3:I_r? :^#@_(KtumZ#u=S{bR' "[D_a4٠ßu<6S hlۊ.c=kjך;Nv }a-KYvb3x@8uU/+SQA;H'#T2Q)x $n $ D`Qc7z$wĔ l$0!I&{{$IBYb,&+w-pSse(;q ,="q!?H0EpE ?v<~!}|$B.FT ԑ0tjxL.;I<_MC@'t'!#9-;霸AT2b eSm@s6HSUX_W[k36رJThp?媒m cZr"+t0(ē5tzYl95^J@?apa̬Fy<1/G;6`k: F Xi$FJ?s #K?-HT}oԦc#El/bDy}X ?oJbQTx8W6T%שt%pKfRJ%tڗgܑ#p`A?9hBW~=);k~~!;%x }=a}N kkv^.P)XB&"WByK;zh 7w_jb'@{8PvKW!vk}ng1 .IT4H"lf邺l:+%TR==Cg~~wUZU^lK_OOdrK$,]'\sS[-[4Wh9Zn{il7!)|HJh$='ՐT]'>3UV )[!}tRE G.aq qTMJ|Q"a&F\Qs}\Q"wFo |k`PXg ^* rL2Ҡ7Hv)nܴ9F 3A B+1sڰ5hVJޡT$,UVc%W+:(?rO]t\&_L4:uO@&PN] CNQ #-Skoڈ[LPBBWۻޒ8BjcɟTwL5Qѫ)_;I}\T\1,AQYx\K5pܒ ZL~2tʹ9DgvwʘQYSTsAk_sDf;R?uͻ!F Rsfʪð(yR=KyzxMutI c+wS yjP?*2췩a\j CxOo+#}o@ֈ#QPhiT_ SRz!M'[T+(u6pD+CW2\1hJL-Ԍ4Çೄ:'׽'Ph7AXZSvkw貾 + ܟf?Q"1E2(柝Hdxs-(yI+:u7ǽQ~U'2|)AG8\?ee%go;$y}+S_]# 8Ϭ1l37!r:ựQ82, ۰7Rh2qcEwziNqۿ<}]^eieYgMg ءVOY5:kE<2}T׆DExU΅>3/?¿=H!C9a5%U5;nyQW|mzhY[ ;.qK7U\OMCV VVFeVw!eKX5)ˈfrwqKB:Mۍ7{=asjFIjx4ֶ *; hC``jZ=7εKpT UUBM#`|Uaeyvo鬧9Q3, "Mwdrk:'''{3 VlA% ΛR]f0;8PZ4?*@=k~飝$ -~7us$BAXa\k{CB23}`,B_2Ыծ?5?"`>I/u2UG,X>2J+:I3ɰm jʓGq:G P;vvX3%%@ۮ?ıےx=˞8fK* (Zt+J iBx`/G*Mn7Tv*U@D6xvm3 WӅsUgbP7eO#WDJ}1sBp"=f< ˜$Xj,@nS-u=}"$ې#+nJV;ne+#g:2?WГJ4P`#ïTAfG@u`&!8cz-$@E:k]eܸw53?P]}BCLԸq'; E͚k/-`y<-{"90M_։7[ Cwt wNƖ_H֠1S?^}̱BOY6]tlY_.q$gz7< AAUS{E=_sYaɩ'bZퟔ ' )0G 1a=n??ZOeeiGD=T:m]Kk@58K%d_< 긘oԔ*&蟲~ZcQQaM|ǘp?q7o ABs2E3B($)  Q|Ө,o-WqtI4I}eÍN-mT#rY-,{Yy5$4 !j n&0hK$S[%K!v<\#ARRDP z4&WزM\n1- aLR JcE"$E+^^Foՠܒ'[:893T}(ދ?|yE_9taMTw>^RX;+wmTN~"| OVX쌐4>9k?.<1V3MU^wVHb)xl|ܸn9LWzⷧ(0b/f7|$tYyNvt942l\Ћ jjF=qGfvO[DK \^l< 5{5זc*0K}' SԅU4^~G'ї=595 L{,K;.?[Vk$I["=2v4VpXSgJ$k$dte!͍>ga8]*)ki @ԇ 6~G7BRu\@@ }F .!%1*n7a3d8?f)k@<|m@Cڕ u"Tcx,sTBQᩬ[OdU?,1WI ~\*^z*ʥ K75-L /7 n̚獙We؄YP~kwy R&KAiSիQ:fϠ noPH; g9>h01nCPaʂlOL 9z_ʵc3:i358Ѵ6DATϖi'$9yy(ܷ^|F B+.m>^?Z8}'ED+!k(qӻ-g, Gdپ\a g\RhBĎך+_VḰ @$T'$TrPac!N1vdA?%jt3uX]*חcUb[m4b.z :à?l{ż!HK!jarnKzrcKA |XIds(!Jh}%xyLy)N @TW(/x9SIw;+iDt4]g7qDj J\plY}#I,]%|P"AƜk)*MZMņ6=Yh-KG÷Z7T~AUѯ+7໻~;mqpI0@mY~G%n&P0k G2IBL$ҕ؋x-O'~;@DaH8C @$ሞS (wQp c9e{'g0A:?WT~N5F6Qp7pRPm=DQtgXjO:7B?o gm ߂6RRcXdWFnv^0<#*ђ2@#HRk\Uhas]/'tN Mbnu\9_NTC<=hIH1>|?]!S}9 *R"*OJCʖMw53Wp/ڈ0ȥ"~$r.Zp9@ݎQ:&/T{xFgfʕbH[mȣiJuqmͣ8Li9dUy}r>(QZLv>666,`O[Ə&i͵3{9"1*:xqg+aS9ww/J6Ҟz\(ۡZS`| vIXy:gGǩI'%͹5NI{zUdj@)YMC3w|3!0ֶe? t:5hY $S'D A1ю'0_}ŸkaVy_a*&%1ew \6ݭ*q~DKxBԓŨ\Q)%daZxh d'r(-,$JIe9=2Ex+E̫b2-TCͻ6gr*rTlƧD53rbasG0Rn.AKFl#qjʑ@*o<2m,!ӥhMo3Og0 -Z:m2o6p Yrb3K1 k`W|f`_QHi?oNsD$GCWJh^"J`= 7i(ҾZZ{8)G=v*Wf)+Z8tvI!"͙wF/j@kC;I~b6u?`B>j*_ Jw%pl: ySN *=ݒƄ&D0Lu~p-/w X"/ײSkwIkfp^hp3{) !Q% )ձD؃G?,v҉K@o%P ^2r߇ʶv/aǴl5|||ͬ\I+=8?~-'c d[YqSl/507)7ŚU;ߑIq܁z~:$_q CF33.1lb IͶ`^/p\c^WxPvyEl茀4]W9ֆ Gt\/#!-5.<8?94/$-pG>o';|FlwXNN0&߲CvӲK̡b(9;/N_C5]{Yϖm\B&S7ːS{UYBN!mzIvoxVi9!hRӪzrgh.dm^Z[̧7phtQd5[}Mc3k6Jss햲/sIK>+uR=#_DN&u$5d.⇛AsCYwA{ AWBQ#$1qr/8!4CVߋ|ds Vi@5^U4Ǥu!%偃7_c/νbKĒeuG?:$qAG{/V-;^@$R x~ %r{^A-MU1|muQ A5giII&a !~*9^X%{򄨩$w;n}A/*ut:zS~# l`1og`$env`1DTOq};0c |BV=YˬEI !v.~Y&,[35ƹNMdֹa5MqEfP*,~s;۵:n CJF"h/Oۛ%IwzCQ87:~QITl˄<^yƛ~p|Qn}F WDИDŽpEِɝFf#O<1M ݘ*qcE<z8ހD8-Amz TC N&k؋@Ko[cw^1 :F+鐎m=ѷtL50@O3=D;BJLz>!87k&Bi$+Fio >k;c1 9C@.m/puQ*]gFPW$*s,ˈp=F?t52]I8;84 ?Bs04LC¼Eaak="&Dxb[3/ՐLqC endstream endobj 5 0 obj 39747 endobj 6 0 obj << /Type /FontDescriptor /FontName /Courier10PitchBT-Roman /Flags 5 /FontBBox [ -44 -299 663 858 ] /ItalicAngle 0 /Ascent 858 /Descent -299 /CapHeight 858 /StemV 80 /FontFile 4 0 R >> endobj 7 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 9 0 obj << /F1 8 0 R >> endobj 10 0 obj << /Font 9 0 R /ProcSet [ /PDF ] >> endobj 11 0 obj << /Type /Page /Parent 3 0 R /Resources 10 0 R /MediaBox [ 0 0 283 425 ] /Contents 1 0 R >> endobj 3 0 obj << /Type /Pages /Resources 10 0 R /MediaBox [ 0 0 595 842 ] /Kids [ 11 0 R ] /Count 1 >> endobj 12 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 13 0 obj << /Creator /Producer /CreationDate (D:20050330030528+02'00') >> endobj xref 0 14 0000000000 65535 f 0000000017 00000 n 0000008376 00000 n 0000050953 00000 n 0000008403 00000 n 0000048289 00000 n 0000048315 00000 n 0000048556 00000 n 0000049519 00000 n 0000050717 00000 n 0000050757 00000 n 0000050823 00000 n 0000051091 00000 n 0000051151 00000 n trailer << /Size 14 /Root 12 0 R /Info 13 0 R >> startxref 51350 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/illustrations/multiband.dsp0000644000175000017500000000022011702130733030070 0ustar orlareyorlarey bandfilter = library("bandfilter.dsp").bandfilter; process = seq(i, 10, vgroup("band %i", bandfilter(1000*(1+i)) ) ); faust-0.9.46/documentation/faust-quick-reference-src/illustrations/integrator.dsp0000644000175000017500000000002011702130733030265 0ustar orlareyorlareyprocess = +~_; faust-0.9.46/documentation/faust-quick-reference-src/illustrations/ms.dsp0000644000175000017500000000005111702130733026532 0ustar orlareyorlarey// Faust Template process = _,_ <: +,-; faust-0.9.46/documentation/faust-quick-reference-src/illustrations/faust-diagram5.pdf0000644000175000017500000014233211702130733030720 0ustar orlareyorlarey%PDF-1.4 % 1 0 obj << /Length 2 0 R /Filter /FlateDecode >> stream x[,r7C= pd~.~dX/*okv391\*Qwx#J~Ӆ \蛸C}J󰟐;災~tQ=b=ų|4HKxZ5߾K-b?wAy[/Jx^C^ԡ<"HCNBQ䙨S5uQA糞ung]x2Zeӡ8K;dbbΎz ٵhZA2-3Wn4E*-0ڐI-;H&V#¸j@1RJ0JBϧ(QTI3]zы" YXeV5fa YIX`Nn*L*MH]$3HĄ"I<DHJ>%RLLC-|܈#zWr6eCհySqB\Zko@m/78WSDLt9$b@/1D"2]ۈDN&ňE ,TbB,5RM3Q Yh!Ru1t`tYD^y\HwVgɟV| 72 kIX'v0'71?х$ -1TL'/1-L6q#GL{2Sqh窕:3nDpfZ>xq)nٹn\oZƝUS޹Fn۹`"asoo&a,3 Yde9"l"gd+ Yٹ5(EZ Y,JE1*Ȣ* YTcJS+ 95aMDKLhI$p4%u~B_/b`\DD<(&3 Xz{G40gk Ɨܳn!6Z/61(MNil|,7MBlRؤDlRؤBlRX 6g[tL\l.6YMWb 튫Mы]ĦŮdbSl.6UMjĦMW]lNNDՋNkV t4(ѐ84PvE^mIVc:*TUa6TQ5dZ.6ZM (&r1hY bIrW"Ib0\lR%6.6&Ƹfbc]aYͳf; z񔺫0kCuD̻>?0tOw~jS ْT^N|~SrJxvɅ|ɉxBlrvBLl,],b&b8M$W)\lb%v\l.6bzBl4ب^TT##Ft$]tDE'4P/:!`z t5"mh3-2mt hoVc6Z#ѪFk@6ZтglFx)JJdzSW`W|3,c"gX1;rqqBv-a!Ϡϰx_] e3,uzLl.6F3(4kPx䋜x%6.6P.6!W؄3:cTeyQT0ߵDw-2gelzUja6k7p M +O.:˖bz)1X"6WbBt,*IbU$a6ذY/I<$cvp☑04 K"P91k*ê 7Ygۜڜb8mYms6o23359ԗ*+GKuh0Cun P̏hY1ۏ_B)' U mE DBP󊵄"P~xP pVi Q(kB/Ⱥ+ e[|y Aj86M>fZv$7g:oHz"qPN<DD {/f iH$}|I)}LꜫֿIb|/޿k$I8yt^WF 8 kX;:Xtka/oU o1}K-݅nuN>*?z>hlo.)aǢhC%<6ED31Yi݇^2?KPVA+#HbEx-t&7+2~xcb;!Dy)2 B.Њ/Ɂg]gdfv^r :kB,9L-?KQB@ q?yuk^y`Q=F.3PH cH/Ȕ\FthGfٸXޒK>H;D6+? tW~*}\ׯdq?NV|@S ^G'FGg:t}=^}.\L:m-@8(:m4giL*2Rq_7+qC͡?u' TJVrqggu!_#sԗvQOGHqvvH(D?|^K5r*33UES=_+?}^ eߥ:W.qvs/Yc}+fݨTdV=%!Iaw#'ZTy;FQIaO=ɂ1e7,g}{rnt{渉up}!v} y][9n\pWW+Ǔ0<_xܼ0][p72 _w$|vI?tYioQ`kP~o $KH T|j#/B}]xCqe-}1v"ۗl/O b侒xh{F%JKkK)R$JEXiRy33ep_})pSOWg_}d\g_}@%å~OyVG~Oy_(wU*wPK2Ck%&AP͠-S[F%puTv H0*^Kh@DD D  Rh@O0*1MBԘ$s ]ǀ$0$AH,L"VH$Rd)!DMI$, Å}]G$a9YFVAYs`YDLbO*3=Iw$J@N%&UĞ&QI$*\fZDmiOJĞ=1=|(*Mk@OCtH$FHL DDG5"gUp+ELwH5 ȩ&⤾dYhEژ/nTfk2Y$|kJ"HY,,0 daO/;1'v$r@`z;6nSSc"r~xMpf;ã0ܲs*v.~UbaY2>6$Ȋ$rdِDL"CYsc%\ŪDDTI$Je!J^U$Q#$j戩IƜ ̩U1DL5$1*a`zXA?1^v+Ȩ_PF Xz*>V~bpFlZF~%61\lM&&Q=C?bbu4&aRؤJl,\lLEQW?_kNND'_^kC:\tr*Sx)/:^{]tj :U/:5jNFlZ5%6^#߈MVMkF2Gn93Ce6"K[WC6*ٌ0 Uevv1;U̻Wm&&*brJS 7 KzsoweT/60uKWT+;QPZ|FZhSj N7pvq)٨+77Ν Ow~xHl"-bLN SOF'.6,1b'#\t$P/:`N+ָԒ14t3NfWoorZγ1 Qa_])acߐ{QbS#Kr#6^r&6.v9evJl,_l|פMj.)dMҋM &M,&+"޷/rQM mFF3tHl˦JF |D$^lD\gsP.6! 1biѵd%ri4A*-0ZI-FSM *@j@2RF1Q(, 8rE͆,rbRYEfa YXe0ȯ]1x8Wmf?<+[UYE@(|1pXS&:kbMTeNZi ^kW=m $l:jcJǰtYEյ0Ϸk9pZ8/[m~e1 +3rLP_SURW 8Ȭ :`Ǵ7NA}Bݗgn̾XOY0{s?V&9ܘ7_x{;!st sC]63>%wbНK4Hk K67<\h>s68H..%c7WzJimXXz""EOsõOY+QPUj_,G"b~o%HIɾ+(/EFv?jlC56c{qa,ܪ-pht ?Bb$1@*; $;,11|b-6ZVGdscDQ$iȐ%DEVЀ[!ޗǰf᎓Eޏюw{<"VEb z>z7FMbW(Ux;iendstream endobj 2 0 obj 6941 endobj 4 0 obj << /Length 5 0 R /Filter /FlateDecode /Length1 1493 /Length2 38721 /Length3 0 >> stream xct].vVl6WlcvرӱmwlN:fǺ9}~qkΪjV.sWcg +3scS?fn/+~+WPw!9Z[K3 +gWK @lo?.n&/tu2W\s/>+~!]c g _ eVp2r1MiԬ__yc//h h0v7>ۯ:,]`QLQ_t/9X̬GKɹi!^\4_H#u]M]ݾTp?o O, +gWߚ4W-\\_j~팿Z+:,,_}icnOKۛ;xcK4L_Gj hz*fk`l/ה8XJV_c;+[ޚVpp3viW㯮j+ڴr U{7̀ζV@%fj_M?S`aMDA᫥K  =ͣ'@_+*no`feoՈ_il6'dpsp7 u{+'7k6usv߶Jͭj zMqG g1ҥ6_r|WDtlN;OM2v5x¯-+hs^1\=k(ٺm:TuQ)0oKXa5APCR-^>coBeJqVzo7oN=:~~7I"!};/ݼӓAN|^h8̦]BwQ*AA-=As=[D Y^&pqݺ2rPf/m1}߁* iCkl39{;Nj#מ%Pёy 42y$0"l[I0tUu^=zOn&{8\BV/x$m;UoY~\*x{q!҅q(~:!=s:M\{m S:u_[KڅPI"%-SOCjv +;yAu9/$8z!R|շSK:D"ӏEOҍey 3֪/I~=tZ\ov^n1xѴg<hŃZ 9 AhW{&; +|=19@*|,v *+ֿ#J|)EAm .K;U]L$M2Nm|SH>c`%b$B*t^*·;* x#Mx2&bTj_bBѮzqEOK:j Nkx'YEd?Oyջӡz:NBYWlLoiètus[Ta-p 13>=pg;gP@| kMCq(gB YEE>'Us$q|I$MhouP|[{A~ZPއ"D7?m1{%P~SCDݍŃ !*4ytVNF)U\w o嗜ߔX-?PlTeh|(ޜ;Zf(uX)átFT?:.G#FOt޸1]&4 e 105$C1!6lxEi6/wږocmcn%+!!:JXNonuS^qg2$ gtHa5R1 5 k Ι{Pd 6L0$7[tvԕ P/'LHz`׿oTge͟㚛2# Dۄtj} =h vⲘgz?g^!Y0a"H0Oz 5Zt Ih-Y6(]} *ֱqr@2 }CU,+[xmaϾ!p־2 $8WQ"?޻9a[#Rdk\ha(rՙAL|LUDrUWry^Gv'>\+)iI=Ismv^AiT CQQGc7yKڟ~`g|^mAmQǚF3HMaiD3#qLcX]NjH\&A:2(?4DW^McrD~?Y,(U'/W%g`e1Xwy}QRa_A0/VCdAt]SE 8LX3v20m~/ǨrZ0<"=u|P3Cz 寧bD<iIwR&^V|}a~~-Yros;(߰NA,ߑ@W5K! WFhe`i*l(BOI\V5~9c q/5!$.VGS\F)LHSQXTv&Qb>ѳb7^jy/\Ÿ L)"ѵpH얷1[BKYֈSRt9PϓJ6O_Bўrxo=]o253k\nو~Pacc(_"IFlzEIETVPR]CٛhrF3BH8mA43 A-ЉmStm0z4ÍcD~Jc+Lp ڏA n7M3j,fu0Ym\F\/g&܌(7rJ6H~T$ˊ׾[5͝ӫ^ &?0ᴝF෢dlU%P5p6){WZao 3a@¬ipvy[LYvtg(hګ补"w致 t]D ]q@wXXqtd~0l\'\V7͑L79#IN&^fUO˔FNT%K Z Hh :JbŦ,mw%Eg؀Ma9v,L s%q3|>3#vDžz՞[͂}dLХ; +ᕃ!4TEFʻ?)ߖ34Y{$#Nƌkkhq]k~e $#Kl"mmGXߓ c%0ۭ7 S\8FmH=Edޘ0ftȠ.fW\MPBW~\MRJIt"JTs"ai>'&FGKr$vd2Sb[uu`1q'x-Re1q>{&μ6jUzRIM3LNq*O gJ|dI*qN[~C2i: p8 Cm qvn_^5N7oTJ0~z멛mt}VJZȵjQYt%ZtD&\VBVEwy&CX2E,>zgGh?ÜT7h/[r $yk"'/D1)AQۅQK>N/NilY:c+= D/46 TfkQ;kzs@e3t#xl. DR+_*NnVl#겵3v]%&˽t' ^g GZq(g0o0z{h9xAE)9\l*HG&8UZlUjƩ2H&pYӈ'hb !IOu{P#G3ѝz|,9v tDaPcC~Mm8ATY%%c )f~(<KA#S14AiqQS1#! j~HR# PXf` lHV3(Xjtи591 Y-l3gs1 ŹWn ! %xp}OUTYV<*ETwGe@A\x].}m:h3±hz++vLN%@|A>4YNgYFbO ){+P &ƨH;۞ysY~f3s,7f2<3"zxp)d[Tʜw|EK'G'C(X&tԬsbū"q`{M-2@@xNmfllhWiFg ˱4#z礕 v^ݮ Ks;Bn-iG?5>˞AEbǏ\9M4:e*:8Ft06!~B8J/nٟÝѠk]/-42@,>χ_v~).}1Z"c^=`rđ4292%aA _OĸE>D&9o5;Ϗc6.7W?w(ff*6瘪>gH'ҼSA4xR>LsBm٠ɤ\vKn`.Խryl!C$E03C-#xjɏ=R\Jh}6{;aK@95D) M/4Bb9-wޓ"l6 @mf;ඟ@KE.깃 ʠ$eܠ|[nf0ƑF !L8S5 ,Bp~5}: ⼥0w '?tw5hx a{A.< 6/rZuٜjĞOICj֟&v_#ݞ7}5щz}r])-BHm7ʼnt,DRq't^ÍPDI!΂6GRG+)i؞0_G;)8t4\Nh=5FI6;zX ꠣbe4V(ϤNޝ#DH%.aF~_SճwWD| k!{Ү朼na~7(F#DN"WƮb|F&Q:jKw>R(ʩO7nɉrAOt #!l'Ю_^d0eDz%59l%lpts0,zvyL WdWF31Mܙ}h)b?nƄ۟jMAh_:MvbGFg_FఴSkUPAsnk$=fg%^.c_^qb*)w1R.XCd.fw_Na bꁽ㟲Ğ}Rq"Cٌ\:9>m(u$fZC AXHv1)%Y~Y-j gvds hIBjBJ8k֗ O:N@+e_fe=]j[KkcH@Q2;Gae=i9uu֍Cxkf͜)2\RG`6HA-842*ͤ+wSK@:bux2{L^cBh+1Fa:?j\L N~MKzLHkUۈ@Z6vg=ogEX'E6si DC#ԹA_RM1OTXuǾÛQ2^}˵8-gry" (u2E6Dqnr|v.-mh|?PrܚVkSق9wiha>Il cJ4[,c Hqvo.dSڈB)P 0g%3$f-/RXb4o\@Vr|R-BB}Ihb'D6KT% &jt&>P &@{Yw[SL GJgdžgN6hq sem 3ḶJZrDa=m4s;EQ(ed=8Pϰ|U{[xhG%xܜ2>Ku@ԋa~6C,F3捝e!Ih#EFCut٪ C CgARf̼·)6sυFk:ICW1G_}]Cl>Z{Il6G U:Uշ:QvC0Qyx$0ڙLAUG?M\Jyf<՗:v4ɪE.6ȩ@7b|wQD># ^MnmonPJI+inGmNߖ?4@Uwڴ@{!13e@s7M lBA Y\X\ ~$Ǭ(sV>nR&SK K}UzO%r\jhAJ 6oqyuFU'm/ .I<B,m~wsMbG,ЩYD'{4`BCxlDQ Bﭒεdj5!)?{{PABq ( W֞Z @!<i9b\ t; ;Ȑٴ:}w]m *>f=[R;frC 1 o@:ngq~\yJ78>SVSc9)]Ioͷʱ6}ByT{TֻR:Q ñRiw_*9}{uaD!4QO]>ZɄdAM^L7Nӳ5՘$:mIkv 3Z+;cT2յ y jv0fQ`xp \ŜQ3+072Nȥ]"cvi,Xw*%duqfZ#S9ۥf}m!%]2'tN9/Uzo'%F6;CaxFOzgZ>P$xk_7(ku=>G̝ E=UppLng`~Yfe\;Xg5Hg. BB3s+XUbޜc DEqeT!) KSKhmuUL[6cφJ&gߑ-ŧг-TJ4? i=V,fPX+Eil0n~2i*<xJ ԇ*%whq%nnb$Y 0ZZlqkpĜcKڎlDQeRN v~umR%V,*Tmv(Ouٍ|D蝋PѡOrlo<24u<#?Abʶ eNBFb),Ȯ7I<AFۍ1[֣x=|nR&ڕفYrʏЈ8}H+%m{D7Y1N8&O"_Y lslz(f%CA4\0n"[[Bz٦YƦ%)w> { qeT 1tl,Y`kB 20@}Sǃ̞{=8T:5M: DI`X"d/_lދ:7y\8g[Yn5%@xҠ\p}('<Ҷf`WvFڱ)l#c>WuzHZ"h1]+k^@H|EO#t62&yiSLQhm#E|(^=XUXa=N9&,mԠ *v\[y6Miю` i] x1K6.Cs|=\vj_4[wZGf L  C.\\"ۅ$G^0KN' ݈@`tg{ ?Qn%.2&͕ƜP 諜%"8ێ).L5B٩eAlP DqI"=#zlh,+׶l_i-gZ<т.39657KȜ(-x%aOZi3Xnݍ c4:+)dߨ֧. ^D.]⼯CRAm?Շr~lELt$Th0F'L NR߉&EW 0m?^'ӓX IVlɸacVOD.ɄP`f6}fojo Fy`% mMYqp ]|wVmWmVy9# !wո({ JXyH.&21𩈁J NAk{" }^#gLLE2#0KUNu]7'iL&# +1ӍIJ{'Fg5cnQ0Icb'ζ )]E|,!$M0u;I&"Yߐ!FYlE)^^(OEY*F2o&8㎉\Ea .3 aKߨ.cJWa~rs^ {JI.WvZgEӿB<"~8TQO}8֧MΐlCyiEc8QCهTSs.VE̅B&!;ɟ =\WY:^HNMAFB+fƻ=RSYe.q 7$Yw@#aΉT2ZJ|; A/orծ Cv$T@+#6ly~}.߸xe h^$TQ%?&'.n:h(BRc$BQj͎3-N[$aa1ni|SPaϷR$ۿ۴ܻEgDy$+p.=h3r«[R..wϐHϡu;i/ J՝t|*[ deC5u^bC/e1%˃k@cX :kPowy+ #e'pkSo2gA6̎͡`9U7 (S}!.od A y`12"U /1ffUcp:/dOǎ\Iă|*L?Ҽ9CrL$qIK2Q Wζ2SZ6sY#C :"|PrQ n,X-rdcMԥO,M-)qYw}8e@0z`/L5UrF;Z7 6|㉬ɾ_kNnY|gz}YQXq8ЩA -,kxPmՁLr<ˆs, G twjG'R)n¸nr3o⇢mI&In\JQ7yEiίT"cTdısqF1:-3][ؔd햰|vf |~U׌B*c^]QdMo ,T+[@H HnkA~sn$2suI_$%9T$ƗUX:p{ o-5 S(L /?@QDsQg-Hr6i/";>kaLMNtf?@0 nKunbL"fc?^Qڝ}E vA^߃Tܚ5x Zy~<,Xj['}4%v3%nEI~V{݋$ZF4^ka^%,9ځsEEh׶D*HTtTȫe`m,vc7z3mx :WR;HdH}F&VC!1Wa!#LewVWrpgڀwk${)$#6V=Vd) N ָ5}b=t!)o儰uSciz6b:-43]_i11q THЊKQ]{ th3T9g;܉lY-ݏU4oa}8O^V" n_鱦3(ΡW(OxmV&Xt7QS6! ISql~T09`FHb&S4hG3]S8ߍB%KQ:Z_idնߗem&"jw|-H5PܔG?բyyɁ>YXmVd!Uf!ѧc_,G 3%FLAA.Wj?Ys4t4E n=oGK~:>ԵrVfHS#\߭[XE+AʋmcwYkh|ЕvُLu )t)Vc1A9GRam&0rZ幣PF}, ;a5e+z$I-q8ShI_W)ZGZrÆEϦpmrxRYI^+K2-Jeɧm+Qw"Kّ|*uKVe_^95jܵj`D'svTZ8cI;_gʉlNZ )nzlVMe:tz?+qú0\8f&P_m'JU53pݣtʁ[ $.Ȩ<ǎ=='+%8rAZ|RSa2]=SkU2g ''X2x=ju kgg{ˊ͊e_ g,WP3.}l¤YčqE[oa1w_ݤo~tJ ?{Ĥ&fD(Qnk*3X>KRgB&@ )ƦFv=LGǤޓu0gIDۏ \^Fh6|nnxAv= Qy"'V6xј w3|sz'P-Y U.,n.nI&zBgR>uȠ'C?9 5z-LAx>+_j8'1$i\5[`_#~\6?e=0h5;OkޣcVUɜ "b^O3r0]!‘oŘz"@HO帶2h@( !?V0OHqbD2{f|'!3?af$ K^J@$YmX*hƽ9a?,O< r2.p]'AoaG-Ƶyfx/-%Y#E[ ۉ[:'7x Q5y0^U(aCq'e_'.`ɿͧHyi~.w cyc t4A/\+hmԆwN4x ߴ! =G1bBlJnjgc\pmbmr)M6ZD1iU8bt[oKƿrTg0-ȏpY'lWzoR^ju-VWM{swڈ=gbdqd GS_*#.F,hpgD_:*o, C3& VuALkFBUC *;iݬh:}ᣂp%y3tz&wf沓< %?S\vVvI8Gz٪' 0&C@vq)>O~Im3BnrĈQya TD8b[YsyL8"cvnqk\z;rec!t9J1?'J~,n^|i\H 8$l&*k708Rh@#Pvⓚ@BO}RTX l%WgE ]m:ke2m3,G[< [_;v2@1"V7X_}Ħaޣj &֐*')crPnY3mzY&%%`d=fFӲ'8IOI(m&ff-s7Wʋ3L9P{rszZ55`WA1J;-)6Jsh/@[hv_|9<2{P^K#\תu2mT7TTY׻fq9A?7Ze>KWce{}Bf0Gx9)fBYSháq 7}v\ | 0Nv90=. B_q~h'hOFMKW(:S r` ,,(:-+~_M x1 u|kE1bA X15 2fam N|M..m9= )\ZNO+cÙ3IFᰒ\Shr膲˿u BOFTjNn|s#fW4Cϙd"Mr"\R[&@T8[miObVڟ;VB ]w6OVA F1ZYBΜڢns/둖$~n#cNإE9s'Z0,_ٞ'd8(kTϕ9:2 2rkqgn#w&"\i9n@DzF<[S&ҽP+ Fɼ^~9> zG5e|օ$d^b&Wf9X;/ßH9q^冠a@~tz@]UP;_—r|T &o(m7)1J4/۶ ysR+_jԻٵ] 0!R?RJ ]k s?R%M$cF* KZp=RH`boD|M0fnֵ1)ݻM.)WӾ kñRxI~b ~X9it≱ɤ~\=ےN0Q @]S(="C k%, ᚓv/R?DCLХR2b"~RoZ2$ .Dw$m2x|O&?zK{T1ǟ;Rg[95FZ]+jf͸`Qx#o=G47%lT$-Ǽ73Ne,EE-:ͽ5ޭИЭB)ym@5\L[~ɾ!r&-8_JûYs.bV1> _C]Y?syEXDx#K[ 0a&S:wSGmǘ,:Aep`T" =oRG)EGg I̥h'Yjj]X*tPFUg1mXu KP:2M?}+Z4gD%ݿ!3#>,&730o~vtQur{&)O|ESHY OCR p9`DTxAq\ >_h񐕰X%T/ V%A+H5Cu1Y rPZM?w^;V2su~w?1]Jw=M -N8l6㳹_9PY-Du?Y>zrl;wUMu[6vu:!My⏇k7="pp \T1fxWhQPh<ID3H?@:7\:ϳѐ.pAARLKU`K{ 7rV]^5Zh.pHQǗW X F"MW$A"=ɼ|)DR-@7w8 RKMձ7wt;&>l/+ |37v4"A7zS21m.ؽXPBX{(+8g[6%$1LZH{ho L )IKPec[0b^9rCk^$x?wME˽œYW8r4!G2Z qLVݔwu:E@S G~ZiD-u3T+le#i^LLH ,t- 2 &us)xǯfo"8 *SvzvCye([iDL\T?dY4%K@np(չX/S2۬*o:P*Go!ﳬ ƷtfVs|큉պf%aCK@ZC,65KEVi":2dQKl#Xۃ0-JE (p+kE!RPi,q:yFlӓ,ԭPS&j=3ٽp AYv٢N(<9D @3:b_ SMK̝PNc}/4@Z '2eh'}G7;FB` J}V?Aߣd-wY̊ק;5iaYAՆojg*rFIوBX<"Bd^Kyגʣ:q7Npc+*Myz)RkBŅvpf[ biYbm(&"-Cp,cبR=+ۡl(I;L۝Cxk6b|TOQnFF+]Ri/UFTrsw&&`A)c!kY c/([YCsŲ`m'WvaݫCJOGڬMVPM*t" iMWN7la| '48k`$($#w;Ff3yP<ᖓ<HsAZ'ĒAi]ܱlN\V(iu{ Үbg9[/խDs`X0h;HߜN݅z9w7 i7w~&87Ƒ¨vwk)[r%TkuӁ[s[jY, :|*j@nCk2L;y5r h+GM-iB.n[h&E&_ hskuhL-ђa|R8_wɊKۆ>چ\x\NၺXX5!V6z3ef-X)0|>q释1jFb56t Sedi44cU7'Ц\a'+M`Hp"릵%-M}+ HWIIbYh\џ4 gu= ~ծiKtgDNNc񁉢ey8X'cp}4Ha2UDl܉Җ` )+v!A ^zoOɉh>1"j$E,DMѐHENʐЭ~2]V^Y}Ǧ΍;Ox6OQ)!$"pxn;*T~_SM%Zdkk曑2\V۶ByKiO+mdx3:1$$&RB(˨7}n/OaP:+fFEegB&P; ~\yĹ|6L[J螓!݊W~>tsLCNYe] 2_\ms#XX/=.q5l,sa 00=Mv/U KN]CwFcQDCl\7vHSVQ`ֿ ([ʇEB&0wf!(0W$m+ J/Ǟp1HA^2bƓeժZ^Ҡp( ƪ1 +j/RpTI1b.[߂P6b6FN`KL g/)lfYbt.w.o񇻏,]G#v TЄ# fKMٳY&N2gV"_\jo$4?ā5GEdOFXd`@vN^>੃pZCIXSi*_ /(IWʭӜX5oDϰU*0xXG4S_!8:ژWJ>Kgt_ quϢ;1\f$XlWA0Dxk6!6+ކE.MDlAl&U` ,-/.TXLzˋR2$ꚉLesXy}'ۈm ?Ǭ5MB4d`.Iáԛ$(7T_9?ps;q@fKt}۷1~0mLt5v+ q}tsMYιRwl*+p~; NYb;1ĨAȔYv K+g؀XdALOЁx1J;FTA}+"Pt`Dž89'8khdGys q$LWN7)Q@FGRқ]*qK{%>AчU& ~`vݜ'%J¿zf&VU ) 1:v( loQjyo/]\S0p8HdDyK[LD>A<1, .jD?:?XEeɼH\t ῨsA|͙,sgűњ( ޹6%exW?x)LM?|~~gP(BbB%v6i:ou=?Q:nxHhdO9: aE9@括t!wP*k]ʶTɨ_dp>YY% ;x]:>;{hG+I &0PW.j0bOW}gfdKR ?.>֧\ tz@*atg? wn}7x C1"G߇a h;:t)ćLp©^ !dA4^f.*Ye;/6R*'1~E }qܖN<7~:㺟\MoBI9qDz>k3HL9cpƑ&:>.MSNbm{] l `9`JJGi$KSI-Bg˖6=0SX[hbjkZT 5l$r(-MnJC:t/[>"dҴU KUQL_ETR;P}ږdtI?i0ԉVn8'D@~pvXI`6nlDU>-q?(1m4cޣ${0ˢNط[]rm!xB s9FsKO~Y0]ّT \z'51h in8mUJ@aFe)ӧ +EY'.4&~bOe!Hr"btdZ9a?^Bx?[9-Z.)U3˴fyFp p;;8}Po9ָ)9w.N-R^wRzQk8?kƋ+/h! Ľ6 Y `'|3&|EYU1h,YPOEeB᥈pT mkx L,VެW~1(%XϗẐűk9p]?ۖXFVުNÈR5T4 v:Ua*[Vk? Ƞ' U%L \؎m㞧*1 _ueߣt839p62hpB@6"\ևvf[.pvbٟHa/\dd9arYvQ$3:I_r? :^#@_(KtumZ#u=S{bR' "[D_a4٠ßu<6S hlۊ.c=kjך;Nv }a-KYvb3x@8uU/+SQA;H'#T2Q)x $n $ D`Qc7z$wĔ l$0!I&{{$IBYb,&+w-pSse(;q ,="q!?H0EpE ?v<~!}|$B.FT ԑ0tjxL.;I<_MC@'t'!#9-;霸AT2b eSm@s6HSUX_W[k36رJThp?媒m cZr"+t0(ē5tzYl95^J@?apa̬Fy<1/G;6`k: F Xi$FJ?s #K?-HT}oԦc#El/bDy}X ?oJbQTx8W6T%שt%pKfRJ%tڗgܑ#p`A?9hBW~=);k~~!;%x }=a}N kkv^.P)XB&"WByK;zh 7w_jb'@{8PvKW!vk}ng1 .IT4H"lf邺l:+%TR==Cg~~wUZU^lK_OOdrK$,]'\sS[-[4Wh9Zn{il7!)|HJh$='ՐT]'>3UV )[!}tRE G.aq qTMJ|Q"a&F\Qs}\Q"wFo |k`PXg ^* rL2Ҡ7Hv)nܴ9F 3A B+1sڰ5hVJޡT$,UVc%W+:(?rO]t\&_L4:uO@&PN] CNQ #-Skoڈ[LPBBWۻޒ8BjcɟTwL5Qѫ)_;I}\T\1,AQYx\K5pܒ ZL~2tʹ9DgvwʘQYSTsAk_sDf;R?uͻ!F Rsfʪð(yR=KyzxMutI c+wS yjP?*2췩a\j CxOo+#}o@ֈ#QPhiT_ SRz!M'[T+(u6pD+CW2\1hJL-Ԍ4Çೄ:'׽'Ph7AXZSvkw貾 + ܟf?Q"1E2(柝Hdxs-(yI+:u7ǽQ~U'2|)AG8\?ee%go;$y}+S_]# 8Ϭ1l37!r:ựQ82, ۰7Rh2qcEwziNqۿ<}]^eieYgMg ءVOY5:kE<2}T׆DExU΅>3/?¿=H!C9a5%U5;nyQW|mzhY[ ;.qK7U\OMCV VVFeVw!eKX5)ˈfrwqKB:Mۍ7{=asjFIjx4ֶ *; hC``jZ=7εKpT UUBM#`|Uaeyvo鬧9Q3, "Mwdrk:'''{3 VlA% ΛR]f0;8PZ4?*@=k~飝$ -~7us$BAXa\k{CB23}`,B_2Ыծ?5?"`>I/u2UG,X>2J+:I3ɰm jʓGq:G P;vvX3%%@ۮ?ıےx=˞8fK* (Zt+J iBx`/G*Mn7Tv*U@D6xvm3 WӅsUgbP7eO#WDJ}1sBp"=f< ˜$Xj,@nS-u=}"$ې#+nJV;ne+#g:2?WГJ4P`#ïTAfG@u`&!8cz-$@E:k]eܸw53?P]}BCLԸq'; E͚k/-`y<-{"90M_։7[ Cwt wNƖ_H֠1S?^}̱BOY6]tlY_.q$gz7< AAUS{E=_sYaɩ'bZퟔ ' )0G 1a=n??ZOeeiGD=T:m]Kk@58K%d_< 긘oԔ*&蟲~ZcQQaM|ǘp?q7o ABs2E3B($)  Q|Ө,o-WqtI4I}eÍN-mT#rY-,{Yy5$4 !j n&0hK$S[%K!v<\#ARRDP z4&WزM\n1- aLR JcE"$E+^^Foՠܒ'[:893T}(ދ?|yE_9taMTw>^RX;+wmTN~"| OVX쌐4>9k?.<1V3MU^wVHb)xl|ܸn9LWzⷧ(0b/f7|$tYyNvt942l\Ћ jjF=qGfvO[DK \^l< 5{5זc*0K}' SԅU4^~G'ї=595 L{,K;.?[Vk$I["=2v4VpXSgJ$k$dte!͍>ga8]*)ki @ԇ 6~G7BRu\@@ }F .!%1*n7a3d8?f)k@<|m@Cڕ u"Tcx,sTBQᩬ[OdU?,1WI ~\*^z*ʥ K75-L /7 n̚獙We؄YP~kwy R&KAiSիQ:fϠ noPH; g9>h01nCPaʂlOL 9z_ʵc3:i358Ѵ6DATϖi'$9yy(ܷ^|F B+.m>^?Z8}'ED+!k(qӻ-g, Gdپ\a g\RhBĎך+_VḰ @$T'$TrPac!N1vdA?%jt3uX]*חcUb[m4b.z :à?l{ż!HK!jarnKzrcKA |XIds(!Jh}%xyLy)N @TW(/x9SIw;+iDt4]g7qDj J\plY}#I,]%|P"AƜk)*MZMņ6=Yh-KG÷Z7T~AUѯ+7໻~;mqpI0@mY~G%n&P0k G2IBL$ҕ؋x-O'~;@DaH8C @$ሞS (wQp c9e{'g0A:?WT~N5F6Qp7pRPm=DQtgXjO:7B?o gm ߂6RRcXdWFnv^0<#*ђ2@#HRk\Uhas]/'tN Mbnu\9_NTC<=hIH1>|?]!S}9 *R"*OJCʖMw53Wp/ڈ0ȥ"~$r.Zp9@ݎQ:&/T{xFgfʕbH[mȣiJuqmͣ8Li9dUy}r>(QZLv>666,`O[Ə&i͵3{9"1*:xqg+aS9ww/J6Ҟz\(ۡZS`| vIXy:gGǩI'%͹5NI{zUdj@)YMC3w|3!0ֶe? t:5hY $S'D A1ю'0_}ŸkaVy_a*&%1ew \6ݭ*q~DKxBԓŨ\Q)%daZxh d'r(-,$JIe9=2Ex+E̫b2-TCͻ6gr*rTlƧD53rbasG0Rn.AKFl#qjʑ@*o<2m,!ӥhMo3Og0 -Z:m2o6p Yrb3K1 k`W|f`_QHi?oNsD$GCWJh^"J`= 7i(ҾZZ{8)G=v*Wf)+Z8tvI!"͙wF/j@kC;I~b6u?`B>j*_ Jw%pl: ySN *=ݒƄ&D0Lu~p-/w X"/ײSkwIkfp^hp3{) !Q% )ձD؃G?,v҉K@o%P ^2r߇ʶv/aǴl5|||ͬ\I+=8?~-'c d[YqSl/507)7ŚU;ߑIq܁z~:$_q CF33.1lb IͶ`^/p\c^WxPvyEl茀4]W9ֆ Gt\/#!-5.<8?94/$-pG>o';|FlwXNN0&߲CvӲK̡b(9;/N_C5]{Yϖm\B&S7ːS{UYBN!mzIvoxVi9!hRӪzrgh.dm^Z[̧7phtQd5[}Mc3k6Jss햲/sIK>+uR=#_DN&u$5d.⇛AsCYwA{ AWBQ#$1qr/8!4CVߋ|ds Vi@5^U4Ǥu!%偃7_c/νbKĒeuG?:$qAG{/V-;^@$R x~ %r{^A-MU1|muQ A5giII&a !~*9^X%{򄨩$w;n}A/*ut:zS~# l`1og`$env`1DTOq};0c |BV=YˬEI !v.~Y&,[35ƹNMdֹa5MqEfP*,~s;۵:n CJF"h/Oۛ%IwzCQ87:~QITl˄<^yƛ~p|Qn}F WDИDŽpEِɝFf#O<1M ݘ*qcE<z8ހD8-Amz TC N&k؋@Ko[cw^1 :F+鐎m=ѷtL50@O3=D;BJLz>!87k&Bi$+Fio >k;c1 9C@.m/puQ*]gFPW$*s,ˈp=F?t52]I8;84 ?Bs04LC¼Eaak="&Dxb[3/ՐLqC endstream endobj 5 0 obj 39747 endobj 6 0 obj << /Type /FontDescriptor /FontName /Courier10PitchBT-Roman /Flags 5 /FontBBox [ -44 -299 663 858 ] /ItalicAngle 0 /Ascent 858 /Descent -299 /CapHeight 858 /StemV 80 /FontFile 4 0 R >> endobj 7 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 9 0 obj << /F1 8 0 R >> endobj 10 0 obj << /Font 9 0 R /ProcSet [ /PDF ] >> endobj 11 0 obj << /Type /Page /Parent 3 0 R /Resources 10 0 R /MediaBox [ 0 0 283 425 ] /Contents 1 0 R >> endobj 3 0 obj << /Type /Pages /Resources 10 0 R /MediaBox [ 0 0 595 842 ] /Kids [ 11 0 R ] /Count 1 >> endobj 12 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 13 0 obj << /Creator /Producer /CreationDate (D:20050329205041+02'00') >> endobj xref 0 14 0000000000 65535 f 0000000017 00000 n 0000007043 00000 n 0000049620 00000 n 0000007070 00000 n 0000046956 00000 n 0000046982 00000 n 0000047223 00000 n 0000048186 00000 n 0000049384 00000 n 0000049424 00000 n 0000049490 00000 n 0000049758 00000 n 0000049818 00000 n trailer << /Size 14 /Root 12 0 R /Info 13 0 R >> startxref 50017 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/illustrations/faust-diagram6.pdf0000644000175000017500000014074511702130733030727 0ustar orlareyorlarey%PDF-1.4 % 1 0 obj << /Length 2 0 R /Filter /FlateDecode >> stream xˎ$9rE ?z)̌ZZSfWY-`lhyq N7GxH5#??$Ħ?ۏ?fʛ>[~x QҞt#r?Y^QAϳsz׍FUyY]x^A}}y YIQm?>[3:T{CgvҪ+lE?ΞS |^Do憢҆QDZ7zԗůdh04n0:Vҳ 5< u{UU6Rn>:;t[?l˿>~odzIOsJmߙܞazb@gI A/'8PӢ욁nu7uٍzq=S5ݘF>BlbDlb؄Fl؄z؄Zc4͐LS-3sP#(! HGaq! SaYXfы,0 HJi(\U Ќ,42 B*#Ud!HBs*IcED)DL=G" }]T rY Ո$#YTs8@UĴ[}|?j~{T9:iUЏVjs2AQyԶ&a>n% Wm$Z؏ZDk@"H$RH@"B$R VD g$RL)$R┢+H)-E"R}}I>TSLbMӢz}?0lH"DLd$Q yL*ТbLT$!IHD$!$ĐP_5hd&$Ԙ6T-0 C-3$Lc̐5T9Ռ$s!i5~끚4ܯjQ$G݊>;7RKڭjmXNUw֜Am s;$&!90 Q$!IHC&$tU$۰@Bs$3q$LAo2 kHF&QzL-L r$jEN-"hI$0fHU&ї">\ZT_M7ԍy</݉Hd ӟ3KL=RLͱt%6.6 ƟAIg8bbv+ؔKĦMQbSbSpn%_lDEGHh :.:EGh%3YF=0>|ɪ">F3d9MC6jm/6~ؖk>K?c]1^_M?z֕?[)=9{gغ|zvǴlR#6@G =}Ok/JMԋM,&M&M@5&(n2 ߗ{&dH-ȦuM&`kE6^;獯ja6_;Mlo_e0hEbgTMvQ!6Z.6Ƌ4b#z'XEN t~ZW_hWV(ou! e.}x[;B=yVHz'e JŢ\R^͵Ԩ<[ I8m+! Pg$I(s6Bd2#$AƋ̃^ɌE93D!QO ϫ(2/}u>ò2//X}RxG_Fʃ'cXc9fX8F2ϋ: r-"bJ J,ػ;bT>tǺ|SN/B[|Qlum~=67G8'>C|n!0}A=cĹ:+}c깍%7f>Ytcef8fUҫt-߾w?ndoV|ú1ѷ4+vz_gx9aγ'd;QmDkma0>C(GX N5VVj<+쨺0UYp53 ;j`@gE jF jk)ai۹/J-[Z5QO[+}xvNGH)u P'"ۣG&PQMeߞu41`ɴL(EP&۠G5&! Ih`v+}5A$T*PC g1oճQ³QUdY̨6QI,efYGUfYGm³Y̨U=5ENFՆƃ(A/ c{zL>%̛#<㨼bG[MS|w|V肧殐4"+'!cFvc+$7 kHq27W7VCGN;}_q iR~inYʹsd%=beyd㐧,P.PNř,͏qf͎74/j]7olˈXF9VV\?& 81t\Gd(-R1(c_Е.T^G}>y߸԰y.pŨTe/{s>v6ZIG}>yܷT$̯6v(Ǘl#ayf~ʖLZJl;bq~dR Rճisp)٤Aq$M&>̯oŦFQ421ճZ[+ʋqދrkYg\ű 9-Eu>~ mFEc/vW:!&˘19>*;(nJbL^݂?z`Cq&?N1Bmqy y [=Ȼ64 1G-U/h2򖙷}gxԖzvE}YS,TܵF1u[!(n,6䅡n/|0.kKc0_JS|jU(ahO]`q AcSvCmld3(.ho`|,vHg^F4e+ܮ>(zy6bNqr{y]xZ ߈t:Qn?=QqH6endstream endobj 2 0 obj 6184 endobj 4 0 obj << /Length 5 0 R /Filter /FlateDecode /Length1 1493 /Length2 38721 /Length3 0 >> stream xct].vVl6WlcvرӱmwlN:fǺ9}~qkΪjV.sWcg +3scS?fn/+~+WPw!9Z[K3 +gWK @lo?.n&/tu2W\s/>+~!]c g _ eVp2r1MiԬ__yc//h h0v7>ۯ:,]`QLQ_t/9X̬GKɹi!^\4_H#u]M]ݾTp?o O, +gWߚ4W-\\_j~팿Z+:,,_}icnOKۛ;xcK4L_Gj hz*fk`l/ה8XJV_c;+[ޚVpp3viW㯮j+ڴr U{7̀ζV@%fj_M?S`aMDA᫥K  =ͣ'@_+*no`feoՈ_il6'dpsp7 u{+'7k6usv߶Jͭj zMqG g1ҥ6_r|WDtlN;OM2v5x¯-+hs^1\=k(ٺm:TuQ)0oKXa5APCR-^>coBeJqVzo7oN=:~~7I"!};/ݼӓAN|^h8̦]BwQ*AA-=As=[D Y^&pqݺ2rPf/m1}߁* iCkl39{;Nj#מ%Pёy 42y$0"l[I0tUu^=zOn&{8\BV/x$m;UoY~\*x{q!҅q(~:!=s:M\{m S:u_[KڅPI"%-SOCjv +;yAu9/$8z!R|շSK:D"ӏEOҍey 3֪/I~=tZ\ov^n1xѴg<hŃZ 9 AhW{&; +|=19@*|,v *+ֿ#J|)EAm .K;U]L$M2Nm|SH>c`%b$B*t^*·;* x#Mx2&bTj_bBѮzqEOK:j Nkx'YEd?Oyջӡz:NBYWlLoiètus[Ta-p 13>=pg;gP@| kMCq(gB YEE>'Us$q|I$MhouP|[{A~ZPއ"D7?m1{%P~SCDݍŃ !*4ytVNF)U\w o嗜ߔX-?PlTeh|(ޜ;Zf(uX)átFT?:.G#FOt޸1]&4 e 105$C1!6lxEi6/wږocmcn%+!!:JXNonuS^qg2$ gtHa5R1 5 k Ι{Pd 6L0$7[tvԕ P/'LHz`׿oTge͟㚛2# Dۄtj} =h vⲘgz?g^!Y0a"H0Oz 5Zt Ih-Y6(]} *ֱqr@2 }CU,+[xmaϾ!p־2 $8WQ"?޻9a[#Rdk\ha(rՙAL|LUDrUWry^Gv'>\+)iI=Ismv^AiT CQQGc7yKڟ~`g|^mAmQǚF3HMaiD3#qLcX]NjH\&A:2(?4DW^McrD~?Y,(U'/W%g`e1Xwy}QRa_A0/VCdAt]SE 8LX3v20m~/ǨrZ0<"=u|P3Cz 寧bD<iIwR&^V|}a~~-Yros;(߰NA,ߑ@W5K! WFhe`i*l(BOI\V5~9c q/5!$.VGS\F)LHSQXTv&Qb>ѳb7^jy/\Ÿ L)"ѵpH얷1[BKYֈSRt9PϓJ6O_Bўrxo=]o253k\nو~Pacc(_"IFlzEIETVPR]CٛhrF3BH8mA43 A-ЉmStm0z4ÍcD~Jc+Lp ڏA n7M3j,fu0Ym\F\/g&܌(7rJ6H~T$ˊ׾[5͝ӫ^ &?0ᴝF෢dlU%P5p6){WZao 3a@¬ipvy[LYvtg(hګ补"w致 t]D ]q@wXXqtd~0l\'\V7͑L79#IN&^fUO˔FNT%K Z Hh :JbŦ,mw%Eg؀Ma9v,L s%q3|>3#vDžz՞[͂}dLХ; +ᕃ!4TEFʻ?)ߖ34Y{$#Nƌkkhq]k~e $#Kl"mmGXߓ c%0ۭ7 S\8FmH=Edޘ0ftȠ.fW\MPBW~\MRJIt"JTs"ai>'&FGKr$vd2Sb[uu`1q'x-Re1q>{&μ6jUzRIM3LNq*O gJ|dI*qN[~C2i: p8 Cm qvn_^5N7oTJ0~z멛mt}VJZȵjQYt%ZtD&\VBVEwy&CX2E,>zgGh?ÜT7h/[r $yk"'/D1)AQۅQK>N/NilY:c+= D/46 TfkQ;kzs@e3t#xl. DR+_*NnVl#겵3v]%&˽t' ^g GZq(g0o0z{h9xAE)9\l*HG&8UZlUjƩ2H&pYӈ'hb !IOu{P#G3ѝz|,9v tDaPcC~Mm8ATY%%c )f~(<KA#S14AiqQS1#! j~HR# PXf` lHV3(Xjtи591 Y-l3gs1 ŹWn ! %xp}OUTYV<*ETwGe@A\x].}m:h3±hz++vLN%@|A>4YNgYFbO ){+P &ƨH;۞ysY~f3s,7f2<3"zxp)d[Tʜw|EK'G'C(X&tԬsbū"q`{M-2@@xNmfllhWiFg ˱4#z礕 v^ݮ Ks;Bn-iG?5>˞AEbǏ\9M4:e*:8Ft06!~B8J/nٟÝѠk]/-42@,>χ_v~).}1Z"c^=`rđ4292%aA _OĸE>D&9o5;Ϗc6.7W?w(ff*6瘪>gH'ҼSA4xR>LsBm٠ɤ\vKn`.Խryl!C$E03C-#xjɏ=R\Jh}6{;aK@95D) M/4Bb9-wޓ"l6 @mf;ඟ@KE.깃 ʠ$eܠ|[nf0ƑF !L8S5 ,Bp~5}: ⼥0w '?tw5hx a{A.< 6/rZuٜjĞOICj֟&v_#ݞ7}5щz}r])-BHm7ʼnt,DRq't^ÍPDI!΂6GRG+)i؞0_G;)8t4\Nh=5FI6;zX ꠣbe4V(ϤNޝ#DH%.aF~_SճwWD| k!{Ү朼na~7(F#DN"WƮb|F&Q:jKw>R(ʩO7nɉrAOt #!l'Ю_^d0eDz%59l%lpts0,zvyL WdWF31Mܙ}h)b?nƄ۟jMAh_:MvbGFg_FఴSkUPAsnk$=fg%^.c_^qb*)w1R.XCd.fw_Na bꁽ㟲Ğ}Rq"Cٌ\:9>m(u$fZC AXHv1)%Y~Y-j gvds hIBjBJ8k֗ O:N@+e_fe=]j[KkcH@Q2;Gae=i9uu֍Cxkf͜)2\RG`6HA-842*ͤ+wSK@:bux2{L^cBh+1Fa:?j\L N~MKzLHkUۈ@Z6vg=ogEX'E6si DC#ԹA_RM1OTXuǾÛQ2^}˵8-gry" (u2E6Dqnr|v.-mh|?PrܚVkSق9wiha>Il cJ4[,c Hqvo.dSڈB)P 0g%3$f-/RXb4o\@Vr|R-BB}Ihb'D6KT% &jt&>P &@{Yw[SL GJgdžgN6hq sem 3ḶJZrDa=m4s;EQ(ed=8Pϰ|U{[xhG%xܜ2>Ku@ԋa~6C,F3捝e!Ih#EFCut٪ C CgARf̼·)6sυFk:ICW1G_}]Cl>Z{Il6G U:Uշ:QvC0Qyx$0ڙLAUG?M\Jyf<՗:v4ɪE.6ȩ@7b|wQD># ^MnmonPJI+inGmNߖ?4@Uwڴ@{!13e@s7M lBA Y\X\ ~$Ǭ(sV>nR&SK K}UzO%r\jhAJ 6oqyuFU'm/ .I<B,m~wsMbG,ЩYD'{4`BCxlDQ Bﭒεdj5!)?{{PABq ( W֞Z @!<i9b\ t; ;Ȑٴ:}w]m *>f=[R;frC 1 o@:ngq~\yJ78>SVSc9)]Ioͷʱ6}ByT{TֻR:Q ñRiw_*9}{uaD!4QO]>ZɄdAM^L7Nӳ5՘$:mIkv 3Z+;cT2յ y jv0fQ`xp \ŜQ3+072Nȥ]"cvi,Xw*%duqfZ#S9ۥf}m!%]2'tN9/Uzo'%F6;CaxFOzgZ>P$xk_7(ku=>G̝ E=UppLng`~Yfe\;Xg5Hg. BB3s+XUbޜc DEqeT!) KSKhmuUL[6cφJ&gߑ-ŧг-TJ4? i=V,fPX+Eil0n~2i*<xJ ԇ*%whq%nnb$Y 0ZZlqkpĜcKڎlDQeRN v~umR%V,*Tmv(Ouٍ|D蝋PѡOrlo<24u<#?Abʶ eNBFb),Ȯ7I<AFۍ1[֣x=|nR&ڕفYrʏЈ8}H+%m{D7Y1N8&O"_Y lslz(f%CA4\0n"[[Bz٦YƦ%)w> { qeT 1tl,Y`kB 20@}Sǃ̞{=8T:5M: DI`X"d/_lދ:7y\8g[Yn5%@xҠ\p}('<Ҷf`WvFڱ)l#c>WuzHZ"h1]+k^@H|EO#t62&yiSLQhm#E|(^=XUXa=N9&,mԠ *v\[y6Miю` i] x1K6.Cs|=\vj_4[wZGf L  C.\\"ۅ$G^0KN' ݈@`tg{ ?Qn%.2&͕ƜP 諜%"8ێ).L5B٩eAlP DqI"=#zlh,+׶l_i-gZ<т.39657KȜ(-x%aOZi3Xnݍ c4:+)dߨ֧. ^D.]⼯CRAm?Շr~lELt$Th0F'L NR߉&EW 0m?^'ӓX IVlɸacVOD.ɄP`f6}fojo Fy`% mMYqp ]|wVmWmVy9# !wո({ JXyH.&21𩈁J NAk{" }^#gLLE2#0KUNu]7'iL&# +1ӍIJ{'Fg5cnQ0Icb'ζ )]E|,!$M0u;I&"Yߐ!FYlE)^^(OEY*F2o&8㎉\Ea .3 aKߨ.cJWa~rs^ {JI.WvZgEӿB<"~8TQO}8֧MΐlCyiEc8QCهTSs.VE̅B&!;ɟ =\WY:^HNMAFB+fƻ=RSYe.q 7$Yw@#aΉT2ZJ|; A/orծ Cv$T@+#6ly~}.߸xe h^$TQ%?&'.n:h(BRc$BQj͎3-N[$aa1ni|SPaϷR$ۿ۴ܻEgDy$+p.=h3r«[R..wϐHϡu;i/ J՝t|*[ deC5u^bC/e1%˃k@cX :kPowy+ #e'pkSo2gA6̎͡`9U7 (S}!.od A y`12"U /1ffUcp:/dOǎ\Iă|*L?Ҽ9CrL$qIK2Q Wζ2SZ6sY#C :"|PrQ n,X-rdcMԥO,M-)qYw}8e@0z`/L5UrF;Z7 6|㉬ɾ_kNnY|gz}YQXq8ЩA -,kxPmՁLr<ˆs, G twjG'R)n¸nr3o⇢mI&In\JQ7yEiίT"cTdısqF1:-3][ؔd햰|vf |~U׌B*c^]QdMo ,T+[@H HnkA~sn$2suI_$%9T$ƗUX:p{ o-5 S(L /?@QDsQg-Hr6i/";>kaLMNtf?@0 nKunbL"fc?^Qڝ}E vA^߃Tܚ5x Zy~<,Xj['}4%v3%nEI~V{݋$ZF4^ka^%,9ځsEEh׶D*HTtTȫe`m,vc7z3mx :WR;HdH}F&VC!1Wa!#LewVWrpgڀwk${)$#6V=Vd) N ָ5}b=t!)o儰uSciz6b:-43]_i11q THЊKQ]{ th3T9g;܉lY-ݏU4oa}8O^V" n_鱦3(ΡW(OxmV&Xt7QS6! ISql~T09`FHb&S4hG3]S8ߍB%KQ:Z_idնߗem&"jw|-H5PܔG?բyyɁ>YXmVd!Uf!ѧc_,G 3%FLAA.Wj?Ys4t4E n=oGK~:>ԵrVfHS#\߭[XE+AʋmcwYkh|ЕvُLu )t)Vc1A9GRam&0rZ幣PF}, ;a5e+z$I-q8ShI_W)ZGZrÆEϦpmrxRYI^+K2-Jeɧm+Qw"Kّ|*uKVe_^95jܵj`D'svTZ8cI;_gʉlNZ )nzlVMe:tz?+qú0\8f&P_m'JU53pݣtʁ[ $.Ȩ<ǎ=='+%8rAZ|RSa2]=SkU2g ''X2x=ju kgg{ˊ͊e_ g,WP3.}l¤YčqE[oa1w_ݤo~tJ ?{Ĥ&fD(Qnk*3X>KRgB&@ )ƦFv=LGǤޓu0gIDۏ \^Fh6|nnxAv= Qy"'V6xј w3|sz'P-Y U.,n.nI&zBgR>uȠ'C?9 5z-LAx>+_j8'1$i\5[`_#~\6?e=0h5;OkޣcVUɜ "b^O3r0]!‘oŘz"@HO帶2h@( !?V0OHqbD2{f|'!3?af$ K^J@$YmX*hƽ9a?,O< r2.p]'AoaG-Ƶyfx/-%Y#E[ ۉ[:'7x Q5y0^U(aCq'e_'.`ɿͧHyi~.w cyc t4A/\+hmԆwN4x ߴ! =G1bBlJnjgc\pmbmr)M6ZD1iU8bt[oKƿrTg0-ȏpY'lWzoR^ju-VWM{swڈ=gbdqd GS_*#.F,hpgD_:*o, C3& VuALkFBUC *;iݬh:}ᣂp%y3tz&wf沓< %?S\vVvI8Gz٪' 0&C@vq)>O~Im3BnrĈQya TD8b[YsyL8"cvnqk\z;rec!t9J1?'J~,n^|i\H 8$l&*k708Rh@#Pvⓚ@BO}RTX l%WgE ]m:ke2m3,G[< [_;v2@1"V7X_}Ħaޣj &֐*')crPnY3mzY&%%`d=fFӲ'8IOI(m&ff-s7Wʋ3L9P{rszZ55`WA1J;-)6Jsh/@[hv_|9<2{P^K#\תu2mT7TTY׻fq9A?7Ze>KWce{}Bf0Gx9)fBYSháq 7}v\ | 0Nv90=. B_q~h'hOFMKW(:S r` ,,(:-+~_M x1 u|kE1bA X15 2fam N|M..m9= )\ZNO+cÙ3IFᰒ\Shr膲˿u BOFTjNn|s#fW4Cϙd"Mr"\R[&@T8[miObVڟ;VB ]w6OVA F1ZYBΜڢns/둖$~n#cNإE9s'Z0,_ٞ'd8(kTϕ9:2 2rkqgn#w&"\i9n@DzF<[S&ҽP+ Fɼ^~9> zG5e|օ$d^b&Wf9X;/ßH9q^冠a@~tz@]UP;_—r|T &o(m7)1J4/۶ ysR+_jԻٵ] 0!R?RJ ]k s?R%M$cF* KZp=RH`boD|M0fnֵ1)ݻM.)WӾ kñRxI~b ~X9it≱ɤ~\=ےN0Q @]S(="C k%, ᚓv/R?DCLХR2b"~RoZ2$ .Dw$m2x|O&?zK{T1ǟ;Rg[95FZ]+jf͸`Qx#o=G47%lT$-Ǽ73Ne,EE-:ͽ5ޭИЭB)ym@5\L[~ɾ!r&-8_JûYs.bV1> _C]Y?syEXDx#K[ 0a&S:wSGmǘ,:Aep`T" =oRG)EGg I̥h'Yjj]X*tPFUg1mXu KP:2M?}+Z4gD%ݿ!3#>,&730o~vtQur{&)O|ESHY OCR p9`DTxAq\ >_h񐕰X%T/ V%A+H5Cu1Y rPZM?w^;V2su~w?1]Jw=M -N8l6㳹_9PY-Du?Y>zrl;wUMu[6vu:!My⏇k7="pp \T1fxWhQPh<ID3H?@:7\:ϳѐ.pAARLKU`K{ 7rV]^5Zh.pHQǗW X F"MW$A"=ɼ|)DR-@7w8 RKMձ7wt;&>l/+ |37v4"A7zS21m.ؽXPBX{(+8g[6%$1LZH{ho L )IKPec[0b^9rCk^$x?wME˽œYW8r4!G2Z qLVݔwu:E@S G~ZiD-u3T+le#i^LLH ,t- 2 &us)xǯfo"8 *SvzvCye([iDL\T?dY4%K@np(չX/S2۬*o:P*Go!ﳬ ƷtfVs|큉պf%aCK@ZC,65KEVi":2dQKl#Xۃ0-JE (p+kE!RPi,q:yFlӓ,ԭPS&j=3ٽp AYv٢N(<9D @3:b_ SMK̝PNc}/4@Z '2eh'}G7;FB` J}V?Aߣd-wY̊ק;5iaYAՆojg*rFIوBX<"Bd^Kyגʣ:q7Npc+*Myz)RkBŅvpf[ biYbm(&"-Cp,cبR=+ۡl(I;L۝Cxk6b|TOQnFF+]Ri/UFTrsw&&`A)c!kY c/([YCsŲ`m'WvaݫCJOGڬMVPM*t" iMWN7la| '48k`$($#w;Ff3yP<ᖓ<HsAZ'ĒAi]ܱlN\V(iu{ Үbg9[/խDs`X0h;HߜN݅z9w7 i7w~&87Ƒ¨vwk)[r%TkuӁ[s[jY, :|*j@nCk2L;y5r h+GM-iB.n[h&E&_ hskuhL-ђa|R8_wɊKۆ>چ\x\NၺXX5!V6z3ef-X)0|>q释1jFb56t Sedi44cU7'Ц\a'+M`Hp"릵%-M}+ HWIIbYh\џ4 gu= ~ծiKtgDNNc񁉢ey8X'cp}4Ha2UDl܉Җ` )+v!A ^zoOɉh>1"j$E,DMѐHENʐЭ~2]V^Y}Ǧ΍;Ox6OQ)!$"pxn;*T~_SM%Zdkk曑2\V۶ByKiO+mdx3:1$$&RB(˨7}n/OaP:+fFEegB&P; ~\yĹ|6L[J螓!݊W~>tsLCNYe] 2_\ms#XX/=.q5l,sa 00=Mv/U KN]CwFcQDCl\7vHSVQ`ֿ ([ʇEB&0wf!(0W$m+ J/Ǟp1HA^2bƓeժZ^Ҡp( ƪ1 +j/RpTI1b.[߂P6b6FN`KL g/)lfYbt.w.o񇻏,]G#v TЄ# fKMٳY&N2gV"_\jo$4?ā5GEdOFXd`@vN^>੃pZCIXSi*_ /(IWʭӜX5oDϰU*0xXG4S_!8:ژWJ>Kgt_ quϢ;1\f$XlWA0Dxk6!6+ކE.MDlAl&U` ,-/.TXLzˋR2$ꚉLesXy}'ۈm ?Ǭ5MB4d`.Iáԛ$(7T_9?ps;q@fKt}۷1~0mLt5v+ q}tsMYιRwl*+p~; NYb;1ĨAȔYv K+g؀XdALOЁx1J;FTA}+"Pt`Dž89'8khdGys q$LWN7)Q@FGRқ]*qK{%>AчU& ~`vݜ'%J¿zf&VU ) 1:v( loQjyo/]\S0p8HdDyK[LD>A<1, .jD?:?XEeɼH\t ῨsA|͙,sgűњ( ޹6%exW?x)LM?|~~gP(BbB%v6i:ou=?Q:nxHhdO9: aE9@括t!wP*k]ʶTɨ_dp>YY% ;x]:>;{hG+I &0PW.j0bOW}gfdKR ?.>֧\ tz@*atg? wn}7x C1"G߇a h;:t)ćLp©^ !dA4^f.*Ye;/6R*'1~E }qܖN<7~:㺟\MoBI9qDz>k3HL9cpƑ&:>.MSNbm{] l `9`JJGi$KSI-Bg˖6=0SX[hbjkZT 5l$r(-MnJC:t/[>"dҴU KUQL_ETR;P}ږdtI?i0ԉVn8'D@~pvXI`6nlDU>-q?(1m4cޣ${0ˢNط[]rm!xB s9FsKO~Y0]ّT \z'51h in8mUJ@aFe)ӧ +EY'.4&~bOe!Hr"btdZ9a?^Bx?[9-Z.)U3˴fyFp p;;8}Po9ָ)9w.N-R^wRzQk8?kƋ+/h! Ľ6 Y `'|3&|EYU1h,YPOEeB᥈pT mkx L,VެW~1(%XϗẐűk9p]?ۖXFVުNÈR5T4 v:Ua*[Vk? Ƞ' U%L \؎m㞧*1 _ueߣt839p62hpB@6"\ևvf[.pvbٟHa/\dd9arYvQ$3:I_r? :^#@_(KtumZ#u=S{bR' "[D_a4٠ßu<6S hlۊ.c=kjך;Nv }a-KYvb3x@8uU/+SQA;H'#T2Q)x $n $ D`Qc7z$wĔ l$0!I&{{$IBYb,&+w-pSse(;q ,="q!?H0EpE ?v<~!}|$B.FT ԑ0tjxL.;I<_MC@'t'!#9-;霸AT2b eSm@s6HSUX_W[k36رJThp?媒m cZr"+t0(ē5tzYl95^J@?apa̬Fy<1/G;6`k: F Xi$FJ?s #K?-HT}oԦc#El/bDy}X ?oJbQTx8W6T%שt%pKfRJ%tڗgܑ#p`A?9hBW~=);k~~!;%x }=a}N kkv^.P)XB&"WByK;zh 7w_jb'@{8PvKW!vk}ng1 .IT4H"lf邺l:+%TR==Cg~~wUZU^lK_OOdrK$,]'\sS[-[4Wh9Zn{il7!)|HJh$='ՐT]'>3UV )[!}tRE G.aq qTMJ|Q"a&F\Qs}\Q"wFo |k`PXg ^* rL2Ҡ7Hv)nܴ9F 3A B+1sڰ5hVJޡT$,UVc%W+:(?rO]t\&_L4:uO@&PN] CNQ #-Skoڈ[LPBBWۻޒ8BjcɟTwL5Qѫ)_;I}\T\1,AQYx\K5pܒ ZL~2tʹ9DgvwʘQYSTsAk_sDf;R?uͻ!F Rsfʪð(yR=KyzxMutI c+wS yjP?*2췩a\j CxOo+#}o@ֈ#QPhiT_ SRz!M'[T+(u6pD+CW2\1hJL-Ԍ4Çೄ:'׽'Ph7AXZSvkw貾 + ܟf?Q"1E2(柝Hdxs-(yI+:u7ǽQ~U'2|)AG8\?ee%go;$y}+S_]# 8Ϭ1l37!r:ựQ82, ۰7Rh2qcEwziNqۿ<}]^eieYgMg ءVOY5:kE<2}T׆DExU΅>3/?¿=H!C9a5%U5;nyQW|mzhY[ ;.qK7U\OMCV VVFeVw!eKX5)ˈfrwqKB:Mۍ7{=asjFIjx4ֶ *; hC``jZ=7εKpT UUBM#`|Uaeyvo鬧9Q3, "Mwdrk:'''{3 VlA% ΛR]f0;8PZ4?*@=k~飝$ -~7us$BAXa\k{CB23}`,B_2Ыծ?5?"`>I/u2UG,X>2J+:I3ɰm jʓGq:G P;vvX3%%@ۮ?ıےx=˞8fK* (Zt+J iBx`/G*Mn7Tv*U@D6xvm3 WӅsUgbP7eO#WDJ}1sBp"=f< ˜$Xj,@nS-u=}"$ې#+nJV;ne+#g:2?WГJ4P`#ïTAfG@u`&!8cz-$@E:k]eܸw53?P]}BCLԸq'; E͚k/-`y<-{"90M_։7[ Cwt wNƖ_H֠1S?^}̱BOY6]tlY_.q$gz7< AAUS{E=_sYaɩ'bZퟔ ' )0G 1a=n??ZOeeiGD=T:m]Kk@58K%d_< 긘oԔ*&蟲~ZcQQaM|ǘp?q7o ABs2E3B($)  Q|Ө,o-WqtI4I}eÍN-mT#rY-,{Yy5$4 !j n&0hK$S[%K!v<\#ARRDP z4&WزM\n1- aLR JcE"$E+^^Foՠܒ'[:893T}(ދ?|yE_9taMTw>^RX;+wmTN~"| OVX쌐4>9k?.<1V3MU^wVHb)xl|ܸn9LWzⷧ(0b/f7|$tYyNvt942l\Ћ jjF=qGfvO[DK \^l< 5{5זc*0K}' SԅU4^~G'ї=595 L{,K;.?[Vk$I["=2v4VpXSgJ$k$dte!͍>ga8]*)ki @ԇ 6~G7BRu\@@ }F .!%1*n7a3d8?f)k@<|m@Cڕ u"Tcx,sTBQᩬ[OdU?,1WI ~\*^z*ʥ K75-L /7 n̚獙We؄YP~kwy R&KAiSիQ:fϠ noPH; g9>h01nCPaʂlOL 9z_ʵc3:i358Ѵ6DATϖi'$9yy(ܷ^|F B+.m>^?Z8}'ED+!k(qӻ-g, Gdپ\a g\RhBĎך+_VḰ @$T'$TrPac!N1vdA?%jt3uX]*חcUb[m4b.z :à?l{ż!HK!jarnKzrcKA |XIds(!Jh}%xyLy)N @TW(/x9SIw;+iDt4]g7qDj J\plY}#I,]%|P"AƜk)*MZMņ6=Yh-KG÷Z7T~AUѯ+7໻~;mqpI0@mY~G%n&P0k G2IBL$ҕ؋x-O'~;@DaH8C @$ሞS (wQp c9e{'g0A:?WT~N5F6Qp7pRPm=DQtgXjO:7B?o gm ߂6RRcXdWFnv^0<#*ђ2@#HRk\Uhas]/'tN Mbnu\9_NTC<=hIH1>|?]!S}9 *R"*OJCʖMw53Wp/ڈ0ȥ"~$r.Zp9@ݎQ:&/T{xFgfʕbH[mȣiJuqmͣ8Li9dUy}r>(QZLv>666,`O[Ə&i͵3{9"1*:xqg+aS9ww/J6Ҟz\(ۡZS`| vIXy:gGǩI'%͹5NI{zUdj@)YMC3w|3!0ֶe? t:5hY $S'D A1ю'0_}ŸkaVy_a*&%1ew \6ݭ*q~DKxBԓŨ\Q)%daZxh d'r(-,$JIe9=2Ex+E̫b2-TCͻ6gr*rTlƧD53rbasG0Rn.AKFl#qjʑ@*o<2m,!ӥhMo3Og0 -Z:m2o6p Yrb3K1 k`W|f`_QHi?oNsD$GCWJh^"J`= 7i(ҾZZ{8)G=v*Wf)+Z8tvI!"͙wF/j@kC;I~b6u?`B>j*_ Jw%pl: ySN *=ݒƄ&D0Lu~p-/w X"/ײSkwIkfp^hp3{) !Q% )ձD؃G?,v҉K@o%P ^2r߇ʶv/aǴl5|||ͬ\I+=8?~-'c d[YqSl/507)7ŚU;ߑIq܁z~:$_q CF33.1lb IͶ`^/p\c^WxPvyEl茀4]W9ֆ Gt\/#!-5.<8?94/$-pG>o';|FlwXNN0&߲CvӲK̡b(9;/N_C5]{Yϖm\B&S7ːS{UYBN!mzIvoxVi9!hRӪzrgh.dm^Z[̧7phtQd5[}Mc3k6Jss햲/sIK>+uR=#_DN&u$5d.⇛AsCYwA{ AWBQ#$1qr/8!4CVߋ|ds Vi@5^U4Ǥu!%偃7_c/νbKĒeuG?:$qAG{/V-;^@$R x~ %r{^A-MU1|muQ A5giII&a !~*9^X%{򄨩$w;n}A/*ut:zS~# l`1og`$env`1DTOq};0c |BV=YˬEI !v.~Y&,[35ƹNMdֹa5MqEfP*,~s;۵:n CJF"h/Oۛ%IwzCQ87:~QITl˄<^yƛ~p|Qn}F WDИDŽpEِɝFf#O<1M ݘ*qcE<z8ހD8-Amz TC N&k؋@Ko[cw^1 :F+鐎m=ѷtL50@O3=D;BJLz>!87k&Bi$+Fio >k;c1 9C@.m/puQ*]gFPW$*s,ˈp=F?t52]I8;84 ?Bs04LC¼Eaak="&Dxb[3/ՐLqC endstream endobj 5 0 obj 39747 endobj 6 0 obj << /Type /FontDescriptor /FontName /Courier10PitchBT-Roman /Flags 5 /FontBBox [ -44 -299 663 858 ] /ItalicAngle 0 /Ascent 858 /Descent -299 /CapHeight 858 /StemV 80 /FontFile 4 0 R >> endobj 7 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 9 0 obj << /F1 8 0 R >> endobj 10 0 obj << /Font 9 0 R /ProcSet [ /PDF ] >> endobj 11 0 obj << /Type /Page /Parent 3 0 R /Resources 10 0 R /MediaBox [ 0 0 283 312 ] /Contents 1 0 R >> endobj 3 0 obj << /Type /Pages /Resources 10 0 R /MediaBox [ 0 0 595 842 ] /Kids [ 11 0 R ] /Count 1 >> endobj 12 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 13 0 obj << /Creator /Producer /CreationDate (D:20050330103538+02'00') >> endobj xref 0 14 0000000000 65535 f 0000000017 00000 n 0000006286 00000 n 0000048863 00000 n 0000006313 00000 n 0000046199 00000 n 0000046225 00000 n 0000046466 00000 n 0000047429 00000 n 0000048627 00000 n 0000048667 00000 n 0000048733 00000 n 0000049001 00000 n 0000049061 00000 n trailer << /Size 14 /Root 12 0 R /Info 13 0 R >> startxref 49260 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/graphs/0000755000175000017500000000000011702130733023757 5ustar orlareyorlareyfaust-0.9.46/documentation/faust-quick-reference-src/graphs/faustextended1.pdf0000644000175000017500000007356611702130733027417 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /BBox [ 0 0 345 295 ] /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> stream xKK1({(PH{N [c3|o b]@*;@$mᔤ=j/Zstd&t2 ʑD j@#x7 c Vv2jSC5U1Tb w<׭X@^udMXbIlWH ,*Ԭ.Wh6kAW@|02(#Rtӗ%f_ kr|3fpg  q`6sV> ! r9U%'.HFLs1% *QgEc$- fYŠG޸5ݠv JꩽIiA̛<.[WjDX*ȕ„oхn; 3ŕ3򅵸,# endstream endobj 4 0 obj 452 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> /Font << /f-0-0 5 0 R >> >> endobj 6 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 345 295 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Length1 1563 /Length2 26943 /Length3 0 >> stream xcte]-vvl[mرmV6*bbۮ8<9{kVc>jDQAL΅ 5vuVeP6psQPڛښٹ:8L͜]L̜y?A@Oho81 yؘ,ܼ̼Vffhg^'{c8 {O' /G -,<<<cD͜v cu3wP> `a` 02553C :8ػEhO,  afgjߵXԖ..LL5/9 N 1;S{ۿq+XdfxOe79U2uu`R:I?&,\bac9\i\f8oe#htCzp1o~$3Xo#oNa ~K =?-6ki {"?e[[a]8O*IJJN%EfegST{}L[^rUE2gmO*]mEd:dńdb AI>΅[ ~Ppn$cGɿ\(r q'VoFT ڐ!";)lF6Ԗg^Z6X"ͩ{;x/5^%BS&Sp2xtZcH"D+×ie8_ hRI+TΓ]>-obh(V~Ig֮ u<.kzݵmK=!qmJ3{? F pzCrȟ~-yxgj6["Kָ >x|tl:]+Shy>/F?F5ZEl25RYq7H G,5Qan?b]?s[ VtXE*PDP (9*!ma!C`:kf-~c{=lY/Ԇc "t-O=< G[44/,5@mhi[,-N= yck٢ 0UЦsoSIRcYu~9Ʃ~RkpV|e4+XA#LZHcC $WsP7#1瞻eU< >]ɝ+`.xdJY$n5 ӵomƿn_(j/._:2g$8uҟ*xpYj3Q7G<Q@?|pÚkJ" cfŮD٫FR =GxSU#P*qx}8Ǻ NY `$t8QK]eV۠$쥩֡ڸ{Q@- ^9aJ9V^w]' ED Z~xb):k\9 )}x_5m^6b&0\ػ㔺G R*۝2߲_aV >8߅/n}/aLwxrTA<&2}3z4~>}DsKFf aXX~X; -ՂW9hXhpއo[V%`.4_#w=eQ-Q)zU*-2;|g#  pVk^3aF#ɻP|˕CC:@+х΀&GT%!>5MՈFAL#,dRQ(-qyx:ۼ]!BaQ鷊F^t;3a)kj -6] {)9c݀ Pj+&{\Xe? ܧ 674Fׅ°EP4Zr8Vw(nm-~arw7'+L.W;kvGqyDcJc_9&;tY3ld /ka(+0T6(p4AR]BdνʥT?_2:OnJ;>??;)K(q;30 ?Nev«?BWPQۓfW-5bsqO;yMxqEN,~eg,]5*o'۠C"qE=l`Hխ(mf.fJ꒏]4wDBQ'`uVbn5=~>X>OfA-e)}/޷y:xֱ{t!WU"!;H[Δ쬆]A,um?qXjГ;J(4ven\_p-s`Qř=Ӭ[M:PmS,%3-?0)UEz܅W|\ڳd+`5_ ΄ͮqntp2aYԵ~U1[<3Y_&gZtBkѲNI %$V |vm<_R1#b: [fU^?yu +%ڟ5d9Pw{1l=Bez JWD!F%d>4迱;YMIRc*6ś^Na *OSfNOc n,Fʁbd-%ĬJ;L%K2dkbe E2>2ARfQK Njzr1/zĽ(k8[Oq*LIۮ AucvM׬2BG V'} @3D\ܱ ge0e  țQ4U ٹǵTT~>6ۘ]T ʷY;S'ɻد_iH-uvX59|~Ϯ#.C.+}pJE^ȴEXpUmF˝#w-ZՇrtgMxRoUTv@gEXb\b ~NяFg 0.ߛW/%Zjf(0\]Q]$FfэvN bkǨ)0F|L,wjh03c܉\J'T H t B{ Bgɳo 2#ήv<*G#4qxǮ[e\>W nT<[fLt֊JpMc'3B])"\-a74 o{q"q@{չf=,}b)Tͤ֞C_C}=+XE_+O2T&+9sx~CozXPQW^qsA?)i`K #UG.DDm+WAisi=/TmZ 4rFjLM1E֩bF_<*YbJ\r@7V4hfmujFVS/$•_13Ga)[?d xޞku[!KjӸc#F<{Ԋg*TߖG{Jβh_6"51H_3{BQA2pyqL|LpbEouVʶ_%ekHў3E^$'z`#^Ƽrő6^Y$O7 v;ͦBJ"̍ƝFڳUgm?x]-%:#eB90^Sx傤;<HXrEn>r S dJTdCK>Yvf̵'_~4kNL3UeEu#vXj"0.-y&LSzyCg0iDIoAg/—ᣫhU#qh1[K_0[-,61a(ixq{dd8@J63Vh8m|:vAaHɯў:]s:5lp<l?dD| b V<1P{=jj_)űXMH/yy&R.̃yAu8x$HJlZUT,~ݓ^Z^N)/2;n\.GIYQvs1H|74`얇7p'~_ Yp{}C%dUp/nFoeiȶW'`3⥮8_ j\b/#3/yrmpw,8=Y0ҷ-\4!f (_ äКPztFk,oXNj)U+%+!y})zWKx,w'YrükJ`ejh>voS⸚\GxQwB-Lkk=J7ezjIK#<˭-PM>VZ# VCNLXH,& QJ夠Vq%-.X C㉣K1/ǖӹZMdk k'^ yyR׻Pg1AcSć71T K_aYr>NDlni DL2\lU"/C %IF3& L`pw j.V#[\P FEzܟm݀1)i{8j!<+|aWl+,C5'qW ik+,ȁ AG1cɕ?%|ܖ5šzCkMX7ڑgiJW qod8=]~5&fr<<:D3A];Df0ᐊ7$TAqxZ1fyTu|bbawvLmT}K[QxTҿ0š51pʔ2vatr3I;\l"Y>]=[8jl ۠ʸS<9Eu3%w p3qV)kvD Of\\g Ec"4Qc%h눧e٣8ړtpK#QU #IM-j-|T ,n;T`0_sܕxie^wFm'8 ĸ)+]bEo1k_ ?؀7ҽO}gM:Bh.> _Q@ -'yA ]By 狍nb] `*?1<16=} !o ^H (=F%mbʪA!aDK!v2|1 ' HݕŞeǽ#B\3zܲG"~O]`׃\IThL4r%@ܵg@ѕ<.jFa6~(eC\wM@1uoU;Lϳ,?rY1Ս>!#$w*Io܂N1-94q\D.^[%Dd(>TAѤMX8ĹȓxsS5no2eoQ;PTr˯GRC|U~5;ܾ mͅ| @*}z~G/\=ײc26 |ܒݽX *E\@[suӨBB# <leCԲtbFޮ E]}{|BlXɞ6*vs_\-TJz2X`2ydfrUB;psQ(hhab8ִbDPqз-pw*W9Imf~FF$ֺ]c"Cx6W|?VkOa{L+xLx&Woxii& [صYߜdzpsJE`pi"/dy1T<,8(S/ɨhAԇ1!Rz{Yq?)L$9u8b+[@^,``KB e$fX72 0uOI̽ g6&Ocg'ձ!(SGnsmb[s\iJu- o8ԡ}Ȫ;\tjU(c'Fz.fTm߀nަ'wOք? Fвn^˔]>8fqY#/ woSMAU-u_SK}kAZ3Ǿl#n㦺7p Xo͜%%86ݴ=ˬ)۬  Bz诼$v_30|)rYe|Y v@^ k:7<֑KH*S  8ҭѬVzNߐ1n]83N8NA;Sթ, ›!,/ҡ|8h<Ǟϗt-AC̈ BW%2l$( w2\]T,g 8]epglۋ\ $,]s!`HHe y6M[};J5t]E>1MTJѥ\,𑡝Hś|pºV>34.,޹R}q+9G:g@wƒ{ō]$+ zÒ [n cZxd6J:y8{.͋nEZ7RS hmc)HP9[fA;`JO^bI ZKi#Nq pPJfh>2O}; &}bӞ5#^G2 ?oB*Vmtן JNz7 #5e8GɚPdNWoRI{v\fG \WZ@ @eAe<CE/saz;H(m8#DLE]9R:ۺ i}$ڄB@ttmr;[,HtFL!r쏦e Gԑ>8Gp*zd/?UK{ڱ8C)1tjtf#lgbQr&Ou(gPvx_@b]|ޫ]Bg,kX""oE<ڷh9CL$::μ{w=N*#:*ԂKMY +j]]IطrOC ^aBKB.#YLYS~yJz5-{.j_.z : "Q]MzUlKXPɽ@( @6*[m<6hcܞ-YrCb{B6xL 2Q0Dl=g!gF,ڒKmD n_`V4\+Cjr/טsNj<O_,%AyR0"&@ܥn͡oƦKm hrPW" U٩g!g~9v)d(TD 籠$祫R5fn7zCGcqLg=?JS  KCDH;cM9OoRWkE joE7krmC0c<EQDf$p2$CGn5NPy޳{3Eb0{&/RNʙn9.pZo0I$ip*CڮD3T i#++1S}A?Ԍ1dq/Sju"{DZr""Qg 6;keR1n3tM_$PΙs"نd[Xҏ;nU+Uܟ/DQ8H26h]ͪɾKY 5T |ę fےDό^7X/;F:(=qB'~ Ms N@*@|Q:!qTb'r+ U۵7>u*ҏ\nW!;Uz tPv>j@EZq`(DȌmJ 27 t8/t/-=I!Wxq< W9ZO_)?%BPq:i:B'qyfB#6MzjK9E.?-AS]`Fk"mЕQPu5->]ڝjL$pm%:}eOA`GK9[Vtğ3. vڈCu8M,O|r˾V̡h2pԻaMbH: ~9Ʈa.=, __U?J(;B5 4MM#6Z aGx{?0Eo_@%;ʓQ=OS;|w_=_p4uGԸm/;4 ђ2U;ec2{Y:HW VF `ʥaL@kG)xN^[b?qi5rJh5MG 8e^kgܶ}8yC[I \g3Mm/xl)OlHr56V.XDZjA8Ke sj[H@8$i˗8{_ u԰[#]S 5wU(BH c PkJ&Lm?O"r%9'xt^TC]<Ըjd0bڰv1!NW9 qR%^ל8' m3KFx^*mXT]Ev #NtoG. |S~i@a*L\znYv-P0&4\ :5">SP5d$qy #o!y7 ԑEEx*,p [:26'4o^,ő$` VM19Q﫦gu[p(.Z",]lsM3m˴G#T>6eKL!G*AS "3#iL@Lu~< 2E%ZhB,#įd3"ln鏒Es$M Y%kAx:KJi"ծSPhH`wTJL-_VI3j*@Z&ϳ(R_gu-a 97dxb)NGaRSxtDCANlJUY%7!pW\hJk[.cЃE BtZ.?J{*h=SNdO}a$Ć^u.R1wD ~#+}!'k X?Fv$&G0 Jxhq(9T dt,{V; 'ma4ڵ)2_o9g'aYTH8`o7Ԏ$(DZO\酑-:e 3qTgHnDlK b]|}\jeTl ^9b)|5%TiحԱyߓ3ۙ:(-; ;<=NФJLEi|, <Џ=_RV=wWK [Y+ļ YV9ӗ֍oiV.'ڹ`YoL;WjYݷc P}䡃y5Y,q,/p w9$ |AE+5,9JQX+pTt]4EMVӔeݯRǭ 1(\qrk:{ߺB!P%,Tkyu('⦋Y8#`m i'tj} RɮRIIt9/]TbOƻˆ_MLؕՑ js|-n~ȗXaIxLc}c4rFl AIb1jGq[rۮ&>m"ݰhN`i-\-J{0her9v"u #—pto 6ߛ=bMPl7+~u ]W8'ՠQc}CCsf@(!d!2Gywws{vj9zag+z1PzG~gn`Q2^K}59cIxWዿȜK]f0i-uk vxQک's+tu~D`^Tb s?+ԣ3zO@f5(S&1PVt`tk3W̚.Tߓyt'PaV܅ tEh{xK vO֑51ZL1n[W͑\,*G.z~%IgDzxzۃ#G VIS)H){P@>CԂ :Bv|LTg/T1k䉺HbK?wZ.#`gayAtnbR[ D6%,j|5ț8|Le-73-8+ XVz״us &e@*dN۴Gr2u'n <9k#U< 3ODofJ36}rT.19OY|vC_43Tk:6F@WD?1TQ6|^(w b99rLVq+mtx:e]U(0!Y 栐_oTȡ]vDY $g@PYs' o$@/ĬNw[sD;ƌ*1J ؠNY J)"Kp}̫>V>f}d8Al|j )lOu^Aô Uf{r=ݥ=PѺp*5th *"C540LBH]E=- Wځ|`r !`Cuu P f+ Gt2ei X?l5:Su[{-M6o-O19 tK г"o=}SrZ|{E`'&e|vcHC/Sz+'Oazwn|7(?:cڅ^N`}. ǚBh4vxd̨8`=p[XlKo *7T;+0/gcC4m_qSQTh ה آؠ%7P_HyLC[+lFcF%cImly$I;E AUk*HEgq6L4ǎ/ۑ~RFh\'Ó?5WxSD X\5uPwp: Hb#ENg"ݎDA䫺/^mQ ~$XڜFw)#Ԑco;)F6StVN_.)Ah'X FnVR<&ۊ^!`K tyӍNuAqWB1Z'ofշyFAe XT bd]3#\J p{kv=(_W&?xb+j6yZxK^N| $W =d(n㦧[CsIpdF_ NlQ<;m^yx|l o7jt ޲2Z<J F}VnBa~؍&iph0|+]XĢ>SMetxm4ˎN z8:cA1\i'c|NٓBR]o\xOkg%=l:opUu!Mе1t7\Z.s$RaB4Rr+e7Y>eq$p!K_Jҋ7 ( LT5.ջ6Y0q,%9kA^þbVN@,r,APFG/%Zt,KKU|M{-D?Yߟ6ZeR>xlO ѹ:#!P` 6юrz7Fa&]DS_ZgrrY~Ռxe Ֆ8Wyf0AC GruiTe~] ""ADvʊeA XS5ēgY p_VPCkf؊j<=]˶7C p.U@[PK7Xi~*1G҅k×K+';<痠|LS3]ľM-jK:kFż.A5ceNXSEpj%ѓOyܗ)Xk ?̼6y4uYC>3<\xVI%)ǤWSDa#7 )7V^n YQ\@nM!3k^AT o]V"Iφ:jW2 $sC[iVI85nLK)==\ "q* IuEӋYHEej,`TBz>w%wƄ(g9š趃FE0f:@+q[ >eDܔPn&r$Ao:&xL%B}}%:q8yӛ}S!]%g eN 1%ӚqP5nၜi٥)-` k| ({aq jF =ƆuPC_ z6U ֋}HLX':V\@')CM͏p"[zP6t=v/E*j' 70`-ފ;uYl:pj0zr= {,_OO> Xe|c<ze*41~4?_r<#IZ7Ѯ9Z7>yKdꋉ/ެ*!̀Hq; ׳,k ;\S䜠F*(+`Pjַjܘ/, O sE0)/sz<n}pVX_<4$L46vwk f<KF>HEږ1^)@{IPhb4nAD, ? UJ joK, {T-}QGCxȈ=D!ܱ: ;E侙7ՙ"Y浸 '^&F1 ɛkjG j=i07i#bP]D[Obul~܋(1#%t;<1R!=)^OADBeVhʵ!2 w<(g+jYe~i.& $Z9T(CZig! G\ WZ|x=nq=uVb ؜1#=[2&OT9J=6g:-[țڦw p}-S5B;%<)к1e,ń6qw<肗&ZOπyOjXY L=Є3ft{IC:8-AlR.[c/w23skGnD=ĦN5lv0)Ft&"IxyzJ%Abtv^W]tLZhcTi^aI yJiĆmu[ d:d>Iy9 6Gn!pw`?ť?]ݨ|_?9ISB ʾbg Tz!ℶz鮕|>tS| Z-}^ [3 cUY$+h mdgQd'\KNH#1`CP ~v)oQPvP1D1dlíqH{% ̅IBn kD+#aD~]L41klQaܝkDaj,>Zy0o[łڟ(ߋUa,Y~LВ|avg:9=(0PMC|\m N" 㕌o6MD:trڼ1) Ri'ß/6=j=p"8Q!tT#|#{q15/ )fgD1rlV# ?j`Q(*&xP3(8NvM mn0 \GL hHyH)(eI$G]D7iqL#&˦fG'Pŭ@B0Uvd \sv=N|c@M̒L6cb|(|SFˋU,MIS θ W ӵC,dƷ_Yj9Ksh2MU2 NϾQX&2KUB#A~= @?Ӵ~%k?0%veoֹ.C鹶\tpR jV.6gF`苉RV&l+]SJo-E-lgf|` #5VzW1$!gMx0Dϙ(`rWL}*Sع=*#]A $ P]ƪ<@fua7vB`Ѻ{ VOJDT<^BuPFb#|\ Wnںj?Jέ61##?A Nc+ vP(S;c0:R11QbPDӑv.@k>[\Uam٢b*1@Z"Hzە3C2 $"džW?-ǥM5էwxT![ SrWs# #ldЎ4[x8!(ԇwOXdM?ȍizmr3 {X&G<_`f1* ysv(nQXQ ؋# )?ۘnjF*Y#_?]}A&{Tn4g)E 蛄sWm ^? |%?XWT-"ć)Ii0vΑ0]df#Q 5ǥgn @S@?nw:az;NGv=7@Ì|ZUF6Ns e\1a󭋋wi)hV1ӷwz0(Etk]Sn9f-fofqOtV4EwqQ `H>܌ϞdT=m fҩ.{TvqԾXT IŴNiϤ4OC*˨ %JAqW|z  #_{zѹ҅JaY|6w02Q ^1zG_~̄7x;T[/ 2UVArE/GrGx1ȭȍF =l3gr"{ܫb=1茺,`B{ʶaV'q!۳g6c˚{d7O?;v&\VM.G*>e<%n ٯ<&ɑ̵33{I0 4iĬ^'U-Ke zHpobKbuWЪupI7!KYʿJ 6JRe_c)MQ@D]SH :>U~*#%l.vf>!kmAĮ0EЁ0pI$58'~tQ y*]|%aHmkk4fy5EYFӱ%?c/5/Q\Ro[=@֕5aF|^փ{9cBw (|46[0XA|f'xВ,\WQ&䰳Z4@--t]Ql=U8-N\ݼXzu;ElQOgrq%f;eLʊ- 4kA;Wޕoc%QMG/ѿ~y-ze-z(kՊafzxu1/,3OT0~M]n 9j-O3.2xck `mW:HdZ|_R}m q@} ^+]u. ݿ=m[1*bP}'#j36㤔SxVQbB㜣xab r%uF/-&˼CHR8RY:*V\D椚w1/ik!933ǃTƉ"*ce ؙO5-r j,܍qS~z5RFϺ&%dI3 `ܒX;1_oCk12#p \Tks#;pt `J,Q#Ӊlї@\{xDF*ٛb-:Z}F ",=f}Ҋہudtj cJH[T [y+'+HВ a"/tzO-xς>_$7φT)3L֕p:=8,u9ZG۸Cwv{Qq7@Ixy &9(~?cF:<6S -Hfѱ4,?8-!!Y"a}hj`v+x/(RT혼@~80d͑p*@ 91I-"14c'`a-  XPG𼣞u%k ̙cϚ#WH-s]NIɻiՉ%MۥC6/s#U>o8(\fwSc&šʊ o3-u؜1t x9BD3>R_ ˛-[6 0عz}+UPy%к1lCTD[kM\Vve]4l`e@Ei`Q.ه7~FGq1ZoGQOr:v5 c[SBib~=dqpVgO鲗#h6Y Hzak]{BK'TqCzQQ˴wHМU0Sq*@WAj۫V%X2 NQXa,Dige.ql:ٵ6kE@pF/gx[G%~&Sm#><: b[}cʱKBn)U~gNN$ &䩖bJV\A$瞁c{Q%T@BJ|ʚS+6N"SIG\\Iuz{sdOX='VאcO8T+TqNOuawN>.3_Zŝq;"˧j>$BL{z~b#4E @ej笪l__Ͷs9Egux.fvp4=&tbi(l&ξ#խT (UeTLI@8_h3n:CcqBpZVr_kbTѾ >7jS `O\kaG!%f%pDFRnOhЮ6`Z9ڶ0V8fS)Pea[wpLgntM؟ȇ5]OH7OHNy$-"\p2x1"ƥՃwPZkp|AK79G~'ǀD.ZdlgavO5$Qh1ϑYݤ}TOD`[[N@a,^vw.,u5-} O!T]٫NTc] :sGm]t۞6>qN͖e#>!° Txuפ$>fŁVHwEUV{Ǻ,`pG+Sdl{%sط%IAk o@^{"'fvD7pAd]i?Yۖ/pP!>Hy +-B]~Z0C8}[]pG7(T[`TdP]*o8'j!Q*@Xam5'#\%+eIC5,Z1|dc0AJ̵XCHiޑ OݾB'jKJYZrpXt˂+:\d]eE@&U }6=Z_]Z6r<̆`iC KzʐM+5p/nLeh#s:ޞ&d sL#1mꫛ-,S*_x>อc"ǒլftR\<9IPS +t Zv-oϠ++ݛ OaGS#C?Ҭph"xڹ?uݙW.+P`ϴrIf?tL\Y|Metz S& S ᮴ߥ4(cL9{."hBs`ZDv}Q ? J `uab ?U!_)yi CMd$>1/>V*!"AT !=jÍ sCjAFݯ%ϧ8i\\d˽=Si9|d+=JvY.Ov3Ue`:]Q_NKYL_,R.;u KAu?ޡ'q=EqH{\մt}Bq[ί/~1"LshqX9c]~\ l-]>t{˾_ #u:mPA.(Xj-:8zqx:59+LLqCZ򕩲&8Gȵ8mQzV2xӊ%:vo\KD_AOߚNh~7׀h`|YcdlAl.^9[Ƕ<fָtŎsW(LQmO$ j 9o+i_)PR(!w瞽cx6˭Z6j鍁[tseQX0Rlh(S _.@U3Q9uiOFQl@uuE2Z^ #G+~olYD *~uNq&݀M_}srPi/1 3eK92lTv"RlQ}(}Sm?)N-qGBQW'X/EQͻ==ye yҟ԰Q~20mK-$`懲^J'w] _%4Bf v&\jY# ^۩~)zpg`Du#gĤU\:6hK4@qc|D20H^-t*G )nƉ谀{KœO^`heLq񞺄=.K͗3A$VH"lK3 _SL!| c= endstream endobj 8 0 obj 27940 endobj 9 0 obj << /Length 10 0 R /Filter /FlateDecode >> stream x]n E|,Ev',KU`\ }yD s/.?Fފ(mŮ^ 8iCV]ö{,i[I7/k3:aug4:u/ܽf󾗱ö?\We$a%. LHZ:h-Gi5M|$>d1hOEsHfES%Sˋ&{"(:|,2g"Vc#r)mWκ@}G endstream endobj 10 0 obj 279 endobj 11 0 obj << /Type /FontDescriptor /FontName /NimbusRomanNo9L /Flags 4 /FontBBox [ -168 -281 1031 1098 ] /ItalicAngle 0 /Ascent 1098 /Descent -281 /CapHeight 500 /StemV 80 /StemH 80 /FontFile 7 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NimbusRomanNo9L /FirstChar 0 /LastChar 12 /FontDescriptor 11 0 R /Widths [ 1000 333 500 250 500 389 500 444 500 278 444 278 333 ] /ToUnicode 9 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 6 0 R ] /Count 1 >> endobj 12 0 obj << /Creator (cairo 1.6.4 (http://cairographics.org)) /Producer (cairo 1.6.4 (http://cairographics.org)) >> endobj 13 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 14 0000000000 65535 f 0000029971 00000 n 0000000728 00000 n 0000000015 00000 n 0000000706 00000 n 0000029742 00000 n 0000000837 00000 n 0000001037 00000 n 0000029102 00000 n 0000029126 00000 n 0000029482 00000 n 0000029505 00000 n 0000030036 00000 n 0000030162 00000 n trailer << /Size 14 /Root 13 0 R /Info 12 0 R >> startxref 30215 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/graphs/faustextended3.dot0000644000175000017500000000061511702130733027417 0ustar orlareyorlarey strict digraph faustflow { root=dsp; dsp[label="fx.dsp"]; scalar[label="fx.cpp\nscalar"]; vector[label="fx.cpp\nvector"]; openmp[label="fx.cpp\nOpenMP"]; node[shape=box, color=blue, fillcolor=lightblue, style=filled]; FAUST[label="faust"]; dsp->FAUST[weight=10]; FAUST->scalar[weight=10]; FAUST->vector[label="-vec"]; FAUST->openmp[label="-omp"]; }faust-0.9.46/documentation/faust-quick-reference-src/graphs/faustflow.pdf0000644000175000017500000010062211702130733026465 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /BBox [ 0 0 467 449 ] /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> stream xXn7 Wֶ9]*e-uO]d.lv ?_Dfys{Aonwn~ss$2֛K?K xܼ[~Yh){ǀ3DSKܟq̓ X("jǗqDMPyp@i^(R{Zpr!?~ݰ آBc@*U"?(0(ށ}4WoSaP\ԻJ.l𩷪Q|c?AJk !K8}vN76v&q6α)6WᳬB|6A e\G%dWrقT|XcUbsUkU5T,˦n[lqD ɟyQCvhg>'fn19lp'a5|ԃ[gnmᛪ=1On݌ޗ_} `%q{&]ғV҆/O̴!+ִaݧݜC`p3cJveި_-NFk|wAcVn6z3|{\|Ѵ$ft+AJ:ǞAvEf@diBL/'MM, vrMUj. }d8{-C#e; H_C3I={=SZ[oI~aU*AȩxF 0@9RvNJ ǙΎU|P=8I/ݗtU8'mr4!٨!V[\et35\g[C۔|j3z-Uئmsӝ>N3Jk8EE'3r 8pqCA..^D@vX+j'S ;XGRt /MRRޮ`'շc")Wk]C#* xz@Z&yFŶ92&Zv:+!xKA7؎sY=TPEZª`y]>Ú3*jM_(|$7|uui^ ^$GyVCɫ.5^$+[n;y5w endstream endobj 4 0 obj 1321 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> /Font << /f-0-0 5 0 R >> >> endobj 6 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 467 449 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Length1 1777 /Length2 28456 /Length3 0 >> stream xstd6v*NǶmTl۶ձN8y{|cQ3=[c( E!S{c3q{;Ff^[A;Y tqqebk\>cRٙU3_΢@'3=MYٻyos[2uu`R:I'fa,`00d+ʿa#;S_o{/lfpqr5XX@蟰d9#'@s濮\?Ff&#Tff`G),lf`0rXgU4W}#=_m|Z08M&y{']MJO |??KHPaRDO>$#hr5uB_\>@3SE8_ 5;S3'3TXۙ9;oe37YX98FNNFpOO<>f˧ XXL6> }9M1b099[a0#s\j'j 3gק`)Y#q3?gH<zbj9?;GYӿOgf>s#h_ҙ뫅3C`]2K]xqUݥoU7A0^dZ A?,VStoD 0@V:eY=% QEq:MI{Ή|+vVC9[[RsčИ+h~5AI:'(lvebCtOAteM N_[kz/ݵ7mK=!qmOJ3? F pzCr-yxgj6["Kָxtl:]+޳Shy>/F?F5ZEl25RYqWH ,5Qa뾭{n?b?s[ VtXE*PDP (9*!ma!C`:kf-~e{ǭlY/Ԇc "t-O9<{ G[-ih^Xj62Ҷjy$4ձ̨jW y2lYt :e^!wP)2nrmo4_ӗL mCLlWY~嗑wQt8,E΢9=Q >2cV-X]PLA߶kj3˿V#,ңfa<vNWe?.ﲖ7DߥQi䆙>EFmdh_lvB&%Re`kP P:DeMg~0TfC~̽M&Iq K]4I]\*{'☙EbF? pH&4摊:빢, p1Ӊvk}/+ 5V/ ՒWbÀQ9{wn*ԩU;]9pm70ۥ̻!19&=[k!Lmp];/uW4x4a GBTLeUs3}ށQ =A͗ ZmjHZKy7{*Zy)wE$)b` tj vaq怤93^֯K~yوp9bnu|*JT0nw}l|~[9;0ZG@XSDm{11Qv)x1*SnܖI[Ҝ##ý.%aa?cp~b07T &^ r[gojc!jXoHiZmt*7j8Rg}QF\tLB":DwWBT,j(týwZaU#wxuH4VuzmNs$Ce,W{ w.gHKD >JHA?„cjC~ւ b3ARXp]D9:7reݺ!x185h۠#qm>n$I3(H=}tpvGD9PL4)V#ڗk1HIE,Xmlvh }*{bZ̄Er'F^`o%qHSyMnluMvW[1(ilH>.Q161ZO涿,E8.Lђ:A ovkoÏ &3:Yyd4vH\Eէ}ﶣߋý%B3P::̩~@59Ȋie#cxuo_ +OGAk-R߲ʁ>qcFUb D3F_QR#sk*1rX7Dfp_X ]VDt; O㾊y5 Tx;Қ5,F.}<^QQF` –br&wU._ ~yrW)MYB!܈۩!IQ*^5!JݮL7jAS} +}c.?T tbä?cQy;+0y$f@8-nDI o0p5PR|,o[ɿ;T߃\&8R<pI}p7 Bx{l)K{ noG=˻'>Cݡ  ٙDpdg5Z~| f&k)z믌T5?V0?IWBI3/SG0w€5Ek)*DfjXje)?͜qdAIج..xHKbԞ%&s'^~ Rw*ovŌsY2 }n! " >C.ʥ\吖u.Hp@5%pk{邊xǥfت5*ѫY_8t_(!}U!k[F+g3ƶ*-sP$ 1/i%DDoJŖP!lwt. hPq|:|w/0s5}2Se w*e t75JT'k9/ fUɬd*q!,L^+$`8, . 5zXƈqRӓÏT~a#E]9 |ď,TaJvըm`Z[kb:Lа8MxO"red>D?) )[`h%G^qBgU= !oncAE|mc{8y+ŝ.؎˺&Qٵu:JRѠ2mzcUrg]`DY9[3Y>'nWp߲fљߍwqپ~>:L W}"bT'Y"8}tݸSq';1j`c ѣ(>]*Le)G.%`*T$i:?skqY=!`3ٳogWsF[\|%A]e׭2U.x[7* -3T&:mE%u3B])"\-~'4r?oo{q"Q@{fӐ,}b Tͤ.֮}_C}=+XE_+O"D&+9 *x3OnΝsh7ď?F <ۺ5V,=z_,)۴@h2Դՙ*;bS69exT9Ĕ ߇895n%1yӔ^ZFl}vaǖ( t[z +پ4>cG_`9SsBAS7~Vו;Ne MGj@^^x8(K[G/4fA0}+1tPkA'C7C>prd±hFT5y&]c\3i?3+1/w;Ԟ*]n@}YM($nŌ_1ZG(L5iJ|I!nIfV'md85I2)\51sCW[B,D6?>$=iCxJlp^Hcy,xw#R%s۽>$JǟT'fpzXz]gՑl]"^!9SHz6=e+x"WGic[E?`S`l*$j *qK=;[u[f.Q8K[6!-P.Hso*_c,->@6PtyJEt<%`rE}% ҫ2~M2IϵF; ^^QI%&l+Yk7jGjYIl!،x&gq'?'nCK̋䲶F\] )>rr9sV&m  ~HjC0鯥!0;)Aq zUhJHv0osJ謻ڑÒ8˝I@kx0osZ]8&'Qf+@A"-|T+ͨhK1Sg$vWM~ZOAbk sSUVa:P.² ;9sur)FR9)j=U}\r`d? 9êgߪs~@bhBlk+,ȁ AGcɥ?|ܖ5šKP2Zf;'-F`=g40 vO$کW$2m Taǡ +Ԋ1/S3 s׾ Xj۠[ڊ=ryu쭁S'䥜+'Ir'ހboYOJmQ4d|L-Ueח)Ϯ*[JY[ LxRL4J:8lxd.K.E$G[G<.>W]\ <["H.LjmojoQUnۣZXeqMѩ 5+]Vv{+m 1~r LlQsH2U qQ&6Y}m HKxx4Wz֤# \=^r;؝/U WPn|:F?NaܕI*H+Hcso0p`P ZcTa& RFA>wϰ?}A4]ZR6A鰻!츗cZ(kFZH#֯⩹4t z1ɘ*?)F#V; h GES\P(,l(G &B̺inGܦK:'HVm_yh4- Ag"g]5at?ڸJHMR[n_o8VUX|k Mbuo(wiN?iƈdIv7!7iZlۆ.oq p ᪺-/޷N![,`Ę]-x<K&Wu߭@R fS;EK*?T,c"(F{jGIyG7_.g׃ 2:{@)rK7o[ 8LZ\.vщza2.~s&'Țey ikP.mIKnck)hD6xlڿSliǔ(4ԝO rQ(bq~Yٯo^m弪E  RM$S\M.ٰ2Zj݄QD~͏3;0-i0?}_j wݩWls?u wgzZg9%_1SF _jI]]~֡v?i|qLxv|ZU;'sڟ-M5E/8fw8]U- /B %p2Ql [u|$^Y3a3֓m#Cy*-4f\i؏QY^rӀOc_JK{%]*4a_/0H#kֲ!AZnB8ԀoWkm.u[IĪ1|C(!'l '0\wTP&pgz췟7zR'!t4D@op2oTJCi#fk4g!u#J函iìJ_ҵv~1#*]jbʰ:@ 0r>?y3˨ s!^tQ5͂ķ zϽx>k}nu]&ZmT /R&ÓM1۰O@ztѺz8S#7j4a`J^Ocˡ]*%1ۃ?!^慽7Y ot`c ?:?~_Q,cV~8Nޖի4-q#ptv+S۳#6,.ВqijrҸ5ÂQZ Y'ȹe:ѹ BdǾ9H_w$y97בs3+}fgPGڙ*&a,>|)ӧe&vH#8LaȦ=mkPG*o(!xJN7/j#AW_AGaIkX({X SDLʽOMp5 X0 tQܗ<= F=0U^t<$JyPzj(n4n+T-KL5*=V#B";8|`*i 5Unk>^8=N%%A'[ϛVy^A 7ĩɮm7ʘw&/<4Tٸ=x& `u([cc^55|Nf@ vTh_2'ua|wa6NiʇY[s[h^۪m.{6t[Ai@To&aDF s`(5YJIM*UI`\hbcbJ (uL"Ⱥ<&'.*Z kv8%XԹJM%2{܎51E/PEN0C[[_>yux;He*6#%]~bEsԃdK4z Q-H0,Tj^H23N)s<$ug0iWM@NS UZ w|7En'DMop3Mv9T'᧗ݦS̊غoxƣ` [q¤SМ? gw"b##"vLX`T'RwdWzcސe.9Lo g$iZ [8="ۺK࠻ GRg0c[<.^CȐLЃz˖Ψi#;/X[Ѵl{]`g޶apXb0:'gn04߾A: AW"j xO;TgU|(%8BTM.l Vk 4#XnDqVog1d/'W=t* DŽm!ZN8ˎS^ߊYcj%|BLvQ,F5j.%[!k~aBKB.#1$Χ2/j<]d XQ\Ԏ};w]uD-OٖHB+*`k({P,%mT8.xd K{L=[,"ڳ^7S0y$m01Ad`m,,غB όBYƙ%'zI+ܾi*ځVZ1F y`%ԭYzKN#q`E 0M>}%MݚC;M4j˯E;o1VBNXx\"@m/zk=q\,JWpT<-^nsI/(O?N{ѠX,.'2#%!:|p -vbTvFw%ݳOT)iCG6y!roUC~.NG hqH+]5,|C@eM|O40jӝ1GtL+p<2?xDh*N_5M@d7.Lh{ė|iXoV-}i1G=S hMR-R9 ŇKS $U0!D1@1- BW78h2gK ΝsU²}rQ呯tQnzz94Xѝz'I I$Ty75A\إݘzE!;T xGど)wD&\Bd2~5uooSs;ͳ=z\yR1ʶ1awgGY cr7>c.}GF!Z2XJx?O`Lfo1K h?"O;# bbhV gymr|VOxR5ZMvd6;0,Bem;NvN^-^=<$)=~Ss.:6rJw#[%\ ~K7;ćxy;NY8u˥{wi6l෿4YgP .<,PEkmpJ:1">SP5d$q'#o!y3 ԑEEx,,p [:26#}4o-^JQcY#I2C壭Lbr裬WM}@\.PEXAf.i-)G>4}lXE˖lBtTD gFӘ6xd,J xX{_`D܀% gHԑgJ؃u,E2M ]]2:o-2 8w0Z<;vofr(UT1M6eQ.4M[s&o"(RJ3{//W߁ٔJC.5fdkY'\Ǡ"A&錵] ~ڕTr'\'d1H> E#9ȧP=\6coK ,>BNW~IL$K 3a! QsXyvշN<^N]hkSfe3^^ysbO᥏²4/DO p(9_#+#HQb4= #=Zu7fNO:܈ؖĺHHN(gz7P kL"bsӹl%R4jK!Ұ[c T'/g3u PZ0,w&>thyyסI{"X&Ax+D782L%{b?溺zd$*S/}VI;yx_dK NVo~Q΁ idtc %yԽ bv5=hvj j~@2)JFM+56^W4)yxydzVg-BX ++sQЯܜw'Q'w-xA/ \tEϴ2&;gJH<lT 4J+ &b`w=o0|7cpLF3<'"2}*w)8FukQK֐"oӥQ_qDN'z t3zO@f5(S&1PVt`tk3W̚.Tߓyt'PaV܅ tEh{xK vO֑51ZL1n[W͑\,*G.z~%IgDzxzۃ#G VIS)H){P@>CԂ :Bv|LTg/T1k䉺HbK?wZ.#`gayAtnbR[ D6%,j|5ț8|Le-73-8+ XVz״us &e@*dN۴Gr2u'n <9k#U< 3ODofJ36}rT.19OY|vC_43Tk:6F@WD?1TQ6|^(w b99rLVq+mtx:e]U(0!Y 栐_oTȡ]vDY $g@PYs' o$@/ĬNw[sD;ƌ*1J ؠNY J)"Kp}̫>V>f}d8Al|j )lOu^Aô Uf{r=ݥ=PѺp*5th *"C540LBH]E=- Wځ|`r !`Cuu P f+ Gt2ei X?l5:Su[{-M6o-O19 tK г"o=}SrZ|{E`'&e|vcHC/Sz+'Oazwn|7(?:cڅ^N`}. ǚBh4vxd̨8`=p[XlKo *7T;+0/gcC4m_qSQTh ה آؠ%7P_HyLC[+lFcF%cImly$I;E AUk*HEgq6L4ǎ/ۑ~RFh\'Ó?5WxSD X\5uPwp: Hb#ENg"ݎDA䫺/^mQ ~$XڜFw)#Ԑco;)F6StVN_.)Ah'X FnVR<&ۊ^!`K tyӍNuAqWB1Z'ofշyFAe XT bd]3#\J p{kv=(_W&?xb+j6yZxK^N| $W =d(n㦧[CsIpdF_ NlQ<;m^yx|l o7jt ޲2Z<J F}VnBa~؍&iph0|+]XĢ>SMetxm4ˎN z8:cA1\i'c|NٓBR]o\xOkg%=l:opUu!Mе1t7\Z.s$RaB4Rr+e7Y>eq$p!K_Jҋ7 ( LT5.ջ6Y0q,%9kA^þbVN@,r,APFG/%Zt,KKU|M{-D?Yߟ6ZeR>xlO ѹ:#!P` 6юrz7Fa&]DS_ZgrrY~Ռxe Ֆ8Wyf0AC GruiTe~] ""ADvʊeA XS5ēgY p_VPCkf؊j<=]˶7C p.U@[PK7Xi~*1G҅k×K+';<痠|LS3]ľM-jK:kFż.A5ceNXSEpj%ѓOyܗ)Xk ?̼6y4uYC>3<\xVI%)ǤWSDa#7 )7V^n YQ\@nM!3k^AT o]V"Iφ:jW2 $sC[iVI85nLK)==\ "q* IuEӋYHEej,`TBz>w%wƄ(g9š趃FE0f:@+q[ >eDܔPn&r$Ao:&xL%B}}%:q8yӛ}S!]%g eN 1%ӚqP5nၜi٥)-` k| ({aq jF =ƆuPC_ z6U ֋}HLX':V\@')CM͏p"[zP6t=v/E*j' 70`-ފ;uYl:pj0zr= {,_OO> Xe|c<ze*41~4?_r<#IZ7Ѯ9Z7>yKdꋉ/ެ*!̀Hq; ׳,k ;\S䜠F*(+`Pjַjܘ/, O sE0)/sz<n}pVX_<4$L46vwk f<KF>HEږ1^)@{IPhb4nAD, ? UJ joK, {T-}QGCxȈ=D!ܱ: ;E侙7ՙ"Y浸 '^&F1 ɛkjG j=i07i#bP]D[Obul~܋(1#%t;<1R!=)^OADBeVhʵ!2 w<(g+jYe~i.& $Z9T(CZig! G\ WZ|x=nq=uVb ؜1#=[2&OT9J=6g:-[țڦw p}-S5B;%<)к1e,ń6qw<肗&ZOπyOjXY L=Є3ft{IC:8-AlR.[c/w23skGnD=ĦN5lv0)Ft&"IxyzJ%Abtv^W]tLZhcTi^aI yJiĆmu[ d:d>Iy9 6Gn!pw`?ť?]ݨ|_?9ISB ʾbg Tz!ℶz鮕|>tS| Z-}^ [3 cUY$+h mdgQd'\KNH#1`CP ~v)oQPvP1D1dlíqH{% ̅IBn kD+#aD~]L41klQaܝkDaj,>Zy0o[łڟ(ߋUa,Y~LВ|avg:9=(0PMC|\m N" 㕌o6MD:trڼ1) Ri'ß/6=j=p"8Q!tT#|#{q15/ )fgD1rlV# ?j`Q(*&xP3(8NvM mn0 \GL hHyH)(eI$G]D7iqL#&˦fG'Pŭ@B0Uvd \sv=N|c@M̒L6cb|(|SFˋU,MIS θ W ӵC,dƷ_Yj9Ksh2MU2 NϾQX&2KUB#A~= @?Ӵ~%k?0%veoֹ.C鹶\tpR jV.6gF`苉RV&l+]SJo-E-lgf|` #5VzW1$!gMx0Dϙ(`rWL}*Sع=*#]A $ P]ƪ<@fua7vB`Ѻ{ VOJDT<^BuPFb#|\ Wnںj?Jέ61##?A Nc+ vP(S;c0:R11QbPDӑv.@k>[\Uam٢b*1@Z"Hzە3C2 $"džW?-ǥM5էwxT![ SrWs# #ldЎ4[x8!(ԇwOXdM?ȍizmr3 {X&G<_`f1* ysv(nQXQ ؋# )?ۘnjF*Y#_?]}A&{Tn4g)E 蛄sWm ^? |%?XWT-"ć)Ii0vΑ0]df#Q 5ǥgn @S@?nw:az;NGv=7@Ì|ZUF6Ns e\1a󭋋wi)hV1ӷwz0(Etk]Sn9f-fofqOtV4EwqQ `H>܌ϞdT=m fҩ.{TvqԾXT IŴNiϤ4OC*˨ %JAqW|z  #_{zѹ҅JaY|6w02Q ^1zG_~̄7x;T[/ 2UVArE/GrGx1ȭȍF =l3gr"{ܫb=1茺,`B{ʶaV'q!۳g6c˚{d7O?;v&\VM.G*>e<%n ٯ<&ɑ̵33{I0 4iĬ^'U-Ke zHpobKbuWЪupI7!KYʿJ 6JRe_c)MQ@D]SH :>U~*#%l.vf>!kmAĮ0EЁ0pI$58'~tQ y*]|%aHmkk4fy5EYFӱ%?c/5/Q\Ro[=@֕5aF|^փ{9cBw (|46[0XA|f'xВ,\WQ&䰳Z4@--t]Ql=U8-N\ݼXzu;ElQOgrq%f;eLʊ- 4kA;Wޕoc%QMG/ѿ~y-ze-z(kՊafzxu1/,3OT0~M]n 9j-O3.2xck `mW:HdZ|_R}m q@} ^+]u. ݿ=m[1*bP}'#j36㤔SxVQbB㜣xab r%uF/-&˼CHR8RY:*V\D椚w1/ik!933ǃTƉ"*ce ؙO5-r j,܍qS~z5RFϺ&%dI3 `ܒX;1_oCk12#p \Tks#;pt `J,Q#Ӊlї@\{xDF*ٛb-:Z}F ",=f}Ҋہudtj cJH[T [y+'+HВ a"/tzO-xς>_$7φT)3L֕p:=8,u9ZG۸Cwv{Qq7@Ixy &9(~?cF:<6S -Hfѱ4,?8-!!Y"a}hj`v+x/(RT혼@~80d͑p*@ 91I-"14c'`a-  XPG𼣞u%k ̙cϚ#WH-s]NIɻiՉ%MۥC6/s#U>o8(\fwSc&šʊ o3-u؜1t x9BD3>R_ ˛-[6 0عz}+UPy%к1lCTD[kM\Vve]4l`e@Ei`Q.ه7~FGq1ZoGQOr:v5 c[SBib~=dqpVgO鲗#h6Y Hzak]{BK'TqCzQQ˴wHМU0Sq*@WAj۫V%X2 NQXa,Dige.ql:ٵ6kE@pF/gx[G%~&Sm#><: b[}cʱKBn)U~gNN$ &䩖bJV\A$瞁c{Q%T@BJ|ʚS+6N"SIG\\Iuz{sdOX='VאcO8T+TqNOuawN>.3_Zŝq;"˧j>$BL{z~b#4E @ej笪l__Ͷs9Egux.fvp4=&tbi(l&ξ#խT (UeTLI@8_h3n:CcqBpZVr_kbTѾ >7jS `O\kaG!%f%pDFRnOhЮ6`Z9ڶ0V8fS)Pea[wpLgntM؟ȇ5]OH7OHNy$-"\p2x1"ƥՃwPZkp|AK79G~'ǀD.ZdlgavO5$Qh1ϑYݤ}TOD`[[N@a,^vw.,u5-} O!T]٫NTc] :sGm]t۞6>qN͖e#>!° Txuפ$>fŁVHwEUV{Ǻ,`pG+Sdl{%sط%IAk o@^{"'fvD7pAg4a._Z$aefTd1|{o4^ { -?? 9B |UZwUWyS2)5u&^/H V-]V86\4ToQpg3o_eħoH0V,+׽:v?Fљ ]TK3 |_dmYiQ:ih /fKL͊#5u]K!1E tȒ*(~ sE䧰ڄ?I{0 (,>[0d𻇶O/#܇@$3wbZ4ﶾ# چ>"ueO)`31x%gQ|j;Ѩrn&+o[d^;;f)ISn_ŇLVٺTc%gqLޒʠ,) G[(E`*k:%.l_rX.oʋ_uI"L}Զ~.!$[d XƊ? PhlݸR(nVpox[˦dZ7BK@~e_CYlCy}"  4c#J<`Us۶:aoVbEfْ9͵*.; wZЍnQViZ!< wc?H~۟T1wcazڢCeȘȁƃ ?ࡋٓuGELfJ6GybA@hy))I0)FG2X)8pѻ:*÷*1j"$Tn$Yg?"C8<|lPŠ鰀rrߨ)i\5!V@2(Hlc}Zj+PR|n RrpK ٚ4o_VF=Y&ىyZ8a-J@džx~-YmpQl$~rΛY[\9$'g[sr* H6q~ucc ~wϻvQ ;B nV¹wB[TP5bj1]OV\Kd&vL9$"0F3b!Q8Zly)B.{qM~p8m xw2xh(Q[滄-DEߋ`klIa%0BVvg7'ӔJkt &f,NԶs[?}~pEK#}f½c0^]wm53 b,e*$wBN °@oԫ#'~0${_YE_Xh] c$ݛ~8I?4aѝȻX=XOU2V59)`=F@ӭe@Hv-(9tɪ!%QsSΤN|l'Б+sVswq=6ɨQ п_)j /:0"#d"S\D-H7EX75<\;ŧ[0@@4Alcٟ$'̷݇ 5ypE!V:-hꝈ<⒝fpYъ!/a*Zv\ԑHi&s,:_}1D{q$=teQӧ'/;K52@mB[0r,4M063^^8[:TQXBbvq,;^0x*{tܯ<,G7}Yd!N(^3r'*wi6&i9mغJFD>\zۤQ3шr{>fX#"w6"+v{#s93ֹ+Ld2K(n[a-Vzs,!&]}-Hc&';Gbnl'j>TPj¯I5K KD +H3 $dC沨mS@9p_~-W3E E3aZl=i|/vpsb:jnR:}9n~fI_!d"Y9J?`ylL^B]դq0pMr2 ۬vaZW-Z9y4*,Bw\TtuwA>5>`$l1ʘw[ʃKï|-$ )1}9Rm9́`z=Б 'qF#Qj[tK_k$h<=[yIP>r1: dfD=3.XbIyRbؿ0^%MUtZv[oq۪_/k?@g"c-ܫ[j:dι<.n )= k<CQHKf-Нr,ߤ qa,WiV$T~Gh>a~ vhԱ^RNmSqrsd OX4\;Kˆ"SJnܛ ¸ @YG>~~b8%!߅o(Y%7>"H gFYeF`i ]OG3[-"٥ ߡ endstream endobj 8 0 obj 29548 endobj 9 0 obj << /Length 10 0 R /Filter /FlateDecode >> stream x]Mn0>,Ev4B {"cxT~o4>n\!{p;:pA# x ̨*{Es-+Nk>ᲆ vOfA@ ]`uxzr4`r/',Oy֒#{wu7P[tߙ*2X݇(QeDVGCbG K朸b$~Ĝ=kw`557Ȭm⃊,sI$/,1/OĜL_%//)>HίRM_r3o]#I3Ϟ\.2J endstream endobj 10 0 obj 337 endobj 11 0 obj << /Type /FontDescriptor /FontName /NimbusRomanNo9L /Flags 4 /FontBBox [ -168 -281 1031 1098 ] /ItalicAngle 0 /Ascent 1098 /Descent -281 /CapHeight 500 /StemV 80 /StemH 80 /FontFile 7 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NimbusRomanNo9L /FirstChar 0 /LastChar 25 /FontDescriptor 11 0 R /Widths [ 1000 333 500 250 500 389 500 444 500 278 444 500 564 778 278 500 541 500 278 500 333 444 333 500 278 500 ] /ToUnicode 9 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 6 0 R ] /Count 1 >> endobj 12 0 obj << /Creator (cairo 1.6.4 (http://cairographics.org)) /Producer (cairo 1.6.4 (http://cairographics.org)) >> endobj 13 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 14 0000000000 65535 f 0000032559 00000 n 0000001598 00000 n 0000000015 00000 n 0000001575 00000 n 0000032278 00000 n 0000001707 00000 n 0000001907 00000 n 0000031580 00000 n 0000031604 00000 n 0000032018 00000 n 0000032041 00000 n 0000032624 00000 n 0000032750 00000 n trailer << /Size 14 /Root 13 0 R /Info 12 0 R >> startxref 32803 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/graphs/faustextended2.dot0000644000175000017500000000064111702130733027415 0ustar orlareyorlarey strict digraph faustflow { root=dsp; dsp[label="fx.dsp"]; scalar[label="fx.cpp\nscalar"]; vector[label="fx.cpp\nvector"]; openmp[label="fx.cpp\nOpenMP",style=invis]; node[shape=box, color=blue, fillcolor=lightblue, style=filled]; FAUST[label="faust"]; dsp->FAUST[weight=10]; FAUST->scalar[weight=10]; FAUST->vector[label="-vec"]; FAUST->openmp[label="",style=invis]; }faust-0.9.46/documentation/faust-quick-reference-src/graphs/faustextended1.dot0000644000175000017500000000066511702130733027422 0ustar orlareyorlarey strict digraph faustflow { root=dsp; dsp[label="fx.dsp"]; scalar[label="fx.cpp\nscalar"]; vector[label="fx.cpp\nvector",style=invis]; openmp[label="fx.cpp\nOpenMP",style=invis]; node[shape=box, color=blue, fillcolor=lightblue, style=filled]; FAUST[label="faust"]; dsp->FAUST[weight=10]; FAUST->scalar[weight=10]; FAUST->vector[label="",style=invis]; FAUST->openmp[label="",style=invis]; }faust-0.9.46/documentation/faust-quick-reference-src/graphs/loopgraph.pdf0000644000175000017500000007442011702130733026454 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /BBox [ 0 0 277 423 ] /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> stream xX=7 +,K>A)\g0&[$)HQ P3EOeo?{>x?O;o0_,K^٪ncG)Cf']-QB>b)&u dzDŽmL_Y 1`uېRvZk> u*os/P'9?ټƿS?1!w<=_w>o(w>d?l2$+7{͖.qEY&B 1;OA7clQe /ւԗN݉2\D1.TɆơʰ<e}zw (<ժ >ʵ pH&BGPvT`RbFн|#viCc+5l[(CƛJ'Fn4b[ Pi8?}n*tA9M⤋9f & t bp⤋9ZQ.7@BGOC.A5wÄ> _T˸ܔK?%o_|8uY&B#c:2(͍ #F̅jy#n!?X\[Ppbf[tr i h/|(%~YQ"\~Td*8mj[ endstream endobj 4 0 obj 1230 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> /Font << /f-0-0 5 0 R >> >> endobj 6 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 277 423 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Length1 1557 /Length2 26589 /Length3 0 >> stream xycteݶmlٱmU*mcǶm[ۨTm{ιZks1m)HUL\Xy@[cWge{[y{Ye3 WBEhflldb 0xqRؘoQpfN@{;N df5r"go31Xyyٙhg^'{c8 {O' /_j5e ::#,<<<c2Q3g?Al* ,l<,FfP71mnj'Qd 03sSߎ5ZZ\jK^&hlhg'&_8, t23S'Rvvc3{L]쀎fR5o'-f6#Ē鯉U=&L}F6f@s?78og#73'ӂcaM\f@;GÖ3rqztt'?ojogFf&#Rff`7),lf`0rXg*+S2J0C4M&y{K$Gn,XdTW,"[#CqWIGHY_J1rNF@a 'b!; tz*]L,"L͜lvfN 3MZM̜,ߜN$fgbo rp<<,7 1{3]\]|}Np dog`rqǴt27]e0n `ri1ݿ?Odod6LW'?[zOfff&p̌+_c90ݵtcA3%Aޥ#I`?_'6[H {Z4evxpSMvi<,}'=.0ꍞ6r OSJM$hV9@r:VMEȭErWdJBqGn@J,v>\i\f8oe#htCzp1o~$3Xo#oNa ~K =?-6ki {"?e[[a]8O*IJJN%EfegST{}L[^rUE2gmO*]mEd:dńdb AI>΅[ ~Ppn$cGɿ\(r q'VoFT ڐ!";)lF6Ԗg^Z6X"ͩ{;x/5^%BS&Sp2xtZcH"D+×ie8_ hRI+TΓ]>-obh(V~Ig֮ u<.kzݵmK=!qmJ3{? F pzCrȟ~-yxgj6["Kָ >x|tl:]+Shy>/F?F5ZEl25RYq7H G,5Qan?b]?s[ VtXE*PDP (9*!ma!C`:kf-~c{=lY/Ԇc "t-O=< G[44/,5@mhi[,-N= yck٢ 0UЦsoSIRcYu~9Ʃ~RkpV|e4+XA#LZHcC $WsP7#1瞻eU< >]ɝ+`.xdJY$n5 ӵomƿn_(j/._:2g$8uҟ*xpYj3Q7G<Q@?|pÚkJ" cfŮD٫FR =GxSU#P*qx}8Ǻ NY `$t8QK]eV۠$쥩֡ڸ{Q@- ^9aJ9V^w]' ED Z~xb):k\9 )}x_5m^6b&0\ػ㔺G R*۝2߲_aV >8߅/n}/aLwxrTA<&2}3z4~>}DsKFf aXX~X; -ՂW9hXhpއo[V%`.4_#w=eQ-Q)zU*-2;|g#  pVk^3aF#ɻP|˕CC:@+х΀&GT%!>5MՈFAL#,dRQ(-qyx:ۼ]!BaQ鷊F^t;3a)kj -6] {)9c݀ Pj+&{\Xe? ܧ 674Fׅ°EP4Zr8Vw(nm-~arw7'+L.W;kvGqyDcJc_9&;tY3ld /ka(+0T6(p4AR]BdνʥT?_2:OnJ;>??;)K(q;30 ?Nev«?BWPQۓfW-5bsqO;yMxqEN,~eg,]5*o'۠C"qE=l`Hխ(mf.fJ꒏]4wDBQ'`uVbn5=~>X>OfA-e)}/޷y:xֱ{t!WU"!;H[Δ쬆]A,um?qXjГ;J(4ven\_p-s`Qř=Ӭ[M:PmS,%3-?0)UEz܅W|\ڳd+`5_ ΄ͮqntp2aYԵ~U1[<3Y_&gZtBkѲNI %$V |vm<_R1#b: [fU^?yu +%ڟ5d9Pw{1l=Bez JWD!F%d>4迱;YMIRc*6ś^Na *OSfNOc n,Fʁbd-%ĬJ;L%K2dkbe E2>2ARfQK Njzr1/zĽ(k8[Oq*LIۮ AucvM׬2BG V'} @3D\ܱ ge0e  țQ4U ٹǵTT~>6ۘ]T ʷY;S'ɻد_iH-uvX59|~Ϯ#.C.+}pJE^ȴEXpUmF˝#w-ZՇrtgMxRoUTv@gEXb\b ~NяFg 0.ߛW/%Zjf(0\]Q]$FfэvN bkǨ)0F|L,wjh03c܉\J'T H t B{ Bgɳo 2#ήv<*G#4qxǮ[e\>W nT<[fLt֊JpMc'3B])"\-a74 o{q"q@{չf=,}b)Tͤ֞C_C}=+XE_+O2T&+9sx~CozXPQW^qsA?)i`K #UG.DDm+WAisi=/TmZ 4rFjLM1E֩bF_<*YbJ\r@7V4hfmujFVS/$•_13Ga)[?d xޞku[!KjӸc#F<{Ԋg*TߖG{Jβh_6"51H_3{BQA2pyqL|LpbEouVʶ_%ekHў3E^$'z`#^Ƽrő6^Y$O7 v;ͦBJ"̍ƝFڳUgm?x]-%:#eB90^Sx傤;<HXrEn>r S dJTdCK>Yvf̵'_~4kNL3UeEu#vXj"0.-y&LSzyCg0iDIoAg/—ᣫhU#qh1[K_0[-,61a(ixq{dd8@J63Vh8m|:vAaHɯў:]s:5lp<l?dD| b V<1P{=jj_)űXMH/yy&R.̃yAu8x$HJlZUT,~ݓ^Z^N)/2;n\.GIYQvs1H|74`얇7p'~_ Yp{}C%dUp/nFoeiȶW'`3⥮8_ j\b/#3/yrmpw,8=Y0ҷ-\4!f (_ äКPztFk,oXNj)U+%+!y})zWKx,w'YrükJ`ejh>voS⸚\GxQwB-Lkk=J7ezjIK#<˭-PM>VZ# VCNLXH,& QJ夠Vq%-.X C㉣K1/ǖӹZMdk k'^ yyR׻Pg1AcSć71T K_aYr>NDlni DL2\lU"/C %IF3& L`pw j.V#[\P FEzܟm݀1)i{8j!<+|aWl+,C5'qW ik+,ȁ AG1cɕ?%|ܖ5šzCkMX7ڑgiJW qod8=]~5&fr<<:D3A];Df0ᐊ7$TAqxZ1fyTu|bbawvLmT}K[QxTҿ0š51pʔ2vatr3I;\l"Y>]=[8jl ۠ʸS<9Eu3%w p3qV)kvD Of\\g Ec"4Qc%h눧e٣8ړtpK#QU #IM-j-|T ,n;T`0_sܕxie^wFm'8 ĸ)+]bEo1k_ ?؀7ҽO}gM:Bh.> _Q@ -'yA ]By 狍nb] `*?1<16=} !o ^H (=F%mbʪA!aDK!v2|1 ' HݕŞeǽ#B\3zܲG"~O]`׃\IThL4r%@ܵg@ѕ<.jFa6~(eC\wM@1uoU;Lϳ,?rY1Ս>!#$w*Io܂N1-94q\D.^[%Dd(>TAѤMX8ĹȓxsS5no2eoQ;PTr˯GRC|U~5;ܾ mͅ| @*}z~G/\=ײc26 |ܒݽX *E\@[suӨBB# <leCԲtbFޮ E]}{|BlXɞ6*vs_\-TJz2X`2ydfrUB;psQ(hhab8ִbDPqз-pw*W9Imf~FF$ֺ]c"Cx6W|?VkOa{L+xLx&Woxii& [صYߜdzpsJE`pi"/dy1T<,8(S/ɨhAԇ1!Rz{Yq?)L$9u8b+[@^,``KB e$fX72 0uOI̽ g6&Ocg'ձ!(SGnsmb[s\iJu- o8ԡ}Ȫ;\tjU(c'Fz.fTm߀nަ'wOք? Fвn^˔]>8fqY#/ woSMAU-u_SK}kAZ3Ǿl#n㦺7p Xo͜%%86ݴ=ˬ)۬  Bz诼$v_30|)rYe|Y v@^ k:7<֑KH*S  8ҭѬVzNߐ1n]83N8NA;Sթ, ›!,/ҡ|8h<Ǟϗt-AC̈ BW%2l$( w2\]T,g 8]epglۋ\ $,]s!`HHe y6M[};J5t]E>1MTJѥ\,𑡝Hś|pºV>34.,޹R}q+9G:g@wƒ{ō]$+ zÒ [n cZxd6J:y8{.͋nEZ7RS hmc)HP9[fA;`JO^bI ZKi#Nq pPJfh>2O}; &}bӞ5#^xG%jg5ӠKܣ5L,Y=Jjj) "& >&&oG (NZoʏKtUTX#*/Z:S7R`]J^=5twǪQ`% fxʞ@i+p#!Bڏ]yiŝCLTŋ!mRm g_z:Du=hG+hѨ"eqizbd$Е>m dY $d,\G' L?D~$Fyy*;83vMFCCڇWΈ 8 o/Vw3v>A\պY#ZcxT^'d[ iWLe!s]wf㔦|dޛ0+J?{U 邻?MmC7DobF1kp8R5ɜԯޤXX=&V1(Qp-^$yylqf#ZEnT/CxXSU#k+?h!ӑG<\' ہ>TVAZ"n3XrG(X4z@=jLLH٭bϊBup(/3½INRw vՔ4_e% B`wSvB[7#tZm,KuJOq[L~~= +m9N;ì聭vg< k a'!L9`{-!*6<ʞ-b4 ގFu!u}Mvn}=_vPLqF҇#( r.u3u2PH = f w =lYzj6X1BmEMM˶E9wm%& #}2pFH[sA T" jȘ_x%"cI%pVŇRb+DմFz`żB}%KݚC;M4j˯Egg$`ZM^[3rL]T`H.xÍU&]f:VhGW"Vb#(B'[!~c=^mE~aQ.z'=x;:PEDJlDwʤbSgF6I衜3 E %]Rr;)w&>V?_tpÑhe7(3!lE%S5R1{A$n^*wtP"{dN@ U܁tB0zzOVb(ko|ċUbݮBwR+S=B}Ԁau—90 4P!x۔dnA Sq_b7\Y_*:[z0C|ͷDx:(6Ys,}I'ʿS~)K&-tUt. Nv>̄G|m,fҗs\~[ۃJ=d+ER+j[|;՘0!/ Ho]Jtʞ3+ y{3 Xsdo܉?g\nP+,)jq5XJ妧}CЊe ݉wÚ0q^wT}i%ekwdt@K30(&|֎R?ӝl ~j䔮j$ )qfʼ(;θmq o?&A!g?f Lg_rٰS -jmE]!>&>ŃqB~Hլ\-e=`'#NqIҖ/q{ם16PaPG8vkn%Pօ2(HuL>nEKr8O輨8rxqbPaZa!b%C8 sb J9qjO2 X ߇gq,‰HUKۆR28(z F 7'1D+\>FdUfC1ܲZ@aLi)9tj E}\hkIB3 :@FF Cnh1۩#72׋TXT?# u~#emO!vSi.޶#^JQcY#I2C壭Lbr䣬WM}P\.PEXAf.i-)G>4}lXE˖lBtTD gFӘ6xd,J xXG_`gD܀% HԑgJ؃u,E2M ]]2:,2 8w0Z~8vofr(UT1M6gQ.4M[s&o"(RJ<0{//W߃ٔJnBஸ5fekY'\Ǡ"A&錵] ~ڕTr{g\d1H> E#9gP=\6cKG ,>WBN~IL$K 3a! QsXyvwN<^N]hkSfe3^xsbOò4/EO! p(9n#+#HQc4= #=Zu7f.N;܈ؖĺHHN)gz7P kL"bsӹl%R4jK!Ұ[c T'/g3u PZ0,w&>vhy{ԡI{"X&Ax+D782L%{bzd&*S/}VI;yx_dK NVo~Y΁i^2Y:1Qv1{;Z85㚭LR'QjSJj7Ua n `~Cs^t1ϭQK&:l*R}80tD>L߀[kM-k9i缾9Y^|>.r/?@]ߨ/-\6Oh[%sq Qv|&oǂ'V_RqCjYF' Y|_~/r6I"AWjXs0CWV*m5>iLRm:)˺_[[ʹAbDQ.ҕ#NW7tu^C/JX* `1i:*[Q> NMypF* eaO 3]r ^> w ,+# Q 3ZS Q/’ ui>2+hku匒->8ziS;NW꒿|R㽨|*\ ~ *bգ3zO@f5(S&1PVt`tk3W̚.Tߓyt'PaV܅ tEh{xK vO֑51ZL1n[W͑\,*G.z~%IgDzxzۃ#G VIS)H){P@>CԂ :Bv|LTg/T1k䉺HbK?wZ.#`gayAtnbR[ D6%,j|5ț8|Le-73-8+ XVz״us &e@*dN۴Gr2u'n <9k#U< 3ODofJ36}rT.19OY|vC_43Tk:6F@WD?1TQ6|^(w b99rLVq+mtx:e]U(0!Y 栐_oTȡ]vDY $g@PYs' o$@/ĬNw[sD;ƌ*1J ؠNY J)"Kp}̫>V>f}d8Al|j )lOu^Aô Uf{r=ݥ=PѺp*5th *"C540LBH]E=- Wځ|`r !`Cuu P f+ Gt2ei X?l5:Su[{-M6o-O19 tK г"o=}SrZ|{E`'&e|vcHC/Sz+'Oazwn|7(?:cڅ^N`}. ǚBh4vxd̨8`=p[XlKo *7T;+0/gcC4m_qSQTh ה آؠ%7P_HyLC[+lFcF%cImly$I;E AUk*HEgq6L4ǎ/ۑ~RFh\'Ó?5WxSD X\5uPwp: Hb#ENg"ݎDA䫺/^mQ ~$XڜFw)#Ԑco;)F6StVN_.)Ah'X FnVR<&ۊ^!`K tyӍNuAqWB1Z'ofշyFAe XT bd]3#\J p{kv=(_W&?xb+j6yZxK^N| $W =d(n㦧[CsIpdF_ NlQ<;m^yx|l o7jt ޲2Z<J F}VnBa~؍&iph0|+]XĢ>SMetxm4ˎN z8:cA1\i'c|NٓBR]o\xOkg%=l:opUu!Mе1t7\Z.s$RaB4Rr+e7Y>eq$p!K_Jҋ7 ( LT5.ջ6Y0q,%9kA^þbVN@,r,APFG/%Zt,KKU|M{-D?Yߟ6ZeR>xlO ѹ:#!P` 6юrz7Fa&]DS_ZgrrY~Ռxe Ֆ8Wyf0AC GruiTe~] ""ADvʊeA XS5ēgY p_VPCkf؊j<=]˶7C p.U@[PK7Xi~*1G҅k×K+';<痠|LS3]ľM-jK:kFż.A5ceNXSEpj%ѓOyܗ)Xk ?̼6y4uYC>3<\xVI%)ǤWSDa#7 )7V^n YQ\@nM!3k^AT o]V"Iφ:jW2 $sC[iVI85nLK)==\ "q* IuEӋYHEej,`TBz>w%wƄ(g9š趃FE0f:@+q[ >eDܔPn&r$Ao:&xL%B}}%:q8yӛ}S!]%g eN 1%ӚqP5nၜi٥)-` k| ({aq jF =ƆuPC_ z6U ֋}HLX':V\@')CM͏p"[zP6t=v/E*j' 70`-ފ;uYl:pj0zr= {,_OO> Xe|c<ze*41~4?_r<#IZ7Ѯ9Z7>yKdꋉ/ެ*!̀Hq; ׳,k ;\S䜠F*(+`Pjַjܘ/, O sE0)/sz<n}pVX_<4$L46vwk f<KF>HEږ1^)@{IPhb4nAD, ? UJ joK, {T-}QGCxȈ=D!ܱ: ;E侙7ՙ"Y浸 '^&F1 ɛkjG j=i07i#bP]D[Obul~܋(1#%t;<1R!=)^OADBeVhʵ!2 w<(g+jYe~i.& $Z9T(CZig! G\ WZ|x=nq=uVb ؜1#=[2&OT9J=6g:-[țڦw p}-S5B;%<)к1e,ń6qw<肗&ZOπyOjXY L=Є3ft{IC:8-AlR.[c/w23skGnD=ĦN5lv0)Ft&"IxyzJ%Abtv^W]tLZhcTi^aI yJiĆmu[ d:d>Iy9 6Gn!pw`?ť?]ݨ|_?9ISB ʾbg Tz!ℶz鮕|>tS| Z-}^ [3 cUY$+h mdgQd'\KNH#1`CP ~v)oQPvP1D1dlíqH{% ̅IBn kD+#aD~]L41klQaܝkDaj,>Zy0o[łڟ(ߋUa,Y~LВ|avg:9=(0PMC|\m N" 㕌o6MD:trڼ1) Ri'ß/6=j=p"8Q!tT#|#{q15/ )fgD1rlV# ?j`Q(*&xP3(8NvM mn0 \GL hHyH)(eI$G]D7iqL#&˦fG'Pŭ@B0Uvd \sv=N|c@M̒L6cb|(|SFˋU,MIS θ W ӵC,dƷ_Yj9Ksh2MU2 NϾQX&2KUB#A~= @?Ӵ~%k?0%veoֹ.C鹶\tpR jV.6gF`苉RV&l+]SJo-E-lgf|` #5VzW1$!gMx0Dϙ(`rWL}*Sع=*#]A $ P]ƪ<@fua7vB`Ѻ{ VOJDT<^BuPFb#|\ Wnںj?Jέ61##?A Nc+ vP(S;c0:R11QbPDӑv.@k>[\Uam٢b*1@Z"Hzە3C2 $"džW?-ǥM5էwxT![ SrWs# #ldЎ4[x8!(ԇwOXdM?ȍizmr3 {X&G<_`f1* ysv(nQXQ ؋# )?ۘnjF*Y#_?]}A&{Tn4g)E 蛄sWm ^? |%?XWT-"ć)Ii0vΑ0]df#Q 5ǥgn @S@?nw:az;NGv=7@Ì|ZUF6Ns e\1a󭋋wi)hV1ӷwz0(Etk]Sn9f-fofqOtV4EwqQ `H>܌ϞdT=m fҩ.{TvqԾXT IŴNiϤ4OC*˨ %JAqW|z  #_{zѹ҅JaY|6w02Q ^1zG_~̄7x;T[/ 2UVArE/GrGx1ȭȍF =l3gr"{ܫb=1茺,`B{ʶaV'q!۳g6c˚{d7O?;v&\VM.G*>e<%n ٯ<&ɑ̵33{I0 4iĬ^'U-Ke zHpobKbuWЪupI7!KYʿJ 6JRe_c)MQ@D]SH :>U~*#%l.vf>!kmAĮ0EЁ0pI$58'~tQ y*]|%aHmkk4fy5EYFӱ%?c/5/Q\Ro[=@֕5aF|^փ{9cBw (|46[0XA|f'xВ,\WQ&䰳Z4@--t]Ql=U8-N\ݼXzu;ElQOgrq%f;eLʊ- 4kA;Wޕoc%QMG/ѿ~y-ze-z(kՊafzxu1/,3OT0~M]n 9j-O3.2xck `mW:HdZ|_R}m q@} ^+]u. ݿ=m[1*bP}'#j36㤔SxVQbB㜣xab r%uF/-&˼CHR8RY:*V\D椚w1/ik!933ǃTƉ"*ce ؙO5-r j,܍qS~z5RFϺ&%dI3 `ܒX;1_oCk12#p \Tks#;pt `J,Q#Ӊlї@\{xDF*ٛb-:Z}F ",=f}Ҋہudtj cJH[T [y+'+HВ a"/tzO-xς>_$7φT)3L֕p:=8,u9ZG۸Cwv{Qq7@Ixy &9(~?cF:<6S -Hfѱ4,?8-!!Y"a}hj`v+x/(RT혼@~80d͑p*@ 91I-"14c'`a-  XPG𼣞u%k ̙cϚ#WH-s]NIɻiՉ%MۥC6/s#U>o8(\fwSc&šʊ o3-u؜1t x9BD3>R_ ˛-[6 0عz}+UPy%к1lCTD[kM\Vve]4l`e@Ei`Q.ه7~FGq1ZoGQOr:v5 c[SBib~=dqpVgO鲗#h6Y Hzak]{BK'TqCzQQ˴wHМU0Sq*@WAj۫V%X2 NQXa,Dige.ql:ٵ6kE@pF/gx[G%~&Sm#><: b[}cʱKBn)U~gNN$ &䩖bJV\A$瞁c{Q%T@BJ|ʚS+6N"SIG\\Iuz{sdOX='VאcO8T+TqNOuawN>.3_Zŝq;"˧j>$BL{z~b#4E @ej笪l__Ͷs9Egux.fvp4=&tbi(l&ξ#խT (UeTLI@8_h3n:CcqBpZVr_kbTѾ >7jS `O\kaG!%f%pDFRnOhЮ6`Z9ڶ0V8fS)Pea[wpLgntM؟ȇ5]OH7OHNy$-"\p2x1"ƥՃwPZkp|AK79G~'ǀD.ZdlgavO5$Qh1ϑYݤ}TOD`[[N@a,^vw.,u5-} O!T]٫NTc] :sGm]t۞6>qN͖e#>!° Txuפ$>fŁVHwEUV{Ǻ,`pG+Sdl{%sط%IAk o@^{"'fvD7pAd R2ytjZ.gBa܆Z Amhf=7$CZHw9$􊯟4՘Wmr'wɨך\<< }O 1*)krü9\q\)^(<0wL/͒9r2Ҵ.jaؤyHhH^A0y[2걈҇(MD_rXic;g# $FDZ/9ڢѴϖ<\_WEM' |ƇG,qE=u?jyn=0{ZgQpo^ ?G *z?4۟MO{~Z kApg ͸)g CڃH`Z*7lF"K~rś2`JK(:}#g6wFd} SFFk&3ꫫvj\8l;LxJnw5к{h.%;.=w*{6K$f4́7~Dn{Q7}E[6~,)exK-ij" m[  ~"=g!XQ#[*jdEX&(8Cz<~ :gR|RX!cF%7P穱:2 R[U*b' ܿNդH8@3"啸3uwS{ȎSÐ&Hm^+jXR C|ZH(I.(i.Ee6.+|V5K`АqTf:50o+@M!k<,$Bp^\y6.4BӄRH榌ݷ}l4r6 zIC!g2n z whMMià ^bdG/}?koIijݘ@Ib/Dy%FN1ڼ> stream x]Kk ໿bb^(K}д?clȧ3#3^^+>pq'IYPwi3a[<ν-\`,̈O蔞`}ѰZ3j:(u̾}/B\m26P}[FbG-Z);ZE.%1RːZ 二&}>Gѧ*}d,w[o΅ӃyJXccU~ endstream endobj 10 0 obj 268 endobj 11 0 obj << /Type /FontDescriptor /FontName /NimbusRomanNo9L /Flags 4 /FontBBox [ -168 -281 1031 1098 ] /ItalicAngle 0 /Ascent 1098 /Descent -281 /CapHeight 500 /StemV 80 /StemH 80 /FontFile 7 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NimbusRomanNo9L /FirstChar 0 /LastChar 10 /FontDescriptor 11 0 R /Widths [ 1000 611 500 500 500 500 500 500 500 500 500 ] /ToUnicode 9 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 6 0 R ] /Count 1 >> endobj 12 0 obj << /Creator (cairo 1.6.4 (http://cairographics.org)) /Producer (cairo 1.6.4 (http://cairographics.org)) >> endobj 13 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 14 0000000000 65535 f 0000030381 00000 n 0000001507 00000 n 0000000015 00000 n 0000001484 00000 n 0000030160 00000 n 0000001616 00000 n 0000001816 00000 n 0000029531 00000 n 0000029555 00000 n 0000029900 00000 n 0000029923 00000 n 0000030446 00000 n 0000030572 00000 n trailer << /Size 14 /Root 13 0 R /Info 12 0 R >> startxref 30625 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/graphs/loopgraph.dot0000644000175000017500000000031611702130733026462 0ustar orlareyorlarey strict digraph loopgraph { rankdir=BT; node[color=blue, fillcolor=lightblue, style=filled]; L1->L4->L8; L2->L4->L6->L8; L6->L9; L3->L5->L7->L9; L1->L7; {rank=same; L4 L7} }faust-0.9.46/documentation/faust-quick-reference-src/graphs/faustflow.dot0000644000175000017500000000147711702130733026512 0ustar orlareyorlarey strict digraph faustflow { root=dsp; dsp[label="fx.dsp"]; cpp[label="fx.cpp"]; pd[label="fx.pd"]; xml[label="fx.xml"]; bin[label="fx~.pd_linux"]; arch[label="puredata.cpp"]; svgfolder[shape=box, label="fx.dsp-svg/"]; svg[label="process.svg"]; node[shape=box, color=blue, fillcolor=lightblue, style=filled]; FAUST[label="faust"]; GCC[label="g++", shape=box, color=blue, fillcolor=lightblue, style=filled]; F2PD[label="faust2pd", shape=box, color=blue, fillcolor=lightblue, style=filled]; FAUST->svgfolder[label="-svg",weight=5]; svgfolder->svg; dsp->FAUST[weight=10]; FAUST->cpp[label="-o",weight=10]; cpp->GCC[weight=10]; GCC->bin[weight=10]; arch->FAUST[label="-a"]; {rank=same; arch FAUST} FAUST->xml[label="-xml"]; xml->F2PD->pd; }faust-0.9.46/documentation/faust-quick-reference-src/graphs/loopgraph2.pdf0000644000175000017500000007446211702130733026544 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /BBox [ 0 0 277 347 ] /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> stream xWˎ7 WV7`@@If`t`A`O;3>o{%|bv'}'>Jej=/R$h!@^JqqR!5}'>'w"k@(vmRC& lbܳ(vd/J;^Nˇ޹mw姗/4Ҩ$F=戲J,E9U5I N{[5n^5gI{UUjPs v:"Qx''TOIީPIL֪gBᇉ;= )+SJuҒsM9hU+l_Pn ḘCb+8-:}-ۯ- *H9ZH/zt ,@Ⱦ^*>9d> >> /Font << /f-0-0 5 0 R >> >> endobj 6 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 277 347 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Length1 1557 /Length2 26589 /Length3 0 >> stream xycteݶmlٱmU*mcǶm[ۨTm{ιZks1m)HUL\Xy@[cWge{[y{Ye3 WBEhflldb 0xqRؘoQpfN@{;N df5r"go31Xyyٙhg^'{c8 {O' /_j5e ::#,<<<c2Q3g?Al* ,l<,FfP71mnj'Qd 03sSߎ5ZZ\jK^&hlhg'&_8, t23S'Rvvc3{L]쀎fR5o'-f6#Ē鯉U=&L}F6f@s?78og#73'ӂcaM\f@;GÖ3rqztt'?ojogFf&#Rff`7),lf`0rXg*+S2J0C4M&y{K$Gn,XdTW,"[#CqWIGHY_J1rNF@a 'b!; tz*]L,"L͜lvfN 3MZM̜,ߜN$fgbo rp<<,7 1{3]\]|}Np dog`rqǴt27]e0n `ri1ݿ?Odod6LW'?[zOfff&p̌+_c90ݵtcA3%Aޥ#I`?_'6[H {Z4evxpSMvi<,}'=.0ꍞ6r OSJM$hV9@r:VMEȭErWdJBqGn@J,v>\i\f8oe#htCzp1o~$3Xo#oNa ~K =?-6ki {"?e[[a]8O*IJJN%EfegST{}L[^rUE2gmO*]mEd:dńdb AI>΅[ ~Ppn$cGɿ\(r q'VoFT ڐ!";)lF6Ԗg^Z6X"ͩ{;x/5^%BS&Sp2xtZcH"D+×ie8_ hRI+TΓ]>-obh(V~Ig֮ u<.kzݵmK=!qmJ3{? F pzCrȟ~-yxgj6["Kָ >x|tl:]+Shy>/F?F5ZEl25RYq7H G,5Qan?b]?s[ VtXE*PDP (9*!ma!C`:kf-~c{=lY/Ԇc "t-O=< G[44/,5@mhi[,-N= yck٢ 0UЦsoSIRcYu~9Ʃ~RkpV|e4+XA#LZHcC $WsP7#1瞻eU< >]ɝ+`.xdJY$n5 ӵomƿn_(j/._:2g$8uҟ*xpYj3Q7G<Q@?|pÚkJ" cfŮD٫FR =GxSU#P*qx}8Ǻ NY `$t8QK]eV۠$쥩֡ڸ{Q@- ^9aJ9V^w]' ED Z~xb):k\9 )}x_5m^6b&0\ػ㔺G R*۝2߲_aV >8߅/n}/aLwxrTA<&2}3z4~>}DsKFf aXX~X; -ՂW9hXhpއo[V%`.4_#w=eQ-Q)zU*-2;|g#  pVk^3aF#ɻP|˕CC:@+х΀&GT%!>5MՈFAL#,dRQ(-qyx:ۼ]!BaQ鷊F^t;3a)kj -6] {)9c݀ Pj+&{\Xe? ܧ 674Fׅ°EP4Zr8Vw(nm-~arw7'+L.W;kvGqyDcJc_9&;tY3ld /ka(+0T6(p4AR]BdνʥT?_2:OnJ;>??;)K(q;30 ?Nev«?BWPQۓfW-5bsqO;yMxqEN,~eg,]5*o'۠C"qE=l`Hխ(mf.fJ꒏]4wDBQ'`uVbn5=~>X>OfA-e)}/޷y:xֱ{t!WU"!;H[Δ쬆]A,um?qXjГ;J(4ven\_p-s`Qř=Ӭ[M:PmS,%3-?0)UEz܅W|\ڳd+`5_ ΄ͮqntp2aYԵ~U1[<3Y_&gZtBkѲNI %$V |vm<_R1#b: [fU^?yu +%ڟ5d9Pw{1l=Bez JWD!F%d>4迱;YMIRc*6ś^Na *OSfNOc n,Fʁbd-%ĬJ;L%K2dkbe E2>2ARfQK Njzr1/zĽ(k8[Oq*LIۮ AucvM׬2BG V'} @3D\ܱ ge0e  țQ4U ٹǵTT~>6ۘ]T ʷY;S'ɻد_iH-uvX59|~Ϯ#.C.+}pJE^ȴEXpUmF˝#w-ZՇrtgMxRoUTv@gEXb\b ~NяFg 0.ߛW/%Zjf(0\]Q]$FfэvN bkǨ)0F|L,wjh03c܉\J'T H t B{ Bgɳo 2#ήv<*G#4qxǮ[e\>W nT<[fLt֊JpMc'3B])"\-a74 o{q"q@{չf=,}b)Tͤ֞C_C}=+XE_+O2T&+9sx~CozXPQW^qsA?)i`K #UG.DDm+WAisi=/TmZ 4rFjLM1E֩bF_<*YbJ\r@7V4hfmujFVS/$•_13Ga)[?d xޞku[!KjӸc#F<{Ԋg*TߖG{Jβh_6"51H_3{BQA2pyqL|LpbEouVʶ_%ekHў3E^$'z`#^Ƽrő6^Y$O7 v;ͦBJ"̍ƝFڳUgm?x]-%:#eB90^Sx傤;<HXrEn>r S dJTdCK>Yvf̵'_~4kNL3UeEu#vXj"0.-y&LSzyCg0iDIoAg/—ᣫhU#qh1[K_0[-,61a(ixq{dd8@J63Vh8m|:vAaHɯў:]s:5lp<l?dD| b V<1P{=jj_)űXMH/yy&R.̃yAu8x$HJlZUT,~ݓ^Z^N)/2;n\.GIYQvs1H|74`얇7p'~_ Yp{}C%dUp/nFoeiȶW'`3⥮8_ j\b/#3/yrmpw,8=Y0ҷ-\4!f (_ äКPztFk,oXNj)U+%+!y})zWKx,w'YrükJ`ejh>voS⸚\GxQwB-Lkk=J7ezjIK#<˭-PM>VZ# VCNLXH,& QJ夠Vq%-.X C㉣K1/ǖӹZMdk k'^ yyR׻Pg1AcSć71T K_aYr>NDlni DL2\lU"/C %IF3& L`pw j.V#[\P FEzܟm݀1)i{8j!<+|aWl+,C5'qW ik+,ȁ AG1cɕ?%|ܖ5šzCkMX7ڑgiJW qod8=]~5&fr<<:D3A];Df0ᐊ7$TAqxZ1fyTu|bbawvLmT}K[QxTҿ0š51pʔ2vatr3I;\l"Y>]=[8jl ۠ʸS<9Eu3%w p3qV)kvD Of\\g Ec"4Qc%h눧e٣8ړtpK#QU #IM-j-|T ,n;T`0_sܕxie^wFm'8 ĸ)+]bEo1k_ ?؀7ҽO}gM:Bh.> _Q@ -'yA ]By 狍nb] `*?1<16=} !o ^H (=F%mbʪA!aDK!v2|1 ' HݕŞeǽ#B\3zܲG"~O]`׃\IThL4r%@ܵg@ѕ<.jFa6~(eC\wM@1uoU;Lϳ,?rY1Ս>!#$w*Io܂N1-94q\D.^[%Dd(>TAѤMX8ĹȓxsS5no2eoQ;PTr˯GRC|U~5;ܾ mͅ| @*}z~G/\=ײc26 |ܒݽX *E\@[suӨBB# <leCԲtbFޮ E]}{|BlXɞ6*vs_\-TJz2X`2ydfrUB;psQ(hhab8ִbDPqз-pw*W9Imf~FF$ֺ]c"Cx6W|?VkOa{L+xLx&Woxii& [صYߜdzpsJE`pi"/dy1T<,8(S/ɨhAԇ1!Rz{Yq?)L$9u8b+[@^,``KB e$fX72 0uOI̽ g6&Ocg'ձ!(SGnsmb[s\iJu- o8ԡ}Ȫ;\tjU(c'Fz.fTm߀nަ'wOք? Fвn^˔]>8fqY#/ woSMAU-u_SK}kAZ3Ǿl#n㦺7p Xo͜%%86ݴ=ˬ)۬  Bz诼$v_30|)rYe|Y v@^ k:7<֑KH*S  8ҭѬVzNߐ1n]83N8NA;Sթ, ›!,/ҡ|8h<Ǟϗt-AC̈ BW%2l$( w2\]T,g 8]epglۋ\ $,]s!`HHe y6M[};J5t]E>1MTJѥ\,𑡝Hś|pºV>34.,޹R}q+9G:g@wƒ{ō]$+ zÒ [n cZxd6J:y8{.͋nEZ7RS hmc)HP9[fA;`JO^bI ZKi#Nq pPJfh>2O}; &}bӞ5#^xG%jg5ӠKܣ5L,Y=Jjj) "& >&&oG (NZoʏKtUTX#*/Z:S7R`]J^=5twǪQ`% fxʞ@i+p#!Bڏ]yiŝCLTŋ!mRm g_z:Du=hG+hѨ"eqizbd$Е>m dY $d,\G' L?D~$Fyy*;83vMFCCڇWΈ 8 o/Vw3v>A\պY#ZcxT^'d[ iWLe!s]wf㔦|dޛ0+J?{U 邻?MmC7DobF1kp8R5ɜԯޤXX=&V1(Qp-^$yylqf#ZEnT/CxXSU#k+?h!ӑG<\' ہ>TVAZ"n3XrG(X4z@=jLLH٭bϊBup(/3½INRw vՔ4_e% B`wSvB[7#tZm,KuJOq[L~~= +m9N;ì聭vg< k a'!L9`{-!*6<ʞ-b4 ގFu!u}Mvn}=_vPLqF҇#( r.u3u2PH = f w =lYzj6X1BmEMM˶E9wm%& #}2pFH[sA T" jȘ_x%"cI%pVŇRb+DմFz`żB}%KݚC;M4j˯Egg$`ZM^[3rL]T`H.xÍU&]f:VhGW"Vb#(B'[!~c=^mE~aQ.z'=x;:PEDJlDwʤbSgF6I衜3 E %]Rr;)w&>V?_tpÑhe7(3!lE%S5R1{A$n^*wtP"{dN@ U܁tB0zzOVb(ko|ċUbݮBwR+S=B}Ԁau—90 4P!x۔dnA Sq_b7\Y_*:[z0C|ͷDx:(6Ys,}I'ʿS~)K&-tUt. Nv>̄G|m,fҗs\~[ۃJ=d+ER+j[|;՘0!/ Ho]Jtʞ3+ y{3 Xsdo܉?g\nP+,)jq5XJ妧}CЊe ݉wÚ0q^wT}i%ekwdt@K30(&|֎R?ӝl ~j䔮j$ )qfʼ(;θmq o?&A!g?f Lg_rٰS -jmE]!>&>ŃqB~Hլ\-e=`'#NqIҖ/q{ם16PaPG8vkn%Pօ2(HuL>nEKr8O輨8rxqbPaZa!b%C8 sb J9qjO2 X ߇gq,‰HUKۆR28(z F 7'1D+\>FdUfC1ܲZ@aLi)9tj E}\hkIB3 :@FF Cnh1۩#72׋TXT?# u~#emO!vSi.޶#^JQcY#I2C壭Lbr䣬WM}P\.PEXAf.i-)G>4}lXE˖lBtTD gFӘ6xd,J xXG_`gD܀% HԑgJ؃u,E2M ]]2:,2 8w0Z~8vofr(UT1M6gQ.4M[s&o"(RJ<0{//W߃ٔJnBஸ5fekY'\Ǡ"A&錵] ~ڕTr{g\d1H> E#9gP=\6cKG ,>WBN~IL$K 3a! QsXyvwN<^N]hkSfe3^xsbOò4/EO! p(9n#+#HQc4= #=Zu7f.N;܈ؖĺHHN)gz7P kL"bsӹl%R4jK!Ұ[c T'/g3u PZ0,w&>vhy{ԡI{"X&Ax+D782L%{bzd&*S/}VI;yx_dK NVo~Y΁i^2Y:1Qv1{;Z85㚭LR'QjSJj7Ua n `~Cs^t1ϭQK&:l*R}80tD>L߀[kM-k9i缾9Y^|>.r/?@]ߨ/-\6Oh[%sq Qv|&oǂ'V_RqCjYF' Y|_~/r6I"AWjXs0CWV*m5>iLRm:)˺_[[ʹAbDQ.ҕ#NW7tu^C/JX* `1i:*[Q> NMypF* eaO 3]r ^> w ,+# Q 3ZS Q/’ ui>2+hku匒->8ziS;NW꒿|R㽨|*\ ~ *bգ3zO@f5(S&1PVt`tk3W̚.Tߓyt'PaV܅ tEh{xK vO֑51ZL1n[W͑\,*G.z~%IgDzxzۃ#G VIS)H){P@>CԂ :Bv|LTg/T1k䉺HbK?wZ.#`gayAtnbR[ D6%,j|5ț8|Le-73-8+ XVz״us &e@*dN۴Gr2u'n <9k#U< 3ODofJ36}rT.19OY|vC_43Tk:6F@WD?1TQ6|^(w b99rLVq+mtx:e]U(0!Y 栐_oTȡ]vDY $g@PYs' o$@/ĬNw[sD;ƌ*1J ؠNY J)"Kp}̫>V>f}d8Al|j )lOu^Aô Uf{r=ݥ=PѺp*5th *"C540LBH]E=- Wځ|`r !`Cuu P f+ Gt2ei X?l5:Su[{-M6o-O19 tK г"o=}SrZ|{E`'&e|vcHC/Sz+'Oazwn|7(?:cڅ^N`}. ǚBh4vxd̨8`=p[XlKo *7T;+0/gcC4m_qSQTh ה آؠ%7P_HyLC[+lFcF%cImly$I;E AUk*HEgq6L4ǎ/ۑ~RFh\'Ó?5WxSD X\5uPwp: Hb#ENg"ݎDA䫺/^mQ ~$XڜFw)#Ԑco;)F6StVN_.)Ah'X FnVR<&ۊ^!`K tyӍNuAqWB1Z'ofշyFAe XT bd]3#\J p{kv=(_W&?xb+j6yZxK^N| $W =d(n㦧[CsIpdF_ NlQ<;m^yx|l o7jt ޲2Z<J F}VnBa~؍&iph0|+]XĢ>SMetxm4ˎN z8:cA1\i'c|NٓBR]o\xOkg%=l:opUu!Mе1t7\Z.s$RaB4Rr+e7Y>eq$p!K_Jҋ7 ( LT5.ջ6Y0q,%9kA^þbVN@,r,APFG/%Zt,KKU|M{-D?Yߟ6ZeR>xlO ѹ:#!P` 6юrz7Fa&]DS_ZgrrY~Ռxe Ֆ8Wyf0AC GruiTe~] ""ADvʊeA XS5ēgY p_VPCkf؊j<=]˶7C p.U@[PK7Xi~*1G҅k×K+';<痠|LS3]ľM-jK:kFż.A5ceNXSEpj%ѓOyܗ)Xk ?̼6y4uYC>3<\xVI%)ǤWSDa#7 )7V^n YQ\@nM!3k^AT o]V"Iφ:jW2 $sC[iVI85nLK)==\ "q* IuEӋYHEej,`TBz>w%wƄ(g9š趃FE0f:@+q[ >eDܔPn&r$Ao:&xL%B}}%:q8yӛ}S!]%g eN 1%ӚqP5nၜi٥)-` k| ({aq jF =ƆuPC_ z6U ֋}HLX':V\@')CM͏p"[zP6t=v/E*j' 70`-ފ;uYl:pj0zr= {,_OO> Xe|c<ze*41~4?_r<#IZ7Ѯ9Z7>yKdꋉ/ެ*!̀Hq; ׳,k ;\S䜠F*(+`Pjַjܘ/, O sE0)/sz<n}pVX_<4$L46vwk f<KF>HEږ1^)@{IPhb4nAD, ? UJ joK, {T-}QGCxȈ=D!ܱ: ;E侙7ՙ"Y浸 '^&F1 ɛkjG j=i07i#bP]D[Obul~܋(1#%t;<1R!=)^OADBeVhʵ!2 w<(g+jYe~i.& $Z9T(CZig! G\ WZ|x=nq=uVb ؜1#=[2&OT9J=6g:-[țڦw p}-S5B;%<)к1e,ń6qw<肗&ZOπyOjXY L=Є3ft{IC:8-AlR.[c/w23skGnD=ĦN5lv0)Ft&"IxyzJ%Abtv^W]tLZhcTi^aI yJiĆmu[ d:d>Iy9 6Gn!pw`?ť?]ݨ|_?9ISB ʾbg Tz!ℶz鮕|>tS| Z-}^ [3 cUY$+h mdgQd'\KNH#1`CP ~v)oQPvP1D1dlíqH{% ̅IBn kD+#aD~]L41klQaܝkDaj,>Zy0o[łڟ(ߋUa,Y~LВ|avg:9=(0PMC|\m N" 㕌o6MD:trڼ1) Ri'ß/6=j=p"8Q!tT#|#{q15/ )fgD1rlV# ?j`Q(*&xP3(8NvM mn0 \GL hHyH)(eI$G]D7iqL#&˦fG'Pŭ@B0Uvd \sv=N|c@M̒L6cb|(|SFˋU,MIS θ W ӵC,dƷ_Yj9Ksh2MU2 NϾQX&2KUB#A~= @?Ӵ~%k?0%veoֹ.C鹶\tpR jV.6gF`苉RV&l+]SJo-E-lgf|` #5VzW1$!gMx0Dϙ(`rWL}*Sع=*#]A $ P]ƪ<@fua7vB`Ѻ{ VOJDT<^BuPFb#|\ Wnںj?Jέ61##?A Nc+ vP(S;c0:R11QbPDӑv.@k>[\Uam٢b*1@Z"Hzە3C2 $"džW?-ǥM5էwxT![ SrWs# #ldЎ4[x8!(ԇwOXdM?ȍizmr3 {X&G<_`f1* ysv(nQXQ ؋# )?ۘnjF*Y#_?]}A&{Tn4g)E 蛄sWm ^? |%?XWT-"ć)Ii0vΑ0]df#Q 5ǥgn @S@?nw:az;NGv=7@Ì|ZUF6Ns e\1a󭋋wi)hV1ӷwz0(Etk]Sn9f-fofqOtV4EwqQ `H>܌ϞdT=m fҩ.{TvqԾXT IŴNiϤ4OC*˨ %JAqW|z  #_{zѹ҅JaY|6w02Q ^1zG_~̄7x;T[/ 2UVArE/GrGx1ȭȍF =l3gr"{ܫb=1茺,`B{ʶaV'q!۳g6c˚{d7O?;v&\VM.G*>e<%n ٯ<&ɑ̵33{I0 4iĬ^'U-Ke zHpobKbuWЪupI7!KYʿJ 6JRe_c)MQ@D]SH :>U~*#%l.vf>!kmAĮ0EЁ0pI$58'~tQ y*]|%aHmkk4fy5EYFӱ%?c/5/Q\Ro[=@֕5aF|^փ{9cBw (|46[0XA|f'xВ,\WQ&䰳Z4@--t]Ql=U8-N\ݼXzu;ElQOgrq%f;eLʊ- 4kA;Wޕoc%QMG/ѿ~y-ze-z(kՊafzxu1/,3OT0~M]n 9j-O3.2xck `mW:HdZ|_R}m q@} ^+]u. ݿ=m[1*bP}'#j36㤔SxVQbB㜣xab r%uF/-&˼CHR8RY:*V\D椚w1/ik!933ǃTƉ"*ce ؙO5-r j,܍qS~z5RFϺ&%dI3 `ܒX;1_oCk12#p \Tks#;pt `J,Q#Ӊlї@\{xDF*ٛb-:Z}F ",=f}Ҋہudtj cJH[T [y+'+HВ a"/tzO-xς>_$7φT)3L֕p:=8,u9ZG۸Cwv{Qq7@Ixy &9(~?cF:<6S -Hfѱ4,?8-!!Y"a}hj`v+x/(RT혼@~80d͑p*@ 91I-"14c'`a-  XPG𼣞u%k ̙cϚ#WH-s]NIɻiՉ%MۥC6/s#U>o8(\fwSc&šʊ o3-u؜1t x9BD3>R_ ˛-[6 0عz}+UPy%к1lCTD[kM\Vve]4l`e@Ei`Q.ه7~FGq1ZoGQOr:v5 c[SBib~=dqpVgO鲗#h6Y Hzak]{BK'TqCzQQ˴wHМU0Sq*@WAj۫V%X2 NQXa,Dige.ql:ٵ6kE@pF/gx[G%~&Sm#><: b[}cʱKBn)U~gNN$ &䩖bJV\A$瞁c{Q%T@BJ|ʚS+6N"SIG\\Iuz{sdOX='VאcO8T+TqNOuawN>.3_Zŝq;"˧j>$BL{z~b#4E @ej笪l__Ͷs9Egux.fvp4=&tbi(l&ξ#խT (UeTLI@8_h3n:CcqBpZVr_kbTѾ >7jS `O\kaG!%f%pDFRnOhЮ6`Z9ڶ0V8fS)Pea[wpLgntM؟ȇ5]OH7OHNy$-"\p2x1"ƥՃwPZkp|AK79G~'ǀD.ZdlgavO5$Qh1ϑYݤ}TOD`[[N@a,^vw.,u5-} O!T]٫NTc] :sGm]t۞6>qN͖e#>!° Txuפ$>fŁVHwEUV{Ǻ,`pG+Sdl{%sط%IAk o@^{"'fvD7pAd R2ytjZ.gBa܆Z Amhf=7$CZHw9$􊯟4՘Wmr'wɨך\<< }O 1*)krü9\q\)^(<0wL/͒9r2Ҵ.jaؤyHhH^A0y[2걈҇(MD_rXic;g# $FDZ/9ڢѴϖ<\_WEM' |ƇG,qE=u?jyn=0{ZgQpo^ ?G *z?4۟MO{~Z kApg ͸)g CڃH`Z*7lF"K~rś2`JK(:}#g6wFd} SFFk&3ꫫvj\8l;LxJnw5к{h.%;.=w*{6K$f4́7~Dn{Q7}E[6~,)exK-ij" m[  ~"=g!XQ#[*jdEX&(8Cz<~ :gR|RX!cF%7P穱:2 R[U*b' ܿNդH8@3"啸3uwS{ȎSÐ&Hm^+jXR C|ZH(I.(i.Ee6.+|V5K`АqTf:50o+@M!k<,$Bp^\y6.4BӄRH榌ݷ}l4r6 zIC!g2n z whMMià ^bdG/}?koIijݘ@Ib/Dy%FN1ڼ> stream x]Kk ໿bb^(K}д?clȧ3#3^^+>pq'IYPwi3a[<ν-\`,̈O蔞`}ѰZ3j:(u̾}/B\m26P}[FbG-Z);ZE.%1RːZ 二&}>Gѧ*}d,w[o΅ӃyJXccU~ endstream endobj 10 0 obj 268 endobj 11 0 obj << /Type /FontDescriptor /FontName /NimbusRomanNo9L /Flags 4 /FontBBox [ -168 -281 1031 1098 ] /ItalicAngle 0 /Ascent 1098 /Descent -281 /CapHeight 500 /StemV 80 /StemH 80 /FontFile 7 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NimbusRomanNo9L /FirstChar 0 /LastChar 10 /FontDescriptor 11 0 R /Widths [ 1000 611 500 500 500 500 500 500 500 500 500 ] /ToUnicode 9 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 6 0 R ] /Count 1 >> endobj 12 0 obj << /Creator (cairo 1.6.4 (http://cairographics.org)) /Producer (cairo 1.6.4 (http://cairographics.org)) >> endobj 13 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 14 0000000000 65535 f 0000030415 00000 n 0000001541 00000 n 0000000015 00000 n 0000001518 00000 n 0000030194 00000 n 0000001650 00000 n 0000001850 00000 n 0000029565 00000 n 0000029589 00000 n 0000029934 00000 n 0000029957 00000 n 0000030480 00000 n 0000030606 00000 n trailer << /Size 14 /Root 13 0 R /Info 12 0 R >> startxref 30659 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/graphs/loopgraph2.dot0000644000175000017500000000050511702130733026544 0ustar orlareyorlarey strict digraph loopgraph { rankdir=BT; node[color=blue, fillcolor=lightblue, style=filled]; L1->L4->L8; L2->L4->L6->L8; L6->L9; L3->L5->L7->L9; L1->L7; node Rank0; node Rank1; node Rank2; {rank=same; Rank0 L1 L2 L3} {rank=same; Rank1 L4 L5} {rank=same; Rank2 L6 L7} }faust-0.9.46/documentation/faust-quick-reference-src/graphs/faustextended3.pdf0000644000175000017500000007672511702130733027421 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /BBox [ 0 0 345 317 ] /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> stream xVKk1 W#o{B{ 9lJIM<<ʙ lϒ<{烈;3a 8$4-Y$vR)$-9;>ԥvU-wSNc4qkBw;$R^t>c\ߕ>i_Fn[W+]5ufT^$@&~wAм5J*49G$V#Ic8O 󊴮Vhao+wAZڷzRzi;.O!WG9<^Cr]aWՅf􎩏sݛx`8/r& J̓7MuGFY8^?1Pr&m,XfW8=e]S\[gy1Zb/;A$jZ>k(hԠ/)n2<&!MFT)+ia[HbZ`ef[$+irP^!4^iel[@UNA=RhmQ* endstream endobj 4 0 obj 768 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> /Font << /f-0-0 5 0 R >> >> endobj 6 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 345 317 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Length1 1694 /Length2 28129 /Length3 0 >> stream xcte]-\mض*۶c۶mT*VVŶ]qr9skVc>jXA^T֙ 1rqR㖡W25w|9`E]lLm]&JNv.ƦN<%3Hlm~Lv<=A3D k`e0s011X{缎vFv@s gߏ*U%ujZZ,#DL ZU(/@lm 4[{[8 MLLMP36v*adLMmM?KW_s47W- ٞ&bp2c5uf$5+'XؿEƟ{0/+eekfỳ&Z%{FU[4c37u| 0u[05鿜2ښx L}f7X/'CWSt'efF@[?ͦfƲΎ@w6g'L]?~.? mL†@GI; @ `fb뇛 LU_NI[3;`tTiF9;g\Χ>yc_%Oq < \L"C[2dm=_apug5r#I njt6ˡjkbh 5Usuz虙N gjk2ۙm,CGGCϓ_`kwq<a eb0ڛ:L0seAF7Qo `4m7b0Od0>߈'Qfv3+\,Fǿ8g\ ocGOk}.c3碛21,=p*LR{'wPoHPg&==bX J@ɫ’v]x"cw*svq$ӐxƏ5tH:C|8*׺[K]W+A /e5z/3W1w=Ȃ[&wQcraìNbk!4ƸQT(r;4NB#N vP@c&7b V]>㋢F<>3Ӆj18J[ev4W`!φFM"8WOSaćL^K tT^˝({q< FQёдtb"rW㬗qS|JQ|4b@; HTt>0nasd^72MDK2}DjmVA_zfTMUZrLjE8TUs|$J~3kHpB@ۀw]|WYmN o4+=LU2~i{컕u4 /2oAN=N5\XJ*,箒OœoHk0; vSx<TNE΃C1F_T4`whAz2ơhZ8ĔH =wmcI#.XID6Iqb5l9UU'V&- 6`)^~ iL;ܧS>a ?a2fBz?եAvC\sڢ~Cp53$}ORbB"NPv[V4Zg"RUWd3]wy lJX?A\>Z},S'Ո=FWP/ڏ^~fʎTYT4,X7'OoUD -ԊπXR2T uqI9lLWh XkQÍ@'2B<~͚"Q[@5uQhY#pr4?*PDsд#Քr2d84alM=f&| aՠXP\'3"c1eMQ:vvV)%z|Ҳjq7(*Ktkr뇙ym=HUF5KkH2\l@Qaw?l6a+ R>(R켇6}fӊ/]P ]X||5R)OPbv7QPۍ'XJ zЅI?M4_7CPpNK5H<7-;y[aW=*DֻU])0k|sc ("sgv$"x:ϙgqް(fQ,3 Z&rsL5DX4]5[6ʎHM-1@MTs8Mn;/6Vx!s)D@=ewŜmLx*mjɦۈѣJ\w 5Kp UCQW,yp u02FQ` x0^CU i̎ZS(%SC]]YUaq}MEzT ~by/eZb&Ve Ѡ~H:24.J5@c0B+n|W[M#xYel#A 2./ W;ٽ@Vݳ[S-T?[ݠ >qO' 6w(f._rذ,~Jsx5szhI;yҵ]/S8٫0(bLq~~`V- (6ɝ~SLGJ MinBw+>Άmwbi0 Q/Bm|LׯZ8Ez-Bqj+f̟CJ-.ec,; ̴^iXq%U_?:.(0 ,[2^B=ۑdC NPVD|:W̼Aeq4o h0>&H !RZH[ʙKs(Yd>Jw'E+l? K@ǫ{R=^+>T_}B_gCXy_!j|FȗR9 "%"rN< o ?1>jO0m 1(~W]dU3͍G؎e-z&Qƫ+g%NE1NJ]A.6~auAiCy_G L!1rxDr` MuWEER<$~H6PlG,c( 'jp=sirY9k g4%ʪr83&K-8~p˦Si6[fX4SjDxڂBbEm+=LU!E{N43!g~ďX>q8w"Mq3Z;AU oT]]ww:` 3F/+E`݉tfcf%f XwN%6/sH_?Sn~brpn\UxoRfRb_)-(Z5Pj16Wh?K*M<Ղc3.8?׿q°%3eq$ p-f3%*Ь% Zh8GM]C+8ju+>xPkwN+S'].rdܡpZD%i:M}L#q?#3!7kz rn6DǿQ&jOg7L2Bzh#pM>dFjwE^`)S+Vꄤ>Ddμj=YݾA^zD_tw]z\!_Vhܡ?%;Y-S8UtAV·qICv%RۏD;z`jHzM{ŁtMߎ׫;ǦR*_ 699}Ngr6rJI?ט ˺穃aiY?DM;gQ2pO W"3IE܎SkcQ4ԏϲBJ79eKw|fC%RV^ ө =htB''O|Jy={]ל`17lU>@-Ab $}%ld%|8m=(,5g|+F2C,77mA\OvQ3,t{"rdZv4QHgRL1ld^C+F5uj"?:|d}{!m ^\1A /}mSqݞ>%v0iOTr\Etoh"޾ATs >S* BP/> y*]Ț?6?|{%'Y \%tkJI0Oa,飃]rpt$ZoK/($6,P5wEBM|M@Lur3D1`,4ܔ5c_k㖬7]!sżf_qΘG99Cz6 ?%Cm QtR[KO qDlHL!9\<7p' 5:w^bb ^֣?I[qVD% EP êIgSSM //Z6fX`|m]vveo+X*DU%aa+/{ KOϢ[qH?NbyTWnс蔱2-[x5u"6&I)ݲ{߲cn@|hBl,zfӡdq2JJ7ؑវ_N6 7/ru5j ,Xd:^r[N |pdh<,Ĝ,aKr0dZGAt'.Ս.NAw7ȭ#EG =LxY]_GwQZ'$s*S-Gps\2ᯐѮt7W=ޮЈJjXF)i;;ofqY_7ğ^OIPgDK ҪxY&Gi5[rPO3(P!~ uc)i|H<** to;&]= J >Jz.Ht{D)мM3OMthUwȸT|/KWƤeK8\d>_ /tO(ozr_7_rvc#?&\+ *9P`~T6F #1%i+]w~eHL$RE#TJ07}˜ur% O!mn~ЮN|)GoyA7i*&)mkQ1["-2S*<'q0,0" _pPAQY.Qy`_sN]ʐU4e$B)~t ڨi&p (;9H0'톭\Uu\ǀȴ12NkuP;\ q@ m4U\ՙtoI 5 7q༇ht_\&|PnT`@$w(~I=B&WPڻAPQaxwOhdK|HNml$oˉ)Î/ŀ)>(UDqSr^&'ح Kv^`%pC ]6giA: g[_dU/k(Y.)8ЇZ5Fؓae1qIn'g:,c e۲~/I{_d"ǀێAJ:WZ!g[z.KDIY8Ze c6Ie>v)•G*{=?1NyE1f'÷:Y7&$[O*BAjDUY֚ ̗?z{Q_O<1ruIa$)TxUߊCDA)קR$NG=!R1ycs^+Hnz]{Q(Է:1%\. [=qМa:Y!رYY/~̩ ZW\Uq֎Z0Y$;=l35;l2b[> 2 } zg"ֈWJ"C(j=? -?WZR^ZQ{4gHe;c#Ϥ{KS,jmx&]e>`gpa7$PN#cѥU g "O%u lBb+2 3-BӖk)ZJӿܩzyX.|*RvTN Kh8lBb׏cA7FEGpӽ 辄Yf^(XI=udkQ=]2I-=*ڼ>#L3Z/W[+g11/oJK+o 2,OTA\I=|6 NVhL";FDz2WC ׺[PT ěb]TVD{h|e*-dOǁb}@|1/\ȟN1}idpx!N\zN 0D_.scV4btYW Z׮ڑp; _ǤoN[eX2-!lҤ,}Ȭ~/"2AN._u.5"stD*62A(jq]Xǻ;>$]ݳGE0ĸz8:GcH"WTg"KVj*W d@/LӣR_4Q3BE*t/E-|IDK]7ȯl$m\n]uN2SxOķ$}_t^P)BVSV_!o\[ާ,^9WTycpJR>b9"Q99sSЗkok;vE0>j^!`e-JI`Ynڀwq[Y=4D$;x%+7a}(+Sjw5Knc =sR?R)N3 pL`,kO,xIڋՄIÑNX澋 ^DJ_ͪK䵺LֿI!k5O8Ή33AYX":Z<ڿu A!æ,9v8 %9[ (V3 [Rp+E1Rɺ'^LJLrӬmJfjB \8/DW|2U8' 3k$@\( iJ~JO縂~f=1 sDwZcb~/eٯ.ʲYEݡhi܇ ӏ9h!Zsk9]40쫚wG9hx8\~eۊ+캞eu3y"[v].~ 32A\qkK8_+B5?uƼȔݧԾx$Uɭ:/jj$۶Z]Fgx:sqHcQsj g2$W:(y?/U+N/oFЃ6&T|}^춗;.H >?d-GZggMD a b2_347qKAĵk:*Gmk+پ. ]K4j3S(a0(c٭* wʶ핆~S{Ep #6ZƮ'EdXʮW1*N[RD*} X0ru&m H]vsW!R;~dzx﷝7xP%"@kכ 7Cm6s0WȈAjfjz)}Տf !JHw兾AHiRW?/X+ښer7!7{C`_/{u4X#/ĊRQwj yx0t5[ [VC4ahdrw`B6H-_Q;8xZ/q!&zA(A=DޫIVVƚ*]s~/c|F Q@ZTZ(cڣJ/a@rn/#]JyjEQۃÔv_dAӦ7qbݺ4 cl3OҪZg?ߐuߣLCõLܖթH7.q#t/wʰr-Uݳ%2(DהvnltT=͌w^RQ+2ޱ Жmc,"HUrw=WGCSGx7:Y'p&3Y;ENQ"uf 3]GmC3EZ$4`,UkFhEo({L5-#BW]AEbJ[1+W[Q臏Ⱦ׎s[0 w ܗk?=)>0V\6?%Kx@:Q"Wu~ kP Q"жJ.cRt!!EH ᓱ[k¾CHK|#a K4m)O7A*vY{~jeo<"O~HM.f-iuktΣyJJGDݦB %\$64.1UЬ'sFnv³nKgOoʚv|30)%+}|P6t/K|ɣoq3q:\o "L0)~yWjWq8iӄDE9i3/x\{8gɏ[q0&h*HVQ`kK' {]wDEVAbsL_0oq|huB]+&žLm_i_sWj!sn+*!{]aMBOCΔ fJ\Ƒ9?☖軐>r:Z8|x{Q S}hT9f&V\crag k8|dLDY8jI(-3|b..̊l[4>$%cmS sws$g5ql4gt&,R%֡K#Z0>)~d:/ҴBi?ӭ0s[~ K1?l~ PExc+CG2=WL@R)nÔ稌 @yn! ƌ~ B~ͩ/;ӦE{ :V6sZWiN;W^v#.߶%Hl+yٞ~գ%f2@ AM;dxw %|IAZjRܮk M\(LwP8-^jsN+RǩK;J}V_(*#4%!&2t&%zbXzJw%սOX!aMK:q!|gY4px>u{\uG,G3;m[z)Ȫ_I!2SPA0dN䁝2qSd7"Fa1X9"kQg!7>—6rzXq͘Ί- 2t\RW _/gAQA{/ᄧm;HСM&^cqf|-ojNĀ v1n嵻Xwe~0~'+7K鷫V'8O[E62 ᥡv2pړYCWR!|fg"L=RaCXafXm̈/A{zc#^-} z˨ (L;Xcڐvq%v~EB(hfhd~-YZd G-Ep# mEwG Ɠm S&܍fD5,E\=DCQWĄ+JW#?)*V8*1CYnNAc,MyK ̱yQo9 ?vR>#j#̓ZĽž'6usm'A0N5voda޾,5T!%wT^'GLʏ1 SFںtnŌ|O99Hm}d9W )+KNRȹ PsCUA,Ь ;d @dYb=x7)V\ ET0SF=>mJUfg.}T?̈́e`F}djɮ{@덽O:8 v Bnge.1gwULiJV^XRt$e{$,UG ~KkD 0_EXgҊ#)R]zaO^A!ὡD^(7|o(4̐Xb3ST CM%`{<O tCr| ;@fIZ) g:ecg{? ]ƢE6Ϯ6͠ }E+ZŪVȫ-4J%YLvSzk)$z+VQݱ=<=A|hw%d]''q=!oDɚ:cS/4gɮBJr"OV2+$OjU4(OaNVЮq~\*YjP$Bsm5C>ށ2>y?y=k'ie@j'FJ^e >k~2擟E;+v[D_TEwDyFjxmkth` V7C0*HDN)64\Ui* cq?u(jъ\7fUmzzN-nh ܼoz_mlVY N (?gO3i~=ugpJ wvanptc_2qAfҤ]]&4Or's?%NHb{p{>? bitwgw|delo2t (],qi؈TzxUٍV}ʵ\ZN I.::udm|CSI0wINPXY YNί;ɚ#W\QQ. C&׶Q.m+EqSDͧyա:)Te L\X!!7q QPcv3 / O]͹Ϝ!TUL+⁁¡r`J uġ^ZԺ"&kJe]'4-MICe([R%jtƦ@ f4&v}51:2V9=&RYZ]$W~׺ըT5n:mPzn@p̌23?q<X89h ٤ewk{e~"'?>X)X WߌDAyn3fF`A [|in[CrĆ\._O0<ϫK֐"oӥQ_qDN'z t3zO@f5(S&1PVt`tk3W̚.Tߓyt'PaV܅ tEh{xK vO֑51ZL1n[W͑\,*G.z~%IgDzxzۃ#G VIS)H){P@>CԂ :Bv|LTg/T1k䉺HbK?wZ.#`gayAtnbR[ D6%,j|5ț8|Le-73-8+ XVz״us &e@*dN۴Gr2u'n <9k#U< 3ODofJ36}rT.19OY|vC_43Tk:6F@WD?1TQ6|^(w b99rLVq+mtx:e]U(0!Y 栐_oTȡ]vDY $g@PYs' o$@/ĬNw[sD;ƌ*1J ؠNY J)"Kp}̫>V>f}d8Al|j )lOu^Aô Uf{r=ݥ=PѺp*5th *"C540LBH]E=- Wځ|`r !`Cuu P f+ Gt2ei X?l5:Su[{-M6o-O19 tK г"o=}SrZ|{E`'&e|vcHC/Sz+'Oazwn|7(?:cڅ^N`}. ǚBh4vxd̨8`=p[XlKo *7T;+0/gcC4m_qSQTh ה آؠ%7P_HyLC[+lFcF%cImly$I;E AUk*HEgq6L4ǎ/ۑ~RFh\'Ó?5WxSD X\5uPwp: Hb#ENg"ݎDA䫺/^mQ ~$XڜFw)#Ԑco;)F6StVN_.)Ah'X FnVR<&ۊ^!`K tyӍNuAqWB1Z'ofշyFAe XT bd]3#\J p{kv=(_W&?xb+j6yZxK^N| $W =d(n㦧[CsIpdF_ NlQ<;m^yx|l o7jt ޲2Z<J F}VnBa~؍&iph0|+]XĢ>SMetxm4ˎN z8:cA1\i'c|NٓBR]o\xOkg%=l:opUu!Mе1t7\Z.s$RaB4Rr+e7Y>eq$p!K_Jҋ7 ( LT5.ջ6Y0q,%9kA^þbVN@,r,APFG/%Zt,KKU|M{-D?Yߟ6ZeR>xlO ѹ:#!P` 6юrz7Fa&]DS_ZgrrY~Ռxe Ֆ8Wyf0AC GruiTe~] ""ADvʊeA XS5ēgY p_VPCkf؊j<=]˶7C p.U@[PK7Xi~*1G҅k×K+';<痠|LS3]ľM-jK:kFż.A5ceNXSEpj%ѓOyܗ)Xk ?̼6y4uYC>3<\xVI%)ǤWSDa#7 )7V^n YQ\@nM!3k^AT o]V"Iφ:jW2 $sC[iVI85nLK)==\ "q* IuEӋYHEej,`TBz>w%wƄ(g9š趃FE0f:@+q[ >eDܔPn&r$Ao:&xL%B}}%:q8yӛ}S!]%g eN 1%ӚqP5nၜi٥)-` k| ({aq jF =ƆuPC_ z6U ֋}HLX':V\@')CM͏p"[zP6t=v/E*j' 70`-ފ;uYl:pj0zr= {,_OO> Xe|c<ze*41~4?_r<#IZ7Ѯ9Z7>yKdꋉ/ެ*!̀Hq; ׳,k ;\S䜠F*(+`Pjַjܘ/, O sE0)/sz<n}pVX_<4$L46vwk f<KF>HEږ1^)@{IPhb4nAD, ? UJ joK, {T-}QGCxȈ=D!ܱ: ;E侙7ՙ"Y浸 '^&F1 ɛkjG j=i07i#bP]D[Obul~܋(1#%t;<1R!=)^OADBeVhʵ!2 w<(g+jYe~i.& $Z9T(CZig! G\ WZ|x=nq=uVb ؜1#=[2&OT9J=6g:-[țڦw p}-S5B;%<)к1e,ń6qw<肗&ZOπyOjXY L=Є3ft{IC:8-AlR.[c/w23skGnD=ĦN5lv0)Ft&"IxyzJ%Abtv^W]tLZhcTi^aI yJiĆmu[ d:d>Iy9 6Gn!pw`?ť?]ݨ|_?9ISB ʾbg Tz!ℶz鮕|>tS| Z-}^ [3 cUY$+h mdgQd'\KNH#1`CP ~v)oQPvP1D1dlíqH{% ̅IBn kD+#aD~]L41klQaܝkDaj,>Zy0o[łڟ(ߋUa,Y~LВ|avg:9=(0PMC|\m N" 㕌o6MD:trڼ1) Ri'ß/6=j=p"8Q!tT#|#{q15/ )fgD1rlV# ?j`Q(*&xP3(8NvM mn0 \GL hHyH)(eI$G]D7iqL#&˦fG'Pŭ@B0Uvd \sv=N|c@M̒L6cb|(|SFˋU,MIS θ W ӵC,dƷ_Yj9Ksh2MU2 NϾQX&2KUB#A~= @?Ӵ~%k?0%veoֹ.C鹶\tpR jV.6gF`苉RV&l+]SJo-E-lgf|` #5VzW1$!gMx0Dϙ(`rWL}*Sع=*#]A $ P]ƪ<@fua7vB`Ѻ{ VOJDT<^BuPFb#|\ Wnںj?Jέ61##?A Nc+ vP(S;c0:R11QbPDӑv.@k>[\Uam٢b*1@Z"Hzە3C2 $"džW?-ǥM5էwxT![ SrWs# #ldЎ4[x8!(ԇwOXdM?ȍizmr3 {X&G<_`f1* ysv(nQXQ ؋# )?ۘnjF*Y#_?]}A&{Tn4g)E 蛄sWm ^? |%?XWT-"ć)Ii0vΑ0]df#Q 5ǥgn @S@?nw:az;NGv=7@Ì|ZUF6Ns e\1a󭋋wi)hV1ӷwz0(Etk]Sn9f-fofqOtV4EwqQ `H>܌ϞdT=m fҩ.{TvqԾXT IŴNiϤ4OC*˨ %JAqW|z  #_{zѹ҅JaY|6w02Q ^1zG_~̄7x;T[/ 2UVArE/GrGx1ȭȍF =l3gr"{ܫb=1茺,`B{ʶaV'q!۳g6c˚{d7O?;v&\VM.G*>e<%n ٯ<&ɑ̵33{I0 4iĬ^'U-Ke zHpobKbuWЪupI7!KYʿJ 6JRe_c)MQ@D]SH :>U~*#%l.vf>!kmAĮ0EЁ0pI$58'~tQ y*]|%aHmkk4fy5EYFӱ%?c/5/Q\Ro[=@֕5aF|^փ{9cBw (|46[0XA|f'xВ,\WQ&䰳Z4@--t]Ql=U8-N\ݼXzu;ElQOgrq%f;eLʊ- 4kA;Wޕoc%QMG/ѿ~y-ze-z(kՊafzxu1/,3OT0~M]n 9j-O3.2xck `mW:HdZ|_R}m q@} ^+]u. ݿ=m[1*bP}'#j36㤔SxVQbB㜣xab r%uF/-&˼CHR8RY:*V\D椚w1/ik!933ǃTƉ"*ce ؙO5-r j,܍qS~z5RFϺ&%dI3 `ܒX;1_oCk12#p \Tks#;pt `J,Q#Ӊlї@\{xDF*ٛb-:Z}F ",=f}Ҋہudtj cJH[T [y+'+HВ a"/tzO-xς>_$7φT)3L֕p:=8,u9ZG۸Cwv{Qq7@Ixy &9(~?cF:<6S -Hfѱ4,?8-!!Y"a}hj`v+x/(RT혼@~80d͑p*@ 91I-"14c'`a-  XPG𼣞u%k ̙cϚ#WH-s]NIɻiՉ%MۥC6/s#U>o8(\fwSc&šʊ o3-u؜1t x9BD3>R_ ˛-[6 0عz}+UPy%к1lCTD[kM\Vve]4l`e@Ei`Q.ه7~FGq1ZoGQOr:v5 c[SBib~=dqpVgO鲗#h6Y Hzak]{BK'TqCzQQ˴wHМU0Sq*@WAj۫V%X2 NQXa,Dige.ql:ٵ6kE@pF/gx[G%~&Sm#><: b[}cʱKBn)U~gNN$ &䩖bJV\A$瞁c{Q%T@BJ|ʚS+6N"SIG\\Iuz{sdOX='VאcO8T+TqNOuawN>.3_Zŝq;"˧j>$BL{z~b#4E @ej笪l__Ͷs9Egux.fvp4=&tbi(l&ξ#խT (UeTLI@8_h3n:CcqBpZVr_kbTѾ >7jS `O\kaG!%f%pDFRnOhЮ6`Z9ڶ0V8fS)Pea[wpLgntM؟ȇ5]OH7OHNy$-"\p2x1"ƥՃwPZkp|AK79G~'ǀD.ZdlgavO5$Qh1ϑYݤ}TOD`[[N@a,^vw.,u5-} O!T]٫NTc] :sGm]t۞6>qN͖e#>!° Txuפ$>fŁVHwEUV{Ǻ,`pG+Sdl{%sط%IAk o@^{"'fvD7pAg0'x7tb~ AҾ>QVWzU(R0G1ѐlQ:3j*Ц~VQEÚ٭J!cjAb*OT銇[$ycr-e3 k:9P   @ )kEoAjݧ'l\ űZRY)ãsT t&'w-7Vӟى~⯣)P`7ށE'ۦ1Փ@Y] )~YD ְ&(`8ZsgÔLl-?=_$+>-F]:e&^Z 7ؖH=E_ōjNc~ѽV@idYM`cVڠ ?SsB5P }`X1nXRޘFyО: 4x8= )ɀAO0($uf~7RPP3g]5R~E8qY:޿^jL@U`/-Q9OCv@Ko jfOAdz.rM<4R%` Dna7ށHq@y$Jؚ hX͸ QH- ݢoWt}w) >$?$"~f/CO_*߰1#E (zUq"6sjfd]de GlM,V{(C$Ǒ:c<ʉGZ&?,Y!,q3h5)X#0Aw%Ô^(۬W_Si.uo7z +%R3,)0J}/M)SxFd^36@E< AW)̊k hF|%wMSÉ>Ո.6:5"u"X )cdK| ǻ|O21 \H_%j]X}\)(ad]Q@lZ`}P1 :RFi4}*JUpߋh ZQZO+x煍?Oә59"PmZ%7(5m0lUFMups~[,&eQ#mX ]Tebu؇x pw h̭"SOeNnDnb-1lǨfIqx_czh'`Lh%[BWwfIF Mߘ1ĹsܚB$Q$_۔Gtg ݵZRS7I5wN mT1"`S1> O{ 2yԱ[k&+1y+/qB{PZz/itOk%`qڏOLl^S]yrUvmRUxwo.O8A)D||xHM&.q3l (o@Oy7N]ܑs#B.|bˤ~O3{m<"5"@Q-xh^ZXFiηKgay?N` ]jgE2adu "~V6/ÊTz\xfsN5 ѡ={ϰ(ܮv /.vƋG_|ʂ,? 1g*яz0-B,vuA&\2H^.qu8ץgq?]#i]<:H|y( O̐PqK-I̿Vcn[1/!t7>{(yXJK޻QheaT0ww0,T9t 'C [)Tbn"CHwGG=FN4-j\$, 0ѿoc;oؽ݆/HTn*%Y ڽsHUF-}4eh:KMj!h_V7K5{?`XZ{k"dQfzXc_ pY:݉|zb[+rOb>FvD |#OV\P*8M?_tNFNŖzk=F!y'‘磈 Nd]xZQ+<[wΛȱjڥ&%؃Y.G'6r,ƍ噕)te s / >)t5=.+A1KL"q]FWdɾz%ǧXiw#_tÉY~*.Gg^AE`Yz\&޶Sb79qf蓐y ) @d-fF斘~eY߿; ܏X dFX&DvL/U2OJQb1/= S=oׁAE'1W(LqjO1V{,|^ w endstream endobj 8 0 obj 29181 endobj 9 0 obj << /Length 10 0 R /Filter /FlateDecode >> stream x]n0~=JJ/>KTeo_.J@30&4ύ$~-Fk<.kUYfa[[OSI4pj0#n.{2s 7oЏ K+Nh{k7!$l7&aG۟su93g4^QUiZC5 Bk囥w44-:r|:s$.DSEs .Sh2̏ďD^XkFhA8~Trf0ĒH2ɟ\Z>zt- 7;r d꟟ endstream endobj 10 0 obj 317 endobj 11 0 obj << /Type /FontDescriptor /FontName /NimbusRomanNo9L /Flags 4 /FontBBox [ -168 -281 1031 1098 ] /ItalicAngle 0 /Ascent 1098 /Descent -281 /CapHeight 500 /StemV 80 /StemH 80 /FontFile 7 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NimbusRomanNo9L /FirstChar 0 /LastChar 21 /FontDescriptor 11 0 R /Widths [ 1000 333 500 250 500 389 500 444 500 278 444 278 333 500 444 500 722 500 889 556 333 778 ] /ToUnicode 9 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 6 0 R ] /Count 1 >> endobj 12 0 obj << /Creator (cairo 1.6.4 (http://cairographics.org)) /Producer (cairo 1.6.4 (http://cairographics.org)) >> endobj 13 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 14 0000000000 65535 f 0000031602 00000 n 0000001044 00000 n 0000000015 00000 n 0000001022 00000 n 0000031337 00000 n 0000001153 00000 n 0000001353 00000 n 0000030659 00000 n 0000030683 00000 n 0000031077 00000 n 0000031100 00000 n 0000031667 00000 n 0000031793 00000 n trailer << /Size 14 /Root 13 0 R /Info 12 0 R >> startxref 31846 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/graphs/faustextended2.pdf0000644000175000017500000007473111702130733027413 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /BBox [ 0 0 345 317 ] /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> stream xUMk1W2o!Prp7qJqMjֻ obfj<oOp"<B>,+'} =uwIfd 9rBTo8- 9MZ  -.&'e[}Pj֨=L5R7< _qdGC=D(gsEآC&cŀqޱv5m%xbK+9ą{h61/}̐@9>CE^4@=p6FU1\i ނ"w9M. 'bXg"[kʋuoDZv, =8]4L$jjYMW]iՅ5H¤WTfޡ3SYFi%m VGK$f6գg yW' ?8;Aس:uSw|i"G{r4cvz9t9\zτ#c'g+6A>Y~[NrEEoS=ogKӬ~2fǶ endstream endobj 4 0 obj 600 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> /Font << /f-0-0 5 0 R >> >> endobj 6 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 345 317 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Length1 1624 /Length2 27346 /Length3 0 >> stream xcte]-\mض*۶c۶mT*VVŶ]qr<9{kVc1jXA^T֙ 1rqR㖡W25w|"v.6.@S%S';GcS'٧t6ߢ~Lv<='!b"kg 52xxؘ,LL=s^G;#Xra;{G3G:5--ݿfnnn["N@s[d]M* I[[NCSbZZĀ@{{;W0FL_MmM?KF9]pvadflM?cښ,_"@GS=s,f@[WŞQb*)_?)s΀ϴYSwc ƿ&V77mhkeog03v2~` ]MΎ.>^?,33h 025;'mj/,kth31|vϓZ{{)Qhmsx3spYLps|3?=f S2>_]i_G|3S.RSz1b?ҿb X[L"C[2dm? m/1\_;NA[sn9$t75Q:seP51uښ*9:=LL_siښ紌v&@[s ;D/f1u{3l?].>G#_`0Z|/oho30 61"#ٿ'7b0>S0:.vo2vqtlc3r21,=p*LR{'wPoHPg&==bX J@ɫ’v]x"cw*svq$ӐxƏ5tH:C|8*׺[K]W+A /e5z/3W1w=Ȃ[&wQcraìNbk!4ƸQT(r;4NB#N vP@c&7b V]>㋢F<>3Ӆj18J[ev4W`!φFM"8WOSaćL^K tT^˝({q< FQёдtb"rW㬗qS|JQ|4b@; HTt>0nasd^72MDK2}DjmVA_zfTMUZrLjE8TUs|$J~3kHpB@ۀw]|WYmN o4+=LU2~i{컕u4 /2oAN=N5\XJ*,箒OœoHk0; vSx<TNE΃C1F_T4`whAz2ơhZ8ĔH =wmcI#.XID6Iqb5l9UU'V&- 6`)^~ iL;ܧS>a ?a2fBz?եAvC\sڢ~Cp53$}ORbB"NPv[V4Zg"RUWd3]wy lJX?A\>Z},S'Ո=FWP/ڏ^~fʎTYT4,X7'OoUD -ԊπXR2T uqI9lLWh XkQÍ@'2B<~͚"Q[@5uQhY#pr4?*PDsд#Քr2d84alM=f&| aՠXP\'3"c1eMQ:vvV)%z|Ҳjq7(*Ktkr뇙ym=HUF5KkH2\l@Qaw?l6a+ R>(R켇6}fӊ/]P ]X||5R)OPbv7QPۍ'XJ zЅI?M4_7CPpNK5H<7-;y[aW=*DֻU])0k|sc ("sgv$"x:ϙgqް(fQ,3 Z&rsL5DX4]5[6ʎHM-1@MTs8Mn;/6Vx!s)D@=ewŜmLx*mjɦۈѣJ\w 5Kp UCQW,yp u02FQ` x0^CU i̎ZS(%SC]]YUaq}MEzT ~by/eZb&Ve Ѡ~H:24.J5@c0B+n|W[M#xYel#A 2./ W;ٽ@Vݳ[S-T?[ݠ >qO' 6w(f._rذ,~Jsx5szhI;yҵ]/S8٫0(bLq~~`V- (6ɝ~SLGJ MinBw+>Άmwbi0 Q/Bm|LׯZ8Ez-Bqj+f̟CJ-.ec,; ̴^iXq%U_?:.(0 ,[2^B=ۑdC NPVD|:W̼Aeq4o h0>&H !RZH[ʙKs(Yd>Jw'E+l? K@ǫ{R=^+>T_}B_gCXy_!j|FȗR9 "%"rN< o ?1>jO0m 1(~W]dU3͍G؎e-z&Qƫ+g%NE1NJ]A.6~auAiCy_G L!1rxDr` MuWEER<$~H6PlG,c( 'jp=sirY9k g4%ʪr83&K-8~p˦Si6[fX4SjDxڂBbEm+=LU!E{N43!g~ďX>q8w"Mq3Z;AU oT]]ww:` 3F/+E`݉tfcf%f XwN%6/sH_?Sn~brpn\UxoRfRb_)-(Z5Pj16Wh?K*M<Ղc3.8?׿q°%3eq$ p-f3%*Ь% Zh8GM]C+8ju+>xPkwN+S'].rdܡpZD%i:M}L#q?#3!7kz rn6DǿQ&jOg7L2Bzh#pM>dFjwE^`)S+Vꄤ>Ddμj=YݾA^zD_tw]z\!_Vhܡ?%;Y-S8UtAV·qICv%RۏD;z`jHzM{ŁtMߎ׫;ǦR*_ 699}Ngr6rJI?ט ˺穃aiY?DM;gQ2pO W"3IE܎SkcQ4ԏϲBJ79eKw|fC%RV^ ө =htB''O|Jy={]ל`17lU>@-Ab $}%ld%|8m=(,5g|+F2C,77mA\OvQ3,t{"rdZv4QHgRL1ld^C+F5uj"?:|d}{!m ^\1A /}mSqݞ>%v0iOTr\Etoh"޾ATs >S* BP/> y*]Ț?6?|{%'Y \%tkJI0Oa,飃]rpt$ZoK/($6,P5wEBM|M@Lur3D1`,4ܔ5c_k㖬7]!sżf_qΘG99Cz6 ?%Cm QtR[KO qDlHL!9\<7p' 5:w^bb ^֣?I[qVD% EP êIgSSM //Z6fX`|m]vveo+X*DU%aa+/{ KOϢ[qH?NbyTWnс蔱2-[x5u"6&I)ݲ{߲cn@|hBl,zfӡdq2JJ7ؑវ_N6 7/ru5j ,Xd:^r[N |pdh<,Ĝ,aKr0dZGAt'.Ս.NAw7ȭ#EG =LxY]_GwQZ'$s*S-Gps\2ᯐѮt7W=ޮЈJjXF)i;;ofqY_7ğ^OIPgDK ҪxY&Gi5[rPO3(P!~ uc)i|H<** to;&]= J >Jz.Ht{D)мM3OMthUwȸT|/KWƤeK8\d>_ /tO(ozr_7_rvc#?&\+ *9P`~T6F #1%i+]w~eHL$RE#TJ07}˜ur% O!mn~ЮN|)GoyA7i*&)mkQ1["-2S*<'q0,0" _pPAQY.Qy`_sN]ʐU4e$B)~t ڨi&p (;9H0'톭\Uu\ǀȴ12NkuP;\ q@ m4U\ՙtoI 5 7q༇ht_\&|PnT`@$w(~I=B&WPڻAPQaxwOhdK|HNml$oˉ)Î/ŀ)>(UDqSr^&'ح Kv^`%pC ]6giA: g[_dU/k(Y.)8ЇZ5Fؓae1qIn'g:,c e۲~/I{_d"ǀێAJ:WZ!g[z.KDIY8Ze c6Ie>v)•G*{=?1NyE1f'÷:Y7&$[O*BAjDUY֚ ̗?z{Q_O<1ruIa$)TxUߊCDA)קR$NG=!R1ycs^+Hnz]{Q(Է:1%\. [=qМa:Y!رYY/~̩ ZW\Uq֎Z0Y$;=l35;l2b[> 2 } zg"ֈWJ"C(j=? -?WZR^ZQ{4gHe;c#Ϥ{KS,jmx&]e>`gpa7$PN#cѥU g "O%u lBb+2 3-BӖk)ZJӿܩzyX.|*RvTN Kh8lBb׏cA7FEGpӽ 辄Yf^(XI=udkQ=]2I-=*ڼ>#L3Z/W[+g11/oJK+o 2,OTA\I=|6 NVhL";FDz2WC ׺[PT ěb]TVD{h|e*-dOǁb}@|1/\ȟN1}idpx!N\zN 0D_.scV4btYW Z׮ڑp; _ǤoN[eX2-!lҤ,}Ȭ~/"2AN._u.5"stD*62A(jq]Xǻ;>$]ݳGE0ĸz8:GcH"WTg"KVj*W d@/LӣR_4Q3BE*t/E-|IDK]7ȯl$m\n]uN2SxOķ$}_t^P)BVSV_!o\[ާ,^9WTycpJR>b9"Q99sSЗkok;vE0>j^!`e-JI`Ynڀwq[Y=4D$;x%+7a}(+Sjw5Knc =sR?R)N3 pL`,kO,xIڋՄIÑNX澋 ^DJ_ͪK䵺LֿI!k5O8Ή33AYX":Z<ڿu A!æ,9v8 %9[ (V3 [Rp+E1Rɺ'^LJLrӬmJfjB \8/DW|2U8' 3k$@\( iJ~JO縂~f=1 sDwZcb~/eٯ.ʲYEݡhi܇ ӏ9h!Zsk9]40쫚wG9hx8\~eۊ+캞eu3y"[v].~ 32A\qkK8_+B5?uƼȔݧԾx$Uɭ:/jj$۶Z]Fgx:sqHcQsj g2$W:(y?/U+N/oFЃ6&T|}^춗;.H >?d-GZggMD a b2_347qKAĵk:*Gmk+پ. ]K4j3S(a0(c٭* wʶ핆~S{Ep #6ZƮ'EdXʮW1*N[RD*} X0ru&m H]vsW!R;~dzx﷝7xP%"@kכ 7Cm6s0WȈAjfjz)}Տf !JHw兾AHiRW?/X+ښer7!7{C`_/{u4X#/ĊRQwj yx0t5[ [VC4ahdrw`B6H-_Q;8xZ/q!&zA(A=DޫIVVƚ*]s~/c|F Q@ZTZ(cڣJ/a@rn/#]JyjEQۃÔv_dAӦ7qbݺ4 cl3OҪZg?ߐuߣLCõLܖթH7.q#t/wʰr-Uݳ%2(DהvnltT=͌w^RQ+2ޱ Жmc,"HUrw=WGCSGx7:Y'p&3Y;ENQ"uf 3]GmC3EZ$4`,UkFhE({L5-#BW]AEbJ[1+W[Q臏Ⱦ׎s[0 w ܗk?=)>0V\6?%Kx@:Q"Wu~ kP Q"жJ.cRt!!EH ᓱ[k¾CHK|#a K4m)O7A*vY{~jeo<"O~HM.f-iuktΣyJJGDݦB %\$64.1UЬ'sFnv³nKgOoʚv|30)%+}|P6t/K|ɣoq3q:\o "L0)~yWjWq8iӄDE9i3/x\{8gɏ[q0&h*HVQ`kK' {]wDEVAbsL_0oq|huB]+&žLm_i_sWj!sn+*!{]aMBOCΔ fJ\Ƒ9?☖軐>r:Z8|x{Q S}hT9f&V\crag k8|dLDY8jI(-3|b..̊l[4>$%cmS sws$g5ql4gt&,R%֡K#Z0>)~d:/ҴBi?ӭ0s[~ K1?l~ PExc+CG2=WL@R)nÔ稌 @yn! ƌ~ B~ͩ/;ӦE{ :V6sZWiN;W^v#.߶%Hl+yٞ~գ%f2@ AM;dxw %|IAZjRܮk M\(LwP8-^jsN+RǩK;J}V_(*#4%!&2t&%zbXzJw%սOX!aMK:q!|gY4px>u{\uG,G3;m[z)Ȫ_I!2SPA0dN䁝2qSd7"Fa1X9"kQg!7>—6rzXq͘Ί- 2t\RW _/gAQA{/ᄧm;HСM&^cqf|-ojNĀ v1n嵻Xwe~0~'+7K鷫V'8O[E62 ᥡv2pړYCWR!|fg"L=RaCXafXm̈/A{zc#^-} z˨ (L;Xcڐvq%v~EB(hfhd~-YZd G-Ep# mEwG Ɠm S&܍fD5,E\=DCQWĄ+JW#?)*V8*1CYnNAc,MyK ̱yQo9 ?vR>#j#̓ZĽž'6usm'A0N5voda޾,5T!%wT^'GLʏ1 SFںtnŌ|O99Hm}d9W )+KNRȹ PsCUA,Ь ;d @dYb=x7)V\ ET0SF=>mJUfg.}T?̈́e`F}djɮ{@덽O:8 v Bnge.1gwULiJV^XRt$e{$,UG ~KkD 0_EXgҊ#)R]zaO^A!ὡD^(7|o(4̐Xb3ST CM%`{<O tCr| ;@fIZ) g:ecg{? ]ƢE6Ϯ6͠ }E+ZŪVȫ-4J%YLvSzk)$z+VQݱ=<=A|hw%d]''q=!oDɚ:cS/4gɮBJr"OV2+$OjU4(OaNVЮq~\*YjP$Bsm5C>ށ2>y?y=k'ie@j'FJ^e >k~2擟E;+v[D_TEwDyFjxmkth` V7C0*HDN)64\Ui* cq?u(jъ\7fUmzzN-nh ܼoz_mlVY N (?gO3i~=ugpJ wvanptc_2qAfҤ]]&4Or's?%NHb{p{>? bitwgw|delo2t (],qi؈TzxUٍV}ʵ\ZN I.::udm|CSI0wINPXY YNί;ɚ#W\QQ. C&׶Q.m+EqSDͧyա:)Te L\X!!7q QPcv3 / O]͹Ϝ!TUL+⁁¡r`J uġ^ZԺ"&kJe]'4-MICe([R%jtƦ@ f4&v}51:2V9=&RYZ]$W~׺ըT5n:mPzn@p̌23?q<X89h ٤ewk{e~"'?>X)X WߌDAyn3fF`A [|in[CrĆ\._+J'YY+V,?-[_qDN'z t3zO@f5(S&1PVt`tk3W̚.Tߓyt'PaV܅ tEh{xK vO֑51ZL1n[W͑\,*G.z~%IgDzxzۃ#G VIS)H){P@>CԂ :Bv|LTg/T1k䉺HbK?wZ.#`gayAtnbR[ D6%,j|5ț8|Le-73-8+ XVz״us &e@*dN۴Gr2u'n <9k#U< 3ODofJ36}rT.19OY|vC_43Tk:6F@WD?1TQ6|^(w b99rLVq+mtx:e]U(0!Y 栐_oTȡ]vDY $g@PYs' o$@/ĬNw[sD;ƌ*1J ؠNY J)"Kp}̫>V>f}d8Al|j )lOu^Aô Uf{r=ݥ=PѺp*5th *"C540LBH]E=- Wځ|`r !`Cuu P f+ Gt2ei X?l5:Su[{-M6o-O19 tK г"o=}SrZ|{E`'&e|vcHC/Sz+'Oazwn|7(?:cڅ^N`}. ǚBh4vxd̨8`=p[XlKo *7T;+0/gcC4m_qSQTh ה آؠ%7P_HyLC[+lFcF%cImly$I;E AUk*HEgq6L4ǎ/ۑ~RFh\'Ó?5WxSD X\5uPwp: Hb#ENg"ݎDA䫺/^mQ ~$XڜFw)#Ԑco;)F6StVN_.)Ah'X FnVR<&ۊ^!`K tyӍNuAqWB1Z'ofշyFAe XT bd]3#\J p{kv=(_W&?xb+j6yZxK^N| $W =d(n㦧[CsIpdF_ NlQ<;m^yx|l o7jt ޲2Z<J F}VnBa~؍&iph0|+]XĢ>SMetxm4ˎN z8:cA1\i'c|NٓBR]o\xOkg%=l:opUu!Mе1t7\Z.s$RaB4Rr+e7Y>eq$p!K_Jҋ7 ( LT5.ջ6Y0q,%9kA^þbVN@,r,APFG/%Zt,KKU|M{-D?Yߟ6ZeR>xlO ѹ:#!P` 6юrz7Fa&]DS_ZgrrY~Ռxe Ֆ8Wyf0AC GruiTe~] ""ADvʊeA XS5ēgY p_VPCkf؊j<=]˶7C p.U@[PK7Xi~*1G҅k×K+';<痠|LS3]ľM-jK:kFż.A5ceNXSEpj%ѓOyܗ)Xk ?̼6y4uYC>3<\xVI%)ǤWSDa#7 )7V^n YQ\@nM!3k^AT o]V"Iφ:jW2 $sC[iVI85nLK)==\ "q* IuEӋYHEej,`TBz>w%wƄ(g9š趃FE0f:@+q[ >eDܔPn&r$Ao:&xL%B}}%:q8yӛ}S!]%g eN 1%ӚqP5nၜi٥)-` k| ({aq jF =ƆuPC_ z6U ֋}HLX':V\@')CM͏p"[zP6t=v/E*j' 70`-ފ;uYl:pj0zr= {,_OO> Xe|c<ze*41~4?_r<#IZ7Ѯ9Z7>yKdꋉ/ެ*!̀Hq; ׳,k ;\S䜠F*(+`Pjַjܘ/, O sE0)/sz<n}pVX_<4$L46vwk f<KF>HEږ1^)@{IPhb4nAD, ? UJ joK, {T-}QGCxȈ=D!ܱ: ;E侙7ՙ"Y浸 '^&F1 ɛkjG j=i07i#bP]D[Obul~܋(1#%t;<1R!=)^OADBeVhʵ!2 w<(g+jYe~i.& $Z9T(CZig! G\ WZ|x=nq=uVb ؜1#=[2&OT9J=6g:-[țڦw p}-S5B;%<)к1e,ń6qw<肗&ZOπyOjXY L=Є3ft{IC:8-AlR.[c/w23skGnD=ĦN5lv0)Ft&"IxyzJ%Abtv^W]tLZhcTi^aI yJiĆmu[ d:d>Iy9 6Gn!pw`?ť?]ݨ|_?9ISB ʾbg Tz!ℶz鮕|>tS| Z-}^ [3 cUY$+h mdgQd'\KNH#1`CP ~v)oQPvP1D1dlíqH{% ̅IBn kD+#aD~]L41klQaܝkDaj,>Zy0o[łڟ(ߋUa,Y~LВ|avg:9=(0PMC|\m N" 㕌o6MD:trڼ1) Ri'ß/6=j=p"8Q!tT#|#{q15/ )fgD1rlV# ?j`Q(*&xP3(8NvM mn0 \GL hHyH)(eI$G]D7iqL#&˦fG'Pŭ@B0Uvd \sv=N|c@M̒L6cb|(|SFˋU,MIS θ W ӵC,dƷ_Yj9Ksh2MU2 NϾQX&2KUB#A~= @?Ӵ~%k?0%veoֹ.C鹶\tpR jV.6gF`苉RV&l+]SJo-E-lgf|` #5VzW1$!gMx0Dϙ(`rWL}*Sع=*#]A $ P]ƪ<@fua7vB`Ѻ{ VOJDT<^BuPFb#|\ Wnںj?Jέ61##?A Nc+ vP(S;c0:R11QbPDӑv.@k>[\Uam٢b*1@Z"Hzە3C2 $"džW?-ǥM5էwxT![ SrWs# #ldЎ4[x8!(ԇwOXdM?ȍizmr3 {X&G<_`f1* ysv(nQXQ ؋# )?ۘnjF*Y#_?]}A&{Tn4g)E 蛄sWm ^? |%?XWT-"ć)Ii0vΑ0]df#Q 5ǥgn @S@?nw:az;NGv=7@Ì|ZUF6Ns e\1a󭋋wi)hV1ӷwz0(Etk]Sn9f-fofqOtV4EwqQ `H>܌ϞdT=m fҩ.{TvqԾXT IŴNiϤ4OC*˨ %JAqW|z  #_{zѹ҅JaY|6w02Q ^1zG_~̄7x;T[/ 2UVArE/GrGx1ȭȍF =l3gr"{ܫb=1茺,`B{ʶaV'q!۳g6c˚{d7O?;v&\VM.G*>e<%n ٯ<&ɑ̵33{I0 4iĬ^'U-Ke zHpobKbuWЪupI7!KYʿJ 6JRe_c)MQ@D]SH :>U~*#%l.vf>!kmAĮ0EЁ0pI$58'~tQ y*]|%aHmkk4fy5EYFӱ%?c/5/Q\Ro[=@֕5aF|^փ{9cBw (|46[0XA|f'xВ,\WQ&䰳Z4@--t]Ql=U8-N\ݼXzu;ElQOgrq%f;eLʊ- 4kA;Wޕoc%QMG/ѿ~y-ze-z(kՊafzxu1/,3OT0~M]n 9j-O3.2xck `mW:HdZ|_R}m q@} ^+]u. ݿ=m[1*bP}'#j36㤔SxVQbB㜣xab r%uF/-&˼CHR8RY:*V\D椚w1/ik!933ǃTƉ"*ce ؙO5-r j,܍qS~z5RFϺ&%dI3 `ܒX;1_oCk12#p \Tks#;pt `J,Q#Ӊlї@\{xDF*ٛb-:Z}F ",=f}Ҋہudtj cJH[T [y+'+HВ a"/tzO-xς>_$7φT)3L֕p:=8,u9ZG۸Cwv{Qq7@Ixy &9(~?cF:<6S -Hfѱ4,?8-!!Y"a}hj`v+x/(RT혼@~80d͑p*@ 91I-"14c'`a-  XPG𼣞u%k ̙cϚ#WH-s]NIɻiՉ%MۥC6/s#U>o8(\fwSc&šʊ o3-u؜1t x9BD3>R_ ˛-[6 0عz}+UPy%к1lCTD[kM\Vve]4l`e@Ei`Q.ه7~FGq1ZoGQOr:v5 c[SBib~=dqpVgO鲗#h6Y Hzak]{BK'TqCzQQ˴wHМU0Sq*@WAj۫V%X2 NQXa,Dige.ql:ٵ6kE@pF/gx[G%~&Sm#><: b[}cʱKBn)U~gNN$ &䩖bJV\A$瞁c{Q%T@BJ|ʚS+6N"SIG\\Iuz{sdOX='VאcO8T+TqNOuawN>.3_Zŝq;"˧j>$BL{z~b#4E @ej笪l__Ͷs9Egux.fvp4=&tbi(l&ξ#խT (UeTLI@8_h3n:CcqBpZVr_kbTѾ >7jS `O\kaG!%f%pDFRnOhЮ6`Z9ڶ0V8fS)Pea[wpLgntM؟ȇ5]OH7OHNy$-"\p2x1"ƥՃwPZkp|AK79G~'ǀD.ZdlgavO5$Qh1ϑYݤ}TOD`[[N@a,^vw.,u5-} O!T]٫NTc] :sGm]t۞6>qN͖e#>!° Txuפ$>fŁVHwEUV{Ǻ,`pG+Sdl{%sط%IAk o@^{"'fvD7pAdv&Mj[ժ,y#?(`WKP{* p{0$ Ě )4z R}Н#3Lw,7hvuc A<٤g(pXP>6d(WO |d\7(G=lJ Sbx|ϕ8Wْm;2YSr -rޟI!4:~aYV )Z t9 7/3y=xgF} R wH1b@%M`9Y߻O /\Lq rxɞ xI !mR>f'bWh6f.P9I3-2o45A.`n(j1=+q/9',+X㗄&[ zL"aJ֎Z֬k/L$7 "eI)({Q5sK5 dL}Ll_d+ZC e:L#$W X5~tk 8 ni&6QSq8gR}X:H2(1ɚm6eY8U GjUf}{3:3؄ΏUiAcl @+/Vf͟94Yˆytzk+P63CQo0i3nT;#_Ji3@YqB>t^i&Dt]u̷a|g[N 4 Z EEx23+)X<޺N0, 0>oSƎiz@tg^A `i%06RŬ_LHBXou1iʇC+]:2qK'(9(SZM U\=3d\q!ً߬~v yss' Pd9-.`dy5mUwaYx ϔҡH:FYF67<CEWT qfȣgꤜkwTxAT nld!]IR$c.Bw(Э~$I?$xM 8&+!ޜrD)ؠOɒcޣZ2Sw &^K [nauiAoﶴ@77 4p?x-2½#uTEm&8SI߽BG6bE}<=e>vs*c!G*}65 Fzc( w$C.Y{CE*~O} > stream x]n E|,Ed$N*YtE0H5F/&J.@bp ~ݓ|`Pyv_מչmA^{BNŸ >C򻤒pqBvDpBuЪ&ˠQZF)uF2/+L|$1451O|&MBď+HL,IS%VĹ$MΣcSMɩ6uZM;P幥ݺ%W>m endstream endobj 10 0 obj 295 endobj 11 0 obj << /Type /FontDescriptor /FontName /NimbusRomanNo9L /Flags 4 /FontBBox [ -168 -281 1031 1098 ] /ItalicAngle 0 /Ascent 1098 /Descent -281 /CapHeight 500 /StemV 80 /StemH 80 /FontFile 7 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NimbusRomanNo9L /FirstChar 0 /LastChar 16 /FontDescriptor 11 0 R /Widths [ 1000 333 500 250 500 389 500 444 500 278 444 278 333 500 444 500 333 ] /ToUnicode 9 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 6 0 R ] /Count 1 >> endobj 12 0 obj << /Creator (cairo 1.6.4 (http://cairographics.org)) /Producer (cairo 1.6.4 (http://cairographics.org)) >> endobj 13 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 14 0000000000 65535 f 0000030582 00000 n 0000000876 00000 n 0000000015 00000 n 0000000854 00000 n 0000030337 00000 n 0000000985 00000 n 0000001185 00000 n 0000029681 00000 n 0000029705 00000 n 0000030077 00000 n 0000030100 00000 n 0000030647 00000 n 0000030773 00000 n trailer << /Size 14 /Root 13 0 R /Info 12 0 R >> startxref 30826 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/Makefile0000644000175000017500000000036111702130733024133 0ustar orlareyorlareyfaust-quick-reference.pdf : faust-quick-reference.tex chapters/*.tex pdflatex faust-quick-reference.tex rail faust-quick-reference pdflatex faust-quick-reference.tex clean : rm -f *.out *.toc *.pdf *.aux *.dvi *.rai *.rao *.log *~ faust-0.9.46/documentation/faust-quick-reference-src/chapters/0000755000175000017500000000000011702130733024304 5ustar orlareyorlareyfaust-0.9.46/documentation/faust-quick-reference-src/chapters/architectures.tex0000644000175000017500000004764011702130733027706 0ustar orlareyorlarey%--------------------------------------------------- \chapter{Architecture files} \label{sec:audio} %--------------------------------------------------- A \faust program describes a \emph{signal processor}, a pure computation that maps \emph{input signals} to \emph{output signals}. It says nothing about audio drivers or GUI toolkits. This missing information is provided by \emph{architecture files}. %The role of \emph{architecture files} is to provide this missing information. An \emph{architecture file} describes how to relate a \faust program to the external world, in particular the audio drivers and the user interface to be used. This approach allows a single \faust program to be easily deployed to a large variety of audio standards (Max/MSP externals, PD externals, VST plugins, CoreAudio applications, Jack applications, iPhone, etc.). The architecture to be used is specified at compile time with the \lstinline'-a' options. For example \lstinline'faust -a jack-gtk.cpp foo.dsp' indicates to use the Jack GTK architecture when compiling \code{foo.dsp}. \begin{table}[htdp] \begin{center} \begin{tabular}{|l|l|l|} \hline \textbf{File name} & \textbf{Description} \\ \hline \texttt{alchemy-as.cpp} & Flash - ActionScript plugin \\ \texttt{ca-qt.cpp} & CoreAudio QT4 standalone application \\ \texttt{jack-gtk.cpp} & Jack GTK standalone application \\ \texttt{jack-qt.cpp} & Jack QT4 standalone application \\ \texttt{jack-console.cpp} & Jack command line application \\ \texttt{jack-internal.cpp} & Jack server plugin \\ %%\texttt{jack-wx.cpp} & Jack wxWindows standalone application \\ \texttt{alsa-gtk.cpp} & ALSA GTK standalone application \\ \texttt{alsa-qt.cpp} & ALSA QT4 standalone application \\ \texttt{oss-gtk.cpp} & OSS GTK standalone application \\ %%\texttt{oss-wx.cpp} & OSS wxWindows standalone application \\ \texttt{pa-gtk.cpp} & PortAudio GTK standalone application \\ \texttt{pa-qt.cpp} & PortAudio QT4 standalone application \\ %%\texttt{pa-wx.cpp} & PortAudio wxWindows standalone application \\ \hline \texttt{max-msp.cpp} & Max/MSP external \\ \texttt{vst.cpp} & VST plugin \\ \texttt{vst2p4.cpp} & VST 2.4 plugin \\ \texttt{vsti-mono.cpp} & VSTi mono instrument \\ \texttt{ladspa.cpp} & LADSPA plugin \\ \texttt{q.cpp} & Q language plugin \\ \texttt{supercollider.cpp} & SuperCollider Unit Generator \\ \texttt{snd-rt-gtk.cpp} & Snd-RT music programming language \\ \texttt{csound.cpp} & CSOUND opcode \\ \texttt{puredata.cpp} & PD external \\ \hline \texttt{sndfile.cpp} & sound file transformation command \\ \texttt{bench.cpp} & speed benchmark \\ \texttt{octave.cpp} & Octave plugin \\ \texttt{plot.cpp} & Command line application \\ \texttt{sndfile.cpp} & Command line application \\ \hline \end{tabular} \end{center} \caption{Available architectures.} \label{tab:availablearch} \end{table}% The main available architecture files are listed table \ref{tab:availablearch}. Since \faust 0.9.40 some of these architectures are a modular combination of an \emph{audio module} and one or more \emph{user interface modules}. Among these user interface modules OSCUI provide supports for Open Sound Control allowing \faust programs to be controlled by OSC messages. \section{Audio architecture modules} An \emph{audio architecture module} typically connects a \faust program to the audio drivers. It is responsible for allocating and releasing the audio channels and for calling the \faust \code{dsp::compute} method to handle incoming audio buffers and/or to produce audio output. It is also responsible for presenting the audio as non-interleaved float data, normalized between -1.0 and 1.0. A \faust audio architecture module derives an \emph{audio} class defined as below: \begin{lstlisting}[basicstyle=\ttfamily\footnotesize\color{yotxt}] class audio { public: audio() {} virtual ~audio() {} virtual bool init(const char*, dsp*) = 0; virtual bool start() = 0; virtual void stop() = 0; }; \end{lstlisting} The API is simple enough to give a great flexibility to audio architectures implementations. The \code{init} method should initialize the audio. At \code{init} exit, the system should be in a safe state to recall the \code{dsp} object state. Table \ref{tab:aarch} gives the audio architectures currently available for various operating systems. \begin{table}[htdp] \begin{center} \begin{tabular}{|c|c|} \hline \bf{Audio system} & \bf{Operating system} \\ \hline Alsa & Linux \\ Core audio & Mac OS X, iOS \\ Jack & Linux, Mac OS X, Windows \\ Portaudio & Linux, Mac OS X, Windows \\ OSC {\footnotesize (see \ref{sec:oscaudio})} & Linux, Mac OS X, Windows \\ VST & Mac OS X, Windows \\ Max/MSP & Mac OS X, Windows \\ CSound & Linux, Mac OS X, Windows \\ SuperCollider & Linux, Mac OS X, Windows \\ PureData & Linux, Mac OS X, Windows \\ Pure \cite{graef09} & Linux, Mac OS X, Windows \\ \hline \end{tabular} \end{center} \caption{\faust audio architectures.} \label{tab:aarch} \end{table}% % \begin{table}[htdp] % \begin{center} % \begin{tabular}{|c|l|} % \hline % Name & System \\ % \hline % ladspa & \href{http://www.ladspa.org/}{LADSPA} plugins \\ % csound & \href{http://csounds.com/}{CSOUND} opcodes \\ % csounddouble & double precision CSOUND opcodes \\ % maxmsp & \href{http://cycling74.com/products/maxmspjitter/}{Max/MSP} externals \\ % vst & native \href{http://en.wikipedia.org/wiki/Virtual_Studio_Technology}{VST} plugins \\ % w32vst & windows VST plugins \\ % supercollider & \href{http://www.audiosynth.com/}{Supercollider} plugins \\ % puredata & \href{http://puredata.info/}{Puredata} externals \\ % Q & \href{http://q-lang.sourceforge.net/}{Q} plugins \\ % Pure & \href{http://code.google.com/p/pure-lang/}{Pure} plugins \\ % \hline % \end{tabular} % \end{center} % \caption{\faust plugins architectures} % \label{tab:aarch} % \end{table}% % %--------------------------------------------------- \section{UI architecture modules} \label{sec:gui} %--------------------------------------------------- A UI architecture module links user actions (via graphic widgets, command line parameters, OSC messages, etc.) with the \faust program to control. It is responsible for associating program parameters to user interface elements and to update parameter's values according to user actions. This association is triggered by the \code{dsp::buildUserInterface} call, where the \code{dsp} asks a UI object to build the DSP module controllers. Since the interface is basically graphic oriented, the main concepts are \emph{widget} based: a UI architecture module is semantically oriented to handle active widgets, passive widgets and widgets layout. A \faust UI architecture module derives an \emph{UI} class (Figure \ref{tab:ui}). \begin{figure}[htdp] \begin{center} %\begin{lstlisting}[basicstyle=\ttfamily\tiny\color{yotxt}] \begin{lstlisting}[basicstyle=\ttfamily\footnotesize\color{yotxt}] class UI { public: UI() {} virtual ~UI() {} -- active widgets virtual void addButton(const char* l, float* z) = 0; virtual void addToggleButton(const char* l, float* z) = 0; virtual void addCheckButton(const char* l, float* z) = 0; virtual void addVerticalSlider(const char* l, float* z, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* l, float* z, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* l, float* z, float init, float min, float max, float step) = 0; -- passive widgets virtual void addNumDisplay(const char* l, float* z, int p) = 0; virtual void addTextDisplay(const char* l, float* z, const char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* l, float* z, float min, float max) = 0; virtual void addVerticalBargraph(const char* l, float* z, float min, float max) = 0; -- widget layouts virtual void openTabBox(const char* l) = 0; virtual void openHorizontalBox(const char* l) = 0; virtual void openVerticalBox(const char* l) = 0; virtual void closeBox() = 0; -- metadata declarations virtual void declare(float*, const char*, const char* ) {} }; \end{lstlisting} \end{center} \caption{UI, the root user interface class.} \label{tab:ui} \end{figure} %--------------------------------------------------- \subsection{Active widgets} \label{sec:awidget} Active widgets are graphical elements that control a parameter value. They are initialized with the widget name and a pointer to the linked value. The widget currently considered are \code{Button}, \code{ToggleButton}, \code{CheckButton}, \code{VerticalSlider}, \code{HorizontalSlider} and \code{NumEntry}. \\ A GUI architecture must implement a method \\ \code{addXxx (const char* name, float* zone, ...)} for each active widget. Additional parameters are available for \code{Slider} and \code{NumEntry}: the \code{init} value, the \code{min} and \code{max} values and the \code{step}. %--------------------------------------------------- \subsection{Passive widgets} \label{sec:pwidget} Passive widgets are graphical elements that reflect values. Similarly to active widgets, they are initialized with the widget name and a pointer to the linked value. The widget currently considered are \code{NumDisplay}, \code{TextDisplay}, \code{HorizontalBarGraph} and \code{VerticalBarGraph}. \\ A UI architecture must implement a method \\ \code{addxxx (const char* name, float* zone, ...)} for each passive widget. Additional parameters are available, depending on the passive widget type. %--------------------------------------------------- \subsection{Widgets layout} \label{sec:wlayout} Generally, a GUI is hierarchically organized into boxes and/or tab boxes. A UI architecture must support the following methods to setup this hierarchy : \\ \htab\code{openTabBox (const char* label)} \\ \htab\code{openHorizontalBox (const char* label)} \\ \htab\code{openVerticalBox (const char* label)} \\ \htab\code{closeBox (const char* label)} \\ Note that all the widgets are added to the current box. %--------------------------------------------------- \subsection{Metadata} \label{sec:metadata} The \faust language allows widget labels to contain metadata enclosed in square brackets. These metadata are handled at GUI level by a \code{declare} method taking as argument, a pointer to the widget associated zone, the metadata key and value: \\ \htab\code{declare(float* zone, const char* key, const char* value)} \\ %%Table \ref{tab:uiarch} gives the UI architectures currently available. \begin{table}[htdp] \begin{center} \begin{tabular}{|c|l|} \hline \bf{UI} & \bf{Comment} \\ \hline console & a textual command line UI \\ GTK & a GTK-based GUI \\ Qt & a multi-platform Qt-based GUI \\ FUI & a file-based UI to store and recall modules states \\ OSC & OSC control (see \ref{sec:oscgui}) \\ \hline \end{tabular} \end{center} \caption{Available UI architectures.} \label{tab:uiarch} \end{table}% %--------------------------------------------------- \section{OSC architecture modules} \label{sec:osc} %--------------------------------------------------- The OSC \cite{OSC} support opens \faust application's control to any OSC capable application or programming language. It also transforms a full range of devices embedding sensors (wiimote, smart phones, ...) into physical interfaces for \faust application's control, allowing a direct use like musical instruments. The \faust OSC architecture is twofold: it is declined as a UI architecture and also as an audio architecture, proposing a new and original way to make digital signal computation. %--------------------------------------------------- \subsection{OSC GUI architecture module} \label{sec:oscgui} The OSC UI architecture transforms each UI active widget addition into an \code{addnode} call, ignores the passive widgets and transforms container calls (\code{openXxxBox, closeBox}) into \code{opengroup} and \code{closegroup} calls. \subsubsection{OSC address space and messages} The OSC address space adheres strictly to the hierarchy defined by the \code{addnode} and \code{opengroup, closegroup} calls. It supports the OSC pattern matching mechanism as described in \cite{OSC}. A node expects to receive OSC messages with a single float value as parameter. This policy is strict for the parameters count, but relaxed for the parameter type: OSC int values are accepted and casted to float. \begin{table}[htdp] \begin{center} \begin{tabular}{|c|c|c|} \hline \bf{Audio system} & \bf{Environment} & \bf{OSC support} \\ \hline \OSTab{Linux} \\ %\multicolumn{3}{|l|}{Linux} \\ \hline Alsa & GTK, Qt & yes\\ Jack & GTK, Qt, Console & yes\\ PortAudio & GTK, Qt & yes\\ \hline \OSTab{Mac OS X} \\ \hline CoreAudio & Qt & yes\\ Jack & Qt, Console & yes\\ PortAudio & Qt & yes\\ \hline \OSTab{Windows} \\ \hline Jack & Qt, Console & yes\\ PortAudio & Qt & yes\\ \hline \OSTab{iOS (iPhone)} \\ \hline CoreAudio & Cocoa & not yet\\ \hline \end{tabular} \end{center} \caption{OSC support in \faust application's architectures.} \label{tab:oscarch} \end{table} Two additional messages are defined to provide \faust applications discovery and address space discoveries: \begin{itemize} \item the \code{hello} message: accepted by any module root address. The module responds with its root address, followed by its IP address and the UDP port numbers (listening port, output port, error port). See the network management section below for ports numbering scheme. \item the \code{get} message: accepted by any valid OSC address. The \code{get} message is propagated to every terminal node that responds with its OSC address and current values (value, min and max). \end{itemize} \textbf{Example:} \\ Consider the \emph{noise} module provided with the \faust examples: \begin{itemize} \item it sends \code{/noise 192.168.0.1 5510 5511 5512} \\in answer to a \code{hello} message, \item it sends \code{/noise/Volume 0.8 0. 1.} \\in answer to a \code{get} message. \end{itemize} \subsubsection{Network management.} The OSC module makes use of three different UDP port numbers: \begin{itemize} \item 5510 is the listening port number: control messages should be addressed to this port. \item 5511 is the output port number: answers to query messages are sent to this port. \item 5512 is the error port number: used for asynchronous error notifications. \end{itemize} When the UDP listening port number is busy (for instance in case of multiple \faust programs running), the system automatically looks for the next available port number. Unless otherwise specified by the command line, the UDP output port numbers are unchanged. A program sends its name (actually its root address) and allocated port numbers on the OSC output port on startup. Port numbers can be changed on the command line with the following options: \\ \hspace*{6mm}\lstinline'[-port | -outport | -errport] number' The default UDP output streams destination is \code{localhost}. It can also be changed with the command line option \\ \hspace*{6mm}\code{-dest address} where address is a host name or an IP number. %--------------------------------------------------- \subsection{OSC message aliases} \label{sec:oscaudio} Alias is a metadata-based mechanism allowing to map arbitrary incoming OSC messages to program parameters. %%This is convenient when one has no control on the OSC messages emitted. Some remote controllers, like TouchOSC on Android, can only transmit predefined messages, for example \lstinline'/1/push1 1.000000' when push button 1 is pressed, \lstinline'/accxyz -0.421380 0.268151 9.232041' for the x, y and z accelerometers, \lstinline'/1/fader1 0.563994' when fader 1 is moved, etc. Such messages can be used to control a specific program parameter by inserting an OSC metadata \lstinline'[osc:/path/name]' in its label. For example \lstinline'vslider("Volume", 0, 0, 1, 0.1)' can be controlled by TouchOSC fader 1 by indicating its OSC address : \lstinline'vslider("Volume[osc:/1/fader1]", 0, 0, 1, 0.1)' (see table \ref{tab:oscalias} for a more complete list of aliases). By default the incoming value range is assumed to be between 0 and 1. But it is possible to indicate a different range : \lstinline'[osc:/path/name min max]'. When incoming messages provide more than one value it is possible to select the right one with an additional suffix (numbered starting form 0) to the pathname. For instance \lstinline'vslider("Volume[osc:/accxyz/1 -10 10]", 0, 0, 1, 0.1)' would allow to control the volume using the $y$ accelerometer. Moreover the accelerometer's values are mapped from range $[-10..10]$ to range $[0..1]$. \begin{table}[htdp] \begin{center} \begin{tabular}{|l|l|} \hline \bf{alias} & \bf{description} \\ \hline \lstinline'[osc:/1/rotary1]' & top left rotary knob\\ \lstinline'[osc:/1/rotary2]' & middle left rotary knob\\ \lstinline'[osc:/1/rotary3]' & bottom left rotary knob\\ \lstinline'[osc:/1/push1]' & bottom left push button\\ \lstinline'[osc:/1/push2]' & bottom center left push button\\ \hline \lstinline'[osc:/1/toggle1]' & top center left toggle button\\ \lstinline'[osc:/1/toggle2]' & middle center left toggle button\\ \lstinline'[osc:/1/fader1]' & center left vertical fader\\ \hline \lstinline'[osc:/1/toggle3]' & top center right toggle button\\ \lstinline'[osc:/1/toggle4]' & middle center right toggle button\\ \lstinline'[osc:/1/fader2]' & center right vertical toggle button\\ \hline \lstinline'[osc:/1/rotary4]' & top right rotary knob\\ \lstinline'[osc:/1/rotary5]' & middle right rotary knob\\ \lstinline'[osc:/1/rotary6]' & bottom right rotary knob\\ \lstinline'[osc:/1/push3]' & bottom center right push button\\ \lstinline'[osc:/1/push4]' & bottom right push button\\ \hline \lstinline'[osc:/1/fader3]' & bottom horizontal fader\\ \hline \lstinline'[osc:/accxyz/0 -10 10]' & $x$ accelerometer\\ \lstinline'[osc:/accxyz/1 -10 10]' & $y$ accelerometer\\ \lstinline'[osc:/accxyz/2 -10 10]' & $z$ accelerometer\\ \hline \end{tabular} \end{center} \caption{Examples of OSC message aliases for TouchOSC (layout Mix2). Since most of these messages produce values in the default range $[0..1]$ , there is no need to indicate this range. Accelerometers producing values in a different range, this range $[-10..10]$ has to be indicated. } \label{tab:oscalias} \end{table} %--------------------------------------------------- \subsection{OSC audio architecture} \label{sec:oscaudio} The OSC audio architecture implements an audio architecture where audio inputs and outputs are replaced by OSC messages. Using this architecture, a \faust module accepts arbitrary data streams on its root OSC address, and handles this input stream as interleaved signals. Thus, each incoming OSC packet addressed to a module root triggers a computation loop, where as many values as the number of incoming frames are computed. The output of the signal computation is sent to the OSC output port as non-interleaved data to the OSC addresses \code{/root/n} where \code{root} is the module root address and \code{n} is the output number (indexed from 0). For example: \\ consider a \faust program named \emph{split} and defined by:\\ \hspace*{6mm} \lstinline'process = _ <: _,_' \\ the message \\ \hspace*{6mm} \code{/split 0.3} \\ will produce the 2 following messages as output: \\ \hspace*{6mm}\code{/split/0 0.3}\\ \hspace*{6mm}\code{/split/1 0.3} The OSC audio architecture provides a very convenient way to execute a signal processing at an arbitrary rate, even allowing to make step by step computation. Connecting the output OSC signals to Max/MSP or to a system like INScore\footnote{\url{http://inscore.sf.net}}\cite{Fober:10c}, provides a close examination of the computation results. faust-0.9.46/documentation/faust-quick-reference-src/chapters/codegeneration.tex0000644000175000017500000004205611702130733030023 0ustar orlareyorlarey\chapter{Controlling the code generation} Several options of the \faust compiler allow to control the generated C++ code. By default the computations are done sample by sample in a single loop. But the compiler can also generate \textit{vector} and \textit{parallel} code. \section{Vector Code generation} Modern C++ compilers are able to do autovectorization, that is to use SIMD instructions to speedup the code. These instructions can typically operate in parallel on short vectors of 4 simple precision floating point numbers thus leading to a theoretical speedup of $\times4$. Autovectorization of C/C++ programs is a difficult task. Current compilers are very sensitive to the way the code is arranged. In particular too complex loops can prevent autovectorization. The goal of the vector code generation is to rearrange the C++ code in a way that facilitates the autovectorization job of the C++ compiler. Instead of generating a single sample computation loop, it splits the computation into several simpler loops that communicates by vectors. The vector code generation is activated by passing the \lstinline!--vectorize! (or \lstinline!-vec!) option to the \faust compiler. Two additional options are available: \lstinline!--vec-size ! controls the size of the vector (by default 32 samples) and \lstinline!--loop-variant 0/1! gives some additional control on the loops. To illustrate the difference between scalar code and vector code, let's take the computation of the RMS (Root Mean Square) value of a signal. Here is the \faust code that computes the Root Mean Square of a sliding window of 1000 samples: \label{rms} \begin{lstlisting} // Root Mean Square of n consecutive samples RMS(n) = square : mean(n) : sqrt ; // Square of a signal square(x) = x * x ; // Mean of n consecutive samples of a signal // (uses fixpoint to avoid the accumulation of // rounding errors) mean(n) = float2fix : integrate(n) : fix2float : /(n); // Sliding sum of n consecutive samples integrate(n,x) = x - x@n : +~_ ; // Convertion between float and fix point float2fix(x) = int(x*(1<<20)); fix2float(x) = float(x)/(1<<20); // Root Mean Square of 1000 consecutive samples process = RMS(1000) ; \end{lstlisting} The compute() method generated in scalar mode is the following: \begin{lstlisting} virtual void compute (int count, float** input, float** output) { float* input0 = input[0]; float* output0 = output[0]; for (int i=0; iinput = input; this->output = output; StartMeasure(); for (fIndex = 0; fIndex < fullcount; fIndex += 32) { fFullCount = min (32, fullcount-fIndex); TaskQueue::Init(); // Initialize end task fGraph.InitTask(1,1); // Only initialize tasks with inputs fGraph.InitTask(4,2); fIsFinished = false; fThreadPool.SignalAll(fDynamicNumThreads - 1); computeThread(0); while (!fThreadPool.IsFinished()) {} } StopMeasure(fStaticNumThreads, fDynamicNumThreads); } void computeThread (int cur_thread) { float* fRec0 = &fRec0_tmp[4]; float* fRec1 = &fRec1_tmp[4]; // Init graph state { TaskQueue taskqueue; int tasknum = -1; int count = fFullCount; // Init input and output FAUSTFLOAT* input0 = &input[0][fIndex]; FAUSTFLOAT* input1 = &input[1][fIndex]; FAUSTFLOAT* output0 = &output[0][fIndex]; int task_list_size = 2; int task_list[2] = {2,3}; taskqueue.InitTaskList(task_list_size, task_list, fDynamicNumThreads, cur_thread, tasknum); while (!fIsFinished) { switch (tasknum) { case WORK_STEALING_INDEX: { tasknum = TaskQueue::GetNextTask(cur_thread); break; } case LAST_TASK_INDEX: { fIsFinished = true; break; } // SECTION : 1 case 2: { // LOOP 0x101111680 // pre processing for (int i=0; i<4; i++) fRec0_tmp[i]=fRec0_perm[i]; // exec code for (int i=0; i ::= % \begin{syntdiag} % \begin{stack} % \\ % \\ % \\ % % \end{stack} % \end{syntdiag} % \end{grammar} \begin{rail} statement : declaration | fileimport | definition | documentation; \end{rail} \subsection{Declarations} Meta-data declarations (for example \lstinline'declare name "noise";') are optional and typically used to document a \faust project. % \begin{grammar} % ::= % \begin{syntdiag} % "declare" ";" % \end{syntdiag} % \end{grammar} % % \begin{grammar} % ::= % % \end{grammar} \begin{rail} declaration : "declare" key string ';'; key : identifier; \end{rail} Contrary to regular comments, these declarations will appear in the C++ code generated by the compiler. A good practice is to start a \faust program with some standard declarations: \begin{lstlisting} declare name "MyProgram"; declare author "MySelf"; declare copyright "MyCompany"; declare version "1.00"; declare license "BSD"; \end{lstlisting} \subsection{Imports} File imports allow to import definitions from other source files. % \begin{grammar} % ::= % \begin{syntdiag} % "import" "(" ")" ";" % \end{syntdiag} % \end{grammar} \begin{rail} fileimport : "import" '(' filename ')' ';'; \end{rail} For example \lstinline{import("math.lib");} imports the definitions of the \lstinline{math.lib} library, a set of additional mathematical functions provided as foreign functions. \subsection{Documentation} \label{sec:documentation} Documentation statements are optional and typically used to control the generation of the mathematical documentation of a \faust program. This documentation system is detailed chapter \ref{chapter:mdoc}. In this section we will essentially describe the documentation statements syntax. A documentation statement starts with an opening \lstinline'' tag and ends with a closing \lstinline'' tag. Free text content, typically in \latex format, can be placed in between these two tags. % \begin{grammar} % ::= % \begin{syntdiag} % "" % \begin{stack} % \\ % \\ % \\ % \\ % \\ %

% \end{stack} % "" % \end{syntdiag} % \end{grammar} \begin{rail} documentation : "" ((freetext|equation|diagram|metadata|notice|listing)+) ""; \end{rail} Moreover, optional sub-tags can be inserted in the text content itself to require the generation, at the insertion point, of mathematical \textit{equations}, graphical \textit{block-diagrams}, \faust source code \textit{listing} and explanation \textit{notice}. % \begin{grammar} % ::= % \begin{syntdiag} % "" "" % \end{syntdiag} % \end{grammar} \begin{rail} equation : "" expression ""; \end{rail} The generation of the mathematical equations of a \faust expression can be requested by placing this expression between an opening \lstinline'' and a closing \lstinline'' tag. The expression is evaluated within the lexical context of the \faust program. % \begin{grammar} % ::= % \begin{syntdiag} % "" "" % \end{syntdiag} % \end{grammar} \begin{rail} diagram : "" expression ""; \end{rail} Similarly, the generation of the graphical block-diagram of a \faust expression can be requested by placing this expression between an opening \lstinline'' and a closing \lstinline'' tag. The expression is evaluated within the lexical context of the \faust program. % \begin{grammar} % ::= % \begin{syntdiag} % "" "" % \end{syntdiag} % \end{grammar} \begin{rail} metadata : "" keyword ""; \end{rail} The \lstinline'' tags allow to reference \faust metadatas (cf. declarations), calling the corresponding keyword. % \begin{grammar} % ::= % \begin{syntdiag} % "" % \end{syntdiag} % \end{grammar} \begin{rail} notice : ""; \end{rail} The \lstinline'' empty-element tag is used to generate the conventions used in the mathematical equations. % % \begin{grammar} % ::= % \begin{syntdiag} % "% \end{rep} % \end{stack} % " />" % \end{syntdiag} % \end{grammar} \begin{rail} listing : ""; listingattribute : ("mdoctags" | "dependencies" | "distributed") "=" ('"true"' | '"false"'); \end{rail} % \begin{grammar} % ::= % \begin{syntdiag} % \begin{stack} % "mdoctags" \\ % "dependencies" \\ % "distributed" % \end{stack} % "=" "\"" % \begin{stack} % "true" \\ "false" % \end{stack} % "\"" % \end{syntdiag} % \end{grammar} The \lstinline'' empty-element tag is used to generate the listing of the \faust program. Its three attributes \lstinline'mdoctags', \lstinline'dependencies' and \lstinline'distributed' enable or disable respectively \lstinline'' tags, other files dependencies and distribution of interleaved faust code between \lstinline'' sections. \section{Definitions} A \textit{definition} associates an identifier with an expression it stands for. Definitions are essentially a convenient shortcut avoiding to type long expressions. During compilation, more precisely during the evaluation stage, identifiers are replaced by their definitions. It is therefore always equivalent to use an identifier or directly its definition. Please note that multiple definitions of a same identifier are not allowed, unless it is a pattern matching based definition. \subsection{Simple Definitions} The syntax of a simple definition is: \begin{rail} definition : identifier '=' expression ';'; \end{rail} For example here is the definition of \lstinline'random', a simple pseudo-random number generator: \begin{lstlisting} random = +(12345) ~ *(1103515245); \end{lstlisting} \subsection{Function Definitions} Definitions with formal parameters correspond to functions definitions. \begin{rail} definition : identifier '(' (parameter + ',') ')' '=' expression ';'; \end{rail} For example the definition of \lstinline'linear2db', a function that converts linear values to decibels, is : \begin{lstlisting} linear2db(x) = 20*log10(x); \end{lstlisting} Please note that this notation is only a convenient alternative to the direct use of \textit{lambda-abstractions} (also called anonymous functions). The following is an equivalent definition of \lstinline'linear2db' using a lambda-abstraction: \begin{lstlisting} linear2db = \(x).(20*log10(x)); \end{lstlisting} \subsection{Definitions with pattern matching} Moreover, formal parameters can also be full expressions representing patterns. \begin{rail} definition : identifier '(' (pattern + ',') ')' '=' expression ';'; pattern : identifier | expression; \end{rail} This powerful mechanism allows to algorithmically create and manipulate block diagrams expressions. Let's say that you want to describe a function to duplicate an expression several times in parallel: \begin{lstlisting} duplicate(1,x) = x; duplicate(n,x) = x, duplicate(n-1,x); \end{lstlisting} Please note that this last definition is a convenient alternative to the more verbose : \begin{lstlisting} duplicate = case { (1,x) => x; (n,x) => duplicate(n-1,x); }; \end{lstlisting} Here is another example to count the number of elements of a list. Please note that we simulate lists using parallel composition : (1,2,3,5,7,11). The main limitation of this approach is that there is no empty list. Moreover lists of only one element are represented by this element : \begin{lstlisting} count((x,xs)) = 1+count(xs); count(x) = 1; \end{lstlisting} If we now write \lstinline'count(duplicate(10,666))' the expression will be evaluated to \lstinline'10'. Please note that the order of pattern matching rules matters. The more specific rules must precede the more general rules. When this order is not respected, as in : \begin{lstlisting} count(x) = 1; count((x,xs)) = 1+count(xs); \end{lstlisting} the first rule will always match and the second rule will never be called. \section{Expressions} Despite its textual syntax, \faust is conceptually a block-diagram language. \faust expressions represent DSP block-diagrams and are assembled from primitive ones using various \textit{composition} operations. More traditional \textit{numerical} expressions in infix notation are also possible. Additionally \faust provides time based expressions, like delays, expressions related to lexical environments, expressions to interface with foreign function and lambda expressions. \begin{rail} expression : diagram | numerical | time | lexical | foreign | lambda; \end{rail} \subsection{Diagram Expressions} Diagram expressions are assembled from primitive ones using either binary composition operations or high level iterative constructions. \begin{rail} diagramexp : diagcomposition | diagiteration; \end{rail} \subsubsection{Diagram composition operations} Five binary \emph{composition operations} are available to combine block-diagrams : \textit{recursion}, \textit{parallel}, \textit{sequential}, \textit{split} and \textit{merge} composition. One can think of each of these composition operations as a particular way to connect two block diagrams. \begin{rail} diagcomposition : expression (recur|','|':'|'<:'|':>') expression; \end{rail} To describe precisely how these connections are done, we have to introduce some notation. The number of inputs and outputs of a bloc-diagram $A$ are notated $\mathrm{inputs}(A)$ and $\mathrm{outputs}(A)$ . The inputs and outputs themselves are respectively notated : $[0]A$, $[1]A$, $[2]A$, $\ldots$ and $A[0]$, $A[1]$, $A[2]$, etc.. For each composition operation between two block-diagrams $A$ and $B$ we will describe the connections $A[i]\rightarrow [j]B$ that are created and the constraints on their relative numbers of inputs and outputs. The priority and associativity of this five operations are given table \ref{table:composition}. \begin{table}[ht] \centering \begin{tabular}{|l|l|l|l|} \hline \textbf{Syntax} & \textbf{Pri.} & \textbf{Assoc.} & \textbf{Description} \\ \hline \texttt{\farg{expression}\ $\sim$\ \farg{expression}} & 4 & left & recursive composition \\ \texttt{\farg{expression}\ ,\ \farg{expression}} & 3 & right & parallel composition \\ \texttt{\farg{expression}\ :\ \farg{expression}} & 2 & right & sequential composition \\ \texttt{\farg{expression}\ <:\ \farg{expression}} & 1 & right & split composition \\ \texttt{\farg{expression}\ :>\ \farg{expression}} & 1 & right & merge composition \\ \hline \end{tabular} \caption{Block-Diagram composition operation priorities} \label{table:composition} \end{table} \paragraph{Parallel Composition} The \emph{parallel composition} \lstinline'(A,B)' (figure \ref{figure:par1}) is probably the simplest one. It places the two block-dia\-grams one on top of the other, without connections. The inputs of the resulting block-diagram are the inputs of \lstinline$A$ and \lstinline$B$. The outputs of the resulting block-diagram are the outputs of \lstinline$A$ and \lstinline$B$. \emph{Parallel composition} is an associative operation : \lstinline$(A,(B,C))$ and \lstinline$((A,B),C)$ are equivalents. When no parenthesis are used : \lstinline'A,B,C,D', \faust uses right associativity and therefore build internally the expression \lstinline$(A,(B,(C,D)))$. This organization is important to know when using pattern matching techniques on parallel compositions. \begin{figure}[h] \centering \includegraphics[scale=0.7]{images/par1} \caption{Example of parallel composition \lstinline'(10,*)'} \label{figure:par1} \end{figure} \paragraph{Sequential Composition} The \emph{sequential composition} \lstinline$A:B$ (figure \ref{figure:seq1}) expects: \begin{equation} \mathrm{outputs}(A)=\mathrm{inputs}(B) \end{equation} It connects each output of $A$ to the corresponding input of $B$: \begin{equation} A[i]\rightarrow[i]B \end{equation} \begin{figure}[h] \centering \includegraphics[scale=0.7]{images/seq1} \caption{Example of sequential composition \lstinline'((*,/):+)' } \label{figure:seq1} \end{figure} \emph{Sequential composition} is an associative operation : \lstinline$(A:(B:C))$ and \lstinline$((A:B):C)$ are equivalents. When no parenthesis are used, like in \lstinline$A:B:C:D$, \faust uses right associativity and therefore build internally the expression \lstinline$(A:(B:(C:D)))$. \paragraph{Split Composition} The \emph{split composition} \lstinline$A<:B$ (figure \ref{figure:split1}) operator is used to distribute the outputs of $A$ to the inputs of $B$. \begin{figure}[h] \centering \includegraphics[scale=0.7]{images/split1} \caption{example of split composition \lstinline'((10,20) <: (+,*,/))'} \label{figure:split1} \end{figure} For the operation to be valid the number of inputs of $B$ must be a multiple of the number of outputs of $A$ : \begin{equation} \mathrm{outputs}(A).k=\mathrm{inputs}(B) \end{equation} Each input $i$ of $B$ is connected to the output $i \bmod k$ of $A$ : \begin{equation} A[i \bmod k]\rightarrow\ [i]B \end{equation} \paragraph{Merge Composition} The \emph{merge composition} \lstinline$A:>B$ (figure \ref{figure:merge1}) is the dual of the \emph{split composition}. The number of outputs of $A$ must be a multiple of the number of inputs of $B$ : \begin{equation} \mathrm{outputs}(A)=k.\mathrm{inputs}(B) \end{equation} Each output $i$ of $A$ is connected to the input $i \bmod k$ of $B$ : \begin{equation} A[i]\rightarrow\ [i \bmod k]B \end{equation} The $k$ incoming signals of an input of $B$ are summed together. \begin{figure}[h] \centering \includegraphics[scale=0.7]{images/merge1} \caption{example of merge composition \lstinline'((10,20,30,40) :> *)'} \label{figure:merge1} \end{figure} \paragraph{Recursive Composition} The \emph{recursive composition} \lstinline'A~B' (figure \ref{figure:rec1}) is used to create cycles in the block-diagram in order to express recursive computations. It is the most complex operation in terms of connections. To be applicable it requires that : \begin{equation} \mathrm{outputs}(A) \geq \mathrm{inputs}(B) and \mathrm{inputs}(A) \geq \mathrm{outputs}(B) \end{equation} Each input of $B$ is connected to the corresponding output of $A$ via an implicit 1-sample delay : \begin{equation} A[i]\stackrel{Z^{-1}}{\rightarrow}[i]B \end{equation} and each output of $B$ is connected to the corresponding input of $A$: \begin{equation} B[i]\rightarrow [i]A \end{equation} The inputs of the resulting block diagram are the remaining unconnected inputs of $A$. The outputs are all the outputs of $A$. \begin{figure}[h] \centering \includegraphics[scale=0.7]{images/rec1} \caption{example of recursive composition \lstinline'+(12345) ~ *(1103515245)'} \label{figure:rec1} \end{figure} %Let's see these composition operations in action with two simple examples (figure \ref{fig:integrator}). %The first example uses the recursive composition operator (\lstinline'~'). It is an integrator \lstinline'process = +~_;' that produces an output signal $Y$ such that $Y(t)=X(t)+Y(t-1)$. %\begin{figure}[t] % \centering % \begin{tabular}{ccc} % \includegraphics[scale=0.7]{illustrations/integrator}& % \includegraphics[scale=0.7]{illustrations/ms} % \end{tabular} % \caption{a) integrator, b) mid/side stereo matrix} % \label{fig:integrator} %\end{figure} %The second example uses the parallel (\lstinline',') and split (\lstinline'<:') composition operators. It implements a Mid/Side stereophonic matrix: \lstinline'process = _,_<:+,-;' that produces two output signals $Y_0$ and $Y_1$ such that $Y_0(t)=X_0(t)+X_1(t)$ and $Y_1(t)=X_0(t)-X_1(t)$ \subsubsection{Iterations} Iterations are analogous to \lstinline'for(...)' loops and provide a convenient way to automate some complex block-diagram constructions. % \begin{grammar} % ::= % \begin{syntdiag} % \begin{stack} % "par" "(" "," "," ")"\\ % "seq" "(" "," "," ")"\\ % "sum" "(" "," "," ")"\\ % "prod" "(" "," "," ")" % \end{stack} % \end{syntdiag} % \end{grammar} \begin{rail} diagiteration: "par" '(' ident ',' numiter ',' expression ')' | "seq" '(' ident ',' numiter ',' expression ')' | "sum" '(' ident ',' numiter ',' expression ')' | "prod" '(' ident ',' numiter ',' expression ')'; \end{rail} The following example shows the usage of \lstinline'seq' to create a 10-bands filter: \begin{lstlisting} process = seq(i, 10, vgroup("band %i", bandfilter( 1000*(1+i) ) ) ); \end{lstlisting} \begin{rail} numiter : expression; \end{rail} The number of iterations must be a constant expression. \subsection{Numerical Expressions} Numerical expressions are essentially syntactic sugar allowing to use a familiar infix notation to express mathematical expressions, bitwise operations and to compare signals. Please note that is this section only built-in primitives with an infix syntax are presented. A complete description of all the build-ins is available in the primitive section (see \ref{primitives}). \begin{rail} numerical : math | bitwise | comparison; \end{rail} \subsubsection{Mathematical expressions} are the familiar 4 operations as well as the modulo and power operations \begin{rail} math : expression ('+'|'-'|'*'|'/'|'\%'|hat) expression; \end{rail} \subsubsection{Bitwise expressions} are the boolean operations and the left and right arithmetic shifts. \begin{rail} bitwise : expression (pipe|ampersand|'xor'|'<<' |'>>') expression; \end{rail} \subsubsection{Comparison} operations allow to compare signals and result in a boolean signal that is 1 when the condition is true and 0 when the condition is false. \begin{rail} comparison : expression ('<'|'<='|'>'|'>='|'=='|'!=') expression; \end{rail} \subsection{Time expressions} Time expressions are used to express delays. The notation \lstinline'X@10' represent the signal \lstinline'X' delayed by 10 samples. The notation \lstinline"X'" represent the signal X delayed by one sample and is therefore equivalent to \lstinline'X@1'. \begin{rail} time : expression arobase expression|expression kot; \end{rail} The delay don't have to be fixed, but it must be positive and bounded. The values of a slider are perfectly acceptable as in the following example: \begin{lstlisting} process = _ @ hslider("delay",0, 0, 100, 1); \end{lstlisting} \subsection{Environment expressions} \faust is a lexically scoped language. The meaning of a \faust expression is determined by its context of definition (its lexical environment) and not by its context of use. To keep their original meaning, \faust expressions are bounded to their lexical environment in structures called \textit{closures}. The following constructions allow to explicitly create and access such environments. Moreover they provide powerful means to reuse existing code and promote modular design. % \begin{grammar} % ::= % \begin{syntdiag} % \begin{stack} % "with" "\{" % \begin{rep} % % \end{rep} % "\}" \\ % "environment" "\{" % \begin{rep} % % \end{rep} % "\}" \\ % "." \\ % "library" "(" ")" \\ % "component" "(" ")" \\ % "[" % \begin{rep} % % \end{rep} % "]" % \end{stack} % \end{syntdiag} % \end{grammar} \begin{rail} envexp : expression 'with' lbrace (definition+) rbrace | 'environment' lbrace (definition+) rbrace | expression '.' ident | 'library' '(' filename ')' | 'component' '(' filename ')' | expression '[' (definition+) ']'; \end{rail} \subsubsection{With} The \lstinline'with' construction allows to specify a \textit{local environment}, a private list of definition that will be used to evaluate the left hand expression % \begin{grammar} % ::= % \begin{syntdiag} % "with" "\{" % \begin{rep} % % \end{rep} % "\}" % \end{syntdiag} % \end{grammar} \begin{rail} withexpression : expression 'with' lbrace (definition+) rbrace; \end{rail} In the following example : \begin{lstlisting} pink = f : + ~ g with { f(x) = 0.04957526213389*x - 0.06305581334498*x' + 0.01483220320740*x''; g(x) = 1.80116083982126*x - 0.80257737639225*x'; }; \end{lstlisting} the definitions of \lstinline'f(x)' and \lstinline'g(x)' are local to \lstinline'f : + ~ g'. Please note that \lstinline'with' is left associative and has the lowest priority: \begin{itemize} \item[-] \lstinline'f : + ~ g with {...}' is equivalent to \lstinline'(f : + ~ g) with {...}'. \item[-] \lstinline'f : + ~ g with {...} with {...}' is equivalent to \lstinline'((f : + ~ g) with {...}) with {...}'. \end{itemize} \subsubsection{Environment} The \lstinline'environment' construction allows to create an explicit environment. It is like a \lstinline'with', but without the left hand expression. It is a convenient way to group together related definitions, to isolate groups of definitions and to create a name space hierarchy. % \begin{grammar} % ::= % \begin{syntdiag} % "environment" "\{" % \begin{rep} % % \end{rep} % "\}" % \end{syntdiag} % \end{grammar} \begin{rail} environment : 'environment' lbrace (definition+) rbrace; \end{rail} In the following example an \lstinline'environment' construction is used to group together some constant definitions : \begin{lstlisting} constant = environment { pi = 3.14159; e = 2,718 ; ... }; \end{lstlisting} The \lstinline'.' construction allows to access the definitions of an environment (see next paragraph). \subsubsection{Access} Definitions inside an environment can be accessed using the '.' construction. % \begin{grammar} % ::= % \begin{syntdiag} % "." % \end{syntdiag} % \end{grammar} \begin{rail} access : expression '.' ident; \end{rail} For example \lstinline'constant.pi' refers to the definition of \lstinline'pi' in the above \lstinline'constant' environment. Please note that environment don't have to be named. We could have written directly \lstinline'environment{pi = 3.14159; e = 2,718;....}.pi' \subsubsection{Library} The \lstinline'library' construct allows to create an environment by reading the definitions from a file. \begin{rail} library : 'library' '(' filename ')'; \end{rail} For example \lstinline'library("filter.lib")' represents the environment obtained by reading the file "filter.lib". It works like \lstinline'import("filter.lib")' but all the read definitions are stored in a new separate lexical environment. Individual definitions can be accessed as described in the previous paragraph. For example \lstinline'library("filter.lib").lowpass' denotes the function \lstinline'lowpass' as defined in the file \lstinline'"filter.lib"'. To avoid name conflicts when importing libraries it is recommended to prefer \lstinline'library' to \lstinline'import'. So instead of : \begin{lstlisting} import("filter.lib"); ... ...lowpass.... ... }; \end{lstlisting} the following will ensure an absence of conflicts : \begin{lstlisting} fl = library("filter.lib"); ... ...fl.lowpass.... ... }; \end{lstlisting} \subsubsection{Component} The \lstinline'component(...)' construction allows to reuse a full \faust program as a simple expression. \begin{rail} component : 'component' '(' filename ')'; \end{rail} For example \lstinline'component("freeverb.dsp")' denotes the signal processor defined in file "freeverb.dsp". Components can be used within expressions like in: \begin{lstlisting} ...component("karplus32.dsp"):component("freeverb.dsp")... \end{lstlisting} Please note that \lstinline'component("freeverb.dsp")' is equivalent to \lstinline'library("freeverb.dsp").process'. \subsubsection{Explicit substitution} Explicit substitution can be used to customize a component or any expression with a lexical environment by replacing some of its internal definitions, without having to modify it. % \begin{grammar} % ::= % \begin{syntdiag} % "[" % \begin{rep} % % \end{rep} % "]" % \end{syntdiag} % \end{grammar} \begin{rail} explicitsubst : expression "[" (definition+) "]"; \end{rail} For example we can create a customized version of \lstinline'component("freeverb.dsp")', with a different definition of \lstinline'foo(x)', by writing : \begin{lstlisting} ...component("freeverb.dsp")[foo(x) = ...;]... }; \end{lstlisting} \subsection{Foreign expressions} Reference to external C \textit{functions}, \textit{variables} and \textit{constants} can be introduced using the \textit{foreign function} mechanism. \begin{rail} foreignexp : 'ffunction' '(' signature ',' includefile ',' comment ')' | 'fvariable' '(' type identifier ',' includefile ')' | 'fconstant' '(' type identifier ',' includefile ')' ; \end{rail} \subsubsection{ffunction} An external C function is declared by indicating its name and signature as well as the required include file. The file \lstinline'"math.lib"' of the \faust distribution contains several foreign function definitions, for example the inverse hyperbolic sine function \lstinline'asinh': \begin{lstlisting} asinh = ffunction(float asinhf (float), , ""); \end{lstlisting} Foreign functions with input parameters are considered pure math functions. They are therefore considered free of side effects and called only when their parameters change (that is at the rate of the fastest parameter). Exceptions are functions with no input parameters. A typical example is the C \lstinline'rand()' function. In this case the compiler generate code to call the function at sample rate. \subsubsection{signature} The signature part (\lstinline'float asinhf (float)' in our previous example) describes the prototype of the C function : return type, function name and list of parameter types. \begin{rail} signature : type identifier '(' (type + ',') ')'; \end{rail} \subsubsection{types} Note that currently only numerical functions involving simple int and float parameters are allowed. No vectors, tables or data structures can be passed as parameters or returned. \begin{rail} type : 'int'|'float'; \end{rail} \subsubsection{variables and constants} External variables and constants can also be declared with a similar syntax. In the same \lstinline'"math.lib"' file we can found the definition of the sampling rate constant \lstinline'SR' and the definition of the block-size variable \lstinline'BS' : \begin{lstlisting} SR = fconstant(int fSamplingFreq, ); BS = fvariable(int count, ); \end{lstlisting} Foreign constants are not supposed to vary. Therefore expressions involving only foreign constants are only computed once, during the initialization period. Variable are considered to vary at block speed. This means that expressions depending of external variables are computed every block. \subsubsection{include file} In declaring foreign functions one as also to specify the include file. It allows the \faust compiler to add the corresponding \lstinline'#include...' in the generated code. \begin{rail} includefile : '<' (char+) '>' | '"' (char+) '"' ; \end{rail} %The syntax of these foreign declarations is the following : %The foreign function mechanism allows to use external functions, variables and constants. External functions are limited to numerical ones. % %\begin{lstlisting} %process = ffunction(float toto (), "foo.h", "commentaire"); %\end{lstlisting} %ffunction are pure math unless no params %difference between fconstant and fvariable %\begin{lstlisting} %SR = fconstant(int fSamplingFreq, ); %BS = fvariable(int count, ); %\end{lstlisting} %\begin{rail} %includefile : '<' (char+) '>' | string; %signature : type identifier '(' (type + ',') ')'; %type : 'int'|'float'; %\end{rail} %that take simple numerical parameters and return a number. %Foreign functions, variables and constants. Example of foreign function expression : \lstinline'ffunction (float acoshf (float), , "")'. \subsection{Applications and Abstractions} \textit{Abstractions} and \textit{applications} are fundamental programming constructions directly inspired by the Lambda-Calculus. These constructions provide powerful ways to describe and transform block-diagrams algorithmically. % \begin{grammar} % ::= % \begin{syntdiag} % \begin{stack} % \\ % \end{stack} % \end{syntdiag} % \end{grammar} \begin{rail} progexp : abstraction|application; \end{rail} \subsubsection{Abstractions} Abstractions correspond to functions definitions and allow to generalize a block-diagram by \textit{making variable} some of its parts. % \begin{grammar} % ::= % \begin{syntdiag} % \begin{stack} % \\ % \end{stack} % \end{syntdiag} % \end{grammar} % % \begin{grammar} % ::= % \begin{syntdiag} % "\\" "(" % \begin{rep} % \\ "," % \end{rep} % ")" "." "(" ")" % \end{syntdiag} % \end{grammar} \begin{rail} abstraction : lambdaabstraction | patternabstraction; lambdaabstraction : backslash '(' (ident + ',') ')' '.' '(' expression ')'; \end{rail} Let's say you want to transform a stereo reverb, \lstinline'freeverb' for instance, into a mono effect. You can write the following expression: \begin{lstlisting} _ <: freeverb :> _ \end{lstlisting} The incoming mono signal is splitted to feed the two input channels of the reverb, while the two output channels of the reverb are mixed together to produce the resulting mono output. Imagine now that you are interested in transforming other stereo effects. It can be interesting to generalize this principle by making \lstinline'freeverb' a variable: \begin{lstlisting} \(freeverb).(_ <: freeverb :> _) \end{lstlisting} The resulting abstraction can then be applied to transform other effects. Note that if \lstinline'freeverb' is a perfectly valid variable name, a more neutral name would probably be easier to read like: \begin{lstlisting} \(fx).(_ <: fx :> _) \end{lstlisting} Moreover it could be convenient to give a name to this abstraction: \begin{lstlisting} mono = \(fx).(_ <: fx :> _); \end{lstlisting} Or even use a more traditional, but equivalent, notation: \begin{lstlisting} mono(fx) = _ <: fx :> _; \end{lstlisting} \subsubsection{Applications} Applications correspond to function calls and allow to replace the variable parts of an abstraction with the specified arguments. \begin{rail} application : expression '(' (expression + ',') ')'; \end{rail} For example you can apply the previous abstraction to transform your stereo harmonizer: \begin{lstlisting} mono(harmonizer) \end{lstlisting} The compiler will start by replacing \lstinline'mono' by its definition: \begin{lstlisting} \(fx).(_ <: fx :> _)(harmonizer) \end{lstlisting} Whenever the \faust compiler find an application of an abstraction it replaces\marginpar{Replacing the \emph{variable part} with the argument is called $\beta$-reduction in Lambda-Calculus} the \emph{variable part} with the argument. The resulting expression is as expected: \begin{lstlisting} (_ <: harmonizer :> _) \end{lstlisting} \subsubsection{Pattern Matching} Pattern matching rules provide an effective way to analyze and transform block-diagrams algorithmically. \begin{rail} patternabstraction : "case" lbrace (rule +) rbrace ; Rule : '(' (pattern + ',') ')' "=>" expression ';'; Pattern : ident | expression; \end{rail} For example \lstinline'case{ (x:y) => y:x; (x) => x; }' contains two rules. The first one will match a sequential expression and invert the two part. The second one will match all remaining expressions and leave it untouched. Therefore the application: \begin{lstlisting} case{(x:y) => y:x; (x) => x;}(freeverb:harmonizer) \end{lstlisting} will produce: \begin{lstlisting} (harmonizer:freeverb) \end{lstlisting} Please note that patterns are evaluated before the pattern matching operation. Therefore only variables that appear free in the pattern are binding variables during pattern matching. %-------------------------------------------------------------------------------------------------------------- \section{Primitives} %-------------------------------------------------------------------------------------------------------------- \label{primitives} The primitive signal processing operations represent the built-in functionalities of \faust, that is the atomic operations on signals provided by the language. All these primitives denote \emph{signal processors}, functions transforming \emph{input signals} into \emph{output signals}. %-------------------------------------------------------------------------------------------------------------- \subsection{Numbers} %-------------------------------------------------------------------------------------------------------------- \faust considers two types of numbers : \textit{integers} and \textit{floats}. Integers are implemented as 32-bits integers, and floats are implemented either with a simple, double or extended precision depending of the compiler options. Floats are available in decimal or scientific notation. \begin{rail} int : (|'+'|'-')(digit+) ; float : (|'+'|'-')( ((digit+)'.'(digit*)) | ((digit*) '.' (digit+)) )(|exponent); exponent : 'e'(|'+'|'-')(digit+); digit : "0--9"; \end{rail} \bigskip Like any other \faust expression, numbers are signal processors. For example the number $0.95$ is a signal processor of type $\mathbb{S}^{0}\rightarrow\mathbb{S}^{1}$ that transforms an empty tuple of signals $()$ into a 1-tuple of signals $(y)$ such that $\forall t\in\mathbb{N}, y(t)=0.95$. %\begin{tabular}{|l|l|l|} %\hline %\textbf{Syntax} & \textbf{Type} & \textbf{Description} \\ %\hline %$n$ & $\mathbb{S}^{0}\rightarrow\mathbb{S}^{1}$ & integer number: $y(t)=n$ \\ %$r$ & $\mathbb{S}^{0}\rightarrow\mathbb{S}^{1}$ & floating point number: $y(t)=r$ \\ %\hline %\end{tabular} %-------------------------------------------------------------------------------------------------------------- \subsection{C-equivalent primitives} %-------------------------------------------------------------------------------------------------------------- Most \faust primitives are analogue to their C counterpart but lifted to signal processing. For example $+$ is a function of type $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ that transforms a pair of signals $(x_1,x_2)$ into a 1-tuple of signals $(y)$ such that $\forall t\in\mathbb{N}, y(t)=x_{1}(t)+x_{2}(t)$. \bigskip \begin{tabular}{|l|l|l|} \hline \textbf{Syntax} & \textbf{Type} & \textbf{Description} \\ \hline $n$ & $\mathbb{S}^{0}\rightarrow\mathbb{S}^{1}$ & integer number: $y(t)=n$ \\ $n.m$ & $\mathbb{S}^{0}\rightarrow\mathbb{S}^{1}$ & floating point number: $y(t)=n.m$ \\ \texttt{\_} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & identity function: $y(t)=x(t)$ \\ \texttt{!} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{0}$ & cut function: $\forall x\in\mathbb{S},(x)\rightarrow ()$\\ \texttt{int} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & cast into an int signal: $y(t)=(int)x(t)$ \\ \texttt{float} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & cast into an float signal: $y(t)=(float)x(t)$ \\ \texttt{+} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & addition: $y(t)=x_{1}(t)+x_{2}(t)$ \\ \texttt{-} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & subtraction: $y(t)=x_{1}(t)-x_{2}(t)$ \\ \texttt{*} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & multiplication: $y(t)=x_{1}(t)*x_{2}(t)$ \\ \texttt{$\land$} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & power: $y(t)=x_{1}(t)^{x_{2}(t)}$ \\ \texttt{/} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & division: $y(t)=x_{1}(t)/x_{2}(t)$ \\ \texttt{\%} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & modulo: $y(t)=x_{1}(t)\%x_{2}(t)$ \\ \texttt{\&} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & logical AND: $y(t)=x_{1}(t)\&x_{2}(t)$ \\ \texttt{|} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & logical OR: $y(t)=x_{1}(t)|x_{2}(t)$ \\ \texttt{xor} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & logical XOR: $y(t)=x_{1}(t)\land x_{2}(t)$ \\ \texttt{<<} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & arith. shift left: $y(t)=x_{1}(t) << x_{2}(t)$ \\ \texttt{>>} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & arith. shift right: $y(t)=x_{1}(t) >> x_{2}(t)$ \\ \texttt{<} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & less than: $y(t)=x_{1}(t) < x_{2}(t)$ \\ \texttt{<=} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & less or equal: $y(t)=x_{1}(t) <= x_{2}(t)$ \\ \texttt{>} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & greater than: $y(t)=x_{1}(t) > x_{2}(t)$ \\ \texttt{>=} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & greater or equal: $y(t)=x_{1}(t) >= x_{2}(t)$ \\ \texttt{==} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & equal: $y(t)=x_{1}(t) == x_{2}(t)$ \\ \texttt{!=} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & different: $y(t)=x_{1}(t) != x_{2}(t)$ \\ \hline \end{tabular} \bigskip %-------------------------------------------------------------------------------------------------------------- \subsection{\texttt{math.h}-equivalent primitives} %-------------------------------------------------------------------------------------------------------------- Most of the C \texttt{math.h} functions are also built-in as primitives (the others are defined as external functions in file \texttt{math.lib}). \bigskip \begin{tabular}{|l|l|l|} \hline \textbf{Syntax} & \textbf{Type} & \textbf{Description} \\ \hline \texttt{acos} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & arc cosine: $y(t)=\mathrm{acosf}(x(t))$ \\ \texttt{asin} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & arc sine: $y(t)=\mathrm{asinf}(x(t))$ \\ \texttt{atan} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & arc tangent: $y(t)=\mathrm{atanf}(x(t))$ \\ \texttt{atan2} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & arc tangent of 2 signals: $y(t)=\mathrm{atan2f}(x_{1}(t), x_{2}(t))$ \\ \texttt{cos} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & cosine: $y(t)=\mathrm{cosf}(x(t))$ \\ \texttt{sin} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & sine: $y(t)=\mathrm{sinf}(x(t))$ \\ \texttt{tan} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & tangent: $y(t)=\mathrm{tanf}(x(t))$ \\ \texttt{exp} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & base-e exponential: $y(t)=\mathrm{expf}(x(t))$ \\ \texttt{log} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & base-e logarithm: $y(t)=\mathrm{logf}(x(t))$ \\ \texttt{log10} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & base-10 logarithm: $y(t)=\mathrm{log10f}(x(t))$ \\ \texttt{pow} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & power: $y(t)=\mathrm{powf}(x_{1}(t),x_{2}(t))$ \\ \texttt{sqrt} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & square root: $y(t)=\mathrm{sqrtf}(x(t))$ \\ \texttt{abs} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & absolute value (int): $y(t)=\mathrm{abs}(x(t))$ \\ & & absolute value (float): $y(t)=\mathrm{fabsf}(x(t))$ \\ \texttt{min} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & minimum: $y(t)=\mathrm{min}(x_{1}(t),x_{2}(t))$ \\ \texttt{max} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & maximum: $y(t)=\mathrm{max}(x_{1}(t),x_{2}(t))$ \\ \texttt{fmod} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & float modulo: $y(t)=\mathrm{fmodf}(x_{1}(t),x_{2}(t))$ \\ \texttt{remainder} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & float remainder: $y(t)=\mathrm{remainderf}(x_{1}(t),x_{2}(t))$ \\ \texttt{floor} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & largest int $\leq$: $y(t)=\mathrm{floorf}(x(t))$ \\ \texttt{ceil} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & smallest int $\geq$: $y(t)=\mathrm{ceilf}(x(t))$ \\ \texttt{rint} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & closest int: $y(t)=\mathrm{rintf}(x(t))$ \\ \hline \end{tabular} \bigskip %-------------------------------------------------------------------------------------------------------------- \subsection{Delay, Table, Selector primitives} %-------------------------------------------------------------------------------------------------------------- The following primitives allow to define fixed delays, read-only and read-write tables and 2 or 3-ways selectors (see figure \ref{fig:delays}). \bigskip \begin{tabular}{|l|l|l|} \hline \textbf{Syntax} & \textbf{Type} & \textbf{Description} \\ \hline \texttt{mem} & $\mathbb{S}^{1}\rightarrow\mathbb{S}^{1}$ & 1-sample delay: $y(t+1)=x(t),y(0)=0$ \\ \texttt{prefix} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & 1-sample delay: $y(t+1)=x_{2}(t),y(0)=x_{1}(0)$ \\ \texttt{@} & $\mathbb{S}^{2}\rightarrow\mathbb{S}^{1}$ & fixed delay: $y(t+x_{2}(t))=x_{1}(t), y(t ::= % \begin{syntdiag} % % \end{syntdiag} % \end{grammar} % % % \begin{grammar} % ::= % \begin{syntdiag} % \begin{stack} \\ "/" \end{stack} % \begin{stack} \\ \begin{rep} "/" \end{rep} \end{stack} % \end{syntdiag} % \end{grammar} % % % \begin{grammar} % ::= % \begin{syntdiag} % \begin{stack} % ".." \\ % \begin{stack} "h:" \\ "v:" \\ "t:" \end{stack} % \end{stack} % \end{syntdiag} % \end{grammar} \begin{rail} label : path name; path : (| '/') (| (folder '/')+); folder : (".." | ("h:" | "v:" | "t:" ) name); \end{rail} \paragraph{Metadata} Widget labels can contain metadata enclosed in square brackets. These metadata associate a key with a value and are used to provide additional information to the architecture file. They are typically used to improve the look and feel of the user interface. The \faust code : \begin{lstlisting} process = *(hslider("foo [key1: val 1][key2: val 2]", 0, 0, 1, 0.1)); \end{lstlisting} will produce and the corresponding C++ code : \begin{lstlisting} class mydsp : public dsp { ... virtual void buildUserInterface(UI* interface) { interface->openVerticalBox("m"); interface->declare(&fslider0, "key1", "val 1"); interface->declare(&fslider0, "key2", "val 2"); interface->addHorizontalSlider("foo", &fslider0, 0.0f, 0.0f, 1.0f, 0.1f); interface->closeBox(); } ... }; \end{lstlisting} All the metadata are removed from the label by the compiler and transformed in calls to the \lstinline'UI::declare()' method. All these \lstinline'UI::declare()' calls will always take place before the \lstinline'UI::AddSomething()' call that creates the User Interface element. This allows the \lstinline'UI::AddSomething()' method to make full use of the available metadata. It is the role of the architecture file to decide what to do with these metadata. The \lstinline'jack-qt.cpp' architecture file for example implements the following : \begin{enumerate} \item \lstinline'"...[style:knob]..."' creates a rotating knob instead of a regular slider or nentry. \item \lstinline'"...[style:led]..."' in a bargraph's label creates a small LED instead of a full bargraph \item \lstinline'"...[unit:dB]..."' in a bargraph's label creates a more realistic bargraph with colors ranging from green to red depending of the level of the value \item \lstinline'"...[unit:xx]..."' in a widget postfixes the value displayed with xx \item \lstinline'"...[tooltip:bla bla]..."' add a tooltip to the widget \item \lstinline'"...[osc:/address min max]..."' Open Sound Control message alias \end{enumerate} Moreover starting a label with a number option like in \lstinline'"[1]..."' provides a convenient means to control the alphabetical order of the widgets. \subsubsection{Attach} The \lstinline'attach' primitive takes two input signals and produce one output signal which is a copy of the first input. The role of \lstinline'attach' is to force its second input signal to be compiled with the first one. From a mathematical point of view \lstinline'attach(x,y)' is equivalent to \lstinline'1*x+0*y', which is in turn equivalent to \lstinline'x', but it tells the compiler not to optimize-out \lstinline'y'. To illustrate this role let say that we want to develop a mixer application with a vumeter for each input signals. Such vumeters can be easily coded in \faust using an envelop detector connected to a bargraph. The problem is that these envelop signals have no role in the output signals. Using \lstinline'attach(x,vumeter(x))' one can tel the compiler that when \lstinline'x' is compiled \lstinline'vumeter(x)' should also be compiled. faust-0.9.46/documentation/faust-quick-reference-src/chapters/compiler.tex0000644000175000017500000001326611702130733026650 0ustar orlareyorlarey%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % INVOKING THE COMPILER % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Invoking the \faust compiler} The \faust compiler is invoked using the \texttt{faust} command. It translate \faust programs into C++ code. The generated code can be wrapped into an optional \emph{architecture file} allowing to directly produce a fully operational program. \begin{rail} compiler : "faust" (options) (file +); \end{rail} For example \lstinline'faust noise.dsp' will compile \lstinline'noise.dsp' and output the corresponding C++ code on the standard output. The option \lstinline'-o' allows to choose the output file : \lstinline'faust noise.dsp -o noise.cpp'. The option \lstinline'-a' allows to choose the architecture file : \lstinline'faust -a alsa-gtk.cpp noise.dsp'. To compile a \faust program into an ALSA application on Linux you can use the following commands: \begin{lstlisting} faust -a alsa-gtk.cpp noise.dsp -o noise.cpp g++ -lpthread -lasound `pkg-config --cflags --libs gtk+-2.0` noise.cpp -o noise \end{lstlisting} \section{Compilation options} Compilation options are listed in the following table : \bigskip \small %%\begin{tabularx}{\textwidth}[t]{|l|l|X|} \tablefirsthead{ \hline \textbf{Short} & \textbf{Long} & \textbf{Description} \\ \hline } \tablehead{ \hline \textbf{Short} & \textbf{Long} & \textbf{Description} \\ \hline } \tabletail{ \hline \multicolumn{3}{|r|}{\small\sl continued on next page}\\ \hline } \tablelasttail{ \hline } \begin{supertabular}{|p{1.5cm}|p{4cm}|p{5cm}|} \texttt{-h} & \texttt{--help} & print the help message \\ \texttt{-v} & \texttt{--version} & print version information \\ \texttt{-d} & \texttt{--details} & print compilation details \\ \texttt{-tg} & \texttt{--task-graph} & draw a graph of all internal computation loops as a .dot (graphviz) file. \\ \texttt{-sg} & \texttt{--signal-graph} & draw a graph of all internal signal expressions as a .dot (graphviz) file. \\ \texttt{-ps} & \texttt{--postscript} & generate block-diagram postscript files \\ \texttt{-svg} & \texttt{--svg} & generate block-diagram svg files \\ \texttt{-blur} & \texttt{--shadow-blur} & add a blur to boxes shadows \\ \texttt{-sd} & \texttt{--simplify-diagrams} & simplify block-diagram before drawing them \\ \texttt{-f \farg{n}} & \texttt{--fold \farg{n}} & max complexity of svg diagrams before splitting into several files (default 25 boxes) \\ \texttt{-mns \farg{n}} & \texttt{--max-name-size \farg{n}} & max character size used in svg diagram labels\\ \texttt{-sn} & \texttt{--simple-names} & use simple names (without arguments) for block-diagram (default max size : 40 chars) \\ \texttt{-xml} & \texttt{--xml} & generate an additional description file in xml format \\ \texttt{-uim} & \texttt{--user-interface-macros} & add user interface macro definitions to the C++ code \\ \texttt{-flist} & \texttt{--file-list} & list all the source files and libraries implied in a compilation \\ \texttt{-norm} & \texttt{--normalized-form} & prints the internal signals in normalized form and exits \\ \hline \texttt{-lb} & \texttt{--left-balanced} & generate left-balanced expressions \\ \texttt{-mb} & \texttt{--mid-balanced} & generate mid-balanced expressions (default) \\ \texttt{-rb} & \texttt{--right-balanced} & generate right-balanced expressions \\ \texttt{-lt} & \texttt{--less-temporaries} & generate less temporaries in compiling delays \\ \texttt{-mcd \farg{n}} & \texttt{--max-copy-delay \farg{n}}& threshold between copy and ring buffer delays (default 16 samples)\\ \hline \texttt{-vec} & \texttt{--vectorize} & generate easier to vectorize code \\ \texttt{-vs \farg{n}} & \texttt{--vec-size \farg{n}} & size of the vector (default 32 samples) when -vec \\ \texttt{-lv \farg{n}} & \texttt{--loop-variant \farg{n}} & loop variant [0:fastest (default), 1:simple] when -vec\\ \texttt{-dfs} & \texttt{--deepFirstScheduling} & schedule vector loops in deep first order when -vec \\ \hline \texttt{-omp} & \texttt{--openMP} & generate parallel code using OpenMP (implies -vec) \\ \texttt{-sch} & \texttt{--scheduler} & generate parallel code using threads directly (implies -vec) \\ \texttt{-g} & \texttt{--groupTasks} & group sequential tasks together when -omp or -sch is used \\ \hline \texttt{-single} & \texttt{--single-precision-floats} & use floats for internal computations (default) \\ \texttt{-double} & \texttt{--double-precision-floats} & use doubles for internal computations \\ \texttt{-quad} & \texttt{--quad-precision-floats} & use extended for internal computations \\ \hline \texttt{-mdoc} & \texttt{--mathdoc} & generates the full mathematical description of a \faust program \\ \texttt{-mdlang \farg{l}} & \texttt{--mathdoc-lang \farg{l}} & choose the language of the mathematical description (\farg{l} = en, fr, ...) \\ \texttt{-stripmdoc} & \texttt{--strip-mdoc-tags} & remove documentation tags when printing \faust listings\\ \hline \texttt{-cn \farg{name}} & \texttt{--class-name \farg{name}} & name of the dsp class to be used instead of 'mydsp' \\ \texttt{-t \farg{time}} & \texttt{--timeout \farg{time}} & time out of time seconds (default 600) for the compiler to abort \\ \texttt{-a \farg{file}} & & architecture file to use \\ \texttt{-o \farg{file}} & & C++ output file\\ %%\end{tabularx} \end{supertabular} \normalsize \bigskip faust-0.9.46/documentation/faust-quick-reference-src/chapters/installation.tex0000644000175000017500000000602211702130733027527 0ustar orlareyorlarey\chapter{Compiling and installing \faust} The \faust source distribution \lstinline'faust-0.9.46.tar.gz' can be downloaded from sourceforge (\myurl{http://sourceforge.net/projects/faudiostream/}). \section{Organization of the distribution} The first thing is to decompress the downloaded archive. \begin{lstlisting} tar xzf faust-0.9.46.tar.gz \end{lstlisting} The resulting \lstinline'faust-0.9.46/' folder should contain the following elements: \begin{tabular}{ll} \lstinline'architecture/' &\faust libraries and architecture files\\ \lstinline'benchmark' &tools to measure the efficiency of the generated code\\ \lstinline'compiler/' &sources of the \faust compiler\\ \lstinline'examples/' &examples of \faust programs\\ \lstinline'syntax-highlighting/'& support for syntax highlighting for several editors\\ \lstinline'documentation/' &\faust's documentation, including this manual\\ \lstinline'tools/' &tools to produce audio applications and plugins\\ \lstinline'COPYING' &license information\\ \lstinline'Makefile' &Makefile used to build and install \faust\\ \lstinline'README' &instructions on how to build and install \faust \end{tabular} \section{Compilation} \faust has no dependencies outside standard libraries. Therefore the compilation should be straightforward. There is no configuration phase, to compile the \faust compiler simply do : \begin{lstlisting} cd faust-0.9.46/ make \end{lstlisting} If the compilation was successful you can test the compiler before installing it: \begin{lstlisting} [cd faust-0.9.46/] ./compiler/faust -v \end{lstlisting} It should output: \begin{lstlisting} FAUST, DSP to C++ compiler, Version 0.9.46 Copyright (C) 2002-2012, GRAME - Centre... \end{lstlisting} Then you can also try to compile one of the examples : \begin{lstlisting} [cd faust-0.9.46/] ./compiler/faust examples/noise.dsp \end{lstlisting} It should produce some C++ code on the standard output \section{Installation} You can install \faust with: \begin{lstlisting} [cd faust-0.9.46/] sudo make install \end{lstlisting} or \begin{lstlisting} [cd faust-0.9.46/] su make install \end{lstlisting} depending on your system. \section{Compilation of the examples} Once \faust correctly installed, you can have a look at the provided examples in the \lstinline'examples/' folder. This folder contains a \lstinline'Makefile' with all the required instructions to build these examples for various \textit{architectures}\marginpar{An architecture file provides the code needed to connect a signal processor to the outside world. It typically defines the audio communications and user interface.}, either standalone audio applications or plugins. The command \lstinline'make help' will list the available targets. Before using a specific target, make sure you have the appropriate development tools, libraries and headers installed. For example to compile the examples as ALSA applications with a GTK user interface do a \lstinline'make alsagtk'. This will create a \lstinline'alsagtkdir/' subfolder with all the binaries. faust-0.9.46/documentation/faust-quick-reference-src/chapters/introduction.tex0000644000175000017500000001024611702130733027552 0ustar orlareyorlarey\chapter{Introduction} \faust (\textit{Functional Audio Stream}) is a functional programming language specifically designed for real-time signal processing and synthesis. \faust targets high-performance signal processing applications and audio plug-ins for a variety of platforms and standards. \section{Design Principles} Various principles have guided the design of \faust : \begin{itemize} \item \faust is a \textit{specification language}. It aims at providing an adequate notation to describe \textit{signal processors} from a mathematical point of view. \faust is, as much as possible, free from implementation details. \item \faust programs are fully compiled, not interpreted. The compiler translates \faust programs into equivalent C++ programs taking care of generating the most efficient code. The result can generally compete with, and sometimes even outperform, C++ code written by seasoned programmers. \item The generated code works at the sample level. It is therefore suited to implement low-level DSP functions like recursive filters. Moreover the code can be easily embedded. It is self-contained and doesn't depend of any DSP library or runtime system. It has a very deterministic behavior and a constant memory footprint. \item The semantic of \faust is simple and well defined. This is not just of academic interest. It allows the \faust compiler to be \emph{semantically driven}. Instead of compiling a program literally, it compiles the mathematical function it denotes. This feature is useful for example to promote components reuse while preserving optimal performance. \item \faust is a textual language but nevertheless block-diagram oriented. It actually combines two approaches: \textit{functional programming} and \textit{algebraic block-diagrams}. The key idea is to view block-diagram construction as function composition. For that purpose, \faust relies on a \emph{block-diagram algebra} of five composition operations (\lstinline': , ~ <: :>'). \item Thanks to the notion of \textit{architecture}, \faust programs can be easily deployed on a large variety of audio platforms and plugin formats without any change to the \faust code. \end{itemize} \section{Signal Processor Semantic} A \faust program describes a \emph{signal processor}. The role of a \textit{signal processor} is to transforms a group of (possibly empty) \emph{input signals} in order to produce a group of (possibly empty) \emph{output signals}. Most audio equipments can be modeled as \emph{signal processors}. They have audio inputs, audio outputs as well as control signals interfaced with sliders, knobs, vu-meters, etc. More precisely : \begin{itemize} \item A \emph{signal} $s$ is a discrete function of time $s:\mathbb{N}\rightarrow\mathbb{R}$ \marginpar{\faust considers two type of signals: \emph{integer signals} ($s:\mathbb{N}\rightarrow\mathbb{Z}$) and \emph{floating point signals} ($s:\mathbb{N}\rightarrow\mathbb{Q}$). Exchanges with the outside world are, by convention, made using floating point signals. The full range is represented by sample values between -1.0 and +1.0.}. The value of signal $s$ at time $t$ is written $s(t)$. The set $\mathbb{S}=\mathbb{N}\rightarrow\mathbb{R}$ is the set of all possible signals. \item A group of $n$ signals (a \emph{n}-tuple of signals) is written $(s_{1},\ldots,s_{n})\in \mathbb{S}^{n}$. The \emph{empty tuple}, single element of $\mathbb{S}^{0}$ is notated $()$. \item A \emph{signal processors} $p$, is a function from \emph{n}-tuples of signals to \emph{m}-tuples of signals $p:\mathbb{S}^{n}\rightarrow\mathbb{S}^{m}$. The set $\mathbb{P}=\bigcup_{n,m}\mathbb{S}^{n}\rightarrow\mathbb{S}^{m}$ is the set of all possible signal processors. \end{itemize} As an example, let's express the semantic of the \faust primitive \lstinline'+'. Like any \faust expression, it is a signal processor. Its signature is $\mathbb{S}^{2}\rightarrow\mathbb{S}$. It takes two input signals $X_0$ and $X_1$ and produce an output signal $Y$ such that $Y(t) = X_0(t)+X_1(t)$. Numbers are signal processors too. For example the number $3$ has signature $\mathbb{S}^{0}\rightarrow\mathbb{S}$. It takes no input signals and produce an output signal $Y$ such that $Y(t) = 3$. faust-0.9.46/documentation/faust-quick-reference-src/chapters/mathdoc.tex0000644000175000017500000002536011702130733026453 0ustar orlareyorlarey\chapter{Mathematical Documentation} \label{chapter:mdoc} The \faust compiler provides a mechanism to produce a self-describing documentation of the mathematical semantic of a \faust program, essentially as a pdf file. The corresponding options are \lstinline!-mdoc! (short) or \lstinline!--mathdoc! (long). \section{Goals of the mathdoc} \label{sec:goals-of-mdoc} There are three main goals, or uses, of this mathematical documentation: \begin{enumerate} \item to preserve signal processors, independently from any computer language but only under a mathematical form; \item to bring some help for debugging tasks, by showing the formulas as they are really computed after the compilation stage; \item to give a new teaching support, as a bridge between code and formulas for signal processing. \end{enumerate} \section{Installation requirements} \label{sec:inst-requ} \begin{itemize} \item \lstinline!faust!, of course! \item \lstinline!svg2pdf! (from the Cairo 2D graphics library), to convert block-diagrams, as \latex doesn't eat \svg directly yet... \item \lstinline!breqn!, a \latex package to handle automatic breaking of long equations, \item \lstinline!pdflatex!, to compile the \latex output file. \end{itemize} \section{Generating the mathdoc} \label{sec:generating-mdoc} The easiest way to generate the complete mathematical documentation is to call the \lstinline!faust2mathdoc! script on a \faust file, as the \lstinline!-mdoc! option leave the documentation production unfinished. For example: \begin{lstlisting} faust2mathdoc noise.dsp \end{lstlisting} \subsection{Invoking the -mdoc option} \label{sec:invoking-mdoc} Calling directly \lstinline!faust -mdoc! does only the first part of the work, generating: \begin{itemize} \item a top-level directory, suffixed with "\texttt{-mdoc}", \item 5 subdirectories (\lstinline!cpp/!, \lstinline!pdf/!, \lstinline!src/!, \lstinline!svg/!, \lstinline!tex/!), \item a \latex file containing the formulas, \item \svg files for block-diagrams. \end{itemize} At this stage: \begin{itemize} \item \lstinline!cpp/! remains empty, \item \lstinline!pdf/! remains empty, \item \lstinline!src/! contains all \faust sources used (even libraries), \item \lstinline!svg/! contains \svg block-diagram files, \item \lstinline!tex/! contains the generated \latex file. \end{itemize} \subsection{Invoking faust2mathdoc} \label{sec:invok-faust2m} The \lstinline!faust2mathdoc! script calls \lstinline!faust --mathdoc! first, then it finishes the work: \begin{itemize} \item moving the output C++ file into \lstinline!cpp/!, \item converting all \svg files into pdf files (you must have \lstinline!svg2pdf! installed, from the Cairo 2D graphics library), \item launching \lstinline!pdflatex! on the \latex file (you must have both \lstinline!pdflatex! and the \lstinline!breqn! package installed), \item moving the resulting pdf file into \lstinline!pdf/!. \end{itemize} \subsection{Online examples} \label{sec:mdoc-examples} To get an idea of the results of this mathematical documentation, which captures the mathematical semantic of \faust programs, you can look at two pdf files online: \begin{itemize} \item \myurl{http://faust.grame.fr/pdf/karplus.pdf} (automatic documentation), \item \myurl{http://faust.grame.fr/pdf/noise.pdf} (manual documentation). \end{itemize} You can also generate all \emph{mdoc} pdfs at once, simply invoking the \lstinline!make mathdoc! command inside the \lstinline!examples/! directory: \begin{itemize} \item for each \lstinline!%.dsp! file, a complete \lstinline!%-mdoc! directory will be generated, \item a single \lstinline!allmathpdfs/! directory will gather all the generated pdf files. \end{itemize} \section{Automatic documentation} \label{sec:auto-docum} By default, when no \lstinline!! tag can be found in the input \faust file, the \lstinline!-mdoc! option automatically generates a \latex file with four sections: \begin{enumerate} \item ''\textbf{Equations of process}'', gathering all formulas needed for \lstinline!process!, \item ''\textbf{Block-diagram schema of process}'', showing the top-level block-diagram of \lstinline!process!, \item ''\textbf{Notice of this documentation}'', summing up generation and conventions information, \item ''\textbf{Complete listing of the input code}'', listing all needed input files (including libraries). \end{enumerate} \section{Manual documentation} \label{sec:manual-mdoc} You can specify yourself the documentation instead of using the automatic mode, with five xml-like tags. That permits you to modify the presentation and to add your own comments, not only on \lstinline!process!, but also about any expression you'd like to. Note that as soon as you declare an \lstinline!! tag inside your \faust file, the default structure of the automatic mode is ignored, and all the \latex stuff becomes up to you! \subsection{Six tags} \label{sec:doc-tags} Here are the six specific tags: \begin{itemize} \item \lstinline!!, to open a documentation field in the \faust code, \begin{itemize} \item \lstinline!!, to get equations of a \faust expression, \item \lstinline!!, to get the top-level block-diagram of a \faust expression, \item \lstinline!!, to reference \faust metadatas (cf. declarations), calling the corresponding keyword, \item \lstinline!!, to insert the "adaptive'' notice all formulas actually printed, \item \lstinline!!, to insert the listing of \faust files called. \end{itemize} \end{itemize} The \lstinline!! tag can have up to three boolean attributes (set to \lstinline!"true"! by default): \begin{itemize} \item \lstinline'mdoctags' for \lstinline'' tags; \item \lstinline'dependencies' for other files dependencies; \item \lstinline'distributed' for the distribution of interleaved \faust code between \lstinline'' sections. \end{itemize} \subsection{The mdoc top-level tags} \label{sec:mdoc-tag} The \lstinline!! tags are the top-level delimiters for \faust mathematical documentation sections. This means that the four other documentation tags can't be used outside these pairs (see section \ref{sec:documentation}). In addition of the four inner tags, \lstinline!! tags accept free \latex text, including its standard macros (like \lstinline!\section!, \lstinline!\emph!, etc.). This allows to manage the presentation of resulting tex file directly from within the input \faust file. The complete list of the \latex packages included by \faust can be found in the file \lstinline!architecture/latexheader.tex!. \subsection{An example of manual mathdoc} \label{sec:ex-mathdoc} \footnotesize \begin{lstlisting} \title{name} \author{author} \date{\today} \maketitle \begin{tabular}{ll} \hline \textbf{name} & name \\ \textbf{version} & version \\ \textbf{author} & author \\ \textbf{license} & license \\ \textbf{copyright} & copyright \\ \hline \end{tabular} \bigskip //----------------------------------------------------------------- // Noise generator and demo file for the Faust math documentation //----------------------------------------------------------------- declare name "Noise"; declare version "1.1"; declare author "Grame"; declare author "Yghe"; declare license "BSD"; declare copyright "(c)GRAME 2009"; \section{Presentation of the "noise.dsp" Faust program} This program describes a white noise generator with an interactive volume, using a random function. \subsection{The random function} random = +(12345)~*(1103515245); The \texttt{random} function describes a generator of random numbers, which equation follows. You should notice hereby the use of an integer arithmetic on 32 bits, relying on integer wrapping for big numbers. random \subsection{The noise function} noise = random/2147483647.0; The white noise then corresponds to: noise \subsection{Just add a user interface element to play volume!} process = noise * vslider("Volume[style:knob]", 0, 0, 1, 0.1); Endly, the sound level of this program is controlled by a user slider, which gives the following equation: process \section{Block-diagram schema of process} This process is illustrated on figure 1. process \section{Notice of this documentation} You might be careful of certain information and naming conventions used in this documentation: \section{Listing of the input code} The following listing shows the input Faust code, parsed to compile this mathematical documentation. \end{lstlisting} \normalsize The following page which gathers the four resulting pages of \lstinline!noise.pdf! in small size. might give you an idea of the produced documentation. \subsection{The -stripmdoc option} \label{sec:striping-option} As you can see on the resulting file \lstinline!noisemetadata.pdf! on its pages 3 and 4, the listing of the input code (section\,4) contains all the mathdoc text (here colored in grey). As it may be useless in certain cases (see Goals, section \ref{sec:goals-of-mdoc}), we provide an option to strip mathdoc contents directly at compilation stage: \lstinline!-stripmdoc! (short) or \lstinline!--strip-mdoc-tags! (long). \section{Localization of mathdoc files} \label{sec:localization-mdoc} By default, texts used by the documentator are in English, but you can specify another language (French, German and Italian for the moment), using the \lstinline!-mdlang! (or \lstinline!--mathdoc-lang!) option with a two-letters argument (\lstinline!en!, \lstinline!fr!, \lstinline!it!, etc.). The \lstinline!faust2mathdoc! script also supports this option, plus a third short form with \lstinline!-l!: \begin{lstlisting} faust2mathdoc -l fr myfaustfile.dsp \end{lstlisting} If you would like to contribute to the localization effort, feel free to translate the mathdoc texts from any of the \lstinline!mathdoctexts-*.txt! files, that are in the \lstinline!architecture! directory (\lstinline!mathdoctexts-fr.txt!, \lstinline!mathdoctexts-it.txt!, etc.). As these files are dynamically loaded, just adding a new file with an appropriate name should work. \includepdf[pages=-, frame=true, angle=-90, scale=0.75, nup=1x2]{images/noisemetadata} \section{Summary of the mathdoc generation steps} \label{sec:mdoc-summary} \begin{enumerate} \item First, to get the full mathematical documentation done on your faust file, call \lstinline!faust2mathdoc myfaustfile.dsp!. \item Then, open the pdf file \lstinline!myfaustfile-mdoc/pdf/myfaustfile.pdf!. \item That's all ! \end{enumerate} faust-0.9.46/documentation/faust-quick-reference-src/faust-quick-reference.tex0000644000175000017500000001343511702130733027413 0ustar orlareyorlarey\documentclass[a4paper,10pt]{book} %\usepackage{latexsym, amssymb} \usepackage{latexsym} \usepackage{graphicx} %\usepackage{longtable} \usepackage{supertabular} %\usepackage{tabularx} %\usepackage{tabulary} \usepackage{xspace} \usepackage{pdfpages} %\usepackage[rounded]{syntax} \usepackage{hyperref} \usepackage{listings} \usepackage{color} \usepackage[cc]{titlepic} \usepackage{sectsty} % \usepackage{times} \usepackage[T1]{fontenc} \usepackage[urw-garamond]{mathdesign} \usepackage{fncychap} \usepackage{fancyhdr} \usepackage{rail} \railoptions{-t -h} \fancyhead{} % clear all header fields \fancyheadoffset[LE,RO]{\marginparsep+\marginparwidth} \fancyhead[RO,LE]{\thepage} \fancyhead[LO]{\rightmark} \fancyhead[RE]{\leftmark} \renewcommand{\headrulewidth}{0.1pt} \fancyfoot{} \hypersetup{% colorlinks = true, %true, false linkcolor = black, citecolor = blue, urlcolor = blue, } \urlstyle{sf} %rm \newcommand{\myurl}[1]{\textcolor{blue}{\underbar{\url{#1}}}} %%%%%%%%%%%%%%%%%%%command imported from lac paper \newcommand{\code}[1] {\lstinline'#1'} \newcommand{\OSTab}[1] {\multicolumn{3}{|l|}{\hspace{14mm}\emph{#1}}} \newcommand{\htab} {\hspace*{3mm}} %%\newcommand{\faust} {\textsc{Faust}\xspace} %\newcommand{\astree} {\textsc{Astree}\xspace} \newcommand{\grame} {\textsc{Grame}\xspace} \newcommand{\cierec} {\textsc{Cierec}\xspace} %\newcommand{\ircam} {\textsc{Ircam}\xspace} \newcommand{\ccrma} {\textsc{Ccrma}\xspace} \newcommand{\cnmat} {\textsc{Cnmat}\xspace} \newcommand{\create} {\textsc{Create}\xspace} \newcommand{\mines} {\textsc{Mines} ParisTech\xspace} %\newcommand{\svg} {\textsc{Svg}\xspace} \newcommand{\pdf} {\textsc{Pdf}\xspace} %%\newcommand{\latex} {\LaTeX\xspace} \newcommand{\ie} {i.e.\ } %%\newcommand{\myurl}[1] {\textcolor{blue}{\underbar{\url{#1}}}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% MY COLORS \definecolor{yoheader}{rgb}{0.71,0.01,0.0} %%%% margin par \definecolor{margincolor}{rgb}{0.52,0.02,0.02} % grey red. \definecolor{yobg}{rgb}{0.9,0.9,1} \definecolor{yotxt}{rgb}{0.01,0.01,0.52} \definecolor{mylstcmt}{rgb}{0.01,0.52,0.01} % a dark green. %\definecolor{mylstdoc}{rgb}{0.60,0.60,0.60} % a medium grey. \definecolor{mylstdoc}{rgb}{0.80,0.30,0.80} % a medium pink. %\definecolor{mylsteqn}{rgb}{0.80,0.80,0.30} % a medium pink. \definecolor{mylstkey}{rgb}{0.52,0.01,0.01} % a dark red. %%\newcommand{\farg}[1]{\textrm{\textit{#1}}} \setlength{\marginparwidth}{1.2in} \let\oldmarginpar\marginpar \renewcommand\marginpar[1]{\-\oldmarginpar[\raggedleft\color{margincolor}\footnotesize #1]% {\raggedright\color{margincolor}\footnotesize #1}} % \relax \begin{document} \ChRuleWidth{1pt} % \ChNumVar{\raggedleft\fontsize{80}{82}\sffamily\bfseries\color{yoheader}} \ChNumVar{\raggedleft\Huge\color{yoheader}} %\ChTitleVar{\raggedleft\fontsize{60}{62}\sffamily\it\color{yoheader}} \ChTitleVar{\raggedleft\sffamily\fontsize{30}{32}\bf\color{yoheader}} %\chapterfont{\sffamily\color{yoheader}} %\sectionfont{\sffamily\color{yoheader}} %\subsectionfont{\sffamily\color{yoheader}} %\subsubsectionfont{\sffamily\color{yoheader}} \chapterfont{\color{yoheader}} \sectionfont{\color{yoheader}} \subsectionfont{\color{yoheader}} \subsubsectionfont{\color{yoheader}} % parameters for listings \lstset{ tabsize=4, showspaces=false, showstringspaces=false, language=C++, basicstyle=\ttfamily\color{yotxt}, numbers=none, stepnumber=2, commentstyle=\slshape\color{mylstcmt}, breaklines=true, emph={component, declare, environment, import, library, process}, emph={[2]ffunction, fconstant, fvariable}, emph={[3]button, checkbox, vslider, hslider, nentry, vgroup, hgroup, tgroup, vbargraph, hbargraph, attach}, emphstyle=\color{mylstkey}, % morecomment=[s][\color{mylsteqn}]{}{}, morecomment=[s][\color{mylstdoc}]{}{}, %% frame=single, backgroundcolor=\color{yobg}, captionpos=b } \lstloadlanguages{C++,[LaTeX]TeX} % \titlepic{ % \includegraphics[width=15cm]{images/bandeau-faust} % } \title{\Huge\color{yoheader}FAUST Quick Reference\\\Large(version 0.9.46)} \author{\textsc{Grame}\\Centre National de Cr\'eation Musicale} \date{January 2012} \railalias{recur}{$\sim$} \railalias{lbrace}{\{} \railalias{rbrace}{\}} \railalias{dollar}{\$} \railalias{mod}{\%} \railalias{arobase}{@} \railalias{ampersand}{\&} \railalias{hat}{$\land$} \railalias{kot}{'} \railalias{pipe}{$|$} \railalias{fdelay}{} \railalias{backslash}{\char"5C} \railterm{recur,lbrace,rbrace,dollar,mod,kot,arobase,ampersand,backslash,fdelay, pipe, hat} \newcommand{\farg}[1]{\textrm{\textit{#1}}} \newcommand{\ldbrack}{[\![ \,} \newcommand{\rdbrack}{\, ]\!] } \newcommand{\rdbrackC}{\rdbrack_{\mathrm{C}}\,} \newcommand{\dbrack}[1]{\ldbrack #1 \rdbrack} \newcommand{\semantic}[1]{\ldbrack #1 \rdbrack} \newcommand{\dbrackC}[1]{\ldbrack #1 \rdbrackC} \newcommand{\faust}{\textsc{Faust}\xspace} \newcommand{\latex}{\LaTeX\xspace} \newcommand{\ircam}{\textsc{Ircam}\xspace} \newcommand{\astree}{\textsc{Astree}\xspace} \newcommand{\svg}{\textsc{Svg}\xspace} \setlength{\parindent}{0pt} \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} \maketitle \tableofcontents %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % CHAPTERS % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \input{chapters/introduction} \input{chapters/installation} \input{chapters/syntax} \input{chapters/compiler} \input{chapters/architectures} \input{chapters/codegeneration} \input{chapters/mathdoc} \input{chapters/acknowledgments} \end{document} faust-0.9.46/documentation/faust-quick-reference-src/images/0000755000175000017500000000000011702130733023740 5ustar orlareyorlareyfaust-0.9.46/documentation/faust-quick-reference-src/images/filter2.pdf0000644000175000017500000002632211702130733026007 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode >> stream x\Ɏ$W 53 >0 AGP}};HB2ra1(tGt$#"_V>&YoV{y7k_A.4m MAKn%(%V%L]Vm"o[ҿv;gn>h~O~1xU̺lt H~ܾg@{{լ͆YfujVXiЄS&i bAv.2$ K=jNJ+S>UBVLHA[-_k\,0[fgW[ ƅx1}OZk篿O* >MWK V`Ԛ)kbu,o&Dbb"(o-tO_仴_;4o{ Zp[UDyVs}ʼz=QLH{{{]/ =ڊb@jc3bt0&ĸY8W># 2T>W%a=QCY(z498(zFmk?chd)Ii;*nf6zcRwƥfN?]W JqJAhVjrwЊ5STӃqJcLk+CʸԞQqN+Rk` L,t bDIWЄ{jI,e "߹wa y6D;pMpk `xuk ^γ v<),o8TB<9:Xᮟ}(^ b.XT\]"D{Bj-iAzGЭS|3!vXbpṨ'u\+k|Rk(Ëc6*,p]$BY`x^#L=LL}׃< b OysmAvwڪfV+dzI)yfDLǜP=AJ$6f,_C5FxzAP/H:6;: Qj|B6,9%X/Rwp!S9 jVeg[e}O9RBhMk?z}ksͶT rReJN\ژ"X*v)1~¹g48nI99M)1U9%dfgzSHM?'uԞ~j \FZLnLVYl.QSJ/SHh> WD _:Ϸ&`N"k~Z?nSRq P`4!%U|P/Ol!t>Dީk)( s ^/m2ǹ>wi=5m^d4A6SA*W"TbbC9d VJܱ+%({^Vhz,mYh-*pTζy8LF>ix ' (vhFq 4@\u+ YY鵭,Ĥ齙X105L/VjsKYC>E0_I HgM'\7k邭! H+Es/3iCg2s3DQNVb,>X1 h48R/X4u/ ⵹vA PEEKk1:Sc(4BD[ _xhz&gih&c_Ԃ2b j^$Q->j4y?Kg9hcD#zUa(U3;M#\7kAh⹅"ޫCh03IMj*FXp`1tNϪ3ZRDE7{юhU\ё[|ӄ :[Arޏ޴8#'LX1u 5*P8$& g|LpnAj٥g KgehaH/]9d=SH",%I$s9Q澑u}$" ="1P3JߌDG[3<p*D9<O"O9vD8!*Ǵ>4VF>#/ꑶcBXb#W0>D{N:3m2lFn4SL&6Ɍ4B2 [fj_#ut 8B2U4%&zFHHas)Mɞ#qn"q=@=DvS/;'b|&2T tV2 \r bajv@eLm+ i]WO6$O=H,2cɞ _2ˤ&R TE!!LE?`aQ !PaAP/H,+</ケ;`G2ن6yS=`bxmyXhi}0>΁Ȫ bV[oi2GVh#nqmi>m?ZjױLɰ$Db+XfFo㰭 J@`1|6"}ěBZVzЪ*+M5SGMu3l7_)c]"2["4ҧ@: `2/FtN|iڬ K6p endstream endobj 4 0 obj 3802 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> /Font << /f-0-0 5 0 R >> >> endobj 6 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 437 317 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Length1 7348 >> stream xX{XTG{o?hoc |cCKs>ނ`$ת21-V+oZߒg#@nO}7mvjxrV 1rYD񰊻V>ha9Q.2 vVMldj]X zQ@YmhdŬb1b Qn4vS}\1@JȄntp9C?Q -rͷvP&8n ^^}-鏿2]>gE2-vok1̤13)xa%H"D>5cKmRO9Y[ 8aFD# P=LZ(sbnQs讂SI2gb2^JvgB"J&iYU\AXqcG=qerWΩVd[_&?{y88ㅪ&?/~W p}Y( hD: HIc9AoGgѕO?ÀW JЏS9:i>j^ {~4G332fdr7FIoJH-`;4 `,2JFȩt] έ[FccYE֚Ld"ɑ Q]!P XS'\ Z3݀knQ ՝z}0 S&3?˃HYҎo|`MM_Մ6/ \~lg^ɻ×#z;<ߜfμ&^9\2{:ir+meKv6fy7!?+t9٤T8"M7N0qb ӡ&noK[<̵r|+mjs!n ԲkM,SY!UUjTLZB ռ^ᓄ$t98%3}3rug[JF)@K .C9 9ƅƚ\ئ5_0!ߟjms}[yv ,ҡ%RU~L8b->2 ľW5^ޯ&j=kX SD z=9d4~'ɆprdF(c+*MJK5L=(h\g4#ט«]*9BD9,&UZi'0!4f鹺 3YK*edUV)9dۗn'YtT)O8LG+^~QnQuy!jP AC \Jf!2w5jy@h~PSI=8?hD,ުЭAQyęݾ[# (V0#6UT>*Mլ]fEwμ@zgIvK'})Rȑ HtZ83i*dрڐq6uTpxkR |TXRrՐ/U%9m/gdb#\ʩ\Z1'yg{EɚhCWI/=ܺ9rsֽ@mb/mxܗz ^U= wvD*#6L[ d[ӯ5abD.]ۀzcITpwRr@w:,u.?][~eHWq`Ekh.&o\.ɬ񞊎͉U5wWFM]w])u-D@oBҕ;m0ٔ pI#De"5Lb2d< 1c,$H3| >$KJI).Un<ؘ (ed?uH?xzzb =4t9;y|?+AԼ4 I8t6wCZ9+{KW9wuEՁ;%6X@"u.suY <^8gai. =^O P'EnJ(6d' ܉a|=נfK3ڀ!4 ϣkh(/@ԉz_b5tl$ri D_3Q5g<@ê˗.-z*K,\0n ?7g=[eR >9I]j2| }J-h`y# aepH F}c)y Q߭QTb O(JI@l0C:Aް.JڐPtAKqnV$׳h M]Vf잖V_TmƂ9YVP"RVUjEIUGQ ;[֖oeFO4_689b.(D@q{9-SѦF-uhF Yjp^4YZX&(Whܢl34Nn@F7~pTB뀐qZ@#Hr:e=c=i?sgzXӬ]ʬU[u`OQGMRg2VjZ; ')Q^!MaنT1TG~;:L @(ȗ}7eRy0% GYTyR<ʔirjfNO5]YDq,>xb9tpzlO4&[V6!hR#pH 3ٔeR]%7KwPq 1b&'k!HL# !x!VC-xx\RS,،GzjQsMKSQT̶F[ oC$1 bi6/ b!Ȓ?HFQPC| `B6&(a\yB!}讙vU "мFFԄY~ϢGlOJh cA6 j3:OV_ '"ROp~)&['f's]~򸟩ΨWtC٠yka5R6N _/[\y֛^u7Fݍ7o>(x`7tǽƯgqd_c&pY['J%c2{ 4VnZc{єbB݅ /p{k)0a@!7cD_? V\Y/%^^0`}/  `V[V[N}K?n3]cUG:ڿF}&Y5 @Ӛ0O4>R+ aKc 6[Qecowo^#-L)GOiaGaX7DvqDzq$ҋ"fhG"0#.$fUo\t$#0?bj?; endstream endobj 8 0 obj 5399 endobj 9 0 obj << /Length 10 0 R /Filter /FlateDecode >> stream x]Kn0=ex%$RnX8 n_?J"13;=/<n{҃Q$Sϗ$yAjIe> endobj 12 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /LiberationSans /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> /FontDescriptor 11 0 R /W [0 [ 365 556 556 277 556 333 389 583 277 222 222 277 556 333 333 333 556 556 500 500 ]] >> endobj 5 0 obj << /Type /Font /Subtype /Type0 /BaseFont /LiberationSans /Encoding /Identity-H /DescendantFonts [ 12 0 R] /ToUnicode 9 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 6 0 R ] /Count 1 >> endobj 13 0 obj << /Creator (cairo 1.8.8 (http://cairographics.org)) /Producer (cairo 1.8.8 (http://cairographics.org)) >> endobj 14 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 15 0000000000 65535 f 0000010843 00000 n 0000003916 00000 n 0000000015 00000 n 0000003893 00000 n 0000010687 00000 n 0000004025 00000 n 0000004225 00000 n 0000009717 00000 n 0000009740 00000 n 0000010125 00000 n 0000010148 00000 n 0000010383 00000 n 0000010908 00000 n 0000011034 00000 n trailer << /Size 15 /Root 14 0 R /Info 13 0 R >> startxref 11087 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/rec1.pdf0000644000175000017500000003373311702130733025276 0ustar orlareyorlarey%PDF-1.4 %쏢 5 0 obj <> stream xXɎ$'Wp"a,K}7˧x$Kt~ I.Ik4C5Q/LyO?}$xw~WJǔ;˔[^?MMЂIǍ3̬ay~y%Eݧ6 䨵d!!4I%7bT萏7xܹAzK4FMK bU||]X:e> !x8?⍠R`! v̙]ᖼpqq` z5`ü,70/jiE^nڛcJ;}ǨgtDZP[/ٹŤ% MFP)ȥ^jrRנ49K I'p*"Mhwfp5y 1jTT!>:5JSdX:kwEyeIF]Q:~Ӗ`eyrӤPՆisEDFw]wpU,(ĒrZXK킍5Ȋ8 O)J>Vˎ-э:tzQigғ8yN- ^O=jQݺ{epJMt+Y*M"ߎjEG<#igN>r5(mM f sTuMi-w@BN%ʗՇvY%Rv+!ZU8J;PX0:AC{ ْ+:gPG[~k9{YOt,:uB# NJ+zTQO紳QPJACrkQݡPĘO#M-+l>}m9شț)&ͺ!DH @L#,QwSendstream endobj 6 0 obj 1514 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 10 0 obj <> endobj 11 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 12 0 obj <>stream x{y|Sו9IEލ3^dK^M6&˲, dbY0e 8$PhH4 t&LL[:N(LI{{zz4Lg~G}{=l $ p0OtR{zLfzzltL'#F~1 !LL?6c pk4˳s,B 7NoRe8U$tjrDY1yG+ -mLыt>V,7C;'}7KHIHm;'w}eğ ցն;sۡczTyziD&&4)=oT+ v{R9 ^H2/74; uo_ó: w 32:'?J Hkjwƒ$#D? fBk 8p]!s0S[1 gnOQmc2v~* .Jv暬m}=ww[suG*[[kKs+jk*Me%Eyƥ$}bB.6FQ*!mB`8*0e* *Un p#(>BiPZJ P_Z"Vp8 /KxUR! Cho8,mmí.--3::B",j@ ghEa.>^֚;PZN0JM" [U3%gpqܨq~sSYmvpRqx5l׏3rg.vnPt^a>_of2xkr:_>F̈QgNz]aၰ~xW6tSo|0nk4f& DiX3#\Ya #/T<fbhKZ2mQi4;{gêQc.{xfi8F}8\lrPghҪc-r Z؁"E2 D$ )Y3OmX$BiI82ak+]3&a!rJ6'éfeTLjT%2Sy4Dž_Mte꽡Y&ȥhAtfVйURY)#,j="sH0!lMʖf86;Mb|=csy\ƎYcODM+ٻDYЉͥ%51gxg5=SȐ 7ɣTZR,bA䴁 Z>5+Ԫ*T!8αH>ZǨNJuE9N>M綁1!oqlTV:()(T3]C  /;O5-täK|Z&z^>Nm\;-I*huA.0jڅasyyp8NO-<vp` Ix^@*yIq8# *6 B+I=R' 'q1唯SUPJO3=#~%A>o󻜂\X!|DCAֈZ*J+̥̏قbFG@P!XE6:CEYyJ葨%NiTIqc$v1F=Jx Gx\md_`T- t( 1X"txe.w S+ QW56v8J/8N3d[NR99cӒJAiJ]zi :"z d>Ǥ4t :S8b)aB7a; F9A!#Z`RWtNbmǸ1. R؋s<<c3 <6r H 隻\QhgUѾ=ZKq,q& EI ) i a1й@υ`<ȇ("XˡVRRDUPMq-ԑSVB= to muVC' ZXG+\75ֿ>6A? j3 CNoGap1p?2n#$5|yxW<Wta:9+5x ބ ;6=@A}wiH .!nZ4\S4~ii=?[|n68t=>jԠc0up 01aɈFg Eٸsp ~00 p.b,R,ЄXf`%Va5`- \x~ ؈VlflVlCv؉k gp-.{L!~ ?M؏8f-ю#Qtpݸ  'Ћ>¿<~ `C8;܉V6ogp~>܏N*,UjVY-c+JVnb ՚X3ka kO }Fo.I8|uլak:źz^6M Ă 3;a6ʜl8sml; e>6ɦX4na;.v+` >}l?;AvͲav7aGٽ>v?;>Ɏ؃;NOi0 {=c'ؓ)&u7‡Y%4Mv#iO']4M>ܮGr]w&<[t8eo0֡@u.dԴ@Ŷ]gTMVmN)ӭZkRr)0nGvZPе/3~G~8=AgԩvKC-[q];̽Mzmq\BP{nz :)[γ^qGTkzuHu {_8kM;6sz].xl|Wxw.?4᱇%_ÆH2]7w!Bn6Gz! CPdHdBU}BR^}7XZXCgͦXױz0b.)ƻ{|^W I%BfW-۝ouuMEG } c&QoKTΠ_e'u5 Uq$'I;MQ;[bB߭%n7a]vZpnRwױ@D Z+9댚뎚kjD4%Ï:=AF%$6%Dfv$O$o (}hL/e\lrdyฅMzqZ8:>etbcnwEyEU 2+zkT*.ȨʨTU(\*. Ŭp1+ ?YlV8ElQ8[XEEaQdXEF"RQȨTdT*2RQȨTdT^ңZQVzT+=jj]j]j]j5 s¹F\pUUd*2jZEF"VQȨSd)2u:EF"NQwݎ\2+BAJ[T*U+FA RdT(2\uݶZ&N؎H)쐲Mi#R&f'cnW}D!άxDa?MSsT=JAL`Dahi56'qk } 䱫Tf3X9CS0{<.8NQ r!vxcABR.} iFЈ/8#z4pX?8.nvO >A9Biu8q_('x|.2V$&?{  j{l4rtB D9 *6 ꢠ: jJQ>h(gK9ZcҘ|VF-Q5 J7G( TQr6GUT+T*vE9WFW)*|!G<>v g,r9HgQ'/=5ۥu2- 31/ 4k5k! E_ڊ n[nj+6l Kue#W^~%fH!ZhK7֥\⬗,նKLn}7$kxI2mo} _?_obw_(2̿&͜͟ΟK6 gv}j&_|\x 6Ɨ̈́Y8|>v3{o?L5>N?yio<=SԶͶ v )>|2s}>F]Y?YWڬloY{&ډ*J/튍0ݜ֗}zsbCC@!1qkDUb)+їx$b|$r>t=S\yN33ƃi]?V C3 nh {9QVI` */"BTi!!n!āo!FXD-/f~pBk^-958956^0]@(OMMIMr~xr w|ՇE^d׈glv TmVmWq Z֢ѐ8.~ UVK06Ʋo3}xGO -"5޴97,oN3*ʇ >CšWP[:v?-E]Aՠk_ڑCo:lej!*k;:ܯpV1ZR; kAz>5XS4Kh\6%Ⱥ$rr,Iisz}=(Ik@;r7rDz@;q:@(PŝC6?k=p*K]6c_/Vʺ\Qeh,KːUU&7ż5e̸4.asSy}/osٷlѺ5e]Ubů۳W?ioO<1wv'+W})U"D,l BL zQ}ARsin5K<ǫ8=TZ daFd*FӖ i4l6 !W勞?/'p Uɇ'v.q"umHYl~VϜ1s9qQg3u6xZkvhQ|&ٛ,WR Ј˰aIA;h Iƛ=ɷ%sY,9>u)lT/:a`XD ,Iu[NAb)PD ySrr9iduqK«6gͿd9k2&.SVn[]Ε]]M]%sMU#XE{R1160n,e:@ Ɲx9wC\@W͜j?̳mj:oJGd[SSR1^N\(Vg3R /ef>4]StVgt2nO5d.yq`5>=#c Z KMK Kqieʪ4䢭˲je[ҎL9%.][.嵋)$FeD"+i+Xy=7 BfZr[-}{~qlWܼ{:n0Z)3r;Xd9׾в~*~$d]S;3Б=11`ucwA-. *A Im%-ZvX* Vw'd"9%ri**/˧(R]SA%ξ k))V=Իw35+6ƿwuYҡSS 㞸۶m|-Og0onMfq=UI.|: mKX䘶#&&{ՐGs0p&N¤or⶟NAw~>/tE+Mckbye͒YReMˆL5vCw/z(馱=xg\;K+T#-;L|gܕ9sV(d_,uN-fv&Jf㞈c8Ɏa:>f*\|4f0O46V_ͥ+͡?]:66Fֵ)_t^ZPh\¥nK(D萢ϖH~mLȺ8yb̕#utxlloeBʜ^]ؾry gYUaJžSڥO8=R{Z<$0@HVr ⷡP*ZXT޾(.YI4:Q4Z.Hgfqs&gE"8-QgH{TK/%/iT5,]ռ"#ceC]j9quZMQ:Z^UuB n +ciGҸ_˳1yƘnIa4BUH)OaGSN p)u3X%%]9[s@x|:1.ooC}˺ãyW)f}B7?Ա:Tđ,e9] //0/8S`LQXUUV~ҔW^]9{ɧ3ά 6lM3.;_{ŏĔ 4ubs5MM )I;y]댉;K sEFSs+o BJEK"n>zTCG!:r[:YE~5J)Y?v'ϔԴyUG+xCms_TUt__].܋ߪ^ Ue1ⷪAV3< |'pu n@9nJ((dIFPQzu@$;mOL8H}$cܛg/|nkb` nx4v֥iFL-&K? endstream endobj 13 0 obj <>stream 2009-09-28T15:30:31+02:00 2009-09-28T15:30:31+02:00 inkscape 0.46 Untitled endstream endobj 2 0 obj <>endobj xref 0 14 0000000000 65535 f 0000001829 00000 n 0000013718 00000 n 0000001770 00000 n 0000001619 00000 n 0000000015 00000 n 0000001599 00000 n 0000001894 00000 n 0000001995 00000 n 0000002344 00000 n 0000001935 00000 n 0000001965 00000 n 0000002576 00000 n 0000012327 00000 n trailer << /Size 14 /Root 1 0 R /Info 2 0 R /ID [<16C3F87DB65ADCFB6659AB442182B8CF><16C3F87DB65ADCFB6659AB442182B8CF>] >> startxref 13865 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/noise.dsp0000644000175000017500000000317211702130733025570 0ustar orlareyorlareydeclare name "Noise"; declare version "1.1"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2009"; //----------------------------------------------------------------- // Noise generator and demo file for the Faust math documentation //----------------------------------------------------------------- \section{Presentation of the "noise.dsp" Faust program} This program describes a white noise generator with an interactive volume, using a random function. \subsection{The random function} The \texttt{random} function describes a generator of random numbers, which equation follows. You should notice hereby the use of an integer arithmetic on 32 bits, relying on integer wrapping for big numbers. random \subsection{The noise function} The white noise then corresponds to: noise random = +(12345)~*(1103515245); noise = random/2147483647.0; \subsection{Just add a user interface element to play volume!} Endly, the sound level of this program is controlled by a user slider, which gives the following equation: process \section{Block-diagram schema of process} This process is illustrated on figure 1. process process = noise * vslider("Volume[style:knob]", 0, 0, 1, 0.1); \section{Notice of this documentation} You might be careful of certain information and naming conventions used in this documentation: \section{Listing of the input code} The following listing shows the input Faust code, parsed to compile this mathematical documentation. faust-0.9.46/documentation/faust-quick-reference-src/images/split1.dsp0000644000175000017500000000005011702130733025657 0ustar orlareyorlareyA = 10,20; B = +,*,/; process = A<:B; faust-0.9.46/documentation/faust-quick-reference-src/images/bandeau-faust.pdf0000644000175000017500000007527311702130733027170 0ustar orlareyorlarey%PDF-1.4 %äüöß 2 0 obj <> stream xTɊA W<ඤڡ0$ s9%0 vUHヶ'e= `gYpvt? k>v8ٱf^ v)&g(+֑hN} < 73&m>$?#ݙ rۺۇ^ú?8GŇO K;lM4-UMM6-MM8-UM9/UM9/UM9/UM9鄴trg6UVU)C#"bGr!H\HNZa7„{R6+b[źV H̹؎Pmlpr M~4_cի .͊]bĩ`V{6H h|}41>:^H19,X_)`}fs}{y"T%EŒ<r{ BIy|N e ]K|< ?\ہX=G _3 endstream endobj 3 0 obj 495 endobj 33 0 obj <> stream x htt endstream endobj 36 0 obj 1326 endobj 37 0 obj <> stream xY]GOQ6zVsM0Z21~:,N;|F(Ͻs=ޕB1/[|V(<|u-y_ Gzj|@(BL/nCP1nJC&f(ܒk-SO8P7$|pAl3 WC*j(\5n(\P>BGE9>+)g=jʡ|IQ;>Q>QC{eP>V]=SX(Jb=o_y=zS/W۾mzGwO@>Dw)}c;WX M+OQzw!aA]hHhXOwWR8ݵMjw"ua5]HdXLt+R8֒ՊMw"ua-]HdXJp+R7V۝ v#ea!H`XGm:R7*۽ ev#eaH`XEi;R6kTͅ5zv$Usa /I\XBfJR6*٣Tͅ:$Usa=+I\_aO[R4kÖ %Ecav~=nIX]_kR3fk%EcanniIXZZjR3fkֻ%Eca^^mIXVVkR3jLiJ&EcaRJ%ZR4&T&5SaNFEjR3*T&EcaF>jR3fjS&5Sa>6jR3jS&5Sa:2zR3fjR&5Sa6&EkR3jR&5Sa*"e{R3Q&5Sa&kR3jQ&5Sa{R2P'5SaUԤf*"ԠL9FH畚 "<;5E/Ԟj7np_=o % WBe+y'ռwfLUj;rA*Jt%CW DWܑO2]yduZHgrj9rpO95Jx"ӟWj6r\EdITVPLeZ&EcabRnIXXTkR3&T&EcaZJZR4fiT%EcaVFEZR5iT$UsaJBeJR5)T$ea>oJ?Խf ]sVs iǴ*H90wa*'s`~9wAݫtuO8Aݛ|ݛ| &Mς!KvoAe0qm\>cjo]/Mݽ_oMC{So|>&5!<@x"ܷBWx#:C#ktϿ6Sʧ}fc;O)iFlr)*ivB`ʙP,rf+l 0c6C`LP%Me;&kxY%6\Dd6 $Ң:VDV4QʞiL10("%#e[ddtF싄l )Q2^ Y/#tRW:*D!tx P::x&c<͑ѱBn"7#slj[9836 |VNerM>): (b\PQ>>+ȈR^ABk;XV .T '%_X1 `ƒEM$+ʃLM _l~8|ɺ[U6Nm$Kvu%@ >_>_cU/3Ur^/s㔞op_p^rcԞڹpCڭpT_١q핟ؕr׍_pׁ_qm 8>{pW}ω3JqPG q Ƹ>=kcQ.AWt0G[ޠ:cmܰ-l-j\ .h\#fŜ;d䵜[.ck\;N:7rQ\urHDžrY5\yFs uilZ.,=y"-p>N=C8H+מ@ڿC- M:C MA7i;/B0V?0ݫ{ ,%{;AK*Uw"ֽ"kI2Pн}{Qw,ѽU{!|;ҽ7';Y6ܟuo}׽tϺ3+{Q WtϺI~>^Wu'+{BZ.^ugݫY6t{[.^uGiGҝ+6CZwr Kj 4Py]tdžq[wdt煨8q]wVtݱP;Y|ҝ utb+`'ݩ`H0NwIw;oOw;s;w߹/Cx3 ̤;G>6N1͌Sy3h̭;>-覺s;>$+NoȲr;K>bfCX/Dl;sNc>pO;>~s^> stream x  ol endstream endobj 39 0 obj 1495 endobj 40 0 obj <> stream xYG_t1"K-@tg@I@]QK)0KLH)g3E谽TT+@]R^=iAA=SK R#AYuǨ>.(b?՝dlSUߍ]T7y۱W}@.`F!{&Twv?enQ}U_{_uGW}azL_UO Du~QwAu.яӸ: QVߪs:cKu Z|{+iݝk.qGw9iV^ͯq,$XwjUΰnoٍ!ܪ; EuᗜhWk.\iKKQj?+n갑j3 k+ \ltC:fwB]2͗}CgLze_hs5p۹28Uo%w(jNKΓz3w+dj(r2.:Gܫw(ת#ɩpnN=8nwir68Q'.Xq7*2ӏ3tȥJ:4$Yrfr(w+9pޜcGwF)\?go"N1wrpj)pIVJ.0 _(A?I^C)B%?*THH])r }6}X,>pOK- Ba{ ZLxބ^,K,荨!y/ʑ.:b)F=E,(Hx%#I|#iﶴ$IpݘU;Ӕ uo/8SN[&*K@Ez @Ϡ3b<>chM((j$4ó<$:BS<8C){όt RdFx< z%2#7#|%2/JX`tǿˎ)3Ф'R;,8>KevTl|F K6A}'.c"; uGXZ$*u]XV5JuY\T'uZuUXR'zuMXNG]uETJ'Gt[a)w;%^PEsF`_g߄xMþζA>ͦE>ͦG>̖K>ˎM>ˆO>vC~fG~nG~VK~VN+&aWL"J(eo1Il+ݟbr" S?İCzIa~= Ŵ/$!Pv;!ϟn`'@GW0O0c_O0cO#0CN/0CN;g61#NCGV1MO1^M[1^M_1Lo1ӞLs52⹳^Lg52൳'u2୓'2୓2s 2c(3S43qΨf+GN7x'CPOJڿ_8L}??m~_'2 }d[W4`ǵ~ظ l:qM?ȶ5 X`۷ma]_n6mjY.eWMAvl7u|ڰ&(=mWXd=6 2^}V [hҚ #Sۀ y ٧&Pj cm\d=~= 2A&۠&hm|MnxMWovMF ;\cds{lalM]Lm M6A1o'h1&>FmN&: {Whd/ me\ML a6A3>.UAUjdGjmhPM- *OԘf Ri5&ȶt׈r ndc#ml@M 6A־/?} Խ6WmwA%A׺& :9A 'h\s }{no~Djwfѵ&)vg 4 r]7AѲ&hҲ6AZGAu7Ad}AҰ ? +/AiWx0 WʿdfAӬ>*A&Uz@JoS} 2S 'jT{L}oOm3)~/49Td\ rߝHw@{)?π R_|:+`?+ _S_#1z 0Gxc`-'(֛OQÄO f[/>@и^|m| Q~^-> stream xE; 0 CwsA;JmSIdS#>B:c54I K)yIG,QtnLEC^i( endstream endobj 5 0 obj <> endobj 6 0 obj <> stream x323U0T23M,rLLQ9@E@&L}BT1i73@倔 r2ҴI endstream endobj 7 0 obj <> endobj 8 0 obj <> stream x3263Q05\Ffz f&z 9 F`s3dcdgTB!aZBBO endstream endobj 9 0 obj <> endobj 10 0 obj <> stream xE10EwNcoib\B ;p- J6 f\8[2[GG[ss0ӉH sf?\&fZ endstream endobj 11 0 obj <> endobj 12 0 obj <> stream xM1C!D EPNyI:^tT-~]QtE+n,wlmF iF :"s/8Zݡ5< Yf#,)/[> endobj 14 0 obj <> stream xE10EwN@RОW4nIxVv9Miz0(ȸ@Xsoaz !K{ 6y  endstream endobj 15 0 obj <> endobj 16 0 obj <> stream x]90 {umׇP4{K $'>c6h<M`l 95pbqW*ܶ /T ,%T ,.أ1moaø_ R9. endstream endobj 17 0 obj <> endobj 18 0 obj <> stream xE10w^'%=.Z `vQUXWQd2&DS ?_Dnl]?Xt^Gx- endstream endobj 19 0 obj <> endobj 20 0 obj <> stream x303T0\F`BFပ8p=9 P]zp#L-LP9 e0# .4-.ws endstream endobj 21 0 obj <> endobj 22 0 obj <> stream x343W053S2p r L"9 sc=LHC , endstream endobj 23 0 obj <> endobj 24 0 obj <> stream xE10w^*)=.ZA|68$ ;{hk0LȸHD=p+셂ZN,z>m endstream endobj 25 0 obj <> endobj 26 0 obj <> stream x347W03V22M r -,P9`E@L}BX%T9\=*RH?D endstream endobj 27 0 obj <> endobj 28 0 obj <> stream xU11{:\c)J !TJ8O:dzdHj`$;wZE} kEsTn Hvb9u9oՒ"Ӫפ?/>d[#KGV46 endstream endobj 29 0 obj <> endobj 30 0 obj <> stream xU;1D{:6籴J޿ A4Oa Nr7JGR%ɛ9$ ۣ%'2}^꤄>&tX|o^%S55~=F[OV|)7x endstream endobj 31 0 obj <> endobj 34 0 obj <> stream xUR;n0 s X[:OCz7D,=QE\GzUjބKuC:dΣp(: 'jy2.⬊Yn2{@1[n/AjzNrU>Q!G+|u]rL!o't,Ac(QJ%ALƩU]pfynWSǝ}UE߫ՋOk6ɝoͧkǫ1w9o endstream endobj 35 0 obj <> endobj 43 0 obj <> stream x}ypcy_"x 8rxI3CjwgI9չ'%.Vel+ʑ*KT[Ne;JTRJm7>cvvE;~qjL,E#Wb{MBdْORpn}pom$黯E=GHWvp[0p;./2vwP,T,'kJx/zgZBtSzq=L[LJ![~ z2_cA^kuzCd.[mʪjGMm]#~L7KZkI7"!PZ`>1-Fw>qL5NLD쭮Dp|9\h{:ztWٺ+MKѭ{z FtweÕ@GO<0ڗׯ{quԆ~kS.f9ug#x.SʩHlܽ˯Zv.51)'|_2bEZݭn1L0sot^GqYz='ICj:Vu77 uDK:aFEA@fz>!Fu2ATtjѦnm} 6 :Mb.j.itM[VU`:XVU`:i`:i`:Ŵp>q8)EmmmmhC"}oq8"Fjb#m18K}M؁b:Jt ؇܋+ZƒRomx-~n}F6ҕJcmik<0_? ]mַG;k.ȍ.ϕ=cSHd_YVʤ @qj^BoM8MԼ3-nVPkƇ=tvw  1V#- v^AeU5٧*Q\6}j}G}Wky'LA r;p=vMʓ!#>B#@! a>2qG, |G, |Y=#>r^yQ^*+ҞD$Uo-<@@ 2LQ4u #hp4F`Li#0mF`Li#0mT0}>#JVl#!h#v8l7vxl7vxlW|"›P)|jQ"vh a1Zc1O+a1\KˁnN7Tv}prmDv.*ku=~ѝښOέO>C[,ⱸZM.m.?z7>~~!lnK/ɽ/oV7VZTJ4 W O"}o[zUhqM_oS98ԤJn/~f7@K*[-}?T˵օ ~)i(3~kẵ_Fn)_7>1yimaj$7~HqXZx\D8=VHaBQ0&M p8??rU}l|Rۡ/j4K ~g#*^K4~}iy_Wט4:L|kRgr2l2x:zQVZ\]ƨMb"LJ0!LXaB0!L@ (6<pJҡ TY *uЁs?,T Ӆ#zDx';?A{H)NC4NC4DqP2H -F{0<"EaEéI7T>x_>L-Fprű,5m@ ΅A|~*ALKlQNVf'D~SbvDs̃ҷRKyIj>,/3G^i|qn2NT@6O A+4=OgF;:P KBfz.bjfS ըbŁLlUUUi6HEˣE!7T4;>Х,e~ֳ% vU5?4ë< Z13.*] .KߥRw)W +?@r@zf}Ugf*r31u vjl8Njݡ>lwuTJ޺_;/4Ɲ-lї)}[+ %vG/2HӱEIjPɼď+®eUAĂSۀUAr]r]R4*h`U-pv Z3W`@8Fk9fRG[5 1ݧTʎV @;Q]amMDl5@T[ E¢aрh@X4 [ V0 [ V['BckH$nnd\7j 7j 7j 7j 7 7 7 7 7 7 7 7 7 ROD$nkPHu 1V;kյi)W4W~Tc8:9VOa>DϲKA_S;5iޙlsO4^s~avW6|SEs*OE m[{Zsf7tomޜ診{#knHѸmQmm[޹ xs\o.Yv]ޤO=1Pbu8L˳Cgyl|RSW?;XbKXmA|kׯ'@ Z}Hi#4*+nlUG| TӁj>ૠ%@l 3f ?3@l 63@l 6+ >qC ʰVb8*i5X`<;em<ٞpTv,|B/yƖU V}l>P4q{x&޳g;NKIg'Y],,˰Lkp.|f1j P:3bΌXgF3#֙p#3Ȭ:3b4 QA-XuhDeJ:P28/&aBQ&a& @@A D @,:##? ~@#?p#?p 'BqD(py1"R9:k/kh]z~f0(ǧZs/NŮ4յzsS }7NIE{4t4k.'k*N؄Pk y;{͕#O_U\{_mj4mLf]GӾΣ?]4 䴿*O*9죻!FZli7{gmjo*J_7:-Rˏ>HOC98`! A|@*up<P|@(aP|@()(;EYCZ)B-H_zHvvi5%ɎSOuܚ-G_^PW1ϊqCYxyM)7B~G|UY3+sm[_.VT"szɍ7V*n]k/UWM t4g/IC+||2ux\Ӛ4:fd|nU}IoBm-w]]KWuXri~9y>pǶFvPa0JtN{kCznB_a5_;.t%=G![ѳxa:,]L! >m@ ކoC!Kؐ%l6d  Y†,aC!Kؔ,q>%lД:Q[ ]cnnaNpfgR|蚜{{#U9{z/}z%ҧ6f'>Nw~K/fӝ?%+J7}:ٖ:ƟNmnmnxnmu`ݶO'M>lV 6+maafiaafXmuaf 6úͰn3۬X|"Ib]/ a00^ za]/uº^X zODX MyN'^9iPlm;j"ʃ;|y5W֘[IS[Kz1eV if*GG?'#SUIyf«_n_34:⚐VzQ;uYuKnWYMnkƮnWOn^70\,ކk34RވWa0N%8ap'2Ɖ DqNX2L?3f*GQr*GQhuTA(P9A2-C1srX9`9,0w;`~'"݇B!C}H{މ66veϡ}>7h&>[ ;pZI%&aW'z^4t&_96Oo}c"WKLU5%=;%}:qӾcG7X[:,FZ;=W{ƣe %@iŚVCV{A "rU,~"zj~:NT ʊOZ4Æ@@ zD=@h4{f= '"=?9*3T|Q噺JwnF%#G6irf1`j ~|d\3y/l[{=.Sopw<ӷ몼nt 6YGTCl?|6fB^M ?gJBG!+Gt'iHKoo^= #W$%f:2$h9"^ߑ^ҫiHy2{,zTߍ~2/!˺BZr 4{c@'|F>U*?oTh1\j.}|b|`Tr򕪧.Cd0Ӓ@׀1z-i>r~h,ZE_C1ۢ_OO k~rm )}+qVfD+FWT==|D_CUkUωW%E㯉W=}i2^=(2\藷DJ^ b Wbt|g7+uƼjd^$r:ShB@P %rFN[9V\"KDr:z҅`O1"-MσNBfd1K|I薼MߖRۧ ^ J7l*-DslR>f/uw3D0>c;b.N%jj;{MtbuNA=K^ESrsl,FdieOq-`=,+7-g"%dVf.I>yOH*ŔڊocL 4tF x6+oT2q$Mݓb,?HBcL`hSMnٙ=̈́,Ƴt^αE%/7wr3rxQ^Z\#հZR {!?prJ801vW|6R'JԢٔY()NlƷdiK>6:J%J<E өX6`rt2 |e#x'O8{{d<3v (pByN`OJ.'#E`v) Qb\`~4 Mgv)pp,0PeXH2ln+N;b/ \J2`4S GLTVʤȉ9CX{Ѕ#??b~ ;e"gk|8A+8*4UKf2cw:+ۢ0-ᭌI**Y|){/̈́-ӑZdiq(ⴀ6lFAнa2)j>hRَ' ܊fL*AԖ̮7sqI Q3{:b9,HLj ڀOkp:i_ 4mgE,HlȔVMo)q$1)bk1WTRfHjp@,# JHۃS-l* 9 4&|?RWs6ʶty I} (^NNa#E%$'TP.J9IRt#W;P{cI丄tSnuL ay"rxe! ڥɥ)AḭT42$I:ib!qG(|Sh<ɢ OBE۳E9i; }2#GчoDq%,Ugv*hNQTm8Ev(y49퀩8J R`IcYD-9 }3u'ځa["1Q懠ե鵛YWnDSRKh-fdmv+ŵ TRhqC,N:6ҊYX1Y>Y&nq"k Ė R*%f&gqG6tdmҜѐZYL^HWpZ -Nbdqz&7V"3k,Z`@Z[ MB+sD^ؔ  )|.^ KT!yfO}g7g HSLx@N4@̄+TY OP7gX _S fl \EHH-YY Jd0v x*ZRбӀ,Z8̓*eIL'G$Md,H'/WI;B1'IűKzGDo1=z@5îd|S:|'#+A/i%+u);7O"C推VfrQ~hQU1+ T(Z^86Rd$W~n`,;)̡EY̒a ,rt\]'a|S_J.4+8dA!ʴ8t| 1y (NN-JVNaYk9aÖ"+\"f1-l e@gA+hq`Z>ro1ʆK<@yBa, 2Rn,(^Z̛>,ۓOgl ScSܤ IBC,JF-F 3L(82F"2wke1;L°2m k D :! %,n *'+%m0@& Y8oԺ;$oh 2Dp2$ey $Q$<-6F?6Y;q^(S{oc ;)891# PcqWQb4mbe6+hQ3l\sNTHN2%"g1>L|D$ 0ˡdxΊ[@bm>&p)r]"%l1j|qPUJ9_S[B s<+)p[wKtz-Hq]]-yn-hR*gq|PQ@>y"Y1 ~1H;<IJ ίqZOP8Q䎊:8fo3rXv4LU6TS[LsRDQL(tTb`B K]wHN. P>Iy-Bűi[ )4ڐQV$P-GM1 #}6CVy^袎gfEܡ\8ٟLOǴ=,*1RTwYqWi+ML.⼪*d𔨰} >y UW;{Lg<|R;4Dbdy#V.IahJ㺜HΏ|#*xy.b$piJ||}_RY[&yWn z2znT}iϒ r%󶂯-qHR3ؙkEɓdԉfa\+𐳢R۞3~gZE^d8=.DmGwNE3.'%rY㢮+O~T3l>pѩIպ8xds:u| z:+Flα 3ٕ{B+8n'5/dLkY#d|Xğhd=?P|o3E^)J{Vgu&l{^xO:]rΪ0P@y5DIP8յv>?:Z̲)7y'KQNx%[Hx?ݸv3ɚd| .gs5I{RPY8}OM*{Fnb GWJ+žMacWf6y-Nc%vM60YmV%%2{; *u&"؄oY  sa;*qLB~7F`<ӂޥ]g^ayZ̹]d2L>%8Mul Zc\,3 &!gαQْ2.9T7;2 !ٮ+ ax}).^=_Z € "1/>od6-?x&װkX '4T,A G ']bX:lVc5i *)v.PX($BpZbobym;{z"]w+9>!~~ 'آTR\AX}!/"`/Z$5(> endobj 46 0 obj <> stream x]n0 > endobj 48 0 obj <> endobj 49 0 obj <> /ExtGState<> /ProcSet[/PDF/Text/ImageC/ImageI/ImageB] >> endobj 1 0 obj <>/Contents 2 0 R>> endobj 42 0 obj <> endobj 50 0 obj <> endobj 51 0 obj < /Producer /CreationDate(D:20100807115919+02'00')>> endobj xref 0 52 0000000000 65535 f 0000029674 00000 n 0000000019 00000 n 0000000585 00000 n 0000012474 00000 n 0000012695 00000 n 0000012735 00000 n 0000012935 00000 n 0000012975 00000 n 0000013172 00000 n 0000013212 00000 n 0000013433 00000 n 0000013474 00000 n 0000013839 00000 n 0000013880 00000 n 0000014100 00000 n 0000014141 00000 n 0000014393 00000 n 0000014434 00000 n 0000014650 00000 n 0000014691 00000 n 0000014889 00000 n 0000014930 00000 n 0000015132 00000 n 0000015173 00000 n 0000015393 00000 n 0000015434 00000 n 0000015634 00000 n 0000015675 00000 n 0000015936 00000 n 0000015977 00000 n 0000016240 00000 n 0000006230 00000 n 0000000605 00000 n 0000016281 00000 n 0000016677 00000 n 0000002111 00000 n 0000002133 00000 n 0000006208 00000 n 0000007905 00000 n 0000007927 00000 n 0000012452 00000 n 0000029818 00000 n 0000016718 00000 n 0000028266 00000 n 0000028289 00000 n 0000028479 00000 n 0000028888 00000 n 0000029147 00000 n 0000029180 00000 n 0000029918 00000 n 0000029996 00000 n trailer < ] /DocChecksum /9703F1234043BE5C977A8983B1E9C1E4 >> startxref 30175 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/rec1.dsp0000644000175000017500000000006611702130733025304 0ustar orlareyorlareyA = +(12345); B = *(1103515245); process = A ~ B; faust-0.9.46/documentation/faust-quick-reference-src/images/noise-screenshot.png0000644000175000017500000001514211702130733027741 0ustar orlareyorlareyPNG  IHDRRow)IDATxy[ŝ?uխVon}L09>@1M<'N0 <jspg ӶLXK$#DO1Y@]X/5Dxc<ԫ"IvB p;)dGzS>A(&g&B q{-Dgb~ҟzT}]m9wOܯ,ZmكN?([]@^2K9⻞6l$xEad7x8J&q^CU2- N9]MZƯaq1a˙ᩕhUQU.#?NJ[nqKouWEa^lzfOؤh2A(w4S3ADUq6$YS"4P5MtW&Ee|DX (M9̏1'c xUv;['J:6m,KȓąrxXdA\|v3̚3GZ r^#_,Q_^Wy3(YH<٭}}c~dblC۰] ^OLpX{aPcʮxx./ڻN- B ٺv#|@$iQ?f B$aaKP]$Y2μ‰]ҩM"Ìr1'ˡ=? Kpޝlj![?hWLK}.MtcF!ҞW^ @h &Bg&yPȒ@@h P$K N,&)?sW-.̌HfCL{ne=Hh`[^p)oY jڣ.#1{NTȝ O?>< Ɇ~; EDTHY1dh|4vh<~de2SF6cƈ$9HD[u Ũ r4 {lEBdq8@]],[ ۍߦŸc,^fy<-[o:uH@ @,CU{+TVVv_|nyQWWgK/b -[O?Wx饗д3|r</+Wdٲe<3577*$Ifl6K&F iZFq1f3> CXbn; 4662~xc㹕+Wx8qDFŽʬ*pp8dȓH$bXPPD\eC6JKKj7ofZ/}KرF*++y9ydrzW$\.X,F$K3"2t:q\y=?&j*پ}{=7n4dzW4-[o|k"ˉׯlX6TU`0gZk*ƍ[G{$#I%%%c}T#E|x<9N u \ a;::hhhv;NՊdd2ㆦ((X,$I]DTUܹs9sh4JEEsWsyU;1|EtaA4"Θo@/Tq ,X,crz80*gΜرcn.3k&0 &W5yTT"Ep"^&>cqVe!OAf ChP^( _]2k'`AѫD$IXrTKj,~vYMJk#e"dv.boUhN0$L"M8q'Od98D8uR| 08KKvW[sA@I.FqK$aWjڇZvu)D&PK~В, My5vKFb6>JGH)AHnL~cOY|!?_xت{nn7//Yֺ)&mlɾ%Uk`&םL<(ݴUU?trR'M"Cg8!%> 0\:TB )%|S9L2IUWиN5'OS'D" \7# BNV?AbPe d$ihUL< 07p{_>M 2Kޱqqk{^N8_S&LKΤ$ʄSIyR*.dY&!Db1q; Z]+pR0r!L5*WF:A̪F|o*_c\$&=}4E$$IIJ4Eg㟼Qز5yOfY 1}iEƅ*0hr@n'; G/3cX cA^j$D ܷp\N韢i I}L8SN^[UU=ʕOkSՄ*>֊E̙%V!VbZZX,f dh4MMLaè UgИ5s^|P> _`E"<| G&O]$ʲl$/u&TMmB$.ssL4idӧbLkIv$h$ ҕĝsJd2<BjrNuϙSGYjy *s;=*iGYhǎvGGHkf1D{hd4ė|ƼFH$I&1c n7=Ƿp.6tFmI4q:zJ5JTt&1%#PjrUOZqORR?~ BwI7nK,a…i$A~m|>& k+Ο?OMM0m©NQζ>6HhF6Bw[nBPRRBee%#`0ݻٳgH{R?j$I20ᠦ$n B[BizǑ 7j`޽:@!6SԾ}VLVkpP(DaaaCJdAA5hdVm1>0YG6XcdZ)++CQ{~?v2%%%il6܎I1$KzG\5P'Q$Zie~jkkٻwF墠 1Ftuv)-p(5MGWW.k4 \#M&YScU$>h[|TUMqxN\.WZJbSTT`F)LnØ?PerɄb"9;fEh4mB+D"õ^ @gg'O2$RJJJ Bh*&1D0Fz4z"s!i:SD"Ftme9/L蠾~@Y)// !Dzy0Ls0`TU*cN}=ݐhjp8f/I&yfCdYr$I2L $!BUĢQ,)p8|ox@ĔxQ\g((hqC#%u윚N>bJC{NgJ… <]TTđ#GX,/ (tK ) WB0GXI9x4Y'1Hu:475uߣ RӇTU^rK7j4d)D4TL'sTJ(ޞujRRRBSS@iFvsLgjsN4IH6{j:9d$,z<C}Խ3Y^ƤI8{lέ-CNr"Hɸsv񹿐@0uz,Wbd P^^=s"e s}%rs ^}:EJ)}u0rzYY'O4~1Bh";P AFQ>˾N#%N vc/M;eYwq 43f 9wkdm6l'JI- u-U,B ޴'߳~x7z裚믿_=gܴ, ;Y5tBqL o-SI8q" ڵ[W .{o0 FB>j%ihhh*)SONIb91Ҵ2DޣGk ؽ4 )DY((,d2aoߞ־`зaE8κoAWvK#15߹$1m ^vVEH$bu$ q!^|yZ ˴$Qv#2wy'>m۶Ua5mHގbWQZ(c}Fe8{NC˅9鮄a.Ԕ6% aVTM_tL&\EEHի`ƍ}&(_\ą fB8H| $$U D6[rQonJ(ʻnکd= ̈́A"1sF"LK$,V+͖Jѣٛmڃ!I(v;E!DEXx۪"9a20:{l|1p91D!74r̴G1cȍ13QLrcL#I#e4fSlCO xHuCOd6?j:xaL db+G X#g&q]0`7s# 8S8o*daf rّDG>Rqśf5 ]L;'j1o#;Հ5X~x(9#C- 2_B/s5נ( UVQ__<,w_}466rΝ-ܒ3cǎq7}fvΝ;*ip=P<<<YeeẹSNqp֯_Ϻuزeˠ{1 F+3sfW4->k֬əࡇb~_cǎ>3jM{ӦMG?=. 6PWWy2Omϡţx7BpWg^O>X,Fcc#?OXxޓolذ׋eXס'E#7m=ܓ5n`ժUl6ϟO[[͙ך5kfڴiTWWyG,ӰOnδ[n~c2>~ɒl#GFeEĀ5N=B4uߴO'g}>i 8KcM?u_yD#SOg |2zJNJn'¨`9;~6pUğ ,>ƴV@j4w9X`~ONeB jwg %ys:Mӌ=:wX`!/"m!_?+ jh"hm[cs!b`XF\A9oqC'5Õn7H`0hE%7c1dblg0F aAΦ%eT•ka r߹/_8Te/C/r0`ScO0IENDB`faust-0.9.46/documentation/faust-quick-reference-src/images/par1.dsp0000644000175000017500000000002211702130733025305 0ustar orlareyorlareyprocess = 10,*; faust-0.9.46/documentation/faust-quick-reference-src/images/seq1.pdf0000644000175000017500000003102511702130733025305 0ustar orlareyorlarey%PDF-1.4 %쏢 5 0 obj <> stream xWɎ$5W"y/GFBH}c\7ĩFBS><%7#/QNX[%^FcA|{"^K"!*I% NЌpC7VⅤQ$#6Rة\㇑i(s⥥Sl퇟_bCAG< Cnq[B#0 Ƒcoo,?ޖLN-USkɣpQ9\fħ0t42褳kVbJu))2png$JF^֠ 3âFu_h`lQ/fP4dZ%SL!;ۘ dχ@͠SL!G$PNʔ 2L9E7W.TNp|5:b鿻,} sTzWKߺReJHJt C]*Z;Cwâ[WD6lKrNf\ݕ5Vnn2ll[؅}V m*}eP፿!v/fP̍y;o| 6e6-~# jMtV7\TjMОx@4BVfƹk)՝z*,bh}Hm !*M~E6;dc0Lot̠APņ5:fS5 E!Pgv͠.| oaf~hx wkc8Gh(esvǛ+Ѓk.:&:0QMPR8b@!9яciC4KHwyj:n(6jbٿq!\ (G xXom#¥Yl<.]5W9 *TfmL*rW mNJw:Bv|Hua \Vx%q݊NUIu >(ˇ7j\]twF(p9LxNwI\f,2  sߧ^O1Q\|c x h;tjk>9%}Qt8t:-u6%5ڔ*dC \#TJ.4nOk=5:iLuߍ5~?w<# er%&`ǔ1%Wc 79dg{3p5jBsЙsLXnj bN zycC[?__[[8l krboa;l d0;s: :endstream endobj 6 0 obj 1284 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 10 0 obj <> endobj 11 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 12 0 obj <>stream x{y|Sו9I.cl x‹cmM gK KF `CI(I i@:MtM2.[tI;oPef~{'K ಮn {tu*|,nk]1^~ӵ5,,.>f mp o¿ #:X\A;OP[7 <T}&.Rrm ƸLsT^<7NJ= d,(چH>HrX nAHP e>guMM#:3]_qBl#>}rFx ^cM{?w <+p*<|6| u;{.G ʱD\%t㰃2\;]SI|,KrL~(l^ib6n{KS^ˉ4R{k_oOwך՝VXq]{2GkKsR{ TWV+[X`oH5$'% z^1VcPZJI4`T J0( Wrډs*Ni8$4@Cijg[,)_KK=/2͕+ITϧBkEulL ͖f1'L g; ؼօ$Qvmm+-i&[Z&hEFQ,RJ]N`h8mq;rN;NLM-ηDyy.FK,-bIjMOe Ma} w,߻T)B AwbaSSCd881J^ujwFA.Tu鈦^e$ 5ZrSb<  4?_rSvJt|uR`(ˋlPj9kZc-ZA fGWDTWRrFLJ(6ICa1E?ͷL }2@VBKa^;PH]&Lr%8K 榦 #i[=9$@(-+C;1j=^QN=4Dy喱hIOɬVoWEh K-om4 - ,W6ux Ebj:s4ӆ+IFұN5Di [cUPEFr}h" `ij{PhDR65 1n2#:_h[T>~P^J涘4T%9m}QZ¨YPSԶXWH+IR,sz-^7)[N4`E?e EDz82}b4"6E,MQ7*tD7Pf`0Z)7r'LfG':5 'cMP>lYT⟅k~+!ΩATaP:縉$b=de*6[F>Tq$JTt'B`ެd(^XG[dK$0NEsAuPOxAz(a3Tl߱ *6BJ2G)Y1-#~ e( V,)Pډ=."aB$Q QrH\ǧ&_$'R92ml.jdcйI[mt R҆=z0!osE)CM+,+ >JV?uuEqTJ爜k<^GNK SK$쿟 kWOFB>&Cp=*?0Yuoi6~Op"bTHtȀLȂlȁ0rasŸsPs|XŴHKQ 5A=e4bXBOCvM4[enuAV iM6u }tiw£n_p1~dH%10<<_(.8@7M8g+J-8FI}·;4$a/M /-4Ayi=d;7Mp > ;jv{<рFxLK0ɘShTLCtLz631gaΆ?hFqZ q.< K#cVmXXXa.p 6b6c au؁! qU؉q va73G9a/a?q7FD' (0 7Gяwq >O>>/1x^ 8/K2'/k:%2~_ï7 o ~ ow=W>?;x?ş.;</EO-?x 'q1ѻ@Oq,%DĒY ;42X&b,`3Y.lf7|6YX+dsY x-` /x ^ERVUX%YUjVjacl![b5һRĚY 7#$gmp>u-g+Jul bݬeX/cl= l#dN6\D6Fy&(c[XXEVFvvqnc*l=l?;eA)v=dO {eϲϱGcq{=Ş6Dފ&ZݫZa N/ )_lp*eBtEF} 8Kۏ?ҠD;ÆVU*lUrzYACjVE( ˦52ͨeeh0qGN226M2ֵ 9:a-rahW=񪞴+xе6{_Ǽce1ݪWTTK銄EO.OM+Ʌn9yMRW?J_ )'\#UUHZGȨ 'k knņRt)Br5-ia.-<]Z"&D[Ұ4=ʐF!Q^(^E z#|D'\adzУ}D5Ym_~r9wh#- SJh !qbhUZT-PKoW!zɒjK}c @X^gbXK&dckXmo(qըW RjTQR~.^֥kN~5ztDH!α1'M!5Y[ ]ޑQ'T+Nk3MlfA;51w1w3"WvU$gF$gx ; ,%1,$ 7.v&!əJ^.0]TR6*G'2}t9ʊ -+5d* UkFCP} ThHQQYɫԤTjR*5)VMUb,jY5yV>&٪Ijmd&٦Ii1i:læi:l*MGJQt\KJQ騺gG֣FQzjVjjjjk5ɵZMr&N\[ti:4u:MGNQtk:5zMGtPܭiJCP4t\ouu#A'c۔blui-} vV+SaH$(iUH3.I46j%mItG~y]ĉ7h#.EU)k:7ԏ!ikJԱU[f XXtf+Jf{zhRp(aػ5Cd_9686(2/J;ͯ@ d&> { KÒ' █w']" DBb>/%f/jb6UPcuIXckS3*la@L5fMJMiL5fj\J+&*ֽZsP#Sh\ 4R+5߰Rj=LLnf|mZJ)i"5) 9SʠZw7|ܑv P%4DJ z)i.lVB~ު|N1QEx$ns_h$枘< A[ZZղ&=j:_ceZ֪eqķ}S][@U T@M ƀ&^u1P p<:,ߏ~.!\U19[<:/:/R. . l~0?udra~;.l5s\;2|&uE|t;皿<ԫyj)iԩ4|䪓;O=ya#''xe)/1/ȍGDY4z:V+?x=|yvg5>ǎ>yOOӺ# ̝1p8yO6;h'_qW vd&f{ ~zfd\cd͆.)J60E:N`xg|#$fJXExɊ3dۙLˮ|!j kyΆ_Cc仯n;tdk,ń=!?߱%2Ðeo' CN0ћ@}aCt}׀; yUjK%5:?ՖɎ?ًOݏOn|>|n>[Sz fÜԶ xĝX^wvd Ó G4:5wd`l+q[H缸"؞7 o3Q7x0 \c5Znuئ.3`:02jJ=@f <y瓒t3a,.WM`0p L8=rp;{CtY,V5u t,< mHOߚIR Ab]_N1Ɓ--[Rm[$V&ӟ2ӏ|.-˸d-*k>)/+Yrv^K,LֱykKyeͼJtgA>apγ9~oR^vL|2 8=bslMi7ݕƥJ϶Xggχ~yNvlΩ5_v=gЧ۸sΚ5?wQO18x>|z,0p:Á-3%RzQw1#YhZgLV͕ KXzUS|s "ƛz&s;&~W gŻ7?UԽgqJm)84ٔxכ74̚4)cM}C b_݄۳U.lt<qqa9-3Na&8f7eP4o<;󩶛˷: 3f36;)cUKt6F -sڽ+w0rйDZw$p=#W#\6gȖ%_bM>p'oe[mmId9.|[6YXMY'rnyW4^H^bjE颷"iNmi#ߠ:L-bymĭp,j \"GfXڃg:} mq6|݋zkGijɻnZ/K9/.XxYlkYl{4v(DKHd qq,i`@L)( rlDcFgiv'x+@͙mɃh /){OIoq)▓׊:|-KVx\fO|-*džLJ =!{runmc; 02=n3vCK7<|+g8d2U.tFSp@37Tn8ft1ek:yokccm mE|/M9s,L](E6%7X2x vs q졁y,aӪ>GkQs[zzLX7- l gVgv{vnw/==fXbgʬdfii2AaƼi&C dFh;[,a[[EvKYٙJg#Y Y⅝Y*f/YW;[2gYEK3_g:՗Hj5{Olw dܟm\UȳLff مtv h:^?o1->mU<&?]^E T%N @Eʙ&%LHFZZLՂv)&Z_1iv+COѩVK*㪫j8h륁Ϟs,{Ի:Eek"#۳>WS#\·.o[]g.7[m*ZZQٸux÷ܕޒr]GI}Q)aWĂO2qf~S~RuAL'ItKrA_6 邞NNŐ ͋ iM[y!}+z8j]Vʓp*pq k JA9pO 7.~-zENBŞ=Է^1&9=) Yl'VN^8bhGL.d9 endstream endobj 13 0 obj <>stream 2009-09-28T15:30:31+02:00 2009-09-28T15:30:31+02:00 inkscape 0.46 Untitled endstream endobj 2 0 obj <>endobj xref 0 14 0000000000 65535 f 0000001599 00000 n 0000012240 00000 n 0000001540 00000 n 0000001389 00000 n 0000000015 00000 n 0000001369 00000 n 0000001664 00000 n 0000001765 00000 n 0000002104 00000 n 0000001705 00000 n 0000001735 00000 n 0000002336 00000 n 0000010849 00000 n trailer << /Size 14 /Root 1 0 R /Info 2 0 R /ID [<16C3F87DB65ADCFB6659AB442182B8CF><16C3F87DB65ADCFB6659AB442182B8CF>] >> startxref 12387 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/merge1.pdf0000644000175000017500000003256411702130733025625 0ustar orlareyorlarey%PDF-1.4 %쏢 5 0 obj <> stream xX7+ hg(eRO&(K d}WͣXl0WC(z~ŷIɠd}y6i#QXim pVIu҂)kqLtR9: J ֺPDN`&5Q\I\|1P) 7PZRR/ElGY>0^Uڳ>>WN4}hGj%֣+&buu8hꠛlUCŲnꨈBNWU~.VNgQ=DpE3z οT,H*M` d'Ԑ m;5SLX;'C ;1D 0_ǿ҂\p˱NZ0ʹ ?D02b0cG-Q* AVY79K)Lah!eUA죬 *"Y IpK;b9T|Ss^aTѦC\gy quԦ:CZ#iH@mI*W޹IVG_??ӡ9{nS4i$\A;[Cku+u\s-FPGqu| D|Dh4m"qxbjc @i1HHPh4t@#3-IP^$H}J;K(TtQ,ZlimoY_!(>k ?Ecwy;JQ, lw6BYj:T!Q=x+yrt1׊&>q ӵs\`]-E^7Xv {wxGP3Eͣiendstream endobj 6 0 obj 1251 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 10 0 obj <> endobj 11 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 12 0 obj <>stream x{y|Sםw$nl7"[ -l 1Xe,Z &  d)I if!m#A:MC;3L3NgBיvBatI1w]L&LgG{v~g0 o}T.uVWAzltO&Mg[aaEil3zVxozL_ZNBEoV=ԍSEr)>*OoQ]$7nRn |I1.%:Pad vy͓Aqr׷PB; a-ڝ =A'(J+I]Gtoo^Ȅiyå[ߕhϹM2*K<tn{q珰}NAxXp'y_v&gih';o|4+!~g~8C4j_lw 8D6D/!axVU BCLg(|vSk? Sz<2L^ v cW}Bncpwuk׬^չֺ|Se uUʊҒBsNF)%9)!>h:!wXBx8+tvVHe*\*U9o 2p#(>DP(%&h(:,B|E82(D/xur! Co8,tD;g;ۉ6K_Q&Z&Oci3ʀv,;$rEhh]n6eT5,:-.?7{ FG-rwESˢK,%CrK{GLڽA}]$F"E}˥woq5"{ A'wviófF,2{:1qv< =/ޝuqjsCw4}(+r .KAC^A`㚁A H}#TάPk` K-b-RLE>lꊺF-]љPXL ,iBuPHQ-k~ˬI.$dH@qjh!6Kǰs<2ev:F5LCm/jLF3,xJjux{.jhF[j],t+*H,^kPqVUqX<7J3mL+:i-h%I\,1{-74( ;]QLJX6rQcQ`y Bp63j(2R2Z)T[̃5]"t*T)/S[g^*μ(g,Qrjg+$_H1/ XDˠe\:z$$^V!\JEnj$gFey])b燚b¬;+1 4Ž J1Y(Z;xMJ-R}R gMr*䍜湵f<77yͿ6I5 }pxRVL΢Bܨk[)pQ **A6~G<$!Tvs}*6B;A\ PQq"Tꮨ8 *N2o$uqTCDQ]Q1hT*i󐋗Ur@5۪b#ro8tKVq4薫8nݯ$*NNg0tZ.B`* O"VA.CZ+eZKǩ-$Dʥ;eI^7- KUU +Bn?*@p2t^x8$Ő)$aDy]z'Y;"* ^*6"8a9H\la(q9‡*}*iGlU2C FR][Qm 4gf~X4370aNʱ !Z%+eTtxzRC^fBxx+R(с=."1B QPrH*_Ƨ_"#R92olw)jeЍL S 1ZÄP`, EF((X 9v{t "nq2La/~0>b4m5w9Ϊ}[O{xڇiM R! !2! !@.Bȧs_PPB|ii?jh$,& 4䠩J:h[Ifn5VXOkj/ l`+lO> ^> “0 wȐ{Q8}x>߀/po_o›o)ކy +p=CCop єZ, ᚢ %L.Bin,|j»K"рFxL0ɘЄ阁t6\ 1owhF p1ZKR,rJ=|XhC;`-a=6`#.؄7،-؊m؎ĕ؉] q5D4{p=n^~:~Oq n-x3V܆t(8G/n胿 c'g/8OaC]x Nn~?tF.\܃3?w>܏.c>8OI|Oc|'>x <_9`exYY|UoY euȖ嬉ĚY `ì>e,Ϝr#O.ul [ֱm`l`l3nfCl+Ɔ07e"c6μl;|lYM)d!fbinc;6O;>^e] ;f0ˎ>v?{=>Ɏ)v`f18{=>˞bOgس[UjSs;gZj4p#A:]rfXKޠ;21oIp_mn .娒WС U@Q;35hP\ߡp,a<ױsԍCFEW ]%^Ւ..UgU̻=a<ۯZ ~Snj;>9K\=7_8'gdGZ_v~k~~O``r\:N{ Trn< +N /7(:6!8_ A%Uz,wC7[x>>MXH4aiH!(CگZQW=|Dz&`ad~Я}D5ikcfrz =. KJo \q +ȫz*y[#Q/]%K*ůMd¢O;&C^RQ6vMx%+y&DB%d,]v+]ALU $A|krESfbdDTɬm^τsE \ϸk&v E%]|sŘޘ*u#1~T]ndM;d|IKP !ɘj^θ0٤&7%*}!G'2tĹƼ*=j5d jNCjPc UiHQQ]ָTk\5.6Mb4i4~6M?٦qigٮqk>k2 &îɰk2욌MF&FQɨd\K&FQɨgG֣NQzkZkkkk5zsƹAܠ۠hd4h24 MF&AѨhd4j25FMF&׹dPحkFCP4ɨd\׹m M]JI_vYܦشCApZΤFԼ:~QGdjH?MF|ISNG^ynZd[ܴޡNt'ŐuD}]MUBUkm|VM3T GhthRp(a̻3C_-Ĺ.86(2/Jh`_A#xJ6OHH$=lUu`x\]D?,. NE;]>@$$&_|~/}I N9$P* c511P1P[{mLDm=hl1>1Ukb6 Ĥb5kք8bh151}j4bkbk55>r #{FRyS`X-4*0CƼ>E{}'9ޮnQZiHA C8uy"JTˣ~%ßO;nP߰W+C^ Z[8۩Pį*|htԹ}~\tQk_D$ƞ<I[Լ&(=b:_cy׫y㛞[ c&jc.c@Ө82,?Oq/_E>@|+gߝKWem\f)]v/ ?"4?rfxi~⅋/r:Eg7]M\]3c~7so~_;dJOK_.5_{{N9˝vqli>rfݙ=gNya^G_˘2S^lyLhEoE9-ϳ><;>Ϭk;;)#2볁g_ڳ =1p _?ǜO>m=U縏܇GfGܑu8O}wVás,~g9ss v_O6S6J7;[6w7SnK':0k3c}QMG_v9s'\Iy'^p^v'f2S1dKgh6lKٓKIK Ir-BuSLx-+>k;jŃѢ^X9?[N#;{5;jvGG 8$0C: ZápLP.+ $RLiB !n% I!Be {@z֡ч(gy Pf7=3qq<Ɩh:OUuWs~J9d}vaOnƦ-EMSWFn]9y1o#YK|,"l?ce}E,?.-b[Rw%iĝ*J_zۂVdA|௮4[OsG1xnA87tO1\+/-fŖPڛ P|&H,lRwK価)u9ԴFuKSUAvLH&7VE:ɫeX+ymMe~{!s[2bh,[[uxg>6boY]$s룃;O;kذ֯q+nM;Yk݁-Ńk}M:`xF6D=JGxPM4&YeqY#1#x.ވl$Ș4yXA@2fea^p-vrM,SA;!ې>4`TKjA-S환TM:̔i{O㯰e+r{vEW5d`[cl';9/N!2N=xgy aE6rcY:7J33 S_B?ӿgR~swtog6lO޼9V]ٺTٲ6/ھs"nj]qqy+|<%3Edu*V+y+EN zx'$Yo[+Qk#nmRkdb>(60ܳԛ]`3SU[4neE>jψlF/Kv, ,pB&l:P;T"%f$8tHʠStM™B, c/ₕf3zMz,4T6Mh7Zᰔ_Np g" t;k6wL]d>ª}'GJώ<%ٷonٷiza6L70@BFJ_t;̃fe41Z' +)N0LU+&m–&l:Mx 5]lb {RRu=||jiQֵ`Pٶt^\\bYeҎA(+tH#/THK~d[ L>2TZUMUw9loeBA^_ҹ|iWh_[e:9RR:$0CԔY23 s7kMP FXPչ 1dHL[%F3LWie=Y iU7r͋W.^ܘѼey,7[#?躡^s+U@#܎,,åyY\v22rCĹbx/5e lejU-KK;>stream 2009-09-28T15:30:26+02:00 2009-09-28T15:30:26+02:00 inkscape 0.46 Untitled endstream endobj 2 0 obj <>endobj xref 0 14 0000000000 65535 f 0000001566 00000 n 0000013103 00000 n 0000001507 00000 n 0000001356 00000 n 0000000015 00000 n 0000001336 00000 n 0000001631 00000 n 0000001732 00000 n 0000002077 00000 n 0000001672 00000 n 0000001702 00000 n 0000002309 00000 n 0000011712 00000 n trailer << /Size 14 /Root 1 0 R /Info 2 0 R /ID [<7B650862770FADEAAEA64E5B3623A705><7B650862770FADEAAEA64E5B3623A705>] >> startxref 13250 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/noise.pdf0000644000175000017500000032660411702130733025563 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 1134 /Filter /FlateDecode >> stream xWK6W9I@) E_mZؒG3)Ym"R<"rJDfT SlRR*17 ->kZ~QIS5C XeɢSLmH;!Ni8,x&*bwz~&AQα$O1Oa"FQ!ڣ_B#fS@V4U܎E8%0LX=ㅿĜyu^p)WQY(W㻗"ʣ3ʷ;7iaA$Y_!P)|3$EۣRB4b0ֶ9qQL$Qc~p/F@ƿr tĠX7]^ljPf8MWUEG6d~q7֯t:խ-l5@n1ovT"VMn^ۃ}/FbcADUV˃_ڴy {COe™ &w"WjeTC1k+'!F0㦧VR'N̅Z懑w9lp˃03@T+nT\yIzC!VM})!=8N1C,LAX5 9R %vFj]4;%WXg*ZlRЋ_Da7Pƅ bu2c\"wA TY40az&f ^:> endobj 1 0 obj << /Font << /F15 4 0 R /F16 5 0 R /F48 6 0 R /F8 7 0 R /F50 8 0 R /F52 9 0 R /F11 10 0 R /F7 11 0 R /F14 12 0 R /F13 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 19 0 obj << /Length 1880 /Filter /FlateDecode >> stream xڽYKsϯPt,, AnVfR٪MzJaTF4iأ!h|Pگ_o>$s'X]߮L*M42Y]gr\$c?lR'QQn@7f#y429.6RD%z`%gںZ{W`_@7:S2Vm%9]}F 9:*Q!'q=W)ާID@!e){R&7'gHYY|!OMD"d#XR+3SV](eHY$lIZ¶Jr}_Fţ2o˪ lw#: 3kK0IWR+NMUb@21Wv;dTv<Q0ziq e;Mqtw7v~܎5,jn@ډi)P5{Ik2t=Yzea1.?i@B(h:\?&[T)3T\(WWopF[s v(͔wh #@ǰ7YP~~\:!9Xڦ~ @_4٘Eۈ/ x~uF۱OqxU2چ ~0 s_'5 ekR[C45= ?4O ˻1iǟB"Iuu$iDXhEW6`<c]4q Ƕ㿡-gm.+ 8 'r6I^16$fU?iڹ2u} N`~%ߔVu{j<3m/p$8{QC&՗Mz> endobj 17 0 obj << /Font << /F50 8 0 R /F8 7 0 R /F11 10 0 R /F7 11 0 R /F14 12 0 R /F53 20 0 R /F10 21 0 R /F13 13 0 R /F45 22 0 R >> /ProcSet [ /PDF /Text ] >> endobj 25 0 obj << /Length 1799 /Filter /FlateDecode >> stream x\]F}_xiJ]J6ٷ$fـUT:|P)-`Ν9s x6)E<*[n/>_(<8^l;.bUvb/E*$#D GC#{_CR0_0Ol *yno~2yLBx3D `$S='K6_`L&-n CBzLJ;P1PDj蛲5emq"MFZ@93ECQW{j&>|GԏžjȫEu>΋dU#d2ާ]Z8HrQu<#2T VUa p0ۡ0/qs F> endobj 15 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (../svg/svg-01/process.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 29 0 R /BBox [0 0 402 317] /Group 16 0 R /Resources << /ExtGState << /a0 << /CA 1 /ca 1 >> >>/Font << /f-0-0 30 0 R>> >> /Length 2589 /Filter /FlateDecode >> stream xZɎ8+fs_ h`=-h(=sߟ\%TQRx$ J3T9ELInd5&#$V747rJ? ɉT@IZ$xԄ)VwZxZ[OみاЊ3ӿ |bq-$eZK)MLM\u KjÕw57BM2X.C #ytiKO[ 0Wg4 Nù Jc8S"6<)piH!*$E0r7V)bH=لRP{CA0/wBR4.bx ɻkxo "*Dщ.$ d#kY0([k Ź{ϊ[>Sgͩs^:[j\GPgx#{bi x0զiV3hH-Ǎ_\ ɧ`,WF556pT X5 r8#r--LӒӍ(RJjKU,'RB$ +M]KO}̊+_Ft+v2>` "6Z6%+#yZ4͊'7ڝGvv(S25{HG СЁ v>VSnƻo%.km-LSE~r-xh l;ڡ y-O1(ڻi%>Ġ0A%:VU -Ф`B{)v;>;A'V~~F"Gф4 YI W*&5'R/#hwS.W:5qȌw`5A^9'k φ%lt;nbɊ)L@K3i 62iĽ^S;$Υ):m*Ћy&MFRPGȗ+5KufOō\I}NH7:M6F*Q{Y"ɼi" QwyE 2Wuxq{ut:Uḯ6zj}ec"L iq[I׬@@t]d鼄¡4n)djT3 6PF=BPZ2B B t`SZi S尬y:.YlL !czgrv2o4td{򼊣>#/ۦӉ)CSyoM;֑.ۚ8253%LS[nϩ(I+}TLjIL$^)ezFf+6+Rh刊^&<:HUmQ,MU:^EH`7Dr[U)bՓqMo )t=`/Mf[sB@%Eطҩ!w0Wt}ïe虯?H =F6M`7&]P\M٢y &Zʇ%2诀]#v3QdE ^\C/l[ݲ&d!%Vi PМҺhL endstream endobj 29 0 obj << /Creator (cairo 1.8.8 \(http://cairographics.org\)) /Producer (cairo 1.8.8 \(http://cairographics.org\)) >> endobj 30 0 obj << /Type /Font /Subtype /Type0 /BaseFont /Arial /Encoding /Identity-H /DescendantFonts [ 31 0 R] /ToUnicode 32 0 R >> endobj 31 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /Arial /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> /FontDescriptor 33 0 R /W [ 0 [ 750 556 556 556 556 556 583 556 389 333 556 556 556 556 833 277 556 556 556 556 277 222 500 500 222 333 666 556 277 277 500 277 500 556 277 277 277 333 556 500]] >> endobj 32 0 obj << /Length 34 0 R /Filter /FlateDecode >> stream x]j0F>EŠceqj\B!: ߾1_B7/'sM/scƕnV-lv7tMӣZ#_5u6I}s-+M椪X6vxsO c,}shuiYCeI]3MKg_Xqݎof[Rv\gTjV 2_=?wrgY@$@9(@'P*@2A%jtTƄ.=@ 4hH$gH/A?]wO OJ_)A ?Wĕ+c: _ [2/ I I_sؙ~WD5> endobj 34 0 obj 391 endobj 35 0 obj << /Length 36 0 R /Filter /FlateDecode /Length1 21088 >> stream x|TU0~ιmvdn2$dB K 7$t!$(5]ceCqaEEveWaXv-?$}on=#Ԉ8\4} >Bޙ+iO?8%suC n ;} Һ[ 4< "?B>ke+8n߽p O/rP!ChX#%Kg/h1F{D`x`B [6;.Z#h,5N7ۊkv26|JA㺒.߶&η*ou lft*NBDCBIbem Xt>a\7 otz>UD?Ȕ(G2l+עhF&RI߾EAO|;24:7X?^7dj]f!N2&.l,.*ҝBzkkC+ӷA I7ё#(Rmh!6v: (;tuh P6yhwINZFnLw:[_-MG{c}#1t4Ѳ4rvQ/cW$45]ydXl ~g07&3cl֊ [+&&>G:!MdYL&Y(^n̖QEyGyE{GbM^QdϨ0 P-]ZSʈ-)3E)oߢB K)d?=qc?Ͻ_T>'eokrۗ_8}LN|ɻV&:ϫS xSb {dMW #(0&#Rפ#)? {YEڮO'eh!\6W7Jۍn{:9˽ܼʹxƬ(h2[x C"F ^qI⽇G90Ji7LkDRZXF5B`ė_o";zz[qf0L4#vSX3<o_.(y I _q}.*LN*JvbQ! gF&v.X5E#vcC9[2}e̺kGw{kߑkf޵~v9ͳ=+{% ?U8 2Ό#z_{iMHnKQ;ߟ?BGw ([+Bt/׎\^^(/GA|_;h%VdQ/v| kAiUEixRJ*t^p LJ 4(96db&&fRP  Unr 5:$hiI$eв&"j>5K3ьr@Z3xqll}"ȒK*#]7&:H 3 ] |uU6qv&!mYVpdF^2F*yGր:-IA񤆉kQ-SLC8T;vJ*r"MV+ W?o%c_Ҵx<?x?o#I>G^QJ:dŪ$шCB#❺Yx6G1lcu j AtT()P)CHiDk9l?~+__Cg,ο7RyҘ0i{/P'Ȇ80_'xQdlvd3Eȹ; ؐ9dڲ1CZԷ ftl:6RZu?j 3SZ{y)QEE;NԷ7Y֜RM* ˶Ɂ*nynv'G.gxEҎӓ7$惰e3z}]y՚kn2oQfWnp'0g}/=;\P7N4L4,&$ yBh~^q_=?"&za^ti(?Fm̫YŞ wZ=H`²ݲ˒,{-- -t-c]g "<䅃ޝ`J ~9Ja3NG"<Y`h7f1LBڳst#.uELj%7\ZwdoD(id&GY- ʎeC6fdO$$VDЙL>^:DCCqhR6@NPR~;_|A%̅h9Y2p'rP}HPI15SRTU I \N'DB r *q{txÈgkWżٲ<8xjys=i؋FYʭ=oҧk奟7\TsGiu1 /x8AWKS'h.^3ބ Nm nb,Y^ޫӥ5ҴIe`od`d5(F'E$):ßq_ܷ8%K1q/HpZS{  i6$ aD3Ba%z /3^ ?P`3Ƀ2dmbP$ՈMU0Rh:|}yiC;*Ўԋd{s4s^QlcBlQU+  ). "mlU=cêMm|QFy6;ō ;ʜ&!kM R: =6SٖٳIsRBCR4Ftڼ[J I%&$&$_zؤM/#er Y-(< Lty>?KW<玕Olݶڅqa?< Orȇt1A53穦h){ai80Y1 j{wRW+Sx^]$,gܳa, 書D&Bn0[YhRSi iKxԆqeqq%tMP,Xqi7>Z{vgԋ' ǵ5VqIJešOo_l=o?Լic ܻ"YG?;9)?0ߤ>e6Tl@|f g/4CF<-,{qFSS3xGl-;l3~2^aʕ񋓮5llLڨ6[+M \k.@m.d@Ai<)&pS_h{nD ;nD( oҘUդPN nIba;Ń;OzufT{#g=(zh[L(ދA&eHt9]fzw& a4^Z}IQb1bDb-^"SS~ D&謝{Oi$~3i!~bfzu~A_ 5N{8%n}ȗoz roezRr힭 o7כ6k;gk4Ҵ"_HP`{n+pLr+XbdUڊ;XmqY .WۥkG.Wrm;HͭMZz.G55*Vt&—sv,o,tOǯ7cス2gswLX>z<4soyGG']c̳w*з ]`#M=!t $lnXm4(2qAOSiA?~r^}}}S}Ӄ+ŕ+WcjxƺKܜ;hݡV"ȗmT㝎 of؎sL4J\fZ_+H1ATp]fIzV^qeuL3E+v3]Qiw( u4fގjgqhjCayD=ME]mN)gD|8C/b>J:Βq~~O<ՂC&4=<8dƝ)(WcKM/5)Cz;Uz.t^cIsl^[~Ԙn,c8XXzP6q;Rhm!p{!.p+jm':6{z۴1)ھ#z&[E9kҷ?~K;nY"ɡa MrX ?钹-tø q?vv|܊ .Y&=툾{)!jJ$Rhmf,{^=}š}q#Ot̲ϯ^~ȵYbN^ 9G1у'۶w/ՙ()ާ6;HkS]s=ar[j kDy?a0jMBhhԅ0~~G'|fh0zܦ,7F!cq|IȍTy9!+!#,ENDAQy^<_ 5 xsrsy坔KgTg1CmUF)qR<KgsKK ӧv5sޜGtfofMΜZW^9{=?2+ީTeqiya<_ooonXs"Y9Y=fMQj"re5fFyt;{?v>~c$,eegp~y H|)zJ5 *DKG6zOWviz9$v(Cڠ7@jW*'fszBl%@aC Y|48PP 0>/n:WSu@г)Z8=nxI%T4[ܱzeIoN>W~F|En%ERe Ybλ.0:uP"h(-3_VA0'QXh[TT0 LxE2e) ȉ1 DAl0EI96et]@V8  qXn:j;j Is %69EUѦ5'6ҨOooC5l4+񅿿F;tx JqJwCPt-m%ɸwd d]bv ~ .$,)%4BmJw!|]&R;7m6CԆARA"dih4Nc TkXpi|-ំѹ#u`':]HKW+.ڏvY 6ifĩqKǷ1 ?Iۀ#V\ڷHs;4jur ;-ߟLMG^0SiI@e;W.@y(V LMu--q%Q35 $e,dDhiwZe 8 \'NBFSAm]-kc[6d!4a@z u8Ѐ u{QvoҞs1T3N9MnFV`6vL#IBPSЯa6I;DdP[5B= s㒕+I vy^<S (hw1|Ћgnv )lAΈ^=3;)zx'$4L\l(A"U_+"Y>y1;ItSapmE?ϓIٗ #! GيDlsYrrԪn 2ٞm P)WIKFi#IvK1t) iJ}Tyɓ䮺ndbjs=y. &b忄 j;Rp`t{H};d{pI]b;.D,08OR~܆{ufTQF|=;%3rA.EnjFݤY=jDm~J#v L~k[!(XlݫpYۻXdnמc1K,ی\wQgZ%0ݵdf|Hc<v~|CљS0uu0`/MRդv>ÑmW6SQu81Q $cAl%LԍvNُى>hř2Wlt 7֔0_`!-m5'l/v?RB^njPajTqjIݔdQ 'b^G)52&݇s&>=XZdYl.v٭Jvt)fZ\_>c?fzrq|jnV`5xx+Ȃ;fA@WgkDI&b9ϕcIy=r=j#]()jkkj~y #i8Y"sVl)&?v)1;5`3M!vQsdNߞCEĥ+`z(y^Ry8)R-Wrҳ")P&+c5|X-kUI=#oGˮ(D5 [2[$r<-(NLL2Tfш[=LehRD$Jfl6f#SN_g6I/{7>t? TVDk_eaF+ߝD%Pn(XOsCz^2ِV9 5Hͬb` 3Ǜ3Ǜ4Y-˙XϘ8ZC N7t/NOkSzfQ 0l[ cƟX+(Wt"7Qߘ]~X0YR*B 2EAz /w#ZCZ?߰ײtߌz׎. œ[3W$1O5/?z?plֶwΜlcDN|naKᅨ$"l_lz;R$?:ʵ_3ZppIn7|1'>oBS|7jC }@؊̕`zAcPq7ncJ2vFCz=iCG'v^zm썅e}Q7]+M$W%bdyLgL8, UQOB,/SET0ѝHNuܾQyC4My玳y<>(5=*b i=LBWa%?p@&T|Z;ЏlbZ0XGcx{(y[\զ fP'[zmd'-B }.p(8131S7>e>Ϛ&۴9,ӬktsxUoDUâ7!ΣK[FtuAzOKfhw4Ð3!ϐr}ЕuZ!GwRT'PyjVMW1S}(;pWypԹ)IqǕK~必Nߋ7x^=Ӱ&>X?zm4FI_WxA%r Q"T Maq.{K #2!3 +v!7xk^C~@AQ@(P6@sG}}z"5_4&B߭)@hzC/cu| Vj z zCo&64}T?rكnDwȍo@nއ6L2 <2MEQ)nEKpc:qot{+% _Ds~܍j>GZ'$~d` <qP=#lhD,qjQ-Aq N2Q6Xٞh%0jFiE$\J<+?\c]Jb{&:vb$ p{Y4 F|%7I~Xb0v6# qHɤYL~-*ȇoYhC89=ſ,',z=0S 7Gs2L#sߓìoF=Eol8|WM>0ngdH\{ [(lWO'Dab#FfvFs <܉O=yȞ$@2H&xK35Artxۋ&X;?HXix>+a%G3lࣰJafdcEJ`2lROvI Ir..re*.ƽ}OWG(?/%LqQl)JcqR]:(}`|@n?|[Urн??=OCQ(B2FI\!Q O@Idkr  Z^)hB ʠ?r(:˝+`n'qc ^ ({ 5DHٰ x4~D\%GFr|=gsнF_g+zy MMā[ះٕ, Nrh9:+S%i 7$s֠>(?m5Wg@Tič/PHI !!YҒ"% z͉̏dg33PzZ0db6 +X.G#Ft(ޭ.AѰkĴ:VM5ozUZ9*UXа֊=C5ZG6C:#>*sj1\UƆTY7gTVz}FH<%g f 쿏 V|t1.rqՕC5=cx Y ºCbFGgj7mkUьiVx1nz ~<_^B!՛ pMy65mbUwAÚh%ꚆA`&hPSK΄*9JZR7_M5*%#4:k stw훞T[raY=1K4U5ke1Qz 6STaNh0jWYy1yH]ڟcB֚][2=U"fB4I餋}g:(HC0Ɓ,_3E+ D|h,[[u42qɼf^:x$MuaftbHןUu;*a)ZlKmkrޥR1ǐj.@R)[ ʩ]iOdD=U2U u#a8+],5X8IZSPo!ukBR;KDI/E ۫6f-!``ZshdO{;@'h~]_E|x `a4~IKh)4H `Pl;Cz:ئgțh3PwHwY.Cox~O볾x)_> a!` Pf-X1P!S?0{5xTYPi!>| eEV.cByB{=w@*6 BHOp%a~kq xh2Xs4K!4zM r! ﷻ zr4.U48p@Igo57\lB`V΃.$8` 4DV,X p {s`,?a!NOfֲkqxj'{ N9؞]Hc\x|s$0%brY13p7B1‰ϊ:ƁJpV8H! r\'ߐ[A78wx>#<]s+v8 p@$9ϧSd% i\'oZXH BW,Β0K D e@*awLE2@Te6g ryV~-=7X B#H}vAh:X9 ݴ͑AnpDX6%'Y#߆8Sdsz 2{ߨ{a=d#`BT@$Hf9N;H3Ϣ' H#C5D_)vi"D<0di~H ~h}hYR4̚)DL "c&B VWrBc`mtmJ!kxЏ<ۣyybyø(nčq㝸qn,Ǎ7(n tܨ#,E#[ɖ^x 7pc7f,ܨRd4__ĢJD X < `9*iʾtgϫH{/\|:2zyBX0 8E3aYh`Z"E 514Gހn`d =M Qu=xLz""fbo3^"v?ZC͑#A. Jpl/AAQqasp2|fmc `7VɯGBZyJ^< %vAJFZ1D5VP_S:xHsN -/nnn L gh`"xsסּ܊Tk Z!@Ccۆ{4pOM WTx+meÆJP ]8^N=P5:BZM&i5UP_zF5Շ8Of b@1zH3'= C,A=YF٬^,z<5dUݗx44xuNeClV݈N:܍Nl  B (ȪU|JAʖ*[XOZ'c>Y|D_GxSZ Pۺb78CͬIy3xXMxPm߀z*}= aBU U FI)w% {AaZq]iY9-T婘ݔh$Gc=/C 5\,j"Q01[`6RÎFSs',[JbY*N~ 4t.I׏.VkŖAy endstream endobj 36 0 obj 14751 endobj 16 0 obj << /Type /Group /S /Transparency /CS /DeviceRGB >>endobj 23 0 obj << /Font << /F8 7 0 R /F52 9 0 R /F50 8 0 R /F4 26 0 R /F55 27 0 R /F56 28 0 R >> /XObject << /Im1 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 39 0 obj << /Length 2947 /Filter /FlateDecode >> stream x]]o}`Ɠvۇ6 EF"Y%b)KRvb;ġE'ܹcClGh9sy932Ogtdi4tӟ<$|}ֽ!J(!Yyt}wWx}how]se{y@C$N!ˌy D& IŷL7˳7oLDc)Q; BE9K^}|{k,cˣWt/wpnI;8E~q~fB o_F5۫&Eq9.]r울P׳͢Zhz|ΝH SN&c&xN6CFtw2"M8v{'K8Y {p56O۶ mBțy]\g,D&gmUh~ZfEC|U1_h(u; %,1ɊHIF"%+#:'+8|̷3`Y q&uңavHzHچhYUrķVy_} R"m. Rdad*6m̃XhW\x.}hhO7cY9u13<1;!C{Ȟ|;#4zvs _5rI;[$7p6&4Q#3?5]4\$ŹvW߿y>=`÷qO0P T#^&{(ӓK,fZ-Ōo18|c Eb[( 9C-FtF2`HS⣄2o^Erou`H+9~ (+_<>u~; q*桤w%')wc7ڭzߴ_6o^wjY<"#q_֯%~@/ ߃|C&+$I_)~ a_[$?~q6Q4<&+^nKݕDiojM{#:ko0P Lړ߂=8Sx@Kn-ftI$x9C 0Gt7Ĺ"M7LO =~],WA] bY_ovI 7׺^ٸS,̺UYʻ tkz4$66Bc$ic -gr1s$η3Rr²Cq? wR"c$2`IY"9JI=7i$OGn܊"$gСڳr1µ k ЄX ]VHI35r c.. &ޠ\&7I O!pUkѴEw8T;3Ͷ -"?i"ֲB+ M0,c.'(\ʵ+Pz9{^,FR֒@׃\&u%HP 0B]JxؠCug 䦻c.k#(@ ɘH=j cJ(_?#1 >qsׇ5(#xG{5rćr1#S%4h54E#ͪO=  ]pE4#(ݓG endstream endobj 38 0 obj << /Type /Page /Contents 39 0 R /Resources 37 0 R /MediaBox [0 0 612 792] /Parent 14 0 R >> endobj 37 0 obj << /Font << /F55 27 0 R /F4 26 0 R /F8 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 40 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 41 0 obj [531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3] endobj 42 0 obj [800 800 800 800] endobj 43 0 obj [555.6] endobj 44 0 obj [404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6 530.4 539.2] endobj 45 0 obj [500 833.3 500 833.3 758.3 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 319.4 777.8 472.2 472.2 666.7 666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 736.1 638.9 736.1 645.8 555.6 680.6 687.5 666.7 944.5 666.7 666.7 611.1 288.9 500 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7] endobj 46 0 obj [892.9] endobj 47 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6] endobj 48 0 obj [569.5 569.5] endobj 49 0 obj [277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.3 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.8 361.1 572.5 484.7 715.9 571.5 490.3] endobj 50 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 51 0 obj [342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7] endobj 52 0 obj [555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4] endobj 53 0 obj [559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9] endobj 54 0 obj [272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8] endobj 55 0 obj [693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3 693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8 458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4] endobj 56 0 obj << /Length1 981 /Length2 4414 /Length3 0 /Length 5048 /Filter /FlateDecode >> stream xڭg8\] Eѻ{t (cfa=тBGD( ^F(]șy< 10=p nY@poeÄ)By #y;@F^B@ATC y@4 @Io$@(I PBO_S2_&(,?PJ $d B?P B? *?p ?`#?(C 2mmd`,2RO$z{BT_G`h Òp7d5OL?|nO!Fwſ=-f]&[w1N'#.u{&AK>Qt /ķqgvEtl ZO:TD+(g#bc gNߣJ:=KQ+6lg8-x™|9!=n MM3šV7S(,pJYXq~V\_'^]*R'7>[4_I[؃|h"GB1Ϻ:߯ YR~\+IE[?\g[*t۱\[(ơ:B-:Xb{8D"7rE_Ӡ秆 dvM5-6BDyi^tD0]]fWc03OnàgI$9;n2D~Wy⾩?؇*Zt?N.I+} _ hwL'3= |_rdC! E|Uj>(.?H4R!MǛ iDI_Z-UN;5Z$ٸaLs,uZ҉3ޡkdQ[33o@0^4n78L0],@Z@l[r`#M}7*15i{!a3PH)fą^Wut$7Z4jgAgF.7 i}Md݃Ѡz*\WB#w~Tz>>9v^pkꍺWeEtFA^PG !GsI;D?3twda%ԛGO?Fԧ4*~D`SusH6DҀ(lJ4Ys^'_u5GR &`ǣC*Ԙ5H`܏7"ۮz(8,]yAWw^V I?ccoL;Uke aޯyb,d=YMFJp)'i7N'Oxi;,5!.E2iP`J^۰E-!n\w36bȰ e5J-%^-_@>K5jT5;bQWv6kiA׊3S]~s&Vw&rgx,hF׾a PЧ^Y|̃S{`ʋI<ߚ^Sn rҋ>n^C%;b ʘתK DَJYێlGY6?Gӯ c`BuX/ah2!Cv㘞&-+ȱ@].QˊcLR$Kyj]L5?4<;ۼxNzWY&Vy,ԨC*p\QT9Hn&3<ȟ8kwpnF͊wݽ謩II `qq!/x{x,mR57|bB}MDO-W c/ť5egRB[OwS|ȭ$reЬ4xሶFJ0Q ޴6 'r$Lw/-891ޤT\Zx6= t܎d`9H(MHߐٮ^BQ;!uajҝ0<,VP񦴰QArDB2. EIzoVkޜio+~ۢ旘ku 2~--bD|i36U߰sd|g|?|ݙ,gRj50);0| e;TyRx*p<ݣ%ymТcg[=n(LQZ-sh] W/$%:BVmR*z9W}zw9.[_w)vyVGSR^t-,IBA 9a3Za9o*3)òjzA 7# `i|uIPU#eIzB=EIcl2c=]gLˍ^LFν:b"zYj_?2մ^8ЌꪅqhMw i͹.[i*fQY~\J<LX?Ǫǝ4A3İ/w,#X$*Ӳ>\v3:T-R\>\%{Wɡ>g+C{iDECT| 24JK pVw.~y:aƱ/3|iuA;Bn8yPű8.BK ;t%eTTd8^TƸu=#sV%k b=8x.?a{Cj(vъˑa=ekLT}[G|Kk]މ2R^oW\$/rӢyoGt%q밞c^O}Լy]:&kEX+Y@D"Z&bd,lln /wCיXdh[eq?n9akgOds *=$cOh˱YnFfiX5.|.ջMsH+NEe?8UWʏmg;!&n=Z}B+;M0&\Hëmlrĭ:KZ龮97bTVu# Bm}\5+eh.4-$ϥrzF4.؜L5o:+uQTY"I%b!G(sǍua+QЅuD'Psf).wWF |?| W07Ͼez`,B$;it*}k K$NSU[JV>P3eɡ%m*K^@ $fuC8S(NBB^j~iDꢫvӻy$o^K39 b~(gUv<.9^KEH(L t)R } s2q^Kƾ*Ŷf 249~ "xЅIM) i)6ۮi wU1,U{^7#kYx˓R G6 -(A?SMtq^YV=oӋds ?ϑCBk{Ґ1w)BP+,=P_~k|QNɵ\; 3qK ܖɜ|]x ?#j t.;o˨Xn R>ҳϷD|QzBỷO]-oVKs1rm53Ko­?ˡjž] sfhDyD*}SGuPnd_/x&(zu]%Hoz3b2KQy od8|> s a+GI}U)V#Y\H 7xi_ߒ̈@̪;mzR)>m#6D=HG)o!_^[|~o0בmiipJGôM>kRWVA0ѹP֥Z}Ng墤\?Ղ;} _?shtn]Jw# endstream endobj 57 0 obj << /Type /FontDescriptor /FontName /EKVIFL+CMBX10 /Flags 4 /FontBBox [-301 -250 1164 946] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet (/a/c/e/g/h/i/l/m/n/o/p/r/s/t/u/v/y) /FontFile 56 0 R >> endobj 58 0 obj << /Length1 1269 /Length2 5768 /Length3 0 /Length 6534 /Filter /FlateDecode >> stream xڭeX ABC`g`[A i.%8W_|y~w=Ŧo( QÐ A@IG$ qq)! vH(lH@  ,DDDJpw_ UH:vHgt {;7! A ex A8@푀'(# # aC^'mms8@pt/,rsӵ{WWvOn?qG!!_nFiW9ABzB} P38:A};( iOٿ37WX B7h;@a!!vD蓁&1?9@|c DKp#N0TkoU(J$C<߄3лM?B':  a(qtCh zn f@hB w3FuF/;2O_mGBE%mD-C@:# [}"$gѳkEE@@ = 2зE%bO8UR:UˇԞ8|!ӭbT˃ogM.66g\wwGٳ7^۹~/MOru|?jpv 76VnV6Pp<_ϫl†«u^XT58:[̀<ۣ*F4z՛<=gu2<%E(ᝉL_-甍!VPE:9fI/[,N>GZԽr_PXf~G@/Z)N )c3hLl_-v52^:䬥vc{^@6 n7筦VӹH-9,ɍd.1}4Z22e&[*q}*i`|?8GiF 'MXsۤXN|Mm2AˍUTVپ>x=Ma` ڞ\~w#Rp螝 ϴ3#FzLj Z/;zh|7\˕{0H"~* ^@vC; NKϓCWlv=ѷKqƃ|*&:>+S wO{r(FN$OG_",oe˙$pfwy")Yqb\9C15\yz9)3QM*bH5vJ`y3 $3r1IIh==n'X)#\JWMyx(I,y&U3n[ ;[meU^oj33v8wZϬW1Xpg\ u[§ŔVNaYimoʧ(ؓѶv&xeBg8&`+AfQy ͽ 2!wx2furLX˯#fo|Sm=Ln= H !^B~ )V nжHKFUc3^4.SLiõE;üfI,T8Zl53b9u+E>JaQ@\9Z|y g܍\3,^9UpdqS ȋ_a-G:PE>_Pҡ4t2]q1 rw"v@cYΧ2/`!7k 5[ߐi)879gC.t({ TvKILcϯR\igiz`G3|04R(}K:)J0W٧0>;\'ӆTPթK+(٧H64?s;Xt#紀w~n1)T1&c#|HZ>ڛS ^o@S4s5ե6G*wWلuܢPs⦀6O$[PbԕOnY뫓CvkW"\*%%*L/Ni#`@MZ\:8b16|Xg;+CkĞλI]b~kJ>jDD Kt> f9N9z(R#n³jۇ[/KAZ/j=O)~2Q=}.LS2OqU4Oqm`:*]bu=[a@=w q vWK-YB? _hcsVwH}5.MgzbI3"88'ੂ3ɒ_#[m HT* MHA`Xf:UON+8Dt Ea4I͂S*'SƧ͖:x1OT9KӰKtf q%B.+ߡv?]bѺ\lf5LJp~Yօ]|/cԡ^2 ak:8+4OMV0Fz%wox=;/6*cicB.ۛrJFS؍c݈x:{>ig^cwv5R5MYke]l_J:Ǝ 1_Het>:x Y>ڇM,W0xߊlOGZ!sg3`L RBr*]m @6uJzWiH]U 'o{LfJPFX^"e=^uU)o))S'O܉!bYc8CcY3K667֔^k.$Ђ5nqj̗m|^riw{ ߻M  ~hZķY}165C ,+jt M}t~h0솀,ΐ%2gi 5SF.b18][zxi7 gdW:91 cLs"e6߻P c Ȅ2넓u,2Io4x[F)Tz83]֋Dg4fenfڨ9 r, jՒMmoDPʏ Kh-o+ߍ>;V̢/5#֯rҨ'ȭDv:V*~۰@ocyrMŪ3Gt(7K*A[{Ϧfww=;Ai=d9#J= |\)ad9be؛3\1#!' _\1 -h84Z,43R?ZfN-Ӆja >&e&3OIOMvf4>(Z\SqX>|kv^b†3]i/.LxmwcեyqJ]ta+qR6j4B Oh[z$0#@|s)*XjU]TTw *-7/!zWQ&denRx2,H{%ldCuGA$:SfoKml5ٓUbq|q3k_ xek7qAI:Vѣ-\+80Z4[gqLyTr7I0y.Twm@ wp- F\Ɲ =pFKsr_JɁ( ⹌R"t1z2mo8#͏G* 9_H1ӞȶDxV &y&AtMv;(pwx0IcSpRè%I@_.:xe4V6=.Cj fMM~ +a-aMZ;RK.h w6Ic@)xmup HQ) ~~*]'ND O|2W}9OSBk$~,P"3BM5AEAAMebgn1z=׵01͈^w]SAtTB NhDMR~bs8eѷ1~yIN IrӹWRL:]mY5;ǾKi=)0?m ' C1Z 1?wuO5k.7p$07 6 S+ 5JRF0h.Fnr8lN!X 9tƋf{ 9i+ΰ~w-(8RB^N6T5 xe "h@kr.+RD@6e0ןNt^w+ODhdۤfLKܛ4 ҙg ,3s]ݠpj.P0la!4ߟժ=8{HC &}SONjJ@O;N{ZЦ*aйͱ%})q];6DYM<\T3P#Ttwy곂IALVb38-PF!E2E sk!5|C%ӄC HmZ:ӢӇ\? `]Li p|0k5nЎfx:w>>e~X"; 3qfBIm2i{KT!÷%_H=Ȁ9G U}HJR=,pq8RrP/+A=n6! Zo-~k" {p5} uO  B:έWzturK) X|0ɮ? ಇ9UH=NwU ǥYlKmI~+orO%n= [co>w6h VջoVӈ}Nz^<}袹g5q֛'?-Xl-oG\"dY}M\yH yݗ:R,` R Gr/oV %ꒁYنIKl3}s vfÊ dUHpe}0jnQ1JC%LRf:R%Nz?: endstream endobj 59 0 obj << /Type /FontDescriptor /FontName /RKJGIH+CMBX12 /Flags 4 /FontBBox [-53 -251 1139 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet (/B/F/J/L/N/P/T/a/c/d/e/exclam/f/four/g/h/hyphen/i/k/l/m/n/o/one/p/period/quotedblright/r/s/t/three/two/u/v/y) /FontFile 58 0 R >> endobj 60 0 obj << /Length1 908 /Length2 2835 /Length3 0 /Length 3448 /Filter /FlateDecode >> stream xڭy<mFemg+,2ƾd˞"јMY4c)%H֢HJ`lCdMB;>>=;+/}AGqM)d ps!FTC#P 45 _"zG(<`Dy#"`H, Xch S!,@C"q}@BGw dNS_a)?1(pL(db x/h!(sRǐĀ+($o_H)8J]z˜5#~Ϛ0D֐|*5(\8ǔ@q'4}q g~?},O*{?'0212 JP8rOg~kfBRp9@`TL8H8A LP!?`X ">>?g/ 5F ?G,'ЃT*H?4_B/ i?1gS3Y.A,-Z~܎->jiCEXԊ׎p'cƲ# A^aN1[7b\\yZI>I}P]|Wj->wW}7p3V) z]B%weEэ>7^iyt׶WDTߩ,M -,tN_W:^SK;5Kxc8~%["{D];Z>y+sr| gyYv$͵礒FҔb\|KW,S f|Hr3]$r8& VO2BJQvVzbBtjd\imj7^f>z2{Lq<0R3c[<ٙ 5fZ%?}kík'U0da?\9dԲC>KJqmƒ .5*:|'COZDu$Wh'y1Fn,?;^cˍY |xW(\b_XB' jSl=/'MNv2ۜޭ¬`bmqyJ]ፐeai(ri'e`WV'h% ٚ#U橾 l=&%2_YXe S]@cFvgy:mۭ˽xX] |;5jcߢ +NjNvʈ@5sM_gi)QKN}* < 44ptC>us"g7 BSӕ z=]EePIEᕹ6U')1]1|WQtG?"X"^]@ElǟdM.ˆ.xĭ@{Էap):SkfRSS;h7ޘu%:ٟdlo;v:j3FN$-Udnk|sW[Q׏{zI -Q:įZb)CNg+78]dalL;ښGH+ rp bt!ZŨq$M^/em5n!yL`*|2RB9;g}/}Ȅ.Q1pʰ9>UT|d^s}mo⮇O#DomU.j*w i[n=VvbrV\f{vEϮx|F^ݰMkeË/_DC]LM=/֮S< k|#Qmel%I'[ECusnׁ9wSn1^$ۭ?3c^G{>TRNiܬqq,jq Ks!cw6Oign\-`^??]Ҽya څ{C5Éؙz- ,\Z?hZp)w2$W`"9OŁfT0BBTIztCmwaUER%؋Oxݍ<Kvc8l }XoȾΘ#ugb07H?:g߂z|Oay/OּU"RV18>Mvɖ;[n)ߠ@Zyf \I8*ϗ 1jdž'.7ɗ[ =Ĵ '1?.G}*6}nR{!3WBYL y٩ E5c:L: -SqVDZ㒢BdsEruvvC_@WLFsuٵ3i{5qCM a1;%,d3HEos- ֱFE uNڜQmė}'p,R$/{`p݉KըF6D.ֽdyjNegtDBmh.Ԛf&ow]Š }i@81}go H {%* 0ϚسiF{~N>+:żPV>#kSYM[YrQs{ܜA饦vCEfFAVUftӂ\nb˛^Vkq_t_MSVUa~c%ci<,1}\yhMxAْyP%I]{_<`YڮAAwښG6l\\p6%LLCkGa0pˬkBW켞T'!"Ӟ3#IG 2/W0K̎{f[nA;J>"Fj1 Ͱ NpVTW]%"'~#u +j [# p->$+J%$ endstream endobj 61 0 obj << /Type /FontDescriptor /FontName /LSYKWA+CMMI10 /Flags 4 /FontBBox [-32 -250 1048 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet (/comma/d/less/p/period/r/s/t/u/x/y) /FontFile 60 0 R >> endobj 62 0 obj << /Length1 759 /Length2 1285 /Length3 0 /Length 1818 /Filter /FlateDecode >> stream xڭyXƫAx `!j%Y,!AB ʾʢdBnHҰ I ) )qR ŅXr>}.>3߼g }Lh"BS b 7d2A1082]{fE݃xFp9/h ` ,&,Ɛ|vD_(!6 O60(FfKHn2[%0Z4$Ex1 qf^(v?Vwx^Lfa^ (?J$!zZac@lX_u2y0 AbA"[hgX}`! 8L^4\j,e3WW /+aˆ?& ˚"L&̈=VrBX(F90f 2RAHTmX0nB3x")^${{TGT hTD,cIBb{PurDn Sϕ댣u˓lH.ߚ4oMx$mNюr^y|kPuvq~f)57 &Xc!Gֶk/;g۳k'zw]о!JSz7#LhQcx-y x8 Zl )T3~]; ~}I6^ L`=ZάSYDRt{p^pbq!_fTV&*/jMQ/9ȐDճbB]HӾKTqEecWT /_7k.J]K_[ eͼť[7H^)͎ujq-w9:]gˊf$Vc|0yWk<&ӬUtjJՌٖM͸d EވjN/egv{~yo~ۺLy\;9crs-FFk-([uDu!܅`V@ĻB X9U,4Rž{SRUA&q̟k }7rhG=DvRE>>ɊZHog2St:)S$mH"*xK{Zh1h lP)u>Vmؕ]ٛշ(Z3Y8}%?QiUQgcGNLlj~Px>f,k;+_%mp JqNpˡP FQ̵UMwvB4/&>='dM[ Tpd(]P[fkȪπN'&{0'tx_7BA2?7mEmf5/uClr9UcK_MtI1ӎ:.9`LwiNn{RƯM4jW endstream endobj 63 0 obj << /Type /FontDescriptor /FontName /HHEZNL+CMMI7 /Flags 4 /FontBBox [0 -250 1171 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet (/i/s) /FontFile 62 0 R >> endobj 64 0 obj << /Length1 1697 /Length2 11480 /Length3 0 /Length 12433 /Filter /FlateDecode >> stream xڭeT۲q hpw4%H,X^{X{wtSUꭚMI l`pwe`adʫ0XE()EƮVbƮ@^ +@hz}y9y9X(^VjQv@g+Sc{%`jtbTZP݁f,,3+SW /ItvPK& $ `4G`RpU%lmJנ\y3jMhff^iWc[+Sa{ [ &+ +O%/;E&/ L::Jt]ռWAq2 }Ijۛ:Y[X98^" z31;@3;8#&L&N;qމ$7q1$މ$Nl&w{'.;*( N&wUP}'v;:R'P=wU@@ZL ԑ hngo%3u"kagbg^ԡ?T> vf`{E=_~7XA,fh Gf@{GygzOZjoeԟ{ubp;A,cϝ`8G5ٲZw@;9Lls- &z/ݠR9@z\-nW,?4l0(?4.AKOV$_gnΠvbV;",;Z7MV@ӂX$(4D YL-u]z@ރ#x&pU8rJȘ{s7n#кʒHvr<{s8>Z]<{PZLmvG׽';KK"V=s= jSy{jJDu8\+ʥCS\A=V`+XJQ@G"M(: t:h[~SY\-"$P.(sz]ʅaW wʱ]EiNaTG[ww \a?'9&>Sc){#8 ˉ[<[ܭ2ɳ6h9K=W)fyđ8ogB!p_ӋǨ_4`Lkr9tIT$smU>Kbd<>I}!U©Iz󫝰Ŀ ,p}Ҝ 1̀2 xJm{M~A,*ܕ \Ђa/M:9 tM+/E'ϽTclMisXl^E /ğڙ:5iV 7G/d X3JK/G2j@dukg9/+'3S&O!̝mGA1JϨ@agyo6 Lm%p2)/t~Xs*wewIiO)dD%7A7׌a0LoA<+î9ט8a<=`ZShi*xF: q{G RE^h ' -q]m7` -kv!3Uhďto΄ /5N'h_e}oȜ &4u=|`  _#l +JΫAmc RC/Fo`80F^a^ѼOHBC#.JJ\!Χ; Gl;tӠdF,Mʼ ik*AY9LD$bD5L&,y$YУN,+9ۇhr<yENr &d z;}L{"cɄ}ͮJy y^x;j֧?]⫌y?j ,Ue7eJ\~ R0[ fX'Ի=?KgghAʦWL}g=W*2$dfxDX_d4 @N̪Ε|i1w}\:AVbI () O`HV'ly4+SoAzݯKS'¥n$usE3vuT׷aؚEi,Q6~;lE`O Q&*Ɲaz\k(i$`x0i⋍M>ge`EBaڣHp/eKZ!O<CO J1Jb 8= JY]6Q/t/| g 1Փ}Jf; *L8.DNl +YgiCeđH2?D^- y,H'{&t+8#햘 ĜIL_+=fݓlZiT ON`%^ d#2iETh\V5zO{m|''/Fj^Й .ʛHW,IZ}Z[ro;GXt8ʂE9ˉy4EhLhGJݜǦUe$IȲٺƅl%ٲ{JTR,!/BAO`@U|׷&#D}t`w풖=7>`v2M@o m$gʡn>`8pF6~ӺBz~JT`>̀@)dWV("tCKdn] 0Ync\qj6EK"%KiD\E<*+~yW8kIQV‚ssuNXIZۇٹgӵ+2ʏI^s5]o݊7$kH<'}'sޖm\OP`ms tcH/5f7RhtEĒ-gЅl׶9[ɛ`{0$]R4*0K-Zǰ%%&D -Cܕߖ`t߽ITbitH0X"-M>v~ TL繈̫kv? TֈdI~ ٦u=ٵЁ!|D[>8js8{NI!hX}9a- l\23~BC\ D2$vRX il>n7M+B# ofKQA?FΟ|BKQaA2aYS{ْ&` ŏȣ"Dk[v9vsBP=cg#nJ-CLeSpnb+xW,t׶xZ_va.}E'zY8ZjOR_6.Z^.)5Z5N׀yzutAxSyZ۶W3័ /,$Ɏ!'ZZ#2M{ƄKKY _|6f2w;2 :c e VU$|3E$1ýŧLӯ[\ge(mqH࢚,wembD=.sHmN(_N$4A}ڦ-9y~hFc%GVJD݀Z޾E+L>`XʘJs6O6)4@M1N|?>R2ؔFpYoIMGyq7 +J¦檲/&CW/ͧ{`K~P˝?@]T.mVց7=|llymܡchx4dW Le쁞a'Pm@=.}ѺZsiVGƒ }K ɽM~%˱%nΩ"!+3~./_>u%8)UXg1k)ŵ`iׅo zTouF;)aiRNoqeޞq엂gi%^R֛胼aH0s}_$*Ƥ|982Q4V= Ey+Jtdn6Sm){ܓ؉SĄ]FeɁ+| tT2J\sN+@9#P=sV }^5,@˾iJTOSKM #oX8fkM*!=Tt&>C]l e\b/rBFޘNm{|-}TrW/ګUtS/8(uQ*KÌk ,6>NY 5p s2f>U'c=DۃU|qWm qBcܒ{ O/$.b4jq*zq_d;aQӏ hEDŽi27VL?!CJj’#UPmkxQcWX #@roOvۭ.SIHb1(ƲG-Sz_bPsTK%AJrEA{t-Z67" UO;!=dz Rq>; 5(z@/b -"'KL_N.XAɱA[LR,7ox7:h}p)Ոާʏ] eSeZ##9GO&%֋٪@1?;Oc?8ލb8T5H#C&g|^HBnRmA:҉7vCEMQ@r |nCGq\A<]+sM3W,m-=YqD@}T#%݃G»/A 5.ӣx>,xeQ3y`FqyX5jW(xq9sG?ڲ38Xۖat{:J)4]dPcVhw/KҙH=vp#J-p!.=ߔ iq~?'s)CrA#6kW~؃ϊ+ m\@8l=9f7وF*z7ӒR/q fG'hڹ;R=~ݤLpĆ4; K$A&/RHx!\嗨akRñ_B4?\;l\\" mh`\)u"qڡSi2IQ :h~؍"%?uC}N`On'7f\~d֠ ǞEp1ۘV8Zoi)n"I*?26mrǶ ͇R}LeLu+{OGw)2A{2ܿMd^~AaB|.G{JN_zpZ땿ÞgmsvMT_lȀGf ?Z=eK q%W@qD'6a9r4LclXpМq"̭*53s*9Ɓ:dJ'â*.8Wqʅ*Dl'KdtRDIhjأ^[0cVF\ng܆S4Oh-+ Y|<Rzq T/}+T}pFܣP Ot_*mօ{X[ g\2Ku-62b9L1$)P%kta|ckw KD҄R`M#(l8ۼJ_bˊ7߂Z֔дĺ,[0ypsGSlficoR&Nm~L yj?s:g3<,`pq9 siU ~t|\Bg-ɾaG*CGS_[O V5tֻ&+מz5*M0ڏcup5=#N YgBK0Gђ?F^.u2Z܊|m:T[G/ : }#>fQ=hQwQ#fXۓ`=-m*vNmWznSP^mY Ue _x2hfzzc@G7"Y9Z;].d?b-AHD>8@3;TكŘg`554/}M°>4`Fqd)&Z`{i =`-8KCbV9F<9-6"$h,|T `oĢbAYlq1pL]{?~'4Xڜp&CQTմ"h +fXu}L! g# cdzGNuDįw9AetQE?{SZPTI >8o]w.P/ĎX`U(t@Tޝזh^0gBX凎B>ʎS~q;6Ii~*?=$O'Gݘ=blpnZ3˝ߊ䋥4TIWsjSI"YRcӂU-"/FI!mJ1eRtGG-Ih'Q`t+m 3SPER E7ro,Bqnew2cR.W,1P־ՋZխnNJUiHgK*1tGXL";B,(e^r5L}G⍽Q&"/ ǧ23Kcy.r7zqLkUAnyi*|lWKvTxE~D pnmӦEx0l5Vv>KرqH14}um+ZF_bYju4|ohTg]L һ_+s֭=2ye([6 :8QPmhvSȇ^2o=J?SFrϻ@ү^904Է":•Fyz.aD {CMy^$7K/ZZjO]_eF92gBm;N~~Fd,q7uFЦňbYE~q&JWUMZ,§kh94.Q ˦ K:k+d]$Y\氒JOvC\Z]b[g>)IDđ9NB s&y#slCR.F}*|{͏h6nEA% q_ԱJj=edaXy $dBN ~GR 07]w#e$Vk!"3 M,/fW!Wus5֛qJ}NWxr[<\Ɩ 0Y:8528HCZecܥVC\NbaXqr&܎%l_4DXHA{l]nL^/(=9TAQT`cf/hHXT xsx>&9QʸR;BKg7VJՒ^^hω 8&D࣌d`=hB!*)PNfQ׬zC>݇lת/Jߐ6u?E2rݽ8@ZǍn?[qRnL!7=?R:{J0-[뵅H$IQ2>@ R ^#K0UtE^ ot|P>>5MbIzGH .v> endobj 66 0 obj << /Length1 937 /Length2 3062 /Length3 0 /Length 3684 /Filter /FlateDecode >> stream xڭRw<&8!{9=2B:psMeEUE(Ydgsy}\u}1DPCL ^(S%cp?_4s'PDDKQ2oրbxg, xbQH3 Xԯ8 un,@,/iZ[J/ .[1ހ<*~9K 1xA()p"^)~PG70DO QSL4NeUrgRu_DU:Aj/RT"G J0&S Vx O"&B-+ᏜjEehidYU@EI>d"'sFh u(7 yG@wMY[ r~`Z_$l8f.'''a}A:nݕ i?y^t׷FfϬϫ6h/Mtݱ{uou遙ąKsDh<+2•Ultb"nPD,ҮE*F{I t`|&+̱˘}By;Ae!w8 VpLn\FMLFBXB~lmγISBntf{( y693d.LkmBhKFsߺI\`mC?ILц8™G 8'?oSA3dsG2ޗANZb*>3@J?lȬ.@Xq1W.py8pY-.̿diѲPhC~3hC;*q ]ek"c^[#VB͆e.oӾ}6!@3U3m J)+S̽S Ź2g 5+a}HE5o Zl}L S:4h 6PcKsx|iYS]HLr_)7m{ՂfG,劦x^x>O2Ơ$,y̏Y^L&2TϠ4}aQbIFAN9" j @c{L{H/lNoY]dZzv=TknQB # ՞>Hq+b^ُM*(aE,+0Y/m)!>V ײP#с^C R_>?T-If?W͒c~O)Xr|Tۏw0N1z+xݓ)'SچRW46׼2' 9րJ i>^bCfD:bҺj޿&؃t/wS3X>nu" ?Y*YkJW-=瀝~Z92+ۧZ.G}/[7>EM%UEmپn5]?V=NG͌*D;e8p.`C5QWp}WыХFLhNr3Iߥ̇-[U+ź^ew_Z] v d;ؾ`},o-až(dID lD֥WbȂ AcQZ\/̍,noYs\"-gFBv\tsn,Z-{vJ \Hp}Φ7!y83ma#̼G\ͣd 2hx$*mh=M淧ɟq09_9&"%=Hj35DG^|AG#UY[U>nj"Ow6_yo F=;#UShe3Ҩh!͆sIA33;Lwb@( nu'(W %!e  .ٖNف\!ty7ʹѯfrH$0%6-v*5TMن#(8ɎGQyj~C[˝Oԥuw ZMGnG+,2nߎ) eʝE͹f^X1&1|!¸Җ(kpbI4;Czw lߚ6o #: asԇ1dcɿtDõ=|OXl`:19O@L.dB9=M  jn'6!.0E0/,V9[ou'J'l!f7`I*ӱNqMIE~~zVG :M*&]n&qM7Xtl0r}-Nhϒ$CwRƒ'Etz91n,>n&ŨEeg{.PǛ7[9];U#.MTw n2xCؽ T!^c\]eˠIw4Һ,iy+Uu.S9΁[K]]ēR ]+M*l13KrMKV9tg`e0̀2DA gUx >8y.iǺ*h=f?Ǝeq #.y:} endstream endobj 67 0 obj << /Type /FontDescriptor /FontName /STASHS+CMR12 /Flags 4 /FontBBox [-34 -251 988 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/D/G/a/b/c/comma/e/four/m/nine/one/r/two/zero) /FontFile 66 0 R >> endobj 68 0 obj << /Length1 795 /Length2 1680 /Length3 0 /Length 2224 /Filter /FlateDecode >> stream xڭRyM DH8QO~x8AC Dv) 4 @x* zC0By͐)E4~ 4$S89Iyc@Lz!HY ԯ͍iDoZHq~ϟFɀ%_o ʚRqD{AQ!HBTi Gu&jۺvXg{aqLcxƜtpA!Q(4G~2ƓY5uG&fp 21ITIE"#֞SCPZ+#4g2(CCz(9,e$F QCZjV42'8 #_#|kv)px]Q(/Xa0RT*&:7)ufEleـk)Idj]IOLo3k{gո<)Jp{u&+w->.iƩDȪ*l7]P>9!nP(;I KYݳ*Xy[pbd<.eLh &F[n1䧌C+E|'Eҭh"g=?yjlŇNJbӎKr-پ +?2p5qh {(~=eDf4y//Vb??-4?ȮL/*Wq`KX6%1u|4^̼Qipti)PzG+dbJ߭M'8;p~]Wki8g!@LQ`w|qM+;wa5$-laZsw悎p* gvɥ%Wajxz; >TpmڬQ\slL@$@nJFX=j|n# ژ]|rW#JxY96=zarüv>QC|x }SWg-awy|?J*.ܩWPAr l)6u 1Z.#8{މkK6]HXlFJ*虬"Q ¤wJrxH7#o"?x:8e~^8w+sjjm/BH ءʌC6l% tŭP{mzd.MK6Fbi?0a#5#ݼJ$ (ؘݥ:Mb;1ZoΉ7V>6{,ރ_!B}r^mb<"=MjGʆ0F#V{1{)N4*ݸR"|K%fp8{=^B]MKF] ӪU~MW,q lgu|`Pٰj̃=eҢƵ"v|̊OӭkPG_DLМwq;/ܩ%K:#v^iz?l.,r\@>nEG/fR endstream endobj 69 0 obj << /Type /FontDescriptor /FontName /HMTPZU+CMR17 /Flags 4 /FontBBox [-33 -250 945 749] /Ascent 694 /CapHeight 683 /Descent -195 /ItalicAngle 0 /StemV 53 /XHeight 430 /CharSet (/N/e/i/o/s) /FontFile 68 0 R >> endobj 70 0 obj << /Length1 752 /Length2 1181 /Length3 0 /Length 1716 /Filter /FlateDecode >> stream xڭRiXSep"Jbcp$d2$$, \HLQ<#** T2IXBy*؂*ŁV ־ѿkYg[r@XP yqfC%XZaPwv4GGp:l4%pâbHXXDL"ň/4=|!bpNHb9 h4!)@Y㉆b ɢSrX,M+$! %P1|;Zڜ- xFc"D'dRX 0K;k^0DKYO)_\0! J(` A(_(0 -5Ƕh᷋k.R|bj]Ĵb<1T* %X_=X8bx@PVXؠ?HA(&&,<#`(P|%c_So3:CAM@&ètq_hPc&pVFOU'W.ߤv%˻)?dk vGo9`xY̬资=wدGgv˃O}c0q+v(j53}V=\82Zkys@ymSҞ>-K;RO[san:.70eR"V5Xcd)[U||~tC̬H}n4x>q o9d> 7bԍ8 գ%Gŷ;p?jݤ^tOͯT%';&unzr!miYg,"l.na䯑+ЍT3j:mٍvVww=_[UyzƔJ;^QyL?lw6 C&w$lT?Mc*WG̓FgUޤǰ"V3m`'ypZeVzvRH=gVGGy'X|5_'wɍ^Bd181~=(.J[7sM:EږcGdR4~뼜"bzJIgI5{(NSd>JԽqP}١돟"=$SkniU 3diwm曷74'D'j,}>i^L?iz{69 h;>1rH}TȁHekX(ßc=5ҳuouwTT zʺ3[;w;.5Vt =yllx ^tw 흨Ӂc㿎\.Wa[{XV!bNs\u)ͽʨD{ht"fO͑ږ=lDӔ?K !̊e??h endstream endobj 71 0 obj << /Type /FontDescriptor /FontName /NGUJSL+CMR7 /Flags 4 /FontBBox [-27 -250 1122 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet (/one/zero) /FontFile 70 0 R >> endobj 72 0 obj << /Length1 1036 /Length2 3865 /Length3 0 /Length 4528 /Filter /FlateDecode >> stream xڭgXSY׆#((E' H{OHHbzo[& R"K"zSD&Ewf]ϹzYk_7Uaj($N"Tt!`"Wpp&@de! NKIB$%wq*D2; wr@:8W;i'`rp>bZ aX@( 8\H:/OHg g+ `IIAdB"|(̙"#90<]_Npp#|A=p0 0K`ӁAjp'% ʊIJc0> 0aov|\N;8c4 ͐T& fTN((I )iq#?GBa̛d$DHKRegW_eHWOt&R@,r `B @'P@I7JJ CPbH8$+ kI B@aH٤O"'wI mVVFy MJJC~#Ҭpp`0'IӍ TTb#(! vwXճ\FTܯp>~h=IY:gC}~f )?zwk[{+np)zX1xS>F`I{`h*?.u $Oj㵯nrMu&C$>q:I5<5W6A*g^owSAs~5rjW67MmʨO>rƪmMC}嚼+Rb4 a߲׋N+:-5go:=BuM{j{.!˟1'j:͝xL@U0 6ǼPY3euA]1CKsZywAE Oy!(-nr~_QqP^phїNZCprCu_F]ȶl]( w> Z|q(蓧ϭ̺~D w朾j ~UeC,"=:@Laft^dνh9)$nɗ"I1$\h$":kA{=5krMX l%cEuB Xx`t)546prA_F2f$/ğ* [BҡG6lpzư捍O24%ԣ9?Q/7(` {Z[ƶ*p5/R٢i%=X,SI 2^(rS5aMtm8lxxӏ2E :r]W s;x[U:آg"֍&rA^~.",!y3A[ /^UPϲs:X*Y`߭nV|;j6xr岱7L"fQuv*| SrI}ZTv%bg;j~heT$u)X=K]K&OV>Kzt.)Qzg}!TBbD,aUqx/H'9M+;*>zKC)xMFON 4>J޾Zm4lуG<#OQ^OՋ(PHhkOMe4Eh|]F $xXq3%-%9'^Uv]L`+k#V[x)ϘO~;_A~W*ü>כ Yڬ D\Lݛ fjGp)Ң%GJfx痬!vw(C#Bgrwnxb?k&.k*dax3O>@cK Pغhxʭmq~HFjmu[2֠3u]l0-xT?<*m!p䞆I`_P]r 7 ~͸w ׯݾiEڤ6RC20%(Q2Op|=,cF?Y Eskml-Wx LqpZ|2jכ2-M;YjW-P2G몓SLݎFɨK 6(N$0DY.7;xw\˗Rh61xiO L%dP䲈UU ڳHx9XZb9I7Xau%<#vnE3 "L..:6&D%ޒMP/3M*NQH/ Jֹ/dRY &~ 7@ KcnsJ{ބJB7:!ꚠq8vB9 T݁UĘmwqk3s"F#kl ʗɷ?x]<nx8JF\/,(nnYLy endstream endobj 73 0 obj << /Type /FontDescriptor /FontName /JBFBDX+CMSLTT10 /Flags 4 /FontBBox [-20 -233 617 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle -9 /StemV 69 /XHeight 431 /CharSet (/F/N/a/c/d/e/f/g/h/hyphen/i/l/m/n/o/r/s/slash/t/u) /FontFile 72 0 R >> endobj 74 0 obj << /Length1 839 /Length2 1575 /Length3 0 /Length 2145 /Filter /FlateDecode >> stream xڭRy<T4H֗.Ǧ0~rC0Fi8vCR&DFT,G9֑;uTXoh{}>y*ثh)TGi= 4 IQ L P!,EkF4?6TDD$0}@4"d5C^0;@ Hd"Tbq |.X~_&UE CXф@o Ȋ@Ykҿx R(~,&H,i$NV ~6g ,ʷq&"  ? SrH!3>buJք0u  3_]'md*Ӂw5:F}| RD oP4*< m@0m6p$0TSx谵:B g @]W(o,$yBUup8ZYu^,:2׏PE@"F0"I&?wwqՃG9q'U{p[v3.U}m:y?z C .ݍZ8﷕?l8M˜D^mԳ6o>PX}#L7B(/9)Y5M`m_ȔLOXq"C|0sD^WHa]*]f`~c<=P6_sg"=ooK韣ZfCω+:{iF9L r;#~JSrC%5/xKcLCeu?_~q^=lF>s[kqQˬcй]Zɨ{G-r?ӖM%+2^=+/xw{NJL@?{wJ[N.=J.ЪJaw8_y[T ,8sէvf WCY96\E,#xoV,"85m`o{+$]1?'%IM>^Yxy탞w####);I)o}̅,w^@ΊVUwy5Ǟ?w)Ʌ)'d{X GGoS~PMH34mtݕSIaֶNM'n<);:nV^_*GtӁq ~ +3 j|s-gWm ! }?Zso)`yvS ͝( yUr3OV>ҪřiýIXKO7E#UGX&W(fot>zz~G+e"\GKI ͈aSW7| %Ku|@Z۬iONݼJSkY=y-inQ?d{UA]9 nId8:IJv`4fQ7طsØS_yՈזɒP ѯHpo4QNw,ԝY7*\(j6Y.ݴz];Rҁ1JE$w=t>o 0v4''pfsS*Ezv!UaC<*>%,]]J ̓'dtq&u5G2c7ŪbG Ffߓt$*?ILϢ '-.U݂FϙXhfS `s,W8_'ۭ9blKp8q65-Z6^MnHBr_ClGP8RmVj~vzSVyڜC-ίϷ]mEuݼ>-G1SJ?uL R4i(UDVy%o"{laތmz|+7#&D"I23$7ZEP68nEmvU9V”[jIqTGދx7ȸ2,FSr_[,jH0 ʖյVP0Y:7P7ygJpBڮ#7dyWFdx0Z ё~: endstream endobj 75 0 obj << /Type /FontDescriptor /FontName /LGEBVH+CMSS10 /Flags 4 /FontBBox [-61 -250 999 759] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 78 /XHeight 444 /CharSet (/V/e/l/m/o/quotedblright/u) /FontFile 74 0 R >> endobj 76 0 obj << /Length1 879 /Length2 1316 /Length3 0 /Length 1915 /Filter /FlateDecode >> stream xڭRiXSdP? a) b Je 8>C \7ADPKqABe"2+DjP9!E wx}skۂBw(K:ĀHEp#< J<  H, ˑ͡X7B$1`f5G!"F<$1a ࣈD.*@0A | BQœS yRчT""N EKR %(| !?D-nΕbXO8~ޥyB "FbN8FYo C.x4:eO \TA<,^,o^e_sOP\M.Bk=C 1płH"y>"= ţ bBnAPFd %&1en:1HkL>*cL,@&Mf&!B_`?I"Fr;R0IWWBDqt;gd8vR=<>!>e.t(de=L<lC[iђϏ*q>M_艫DN]>=nbB.X/u{+w*J5ql208iQ1uWٍ7^>5Ɯ4T G_^K9yˉ?qw5Wv$J zCǣ{ ipٸY m! ٫&I:DԾ=j_PЭQf^ 3?1ۘwѬ_mUŎ_%yyS)=NC8mž p~.Q\%K2/hn]3,u_)02S '(+U~[b߷µlг}FQwQI=M-tMuuuw{i٭V#563ݕztm4cϖlT8ߡvQa#1Oju>shJ>\EAx]hGP՚͂SY)'E.*5k/٘|@^pe*'>1Q E˃u\돌S~j;3eDtzw"7V%DM}Io\9D45 KtTM15{}uwG!7֫dFB[=sTuƥnr31"p0N z)g,Bq{OTؽgiuo8UivPMbH"/j&߭xhl;m2 tJ{;˟!9isĢu[iS6k0+ݜiW՝ԑc*'3k9g2)Ow'iiPZ꽍IoמP5TP.Zp&ZbV}a5^鸤}Lsʝ=i 37 E=|:RW)z%[Iyg]TC78VzS=2cVEL񪴶fVG FWK{ wcm-oCODh? ʷRi4/|%SGx.65Z7PsD+Nu^Cxd 4t;Tsn|?UZJwfNuQQ{gj# endstream endobj 77 0 obj << /Type /FontDescriptor /FontName /DJAWCG+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 85 /XHeight 431 /CharSet (/bullet/circledot/circleplus/element/minus/periodcentered/universal) /FontFile 76 0 R >> endobj 78 0 obj << /Length1 745 /Length2 559 /Length3 0 /Length 1070 /Filter /FlateDecode >> stream xSU uLOJu+53Rp 4W03RUu.JM,sI,IR04Tp,MW04U002225RUp/,L(Qp)2WpM-LNSM,HZRQZZTeh\ǥrg^Z9D8&UZT tБ @'T*qJB7ܭ4'/1d<(0s3s* s JKR|SRЕB曚Y.Y옗khg`l ,vˬHM ,IPHK)N楠;z`D8{hCb,WRY`P "0*ʬP6300*B+.׼̼t#S3ĢJ.QF Ն y) @(CV!-  y Q.L_89WTSQ-ҢԼp: Ԋd[ok[Y*V}Ο'־~ bG̔`y%K^-|xE dE[${z,^k nW6wMpa،9=թsr y)/~V$-%)+2W}~)Snʞ6-*Аbm?k/H&gB;A[":SZ}qMw~O: 77s7;8?lj9MuLWŭ94͟N>/rW7Uj{E=ۙ^ m> endobj 80 0 obj << /Length1 908 /Length2 3216 /Length3 0 /Length 3818 /Filter /FlateDecode >> stream xڭy<G&ɛ-a ؋=L Ìe1 lYMȾKImsbPp=v~>#u#9ID WP&VVpWt9PdO8pGpN"'sDˌ'0D2?d"q$G ûpBMInx_zxb=1c=  yzRdÓZg|=`=:xO gWB0㉸_50&CmnF{?XbO?fL~1 g2iGt&ˀ"B@N0 P"H3 Ȝ7X PPO@ ?!#?_('d~BE*0q('d4;k]]R@0D(*!PW/'R~1c_ \<>zV{~^Y&uVц[EJb(~f-f${e^+WýH78 bi8%9rHSd}ԋ?>Yk.Z`{w_u{V F?])t‚'~r̸?OjzH;|;y){@_Y#us^ idBۡ/a UAg<i$nmpʲQ{ h4lхncA5eJMx}"FzB̖ri'U탍Gᩍ=Jsz5';KRtn+]ۢLͺ{|JmIi&tuKRi!2}-1]:nEqTd)WއgD+5`::dB?ŗ!7"|1+l8oe>ٽA=ذZDvHr(INkVzGb*ْư5 RKMG/,26UAd.zC#5ٞ! xhpAXuFl)Ɂ&xUp!$֌x+;I(_)d9lHswB/ V9Hihɷ\ېO^S[6{Z43}bos|n6WFP%t*{-LvHXL1f6XMPcn뽻/Bj9&~)-aHd*Ll|(=rdF^KTk*xPFIj eVa(jb(m8My :6aK"=BEd_^/xGJ WP'}4FUeS'5|R^NU(Ncs9lkC YҵKك!i[ڣ`o,vHJ/hޭr7zaIb:!bB}.dT-uèm-&n3;FHP/,_rh<MljZݺ;c}"?Z?cma˺m"ܕuƃ>I9.sW~k })wiLMIvkOJݬtv+3.bTQxjSC fiVy5ܽ+ta0Ké75WD›&TF_x7'+e_MUG"KrX+W]M9j.{tP)jH2xa ɣ~P$b9 q[Tឿ5f⧃;+帢Z'I>%9F:[,D۴J %,ݰCu0fv=*gpiS w( VՒ U3p 5߃WkŨ`I*4"<@ nͯ ´)v>)(F7|{xnҊN&8z ΫTPS)',}G:ƒ=[a\aAv͏u|y]w4B+gR =Gj2Pmg;0*[#T L MW};>_>/$)P"WR]a[5y:3z߱+K広HDG&S\$H.ncb.k!5y))Wmѷn뢧8Kb߼s$%)* Γ5Lm ƽ7{r}] e)~9v6*riH xA!u2g lKeG,}5d],Q(W;N<ҋѶG޽CuG&Qŗ?In&G']J..<ڙMZ)^N[?Kd95<>Vozt.@}TnÚ[oV+I^Ӟ3!Y2:d^jVAANuÂvGyc!ŤM\nԸOvӮf}My]L(;G݂ggz$*]ylzg 6frdwtȗ}:uwv.KfO{ [_MYsJ`_7!2RXch5zX##tuKKA͎I&pnkx.H.bv~ ^e]ӮĢT{^ԨL!:F2*x+Zc pjϘ{JʮK'V:v[b1\<` ڕVʣ }%xeo5:.;5 !9hެoU3![K5 x#G@[ ÷+]➵3a39q$3mRh)*EhX7=A @U ݴ1(i#S'ԇx js؆_꩞z>_ާqζy&Q'TEvmJ8>-%jc(ٱFv:^7zDCfe nV[ff.|eSQJ#vUOhn9)4s3ZU<ŋKj;fmo9._nGk##Z nU^ ߕLVetBI":Cń]}( *mH%ʹ=c4D kjQ}t6zg&'䳆 T?ϵHsPY{179bv/ > endobj 82 0 obj << /Length1 1904 /Length2 11135 /Length3 0 /Length 12191 /Filter /FlateDecode >> stream xڭue\{5HJ#>AFSܹ3WgooX;^;~CI(bfosfdebɫXX()@@cg+{;qcg  b`crqpp"Q<@V1ڿ"@@h 05ڛZ="662*@' hƄ 02u-쐘$cgnl+%x̀H Z@\F/ƶV6upqf@j&4r_ Ihdlj peڙYFV&OYҿYcp@V]&Vp ?O- ;S{3+;=prA c$a'`egtz)H `70F<f߈,f0KFf߈,9~#nos*Flf߈+F X?|r V6p;_fX9YN3!&ƦN6NuM6@s?̜6}m:W"4ӯ^ڷ`>#$Bl L(&5v|n'a]|l<\ qM|9>W:Hp",^y*NSsvNnC-UOj,!7"Eq l{+FOЮ\Aj,X-xs$7%*8w gn<0%6(pxCNF_67&xO3&FQz:VG: N^ZmNzٴ6M_0o}l |Fr7?E9K/3/W;*?ယs1۪nE(|p[R/phƴdO!AU(Ys,k9P f@oB><&'X̤~egӄi5 7ۛlŮj M#\ .b/\\` Cv>/<:/n}3w[OrKm%] ܆`U>2J&P2n% <=2TЖe8ۚ\w sV;-D^f.tDƑA(hFa2Rפc֖'V[hX41Py1FYڗdh{Y][jo'u :@H$YXH{g6ZqEs,sV%Oj̲(JKB*jFs=a=LKWT7 \׽!r T=%N!0 =,ӱ}_W!wSL`N]m-p^_424Y. 54D-[]'+pAnnw]4+0'r",8}neg3WIKWRCC[** XGE~EY.Џ-Q,cB$mWj GHa[u ĥ /i I,LVsIRLj"D^҇ N[wq1BT w97y?Quf &,S·476wk;|d^S~9}FM~]o傯L &KmŰxߡ걄pWhRV 3yNh\qe\M"u }F習T j9XStOg,F{ƽ$հK7(\49-d< ܭvWN5VУE([W !^)KQ1=\H ^[,s,%%rzbmbc4i a%pV/ |Zz̦QXV(NmX,'.t )mQ/ L&B+r ICniE|hR/`Ը;hJG,'2H.ƿ؉l505TQtRYƝLD;*kyԙ ͹J;jU2+3[nL.]R`/%w]PJf^N r?.% "1ǬmEacwf+%fߋdAcK#uQ..e E|Q"WnYO[R6$1P,GMA;c(ڕSL:(KkA.\ʶRviuǍe7lJ<;zFCBwƏ 4-*")I?% oFϞ24y[ՃXAPH̴s~f0V 1da̰G*Qu$0},$ |rx.G/gjItމOa|Lrrr~[˟;,YDNX%Z}ɀ`}3{̲ɤȕF i}m\.~OݹUTeŘ5䍔ftP# (EŶOy>*Hg6 Ȅ0WrCCDL{d-X-qx }_kMT*k!Jʆz͓R?l7a۠Fq"ڢl-]Vs&ޕ}[MeP|Z&Vr0ۢx8lxXZU]o!i-P7rK֛+!g<͍NsnkvsPC}zC&ʍkz|TlJ+"b]zEܢ0?fn-2n_}JAR?C;$!p?9&̧.5J !2R*B7&ؓsxE+KO)ECDh[zWہ3 fv'#t3vnV<5X}>GZ!OvZ7G1N ] }K}^(#z`O+3h)$ z\.+-d8Cgc*u5_.P*OGl|g6]y e+]t|CyAL_`e M0m̤:T zD m3 R]Kd_8 ZĿû F$+ݵ#f@Rn3Ƚ~`O K'=wo2 r k*Qiԅj.zʁ/DK^@ K0[ ~d>o&S6e @fbc5囋Кk19$nB^N='Je"*iCgl6dBnc]"~~JRضYGā_ܝ=P# 6 I~! 0NkWSvg}rQ+W^)bi~L>l[vWPuq5Pa^zTǰ$h՛viUSPcsx@^"GcYVSNm=^V5>p@'k6ON!upXy@.+)%"p/tFFDkpfѐ>W_Yamq}=Iv!0"+|38I vv|V=󹤢/ 1vtiMwAkU~64ǽ;l,vrYRʒ@JO{)/_G"zcOM ~ |5|}1 ;3[+!6"#5ԏyݳ_{5;O itTOWFo}Mc tFzbgv&?k!U27rNZXY0_頻P8l2GX%E⏭2| iI4,Qb]O#z\ NX> ja+FGOa?<#!ZuFr /@JLWM Bt \cXN:;U55}yx?^5,F՟$PD80mW#:`DnE(ԇq`'Zc$!ќ6N,O$?2ݢY݆+Gzr/ iSP u`>s1᳟{aFat~]&):Qqy=) {^'4#G= _ t4cA-C QGLegq ]5.ڂZ4¦Ť{Zٸqkn: " r0hhmVAl !ɘuQHS{Fd2HuZ+bn+(;txEW@]@++=T< OeR]9 ڸosLvfŇMN/ s5gs.ТIjI" skn ;do ( (պPi!MdY2ZD0ky/O*YvQknX<]elŐDD1$&u y = HI>XWu6ݚy"eBڜOH;!j,!*f3셥* {*?*e ui8\eQ֦80W|.ةعoUȜ_cX^Tfm6ϧ~Rmi#TW QN%6#[2 ԋޝC*3T~YZG>Gbc/9oC<߆z |CV(I^li*=Ab8ZG~餯lW)+ͫ/2$JQX_Nϣᓀ wZqvvhL"tr%PDW "9߬q8]}C^ZBE*<qqz6O(bi% Fg(l/U8こ6)?Ln z;o%vegʨÕ'S5Lxo,E_s=67rd,<h~ #|Fh>aMw8]bE6 {P)D Rɤ_mrRf㬿f}bf2Zrf.E F'^dtd-4d c̹ӻuMF+ZӤlʷ20Fߑ Nǹ^$ վ;e)=5پU3W'zSޫVNخCj v,VSLw ]"ܷUu,/Mgr,iBu{h·_62@+$Շާ_V)Rg 1 2EhSw݃UvD:s0ȌIw]}'SVK]Q y``Af._Qpp3^vVEG%l@EE 1tQ~;Bfv0.섡[S?^:]RF 1C{8,vуi5 lX]O7lF ݫ"rذ?iLQ'\ClM\ }3"O_FI9oj7r GBdlC{^uL?GI1pW=O `ZSx7=hC ~fؓG~ Un,KT -%kUM~ŕTK<ԩb"LF% r˦  ҭȰ[ll @8v}W2AvSIUrp*8.#ִ9,UQe=o &n?'x zT(\]XӛrZ*WI]t*VϷX 0WMlg"~$pXinś tP߆0ٺ*y!ѩ)x,fc8R8j< =.?L:u 4!<@=A\g#B}~!tJ8`k_?|yBv„|2]\t%#&Z rŠc/GKFCכ0OK4rjYa]hI3hfpd@~DãYNoEuǑioTanJ tC紐xd7Fc*gũG>3k[Oe',;kIKѤkPk!47δ{M81zt#LsP|Mgccwd)𶟭ҰZ_=u>)N^#b+z?y> 5t8Wl.jP PQߦ-57wOIaP{eHYkLp[枽"QE]^kf[nw{o҈V95\!=FW{)oƾlI#3oI^Qvˆ$J杬mc/d9<#Tɿ- 㾩e 6cȮ$Ǔ5%O7D@EZ"}>Ż{%PE)M O_ z&1UeV}ES5$t9.sCQih|p?au66 P{ (U&84KִS(,v"r$l?!\ygIln]ASo.~d'nxed_oy$[}Y$q W5uz:4# 3 ';&C\E? "پ|$6=z<:z<̈F8wE6 eN܊V-6.I, Md49.t'|ieISqEVGGcSq7H_˕ޭe B_ ^ga3Jߑ{vS 筩l4qʦ&#O0~ufǏcuĩ>U&:YG>M%3mť=!2 ӱ;}ä+baSdUAT+4*TVˇk&%cmGM jntm0(Y;YCֹZHuG5qUt;}GrA#!u ;`)ss{*xu+(׬2r8Lhx:')-w $6C5 j_N ?? H2#yh:kn-6ầ ZrG>kysM۳ "odlA(SCXkdj n!(@5,8qj/4nO>`HfdZ!EXٮY^YMn*`__Nuiȑns4[z)k6RbcOW(i_{A5ZOOR=0stFS5Oɜ/&R([Nv|526eu:ȮN$jѫ®b|n V8Ĉr'-3>1JP"gJPC~,#+loLYf; 'RD: <GW[.¶B2,R.o~о*?}"x`[-}眦)eFKI=$w9ruXɷ?7[ 0=5#1?v զT~ʬE\v&"Sm rTtz60ZKTg7;n\4 q+׽Ot%tI@cn#5TDh8(2fݘ/46UG:$,J&3T4_N_N~BFjKX\'7ž[\_.GZCDQA+si%pҠ.Bڧ;N[|x$V@bT k#I zWj67$*#>oԇVإJ; z2 [l?ci*Q|%*΃Ớqwhh2W^f~(~Nw}q׏7o,"7fçE/ƶ/VPZfӥ3))M'ZbX7Z7~K(n Z:_TJa{ǴFu<  Ӓ^onWךN^Q)}w &V/q*y%K!AZ wu-&U$;R㺔o:6oM  {Z0v>tC(Z ?j-(DZ/Kό-?w|3N8ө.axZuǜM^Fcޟ($9J dsh "rs۠Lio4]i(? #$D!*^㾟sagm46\IE[dJ,K")R>ވ^r灜zG53UmsWl~ZzRqۯ  dKgu6??%#}o5Gϱۧ.`4嬐TѨ Y_/@=z1> endobj 84 0 obj << /Length1 837 /Length2 1160 /Length3 0 /Length 1714 /Filter /FlateDecode >> stream xڭRkTSWS ˣ H!7D !0K5`rD(ࡖ ψ̈)GOeE tu:~{|g;B7DoDX @*":8pC䨟Yb2is1hFe BDH 0TGV  8qnr]a" H%X$B15e22W!V }R%uˁBX.+ޏD@r\ -؜,Et@%"2HP8r)!^KĥL$ClT*u!(7#*X"@0qɔ|F%K G \~_@X:i湂y (:7bbqQ\R@3HR!X`nڝ1$%c_x8]9GtGE#ydž}}T7}`Q=,NV(`_)|tp<Uأw|SǰpsڌS]]{ޏ;Hh?ƒzQ֕33{lXwW=tJf(Cj"'mW,> Hc<?pta٫h=8>J.YL-f]ZYDe4TxF,W#v&BhMj4g,_Ӫ`KZ{yf i5-q=7EzQkT-q4՛`VFZ_=]{Bk$nʛE[0辤֓9S}nt»cC䯍Y< FӤM&Y7~b8L T[<~naQG]8vʃYXuђoO$V_Ըn1=x݆ړ}}=G@$ǏuauSygY9 GO>2{묊gi76Y1{qv[c`Ft4Pr>d}൫}cFw*REZ;c3~r!umt_ٸ:0loŠl#m|Cwu_ŀ0x\|>pOe`bSf-ovqiنt]d嗦_?Py|lƬ`s5Ojsf}W^|̕{(wز*w/mU_K^峎]pHխ%ME.d\5P˶ xb#<:_j[)֓k~CH?`MMFc n{ʽӫ>96eU߼~Ph~ݽgNu} =O>d^}#=t@)|4X '/Fi4yX’_״ik_I9q7cu@XnA[ɫ%I/YEa1uһ-~ԭ݇Op̌7tu_.}fHV|Cc3ک0pW )e%ƞeq- *6"֖se~YžnM_I lZXjj|PX~xYzv8aJ_S湘LOom?7 endstream endobj 85 0 obj << /Type /FontDescriptor /FontName /ZUTHPM+LCIRCLE10 /Flags 4 /FontBBox [-2000 -2000 2040 2040] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 0 /StemV 40 /XHeight 0 /CharSet (/a4/a5/a6/a7) /FontFile 84 0 R >> endobj 86 0 obj << /Length1 801 /Length2 1492 /Length3 0 /Length 2043 /Filter /FlateDecode >> stream xڭR{8TN6N Vjnq i3.h8\473k4VL%!մ۹hSJ!..ORɴ2$[Ess{߇]G$Y{9TȇFA @`gbXODA`ۋ@.Htq.x'  $bQ9L !!>ˆU `A&ģZ)J;ʤ%o=K4 V_69}N>ЌWM낵+gحlԸ c&9f>xf&.dFoМrʶ">S7PAyN'h-}ݒnvw5ŭxeNu(sf_ug-vLr]~/N,MEN#>;7[M ^|C7qvje)(kmh<\SW֒*=Ӷ>Qf=/x!"3]Ǭ.,ZPS `I'u`F%{WѠ*䈙q88.YeLr([-xԦz3R8드[BpoId| Z{q ٠2ZBQ;1gJmy[jH4)z}'N{^;1nqȽW5CyVܠ 3 y~6PҫnCF,7x.jo?EeU~l`t|źD7Mx+:S μ5#T??1+L~mO}߾\#öb<(yvSYpdg 'Ӄ_GW?"z҄SQ'K$ &!W WMuP>Yٲ{Ȱ&h 9N_ k{/47NNySc闔.Xbf4ޜ!<6xAnRIŊIدU#;}T\hQrM\U9mK.H;j}eiK*!9lGmqyM]|8ȝ>٥YFO 'J#dzϒߜP svduhZr5#y zI?THK>/tO^J6vRvE^QcT{5:u5VxKanֈO±f =' .JxOqԮU.z qUe̾O^Xyl~,{=`|=11wҨ kkz.p]QnFK^y (і+)֚Ķ~ū#RJ]s|\_Bٌņ"CaO7Su.I6C- qyo 7ٛ|9 D t~,R]*WVqqŽ-vd-K+ }Ư#ߚ@dii>5+-|r̃Q^R"(d[rw}1avwꉭmo%l9AKmCHb#|}}%~tm5L|S#qw0ArUx5lX)b]hfV+ B endstream endobj 87 0 obj << /Type /FontDescriptor /FontName /JHDVMP+MSBM10 /Flags 4 /FontBBox [-55 -420 2343 920] /Ascent 464 /CapHeight 689 /Descent 0 /ItalicAngle 0 /StemV 40 /XHeight 463 /CharSet (/S) /FontFile 86 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /EKVIFL+CMBX10 /FontDescriptor 57 0 R /FirstChar 97 /LastChar 121 /Widths 53 0 R >> endobj 8 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RKJGIH+CMBX12 /FontDescriptor 59 0 R /FirstChar 33 /LastChar 121 /Widths 51 0 R >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LSYKWA+CMMI10 /FontDescriptor 61 0 R /FirstChar 58 /LastChar 121 /Widths 49 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HHEZNL+CMMI7 /FontDescriptor 63 0 R /FirstChar 105 /LastChar 115 /Widths 44 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YZZWYP+CMR10 /FontDescriptor 65 0 R /FirstChar 12 /LastChar 122 /Widths 52 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /STASHS+CMR12 /FontDescriptor 67 0 R /FirstChar 44 /LastChar 114 /Widths 54 0 R >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HMTPZU+CMR17 /FontDescriptor 69 0 R /FirstChar 78 /LastChar 115 /Widths 55 0 R >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NGUJSL+CMR7 /FontDescriptor 71 0 R /FirstChar 48 /LastChar 49 /Widths 48 0 R >> endobj 28 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JBFBDX+CMSLTT10 /FontDescriptor 73 0 R /FirstChar 45 /LastChar 117 /Widths 40 0 R >> endobj 20 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LGEBVH+CMSS10 /FontDescriptor 75 0 R /FirstChar 34 /LastChar 117 /Widths 45 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /BaseFont /DJAWCG+CMSY10 /FontDescriptor 77 0 R /FirstChar 0 /LastChar 56 /Widths 47 0 R >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PXBGHL+CMSY7 /FontDescriptor 79 0 R /FirstChar 0 /LastChar 0 /Widths 46 0 R >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /BaseFont /DPLDDO+CMTT10 /FontDescriptor 81 0 R /FirstChar 46 /LastChar 115 /Widths 50 0 R >> endobj 27 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IJSKJW+CMTT8 /FontDescriptor 83 0 R /FirstChar 33 /LastChar 126 /Widths 41 0 R >> endobj 26 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZUTHPM+LCIRCLE10 /FontDescriptor 85 0 R /FirstChar 4 /LastChar 7 /Widths 42 0 R >> endobj 22 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JHDVMP+MSBM10 /FontDescriptor 87 0 R /FirstChar 83 /LastChar 83 /Widths 43 0 R >> endobj 14 0 obj << /Type /Pages /Count 4 /Kids [2 0 R 18 0 R 24 0 R 38 0 R] >> endobj 88 0 obj << /Type /Catalog /Pages 14 0 R >> endobj 89 0 obj << /Producer (pdfTeX-1.40.9) /Creator (TeX) /CreationDate (D:20091214212252+01'00') /ModDate (D:20091214212252+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.9-2.2 (Web2C 7.5.7) kpathsea version 3.5.7) >> endobj xref 0 90 0000000000 65535 f 0000001333 00000 n 0000001228 00000 n 0000000015 00000 n 0000106215 00000 n 0000106076 00000 n 0000105375 00000 n 0000105937 00000 n 0000105515 00000 n 0000107052 00000 n 0000105655 00000 n 0000106354 00000 n 0000106776 00000 n 0000106915 00000 n 0000107613 00000 n 0000005734 00000 n 0000024786 00000 n 0000003571 00000 n 0000003463 00000 n 0000001503 00000 n 0000106635 00000 n 0000105796 00000 n 0000107473 00000 n 0000024852 00000 n 0000005612 00000 n 0000003733 00000 n 0000107332 00000 n 0000107192 00000 n 0000106492 00000 n 0000008636 00000 n 0000008763 00000 n 0000008897 00000 n 0000009239 00000 n 0000009705 00000 n 0000009903 00000 n 0000009923 00000 n 0000024764 00000 n 0000028139 00000 n 0000028031 00000 n 0000025004 00000 n 0000028230 00000 n 0000028540 00000 n 0000029122 00000 n 0000029156 00000 n 0000029180 00000 n 0000029265 00000 n 0000029749 00000 n 0000029773 00000 n 0000030097 00000 n 0000030127 00000 n 0000030515 00000 n 0000030813 00000 n 0000031331 00000 n 0000031947 00000 n 0000032109 00000 n 0000032498 00000 n 0000032744 00000 n 0000037910 00000 n 0000038162 00000 n 0000044815 00000 n 0000045140 00000 n 0000048706 00000 n 0000048958 00000 n 0000050894 00000 n 0000051113 00000 n 0000063666 00000 n 0000064099 00000 n 0000067901 00000 n 0000068160 00000 n 0000070502 00000 n 0000070726 00000 n 0000072560 00000 n 0000072783 00000 n 0000077430 00000 n 0000077697 00000 n 0000079960 00000 n 0000080201 00000 n 0000082234 00000 n 0000082519 00000 n 0000083706 00000 n 0000083929 00000 n 0000087865 00000 n 0000088108 00000 n 0000100419 00000 n 0000100941 00000 n 0000102773 00000 n 0000102999 00000 n 0000105160 00000 n 0000107692 00000 n 0000107743 00000 n trailer << /Size 90 /Root 88 0 R /Info 89 0 R /ID [<7EF698B21038F359EE130CD96E19B6DE> <7EF698B21038F359EE130CD96E19B6DE>] >> startxref 107998 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/seq1.dsp0000644000175000017500000000004111702130733025314 0ustar orlareyorlareyA = *,/; B = +; process = A:B; faust-0.9.46/documentation/faust-quick-reference-src/images/noisemetadata.pdf0000644000175000017500000101462211702130733027257 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 1368 /Filter /FlateDecode >> stream xYKo6W9m)(z袛 lY_=(l %䲿Çgऍ  "Ǚ̈"v@x oDTaF@)b:&(sh>EUE ?u(FJfcK03NØ$8Dv xi=2ք9Pb ގ_$%"9V & x1 CkH l90oShd`g,rSn1$SX N bMnJ B"0dreuST1ӣ\iU}a8+8s9.fmxE$[FyZ'X+Md)ghrw %aV;tS)Ҡ:Cӗ-SZt0؜k9򭞻`˒" &+yJ 8l/a +@X 5H!. }p5 ˎ*LԩeeVF^,-'Xf-s3-g9yNϲks,H,VEVi3I&ܤ ?RT`6 hIN+C\誧rHWH/'x'ؖ cN%ܝx^B„ї7EkT S2pi Y0Ąp4,fztx)_\J` ђ>,)5GZ!>9\_dw]j -E-!X"[B1[A8{7Dwk=㦘<|Ơ:,x҉}Xƛnle˽mXr)> endobj 1 0 obj << /Font << /F15 4 0 R /F16 5 0 R /F48 6 0 R /F8 7 0 R /F51 8 0 R /F50 9 0 R /F53 10 0 R /F55 11 0 R /F11 12 0 R /F7 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 19 0 obj << /Length 1327 /Filter /FlateDecode >> stream xXKs6W>Qm` dzLi.f\\8Hg @hI>bA4X40{{b"eB#dIEt\o뉤4=3VqɬEX&lZW:! |ñp*Q\}A!GOe ДJvW1j &.Q)))HuJ:p''ZV 'vyx” q!=Wѽ\zȹ$Kld.71.'-2gZMYov5tcچF)Ysc=9a tmcZ0˓Ou6<%%&`念o#o@T4Q-nph$SE,G> )]Zئ4I4Q$ڴpDٰJ,[~`h~PQpE jI[@jgn6ϋ".o1ugҗ*T~]j6juu[WWEDM4oϭ\+%auE !+ -m9T"u8{.@hBt{+Ňm,ٚQʣ;pطA s|Ux=x@.g6˨$O*zf>=$ 3k 6Ĕ9D4sC TN3!ik:c]VX ?qC]ƅ 9T]iݲ[r7ަ1gX;K&y 7WF+//5o{+A%#"eyPxa?;3n,4Y&>7r]Vik]CFhɣsZX9q 0a52,:[ة֏8uҍ:) M*f.sW C8HO6 ce@ ՝mГhu"\g=IZ'rN± /p 4b0fNŚcxm;`Y#IZ |rj ՀjRg&ԣW{ ul@NAfPg0zx9Swc{p9h(ҘE2:M-pnA \'lƃI8xX3^4hV#)1 !)" gm.|78 E dS["Ě?73 endstream endobj 18 0 obj << /Type /Page /Contents 19 0 R /Resources 17 0 R /MediaBox [0 0 612 792] /Parent 14 0 R >> endobj 17 0 obj << /Font << /F8 7 0 R /F11 12 0 R /F7 13 0 R /F14 20 0 R /F53 10 0 R /F50 9 0 R /F10 21 0 R /F56 22 0 R >> /ProcSet [ /PDF /Text ] >> endobj 25 0 obj << /Length 1379 /Filter /FlateDecode >> stream xڕWIoFWHxV'i Z-uihJ¥}ߛ]Df{?("J1ݧ;lꏆ{O|_k;)H v@ʄ |SWQ (ڄU4G7TgZTcfꅔLiNuϛoR7U 4S:x5܁5BHZ]-}.W%}w&mUIͣhR? `KqzX[Z>sZ:?vgZymV(cU_ȬMR 'SaA ${ۇuKE%EF3߉Ņ]ݙ' gjf8nY/s˼Zu eN0Y״L 68sL(6վ i7[\pP,`ĝOC s/};:fEK@Xh;;+=' wGѦ8ٹ_geoe0BV| p|׉<Ɨb uH8Vo`}D嘒r+CC*&ު:K͙u (NiH` DxI7$VweIE8$%dJQDBNmȎq'L]щcrdH]kkkrcmؕ{dg"`PT|lGɀ0:#`VF`h8ZCzdꉎYySN!egrllyX tkI\We5tZ9F#-(NF_;%_nӟz%4{{n~_ȧo9[rb X@Ϟ~d1G`lhfj0㸏gڀVT )I2Dv4NGpZV(3i%N\flhKl--( /z":Ez=trxh:x໒`ruBtrA =y{% Z1[i/g/HV}Pb 0݆XӏP BvB„d|F-@ba XX(Q%bL- ֨I͆/I`542OV/ endstream endobj 24 0 obj << /Type /Page /Contents 25 0 R /Resources 23 0 R /MediaBox [0 0 612 792] /Parent 14 0 R /Group 16 0 R >> endobj 15 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (../svg/svg-01/process.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 32 0 R /BBox [0 0 549 459] /Group 16 0 R /Resources << /ExtGState << /a0 << /CA 1 /ca 1 >> >>/Font << /f-0-0 33 0 R>> >> /Length 4995 /Filter /FlateDecode >> stream x\ˮ丑+JS$F/ 00 jE;eȻb~RT*SF^"d=9_qolC}ffg-\dHN?7?&{PP=i.>S);;!m8?')D?M>@M >] co^&kü,kly_@+r;#ss Xgwi9cgorSfTCFaC]7Ń.;=:A kCe%+rSĕ0ӐH!;m@.Մua.[/d5/߿?fz\~2Xq'Oކ P sJHKƺ\B4*:4}ņge Is%Y%: V CTuSԽcd~h]Qa㺡侦.e^ '̟ܩ RD#rT+kQ Xgq@)|7:)l-)@Œԇ6j:j]'O(jrsȹWTE%;gPBHӄSeʠiSEDɔjTjRHR !54u52+cH3>fs~E<#Zm9ݷFrc w0hm7 An-Z!HkKl;T[;.%la Q[C P-B L 20΃) Ԅtoqn;W`@u  t(m-̭%+h]La4Wq]%`oupI!9Bjt~dZ;pT_fHv^, Fr 8c2#8ֶ9] Oa*a % nkl{|(۱ђö]yOCQKeWB&#؀V%=$Of?+BW2n)Ӣ!ȭ!ZJi$"! )``-ZJ&En 8KrRL#1l`0> ^?Ր+tḁ8c9Dn L[i$_K4ڿ)]7: Is%Y3=<)vp!9DNX7ly|[[.d%oZv03 f!"ZiH1H4=A4=)NQRMG"gC~(%ZO%1ӁTu3'EA ݝ"}ղOe: M5X`%l69jjrtӴWuTs=[P=ₐ;rkq5)6ݶOm:#bT8)4LP?ubXAB[An 歕RdXn].(KH35*𱈪t+J\qzφqJCd+EKc%׆ 1UX+kCsT1aқ=⑺S:ژ|`"a)MmӰҝ]xm:t:ƵHKbk7Er z{i\Wj^p )@L<9EH#qlUqv\x q `:~oB7H"ؗ d-TQPIM[\C8.ހ[gkI[5qHUdxdZv:`,``f}kpw⓭}^<-ʾ_QRdܒ?z\ ,H`E^U~"zXF"g$?zm7{1{%=+o-6P@ZڳJ엶gUXh% \Ku^;aăyksnU,eZ[œyds1oqS dBY9mW·w;:%<՘sb BkAU֐'y7-4Ҷa.w3oY $5$ʡR`hH T&ཅ'Cs?BEL5ii\&ZZSKKO.~Z9Xx-9.ذH<_Knt|lUK)2D,H~,6R^];vr8~-|DWKaDZqBTd-3tkq-U{~R \[Q*(=nZP t<>Ac)wog|VrqY,-nNϮ["c[2>dkA[D|\VMYACxCَ픲l r?+lKjQK[1TjOB1-d9+R@S}A=]jƛnȭ! "HDfeCj\dz|+rk3NZ)Eɏ]  G.8{M׊<ىax<חFGv'MCaf_R&-tR`hXm:tA]\|o=E_H9_i*|==H{mN^>qb67Äx 0nsaiu92=O9[p@>vBSƲuk~kv/3h:iCٮk8ە{+"H"PgD4nOMHΆú"͆HΈ D,H~Ȍ,Q}fdZ6x]| F"P뛵w4e]+ 5u=ZzR[55Q$X8'=3(%btu:QE^-Z\|%{ܝ0KU&3pk(2 486fx@&&(PLe q-ȭ!>kZJi$biF#3,| rw"`7QQ au!="bC,ҥB!iNt; V %EH./U}9ྑ3ڨUչOit)g|ĆY2gۛb~QƊm1=z'|Lh>ζhn0ևT{s!yXS*v ȇNXký;4VϼՌ&}>g7>ZGĆԯ3}C+y'kHst5w}~Nyl|LL`2f~9zߩj~|-V5m׸QBzlpx/珦:5uO_уZ%ڀ1g-^fzN^[ lRz%;zhװ``rh gVm? u_"5ׄ"HDQiP_ pSeFf>1$qo.._`=ܪ֫ۜ)M5!I/  "=*Q ZDCTuS(*4YT<}?>:8^&{7GrExq]] ?s9\Xu!D'kou? _%^Duq}|=v\dm )v-==mv1grpH$V>WpbKx8}ؗdK*7c&Jc@?v;FՅVֹ.Le2 *3^Eܥ endstream endobj 32 0 obj << /Creator (cairo 1.8.8 \(http://cairographics.org\)) /Producer (cairo 1.8.8 \(http://cairographics.org\)) >> endobj 33 0 obj << /Type /Font /Subtype /Type0 /BaseFont /Arial /Encoding /Identity-H /DescendantFonts [ 34 0 R] /ToUnicode 35 0 R >> endobj 34 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /Arial /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> /FontDescriptor 36 0 R /W [ 0 [ 750 556 556 556 556 556 222 556 277 583 556 389 333 556 556 556 833 277 500 556 500 222 333 666 556 277 500 277 500 556 277 277 277 277 333 556 500]] >> endobj 35 0 obj << /Length 37 0 R /Filter /FlateDecode >> stream x]j0ϽvEk\Aѝxv|vŒ!~1o`B Oyn̸ͪ юI`zTk&ne1ÜTK?|qYOz!aoN͕.-~joDfeYRL׽tah_:>7KL85-S:sSjOX?΅v۳,u N HA%@8w$zP-G)ųh$P9@<iD_)A ?_;_~~%/~EtYLD?ܵ ?`|ϟ9B2m4t_S !Ҷ endstream endobj 36 0 obj << /Type /FontDescriptor /FontName /Arial /Flags 4 /FontBBox [ -664 -324 2000 1005] /ItalicAngle 0 /Ascent 905 /Descent -211 /CapHeight 1005 /StemV 80 /StemH 80 /FontFile2 38 0 R >> endobj 37 0 obj 378 endobj 38 0 obj << /Length 39 0 R /Filter /FlateDecode /Length1 19660 >> stream x| |EpU5s;N&3 @ !Is}A"!++^ ʐ KVY]QkaXv3󽪙p}t^իxޫF)qHh|W!T0nbDGDCHt㒹pEU,CH~U7~;'N}7oΌU͆ ^bҏA:wޢe+7͵NH?pDEHXDNB;HkKYh!2:XP-#q?460vfK8l+]![#~'e$ l":*티v$O* ȷj,`2Ah1YYkj2lgtTmYh[] ׸WukF+QU*u.Tֿy >IhWFNV/ܲ[E2lR.T';m6|˪ XSH~i,Z@I<MDqj#D EQTEGZEwv:esJ7drѶ[ih$NgTޢT7֙0H< HoHWbIٖ[86ڿ}?32 ~5fYY$%O!2/KQ x$s>Cab8sAnköCg9&@m kT<@7Td1YCx ޲n,jݹ.XJ\쮬;mӕ`Orzh0 P[3#FB9׿I+ s9qzzcxz^rZ/y/n\Z>>qF?&S_.(t<)FMBjf)J+ 2&#Rפ]GZ=R=JUUj+B=-@W0_0fvmZwv-7r7871+11^/ `̸d=Ky0Ji7MkDP^֚]"jϽJK"[{{:Vx?L4#vӫbu.Zk+ygV4 1(wJSK'_D{V.DCʉLin[fד\:olG8?]ydCO8CV6뎻5udvog_= AǙqDo53=jzIفϑI$A1r2x'2rݡ+ :WA3J6v8|Nitr,9R9Lj%fg)"*G@N=;ЀL*RReP=WyVA\QOZ@aj!sV{tcIӻ33+i1X;M<¤G*L9{W0 J2B6ΆɃw2<nTaw8XNiAHtna!UAjT@mX]nQyăGOxj Y6`=$.+R&ZgpzOTUDL1`5.GvF622G6p/ձw׉ 9nܬ}G[V?v&VLK[BL66٠Q?~[r\Oge Ay,oOg1ցݎNyE;8ɟN,O!3'mS+Wi4v`ϺBM~a8% l#L(P`icQVJl;v!\8Au0#Mw ϫWySåh.]S Ne]fl1Yr=:G7S褓2FyȦga5`S4: #QVv:M^ҿ4ig㡪Wڿ49!K<;G5l [I6h4)JlL;. ʙ ﺫmG4?9OY0q_.Q-E]@~/2z$ M$7)o"c !^uS}nJXӕ]~}ðd ֱh[^[]i|&#tL<9mA),^pfnR"O!s\IMe-L`MDD-}Ɉ+S KLiq|Ol5j%eV:fѸE%T;͸;?1-cw8˱0c޿,0b >,=9A>?28&m+eU&֠ x>M"뭞[WzTF,X̡ڙ3TLqtSԚ'/xNJeC/pkWޖHH$oCgyx ),>5s?w&UIXe m7K(x@dvj5N X#BCψxnAQ%EG>M-ʊJ{LK;w$D$tKG9}s>knjʁcbYZ{3|ֶ{ ,e'x5M6>ȁUR~?_Ƌ d&A#Ej́$Tm(.S"Sw1݀w1t20Ncy iRӨ=&R`0R\t'І6=9:gyqFV/ _Q9fk2Tg\]Pg+on(b^Qׯ}/3S89/Ş{ X{pN62D2LXD J+«QS 荆 04Z0喺"E*vK"l천p;,)[! Jg -"ŽmJl |yJ1f34O8;vmE [IHf^y.=tU7rYGtiùzݒSJ5l룽 Gts( W؆aONQ!HbHD Mt04':])<߀ˎLڌ].m/t] gG i>?QcXPY)uSV2EtCN,PKPo#F-81To\*3/Sew{ӊ5{2y/vb冕z_k4]ϸʳ]5PG~U73; ; asyY(s# Ήd0Gt?>t|/2OAW0U*}5%A5q $eRm:p2<'|΢ bT0J6d3yJ0 ۬aU=nêMۚm|YAv`S1! vHY6 e@ڨ^JWٶ̞{H:&'e%R3K_HL $7t\JztW%󭮱`H^R&H)~``%o0ںW<+XڎC߽yt͆=dF^`o;pJVa(evIF SĘa`0]ej^L:{kgH./r܌3dQ0_M&)כrs9B-`4:slYl[IMe"FS0"i3SwKJت`GrRnE3ucb[Dmf0AF&Wҡ 󕖧l6;_w)@׌zDa>;p6λ;GPڇ#!=k8hcH#`>\0?-B>kmBǯ @ن|^U9[;$v,6l㙼x0Iigc'~6¤QԱ=cu +_lϚS#F3Gɯ 7r&ڰGi{.DJBa|h"tƂMdvʖZMٷl]i'2lަy+۲s2A]Z9r.)vHt3ƥ`\U7V96ژuUv,nHckiz4cQH2bPgx(x߼6x];l3}f]{ tCuq1TɡYA:ꚳ!n;# P`p_#5/Aoظr'Zwz8&e_ؚ D[@U/˹[g@yx99{ruT:g>oMGnO&c30ML3N3M37̗+M$ԃ ]$ԃ VI}Z$7ux NVoл{[^VWc etnb+Ÿϴ̅$3!)Ç|s8>Oi1}Jד x^e<MRn'Pq^=n#C|G |켂bRU\LUq. 2:\+SV6/0>7$0~z`}oF`2<9Q [n8Wks[*QUP$?%OIM`362ꛩA9Lq36T‘ ;]%jXmeV[Y̞`RA˭(1Gϳ]9M"Wv7V2?sAJ6{`9l8; x&q;!VZ}7 i xv6ħUmyxaev!k>m-b A6T'GOJJgKGL(VPfU.{@mcrVv)ʇ@.E. uB=O) z|9T2eLSHP+߈o$ y%LVV7+$m4ȏI5[y^9>TC+9xKG\tEtT ~Cd1 BiAN\"&#u>mFFQQU3z" aYqʲ8B91(H B()2Pd¦rLߣ e8{Ԇy|u)v * jmum7(N@Cul\3+=}H]sOZA6ғvwBP>+zV>}VZKŰˀp*I Y K`JIkB!\@f2JJ#܉΂VәVX$lt᯼w` DsJv,:p2a鵏)mN}8X}9)n椸=mҍ;=^!_ܗ>SXxIO5|J/iʬgYa}v);$0o '}YTN*Sgl5Q2*o#G?)(X>ȋqBVxScUcvj}ԢeM{?qFRFw'dBB#(E(]%^"2 aeᕝ祽ovꮤЯÖn|'~x[Je's/8 xv(:tU3&le(9 003 mMrQ"9źKtn%V-oJ$]f=Ϙg377YQ=e4 U[d367;69V7T;UrܭL]0u.+g^~^QrդvةN#lW6SبUX(P@ t=V tc]CvbCZq+QK@%5qLI1A"+ІT7z@FP Qϝɺ|$gE#RP!c1>&J16~xZF!î(DHD$χ)$CnZj`4"Vxvocl u"1WUmF`= =_g=)l e=^7^~Sט:|]1 /gQI5T*9\#|GdVJo\ &jafl̬5Z5NS̊c|-&;[+`;[]4USKXۘz9ve zs:+YooЗOU'uiYK&%v7Ч'>ݳI׃` eB TA JC^G׺̵: y֛\7:NOxsvՄ"kPeՅkRMj ;A%#`1zrjԍf#:7(#;wq090{+/‹ا˰$m(„t8b>Xp}ON] atNTUUc;i؛5r٢ 9KP.@EԘ IqPQ('Y2\3w5^;Nog)疱[4%$>z?xhG9QW%p;ۗt7/D%QHa( υwR=_ڐqvY-TMI4l>^L|DGQ@y$vqzsH)z@iX4-Fk$ƴekhH/MRVL Q'|qWm;2;zw?tPXMe];x:e!|YQ1ԋP[vB-}ivfa* = Ze=gE_B6z"+z*^ sU-kN},1Ÿ`.t>C6$l~0,BJ=\WL#e9':&__sV f24p%f=^e27}N8Ktb@1=^Að)pedѥ1`Zr{1c41Xg+@F1 پ:cAƥ~Ҟ5`aRNҚ5b5v-=:er"4ѥkȥS{[q3ϼr"lz]5S7]ܯÙXى]O,|^#UG#w,+E< ၜ$(TQ&8.}'5 dD&dFdcyv@ȅȃȇ(2Q B?(P.m/OxyKo{q!5-1HBϣqzB.l1=6B&4d;*BOFסAú' u:A ݃M.GINTE7%9Y7yi ! YM~/O7 =N=jסf8Zx Fn1h4:;aA_a^ VJƓVաyQ$[< VBV:Mɳ@Bt5̧wr*zGP;X0 ł.ܒ֪ }M~Dr(:t6= ph)YL~-/w٨0)DqO/ĩV$~Gf#9F_q/I3`7Ex<ë|~dD3<{ DSX/-~MN)dqr=F fCs <Ɠ܎O z9? ؝OI}1> t. / gEtO(1`5ў dJKF?Bc· `|-Pf:J]Q + P Ll}HJsCVr?i'83rV.+Frun{srps?Ó>>ʏ__ ӄw/DE\$;H8iT'mJ;@{Ы>ŭ媹=^R{hJm +Add;9Oqq ~D'"D?s#R4фZAQU@Qt;% ^nEjQ6zkķ=!a3"IK".*>GwPFE}%$mnGfWs1'8]{TF1^Ar;a+h0 GɵhP˿"OAah\1 *@z`7r<9_L (<@Ư-G.N"h`u@忓&E$碛ޠ6$WCϣ/<^6,OrLMZd"yj} +,@-DTܜ;4#h&Y~=:QIb ٝ-D%XA _>4C{0[2!h:l*@6&OW re%`C]-蕟 r`VfүQsTdTd$ /y Ix?1<ۉZ&jʒޅU[-4b2_̹X0Vb5.Rk4Im4sYbފφi[ԁ4jHk'u}weΌtV(J"AyFEa0,]ֻpE D@>4h;#6ȟM̈́Dy|m*VEcqROK:{J2&Ӓ枒ׇۙ7D.YUz8v&VRmͤ+RX14F+v2MԚ|DԳ;$p%ڈZ?*ƔK|ӷXt0W]bx [eͤ--ejNGhRm6,&d| 1\ RYi<?ʝ GkiFԷH6 ijey޲q:Gl  ƉϡmTJ0V?4F IWD7Jy'jz =y^liW\L~ʟP]?rϹ 7FB!E.-y\&ɋh. ]޽ !?}v"}~ec+DR< ]\dL0W2,}B ;pv 䚍.Be-ro!lD(  w J >. ޚw}@F0'$)0y|&dE<^zF3<.uPPBmb(bb]x4˂|5&YTX -2@Tq^x crnt Ecl z4g1CgYι[/[fQ,9#VǒmRxթjS My.nb.\0I | FVe8tr#qsn5ۊ($I΀$ߓT j؊ 8 !(!p$B[v T4r]P_`on:ȱ8:o!7P(%o{ qGțYA4Q!V!.r-LC@ EUcl!:;hF# AҊaI0`@Wvm{$ " "wm[F 2{>`4L "c'Aͫy 6Jn* Tt3ӱ(Ulޏ I<7ߎJ|nn:n>)~EB#e܄#9sqzu Y6 W c%@ll <d)*i9,T}/2/: l44` `:@'$s`[Xh `:3" (=4EހTdl=S Qu%YxlV2# fu`/3^eBlM[Z v[#C2C((@M,]y x) oЯ:xr^ )vQrF:0D5Vu_`@#Z(x5x;o .9 ["SၙA  L* !DSh Wub N.BAV+B)[ J_r`1 ` IZZN"OC*I2`7jHġ&9 ':VT3ih|@CJNGkҸkwc|o rdc'i:?!m8=VTym#BP/sfbmX"XMWڇgQv7P=sb5x 4V34CVޣzax2 zaYfxLnʭ;7qkirk9:0jFGX#fZ'>U JVU>`UǪLT(]e*XOT'c>S| D9CQ6(6kuNCsw7Դݳbi5R?s<Ϙ v hhZ9[郪C3F+-M* ҾFBq9-I*}ӾF#Y_44ۈQ~gdž%)44nEB@h@<ϧTȶMˑax ~l9%x*6~PVg o۶&^0&^^nIz:<|TfH39bEWId9]y:f_Q4mXPSgL" &]`K)lQFzhk}D˖4-ԛJSI.() D endstream endobj 39 0 obj 13822 endobj 16 0 obj << /Type /Group /S /Transparency /CS /DeviceRGB >>endobj 23 0 obj << /Font << /F8 7 0 R /F55 11 0 R /F53 10 0 R /F14 20 0 R /F11 12 0 R /F10 21 0 R /F57 26 0 R /F7 13 0 R /F45 27 0 R /F18 28 0 R /F17 29 0 R /F23 30 0 R /F20 31 0 R >> /XObject << /Im1 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 42 0 obj << /Length 2734 /Filter /FlateDecode >> stream xڵZ[s۸~[iJ3LN'3[;y%.E%9H$Y" ˇsh`ϒ)C2Li…Jng]/c\%%c4HɌHX5nxŜhjY YkDeZo.'RtXedU _L339 J~$w#sT?S:DKޔ%P(Dz.Lu¦LEsM.j~Ѻb6VբR2aR4<0+٪]N|oLe# &zW۫{<ż$>?̌|;0j8<@'WgL|'φ%EQwp:]ׅ똕m>uG76o˶:'/hWuy9{ceMw|90fiN+ȷ Z5}gAhlE |YVYt43?`q\@P}bQ#Tbs/l+)ϩ;;_Jj/MwYU .#/;x=,-QcY:<T̪jB=Ġ Fe[gˬ*1k_XV] ytQZW_`>F,1N.f8ұNU5tUݲ.bÏ:^XSgwJ.]߲pR]uUPhJױ,ʗC3ǜɥozӠ+MrmD> 3DQw$vTLd_dDN OK=D(4BDIر/|5~zWD6<䃂AW(Ώ, 51"!*MۣsMt&!/Y~NƞvFeݕ] 1'Y8L~R>ǎŭ7]E?(0a#H%@Ld/aGMC C_bH!;6Mz6S2$T0D -:O||p@Cp1w@@J*l ;34! T+-c/T< "GE%e*2q3%`lyTZm ;8A˩P4fk@\ªi@G9qcx&a3g :x4ex)O|>GuջA5$D'pr܏z,U冽 範>UD14'La<>k˩@?&4-cջx!]&9%G8>ns-"\{ R. C@:mEU@l>TMZ[;X g_5.46<]X(a+cڏ~:ifrW|r:n۲k2VZS,MҖV/pe&|ݧ/'* {vW0g؊ Ut*i*xw]r/?JyNh&Gn7#87G*8`"B:8|ؐq.k2Z:FMޥ64/dۺs%_k*p &BSȫz1a8a`Q T IʧS+Et6 !B&T <&^Yqpcx*ս(NaՐ }:OD[{ZkL"Oqa9EozD9'&&W. "őSAOb[A~ o]`f<`+%;pܔT~"siB)X| , !t@oq'>γ^;%Z(#p >|\4]Cʶ8x$  `Q6?K j8\h}Hĸ/Ebn=ޙ2zDuPL}W5<{ v1w*ufC6->\ ]=c";kXxͰsU*=pկWRH bpx4 ]%$3~Wɨp H"5M$X!! endstream endobj 41 0 obj << /Type /Page /Contents 42 0 R /Resources 40 0 R /MediaBox [0 0 612 792] /Parent 14 0 R >> endobj 40 0 obj << /Font << /F8 7 0 R /F11 12 0 R /F10 21 0 R /F14 20 0 R /F45 27 0 R /F56 22 0 R /F1 43 0 R /F57 26 0 R /F13 44 0 R /F7 13 0 R /F55 11 0 R /F48 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 47 0 obj << /Length 1722 /Filter /FlateDecode >> stream xKoF$ i&F"BhK$ )11Ψsq.%K!/H|qsqy%9sEsAJj̸D7K6L&և|θIv[.UZ>X"sK,_. *|fbh)}SlErm6ٔcY=iq>$)M |'baasRVO3zZǜ eӳ@i\:vTg n mc” 7T[$>R^D1YP$1ŒQq'ϸtj)WR]l}\続AfP ,i<[y(C1ر#qnRԓ_g#u~Y*VߡJ۱#|~ݤ7T'bOoS2NgGy&#Yr JndP-4h VPqtL*!kdD$b~yp~*6uPJ=37̯ _C;Ti\~;voԁ*WHY_͖(erҮ[+|wB%SF2w mlMO߻nYZyV?>~p6A#~〠65Wсq[V~#ǫ#rfI>jw$̯= endstream endobj 46 0 obj << /Type /Page /Contents 47 0 R /Resources 45 0 R /MediaBox [0 0 612 792] /Parent 14 0 R >> endobj 45 0 obj << /Font << /F53 10 0 R /F8 7 0 R /F55 11 0 R /F4 48 0 R /F59 49 0 R /F51 8 0 R >> /ProcSet [ /PDF /Text ] >> endobj 50 0 obj [531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3] endobj 51 0 obj [800 800 800 800] endobj 52 0 obj [892.9] endobj 53 0 obj [583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4 791.7 791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 888.9] endobj 54 0 obj [295.1 826.4 531.3 826.4 531.3 559.7 795.8 801.4 757.3 871.7 778.7 672.4 827.9 872.8 460.7 580.4 896 722.6 1020.4 843.3 806.2 673.6 835.7 800.2 646.2 618.6 718.8 618.8 1002.4 873.9 615.8 720 413.2 413.2 413.2 1062.5 1062.5 434 564.4 454.5 460.2 546.7 492.9 510.4 505.6 612.3 361.7 429.7 553.2 317.1 939.8 644.7 513.5 534.8 474.4 479.5 491.3 383.7] endobj 55 0 obj [708.3 708.3 944.5 944.5 0 0 590.3] endobj 56 0 obj [413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4 501.7 501.7 826.4 795.8 752.1 767.4 811.1 722.6 693.1 833.5 795.8 382.6 545.5 825.4 663.6 972.9 795.8 826.4 722.6 826.4 781.6 590.3 767.4 795.8 795.8 1091 795.8 795.8 649.3 295.1 531.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2 324.7 531.3 590.3 295.1 324.7 560.8 295.1 885.4 590.3 531.3 590.3 560.8 414.1 419.1 413.2 590.3 560.8 767.4] endobj 57 0 obj [611.1] endobj 58 0 obj [722.2 777.8 611.1 777.8 722.2 555.6 666.7 722.2 722.2 1000 722.2 722.2 666.7] endobj 59 0 obj [743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7] endobj 60 0 obj [500 833.3 500 833.3 758.3 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 319.4 777.8 472.2 472.2 666.7 666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 736.1 638.9 736.1 645.8 555.6 680.6 687.5 666.7 944.5 666.7 666.7 611.1 288.9 500 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7 461.1 683.3] endobj 61 0 obj [701.5 674.8 778.2 674.6 1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5 594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6 530.4 539.2] endobj 62 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8] endobj 63 0 obj [569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4 323.4 323.4 877 538.7 538.7 877 843.3] endobj 64 0 obj [277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.3 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.8 361.1 572.5 484.7 715.9 571.5 490.3] endobj 65 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 66 0 obj [342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7] endobj 67 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 68 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 69 0 obj [555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4] endobj 70 0 obj [559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 511.1 575] endobj 71 0 obj [272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8] endobj 72 0 obj [693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3 693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8 458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4] endobj 73 0 obj << /Length1 1650 /Length2 10768 /Length3 0 /Length 11826 /Filter /FlateDecode >> stream xڍP[-Kph\Cpwƃ;` nA,~923g潪{ӽ>ٴj,,  + @RYBΉBKeVq; Bʤn`' +'dg!"zZY `'+ $bkm_G#C@Ow;GPـ_3Z` [`qssdcd:!֢O[7Y P:ƊB вuK rB@Wfh+TAN+e 8V@N:-,@'o['k* :Yatp=@W?ȼS_bjG?¼YRrrsE~Rkݽn_lN. ym^E(Y<| eaG-ogПJ?į|W ?[++p|opmPU b0d?_'?[̦*oVJH>,<Nv/7q]Sv(dEz"d06Π~g?on^?]f(ɸ;8g::xm:n ~5`ɻ_7䝓ÿh*cTukՅN 5t;gaOu;|;z|8^lXn.Wr~+0収 ؀B6#9drrB'K?L^ejyl6l `s|M|M `s|%z zM'ZC Ο_'Y,́-BBnkߑx쌉L3,@c 2| ^\KZޒf_x9jn@hIVo}}4MԘiE9]}2)N=l3tm;?ZgW}_H܎n "cKvQP my,! ι4N B[X>qwW*8];h `pF&|$?*ǬE.&*QBBXD:pi:s=- :*:zz$0RYjRlRۀ'j2$=h˷߻;O;| 9bɯEp7۳y*JVPԋ*oF55\c| ^YoX`"|V{Q N>w$ 6]L` DnMq>s%,I qR?>J ;~owLI:'1~R.~s}҈E5`:1J*)h4G| MؽH*1Äm80ǝp=4fMI؟B73S (`b9Σz1D@c贓[by"D&KFZ!Sd}U,PgII$t&۳Bw;RҹKN0;`*=ݡ7YjwܚXI}Wtf |ASU`':G*{>'&JUSMvqSir'ҁUF]Bw#LafԌ$_P/%跃v1bS|g 2Y dYnj-H8M>Dp(+8l0nHѺ h?1n͐D`Msd7eR D 1%x§B垻U6k-ġr煹}Lm*jJePu[ nkx+lӓ4IT\fMm ւJ:R*"#:c}͕n^"'vspG_Glix iKoQW=f@czP,'4b}E_RL7[zΙ-Ce}Y3[ L=PR\}:s ٵɁD}# C}\I H x( ~.s>[y8ccʡȷt,={Qt2?=A|yRKxꃙk0;ȎkcRb[.ަ$}};M}cC [n(跱@52d)(̈́ 5`rjF/C>Kw()`e)\I&"P)niBsӋ A[{Kזse/oֽpUsd-FR>%iq3qz@+,4ZACYWr,a(Ŗeq0Y6tnd8Y?k][k5Cl ʈ Ai:W+;4W?Kr/ %Z]:Zu+odS7.Hkdԫک[҅Z˶VwSPN~/ɋ߁XGbfex9ʮ%G'{2C$ʓ>=7;>T$>šbw5$lE/'>/yDNZ & ,JEXݣD}Kc&L*px`!ElTz*C*gZtS{s.x-W,Z:>m5ȷrg & \M8G_a7͢". Lzvɵ28+$];J$ C9O2WlE\X8R9_C̍/To>uP2nߝB:&L;^W J"Fõwy=_s''2j7T,ıEq[Ofop\dvg" X2טL~ޱfVt+=ook$ED02U@*ZkmVc(!ѾʬD;MmADSKR`]u_дv<[i q?G#5_$݇'~@nN[.SҒiuD}.k]fp^7w| )(al4g|W%4L35u!<&HAZ]X}]%g@뚞L|ޚZ`pn.ht3 vqYH 6옔J |C*j*©0l05c,:,3@gl.$ m="dyO2ٳ1-WЩWܫNp=Out HI%B&a$ĊpW/0\CY|:T{ |uLɶއYQ޴ICv0Iټ9E i~£Â`# AnTwtW[*ƒ0dIIfm$OvT!o+cy> ˇxexYG^/yPKC}$>*b{9 `޷iAxWѳn ||FIr5um)?Lfћ28RtJ#ϬCyIu͝4!>m{!-%4 S7"?d@H9 Q*=e3wul nwc{XlWqal/)ЕЮy3;"6ZOeIwQG%-﨣.c$(paBQUltjN-Ɗ[㚳,nRyɓT= ;ƺ fKx-kO [j/ i)v.{'AXx;b5?g%7<ފJ)JYE))C=B} ft.7Pae Wݰj|I?56YhoTiim@30R|}V4\mͪWK9+D3>f]'jR%糃 |xzZL2hqU8%Zo_nflgN=(!֕wHC wAdnBdl2+:AsgFlǁK zUbIӞ Y9d/* 4ffrY"o.=?WtI+ t8~<$`@`(cAǣB ^&S!*!#v|ŇYSIӈ)C-: %śDjyjpchеeˎpU\x(.?AYzà(?K436(Rr ~sӕ6Ja%7bA*y.KswnkTT|ׄ_#ɚ-嬷tP&lgh7bhpKOFy=Z`)8V# ,Y:t5KY4dqҭ٠t}jlw#]cH,[EA5bײ7֪b!3~B7GSZ1mpҢ-pe3\OfGg)zs/l)c\ݣ',D _.BRGtt-Wx0'헏؏&oQ5[Zm4WcˉR7\Ij}}ϳ3hu%e7eȨe`<Ţfs*@ݽ"ru\7JKa7T?coQ> Nt qQ#{ eM~ B\&0c`K+*w]IutTɕ5ϭML>T޾+뛄oe1M\Z,}N(qD5nTv*|IC`ck\T28<[ШZ*han<{/U|.t_43ߘ􍆟~`q[dɰ;kԨVd<\{ 4cS| a԰W'Ide1aXq'Ѐe۰2 [=:b+>V?5 vIStlUo'twn,Eo9%z1dt}RΦX?ЮPa@'0P?Arc#>Y*'cJn?]lRpNP9!AKnFn(O>< q\vZ`as [A E5CltT/ "fW-*d>(CĵSc#(hc@CZfrV/s9u*2_u,T*(n_BK;pKaBpW}osr|?^?1ن9n!اSˮb2 @gu> h9?X}')n5G$ mTИCx2tvϩ4}.G"d+| ]RҤ^LI Ԧ{ipp~ZeDIS*!$HR^e}9}=s,f甒۩Wiwe2}HErɍ.ǡ&l3~n=10)'K;Gn\.grw'Ҿb_?"jmI(KtCd܈FyP[j$(J<[C;SX|z>/VoD }#<8h'eX3vԮ]?#?UIX=m\CKUj$!c F?$`0s u!l=8jϫ٤;BM^H`}-ALv8:IŐ dOۣ7;MѪZ]E' gZfn).M_aq#^'#uA_꼻0Y)sH@ة=h pGRU)b4l_I !/ ͈OJYS.pο U;q.ig;X+Z@ j.OZXm&(nSD\@o@$G_CcM3[ob(&t V]wN4b(Qte$eMt PLnhy+EJ4HrOZ!ΰ.SGz#GH`Cz!ڻ놄0|VjVߟ,?8ͥr*Xi]+'ց2:ǧbJ  >dcBN+UYzO?6.] (-߾"t8 -vg30yYVtb{بHz3k#k +܃5,o %NrÉ'Uoƣ̃Nv] (PEKƲ"1L_'ͺPcՓl-ѝpb#eXn] \B$D~( wt Aaz!Ҹ"=Xc.c_nZ%oN0jS|)svNVAG}+[&Xz&B^֬~*!n!%e<`&p:Ւu߭9%J-H0aʧT[\n Wh}kcbweԈj<Ɇ)S~.Uc2YȬd9u[LԼVحnQtwjC8zV@agAiG<~+D)h[ ? `ϓi(#2qĠB *^*uKpL_VtIޟ/^uĸ"xr#~q]%J[]+*&ѥ`ru"կ#YY )b m!@*I﹫/3.]۵uR;T< !aM=ILa0\Q3N׃b~c뙉sAGsd\AhՇ#INX7ҦBQ8 7m Dh`Ku+TIc/@o 1u}M'?91-YO2h7G rs34};⧄YT˾OLsK~G]YrTdn;MJ"M_8 S &' Y٨#c^'Aq =}I 6v#F᠒enȎvcT>!E;WQq 7!a!;`.}-Jn+j2\0 Wy,&EK1a5Op4%engTvT8"q(nܼ`DpDĆŇY˄Dx,j3. IYHR90\fjdϽpVĘYMR냼>:#h˄LYq-V^`:IMY6 Ug#͖W 9>/QŌ>FzD<Ί܄vLxYGphdQ3\;/~{=Z? ) <ۓXuPi׭n.=↯!4{fW&Z?,䜁mH@>a[b;qptW? Ez䋫4-}ܾ80(d<^73TO+%*>`M:f-zGv+HNS +IOP+I "VpRѺَd(SJ5Ui1̞@fߙ*1;6ZމbaGRlrGp._UUA]@>,vy(bBI"uG DeyUъW-S7;V+` f3&F*ۘw9ș{a. ҍ)F_egѩB ץFK̷8[o-)$\6f$b7duA |+N>lt CemCNrJ`UsUk(iDW^0FѕE{uR=1Rv'15vnb#+ɰXɍ׍<5 *mGVES}\eBfCz]ݸ+8%)b6"LE_Ж#>H;9+`e vckҫ0i\P" ΂*f,U\}p!D.S4nw{Uě["af:cfbꋋ)lyX~̔"YioW:x͂ɱ|[A8izߣgNq9Q&znA/z^ߐus9p< JWaF7&Ia9hK(~B/q>"7rmI3btGK4Q Ŧ\^kO봎Q|#Tp$F pgcX6Bz+L닿&}"v[Ěm:`~=: K]g1)50RyK/*g8#Irc7]CG`w]'BW6R *  D@=>CO?;sE4ѝЉn\8߯sWu*0S pxAZbkb4l!vZ} >;H30j@`eaKYC~$$G hi@D,#41-3&ڤQ0e,wKm;:&}BwTB`KO}~ /$<@Z:fCR?@& /֚ъ8x&?JM>`Y)+c~uD,*5Op/?p'w+Q>%v6IRmSi)+JJJXcJ4f'B޾`9#JeOrO,bl$Y.֊ygEM8-+Vv%S0.s֦XGF^mE''xUjdB٣ˌj }̷GIT,f }lvCm]\MV 2ÒҲnFx endstream endobj 74 0 obj << /Type /FontDescriptor /FontName /JOHVQQ+CMBX10 /Flags 4 /FontBBox [-56 -250 1164 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet (/a/c/e/endash/g/h/i/l/m/n/o/p/r/s/t/u/v/y) /FontFile 73 0 R >> endobj 75 0 obj << /Length1 1923 /Length2 11591 /Length3 0 /Length 12785 /Filter /FlateDecode >> stream xڍP-'-h` ݃{ 8Ǒ{rjfսwPjٙlYYJ66NV66M5?vmV_ G0& r~!*]vv^66vI+ ;H{8B,,_#ޔg8@1@Ζ`MA ;SR Z:; nnn 'V;G afv;H(lKcEhZBrhؙ;5lbkvАS؃m"+E`9vVG" SS;{`TYݝ [? k'x+b 2y!Y: -([#ى bFi^YLlG}G˾{>\+[;7[ s2\Zߜo;?d`"1|x9\gG׿PfSg b;l~9G;@ly2|03;[k? /#'v/nN 7;<iUAwF9[s;_"^v?B\ dž+(۽3@ ظL_ϐ#"ik??~ oK?8̆˄/U@YO2!bl#I6S8ZD9[ ?3zT^Oe{I)[S;?frty477eH6jkx0sDDyx@?L"^6P7o*^T8?/@f MA6bp@?/1/X_Ub Tk/"_RR;b/ܗ/_~N-X;g_c;//E; M~2#/tvWJ!K?5e҇`;eiM1b7q%{ DbCX+[RWO^- ajmޏƟԧvP'& 꿐"hz?9xkX@w8aܺ˸)6:[ͣX6Q+ x&$ssz;{\Ϗ^zwsNDDzWأS^I ^%E1EF;0A\]Ke##?$0BcL6ić~XkdwbO?8u={FVf8 X9rY_ы t'-, |k{arG?=󙘐Eҿ|{$9 E2Df~(Kgp J]}YA"Fwh0 ;.fe=p# Ty5 _2MEF+xK@A ߫`/Mw=R۟SLR\Gx}J3Vb =!ڈȯlY:ousR/%hKT'T,+$7V57jΫֳ} rGX,4R-M`f+T˟Gmx{bHAi;v Re LBLS?I<(qlvR'ܮ/_]ed=œXXIR~q7')q+ $OxGdMPYַʨ|ZK/?AL6 q0lB2m{Mdn<ʱ6a51MU=hX*TZVO wEBRƺʷ)̸t۸q(bNt%j䯣;?c,&5T?.Y36ώ %id&NlVl}hU·UEvY*{0`Acc.8)"?3QLUc&:/rh3iD?Cx]כ@ɹ =RU,y&{]ξ$u=jA5.U17K.?;NOp`>fOϛDu[jҙGX}./~{Ou 䶀nce|O!s1k V ڲobSn,L\k-)BTU`QFvjg8!&azf1aIu1Gyk[1NE-2K*3v/gsJ2_wC-˿9g2A'''z!"‰ DPF8[ya UbBI~Gfv[Hi0tYNP8^˖/G?WYS ;1HưH<@`ޑQ:" MAmS*婧Fl8Ǧ|vMwEQ}\oxUI"PNDUөE]ҢY'%oB *^v* <;Y/d( gnu"n>rj;ӯ.-izթ/Sm}F9b(|4( 5y8b!P\T0W\ \+6hV4;][<4[dfY\jQ]p̮4{*:j# W~ ٍ WTclEQ+_KEPFGAc9+ΆWk TGC|$9i707]_^ tBScȠj,(xs\1 ʄ)ޫȕNBMh=nA#ayf85N7%jI'5ֆ /D䇀͵ϗUDOG?cu҈-[F&Y`޸ {}aC!yR6sc3\1.U5K'_KtF5}Ҕ]Un5v:Gm46OZ5%&-_͙)Wox=B#v,{4I$M$)9^dE`Z 2%=$Z'0k]q ˷):av)=wpTZ]q4C| j27͆B ݉[:SuGAJ}_nK|ZĄH4|;W2fb^a0{Ӵ se4I,uO5s. 8z1_k,`ϋ&GLDjG-n"ҳ42IA%ڳQ_-4 ҜDXمkyJ>J9%-}4vt1~"Flyb'myKn.uo#-[j65:ݔׯͪ&i+:](4 XG!y| %PgV(⌬%N<0[WhH~3L6IgpR=*pg|/:J!ry!E#Ae_ .!\zIP6;3PU, ZPiX`rk4uygCL#>0X)qM { loezzM.d~޶e|V4ܟQZTs99. 2?T8)7F\]rAQ ={eoȿKiɈ9Mrqld>v0~^gב|'Sh\v{䒵z_tE/1(iKjHOe yUFY _HcH5'}'`UcU}}7i \{6);:t,aAXu47]W,\Exyd?RhT|yEZҁiS9W|~MMI/B>.ϡeCdƖ{%[)s94uj-ʆ|i!%ϙ XĆe_E"NXU{Ev&y[4 pA[i|+ʘ.ƚiMhnje#b9﫻`yFJTTX3 ^*-+J?C!>)}w6\W[OWz^^.Y юF5!7h,}bMtfrCGǴ1fGH8A_6? gMn\%ɟ~͓No%Po$@|-2ΦSBKA͐]K"f7x~IIapQv  U,[9䚬*`MGy ˺[k:cY8$_A~8!Dd13Ѳ~>Rѝ]Kzl樂JY ͠mP`esPQe~z57{m=e䶣+=u|FA6,=2γ%{WS8kx+ %]hs9{Z^mܫ^16Dsʺ#"n{rwb1Lƻ)T2bΆkf l.y^l;:*Sn"@:|Kk9'vQs~}Vgh6SQΙ/z00x\~`xwZGfiP9[pJ bs:{?}V]Ԉj?򔦕+'\>i14I8kr aLS~Dy" {;zD[ԨH_/+BPQ`g,'wI7m;iP|WFS6]<@Tgj|wIEBõ{:S7#N6 R`+IgqHwAƬJLa~sږ}>$Ӱ OU;I9..LaU1#>'.J[q$%lb r71 s#+vzEoL/({u6]R'(JsLF<77Y_:)459<Y,pfY>T:l%nb>yș@ϤBʁZrppnɝɠhbdo?#G~%@rRW'4i:&1)TV* Ο4Ţ[(>U4AN7բ˔ 𽹳d?٘9UƠ}=E~VBWI-P[N)~6]N{MapxPM T-nE`߭,`xR9{.ׄ;$]J0Fŧ2O'к&u3$ n|O{E> t/=ȭ宀̮=M} 2Q a4sUd+ON;^eײ՟lζ)ܪxX$!D׽n++j&$@ӶN׍ёR)kkESq_|qʵl[0*rEDq'\!73V,ԅʒ/Y/ֺ=V9BIW)rǣkO7LBzl|8WmUkCh%[dzocwy\g.Di[ U"Y%!1r€cA ОZ/:? ZDggLŝHPѢMg9Q6FA)g\HT(0s1'PnfEVtEA>r8W֕F4:1v. t֎i<ڃPDҖQo _["p@e;`diMO]}FG5vauXg~82Ҙm6s-Q, y@ FwkqnbbMŎp0mIj1PÕΥIUUw(,ˇ- {jK]}Gdo7H>:[t+/mj.# xC!~,pU>µ="eBd]RD0'ҋ60[Asezi<:D*  *b7k› [*)'ҥu}c5 uNA =k7 a @n)?%7iš)p`,So+&h[S2EtLm}{{,Z-ݾ7Hf].Ҳ'XBbM^xˣ6VKf 6޺,好=Hj(],F@Hm >GLL=P}_ T?oZK8\N¶*ϖ|4;*IGIkmZ/J|[1A,xrU[?뙖x'OM\blw~aL7r ,s$T4cdbՊ)= v3l(Bi&)>)jgW۰IΑtM`!֢Q?۱{y3jaˍ'c#C_,!G0އ-[н#;p>'%dn;FEϔoo0T@|hݧsPذwݵȑUuiTks؈msjWc9Q<͗ÿüv}ѥv$&WUCt̼aIᙾ o>* b\[PzfUs{|쪸2:`8?gxL|u>gpCxWC7k욗:<$P$4!z?y]Z{4kasSym 1Mkվp&:Iz- L$JW4ήl>A0uK-1G ,iE MVrK߸976LLpo9(<*]|g!^9&Wb0xJda}!N#2߳˭Ma U-03^i$/v&[1l]fJ++cHP_n?2}Ąʭ[Zq x@,:^cuLmot+29P馟P=-&o( em "ecd9gxOlS czJI5刻z>YW!5l +z΂sA pyPK:Vn3l ]s`rZ'9*jv}T,{Ouwl(Q]\Lb&[Y1!/M-%Hmm۠_/?ee1< q]%p!<H]X@ݨZɒF9ϔ6:qz#w})\( k"%힪vHr/1oofQl3fϣyC#W՚LvR?jT{j[jGlîԿGN}1)fwΝٱhn\@{ٵ}=QוhcL1g}J YDBf?L'(d\qY䁒Ȭ$G!s鎱ɭ5f,Jo c ysBUEף#y?z"ZQ7`z텁aS֖ltFY A)" &L?rl)UZ~j qjo9/Cpq GUU8>pI-o2\,t_-i"[RY,:y{B9iI%Y&ir}ΰ͛^f35,AFBl Ɂd]q>./r OȚ bS[j.Dw胚>!IK` h#/kX&3y_YdP~aZzOHfY#,(s=u"ːBřFq-s!h^EmͶہPki N &E}H俷0i.s1~{̲j/tڀ>A\ HR02M hJVR9"Wer %nwz OI U@<}r_c$h}0rv}Fi">ՐaLiEe r g?ˋÜ5=!7Ao%?;AP}o1y;ORê,Ujc(-Y"OD4OOG?z&.ZQj#baSm&zִ~Ewnӹ$$)@E4 @-DL.ŁV& #*R eVeͶiYt(YRBKcUˁn.d}k.<ēEA4%{DKL%-8Zx~a'iH8pܿ!eґB8N)zC[QMWtHUhyha5$ڏ-Ar<4pqflh0x4lJ[d'Z[/ Qch$@[hC{כ12nE4 T!q"~\)L )Y~C)y`ðWVʹኯ4S4ʹί\A4h3y1iOʿ\#v9 E"jm8*ݦ5:.I P6#QSi(^}:ֽJV}]d&}H+㗷`O|wh緵# 8qs>[ɫ} 4cF1'%H>s4Zj}̊<{I-5ڜ^8L n{ȟy!ӽҢ6j,kuvN8 ͏ MIf~VZ&v?Գ@IXRL~5klFJ<,¶nC)PįѢxyf<D:liG]8L5Їm!e#&RoWJH<`;퍷6^2[ AMl-a|#^q=0BCyѴґ) x *@C[1^E%E$nR|_ޗ5 /2%GF]f lTb7zۉGZGV%>5rK_]td;^PY?݀R͑ZⴼB&88hMg%FvdS1%2JdӦ$q~wMOi%MurF(7igc@zs@=nWcL xFdPG/_iya>܊nv SL+r`-T%)4ފ<.MXK3B&O9 )3DהqeEOAt\w0[ۘPs߈WCg…z켗9f_:%]b !v6M1~dϨ7!Z2eMRtE6(;e1\2Z ěT֎'8у ^\EhEED߳Dϯ67mNd%\h`h3. 8f= A!aZ^F]c2=AZ3z&DM nUf>zWei87:*2tPLrYD[ I橂8emh0RG0`f,aNVDIR]Б,NHFJ8() mZD%rnEHH` xT-.XfF}!g+"toȔAho~HTV3?|DCr)F"c-1Q,mޘa@޶rd}MOKJ &O>,U¶^@Rc~Ώlgt[fCtQg@7lX$OjKR~N%NY8o< Va-@)mk:!Jf5h%`BFZBaUtշ_7Ю:_/7!ځ=J-Nx1 kcr_:2+dPwyVXlIؔDz;ÑH]f endstream endobj 76 0 obj << /Type /FontDescriptor /FontName /RKJGIH+CMBX12 /Flags 4 /FontBBox [-53 -251 1139 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet (/B/F/J/L/N/P/T/a/c/d/e/exclam/f/four/g/h/hyphen/i/k/l/m/n/o/one/p/period/quotedblright/r/s/t/three/two/u/v/y) /FontFile 75 0 R >> endobj 77 0 obj << /Length1 1506 /Length2 6290 /Length3 0 /Length 7292 /Filter /FlateDecode >> stream xڍuT[6 *0H!Hw0 0 CHJ (H ()!HH R"sZ߷y}ݱ}_N6ce'#DC e@a ' c'4 |px" $ƦBbu0( J%e"u 0 *+uqEbpy@iiI_eO  +S P2_)\H/!!???A "]Fq yB~S$B}H?<` s c-_߇ N;g"(W0 {z`P k"#@P#A eC7?0z(3 aNpOO CsjP9u`?+g(' '_/!Sc"AąE$%$o*IipF{`3"AP F' pG FOv`- 0'8#_-ҶPѷPMoPE@ D%@1q1 ߉>?Y @Z0g8@/[ܿ zp!o#,. S+'YW4|=<~9?8#h_$f8t9䯉օ8A}=B0C s >P vKGIA >Пw@(,_f{ӭ_3U.Ý~@H0Ǭh fN ^0 Sq)#x@ȟ/;FA=1WS]D #~%F~o_4fI וC$Spl۳ou7Fsggm)3xj">"N3)WԹ>@o77ƾz`rtah|dfm>f&JA?q;9}( |W1&fjpV.E;$D bIFv3/ԅoX$D&LD|:n1Y12SVfF?)[,`KvT>1 Gq_GkTU2vT#oD%_ oW:%ś"K XL!jWP2Q/^涯^*6tuM)GRKBC_݊G{^2 _^٘o.L/hԪ͕>NDL/+=g=ҢMA(Ex}ϢV r8 |yȣcP[#Bұ~6 f?fdݝg͢uFCgBV*km@˜Z 5Ky¾ٓ|IZ 4o_buSV : <.V֣[|Bn#Rs{ ۮI>|E,\2h6y߬dZٗ"-趼$N8\ŋحR й]e̷?NȾ>0LM`{ EUYWI2MPbiSօN%|nVqI7bx' ciEn?wb_|XѢp}ִѳq:3~\0K [&]fs@% לwoۢcګ¶<6J9^gt.{6Qu辵гzs<}cRJu-n4]k^n8?n1.'EPNtX?UT9`8C êM\LT\f_EӖWFS]p껿1pL9:u:ucS'cG|)¯-6ALyZ ֲ˷Z^mtf oCH0֧8&G2~x:BYwI_6WRnYM{w!5~W`ҡ=?"lDZZL4F }Yp4zOtond2^tJ* C 뺍j>kTC^Db!E18Ƨ-E3/XUq/ x4lMΓ&UEh!J%ak%H 'Yթ‹G pS!9+~cccADh᡽~I;&'ݻlu>[rCD-w\{GYdH>|̑ {[u{K [-RX}gwUfBZšy.y.;_BCH|(~TŞ%% !gWp,.'k—-"p[ռ۪>y~Kƙ҂Jk~8<Iػq~Wp|E˞7˶A(1LNsNi7rT:45 $Fg ZۭK\U3=pxF_hQ@&£}P!>},׃{ΕJ˹9OUV?jHTF _bǢ9mya[P/[EbUEj%> 3Aǎ ̞Yxƴ ,:ۡҖָȠZ Hԁ#QO3=)U\}T8nUR@ӄi++g!1h/l%rVXdA《MK!Cݏ8Uِ@ql3STv-pF\EDܺr6J}0xi )k#Ęv}+sa&au$1@/ (ʚ6|xa\)7j )}KK R(yfd`aDȽqKtkq5OeϤMyXkd1ݣ|}z|'L&яW_5cbC[aW{-؟PE|k. Ҭ[1[;T3!}DaC 9e=7 f1\H="y+'u{H`xy(#6*zlDbt$}J2 u0#z1VBjg#&!)&DE:]YS5оR7[l ^wA:Z݈Bh\԰Ȱ›3_ ﮷;1ęeO)6GSnqIzg3#wiFΩ;M65WP:vSӬaY/ֆFפgnc9ǜuf ~L1} 4hQᔭqSJ2N%(b+`_kI䫫}jwL+H^41E4ŧ|6 ^VR/:z5W=կ\t q6=񾾫z$5o^"fn8> w\q₽+vf2NRGѨMWx d'J@#W}7oDg6#*`?@|!7%;ӊ} D!^o#n^X}L'X:f ,"7°:jۦG2Z5"sI(Ɏϯ;gHX]oPʀfs/;'f4taSDEbpL"JΠvJ V6+13&]~ !l f;̂#N2EH=H<5,F4#Sa=}"W,Q fT[8|Y!yS_,%#FN Dy4ohRmoASM1;#3aSA۔;@`c|ɫ!U "ӌ;XE.i9d[Ο5"ww{QȴHI,9_jg@M}/Je@]R =33GKcpT}A|ViJ:Q'ξe!,=>c<[F"˽ 5"N^F2^8+n\|mƒQUl\]g;NI (5pMfЛҼq{V`4I(zbpft}˥B7|P;`BUKiey}%gAf2~r]l:mXqagO4]B])mq>:Fa=<Ɓc"g)#WEZ|P*|s"@:5Oq :[=LBk91Z?m;x>Z8~aVMLWl)?})o"κb\ݜܔ|^uCrX{-yX ~i?LiUo~p KЏ9j+ x)>`d$@%1haY@(uPSe5"EUMM#8a pX}GL)\z 6Uʉ>B.Ж5e܎q7Q67/etV04MW?tp_Lu]l.>2:1-Ⓩ _X>6N~^,dnABQcۅ~JYg+(}mKJ?w _;$C捳J:阪56LND<S5Ejҹw ~ëJ袪bK`V8J)Oh> ({$ xY>32CoQɮԑ!f(rOʎ.iꮠYϽ>SԜ ʵA(\:Plv$c!nX9RvvbڳPk֑>R*)8ʷ*>=;"!{oμRۛO =a UTvz4P{/$ͨGN7$͑kIG'Aj9߅@C|*sIlWB^ȸϏm HmCDЃ@ Nb ;6:Z1{;p[[zB) .:< \XkmT [fBJ! Tp8C؆8.c|%frX6i r`z+1,xxafeLQp`5zzK̖j3Fķw?"?\(YMXh#Umf(vQRURKW7\MQ<Ż>/3=U=*{ckՇ:@e Grk0cP, \eEF_݆Ԫd\lymO%֓Es/j4Bͮ:?m.O7(d~xBe)(`Üp U,!QeRsQ"ߏ_0-å2:rLCfsw_쇌/٩ZHYC[W(Js^2}Aq3pgb4R2)W8-}'qk(k\->yiei@>]v)8?`\S`$; <;Ja,Ar&&OGbW#{wko3f2g*)i6Wo?η}c%렙4>n||7A7Q ԋ9VW] v$)hwVI ؐ~/OTG^[vAjLE/ H]:h\'oz|~}789BG&X[v3Yzfd~s7nÉATt6-Vg7єFf5g`\"Q~oF(W,NP) GkDߏp$6lG|CDR|ҸЉ/yzIaNߧq#mPY jL}lK8;O;& ۅj" 6r#_ݺԳ0%y{"Ak;Q, OrFW˾%g=2LS.ZW3T#p endstream endobj 78 0 obj << /Type /FontDescriptor /FontName /JXBOXB+CMEX10 /Flags 4 /FontBBox [-24 -2960 1454 772] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet (/braceleftbt/braceleftmid/bracelefttp/floorleftbigg/floorrightbigg) /FontFile 77 0 R >> endobj 79 0 obj << /Length1 1686 /Length2 9138 /Length3 0 /Length 10232 /Filter /FlateDecode >> stream xڍT.Lq)EKX @ P)ZCq/Vs閳9ֽ+k%33&~$j5KAaL,|qEEYV ;3 :5f [Nvr@w`O2 쉨ȹX\||,,6޿P'>bPdAP')ߏZ3:+//7Q; dPvO@u /V0 sf:Y 1 0+ 6.U3:5@ Bjs9O[xPU(;$+I`u8Vf# 33bo ؂R 0w#dou>ك\A[A)QU¿s6s8!kvt̒P;;=w~'ӹ{j=od7]P$BGf 8Yxy8`G ;%oS >^PS` \>^V7BgeC`S%ObşNw>X~d4aP{[(&)WQA^Ll&6N+  Wv(ko񻊧׿Fw%@̿ 'a7_3rCO'Al=b< i9O+bTm6VzZQ{˧Agb`fSqU 03?n<Ű؃Uΐϓ vrq~ٟ*"ho ~ZC j{'8 ''H ! sx±>9[_t=s|)89=xjk vZW\U1m \1z$'33勥wJY+9^e-Ϟzmּ`z-c4fT%) VG$1rB8p4asuj,]sn4ERrA-JmE ZjF~-3·v(ڮ*Wq:\oSp$I%8P*s_ezJ%]U+XmM2I`=&qXKq3_ yP'Օ \Nf#$1?5z",?H˨'Py5"meΦ$AݞE@n/mmД6>OUЧE&?vvLWHJ }(^mmb45ioXjR"=.+ >e-v?Wgq"|Y# >P-ltǘ)ܜ B[]#n=JH*/&-r{03>jJVeWcijc%hY l*&l*`Y0-FaW؍h]=k"H3vK ی_?>B_jD;Ѧx~.3*d'KO}dv\6)#t.s~ۣgm^ye vVӶ bIUd;N7݀#3}j8n+Kt+"\w>L{3F1z-鎽j;q$X;)6Q\;D՗.>mhav9؈  0CC]a=bǙ|um!qQ]hbVFEuZ/cs`d˳驳P})Fr߼M9GnFwN>ƍW|J3h~ї(:6W+n=B ^S-Hٛyl ae`Ec]$M2!v*Sw@+;QV1(Lӄvtdn |Z<"$7Y3=TsK\C!O7O>4퐑vxlx۞ h;qZtn'U M$zpeNT6jY h¦x%4 ),n]b.Pnħcn=\whU0s;?iXO(98E1:ݷ; `>=)^÷|xT#O~~lz|$^WfZD\NW`A~~KJlfٰSjB}*o9nx_tr0~zUMjyMA#rhUI00,rb#`{('.Yًۊ)DNn)Ůu~Cw ƦG$2uJ⣵(}DjqU5LwEx4RwA1ןG#~4LX(j/oe\,]Fi*8ϟ(2=_ŴWlz?2dM $9eSWFC!c_frE@1FC~#x$ b=mPaM迤TNH =*% 7.loT3SPvւq5 ͧ꽌 f4&N>Vg]~Wޚ`pS{:"kd$6}!*?Y Y%} "AxE\I:_˱i DguБ:^|!S{Ah= TuU~& $Ke4&PP7JI|[]br49/w2t/vYkJL=pI7Ra+Ca Ļ UdꚒti w. |-fxJj_M0?3" F bΈNxҾPx8 kyp{xATb'2AOp _l44U)M$LNj81I(iu(@*QK~C[ot#{o-f%X}CcFηe[4ɽk΃SsE- xLԔʲj6_p!\0/K&ͦiapMpdtzS`l0M3΃a5N>wvєw=JP ?3,zݷ$hTd,@#G?G8cv}o XavZFD ?̄Pz_pb'߳5i+ک kou@CA0*Ȱy\yQ!x97`_456wCMY,4l#i*ۥ1Aҳ"#ON"Of?Ym[E 1ZCMl[%hv_VIL37Dxߤ@ DAɆj0,L[Af v͊V6ywGoưBݘ1qYP!mX#6UlZ2RμR\@;]__DGS.iU8Nm#Q<7[?E d,Mos29˰V ۶Vn>\-1XXS{[ x4}$/0za㠀GH˷z_|7_I8e5$ϋIݔ@I3"Y^qnl' a|?_@Fgni˨Ɣo$|XbT( bo a.2~`LYA_aݬ+tTi;>j(I(Þqape cљA8y@\=vpGBܣ)U6nUNY+I8C'F\fӡ۟lKD唘!{=hqf.j61OH | )onQj\߳rmRgJ3ÆH"0L-3gqQ!I]=ZYM AT91 =I(FY&Oo_495dM*Zl}V6 u>;sZ%x$4 Yŋ5p4"we};e q/B&§{ߦVb<)W$zN)ӭ8maK%Вݫ z1>o>c3$WL(n ~4X0bt7,DjXȥb-6#$cK9.T?C"{;'c8pc*VY:21ej8Pl{$X|DFH/a CuG2Wg~jl9uodm=&1Ϙ2\CG}*u=R*F fVhKҒ6-??{pVaӰJiHjaRNMJ+fz)M|e+,6-OkV)DJqP#4mk٭jXVZ»NoJ3lZ DCO~G`2il=Tz! w!1)_y^{]`%w[34:t@Ah6ςb[TY;,W:p5h)dkwP΀ŒRlw4]{ )42 .1Mo̫?{H'(0-ppU/OT4MI'9ݩi )䑗7>dy?=p<4Cna8ALii@t1D=މB< nXwKj,`ò8PćxytL[iCu%>yo-w?j /mNRC#Rv¸07|RДK>q)׼mRhDT@e6ix,Rs(ø.u3&Z~6P&oYfNNU˙t&>'ޡ\rs&,W\rJӛI)av=LYnD9tX̯#`1r&I[>x_X>VC1r ଦx|{t!ܨ`P1(SƛoП :R]LW't9TF/֪!Ͻ8ʖ{ ORQW"{ SjIlj ˹۪dK>kO^IL9]}BrO_'v 40{obq1*ԤMr}5XA#85֩d?Yh^: R0fAȽѤH}6Dme8%\^JKlWxLtW֚Tۈ D@̈ijHaW#᷌oFf[&^qL[} bM^!лhk[ E}JX7MfsP~\;]G:ϥ[Œn,ʵ㕓!uT7YǢ~!.peߙc,5'T}SUu:!#/m{Sš /E8clB]exrwK6kq f{C·#(02~G)&8}Ih":&D5K$5VAs3E|?VQvVlc}{Ԓ6G<HQ6X{J#" *Q8J]ZQM+|8b";op?}Gkpa>ydDuQZbHˀݱP"ГQډB(j!biàqu-?%oaq\6uUI,oތ[K0 v^/f(L&SKs[3R%~{^/]@^(f 8bt V;|s&xLeZy >fXҽ {?ƏW9z]ǫ̈`19RP-eUX wTswԼz!Kh3cVKGf՗r[~rz̾S[E/99h]f;=enW& 2#"z:ZWѿm7궒DTg1{tO~4hbrօJb,ė:S]4zoÿ`XoT$uS"m2r}@m1/^l1?g]mc<[M]k)f&U\ 1i/ʥ8淳^~|g˯{61[qu`CkPN'\qHo-q{]٢Quj! ^bL5b]vb8[II5[/SCzBtD8c^[-f Y(g)_\z9ŐU2RAx>)WVi wƲmO^H8ҦzmU5 vcb;&}M>Cp3zL|/U N6,ME (_ؘeRR=s\pE A"%2+S\stD7U%D&EF#޼ݒlw1DiG0~oAά@-&ꔎ38(0S̳/(baG5|woJ |MrSI^-qg#hޱ$q3Am;b+ *tR4ei-cRWE,B_DF<^ l禤$O lJ!Rl(X헎Uhr:Hx1,L6c֭[qTg8$㋵-%ZdBO!0{fYvsf`ՙOdEgo*>#Xl`PUD5&t4BĂܐ&jb\u@9\"fv9*\_OM<8sT!JF˯ٿ^j .eG; lϩ ք$V9Vi &۪0,d*3SKn+9&XZ_jbȊSħs0-T[T XvYH(mTsM(/+rp G|LrC9*H!6y]ޞQsX@CL<1\Kjl@/WH4Vh-Qx6P8=gߤYrz^FO'G 0}{aLhc3I0*lNS~%y;$ڇO 2NK zCMDr?wF^˦0.% { wf sRVXy 8 QSgecfQ,[$si{Ib,p o/r5_1',x\'KtHG/{SUHF#/aImY.ѿvO']7PDVw莪ղ(TS}Rwkі\F $ot q" 2l2/ X"Fq2]HY.(af=6Qͤ+u^ ˋEurd!RJK4/Gm_0*yl#+8'7өF."k.bu^l{[^]lU\S}`D('kҌ9ʹ$ּ[Z BI'{S G>ua 廓o,y2qΙX%$~:~O:u;xlNM>u=#ZԬɸL9)\,3.)q/;$b(n8lz%(B- mw [a3QJ1VRYjf> endobj 81 0 obj << /Length1 1451 /Length2 6835 /Length3 0 /Length 7817 /Filter /FlateDecode >> stream xڍtTk/)!! Jw  0004"݂4twww " Rz{޻ֽkϳ{c-]NYk%H EprՕ<<\<<|z`wàbA": T\!^~GoG\ t[Թ*0(Q !e>XX 8 v GdE+  J"a@8qss]`p[)V;an k/ #2.\F^fpAA]Pk,UVh:8p/+;hestB=P[ h*q!< #C݀`s @IVD prC~AyˊPky#p՟B^':@aP0kW'n}( R@zNF_j$_o'  !p]n  ߆Kk` CqɎTl$x<~9@x{OiA  gjOBe -XZVKh\X) CoEnHmfm?@G0/$]ȵP!߮?:UD,IqN^.?zdFX!߳@ր - ׋/r rbL@ "~ B.ٿPZm#=q@Jo^Z<~!!$f_ k"n_/rT܎HBpC(v-+W8o [<@ +x}u`y,;~x6OqknFj|/}/k5ttJm,cgNQhgQ Ph#tH[20WŻ3* jwVӈ ,O(3Wc^4 KHWhsx20 aǍ ntρBNڣ?j_- SS nѳV Ho @FR+v3Ktvw}v5oHhii[=+.“lwYSHQ];|,d  VWkgE-*@wrhSyb"fLQ|gK3Ҳ7^Z48q΂k{Q]hVT\anh͗$m淌ݹf'˜ˈѝL{T >4sIjȧ% U]}2cKK&'AdyHT ;Mc[ ``B>CO8\y)++m .-6My]@bSæM#%7 gD{ЋhŠp,ә6V=Ƅ5y< 熰`".8H뽎;SVï>G bW=O32]2B 2 Kli4}~x?jϬ}뱺M|wP)qnFQ(_cُ Da}TwA;v} eXGskGѯCi0bITnvDz=nqMHQ}%չflovav)bnCKwՄYSڭ[QEuYAMa5XsJZBϪձ>7vCv7)Lg>27P)©cR×$<,ea=Y9{,&e}ccku6UYǵ:38OEwiPq ݛB+$ڠO9"8gi$N |! W~O\z5K'4<Ŀ,$\pSFܽ6}^!VƓO6D(k %Bּu |\6ْP͝ eRE7 T-DRv7H:ia5bJL.xϨ'3oBdE|Xiv`6ӵlD#^NDr*MLq`x o\FԆ0Fk )tޚB碣:w?9'mmjP$$6#-:Sn @{>us4DS"b6y2| G{Ҷ%.v#{C1~^KwdCxƜ<$u3-zGg7`;^DzⲄXb jũ—V4k;oFqdP;4H ]/;}[jJWm >G  :b+Yk>crbSW9~e'>aFljH 3O呒u<c{Mx 覘w[E5*;8'WNL&΋D07u1|/1.7>U6ܫJ1 췄:noN1qPOG}z8:y<ݻG/!fڌ#TƇls_ahOmW*KI4v|dvW&$e9v_ YSy%5]d2o:"ZdH 8Y1yvb+݌CaLs5|sF"1Blh9!FxoYp~}ca:5xUdM\|PR +JME v e3{V5W^@-,-t3C}OQNhw՗Eتu89KnˉtfOdkyi:/c8ߛVg5@6ɷM!1Qheak;  Z:"yiAh86~LSкU9N4>7 ~җ4}:5OaESy~k*c%{N.a 'C^ B!KwW>G4nQtl AnPI/wmp7^'q܄IZ'ۓH r<+(&%F~*)v{ɌyI(S*VU]"b EvUT37LsuݚOoUW9~UX7TQO>E=V1ce?4O,Ln&P\9XdpaP/`rMsxF< ¡"8X4X{I;P̣sVl,="->67"[U| { \05!쟖,BVٗ/ >Irf\G҉YxIu_ab1e5[_:9ř}wt›dj}P?zι%͋*q¸GkMFaC=Uέ{1Ѻ]4c66{RyFj|}RO2h>uUWB((vmW]K/y*"Oql6Gĵ#"[ya§Kѽ 7*L` grřЫ>[<.,I% 7^ǿXQZ>l6ԁfܸݗXL% )uULcpXS+ӏHgHdki|Ӣ´t؞N[^w-u+qkMc"$f3T<6ԓq/,+Neb-sk["l<j廖.FUYPiEi:4A=FIo7x8UB5/ujKZKy>PXnݳG5UoxfԠZ [,uåuث/#?lvt>.`bU^؎+}"Yh" :9z\qZ@0zK!;_k&)W*F6FM8ixnׇiN~w8lvBkaB}_mNt ~RuP+X %v!C+Aa(*c zVztjKR<&^yq Db`cA6Qe>z[y܏sWcM@HҷDی^umO-T@6YՓ-d~֨X_R>BZOS;p0J7ٚfb`7UL}=r:O;{n^p #[$); 3Ӑ ٭wۼ hqqTqUخ^lJĠuW#7l)XD7e&֡k)#:bٖXx1I%r_j"U-9P!6yn:Zk#yEUdbtCpp14# R~G2בR3>:5j-GrA:,5v+P xz|H䚣&ݠM(C(pl ,T+|d>cY%·]I#/ŖySgx%g:g!Cȗz=[6yz RG|R׺~&ʚnXg^ۊSԷ85_So]r0뛲}6@'& T>~K}26~>aQl.^(d=+tIa|㙪<*{;d}Iݞ6qhN(Ml[o7@4՗=X~6`bg:j (ln&6tY"³:+\QkBM}Kj3L}:yI,qoHJC^Vm0ܬ39XR%G,he, wU.Կ\8d3 \pXE;fߓ,&LlJ[7zGR5Q3n endstream endobj 82 0 obj << /Type /FontDescriptor /FontName /YGTGLO+CMMI7 /Flags 4 /FontBBox [-1 -250 1171 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet (/S/m/n/s) /FontFile 81 0 R >> endobj 83 0 obj << /Length1 1472 /Length2 6600 /Length3 0 /Length 7595 /Filter /FlateDecode >> stream xڍtTT6H(RJ`n`!fZ[$C:%TR}9oZ{}=umVzr(k2 MM5Q XYg_n"VC;BG;al& p DX""`߉(wq@扰4{($MĪrqG;` pp11倜 aC0{ C t`\`.h>4'8p4n  h\sX3Dc+ pwTCڡl 7Ͽxf8’p`(G_]7@οOp+e V(:jeM-忣jVrH{,y!B|`?~Z 8a߻@Ј_l_1l4vcB04Veñ*JH/9 @;̇K X½C0CZ3z\-U _a0kOS61;vt{mf&Q6aaMUrt^$vҏx?X`:Feͪ*t@-[ݎ?Mܭ:佫n'~G̓$ 8yF8bI[ el;XIW~vDY^xVskUI%%]Uwj%84 fu$J҅9{!,2%zE!Jù[?s=2U((4tzP;fE;}xp{t,Ǻ Sޠ,iطl x(;OnI]帓ꨈUtkKpi#!24Pc#Ŭu| 'I_;Mםߡ]սA~j183K*J{&$&%z[U Kdؙ w7{= (Ip1_3LN?UHϣ}r}i\QKN<[WsfFR8'%iȌN]pplru"?%v{]`qN=Mt*lҊ 3Vu }Wm=I("mLTgU[xa÷ Du<ft>z&qvAwCsQﵚS-c)>IT<Hq;M*7-@nqJ6ٵ:'NݑJkZ0.9:e)ݛoY{^?kѬ\͑oZ5Lw{G^H5m_P~aC0ɥo(Y5 b}V>y 1*&>?81xv)o~H]hWmC$xe1T{LmGc@ SJgL Dw~ޜx~^n~*Q;&Ov=_!v'V {5*o1gk^m=_Ypj.gWVqMj64[w8:(xc ب7;&Qh;yJR~`jA*]e:H:[[+B$gZ;|U䨓l+Z9@Wʼ)[^.n!FNEͅ{u[fuux-k2kf=Z7jc3 ru}0RA|78Yb!y)XWk"~N>~g4C1A@s4/CrRk8z/s%q]'lL$dm?kHND%a`ԃᏡj\R cU 0\PS` UK.Ǟ,խ>? ^]f},%;z^ճɛPi}Ӭ%g[אkcY%,i5 Tyo5nz `Pc/CBaŎmze3Ō0ىGdV(G3_Akfue( YrT9Ky}UׂJīڝOmʣ"$' |+BmfVi5Kz+`'8}aҁ_ҝTvӡ-{q4Zhݓ; BP_c,&E0bc%]wɾaLvAЏXYSӰBӂx7S$Lv@ ffYIĸ[HP( Վjۧd0rm]ۤ;-b󫰭w27%zN5* }fس8{󧇽F+32r 3K/ڣ->2<$>^Ni#0TI>CcMr-xp%Rݔ-Li:—e cgfF6l2=۰{R=ఇ|#[a"pҎ;i"Js9n8l"Jhe$\ڗzN]!.;0OPgړx7fj QFwBm2gs;V*R[Z,>o%nE<5 w#c,q[%<5c%C9m?Rn:zr&P֐ mW5DspB,?v-!m5]i7?eՠtgXʣ&7u}wu Aç,7uUe<Pi;U<\swj=>['p^ y˪ +:^ʹ׍/45zV3".gÜ\;War)G(Hv1'ﻌ͋{&}t>A7ZBۣMZVݿyL'|"JZ~ϙMޕ y#_,MJ{BD X߼f@;x߄&N"εWV##bށyeM`~:w%*R @AGIΨPSEiܩӊѢ{\oAs§FVP)0AR)P$N>m +mU˗R@.G6_pcYLfp熅@*ӝw2H_r|F^ W k- k%׶/d 'oPB.FokŖ"}":+o.Lroہ;deuC*dDy <\~cR8Mzq nBN(X; {v*^,j(N$Ki^JsѹSgŸo!z<;|mƹ{67$ȣ2o|IHo˓dwȱq,յ2~S&&C_WV7Z=gteRP2d!E|xO$F[Y0FZNjyCXW9ˉi4Yp'[ RRFϒbJl_T?*2'j>4 / ڳpʿYӢ88ZvX|ټ*tU"f?|\\6hν>@@N,͐6,dSuGMI*3Ӧ[埅u[IΊi^VpR`kBaj/QPJFX tb~lh#%R?hE7QXx*z Eq=V֭-|6үZM4t$we5Fmѓms>֚Hlwdmy1B:l,3[msH:J$e@Ni2I*P[d.i~ЬK 34z)Ԝ4t̽!|?i#as5( Ib /ٞ.(MML;RWb$XQ_O|Xp30X%$_O3=Zeg[jL1!ui&dO;\=E]9S\}4j_tf=E$QLzPW'C%RːuRfFn@TrzVPm(&8\%l,0cjxby8O%N}a]ƻ AqCCTj˸9gx\uMgOZ5-9cQs".bv+z$ v{c8כ0'ұ)d^v.rJ`@n[<{lN2W Md9,^*qmm[EK`)]e?U\6jkTzUJZ,=9[^[R3Y~t,8{z2Dn/qTgVk endstream endobj 84 0 obj << /Type /FontDescriptor /FontName /MZBRTO+CMMI8 /Flags 4 /FontBBox [-24 -250 1110 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet (/S/comma/less/s/t) /FontFile 83 0 R >> endobj 85 0 obj << /Length1 2376 /Length2 19503 /Length3 0 /Length 20893 /Filter /FlateDecode >> stream xڌP\ CpwKƝ%.݃;8J=]MAB/lbg330D?33XX)(T-@)ԁNv<0uebw;y;[5`ab#@ :Sٻ;Z@mL` lt06́6 *v@PP@< 6N vf4tW 93 40@)Nؙ\ w1xP(me,/:k`f`/ݿ" `ja (J1@tC[ ] - >!@BX`s2v918YX"_4U5ڂ:#ꬕ翁_I83Z88m.#3LLLܬfl=o%_ =I-L?N.@O"xff1`4. 7 >{>}>^&v/gae_ @`k8OK -}0Jۚ{˿ǂ+C v P}]&v&/ m$VSQXX}Ak!oTUX8_4}=mͬ[F ' 7_3.[[,l ?3zP{ ORca::ÿ<7hl@.vu(_(q n'Qb0JAF?S0AE\,;`TsPA4ZEg1- S9*ީɌ߻ _?j7?{Hr{ELşA?nb~"?{/92zYӽ|Pھ?l?Qٿllo'fS[.q/d}l^8ߝ6gf(o"8BzU_^/^~V?e(r0]{%jJVFUr"zl,L퐎L{Z6xٿ@XP.^oS 5 oZWs[&Nn B|ige?SbeZn{d=D5W8֬c *' U;̑cM2[v 5oעb>>ta ^ Z'3f'+ 7 MXX9*J٤ |L^)o|6uCY凾UUiCxלYP: \nJ|lsD{)e$^&oGYgC֧T5Q0(T:)PyԌ;.11ùnK/6E6R4;閜g_LDW2?F\<96pu{8 AgNk2 tHzjHfP#R(2ͨ'UpH+[?>5ltdž"adG(Y(*=BdFR|Xzq=֝cSBf9>~*@F*z9^!؛+mL;2q{aTN)X}Zص=WyhSZPtݱ.:A~SR.l;Ӈɻ_SCX[[,_Jz6/#("6g8<Ȱ&Ńw" @\9[v+Wb㙪LI"#\A]ї6gsǺy]Etr23 E}A' ɑMP\p9n^ͪR2ԧGc츍8F=J,<4*"rJ1JD3s72y+ˢqQmGXcxL5opC JV-T/#&y* -QSOtӞ~aj9۪ #Bo%sN_]tΡH}VG^Q%wpRv5b }.+-9+ۙSfwħVaviFB1$8ư _NΉ1"l9)%OVϦQDoB@jI:xdMl5p/r ү|"2 BH&a.)\ |J) <=ˠRDH3\H%6ϊ7 uBM|`4xW$1Q0XEnؗoI͔@3'+s pʴ\;1B7Qa)!t*$xH>s }q w:(,GY[~ւVO |a%Ưp(_-6I ώ(5}Kv5ɡ6 QFAymp_/mJQoNlWa:w@ PrHIPzA+f>QUE"!ކUʘ&x19_gh:2#yaT e-0Jkĩ$y[V>|/RjDv ]uYˉ2ibzw#&=EUh; s{|CTXXKe嗇/ga[C{6 천/p/upMJ6H5}=7EИj)ґD#YpiYxM'Oi"K_|UgZ̑GuK}T_ JZsܐ_ p#}c6c2zĤ,CrPwV1t ,OWVfOX%U,[R&V~_NFӘNJx44 H HQ&AŞA]l02$ uwԫKX ˅Ivx.gh13Is.&_öMY7ӎG v$L坦`fI45^oz#|g(,H:#`ƾ?4DԌ_}ٖirF| eJ\Џ=/PtR(7.հΗ3Eqx𡵝x{A`ͯԥ-s1fO=^d "TLwgvwA f{3 Az \ &e6{2'dOJkAb누a}S{z)'sYA]EAb!~=OX/[E FA+m끙vdpKjpmSfGfcߣ$Rz04ךJ&?<~j0hv&;H*u,'m*UkAhWvzx;)pBӟw"e\S,3# EoiɊ[Z&48} bmc@S0uhs̊ 'rq%,Թ  "mПͭ9\jTU>V% MPݞ<|1Qv*|cl*v7ևRM\(V Bd8_07ؕo x[zny%hxO:  |H΍W 'i8Ո,qr7Au $<2L:h; 5(O EH&Q`8[,Q}ݯKU3t/v:ٓt ET ]WRc7$in]j^T!B(j$)_~0%c(c7<%Cw e%<] Ә,=šFʞRXp$U@/v#N9⤔gN%֮}|—A`_.Y(m0"9=;qyӤu*1nLcěC5)_X*MY^9_Na]ދ"G IV9Bҁ~ξ,BŪh#/hut> mFNF6j\J <8Hi6Λ]>EwpF)Ve=Q]QdslQJ$`?^_uNeNʹ&pD!ry fm>A jKog폗)v>?[V+@ZT+̣7z³SRy<qJKMkD;~E/T~:%%9R灼" )}\*nj>kP:)zUs%$OOݬ2 e s)A+n=ǹM+'';۳wB<[o1=ex+>/dsթŗa4Ul0YOPQ f fr3qiԌ0mtwO(!Vԧ 伈E/ܥ ot\t 2*Sh~.B|8>¥p?37p:lM.vX3)*+t?s]B3;a`F\CdVQ2Fi|\PK. xheGjtqy/ rkO+9Y"Q}AQܳb׭MwaCAV#[p/I8qH!;gf#Wzh5`W iϐ= '|(3V̚wxIԷl |FV UU%ҕ/A,'$NDLHzh%ծβ=Inۭ[aL-3YՁ9d "2 ݴ_rFjۃECݓؤ HT=s"i89hII^1Lxq'dZ=O"ؒv-v>v܏e@|h! ?>sש6EYU>0SU}.)7u Y0P+< /êSw~|< +u.ADrO]Fj F"P[쨝l@ X\,9$$e!,A=S7zT ̀@*$3;.m+ qTZtWR,Ű̸)|C$ݶ9 8O38Mg# PGk#tDrȾ29 Qd!sG$+G K3/[uSsdlO(u&PDr2YHH(+x5' pԐm.+9Jp4@Sr=Fd&9(ez#| \z=v4L^ 7 0Aرz;~@zaZ.Jgrc58,ዝpִxBC~BX3“I<8ϸx ^;̦ 2\_z*8|>z!˭LÌ0:W ]ޅ&kBgiKzv~jʌўK&}W/dki}T<3c{۟OJ:6e4N6uHy5ԲӾ)*Zp,'J5IU[|&Siʑ*fZ'/*cuDT@( H|y )D0̿̒ۆ4+qU=RTP3;n&xx'x']㞙#=@,ģw|sMyHrclv,1v&`xB60K#3s8mQOv5ܴT~ŪdC 748 oxt}iYr! V ?J5, ƅ5voޭ6Y,9+Mǽ3yCq[kd;E`2wfMnGM1 6Aaº{kV1=3 Prl؊VS>b*SԫAe$88=$V,مKbHc-ctO"hf;˲M,\JFkO]uˊ7! 3S3L8n+*gef ȇ3Ƈm ~!f~?гQM.!M@11- 29Vɬ+ /;9.67r{֪C4qk)3rf/v#)S:y'B@Z!Wgnk|>MɀC=? ̤ƭC_9hU-Q*BFчE谗]Њ0,z~r.O~/|H<`^#DO k9C]d8_E ݔL,W}c&YoBuSI* ӇV3 */{GVا[5Q *КGcm{{Q[0d#4+>UNK*0Hgİ:,ofTWFkb{KHʌTȄamƎ㩓P]54#?u?§pyeK/ ]s](|Wi1cabI Mi୴ƈB%) UY,3wn27/)~Ɇha,vЛwvHi(ꝍ <#pn85$KG8 x(21ԛW>8ۉq́'J~%#=IJElD;]R I2`u2 cxklSV\_)3]FNk!Ma[[o9=OjqVJ5C7ȯuphV}F_8'ʔ6np>5Sz$V Ǭma@6tyG|!LJtXF%27 `A7#^rkMC3%XrU~68/{' ?zqkmwy\,|(-QhLveAC]ӠfO4_JxϠ[Qf.`[*)bO2#HV"c X|,5>V_H 5`.+|JqkA.* kp]@`)o]&j6f;!)LZ $۳􇁀n ؄B;7_* (5L.Tzv߳WP҃f-JZL,DrD٤:-}^Jq44)- MרjK{vL޸db*;0)2F{SP)< Kɇ{`5'iάݍ]*5歖j:; 'u,~kX`GnF ovq"8KaD |I*ruŪfUEso*}^JğZ#VWWy /g{7{9yLPHhC.HMDؿ -_v%;s֬þf"uz.G?Yv chVŮv6L7gr8ݴ!o~r BtB<օɌONCrB\~PRuw1,VK֥ =1fۜ26,- Ta7xu udo5tI0lb 9L70V*񴈀aS̜ImÒhcpF53OE21 gpcIRzGʛuK{P/(`yPk oyla0ed"ޒoigt̙iRZ)~+xő",E|T~ھ`q*M<MJ2~͕ `5U\ Fkz{XP=|CI#"}\>ݻ]-Wګ#6Yl(G[5q~R]H.7:$c!zл46T؋:TLto_I8F^78UoQ669a})!$ې3 S1Q= lhyUŖ-7=Z4T놗CR:%{CӜ |9uAH TSR_KH^V/o0+{|) g0zMaþ|ˊ$nrcr#wEl*BaC\gIZ]krH78ml:gld6I0YȻoJ֌Toq_Z (0yTM| 1)}nrя څʞ5+86h{uyvMp-dSY,H~N-r!g:~&f9SXr|GQ*Dw!X%E[Æ1 ]=ӑu`G1|v)HuT 8ӛRGgZaEpK]˵hʓXC"E`-SC`Bi&z'Hw.hS\ZH.x^ys0H}L[Mjo^{  :hYx"~a}}eB oϺu& ZczsϝD"[I5˰[I4MWe[!dջ㩽^yxlG_0p\ VK[%H@I7x!56SbDE-$&9wSW6 }'>FvHҒtc+DBGD.WPY0;lcoNZfDPp|cb}># U?x\-::%sY.mM_$O_:qˮP !Fu/{Sȁ-|I:Ks0  dI߯;9F+N١|LIeaRU 0_,uAvl3$s;q&^P?Bi-mp3>N֪DZdr( GKk'//ŏNH\hE !F`sphl j?MQbl*xޯ}ПJ`Q8Qfzhdwd0DD "Yc>N[bDWL"hAlۄ o}/Uٙaә ptۿVϗq?ͱ4yJ2 fz~ep&ЍFYLP79\BX2Cx\ƳJR;:Utw0^H򗬐>aDlDEZMxNw-qf.r. Ř.a Y S]#?GW8<&k7Hetsqx?_sEh6eŽ"5Ň83b:JV W*c 5>2nH`/x]So´֤IN. *K4ClJ #|pU1ru]҈8Mi`]ĸqO&}\>1 W$  HraҪgx(zS=c}T<(:71"$6Za P(V%_`v=7fFkoNzܲR!1Zh׫`1P2TT?_ ;9\2W$X1\怒d'i0Vu b‡E9̰l%=Z(t Rk=u85 SKGuPX#5s&2F (e(8;$уяm_(5ZM .Q^1P5P'J"ʔ~! 7J&Q/{| +V6UMX-G1A1>4OQ,^!R\]K=Kmt>U $H|k&1qC/ ͎2ͱڠOF~Qn}h!%&$Nb+Oϴ"?ş)S,rѴ!<AТ)*}Ғ#):ԈOq4Cey<!=IߍQK_i&Q9H(3 Z J/YIhw{0ڪ(мʫ*uͨ-T(cMWN~DAnMwsѨ2T B׀DJHXM4%kOo>3 G+վv)SldF*hC0;!5vW 0*h8\\KH`9 ğ|OM`AMGz,!_<xNT?^I4 LgI?WU;49ցͫ1ж'U zNWgtqwKŎt15Q9T?d#~43 Z})4.q ;PP#XuBVV~V)[L*h26(h [`w(.aɪX'xiۦڟ+!7JiD`u-awn⧚wԨ3qpNaM.˼XA ?ۮlgX<̀}ZECk1V9/]%y~!~ja2#4zo.`B.F́51pve$HV+{uQI8EUzbyXu6*To, o* Wf T$ys5)T!;iPiⲮF_H̡ 44[:2k[ nZSD<~kow.LPM77-6Fݍ^ڠ`ޭоGq =Zz Φ|sT)0zQrp]ܚdfh::fャX)Qν;ػ4)? P[-4k;nۖ}99VH#W` eZĥ_!wL /@iYD]WGr~eU2>ko;fP*I k)yubzAÂ:G7ZʷD|!Vw(~|Kzj)?=+ۜk5 T!!1Aпp-⸔ BXPbeo03 ֹz~.( r[j 5W 38AiQam?lYOV䜾IE Q1cm{s97BmQ`l[Oô45`QJ뫊g Ȭ i W {J^/8E)<5WՕ;p%0X;XMx-+ *iL7(dΤU /%ar?~;ol79fod92}qov %QS~Rn`6Jw#`?L Hש&%ց;SCX C`-ۊ!+%oiqu_G?_JXm qs!6!h䐉{7JC/] =1i"<%FC66`d2f|_Zmȿ )hI'3y7|HT挘?5(?S0x  EEٶuUc[ 5یĔ30|8p 4B$=>G6oVtT@ A/*Pq@&ZHPr߲|xb? "_8*,NZvjBP-BaoN  %x]a'͍>oScKE{tɭXXTL {}8 >H$zfRrs;b^0JOP|&9;<$ z$ʎ>` x&Ïs-q!k,95&h͋'yWo7H\P?+[eX ).tG4Aɪb$pFb()R^Egw4DST̑dGXnS,f-I!y0I{`S'QFF -If2'epQ9SU>#=({;߮W~<[Qڪn&}Fߜdf`[FGql]E:a?rrpK ͤ#PCՏMӎ Pa;CoWw_^zU4PJ"`4 T3PZF/WKnpKxsH:{މN:wJW-L"Wѓb[!^R8n#6i ~擭`<:ɻ8ל)Rx9ݺ!OO!MhB9 {O֗Ͽ,|&P/P j{j`k0DZtMV`r0ղ!߷b[::™A h"e ̤ 4pv#OҦU+L>?Cĉ D8!{ɨ m/G3c'nO~/ـGVFh~_)vQ,s0L&*{W)~('ܖ]7ZFRއ rZ[DgقnY*8wLL.tLc&EAA}s?:?xҺ¯3 5|sH{),s+Z&~}DjR,va3,4cifG˘%i@\@*s?0I+N)^qyI]t0m- endstream endobj 86 0 obj << /Type /FontDescriptor /FontName /ZBXSRA+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/D/E/F/G/I/L/M/N/O/R/S/T/U/V/X/Y/a/b/bracketleft/bracketright/c/colon/comma/d/e/equal/f/fi/five/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quoteright/r/s/semicolon/t/three/two/u/v/w/x/y/z/zero) /FontFile 85 0 R >> endobj 87 0 obj << /Length1 1599 /Length2 8651 /Length3 0 /Length 9702 /Filter /FlateDecode >> stream xڍT]5L#! Hݍ0 00tw7Hwtw* ćOk}ߚf}9::0m *p;?/P/y@\3/3.$#@ ۔@qZp@/@߁p@ h40."Ⴤ;/## AB @ q_ rP`rpwGHyyy\xH{nq =!߄ ȟxqYP?p;w/78C}/W ?5 ?/?] #] f:C:*w ~AA6P  EAS]0[E {JP$|v?O 0[$l=|0D]鯐{6{;@  7؁wy'o=?' Ap@;F[(`p~o dq//[8?Η@UKGO?A!0?@\L * w.ހTR4п ݣ `>@A\+[ 7s. 4WH-[7ʂ@!`ܥ8X2ܱ!^֋g,˶q;./t y&>>@qSTn[{vTG_V)z۝SL}oyc oގګR!F[Bz58\2tN u Oayȋ9by*&,w$ބsg$Sw )\ ~/}?Q3SRѡLL)|Р\,_CNdStO~'9QʼўAJ-XQ^ʁ}YFi{R+dCiTW-^SiA֊2lD-7r ^jHրj=<~n }axv+x\zȌCZdzϞ'9],Fm.t$$Ҭ] /5'nYVt ٘>AK4~z% "CMo22DiC(Dz2inAd1/XDPSuJ~L2X8!jf6='M"d&U$2C-[g 9Yۅ t$K\'#}mEgKKWq5* VX/XdL|M}@IN2JtT/U(SoYSl0¶a3"#IΏa5 mD U>{3FWɏ]Xd "="ib[=[>;R ³-j3I.pf~|'B3M$~qOU мMB9Lйm曰> 2[8MB>.ԖTK71\ 4_F#dPXjU+󗧿ԁҖ{IdxBK=;ɉg&qTj'˵ "22,r>vN9!?fˠ^~ {KABaU ;q5JC9ZM%=Wz8_-71dI2X;ߔrKhzx+./AHϦVn& ʀv7!:S9]2/H= g}8i]fk%l -}9K.deC}yTһ%SD_;dKa&Նh4=C(AR{^έӊ-z}ع!27.R[gj7獎AmNVFV5JF:ŏr-//bPxҔ4Kjۻ\C_#%j?Y˒ .z1U\r{8D<:D^J&<>V[玑jdyޜfUǭ% S$5Po@I; 'JLuGslb|ŅX(oEbG1Jq7D. >8n TaĨiACT{M1BXn6) <_kk'%6{_>9eeԗ~ĪV"&"X W\m]bƨ{幆GG6VĄq1v*,͋x+<n 3 ؔY~B4(od^KWf̶J{ D3CCӠ:_Žl:܆}rƚsD*>L`Y ?WRi `&%GͨB't:</ץ)텥-''1C ( Oބ?O͊)ge IG[ f@mQ!KYR6 sуJT AoÌv_1;cXhPjVV|z̗m y͟A'Ec˨cҋ!D*4 euiwۂyfи :>K}h/9۳BqVaU;(zKӮ@X+@S8)Y,Z#*`= kmա)r_:Gݷu܎_BS-z6>ptqƍ,dxH-L F%clficT^f_뼑 X$l# y`"!}G6&5ܳ&)s! T+jٛQ.[,3d5Һ>9ݜ~AەV]L,Wϸ>H9É@#¨/^2a!F,(qu蔞3&bEOFQǚeEGW0+`^U\~П쫢DN[.+Yֹ]֧0Xt3Q wPh܁փQc%NJ^jIǣzyW8[aLy:iۇ:pC.h#pO^kPˎC/A:0}/5"@5ۉȮ,,2O^PV,WPu s;$4Jv$TC.:^6oKq{jp`XB^D${~.uAVf^ס?s־~ly1?ȹrRqRJ}r_LYXsVW+?( BX?1AyTƯ%gb}KM֡7N܇@';JEOoFI#>7@%YM/"ZZCjV76!R}гs]6s@>.rcx}~|ᡭFȶxH9ld\Eh"21< p9`_ 9m-eEa{`P~w-U}m^FS#uE+ch;COQbMQ r vi^e˝dX+O Rպm]*; $M*g.y'bˆfhֆ;̗d_*90_[ ω_UL<,~kpt|Gx&g؛m-Z`{Wy-|a8إ%wY1V(02qg4W﮻U 7[pŀ.HYu!"s#C?:Pc@a|$rQv .Zgu36 xu. `߱U+u<:";ZWÅ?ϟ<^;dw-aͅd;+{/s!NlMɒL<J Tm npB/֠z+&b_3a$zXE>ʳ!aST?t^ ZN, =پbH'hQ?ф8^%<%pM`/]Pgc~S8Z+zSU|Ts{ǿ.2JdZr#R A /uYtk#eqU5CeѲ󣶚/+0>du8EaGd&McJ33oT]ޜ6GcF`u75]"!viTalGQ2;%|kJ)+72LIk'q5gM[1r6c*SB䛶\]v` zC6IEvc},BkjMOcOJb-&\ IĊFj .W9E-҃8h9=Vlap=Ţ?\nĝMִtCYn}v[{xUBa [+ikvpAhGxgB\$xfE|~.a9ٓG,j3q_dԼ 먲0UtjU`f_9"nvZ*.M$c9)ڈ fқI< ߡ?8+WfP!H F R׸!yYYx̾g8MZһdMŃ4Y*;i1G 6ViH0_ uҨT!],|ԉh_s`yxQwu- ty'TamtܙlV\Z veɋ|"Ұj߸xj~i1~ѭlrCs;IXIW o1Uq~'Ik2׾\̜*Ge\Pfګko. Ų%qRT}vӟ8b~|ZJZ$ o|Y^K U0B=Wq'C~dWu; Jy TZ,}r-t9k#YgRx4$-H}CmD' y#9t<$5c >܈B=EU䆲n>IuϬ|ЧVϳ\BTn~bCSv͂PX,Hs0*du'NVҡdoy 'H2ȷV7U8j$Bg2?o*GdS,Ī*SvEӘnF\nTS(~M~Ą>l¡d؇Vj|Yg&s(V}ҏށ!2&1 C^EM 3Ikb"uvw'i .=^'s[Ol ܐeb)P4ZNZQ)!zKX/rFwvK7p̘F n:YȢ >Pj#0rvDaQI,N@M(֯E]$ Edⳑ-ejmKX%1=%c [O| )*&<zB{tr[;6U` 'y&ە[o)t$ 6hx7WV1:SrtFR#O2ےѓ8At8qIۦfωWc?s:H(>l9喰^$uui`h:<œj0?6}n3s0qzMMiX%dam0ѡzqԯeޗ6q?axr'jWYXz j85dԇdɾ>i->|S75%6\~Lv ڋ*Y]GsȊq1o)S*(P ;_?f2n1mMݩAO*Бʬgh$Bqx3.2U>秅y\].5fcݘjɁ]O7Eg\ӋS<8޻[d2z<6 :iNP bTmGca>?zA(a / dRCs{9/՘Pt/Q 4i|m"K^8 HXd2 @PDlB$] 8N\Hk"sd,P0-Pw.:O9 endstream endobj 88 0 obj << /Type /FontDescriptor /FontName /VTGMOO+CMR12 /Flags 4 /FontBBox [-34 -251 988 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/G/M/Y/a/c/comma/e/g/h/m/nine/one/r/two/zero) /FontFile 87 0 R >> endobj 89 0 obj << /Length1 1444 /Length2 6751 /Length3 0 /Length 7719 /Filter /FlateDecode >> stream xڍvTTm6҂410H7 91tw *-ݒ")ҩ4%֜{_- B\@6 pu!H(O5> + yB!ew(TWP9"\ErV[7@0"]!Ȼ2}Xm‚0+ PB:awm W V1$Yӓ ƍp`xBml nqCCzZw ( wpۂ]w:J g0g?8 tFJA=4@H/$' n ꆸ@~wnIk tv@Aᶲ GO ;vo?&Gx} p[_ lݝywܟ.w*t`$@ .ϯF_;g?|u`4[Blk=O;5n/ {/;z"PϗGQMWXdd^_.~~ D D, oހ$T!@;`x ?7 ;*0(?wo@Po3ocA:1yj݀MVBamUBZm41B@/&i]z(DA~5.^ lwftw |N.)A;>+WW+ow j l7 !\q~MTPK[?D<ndzIs_{ L"lD>WHS{r1qθ_c%g,J'}$[g=nlz|wm=ތ3gͶtu7}.] ?`'{m̯]܅5H=DLkm?U.zg\0Μk5Af'>"?9#Wyxń|.[;%1- c_oSb nvq}uR9]yh8 >}07Roi ?q۠O*A 1Ⰺgtҙ~z`'QVƈkQsL2Ia65!W4V X )B&Aj+Wo QצFZmV.;g)şHFKGh^&w>^5:ykaZZ%dgl9#~}oF(q__#GU>q^/n}j2h =ԭmݧkIFI[EJx:'gMNܫ{Y=Wb0,@jN i,nry)Ώњ͌hMMQ4}e̞Y/yiyL/+V(F|`CLJ+~8߰ߤkypm#SdF_6?=7y*7F/@cK30)kX4A3eE-5>L)wDZGQdM-`sz'i5&h<_*.=iG%n>co.Hjc)(Y,A9,Bb)H쐛DE b vaQ\lvp3ۑ2T-IEG8;zõ< 7}RK-T*,f0D3V͟uEK8=׫?~xigt %JHN`KKKZ"wrR~Hp Q/H3R=lA;~gS5=layz[J.!ض"5HCHŬ~o?;[+=I`b#6~BAt >B#΅ՠ=~CX#7%6ow95"ORuݣf[U>ji%*Ey@^0Qt3ڄh>uV HLDF~p!+%_!pQ/.]ʇ-a2<<  c+Mgr5mLz]BotJ*oIx+BO!=?oY1M ꋲgqJJ*0}_+(E ˲? U[$jS^1T"xܼۨgU|zJz U <nj+Hw>ݿZ{ ,"e(4ov^fۉ4نӧ6ɔ-=~ EEm1wwgZkD[*jՙ8i-•_E];(/l;?xBJLRElF!qmѸeB{ L$<>uւ37,JLuķ'W#ܳc|oؤ YJVÙEbf9ll)3&IyO2Z7`6@ 7C-PUʴ ;֔9r F˷C@grwyh_Rv%:&e*^>aUK*M!.(e @SFJW^}ꂁz}'oH|>:NPpBkMH~ f/6x S7 eypxO%S"yVƍ$VJ3 <EؤQ÷Vxsob=MCU1Wy&w;ۇWoJvj ױ?4iock,Cl2U!+}yno?[ Jkt l wTt9a"aT;;6z9Ѱ 3ne^Ѡ?uAS)2Xhڗ]e7!h`=?D{:!^+)J;Grכ{p܎J? a-8$oy. 9c;$\[2xU}HgzRVav[2kU҃kuּ\ v ->ERF3h C֠(S{`n!f1cVk-1N¨@]ĂnQEq̀\R3 Xޙ l#$ӣ Imy;/lh>w%&GLyv|gEQ>h7<# = 8l]K =%~ZvRJ; ?i2{\MP:4nd;GXt/CuL9&cӤ_(V%:\W.G0f4w.3$ZɄޅ蠏aTĞ]~/a7xlfAS^q}0='bH"a_SrzڹҴqˌxmq⣄28ZF[]Ow + /3|EcRWʫ- ^˖>p-<'Bd?KvgtF|@Ma`]%gKzU%1~tݬ"xXHXh [Fk"Ga^hz@pˋYfʦMYoʊ)#bT zOm>T }Y7\tԗ𯈤h֥ ٗwiW TB]N$'ƧƗQ}t+?E`OqzB20`c4d5Ob&I8iҎ%dB wuC=CĿb09.a|̅>t5%7ҭh>^w߻5E;zg.]R ɯj%[|Eĵ+y 4̦(}?2[y"\TTfdԲ(kb9ZxE<=kL)ϊcH (=yi)+b7߫L鉞k>彿ژC鱹W$ՙ]  &1NTcgXaq/Sјyv\El)bU0&N'aKQ+l6kQ1J*Vx?,4-F%ɜCȜZVEeԟ[– =ĩN?VC*ET/^0ƾ `Q& ;Qq=浑` 3'#Yygeƌf*RCA~Y#璸yOR 6kN\$>W.a j˴yTp =X<Ŝ%OJ|tư{LBhP)828GT="gǬ )qtGb2x Oy3{f315|!mV`HQjMymP봍ۯ?_^ȏ(MO>W;PL"p::ʣAƈ6}ϻP <@8åWʤGd`7&8 o]@r1Kɖ+(/neSQN#K$?^VI#cΞ[QT0Ղy~(3d Sf;jiP $ivdT1KJvۿirG6bW[nA)V抝?+[kX6>Y<#.&M ݲ9/T+ `{o^GV|>UcX¶$۞Y>/g˺2uw%r)pӏ9*:qO`7΋Wjg__8vۉ,LqL^DONi8я}JGx3b\srl@4+="\j)ۗԮK IyMyfSk}nv~FK1|5ar ;:%6cx334LM:o_* eŬ$pŔ,P3oWz691u!%9~)GAOܧYYje8귨mG:41"MQ\ .,+';JHssZ rN&=uIi*"6/9EbG8Wێt.,CNI䕁癩b UlJ_(\CD8Pn~Ms;ryI奼c/XԦG4\iز$V`D!/HqCVS<<.m2!S}|kC&ǂr׺W .60e}~^6˫ wKbR8j ٘zkz7G͖n-?ʊJ^[ɘP9ΓОHL[ 8\ϰJjDk魖lLH95Oײ)޶7Ux̫jj: /+R zIn2)ʮ N~{,LLU>-R׿4s -8ىHQAu;Xm5~S:H#dž m;L>5K#cr%jpB7ԕ3w6BscfL$-4Xr6ǨfCvC8&º@E粉-0i8cF1=@L9MWeо牱KyRElBvt:&l\IWY[YtYO}6~h3)cdxLwɳ-sb5 A '@m3.iظ2-JωURwsbqBQ 'ãgN21Ϝgt}80}{ M/MGYk#qzu]~((z$:EKд_T&Q>ׂuIF>Y]\Dkr@<V鮽hQJUtA > b|OY'˺#,Y Ń& NFH1=\Ĥ sI=zZ endstream endobj 90 0 obj << /Type /FontDescriptor /FontName /HMTPZU+CMR17 /Flags 4 /FontBBox [-33 -250 945 749] /Ascent 694 /CapHeight 683 /Descent -195 /ItalicAngle 0 /StemV 53 /XHeight 430 /CharSet (/N/e/i/o/s) /FontFile 89 0 R >> endobj 91 0 obj << /Length1 1379 /Length2 5945 /Length3 0 /Length 6881 /Filter /FlateDecode >> stream xڍWT컧S@QaF0 ƀnAB@B 4P@Ns=;g{ߧ{s06VqB:40X$P30@" hGR-a(o8!j(C83$Rr`i9 eD!p'@ySՐXee~T<`(8@Ю0\F(`ahB)ўr~~~"o$E_GLa0/ . L0w{!6C: ('pCao rtF0l ,;ܟ޿!P(.g; `/Ơ/C7!8߅C*&ߟ輡('[ 0&k Ԑ0ڛW}p :VXH?Dgg8'OQ NDH@ iY @]E7z~+ĸ<gXh,(+}Np(s#(Ü&c6 Я';w?濇+jc/*UU$ ,I`8@ww6?uHp s]` I_Qg=>|C cXm40'juf \n"[9P? p1Av {JqV)5Pӯ@P(7xM- Qs(__BPe=x\ֿ73H|ȶZ~˃ce3W>Ԥi5የ*i}};<`~#?MG_RL3vm<ws@07]` q!ݱ[-w'MVj(G,mJǁ9̜$hd04GǮ ]& Rm%X/%LWywpX3$eCcfQBzVR9E7Go!t=QX NJ#ƻ+# Jhy-xey}7FfiW ? )mZqX{-8}}e$~ dF*v'H>u2Ś샖ThzJZku;-FnZjZGYI2.OLH]] 4K/h&z$^d.{GX1{hW\5w~oͽvW59,=EkM4Dnǭۧa=[]<W*~eqy>/2{6Sr_6GJf )zu3` V"af~qnmYLgIBѫi{k}:}́k a$yy!!y^i1$xm4\zBSJ2 27ْ[Һ1лL FVne twS m+`'*& NL3>oh9+ )Min kfKD]ͧUczOG 0 ~eÇ(Њ/+Cr`) Ɏan]d|k ֙ΛGZN(V[g~Ay6ukFɎ j䬴C-ԥJD8yo0ί*Sbb"cQק~r{+MUYُ\k7.Α~L,d{!>܅*ak#e_΅ęk<2,#S; i1x}#&$by6W?>q ؠ#mVCڜ?VWl[D*#iXy;o Uzo#F}v{!IrFB -e: 6y$J!IxQaQAZީ0ѽ9AҗM#lsͭ3/ނKX,kilߞRTqu$Bs=I5PQ<4~ 6pqXy{-FM+~^T[bPRڐT]~E0qgb*Oa')7ɤ3z_C< LZw`VaFzmquzms8?+/RmS)-{nܩhSQT gSܙ .',uķlEOl}%ì(_x`sJPvKt>QI/OIq$$> ۾W5-*2m^Xo粎ꁪH,.]K2vS~7}jS >ן⥨ cJo4UG|Ч6 W\u;W4$ϖY^-A]ݑqɃU]u2ߨ2XQAwbd~э?y`ձàZ)[9|?CWKw-{-­̦Fv䩦݃8l:5'2&RaQ`NbUjxY @O?dHiƶޠWM:!$ՐJ)|rW#UZ}Bvuy#i!D=QwntHvu\Z3- /d AmrJǒ7~0͹>ʷ%-x b6/#=Q?XLNiavD^ V-4,2f?Ӿ;@ʥ8,s]ڒuxRoOm®-]R 0@XԡBf-7N!lcx\T𓗸 };toUP~*[<G. = )L)< ihˮߪ ݍ>$X"ՒȾP!NF[g7될[fbk׊_ċ#tJ]nXJEBzT^&tVQB ssX %=N$*(sPa[e)}lIAt/>%i,| /1ӱ)61фpL%g{3c^شbxOTҍ\weϙu*73|2h/4(FWnw8f|82;xckd|5}Y< ws K,fsTzUy^y:"5^4}ysvȌN8#92^ I`GwN%.iN7S֘Mm*2)6{;om?DwUEڡM fE6ff~B2#m }nb:m޳wuj$.㒉ğvM *GgŔggcP 4>$|Z! %V#}F'R2*;+K't<[B^cѥAXW]{!;]6_|":'%&_6XNOÚd1nzn׀cXKivWܸTloh'97G g'/dڏ)|ƅXӍ 4 ',rJ`m+|j}Tj_{ C}l)M*>"ٟc;V4T2 :LvZG E廒>&z+$c7SQP+p}w'4} S4\%=I%S| _j@{pЋI.rQ+p_ݼ!5{"` r v{BRL>J$b.G١>5^}l gc.}Cj69=Ssi* KT_@OJ1TlT!BkG(qcgws6#ԷK/\Xcއ)|ZliՎ r5(VTT!+sܸszv<pYiRг|P":eu?ʿ?L Y^IubKYvv1[s: m R:tLdNqMsr5zSM!Zw_!^ø\}jgu)MSzn[sMD<%ף.9WCԜ9HD*a{VTMQ#C韃* FYJM m^*Pj}}y;WۻU֞&Мj rt;_U,'J4$U>|:LjxZT C X-?zc@h^M;"p7N*)!A7`[ѢT*v>9}]aE^l$ T͋))) qYg3 #M9 0杦@[33s!V #P[/-LҞuU\Ajiq_!`zTbjpB\/at80n>BAyID A˗|1&&h.II]HB^BKrXșMLhg0/L|X1nam0.XSVz5* uG+[w{fo? endstream endobj 92 0 obj << /Type /FontDescriptor /FontName /WIRDCL+CMR6 /Flags 4 /FontBBox [-20 -250 1193 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 83 /XHeight 431 /CharSet (/one) /FontFile 91 0 R >> endobj 93 0 obj << /Length1 1393 /Length2 6165 /Length3 0 /Length 7106 /Filter /FlateDecode >> stream xڍVTG@btLBmtw*!5ƀ`%(%R"HJ+4HHIH* ͝~u{v>gWLEp 4 + UMd`,7C`hw/%8שAx7}4 H!r90(ՠ>GP{U _#P&ʈ*# C.p$" 4EpRrb=@ ___1(K qV".@w 4"῁f.?Ԧh'/F91@|mYWANgD`( Fz@Q3 ja"@(# @Pơ@ ec Ot^0 %p+ Qh$z~a[ qvB~ApF!m υFڼIw6ގNg2XH\wQ@"G›vicÛϸhr.vqz/Ì^k!1_g5^u@>*9[`S {f7m@wZXٟ}Y`~w Fz$Nj?]k]:l=gU>5w ra/u>ʕohsM?R-Zm?eUI{TK[6Óv~I^m gC**"G< B8W?r- 2x/ x,{AmԪbR{*b˂O)dflۙ1/*$q܉YG&ajf(&굷1Omi/dA,&Oi*Å|l'5RPdZutJ!,_Jsq!&I9E!IR,Ԛ6~=Ro!<{'9<[S ]tv6Y\Y]Դ'nbV Qr끔Ce4ܒ41ց=zpBę'*˜QtVă6@Fժr`7JGސi Agg =.(yz"7T'fUwEMJT<"U<^~n*F::^XJ7AƂgZq4S$kbc{酾\'*-^QjQΩefUs4CpQb&~HIUF_zw m)QKꢵ:A [%pNX5OqՏ%gGo(.ΡvijMZJwRtOXG/QD{uvkXRٜ>(wkdeC1@n0m7AmoIG-7;/~vξVYDQR:^H vuJJSrH1g;P%Aee[v%Z7{eK#?$a֚f0%)핻ršr{o4y hC#!VOliX%̓l䴰|EN-'9t0OcAmGOl=wXdb^ioŒ[W:MU7 3p?_03Qt'GgmCg-6gLn{5r1p,+'vZJN05$cޙfܳ:sǪ8q1i[jd$G?OV4W^q\RrZiPa!:ٝ'W6V/2U;:|J;4ER}-foe>ͦ=o\!qHC&QnetP\ߖ6(\atD<0s(ij" L2tB20~P@p3>!+0YĂ(O+@E4^%_"=\ B#%+w91#qOfSmp>R+ un/5. SNK#1g/*/}\x`y6*5nL}/iQޕWӭh}#أU᡺ .v?M:YjhǙ99(>"q;{;Ռ&޻Om7mdy#^D0Ԛ37JUfM ~/~IYIknMs wg a! <{}&K&">dҨ;u6XI1ʳ+tdvg225қ(Wn*wΑ)x }5v' -$(7h:6کT$_漡kH Cn]M{MV,$BJZWh94xpwckW_AVn%-nZ70]!,Xn;e_2P6ݏ8w8k?:|\J^stmVoWQ׳Rݸzv >U>@.t+IArq%(ZejyZ X^h}:Ϗ5Uc`] ڏL.UQBhR(ZrZ1>/Mb8soBːE}iEڄK~ k[rRd9Rah%ps]1Qf41bhw`ʞ /2v}LM}*b'«'ob(Э/tHŒOFZ,XZelo#7OZL  SNDϜPy8\X ⢎XE ftLvTVN4"~ƚ`8`ijze.4&^AbIn^Z|^BOz߾(r&@\u[mr&߆dhRa=*Nab3[y̧h̙[]Lq杌1&=dU?*`2Rbboj ]/vKMWI#&E *PMq'hBy(4sH Q{>7DKccz%KW=C"E} hHyJ)ܓ'Q>#%>`"-Y[/xQz@4r[hL%doXD&'"Z3rPbንAqWy穌?6ѨVfiW?)Y1K|TwlfC֘E8QBe]rUx$Q *@{{ՙ+5MǼuꇡ:kL䷦Gͫ]K ;Z?ĬN#%<MyKI1N")WRj\$J6UlF.Oa|[,D'[nt3e1Ė 17>P &jZ5aZsuwC5[u6W7ӿ;9)@TiJܝRj$w@B O88 ϑK|I|Xb긻 :sZE%+e%"kY%#D2ͫ$)qH`{'̌cu>ˠ{p=Pɺi\nSbL{u'eA6*+wrxTvaISdT%jK:Pf짧kk4#dn3HcORE mHEZNyL34v2E=º~Μf %V &\w3It`_$'K tN_VP,J8+;lJzhVhy+'2lp'q\@KwZ5$,06M b|Ytg%/%*:'ox?ki X>RC&%Ad@`^%]Jj <3*mInb\B]&~9Ywe b{cwRB.9/n0>x~k4Qo7pmjw}Kĸrw_Tܨs,X *07bv11Vɴ%pN)` ңYM"4ϋr6ZRAn9 }*~38n߇ix12 'AQ~{{öY)wePPF(%'g\1.{Gpz v/L[hm^Z; 4xWZpn.q_v O WEU..%E#FYN<"UZLG}~a" \ykiou QY ٌKDmAa^O7r )?k"Ùq+B\F>P&4Tu-3<Rwu*.S2!Ǭ֛Z!K $HJ_٨w'0?20_#Kyo?^"$F(o&SX|*4R$vx?&qǨ;壐$l2c${ݡ^E:PpOqBH Z ::֏x뼦 ˲\adőHidOkaF* Ϻ "> endobj 95 0 obj << /Length1 1610 /Length2 8532 /Length3 0 /Length 9587 /Filter /FlateDecode >> stream xڍP6L7H7tǒ%H ,,-]҈t%!-! Jͼ}s;, Z<0K uypXXp AewYT ("s(XU"sr[qbbܿdA.`+ (@nrDhe¬ B?Ý<<mPk_%X9Cn ?=?-@߯z^N4"?'QlBZp7Ͽ E8@ lXlP#hy'!< )B[0(U2xMrr0OG@"~wղ?U60% 2 0Ado/o??2`ןvP!@ :Vb2d/YkVv CPdž5+So1J=Rj5s"  /DHD 5|P(`sO@~Q(oDh7 Ag/(sC!rB<>P C%" \.ADnT<  r&sVn.ܿ Y$^׾jbz3vEQrL6e#"<Ϸz̰$k/}cdziyd:96!w:="#Q-[Z-l'F?$3[iJF 8'ϧgSoUpc }Vb/*\;(PO'X}v^R N9&!;[:.?XY٩(PIUW$:3$be-xmtLkBDk {m'\E$|J No{swF "bĹ\seQI<ڂtг{x_-'NEY}{x9c>*:ax0 TEf# ~z>nclVO2R::Gv8|l-iW?M{Ij6QZ^hsO{4}EB6\3o0*ޞvySDƞGZsWvDnsq $R#G;z|l_$!nTUװeE\I@ohQ'?XPn~~GkU~}n,:!<䝾t@dc@}6ضVn:es!`mf–鷣o﷮53d}J[s*niOh©~dM2+k)Є>cZBM8@*WбDrVRA7Uڙ`cW5m _7Gس Qٽ7&»Rj}[=Nuclm IגİmrϚal4rɪ챓 sprɃ!'Hxn!Vdm|8tqBgo 6 !n1La`#mkӷn,JfͨH ;)CCmXxf:tZ#QQFeN>11L*6;P&30&/G8oѐIh$qa{ʼ@Ƿܛ*^(hǤrgJg򊚞W8JE8z!]k 7n|-!'$Aŝ(LAQ7Yu7'o밉]/XS 16mjO]"?q &CѤqP*`\/@Iwk]g-{msΰ{ 4Gn'͗=xX;x#4=# &DAL[y' 1"nvxٓuAlphv`/%8nΎgv'A:D5 k5',9; ,.87}l\5+ǤBt,/1:cē9 d31WѮju*͑ ٕ:M7@hu?5yz|"=^Uz_뽰B =șbr*iN[͆##2.3h:Os=HNIy4eɬ[B S~}v`%h~?t"ಟ 6Ψ/P_@g'-wkd-[CbRCܫuMXJÜ{ 38ce6$>Fl2V.F[Ƨ= 'y3B=øb@x.sQd"#ZvBYfqR.!: )z z7h§j]s ¼~.O׮ _nꦣr\I4 x(o3$IpiyܕI (*p2Ǝ>_<@j `,@Eqjj>܎u}¯@Tu)+7pr2O]'9ojjJO,Y"3~n>1Ў!b 9n+%FMqJޢ>P 0~V+B'uFæs>u<ڧO@Nѕg{ǸSȶH wK/T= yt՞tKeиJ/uK(C;oE6!QWھ3%S :VSsxB_:|GMH7WqT?4=?$xcs۪-ۀE-.mRMRy:S8k}߰*$5dW`H.quF*~]A<zh&NktegTyd5(> UMenv 20\L2({x q^茫R^ :]XX("&2uS"$Z6u 4qR1^#m05u }kc#r׶ҕ"ǘ 7535^.+dU4廋C@N%y]Caē!Jk֡ٳs4}Y*Omӡ 0@1}'P3TXɬ}SY@F {.`ށ4dzT+3| ˂ҳq}3$$45=q~Y\WAcX6ÖK0wP<H &UcjÌY+)FYb *gh嵑th^ӄ{I.4lˀXʣ_YPFfJ/-o.(0IÇfnӣo~0ΠUCei|ǎg1a7- _P/0jSpޡ!1LQۓ[# nl}) ߷'ScmzK!koQY5O;x|(Oa%u9b)=c5_`_ -t;<}fc,,B `02)?QBEj v GJ}~6V?v^78<#̨_$sɔm+r94aO=qmvbFVLr'װly}t9'Y*G6h1ćmѰ~6t3ۼO#b:EAksgT"zݗ4 _#}KR. B\Jz.,Zn<@v>CE5-·GRl'ݑR05? WUP٩Dg_`\r4OG-pĿi6 /Q)Ge(!:ݑSeja0uҸC5;Z6N~uW>k@Kf@E`;VRv=n{zNKSQ|j-H+lC>[:5Mc䞨c)&gغuiT'7G}k"g_h t- 8'&6{WCMk?nŻ]o藂zoڡ qGdh]GgNnsuHt^I/4ɰru:z o<wʙ$=rn5#ΟUf^.{w!:Z{7 aUo!3(.Rpi͝ZkWNsuXa6ޝ+I77y+T\} 7'Զ鉮N[ڭg:ڝź@ψ"]@vSOV7iŠ7%lx7ޱJW馕Gz>c/ҁ=F i}oݳ:QRe ?{X:_[;RɈe9jP =)Vɟ%z<ʵᑕgT\8`TmSOEڰk}˪mIEr69Yp[]Nm[N^yuhPtzͭ/;{$)=Ȳ??p9p <FxqM5jTA&$z3@/PU$NHljxtdxrnAXi[R4ӑؚAI[ %Hc^1ld$ɇr-+.{o5yaޗjMMlLĉv]<\ JO:"/ of)<-{/Fޭ@Zl/)j\ޯaz8dQoCAB3WwSED&ǻEy}^eWĹ=m;he!yY&e&jQv!(=s\ꯕeZPd4 #`N.7,ԏT R9-b<Ň{*A`ĈyC[Ͻ+r>iI+ c!O1ZͫJyNṙu nfNʂLx>H;KҳU1~0]Bb2ՓLrTҪTfv?s_ʽ^@Pby6hZ`L&B b7hKם|Mv|Іo'Rv-É{dgs1a1gj%o$ UD!;F/c &Qt.HԨ'r۲Nv׫JJD?Iw/;8:UIE.6t),X ei񹛝 STQGH?3 IӍ6{Wʇ!ƆyӹFYAo#.a.&=6IsYp:4 jԃyl e3de>k%N2Atpȥ-j[Ϋ$݌!]q}r[;I(Hi!,ge >|Ka=||B b #~Rgir*Ț%W3=`JT F'%)\lrxrK:Zřb0֩Dm+[F}-JŁMӨqcac{?}3 [*P$|bs:R\ ;"FV0>ứx/ϛ3kԆc]|3ƔA?,g`$HZ'$TGarN .4RzVN_c,g]_.€NS!KM9VkG.A 7hð/ˌ/t HB6!OMU@av)*Z{eͺѓTUGT[PхKhȞ$es$R8mXOj5V~`όUJyiZ8StXvJm{A!pNk'm=P9 1%kqls$+\yVAn^0z1^7_X4x UIvNE ndt&S [OE_Ѕo}?Nم_yb'l[-+7ǛhqV*X,Z'e>=hJ@mޓ*,i'fq憇 ]Kc: mg%Wwйl=#eSpJΧ/@̓9CM.,SvZ?aFCO._FY$ia Yҳ̴y~i 7DZ4TpNK곓ÆHҔitQimH0$=iRq' iPxOq94 P]Q/"ap<3TI>J$JMwalEz3{ ~8{s7:vc2dcQ*[sfG9}^T1/x$~Q݌6vmyd,VDmՠivWJZFp\ҳLdD̻YFgAi/S"{S*BzCkE!-U bnw鰋exIm񰟹rUO)}(j2ʐ[jgm5E-Mֈ`tvʕ6a)F=Mtsk/lAXP1;<6.Hj`ݹߕ&6Cx1P-_%BSe3ɎɳWVOrnAUyj$|b?3rir 7C"Ğj>3EgjC[<|UiE]ߘ#w iL#`OA"bdvreo6I ٚ|-v`;/ΨT* C&'C"SR5b=36EIenw&oKFU2I"JuIrS_ p.0;tD=$;fIMAhԸCoѸGʒD6#͔K,APƾh8eCHBdD:=L+J9,"^E󐛜fg_3k 08ԕ?VJrs>~؀sįὢ!nĞOB&yai(E#hЏ$뇗1DЭq\6Yf1-qW,Gid?CX GZL2jHs"X:r"GAaܱE][Bͺ endstream endobj 96 0 obj << /Type /FontDescriptor /FontName /AEPVWJ+CMR8 /Flags 4 /FontBBox [-36 -250 1070 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet (/F/a/e/equal/h/m/n/parenleft/parenright/period/s/t/u/w/zero) /FontFile 95 0 R >> endobj 97 0 obj << /Length1 1700 /Length2 9030 /Length3 0 /Length 10117 /Filter /FlateDecode >> stream xڍveT\Y6!K4n 4 t!hp 4[ @pנ@Kf杙~ߏzzvծ]uX4yd0E{ $SV@  ď¢way sr#ős]l`=j  󉈃@~H?D{'q< *3!^2v0'8]av!`[=sO]\yy݁`;g7b xs9evt-]N0!"0'C~*@'|k@p GX,0*ÅF@n`-E-ƿ*t8\pUp  {p'=yn #K:"0eX&lV0}h,XNP/ v\\av7@ 'f'~'0|o&sGzCѼ*\[V Db?`_W@e=@*?5`G !K'EW[?? /`h_kk/_!?Jt;[ u|`!NN7yh! C$^~ ;@Ž+ N-::M `,y!kFjȡq "6b@L""`uqc,PU|EJήgCمv=?OG j l1J~Z_ARpU'T q.+Z̧ge  }R}lAmP""6mirwa;39U?&fI'-OIE3#?5LܥƾpK}m_h=+[d @xJ(h>9lδ Yh2sܬ^ծRLSŽmpY-%tR >N˲mC7.|sQ>͡8{?E#&G:\8{|gh͘W|D?ۘIL'fYm/yt'S*v|RNxZ^ϔoa'}0g \HJ9$+dֈĘ xK"j>:ҧ.M^D͹;.|!*V厑c=¯RcnM?aXa[KYPF-ܧv@@Sj;}1%LB|."G3ћ,GPZHk-o)VOɺ1Y$Ѱkh[GyAd^2ҡdK?Bbܧʜ֖.;a+QCeE* th%H @>LQ*DYO!ε?;o̔B4Lxn\{3>M gg )W.M.wI%c$\@nxυB,%oO{eC#(Zݪi)Carf ˲ŒZ߲.n)s;Eh!1M%[lɨ$ <7M;haqzkS Mt]iVQx3S$o.eݰ|')WpZPk1nzjMQd|3>7nbӉ "*vɶ lLN=>CZuI 71g;Pe1;QVfs2ZM&2iR/,[w*~*D/u<%w֣&A3Sb`^1?& ѱ9,P-]MXVA̓?/ȁ54apᤚ&AE뽞u^iԍҹulF(k,GkZK߾_[VQ<}苷0K]A"3U{rnO~{], *3ŷ0OX0_jyʕ+m'/3BZ:(ˠ0/`YvSe4Ӊ6O];ӷܬ=.KW|߁t2M伈w_Thbk7[O ?G^PI]ݠ9GP#ҴBٶ>iBH)Αr让2U#FHw*ő* OCpOuS1hg?EOL] #!}NyLؽ4W?JDg\)*eD5eMnS:FX[ݚ;|ch76}Pc=pXTb)0,p0Y}:O襦aalG,o^ r5if̰K1'F@j̿ry^ ;n*4[yϫu#N;- tCβSJf^2/DhaY!3\p T8묈 Q)!X*v:2үEHi̊9bLZV߾c!=ȰڡQĔFla'e;# [Pgɪ=ǹ-#jP2#wf3LGuøK!&ڌ; cR@Z63%GO}͗%ͩdҠFcG:aEƱm4ͫ7N*Z*nz) +"5ik .M5~>.P~0vᆶ-e0XY /[f뭫dHh \uc6@|ʍe7H_9&0Gn@=N}Qtr5)Kylv| bҶ@ReIor,WGC~cx4TQfQG~VYgc }\n!_(/ū2McY-} n;Tx+j~=xTv)I4YQ@/5Rיfɻgz?-}2YFo}`NΙqbCC8܄(vm<_/%S;XI@{T3t4Љ䗝Tfٞ(Nt >~ܻ*Ka4F16*@Bhl9 Mc~TJ2,T~QTDO$y{_>/JnتxB9oEdE [3|26Ik X i02=yI+vn,_>!5U/9i|#Ӣoީe^joNŜ!ײPVC 8dr K_ SD͢z/3@:76qH*+s$G/33Y<)cD45QS6{M ߹s1KhUMM( &? vOCiqݨړ |Ǫeg7 U4NQE(:"v%>3X>Rͮ8'ߚ-O)G{汄kr3!?aw?гa+2GG^ZݟHa7W>2F4mu%!_;}`Cg)[ݏרai5l!%}UAc . &${*tHD屯ۋSɌ,[o5OʩSGn OgzCۚ,RNJ_~wڄK+ݟAAE$j=|f*p3 kNk̇UNP~@^T_ߔ?\/n؟NFXv*HD2[˦# #o&hл[ChV GHFUgNP WQ2c~Z{ k|0 zRm_k0 际 e)e޾Y@~q]xw_jmFJvB:@m&CBew,{b =s&cHHs8OWJ[}]^N6 lyI^Y7g{rvVH[-9O4zHegzUs0wE5KQ 8׈2KaQ R:Z:Nkl*{ k8% z;Mp1r?IV@q{NL5t9.ɑ]M !-2;G9F=NB Zy9&Ӣi_W}%'Tى)gÒiLhhDPƚ']O] WE6DRVo݉Chh= ॗD!'tx=,=@ays5EqUHd.G53nW90u–IL?ôf1ʳvܽH(;@]Af1h,59RPv.L||4S]i|C0e)nk/ҷ|7麜2]*>T/bKk~)Q0p [r ҟG)vF"+L>m҂sVT`*~_@bH N6=}1{_P8?x> 92g!gK*)#5# pG؋IЧ2($reP*~Aۻ;Z۫[$x.~T˶񬅑k>uܓ`#BV"ei^cFM9s83/"$1'P#6-J ]j]1C+K̄ZtȞ` gj)ߞ)1n4ճJgv X#MlwL8tܕ1 C<>i.!KЧdY +VGx1WvFhqP{S7 xu?̜% "Gq.(".plJģt-`2N lHޚU|{ݳ(‚$d:j;uY5"E~g"\CIH?JF'hVFN"Íj^\u>rDg3JhY,}ۭ4+vQ+E Ug|&ק3Ï^ٱ`7渡`UJB]湊*O= {r{,,o ?8vAeG0yg$f޶=.cnvEtXR7d3aZ]cfcѪkt_臸#Gufb# (xX M5%S3J4_$8vtIX"fK[sUJ}7U%7|3׽?:"< 2;0`Zb ax v`<^|t#r%P 8BieQ[=s-;~We8*7-~nߥ=;I#G&#+[2=%c\[6 ǫG$޿x oyƫZ%|`Vb^[.XyU@P`"5\3_|&C+瘣]r'c̓i].WcOl͖^ ~*`48|=H87x8JU􆄙)uڡ;ZcD<)@kM?O`tg&¯b9TI)$;֨rxE$`} N&0$KУc*o*QzW|Qh .3hG"8k>VHO(yF"%,VP],nv3C_#UW#ïzW(6P15O8LtYtΕlp6 K?Wℎ{;]gmSU'<~wsD x?g} _;TJAV6JKϨr[}2BNWr 7H9*(+M4E(l;Nv^F ڒkHeifi'jABźԄƊ%k{:yiELI&ql'w Hsn73Zș:eriƖ>B?4$I_D$Fq'cL1bsv:*KFt9Cf/򼠛JǢ(L^Ӻ[og.IhA6"(]&3K%>ЖrD';%xJp`HZ0> KI{uzr jH{"uy>`*dl{\/ޮo,\GrHa5KW2?Lc~6\wm5?anm5-FH6x~@2@MS9-)QYY$h&?a)!,u㨶qsƓyh@Yh:5"`’* bF'e.]ˇ?vSWAjπM3>H)=E.%gsu o׌D JGQSa!:+fap*GdЁU%`L֚蕇eA F c|Xu*ek1"x߀p(U7崊?D ""p/bn0XhR_Zs~{BaLS+TTw )oOl "9._N "*uN1oϭ7Hqɭe{%{ s(nQǃ=Ѩ [s$ƍ Et bzB{# 5/4ni=] ;m,2(6,ﰒxYHUɜcW7qpdUi?քd tƒW Ga_.賈g_O[Au".Qgn>P[+hiĶ .Qt!͈}.gN}jӪ泊d>.;Tn?̲;ǡi*7KVZa+g%6v/~&KV\rI,;w~cͤF}*wrCuneV$Ϋ d\~u} EƷc8-gd,t99FY|J?+ԕy]sGGܿ'Hu6Y 2Hx&v_G)n EՃCDq^YI(z[mܳXu.FeukbF7wjbd#-d'9~]Q#jgf'l <\h!R t#"W2Qew^c>Q;%$"yesg)5TDPV>*"pk֌%Ur_X 2” nƌA*878%Ku9ʥ6: J-Kˎ ΑI9#!ml'aۘg[~m,F  tTëO)̉mK:ɤ칏(`w!tUp(|6AN2 *AYHG\=ٺif>Bȷw9zbGbͺ:h? w!)+I5aoN&c6Rn/o1Fo`X]cw[]\ڽln[㘤Zm9φmƹ 5qgkUW3j0V\m(FQcq0wʜjM5Qa\T/p%=e/ <9aظ|}C0HFn{,tUG=tX#z @+C |?f endstream endobj 98 0 obj << /Type /FontDescriptor /FontName /JBFBDX+CMSLTT10 /Flags 4 /FontBBox [-20 -233 617 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle -9 /StemV 69 /XHeight 431 /CharSet (/F/N/a/c/d/e/f/g/h/hyphen/i/l/m/n/o/r/s/slash/t/u) /FontFile 97 0 R >> endobj 99 0 obj << /Length1 1757 /Length2 8614 /Length3 0 /Length 9727 /Filter /FlateDecode >> stream xڍP5Ht ,ݰt -] ,.%%tJ+%- ()) >׹ea㑵Y`.~^@^COy@} ˎbvC`.wH ԀT=~A K@[/@\}!d6~qqQYg;!Ȏ6 (@f#|S]p9ya/ =_ gxqX=  P Lpz*-Wp?/U;dcsv@\v(΋Fp@.AP8 A kdJ:6W ]la` `9\'_bk+SXE =b@A q@ˌ s!i!v`/  =vl!65OulF 0"dT-O髩+kqIo#"۪ yTqxx) ?0o wwUO!P?#r@ WC\ 5`[zU ȺCH\ Ն lP_s@B\08t6Nȷ 9.0rRfkE ww0aa/?rKm޿ u!)$=LE|O~~#1A?Hg7A>HY" |>ȿ :_2>ؿ PI3&Ad/7lk C"]c):'??Hy!b͏D7 m<ݑ/{_ LOl$CkB[/eixև0ۢ{#yOYVPjONp\{uf-("P{Wxtڃla#QD:VhlI7a]?&g@9!C "N6m5Ƙy،04C_OH\k,UzSV'"}ʐ3#Ybj#UN\,Ip%o3=<kSTQ1ݧ5hH>WoŢ)qx=%vM7פ J uOѱZEǎ] ,+68ׅ+_~WL\_H[d}F+Hy}C0E~ȹ8482d#떸GŨyQvCB={pYTQ,$ta|!x|ʍ7j}oUr1{qe]Z]r `k!Îb*xS`*z~4Vy%s~'?1=4屮 O#NEN!mc,V\A^FXM]-6s ZЖB,iJlmGf?9jMpl 9`seW<بz.u`{qD)L6am0i?=c]O!U6-Z^[S II{ ⭒((-!o#UK붜pI9A_s;i\Oi!.Fc^m܀S$SeTYA%+˳3ط>.v$@cǑbl'R֥MJjQg5~Pԝ`4} ̠WZSbny{:ьg9$?ÇN(+ *fn8k!1ifs rIra0or*a ܝmFMcBpHf yҤxYD!'tw&VzL[ΝQyW~dBDZdk4j=.}C\D{PlĠ fNϏiT&_T!r̻,gTiV47,ξaܷ B{qr'|&n#/(}aI:0JnѶa#."p^h񭰀7>@Sal 3ڑWNS + CN>kñ|~(3v __[qZ'muOsS'ŋxVe*߸'/(P{,7%EUp^K]g(~Y{وMek)o9 g9ero[@|x{R:Kg}0T(KL_5z,]b$UU(l. ]gdd#I"ǯCnf[(=.I+CiŸum(^}yZe&*˱P;IY|5*iSm9,\Wx X/N ahUow۾x>p#z]p U$cB[?/<̽q`5`^7LFYs1؟ɤiKQCy/^"P*)c*c)/}!z3_vYpwTO=X۝amoCYأ×pD LhzC8p`gqj0TP˚9J0ШJRvb-ba8ã삽'Ǭ{~fI[unmv@:@nǹ9K,?Y¼`ro%ʂτNČ5Hyl3%{S!KJ'YI9|HvPS{C@[LtJx*LGq'{;)T)!y h^}aU1b/Vx(2> 2}0 ]"g*,,:m2uF 4{`"UOj1KE㰟B!R]Vg(SJ'ߴ@^(PQiM [--2-r[c}8S.ߥ5dd eomH&V͋nڻVhgFMׁzŜh_}s 1ߡ߈Gϕ ^R'6\+^?eBbuACTRueNG3^ \ߗno^۴ l/ٻ<i`8Kw}(UN \Z_8jNiX}7ēYnzhb֯(-0n.ӿ+,n_jOL g2ۗQϏs90(չ)ݟIHۥ^RȔ<5h(] [Yל`cs2k͇tN e/9A'})'O$dQ9͟'>{SR@əmfOWHqclͮydE=v*ݍOL]'pc/gbW:puISl{Aթ#a [,Q/v2kaxKO %ۣG_sϚ.vH練ggpUj4K:,˯xKHLzbi$:z*w^=gzh|wp-WD~wWpԉ~$Vy{3y+ *5sQEgLaq4V!9=},6Z).03KbDXk®U;-jJB#GM7OS9ps7pM+#>xyYh#n+;s0籣G,u;v(GJD{Em'[j88&D8_! GyZ/;t'4^!& VvU͎FY"ӚX1r d55 x"gFs{٪r%Jɹ[7S\v!nU|qD^DPж}MR1ƿWPR w蠵=؟:.n4*rwURB4 T?tU{)j ]p,ըB/ `;n8fݸ21y@6xv]nڗ.b3l>ʍ xuƐ=fRR9n^&ΰeyle4:%Oي8|Q;U8f}qM hDhGϹ[)OoP;Kᔃ/ y4GUKsn }&2[<:9|SEO19Fxfof|@pK#1̀u:8Vp7Go5->YW j RZ@z1kSF99gӦ#κڮJSg4}Nv/ ,0ԥ`m},TWsl\!C yZR\й>{B 谒Eqa/OZSzj{"]^5M7pOAI=wGm]:YnׅYmLk`եI:S,QBCtKx ze"?g,^[0BK1r%XX^~.v8q(-<Ä6i[6fzolG4{4ml&>YdN|3[[es]N1E_<2n`S+- M '?mōO$ `q)Ӿw;nڡonf.~<-Ȳ+}rC!]4O2TxiA{M4E:#r{wBi_:e _]p¿#kQޭyCα+OfEd#N3N^F=U)}#{Q۞nXXĦIP03arEcXlCLsӋ;o-^ P%`<u!6,dtڙJǡl9'fɪޯ}`EM.^🗷Lw F"(9]qy|)"~c!Owr,JHW T3zhJ7CL;&ÆRmG <^le|Τ|-9I|^ͼut}zb׃7_xDu?0L'Eĭ1xu'ͳRUI<\f HTu ֐I~VZ9!U-3vrbLjZ{·>X1ßP&W+t=@8y~jNp4]BJ YPgp'ӡ{w۫n[vw!Y;~k⿬%ك(rI|i((2 Fɯ*&|]f%Y܈o4c7'=&f5cds) +j7')ȺV/πhY ]2/Qts3 \i2NehE%񅋀[m ILǴՍy\3zU\ϐ[v -]"v0iVwߗ!_}KXz6$a,wq}Ϸ9=ziUx񍟁^֘hgr7ݸ5 Ck[jj;¬»ƙS)z{1u7UL/`AVv:m=4M 7n7P ) b?S=- slxjU)g4 J.!8W9DGo[md\R2׌pLӰepnAAKnq+<[eN#}/Bd&ͫ(HLIMYzi"WQ/}iX!/% &k=浫W3vQSBZ=B2A4L$-eaƷlͳߜKG3ZB­퐤;B6%LBP2sd p]" y][5/ CVۑK$%uWƫ8H0픋IGi,߬1tg)#5Wo9¯&ǾU3 rr5tJODzi6peC>c?áe&*l#'{< _jUd;$fS%4{ r%R7 yciEe Mym%si;Y_m]c8X཭[7k^!)DF %SZ|>ޯPq GX%i r}_"^C~V_$/lA!4,6aEMV) ZN ?[f\ <*X=Q{ 0*h9a ijb>NUcVZs䦍(t~:p|,[nY9 Q|(lIϖ<⽑+fI 6NT4H(_zջ$ZM! д+C7X!n:wY_X|j]7Y /{o_֡@: qX07Oʟ3L 8N*zʿ$ ժ9%T6g=؛:<&}}*n={)a{3'6'aP^'o,->d;_̕ΰyNKɚ/(~ s FǙٮ?tӓ4 \ +M+Q o͔oC0򗵲{$:rF endstream endobj 100 0 obj << /Type /FontDescriptor /FontName /TKLHNK+CMSS10 /Flags 4 /FontBBox [-61 -250 999 759] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 78 /XHeight 444 /CharSet (/G/S/V/a/c/colon/e/f/g/h/i/l/m/o/p/period/quotedblright/r/s/slash/t/three/u/w) /FontFile 99 0 R >> endobj 101 0 obj << /Length1 1717 /Length2 7578 /Length3 0 /Length 8678 /Filter /FlateDecode >> stream xڍxT6 R"H3n "96m% Ht#) %  RRNyys>팝h̯p#h~a!i@HHT@HH‰((. =ڣ1z8@K KH DDxHT=6F P'g4_.7@XJJ:@ zhg#0F`Lp:HiAAooo{7I E;(+e&P10 QO#0 ?uYe l!ܐp_( u]`w%hC!0^PFwu%C=&?CQ^`O'"aa#8pX`gL=>+! ~~L# hxLoRYK beC@$0+?'ϵۃ>3`&^*eHs!?x{7(O <{1lE,߬#Jp'̜ EC}@(, "P_FKH8\1w ӲY!8ޗ3_`##&@ABA{_)f0q PLD $&h/aj$!D&4 CC$b0O(`4vˆB`ǿbw}7(1qߘ$IE8b>\`oy¡3uQ>u}K>` $*Fޛ(JgLec.~;we;*əz1sB5XjkC?^;tNOc(%2YZq\FHnRxՉx pӣ+vnY-'42‰&*]JM@SjHJ;~,#)T9M(,e$V"HvKSmɃ N*! 6z!fr{l׳M~48PŘZ 7x4 :l(wWV&㜋]{!KmJ]6DC \HSY.ضbk;@2|le( U~$ha W UamNׂmy(2qmPm_JdVVUKB3͟H;;C[]ힴmss}fF,'Ż-S8O2`u)p_2:WFHTάE=\ ^iD/d&Go{.Yfݫ 6b]NZSn0.EVW4ߍ(~ڢe2d z*r+G-e)J=U2u, fK?ITZ!.z(=ayS+7A/|`!kŏƴF7Tps UhImrGr:\oS?v6΀68uYŎZC~\S0$ءaSV_glEA7jYݞ+:q*bY _q;S3,23AbW4[=iqݶJ*g&\‹t"PAX"f/cN 5, k1'40\<Ԅ cU崑\SwivKEkdj-N3 N}W?+gL)`|_\qgJ߰Z`9=oۜzh ek|thM! KK\oBpLZ]b1Ȟgro~n:Ø5_&q38HI0S\Yb iFPX;1yZFi-7=907ǐ%ž*ُ!CkSIB9~`̮R4[X /˲>T#=t@R3œ zlKJ2"O _'џx){55$JK@ݠ⋔S] LH~vPQ`e ,f٬MhQfOcEHmKHip% \hXgUIjL1S .K,wby.D0i sK&BYO~ ebR_k};hCr?H$qHo+%oTiufaKll,؇jMψY`}*?1>p69qo =uyu@ܫ Sfhi#8n?X I{uPHHV)gyCωe"kK{~Ѣ*ġdbaJPgc=۵ĺf1Ao/HH%پ4l2ӭ#OQ)8ba7ލ>P`U|(WZQ6cpE=\nKfm2sï~S4گZ, zDZB}/p[+d S>4V(^`q .UHD*~B{`{4.#g1UT } /?UP!ĂRSoVN΢Y#J ܄[u&O(z3uǖI~Q^YKd}ha9du~Y6d4vxz.@:> {G ؋ʒ:(aJ\CTzWZ.BDBe(T"4qʷꆧs _KZF F9+8 `bg:.R7v^v5=vK]hɪ!.e& })V$98k@3նdbE{NS]u)gng(V^p5?BƼܽ4y?)0ibO%BoƸ?Ox&s䏯>7^<{svG^5.2v퓦һ;G3jjCh^CXb3t nxIr)e;{9ܞ~|!o- |08&5f}gyL䛲g9$OJ;a"ț]ꝑ7|L7Ѕ>L(I`L)b\r4 .>=dۭ}5_DZQ6?ȗm%i5D bۉSbؾ}X?[ yRn#Q y|?yGrgpw,Y%y6:F]K}EgXb4zHUW[ά w'Qm;>WK.]ɤ`2[pCY߮AϫTpG.D@y=Q5g8^gUeqOkտYt"#y+Yv%(*NY2NRosYj'^~ߓ4A)]&pjjwؠd-)s6險ft C|ɧ-wKrm=Qx'':s@ zf\aۭG*&~K SO/CcՄg9ۯV>⑅/?,}D/ )?BxjK> &ߪ?Z:Y4ћZUM|\whCڜVsRyMU)1%-<h&΍Sa)r?o]w>xY qPdCҁW͇q6]a?<>b rHd8'~2:N&34yr~9`1]%NK;M0EUTFH~T-TŤvnBzeGG`1Ց:JʪKF:STh˙ߍ}&y*bNx}bos$6t}(_}E_y.$lm@r0^?Ͷ7ykNa0LF*"jȪDB_}Us2df 'k23D;EomQ*T>Lsڟ~*xvCxORJjmÁKū@<$V:hO 7zOM @."*nVE* $C\] :pF,9^1SQȚ_E8,fIEɣ3O9-x$j2%Z F8 mM*r󢍳ĉijL?@RdT>PW@ЌɤVX_;*>%(&Q%Z oִ5@ugki9{.4_P^Qw5 L;7cmUnNzksji(%k.}%A7yEN?ktX=3Su,b.%I,kO5+[]#{XK% YQM:$XަCIR-Lg,U-̕UסX[9\rMҤ1ۉ7ƴi8jNJ?x~Vg+a;3[{NĨ Ų,L|SJ6%d9  djvUFCb ~l&(Ad7/jUI׹R!]~Ňal/ /&Ut }2 ?u3F7/e b _WK h%'`?c^6Y IJj<5sy\t4L|k{畉#kj ލsjOއkTȻTu i_GA!f#=V[A?2ِ)zUd{fh"&;lҼt>"4ýlll?i6\pSG#;E$]_[LW ~Ы)3OߗUv(p$T,z-1ws}!V(֌SNϽ*E w{_L|B=dRc0s.BnTSOfs9ڰ[i"y-7u'R;Pm둭Gq"bhZw8m|1d{Si4x4]J#IN;훯A<8#SR=ӆC+c<@--ң vJwc7.Nնf"("(h>J3l}JehXT*ntyvY)Q[u{.c߆wTy.҂PP\r*Ia;'ifBc`ץ%d&n{`˭/lũ *O8>Jc:g&mb7|ɳ.o2,V5Pw$^c3-crxu7Sg7d<ͯoM1M~i-"m\JW&DY%5C.Bj mL Yq:'Qa*әVp$/2gEB|@"9> endobj 103 0 obj << /Length1 1393 /Length2 5904 /Length3 0 /Length 6854 /Filter /FlateDecode >> stream xڍtTk.]  H"!ݍt C0t7RJI!! tw"(9kz}|EKGaU@Q< ^>1OMre&bӇ"]a EB(MBǩ#7GH@0k:/@"0[;߯'i'(` v" 0(_%8P(g1 Ãʋ@Jr>xPv+ ;A %b\u6(0 @a("]e53'XOC_xA)WB0d0prý`p[  TPEyp_`GW:9o(Hkhs a(W^W/_eS["p+ѯPz^?u#<>l`pk_ ݜO07_!h?6[( HXXPu@=!v__f4?g3 |\P ߎ@ 5 XAmapP?g0O { ߯F _ <>< !#!ď~]?o A8_e( A~x}!7Gn v9z - uZ5:^e-i-< A^>?vjCAU{8P-+_> 诊+za]PWAXR0D$2z7 G)4F? Ik| J7$@[P'B43< m^!>,ި;R>N ⸋u)`cS \G?},񫬚&ɊnQ٠Tc+BPLvܻWrbiXڨWB7 ?ZAQBk.N5T3# gGjgOYs xM8" B6dعF~ OMHy' B^s(gEdp'2&j JUKiO~AG/¯zi|ڝJlúCYݤO>~&cl>+%L\:[l&xGTJ 6% d_gh.l1T-KHZ0d`a8N0WqPDJ HNiġ})I+VEġ>&@K@JB{wx/rSf)>S3)05@?/SiwǒW:T!Gi$O?87|-B zNGe80+nUX NL%vw QC&{[6̘X1^nCA>} |y!%WV}WaR6cl/YJAkQM\]+^n1Ǎ+vTg|vI1x302'r\l]0?_"mR[snT菍) \ȠYγoswsa]C{,So3't8sĩzP ,`,^ʪ OoQI^wyԸ3t$]S*aLZhJXD.؊>׳s} zIϓS3c{"JGb 1 zBXܟGdMNP+X3+`d_.ђwN yp Yҩ6 ;/+C"}e#b-"E1[8JT>^֪^~](11}ԭ#@yjRlGv+?0^$l6"K}.)yb ݴ{%' ܑM_[!ief?`=90~o7*<;rc5[yP z*D^ #~ iIU*!|d2D0k}w+De!=_Q).Vn|[aq0NI,$kfNqJ@wJ;C>?9ݐAK7uֿ+MUkǤzo5_\҄WXuE\LfS]k5^nM;OO*Gn8bFjxfM1G3TwNyJnjZ{yB"V,Z7LbN-7=)S8~*Z72YT廇CmsLt$K)X̢R+?a ;.OSnGs[\#ˣ[Hqťv5 Vߘ"u1I]oP7CXO#wk}45^~>3d݈=S:!)58EbÖ"x-Ŏ_$ &-󍶒ZXƯ+&xE&wDWHycgB LL.Rk&i>~l߹FwfԆsś2_v[,>5bê_ޛk)I.@9*r 껖v嵝nQk!/B|uK"KxT>*DbglzcƢ. Ҭc$%*7۷l45wL2WlV} dhzel1iݳ0,U8U4JVʂJۥ陛gOqV|fSeiX}IeMqmϸPs"d$ f ] m!g?50K⊪oE,h(V´z@Y Ibi?bu,V%ܣ]x࣌ƹ׫gkWS⊴Jy*_UP[$\ff;, Tgܯ^gTF i9[c}f+d"tIYqiPzYz8mޢO&!npMԉ搘"?WdK #zAPIj *<:\ZOXZsuNA_便ba_g>$:Z;ՠ<1a_KRemٻ=k޳[S"'1|:& 51?g9c|/3%\FAnDY9ό`3HN{Eysw"Ay~3&;{Jr0bWIN=HaSOpSWm_2!&f.(5͐ǔ F2 1^RsvC8j54?Up*ոu ?ƪGX@oē|F;8do =rw%ffEKȏg9? 13Q8|L…-N5L+F^VqOso\A $A4AzGǚ#P`7oGeeu#:+?5vɼ`\ ș p\g4=}M%:{(V1p]J9»$ʃ|GBHCe|/#>I<e&sN$618G}kl` 犌,Ou*m"Zb@I\#^=mVs.S˲X W{0[^`g s2椁F ߤñ7m"^#3Rܤ #m ghg" Y l+V fRz%g3j,.[WRruI?n.>kd#}cYk J1$uHt#Yn:`B)JYl}UFdWK63Pvrk=r?Kر,o1r|UBoɣ!Tr_زٜԺw]:+7´abd1ϰZꋼ~nbF:zC=$eϰ Uq|l|ʨ`!X;ӭ3~'ݏlԼ4!~D<2ܡC i7/f:?4 s|ٱ?9*+ຆ*6%0{NTd_[O㷌lr v:MRmkFlfGKԷ/_D 1R#eֺĽjj#%'\7Z|,CnɞzXPќ+J@ w?2ö,eGq 94K'bpSI< Vi&Z<[Ƚ'q4B"9u,*S1xbt.XqHkk(h~L'zy|kخ UC&^fR8c%Rܞ+f,&A^ȯ"LQTz$6F:}qW;iϾk|21օr--RZNȏYs<%fU='970(GTvy Ǻx7 " YOVd'555_[#Й܎ ~Br|fѹLfï}rֲD5 ;Jo)sW#l"+ٴTJB_F'~7䒗‡ķzTS ?w߼(`4)l {knbu-,gZ2P:>4PZ=3Klj:مxR{%Tl+FiNn<-ZobdZd],9o>.xk36#RO" Bo$tR"i|*6EHJ%;% /pnO>WWFiD4Z]S9!T@3> 7fTcVkY\5Ã-{e-=?+:lS&Y(P endstream endobj 104 0 obj << /Type /FontDescriptor /FontName /PXBGHL+CMSY7 /Flags 4 /FontBBox [-15 -951 1251 782] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet (/minus) /FontFile 103 0 R >> endobj 105 0 obj << /Length1 1418 /Length2 6104 /Length3 0 /Length 7065 /Filter /FlateDecode >> stream xڍuT6-N etnDIۀl;DD )AZBQP=9u;}#E(D`AB2@e]#s)(HHHa 828La(4_(18]$  KK EDd*`8 j!04Cꍂ;`m~rCxҒӁ.0Fu # 4BB0Jp9`02 D=! Cy_.?@nxQ0 hl; ĆF:@=WOΟ~_w _ٿ #vpgPOM@3{`[l@5E  /xh Ap_޲*tq!0hT({ނ6@z"|:P_ &;LS  IKHIan@AWycoWo/3+h?_4Ġa@XC0@[=: s.Z a' ϓ5^P$05067?>%%W@T( -.JJJ]?7V}0C`^8<_}$0 ?Է`;_U_ܝ7W,tXq ; Gʺ0(忽0V{,@Bbp Շc *=> f :. տ" H/K( %XBa^ !l hD~[W _?6 ;kإ%†fvϿy )$D6̱6ZS{_ڢ{1}te)=VLן)c< ^HxQYR8밇݁"G$ӣ(&{dI`l<\Str j!,:$gIc+5gaygnE@p74')џx/Y&dIbLyՈT?T.MMb隵nz\z֨Bh63%׻L)ܲI>Zn hH-Lh[3ez,ߧLFL qɫѰU X&rSBv4bבWY5UD=0㈪| Nvǚ!z޲^ /)L#u\\ qk]0o֯]?qVlFAV´ ۥ* ¡ɽkϿ-1"q4=9x#n VzTt;[l/ 35s#.ʧǖCAAȜi1‹8= 汋EM^vxw*REr+>.>,| tx!̹\C$#/')W!r0="oޙ  #'ٲ1 'K4x?(K-ݷ/Zxb9xɜ?]bV$sf -C\XlXC7rfU==M@RlC*vP@vц u}”<'\#j-Pyp ]k?q)r&g(BGq(9!q"Rh1>%;sAÕpD%6Y[Ȟ{I?y#MHl/[ؒKO^$p:E;bW{ޡuAݢPTn$;2YWYפ?(w2*L9n9jS!CtLf-ӕGI}Q#]#:Rf\ oϒ>M~/tT}2$_#EjB:Q7M`)w֭nkk:?<٧,%/WtˈM޻Gûp-Ma EcbC O1l}?|zOY"yif^y <ӂn9O$–Gb6k \ܔTd\3s4\ )$t;VejI$k]kˈ]{1o1(F]藡3ݒVcccQvT=w?={Jpě ܵBG6iݎO2ye-<=Ȅ}$5Gs`nrx8Zz+n7Ѡs}!Ġ2k$%RIx2冩Zyx5\7YO= j?MZm,B3v\ة8L/E%%R&\~)?|5ўUxh!zҌoVG0WQVg*T:Q }{n9бnGa1iħ7(>&gnbLM bWA~Ґ7=urT ;\VIɂc3nfZٕ3\6uwsz?սE> Ε6f4⁓j]=`8jMGٶ" hˮzFCp}'MڄL:aD2<%vR7ut%D9KgU AJ3bV^Ċ/G9xi׊l_W"D}"atOO>OH0m()NB1v'uZɱkeۻ򱧍?v%:ͷ }Ĝ[9kO}%A%}NQ '> 97N3 W<[z^o.ҩ\.ѩ]KJ|(.RES]Ͻ=ؙ,g?k2X_E܍g!O'&-Y5z~~,zu&ZHi<Ye.c6|';FRt#abyڜ)FsD ~zat=N$2Ksx7hcd H>V qH#T5x Mc`v J{+Tn?bAxP'=aHk{KMM&= 5.R."2gM߉}ϑ-s䐅$Q6f0$ Y*5DA1;ѧUl[C?+ӵʨ,ug|3WbGĬlۥŭ9=NivM-2C6?q(v^DS6 7(Mv7Q%KR |N޴ PmϦ ĤT䙠!?i)17]:/ ȘO^>7τ:폹xG_Ƅ]ZlBMLLT DtU@M|6~bɫZγ_auPٞxkL3AgzzEHD ʷ&'$xIcFj„@w=Hutx$BgiKΕ!>Nؼ[}e1`h0y"| P@$=t挳Qm٣!0>5d%">J兪-F'R(2$s?O"]#XVis hΩm˲ޓ⬙ߚ3Gp]<|w`~qxzRPZauۛfbl,*eȮPjQ2deCBVg< BYOu?[)GL 3Yj8hSSM9K +d1p+#I\~S]鶇zDB*IyGX+Z4Z<B|)' 5߿ Z9!~7bs1!# `>,VOe,I9+% xn;yTUC"R48ϟN8^(vel6(U;t4oiꚉj-+&ݖ)T5Cޅ&̣Wg KO<즢ObD{9 %~qx[;97G[F%*Ln:I;P7Y)h}87mh Dg.}&o^U^0 gQ?4~a.\U'ޖ"](s@z](:ŊtwzKSemE`ؤ(@ʳ{0F;-woO&uH\yf`{ޗiˆI^z%? q&TiɈ k;q'M}i .?ձƭOqX- :VЏ̄{=3[NN4jgSt&:*30^m&1CT1ydTnèts :b bPIO%,X$o/-Z"$!9'+|)C1lkNOdoP<`꒪v OfKM k-{ D87B"}kkߞ-H:vΓ[.3eԑUޚv=QtK1PKnǷVhޝE VamTv7;l)F &yȘA!2cq\lՕN^/^=o{+hʻ}_6yم$>:QQ`2;xJM⛌*E|^~'>CO&ozth&-ܲ;%mA~o egӞ^WsK(kxjv< !^_WrFH6?8ncNCv/e:CUi qor5r}B|6C6d@r;XN*|[ ܇Z3^M\N1qe?wlhX%#eٲK`\5~H/з}ʷWwIvJ|rH ժplXmϭ\%$]:)'q{`3^ȲJYBVhn|urjQ!J"uKd"+/vXZıײ{]xb;8+8UoZJԩv \!& *2v?)5iY.ΐ421KdC|hvZěΟ+GUղ6NOO؎8|$Fqɖ<=? KW0÷T1ޝdM}[Q% ۆ yQ7sS\;%{o"nuʗ;n%nj V@1/|k{NWu_4ߍOdžcﻮ]o(hϪҡ-G#(<JIS{`@]F ڸR endstream endobj 106 0 obj << /Type /FontDescriptor /FontName /ZVQTYU+CMSY8 /Flags 4 /FontBBox [-30 -955 1185 779] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 46 /XHeight 431 /CharSet (/element/universal) /FontFile 105 0 R >> endobj 107 0 obj << /Length1 1634 /Length2 10296 /Length3 0 /Length 11353 /Filter /FlateDecode >> stream xڍP-(.R \/VJE ŵ)ŭXqǑ{gޛ${}&:}.9; P qq5 TxܼLL 3_v @w(G;lS=jB5gOXOD+@8@dA@(<{%Ֆ '&&g:@4a@玶}-08  z@(h2@75n &#Cbv [ U5ڮ@_p>7߿G!dk[[5v؃m% n7` # yη9[<uk. W r#eYl'qqaP?r>ߗxA`;?hyAn@UcM9a!^^^Q~Q u+O'g~W3 ``:a@0 Og3/| o)|2V?GYEX͘ovxq x||E Vk߻GEU= ϿذY@o+k<i*W<[}xֳy64!P#_ yWf<#r`gs r eA@@;/-2{8@ǻ?ѳuz~[W  xFB?Yz)q7{N P\?Y<R@~? P|f'#pw~e @[Dr^\[#}hFۺ!7g1srSbnV Ix,VcIk[m68n_Y H{NrlMg*K27V\}qgyY@/2vڲ&GΜZ2f2ye꿐O>4mP E?H"% zxulNmX5lY0ga.[fH+hE&ZM1TCxRyD}4~ӲrRjVu/.ڷ~hJsN~/۠jVj/&w^6tjV {αn;"D  9+VƑicO vXhܾ<PךVĸB/U3w[` 7T`Ҟ;굏(_*>ߩHDmۜr:׸zǿ|$bkc;xѺ?WD3YTvx%sri\S +HeL/zFVix9e2b9*M1(s}l9S'\4ߤ|5%9}wN9gv<eg=oB.?KE1$GXCſ!pdIeLG5΅a!i8dM5=-hXuO,xx\Ri8v7cHeك~iW2rͼ$ߤX(6Ip$aJ܁Rc5*Lkw1&BxLu\@6\",]9sϠ ΙpB2x pgm$ձ+s=/̱ qHEG6 ׂBg$M6B9 Yt1ۥEl>Ih{,_셩`.޲Ҏf~wH(@: =qm羉a%C‚n'DrZU#UQS]_Oݻ,аߣ0܏xGC s=:$IG#^oG)=_,`HE2ma5)Nv7թGhΛ;۟s*Mr|d}_yEĻZJx,&^B3/PiTIM$oXX8  } qd. V5oSk][Z!(\3vy퉑cm܏oJxĪs 5;4FzpB3\PWܣ_׷sTg ]"f]ÉBkJnB&zMݪ<$ $ mMr,AQ`=Jܔw N@Q3q9CKtfTI8MifItuIN0jqFڐ.<-{'7_NCHoLFZ4V򼜶YG[x|@\ycDzrHz%wQDT4BڽOyzi[Щ؈Fy+$cC\ҹ̑E}Dy.0u^s7?ܿ1eigO65]:J[dl|`0I$MMmͧ]U? _VR{ e EAZaĆa\tI PP$ (Q:`N wBJjqǔMܻCgr>ilv^}MvM BTزu>t>wO*)^(ʯc.p6둿 ^O]d的7RhwQ?~~ΣJJ6{~N``߻s# II4}_7cw̋eކ3+#Jxб׷"0CR]NSz!j Bqq:o>~l\+qkAcUX=hm#c.ͩCq D֗Gg"D_uZ5t$] ?hSH i{12rՎ95r)m&qJF;żF3l38pmztZ}dCt:/RZw@ۡajKAgHTRR[qg酞Sgqxge+ ?D L,'q0;vρ(R.k!O|Sqx6  H"gڿ^n7lC;T/ߺe}܀5vnOsPnKti^d?(chpaLj3O׍R#OW^Z(aJvhMч^1F5msyNllh932ݖuC:1;DmLr v#¼̷Q5j\C~rZf -q(\mUc~[̇6jZ`n(lzޫ;38B$ۺN71cqȨ>W2ѥ0w[l%dŴjկ=Y~#8nuxQsG?Rtu`M"T;!~ڎnXy>T@sLV#2{v&3w6eɸ V𨟂V`aCnN#k~YEz7x;}Dr;}B>bҢr=\ߣrcyĤ䬴L#l4%tJ9{,#W6fw*/&B겡awQ3`P(_ڒ=E.~ jk72?O ..sKxa>^L:Zuhdt8}d+|ayb5mHRc4f@e^"fd0>x=A%nӋJ&v>WV4v.Hiw ,VSX1d'wz3dH_ܾd'F&^t_d:|2J8P:`.EMm&'25?{o¨[oRd0ۗ Nd#V*}y*G}vO?ߒ nHYP. N9@{gbLGEe-'teM:0J/_o-\"jQrA/?|ڞ=Aqq|_rP* !-ʨ" U7g@GyE"{ k7 wfq[~F^s*-|U,,$p|T yh`(G%C%t (rj=,%,y6/x -U"N)YO|>lY.u@RF"d-d%n b^d?8ڈԵn+]̖T\AځBc& B]b덳 ɼ5HN8QX_9q t%/"(G5 j(@;7}/J/-54^9ųhĜMDA`.<l'ʡ*ebIXMyj9Y"2AӱiFJυ߫߆  KR_-5enЯ!Ŝ_*eڔ]3ۯA[2>X>6cu dq# + M$5}c:#{r9`&ćW& ' |u٨:t%[Yѵi"d>ՐȁMQ#;DGN_`74e/j,^7򎝔 V-O`-k_\.;= %R+HO)b*%̓oIȳUm]sy3y.ig`r8n=卧r0ނ]t#j u*Ԓq@4;~,lLrSWs86Omy< ollŋH˒1|zsQ}T ;Ղ{AsY+\cDZtq}=< Mpb7kqޮ#u$ӌ۹<&N0ٶn /n]&>bczH?\e°mqOr&6T3r#yt:<.'Q;)Uo,6qT&l{~j)/ hwadoF+_ t|xj=sc)BAMdnl0Iɒ|j#H~/1z8<VW9;C*0M)~$D:pFs^GZ fݕ ut艀ѯ=R;Gp{36?:{bޥ7H٨٣Qć25{/'$s QZno1i,HB2uyc*5|r.ڊ2f#r=6^R\' ΅UH,te㈦EO2!@jԄw/5rRv4ap?C)9E¹fggjdU~b(lF3]`]QWYeT徿R6FJtzt緐't/6_fྕ&ةF+pteIx pV20?>\E39/}2 #zR4o5\T+3WN[OOxMr\C|{2⮐yP׎"‡) ?xatQ$|ŘYRtCSD\s8廁xY{d!2A*mU+]"8E=Y 1YnAm:7\RB7S\z0/ݹtRl羠 $\טg|uW@pbK"~эvWC.o};B]QE7G--Zl6 l(?¿nӎޒwNd尐8<%ͯ{2ڳK~O M)-\afU&GUK/SB.i^.3ΌFSSQ@ˇ“SZ,b}Gptv)_@0yjШ Q 91W7۵(XwF% [_ɼlQ&b>-Rt2^IQ5&<2*@"^L5(OjprT6m_.9?# fK%K݈ډt$!2YlbKT^Läkxz1nTRyҾY8] =r0f%6"P(}:lJއT|/x7M>;FSPv kTiwvJuڟY5<[ԻnѼ;^]זIJFHxO'@ fj 7w@P梳K' H8ELU2xI+#a08YG3t-qsO΂eﱥ(++~Ɂ9Ё^ ɶ 5zWoe1Nۆi(Q!ҷ^lci2]|l"+5ְ=n3Qlze%˝\~]KMX2T^8ۺ>π*3#yVb J8l"l>dت#hu$_[\)|:VghNtKtt=H5JQbNӛҬ)$lr٤SxѮx€ 5,ŀ3Seit8ξNP/JhgoYbsoK^L> j%S" 8fl~ԷғJ2N=d $ $ǧZp&xp$,BC)_پRaz]>{_Q# !˾s~&O"ZZ옜yTJgo{Pq{}PJ-2y?U;z>p$pkp`5OqUed,Cώo{r_P /R׿OHMb$5e7XU5E5rÞ <Ż]lWa S"B=ϩT!E;D6.# YԊ&WϝǥZ}pE6G>riz+u_`b ~&-k4A?9}=㹉^1e ҲUOQRmMN>jkts+:T4ud#bk͖"LM4X9we⛜!A˺>OBb [c1HXu D?z@R/ֆN;FAu㦎 1T4w)* 3Jl];=T-h;yp~t~K H{C5A+jaN$Uj4aWRo& VƐ;EQ[FI4Rg{% "Q9([HS,vclk?d] 1XLEKTMdN51T{.Ǣx: կ=1쨨%pAEw[ȉ/v$Yz̧tm* Ϭ=.!,鯅l؅~ Q T } F$a0\`%l2-]'+7 yg@*J!Gl }䁹ѹ#b>iʸ{?,Bd|!YEV$تD*Wl Ԣg8 ]qڥf]ڦe6+Y]&Il_i(gKH%Z8ڀ|{#:D-}DJ6LorgIy}e,I"h1R.{A$Jk_I6DfglH?XjB浧\%W#-ס|/@U M[_ͥJ)%;-Z"V%K(!É]&iM&V.ݪ~n5zbdcei%,hVdVm yRbsL`DRjC A> M^f镥#J;߁p{co]Q "+k9:QMcڦU{ ;hY2S(шi,>y;Cf'^H4PN 5{rƾד>?~oBmb+VB~ǯ-ysJuVjN(0cAe !IQohb֜#:|#ˉwi~-|S# hxU9Q$l& ADbr+K8!w.lZ5]f)b@x&oC-e،P>d`"(Jӕp,R):yI-,""׷$4ZY7x*־*H_Ē7_5ET`SUFA)<q[@!wyjyw矽J52mxWl@XMjHپXDoCyD/,hM<ZIO .~GsƠtnw"& ?NN}›ԲMPpAg7BNtu5ORԵr G:fI1a]W뭫>rZH\o;H~Ɩ "7JHԤ[{{vTFn園d6ϲZI#M]L4IX֓B6]?sizaݽa%Vb 5SdHZRl78NEenhpلrr8iLxUUIz痦b d3ן*V-޿ ; ~~c:~#(Kk4A4*Ocb ҧG6xr0Q#{ͻF4 wymX P aOv֯p-zi :C3COYR"rN3^xOM-ؗ3nEŪ5U.+Ȱ5dؒ^GkJOI6[ӻNCpނM[AlyLŕOL"|Z)Y؁F<J_K 2v;qf2Z~D?4é=")n+BxHg VO-i*?UNSEkAܜ _y芸f_E4; m{OL**3%POJ5f*{dBe44:J&y!l*g+ r hl[|У> endobj 109 0 obj << /Length1 1670 /Length2 10141 /Length3 0 /Length 11225 /Filter /FlateDecode >> stream xڍPl6LII7RKwwwt,)) "R"Hw7 %J| 9׉Ϲg`㔵ZN^.1>/Q ێsC!bb@@G㑨 <^!1^a1D(L 4jPQ;x<'ņ+**G8@!M屢 <|+77ŝ bx= w d -t% vӡ@G3q ؂`=U +'YOr'_ѿ!ml.@b;J\pbtv>`g#ց%¿\`ybn-MC9c$)'8|A~a ࿳G|;(@O g 寥aw-4,  #ogvOt;xfOЄ>?Yd t_qCd!9H{811_cvg0u~o<<{\97p7+*BlWOP><'(}Q[psA!Gu;( M"Q~myܠA>ݿ ??P@x_ >s'#z迺p(/cA?{|؈ǻ@p F{9 9$N_Iѫ<\+#4b<ΰQ:n,M=+W8dvJz,"1.`춚^ hZ>~[k (M}L10׉~EiRmt:f2u;N÷z?ŏ|Ƕ/]ڋM;--?`lwͿhS0&~.e1(<ORulP_*U͖@>%Zu>_x`N}]7 \2\.q`{1?<.)ˆ&̊B3W YMF^EnV{yj_gkr K{2IĊY 8#z˰9aI#$`p9m&rE,Ӗ՛Rc)I +jzifT̸Rي:Zb;~1z|82BfҜ'$Fq_w΃H2\Sux,hU[UVEnIf?eM52?PЁl:(fFknIz),EA{że`څZQ9o,<#;ϊ`bn#$#b~\B"RnۼuQg>YQ}}Dъ/LWK<.ZW$ZW[ RGm&-|yqvYzzٍ#M \#һ4QsvN3vwƖ z9`SP;jC7X%Oل4mp9?lbEv\MD/i_ sc2?S/x'-!ˉ𒯎n(~۵R [WCӦ(~*N6Ê=} ^UKdET d6xC-q>9(SmpvqF/@ª0nOG)܉ gkߗ/"h+n [>%zPχc+=r7e00G/ d~++\O3G,D^p}`mih?, SZx' j2y H; LDrf<DVnmܡk8v4F\rp;ek;.oCۗP rNN ~hvwλLSd8@w3 T^KR6AݍhMHDZcl~+G+YxxU.+ 료2u]CW;L1+ i2 Yn^6)_oKэ"> w<>ʞ#/wF!\5V-MG`jtɐë/ycI%H"ɾ4"oIĨcūo GRQDZn+YؾSeA2g;͎1FblłpH\G.1XΎ42ި)IGy F^D ֩1."-OTÉ^Do,g!⦀C^M/6ZbM}`Tck,_YliUbp ˆ(Wr{u<7֧$a?TQG[uI >66"ߧ~REHIذ_<',LH _J5h (VZlx 9mă{Dy2><{M۱=󳪕-z4Cг R鱬eWi?;WN_gtvBW%&Ԭ&Ͳ.yމCylg41 \T908=QиZ}\2Do|S&0MpV}5|o˞[߃R~0 8Nl\W[j4 gs@ᴅ(?LΝ^Ow\n0>#o޷nx?mc'hԗbCu6[?cn4{В9ƒ& Tκ;M o/=٫Hcf6sc83BOK$lODU041&tKȥo`?ߒ?EAyj=.]Iᇉ5RhZza'S;q uބƠV䘰vp7`Jҷbh^lt#>뎢ZfO2fq9͒ckP[wrTkCE*hI)D0Sݿ%DnDd1)K+.ǬdSx9f':^։3L<(rÕg9t)4$g8f6ݹ\Ώ,Tc{ jvnhC؊=w&%FkoڀOr"zWcU4u(Kٌc]4'ĥ>frk}(1$7# ~lfH?IIw%88O1^vBݔZgeȯm;S>e {tٛl$uH_EL*XYc_US?hGk/>/ܮh-s9@q,'Cru*@M)S5%}-`>~цExIb0kiZfF^I]&NY[6eHr%5sa4#/"ciIQI9#0Jw{l}\r1m#/._` mc~@jA@&~~mlUmf)WJPc]Cx;˺=HS<g UR݂LC?RxSO꜍Oms?)g)BԻν0Ajӷ3\1inoUuY;q|\Jg vyf.zay_kz[D d8нnzm_yRˌ&fX_jLJ //Z\oȋN"dNVZT}&4M6Gts9x) "{/5*;WK׼{\sӝ6w~%$.>ΝEJ<E8Mx :CFBmј9;Q6`nF575#ny-yN\R!`_V=`}Y`бOzᵂcѡ3}$ YlUx#dc2VLz뾣UôYџ>dm&7W~i]~fF H`U9fm\xM1V7تlj򰇘)TIM~aXw8=oW,4aFjeҼ>[٫Glմ)5r'I6EӪwDrqfs+ݛO`Yo~En 0j<Nfn 8H`SŶ[C9t*&LY}%+NC!a }/G9#߇^t4(k-D4I4"2,!hH_g?) /d+|\K$.~*ƻk; j{KWeùO^+QWRxw#Ս$ػ0I DK;aêVK.vΓP^.$ef#\n瀞,I}Ӂ'8R+a_Zy7[ai_Ffy1CctT1FP?[cMoI_w?CHsI63CN+ ~v${/ ֫Bj)?5XJ9jI=ή Tm@c4ϖiII8&u7Ii]Lt^,cq*UVٯmao-#|C̄5"s.o"l#X?CL¢jyFx ϩ]>ƀ1I]Uoy,y0<=Rh=G 'y "d6]Aܰh+ݟOQgpgK!-ִaa@\Фn<=ap& 87ݩi#ь%ﮃMyJ}Uc?%g^Acr_/x3G^O+FϩXT4`!9MVQHUvN7= 9m wz(:WNӕ:U-,agMް*l˞ } -=V7IZͶ)hCx勄k`{msͶ6Z~[JS1 ې\r߂/)ЛH=48ei0yiRCC[(%=K0V 吝h3~M@.Q(ՉpI}Zw8`UQfv#Bb%LHk&4t²+JI5bOIp5#Z8I"EPvLxx蛾Z6Z4h``r7hd|]i]]ufxm.pa@f&ڑLl#ux"9ԎZW8)[y W]'{XӈMx VݎYU~Kr9 z&X ߌt_s(C}J>~%d`.`c!/YTpWa=QO²r ̅1^h J]|OEOtt"b8dI'frqU=aU8_J|hq(i$,:Q co d&G`Q:VUrgdAk?W%Cb\ohzZyޞxˣ&! XӁ!q\pROl|9dw#\P'Me \Bm۵wzN!̳ȚfS8&:Х l@͞BHHݘ(kX1ʢ֪p{u?!88WHagIk1T ®~[bv/FAzol3~V_NԚvA?L>p#LmYILcTR*6+)C (.Vw{*vd+ß>"e,In|$vsZr̻{ET]Dzc5"NHM;~{x/ufɽ"FSA+q{/D*LYG-6;3{|2?mUαkR|';*1gv'v>N} a8{l ofc[r6gWIb֡YNj6҂]/l\7G.z7ĕv3%~-yÁ Ԓ&!O*\✳Aw9G(+*@CE#Gk×McÝ ('?'27)Xݸ-Ё?w$n)&L5[M>!}YJ{ TξKui,Ģ'OI<4U6A79YSmqU,w K4%|+~tb=NiOdp|tZ>Y|r!6!Tw63yB4{DKOfeD8%yx7_G &h.:q#hڮds2K`e#mO82(P_|_:e'*+ǬH(ajJ:4I5 $ N5Pb"];m4%hܨT_tmV_ѬOҵb'VC=t5N7xkciEXAћ1 G8g dmQ˳w |D__S%Y9P" z4?Mɱ*GmUǪ]ƛ#n@X(\ܣdtlxb[5{}? ,b*6Ѥx-44*{[5Dp0ZS̯Wjb1?,m՟%{F4< u!)Ƕ-뉉k30,s13hqUF6a׽yVWs@ f"0Lf cP;piigz-kͯD ߾| .އxD;>e̓(Mϋ,'C:60ˆ"bM`qhʽ?5 T1,TdxG}ϤEGDkqT9F+=ANo| s)])aT=.O{ɞ];ެb&@}yQ^+r.'GRp)wa7RCV[")㤃 Fg .yxh-6ǴNR2t]Ww纪R_GypD"!SJMa.iϙY#K2 긶.<) #e#Bqj/YSx{v#9h\bQq$1 y7(I]P*#`h,/a5+6K"< +23gwudOo&6tT X#G4?yY2ν?oyGbb{|emd{HP9ӡȿMJfz#> endobj 111 0 obj << /Length1 2279 /Length2 8872 /Length3 0 /Length 10198 /Filter /FlateDecode >> stream xڍT6LHw;ftK#-c 6JJF%KnAOy9อo(da(aA @EH  "FP 1! d0PA@@(LBa-(@XBFXR2U'+Ђ HBB# A@ @r3A.C8 A'# &#$%rE wx^P# n?hnp7=jA!Eߌ锕_q@\L !- o_T4x0{8@o`x͠Go2{-@0? RpqKB]|1@/ }pi!BDǡspF(R Ӈ˿C@Gw p$KG635AG >fTv?ND\B @>@r|ikB08 @?*!R)I#)o$ R$Bw#IoDB(@7B{3B蘠_HXm B^A~D~" Х"@`gͷG:8:Яb?%TwAAlC=pB{ 6qp DpG].7}3?jtn`n-&C =<扡ix  DD=(?#E]" @H߸&m3 XjS;:h ~m׏:elj ^0n$e V.'])}iKaD|qaބ b[7wS:DOЦxՃ4;Y#.0*)tU#ʾ=-Ӿ~[aYqS%_ $*-#h}0ֹY9yTAnp{B*,Fmbw*qPNq.odS}lu_[n)~FUV!:%h~YϽOtc,(hZ(L~3Gvg!NÎ^dݏP*9>e;]3 qJ(^Ic v)I-tt<`{1A{wyH7[Pǔ0K ܲbcIa"w]kj; )%pVQƥ{?|\c7t!H=t8u [9#콂ʞjšSVN [Uv1>;}.!ƷSV\W5X *5> ‘cY|ٰd6-A#dIMC3y*Wxg!j%/=n=P [y [zإHbۖgfx$3|qje- H ~dv"}3+99ľ)֓K= vU3nUOU2|5L {5\r>۪O@O'X^H}[rƩǠlaqpD VeEihW:Ynb@} }P F?KH^*7xNP_f Џ%ش>ϟW6k:Hɭt7.,¡Pp*znz"2m0Nc;Ӫ9=r[yG`&DǏ lST=J9^5 O(`j?se-}WsLҊ'[|n3.~yeh{bzqG t+df4ۏL Dɽ~AoƆT;._m &߄qi/H׍e999eӻ"N+}wd!n,҈ 9E 瘷9!p{3%d`\LWGB.Խ{+LS*HaWP㉽ڪopY5TLŪ|܍?77ڛF|S)71`TWF՝d6ˤ_ً̡R̝WH8G+ȶIMbk vjyRgjS9yq. H/Hxg͸{L+&K%y} 9 egۯ~gn"Xs?*dTj81jLp/^5 Krty._śC|ZOY=A.v(ݠ'N,6[n^ֽRCD1rƢnnć瞓j`L/ټ>w{teՍ(ptjaq~@>Pf=ܕzrMSlM7^y mxr0* Nv>u+-j"2%=H3Kqe~=*oҹvu!ӴfftYs϶تy{M\=a)qe6/?? 1:Ef惚tnr`{ o{,eF ݏ.7 H~RCֆv(P1S(̂a4[m^&\&3XNl7 ~Zg pmn&i\?8|~#H'MٲZ/>fnL+oXÜʹQ%7eI+%H#w_ݢF7iidy'%Hfn)?ڌ^ysV/Z:Jۆh uEO&_$gZ2 =xrɹHt9kVn Ic"ӗJOOZ)Kn8[%J`G~d-_aש0rx>Y)04Ґbù4+}qGo-d2ݺ{: 8]c6R8>ca,4*18 ķ7PZufmN8y9x  t} X洨xħ:ew&AX~Бc>iW87k#Κ `Vy8 GraY-4Z3f%uHѩr)9:t y}}KwbMd≰vEjπ"joKfmL$)x^VZOdrVPGHDى8PuԤ,oqEáW5$maH2TTZt嶞O C&FS"|yͷ9$-ߜtQUP/_(lsOFMy_>4AGn>S-3u8|{lΖAQ|O)V8ʶAG 'Cuюb:mL-Y:Vwz{MG-rmI QR * ;ʼ퉌o)iwHUh杶o<{)OY}jJZ.')NVm \n%hF`_bF5఼;9;\NFSln2:[tAQ#Nު.pѶ !ԧOnVQ͚_3.Gy\& LIzKDa]%ҧ9[7lN Ҍ}i,Q8Af%zl,657W=xiB~,Tr`M6:*-L>^5cf< ,rݳO"؎*qg,hs1ɨ +!ic5ϖc..;h,d)dtEnX> ^JGA껧5 PG\goI+·B_!Lr V*_0x់mJWx :lԃJ>lbU0mZnvimvK;UW_߉l$o s1Aĭl7#0%X |Xd1Cq+m?j L -p+)D+irUʨ(xUaubHڑ;!ezw`3i ,4+.Hy[g"-na|M߃,nEÑMB:u")7% `E/ݏzDCpZu Bmk'ŏmZ9 41 /n)+s.fM(@I L*Ε>Q=#;1DUX!p8m`P»pqOiu|Y'x]=j6̊<`|ɻ48$ΏY3=a/CK[yTj;HE - ٵ3n)xsTp ls9I$Lɺ?δَd5K9v]ݠc UCΣ9&nrj|ŭK IᑡØ6671Y?q\o/|Wg .D( udejTFRr6aMH2Al)T !jqF`}qg_Ͷ A7EX-ƌ[oz_3e)>?c.2s;zK= #]@>gOiyU r̍gV2f:`z+e =sc[F2)/P|5rR0)>hT3DhzF]ߞkBG)ӅsTx*\+t}[n#~ZD_-Iiv68%|QF2btVt}&x'FôGGXh;˚A@8SEY_%tT}j8rk`,Z4/~댏a2~B{-17bpiw85YѫM,i豌 0Xn@<1u)0 N+>&.<2pzӮг{^<4gH|)d4jK|UK.͛974b}c~G3Ew*A{dL-ùǚqKvTMQqYf@9,=ݮL3t i5J`^;v_.NɔB-9~NްލAj:HTxQ/HMeGVDyKRcC]kx+^QN5s2f$`{VQVq1DFL80duu\BɸnGaޣswnn~ZȵpUBL &'-+ߎGAǕBg,R&~: ,|2k ˢj˙ ޗ,5$lPC̨W(Fc1Ɉzkky%ov?Լe1 @"&;*P"ELP qf)̝*{>(]#=GoGkZp; +Vm-g. MA+bS.X',roVÙx2.Cjc<pcձ+Jm]U`'Lؿ4D5]f{8;dE 5% v F*kC({>C^YqV|0!0A璑#X%qR;~K,x\9]DA/=sx?%lIsryqRŶkvu\v`ջc>pPm~— EG6 yגJuTl[@7Qvu"8?b1 VۆI|L|Jq>oQ綞>gudX k=SjxDЗz>ȲQpT?>Yia?[hgs1a;UD-[|Ů{ϏJ5J6O0LӛNL˻m^ =IR't8S%dsh)«sCG쭝1U,Z%Ձrqs|RZFfQ*;"w*LP78ė}v=5xGdWbBt+'ʀn@75vU[d '<ŇWTOZL>&*pddM^.*NI_mLژJĬ^oQ3-⨉qLRnAsJX5??ƴ |u^!Jjm8>փWnPc xQ#ݤ6H'8?:ms^6 =C/IiJ|}Rv9^uo,AWԷ (k絯nI( -79~m #ug\lܽM1UiM(σBqVmu౹>N!5 G뽒Y|bشqY<)ޏ5X%VU}ԥOc CXƍ,ú ]ΙIlA([Ψ̗\'\f3 =JuBpWw.8gSk|bOOU^ɍPjc Wn+4|[ADc[9Jl/BDm:v+3 _-[CCdt@JBO\?},f"^XNXiCL Y^dzc +~0s5aAku Q,{qYB:uMŻӕż7!^<6'6Vqx24aSiHirY|U.mγ%fꞛ'X? >w1LrE|PFڽ2`P$|.jYəǫ endstream endobj 112 0 obj << /Type /FontDescriptor /FontName /OSEZXP+CMTT8 /Flags 4 /FontBBox [-5 -232 545 699] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet (/A/B/D/E/G/M/N/R/S/V/Y/a/asciitilde/asterisk/b/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/five/four/g/h/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/quotedbl/r/s/semicolon/seven/six/slash/t/three/two/u/v/y/zero) /FontFile 111 0 R >> endobj 113 0 obj << /Length1 2227 /Length2 13298 /Length3 0 /Length 14633 /Filter /FlateDecode >> stream xڍT.LJ14Hwt 0PC "!ݍHtw Jwv>׺w0SkhIZA,@r'(;0@ZUGGɍNO:\'HPL٩BJ.00''S?Wa lPe(A@ngoW-?oL/\BB$A`K@92ZK0_!DmPgaOOOv;KV'j \=@V?Ԁtlnɵ!PO+8-ANn0w'++Pw9e+ع N:--!@'o ˩C@7;-`VIj0st;CP# ˲NVGG d KX۽9o` v3k';HQoqrr p@.-uA*:C0 5 @]AV7BX- wtd 0ޙ r*(* `rT4!Z/ M~/1'%yt? swpS:6-;vi8CVYWŽC6^ + 0u`N ' tk=M`SguXqu|+\||_.yZk s! !/2lA\HA߈F  !XL?f tz`Gp6.oWXT W=̷#kGQYB`''GUտ ,@.'&,5 5_!`&6a/rjM[aB~9CK +_[ߍ6*Vh:;#uq@AV9\0]`%3%17ۿسj `d9b 񯕄_7j kχ(@_>C,E>JymOo륿d~&;dZ2ew,ӕ2գaGȶ${DviCɆ 4r6G?`{V.%|wAlB~yۚ;5lo_/Y ye@e?™ϛEȂp;vgRۭĐ |Wj/Uhѷ4v]l1%;ܒSOᙔ5G 57"Ky @@! *}|ƣr?1Qg)t5.J}n(dhFA58vݫXDQa5e >T}'b6 0rA- љoe1M붋a`Y5ٱ$g6BW@ce,sՃMRPQpp}/&eQ܆ "dݼ w7+.aLqx5 {9.EdUFؐV!ʧ-mii_`l3kq𥳐(lfʏ7ĢʖW@47>Դk wht^ˎyV<]“I>G llY1pǻ4Rv:)YNAF?L~3:}LNjW+7 s/|HCۨh4Kz̺%i>DxFPGFFW!; [|)Tz V.AA :gNoBmGh]=5, e9hm9瓈XHV_P+@zqkC|eb u.wvo3jxٞG3Bm|oZ))cq_^'P8_!MB/6(GLJ)9u 0}Ѩ H=cF:JQ"Hn;M . ޕ>s)S]xjBG}'֘4,L0iiD;X˗4bҚ\3ku tc糐ӘwT8@? ;m76 ik"]ãiB/I@TFhatosiw^6}xlx¤{[$F}2{"QUsO9xE[9Z5t?_/6(;icJVi,r) r!oQ$K' 6ߣ<ԲJk۽c5*oU~{~=fέ&uIܤ }Vќkũ@8ll1:C^r)PÐbA\ENnokMU+p0TiT1QvM(7:D`.'$”.Ct GF浕PS^#TIWUQ!Ž CߧKm1vBM>6ýmx刨2c KVֱ%_ i'0/xv1xH4x86~@i}לRU@U:T}6bNra/٥e)Q@|eӳ˯dcR1ΦIZ2~ ka#ibgV8{bk1H!Qx''57Lq%bٴT.ԉjG ܸ-g>/,.2 סiWNDv}i[3؆Q銰Q+4I Ƨ1P3ٱiwGsWd BԜiɳHVQ__o/JbiK)wkJrDձmNgΞ=7Rd*<6_&$N7W lu: \_ԑVy6A^a?W 3d;(3)ehnM7=: ^YW$XaSN*>+#zn =8r wNƣup(--1aOZIuyi1cL9Lwk_1H+dwi8dPD5'$eMqv\yf~DtW0>GތJVH}qq4*2U{exiPOTB챉Yęi>SE^V|o8٥ȌkzW㏡g=hԁ́=ŘhIiDF$ETuZH7M#ώRrX^aO}kq~]mv֬Й TT؞0@lх3[`fOQsw=&TB38cχqc)c𪬦2NE@QyborkI՛RV-k 7ZT8[NuK$o|Ya"J|VXL&!zAW(9 Oj_^ {QGiVpd29}?Ģٙ V_`Kݝ1aO%ѐy,:_]^}C%DWJ c;cGw說ƈ\٨"N.5mfL6Kd m*3rƢ9{b\V8n) e^Xy?b{gdj5!M9KSd_6~C*9}3B dlI7(;lJ8Iy1C S`EɖAIRlUl_f@ixt3AAth~~1kcߛ;ΰb/)p.!Q/}5+hJ+؅>.Eq!浽c)>$lHad|ڶ%$#&c*8UQٷ6c̉c$*51E#B;"~x'QOvbx  3yaG86y<@.$)To 1jiKYұ.̩\o]4y86p:o:g`D;AIUiB_|ږut4ˌqtR0..8Fy* 0n/iJFltnV+ۿwB.Kaj%Hev{k[ -& bΰVR7ah ڂHT1iSaSjDF#4R(w|ziH

6, xؠےh7bnC Ki0I4ݞ;+5g/"ҹF~ӷ\gV0S(}0EWG֌k3_瞩:,EdX1 jkIA}CW '7*1}=YQL1&MnPO8LU^~C{T"*R +&uZg䮷"emȚěv:&7Lf$^US,J΁C;zpGN\u/Ȭ0d؃KIֺCʷж5בK^]d,l]'͔9M\)jwN:<Hi PaPjR"Wˊ&HcD_匙kT>5bk$mT{F%Ƥ EcMs|ϭ< Si<iEDÏhژ쇷I8 &W*'#L)1zVJA;ڨ嗬[_&aVg+3_pOĭnAdP/dx-%|I,heRY} *r!+7_dp ۏw;kۿrC8Q û0͵\{3+@17sA3j!ү#>-a=$~OqD1{_ܨl0F N7EYRvr?5GUA T4gR~$Gt2.4wDdmkR':ܓ[-OTP.ez6w(gdA-bZWqe[nD8Rߍ,eN!Jqzf\mG J l쾱Uhܓh44IB~`iF|B- YY>~Y^Iu1ʳJ51Zb孹g+Yv2!&n(4͠7c ڤs6|SEpAʨQJ%WRq)]7sW%u2fԠ<U3e~RjT//v§{48 YwE{dFm/' ?ƢּIp&dHE: ;aW_.3HjCLhaB'P:i4h˴DS5z [*[8=Iyk9WbB;h~LdQ ZEZHԵw,#d'. o=ĿSB$stЛ_B4ƈ+Ҋ>`$.5YdN(kX)m٨;i]^5$c N0Ʋ0I5Pמ^Epִr.in؄?[tn .*spd+i+">]Wk1tK<%c/'9JzHKlk@2~H IGW4rA GH5iYK" IpmZ!6&0ۖ3Nkm0R,=>OvKgTydR1~^fcC{Xz.-݉N Yhޖ@Nd.B`-3S 4 mQ6oUa떷 ߥ,4QƔ0 t{ޅ jUM/-pyjfuڋ& MK~>=cjـ\mpXס-/w^}"7kB2cw&դ&2 jH` >sPw)> jpSTD8$%RW]ހ`vV$ٵͰmhd 'Yxl4s1F}H9%c1evjrL'iwX^Or*SqkBI) ? Qp3ͮ9F+fu,wDT̯p^N9Uu.BSǛkXf*S j_(Xѽ:%bTY"N1OF#T]Ϊ"$:WKeܦKZ0**vz dsNp4Ѭ~($ݜo- R9Go-E{ k[z[fLL4mBb*["QA-)_q;׵xY-HvVЀ{lAG1&S1Vai8w$Wz;Rލ2][S 7,>h&bY-_ooK5adt#*HhX(s=\a#T;aP9zug:m45AW_("Kz4ci6_V}P^A YL0'`iphU/ss4*vL>r쿐jw}+R_#qDי+|2NSjAo>v_:1cW+Җ)m4H~>,/iAO2-6,*"Ƽ|-1G&d ln̉ LMFú3LH 'o0s KWǣ_rA-k2)_ApHX1ѓZX>؁$_z߅x'Of@5J :jx,}kRns-6S"Xk3e%'8R|ƕm_'_ 0>j[oQD'xio$W[VKAUj=d]x˯D!8b5#NB%*s'K UIrϋixMp: |3AʊU[uSK7LiK8$2vǿF)oيw5ż <;{i!x2h5@rL֮5K+ߠ2ԓZc ^2}@eR\OuB5vLoΈ\w[ԅ('f/KE0ڽr+FL68Y&qL>AZyf%VX&B4|u?AJ]QkBʎQSݍ~y_19fί̀-uڍ[O#L a[1>̹nUz 5B+ˆQߕ'$A1T$X߷4_$~$գ)N<+>e!krHypb -MCNwO5o.')O6t;ԀΚ 7F3%dAưM)pL.1+{P,ƾć.pW&p)Oe›U\%D޾8;,cu:Qp8ʨ\3؏~,a3Zm9c; {lmKOsj7C8=rf-!HbpRz ;uWL&gP~4V}[NWw!榮K0y(jnv#H[a,2Bnuj+L`i75)aj×Ws~"ޅkC#Y#Ao \;;[kFT5ϱ/KYvYL]e@A)YH:ίЀ '̭0Ly[*ƇwNkl+ԓUeS4fY`|d@ eÛǦ4O%YagM_pRA͢A-`Zzg°+?7ĉ?ߚ'ljNsd^s :V&C|?.*S%J9=~c[:5Ū61๛:6]nMPmb*C.j$C.;UJ/:g3^~VZ&n˻pMrOGHۧzwEH -3Ya|FiM^*w+@M="!<wTA.;=8+7}l;u4]qdб8T o*KkBx |Η_T{W\$,}er16=TrWnq|$'G `YN`d&sSh&Eq$!JxM4T~:WXv 0qN]͛rR˅oZ } 7dcc ʇL-jy9F/|{eM"(E_U^s~8sezfj|87[!T:uRI^IVR4DUG*Iͥzզfio烄:q+藤I-d$>%铐޶y\zH$~6q岪sX7|)`zOyROD[X5F-.0qݭyyru.ẢVz>em f: x2uN5XA9u\5uO5[Jɽ<}.߁ ˃mio\'hϐC)`1|me3a-Gz:{<sB8۫m= 7 {re/k8Ҙ(+ MTٴ: 慉ՉXKEjS]FOS.|)-ڣ% 檼A̻M,).GK.sIZ.'\ok:8 ifqIq uk|#cpv:=}Vi=UA~ ;ҒH紩E;ZnL߷{h#p9ȤĦ.df6`h2FH b>cdvt ݆[JKyYn5"OYS22`cIMGWU 1> Wц1(RUpcye՛?篤o 7|q(ͤ gH?{vQƂ]_yBV14HwY|,pߢQdD?(ƞN+/ֱPݎ}P1ǢI܅8Z6q!FG.g3d>iF d+ P=NJ%2 ٘Ǩ^8Cֿ m$_[xGºy!AIR0^VC4T}+GĘa\S3Bm9lě%DaM!gNhǼTIɓ[cS#BۑO#-GHw3dOSpCyf"0ۭ U},gz[.Q~.P!@4XoEe/TG2&Jf*WpeMw v":JNR DE:?K}  ">\ݣbH C,a9W%)䯫LaǬNoy3*L;?;--_uչ)dj]ukUYdY7j$NسG 0sqY*t[%,C~#?̶V%4\c\Uykx> P[ Y%eR?ꅱkQW-I~9vw'QuέHs&560)$[G@!~]AeڨVO_<:i`dwJ}21RM8kG(PS..~5/V9)TEK:#tP=c86W_i1US+ iOzLuMpՊiߐ > hA*uUCv&Z@bO_ۊ>9bBsYh{NLv"28roK&X 7Iʛtŀ]q^u'P~\V^8em{γS0;(s K$Ľ" f3%qI'8Ŕ endstream endobj 114 0 obj << /Type /FontDescriptor /FontName /EHLIHW+CMTT9 /Flags 4 /FontBBox [-6 -233 542 698] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 74 /XHeight 431 /CharSet (/A/B/D/E/G/M/N/R/S/V/Y/a/asciitilde/asterisk/b/bracketleft/bracketright/c/colon/comma/d/e/equal/five/four/g/h/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/quotedbl/r/s/semicolon/slash/t/three/two/u/v/y/zero) /FontFile 113 0 R >> endobj 115 0 obj << /Length1 1398 /Length2 1220 /Length3 0 /Length 2073 /Filter /FlateDecode >> stream xڍSiX  ^AWm$$Ha (0d&N& r+J"*JQы-W7@HI@'e99yw^槲xoHG !!ąFq!Ac0 B?1(\(DaaJ DT; pB Rİ)D8e0C 2p}Yt R$8”U7" RA%<r8 l̘R8TzTA FرLĴxBA`C!(t%DX {,7ese a%FBqgBAlx42R,r3Vi :Ø Na.`dE-BbJb*3M =0\J(Ni"MW Cr\Ʊ:T".ƀ/r}x]P#䘯I0iPKkvLr5(h2h@?F֣"uhNr @:ጁU"@rdͧWMN*֜ 2xHaAA>}Grx?Wc}M~PU+˅{>5蓑'|C A7 <0C}p(,)O *G7S,~@`52tǀ9hө?J(PӆcFT.(DٻI?Jdpnrx|I61 z]x|>“F˦'(:htTP$0>]O[~K@[~˗|-֠I҂4{ۢn5y 1>'yNkK*+G$=v_إ&㭇׏ni{?*)w{t7f [1im]_mkNޢؒwϛe5uqE~#3Cr"%t~yzE/ .M QeExaΡǥ j+彗$D3#s}ZtΚTIGuŁm~WkZ]T&;@-^Ij2k/N_ѶդKמϛ>oR͙\XDD^>nۋu]:]8^y~Ja[)\p`غ(*ڧ-Ϸ4ibOak()q9i̅cqv)Уձ] VwoYu4Y]jOΥ<խC_9k9fksoĬb|3HW!e/ыڱʴ=*}rraPԡn BYfq[JaCĜG_*zx{k?M'ԏ8yy+ՅsڦldS& cP"%&VͨT;fu(4tJ_ZM=|fjLlUqf(ix;l0|qc$wYM85&،V.ؠ^_elZNvU5O`o%y nWpYSeAf%Z?r}-'~,Z˾^ѣux6/vvwaq#sTy)WK8vxˊXYY[Oltb>A7Nw[v;gF&LnhdI~1|jӣ|HbdM#;p(AdUqk^uc{n/K : SB爧ǐcI'? !/o卫]ӊfx3RF9O[;Kzy\L|tYm!C{]cgo=?LȊ '9CW9.H]]ƅqF]#+G ^eR endstream endobj 116 0 obj << /Type /FontDescriptor /FontName /ZUTHPM+LCIRCLE10 /Flags 4 /FontBBox [-2000 -2000 2040 2040] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 0 /StemV 40 /XHeight 0 /CharSet (/a4/a5/a6/a7) /FontFile 115 0 R >> endobj 117 0 obj << /Length1 1370 /Length2 3024 /Length3 0 /Length 3921 /Filter /FlateDecode >> stream xڍS 8Tڊ2f03$勱̌ѐ%[v]![tBliĵDHfI%Z=`j~LH q CF槍P!($+9l $ Y-c}8&B=\"TVG# Pm%02H֢Ph$G': t+ti$ NF0H N Ug20F9L tv $c rp"ѿ) &l+2s=C HGoٛHd@q^$#@r!ɀ82qsSK8+l0f?:F20:u#| {:d $3I4㺐)LwˁD&:l zPg$wPOsB@w$87/[A䦛כJl/dAK y lAHH"0C$x {'~!(A))8 Ab?7eDsKF0)Ճ 8Ph'QQƛ-KV cXjneFcono2zHOp<~0kHs/ Z~6b܈ĥ1@-9;ݚO;G @eonzoPUecH&:~*>cΟόJ8RZ)׋HqUUEJʂŚOd賧^|L$=G) տɅrNN R S'O&(KطGjt?γdf%UxZpd|\76>!zRѽ(s\{ӵO-J01>潛NK0;xaJ0N~s`[㲃T cHr+.~RͶkԸ^3W3XS']|<#!̛wovRjg3_L?Cwobı y⨲g(}7Qg!dtE}_JÏO{'WVǓ/?kJP*w(upjh$_>zgb5Ew'JRSz)N4M>Zf^VE}=WD{,Vnw91>)0&{, P"5W4^^dR/+k=)$H9sc`'X%cQp=*aq Y\yLWCmOyyVm}V>8BH$AD*5T.3=tuKHy.lH<ڥlDfoWC/uvyBbPOgs<3N ]?˱t^CѸuCh#Hkڹu(5ijm< 1Y# $*&-1 (hV0SnoDwXA;w+7P. O*P}D];]v {;nd4 9#.x J~S \f~\L)fI9sH؂̯@lwx`Pj=kCc8 r\Ex7s7p3U,*"ͺ $+2Bu4>rTW-|s,Oi'-(3Rl-)tmB!]i U}/sZ.|t) uqhĿG{+ko؇Y V_yibb*/&9l{/Y+U{\*N֠:JEXN2 innY{XX,:ӬЍ/Tx"RJf2Z/jV"{x =Dt/-ZOtJ*>﷏s8GAapWo롊d0QӡFw o>\W]u7 3ljCɿWtk;͜T6"=qP>..8k`1w|Ce붋~T~\l!5y@YLdw[\PP!c/BM yE6M|8w"dZO҇ΑKCDM.jH` Bՠ&f`H=f sȗg+wF^R 95W[B%0w0|UEOQޞujw4 ωI}<̨)SjW;vHEWd@\d=Gˀw΢[k6]1Y2aE ~ڤA6\gt*d'ouzW׵ |Q0* ! \hr§-kiPqO ۤ lv{dU@sutd,֖W~lr`/&tK>v 7_ɼehll>vע5FO[w\ {üK5*>8\H0>X$usk 7fo+ endstream endobj 118 0 obj << /Type /FontDescriptor /FontName /QZGPZF+MSBM10 /Flags 4 /FontBBox [-55 -420 2343 920] /Ascent 464 /CapHeight 689 /Descent 0 /ItalicAngle 0 /StemV 40 /XHeight 463 /CharSet (/N/Q/R/Z) /FontFile 117 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JOHVQQ+CMBX10 /FontDescriptor 74 0 R /FirstChar 97 /LastChar 123 /Widths 70 0 R >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RKJGIH+CMBX12 /FontDescriptor 76 0 R /FirstChar 33 /LastChar 121 /Widths 66 0 R >> endobj 43 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JXBOXB+CMEX10 /FontDescriptor 78 0 R /FirstChar 22 /LastChar 60 /Widths 53 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BDWPUG+CMMI10 /FontDescriptor 80 0 R /FirstChar 58 /LastChar 121 /Widths 64 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YGTGLO+CMMI7 /FontDescriptor 82 0 R /FirstChar 83 /LastChar 115 /Widths 61 0 R >> endobj 31 0 obj << /Type /Font /Subtype /Type1 /BaseFont /MZBRTO+CMMI8 /FontDescriptor 84 0 R /FirstChar 59 /LastChar 116 /Widths 54 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZBXSRA+CMR10 /FontDescriptor 86 0 R /FirstChar 12 /LastChar 122 /Widths 69 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VTGMOO+CMR12 /FontDescriptor 88 0 R /FirstChar 44 /LastChar 114 /Widths 71 0 R >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HMTPZU+CMR17 /FontDescriptor 90 0 R /FirstChar 78 /LastChar 115 /Widths 72 0 R >> endobj 28 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WIRDCL+CMR6 /FontDescriptor 92 0 R /FirstChar 49 /LastChar 49 /Widths 57 0 R >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YXWOQJ+CMR7 /FontDescriptor 94 0 R /FirstChar 49 /LastChar 65 /Widths 63 0 R >> endobj 29 0 obj << /Type /Font /Subtype /Type1 /BaseFont /AEPVWJ+CMR8 /FontDescriptor 96 0 R /FirstChar 40 /LastChar 119 /Widths 56 0 R >> endobj 8 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JBFBDX+CMSLTT10 /FontDescriptor 98 0 R /FirstChar 45 /LastChar 117 /Widths 68 0 R >> endobj 22 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TKLHNK+CMSS10 /FontDescriptor 100 0 R /FirstChar 34 /LastChar 119 /Widths 60 0 R >> endobj 20 0 obj << /Type /Font /Subtype /Type1 /BaseFont /CJVLPM+CMSY10 /FontDescriptor 102 0 R /FirstChar 0 /LastChar 106 /Widths 62 0 R >> endobj 44 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PXBGHL+CMSY7 /FontDescriptor 104 0 R /FirstChar 0 /LastChar 0 /Widths 52 0 R >> endobj 30 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZVQTYU+CMSY8 /FontDescriptor 106 0 R /FirstChar 50 /LastChar 56 /Widths 55 0 R >> endobj 26 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GHNXJX+CMTI10 /FontDescriptor 108 0 R /FirstChar 65 /LastChar 117 /Widths 59 0 R >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NMZWBY+CMTT10 /FontDescriptor 110 0 R /FirstChar 45 /LastChar 120 /Widths 65 0 R >> endobj 49 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OSEZXP+CMTT8 /FontDescriptor 112 0 R /FirstChar 34 /LastChar 126 /Widths 50 0 R >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /BaseFont /EHLIHW+CMTT9 /FontDescriptor 114 0 R /FirstChar 34 /LastChar 126 /Widths 67 0 R >> endobj 48 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZUTHPM+LCIRCLE10 /FontDescriptor 116 0 R /FirstChar 4 /LastChar 7 /Widths 51 0 R >> endobj 27 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QZGPZF+MSBM10 /FontDescriptor 118 0 R /FirstChar 78 /LastChar 90 /Widths 58 0 R >> endobj 14 0 obj << /Type /Pages /Count 5 /Kids [2 0 R 18 0 R 24 0 R 41 0 R 46 0 R] >> endobj 119 0 obj << /Type /Catalog /Pages 14 0 R >> endobj 120 0 obj << /Producer (pdfTeX-1.40.10) /Creator (TeX) /CreationDate (D:20100309131815+01'00') /ModDate (D:20100309131815+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.10-2.2 (TeX Live 2009) kpathsea version 5.0.0) >> endobj xref 0 121 0000000000 65535 f 0000001567 00000 n 0000001462 00000 n 0000000015 00000 n 0000263605 00000 n 0000263466 00000 n 0000262485 00000 n 0000263327 00000 n 0000264159 00000 n 0000265287 00000 n 0000262625 00000 n 0000265004 00000 n 0000262906 00000 n 0000263882 00000 n 0000265710 00000 n 0000004983 00000 n 0000025487 00000 n 0000003252 00000 n 0000003144 00000 n 0000001737 00000 n 0000264443 00000 n 0000263047 00000 n 0000264301 00000 n 0000025553 00000 n 0000004861 00000 n 0000003402 00000 n 0000264862 00000 n 0000265569 00000 n 0000263744 00000 n 0000264020 00000 n 0000264722 00000 n 0000263187 00000 n 0000010291 00000 n 0000010418 00000 n 0000010552 00000 n 0000010882 00000 n 0000011335 00000 n 0000011533 00000 n 0000011553 00000 n 0000025465 00000 n 0000028713 00000 n 0000028605 00000 n 0000025791 00000 n 0000262766 00000 n 0000264584 00000 n 0000030820 00000 n 0000030712 00000 n 0000028910 00000 n 0000265427 00000 n 0000265146 00000 n 0000030946 00000 n 0000031522 00000 n 0000031556 00000 n 0000031580 00000 n 0000031824 00000 n 0000032188 00000 n 0000032240 00000 n 0000032737 00000 n 0000032761 00000 n 0000032856 00000 n 0000033176 00000 n 0000033672 00000 n 0000033890 00000 n 0000034507 00000 n 0000034623 00000 n 0000035011 00000 n 0000035333 00000 n 0000035851 00000 n 0000036241 00000 n 0000036551 00000 n 0000037167 00000 n 0000037339 00000 n 0000037728 00000 n 0000037974 00000 n 0000049920 00000 n 0000050178 00000 n 0000063083 00000 n 0000063408 00000 n 0000070819 00000 n 0000071099 00000 n 0000081450 00000 n 0000081726 00000 n 0000089662 00000 n 0000089886 00000 n 0000097600 00000 n 0000097834 00000 n 0000118847 00000 n 0000119289 00000 n 0000129110 00000 n 0000129368 00000 n 0000137206 00000 n 0000137430 00000 n 0000144430 00000 n 0000144648 00000 n 0000151872 00000 n 0000152092 00000 n 0000161798 00000 n 0000162071 00000 n 0000172307 00000 n 0000172574 00000 n 0000182420 00000 n 0000182713 00000 n 0000191511 00000 n 0000191885 00000 n 0000198859 00000 n 0000199084 00000 n 0000206269 00000 n 0000206506 00000 n 0000217980 00000 n 0000218234 00000 n 0000229580 00000 n 0000229848 00000 n 0000240166 00000 n 0000240614 00000 n 0000255368 00000 n 0000255800 00000 n 0000257993 00000 n 0000258221 00000 n 0000262262 00000 n 0000265796 00000 n 0000265848 00000 n trailer << /Size 121 /Root 119 0 R /Info 120 0 R /ID [ ] >> startxref 266108 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/merge1.dsp0000644000175000017500000000005211702130733025625 0ustar orlareyorlareyA = 10,20,30,40; B = *; process = A:>B; faust-0.9.46/documentation/faust-quick-reference-src/images/split1.pdf0000644000175000017500000003250011702130733025647 0ustar orlareyorlarey%PDF-1.4 %쏢 5 0 obj <> stream xY7+&P YY`xaK .rasWbwOWǙ31/ӛwnys<̇|0 ̈́a,8k,2LY`7ӟ| 9[9 abVb)q\řKb4qxg\K|Ku$RNx>#/~,H!%lN=%R/w2H4^jpK1.1Zd:^x\EF'3A3?|Q}8U[և7,(ևiCKA 1lپ~f j]I}Dq2A1' P=KH*)*YqꡖI͔BBBg MTZ2#~GL^)hT7#`Bĭ%ZRh1ddJ9qNWj$T )W8vG&jVq%Bㆋ=HrlB0S?[Jp<0Zb,  6 ښƏfla55 3VCC8#{!#!aHEr2Ŗ-4W)nhdZGw$ϸ96 eC5nT %q%7qׄA|޸oLR|PR؛7Kuyw(eԺGRJA'_ YYQ?tt/eRRKh^WN[$D"Q:}ڍ++Y~C CE|'-cNjVWKҧ!$[/8|#(wTj8G H֓k s[Try9s,A|ʺo$tϔ3"MX77B8[g]иM{fx|˸*"Tu\֨RqڄE| e\^<ʼ\j˩{Z{/%{9rN7b Y\ﴴ|4Ké*wkqO7"b˽oSnwK|(UMcTA춣"\[{o}t> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 10 0 obj <> endobj 11 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 12 0 obj <>stream x{y|Sו9I.zF66xc l lmb,ɲ@ɂICI(I iAHI:m MiLti{[04I>}{{ 0/ZtwmDfz==V;#rFLG7Mn)w{GeyErٝh*ئ Cá}$ZaUau#:}L:|>Q,7F{#`EՏ\#[#|XX Ad[ /Pⵇ|PQ$=>şOÍvHQyťi?ω52h 7+h7) ?GK}pgm[HäOQ4h$gnTZtQs.]phԮg*qfC>A#~x::p*o/H=$ x`Ӕbg=ڨk6t7U7vnZ{:;Vl_|Ҷ%-mMZꯩ[0 N^iv1+-ِiy M~!2?cji)&;SH+y"B&\i%82UDPuEBIi2 'we7ۛL=B伄IX3G$P%'zYCMBmxs;hjt8q"cXP`1'j#\^i_ܔS\I45IM(h#:IMۄcE4@a_wk5\kj,)255G EmT=mUb31J]h mqION iX|H3EڻɯܖpmU[$u˳ CvпSNMvNrOA᠘䈎v T dkiaO--]bXEolhZfmq(LHG9dGȪVGs(,kj˸A$~$IDbD9ͦ~, EZ XX5++~"O4|RH$ʹHOѬfOGEIk@C)mn5 M ,2yX*Idh<4윈"4ˑ4FXcgw[meowb 5_%ԝ-B7z@F]n\NlrBIWtjlJӊUؒӓ#_EE1ЋAm6qy$2Ky2[M e%R̕꼢6%X&ȡhE fV=5R]\mqQIdyk$gK_&&1hi>ZŹ<$NqSs]'q rcVQW a["Z3Ǭ%Svwvg˥De"U$AVQE/gdZ5A;N"H4}8d!JcD4D/!1͂Sz{ ):cȴXkQ$δH7: ⢭fӇYFNdrhԟ-^kD {WA'5@)Ү{?Wh1BS095?R0 ,NZ`\}H)8fh E'6QPh&j7IaR0# ` @ >`kMS~)X !5 k5w)8&xa4YMwtZr@vB`2T^Ap] J#0"=?H^DQ[Pn44yܞg)8!o.+.}%BWxCp].' XJ$-j>K=.Yaa!L٩r^;3$p3YXF|?_p\O9TB1=HoI6/d.\R&PP,rs1E/yT7WK2rJBK*OWDuŪO7#,WHjiXh~TsMR_]I(%$ɖ9=.萸%.iTpS4 !z!,OxH z@)szJ=A:vk(i$B V \"z|BWIGn|!s jK":\!!Oqڂis (rb6KqX&9+u6ePJRl>%J  ' B#KKlRbWp%p/6Do#R.w%aJUq9]AG3d(4L]҂MJ1TA -RԤR P%"WIBNNd&rxnqS &qH2FsNLtIDփ A`h=<rx]G]5,sXʵ-Cǐ0 v5?Krߟ OLjҹB&){H:0Y5oki~Kp"TB5PKAYup iJSM&h=l1hЗrZa%u&NWkZuvz;<;`'L>vp| an!#!6p?< #x?óta; |ޣzހN!+EC8{hJxh-pm H%Dx(\7 p l5-|C=`,%xLDLI4`2 b*a:M31 t8gc498My8<,",K ьJjZ _/Њ q6b6 c låc lǕ ;L 7 5؍=؋kZuю@'p8܀ C? 1a܌[:ŭx=oOgtF1&܆co[p]x+=8mo;p;. ރ}EOY"RZ0=+Zntv.ЉDk Bsm2 8Ã^uq8ۏ/PaE:墉CfEKQ,+tIEleA.3\rm%"nSZ|Y[i?+J\9Ce Cx.G*t'œVVf\%̳!n.Vm">/S=R#riRt*wJETW*4K{r}r}v?}!ss.[Bqޯ8Bv/ +>=áԚvlC@aTSmX%WP*:18%SJńtCKҰ<]Waū.٫T]͇gBt]ЇYf[)x2ʾniUsclv6˥%GkEkwLVpJEZ r\6!Lpz*H/Yb-vwd.ry]{|HC&Jd}sHio+(~ŰG \b喙=~.^ҥY v2W#=|!oi 8lY-nN=ܪ!?q۹N{XXyFۃ)$) z]u<5]W]Oݴ]eg tyCv"KUtIl I.K^%_] (ڠL9/\|Rr#䏃n~1Scty::~utbOyYE*2rk*UTjը6Tꨊ(P啫RU)*ŬJ1U̪4D&=8>H&J=oC: GbRB\ntd4 (lN_.\V B7qMafs!8Jxn2Vd8{C#*;l4rt\e*D9 *& j* RQ9hʨʨdKT9J1GyQ9QS+̖fDXTm(WF%VQQ{*T++UU9v߱QG#)\e CtfrxsnʘAKNBh[k*+R&bs@ x\'Ax󺤎[x|7$")?)ఇpQmV+\0[ץ|pl8~e'N}_p8+q V&L4+e%M`'=j2_eRV+e.sX" ** @S((8c}u`GPcO]£.aOP?l/0V`O_26c/ [lϝ=wg=gevٮ"SnҘ-&=ee^:|9ƯR`| O;ɝ[q:fuMdu,\|t_k+7m1RjN)&30k؅+ueeͺ2[md. .ؘ 3]ɘe0'u1.4'mK$%&H'K:4k څ$8<:; N&WEtk#;!>+{#]} 񎞝fEݑ=m'fˀE=`(\(^("BV(I LlP*0 ! C ="9ԃ`,$u$!Yt0HAZ'/~7ہ[3h ZAiy qiL,;CRssRsh\Zʝi_I=sqvd&Fk26ZF HJu:R%`5c ,6Fj ̐ $<xɊ}}}dFi龟Hɬ-/y|.y΂A}Ļ/m9xx.Ƹݚ^? ?ڈs%{f~֒7pgT'&i?fXv31?aVArl"ؒlJΩI$礳#wOtw K?MX`2!31 SKkՐ¾t “Ɵ eaޓc99l֓dܜ+&I`qQGgݟ@K;6ӂI:S Γ~7|yٺ)D4.AVYR,LU0D6YLcZA[v۷.Xp$ʱXXgMFˉAd:S -M|'9^Z= 37X,B,]חi)+37ѡG0'5i~;d'叛l O9m5+WܜO1 NKpl>:g^U7K 11Пgi;Ro )\lچ})XZgJCp \Z*JeXt OVMW_R;(FÛ,]#[o^n ?w 7^]8gA]nנ>y]кGib v1n0usT΃9Ohڞ4.E\Z˳ p1⯒tL :2ҹ<}1U ӴgD2XYFS3 D>-5us&a 4PՖ|n߷iS2e&^Sjk韼(Lr΄,9K7=mcVuY̌$d3gIxx).VKVLӪ8 ȁ8dz*-N.pb5w<iYøRH nL>.eFBo̹֝k5.͎ec3ہU)3fqskS tZqΜ7K)7]$O%Df]CN6aPRl;:t 's]]tLWqagEXY~lnjog}=s{kbnarY}uu3&4YuNk&?^,1l]9jLt䡃Cf4m`L\XlLTStM'40 Gc7< ~z:oO0>8 qdˍx^%:3Ez82u%(NELͶzoOz1}ߜ5ĀgۚfT?oa]{\7؍]LM,#_5Y ȣ״zgmź811ًƙ&#1,T\2oО xؖb!:fGG\QDgbLOf>O8w~%iŎC>w⵭8 ݇~5k/\m@o57K.,4c 9cWMٓ?4i,.&;͚M{l{:G 1[sh:`5xjFkg<+`.#YSu-#k. ^"_7V>#pѠ"uP#u똱'Tݹ:6}!#))[_gH[aCm mF|/NsMt:P--v)o$l t=H'K4*W}}/g-XRaEɜVͱ ;]N&-9k[̋r-Wyffv ݔFYzzNvJ<= E0 5eZ|AtjM"N{.ed|hd=jR fĥͪ_S=xikq|cKEjiyQ+TӷK6f`^ Y:cqgV ZBjY*۟@j$KkN[ԲbL _{b4ԢS܋3!ccq'`+R(.MMjbrVStg8Y"+>sϽ`!Ϻ{Rdo嗬 oܛ3)k**\]XVK,i,5Yi_XV0Ϙ +\y{_)A<|#俀Hw v:Og] HIMgsRGxUt[_4jCZ>stream 2009-09-28T15:30:35+02:00 2009-09-28T15:30:35+02:00 inkscape 0.46 Untitled endstream endobj 2 0 obj <>endobj xref 0 14 0000000000 65535 f 0000001846 00000 n 0000013051 00000 n 0000001787 00000 n 0000001636 00000 n 0000000015 00000 n 0000001616 00000 n 0000001911 00000 n 0000002012 00000 n 0000002357 00000 n 0000001952 00000 n 0000001982 00000 n 0000002589 00000 n 0000011660 00000 n trailer << /Size 14 /Root 1 0 R /Info 2 0 R /ID [] >> startxref 13198 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/openmp-model.pdf0000644000175000017500000011622111702130733027032 0ustar orlareyorlarey%PDF-1.4 %äüöß 2 0 obj <> stream xVˊ0+t^Wo0r[!l0^GI'd`<.*c'g~?5T2]W|LߴǼ~/S1.ɛ-~]LEf\Hf$ռ4O9]-ʔP4)1QrH>ngΨl̖hٗH˦aHpYT{Aߓr)\hPF<;kr8u_ K`Yd Z~ufiQ."j>EFҼ9p vub}H,J+p9롊V4PO (*gb'eQ]t+'QR)0n,^,8އBz1DP"-'|ֹQ[*ߝ%(~b3O'џ_1ldy<<^f-ifQX]:*5㷬/3ZN~H;}IT̄ Հsƃ!'/*xd`\ޫ Ƴ>2̃&Q )`> stream x|y|ՑK׌V4,ktز,BX#FȧHjZf<3,6$Hl3lv, / I 3$r$~3نuYO_׫W޷Uw a jT}ىfxFy|7 |zc_[N@7?M z;o0dذ?o`0UI~{.:~ڠwx}!uPؿ Y7-t|[~xQ2Mf1lv:@ǦS<&8{F<~ 8n%!;aҏ >، > ,$bx$Ryx 6[H*C64ω+i!C @.4z8,~$p!,p P`5lAG_I161vO-& { w j2C0 w:>$q$%fIwMTA40ix~oF'8v'pF <*b<`#t*Dnv7M?=9fGz]͈KkLI!OV M%L2ahwߊoVJ;pkx #|OX p kZuw=p)8G =| $RI. ux"kB ?^fGIZ+צazMӓ? ' >hʈy!"ZV-> B:A,xH$RF*H5YK֑ͤL;]$D7OgȯGcDa BP& ~a0!<"/ׅ? _bbRX"zx0$aRT*t!p6w o2fи8`q+hZg3]i a3G`?I\iG߇#O^1Mx'$1 B^5 B"mBd@ >Â$8ɽmJ&=("A5IN^jǘ&ݏF H |OH=|h&0@U46‡dR>9EvNBl"7 mp 9 _ 'p=JeNma# ns[  )T3 ѣpwKpl!UDށR8^$r-GRpP<O_<* Cp.ԸW'N9NG^ 5៊]R6˯#B0ο +^0#Uftm-X.ǸcEI1 ``Rixכt:_XwA5KW.ZXQ^V(YP

Ⱦ"uG(JOz9s#lpiv^-om~[l~y9=kՙx+;8&{%MNJW< R֭ol|6V)Y\qg7{~]R-픹)狯-x&y#i-T{1Ζ7 MP|6_H ڕ 42:$ij.Xwq/F&2fMgM\[f -dr)R>Eb&J44.:OPM|uLn}mө45hnisn@VA/MG3L>-2q(wG L>hL>_bQ&'L>Z:,4eOkY+in0]kYV'mL,!' ق_s؃¼~BoV/_gkOMxa=!eߐiiFc&F4r*}E_}/h\?UP5|5"4W<SNhBO>یr+~q:ݦKdPr\]/g!*.]?"*%{Śx}IVsE.ڗ\*{ 옔l'57 }z%Ð !Ns BWJ.7"(2zpyM0v@յ ;:Ӆ^f9)"~zR=2a\b|& CE u ;ibwbn#TjB>!3iGtc\6lkj;NY$*jf"WxOаA IQ'os=w<._>3VVDׁq4k7b+oDwTXؐk7lڤ$u}SȑB3+Q-|WN?\[:hPET\̣n\qTZCR1}Ӄ1W0`hr>c\/xxL<֍3 bP/&%k"&I OpzB¶Is>*?*YcrDYL@zʈ\/ Sm:#?3 O$s,[KuVPiكݠ@~Dwo9&`ܹIһ'傠iN _L/~"^szY6z&a Fd5.T#xg}e,'7O\|r,oN3Z.e.n1}J&Mً$$v~t|.E.ҥiƙ2p/ ?M'42&4 ,a|]+,mP<%l) ry7qWywQaq.{|=^̒]4c"NZD|lksɳи OZqxW{/A{OH {9y %>=s1)b?2V1KǴ lwi;agofkFyFp$%'n?j~)J<r\[hrw9zVx%!*Ũ+h(8pY?}eXol zⰜWQOL0٤z$Xik3̌P~ n-a,E|5y  ]|u #F;|~_dG~0"jW Ȅ.h}ϫÑѰ'ްPGҮa#*B:v@ހ'j,3kp@y}_0>=vG"ӐH'eYO-]x Y;?~#Q ٲyCÆ [[Mu-4{;" :X |-+VÒa-~( T`,?~ZWH׹JV @GD)L֏>FI0˄^v$ХA=;>N|R% \S4T-#G;#SL pP"\yw?$΄bN ۊ\rR~_όte8bdyGv}n>dAHB*8ajZhD:'w!]XLMC Bނ9b>/:9&`O/L3X[yHgعJꕕKKWl|+QVT+Xf{_uyTOC<,c&,̎[=qI%_ɟ˧'S_\~r+t+_\~r+_\~r+_\~䋕)~LT߫ѧ|/by_Z_DPY4*딏\3e-bc؃2}Q 8N]¥oN<5'FW RQ Vy+.*=\J|Zb /+8[&BH+YD5\XZq?N?@"E+oAW>칸=MeC~R~ybxzVՆۈ( Gh?@ @`+((!BW@K1V.|z/hjy~/ڳQc֟=fOq>"  ѯ2]7~1 =F ss 0 :$2?ڂV2jB w:P`#Zvh4D jP&vU<>+Җ.eRvR檮pnsU@A0pTZpQYSPSXsT)sUNGqT9ĦӛlR66$Wu QyWJ'6g29Pj"@1P6#âc_/cƫVl݈8 !Q?* 선P&AwLv4o7AWY$tEލjj1\J.Y=GvVJfm4 1`gDy(?-Q.rMhgh_D*đfgw2ϕ^k־־is(,QZy~+-,v̳%<ٯͳ$kf2nQnbW-jaf\(\^7ϨϠԧ؛TI,^1"X"^]j,^PgN/Li[l2? ty]jVKOp0hS8$f~s}xf<Y?/~;şFuG؏P+'^Qźhy=T qM63d?u`ws9%\˧tS,r9JR Ew~RmX.4?x$7Wqx<)dzFخcx$G$cFWbO:Nw9sޣNՇK_pv[v⧹ԃBwkUM # ݮjLJsT9C5 a;/᪔C'0bPeg)iXUl:lllWVJlmmmfJvJfi)i)))%EJ#s"˹L(T)R2~D( {'6CnweFjl^,j%V5Reϴna܂夛rOce7ݖ}7cjPc:ҶYkshv_MNMUYk/Qe'h'gA-,hUp$1tpןjm9ɮuotv}}8KAQ580s6gÂm`C g΄yF0ua jؤHZ$-lCXdaӈeaHϙ R\Y* 0TP)Ot; uZ@SZ{J![Eiε1;wԖ.N5wfWǯ=Ŏ] g9R}p8!-BZ6oGc:V펹[wGԵ2OWU>QmF[A>&_j?8Dw\p(Eq׋9ǛhtEѢ|nμf ^ Ѝ(<D.qE<*V:znvo1ڊift ?\!WQ#j[.bPЈ"\aE@7w$\TDx`-bSX8J0 Lâ`/H endstream endobj 61 0 obj 8765 endobj 62 0 obj << /Type /FontDescriptor /FontName /EAAAAA+TimesNewRomanPSMT /Flags 4 /FontBBox [ -568 -306 2027 1006 ] /ItalicAngle 0 /Ascent 891 /Descent -216 /CapHeight 1006 /StemV 80 /FontFile2 60 0 R >> endobj 63 0 obj << /Length 241 /Filter /FlateDecode >> stream x]Pj  ws BٲCh0%cy]J/73 \[pj:&\堍7X>JOIE\;;{J$b8݄|  >/co\F`,\b?:)L?ttB endstream endobj 64 0 obj << /Type /Font /Subtype /TrueType /BaseFont /EAAAAA+TimesNewRomanPSMT /FirstChar 0 /LastChar 3 /Widths [ 777 350 500 250 ] /FontDescriptor 62 0 R /ToUnicode 63 0 R >> endobj 65 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier /Encoding /WinAnsiEncoding >> endobj 66 0 obj << /Length 67 0 R /Filter /FlateDecode /Length1 1493 /Length2 38721 /Length3 0 >> stream xct].vVl6WlcvرӱmwlN:fǺ9}~qkΪjV.sWcg +3scS?fn/+~+WPw!9Z[K3 +gWK @lo?.n&/tu2W\s/>+~!]c g _ eVp2r1MiԬ__yc//h h0v7>ۯ:,]`QLQ_t/9X̬GKɹi!^\4_H#u]M]ݾTp?o O, +gWߚ4W-\\_j~팿Z+:,,_}icnOKۛ;xcK4L_Gj hz*fk`l/ה8XJV_c;+[ޚVpp3viW㯮j+ڴr U{7̀ζV@%fj_M?S`aMDA᫥K  =ͣ'@_+*no`feoՈ_il6'dpsp7 u{+'7k6usv߶Jͭj zMqG g1ҥ6_r|WDtlN;OM2v5x¯-+hs^1\=k(ٺm:TuQ)0oKXa5APCR-^>coBeJqVzo7oN=:~~7I"!};/ݼӓAN|^h8̦]BwQ*AA-=As=[D Y^&pqݺ2rPf/m1}߁* iCkl39{;Nj#מ%Pёy 42y$0"l[I0tUu^=zOn&{8\BV/x$m;UoY~\*x{q!҅q(~:!=s:M\{m S:u_[KڅPI"%-SOCjv +;yAu9/$8z!R|շSK:D"ӏEOҍey 3֪/I~=tZ\ov^n1xѴg<hŃZ 9 AhW{&; +|=19@*|,v *+ֿ#J|)EAm .K;U]L$M2Nm|SH>c`%b$B*t^*·;* x#Mx2&bTj_bBѮzqEOK:j Nkx'YEd?Oyջӡz:NBYWlLoiètus[Ta-p 13>=pg;gP@| kMCq(gB YEE>'Us$q|I$MhouP|[{A~ZPއ"D7?m1{%P~SCDݍŃ !*4ytVNF)U\w o嗜ߔX-?PlTeh|(ޜ;Zf(uX)átFT?:.G#FOt޸1]&4 e 105$C1!6lxEi6/wږocmcn%+!!:JXNonuS^qg2$ gtHa5R1 5 k Ι{Pd 6L0$7[tvԕ P/'LHz`׿oTge͟㚛2# Dۄtj} =h vⲘgz?g^!Y0a"H0Oz 5Zt Ih-Y6(]} *ֱqr@2 }CU,+[xmaϾ!p־2 $8WQ"?޻9a[#Rdk\ha(rՙAL|LUDrUWry^Gv'>\+)iI=Ismv^AiT CQQGc7yKڟ~`g|^mAmQǚF3HMaiD3#qLcX]NjH\&A:2(?4DW^McrD~?Y,(U'/W%g`e1Xwy}QRa_A0/VCdAt]SE 8LX3v20m~/ǨrZ0<"=u|P3Cz 寧bD<iIwR&^V|}a~~-Yros;(߰NA,ߑ@W5K! WFhe`i*l(BOI\V5~9c q/5!$.VGS\F)LHSQXTv&Qb>ѳb7^jy/\Ÿ L)"ѵpH얷1[BKYֈSRt9PϓJ6O_Bўrxo=]o253k\nو~Pacc(_"IFlzEIETVPR]CٛhrF3BH8mA43 A-ЉmStm0z4ÍcD~Jc+Lp ڏA n7M3j,fu0Ym\F\/g&܌(7rJ6H~T$ˊ׾[5͝ӫ^ &?0ᴝF෢dlU%P5p6){WZao 3a@¬ipvy[LYvtg(hګ补"w致 t]D ]q@wXXqtd~0l\'\V7͑L79#IN&^fUO˔FNT%K Z Hh :JbŦ,mw%Eg؀Ma9v,L s%q3|>3#vDžz՞[͂}dLХ; +ᕃ!4TEFʻ?)ߖ34Y{$#Nƌkkhq]k~e $#Kl"mmGXߓ c%0ۭ7 S\8FmH=Edޘ0ftȠ.fW\MPBW~\MRJIt"JTs"ai>'&FGKr$vd2Sb[uu`1q'x-Re1q>{&μ6jUzRIM3LNq*O gJ|dI*qN[~C2i: p8 Cm qvn_^5N7oTJ0~z멛mt}VJZȵjQYt%ZtD&\VBVEwy&CX2E,>zgGh?ÜT7h/[r $yk"'/D1)AQۅQK>N/NilY:c+= D/46 TfkQ;kzs@e3t#xl. DR+_*NnVl#겵3v]%&˽t' ^g GZq(g0o0z{h9xAE)9\l*HG&8UZlUjƩ2H&pYӈ'hb !IOu{P#G3ѝz|,9v tDaPcC~Mm8ATY%%c )f~(<KA#S14AiqQS1#! j~HR# PXf` lHV3(Xjtи591 Y-l3gs1 ŹWn ! %xp}OUTYV<*ETwGe@A\x].}m:h3±hz++vLN%@|A>4YNgYFbO ){+P &ƨH;۞ysY~f3s,7f2<3"zxp)d[Tʜw|EK'G'C(X&tԬsbū"q`{M-2@@xNmfllhWiFg ˱4#z礕 v^ݮ Ks;Bn-iG?5>˞AEbǏ\9M4:e*:8Ft06!~B8J/nٟÝѠk]/-42@,>χ_v~).}1Z"c^=`rđ4292%aA _OĸE>D&9o5;Ϗc6.7W?w(ff*6瘪>gH'ҼSA4xR>LsBm٠ɤ\vKn`.Խryl!C$E03C-#xjɏ=R\Jh}6{;aK@95D) M/4Bb9-wޓ"l6 @mf;ඟ@KE.깃 ʠ$eܠ|[nf0ƑF !L8S5 ,Bp~5}: ⼥0w '?tw5hx a{A.< 6/rZuٜjĞOICj֟&v_#ݞ7}5щz}r])-BHm7ʼnt,DRq't^ÍPDI!΂6GRG+)i؞0_G;)8t4\Nh=5FI6;zX ꠣbe4V(ϤNޝ#DH%.aF~_SճwWD| k!{Ү朼na~7(F#DN"WƮb|F&Q:jKw>R(ʩO7nɉrAOt #!l'Ю_^d0eDz%59l%lpts0,zvyL WdWF31Mܙ}h)b?nƄ۟jMAh_:MvbGFg_FఴSkUPAsnk$=fg%^.c_^qb*)w1R.XCd.fw_Na bꁽ㟲Ğ}Rq"Cٌ\:9>m(u$fZC AXHv1)%Y~Y-j gvds hIBjBJ8k֗ O:N@+e_fe=]j[KkcH@Q2;Gae=i9uu֍Cxkf͜)2\RG`6HA-842*ͤ+wSK@:bux2{L^cBh+1Fa:?j\L N~MKzLHkUۈ@Z6vg=ogEX'E6si DC#ԹA_RM1OTXuǾÛQ2^}˵8-gry" (u2E6Dqnr|v.-mh|?PrܚVkSق9wiha>Il cJ4[,c Hqvo.dSڈB)P 0g%3$f-/RXb4o\@Vr|R-BB}Ihb'D6KT% &jt&>P &@{Yw[SL GJgdžgN6hq sem 3ḶJZrDa=m4s;EQ(ed=8Pϰ|U{[xhG%xܜ2>Ku@ԋa~6C,F3捝e!Ih#EFCut٪ C CgARf̼·)6sυFk:ICW1G_}]Cl>Z{Il6G U:Uշ:QvC0Qyx$0ڙLAUG?M\Jyf<՗:v4ɪE.6ȩ@7b|wQD># ^MnmonPJI+inGmNߖ?4@Uwڴ@{!13e@s7M lBA Y\X\ ~$Ǭ(sV>nR&SK K}UzO%r\jhAJ 6oqyuFU'm/ .I<B,m~wsMbG,ЩYD'{4`BCxlDQ Bﭒεdj5!)?{{PABq ( W֞Z @!<i9b\ t; ;Ȑٴ:}w]m *>f=[R;frC 1 o@:ngq~\yJ78>SVSc9)]Ioͷʱ6}ByT{TֻR:Q ñRiw_*9}{uaD!4QO]>ZɄdAM^L7Nӳ5՘$:mIkv 3Z+;cT2յ y jv0fQ`xp \ŜQ3+072Nȥ]"cvi,Xw*%duqfZ#S9ۥf}m!%]2'tN9/Uzo'%F6;CaxFOzgZ>P$xk_7(ku=>G̝ E=UppLng`~Yfe\;Xg5Hg. BB3s+XUbޜc DEqeT!) KSKhmuUL[6cφJ&gߑ-ŧг-TJ4? i=V,fPX+Eil0n~2i*<xJ ԇ*%whq%nnb$Y 0ZZlqkpĜcKڎlDQeRN v~umR%V,*Tmv(Ouٍ|D蝋PѡOrlo<24u<#?Abʶ eNBFb),Ȯ7I<AFۍ1[֣x=|nR&ڕفYrʏЈ8}H+%m{D7Y1N8&O"_Y lslz(f%CA4\0n"[[Bz٦YƦ%)w> { qeT 1tl,Y`kB 20@}Sǃ̞{=8T:5M: DI`X"d/_lދ:7y\8g[Yn5%@xҠ\p}('<Ҷf`WvFڱ)l#c>WuzHZ"h1]+k^@H|EO#t62&yiSLQhm#E|(^=XUXa=N9&,mԠ *v\[y6Miю` i] x1K6.Cs|=\vj_4[wZGf L  C.\\"ۅ$G^0KN' ݈@`tg{ ?Qn%.2&͕ƜP 諜%"8ێ).L5B٩eAlP DqI"=#zlh,+׶l_i-gZ<т.39657KȜ(-x%aOZi3Xnݍ c4:+)dߨ֧. ^D.]⼯CRAm?Շr~lELt$Th0F'L NR߉&EW 0m?^'ӓX IVlɸacVOD.ɄP`f6}fojo Fy`% mMYqp ]|wVmWmVy9# !wո({ JXyH.&21𩈁J NAk{" }^#gLLE2#0KUNu]7'iL&# +1ӍIJ{'Fg5cnQ0Icb'ζ )]E|,!$M0u;I&"Yߐ!FYlE)^^(OEY*F2o&8㎉\Ea .3 aKߨ.cJWa~rs^ {JI.WvZgEӿB<"~8TQO}8֧MΐlCyiEc8QCهTSs.VE̅B&!;ɟ =\WY:^HNMAFB+fƻ=RSYe.q 7$Yw@#aΉT2ZJ|; A/orծ Cv$T@+#6ly~}.߸xe h^$TQ%?&'.n:h(BRc$BQj͎3-N[$aa1ni|SPaϷR$ۿ۴ܻEgDy$+p.=h3r«[R..wϐHϡu;i/ J՝t|*[ deC5u^bC/e1%˃k@cX :kPowy+ #e'pkSo2gA6̎͡`9U7 (S}!.od A y`12"U /1ffUcp:/dOǎ\Iă|*L?Ҽ9CrL$qIK2Q Wζ2SZ6sY#C :"|PrQ n,X-rdcMԥO,M-)qYw}8e@0z`/L5UrF;Z7 6|㉬ɾ_kNnY|gz}YQXq8ЩA -,kxPmՁLr<ˆs, G twjG'R)n¸nr3o⇢mI&In\JQ7yEiίT"cTdısqF1:-3][ؔd햰|vf |~U׌B*c^]QdMo ,T+[@H HnkA~sn$2suI_$%9T$ƗUX:p{ o-5 S(L /?@QDsQg-Hr6i/";>kaLMNtf?@0 nKunbL"fc?^Qڝ}E vA^߃Tܚ5x Zy~<,Xj['}4%v3%nEI~V{݋$ZF4^ka^%,9ځsEEh׶D*HTtTȫe`m,vc7z3mx :WR;HdH}F&VC!1Wa!#LewVWrpgڀwk${)$#6V=Vd) N ָ5}b=t!)o儰uSciz6b:-43]_i11q THЊKQ]{ th3T9g;܉lY-ݏU4oa}8O^V" n_鱦3(ΡW(OxmV&Xt7QS6! ISql~T09`FHb&S4hG3]S8ߍB%KQ:Z_idնߗem&"jw|-H5PܔG?բyyɁ>YXmVd!Uf!ѧc_,G 3%FLAA.Wj?Ys4t4E n=oGK~:>ԵrVfHS#\߭[XE+AʋmcwYkh|ЕvُLu )t)Vc1A9GRam&0rZ幣PF}, ;a5e+z$I-q8ShI_W)ZGZrÆEϦpmrxRYI^+K2-Jeɧm+Qw"Kّ|*uKVe_^95jܵj`D'svTZ8cI;_gʉlNZ )nzlVMe:tz?+qú0\8f&P_m'JU53pݣtʁ[ $.Ȩ<ǎ=='+%8rAZ|RSa2]=SkU2g ''X2x=ju kgg{ˊ͊e_ g,WP3.}l¤YčqE[oa1w_ݤo~tJ ?{Ĥ&fD(Qnk*3X>KRgB&@ )ƦFv=LGǤޓu0gIDۏ \^Fh6|nnxAv= Qy"'V6xј w3|sz'P-Y U.,n.nI&zBgR>uȠ'C?9 5z-LAx>+_j8'1$i\5[`_#~\6?e=0h5;OkޣcVUɜ "b^O3r0]!‘oŘz"@HO帶2h@( !?V0OHqbD2{f|'!3?af$ K^J@$YmX*hƽ9a?,O< r2.p]'AoaG-Ƶyfx/-%Y#E[ ۉ[:'7x Q5y0^U(aCq'e_'.`ɿͧHyi~.w cyc t4A/\+hmԆwN4x ߴ! =G1bBlJnjgc\pmbmr)M6ZD1iU8bt[oKƿrTg0-ȏpY'lWzoR^ju-VWM{swڈ=gbdqd GS_*#.F,hpgD_:*o, C3& VuALkFBUC *;iݬh:}ᣂp%y3tz&wf沓< %?S\vVvI8Gz٪' 0&C@vq)>O~Im3BnrĈQya TD8b[YsyL8"cvnqk\z;rec!t9J1?'J~,n^|i\H 8$l&*k708Rh@#Pvⓚ@BO}RTX l%WgE ]m:ke2m3,G[< [_;v2@1"V7X_}Ħaޣj &֐*')crPnY3mzY&%%`d=fFӲ'8IOI(m&ff-s7Wʋ3L9P{rszZ55`WA1J;-)6Jsh/@[hv_|9<2{P^K#\תu2mT7TTY׻fq9A?7Ze>KWce{}Bf0Gx9)fBYSháq 7}v\ | 0Nv90=. B_q~h'hOFMKW(:S r` ,,(:-+~_M x1 u|kE1bA X15 2fam N|M..m9= )\ZNO+cÙ3IFᰒ\Shr膲˿u BOFTjNn|s#fW4Cϙd"Mr"\R[&@T8[miObVڟ;VB ]w6OVA F1ZYBΜڢns/둖$~n#cNإE9s'Z0,_ٞ'd8(kTϕ9:2 2rkqgn#w&"\i9n@DzF<[S&ҽP+ Fɼ^~9> zG5e|օ$d^b&Wf9X;/ßH9q^冠a@~tz@]UP;_—r|T &o(m7)1J4/۶ ysR+_jԻٵ] 0!R?RJ ]k s?R%M$cF* KZp=RH`boD|M0fnֵ1)ݻM.)WӾ kñRxI~b ~X9it≱ɤ~\=ےN0Q @]S(="C k%, ᚓv/R?DCLХR2b"~RoZ2$ .Dw$m2x|O&?zK{T1ǟ;Rg[95FZ]+jf͸`Qx#o=G47%lT$-Ǽ73Ne,EE-:ͽ5ޭИЭB)ym@5\L[~ɾ!r&-8_JûYs.bV1> _C]Y?syEXDx#K[ 0a&S:wSGmǘ,:Aep`T" =oRG)EGg I̥h'Yjj]X*tPFUg1mXu KP:2M?}+Z4gD%ݿ!3#>,&730o~vtQur{&)O|ESHY OCR p9`DTxAq\ >_h񐕰X%T/ V%A+H5Cu1Y rPZM?w^;V2su~w?1]Jw=M -N8l6㳹_9PY-Du?Y>zrl;wUMu[6vu:!My⏇k7="pp \T1fxWhQPh<ID3H?@:7\:ϳѐ.pAARLKU`K{ 7rV]^5Zh.pHQǗW X F"MW$A"=ɼ|)DR-@7w8 RKMձ7wt;&>l/+ |37v4"A7zS21m.ؽXPBX{(+8g[6%$1LZH{ho L )IKPec[0b^9rCk^$x?wME˽œYW8r4!G2Z qLVݔwu:E@S G~ZiD-u3T+le#i^LLH ,t- 2 &us)xǯfo"8 *SvzvCye([iDL\T?dY4%K@np(չX/S2۬*o:P*Go!ﳬ ƷtfVs|큉պf%aCK@ZC,65KEVi":2dQKl#Xۃ0-JE (p+kE!RPi,q:yFlӓ,ԭPS&j=3ٽp AYv٢N(<9D @3:b_ SMK̝PNc}/4@Z '2eh'}G7;FB` J}V?Aߣd-wY̊ק;5iaYAՆojg*rFIوBX<"Bd^Kyגʣ:q7Npc+*Myz)RkBŅvpf[ biYbm(&"-Cp,cبR=+ۡl(I;L۝Cxk6b|TOQnFF+]Ri/UFTrsw&&`A)c!kY c/([YCsŲ`m'WvaݫCJOGڬMVPM*t" iMWN7la| '48k`$($#w;Ff3yP<ᖓ<HsAZ'ĒAi]ܱlN\V(iu{ Үbg9[/խDs`X0h;HߜN݅z9w7 i7w~&87Ƒ¨vwk)[r%TkuӁ[s[jY, :|*j@nCk2L;y5r h+GM-iB.n[h&E&_ hskuhL-ђa|R8_wɊKۆ>چ\x\NၺXX5!V6z3ef-X)0|>q释1jFb56t Sedi44cU7'Ц\a'+M`Hp"릵%-M}+ HWIIbYh\џ4 gu= ~ծiKtgDNNc񁉢ey8X'cp}4Ha2UDl܉Җ` )+v!A ^zoOɉh>1"j$E,DMѐHENʐЭ~2]V^Y}Ǧ΍;Ox6OQ)!$"pxn;*T~_SM%Zdkk曑2\V۶ByKiO+mdx3:1$$&RB(˨7}n/OaP:+fFEegB&P; ~\yĹ|6L[J螓!݊W~>tsLCNYe] 2_\ms#XX/=.q5l,sa 00=Mv/U KN]CwFcQDCl\7vHSVQ`ֿ ([ʇEB&0wf!(0W$m+ J/Ǟp1HA^2bƓeժZ^Ҡp( ƪ1 +j/RpTI1b.[߂P6b6FN`KL g/)lfYbt.w.o񇻏,]G#v TЄ# fKMٳY&N2gV"_\jo$4?ā5GEdOFXd`@vN^>੃pZCIXSi*_ /(IWʭӜX5oDϰU*0xXG4S_!8:ژWJ>Kgt_ quϢ;1\f$XlWA0Dxk6!6+ކE.MDlAl&U` ,-/.TXLzˋR2$ꚉLesXy}'ۈm ?Ǭ5MB4d`.Iáԛ$(7T_9?ps;q@fKt}۷1~0mLt5v+ q}tsMYιRwl*+p~; NYb;1ĨAȔYv K+g؀XdALOЁx1J;FTA}+"Pt`Dž89'8khdGys q$LWN7)Q@FGRқ]*qK{%>AчU& ~`vݜ'%J¿zf&VU ) 1:v( loQjyo/]\S0p8HdDyK[LD>A<1, .jD?:?XEeɼH\t ῨsA|͙,sgűњ( ޹6%exW?x)LM?|~~gP(BbB%v6i:ou=?Q:nxHhdO9: aE9@括t!wP*k]ʶTɨ_dp>YY% ;x]:>;{hG+I &0PW.j0bOW}gfdKR ?.>֧\ tz@*atg? wn}7x C1"G߇a h;:t)ćLp©^ !dA4^f.*Ye;/6R*'1~E }qܖN<7~:㺟\MoBI9qDz>k3HL9cpƑ&:>.MSNbm{] l `9`JJGi$KSI-Bg˖6=0SX[hbjkZT 5l$r(-MnJC:t/[>"dҴU KUQL_ETR;P}ږdtI?i0ԉVn8'D@~pvXI`6nlDU>-q?(1m4cޣ${0ˢNط[]rm!xB s9FsKO~Y0]ّT \z'51h in8mUJ@aFe)ӧ +EY'.4&~bOe!Hr"btdZ9a?^Bx?[9-Z.)U3˴fyFp p;;8}Po9ָ)9w.N-R^wRzQk8?kƋ+/h! Ľ6 Y `'|3&|EYU1h,YPOEeB᥈pT mkx L,VެW~1(%XϗẐűk9p]?ۖXFVުNÈR5T4 v:Ua*[Vk? Ƞ' U%L \؎m㞧*1 _ueߣt839p62hpB@6"\ևvf[.pvbٟHa/\dd9arYvQ$3:I_r? :^#@_(KtumZ#u=S{bR' "[D_a4٠ßu<6S hlۊ.c=kjך;Nv }a-KYvb3x@8uU/+SQA;H'#T2Q)x $n $ D`Qc7z$wĔ l$0!I&{{$IBYb,&+w-pSse(;q ,="q!?H0EpE ?v<~!}|$B.FT ԑ0tjxL.;I<_MC@'t'!#9-;霸AT2b eSm@s6HSUX_W[k36رJThp?媒m cZr"+t0(ē5tzYl95^J@?apa̬Fy<1/G;6`k: F Xi$FJ?s #K?-HT}oԦc#El/bDy}X ?oJbQTx8W6T%שt%pKfRJ%tڗgܑ#p`A?9hBW~=);k~~!;%x }=a}N kkv^.P)XB&"WByK;zh 7w_jb'@{8PvKW!vk}ng1 .IT4H"lf邺l:+%TR==Cg~~wUZU^lK_OOdrK$,]'\sS[-[4Wh9Zn{il7!)|HJh$='ՐT]'>3UV )[!}tRE G.aq qTMJ|Q"a&F\Qs}\Q"wFo |k`PXg ^* rL2Ҡ7Hv)nܴ9F 3A B+1sڰ5hVJޡT$,UVc%W+:(?rO]t\&_L4:uO@&PN] CNQ #-Skoڈ[LPBBWۻޒ8BjcɟTwL5Qѫ)_;I}\T\1,AQYx\K5pܒ ZL~2tʹ9DgvwʘQYSTsAk_sDf;R?uͻ!F Rsfʪð(yR=KyzxMutI c+wS yjP?*2췩a\j CxOo+#}o@ֈ#QPhiT_ SRz!M'[T+(u6pD+CW2\1hJL-Ԍ4Çೄ:'׽'Ph7AXZSvkw貾 + ܟf?Q"1E2(柝Hdxs-(yI+:u7ǽQ~U'2|)AG8\?ee%go;$y}+S_]# 8Ϭ1l37!r:ựQ82, ۰7Rh2qcEwziNqۿ<}]^eieYgMg ءVOY5:kE<2}T׆DExU΅>3/?¿=H!C9a5%U5;nyQW|mzhY[ ;.qK7U\OMCV VVFeVw!eKX5)ˈfrwqKB:Mۍ7{=asjFIjx4ֶ *; hC``jZ=7εKpT UUBM#`|Uaeyvo鬧9Q3, "Mwdrk:'''{3 VlA% ΛR]f0;8PZ4?*@=k~飝$ -~7us$BAXa\k{CB23}`,B_2Ыծ?5?"`>I/u2UG,X>2J+:I3ɰm jʓGq:G P;vvX3%%@ۮ?ıےx=˞8fK* (Zt+J iBx`/G*Mn7Tv*U@D6xvm3 WӅsUgbP7eO#WDJ}1sBp"=f< ˜$Xj,@nS-u=}"$ې#+nJV;ne+#g:2?WГJ4P`#ïTAfG@u`&!8cz-$@E:k]eܸw53?P]}BCLԸq'; E͚k/-`y<-{"90M_։7[ Cwt wNƖ_H֠1S?^}̱BOY6]tlY_.q$gz7< AAUS{E=_sYaɩ'bZퟔ ' )0G 1a=n??ZOeeiGD=T:m]Kk@58K%d_< 긘oԔ*&蟲~ZcQQaM|ǘp?q7o ABs2E3B($)  Q|Ө,o-WqtI4I}eÍN-mT#rY-,{Yy5$4 !j n&0hK$S[%K!v<\#ARRDP z4&WزM\n1- aLR JcE"$E+^^Foՠܒ'[:893T}(ދ?|yE_9taMTw>^RX;+wmTN~"| OVX쌐4>9k?.<1V3MU^wVHb)xl|ܸn9LWzⷧ(0b/f7|$tYyNvt942l\Ћ jjF=qGfvO[DK \^l< 5{5זc*0K}' SԅU4^~G'ї=595 L{,K;.?[Vk$I["=2v4VpXSgJ$k$dte!͍>ga8]*)ki @ԇ 6~G7BRu\@@ }F .!%1*n7a3d8?f)k@<|m@Cڕ u"Tcx,sTBQᩬ[OdU?,1WI ~\*^z*ʥ K75-L /7 n̚獙We؄YP~kwy R&KAiSիQ:fϠ noPH; g9>h01nCPaʂlOL 9z_ʵc3:i358Ѵ6DATϖi'$9yy(ܷ^|F B+.m>^?Z8}'ED+!k(qӻ-g, Gdپ\a g\RhBĎך+_VḰ @$T'$TrPac!N1vdA?%jt3uX]*חcUb[m4b.z :à?l{ż!HK!jarnKzrcKA |XIds(!Jh}%xyLy)N @TW(/x9SIw;+iDt4]g7qDj J\plY}#I,]%|P"AƜk)*MZMņ6=Yh-KG÷Z7T~AUѯ+7໻~;mqpI0@mY~G%n&P0k G2IBL$ҕ؋x-O'~;@DaH8C @$ሞS (wQp c9e{'g0A:?WT~N5F6Qp7pRPm=DQtgXjO:7B?o gm ߂6RRcXdWFnv^0<#*ђ2@#HRk\Uhas]/'tN Mbnu\9_NTC<=hIH1>|?]!S}9 *R"*OJCʖMw53Wp/ڈ0ȥ"~$r.Zp9@ݎQ:&/T{xFgfʕbH[mȣiJuqmͣ8Li9dUy}r>(QZLv>666,`O[Ə&i͵3{9"1*:xqg+aS9ww/J6Ҟz\(ۡZS`| vIXy:gGǩI'%͹5NI{zUdj@)YMC3w|3!0ֶe? t:5hY $S'D A1ю'0_}ŸkaVy_a*&%1ew \6ݭ*q~DKxBԓŨ\Q)%daZxh d'r(-,$JIe9=2Ex+E̫b2-TCͻ6gr*rTlƧD53rbasG0Rn.AKFl#qjʑ@*o<2m,!ӥhMo3Og0 -Z:m2o6p Yrb3K1 k`W|f`_QHi?oNsD$GCWJh^"J`= 7i(ҾZZ{8)G=v*Wf)+Z8tvI!"͙wF/j@kC;I~b6u?`B>j*_ Jw%pl: ySN *=ݒƄ&D0Lu~p-/w X"/ײSkwIkfp^hp3{) !Q% )ձD؃G?,v҉K@o%P ^2r߇ʶv/aǴl5|||ͬ\I+=8?~-'c d[YqSl/507)7ŚU;ߑIq܁z~:$_q CF33.1lb IͶ`^/p\c^WxPvyEl茀4]W9ֆ Gt\/#!-5.<8?94/$-pG>o';|FlwXNN0&߲CvӲK̡b(9;/N_C5]{Yϖm\B&S7ːS{UYBN!mzIvoxVi9!hRӪzrgh.dm^Z[̧7phtQd5[}Mc3k6Jss햲/sIK>+uR=#_DN&u$5d.⇛AsCYwA{ AWBQ#$1qr/8!4CVߋ|ds Vi@5^U4Ǥu!%偃7_c/νbKĒeuG?:$qAG{/V-;^@$R x~ %r{^A-MU1|muQ A5giII&a !~*9^X%{򄨩$w;n}A/*ut:zS~# l`1og`$env`1DTOq};0c |BV=YˬEI !v.~Y&,[35ƹNMdֹa5MqEfP*,~s;۵:n CJF"h/Oۛ%IwzCQ87:~QITl˄<^yƛ~p|Qn}F WDИDŽpEِɝFf#O<1M ݘ*qcE<z8ހD8-Amz TC N&k؋@Ko[cw^1 :F+鐎m=ѷtL50@O3=D;BJLz>!87k&Bi$+Fio >k;c1 9C@.m/puQ*]gFPW$*s,ˈp=F?t52]I8;84 ?Bs04LC¼Eaak="&Dxb[3/ՐLqC endstream endobj 67 0 obj 39747 endobj 68 0 obj << /Type /FontDescriptor /FontName /Courier10PitchBT-Roman /Flags 5 /FontBBox [ -44 -299 663 858 ] /ItalicAngle 0 /Ascent 858 /Descent -299 /CapHeight 858 /StemV 80 /FontFile 66 0 R >> endobj 69 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 71 0 obj << /Length 72 0 R /Filter /FlateDecode /Length1 1495 /Length2 37961 /Length3 0 >> stream xctl 6'vINl۶m۶m۶mض;'}gwf_w^{zzv^MB(D#`lgh"jgL@KOB"hblag+ll PrڹN&NoG @ hgh`mp03w7`0ڻZ[8 [#Zj 5@FI/Ę_[S c[g olc~*TEeeDd"JʊB"E 1qeoes ' 2S#]Co-7-@Ʉ^NFvN.ߨ5;\Mmm ;"-t3od['ɿ4(*`aeddaQ2:Q- ? vEwr?)?߬ ,ߚXKNbFo~uv40rs1uVw ?i0D-J1DzFfF68ߝ6pr6qV{$-߷6t ?.+&[(&10!ko@YE]e luG*[8/6fo%w, g5,h$jnb98;AD`_M55qrp0k4ހFP@0&LO$o`a-[91Hw=-==÷뿎t(~更^4&z++3Z8HXXYJ#Go⻵&&&F)ALA T+.P0՟X(NYɿؠaǓnu_WK[jdX63͆(-k">]Y=^ :O$6ŭtawa'V&9.7±xtkn?Sq9 % ϏR&rN:kqU{ ;b^e9DPj3otFhm@^hz)ARØ0wr6% ,ZEs۳E BH fNIWǜS#]Vu_mˑ:sv/S% pnicT ȴgl3pDhM3?=/.IDGj眔]ľăm φf@+jOԎpF >TD#\ap $Ԉ*}7L &AJ4ڝ1U, d5Ca@2 \Z/C"Ŀ!;eΪ+Ck+h\8hJ^l!TCL%syFG4F,TOzT]2o⛍ r+5 ?L@R TwLfٮÈ2a&Lӡ8nSr\yJf+f"yN%0aiVśfrQGe*Uw(Ee+pP`ٱRop7Oxˁa1b'{B[ɶHu]8 2BfX@k;Ri Ny< y/#XS#' P$=_dp%ᢧ=EQY$Hnf?af%q芎E;fBsp&-|do&*4WOO@8[@Al4iJe6S\Y7r`FBk}ssʆ؉"ּB~S%6J%KL5D `anmr(,t:\eQ_Uc%|㵗Bty5c^!?p8M4Wls'++t&Z w^4JxO''%tm;oje+5&8 {gЭq)ĔT I9Cao2<35av=(hS^nZ-M-^]oj^SKN /ѡ`OfOUyM@O!E\K8?2~ހǏ6O#щ^rA K$DKxœFt ꜠Sz`Q?c"Fe!nXm2nN*;Ѹt9hTxN3.x#]PRP4qoTyٙaJقxq\:(KgLa6zLIYy'xvnn@a,UpȈ##BRxcOQci%EI*9qb]ɕJ<;g'qRc%h|m뭁l "$ 5׼)H,6Z%G2ʲ,R=]G!Z ͫ + GINwG氿?ƓBӼ01PRy,AZ>0+ 3`)/2|Evv oFa~ݡ W)" :xf"wq9TT9;Ӻ7q`JۆZ|pK g!ۈAK"#>b!*}%mIAP{lBF@O8i$wqYFZYe&at 0;AS)sw8'vM9b"+FG/ˆ m fQgq$ YZ/&qyXia:Q-pYEQ;[^o[t+~'%Eu6ΐK$n\`Eu"!1KBjNgP)/HFAEKzPHJYo ND_QHBzԥ0{w"8O_"یzҫ\3*H:KGYbw\WA8A,%]myv\l/}lMnͷqtIS}K?Cmpc%v" LOT ;Pt +/7 vLJc}E lVu`WxE'3ok)u3gV59υ4IUKUq;-}er8eaLED^p{@^ӄnm=OSFA'} ^ɴewh "̹g(p9{tk& `k>i`jjTVc$ܰs46 dqz#91o 2b8ijv5ڊǠ$r_^96̦;sʺ[؞sa~gޒs(EzKb~p{Q.T){\_x-yX6ܡܖzWy% sY{]N׈˛*>.n` ^HvRr'.Lܽ}lI֖þ ݜ~9{P+$;SkN?Esi }޺ RaWCצ.t]T1%PeԾ [3Z$rքq,xJ hdDV*lx_aod`vDWG^@"qA=:LjpA$V+?E4;} ESj^jO̝1n5P*ҘRۋ}T)?`'xhkC. ѥ>2gj %z.8酂;~}1)[ .sڳ1srH3ɰx0<1z,"J m:(?fj!Ho{,Vsvw4~U&2/Dqf[ĵb* ɀo\s<`-b7sᣀ t$ Y$aqoc0(EqZ` p&uoXwvE\p=x4eoY!O:]` Z̨sHBYOQF&Slh[3-GM&mtgCbznᝡT 겹&*`Red=zPX"9䥭zO@=AQJoKRd^hlٙQ)`$<_ԣmK)Cv{!܀*{rFn rёD=P% Wš7DF'7|{ v^9?ktjCͧrrV0K m*TUN*.rnI YYc \iXgI&?^ryb'.B,hjFn@"* GnA%RH㱠+c>xِeV" T K)?o 72wj!5X}b J_xEQAMK`n.ׄ7R2QH u!H@1}pʢ A~D "Y^zih{ +SMۉKDu` " nA`, wey ҒH~KAc7;XdC:Pڡ`A~Gl#sbRm zW\GZ$ًICcG9=DJ@W_n9u"<7 +%aYC@pP$cqT{ch~ ! e`uߡ~IWkmNwZ.N~ Uކ~eJ;=m͝= d?ACPIpR%M,=WcDƅ,-\ yKhdIb#p_Euj`#qDpYƃΡ7`@D)N+?X|h~%jML,_[P]V2h=S둀_XEřfd FUօ0;${`iz`~r8E-mт=t蝻~ ?Vk5%=ЃS>Vt*M?q)0 @CsNn-!`-jY> oNU9cG, n6 &2_NE`dqkᨍLW<]T*y  TvZ lh***#珙8,hWwq%rڂ)W_tJb\eꬌ鑍Ji ^s)RSHڗnjC*s&:/'z]xs)Q@.'|)Ϛm%5 V<S= ,}Y$?!gELK9p5и{@H:6}䶷^Fr]Nߋο6BӇâ^!ߌaH[ЧwK*T%l( 4W=k7E"a籜Dsoe/Qk> Wo$)r<8j/buDt]HzQ8qìYCh 8qrP튥O@f-BdAv޶h'G$h?]]sT "KR= F&M<=OԴkǒ@xeԻAus$?7J8iн537ʆ.x{s}.N_|o"|g(1"dTAiV%_g2zq3  %``o{2&l0RB_F8"8 uYR:5<믴ZLjzkcG%S0"C1{m:v6e}Z-[Q+L> J_l RK}U8zi >y>xR.d7ɶ^R^19GYm| H[mNemk^SsD JY^Sv[ߥeco_~Uz*]wWY-iXxe&dF@vU P׸y/;}碵f҅1^7goƍI]kFL6,,يpi b\,n$:{^@!W)wv<`Q: ߠ A`c~2k{z6WYи]:i67<ĪMI=!<ܙϷ@?j͌GMs}9hmq>lxƘH/hfVI℺G?ȷW:$4YmO ]jƱL)D#׾lWĞ#pdw7Ņ^gr[/pW/:hz.kj?U5U)V.'OL{A5#YRP*q. Gu e6ၚ >v٭bELc~KF4uidY:L'˯gg7GQ'bI=fM7^Pkn ^* [>qLC-vSNW:YNj&4?3hG(Iu6396Ab %O%E|=[,ъhY_Ra$7|Wsʘ)ۉQI_5?Ho#, |&JLY,Ss`u i{6SCo1Jr ~`P'HR Uس=L5(cU >V,pȫS x?;$2i2 qbQDx;חہt|9z[sF<3S6kަ#Wsmǟ.XnE; @=VKjS۰K\&iU-3Cjo4ojU/!Nԯ}HahZuqNfcƦ"}ک#'Q^[yKX sc@OvYIO(Pa (z*-`r@(n, ՄV(AT b91B 1&2F$!Z Pgr@I,@_MAoVc8&$9#M0!M1̫7D(o5YwJBP/ HKxy.*[Ajs1*sn+=E`i,:^N͓#yuFz, ry#ēN"2>,ܥl Eniqj\vGvi`aM!=ۋ}:dvg=f!ӵqK&0"OܓC2BSH'[-#xf3pH?..zoJK'{caISFj\@T |V1#w/xR+yHO_?Hnd] L*TwGv"X\ks^IއK$2^@>*>;ܧ0OdtX8Ru5`;G]u˕ tI&qc|58}~G]6vJֳeP}Fk&V0VPANN=ii֝{?Iu6T.* ÒJU ¢keW_t W*؎<MscaՂ#k z􋁣vߎ5|ğ,\}>Foo\{9?EYJx ŵ (R!ޗ#j(f:_͂qN6yIWb]%b~ :}PX>R{V I9Qz_m\/ ExI7,Nϟ$Q(KI:v>1(_Mܸ_2{Y#(]B\RdX~QZGF O6E}1`@c]mvF[N>֊˾ˠP&]"k{jF_y ? JU'Y5VL^oX[[,堏 "TdTYT%[_ oBnQG6^9 ={.[h]ygԲ& .v)(؇<ݝC~1t#9(P]W>y)cȳLY|ě,Clt ?5R& 4ePl=3%wS$ւ5`ܥdAB5qRih/3CHEZhoVX8_>TAQ*uqs Y.V^ aKA| e,9uGD%3->fp 727oIYB'&GׅUJHX}|*ar$溍G`F9`gPpOϪycbEkҸ^:It*~s֛JL@Kt`S栳ϯoee3<)C_-qiPU󰫜mfos`l<žҴg}Xq4^x:im2*DT<ж#a?Sk ȩ3aYlYj/fz57Ԍ5ߵlia;XͦdPJscEB=KDfe *S> Ȝ&)Ecɟ1q#K"p7"ɢ{"PA֏+ОbĤw麎Ȉ/Oz _K[ XN R9N a/~DQ~qi%wֳ6.iJE ]LNd_$V}7\p/W`~qbVbr%c f0P |*qmK BHV,"m Ֆ'P[DL/Hk=]QԙZ[oM9{uxh+"N~mB7%=C+AT!qWOD+#82eVN<\uN:0^/McC3|Siڶ/‚M}"ϽLUTr< W2(G`3Hu@Q%sA^(˦ɻD,,}dyɵm, 7D;WP(ϡi!'67'kўϖ\o&&"r|ւ>B,i=5l߮<Ok>Ny!.(p]*m+A#ZEtM;}/d8;cF`g}u^Zߡ(]wr(%*T*$H\A97A-w.b ޫ[= 3cES+2.O6FSGѮ9(x[%_)1 'Ws>Wuwj~_ny'UM8NZoڤQ٩_9#.^ gTz56|B=qwaik3[hNA vE1B ȯ"DŽ]pZ4`o^'5`ٝS 'Ņ c%6`2&'d\zV]ln6?߂Ϧ3(6SyòձDvmZp_3Ol :uu^͉KtAdPx (ܯSa29<ΘP3,Iݧ%nrT(]TshPlVBTԥ-Mnas y ,,,An^ΜakΆbtHc)HXc>sb?N ?bBc@~.DB>u7킚,r.P^ew?7͖:ug5b9q{Kh@*+,>x))# BAz|ghKJ"{7#C0\e(Ta.!L 1r,_O]w!:AL*IOkE`9$q){>!Vy_!Bcfyo))O/ͮDԚi*ŋʼn&p-nNB ;.`k[޾oȹ2m)b,XBA! bʂٓk̝ᾫg&_b."0Rd7Y:BEe0i6̐sy#V!*\a{貖1QnOy"HLDd@+e '* Ӥ/~FBTↅz5TYj-yB8 hw|qv"yVXah:@E{6 Uâgxh%ɓAGC05Xs}?<"tzYV3K,)j^}G]Eve[ju?G3iϫmOTv$+E1AGo#՞* e@h,H.,?S6M3UMUN.42˱B[&5{Ճj7k׈Ѽ/F ږ^}Rx^RF!0KP0m~dK5?)&Dߩn'UIj*y$"*:s"F*%Xy*awuZ\Kb$y%q<6ܾ,lKI;kN8煆uRzlCDBc@̑ٲl lWFs +<@\0Z63k{i^U8>QevU 8Vp@ImiӺT[yrH6)r^2!m ]#8H*!:" e|mI&x5vM;XԴ Jpb]|Q="Qeڛ,\m%dDΦV=w 88//C`#;ڢE>_!;:œg IZOmXM"A;&SE%vH`8ޭ+̿3 LtUj)"x0EA5%tS%oky, ܸO J>YWED%#LhLe YYKo# RF工,VxJg& ՄD!yUtc`o56P׽OOu (Zq]xCf*'xaRnWrҨbHEwG4 PW¶1=/v;I/C~rJ']b< &I {QR [}!m rOij-*gL˼Vr 21hM# /w23i73l YIrIZiyQɻI.I'96lr_YF؂#~w6tN >%C?HOsVo_E~3=>90e>\+V90cB8IEvP_VkD\Y+?/y:wL)X ŵp>#iFUqD,t#$ΏPc< jGQ0p(ڠ0n!ľ;>t4'Ù?.rI a+]AXv`Y:$N N ny@5:pYW|W Cv'f EorY iBDwN;?l;3II3t/@M+\+x^lLt{AkPspJF+lHNo)c%vztN" 0@=M+0p'M D:1u{hN`v`Ǎ8a #G!-q?lZ1OR*Yݤb2j #~YCTj๿پ Pч]JF,/yx_.GP8M'JIYnlB( ,)(1W uSwFh;RTDUCYh?1Yz.& $q/ܕ<4' V(~m[JE(:3NǡĹ-/#B%Rܠm]JkAj@Pt|ڰhHJ2ZjM=,!_[w^1SK@r(?9@HiȃrN-n㲥OSO JƁgjdYO%c qwA@-V{֗q%(=lMvjI3p 6`$Z{#͠7$O̍X )Dʜx_x[OKRcckW;B] չ !kwzdՅ~;\Oyt8?`u"em ZC=%A+1͖+}#I iE]JZ:Gg"@Sګc@Dh~6z[O 7W9=/Tq4ѐXtJ`KBLiҷ/ϷS6K>SStv)WsqG%M#7Z5븸:9Ua ͅ@=<LSCq>afUUSoB9W)m)wê)v 9(ȸr?QG+Jt5|~[9mx<G#pDæ'ReQOf$830bZC<$/6Xx'~dVfLeȑ|$ZݞXz֥8Pid6a+8;@Tssa4 lϟxAY#E =2^dX-´*.mg_I|Eˍ}}]7 dF% /)(6B+1 U8%"Z[;@/ ">R)c{w+ǎ_dz5^)Ne #,1}ஓz#ŢPebr߷?PmB;ƫo ڥKV-C߁,v3JML"3q)"6{'G4h 0YF> poW>yXGz{OtD! 20-GL'V`[{+8lX;#`n,>D* ! dt]LNfׇ+v4zs qIƑ6dG&qxz@o_ ORk׀.+Ћ颧{yXӉ'2 ߖ:1޵YOOe!KczɰyQq#M @aSLXW73l:@P#@|o'2NԄҵ4czSGJʯ+Y{ep-ڨ]+V־S6sX HS$jv@^j4W3FQ;(J=\T"3_p,_4Sw$oXeEſӖ8E~8 8+4 Dy;68"J\'f:o~ Z7کt](uW|{+?',zs:glCxߤT|qO S˃q^Ңǟ٘NS%В2ؗfd X7gv,9xhW.lag ].~q}J]?cx _Dih1!e(v!FV ӏq 7X*6q3crQdhG8pߞ 3ceJTf%&MDiKY t:~=-ox|L,#3/4\JA^?Az]5h@Y/ʝtIXFF6}5GԷmJ5tlBfZ,:I-]cuJDƧw%ms&%g`ͧmMNlx;}~s%uKta*`C~ZZ?DC~=lY3qJݢ}M[8f9:ځ6N2 =[1$؟@eiLC8<׊ZS6U_3Lg3avA[04춅#Óp *#3k*I!MyJ 9AJyhtwRLz`$4qƾ8rޛMA( DPyXJM A.җa`S 'fe`fRDt冪OX}0~=m~~{.I*6:{o~v&vFËS՞b?`(Oaފ*?bi_a4ո4sA(k"D1]Ej"t}YI,*rA[\Zp2gpmN^KЬ𖸇UN'Q@xF ;q [/oKG-ou@gk4y1_ ȩ?֤Ū_To  h9IC@mh\KEfռ5w+XDsYv(L+aJ=WRN޷i0%a8& GQGɫAPjg3ps5C9| hh_ey*Ukp'9dݶ3"`Ne8? i+M0nm,_OuNǧQSwڜCJkK>ipADR L׈cfKMHb%Oc `ЇM?~kyڻ7t,^ut!5 J5$ s tNieRuz i_?ɓJ= ݑ=Z ϼAf[<@AC2YmWիj;M*#{ȷK~S(58捹Rn#$Te?T 1MY^9r+%[OwΝhyYf4ĸ0vk._]YQ's*@_p4q~"4N;PNBg}o݅{<X8fwN'I dP›lc%!KPo@s8DXE A*g);(]A,xAeih9z`t66bPP'EUy&*ɮPq 2eFh@o?l0=(LraK$=;!~C0x)FוؘYt}QdL~zi偮i'y`(G{cK 8X+F~Q*c (5-i]jmn^'L"kS4N'7Ro'6~baqr3)a(Y |FD5h̕u#)k O@來K?HAk[ *X-ng2۱a]]+j0Y.C,C XSz%s`Zmz 'n>|1y`Aj92b3۬mD k $H|;œ!MBGPFvC:K B Qukct!TyIspSEV0FפP@x >sc JIrK=:MHa>]MeI8NJ̖7эªXPU|4uR<9?,ڡɦ|x8Ҷxsź5qEh; |wlNǚ er<'r,b+M-Y #ItsE':(2ۥ;e~=”'2Vb^Z>.[Fn@6&Y3w @9p3B)|Ё$zY۴ qb+sT"fkƼ&いJ]LM/LpKG7_XiX: #l`"dIbF}- b:T(WP=iF.qZlѺS8B6+sA5*u۽yYKyDa)r&P¯ ]Fϵ[QMFڽ^y.44=E}*1AxwJ7-cXfb4M^C@;7I`%E8aAIv졤p' )0R-:d|ƶЃx{_Ue'K!@#Hb^2*`ҡ֊.'wMh|,̩$x!Ar6z bAy(n}ϖHU?L)O9*d3o& m!pf"Zن2q<MS phB.J 0mT55IE ap ~o-ҟ|j繗\nr90  ]t>Bե;5bk!w|=fY{L7Vi5Ѻ7VXɅzpB&kx=aJGg /!W42tQZ1|>f(X9]_cO焾$Ѓܔ-黶+eW6FVtb/F;hyM+ν"^ANe'IҪU= %h5$3XeY L R]]|j`2 Iqc z'*A }}Uj4L,=D6ьpV [q7k8 nyA 7~NBy^3.ѧEem(׌g1u^F 5Xc)[H{rs9Xf#>TJ"|6OfɌmo2 _om5@JƟ(~o~,Q wSmW ERJ>? w(_?K$,N7*7'%2)Qԭ?*Ǖs'Ԕ7I}sS"O,zs"]8 0kɟ8sz9kt\ԮwU|`—I*1y !Lд^P%ZHAb` Qva_p_nuq{H`InFym=</Q{uC*?NQq>S,ף zbvv lo#<- I͗$BS,S zNtUJ0lń%Or6ydN06,kr͸ $(oQ7m8͇b{.O UͼW w։h@o%ލ:Oܼ]|$z|h/5SQٟOi؊:bWw2%ԤBXm̷w Ԋ)x*\Op# B7Bt p3kM UZɿ&Nc Tl"qu1Šʔqht];ӂ̂AfQLjf>x1gmCWW,]ȕtUչDߙ"w*ye~ o"\?\hS>,jEʽcś7o jP丏qB%8ERn : tqaX^ X&딚"ZȩZh J8p񈴓fs$K;}-<'כ2J hI{Q0kWA:ɑk`x.y{l9e@9տI*1"cR i:+:[M=SWF8n^8 G96vV0a$U :{yK?#?7z-qmHkoO RHxP6h,nw2bB\V] tZb:dT G'ug\g .z5($`w/i;wAo`׆5 4Un[>0!1^,ã& 0eL- S~-:Ylj.]n[Ǭ+ AL8sl+WLݳۮaPzIו_}o OKo~zM1=_!5~TcYb\>{0ShJinք{Drv4{=xڟ.vf%A-IW0@Aаz0%+,af]}`k.{'ȃ{!GmD\;;.ءKj)a3kTJ'.R4+ IGJp=91 Lip [qzz͂fC3?%t3Il `ը'r&!}Ha}CbC~*xKXorJpkobb9dfT"·dIvkO3] D>rɏAf}Y71Hj m@5[gN~ab6$ĵMɇ$d۬F$j6Cu`_|Gi֒"W6ޔ&Q )G]2N7b\ i P$Z. ͿEQi耠[ S,ӴR!\ w=YX;2cs!>[ЌFuBb06=X}Z1(OKjPG*PJߑy*ݼj|2tb!` ONq4zƔ-&= H6wk&iMz!q/))"vd:`?  :f7J×b+}º$o d:y=e<*%Wfmc l`0u+P8Ipne{R{etWZka|4I"e-,8M@1!' { ;vSZ @1XnA6WDIϽJQ^8;AWS /CIl`ʠM/MT[ L `*g\ ̦%{3<mEbamf '`o{= }tjBu?qO,y k$qY+i[\B3 ;mŀ+Ud֪x/TC칍?KNW혿,!2zDKYf?P5}P"e78a%]Tt?mTcSܩ;R>YɮH3MZ3-O{L?Q[pB %g7h$&Q otT41~) 쎜2@pDȐdw i8[ Er[.5_~gcAVųe QO^|M?DMD 4B+l?k,E_Q jud.e=xb[T(2sJ!]1ُ9+[ZyInP)͊f)[ɬN+m[+)2`bkcNk4)ÐyPf_Rb։E \L/,AiT+ђgs{vT=IuƶLZ.[Y?/ V ''-cTM(m)Jv̰)\Q waKV R}k"0P.t$s${b6C'? $\|K(OI}_UBFsz~5 5?ΜivYu:$L[Q89pI7BPG4^=qziq!88:@oX0(-1]C-ŕu Tsl9ζFo MND>!;,+*c{aKzey+j{c[Pn0A]j0`REuR%mgJB1jn]q6Oznv6.gRעW\c*Ew^ͦ6WdFpaz2T+dޒe y8kv <`>z5elWp?m;q gԈRuRe|} '?!9D#^cD`Oy5ۥFz@:,DQ5*~( jrs0wքRTvF& >j.籸J:ۋ](Rdrap_E^O[qҐs" Í>cb$nɲpoɦs*~7Ey=z`32鉲n F_|gv'AD̕hҪX\Kf?-r+21V& ~<5|]yC{XTߪ2JIBmrr"&oY&c):]!HM]A``\lFv+F ĠmIYG4|8NB?g Tg..f2F" ҏr9Ig6l9~0) |>G>U&χ0N}¤'ӠRB{hE\P5, [GvNx&*IjDv`*N"i#8#Qi(vt![I d(k,]/ sB#q,[K(j^U-Hla4ro& |2c&Ҏ 1Ys1 [M]22 O7[pŲ֫eu0*f=^K.~ol+nm7`?(4YuTYV1C/6܌WG!U}51> (^Fcw.0ϗ|>@WmoU(;YxaVg7nIO(v} Cܷhiɭmi<% T)7Ðty0ΖkNvp3hLmVC(WEfi=30go#.]_yY jjT'1bp\qw%&c$҄r9}k%oo(^ H`jIrm:oZFPBG?6Q.,L,[c> D/"jko#]wAz7&V3,٠zԖ"jJ{(9t?? *|Do jK\J{P' @. E7[ V٩>l4穮(@o+<[CyTo_Bla&V+W"a+WVۊd> (,)s>Ҳx6 Zրe5DC Ygh9> M/aOB)4&Ivd![Ԇ{Ռɾm" 191cF@t~Cɢm7dZdzyV0Kv6jDPEV8 \b(pT>Bɧ{/Ey$2mC |8i ,D&.zyTBD߈  A ZFIev+rbķ]:F4#vI-_ E ]Y2Ɓ2. y"K攏h:& 9ȣ HY}Bv큝='xȳHtQG1>J'%bu46\4 ʛrgώXC))[ܳR5Z"Cg;ޟ N B[o5u5݆36p6FoJ\S׸BcT{lN?u+UEv+ 2`cU{Te׌vH}{1WciH~ u<)<@iP#~|%J_!2_?{B䖕I<1i,y/]mavo@0]#( 14{9̮Fgu{5 JDd.S5FiB0E0Xl{Z L,;ZM>0&o]t@@ G̓F6_Qa0".rh Cd(2[_A< {^]}ax cɖ&OXb8ϒYgDrT&`aװf*Ԫ4o{. d  S$s2&,%nUTNejʗL *X#PW~TQ,1wSk)@Slq.H3˃41a ( Qu`qvό=9M69~NdmLaBKOPY:|U;sq_ҐI?" VJ;ohw߬YdݕwiS6ٺvIPr%7i#a~P}$,,HF3ORk"o}Xr(,j}+n},ψ[n ŤRe4yÊCZnkh0;eE:EAkZ])$ I$s{C wNc0;e:ZޞvR,9\MG'RzG} @<8UMGU2SJifZ ɐ=e$݉䡖ryE`iLJJJwrln|1di~!-EE<%}»DDtl2K 8"CdZfd؅B`[K1FVV&7gKލ T${3# D@D `Ƙ j2hH>dA'v[ 1H_J<-O==Q4hW>P!?L](b&#i.;S^h|Q /[:/m3>N"3p +f:<  "x~P8(x8R<8SJgK;0uLXmvg}0P E};fC1bWuCZ+(Dk{.yby]c*p 5>h/ o|u d5`vSg4f,s΢ziclPy`(95Kj3~ АrA3[|k,>-9y}eQ5騱7+-Ԁ9{1\DJs@7?dDzsAGn,&f */ND?wIv2x%#:|mŇR/۴ MZ=g0xӺ ELI"~!ӊyh(G bkNPN5MՀr̊PkEᜏuGNj:FccKaD*u3J;-Ofe#t޹]}vS3W8 `nH4=}~Ϝ![ލvǙoUY+u6Z=uҤu/w3X*1`sͼk*;]zT^n8޻,nhҿ^& uz#Iqpɽ,Ci&luKa%X䄕걂*6>JO{ēiPy=_a-,3bN8:2O]tSQ}K_zQ8(j|e>s>tt.0喙[ra,R5`eW`L֞ F!5M$!~Lq;uAMF$v'MXo}d}?|wD'szȄKfĈa:~RDx!]m][O`:P,}s*X$o"8f@% 5Mf=BXxZWޔ[Q7fXt q!oWگ~l[uMP4.b]}i;H|y~(`sw -a${Պ>~j)Ys7(H`:A <ŷK[/I %g#u;1 2`f MF$0}&c[tه(ĊkC΀ǠObfrԹmH+!,сklREoPR.q)k@|YϮ/la<ܚ0ԑy7ie>erː>+(b1wj"sl3Y YBjb(n_'I[=8 Lk"0`qeO2g1|κ^dmoMoP ֠lHOqr74Hi?U&Y#,v#K9N)1Slh"OO=I2WRwywkI5;Y!fCr)AsHN]\C'0 eW4LcVwS Qys!H5a~X= S}tH`yF{NtjOs‰5M9Kv oB{0v-K3-Tޜ=a}[$Ł11h|RP7k=Ko75; AGS2c 󌑮1ʾ3/w|W'شv]^ppz)d䨤T3% j%%ULu,90_~ uYU*v_0nF=Gğ)i+>fǣduq(V镙eo `GD "HvR*#dΣBpF2Vn o  z%7i0̞Cf_:Vq!6-yK6G*u*kANcr>xjhԈox1^(B6δbzoΦ\l8CwL6=/-SK۠"hgSDX~=N+.NpZ% +^,N !8885Oh:|mB@u7aj 3o6=d8UOȗғa$_I jĻzo(\`-r}7B\A{,KK8lK%Kö*&R?uԔ7ǃY cӆl[I!,h^"fܯ9T1|''x-Ӕ~#,;u/El`ƥR{=?jW?_~ŜMG9X4f{kMXU$W l̲bmEW`keS,'ϯ $N>hg;!5`b%VZhݶO*~h"J9 ǣh#tԱ8( bVy(3.3MyխWl7>_ݲruR'*n!?/PD_C҂8xi#G1f - 0(:؅`+`1WGėDŻβ([n*~u9`-JPi1=(GkcM6glYseX?|"ENg75,BF.oXySNNG'5BƧACPiy93J.ҫ 4Z#KL?D%RMueF<@nVuuCWmS52߯M?e1!b"`b/ͷV?D Zmۨp.1b^M.A5VONmB$ O2Kay^\KmyR)V=O Q@cH,nX&@X_I0tM3x$H-xby-w={wZUS'oZX[OwͰýЬeTg巉%I ƥNHS@Ch=ONC¢ pZ䴽|(LvnHW KpT8Ы:nοu.=ؙ<^59 KGH& W9KBr灠S30V/k{8g;yMUYlG:t)09F'0DSS9g#4PkD kI-NqfFo0}C?1b)A8eFo3Y_I߲UW̨$0DT=m 8蟼l{ߺ7gSN{˵A‚2-j{`ܥ$ޅǹz d=<~ȱsf2_к-h32\6}&XmI"JzdӒ˹$%85m'1DG(^ď+[Nnd?MAS`1SbOF* iMuqIrXUNNn&HOYP>Tٷ|9dGЫÍ~ƉдQ C%Zʺ@.674S!m ߷+b7&ouqq@OjGL?<)kjHl( 8V4^<@̞kk kl3"-su3}m>$urSs\i8ϩ a(}Bp?Up:.3`Ю'8(up $i}ۨ"An^GUȬVB?cŅg<(at$MQf4UvSkTsz(ɕ"'UgįXۼ+^!MFֲfu epD͍~wL/b1HS5 blSC8@%{F2 K2{Du4 O(N_JpQv_k(nQOwJ6Kޛse1JZ}gPo'Ix!@AcV{CC@;݅-?u.Cg0XƝ(yU(AC%!P1xG B ZB߾ _7f2RzhaҔwQmSQ̖UY7^,aC+, M8Vtn1wRM~î[)q}Q@1xЅ!} [}EĶ3 ,6L!k픶W"M:Byr&x> qҭN8*FhXۅ"ㄈoyh'iZ<6ݱfo6NS`k(*> endobj 74 0 obj << /Length 881 /Filter /FlateDecode >> stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 76 0 obj << /F1 49 0 R /F2 54 0 R /F3 70 0 R /F4 64 0 R /F5 59 0 R /F6 75 0 R /F7 65 0 R >> endobj 77 0 obj << /Im34 34 0 R /Im22 22 0 R /Im21 21 0 R /Im20 20 0 R /Im19 19 0 R /Im18 18 0 R /Im10 10 0 R /Im6 6 0 R /Im5 5 0 R /Im4 4 0 R >> endobj 78 0 obj << /Font 76 0 R /XObject 77 0 R /ProcSet [ /PDF /Text /ImageC /ImageI /ImageB ] >> endobj 1 0 obj << /Type /Page /Parent 44 0 R /Resources 78 0 R /MediaBox [ 0 0 822 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 2 0 R >> endobj 7 0 obj << /Type /Page /Parent 44 0 R /Resources 78 0 R /MediaBox [ 0 0 822 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 8 0 R >> endobj 12 0 obj << /Type /Page /Parent 44 0 R /Resources 78 0 R /MediaBox [ 0 0 822 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 13 0 R >> endobj 15 0 obj << /Type /Page /Parent 44 0 R /Resources 78 0 R /MediaBox [ 0 0 822 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 16 0 R >> endobj 28 0 obj << /Type /Page /Parent 44 0 R /Resources 78 0 R /MediaBox [ 0 0 822 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 29 0 R >> endobj 31 0 obj << /Type /Page /Parent 44 0 R /Resources 78 0 R /MediaBox [ 0 0 822 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 32 0 R >> endobj 36 0 obj << /Type /Page /Parent 44 0 R /Resources 78 0 R /MediaBox [ 0 0 822 595 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 37 0 R >> endobj 39 0 obj << /Type /Page /Parent 44 0 R /Resources 78 0 R /MediaBox [ 0 0 822 595 ] /Annots [ 42 0 R 43 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 40 0 R >> endobj 44 0 obj << /Type /Pages /Resources 78 0 R /MediaBox [ 0 0 595 842 ] /Kids [ 1 0 R 7 0 R 12 0 R 15 0 R 28 0 R 31 0 R 36 0 R 39 0 R ] /Count 8 >> endobj 42 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [149.8 335.3 426.9 370] /A << /Type /Action /S /URI /URI (http://faust.grame.fr/) >> >> endobj 43 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [149.8 188.8 660.3 223.5] /A << /Type /Action /S /URI /URI (http://q-lang.sf.net/examples.html#Pd) >> >> endobj 79 0 obj << /Type /Catalog /Pages 44 0 R >> endobj 80 0 obj << /Title /Author /Creator /Producer /CreationDate (D:20070305220311+01'00') >> endobj xref 0 81 0000000000 65535 f 0000442331 00000 n 0000000021 00000 n 0000000725 00000 n 0000258239 00000 n 0000011098 00000 n 0000000751 00000 n 0000442518 00000 n 0000269023 00000 n 0000270369 00000 n 0000270396 00000 n 0000272666 00000 n 0000442705 00000 n 0000272692 00000 n 0000274456 00000 n 0000442894 00000 n 0000274484 00000 n 0000276058 00000 n 0000281285 00000 n 0000280593 00000 n 0000280011 00000 n 0000277462 00000 n 0000276086 00000 n 0000277436 00000 n 0000279985 00000 n 0000280568 00000 n 0000281260 00000 n 0000281958 00000 n 0000443083 00000 n 0000281983 00000 n 0000282902 00000 n 0000443272 00000 n 0000282929 00000 n 0000284124 00000 n 0000284152 00000 n 0000289877 00000 n 0000443461 00000 n 0000289903 00000 n 0000291489 00000 n 0000443650 00000 n 0000291517 00000 n 0000292728 00000 n 0000444139 00000 n 0000444345 00000 n 0000443869 00000 n 0000292756 00000 n 0000315691 00000 n 0000315718 00000 n 0000315958 00000 n 0000316520 00000 n 0000316986 00000 n 0000329150 00000 n 0000329177 00000 n 0000329425 00000 n 0000329846 00000 n 0000330159 00000 n 0000347103 00000 n 0000347130 00000 n 0000347375 00000 n 0000347838 00000 n 0000348199 00000 n 0000357072 00000 n 0000357098 00000 n 0000357348 00000 n 0000357674 00000 n 0000357891 00000 n 0000358005 00000 n 0000397893 00000 n 0000397920 00000 n 0000398163 00000 n 0000399129 00000 n 0000400330 00000 n 0000439455 00000 n 0000439482 00000 n 0000439724 00000 n 0000440690 00000 n 0000441890 00000 n 0000442023 00000 n 0000442214 00000 n 0000444568 00000 n 0000444629 00000 n trailer << /Size 81 /Root 79 0 R /Info 80 0 R /ID [ ] >> startxref 445043 %%EOF faust-0.9.46/documentation/faust-rewriting.pdf0000644000175000017500000145770011702130733021361 0ustar orlareyorlarey%PDF-1.4 %äüöß 2 0 obj <> stream xSn1+i&~=FvYDn8 N@@h\T1lNh$]j[=ihN oʐ|7ΪO;/v苺BRqLI3=w_UB.Ljq >uG4 Ùgq8FJ9dXLнqpOƇAlD('guJ!hkhHGCzn&Y[Y\zeey8]'l<>&8d/MEx=p;lЋ}K? o Y endstream endobj 3 0 obj 483 endobj 6 0 obj <> stream JFIFC     C   }}" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?yFV=h^?J_?XN*'([RxF{8_ᗄ~ E{CiR詒wpxt±,ry5,RU%9P\)I4羽qc2O=5 ῏~]C?USExlA': Z_ xb n|M LBBr{O(RW%i~X~%1Q6]CčV?#@rHX_h׼S3.o F<*ʤ*H>~5xwWKᕓ-6VPݛ B nsk.n)̿p SIeh{;|^u_}?KA!?$IY_ySXJuW \IXq F:r+ࡿ x;C57Gm#b͍c8n!v*2z+)m5-~{Y*gWJ\-k;>Ul\0 h7.eaj~|/On5)^XUZV3&^Qp*Wys`n_,oBym[V*9aOVˤ6?3x^7]bMOBҮZZԒV1j:~ug d`0,r@5'17ū5~WcɯcZoWj*:;a)ݺܕ#<}WK{A?C^5|7G8K/mk5eZ|]CPb@ۉb>dC!N&[ن0. 0 JwA޿!n?ux75[Xmlqyc<^>J.q3zXL\(FtCK$Nm_ b*իh7?Fa|)o-.Ckw:D nc_/kcvomGF57~!jbwH&n~x_} P(by,1)*ø:ŐKK39by$ӫR:J}p/ c3 '^6 4iee׮F|:++Y/RKos&׺܌"۱覭;4π4zגɹ29Ggz0_[WҼA5^&׬=4? }\n?^ ~I@m??}3n!0j6qH1Kܕ}}SåÕrإҟ;ߗ{]6Wʯfw>5n+m67/{ۭKZYMwDٰJs*x=uv }OYC[jлkӱWᬷ9)eyf#96Ӓm꺷r?d]_|Tv]<VRq ji RXidݻ߁~Yx~ \Ymv]})9''Mei\͜}H51ե:pZt1ge.;9ss(+7e[}de5*FK<7y3MH3^e{kxY:5{kR1?i}ͱ~AI=MO{9SV+GzX9|i*RIY={~Wf^k@.B?8__ bڐ7Bͧ{ۙ4Jd}р; ?fӹ`տ/TkiṞ.bXb{9bjZˏe㇨:luo[D~/ŝ>f$)ss?uV|Kk][$A[N+httdfHXhsh~y;}&ưZw-ncG"\(`pyEskb*8:u糑>&^6Uo[F}>{:_/SpNf5f!>tڄ<Ab/'׋MP-rF2Ig%>+ c$_-3 $ײ;.ߡTmSK[E{mg|`yuQxoIt5l_Hr<2rJ.x&¿Cj,81j'*&꜆!q^k-G5v?>9G^kCQi}^흗.{nƁԩ ɻ2xѫ^uJ/E~[/ʰTse.6a$}kSźO?im.Mͥݾ5έ#MqBKWj+d߱MmgGO̿kͿ;~]0"?f9{z7,=W'9_Qj 7[+}`Ӿ"-隈Ւ:x۱]9f~F=Vإ3E*ϧ? _;_߱?^ŖSW7rK D$rGs_I/|ImS$ ]Ox;V]cSw\ q^ƌ+?~S3\-]$Kv&??H1a?JWahC| nwi)hJo'T?φM-/|K}x:A)@6 ˑ;Wc>j-t]O{ַ}~w?WZaYC vQuS |?8E࿂x4qݞ{')PTn@'_N|?үl]mAomu4dՐ20a9\T(TxzW}s|<(%uG\Kmu诣Cc%|=6 ,4Ov+IɅ6G5[?GP͔^ѵI.-uo3-˓8'""-Sߧ  pR|ɵI{ꬷgP?#_8+ͯr;OmJGaVe9T}2k?f᥇eR{.Frw@nG'#|a"kTWWL"Uls?{u$NVmN(\uåz59|BA뚆<˥VIM}#%hF;cVmI-؞h]N7H5 ZY8UM~4'\Ϧ|Z 6 H޾xi_~]mˏ9\X$WJW~|fReE7ʣrh{mmս59oFֵ19ka`peo&Ev|<&; |EYu݌۹#LHk:N9$#AboBICg$8ALvjekYdF〸aT)<axv>$=Sv]9<[^Z_Z}NS8ѯ̑#;}sZZu*JkxFC.2+|%~jڇ4o_Iqq,w:-G0SL\ Ӵm;ᮧq71* JfϦ\ sOiヒktXGb>/fX%A 㞧m/]FNf~:}WC^5q W۩151t15iJi>[+km3F /ɸ\ZC5ͧ_0WKMW3,%q?LOoaX@>(x&ұ_Y1?CbL']JV#ƇQ%^mQ>+W?|>/S&." (t;Y11^FUkog->-!/+X%JPJO35 M,#hs8 >m/7%6ld&nyrAFPzduiQNZz/fuఘeJQQ◽&Rf }7F3k܋2A@pڣ\5>\;9^~x_Mh]֢O.o3{"`y 62|xd!'#8zbe:020/2"W5eve˦n}G|O_Bd4SjS\X^Ҍ̓O^MVڦ#V4NO#p>|A9#?j'* ,r7O''+[k;7DO>P՗WcQvD7A|rwd#6Y/X4IpUxk?{ghELz?`|>|!i)_eNNvZ].M.п+[8'R3Ι {|Ueڹ5'59.MI1<.N<y/"s)G{~0|N:NؤZi{ݧmwiijH|Cx{q[wg{;;&Yb{YF(>Z90r=@KJ:m-ƴ,['1䐥I+|C?[,|㈖!Ajy8? W%K+S2v[nڻkwc>T|i!刵g"j:=֡;NGb&/e`+ӿ'?U*tN/7vc3v_W#wi "[oj\2=t?U?jdl/\t c5?V.,VJ^xCvGiw8V+n/?> endstream endobj 5 0 obj <> stream JFIFC     C   l"  [-2՗x[%.3%[DWejV[sM(ݸ-q>[=u]eZTd~1!YDKox;^s -hu튳MM^ȉcɧ1"@܈rX uk_cIYؘ^cgytߘʛ#Y\i̦.QЅE٨VelS^e 'I\ZAVBbZ ' yŖ߆^Qx"ᵫͤ٫nޫp9hv9lvtҶvRӆXsvIX [ܑ0kFMjY%Xo](˜kVV( ɉMvYiHʝ5"o"+2y"@1V@Ň F[<\J}JχvMhbw6np4ujvz& |!'D*b3R^!f%r6+v6f?ZT DوU:b]܉צZ&"o\zHze& q׬l}sik6K+H 9llyžۄ;t2saYKkG^;dRjxһ[e} ;םEgSJ6gnU6z$g'+kvֳ[r\ 1sFhYGBx߭&W}>"-]&"to0ƄV+њc{~ ![V|uTK@ho`Kkkslbi[ng kgw8ͭ%p4vͦsһU\m%!Xt>w;FeڗެAgd6{fO \[d\J.Nhs&vū^ #$:ŝtVr7vfx56ԙgDOZcx=]ə$>cdHVl׀{>[,ի]T &6?qdp[pVށDž7X;&J׫1zRu9輙_Bi;&ޯ^mj;:kFE67ehTYՑ8oY8;iDkI6v>#v^KmJBmIFVf씻V߀v֑ŭ$FWݴs# ."eDK;ss;"xh6VO65H}nm5-0+rdwkew}3[;w[;EG5XTXww]/BhIk]:Rx_[eI]3zŎc+gC>{AV|{:W759atl3/bV;wq-\/Zfkgš)ҳMҹ9X.]q9 b^!]w4 n^*Zջ/sO@"l47z-Pq9!'4܍[eڒ1ѹR͋OJ}RboV7gzVjգrV3G _iY=zh8,]D}ߤTvf1ZkKya!V3cg xsK\6u9Rgk2ҰSpUBͼuL-kfiuLf0kPWy -2R/=+Ksh،Ӭ\9t|7D:U2^Xք?iChj̜l'?1}p0׏)M. 26rC37;K>iaHߍQ7t۠q4pF;&\v>ѱ[hW5xV5w"l&|mYU+D-.) Fefū-Zd#.)N6,~5t|ePxvݼOO62(c0* Č{*vtMRG/..Yzk\ƌx̆ QJ䚖 ̐NsM%B8ʡ2ckfLVa^ M~ X5]hmzTo|ɝxC&T5jz,#{CTFo(x{M*Jk]f1H91Ќ=ڴs!ɫ& q4"u՞,Wi\Z!ݝת{Ug7岲u+kUgSk6h,ڍۆ}81p\h׭4QG,~7OH['_zk%&;[ 9qIT$?.=HI:jm:O-[3gվh0`:seϦ͵%d(k/j&w^kڢZ/]$Dy}YCWBODԱ^tډ۶-CoU$4쯠뱭v#T7D6砯_^2BYq>Nj~:3>SNQֽrC4UƋT\y 7ҹhq;j֒6zhyeZc|X'ZUח2qw"Nѱd}Xw.7%3ϓWXٚ jl7ߧ\iס5>N'D'J];p ۊn1`}fwe4fOx޳ZzZ;Y;Mc+bՐҹ,uJZ&j\hIBB!+Ƕdo?6ڟvCՋ&'Zhثک5꽷;aXjSX_Kb/JFWһ:JaPg.v84g!-g7LEjkj~x̯ydv*CZcϩgj+LgfZ`3[EcOw;HDթJ6ʜN^ij.7n|- [\ FϵlK9bB[({[qn93n^KSvɣB_-]YԽSRإ\UI ]C^,#ö@ex-+ێYC_4}6V`^8Ԙph;i[hMMjzjKkf˭:Yt#m%^[$OJuҵzbˍ$HhwaZ%+%1IZX)#R;>YK;~#tJ21'`7bmN뎩p֖v%Zg^g;W測ЮRWsܬޢ&7P]+,Nj_b@h,Zv.nL_O:D+:tgz[ګ%ίFwJ+j6_@6)VHbÍdz\)ջx/mGkw;j͵e*Y2;ڷJq_(;Zv(}{Dn kFݓ:xG]iӜVyf;:׽no5&yі{ճBÇJߵo]hn.5f\mNfɤgaT(j{Dg;Hw$Q\+`-x֒җ5K m)w}y?WQ24{ޜs 4i"\,uً}31_*}gڪVy*N"ք`YZSܻ雐ʭMg+\:w> sqZ"i fז ;Dz~&Ss7dn6'rPu՝kVt'izvBpV&/MvڱT6JLcp }%߄lz+QXCZvW&kXe84㽲4l5+iBZ5 xqr:蛴\|і]IUr_v;HҦm6d5ff V 5for֥7d 5&6xbAZrDXO?vt4? DQ=VnxLl%[D.vTts+HZiIejcj nopNhYۙk &n-qz^.ԺYvK7:[HzfW$&3N`RJ{c;5LS$8i ٢a*Y2Dg'u(Sn[cV͊whsKUbd#S$_^ơ']M;6((i#M:+?Xލtz#/4y]uŗN0Cubsq[ҧm˵Bri*:I%K;.]uEF\sSΖ^_4ݘΆ8BV)G8S"8\{Ӧmӧ{ኮzTv^gŸ/'O~٬(ltv)rY%?{&Z?.;g9d8iVwxډ7o_SV~ë-(Jⳇ%cjYxW @kOjFc[+8rvz2T.+z흺tֲN,k} N؎XZTW/@z__WNy_c'B^ȾoSC9hFNwƽg<ь n&+ 85BՏ~ug^au~ޛ+NPϾZ4$|gc}OB|nwscz%/+ӷ]@ -Тw~cZZʽpԞӆox8ʗx>O͆U\hːxv.z'D͗GZbԾ[WwGBӾRVƸςvQ3P,/}|&ݫfBbuҺJ]%;]"ga;3J=}o[VZ`4c;lլ35oFߋwgfcUȯ3=F瞗e2@vV߷4;~58摴 M0HcgL# ]w ~}\9}~ ͨ,o{ʅlۺ[Us0=X_C,>ڍ1JA\ރ4CCxw%V>|51d:ljua ʙr{kfjizcl-&+j䛉joMٷ0e;v*^H75ҙ猺q!#ۯvZկHLz\[f\m +9sW7uvKw-[lUbͣ1Y!\[s{G֒+IV:>Uo:;[낻7л-\5[Q~֖^W ۴ S}*<5wQw8^Co4uz%Rzģnn}?Lub~kM^ij[,mB>}3KEpJrn +D ⤴g|kTMjvhX+z^+Uvjpm-?i.ϓ[MG/8!7tncz4oV(7??6螙Tӂpaij/۞1yTovht^{㖜ZPVuSN,=+<{*P;aaCVq\s bKx2dړ۰[M/5ܱ|ӔoK"~+a2קӯpjޕБ˥uhd1xˇ7ޡn҈TKb̔Uzo/)]խ-+n;g:Ft[u0c~^oަƞ6hU^%<:k# ٸ.K0Q}?kC`+_BwF[e %~Uq}G}~ytomz۷`hV*'; 9f'Ejwm|ȯ}>;Z;wC{jg㡨^JկC5Iߎި\oAksc4=2q=b(/]>+xi櫲1Y-1zch7J?7X ,zw- ߍ dփ!ֱَ̧[`Pk9"r^6mܭ>mmф}-[OZq^.̙ڻKWHY[NSW,VHb׵Ǯ2R)jU[^Ǹ~zOz =[}"=n^k*?l_>wS}֪mEECg>nn>6L-ѵ\ݿϺTuҡ/|5W+⌍[qNڻ[+>{|mJURz_ܟGgN*OzKOMcU#z{/x߯ i;ߙ3u~Q.t mX|~:VRB+6z5n-[ywgӈFϻYU5Ih,һ24i=2oҷ*^ WnQ:x\)K'+^3I<9JK x J.]no6syLv;kK`W>M]+'n[lA?_Wo>o_|2:^7nL^[Y{wRM'߬MOzz<~^3/,>!?&&L7ܾyyq|~9CE濥>k jGz?މZ|=jgZSL9b?W/ל~y L>bT[Gx޷Mt=O5in|_\komU}/zɯ|y~ ^yOmWy^}aֺ853oe{_+dߙ?MoswNUϳtuW5}r5 2g_]oɛnw5y>lZj1=迚}_RDQ{~zV'{׫xWy{^rO{vJ?sGV.K^hsS4lPxWz+AKDVZӶF]z[W:ѿ^ܘ޶T,U:LFܔMꐾV`l:ͮ;>ioBӹ{hӎ ى~ΜO?=3K.=ǽ7=3x{IE ˧/_Ⱦyh7?4-W}X 'kgU+-ok}/W굽cEy_o}/}3~SK5<||KwSb˟rfNOOSe<Լ޷r̛#YY1{~?WjW?!>-{;z^zg_9nԟNNlP}.v ʝ?dϣҙ=^O[4>jOK}uړuo,~3PƷ{{}3|?J_vG WۅzbN3a~_';Zk3򄑂Ocgذ\ -kXk\{6 5 BbYv**7lh<3:\t 8 *pweG|i\^}7n ߨrQH~UJ|}F\aS';?IjGO/?AlCC+Z}>>F__>Bjo=+?5}/oYn_ez{ߙFvsPyUUx^~on/<[ꯝ>络Gv{g+ʝsyLJ}3y咱g>O)wJ_~5~dwG㎳iF6UmUo{׼o%&; ϩn~Ir_1Ÿ~ƶgF'ҼҾQyP;1׺sjkکh^Tլ^2,?Qσyx4go?~|'ЫtWN~g}֙%[7g@l}oO}/?5}/oY~_f=g>cO|yHH|{yޑޕ|׿_w۽}&^Tӗ+3`ŷNl?/_ҟ5zRio9~+ؼKB?1hz)I.Jfq~~} ]ϛ֪~k??Zz-򞵞_z?(}U=v?tOwbd̓F1`4|#Ҽ~[mv[o /S~=*MfwГEdѮ]ps3Ud(Zv.qZ*8Cj}#qL!lԳVutdt|-JF4gf91^y۾7X3=*/_?o4~|ӏOʯ\=2@l{Okǻr98/c{]c~:>ekOuQmއɚ~[NϝUa|:^/>)yx9<ݺI?#_o~vcXo>+>~~llC|Ϲoߪ|_N 7/?] 퐹xTT_s}//{m#MW?= ye<,![G}ɽ*Fzci~j(\|鯶?8}5o_}1wo_~S1﯁~~e-mM<|WmU5qW@gF7 $c%:EKCk[enL@O+v*՗l. k61DLW-:%'?nMBRqBRl{ZXTR9ǭ%FW֙wǕ&CBDU,hs 귛sٻ<ko?>ʿ_헾:|[~|U?[}"_#7+^>N>Yg:{[:H`osD "L9*6U?F~bOI??>/joHp|_e.Oߡ:>B?( !v<\@W%c;Ye~ԋ[ڻ9_Ns֓98 !%3ivi9Sи[$*YF;n#)+WmQ:w q$F7ODLL2yHhbqok^,Qrz㇛6-_6z+լrS-zڿh+8Jjl A׽l7-#v#p䝹4]zǠzvXW HZ͙- Owϣ9#ߟ Rlٺ94~dt\v>=!6#鏋㾹gN竂ߡy~&gyGOi'_ȾE-?D~L;m\֬V_}y՞~,NjKzhytyw6 yݢKM*ՃˬWyHQ/:yxֻ`2fj3>9]!QϝY+DJÓ;GL֫2 ewq>cl96uq7Ɏ;ԯXa褤&^|s;n^ZfqWYxҜjWbڹ?qP}#Jfvku I^aǥJ5 a#rcnZ"hZ֫nb֦=FZ =[}ZR4#w KI,F5c`8~K5]&=SH68*寯V>ۚ]묹^* nӔ^Tfvs v]564MR맊 .\NZ׉4FyW+Gk+W]bު=݃Hץc6Qѿ̷'r놽l\fJUyǧIz!%j7 XP983R鹳<z^0Hr={ǢkV)Mړzug5K׼9\|ֹW^hTz?z?%Ú 1ڱOO!n=]9fdsU;'~c]<m^6"&4FTsmI=A"gKFu%]us&vSA'l]˵{H{= YX.piZk^ء)jc=RbJU 2uS[gcuK5 {n<X]*7k3[gY9ugc9n"pgA.NU+n\6q󐂝GIiYho ÓRkKy|yiJg!p4<٢:ixIVוJMK[=gE2NwgQx.K)|#^<4,~ ZJ[lhV+rҘ5kΊld4q;^ڛZ't+׻#U,iK"+j>xnHn:Z,yYۯ5 +c,]'VyDX͂JSd)[fy>K SMsxLwgl:F ѡm8Szn}kmMnWf-B03Դzmы+!pq]襓IYI:Z*R;%$عYiZ{%J۶* DFcbW}zΕVݡ۶KnvUKR-4f(S9,Zc3kHrL[ó=m)޹d`S'-]mqsJ~N[gmVlaAnT.՚ճ9_i'k5\BK<'-ss9=Lo5C] v5Lk\zMZ> %T;,rkoK#; ފJ JnzWRzZ/X4?R^זՍ;d+3;qPǿP{FdzFlDK|u-s鱳wɷ}9?iY!q^BZ岵r֜׬tZǹ3IZUt| Wsk]=YrL^ӥqGKDICM^Kֶ\!x޳ 'Ze܍V׊mJXP3UZ42gj}ؾ/;Q\;mCI7vXm][~0ގ͗٫5NޗtdpkC.f7l;mW1gWJݪjڙ@OUN-5:Xcz+~}|ܚqmoINңhڙcd~=z̵ՉɎk\*gЩ+98Ф*vo~9Z!g6HihN"^\S.FΆ' =;0fSs_baB`oIu߂hcs !ctـ֣+)ӝW/N-ݟzlBGehEnh #H^۬fKw,Q%F1vca.:G1jM*-y靣e:]{ ~ѩ-3dٌ3sXKkZ&z֙e;e}m:C*[ĥJZ+XqI틼}f?/Ք~MVn:WL0 Y&9'H}Ֆk%.Fb+7i=oJu*R[YҚ\GnzīV~agONC֮Yڨ}8ؽgvR)Lִ.퇼LWrrVԉa͝sZMպڥYYj4w2ۖI9bcuٚVݳh؋D,He%.I]Ķ56rag&\v>ÿ(!a/Y!+̊T\^є6і8yjm;#kN990oTU3pX"+R9EjV=;TxLVecP`Kzt]*6Ά:qk79n蒿Лw֬ZūJ%#,ɈW rRqQ&w}"&Rd;s31eeW^{ZFVe#1t7ՉY۰ NqoxgqYq(C:f 'r)YJjT5NӞ,.f9RqK&qٯ&vD:#/'~E@ ~ѝ&hIvRnU_66V̔ J-COKʵ7NҶZYz-zz'X"sFE ~FԳsJ^mJN*ѥt]{T&,5G6Yo\ZgxoJVוr&[\Qp~^X.r9ޯRU+l2N73T}nfK4=IAZ$!.RIDlejɮ[^oQ0y[RvncڻZ;%oj^sϦD.ԝٍ$ .VіZc,:,T]k#eSvý%v3n^ߧ;=ͤl$ֵcݯrvs/S,;p4OrbxRpvѵdݕ^гVa։'eƍ{ܩ7)n[ŗV8>|ϥz]k\3T¡nޒZb4mj/e`6tvqe;g)FqąZxyzf:ߊY201z\:hezi.7]mHV9ڿaǒa-N<"*`5!TwMVӫ ڗ^]; Xpu"69Zcd8ڙ69Dl; 1 PMm`_5"mkR"ɣcٴm4yےIf-W<^)f"Z;D ;1lOá69ݫ#z\feҺ~bwLhqvLuvcImhhRy6u:oej1rsbxh٫Ӧ ;Gr+a!Z89W;WUJeXzFRo ||uRkCC>xykWl9_YWҵN&~h߄t޲6R2vdhέhK>1zPִmkIڛnFT-n5xۘmk)hUe-{tZ$=&Z-P;5]gy^5elxӻߥwLi] 8U{3HQ/Dgc䨷dW鯥^ҷ~S .743] c1k ntZdxR՞rwjF]m}')&;z9d%2Fa|藛g}jYbИTE9՞鹫%v鹹Χ=wܯ:mT 6lh;w&v . f[W'V?ǧ{9n'/s-Ih]1aфֶ=3*o9\xڭ+X=8ޮXj w%#헭 cE%7rIiRއѝ>m^&6^LkAa}imJ᎛7jX:uۮUʶr{xj]J܅kuDZd6z[9j=SwcB&kT뗻KKjw%riZi`pC~ x,ޯhu쥣ysr^ǵg)W}#,0ٜޭafiU8cp><$%&ZDa|YkL4ڹ4ڍ֛Z~Go 9ѕ"e YV#:ܝjף9s;ENBX{u7"pa+6J|۬tlĠwzks:J 5 Y3 =.jbɇ>VֳcZlծ5;n֦Ns?+tV)yZnzfX)V+zYvs\9L޿f[6XXl Zmb=$5'NX۴S+j֍+nֻvcl{VN/a/ 3;t&#E3\:E'7N]*ï;vŭr|Z9W-,Z->'Fvmiҧf3NMjvâLd- Ih34;ͮ2gj/sUmtM7N3[J-)AA92;9Nu9άc/ k4VveȜTZ\6}$61!24"3` $6AP#5@p0%&Ή Ue,lJi2ی! 﫦9ڱ-.ka:<%,~+b]Cx믱9g 7! 4GyKp`8I@$6BPc#T U|X5DT}צg ϻK,hw;a !I3c)kk&[?{W jUALܱ5KX_yK`FT5ɞb+;~Lp1mgw,RϒhTcY Bl x 8-MaT/~bKG+rλFڏ :uE# (,\l z^8;] b  ԋ(kBA0 *1X?霨rP3م&uInl1lYiD tD.X3+Yvl'Ft lˬ1쮥'T|WwaU,!YQx~Ϙ#?V[6H(ƪb~ _ֻ]U|l3m_&D,)(,Llb+q;Õ!$P8%5(R1gu(vb+eX~mJxjKؒU[5nm1EeYҦӐlE22N_iP9Ri%ᱰk*L&YI؛_u a6|}āɠ,ia 0Vq5$U't'U.Mic5Ƶ׸ufP}cQ.OO֙ ⳐK,JѭDP+c6K KI{d0fH`uk0+vaVzmG׼cǀO9kgp3+k[t9؆v۪pf{ BY.!QG,=VrA&Fk'؜p6. wŀ;V|Nvnvk9*˗axT c؃QPr͟_)z%+ͅbId\͌W'hI%PQ9ir/9^bdtrğiR,ܣn+6 ),p0pu JK6G?su˅*~D]NGX 7) L[ xF6/%@aKF'pAu렡 f#ßÎ`Q4F mb9fn[nI 5y2ZɤL)kIĚL|1dmĤ J M#`bb6FNGUO!i>XScE,(+.6k jZ ЋHlMzC[f%4\%MD^/Y 0̑ȎX+TGd:3P ᘮȘJ#`ĵC%= ^H\,B([ktчpšcm*CnSkE1ư}5V14IP,IDC !B53ɹ(Ola 3i uC=D|sfnĒf9Nf--Q5:Ԙ g~hĒ5f KkT2 ͨ r؁C!(-I,lS-TL Z'أky,I ʴZUNG=5d@ʏWAX7k:&G[Պǜkv.j]u-][a6W[sg."xif*ve(e~ZeYg? D3m%; B}*`0f}hpP$6mhFs<ei(8( LeS\i^&1ZPC+Y#d(Sun//S]`!{K. K s\Q-s<(Ns[YJ%ޢ7e"bFu٤d\t^Q Y$*Ti`;©W$O ^h@eJ/S66% ƇqlI(a" UL.c]Y]Popcڳ`i% TOIZ\D4_$k_\|c+/à`ZׇoziF+kyzыq!16 g+绪@e뤲EY|>vtm2u͐@]c| +Z.)SԻ={DLP\¢mNュDɠ(f!]~BU1VW.HR@-j9F5PEAp5 pF8t c&bUi9z"xx-pR_/W6ksĪ\+%]]u,^d:4u,WuM> 6%('|ȎT0%e !zŪ ^\eKD𱰄wŀSY lυpv,O{7Z'6\ JO.rl X%OT.mqAPk/DT(cpkN,._)Ofǔ|{ D8n񃂫g-O ܵSaخ6A@ti'8CA𵯖+/ Ple\'\6ZxP/˕xE: zc6&@ w YN ڄpjS5~v#!c槆rO"nRS1,&, eּٶ@2@b\zu!-Zc`l_<ΛeˏԻꌿd4-燜ލƯ&9b,rs.JDm yXip|QdN1[_Ta0UAj>ŬT.˶淵*[jx]K+Eybu;Xˌ:MXcI[ !ՄG(uu Ă2Bc dGLef*ъGPpz#RAϖZG'1+x<),VGXJ8QHE}oČI OsZa(QWef ,\`ݗJBA.yf9;A$)621e]YЂG)s?$~YϢ~Sˣ%\H9\s G9)ErV( G&fqrI (2c =NK\g_ rg*&꜈ꓤՆs瀲dd߅/9eF:g Xsֻ-Tr0$l[Vۙ!ʒ).)\׸1ZA@В\l ^?P7H1i %Rc/xēU|:2X0acB7V"9c|S!00 &~ָVW^^ʬ:^ .c3`pid͇?+WkXT.9irxH+-\ 'IMx͑AXYo,CzC Z^Y bilXᰬN lŽ:m/͓`Q¥4,fPd-IȥЩ1-jfYBX}RVw ͌\xw>u+Rx.RDuHjǦ% ʵ~|*P4G9TWDe|8SE>8ŖR+BѲ3C^xuڵN],)R>* fh)2X0+% (|<8yؕ`YYG*W(-Yga ek1d: υ˾<ӻq~ϡ_(ݐvQ wAq1\_X Zp(ٯfS5pv7/ <צTgwc)Viuѩ5 /oyAI}Rr6W+-WS^Ko eRFxl, jk3dgGf3l -ɍ[ g\|/&?^DxBQW  ZyU=M%H0;g* r Fpەk5rNEyŏY`ˠch}q<.ٚN5,1L.2W_P ®i򥈭[, ]`e/b F俋]\,O 4Z+QP8a5ϼ( :'_f]a͆I|Y~Ԣ+`ܡn]43UmMb (fl%{dRe.xnxx'gһ ĶRsmljl t ƹP|,֋!V >@e0`#ڑx K~?Z]tJ >=@0K ZJJ Ֆ>]p|-ɞ|C`)2.Ht۳9 .K5m|W򙝖X}q"%_[m*|+,!A6W'zk06f9!߁ s_6"@@'8> 'Y%324eG9rϿW> (30AKVElȭ%(K[W9wfX#وr3V1.͡i(vOTy9jdQ/'Y) c͸cD"oAk&h" ~9]*5L@%N H̔$BW0(E0X@'aYXx#[du|2@H0&P,UmnXT1XpzX|W]`x Vgt%z)kZX׍r=l ɝO͋:n |BDѰW_+-G akfcĂYSfǣP-'c5"Xa0.NL:(50^N9,fAe68l@Ƭ Jc!_6D" Ͽd. O,`0cx%*pobJ"0Ls=P O k5ILV'G^"f2g#^N,%:1+"aUVr @d'Y&LL!38ɩ$Ku( uVh Fr~˖>BdG,nj56ͬm `rš,-f Вbţv|+;O:LR:S8cJJLª*]K0-$L%.&|ر]e,8J׳"o={ p \)Nʭ컾6Y vkl")b,}eGBˊ)9BȢoYmrVt\DUfv(VX_uCM͍blQ}i2I2KF19M-}SQMڊ' #+]|=3sZxy_hqX'/bJ:%%-˫ׯ\N/".S uHke U~}( ?YF:2o$kJ8BdYP-[]`8;f]uly 6iyv n1Í޵my~Hq.$+gжZxga_ w%*`#rǒ΂71g`DB?zQv)\*_jxAd4 5EzJ"wQvUO}AD=)0HflS3'V[WID|/6Tsah-w}8vT8llʝÆ(e֑|Yi:_67hr,Nl)/1rXWi #KfC..c5(HX쇕sx HX6fQLT5þ</<[%F[_?ddrmU _/Ϭqj8Dz˚JܱXlEjc_ZC0bhN,mtHY4&( O:21dMNLO%YZV^@sy_e3::u^sםqqqqqyN3ތAYrfd  ` 6ŊA@((GG2.լH,M5#_5N^y!Tl_dָDE2TlpcHㅫ-!<6-%_аFιx) 93Ct1'azgՑFY UީS:=WJJY)oWǻ)]rpin3 |G+ IJ,\~tN'^ mʼn3yGPGe,%bmSvͰRd0A$˯e%[F`%~CtpD}\o(vqnt_.q,kgvqO<l?}({'8M.qOUvOU)suuNs,X.tfp=\ݮ}LsFU)Sp9wrO<7s5}=^çEnX7bK&byCsfr*lfKF6pqI7TSՖy3U˞\)+}d?h:Nt>X(F[Un'WJ~ZVEՄl]^y=[ c enXaӕϤ wRqNFhwܽM?.zیs#唛jq?m7yM30ߪO}?YIܦygU>絿=Ў~ YY(Θs(G^*<~OkLm("ya)jM25d̔$26"IX4ۉÒH iTl)&bDPpTYb ADFYBJN)tEDua0JbV *RA0Sh['cB|:#h <˧ ]J= (L,L:dq`yd<%c.$s Y魄!8™',9N'5W{ʫv-B_Mxn6\o9GɁӈ>EE qx3;c~U?i#:q'4_.p^V&/l5db$6MJ6{7 &&T]2[^9V%2%׼7c4nB˫ & #5&,ά_{GQy'2R%rM p?m7PON5 a}T9RSYQ>V,]Y՝\ |.~t[ؘVVJ"+륡f>x,9OLLZfmQ:T۬5n+mU76&@'LLm1YPLd$f$|,^ -l3 ӵ7BRn+_+M{TZT)ؔGɂcUWaYڹf^}I<`S ޔl]1C|r~eE|jՇ9M6s~ oZ>pae]2*.TOgU֮X*/.cUooz?sTάqi\REU؜?"h \*\_jyvv7ey)Ys2/uł-c%I 9Y݆k'G(HvW=a}Ր>IUARDp~ԯgrwɓ2$ MkU}|fsו,xr,F{Ϡһ[d2_9HrrY8SC9q9PV[C(Mbal1UO. :JJ7UO_[<>LR gU>絿;efO:ƇT\^Fdf2cfc{+>Y_G tavGZ 7*kNR)}F06*VNZɳǦyp {1k푟6'ev^%0Y#/Fq ط,,6pu,!qU>MsJ锟IU1Qug? ;N4k{PmCAs.7 cd&ɞP˭&UoyeaܟHOj?%m>OMn|/"-#dXf uC5H5=`4{7X>e˞@NtNttNJ$y`O)Ic~U?om\ںdIS>V+ꋉ"]3UosV9<9iqG޷̒b5.MlI r(,+% 2Ts̈́hb-l{ 6, 6fvHĆ: IT1N!v 1JJڀ׋K-{f d; ߍAKLsת9T.U GWQ<.iV oLąKW=TOW]ş=y|Ec柞%184sɣ";v9y11y8sǜr1g){*9ӳ1xʼng"b""a؉.Sήy[.{[~txb'd9AωgNK<te:=μreB#Q[d(D"#d/PȲf1(ʃ Ռvgٟ?V>dS陯H)B>'ictU.Y= `9/,)Fϸ.pPo|g#+س#zsgpc `3S{I}CᓽKAgŧw]8k3k @C}As瑻Es5L+>/ 峽"ת`ι Qj+Qu%>/~qdbEm@=I2wjGT.sOs:ci p%ϋb]8SteSu'=K\atP.}7'N±g>>^pUV*^aZžJ9bf$NE{_hb鵰`J 4dst h6cEI'1^׋̯^ $f-sD+Z*oŌ|>-9^X"Չ䪩ڏ7_kk1< xI4f^ p5ֲdR76ơ^|ssKL8T6&S;:[{ŏ+ÒPSi|t/{BǢN|sug>#WX9אYxF+='33ǒx%7O8LbJ;C999ʷsg^Rn ?&gW皎~o)\9%y^*uVaٮ.):Nzr9&sGms19Nvqufr,Bzb?;vdaVח^k"[1tQLmf9F,evS(* FWgiPQh kl4;5qG`d0G-tea|*zmPyz;)K֑x&,7ޗoL+jɦ)I]!K{O݃ж$}4 6* ypEytƠ#J^z=^"2DzqӟN˱^tVTQ1}IOSjWrK7U+7OWѳvwz1f+, LS/J YN˰}0i5.§j=6+"^h?Nè_1jӂTb2;=~,aRjVD؈SOJ9WVDc6( :od YIҎ[Ua=2^L#W/늾|ap`^#ԈW,l~_R}.yg63Qb]+;O:0Jȝ׉}8\/vu"Dhx#WΎQ˹*DP[-pl+xe\V!C}2V) DR&ь 8+یtg/hz5FŢ(?uo5G=pClf$ ¼ħiGywoظ<*ZeyQ݇C@dc{ys4%]1>Q.댼V2n^}OO/֠ F(z^IF?:oRJ XZc#工_/խfF+n {cgz28oR}2+u)ؔ7Ovav+ҟlg>g.X} |1^NAP}OZH3݌7_}t}(铎[&GNKnytmw-<b#uFuuuFsr?'-kA#3`Km-L×5/9?^G3%kWv=eʺ&U'%5K_D45πTQYoYP}r\M_sꆳ}^9nQW!~l=,d 7gXl zKޜng }Oߦ=iɝp?NW-z)m%8)q_wSS&38>DoSW3޸gOwuv)ιιŔ礊{Jv?Fgd:r]x^ :Gk?(󻯏>VyLLU锔a1s_PLnj=Yg!b 1lS:+eEC/ʻ.5}5't eN3m9 d,QCИ9[_]DgJOR}XY9VȜӳs1]>WUŝuQ{n^Οr,X6yT?DhG{z:;3t6 }IWcK5ُ~DQدJ}ӴZנyze{k.uG` |^_Y/NρYπ-g!;Vcrpˤ,{ǿ˕y~Y/Za.Wã߅+|MpՕDFl_aJgKζ JYjo&f1vzq>zQ#Kn1H?|b@,oOw-]KңuFN+ҟlg>ê*q"T#hxuW& G>}g_J$G_GNr/uTubaЁJ>S[?ysv3Z͝c8rzڰ,~9oBTQG^BS8Qeέ\6=ȞRVXa1Ø~mb:qcv(Q[\d6H E"&;r W٤`x&V v!=5\+vq52u&F3c+ݳ}찢h\|fes4#װ~"|qocK_?Fϗ{zJl+揋gcq^e}?i}Cr˧ܻҗ:?O}uuG/|O}|h%.9JK.nŽR垝(1B:}Ue{:Xח7n9$gZQzd' "cAK~XCN1E$0# b2rURy80%ʮ1A3%>;9 H̖ &k8@X ՄT.r3xX%5ITC❀J֢G{7֬6VzQg*`'XassjVah0Z"`߯O/;=6ګވF|B0nՌcOw+l/=I)9_F}3+[ڈUrgWB}+:7>!AӺw>ޮM٤ޡpB\S-vjwF&"eqguWYUU" X쏗L!b&SmV sc{YBߚn} rAWhA6K~k"B򜠰.!yQ Օ&O,ELV#Q%`I}$s]2e~mTV?\zLpw2P?Nlq>ڣ( QZ1J}ӴC$;cgsNe)o}S$ {=Ak5LYC7_}t_f9=C۟lkp}=#ꃈgȢD^=HiHPz{dhdm&k4 Ke%2DNya#1PN@>MhZqlj-p)-&τ>u䝟Y?+3cc 4X ZJpnbkBӲj͊g_QddG9j Xakwϧ[ɕIS>y9NtsVh_ pYͿUfy9ϞB#qk:kJF?mC=X<UDk;y998ώ1=DtڼZ~_iX_TzY%=H} ]?.9X mb8ݐ)y)y"zw]cl==dGTt@jϫkb4WC~,z4R~%l/}sqZ3\n3XQDPh0A_88;\s"hγ,JV6j(&9·q酱gW 7ҵҵuIas5Ϧ+ =u^`o~OWT\RWIhW{G,&+,k_O}+GK/E9nũzC\ƫU9NSX'ý/_>Y zGcm8W=+> 0g-/ѾwvfM_WJw? F]֧(YObϛh? $ލW-Ukk? h456yw?zCIñ?;?4Ꝯ%O)7" K{Yb,QXC-\VX˪? N8 `躕UZfU ȁP ჎l$>-ldlChvyEq:fM)sZ5Zq)HqZ3<%dJfg`&|8*&lvI gVY)鏈2S_,Q=hلYT ծMvARZl}q8^pU !]Y^_L: & %4;szԾO&)є뻭R! :\ww-l!ˁ6pŅV>*#N&} L72W;GΚ{([G^V_VX^?zG=WO)(ӻ>ץsC?sMew}G} ϩ8~&h~x'➎(m '4V/Ug??x@K8,e GOepWBe|YmҔ /ڔeke_5lnlU vPd_DV.;,2z U֋#~*h[6ZlFSbr—T 䕌.|F^L򏉳%9zġt[kJ2.U:y3α߯ +~ub.ؗ.!~uf>~_<*?DFl>=cV#%*װL"x+5p^]e}t6n-iro&&]S&6S+< ՗]dEuGZ'1~-S BH+ՙBhq=n5_v6<5 og~Iෑ`ţ֠ vI.9^jmq56qm,NY9Z+o{ͥiyTs#ϿģS4]VWOZ2&ǍO*ɰ[>M>6>߆s__ 6/]4 u?,Z}K `O^1ꉙq'bWlAc[uve0]NzECYjδAcvBԩJWKp#0JQn!Nc\FƠ*qXi@g'g KZxsPTsVˆ=+, f’) ֬;%&B`vJ@rm޽·+ou=?_7 ݎ6>߆s_^jLVu5ܦCW,{jwsqYϴ8w |ϱ}G`}z.xz6S=TW ]&=kGǿf]]w_ϫa>{fӫx_N& .~>WrXoa=RKݴ fW~,8P9=-~,S%LS!ck=E}W3??Kk3MC_ IR9fׅtT\Yv$akAU12]$ќa}#+¬W؋IՁm娖h?AEDCH`PŬU0xuGM8p5cw%y­bPCTecS+_pݧ#mgr43n+b܁ ͓$Fh$xGD]j˗fɈmM-@{Ƹ'e <[ S)8Bq=Q=0ql))M8 $ c5e393 ׂ0 ydLFdy9xl_ZMlLXP}zw7H]UkXj\0ys>:M<5cwXpث?᰹E&^rE쟜6D"PhwŒX%I4zZ͢xQ\^@$xQ%EuN_A9UibkkPv׍kNL1=浰 &2<-q zh7^ZGtI,n;ԓ)Nu Plǡ|wzmJ$w-+PXxIAcck=E)|3Gg ICj&mvpmKbyĀ]_jTPrápDY^lWy)l-2[=yg]{;*ΒՏU%,k`KmKBL1XkY#˞lk /50%f.0n |dl!,[!l%hwi\8{d#?y|z!.4v+@ M憿B?(r>߆s_^z="9Rz!?U*g g^.iv2Kqrz-ȰXvPƶkrLGr}IL ;Rʴ͌Ϫ,P5ﯛToUdQoC8YZ`wue܈jYբགྷ7!'Iǯ)׋5pF+PkpDr}zw߆Xmf,%BUUxhkX~Q}y㾩G/aCbPղ`rYVl*Nj;yqA)ijXgi$rslefu'_.&3\e⑭IlJZ,8ͅkl)^lfӗ!7X fqWCfp}OHɲuNˬ2B67Xּ3 f}}{'z^jM61z> P%)&+YY'ũEz(D0Czz,SM=LEU.,X>S>S\4σσσσσσσŬR( "`҈(!?vW([[Q n)$j3w:up1=T|I9bN0!zRZT̈́EVN,Z։Ě sV,5')|6׀K/o_LxK ֊/`"Մ,x|9]~p"W?<{3iL/ I2.i1p}Dg~ ,!%Pfr335fЦNmL*06ScV™́#2Hͣ sXÖepY͘@;5kل0N9sla1[2Z+EFS⒯IWU)4csY@‘Mź]Yo$R$ H5l$Q64lY60(l%icPsR,!{V6p ȎP؀7䮰/Z%`0Y$SPxB_ ZXA_avc$XY&wo FV5­k|{1Yk)P&'5.|+pmPVV-XF\O 6S>Byx[9uy#-U|sczj?u3g'j_6=W>l`WW^6&W1uC_/}z_?#[61Yϗ I헫~ѓ s͔VgDN8^xW2I*=LJh&Up ʠfz1υ.X+kf֊"Jfâ(|z 3zF`+tD QG@{{ `}~Qa?8}3Qc^+Pj3iK*WזSHkY2aҤI)X&RbT+W !nO}U3XR/^^,rh!<^%l3`I5y$UOa\9j_]J&N,z\2%(#گyR6"'\ZҾSWԕUk8[Fgiemu[Nl#K;˷NNE%oZV^5^;.&;^aF@]C㨬05Y_* v-%rt͹9bѱDl# GIT)oZ믱2g e%JߑCWLNl~s?K $ -o]V$x|ѤK>):BpgZV_/ BĠ־Xu<~Sֵƒ-W!_[g KNZ!Wea n /- *4{ Ɏq: (Oʔ;ƶHU9X X Ms&s gInj>re(]d4,/O*٫l僕K7>%=&,@]kQJ\:\/װY3<,gy%&Rh[cYչq؜|$Z֠r ['[d lO8͋.-ŋD5}ЮN؋JX|χR 1bkk$me9dFXh/Z,,[\,uN(狨( t6S E W"6nAY!α?`E1EZl_:Ǟe{`K&9(W$bxO}M I6lX(Օ]!jU aɃ!p3,U1VVꙕ~B?[,2ͬ1.͝Q9e^rؑ (E9.#!JHR(RQc'ّ0z})!ec˟D,pdouϗ󒯛!"BVLd{[) RF^ȅ6Q9eD͉frT+>>T)s™NmLR.fۖZz\"(21J@vZY ]^+u}U[j 9 jasP/H5 0@W7VuFlPSUhZql 35Vut6 @3iq g$il b2k]3urW `$`9,S hIIjl%l2J*c^6@Dl]fL&.x"t2?Dşs,њX$R"E9e.EH!F\:&Gmu]fc13+3cy0%%ןEp#o LXucøIk* Rp:1X.z. skӚ_ 3ZDV_>mf w{d .-|t,Q'kKd4:#(BròumŘd%=1 EsȈ}A!%H>+BP^k컆K` ?b**b8-)iB s^X,-,"y1(,f 6'(`^ [#e1ZY:@Ƭ2}.;+uj*6]g108kDꚌ&p(s z4 (͂IMVcz!,1:'/'F x]}z !WOdમT7Q ~]6F,`e p#Xα˵ (UbΊI/7crRS(O JևOTݲIt6 6oSZ/T3m$JL`b~r!xV;6u.ݔM;lvly Ƕ\OTe~4SOXCC.7P ܥx`<́Rsʖl8\#pw*"g/`7^0ӽ->q6t+#cu• DEpӈRx, ,+.^ʝٱ<-/Q+ M8Zj\2c/U[8>X͊{ʖB"b~Ԕqnm8PQg+T_ ڣ X<YnQj"br!5ǃ-+ \]mȁP|I]mPZ\j1Yc`NT&lTjXuEM]a[ă+(*FǂqnC+|J]I9Y3`MVb2@زV@! ϑQLT*ac+ M@1 ,F$kchuy9)G)W?']pdXmykffQbksbGFHcQ"XM#Xk-!9 EpZ/̰V#xQp,cf@bPc007FC 8.ȘX 7TlEtL[(*ZQE@0f9N NjE0,, N1]y < W p<-2v̶1.6M TYͱl8 BS}a tCzqKuʁû.F^5c83f]6"_31X)vDåD?M&vca>BZޥl2_ dL& jϸƒ/֗dUAqɎ}6(3oHu5ϖ\L |Q}66[^:c.RJꈜn ЈB/P<-JB5g8½Aup~BĘ!C[nb=S.hLgĕavrh5֡> q /z4,bF~$qYvjHtY}Ѹf9ch:V8vV?&j8_}ږ 4٪V,ͅY3,at0햣.Tyuټuvw>ڪ_6;\+;-maED% iȎr d):#l,7_d.>8rg|I؞qoetC;<.-װυQI65yȲ@ٌJr"-.kfljk˅IR*ac+'ٳ2Y[c fW'_+həْ\ ɎyźO_>yl, *DIQg4|٢/Fb%4\<qhӠRd,C \6Bpc_VC@* JPx(kNZ/;V rf .b.!NĪZ&I|A#ӍQ- `0X'Yl(Y9,FsYIM(H|Q}bPQ61eM͛C.}^G s>Y$r9ٱk-CdWϣ6氢~\}W>Pv hk|fDD}l5w>Qe)EgOOL?U]vn|uHmf:Y˿}C؟#U}(փY9VJkbeZ| ]e[:"52ZCMn$]i ^XvV]e-h><푙l[Ϛ&Vo y7^,RyR|.ٚیvS.Z Xb^/B̳9(8X9nyllTyYb\XVDA²Ӆ$m֚L,i+Q+bV2aFf 5OBA#P ap((v\؊Nϙ wi=jQezїbƾ&l]+Fl-JFczBY\*qXXKhrIn7偓Od+ͪG(lV6κRduRѪw sk 9ǂ!/tʹpYj#65kX+ F!>ECu2NIPt+EOU@Շl3h!Drց,Ab:LAa,'j]Il9}1JZ ösN< i`p, ptlO( H763TWbDU>F3bˍ#ۓ.al"(nfW*6'زN 03QXk^![ byp`k{Cglо\r/"-k y̮{>jo0'2~X|b6)fW:p,X^I:wBNk+|Su(,j*2o!ai , }vLsֳ+/.VJ(9"lO o9+8яX1r֮e1Dk@3XɎpOZVA/UF iVǫK8\*s_,Sdž8.gu k/z=Ui^DQ8.5 jVVv($/5LU"*2w8Z.^I8]c _j][2p:Vϰ*ogiK3ݿ*[1,{*z-5}SRу:br T8+$> xV5˅wqkxQW`ewݧ0Sa B[g{ re`8=UWfk iÊA6 `X<0 i޿iʏ0֮ FXɷNV!Cͧ0&I.|}||5NZ9 C &HPo_X{iIԨU-1 .Tu.Τ&6*T+&=mRF:eeǡyAuY=@ʋV-F6Iٯi>4V8kZR<-j09I.z- bK=kԐӚSkk8;m&ZaG1jGT1֮uS\mBUіFIl,a.T+\ 1uMcƹu$SKa2oc%YŏH~Be챭 )[%%9nǎlϮ>|,k` B̲تغ%-/J^ Wrv,av(TjCXffg(҆BE '-)cXhW,oʻ&LD ٟ][Bg| `S`~P͡u|X^Xt!jL eNf.61-xWa-g 6V6poYC S* ,@R.0ʕa.+.UB*H ӵ=͝@]anxN4` ط]݆XW 7w8?]-rör7#eT]G}=Q]c]Zz0%"/Y V"[}b<)^ʌ?tS_fOyMNYμjq)uXvחg7X}uQ lqX؞—}lG vuI.Z,]K>He阭_uUpUvk r pTA[+\͓Y.XM ~=|Ik>ev;?,pz >u(eJxYyד.7uTdvRQ} @Oaٯ.[[=;HcfĆ-ƢYu_k=}t(e֑l9uV gB>1YZaۿ7!12A"P3a @Qq04BR`#? Oyҙ2?>?2%ύ/:)ȇ>4fT#ӒK΋W8rg܉ܔ9Vu.:nxG~jID9$J4VF{r''MIѹӑ8T}#ɺE`/?J?pMs;Yp%$d!;ª,D*`(&Ԋ H I> ͈s;7\m' b6;Hs%-&"͎9s%$m.L;b7b;HL|Idm;v7ٲƠWg JNLm3b"sf?HC{x9PGu9FI^GJy&-d IҒہ_ہ]\nIrG6މΊqq5( O#m*_1 -Q(XvVʜ nt:&CƗ/:&vE.G/:)Ƚ< <4hՊy*%BSLtC9KpRʟSƗȤLh-% 9JrT++gHsNGbZfT䥎|iy$1{r'STi:+ ܏ԉӒDAΎhZDh/X%܋ Ȝ \ rR6qqɁfE*Rpr'$yS XjDy"{HqU68!TmBQr'"pDܟ^I AϾrq'm#Prpwn1b"n(989%$cm (9-ODGF6ol9;Nv؍'ET8NnUId''qǽ5Rp%:EHѨ)m'FƠkhGh볋 !9"FJNpA6;Dv%:%m"ӣQP%'hMh /W#pDͨOWdrMHR+5ZRhҍiJ [Un77<-)CnHs-Szq_qƊ#KF5V4Ce(#܉Ȝi7(nN S^tP5"[89&$L؈9~j}89U ܊qEDJ8m"H"pr'>M¦zy;kqŽ냓8!y 2uԏ uҤTƠyJ7xejjeyz֊73+10]E%#P< yJU;t10H3>NTsn ru110])mFh O#qcrvnFMׂ.j0RgpM%,#)Tfj%ӆeVWJt+s2¾tURWNצSou6*P̧q]+adRК3;\ȤџV0{$QG'ᙜj*4e*LLj0śJku(RD[FTq7}79җ%H㰮77}%Έ0>p̎&-_1d-ePg.Q1mAz2¾ty1AVN8ܱ-NU^fp%2UNڌi0 {e{ ıV!ǝ!F(ǏLE:)TEyN3AX8eueUn&gR`,> a_&;0iAŚ&w TSƊaLۈWcw7VSomRdx3=a|&kaaU/&ئ<4iThߕȧW\OΗ0gg)n)dPuW|FW0 a_&K\/LJLXlţu&=j2L mĒ 6ڠɔi0 i1&xPagsDfRTsr)kIQj4kT:)1&|:Xe Xm*\[׸á {2?I֪Weu- ,: Q*1j#!C3K55,(<(6>grde}7y uJ 2<EUK2L1a3=aª|'Np%4pdVxTγFN70ph )GXQF"dzn¦NS xGQ3/)\j|?N^zJ:f^MD[!s'1,+#M,?2԰V37#B#_(}#LU:wbYL5yL'tܾTDPSĥJ?bOȨSed*QpY,Y, hua--hfwW ~zNDh#꓁;F 6&Ѧk#4FWҹ1z3|uuu*qd~ v2W8TRfZåRXC)v:U)^W̦r?իb:QbeGL=%O/V[ӱx T~c|<7Q_]Ħ2ߛ4n_X} gv)1 ;Y?YWnUUEE,Je0*29w2 J3C(ɍ&߹*tTO3UCmiv7Qck7ZjrpwnloȞ n9pFoWrXbWf ~!VOO~"Rd/;OY!F=":OuR3fk0݊d?2#jGӱiU&YF!4\>U|4,5I׳ 0f%[(m`U8VOv;Hrv77x6PrvLXOhGDcvUztm.M,ᯅW:R:8Ci2+2FDGiF:Oפ|*;XG]čNixS?VSfu*?y*j, kK:OrGQϚ:cT`}S) JGRš -UseFwTf>vTBiN7\6ML\nF;)iѨ)w:, t\y虚1!WWTc9^a+[YYN4PHmRdQu?^vcq+*urtIUnf7𙍗XTpEG&q _Z虊k1U1(ُKS{"2f*­Aīl5C*t.&Uu/\ opX7\Ljq[TFAs/0iŦi3/7&'AOҎӫպ5j {bk cYqV:FnQֳd\b"ӯ}gIVgԏ~9Q1F='ctM|UBpu*?y1&U]Rdzu9K3Xẘߏ&KSG |f/AĢ6b4 w0kX*ײf_4es4f(Ia1z$Nұ2N}2UL~?O%NqdqWvWW"F܎Qv:U˸auLbɜxnMYՖu&Sa֣W2Σ%;p슱-\M&SֲN3L2U2\:StRe12ֲNjjphوfFg1V;_'Ggy똏3R~:TW_ {gy j\ׇNCb'KoxP1]={^Frп3yl˜v*5J0zs lªƧf3Wg&[?S:PbeXTj^LZ+Xz|[f:sULێ Z+YҊg Gtҹ*<vWW*mi.tMR)nTѷ:^FiiñElx'cSzKTб*Ūv\ ΒogĨ7gESE5MTNeLNJ_XUNS{}=Le7U'Ũ֯Jq?N%SC1r>,S*SKΊFq_qKyN|"䯝+0&**\TbrQt䘠*P*PV YU `jqपiFĮTR;RU"Η*?"ྗnG:tZU:'>岪;e\ 䧵aTvʔwR*% MSWƟm:'\·#SMmrr%qX܎JtHRΑ}(TV:>FQWҢ4N45)S= RI$̈́jY$^t߁89/:%"΍NJyTQE%E:TRU*E,4nN=(I0Dܸ6hԒLD"pDHع2%qԓJxҧbUP:ZJ#R'\rRڻӸjMcinwq0Dܓmd9PsrH&D8_%<iOEBRm6%E%\ *ZSS(=qr:Tm*'uӸ#q1b ׂ$8;U^D989]"ԛtjJT 6%"M HFĠtɵYJr?H7n1b~#q1b{ӹ I4NNFuFAv9)4&\:M׍9z*qB7 $@s O#m=%R)#p+6Dc*prJ%NuD җ>)*NΔϑʄ9%Ί|| |p"#zTޏΔϿRTSTtgQOҩ-3# T!Ξ%3a| gJd|ϟ}[߁Y|itZRDT.Y"#)PsR&5NtKEmjQȓ)P;)P5"5tܒ/Pr%چETDw9|(an @Ǿr+!`rDJQ5'hԒDCRYo:m2%"Ps^DǘVӸ`t> dJ TvRLXnF9#m㴍RLS$*NNI Gt؈;ӸӸI,Go$L;NFjMm7H|IrvMع;FӸn=^G;n*pr7#pmq \NGk89 h qbIf݈=h7#q+< Ԯ7#p}$v9&b^EU7_DDW7_M$ta9FI;+ XqDJ\¹SIފTXm蜎.FJi 4)r;+ xzXvv7:&vE21r.>.FSѷ:9*bΐF XsOʊ`ts:)> F"΍9ѿئF/S:S>tSz>EJb%SKyzQQKOEHs9KPCrUt+1XEHEIE:-jBΒFh!Ϗ}ۑzG~jt詇Q*R'"~ Iҡ[ N}"%+j7"'*°J3@/O#Rv؉rI(`UA 0B/$9jIm7X(owQԜ Ny4Jѭũb(JDF"EQ"P;r;Nt$o$Ap57B7ZhnNӸGqy$6Ϲvi# q9"パ#uɁ)7bNXjK+$D#{lDh#2DivƓ"rYowq;HLW( ;FT&JGO98;%:`w'm|LJ4;qj~&BU STJImBBr;iN7^98N 6ؑ#?O#4}S{ӻyc+ wnD Ί# 'r;p+7#q4Ή+ѻ6L#<sr; Hƍ%ΉO蒂t7 m.tM_rTO#Ҥvn4oIsle77*m{#9/#)_q(-)ئ|O|L^tFAO%E<HΊgJdbOq}&'qRbਧDrUAYASҧ}:R> Jx*7֥arTRVS}ZR> J)?7!1"2AP#BQa3@ 04`$qR?Sh>.aQB&E*cX'pQӱ;1ʶJVALWo\͍h-}k.?q_?Sʃ-_U2> c1?8a,DbwT|jݘ:!_5Ø1Q q,cS%?){^5Z%2 a\=t$Dp`Nk$n; #=N SUF\#~ yU ZZ2FIŻ`}gc6Lq1's/\e 6g40&!{LE԰K>S!LZ*j6r02W)TLFQSb\RO-<Ʃ*F1xT?ձ7r7yN!`}M 6=D.#io.^?Y?HeѽQ0+)[̏.'16wbuCã.X^\ʀ'}:og DUas #SHI9 j!$nT,8cqkM$D%=qS)nczDU+خT ANXD ~]\w؅T-AnTNN.c]8{jSە2ە2BmR|JJV-JxpqcL~Zk&7z6?Ҡ.?ջ9R5)PP0JP1 PTbʬԥ`w*{JvoXB/ .=Ebum}D*>]\wVmm5nT].?^?ckj Qk9.-q!t,oiwXEOFX@byvR`s>2vfk|:"D7;d1b9N>d-{}{[w쩉eZ"c&)SP@pL1,")CsQ7hjcs\(6l!R9M;jQ뜸AhA;٪]m#&#iE!h#/bd)i `Qi-B8#(2Zz;]EmXB-ۛE˘,cs<=f&יqy09D a Ke-)g_Zx .MS.^?Y3PmO)")[.* qLB8MB"ЩM?| M /2K d/ih=P^diPT Z`mJсB&H,&>Oi5}>[Jy~׶ەA]8=6qoYJW|JvƵcmv6JW܍E*7}v*Drg*x De^c0:yixj_]O!^PX̷zlOXE=sa8юRa1/)<312ED RA,cS%.8 ypt"!Ssj'bXc27 ~Q;:s=OtKʽKTN?2_X)V6yy=BySUYyfkQ]̡Xc/R %A3Pjy _)T>w D<ENg/J2T9 jciџʎ\RjE~?h(VL&?*bT!]aA{OS5oXAaѨc/\O ]LA9K[wmL?iͭ).LEUo,_QIWng@7 }g@@AU/5TOLM]̍?X)f@@'Z-Rt N椹ϰ-+|3\6`a [R1OӤR/y[{*gJЂ  ';5U%_n%OV;,'YȔb/Me/" SSfdi Zx/Z0(X8A ơ@hO; n+԰Q:vQ7qӪK-?Ό_R7k΄Sq|;W2b%C'WNS|uۧ J_1ET603hJ#:EN!o)6Ky..aPgP!G?FϘ5 4̈́\̊ `f֘D|VhosSi`0=ͥGutCe*w(u-GQznL+E'N'(P/VrWМΎ ey'õKYOm+|On%TZ:6t:ȇX\Ԕ&UBbu*|踕W!hi?5LqzBA(GsӁCy_T0<} qԦc-0VP]l#fl'}b)]nbk>Pj)nu=2o=5A􃦨e>s /<+t%6?iJ1{#}b.|AJQl{U\? (Pdku+K :r:>]V=L):FJJL{9+ PX5/uVuR%ԫt*8ݿOkʽ ҨS82MNLSդkNOsuV~_kUaKwTtzCzO5|AO8tv}Nj8U q|Kt_W>?Iҡ*5)h}OER7 pfE )&T r u)na"[\o=k'Q2Yq{)h:yE[ wu_O6WAJO?;)u2:Q~~e(lܥf:lkt)Wz_!-:'KE`/%oGL*}GakR?YWJx־Y0|uiRԥo{_R?0QD^ڈ K ٱ>?%־ -:yg^?;W?5 *:]?G'Klc?: ŎFtL3x&P,Yu%z~*bSu7VjIRN >~yJ+Λj pej~'+3.o)Ʊ:)Lwa;H#Q4}B ԦTsgQ \;66Ԧla[r']@Eؕݜŵuw*1uňӭL~Ө#4 ]@q7.FeR>@ZOde |m Nuy0*DOYD DQkx~ ~XN-jB=(ܥ'L|u|2#H=7MsF :UD65w`óO3ȸَT9b:(;6 ۱c ʊ[p;d1f`F9 ScsyMO"]ڒ#ey;R\;blUqn7u?(pF8ʋ۵>}SfVH-uz1F_ -1#5@(nczXwuLIcٛ8:% 77-ؽb7oub8QcޟL+.IdGlVΧۧ[ R,XΡn2pgS2䶕u>ԩc0AxX=,;b)n"Xi帴œ"X71AGsu WRŷ"k,Zm mn:g `0푵|y0V(`R䷔RԶ:oy @1C6QB,m:n ~"P~Sl5Gsa0fl8QS.i1i'i ^&-Лge#heF0!"mhPxXRPT5<%M.mib7P͹fXW+ޟJ3kfMO"tv-Z~%6ky-Χ% W{tqn:tUYx_MC7H3k[> d!>/ ű7T0.̹ Zx9Lw.jB2␴hX F3d*.ee)rP7mKqkfן^Ԫ2ASJU*U]m(jSl=uedl+*v몭JĬJnoR ;:̍?YB"5<` 0MMǵ4͠L_X)o264KeM0ޛEЂ/ mmF\ ۙr*6f%<(@3E͡T .c1_Q<~q.O1!|N5 bPE\ˑ\;1:){1.fmkB-:aE6W-#)fDǧ&A8ŵ)nc6&C-̿\o.N[r A>0FRȡoGE͌qԦ&F7(߸A871FDj2(X eD .>r;R?YaٰPs'=)yύb)`}bRq\uقQm}ǵbJjnEݜ.0sSߞԥkTZ΢JaQm}ʅIԥkTBo2n\mqN9# _qK_q}D OQah׌EeLmLo~?Bbv&k1j ʌ4wΥ6XRo"bF%[Kj#͗)9#`w Qcnjb-ḃF3)KKd0bWf;] v)CIsz0ޡjb[si|lIu7*b-0b/ O\f$n3b;fb 7ujXݼ-9&s7 x SAzgqgnbrk!С]r4%2W)mxjd-+4ۘ e+,/26b@jMMMc*gap&/3=e3xIf陷?{ 7f SPS,/36(\*Sr桴 3u CKŨSPsmhiŹ~ГP͡S]L X3hf0D|ta@۞@ ^ɗ)#SPL͹1Tށ2晰f@ udmhɈmB̹͡CB6lޱsl@ 1TeLFօ\2mgSlg6jLKPб}B=0\^"byaϔo:ͮT^\<~"{US M9cS^O3`Ccp:20@/.D^2b/9=6L3i`w K5"S#iQ=͌uf%x_v}e0TЊ`q̨x0SPpnbYa̹cc* Q0>"wbm)nasto/FFTPQ#Sa,9+N7.leE _sbuwGbTOe΢2^ΫMʀRGPGk U@%R`7DU+sq}(8Qb}XJJ1سgn?Ҡ 5[}{ [kJ+J!\wKeV֋k_R7c,W ño*{_&?u5nW%LL=[q]y*m}ǵe<T< m޸?w)ʋQ:6]J@;A:>'TS1e+a٣{.hI7:@920f7^[;E`ۇcQ}Or BkG=n.61D0!km٪[B;eS`L% yEЩ\lʞQN'pE`6ӈ4clg#(oLEL(1.!$q#SBSP|4&! K5A̶^(Ry4Π_&eL ~Bc0 F UsҠ\6W. /Qe@1@Rmʂ)hyL!1A"Q2aq `r3BR#0@Psbt45p$CcDSd? 5KZ7V?^ 8?ʝJ$("Ts);klIW :ǩeՒErcԀsmU#OopCPt@ UPMi֜%֥ أE P2Yׇz|bu'oQn6 ` +E+ʁu(*Ct:4VbJ+mnvPye6\v0\pEtCTGU@l* ƽkp0F$&Ckt㢊&Z*G0%'9i\==2e  ?fD(;-ack+)"+cL'f(OE3@м +tJ&"?VKTpzho(hWFRs~ (Hd"AiEQre^[@p,X2j包v|E!dvZZ hiFB|їi4`ڎK64  QPh7*F#`SquSyRkmpﯷ W0P2:ͧE-n +RJ$p.c*FC| wUº`]])U.vOUKJ@pEs[arW3e@Y8 ٻ}NNn@K~tivv'tܑ[\m! () (5zp Qz<2:'1O042maBm۪Qn]1YCuMg۩- V։*5=L+ cW A*fZ] Ү~ol*\5]P \g+ ӪFihY]*kr*;*[@$4F4/2oƣ1DM N%[95@pn̓F AhM5DQ'z0fu;k@D4)CD.*!b"|tE,=4-~'tZq5ⅹz=S J`v4-Blg;-SB$ :'4jB2 F-2+TnLMnk+X7Mam24 -! Թ#kYLZEA"Wn<(tPc9eHqMwU"yF 4sI{vƥI2BƘXLN!]q@% yLt&3CvE"ӵ 'E˩L\ڷzXn*ilJnZOn9rjDHC`+r.4C֡+[X:| ǚ`Q{7_,Eϒ/w*Jʺ]**u NwE#E/v+sLJ-+.+T^`Wpc4X{d.;B/Ik `+/Qt, t+>ܗD8oVP-'/9)74hN%- F *ͩE]'᪺Fi2*s[5x+azF;pQwKuSq!䣺<4J br4!Ei G[ (xCAi ޔ[rprs N˫KVР?+q\Uڠ|եT4 eea\FT uUVL+v+B'\Vɭq`%8 5LGsxLW+Z'swv+#]?jh۴B4Nu:"j 6hL>bF2u>Scz:56:j>thTɹ քDȫ~.oQzM>Hh4gZ lFFVoI TaKL)q#ZZԫ`sgNqs3WpgZE:R2z{K~Jt]A9iSQS''\܅qfihp&h I]+"V9TuiTV— Zf*AXqsas||W1R!IRЈk$+ɲ1 YZA N{rħҭ4 Favg i4pHݽ:M7t(\q41A46< b;>Smk˶ȹ]gDSppj2j rA֌vSЅ"!De5TQX4㯶dʝVX$RKEE-tadʽZ; nጝɔ  l(-+ TZvlX-> ~iwmZ@c⤴J.Sw\q9Mڬ .(8oB㲂mF$qVí4M]BD3c[3[ \aH҄K[ (&?!otP9Hע'\ q@E8z,Q:HXTo^1L %HmҖw&4ĠΔ-;KQ!L[Z+]]D"ctFvh]jnF;ZWhV+ӥ ݘZ:6 IE1FcFGNҎpI)9 JrC% .+Q@XD ddWވ;._̠&hqY8KF"[V*hbJAS*. "Ҽʟ]£`6rX^%EF@hQ, AvQʀ%Qrf&PfB%/+Bġ=Uq9Ckv|P+My*f3G1]z B^!wPU5S[3RӡX~W'ۓ; "NlNzNFoGp; F9Pi4.ODEB[N NJoS!4HX~ݨHPr[sNEmLWg۹ 3^RGW8Xs|М ee->Ew@Qf ~Q]{+Br+@m8Dʉ]ZW{Jˌ.WJT ph$PeCh[sNr.2TFGPE a*!CHW.-nTSv]wM!8@ ([Q(QCFQ)taH ևLygj0l&8L@ގToV.Z2iNuSMcUH"?c`s,` pA|A(.y1+puh_6 ?%/t挭.&ʁq;lpsՖax)9VhxI]1HԙZF8AZ\(7VkaH23A]Qi\P+G!>5u͔OZTNQ-mZoRbQ`2MNe(7q惕 ƘCVD8]dGJsLPEjA]К@RgОQk 9t#5~IBZdjXͷV\jлUiRfpopBq1z=sW7ʤ4Nd`qQsaQaM.oy?AB M!kcjo%sM:.PiV04eB_5%Z8$⡯c &t\k!: -*[uMoOmn.!nQ(*R]|* ;NhN]`P֘F]ԹUEADoGВyBQk)hޗ(9UmrP!4Pitք($jT> u(WяmmҲߒVqYqyJMl\%!_:QkWk^a* .b~4uiV@\BP u*.S 4 +.\tR%t* d9(]B+& )jC-KIjēQJ"ݘ4ZJxn@ $`C IThSҮO^mDh0BviNGF$KUȣ[ S4sbgjvDmt(0H5#`>϶\  %\bb!H0T+]iA8DV% !,S+3ΎBs+UOa[Up3!z76%a5[p] +H\DT0rz+@(VD()q!S6U4Jz+H8> 根KL%+tP!r P *FGJ;ɿz4NJs|ަt@'[ݚ Ӕf?f#M4ԟ6hbFDh 9+tTt8hThd҄!(ƫ)65BW]U SX0wtx\L LLPߚ,aj+aJ*Za5q2thQL'r8!D,8+5W p5(*H9zVۄre`+\8%I, ꡀBrJ6W;Z56欅'El@)d x ލq]pqU$sKt\tG vތ'Ѫ h:дjB$i[ AD ꁂ* s+݊SZubj0B70ӰAW(TFSA֜FMѸVnC)kEsL@s8-4%ȭ0̴׽̈:Z0n&iIRp262|Fz| W Pc;]ZA—lZk%\+gPTPAEPzZP%+@# `J.* `V։rumkdpӓ.caItx)P(n&15 I-ffEk?gz[` BΦ.9(tNut!4QG7Pm#tsNTjk7r8mCNYqއ΄h(\u4- +{3pr ." bq([4 [l"ޔ.~GEsEyĨP5r.vM"z-V?[@7jv捍EZB͖ku( Z6Fk{{uQl֜))pDEsRuq"G;uIX׍7S u4%XъBr58WAҀBM >UUq2kqAABӡX";}9a 9 !2.BxQiRHݢiRZ%ID05. OʒwIԩ- 7\Ha%a (Gx _V2QsZ ޞx\Pxh4B!Pf $FV!9J"*\!nj9(5CdP8;1O4Fɮ:ѝ(hކpL4i˺h Zݍ !Z S4'dA4 !tRJpN-&֎pL},.`BGE:,4AzIRXa\hP%s46R֒B9:%sUWַࡢh*)$IPҧl*n1@ ]8X2n5R,Iԩ ࡭$VHVi=W,w2|`yV"* my:~d!h٣h=u[BFtFɱޣgIt!.j>WloDuX F1WI)kjN\mJmҒ5Ru<ة2N)Q讙SK $3΁4qh~ŽTGeEnqA@\ZiF:}hduEjk"*<@!M=BN[ңrU°CKVDƌRVʃ^5VE wyPpѭn%dʵJY.Ej\1L쒜H E5>PW|X0SMĬD x{hZ E)vPtiPk;):NwZТd8 . N\]1Q![Ia֪+{HX"҂5 ќn@[Y+.:6HEzhlN ,fehPwE$ǂ]ҋ_!&:F`\.mMs1P\$-7em[҅ \JN-[҅3hG8jk᪱S)NvjC0ގwD'#C C):\~-(0-@oE {*e[r3^og!\)4BɊI\%C-RL.R ]]eRSAFW9rDJR d/$0|Tqi-QyT*~zSkUjScXrN&­DmgIDcLWPzi]vtkGzPh߸i]wy6huM4Y:hbu^5FݢtѴuڧ)iANOhvad+RrTƒµJP q*Z0r_n=x`TLBѕ FAivU@hQ)x;hTʗ4i6W;@9PD!sstZR۳M.FQqiL , *H2T8B&1MTT \ʆzSKMhɠ%\t6$'Iڡ2E:+Z[ZGJ([t8Zihuأ5QSA֟ 7—D;F] F#zr7oqN r V`hvNK\`ޣ?4wZzS*fEnqTJs(p2+.1*@rZ8V3\-\8RJyS^B)k;Եctq+ `urz)*ۯhh\t ؄it5X-jԻ@8jX;iMuBs]4MfW.3CȸjZ*@ 7-"҃h[FPoJ8S@E4-jܢ]-Ц W6qVh h]]pN*@~z>x hAin&P&ge{1@ު"|Ut\">+s,n!X5 ꦅ۠VDFh օ:& A5J*x:Ԇ@FEmȔ\TV* ~=CG[1Z .(7?upNu'PuV@MC'?NJ>*d ԴIg0(WxZF\Mչ I)E#B&`QqN$qshNyp`^(㛭F=P-@'7=!Sdo@ i͠Vf(Q`(9j5W|(4`G;E4ԫ\n!sj(%:T5kYh PHX =*5VI+((~?ziFVj[* Hx) $ Xo2J4kZ\%dAP%I+0 X¬|9]XVek仲!rRѵn.&BUEty-5R(Z(i.r] \dT1p]ܢu+(ٵ_ZV`iFBAT 7D2ފwChQkuFn%O*7 l#Kօ8W3gmNk蹴#<[ݓSZ93aNx]ҴZ,ܴ+7JЮ@P8ea VZBЬ]xMm5+SH>qwJ1).Y E$t]´pZ-w gsqaYkq˸Vw=CN,K} aJėtn%IP2ދNCp _yO`(h\TwΝy8* OUT:,zNn`.͉Rа,n˘bq*$p\ v5Tq@D3wAv.c Zef@6E@+)A6O8^'zO*:'-@*_P8P[gvVۢoZ QG7']FT#DFFGD]HM`9A&N项t*F(Sv ͫ.rÜ~!}]9M1*vWh:iyF8Y"XZ\1)bըZ]A38c4 ׋yЮ7hlT=SWP P\>!{ahW΁u_dvGX6vGkIY\XI-!AH0W3\MSW+}(?5mP>j曗E*{]ZȴP7B0CE/=L⸧+V( r1Pўjޡ[iMoAKˉN$K;UλSNׯj5Pu5t+1 u4fpWΜ/)cF YECv}pЋtX0/SwYxC DA# ^jpԡ]VUkE4pD?T\4P5MiF4kZf);#nJ3`"%CxơETo u-~A[-M.Dp:ZV 'NfMӃ9HNpfL.ꓗS8U 95PpW5t+[. zql @9[tPF!N'jZW"QKݟ^Pj5h컡 fGE$(tV!L(@().(٠ku;QosQm:]OHoP{€OO:+i]D;QBSqWů(W+>z|:8G)ȡݨ\ox4jj(  >~+8q[i.\o?[{ZBO/[ߜ5XRO^Y!ܐ"xT E( EI苎kE&UZ+VH&GKbFȸB3֏Էi*awQOѧ!ЃFa Zp|(BHzZihZz_*΅s74յt+18DҌ|sNZ-=Bt`umua(WiwB{仡ix>^rQxEsIsI4mFҎ.Vhý:KD}!Pxj(٣<` fwNhҁD-:5P#NKqGʜ4 iQn'{!Ou_䇩ůUo pSG6΅qF!BQ{X78_ z@0NF .¡7x>%\ӁD!EW,y*4Yss \l)Ii ZD5rC+ATaH "U W3aZ2. ip+NBqQ8oBn=Ne~*W[C]GBJ&_GW~x(h# B;)-0 ,1C8)&TPdqR!KQsZP2w+?x}Ү+P3687Lr]p\0"cxvc%sf> ?¾+_U6p(X|8?]48 `j أFSCD,55?4O =O8rwhZ]|ռ0@hww]A6>+G|fsq#\oU-tΫw\3]3`|9?g~t]r|BphǖLNv~KG|֎4LK &ySxG-ߊ=.n+/~yv#ݷYv?v?D̮^۟q{9ǥ<9q\G_:6F}ѹL콜_~o|W{Sÿɛrvq]\aw4-_3=1#lB?/.OڿK}|{L,v@ 1??:vƗGZkK.'q!>dVH)!`y ua("^@!=byH5עS`S`G1A+B- CL RT[c.?sa}"??]I4Lk迥-GݓS?_~t0_G#N?iu}aᶳ:.O3 `O`}^:vq*v{m0 5~9 ǫO~n^<\x?]dz7/j[on/ݦ\MY<!˲kNh{E:Uv҂w ئުLN]Pf|s;Pk2zTݡ>4gBިf"]ب{D ҋި6?l??]>v.7ݖ<']uNN({}'Ν |F}.^ þ!p{C;V;'ѭ?O5ھpD3j`/lz`!??\f?K< #cZvv۸DŽx rb\#33ao`< iIDqg-8 p~go q;q:G7WO/Ѿ1ў;W8L.(;_?=#hcG]&7OGx{?:vV@=ߊ[IWV{OQ_Ҧ(b+!F5 -(8h]ख़D;W>\-mZHv<(QT6# uA J%ZƤ-V4khSxVU& &]YiAjO-onxдj(pn?}%nGp .>/ik2 h˿8ٸ>#bΝ |F.]tqjoWisLqxߡg_WfO gy o?Ogp>ޏ??\GwK?W%hgG^?O?_FƿF{K~u.q2J]69f읱kz_>7ผn3u+o?״ ߕȫNSڜ \> 2!8M֊})emo⾿<_pNvwp /?:<@.>!v'4G pM8yx%^ A]Nxa]w?vr p-6|#uj<'Ga65vvI<3ք5d.རKP40ohn)ofu 1xep-8m T.77xp^>Wv^38.44G`8FKN!8RE펵⿳v~'ҷѰ;7x0p@3;gh{5v^ aA^?=ɿ= ;'g/yOsOhy3<0\ ~ ͍?gA?h~CGϨZ-8 ٙٸN氐[7?BHؘnh(y~z:S#z$9MĠQN'T:AF҄Lي8)FU-5vH.YoB sz4x&ۉXpCq;5@űi:źˋj9"bXw4g}&8z\Sui0}N/ki>;l3A}{[lƙk\=鸨R!N.ص]1;+dz,? U:`\ǂ עlhҲUT8)neKT V')i\—+ix+b*"9. eCjܨuO)Zt A5LxBjiњcpxGGq}^Nw`&JkۡN>avc۶OMҎXB&⇤Q(٣6*S9Smlk6 4tkktQoh:>VG\1Bu7B4ޭs FNtSWl4vtJg j ѠSQ:):8csݜkƭ2׋=p<!hð:;vi4G^E8~4g4@ P8Ghv@60Ltε6]| P ZSmwSjvPjnގT PSp+sr kNE8!AǍZe U0E~WӇQuN1EYlA<_tׁӁhr|:ͫh<F۾o =P` ؂V(kd+%r+mVs6Q.\gڇ6Jr~AR悺pSUZELVhumϚ$RrUV 'dRNy)RvQnиb m>9RWwtSv%S):)  .7{kpݾ_tׁӁhrG;VM7V]Akw8hE4}cVꃝ*@loU4&9N(PB/v&tbutKJAZ u-IZU\duMoJW}& p2ЃΨm zmTPhBg)P<}N7 E/قoN*ۘn:B/B"Nj\6'GdS=p<Uv:2(< `_~ȧC2jX+dVȕ+ ci!0c+D]MХwBЄ%q^Ar;z]Ѣ -嬜#"J-)*cm[m \vV5QAyz(!F+v3N7.: 4w<^{ Ze5B%q}^Nʻnզ*<8|1vMn[ph}S9}S97{ .xL#nPm ފJY "ޫ!Z\%^!D4W\h /z 4īuieܵD,knikSxCi苝ktT4-;+c&UE8 j5WMhN)`q1Z5&4hU=ug^举ݧ;C|Qi?ȀNfA&1 `@NpRNSvL9n2d:(Xv`0,vhJ$:D@BL0` :E(T\0pu W]M=E9u*Ǚ2 pR'uEDg\zV]/AC5,xG #+.?(=(pOId?(ID ?(144w 5 %PE}OõdzV]e}O?+W_S"!A9]u&ʀTo'e 9Yת땤z0Lh+TAЮWaz'w+dCPW.B%ڕK1LWMc'$:D4 .Ms{\.¼U!uoEdn+kkpÕ9Qu.3R8}JsN@5BtqnA2ʄI.ohSmAsum1FQ`"[GbhP9!kP NqnA&j>hkChNhi uAZ P|W0P R鴡W+4:as\T\#6WGu] $`\qV8, BR5\΅-20P _yN\(Q]C[pըGy"ҋc\%Cԋ*Z*J3^c5(kS$-*VOΉ#:N(:gM7G[ nУ:FgX6Ntk :ځ jXҎ4MZDv* (Ntk'MPgZScp]PܣGt\tr7*ދR x\ "B(,`TӫTD(9*ZCू\zh!Nrir-o[Ю`DR[B ʍJ9襧֓4ȔL@Z PpYfwڕ !Hς1 )ť5UU 9ue~h=(` 9UMZ5  :wNw٠#juxM]!8MުPioGAD k4&0Sp Zn"*PoP\dS;Q*ƛW3M  #!IhEވTV3^֤0`+qPWP4hUCDtr)u6W 6&pX ACK@8@5cꤴJXf-+ -:M [bGT⭋MsT%UA8hT E69@V9B!'#y{uQl )!;>(7H(=%еs`V|ץuVesjin9TyE79{ TAWު1FXW7umLwS[Ґ5 mPfP)UP 9DuPB/v jv?}s+d9&@ -vHބR: &ԡsMl~Yy@NxB򃷡=uku;Z[CyfD-3Pé۠ 0ֈy-S. jvƾ ~([Z6MQ%&gJMbp4J ڜhTS 6ftj-/YF4N>5>luliY0LQxt‹exSfim<:P0W0ʆ $ \[Z2D5 Z4;*$)ht)i'^rl)*\`+A Z2Tʒ2 .VDz7)+@ ϕ"DZ*\`)i%Gtx(p 2F^CrR>JA 9 @ϊ+ʗ6O #D]h*h5u2fMZ87T]Uf(Q9Pl3jASCz&Rv)4sB%&F K)h+>=~Aav8*O="&Tn-' X * `.a+hb uR4Z+` $jh(])HhhkNJ!ZFJt\\z,XVr$컼"BRL)VD 8RN->k.0dW‰| d.WB2ጕ8R$VD`Bq"Dy([E -DB:m): u+-H(oG5[i֝ht)Ut4sz" >tơ^Td zꀠ CQi*ު6ꀠ d9Va"dzy! cohPu>zyד@ޅf! kuV?Zhиji$HVe W^eD"uc%t -֙iFsM@JEb9zw: IR1[?cMzݷ\U(* z)(;-h\ em} 1SguAօ-ޔSnB Vba\Lw*  rp(ZP{Bޫc0* 5ג;s6n*5cDwTl5R ~!33&0HBJ \kpv4{i!ɮCwE7B[wB]"3ٍOE3@A7[nWAx8 %J<2dTÈ 1@Zᚖ+-l"޶T֒(8(!OHDLCejcLu@bIAhJ`tMw_l(*N\VTlV-ABByӥn+;nS 5 Ѡ]2 2s5E(BpQ̓n[t]IV+pni: e}օɓ[]x{&݄rox!~SJfLtP4Q>>ӥFr:Ѡ`n%h U@ q;~|j1 ]ѡhPCG)FP5noYIji[Zm m34Zٔ *J Țdǩɦk(QThPjlP(Q֨δi UuN'J5e6 ( BtP87T9b;AM]tУ)cB)kL&$)Dceiф4bj *ᠭ?h9 PlSOkrAzKBj+q[LPVd+ z+\ J%c]}sd+mTNreЃKn VAs7 E:|͕@P*+HႤlJn.:lBZ zPY9\ସ$Q{.S &J9QPBqsBu==+9XVdLc _kZ`$3zgSBѪv+ȁSށ H)ؚ44qhZy<8&0bss\!![i*vHVhZ(&ju0QˍR M  bvrԷ&5_k;XF]#@Mbh7Z .NЊXa r6Y2 =0hq$(UӥNNJɐ±ٚޗ9Kj@0-vuګDPpYh+  I*|hDO-w@V> vVDtJ #8+ٟ{Pp nmPoJc0 ZX"6pւpBHZHD 8@ZP){2b6hE- WGiE.n~'4Cj^Dieږ]2khs83\MC_V3M)ߢ.]҄Nn.^SʃhA_`')Bنv Ѓh-ԫ @FFEhoB`=js͘ށQOF+f=gQBF=}b`QvA%DUģvEIN1P AL3K5-o_vȂ+cLn{W`(`ٙ8BnUHn> @pk * dz d%CD+IʆBwJԫ٩W?m3rRx)sU R ;]^Sʭ-:,[uP4k 0wP$%ֈ JȂJ8=T̺h[X9 "CD(.rSm֏h:Qe!4bSύ3{vS&fϚ7ƅ b67gFZ+x M%[2 Z`'f(U@ЖIV5M'ӇL:#lnz4;IQN ҙZNE]$Fdֲ%Tt9YRVXl^Βq@ \ΐ\ ΞJ'Ku cTNz^.#U+WLX:9Sj p\s PZNTuiT8H\ࡸ ۄD,ƪKUVy(h\ G+‡`$ יФd.f' ֩-0*{Yꡮ .OEl#7S\R4I)ktMWC=dT5Z.lM(EN 9u -](hBq:F0(5mSA(bςsڷ3R*\ݏ ߊ.\ є %MC"FtH(0 hvp8njzQh:Ǵq>h$kWGNwEQRNäչVfD&P$WRA(7 zf4B%& ]*INwZX&ұv۩"@@t?d`-SDc N虒k{3ښv){rC&V4P*VZE 9MCF&9 ʓ tĒTn-ޔ7hQ8@LEMPq֘I"˘r+\*m6]kr HfY czA`Zjq*iҁuE(^vZ"bE r p֠$"wE;tAzKu*fSH{E9N{H\֮g !iItRcXn9 NIt#6 e:kDJ$ JBGT)Bi 衮x ҥΐ:TRdsNտS2ks OU¸(ks[0mnEzgW|"ds&]‹i\]1Q!4-;^7-\[Rd;{F|MtW\S]օUk5t֎p]q@лXV+9@pބ0E.ܧRݍ}85…W¾T@FEFn2ԴT5cЁ/"J.aP@H:(h*8li˩Re5i˩p5-i_X06ph"Q[ * ^k[r{ c-*s`[ Zr|l ࡭("ZJ;M&2`2PQpТc4-VDW:Xתt,+sKKN@ dU\ W9Ha#()%kJ*eٕեw\dqWT7kEVpz]T+ + 8.V+:ju.'(>+)*$O5Q*) "fnr;*[ !HfTPesv* RY(9\+<d{BṣSي9R:mASm֤6M:P9ScjD`:ўt3QѤі踞T'h(4 j둝(pfjQwي< bw4pn"tHz:5V ֍;&Wl+ s"NQ.m|εl!uNvuс'dТJ3\ aw5n +Iʐe X 䱂%`@Fٯ7rԷ@Ѕi~$Q,:l48*KQ.Q;]Ns .a+֋G,W@ uSI:.S5$cI`+sY?%i+JCP# RKLp .eȴ֫|)kHȭi 5r.fXl\%\~J 9 BMu^ -h2MY(q3kzRʋJhFUZQv„u@Ps5 lJs'FHNZ950J;8szl)G7$sAp)p9BO-lKK@FSA֖#'Z< bwEu#JK(]F٫T$Do[UTZT;SAnEUӡLUЋ鎫Ӫhi1%s$ JB⭈5 r)se*ݗ)^+*^x(*d)-nM:7Pk5]$nqJjC Uת]j D7qVD:QVZPtQK&Q йkWoHqAzdg.+ GD7 +Y4-q{Cvֶ'Z4xpv7 j^@(h:д+߅ )'B:J&Ec4Iwc:- h>td0T[>*UB6 ZofB:j B~TAYpXRO&8Q  VIށATdKƅ"*DGɆS]֎`B;tAh]d0ZkU暜]pMS\uqEuAT[(j; .GD4q e7 AMwZX'5١*nuJkc1vwEuɮ{,!1AQaq `P0@p?!4]07`>eu V l ?(!86`%)Gbl*Zõ D+5>d%񃖰Vb Q"lm{œJmj(8 6:֟ߪ[DFeOb@|`a|˼E+񺍇J:\+ڃ圆?&& P?Q n]ik?um_{o}ؐ4;%a-;/qI;#=CU159ahB05%dǴ9 AJN_ `D_ˋ޹J;R>"ȪјaDt=)s#+_nXUD1},d5#?&g㱀+I_ջ&~>J'G~_x`h+mz G+tʹvR0sdXe}E]cMwVUWU^gֵ(؋*ʧVquᙕyJcSm=ŏ/9gB /r!V~FBU/o=U/X\C2@QNcQBʞ(;1]uĺTGsoR)y!kR.gUP<dkگ>b9;]Et&{S2,˫.GV_68y Q_Z<<:\3)7*nWŦ 4ry4i5 % 3rcN;Ky>fq *oZ+wWEyܳ.B(fS{ -ayV*u6k%{1^|,[K(ױY ʸ/D =3)yG?iN%m/DVsr/p :yr,rT~|#C+dhw])Cjm#K@Gi!L׉aRW0G}^GN@K4x*[z0ssG ؉-ȃ\ 7-FHRL\Kv+E-P400-&KYfo\[&̵:_=FҠ#db&Q>~Tu[+](.$(-K):K^GL mAi$FS]J^{lYEPPxz`@S'\ V4̤]n:+jbma"S\Z;ީQ3 LKe)% : '5/BTBrļ6 ۗ!AZ)K1PO>l\MРf7HpÀ>r'2jK ޻ i/aWi.+mz𰪧}E%J?L@6MDS`l]bR$\pR|lW̸*4u{Z4AL=hD#>a-Jx&Za¢0Lz?4y2>&BX|c0c>ڙ c沎.vƙE`twˆXw5F [: /d# d-'B>ZK:„y{b"MToZsYZ_C/JasM `',֡ظ-h 8{YXF|~IPzBbeqLGcI786Q84AJB1ZΦ+_6S ʠ&\kD2bJNq=f/(X)LZ#` MM2ӴUf8x>YI&|]\ّژYPM, ScU(i*WÀS`%ʃ-x Ln/fh/r)M]P`Vzr]gG\F|.=sj>GDhF>$OA^ .mC1MJ!N2{jKO:43ƶ3HB^xRmi~cCgpn~#=Gq3`fC68c*%W8Cxz&L߃Pߨ#@ІYO^nb* /Fm@6Ι5FCuExT K(eЕu{n i!F'+a;av_>D@Pa,{%Rr〣4GRO}@jhC:8,QN| H[ 9|gGjf/{0g$UNEd[?nhO)ued1q#(JGdC| *R45*w^&eMLp^%Cb\+B_gSH'kԡ%֢%:a,#FkrWA.eGB$ Z@P4=hbFu1 )U:^֙\656P`ze0F30Xz6sc)E]/N{%\c;ԕrOBato60^æ]u8-Wx.xжK˷(BPI@&+nFK~8UlCG_m"`RN֗^8aJn/|ѪIi^ҢG"VUᡵ&(â:/yA49^:foYk6C?TdɊU8n8^ x8S6"¨)yN13~ri-m;?#䫲oE,\ƪz[HTO1tNԛu3 %$Y/ u/5=zj\47ϥW,bӨ&Z}^#bgһ˛rΔ O.Vv4T%SP,:ANXK@˭9DVvP]bXbP 0OĮ^,QHU{{  ,bz. hb@cA6%30#@_k횆ySPN+,c7̸I&xWW$ɟgP\}{. Z8[3\dH Qù@840GA^6"'%A\w&CG ּ2^vJ:cG)V8 Tڤ ?|хJxNڰ}WXLuG #P Uj%!٭i ̫6PFuIl G)WP鐼]vRH=ʣQF>K>gf`< Px;]Qq`mK\/BVry漳W7U#勋ϔ1}p:и\hED-X! %{qg\Z2E:}{$†xr>>gR%dw0 Ua2!Vhp%`+b*ST[g)0RXgz=W>3aKvzc^:CDL/!~k Z >ʖ-)jKaA[u ֹvJ'G)l8Rd糒ƎWCve%vAP6*y%4pW>  7 >dѸ147_QȻnh=kq}_ x»>x-M^3LpJO4cp4ñcUTm/tr 1/7θLEθV>&"eaxt*vUo|§4nOT:qV+ysFNϽF`Qȼ8iAyYW;"Y %HFzUVzr?j`ЕBftjȞKRD V"0lx$ЄiH5nUS =̅0}E=ơߧ|X$ٿ_4}pԹl!,]*{Cu]PFkxNȪۖNe1X?c>,R[K./zmLu 5/s'fQ!&<&q[lc%eȀ.Ih99R gة+j@@+K?>d#Z2hgSÊ{1\pPiHk+%`yP! $5n /}&Nɓw P8mQp|ic#3E .|yB$[yu*fHʻ#7|~ ~W=tʷL0UT#@uKm= @_/[ _Sck1)@1`E2N (Tʀ5{q-Kq LU~miC;`n^X(fدGDz<<$-pFYx?'y Pxq"g(Kss~4ڕ쟍ľªj gj6lBח3`.'ac:,MQJ\v/o˗3n%:H#*6|*5(+vmO3i r&'MM94|w'ܥ p)sA/CJ#yU)~v+8x:\ނ *ln1ǩ-\VCyWv# OhtS~#TvX4${;"Kq.]?"$cs}vពǹL7 `Ju/ moc[xY t~,ǜJVJyia[r?l] $p[p@482,^l@jkY+Hb[@> }FGjRא|A6s**3\\w:P:yG2l2OC3[c n EzW`u p@rBAx/RzSQT <-N%טz ЛOu\2ٹ{yR)iMES/\CtE2&1y1M6{+16=i2W%F⾒cuj:d\񔪈F[F/e-z![ 4:gn߱S>IA`2W,-%*n$@e@ظeaЗmr؋r71[- Oos2\1fEU5R^m;\iXj#ݫU]xn<’/<(Z)yrh&g꧅'6jRY@y6ɲLІZ2-\i!0jZqx68gqBZxssxJ9Au*F2Nw AqgwA-!|ɖW+b__mӸa>c֙w/Wl4_rE|+~l-c j`ER\>-J^kAIQRrG^Sq#( &z>dy ~I:2eʩw?<04<ޣ\(K#pw~lK@`8LlKeMhvL'A+Or73d=0Q (d|{֟2`lOP*=~ )bAnF$6%Ӯ{rcjFAa@,Q$fpÆ7ܲ7$xLK0Mʍ)χ3m {Y4C\dҡ3qS;b*eQn/W`l%@[m"W%XT%[9(`T%ScM[i=rQ7KM#1BQXR=Ljܽ*xĨ-apvK+~Ϳ b^<;iFn#>G7ソ(Jx¥: c<sL@D upá;ʉ}<2ח̫O<]yBkTϿ,8gי{*R]@^ZurԗLe\{fSZeO"~rPMyђMwP-ò\剮"YPʘM]4=ЏS3 J@kggF2珎*]d{ «<댡8Uk%%YkEʠWNw.Ce%tO1E *b~6Ok8F#d@3"A@JduCAvWG-,#~@Ĥ̎=#3ԿrEf}XShM|ggv"794}`l?z O (K5;ޑE;i^ )H3̠x OGĐZyeP2Z/QZ\p ]MflܹTot+*a62H$(|DGrK|jJi7b튯-˪/rD]){*~T+{{uxgԏR;L34}AE]0qgϘC+lzgؠK!X;a<$w= aPI)w p<%J%N@|Ee.m1P-$kԲ@pJYp|~nSeǢUhEWa2 LO,kJ[QqHʔ{䆏@v<4H3"bK)+iE!ĠF{!3%b߾\\րiP'hPoPoP0,L ͞zD-z=vIuoyL%u(ƪw6t!4Q"A^"eѕOs\ 4yN+vC /͢bT+YdNҦT}ptYp,P.Y]u"bU0YЋtQ{`"C噺xk|̳M_'~xhd|xry2<+6N֠*4 a1"z@Nwb9iURf q 3"V/'?ʲCE)SF^avR6-p_`ZuĝReqT5k[+3N+j,[ 2Q|ULD;.bP3<PxqŜ64Lqu˞ZD3zC#  R{fWa8JhB(\)M̎/vp+? (GG^ZqZc1.[՘Eo^ ^_[̻ y(Vv>8> v 8!]Ǟڂ1-ehC2vqf5'O@Pи9[zVO-:qEqLZ!WļQ B<5^!is'N[V9&q" Qa|2:'=_j8}2̣Hxzo*p`q> /p;fh'Yz]HÃ{c p>& QjM.+9:@txn@G|Yu^qqOe#劉_j|ʪ:?ODyE!ԸwYe 0XnRZf8nM mrr(T*a4;u05"5SS<;gﴹ0Y8ҢԿ5x5 )1Wg3w Ocxcܱ/!.Iye!_o^&VzH @Kp@?)īc2oXG1;fLz eORjY)2ǹ_bUh^ܺCZ>k@ {wUkk'[JHSp>Ry(ׂ|"1kTnMsD[60,Nkjͭ3#s2 )s%X8VK6E6pFS!Q' L˝y  2L-|v&GF#հ6 6 Q)_<)^}8U4ekͅVn g 0|*}ma\?z\/lGGj,Ԩ1ushE+ʇ>آ[v'm[KgPAjTn4RϜ#cJvnz% m\*Q/P =FJٺZrD yjfԡjѴMU0z-LG5y^E<ˉ3<.%hoM7413Os [¦KPı yeQXԺ-RB?ziI00ĨUlʸƩ{!]gDžj; XI5gXa8+cDHU;GKF`qŠ:PVsp`Wj(X/ۤ'!4un q6vd؏aRA :KulbIJ^eV"e=t$ +/hzݝCLܕ(jh*omB9F"|"w3_<.6JŸ5 ˉ_P0_p7n_K*#Wg+Y ͵Kq/(6JyTABKv0!ӱ\8NlҸG_kO\ܨ*m}p$ tJǒ"=eit=W% uL+ @Ð0_ƝU98im[G>8 j22 ul&m#ZA./ 5|a=%ޅ[V"y\o\HW3xxNמ(kXd+\> e 7/cvìGip_|xT"0K㏱eoQ<nJB>>.wolmRiHIP^ U(cp\\a":2ܮ}%L!TkpsiaɷT,f(s(ᓝXX3*aţ6M_(ʼnM*$4Mpt4G\0PӄaĤ(7]Dv^# pՃ/%S K+Ѹ/ R"چg{yB&j.)9vU;4Iyù{AL[|$¶U2 )D&|Q}Jfb ,_^ҬĿy|ΨWQ2$@夦)<\>pOr n86ypKysĻz%' X-%T̥ţ6M_ɺY.D9pfQ~fFٻ*q=S(r q+ h Z)eg\$,rᕌb`eXr@o xViyj#p`ł`IuBޥT8Ra9 A{ք:9sFSY WrZx%hHTO1V"$AB Q|/^_02T͜b$_oq"dћ&d\  3\#lFa:`1ߞ,a}7=ƾ,U^\+ 7B=@w獙#P-TUJrY^& Nً*^`wǮ:iWg( $'|lAE{4`߉4#;fOiӟ\o( fNʜdc|m泫ҦfdW:UPK(X % V>x،5M<:%Q{,%g汲h8 shvMD,pUr;|fFٺ^`!?iB Gb 43*tL+O3q@*xmTFFX&@/=Į dF <>^P+٥rjwfnT.|E/]YuxCNx xs:?(Ud9<.Y'fBsTX Mh]pi}Zv0؉ a"RsPo9?04r1nbZD0DCיo%F:M`ts_:KER4,)30>IRj?̾Ȁ o- (^&5(~HԂD][ٚ[?yT|a4en`) Os)Mҿ_U?9o/]4,sLq֓nTΒF/ Wn*sqlX1ǩ?)a)fڍl\g%cYiil.bH5,̘elq@l2!YQd HZ=uYv[ACf YqGl̴pѿ.,2X(_'K<tsCdĔר)X3ϔ5GјCDr?qpdNhWc1 3:uvKN%G[jr3wzOOot.x#(-}6FIbz2}eBvKE<&_2+f5M- yD-%8>۲w+xgTjS[ΔP1&{tvdX ϨzΙM*^ ăAׄ{fj-hJ?Cmn!KiV:xkxQ^ Kmq"BEs[ K@bbn~FjE&|?jڂKi8`ń 2KR@#FɋdXP,|M1B2'Eemaޓl A8GEcPOD .e>*޸!"G)fdb[\PϮ0d=L_Fw^8!Za7$cYmrͦ2]pec\`S7!Y*F!K^m zK1Lv z/qj;;h?>  6SyR %s򌌓0p)qywپ~o8l w3W/0Oi *Kʉ1G3W~C5__~+j>Jc"po 8 Pjzn2"aq>d"-M+C'Ay>U.뾧<\ L ω!T'hŰB!rO2s5(r7cp+Hv7_qNX*6 6tv&G:2*IB D2xXXosЀ)?d?v?'ɤ~Qbj Y*C!,MoL%~?- Q>χ33ܤ E~ɿ9%Fe̺J->!c T_? 8 ?ʟg?-egNѢ -x <{{,>MǍ!qDw#=8xx gcUǣ5 a.oL5,ZXf= 8<Ӂ`aS;-N3R &V0/Q U2*Uus_8BRQhIJ"$V6} ]Oqi6B/'}V]ğHq nw-sٳ`f5x{|n! n%?^̱r;Z{%yC>WXM㉎pBԭx#w/E|6-5<&W,eGv=y#/@_$V?܀ .8|w.-mm.U `?6RiS{#@Ɋ!+#L$UdO)fMGOT,YKв+=д/ K\V nTM 3,XD=G^#Fu. XãGi7 d,hnシ5ȁNh.U|hun E-Uj,fR^ɽB*2%[Ek:ZmXGT͉jWOhB\aB(YHY%-x%e :_$vn;NJrl%/QTY'45$3qq[pP,s#4H|#3lxeQ,3_:xiσ +pq7xӍ4 'Z5̄2ǒ^&\_y #A=Pk)Mp&p@ЀsxQOIDYZqe|h}cD3ͩOv;`l#HZ;GacXŽD%\v#&ζ  ]_>s>Zn* cq53jψkAG OÖŘ-Ly&X! ϵbPUp`SZRP}c4`C,."9$Sh<)mH{20{Ƞ'u=rz*'ˑ6oaS*;=́hV(N>iGYEt!3W/1 ph:p~pbIVBp=^(!]\C X,s"ȍ>ARw5Sb?u46wJ jRb(h[V)iQ_iҊ1,-hsL*e+߉K'HMJNOȂ2+e% 'Cw~?L^&_{T!y[K-* UzYzėY;-A ܳ&ِUAaWB"IJ^d B, ,D…3XDhLxCjO0=M(gktgTXąY Y .~uEX-F& UK}!QC ʏzkZ50 (`D@C܄uVjj؉ lmaLWKpPߟ vIR/䐅-F+(Am=Yudة ]?VsF?IR,SD xƩK[@044Laӟ8g'^x+Q0iW72UZn:kүp\/u™i0G<#G у &-13Mνp*^5U4Zq R@rQӹJ^qQT/mq. WpHbuc^~Wy^ SC X5p)%q>71NS.jPDz)z+K;\{K?E}2ЃS~WX/ˋ=e̢Eu*jh!B[ +iFpyG EECš-S8̸%| 2}TjXʡ1, =׷HXdiŸolZD$-KOvGܾ=#a*(S"E+PfF\ɇ=͵W0{kqG? %GY +vHAEnɷD 7@{|l,G/"}-_39/O͵U;*Ѣ-_ݟp6ş!#ItbP:ʧ{“q~鄾0z­)ly MK ~v9:bgڄ\$Wvxf<6 A+H&LM¢D3zʅڗ jeUYw+.oQzMKPkSW,ൣC P藸 -kp˽nPt2@A|5/pA\yXt r랹랸P P98'CL C=d$#z碿I%-r}ގ^wl1` #)'S_:^-,t !{3IO *pus]?-,QcYJ~jvu=G="827P SzSca]ڬL*W_v)~69J+\%kDZ!昛\b 1׎O’| Uט},OVAŶ+pJYcƜEo!T8SRsYeU~8LFv=ʕ0Xny3&X'P{؏V7W0o|K"`B,;~3lw+oGToKe>"'@ngSDvp-#0rFď R$ HG$^\ gVKO|Q%`-u?yk`?f: '_X 5.}G R!%4-d[\ܘl[Ͳ>S3x䌰Pz/@@KMlJY*SWMSp=*]3\󟖑h}/kpYUƵ_?/1_ N\??@2S+S4& krVs=UH!p\-z5rb >~?H8rwȽ!ո/>ER꾇8_?ѓIJQكSӂ%~|D]s?|NDST֒,˗\-<:36TѬѿf|Djp½D%E%#օ. =*uᇫ/)Inʕ6JQ o,OF  )!T_RFw*s?d7d/38Wn)0cWҾE|0_y?с~VfuS'?'V״2Z{LN_F4pp%{R.;4"VxJMc#U>4Sua+O3d)yu pVrradS}<_qf*UHƠL!8'ξ8\u\ތ ^.h ໱W=.6bť]pꐲ7'#y猎}1`1"_ԀH/z6~cQ4xȣ1"Re6sN Hyð@xr@19v/Υ= hNV}}ɑ/A bPoykrv}}@D0SٿrX=_?lL鼇BoIm0#6S\y(H0xi ˜&2AU&\n8r/s\pla{Osy=bz_`f+Y<ѹ˳صv}GI##Z(g~?ùQ:uôi<BZO`< ϱC.m+zh:ǎӹR2O &WhBhQ&4FQY)7 (&jD9%=yeQZW𙊩g.͎ڰ2C?GoIF2IAzMoȪ\],s;? /?G^9㽺 š݉>aue1LfCD0DƧX2; 4_ w.[vSk߇}x=㍞g v㌌ ˻x>oI/^՞>٥8v( WEtik\>)[+aUaz1*ъQPm}2gy|Ӌ+X_?]]nq^$|Y/xI{4mq2PZ&ɧ؆ha,hognvC=kœ]q.Xa;i);Aw qzwY 0nu@#U>oi ;cEC// 5d@t*̴]xlVxV10Z,zp,`l!M!WlA/׷y1SK<<>Z}/}qOcx?Ie@ltfRׂ]H+ {`'D NP-Wj֥ mD:&!VO5"aGdBypcӱ4@"sOlyz`#.2?ST1KZx5J/IK_1(&1Pa*;Je8;. 񧳨ظ,  9 i/C?* ZW|Ohɮz( #q-ɀ{uօBcXZAͯ7^8RJP9N?}@|Sœ7]9Ojp={?Ͽ=1=Ŵ8?\~S9[=8Տ<g./oڦV.izHuF~e%,Ӹ?@a_i_o86W'xU OdOdOdOdկg5t#^y%Sd(0M|b)LeK{Q:5-zS +W}0E|C™/`K`fLǠuTBlagψn*vqڛ|ygzq2~ \&_IE|p#c=A Ὲ/J0 ^~>Id E K)ná4]_AIZw穁n-(X)Hr+%xpGwlY;Nӏc*۸m8)o?f4 2MD]'-'+"hFsVo Wi EӜqiÈʼ&qz:hFN1M6G/b UG@Uf5/iiww63^Jޝ&J# 7Ps+PK?=%<e3UnCGN{QDPPuзLbSn`IGܦ*괩TΝ:K!>DEe@!3RGQ`FǢ)*[ԏ><@u=ľm LZohG^u :`9O蛂cԩO$Jm.KAuvFaBY~",W ;bձwùGl'M%S.#/c da-x (2@(pn8qs/b-ZU!kf8')K#9Wj7By%>i¸-+{X{9K]V|@֖k 5Ժ̭^OƠ-TQorm :^V+x>0Ru0ܘgpkNS7@{Roy44">Q*J|D)KXpkbH3) |e7jRF_s] Q=LnU;)Po=@C,W|4ij-m;pLlWEJisnN!-+}LH^f`Q:F+ f=.nW!b Vʑ{  tk(i07 xpjCyגvT,˥ǕKE!ILqWޖXhdףpjXb_p5M5PвN|| H1hpEn9jJɊ_8E[z欁5ks]P&AKxf@bfS0E^[K=r)`R8w>);MM  N` se?L\17~1 >I3.)kJ@4ze5MH' Ǚp>Ҟb?f [7S8Gd  e ԸB}4(Oc Uڝ<{`DT_p@sM /eF`x1`xTSfޢ" jɓN% YʓTHT gX6h$=fRsQ-&6+.=?g-%tq<"Uڋ8q,t?,xGc/"^Üxho Y=)qaV:05 pﳟ ~xɷjcw4'p\;~ڦEOCg7x^Ev86¢OPpطZ45U l+W KwCqҲ'jΘ=hePtb-)Oop 媋a._G>[+ʥ@h<@>h%RyRRˉ)Ԥʣs ]/HϪGD}kEQ唣ܰsle./Y>r!-=. );1씖=JP;ѩ(`-uRu0l]ԥF Ė#w,fK ._ 0w5 SȧFe޸Mb'":ϜB0.(/$m{| @оca4ObJz[y t5+ArIyR ʼt˒ǺP+^9I1Iv8)*owm\TQ.,4T4t#Osq~RTM<$K4mbJ;P2 j2~pw T2{*@{lYR|> 0RAӸw͵F&ݙxoRZEEpz @7$aj[ )bQNR\PPxƲlKUTȗQ4cx|Em+`z]Q}#+=\qjzE5!фYFb?yƉpFk6|k!?#1UߙvBB%(;r@N=2G4 8!/ʃuy6׾ [U(MTLQ ,D :ľdԨ^]-^srP!|Hac K*=7SjM qЁDF]GL&˳dDVpnt'qCvs[`>G ,\cdT4pS00eB?y~LH&vJT" prse"ӇIAuzX:)([yzDXisf2@eE1Lx:S2iq&\4Wgr˶ap0n1Nܗd@븏5UnT5QV_NJF[O)KM9p@ prA⹙-bMwָ1@7ˇoʟnn{Ch-ȅR}x:?cV g߾2yn?,_\w*"vۍ׏qkcsƷÁ%n55{x!ӟ^ ilBGmRpy=yܬHC* O\=/Ƌ8) KU+nsr>(sP\>&_BQ5"# ꃒL[S%ՇJS*9RCOf w1)cMK̫/3*MA F&OiEn.,`IaC=MBe%/pn|KoPTipЂF&y2 5[r.ź"|TW6xLĿl| afN0qthN\xs1hl7PFV`p6#㓘Odm0[ͼQK]DZVհʃU d6SpCKOiu/4'P]b9:<UvS ծ|K,A@q"zS]D;*ՁGmW2yK1bB z$utDAۖVaz'ЀB B@h{( \/p0`_ kjqxHũq$rEdI|dF ev/JCSlV4W8q@ɹIJ &%Ǘ>w?F2/ [A(Az'8 ] ̳1!Zk?<ƥ9cSqD i^Բ@i\\-sVc~VfCB!6%CSJ/Kҗ#D Ҹh,m V'G j,h,׎Uz $T P\%,BM!5=ZzM B 2Ïj(͑㓍dų\K[P"gyFڠiugM_ Kc2l[ 7T5u, b0ls (0^xkm)?H K'a᜶|ƕ^! &x `S)FrB5^a=G}zGQWyeдv*,};pt r,t'k*z1Cop_1 SO_3Ņ[ۙ{8`T,g  ;GTy)A,ֆ'd"z[xvV bYQb(-hYL"=ʀBc: 'Q]fW!YY{,ooįHm,20OLJ19 e$x,wΦ"t˼k"VOqH #B? Id3ǔBz=CD(vbG3cdž *BPZWbĹl};@BR@ NqGa7~aܯ`֟匆D"<Pk+ K{#ew6"*Jgi K}v/Z|M_ƥϦy6``"M̕F[u^#k4ZHpQopkԭ~QCpݷR'q;3ƿƘ:q;ރ<q -~Zչ3o\nuekC4N1%K!o#5>aKAAp [cz_`}Dp-޾K 2x[}tLjx5)S_:P|lƅkrdz .\PQhQ6xaZ Q{Hŀb5'u~|^&GaMgJL_ݒp<7^`cʿNixJVi5R 0`PHW  ='%!p'@a\ƓEqpg\nQ l{!p /xWsoo^7, }k# /1.;b덩QhAFlHKM,ߞS`{ +4.HǏ8Ag ;_zPǦ+=`HM6)C`F iu.F#.`jee =/i#avt5~`:y B[9|SM8\Z 5| /ϔa"kaS(\쉡7X p۸!8Zq/Jۦbf&&v4b(m-x,c94RTX3P,LQk䄣vt|Z:W|Prd6A\yJ 9{qTsU̽"m۱ac#:>x=!I+fE$zfQ9\kj3SˠpMu\P1gW"қ?-Xy<˜/0@._ %ާPJV:g/"Qk%XMx(U,W "~阻Z;+c ,0z'LbQm\iN,D!PɦeFoZlIBlY^6+M'O:JS B :c.IʭN9akU}+t "V_ ww|ψbYVex͆;y :U+6TB4(7 03>\_nQMEԷG\ +ģ47s,hdv Z”ӱ8put0!~㯷px:NrѨ]FxRxu>Ac 5+n_eY|)EJӇ+arA]qPs`8>k͖^Վ(mbKviV#EՉ6Um\˱) g|an\k$]sZZ6U.X]@Cݙ1Y\_R8 980K\gb-R6ЕrW}"u~7rb[]zAKBOh' R|l2 ]Bo7k'@PćjVzn#[[\8Q'mXm3S8|=#+Aot&ezo_2OjL(Bjo~Y1WHML @pK>4Ŕَ^,{Wu+(&ОzsSuPgŠ Ly ̡fgA_x;H VPj16;=_^ IU}np$Xurd*dj2]D$|/a)zB,=ǁkQ ^tS D!}hbQy|5vqts|~'KʸA6| R). g2|~?M^%GD囄C>X6xAHQ6~-0'{㫇P=pNܱk>EU/ V&(aX1U_g p f؞zqO#ߣ$0,Tv/|*cu9~+" N뎸(ۦ` DD~nej:@ĕc?B}A2ˡ~Q~*RϵGxA |s^Sig5MCQ׵.;LlN0F@@]cAAlKdwPaqŌ )T |BG;Rp"b-} 1-﯐D="1S1 @'5ifGqjcSЀNVxyϐ#8N-MXΎ%#Ry;qC*;/ok\@w\0,:g9A;^W|pXE:Έ/\{Akg,8#>= ,#!\ұ 䐊 ~]*9ST H)ܭ ߈pcuedc2PcaDȪiV0eJ᷊+hNk)pb bze^H;DvGGI(EHO5u{k(h%ײS$ӧ-.e0z! ĬRY0u|Z-f&ǐ()~ z]_m9xaU%M`u-i=:Rʥ-UwIT6Dƈh!Qz҆k]"нqKtmKtBD8t!T3VJ\bgMc)- #rĩR]A.HS &Hplz1j{;GM"8KK *` mlʛ{w) *ChGKp R@(O*igTu͌`R{qw>lGGbR) w U=GI).*3R kNTJ Gj ] <\0./j+VJ"K:")#8tU>'yҸ"԰T#+^Rsf< M4JOSwDz Z7. Gna-^8Z]&_ Q.)O玼~#(P":0׎e"& vr#Ttب5 B6AySPPxd7Tk7(5}dYBzb\+ںpQvPJ먨&(_+Ӥ4LV!#MQԼ^.5FV9\fԿ3n:F Hzq(p7hWT6f+C +^P;p^^1D8ׂڃ'S*E4ȚfKLD 8eԳɈ;Qq4me1 ow[Uq`ڌp:puvAAmֽ +D# HKIKl(S:.UL$+PJaqPK4C7I_Ң>̏4~`وKA0ЮdgsƂb^b0>.!P~# +Ѹ PRDB|bzit2+د0ߢ8J#ܻ$J [ǨWC*#E*_\c{MAT>xLH|PT25.2&-: ӅM𪩖V*DQo]x5ܷt}4Bm\"ZZ=3o?_<<<<<<<<<<<<<<<<<<<<(P^h Q*v<<<<<<<<<<<<<<<<<<<^t5NVh,<<<־<<<<<<<<<<<<<<yW<8ΏY.BL<<<<<<<<<<<<<<<<<<8WO5eZhj]pz`<cO<<<<<<<<<<<<<<<ķ8xVnDZ-lڦ]R62WGVtAd=<<<<<<<<<<<<<<<$5MxCaJ_|Tƨ@uo <<<<<<<<<<<<<<<bqƗ f|Wp.\<<<<<<<<<<<<<<'-ZnkJ0ԝD}<<<<<<<<<<<<<<̯fΏ뜣;݅blSqpj{.<<<<<<<<<<<<<<.\G#`FL-h{ݼ<<<<<<<<<<<<<&-}{S%w/+˟dvv]X+8}O<<<<<<<<<<<<<<ϛ1҃VqGrˬNzz*-s<<<<<<<<<<<<<<Ro俓+8p ֻn?}q|m.CO<<<<<<<<<<<<<<umE+?eo3#;X,B-7w㱺 e2OO<<<<<<.׎1xϲ7T䉿MCx|6U 2.|>oSV<<<<<< Z%0SRkO{㤒"Q .IǞ%f4Vj?տXk'<<<<< |,%)&uBV2Cr<<<<<<2K;}(BP1l$wIZÓ%;!҄L(b7j <<<<<<|f`vPz|askQ_N EM3 8b)nbe!mݾ  c8G}VXR N#Ξ<<<<<<<e<<<<<<<<<<%Q+ `#;&隣#M]<<<<<<<<<jH/g< 29kg2:o<<<<<<<<<<<<<<<<H$ʦE|NLKu<<<<<<<<<<<<<<<.{KYrO7<<<<<<<<<<<<<<<<)ut\k x!r I:Hh[8:+<<<<<<<<<<<<<<<>KCיxIlg,xڨH1_<<<<<<<<<<<<<</9[\+*EV #|<<<<<<<<<<<<<<+Z<6Zvwܰo|>N?<<<<<<<<<<<%M:=<<<<<<<<<<<<<,0nNƎ}dV}? vmwޢ|<<<<<<<<<<<LA dlQ^\Ϛ}<<<<<<<<<<4;!8OR;x//F[{m<3H7%j!&TigZYqov;=0; q gC(.()2[5ؾŐV8# .G8߈\@zn(C!&څbx]  [)#MR,KyF\ ,Ox2Ϯ#\daPlrveD pB0}xI IAدz^ hh ӲiPihu28 YsbǭP !*cic }x٬c">5촂{aL{捖;.p-l 5)b i&,Q%Ԏ@Fр녮n}C`&}s*w[*Y-,XtZzX̺[#$ Xku#O$},Zs;3SXA4꽰ըemeVn. =b.y|[KA rEK`An\RR#zBms-dߏP+!VX,;e$}׍ ,@XT;jÌ.##eӏR >c{8ÖD# jήXVQ²!(,nƱ`6 A߭80 O!u95FZ2u`E'8q`#G}cr#CFdk: M<4{,i/uZK1B o!d f0^3c9iv   凹> D0DDaJ%1vhr5;"3YL&   303X7ǁ efz=x>O^oYEOKBC<9%74٦05,=k&7ɆVx'׃}ONOXs.7`ў3|tw H{>t0&o zKb=0[7d8@L|{]a& K'+y3}> McL&5`[0aÿZkim:#ؽ ͇ .\Z療 ,nTAgZ6-ƞK"\m>d гJAE)hPaZGz`v2lb.KLb m7,Ƌ80c7:6֬nF`c ۫:K[e ֱs$/",,]8Ʌ2VcrA; %0rr =.ȴrhM!BɃ=WnZ5v.´&CaylګF H~<vO2Wd+ wh-+$ Y \.lH\vmfN!Or`>0{2Y*agǓY{(c'my.m`=%2nū!I1ЉԽxLcro patAnHn=#/ȿ"Dې_iiփfյ80u6&ݬ׈bp2yjCKP]10u?"B_4 Ć #>UtMxu(#]~&_>'Ed~'%Ah_mt;N_oT>r?;?傢uVGhE cB*, bNZHk*1gI~7!}YHO_0:?Ÿh oy0GIœ>}"ҁpg7/i?X~g9 \~By$!?ϱr_H?;?k[7]Ւ* afqhO 2{H^7V+>ol98S@Șzwʼn*#ZghIFn[o7| dN$$7$Y\c>/+uO%G?ᾯQ *OLH|o,olkigcb j{KF[7L6 zHhۇulGBkX{;|W,d?}};?Jd3M<_oHOɖc迾.Er]?SՀȗrr|Qx 0ŀ$sX]O18 Ip,.qH##rLt0X9~PZ+}BWGw !Czo?$ݘg޸G:~{szc?o]J[ψC?ĕu=_3?=?o~Յ1B~}'B!Zn(oQk<oaSD>J&\߉Odg}\*6i{?.8"GNޏDžui%q; <`z`7,}lr x8~/[`'FJܾz20WDzz,DWK Mr"ޱ1?0+A}|`P,d?P}ُw)~Gl&k;|/>^5|~҃g^:;cc7&3=xy5yk;$ GG._"$4Qe=lV0M3<T6$' v 2ut1 ȗd+-dў4!SQI[Yik=({:N>N" b[/L&ݗ1mȆ"=s|cC,lA@9lui1ׄ//a-y5AUC}$_>83xzz>A9=/vAZ7E-!1vAŔm/v CL SdC# >繧Ջ0 cG2c!b:9főa^vxroevHc#dGeZzCFol| >zN;:nl8drxo{ї;.`̰fCæ`F%[F7B n{E blJ`DH n&%&7,nYp@Zawz3-f5/roemߝ~w@p f љ=а6K]`0VXJN h ́2#{yE&[I=6}sgv8A3 >@ YFw%.Go gָ#XݍFKKHΓϬKSv^ !,`;z-t+/l:Ȱ עy9Xh fXX={c`4,ؙ!Z.ے(OO6ɤp!!1l@ncF|-!!iN_ 5a͒޽[,4b`# 6^v\9;"2Z )QV?_/^4ѐ~6TM2|/^5&aɄhCg&r ;tN}rOk;o9h 27; Bg T v+QOWy1^ևܶD$NZ]-d">:@x@@kg1ðI/dSMxAU1dSeAأC\_{''9GE͆kåg/Xg%xmrZz# 3^B Y3ѲiWd,02dk ހ(6^}qÃ7;c_[erԶ(.߻db0 ݴY{a >H+4H NekP^pr` <1$!Mt2Aˤ@ Є>V66ar 7}iSHF-h{{Ї.HB٘96N QCv=$@nC G- zZ0ޢQ$YAl 0G{Ó%F`Y  :ڰ5cn%࠽FP;| X>dA;8 #'ּ"XIp \@[qPΰtIDpgY\Xnڒ ,ml)Y\l,<#}qM Yݝc.&X,k , NqŔcdCYkg$i;'r=\-^dogFv^Ai,30f|$ZN,L$Ö7ؘj>f 8K:J$x]@ [Fem.`D,g>@IpSŎipg@vB1̀6F?,sep,ߪCJty/uSَ1h]@>G,q J)ae^-7Kx^pM|4D$fkz#L#4%aq$1"7+lS7d&H2KLdt׏ ~ ױRSCF19p큟P3{t<>7z{;MJLk#DcvNq5Fx^;szẕ$ J/N%򷜷q @1'<+$òz`B"zK azzSUSnBPI`4GF󽮣z/z$q%i*!1APQaq@ 0`?x`LK OO:x~ b 975Fo~ +if9{Ll}-;~s>쟏^66!hqyH 2'FyQWnv @!HT*]F`g iIm>[dCNOG BYs!H$Xl@l#$9nHH ykB͟aƻoۖ`'i"ħXYjrtyـ&,$N?f$2|oغ/=^?cYR"a$tQ[%i!ΦɌip@8Kls%

I<. cf1Qb+Qw@=?%9/ ܌/!!7Yjrźv8xX!HMآ-L{KW \K"- d]c7@'rq}m ]__ń0Sy~Ȱ'ˁ7r BX2ӌ.] ;@g2 # +}c;*٢N`ɱ #$qoǒߑc@ S Cp~9=Y˧lP~|2O',nXӎǡ 59 9۔ފ .F%"`$,oՁ\6c3iD0mfo#Oi }UËp|NYICP.E; /'={B ^˚ ۦ.Q00",7e^,3%`dtO>1 gA&{d~c㝿[b\0¼a9i K q\va'A$!I7 r@H~3 v(ߩ\,աǃu#:^Ճi.G~[8{1LI¨V lVa@,}3j eb4 R-r'+ R1+ikArT~ف6n{.6MG Ʉ6ϯl:’Ɣ%>9) h䥈O MhH7-<1$Xh-y;"zKeu ˡ'ɒ2k&+2)DR%" [0Tˏ /0LXU9<2,6OS'g0N,Xda Wrڃ:ƅK!10ᵄS|Cm'N `'$~吋E99HU2";#9i=[,b̅=O\)s/ǰpIXSe,aO5XdATpqygLp`X;b q f'*#$O/.>a` $転ł.a[N2,j=#m%o}PG>*  {ZCȀ;+6Yޥ7аq#Sܑ.=S,->%[n|.˿~I츙~Po_q3AM9a'SIk qe#"c#rfNE%JHa[`Aj =$1#iz%Ʉb]>>>DZ!zef2 A} ~9';]Fl~#c3y~l"3_`C 7Ȟc{-i軱ɏ&ٲj|?dٹ77mm̽^iũa~t?f>c;{u}n|i_oM MNkH>3>V~3P=?[RXY` e0|oz6ђ4gKPr?KP|Ø/f{k<[A|˧t?hp" L$=훙|Z38էĠ=E<Gő&(jc@t(<~6y?KEOP ei:ЇoԆx]  Xۥrtfعk< ^J>.䡙`-P5h[+ m,~펳5sg󬼜r "sG XԊ$qJuWۺYOf {r[oR`yl?oY $Oe``e *ooSk׳xYRR)&%Є33#v}_OS樂pXw!4}=pa}ߣ`jMK5ܝ^wȋa2AfS"u!ReXA$:{ڸ Gmm{ā$V ۧ`zBec- gMk7M%d+ Fl{#ץS]ג?0x ?B#xs"۠m2~#ÿLs!/NٌY1ḭ^#oFFlnS/e쪟rv y{j6?C~L?ن^μ_oQZ?>`_Kk"+NcxmY_Rx~(gvr +Gc:%yޝ Ўw)Z(0P>=~w?MhŖ{l6gI"v hO/_q-T~6Cp?Z]by{_e[d}BBt~Y !I{2EoFQyw2Kz$ a\!'b|t%Ζiۿ.yg9:/y`{NC9>.rKإ>_ύv>ik{ ~r-9wKO/Pm`9LS~O4P!}%4A|%Yg}_< BHux̸'! ssZwz~wsYѾz_f؈yz3VϦAzmi#\~#\O@^OC!ڣ]?{}bDq%n,όb| ~ooسb?zaQsO@7?+XC9_@^pJ7דռMv~g[0O^zoG<yTzN;/3ͱ}'kkC3j=w~O/fOߟ'_wb7 _wT~ƿ?tG΀+>}~fĎ7=î9;>M+>+8C$&gRc"ܸW̴=g~xw|NaR*P;`b@>-lqrj{Z'/O Eȝi d3 /=0~`~g?_cC>)L`|WwJ'vl{va:=#O>cO@_Z~ QHgK_tٗ2 `! ٣!Fwje C;c~2L\(nt|}?~qPFEl|-X93ԛ|<{?!E dx_##Nn;b6,!ͣF \=^4 W0 #SP/x`>[ϻA8fY(q&ŝl~Tm/v?{D?/]x_B&w&B&S-AA;r/v$nq%M;"@@̘M;Y2 KBJ?Ş!ŽE?w>2?u#e3/P#SPQB!2.nOmb,Ob=lY-Gl&l;vmxX7q"oK uߏa@>ӗ[_{Oo?.!ȿ:oOy>y~RDq!Iݱ)yw^~;_,d9nd=2Xcy)E{)$E lDX6<ߜ+ó{?فZb1!{0#8_AP2tߝ/wߢv8R'v׬ ~xܘvc~\?eѲAeۼ7(`l<a2]'xi9v +{b^UL4dYK5"Ye9g߷>-R7:ٝ!䃷m N!C*}`vp`~uêyrc٣ _0 >h;pgX+K].MB?6傡0-#h} k_8CV#A3f4[0)Hraϖ%`֖JAi"<&8)a/rIEZKͷؽHXau}-=^籯.rwLIH?/dj-c:Ϳq1^JZ[=NHˈ_ I߱HL"~B ul<?vDqhA <?TL8?[ 5k žoIhxۣ9͚`|;7X tIetb9 R5l`y(l r %ڡ,229器 D OlevbkAY{W_l)Lz),+vgWs\Ss}8sۋv}n?H3-U]˩ߙafudgI?ȿi9~~=/0_2tf5>_=N4Kq<ߌ/ j|lkE4k8"3ˠq $k608Y_&SebjK9:Ě۰ /AiA9vIPA7?[ lrKxmq}. L:`xW`p|U.3Km0ȏ0X5V֙,\wotɀ_a`*)U>čٶE1ge,Ϸ`}j_ yvZZq j+t ڂy 35*jۛgLO2/@hHN[C&Gs-^',Oẍz< 3P"ȕ༉<|gkk_NNo.̈́ }X~1&qD'א'v}ucOk}~˳5A}3}c{gH_>"I>>;/ JVõw0`i*6"XG@$lLcn"%,1P4YٝȌ0Ĥq,!1AQaq` P@0p?caJbweb 4Jm0*.[|ʡFW "q,xar'dpg!W5C$u `xU3kkE|T14 tF}@!,,Pl^F 6^A\6YV;hrgAl9z]RW=,H*Lέ:1WP ;KN0Hg+nʍ=; 9vhXv|"$-8]@p Y%HVb+جn|H>]a"JߩǴ7!Y V(Z@;2 1ue[nd0^FJ/!ַCF,[wSWKUCmv Nݾ[9yzlbksim^Pm<[UJ/kK' yއ'j’r͉tiY=@+7'C.Y^ F T5$Q[-VP4[%[bV>r3Ah4Vo*Pn췯bS8J4}<<|އa~D:-E> sUopZgȭ}#g#B4ȥX jQhۣj~ c+>vQX nDpT4`Rq*"(ӻFޭ ,7폀VcB3feVlp}LM7qع;0U݀cbB( 4LIJ='Sw-Tk!}^`6 p_"$R-T ߗWrЁ ,XeEPc vtj(<_a6$򗣙`\Q`F؂h\U+%8o/e>(x)u,{kV7lff 1Pg\5)8R7~ ^|@G]WBE?h0Mh(?.]pтS'E [A[QR!xP\5U^bҊ4yYٛ!:s\/_rշ,⾼a HvD@ UHnju 4u|TvB3*o[c^7PL+Ds))+'>MD ޗF,߁ڂZ BR$8/7r, !s\FE`5πxSXZbnzjafHSЇQ99cG*╝Q|Hx,\U6PBeM2#*_j"[8̚NǦT=F䮞e'QzHα*cs;t1V`A,lJC.NR`SڗNeIgLt䭫) %5Ib\A)u 9wD#RSXa]4qijᛵZ4踸G3PXjY4ZʱEBuWM8.کٖ+tR5qm"A 0oȍX{L{,gXK ǀ1zn]}#6%+/yJ=x'҈b";hzni"hvٺn (Wtg{_;ƟCt~›P ;O 9ɇpwW[@2Z(c B+ ? l?0.y**Ѐюa9>cJ3`;܁vD7=V 0Rh DHm0vnf_u]AӲ0hTQ-3.^/ 4UVT.*D8 7/o1 v/ iCm(i-vOb<R 9K,^Gdu,A5* ' ?>Q\GH*wU=Wh/aK!5kppFbaz ~] HV'eDDܖVw;,)|"tJEqP-7nn{abSڢ'a /׍bpK]z(mIݘyP*>*p|58vS)D;pj^̷+3LpX{{cTV,_d@7("cC@2!@W$CD\s9> ^ڡ.r`^*~= 0Aj+ 1?0|7 Ve8t.rQě?v09#BQ@씃?goԄ)k[)Z_aS 53_:<ǀu{4 C+pE#}`ˡjW!Zu."|TN2r0jg=(r.Hj@8)/ly&JpϤ4vY\XKgnP">Ů=Kw{sh\K)c (X * όTW޲j1_3-- ?0 QλJe1M~z~N  (|)-C,eOZtNɈcU͟Hr7SW&?뗿9/?0SIнЪG }¡{7@I2cC:GR|mf,YI["@E;vu.}lL_ @C[1u$հ{`l<=> Sba6PNƶZTY,9h:˫PHl,-׋tX 8TZ14ԶعTUm{ w3nMvg_Dgż"#!bT(٘0TpM4,"# U)AիqA'_{qZxz0 //-iPB4) |*Ѭnx|_ B 2 cLu T)ϯ O~ *]n) =0" 6~4,ָ"& jwQ۽c,"ٝYJj#z k#JGmb KwuPv*DBٻw- 0[% ͺ`)2#>=UNy[ܵ/u4?B&hZp)+xp_p ƫƭsPq~Q4hUq۳c"ӆܠjPVeťv's < ˶6W!P # Xm4'WRe`amMr^p,Eg4{VZzh`F@]Y_%{g@=F&M44)P_ qsGPflJ LAfk mI6cxHawNѹ4*S\PQ T[03Pl38(^T,im b#'=AakZF@@hw!tۑ %XYU%=\ zX߅Ar\[#b8o^"KS2D>)*Q氦MV\f'Q l+~?P]ΐk#iFzvCvҒxh9ͣ Jw,况pUHMŵ]ξr| Ǩ4ǛDT.4uNrSQ*GL [\<BG TŸP>Z 6}yaG,݁%O"ff*U1W[ .Qq_KGUemaZ=P>TA-;wʲذ/9\ADU2ܙ |dPsaNpD] HgkK>H9$aY|1mF@mJ^ܚC*5 ky,H+i2ɉ~X[K/ys` ݵjUK;Iz4^˨,z6XX iU)R P*VC~Uz|-TI6rDX1̹-{`e7@`r^!-1d%`N`Fǘ`_JAo˰ilC1USDFyS`:k2j?\6vB-wwEAG`=E Uxm)Q,2s[OA0ըf8yD E~'SY+s^ ًN[0|5AZV/gw(i,9&^^NMx] -+lye +A0pfhratd%@QE e.`m<|F[ W~U$Pxvp~WG\21Vki.LrHVlZ:U:+2?X5"D~~eFׅd5t!A`Z;Z(]UkiPUEB!IrD4e̢@P%zPV |*ѻS!׊lS" 2Hk5l7Oo#C!aFmn%p D<  K7l{av8sX-9P2|DxܯSS"S^XH\ɻ/&h u8OFnBWM`) |UĊ1''+ sOQ]#.WBq4ck-{`.U% ԭ1S ϕ "ay`ձKw B(%^K%Q3Uwdd ֿ0}49u(يip|:xGa T;U^:;!j/k836~%ɾ͜BymP$@{̦1e.jaP’`U8&\d=7i 0Ev@ZzelAxS@< w`Z(dbuRջq6r)úPu1Q@8g%V#ȚJS׆-1D $N&PZc+9n(B_2+wy|;s2-F3@K9|)ŨGɍ@ߩmƒ t{ݺseB \ ǯ)wRѻ͆ "N[$ jW (y,a-TZԺ5U4-I ]Nnk$I&N&L%' &*mv@"F]n{Y~,H#X̗DVe#M7޽"F5 Cbvoq-$};rJpξ NJ;f$?qj }b"_`mipQ>ԋV61~|zy?(9J {fVȓ"ټ%†E'#d>`PJr@ʼ ^"08a6H#PdeX8@ Ww; rJl>i'Ӕ8~CAxsD</bC6 7~ʮAjUsPҾ<0jNЊw5N8< ]yC?Bt’Z*PS׹^U)|!b"Uںߏ{?~{2ۗ VUP]߆\:$i3v{5sƞSs[*TVXgP+~k|g[כJH#<u^/i(ՆcxOvZX/6M%\9~kya#Kv<_#En=~Sb5o}KitE xA贔 *aq+{_3IC"! &Lѫ[P@;풷-.aK$B6Ev=;)Um01зҗh @+*" XQ3? 8XgهwdWW07-U<\GӒ0|9qTah "HM\Ul(~&C` tRרP0|!}\@RY*:)["Y4^р"H! (8򦆣?el_9׸?Z2!~%t^ ]1[oNN|k+ūy.%uӷ̮8H&D:UR "YK7'C| GKsT)8+xmo%pڬ<}OUQX]0Pw_9^b稺TC(r>2-吻xxʩh'#6̼D}A#.Xݱ>hRxuqh X4Y-d,t}$иHRySS U6ː(|)%RTԻ D~oj1bC X^! 0wcc4=03w-{3WKvrlӸ5vxa"_% eH2G ̩ؼzә+(y`>J"!]Y_0Ʉ]rID1ܷ͠JXp|<=i&Zyd9c/EժX_奕$|E,9E3\4@7ՔփԫJ%g]VxZљF2y\US~|,wk8P3@ c_u(#duk^(ʵRuwd{B ZoV2 1\\ آ*YrjEK*#R{G[ĺa"p}E`'҇Gd".Wa!o]^"p"S0.W^bYPxMn?-,呮M)R~DPm⍓"ӽ @d G$ԓ#r-Y`}m ,o5li9zͱk&Vﵿ%  0Pĺ2l4zizI~KVۀF4 +`oo2ѣNWl$Ao}FmT%bY5d*N.&8c519h"+0 ih 5hSE殎 aT=$ ku0TZuP%6@.7 :"m.7٨bS\pZ=ˍ1AD{΢\*(m%}am@5pp-!K]6KwzVD\l*H}ǹ^b-KPQqʰgXT|>3: jCBu.TB|WH4l-RԦa \-QaA<KkJ'x@RiS&W0 I*|9v_ۦPX/^<)·.돤B+ 4CV(\5uσ o'|+ ЪoHuqda1Ƶgcx1xlEQjpX+٩4׌Dž䰱Xα]>hZXGAZ/|3YW 0;A]뺟u8<^EP-?-s{XKw^>`]1_Y!eqE y5ž~wǘrB{eV h(ǣ׊F3WU]_TE)=9=/xV"A!H8VS^cEp$tx*;"mւ_G)j`l+SVcRGRظ ^kX0 #Wx⾧ "Wr "FX`"1h f0!nDccY(m Dz^dwJojf5%>D-` L2b *,O@!Af9"Bq'ˏ&s4UXM(Uy-{BBʅViYR¯ʕ"vxZ ٣5ڳceCzj B:Hon')AEA+?{bjH]fIq|xlH5!^HRܨEUqS̩f׸Y8E~4KJaގN/"W'ZֈTɘB >:%z*{XdPQA K j\ ?6bӒ xBBi{ ,8[Y|)rGkјr, `p' p£2ꕗdfD7Kj5<><Pvwut]xV7  7)kEM\/J(9W|0Prsd`JW,Jv o+G`]Cz?Rτ.Wi gA(Ttl@-M'.u;BF[[qve t>1A)6U#5))pw,DYV$לxW#$26}Frx`fE(%{]gЉ e Yp (7u0x4ZOӈpO=GV1SHi4TUEG0=E (ځ3u_.V߿ۥp3 H]]J]b|*VҁB1dz1^ujb"-&kkϯLQG,ˤ&SCZ ^4e_&e1 BxƱgcB^x<\CkDO)^̵*n6@oqRRxUXx"F ]!PA5h(eQn!8bL{O~ @=TzCI~ED'Und0@Q6{Lx=,)O^DoRDh^@!^=QNf1ȭ#Qя KPV:<ل^VG#6AZ&WSs~UFJ5=0YAWQW5>1 #HV0`1t0j)=!AfbR͂=,Ziʩ +-8T섫anGt5ؠ|EV?wtr໦2غuCV=.,U <q0 &PR| ڗΦǯDhRɏȆx] Jʜ`ƛ{+ɅˠxxcGLY#Up)M /ښ0 >ye~\xK%]vm7iSm,غsDŽ%܃u0ݡc;5`PGp /Ђhja׀t\Xat$ž,=oM| >%E"$K/M6pAoӟև@LSod'Jm.C\R_$P[+ D#=#q ~bFᛰM#+!'bZ2ഉb{!t }Rēp{Dn|N*R,5Ab&fn{W-k0'v*bЛV Š4N?EMƁnD(6,}ᠭT/w/abՋMNjmU ?RK\]d3aҬ SƐ)͞Vs, *Ln׵[t\!17WuӲ_&h[= P<:j,zOPR9QkKR/Kx!Ba1ޫӾ̗p)dMmJK*. =A~x tyVܤN_qd>* @,m9_zZ6E~燂/  !J7pkÛBּ EVzRPS ,PT^ Di6M|~)ְv~w{fb,ً9ܿT7-9mu>/"d2seX#h?I w=g)k_{bdʊZůo*: Me\{b} ѧWy(~!DYbsU|E+m hJq<*U+Qk䃀iPAPܪ))eӀ$|u$,c@a?tC/:U-j!_&[ -l,Fe +6O/jl*lk߶ NJ+@|+/G*_d_EF_GAK@AB:#Hy D>Wڴb;r-U;r)&" ]|KQ R[2|wv?IbX JF"㠳1vThep9 i"hY./'ɱ5~(A J_m pTrBZ>їp9X )X8%>hxg_lB(i~Fl#ۨ*Ji| f%4o&ؠS4:|;by*^jE)3m=|h{{w)Fb1Q& XVPTxB-^/Ff] [+ϔ4Iqd xG>1Hr K~OsbXj1BÒZUw4ވ i_s~K+XsDa}_+"ش4KS hrw]-r4ʴc(62XM~gW.u#)4~%~ɋ;kVTǸY4OR^E>ҞcW=ə&GႫ{n kR߉j4F#2dW>3BП0,(Z7L;sa6ݶ5p4P9#{ C镎t~KG>U4zar>flhN|dTյYSR;:Vj[ =VB'qoXZ*$.-pCN4e|?sP,^.T7Ђ8]1RKFO3eQ[Sn1+@w+x Enjݡg[ gVE8邚qu'qf -YT &d]xrG^#BYE#:4;Hʪ;T>5},황F^S ^ZY}Th<ǀ큎3>jHE~ub敻3 XZ;L&G]ervĽTyZ4#'.+[ Ю)(CHoK ڏ^ڣxت8 v f0 y,ʨ⍇۠ٛtǨHɁծ2ZˀFkj+)~V} wqzQEbXWLXF:ڄHmDBӰ@ gf/a 2Q {8RFMo =U}  (-LS'V(nlP>biM1lRru>EoKv`+a.+oi O|:}B <{#t\.H:KS}ZX;_cnͺl@mBf*\JBqsF /`+0)Y[ k=$IPmeD2ZeXq+0j *%]1ʣ]xl`]?Z @4ۉ@a<>Bľ[y35T d~1Flu٢r>֡( EO>f6j2\f <8yy{gqvWƭEPw2U\>A\7Hr_.nk|.aU 9>|EbP5gUd84Ϣ{R\߂Acφ8<[Cѯ=9ܣWl! c((7/.ȑ YiJe%^_=+//Da{ûE"l&@t nZCԥ`\e]Ϸ[J=cf P[TM~z nB55Az ;tv.J- #0mKS@A)h.QH[CG2F~9Y[mc@ҢEʼ/dX}A1Z} Z9-muPQ`9 =׋u݅Ky>7?ScPB#3݅%1ar 7UXȂvJ,YK*nH-~pZ7plia$Y.Wy|*qR6/Ń,WU 9v6-T&1ҿԯ? IPDXB`%J,Zh(fS7wCQTStL#vnThzHtjdPlDWkd"Lu\U} ǮG~Sn&Ċ "RJ4鳎n45O+I C-b!^*,O֊.c[6M1 1V:TX~^R)ƈJ@Zv c0]Azm 2mu 0Q4l$IfJ]X* mYV 螑M}SOw& 6t@3/RjǓ)e"jUǚ ԠrLapr]upCXRr^(L˵r6M|̢[Z`!F +`_Uyx9dKX|&PÑ,)3fҳ/f*Q*"0 T bdy`arTFrQn2a3m,)~9BaRĪܷ}UhU-< Zպĭ޷Td;`dzqP :~j, !3ʙae #xruo(y~~g#qc ag%K'Ȍz':+6ǹ-x3sK+6h%#4(U ZU3 WRYp'ab.Xe-eYU)r[kUˍr1_Bn :1LWq:U滨)V(sAYO(F yKiTrin'XĖ9ҥ]5zcxngdG(- 3'4YV,6U[kܰ쮀4JUX[WX>#T Au?~K5|.fE|FԪE#<΍ڍY/6?6~<eDQ2eMϙl.DORzLj ˗Q$!tu* ЌPPHp)ׁz68 E9Cj蹴 ͌R;u[.pmwj @cUE`ti|!#8{+pC&S մ|U8HETW x676&6xqGѷq`߂U5- W;#+E_ҹ ZX:r"=ߘQYu >IFPM%DDS) kX'E>B'VpW)ZǨaT"V)-B⪡3b[MT៟2\ùD`>%_5M[|S|7Qw[ Gd iCZ:SDY*-V52\śo{B=EPD%O4<~d"+qmAxx\Kbyxfϙn=clfR"~(1hN#,\pZ0oPA, ܹ6ł_ E|/J}DnҍQ5> N"$JL'B{gJ7$R[w"] &# " i<+v^tQ-FSlWt(Qum\zZW=prϵ4E/W p*BQCHE:ydqH`PZ%k:芥 :3_ϊZSs;SdԬÒfBWl"$)LÙTGXde[& $Px;)o)+h8hVRMA;!.oOɜ+PY\FUD*7w?2~ly?@BFhssY øj&ϙZ.oMZ#\Z: Mq3.!lS])L A{UqD4뛨 Lf都0DF3f*o"F~*]q.NEja5#Ԧm;>jMAvK--0 Em|2N=Yi{(湔yj<1`( {Ӛ,*6yUqB a2;^,yp)(ffXS5 ap@E56B6_s ] Dj4T`ŵ|QX Zd )7d8DCMڣE zȸրP2}EjP4TAU`M{q3y?2~L+bLx៵R!+1 pW7`O|Φ*}Z#pyC%(OUgU Qg*vMqe9s`u(;eXXѫ9`_hkGXJ nQ|ZH_d(xQV_4^w/^!b (, >^ eH;lR /W.rܦsgg^(`\EF㗂QTOem~ eSj4#׊&Ӝ8и%@z ^چO|@cЎCI{k7ۉn7D֘Tof0fYbnh3pj|@}2SPj~#e]fFq.+iƯU3ђ0_aOR[}=@Puv |fjɍomY] MlEiK)(R<2E4@4=Jux1 /BIH;,4ȁ_!ga\x$ |A| F X.|f؈KX8&,ѩ*$F̪"h9UK#Pt`>(Af723줿]Q K~Ѱ1Y~д؆GKw "ܲ%kzgzRTfK K*v?\ Xor`Lx72xá!Xj}ٍ_TI/+dla erY߄//͛?Ysʠw,WGOFS9ͬ>a8“\~%}y5@[_<%["! r ˢ-:eNۂ~#tfZt`L2awٞ4 Aْ:EaMx8R܁#qØ-xO5DχV$Oq3*q"Qkm(1C3Y~Qmpڡ9#?fa6 bhFFhe#cbtg0.nHk2\X-<~'ۙ@v kQc_*1o 7F.T 1㱍9mf#o*aVtNzF*] y_Q q)V\ 84%t^/ "ւUjB4^`l@Ua4EjƶڣŒIbLPkd%OǀЊо&ԊPVJx 9%ne eAP*̗, c|U|f_|ӨLeIwC? Z&1٫z\Ej[[ VSbfcC;=Z!˪̪U.(dD-M0.L04[ T`o?4Ҽ1 Y*4aq"?%Yg<6jRNn!cJ_b7E%* ˄S;XE(NM Z+\]sbWDiH;;c >?ӫ[ 8kjw8OgY0P*W% Ҧ-TƤeiUYJG~8R[jC C-m;!k\[g&P]?IJGI)nJo4bh-|n|rZis[$}`'ްްBh~^?I{K;wܥK$"Uv'_%&b!WAj&WQS4.")8K0l;WS'X_7u:d{7԰~bqG,g%Kp8}}} c5 ?C- u,e7س DUͽ|L9"Bڰ#̴}GԸa}}m!6s4E'4  ,ZY9@\7K #sJ |/ ;$vҼ^.劔LV5'Ǧ&YeN*+0Um8FY^Rlv+(MQd*S.6yS8jYs҆e(;h8p\šSE^8Q^FRx @cW.>(S^Eԡh146|C(Y??Łq<HWIJR6W1ԏr1P adp"2M-g G`bXᙯ%?Dbu}5eC/L"~4ӴxC5cGH ~vV8㙑JV oIgJ\|sJH ?_T]g25jmeGXhF:QSYWd3r$j i]-pAxD&R@Lod2kVjZAɰ <]1):#K'!,*~1(`bq, o-奸)7 }c0?JaB)j.lwM ߲mu شU*Tk[+02KEO캋"BWFX ۄ?.4A&ϙLט [ T #*sZ6{IxfAq5^g&OQ;?&???0…+i:X d4/dՔ |2N14=0BD|S'2wJ4Zt G}E6pj;:_iDjL$t`"//c/B⣥WѬQO1 gqhtN3` G̋%2'W21tbm)U\wSFtN 㸅6R(4]F}%^(UHR-2Z3HԴM${U@`kR!eid@blÂFO:ŵ%b b9eLUOUuqcx4>EY1z-п8\y4*nIPO LnjIs]L<Vcaf~ 1LiQu5媤f` k oTP՚x_bHC|2y?o|x,\͔?ؔb>}:t{7/Zg>hD,SNtx>&q)S%c lPk MkSJѻCqzBٵTG1F5Xs fQW)HW|Ji8D?*cZ,&e֢/y9ɲ\Ǟ%"ޝxYÏSe iǐoq@BAX PD J}cնm`_:x³3Q%=%~bKzt8xAΓ-Gt"0'e-E+Lv[-uH0_djFnr̡XT ` 'qAUfDT?p/;IX\g#uK~PˤM Z[P|'󖖀ovT΢4̇N8&^ >5o<~R4O8OLTRL?rkBc^x?x`\?? K)vM LF'86"Z57Jb:{;ϙ#d#k G|o0Fag?87F_4qn_zKS{hlezD-0;( -ᇸbV tt hm[[#T>D*!V\[A._ef`lr!ө8EpNF(WUzHV~tBebkGZM_mzI2vdvf$EUѦ]9`/P[\)&iZ P7UF&d6bt‚8S镍X=騣,-oaS#& h- МOpB+qh,ξt@6Xjm\0P̼k_hfs f5n}ӶƤBFr!_~x$h8FLjX `</M2\# Rh((<3|?v->D$*Y3SNЌ9KP멧>ћB#s]O}GL@)]2}j(LqԣtCH~ҊQLߘ,3@ab&n~0J& D~#-f3ĩ.mGccR`"o5Naa Y$R_RZvxZ,@ʱ8bl.ڊǢ+0:UPgiZxHz 0R)s0>\T&n RyUaj-Y}gn(E@W;-T;|/8J JY{ΫNOg꟬~L"0 m"<)b85|cC%[l,7wؿܱU?F0F3٨ٳB~;]bĸ(\JA]Oʚ= >odhV'fR *?\3̷DiiT'ZSS*1oWP_?du2u&0Qp?T!9T_s1:bԧ;d8fDZ?[l'9ZDi20"{6rWUu i\ˤ]ٵw'j-V߄dɵr|(^؟\ZX5̿oX/H a<ܫǜM$v1`]?SOq#?ڐ'p¦VSC@#`c埓?$ݢ!D6(=ʍ2!2^cx/0KLpߺ >8?7_ycM Y0{/?1W8ߍ'#}l~T?ퟌxx_el)N~G_/4S> LC[~B#1$O}O'O;ELA4ͮ/ޅ3hndXjc}f aBWs6)sDݽ@5]9 _r9!,c8jf>>aHOcrg|oE+tQPu#&R0T߹LsQڛ_ -߸b?0jUj, =P>cv $jXڱ1 ]E  dN"3 ^z6f#:"2 жWGeDkw9%Ѕc1F h{^>=A7kV/ ReoK-:a8~k*PL8f*;ڡ>HΆvF'dVSQ?5VoM3 ,CfGDR16Q qU )AwFΣ2H'R% Jg//l`&\DxPI 1X j!-;esEf%5/+=8o9/[;bbdZd S0۱/\X,:I3n3/Hˈ{˜l:0}.i;4eO JV(#` n­f5KR:9e647r"@ne+y-߯.D$Tʃ? ]@K1||KPUϋUϨRp`HL‡_S"eԮׅўe9|3OGEf_u i%}FÃOhۂi TxWQtTxmxvY IPb  AWԡ lGrц먓G n_Ȉ;X6;q2 {2Gf[ɪ ^~72 Q3F #xat` Tj# 71flz#U#AZz~#ԱKh^]H6#Z󄊺* 7P@1UĦJ| ܲ4ob֗؏7 \N!-͸X7\ [O 2AtbF̯Oj؏0zU8Xl`.UTJm[k49>绋U䢇Od0bƺe\zE2›_ł Z$ w?ԇ -5醂\P^|]!PiëTZؔ+Pۀ?L(xKĽ(9Wmjub< =W'?-1(܋۸Gx- Cȥ;GdU\K1+;G#D-e]U Z6T}T龎ir% `eɲq=GemBJb˟Ll}-Jn,6gX :RP6zo"4ijۈ~eiOlBBNHtu0pWRkר%uI3p`~'< l9`Mf!ei}^4_L%D5р"0xRXy4)-|39 7-UmC *vV2OJUkRyp,tTjغou%T)M=e6ܨ}#xBuPa ]0^@Z:Yh+afXu4;=J jfxBn 6%=~OGn)dkJG-貐M*rN*1\~L%X 0Rq<U '? x2K6/GH0m_kIc vz]wZv?Jhhd.`F!@ 8.XYqUcՆWTm)Phioh30 /qg\CDhoH*IIeRNG$"^Wqb # Θ DZQ .w/Y @{IB@|sMa_&+zxYpJ9-)eeWĮRC`(NmigbbO;/-6|ղ i| NbڵGIL_-D!/L HWY8^\:!e%%vᔔr706"`VRA.6`Q+Q(J%¥J ML%xO3xX t2juq3Nxz xtF ΋!&}8Kμfm<) oD}$<swL?0E +!S (` !XHv( &!|eѦ7BΏʕr|p æ1Ch6F==Buv_G9̊m7wߞFYw}Cô/1(>H\$xjeKW[}[Gv |͟2UϩM.}\5%}s|RP8!Cf tn%j acY{Eʸ>g33@@;>K󃉱`cI) Aɖ垅?B/Tcu-l7܊`0v/.k g(9r*7|(X.KїM4*i jZʝ/%"e>WbQpg^ZIx|#+DFt@W3eղ4X-MO`O_I~X!b-&ҽ,l{.c P)'㳗kWik/ {\(㞓`+.}F?E.Th)(l@@} C-r2^~]Vּ8?m@ 2Q*|FҺ݊LJ(pFJ~0m}3dDgl90Nblhxhʴsrߌv[XAʙ?OG6U:t5/|; n([OT`TxpJ] v&^vw*UVHY] Hm3~Sn B2]_ 2]@0 ^55}0QX5{SqmbD7RT!%iA*L:L3?2xݏaR`(Y п0DP[;_Bg/!w$.]K VB|hQmt5*F3=XLN+-[Vں WzP_9S,t [hUpH@IA!E)1@[f9>RׁQA&BC+* e?3/jBŭCy`U}b۝Myf|bBK_Bƈ[Sp[T-).-^Չ27W@7Z4RMڸ"*m%ЪZ[JϷbEղ46+X׹DZA_Kis?4_Gt0бX^W~y?ʻbaZˬ+q^t!7b lmhzXhYmAS K/kKa# IGD [a)f tkѠUʧM;e=E36`3 m2rnF,D ԫ)|CoDACqGŲ@^냋n CaH/M^yaHk⚲Jڶ bRE^ j6;@ v+zu)jh{Vb @:;uhƆRռ~I[s~+Q j'M]5n0mS&5ce$9:Z Qow力;9RQ=xUAk YҰҾE>ŸT̵vT*@Nؕ+fјQ?Řjʂ1JMƴ3{tC6ge@b)ޣ.siƱ6K0prxI_ʅ@}Eز[]mFUpDˣv 19pZz0.H}3} 9^`Q]Y N _rz(7ܣra7IRZ5t 6g.Ce[h&3 .BȌ&BMH)j#\f?cZLc<^)gShD;A:>]N 8C]”&^(9>~o|xFTq9{DZ-.ɚ-Q2|ޠi[c-;ku|׍ -Dq؟_6Ǩ0rpD t(pߎY Y7|+K@ŎU)Moϫ ?T}~-+3-z~ru> Fy -/ +"F7 K^" hnכ vϮMh3@*9<:x|]xg3(u~!=ys-|uxmU-޷wm(!~/:~i?6u?_]6}<vQf$p(JܿB`΀ a umß~Ni(Lbio>m]y翟z'~`ƌh_PᳰYxoӧT:F\d4>\/$|GFKK~TTX8]0hvW3k f=#p=5*|bVZz_wR(`ebaD7ӻ^%IgiyFǦQ^CQ%])WpB#%$EJt:O (k_ NyT_j%"$khJ*w0ͷ!n*qN K{b&vr;Uur| %@>?/w?*xGJO_`;ρ;޿&4s6EH˛S$udz?NK>c}\#Q}%X]>O:x!@V_(坿x7Z,n 9(|((KhBI=Lu,*/rx+dtS.bh E / (8v !.ݟpBjߨ%9niZu*ۈh,$,Y:Bi JuDU/ ;`@aϢF"LXtD ǃ`,n#'|?Qv,Swn0/:|~~ϕ WJ4K-;Rr%ӎ >1h~@?,V B=O>S,Qߨj98BO=S׏;1~@MifVwE]Ϗގe9{_nI\spC'yb.: !M*Q;՚aNG-ZJ}Df/DPA7dP3 y"ZPEnR)7iM&4nb7)08DfS 4 7ıv.dž:;@fg SJ|d̠0q-\m*-K "s}' nm#D^*!} 4'ȸ/A,|l>B9<^ۨmz@:K(b*H|+*}B\dtA?Pjܿgv,O>η/j jAK(A_"_&-"U= ŏB`T9{wa}v{~+>V Vc*?^q⹮FߡMH~cEjXxyRQ.g>3X\NKIlt#^3=/b)~ >GMj` ><@i|'@"ҡkX~#E55߅DZPU hH~V+.c *>X` &Nx6?WH@P(bDaPUiU$/'d]ǂSR׃cYYf40}WȨWqċ_j"B<%I<5do|Tcq/ud:vISt? y7?>2qd?r4~xz4 ~Pͨrx8+REMՂdƟs/s=xӿ*4akJ,ihIDDayvFHǿ/KpOQ6Lʿ#/# xO oi>?퀛q _j??B@ fb%h k]"hg+HPc6} ?N"U|jy7{Hln Awplrsqߊj[&k.ҬDF:8 K@"؝Cp,~Z_E:t(7wDhz%LjYZ7n0j1[[. 6G,4N0.aյwb|KZ)=A,nRKmj\>- ,v;R~K nW1ӈZ(==֡ZŽGfNYU*>6(Wǔ$z a’e&!£ 3 UD٭P&Wz'!(.Z2#a#cyVVˀmYm*smn ҏ8,kzQQ"n *-^D;[s5HpT'$6 2%5EY,l=Up"8b ,Sɢ3PqL*. gtچhIg.,oi?+`N@UFı0j٘DgLlq# —_Hh J}[ZA,}Na6G_"lPJP,i;X~ a/+&c K9iXjMG_YRKHUF@Jlcey2M`5g ذS`YKLAp*['\*i#fZ6ۥ8Ipnl DuԪg *6k% 塀e \:tdO1foiܢ_60 \tEVkƿ` z{W5߆DJ*JέnZM +CZST9A<\Wϋt\c_=7pUA>^@̰ - ׋Q"0"a!HdxNq %-;|W.,JrDhfpYL~y?/9ʪkL^.U^[ύ5;>4+[H~ x~ⲹ [ٮrgQ=mzNJ0A 3E)\lce祀8DM6{F}kO#(Xv~YH.]-2'LZ1*k`}PHk_,Z3̮/D{l22KXܔ0(az(3<]PAX%j`g:H &u)2`J|L㺘80X88Xښԋ \ϘSZNuMJN'+J + ;R|l9o ^KV\t`> 0^CNI*s9eg=.Ɉ Q%Ȱ;g…NI -]@ջ;6MZڲFx `TUiQ - CDBD5^4b2JQ6k>`}<6-*-~j=qhZ=Q<u>m"2U _Zu1U\𞎀( ",D|F8=z"0r٬#c :)5ߊ<[ZnA}@"vJrzEXj/!@uߩbUyʕ̂"z~Wb J3 ~њCfUebo-2V H/^t0m#ܮ+l{GԕL5% 'C%K钨EF',*4! =aAiǏ . QzLIWD=(-*U_+2٫ѵoTXXn1--VPhȻR/ ܹ4l`st~TiV YVWEEk_vV^Fb\҇VS=7Ku*8_bC9SFSQYOEvqy4O>'S6K,la+({(ڝgkPk6<[maQ>arЌB wzow[H&7]`ٓOjػ|(Չ6PSQ4Z>4Z@1 KQmԲb6Do 4 8g՞b[cZUlfw<TzK<į@x]awRsR ϋ@F\肛"c^a9(/ڮ4YQ5V[y %PU~T䞒ԧ*BQ@<)]Ri" $@Osf؁PV)D UdYpAAM}/t?z2]flŒTrPYp8Bɚt|G/k'7ʤ֓;6(XTra풇 ҋp#Y&ESus7"-f/U옦M T<` 3P(^C]gi]Q_͵S_\eaGcY2u4Ype DpŖ,H( Ǵx2$ȍ|IV|/^M,s?0^V&fx @tѬN ܲ"܂`Tp*ՂZ̸u}GB+#~ҁYjjfer"ž[) ^Mu%Y<`,G x~)>@2!Ṛ>xG/xV%lìF9bA=X\ Ap:D6w>3 e-UĨK{W9zNL>džiO˪AggS k[! M¥W^9bw<sD K[}lB #fmj[@kP¨buR* ҹC갥#&ZQή[u.LCz#rʯdEE{AG KƃW Jig' 04o @h$oqneu1&ne]@ "*ۦ8A RlX1y8U YR8 na'q ?KQXM1K`^V.cʫ, (8l6}!Fj!(%^wXAɸ4 h-=ˆa ěK`)`U (2\A*7B7"#!-c>֙8ОאH[;jAHM I9 H&Y`m.+-La1 H }Ե@R EK'ȁ_zIrgixa: ;:x+ԪB^O aSܻ!ڹi3M Z>^\^^/;R#LR:|Z`^J痂`Fp^NjbZ K"Y9kGEdhA:-f5ňx bV `&q{/.S.mߓ$d'vf\P }B]:#`Gdqk၎][xkZizc*!KyԲ/ x@bJ/ebUSDB(ݵFpeXj^]wGѷ̡ñ/D$m^x(傖4pDo~"T jhᏊy0r@Rz1MԸr:T|cZ SB/̥w[ب2YK;2`|[(Җ5z|]mu)vp٤L[szXJ0}A^v zAAq- ,\;  F  8!V 1o9 D7$Ruʃ;FO !! "t/(Iq7v\suq2̾2ubhRz&NL^RKC|{y5C:-/"Sk @?[j5+BcL+YNjSw=ӛ_AIO#M#=BFӒR:;BX}y(ȢBazm#e<^AJ`_9h׊NP tjIWVې, 5|D8'?f^KpbG$_I=XQ: uW^Cd4.@5+}/1ܦ=Q@Qs/#w1cW80. r'^~ݴiB> i",Bt0/mPs$€ʣ_r^զ sAuiOnL n~vEdV-Xܜj5=~k "a7 ȴƥhmA\ !W9K&}0RK.9#xgb b|`-/@UbZ9@׊ Y";h^bd@Ol, EOp CYEX*1WUF -4+J9)dT'h|)%kl6oħ& ~ч\'V |KEeLaw)xsHON@T`.B5GPCA^ NZB)Ѣ3_ s4+P3 |+h4)߅ltB@ /7F]냘U˪F^jYu\tBw9L#1o>4^j DBO€0K)/{u-6{ nC E9Ƴ#֏>pxr8cIbmn{㾕̊.T=bU\.b\\ǁn }Bb21 T{рz:ebѲŠ @tW`F8=Lu`ˊ.P)mKWRir' )!nPcUE+=b Xpv@00#QN 픒BxP(9~'9ԦT_upe""^oHXL*KE|D݉A4nrSIA(qyY&O_<_Pe,|R_q6d+ ū VQg EE/$cw;շ3; +tD\X<-¬DUj0o76N }ܧQF7WI±|FK5L"SJC@.ڸzi> įHL*a**$ًQ%5'@-tIOE C&7#2T[%Y=n^L6@@8Q<ŁqsNOvUz%p i sx̍ZeyzBELb fOrxT>#e @tB~,w/qUTcH.@=:By2Nkj;S/3)Pe>rIB*E!R,"5ꠈ*PM$=@iEJ[ncɕX Rk%)=p  Gͨ)H%h>efs#1U{ Y[m@x6kXejHe$tJQ{UAdj;r+p`1s*qlutġRՉ*^h+DB BQ[| pK;|"]h~Jعm)aY (n 컓ԶDAmb=L\ZWPҡ(e91-Vj/YX ^s #!8DY|_jy@dp"ݮ+*` WZ"R1xB ZZ 6)iQ.OeeR$!0'c(.RNDd@*I'#p/tbRJ02 s-? + e3+>-q+ZT5cUKxB6iA_(pͼG xeT'2oʔtr[q/׀)6˘ X/_x {vmvh2ˊN.1ċ‚>G#Z P]WH)њQQ8V_{-1NzXx=zuQ'+AbPO E}r`D4 b m+~amߋ)hhWҋ (nh5(Ud :`B][Ŝ64Kp[ XsVꚿ@4Vĵ Z*>>!ݰC+|(0a%DJJb5 $z '? !0 -jrc!$^r-r[H EQڜv&QQѤ6N IvCc,@.\UQ玐t-:-MltSps `\#Ex x{U ; dUGE.W H (4֏@f =be,&P!>KÃ@WTJ&v`lF|no[,ÄjVS{6,%hYUkϬ' O2UxSvVupz ٽ+ߞeBEÈDj]Uߜɠ([2j: D/ׅ&'e5Mƌ(O?xP:9Z,`X;x^LL*^ZϨ:^U⥶[>^1|MHoAyKnnIUz&:35I.xsS/{&7c%09jxuɾ0ņO.>*e YU":CC ?Dդ* $o- _X ekq%0h&W0 3cN#ڏ\^tcSXl#9-S4T_XǀEbQZ [ @QP#%P.̀5RdȄV9 CٱE[5~hn+rOx2g1r|+A0 RHS9bJzk^>iw(|gn Nv#f%&8/`p,a~P  {&"#9YFH nTX&*] - N `qQ`uDz]|KhjU: Tգ/VhoA -(( yl4 ,l)-a[!H鞷; ΎyA`]B @Kep5~M>Ѷ$#m SbW x S25]=pLaI2'uBs|[!f'B/uNeSJUx4['A`Co~v8n]:80 }! DFw/۟ ,ʠL* |ܹPb]Y?GЮ&ELC/*wP j4~kupxc[,RZfaA)PV{񨤨Q`p "}m@?5 уI\oef nPl + LUl@q4k9WS$ky2q٢XS[U} og,lݲو=/r~hY=AQ{Vkא\[N7Dm l!c@s4^'XЎy@+@hdS̕YWXbj?D4\6sbwPLJ ES@PH &J꼽CdXʲJ|2+_+f!78m,4Um t uA-DS@j[)gxpCjehdZ/sn`,eVWeC 0[зsFrVR2!z%_jFl\]/PD;hq!!E9&7[C/poQ&ׄtf 6BvKWUW0qF e*#lQg倸'4C2}VV}5+:!{/K0Pp< PKU}R"WK%a"Nd+x霥w wPrk8`[-@t@g-t7+JzL >Dz%@NTV'_VV Y9׸TFl*A/؝twPo@:c).>#@~}>mlߢ 2KZ`Z)hG1-vۈ"Xt-/#8ݒ+I}*-u.< !~oevex Ɯ.q)-&,䘄P4D;YD#h<1C@j#w搶 ;uʦ] (U` v$R$,Qhpe&PNCf9K=UNߗR` t>;xy^>mwp=fO9E^ڂ9񕺁@6xDZA|K;S yb?0I*Um7τ*Dވ&Txc.b(21Q Z`CmUS3 PG fq(#V`vZ{Q#ǂl.")jy@| A\\oqu#C-*Zl&&Z4┣r˅rp= bEU55h;l Ȅ^G1>@Zɰ{b. <]^zcN:bI(<9_ [cSf'̱w"LTݶ0]`-XJuH`ˑmF-)9!U J̮׷Ł ;* YHRj+-""vE6x Hv9|?opE:,D/W*>PDtkǕ=hPJ60NUۢgC=RK D)g+GVR0Eb_i"{<ƒ̀Lv]li;{y@4 5${aYBkP:1UR)j^0 <-!8e bpuз<(6<{m #jYw!BakeT/u Bj܏O^6_D}P۸hpU@c`'%q T '21ü U}ׇP9w-W^T{xcÎヨt-+z <_ Ї=ASxrgkɤzދ_ǍS3VhKa_tʲe(4*Z՞R/^Wc VE|["@ߋ=7H?9]3χLU/bΏ Zf"8Ư,&2%aK@m[>`.L%/r0n\X2S`1b\AOQ0Q/KfQ L"8eV{ē (@jfK/ԵQPZWIJ*j؆>[B?X4)_)" l?g'ϑK jXYK$2;"8 @HK% wC .6`ye.丆e`e I.\5#1&Ĉ֮({z?$ &E:`[(U^d  XʚPGfD:D!} Sgo$`Xm:3QAX`#&'6 &f~ @O+?hɅP鸃TP-hd:CA^B\[ {U-Kg# hDdRbXफ̀yo䢃QwgOIO ).rukY`% Ihh.SaP< ,Qg ZCqSKS낦Pn&^]=l|B5PM)a-f048(Ҩ0%PDM9&5&"˕T@zM -Wy!R@͇Ll‘5Ҫ@z]^aaL}e  S`6zV߂eiԫv/EVk"p劎u_.xxfIU 8Hܤ@> 26W/Z Jxy(z*^\c-PP;ݴt_ `u䧲#lIGhx]!*~v% h{D{0 wM؄kb[[ie<\ +x!3:4m<'d^fn ]9-Lf^Zs/H]|AJC b:(->d hN%p^DB=|OJSx.tA(s R(@Gቓ6ޢBjO!Bͱ0@ (%%GDXqn lc {cI?AGSJhDb"AZ :qq]~ [b1.z/,lb2H+tWE]0\gTnj 8DpEIu+Oy"X$ ~y@ʹy`q.2L˨j *+͊ bҮ-n?^ !#*# =X_FG`b|!U&hB媷/FA&hp`2×^H!,}d!p(hw I38qvZJ[1e/Mqw+&3*,~u=k[RtKV60]OVnQ^~ J.7"hWe.xO[썐rV RsX5 #l FP5f.W!=FCWDhhu[C1qjMtMeEgZDP:'q>&21z$Z"2l6KO micY,\<_İ-`t2]ZB& ;|]ev?&cuBEG4zv TFX}dQXOԩe.G *cI:PZC!5(`U !yAHBUj)1:, -*K[j_2]>h @o%g^d$0샦" aqWNY&-(dt%w) .u"#H)P_\E]EAQ5[lL^MD!*TvRYPH0@`Ɏu($P+(=JRcb^ =<]07r(ߌK'_`4}av2/'U^6G (/~=VQ^!DQ>U"X#,2xvBME i펀91i  =nq=X#84FD-2-^%[^YNI}񯴱}xZ!Y [9C>93 Hj& &P/G#rV\&>&i\vwÏ usP!xOl]EG}wjoG)UP$]Ci;!X \*G ns&%gKI.Pq%հ˥&:LJ, (- 's|V@չ},nM+a,*/*AbAjM)rS3 z U@.onx\A,xc 7.DI51*_dTݞ,;BPn!eϬвz¥_Xz 7AmKK[Lk,,{?O4i#U&~+eZ}CxT2BTgJ| +o{w'zKKӤ .qo|BIQw[ca(']C %VIwE*"`o0@h"M<AԴ>j<;ڌ@\AOjOCv. #!5+ .7]wNQ_ˁS:s )ua<DT\ ñ4ؽ^*"|Er1JHt@Ve5֘@%%a4]H"PDžV>i_O>oQ 5uht:=<0:ЪFB Z7V;7 X6O% Ou Ծ[1Ez`}eUJA"([a\@CU]B|ˠUwVE,D4^k;嶼f$jExWMе/;୮רD00P+N]lҟ&faZ |G{2z@{m8%nR@s A*ܩhBú֏aGwU#PՑiX;!,yh_,8i /鹵 =T 80S11p'pNyJpFͪBDST}PQx0GƊx?4tF BI^+*,YYo/@гÐ6 _Q+MS|TmFYꧾ'fզ LJbYOl'adK^=_/l5$ytzZD}T OD ҃aeGgHcj+`=U?4*h.W [rpӹUL͎+0Q hv2Ӛc DWtgN};oNa/ØYA4&hX)2vtv0%2܄s[,%ԢQ, \@ݲ,E2z-GK5,54mI φ~]rW{{K`SǸg oIT|\Oj?/ endstream endobj 4 0 obj <> stream JFIFC     C   f%" HYaߤTĢ]QU hCd4.:Rw3[83&ђ<8ln`DŽAr 'oJ̗=4j~g=.J3ݓϷX 7 <|=^Wad 03Ay+AkXZFw䄿"3bpWfѿ[z"6T_IkI҅ۚr7Zۮ^+~ђȘE J/<_&( j1.j{#Y+p+&.,ki*>ݒ)<:D۠ U[~.hBҀ8u-,@]0345 !01267"$@%Xg2"櫣v.c O,AvYx²%&@n2xÚ9 Ɛth^ʪ'1'ʬ|x\$C-*\rz.E3X4?X^Ë[T%׋ d-K/5ߨW~FD?9ReX@\uBsG$vlPy}Qr{ucoY _K%9q#0\>.X'6 cA'U\.{u<[IhYQJk{:Bd<6{QMk26=Y `.769ku sa1 x`)7VHGn|fWSp_Hb[u+( ,hJnwtbG'}O'>Yp)gHl=%9խU%c;̌*\\1I'ۜYIށ<>;F,n1W%fgj}V/Xʩ͵YuC jcFSU nrX+fIMdr9;u\0gڔNGepQa&0Duq/.|uqrlNjtrCTY 4*I3viHfFkgfgʫt}]"KU!VOu#vMLe{lEnDW:B+ՂFb{T([Zf/n(,~u!טe)!n{ZB i :;-6QU(ruR#b>%kEC7c+B˺GwH[h+K\G}yZ~D,"m" J{C(_e`˃Veŭ` v!Ok.!1#2A "Q0a$3q?ekPgO)yxgi0 4tUlqw­ZM\BAgbMAwQBy&FB_`msʆsC}M5qi[R)jm;*0K/{pk]ؠ{f82_[ :#?ʒ-רsBJ&lf<م3Y4R"8S}猑6Ưj>6h+`-Fy?RΠZ&9lZK4$R׊/-?4or]Wc_:ڴ'} =Zh;?*݇鬊QK20%%IԬG\]`Vf+Vs @Z.VV7SV^;2:V~2m:avTzy9v*. 2=˕A_9W wco ЖvxVoCr7jz#;H?Q~r8 P+g{v+vc.!"1AQa #B034C?ʑZVs\.u9R>̩s\4v1 FvE߼MwiCfKj:2V3〬7\M3gsgIf̭8N'ub>S~b]}'mMGuNcg9mF !"1AQ2aq3r #0Bt$4@Rbs5cu?We캛DŽݗeYOzn,Kvein̿DXq3=Nwa z1IcLZYsWzŋ=!Cx/`X8xe:0ޢX}ް!:EpDis=UY+'-lhǗjl-*,RCQ*EkQ%HSF@ jYbU@ /)&R[u[+S)}^fYHxCkijٶÝ;I{ֹDdGnKF/vFD`VVI]漲l*0^T_0 u'`a"f)j )W\yȈJbr򔏌TXu TڸEP ۜS)Z-*d -|c.m7-DMqtšO^lkoi?T?Hӣ-e\-^gcWIzNwJk~uG'0ejhʽ3m?DitnSCZ0CGbFIa=nU:W 0ND3Of'SE [%tKWc'Z3 @ 춨:00`?%ъh2=W(O3ip]IPQȿ]zݟEl=^. 0t_vZ IqG,siqNI;omG=:1 ] ] bjaSMdlB79LjmUP礥REnTfRmJ)קVsg@v 8m҇57~0wMk'˫m[5$yFĀzGnqX;65Os;=\o+d}no=ŠK\o)!1AQaq 0@?!DDҠ[]onKMxSޮZFHrKGhnp2^φZqks0̪ ^ \1t"tqE<iԭSY78^& x{Sp\ O8 <)Y>)ax w&%z"LN#cPT[aHXD1ms :Re^>LFCj`saJ80Ypz-&Q0ǖXvb.}`EƑ,0$d.E,tEߜ$ ;F $]b4̓.2C} 5åm16סzЙTI#""?+D-u Po#qb k=b%פLk %"cbՇ Ɂʪ>'whn}IPm+iφ^9sp{.c3ܾ boM 榋T榨j{rer1!OOefS3څ}eBIZ"]x U;.Gs:ObTxi W]WVK{g|D{H'_Yqfl^p{'l$;ʴ_v'ԗ@pdgu2`Fjׯ"lٵ t KQX440#R--b=O-ES. w[I .FR011jF5._YU;"g&ae|K]ZÝmHk% xG}t{nu hJ_ĥJۤVWns  *ϧ ظ<hDU*i@?iP WKwC WE ee{d8<չm>.m,-qNDƃc0$q\Pʾyu0tMx6p-_FSiz1#:ooQ<5%]\U#-l ,d5YهWݰv\ ;uD㐬osaDW]y=Ć;(f1j]z}ShNjMuUgw1ݗ0_ΦBe>/F|y_zK?=2md8@P?;ġ NO1_ʜ}=Hh?O{hUt|"Ew{)d]T혧WR 3/5H+-W},\& #y\)ߘtX7ţĽqe 4yJ. HDR'!1AQaq0 ?60^e0Lbbr]2*N!HtUE $F2-ËP/+㛕Aok\ǨVtnQsu zЅUqv?#mߛ&G[(EBsZ[} Nb6=JRؠJ++A#_ͪC39sIXLwQ֊:bxBR27 r5лkiueQ"QX]sܱN9q58n2ҏJGEGm0},OܡÌcs`w>'/A^SQGY:Ԯ ΥB(8@8gߙX){<:lLЩ4"ו˖JG^IV7pѱixTӥho̦BBdS[;'j! [br}2ڞ[ A"5a&6jlcKWW^NhXaX!+ vFƼݚ:U4K&_ү(*~8,TX=˄no3!G ?Qt?I:F;Obƻj#/q. F`u)ho,*9vqwK(UÁor As 0]刢-3H7 J9 ;2~ 14ZeLŦbЋXkvfVbP3Ȑ j)Y;eW&ef £N *3OESpZJʁF`dUS!\ Q pFWBS 2NjU#B5S ;;.lӧc)a=QB)@5bK嗀;0bH0Ruhp%2m/m=V CJnJ,5({,pzʇ ?{'Ib:Um/ ?1 eϘ @Fx78AKĔn͜Pi3l]Z!85|Rŕ!aNʍm(qD;W2(Xd ADoYpX{Xfs!L5> ~(mÓtM~5d͙x+AJ6gY4N\DT h愮25Ԡ"eRV,o?Q$Q쑊}:!yS_0[bY>wv'~׾k5Nhz1Fi61 8&ϖP7:@MA`)z|BǮ->Kux7APKJl#+}&_i. ]>ݩJTzoooJK?> stream xXK6 W`QOgCSmH.%)J=gl֖(X5_V;ZE_l@ziD0ǍՓ, ¿֩~۾^}ùsӣ.ڈcY|\(6pUmIF6GHg/ \h=M(V{{iGn:ޚ>mP+(闽쵡;?]뎖{}v`qY8 ;퇝3&/xBШc0t,Dei74Cs5Yӷ=bq|ily{VE.LTI4Y9/Ѧ۟N.|p5%7ToVmDHNyq }%.:4sOҠq@<--DKyx%;PԞVwǸ۞yQF"oIxm>O)k:{e s"bp{|   ;۰,X`ayDl8)l:a% K_Oeԕaٚ o\pf¹8x* =LJ+8SLfԸ 維7^ ]K|6m,hhp-9da!CAiJ3DX<E 7xc'^l[}^܁x̐vpAF@Za(+= 0X1²Й߸4)Іb@t?Xİ%M7y&p϶jlh lL'V2̦:jhЎ婁?n 9MBmZvgacXSj@`&-oȔPp vovn:ٗ"JUh5Y&kd H$!Br.XW{癤f+DBP%N`#A,t|]OTz* RLdƧp8Xd]akdt6>V(¤g3E^I*q# |;AJ, 1 &V5Sƀ\S ŔKxkB+[UJBюt^;:+l^'}}`}a Rik&WIn~U HYK ]}T9CWuw|SK#QˣWR;y}i]NC|'X%ܗ+;68vw^T_~j X{8ם\J/Rշ\ֹFe!q 70~ Z꣮:Ǥvdm'՘o8*T啾.&;CfR>we endstream endobj 9 0 obj 1365 endobj 11 0 obj <> stream xWˮ6+`3ÇEKc i-M~3䐒utS8琶=ocdDsWFtH;>_8bp3v.zg~A,)Yo;K˺>8̇gYl2mIF KqN.^&IVo޻?ޝ9mKQd1\3o3O?-( ;n76,'{w@u8.Ϧq,Ey%wƪ,C 2f˲Lr}]5z #XA@Lydi &KR^OGzlGhC.efˮ&6Lc͔'t3ޅ~ku{~g[k{pVPG>9Ӟ"K>TAL*4 120B: @D J^Fztn=T@(; ˊps.kY9b ؋T/sTs$ny#h0_@4q y 3פ(*4mn3<?33L=u[hn)6K%'u:kΊ"}ӒM&SHJYpYhSM|kj;|.tRzWQvyc u=gEdWvYR0 w&FIBi7@qv+w!̠6F B3xvQ"LOW+NNcp% sZ8{5Qr.uB+FE_y<bGT]&{)ed&gՍz |ly?XQwФLTj7o _C,TTL 4eÍGV5yi:+󅦃i`Ԋ-e׌X$a"j(:7 )|BOP. endstream endobj 12 0 obj 1044 endobj 13 0 obj <> stream x[LTGGw*7x/H,L.$֖1J! i,VMD㋉/&SSoI$HT ogsݳ"3/0;\3gC',d _'Y@"hvQ~1jϧonnNJJ)((2Oo߾n%999!!ݻsGGGDDv\1}ћ7o=== ͛߱cѣ'NSSS٨ԩSo߾uVccckk+OBI+Uhȑ#G}5/ܹszիiii]WC###GgMK@ff&6?y^Ë5kycwfعFGG|ZٳR^^N[̙3E苾s^'fnDsF>\._L70"E?^xi&mRhӍ7]ŋs'E-zppnYmmm^/cTG*:tSLQ{czrr*%%%NN]h3m_E>x`bb"]vyNWMMMTVV^t_~/h>mv*-Yf*Z*cGk٨]sfEcE9^z=uڶ:mBORM[qDxDqzv5Χ;؏[=Bxv  V ^\EoXj(ds%{ꯦ,<U^I7 E-f[-BeAy~9"Eδ~i-TԜ>> '!S~:g+4 -2({ĦE;Ďd6fg ,=ːo'TYgO*blƓ- ׺E'W[6;7LMڪNz3 բ=X#N"O.?3#-xd4lnL0!v Np!.n5kmg4#=KfOU}rv\1"ќEbJ;bUWSZne|sQI}'өTv"4P)ڱLl[~j A4'pъV@")HhE D+R ZъV@")HhE D+R ZъV(%ZHIxp@|@"@"@"@"@"@"@"@"@"@"@"@"@"@"@"@"H #E4B`5 endstream endobj 14 0 obj 1855 endobj 16 0 obj <> stream xYK6W\gÀw[44 P6-ErHɲlgb|c#kwʭ}? ҋX"_GGN(kl_݇hCq]Wz˅u>w{GKD]1l֙ɘ>:>+sKtOݛ>^X {J澘ש=ï[8߮\$ϼ]vm+z[qV'x 96A%b<P_?ug>ƪFp&f\14U?1okؕ{_a:޺ꨝNI&)|3NÊh86m::(vP 5uF^3$ƱN I}?mb,EM쐃[M$Aw,UYҊ@&hu$AOq$Bi^[iPec4rIʅ#Ҫ#L SNquDl `S.-\D3NDC{"?Mu*;pr"5\]4P[tES-m>z59`G oXHSykBʰ8։8̼]Mlhz;uq0l{}=D2ȒP2K_F!˖ #κ8l|ps\$a@đ/;Ft6X*Ţ(DdJi'y9P&7fy8iNz&i(uT ( e3 %7@=oYeh\yeժ"Ð騨_ѴZM5U"&c2-qc?ӗO U"a5EsS-!K¥tI${}aOr PE:FCE!hhq2Q`)OLJFC()!1$F%lC޵Y(z[E)9&4KtȤhB~V UFROI#J*"QPT5HOt+tу۠t4!aÂ2ܔ/d(DJJt' B44 $.;h(v"ѡ!֐iRj^ nW)}0iqԲ&LˆMuczE{vag.g~iёx;&pj%C¥#2  r{X J=AJ=Ix=.q$aZP:ke3Z%S*wƭk R+upd!?d4b.7 LV'Uoe|ߔv86`tN 1a˴KjіԇB-jYtd\e&y.\3%ԴoYnpsQXTL Y\WP5U'&Y96<YjWa,g%Lt:a[i5 1TN8u]1j*u2~hVzԺWs0]Sr_03 ud^iؿѦm %"y p1U7Nt\> stream xXK6 W@q޶n"b$؉"FȏQ=Ug -h;Ol,@zi2䈙d7E|}GRk'ƨAk&m ]HK-;7< .k)Ni1&6n_{{M1ITF}l/nb_9dcތX^x\u[w7]d\[Aj tsfQ?\r endstream endobj 20 0 obj 1048 endobj 23 0 obj <> stream xIpW־X#[dk*[%ol[byL@&'!MUrSRTqFq TXPqYo<5f^{Z_G#OT@6mL~FwH]m/[nҥKjݻՇŋ;dPKKo~g}g?~no655R_WV@>۶mG;Νz~;K/裏m]/r-^{˗/-{joj嫯?**jA]W^+y~Yτ=Ccf{299žqk׆R?/y666_Qiii ?裏O5n'j2+ Ij?ego677V w[藿KfggÓ+ 1j_oE/yg?>UX?O ^[oUx;>_rڵ|;N*z垞Sx{2?ZU|߾z/pp-[+jW 3V@>/%Ky|…%zovO>駟Voii9rHjzرc__8pM]E+ Ijw#W(@"wH$H$D ;$yD"H@"ٓJ{O-˻[u6W eWmȻ]y_|×_~x,Dލp(o ￯?+V;Ȼ]9uԥK˗gff"^#;w#>hll?ik`'n[yW&''_xM6}'Ȼ?aGGǫX\?[^v-y7¹H 6"5@3 ӈ$=Y?r]kyg&!;01 yEiȻ$a" 4]yg&!;01 yEiȻ,0LLCewab.3 ӐwYa" 4]yg&!;01 yEiȻ,0LLCewab.3 ӐwY]vG\P3qחW;x%FV#6e/n3sknا6hli]9K]nыϴ-p f׸th? 6 yEeG;f;x𾩣uo =~ɞ޵T\w7mY1Gk)Y5wkh`ÐwY]vlSۻFSJn}_,Թz6mL=t!|os`#-WmQXᵔ٬5gG.ˎk\uu o+^-g =nУO nhlmmn_4:s"SӯfL0gˎ;Ҳd`(ܚTggɳZև/446ʾS*?jU&=>Lʩ*vGϲp5}7v[?.mj Zk>^uV3n:pp:páwdVܣ䉧o̾S> _&\V[͂WYыϔo;vR-l95K;QwFV> M y{+6ϩξ~ӻj7+F]U=> yEe'+:ýg:mBg^W~P{CCn]~Ww}}Ru}/w9yާF/9z[eJo%mG),Y5G8|!Ȼ{8{N[6o)sS=?,/^j:FN/Ugs;yq&b{ׇ7U-4nܾ(F]n+|j_˂⌑~"S*3'2oYkѼs:U5Z*ԆC3IQo_\ g;zfu59?Z=4+o<򙑩jWjF,\Q]{T'5mOMkYpkTKշpȻ,.;yU]믙Ͽahթl捑4~ћO߻Fg=JO ;PvNԲKk|n ԕYaӞ3_)up=To"ꎫ^D}hۤڠM>{.goLeM`Cewf:zzks][c^oAY'熼"Wjn{\EEG=#$h|Ȼ,5od^$_tҿnӵFCewab.3 ӐwYa" 4]yg&!;01 yEiȻ,0LLCewab.3 ӐwYa" 4]yg&!;01 yEiȻ,0LLCe%#WGܭ;XԠV ȻmȻmȻmȻmȻmȻmȻmȻmȻmȻmȻmȻmȻmȻmȻmȻmȻV2t02qZo)eo"<[;O)eo"<[;O)eo"<[;O)eo"<[;O)eo"ڂ/;1ҏ` 2E޵wU-S]\?I\N)򮍼n-S]y[Ȼwek6y[Ȼ6nw*ek6y[Ȼ6nw*ek6y[Ȼ6nw*ek6y[Ȼ6nw*2uv⸿Rqx;P.wUY0/W=(_]x;Pyr 6yBenw*8#wUqG]x;P.wU!qHե-}9H -,]44 -AH[w@ yݏCL潣/pjnyhw?LϤQۨ-;!>z{=a`s[`gۺۓwz]v?О#PW Oϭ voּ(OyݏCt6ߕ^VmWOGNoV0s#'Ρ(Deo|·`EPm;{Fbw8D'r>,<]WS8bھ.g'A}y4d¿7F'E?{sG0>;<~g:Fћbxɻm=ř+-o'hl͹/DI<*Fϯ_7ܕ>oW-Ϲ2{cyLR~}dꛂTs9R[ 6^{ڏC{3ht㶮Vwwd%8fju>_kw2c#Qny97K Na'ɼ9ϻmCe@yFUWm;hۏe7Fߏ'Ļmg-|yGyF3/<53_¯Vȓwky9̎=z{p喩Al[ꫵȓwkG일F|xG//Pg2]yvD^{ ?Dc:z Z {$xͻmCQ!ZkT~Js_+佖yWy yD='U@޽Bk(wωwZ>Js_+佖yWA)OI~Ak(q{x-)ġn^GcsDk(q{{-%yϙz!B佖ǼҜ8&9zZ" P@ZYyͻ!óP MapJ~3.w{ZfL}Kx ]x=#{.{JޑkOhtKMEy~[78kiŅ#eO|{k#E;wm=x;yGMμ9C]x;y'(k6y'ewm&䝼 M䝼wA޵ww2Ȼ6nwNQy&mN; ĻM;yG]xɻ`3 h ĻM.zy ]x{AY'wm&U1~g?]@޵w¼eqVk6yx;wm&o8yG675gTfV 'F޵{G_TΚ"۫mԖV 'F޵A{w~.}[wz{n%wd#t>'hH/s'9[*``Gz{n%wd#t6ߕ^VmWϬ FNVz?r"zK~lTrSN7HڃVw;9"t>qH0A}yyUȻ6U[&WQ;4wm΋3I;B޵{j 9^iՖyEޭAaX'JA}yUȻ^j Z*ݸky7wa!X'3(A&_[ywd#L}x, P'ȻA M3N"L=뺌mv?!ĻMޣ>nkUȻ6n 'F޵wGGޑ`]x{t F޵wGGޑ`]x{t F޵wGGޑ`]x{t F޵wGGޑ`]x{t F޵wGGޑ`]x{t F޵wGGޑ`]x{t F޵wGGޑ`=+~,q+Tcf="JI?N"H0q";|q#-gH0q";|q#-gH0q";|q#-gH0q";|q#-Kpr8n`]&Ȼr*Hgq"Ȼ.9yAU$V"Ȼ8{ FݕSQ[N)]&ȻĻMwww6#6ylF%m،Kywx;`3.nwf]&ȻĻMwww6#6ylF%m،Kywx;`3K[߄_s[?44MAHp@zKd; {G=骫nLm$ Ȼ}{`ACKm;`=.B]}0<=2Y"1gywNS˪pK9fDJbO#S7_&͟0lEGYT'H0.O+`l\u٠#{]/v0wb]^Af w‹3#Ȼ=5_3eDmy,Fe,Azur'RjˁywWy/5cw]n5J؍X'3(Ag&_; dGiҿuN 28"ȻĻMwww6#6ylF%m،Kywx;`3.nwf]&ȻĻMwww6#6ylF%m،Kywx;`3.nwfuW!8!ﮓv';@"wH$D ;$yD"H@"wH$D ;$yD"H@";*F gn endstream endobj 24 0 obj 7030 endobj 22 0 obj <> stream xkglVM5mSM4MmV+(JĖZZAF!EDӅ"^(.,:8{1/<3~e 5zMuwHh{48Vܣ.5n())}=~1c߿aÆ`0X[[{yAo^ZZY__krEEEyyy]]]O>w>rHzz:?''gܹgϞ6 JMuuK޽ݽpB{~Ŋݻx"sΞ;vhooG{>|pϞ=t4ܷoߡC?~ѣumٲޟAe޽&_9~5|ȑ#y+/d+WX[nٻ555N2o]VVVfD_@ ?$P+5iy粊V_Ϟ=KKK_?lVVو}Xرc4J_.G}$P+5O<gjjFFFai>l8gΜ˗=8 J͉'͛7#ҹBsJ/ի{SN8 R Mwׯmm"4tb{Ç?|Ioo4ٺu+ܿ UUUtO2E f׮]-yΝo_~}K,XpiϟoڴNFqBinnqㆽs ~tq (D+ H AX pj{48Vܣ4 ՠhpl<ZvC9)YAj5E\3eWdR(5֯cN$rTU䡜kEj2^Ӕ((,sEQ֔rT 5b75IYFjtnF} Q!5)YAj5E\3eWdeM1qFYS5{L\6{EQq^Aj5E\3eWdeM1qFYS5{L\6{EQq^Aj5E\3eWdeM1qFYS5{L\6{EQq^Aj5E\3eWdeM1q7SHMJVdeMXR3KyEW~?2)x^frl_K*WM5-AKO_V26%"g4aÇ K'wl&I|ٴiQjG[&Eu|)$Ij\ve]ְ{Ǚ7doJjnZAL W^[5oMmj|1ON-M8Sכ&Lo5q!Ie-"1a95ɢ-aKjF\S|5tCqi<Y5]ֆE); IH,fjrJJKWžK -"ӂeָaіX9?@F"og-يpiYY-wtDwƩ?4qL;k\+uIZ|"5\&9[RSXJ+r.MX+zYw/~y. mJ(vtkC[UCG3hKS=Q FUSb?Km ZSa?}f^zf6m#O'k>4q{EQq^Aj5E\3eWdeM1qFYS5{L\6{EQq^Aj5E\3eWdeM1qFYS5{L\6{EQq^Aj5E\3eWdeM1qFYS5{L\6{EQq^Aj5E\3eWdeM1qFYS5{L\6{E8z!5^Ej{48Vܣ4 ՠhp Gc5h=AX pj{48Vܣ4 ՠhp Gc5h=AX poH LJ endstream endobj 25 0 obj 2389 endobj 21 0 obj <> stream xom[5\Bܤ؎ 8*-mU"0$HƎAܪ.H(,7+B #. ӌ?k(:>{v7ߏAx!B!B!B!B!pŁv!/T1@U PY622R^^^XXu}xxt.Y;w-]ޝ VTT466^rܳgOYYYQQQOO˗/'N2/((XzŋcueکvÇ{{{׮]o޼ѣGW^5? 1O<ٷo_gg#GO>=xٛ<|cǞ?ٳ۷4W:TUU.ӧgΜ;^L\7nps덗.XoݺUYY~d&ѣG#veq5ןL{92W-W^B!zKn N2=f+ q-lnߴgd륱' U4c?ľOpڟl&gZӎXډ2.~sk__c4v$xyV/8I(Ҋo}W4Cy_K;qP\ӭc6B*0YXډj6ͩr݊5+'l3_l_X/8IN+u#vЎPW@; hG@]+u#vЎPW@;r@,B;T1@U P@T P T1@U P@T P T1@U P@T P T1@U P@T P T}ruhb ֱb#?R܍O#Ўuhb b ֙QW@; hG@]+u#vЎPW@; hG@]+u#vЎ@C;g1Σψ$B -;' :$ꖚo 4n.3'/=#4Y޿oԵ|_N7$gۉ8q̝wWnhi>ߺp~^Qw&Z~ȴX a#'n痿Y.V<#N[()I کi8GƑE؉g6wPɖoMvBY9]M_4Һ/Z{ډ&`;?ů3r'.͟YN׵nhF; hG@]+u#vЎPW@; hG@]+u#vЎPW@; hG@]Y`TX"P T1@U P@T P T1@U P@T P T1@U P@T P T1@U P@T P HB !B!B!B!BQG endstream endobj 26 0 obj 2658 endobj 28 0 obj <> stream xn6>_s(Y@0&6z(zj-ò-L,hD%o/j4ä5=4?;_; NL~ia5K/˂ݧhvG8pF>ϻ@=KqKg5Ԏ4;5l 0ag_nD~0 > >t9 x!(n\]8!t]R`'Y*! : e LY $$ƣg#%ޅNkŶe9Q53c4NFh5'I4iJNS;y&-Ycتt2ֺZn0 Brgs}%NACO$g@DR gUmR/B4刼\ѫ@tFrkq |BĆڽpajpaҤ1뽎L:ilWojqRd;pn8IyHs0r痰PěgTޖc3IqVjOrS X$0yƪ-sĩMV @ b$:Pl=6+a.R)7]5  N!?84UL $J\BsA!! |L"pQP\Po̯k6;Y0PXE"DIK( .k%2-CdTo57&T藲J+ aUcE,T HA|Qc83B% ؙJ0VW0;*9F)7>E+1PL@>^Ay o#Ji>MѺ!eHQV/nV sV'RcW8VGۨC,uV';8]KqT-up:IB(SwIH>q|GS889!07bT<`.Qaɱ̜AXE(Mui(`>q^b1A > stream xˋj(\@č"B@Ap/+QB7h\7^ĕ {_ E](>.JhfzzzN;UtSSu|3LJB鍼p "4bcho^s5]v?믿}N>+<'Nx뭷{9s_oGko|7y睿?|ꩧ^xm*9~M7ݴӍN}~^ӆ_nP[t7pCEoKo`$uuٳg/ſxܹ .%\},TI?l>ho9zh_q##Sw~N-mK?zov>ɓ/Sᄏ-rv?ӍN;vСC+{~[?Ӈ~{}=E{g}:p}O?/΃S?FFRW>;;G8bЈ@L)B#"1EhDcMW^yܹ ĖF yfM6"3QW6ɰee"ۧ:\`MK[nʮtߗI|jl9JBGT"l:5=:aЩ) ۅNMND.tjzt H%vSS@* R]JBGT"l:5=:aЩ) ۅNMN%k:K55èǐy )9]; )Z->izEJ]2K%u,]' 2@ZE:5W_IꛡէtW)F㒭3N1\uSӣStt":}xZ )::p։NTIGt"Zo{`Og,~W=E #ǰ> stream xZK賁&JA|s$ !$N`&/v73cfY3zWP'Z~uQˣ:%j_x?~_(c>'vcx;/SJ-w?2_R|_/?M!$g͎0v,[AyWl_ ũğ}ϯvy",O!p,Eߞ0G_/TIp~$Sp#ΏI=L'~>W9 /$>3f_BSˊyNqƉ۬w'] @Fոb^rL<.%=ge d'dP\Q`+ޅb !h9%=bA# Gc.1"aadD5 :h"Tk>4R3j%A1 Xgc73:)@y T=@ufe)$Lv(k7O#R6y`橅Ŗ43d⮴qQtẊ)NiB',FkXx5!Y>?ȏaALhV5| fJ'e9ʚX% COS\깎Q#u%0X, (sxeN [Hb3Cs+D۹~4 R-q!X?C2[pţs=afB% e'SHސt@ު, SLPvHy?uEOhɹڳ)8LÜXDЁ{}N.z"bn n2*^2~Yʘtk eu{S> ͊Sܨj3e<: A$\eCWU[^#rī]V R$v' r\CsEJ.H M!MP`rl77ooS&@M0B6QP\Qooj 5E0RXe2TD)k%v#CTRo5.ZJ+ %acnud!Teɽ1pdJ JXaGE%!+7I N7( mCW䬌)cD0p c, )sW/D^D+Hvx;uE< {r3Vixux:=V:eԹ0Tbg#ʬ:\(+@08\CfrVJyixFu\7?Ab@O$bTVeeN8 T )[Ŝ,JdC\)Ut\FZע 1˴-DRJK"Xbc!CLuBqhTq"|$d jP,欘#HR\p_2^95&6 kdPz mV6ח6[o߽ɩ.ОYYKF^"euԵ*+ {Z %%Ct;=s7ިqI)K+ BJa_m 4KdM*{ \H+-Z\n4zbYCnnt jr0xbI ^&dRrB ,CNY$)*+*^~~{/4Vn{f7㪗ѷN|, }ָfhi,xkr. ccn 7M_^j;W Ƣ8ŬVN^l;PzOJ~~"{_+=rB/BG9tj7/HfhLP5ujUCT>5M 7]ТncZyU>kfҥYAR袍9g%W Mc{rnHOq|.*RC;欏8_SDŒ\]gڠ9[CsEJ.kHߺh]n()Um{yG0cF{yX 崙 jVc<衆Q8|{^D K`z`H#3CUt+fPre~~Y\T 7-.GnnKP+XU߽2F޽9_[aW7z/ߧt@rvW}\WUZse6ʍGNeX'|[9@pokBU6%VpAm%t#.fP ̸-hSNgMUgϬ'4u wl+ᖣOcO`m> stream x|y|[ŵWe˖WYc]Yȫ/-c!&m-G8vbRZ%@6 }<~}}א҂ ʯ띙{؁;gΜ9sW7r?(zݣH-+14;GsDlP-ָ }@L}`|{4XPW`={DԀQ' w.N5XFÞO~C@ж/a>^Lc Q<' I5SAT5sg ¿]vή   u(|r<דHA 8e C-|H~ADq$ek׃12=nK#_B/j@&T"ʖ ^:Ups?A#YX?I-< wJr1ц,'1ޫ`5t'Dc`-' M8GAB :G rjm+R@ a0pD$Af@^&|OS8(BêH6Uw#z^MG_O7gfgf;f}:!=<?`QRėGis+lCLN]<9'"& x#9)XI1⥂l"=Fn'wy%/__x|BB>q4 L5RmN#=BK+0- [=2!\*/<%[S1V&V۪lSBսxXP_}P3&[BV#͔&+e?܄tɡ磕 }|BMNh_'^F$uJa4.LWq S 1<@"o^E5pl! O#(Ov\ {H9khn? Fܜ_JnQ 6Qm) IP|&D `#.\ r!p0[^D% >潍rۘsLރѶ/^&5hCE|ncD{ïi(䑏bAˡG(~J,p3كG߁ 7 S tH4 E0KKzКLHבqu>"; oC H\h3Y%TgTϾnf$F ~>&nqgO~*5aՆGT:WA&hfWq/~7#=eo3ǰ܀#g҉c? PV{S=0k0c1^gI;P%D܁h Z nt].W}ښʊgqQaA~#7';n˴fX$sS1)1!>.Eh5j(Py-e[}KH[Wgu-! Y˄-\LZ,B3$]k^ZϓZRf4M6ۀu.)4Uz- $6K!Ej ->8ٲ5Y<<8D2:z' X[B&k3 $Z}64Z,]y!k 1"ć B>ekyG'3m->k{ӆbc:pqUT״ꅭdKWbɫ}6,lkWԶl2;̉Ʌh3ME8[.BF[0)!hL߆isOv$dAK2-n;`y :F! |8IEVDAHВ VH%x*aEW E4m4T3>R Vic[g_q+10c_>GPn.Å 6zY~i'Ak7`B¢z zڳn\'u \Zε$g-{Zo"|!}_!)e:D#uXm LnQ|ֹ&Wη)T(iJ i^U6DDSs$MkE!Ҳa ڥXa/NwS U;k5)un-j[igrrUZ6e=c xm2kSC˾Ӆ$l*l;Hv8 Gp8>>^1)F F“ g㍊a" Q'&$5;RVeΛ}.ݩS)w`T:gٲ46K/l `F .2:5Z!:ԂhLA7S31\ujuԯ!U6,F z^N V}I^}E٘ft swYn^yݣ}QkDߒuK(FF-ybˆCt%.b⽓bH")uEEQO`FL$|5޺.t*.|V>6OV1|r/S̼S<ؚ KϹ$QT7jOu[K/ .=6{t_h̶c_>xՆKo8pɆ9VsCh3aHu-Mw_Gu'>yRw8h|#ԓ0@U4"&*GP IBf?qFLHH GQɃDgdh*U tﵰr?oyo7~6yIĖbص̶ql#%x \nh#Mlo^zթU-3|[1o]&\Ļο'WERL9'葔'///^NѷvzS UK))"[wdj-C]d(MV̗Y1irUQ늌+51]>#]kc X ]fi^_8R]UW74yM{^Ui1[ *+#՞&JKյg>UhrE *]ʞ:f A;{/%D~z'~^26@kqeZ?d-^Z\βWxFJ[Xs̒ehShʹ)Q< 7ܼ43Յd+>3ԩ1,42맩2ŻicfYO9c8N͜QaYҊvRucǮVE8޲'vT$ČzMXoaW|ҧ ;1OO ,|Vb#]Vlj 퍻iuwbӦ\s-ՖhD;6D/}Ɗ8gSA9+%Bow65ζ;u[2MRaFRR|&B)}еkU(d(Fktej_p\$9*O] u U$H:M{D{:i\7GY}Gn"'ƈ%F\>1~]}n!$!T'!4eE0yk(FeNRS%p@Üw]rdjEgH&M46|8Μ"ʦ6Nӛ^T<F^T`ni)/JlW)@˓m-Q.-S|+Rg[UN%cm:ۋ:VZCZjmű M I09E 99EjsM]BMMֶ6{d55պ좜VCƤ̔`+BLWtٖrh4-=&I5KH5.kY+5WCjVXrVPቶ_j`䅵f^Njy2Z?hc՘yy t63ې >9U?Qb4z1X#Zëمm$]zxBFTJ, bb0q`!0"攌'^Q&bMM`_0g^Wg.;oeFnZ&n$3Bәvkaf*DFNXr뾴$VlNd5.wŕYf_\X0{h&>oEbwE֢_T|):ڱ[ߧ=Ԕ0U^dsw|V7~5i})D(Ry?eΛ2=~t*&\vCDg36Ѫ;RV-%4s#ua6t{,/s7;nރK5"i -(Vhm drLPDPh NZ vz\#*A:չ  ~ ~Fz)t4l2罸o M &vBSPnRh*c{Z;ZQ!VCr3 Ph-ǹ::ZGݢБP0$qB녍)t44h ףMe -"*ߦЌjc >7洆Qh3Di~6eBc|S;S)47uBcV4Bc|T)4wf.yG1ZShofBc|s_䴎aUhC7 -B#(pǃ -B)NG#_B?ϨШ?xPhƗ|wBt"QkNb|Aiӓ_Ш'ө\~\^*4fO/dz z drffaN3=w*4)>rBo9U/xm ]q)Z1iފ9iF^,%xN*AEJ&fW7\BB/@y$! Kyb£ɹ cv36yvڇcxa$X8!ύ[Q, 3ƳdnGk;U֡#7yUFvϯ k2>B[1w֘c(Yw9k|V=%%_DG*kTBϹ7'<] =dIUq:.W4>ZܿP ,򨎜>wO(syDN&=~x_8ޒgT/[ssoei/q^G-ȣA{4TJAk1鹔vzhS$[J!*xr(' v2nwƹ37vNzݽas#Ȓ|QFѡtP!S&u' `⪪|8 !;0 H힀ǿ՞q7i shs=YPQ.e}_0Js k;:wy+,=@I);d:WIk $H xQ`^z7wN,dyf{;2z10RG=2@ހo$O:s>H]\fg#{tVlddӒ's<7҇3Fݣԏ#z{%oPw>O;0+г rc=϶1ahB=o1GC}i؇z{=@7M{S>yi% c>L/dA^gL`'F}cɳ# x{pUF>f*hoh;D{ل2 mp/цļb8zOEwQh,zG=17!HЋqnFDNH>)nڂހ3&e>ió34&<y8 {ҀχD[|hy>r,  ;# W@+>}1yL=q>o`t=!3{A/k`08Z]X8>>^08S8*_6Y~" X78bH]Vl]ٺfftNkSay{K˪՝z^a G=`%g)&|cgo;O2d0_an S #sXԅ,_OЍ-2q\(Cԏn9mz; eATf*s+9p̻b3ni{hw .] +ebn8'%"R`E|qza|uy:Ccoy.9è!WA:c2s2Cg1A yl%{!cF'$zrlb apz# \80l039ש, t܊_<ߡ[gNV3 dWVHŕEEEېYT\\Z׊ J+#*uȿ+_[ym'|.zʲmߢY>iQpX8uΐ=RK/ξT:RK/ξT:RK/ξT:RK/ξTu۞ yq4}o`~͟efk7''?_s^(}lWb7UvMM~DHZLD VίH[} X)֯Hv-gǑo#JS~'='Cp1G48n=K.-6Lx9eM%=n 6,98GKeT>ԇ:h+(I*9Rt$F3^֝bu V._f*pEؗ;lMД-cKqO¥P>J--I4N-$ ǟϺ2m%QՅ%m؎^*[9:+j!fDOd*m3¥\soa՟(hجٯ4Qx~å{Ԝ̰:ٔvO"9eT~Tę`}5N=A}K.%^ۏ"(VF3gA)aR*@\I/VғZR +JR}g~E>T]o02L?zʮs~ +9ǧi\c:ٟc!ذ'?b^ޯwOY]h w AO yhon%[qLL.ւae:~utʪ}| ۦ-֒)͜ڧ ;Nj4>M!b~6-S\q;Wh:2Q ̷1O=Ʌ.Ggsś/)YGQMo@Vm?khkJ8s)7//0/37b^`6#**89$ǺϜUϼh$Wffƫ״i\JM&_hqZ6ZiZVR-hoW j+"6P`-h[Gc6 *mo8@]-tz'i[16P\u6&p^3Ms4 W{q]y]*+ 'V-kɎş%[:6Yr2"-Cڴ0E/ji>L/fE׆ddYs׼bCP_,t&.l`bCL a3408 >qTq dT8eN |8#DL&r #dfur.yo9\"7?"7?͎$ZmZhj$I:'I=B҄_C+6"P_0ԒnuTH< Lƒ|IL< z)!5!YS4+JS%5!ɀXq\Ё݂ [O) cmZ-!Ӗ.GK9P.vg4 ; 3?AE?AХ7]IGIQr8p選&EAu\ac endstream endobj 37 0 obj 11258 endobj 38 0 obj <> endobj 39 0 obj <> stream x]n E|tGĒeJɋ>T7a"Հ0^@J]0sNݹʳ7gDJKY:4 *(b新4 a!xݣ4$8'_04#mK%3/|UN>H >6 qFFbɲ6KK@:)Q|r*Pec\e| %r5!rU!?!׉qۯ8-sim攆[cQ7 endstream endobj 40 0 obj <> endobj 41 0 obj <> stream x|y|[ŵܫjeK+v[lǎxI veYElˑ85`RBBPhPv'&P@J.`;3ʖ H9sf\P!78vb+$v֟ upSiJo"ʌ|]7}7k*ȀrNot2PB/\z(?F}[Ϫ'P4,#ф% "ѻsp`в*(Jaҏ@5-W5ZA7MfђlMI$rk?Jw}N'L&BA*:vh?|" [,E;A>ϐA,ɆP)&_GOQz ֡;&oH EM7DP:j@1藘'dR!J m^G7 yjy݆F?·"Uk'Q'-CM(T4yu8?Ncr|@u lΠѯ[x-&U|d9Kۂ֢5$ :HvMX#" ͇Y~-؁s,AJ4\Cq*.Q_Vm~2ywrS:Q>Z }n@#j]C7hzCc:~@Ga.܍V|kCUͭoWhbĮ?4M|aqd -B(#߀@OP 'oп?؊m8EWx%^{pkmx7?c0p}<51=1'&e$ɓ(|_'?'$!op l.[]mBVn{2&σ|>__??ſƿCWݦSu-[jW{wԿpn՚k5ǴH>w&|m3};' (8;}DՌn&5$[H*WoA)#:FxK{vMd+oƗ8Yh[ ~-bE/}9-@voGyd1Pݐѻ\?xb@8y_n2e|<{`/͸TN4ZBC=b^C$ DO# ܋h:xăz{_{^r+u Ob^#} AO[sq}*M;~>yUM[;у_ hDH P.m`)&\KC@J8-#hHj+zz .h~esJK =g渳]3+3#=aX,d4uVV1*lt7uH^>@1 PM3ibR#fRzs^;EEJn)j[W|kMcp ]Γ[w&֦sD;ޕ.zok>-mmwQ)K>/\TyQ'b;Ve uBO[tК񚔵fGfySbڼ;?SEu@o^n^UjPdۼfFI7U@V.(IX-X)bZh5\Q3KhKM1c|oӹ\_{L7S،,_4<=( yyQ݌&;Mnic76-`cG\c'oI5jIEtVV Ob5Rct ȡUh=A?,\}GffQMx X nsJ]%n3;W>E aŐ o;t-WU'ɧj^xABJ*V wL|ՌâsT*#z5[kXt,wltc\u8]hՎ T¯T}JT*rT6Un޳vGxok3< h4\v=Hi'v*.xfN)jYys+9u5ܜԋWޓmIK-#J8GOI`mmIM%W/kid27V&:rhZc9}%K^"!brLh" "6dZÍ 7،FH4ꐡU2h\nh y*-'Z1ur EF0uvd3-)z?K%&AXSCN PUl YgPC2]4;rnE;nݾYN3m[S4>D׮_EY2wHE"SAzhWW=y޵ZwlH_F*5:[ǭU6VqN)lvC@|Sq8! lp)&S0"h"yv'-@-ԀΡsϊg#{FljBr4ytfDuӽ_?ċpmmm6.g|^Գ{ ;tӍl&_W=MނK-{M%?*2Ng!Y0Ì,Cb4$@$U0Cƨ{$&O{9HN#NwvGg!Y:K|j%:\ LpwUyrWq+ͪ[v홷WP+m5w~27}5 ª&5~t0Uʆ0v1qW(Ccƀ%* ;){S¤cN!sDqJ1~Z:BfDXHyڡ:ޫ7WCZ0e`϶eH`;{[kY36.ey2T5nIn*T~fOB*X)i,V:pz?m0vIg[Mԛy4(G͞͸\!FD?꫟&y^@]!CLHB[O xj"],wdf*=ŚŵYקZ t8*XLۖuSe8y ,!oQIs9$5_d";6'U"R%t~c{򦣻CÝ);<߉^yWO<q7K:\lFW g+/+¹\ې[8_%j_QXKf=\QWVΘa۪dg&OWdk54*yf) A7qOfy-I(K eqY#[Ql~"*=-YDš" %V ?rHEt=ɡb,'m,PyjƤJN#+o]^R\;u|_O<iu\z|qޥߺvaз~+IS%sjsip߯^^vy~, &K;7~f4 L޵*\CbDGjR!/) @.Q$$Nف^y ^\mxkOEqCXɔQ%p8D'8;ưhHX<^G+I3o>}󘷅q9lˎNXuM e`}X_!lpM0<99ln q.'Aax(U7p&nD+0串 dslxؖ*`<;͙Q9g3%(.#_ UB9Fc=PKr?Ḫ@b*yLuʎQv`Y55f| pB" 1FnKV=rQQvfvhNHMlmi+f70#lQ~͛A]W ɗ*mΦmTQ{B|"[gۇ2Qv6u`v (G S0< caE,^gr*fS ?RrK9xnE2h1I9-.OuϷ{Wds_/߰edbwlZMU ,kOܯ~xǟ]}jYyV_EwA~1͂\F:rMfFż$E=)U|Y%һ4Aݦ;o{a^{^ZIeڈŢ!Q4eB Hms|d417 ,V$HKOֽ AEXVA8W<' Y3%t(Y/DJ} sNQB\)Qg}q`u[ZN_Ѹ%p"zx=7~[2\\o<%wTUp#wpWS/ɩH>?Wxߌ5&3lV)^YfH&EE'Ji ҁ!yu"/5h*H B.%`lr.,%F ="gbK'X-ޢU\~Iɼ/V~uYe|:E\q倈rrA 8%h 'oEiD:wpy\~8mg(-JOC\3Q;0$"^WiI{HR/9 5hNJ{٩=Ch~Cg̢Mˮ-o?K.eŭM̖{]Og7ۏL5MS8t{p/+V9w= o0t^'+;zXWA>낗w<|]nEMGɫKΧɧ\g(=qkp>ּUeyII>KJIMT &KjWT&IVR%C9u*h!9j"$)ZhK#6etg%gK'9iF%&j$ =ḣ:׆seY]l}?nq -'&BfnMB vIEj!U A 4#Z5Lfd6kMfFqDMRί}i)6֯9I3zBܝį!+=Gq"!% r=cJӾ-O5M~r<-B3+*4$[Erc\ncag^\_~;^"3q3WMW VdFyhfEokyP(DlKInmu))m.%YSa˜epjg2!n \[qBTnwTQFIFm3Tc@3d~ 1| Α$9nk=DQE` \iodz[OjУ3gOB5q$kәZݮwb_[TЏm}}U!$w?O{6/#7vN<8Y6#'zʔWI4#H3"Nm3\0faGD.M 3P*eϓI.n̶SMyi[zdǏN^qɕ]7^U)Co9\MЎ;ϫo/hF=mNI&װp&a_w*.TkUVV"*-)-Nj顼ܶiE-юs0·c''q ;TI2 3KxhaO%=UԿV]fNXy;~d;{AЯ^!ī$*G _J'HyWUdq؛)PUrFPY.XՌWXoМOSSS_*Lri6r>CbgcWpt7Y i&9>^Iqsڍ\r6L@ZEڴ]@lC)fۖQJͺ(ՐN BEԸMF5n1]C EV\.na^Q|(D>%@LjWNܦ5z$lx`UKT[ SQCa|۾7÷g&~|tk}to[wb[=7aqX(bA7}b~cC~%s⿞3Jߡd4 &\PfoD|퀫"nT~] .\ 8Ay.||h# !NT4<gDP=Z6Q@g5_U}OkZI)LwBɰטo ;PgR߆h`wӱZV9Gĸ"[֞rJٯg(~`B7>;-נ"ݐ2 biF1&725]qt4nlR)()^YaÂ{ *6;-Wӕl_i 2ߓqgh)ˢUL?ŷ7G?+M[os+Vs+ctffm|\ԶS3f-1dav')ﲿG!{SD)36^gӖ&Ť5ȼddjX̤>&2!YQ>qAfC,ny+fkcÚ[o1J,:E/>` Rmd6 kxbd@( ү5 z< /,]ྔ6J]ۢfM/5i /,AE6Vi#r\ϝv臦O6ٞףh)G8*oPŧ{X/HMz%vNF!xNS6f#sb_$RzRV@j,2\w*Pz" LI|8xlQrUڧH;Đ/J-`y(YFb%GohI6d:_Eb ->.$]LU$KNQvzגv0&<4)C@+gCLީ|%ZwQe^5tiCjF|s/ MV>=se4#R֡-,7Fxa% *{/ף,<ߏ}N-n|3,6 kO?CN r W ry-L)|ZԬPBP*Tdsa/@/oIoj=\32ҚހE%Շƒ/ H}bD%3iuob"Ғh7neR]_*H@xK.-x(z|aI.aʊ*?eb(ዔװcҚ+ oBr&R8D@@v5-b7%"^ + d {GQ!жAw* ]/ {C}H!=}j@LD7>4 S#RR@$3P(/p@ aP#0߀u#tAP L0D"!N{@@F{C.ښvP#q\t80 PxXbm }h8Cm.aBP_W?"Q6Ht/( j:J `&` Y]A_O̥@ H$$s }?RaI0@߈s>}LQű"x~h"`RLC!?)C0h L=G4@M3O(z|ۂu /ͻ> G}t`vLá뭸7_R2<<\ܯl?_+kQ/ȯ`8kl%MK,YLZ$-]R߸luThUccK5FQ1 0 32~PCsFBCZșl`FA~@ 6h3uR7P r拪0`$LS@5`CQ G%LH)0)QL5&m :|f#Y"3@h[_WWXeEB32S}  CMH=2dhPg_0KǁdqI6^EB3bX==96"l{@x@AXGzCC}]C[a9\7}J @qSsX`GuL'SnS W:q|`:XUT͖+*(-̀,3UURUFݗxݿtFZ*Qc~!帘n@]flbmyt3k6%:J7 M==Npif/ + . + . + . +_A|SēЗ(LOX!ll8Km'B|qs mm͠FfR:TLft`v2]܌Ν*͠ߥtt7Q˲@w𤻱$9)a$N'\H0i"xiLc4F:+} = ha[*.`z7:<~{=m1{aL^jkOՆP(E.'yc@:ZKL_+U/rď)U"-0F|10Q>C3cc+׷hcގ6qz}iY )) ( c r'<`J`47rc endstream endobj 42 0 obj 12463 endobj 43 0 obj <> endobj 44 0 obj <> stream x]n0 YtcᛏM[+<zsn `fE!4tSkBڇy?bAĴlE&*pAGQ!*0_,sʵSRQ8# r¼C޳&ANy1Wf|d.Oqufɚ 0kЛxϕ?= {IXS.gg 3I\mŹKs~T8hF8, endstream endobj 45 0 obj <> endobj 46 0 obj <> stream x| XT׵3眙a03 (OCdT |?F* bDhLLMMfhMux#ďgsE+~//H2aW7,|N򹛸uA4k>Yw|ygCO,f McA.]OA3,J@5h \ `ak70˻!hq\O&< t]elǣ|R܊W5xĻAʇ 4~BLEG&UBJIYHI4xjr'$?!Gq29M~F pDn7@\䖂Tb|_{&:Em9qk^=hZLmO/=!cG܀o_p"ꆝ4gh?9Zy{\x8׀q<&^sT;ҙ-#dN`3\CP.\!^lnC×/xc//wѣrF94c`Ϡt+mԔdÞdZ)h˒x`4S\dD 7mO- j!j"n@_Mq02Ք~\| _RbŝGpyܑ7 =(^0 =EOg0 HO"gC;kE E50A~gJ@?r:7h(Ri>'b  `WOaQdn! )̚]^T^1rDO, HLD7%"eA>8TǶxW[AHFnFnZ}9rDWD1WޅJbN]WXXAWL)ܟ<(rݴѱ;o:WT#G)O]{)s0)vf&)2QL3PVJGiO?R}J=鑂TOEmဃ61T{=#GTUI451Sv5;LܰrO ɣ@2T`hWӡL(wg sWcj5n 5^8z#ÇSKjagY{+#f)Y0bB6<=jykԏA#nvvE?[!5T'i>Y^s~UxI)ǬحE " ܧ}t*ϨؚQӱTS QqwtFcy܊`iiGsQMhԈ[EFƨ҈XsBH*P\OyaHQaJ AL5A(g !x@'&)G8E@`4U %yӓNy~w r|TtCnr$'IOL7=g({"P!U5̇iN2+D/a$’NGt$ IF(GA9e&FqeFD0t[͟$<D[1,!K 2*lcqx(_īrCӛtWu;?;9bCWwVomkW7g9Û۬W_|ƨ\UjztsCub:9pNIy ]YbLߋF}k GȆCK3g 8F0Xiҁ?Ag <:#)J'COU.öZVTyɨ11܈+; P^wz؅肿Ebvv:. à цzkغնê=pw\%r!'ә$)Ȇ(s@NTFJrLY+GOevr GV܇BK(d  s ԼТx8]ּ?CV=/zȋzטEDN8|1e*&xhD4T6-fxD]ޕ nоoӫՇK< p,mo3{pŇ>~.c N~lH~"iz #+J%+j93T3:L>l5lu=dxpܠ$_B4Z(YX; :kEIHB Nb GU"咢()DQr)Qz$+2p1(=U".^bi\#^uzL;@AYxXx&+1]UAqS+Eۮ\ˬiƿoe8hy(Tͻ}{wƫ}^<0@R&t˗`8bIs}D ֙$QTh@`p !S} %؅{3U+ZHplT0bL,P:D`!R 8!7tPDzJ4tSF!,o%~94t^QSMʉfPU` QnB&):_L0ߥt0vqp1%3A&2vqx^L{TCX-Q8"S$s@9>4ٔ啀ۼyi>j IiTy6 dqcs1\nTK=lu|j={Vwv$x֒6,Y MX?QxLm?2lܪ>`xzzI}b\hHs\K-6}o$W2%X-񃤶n@NF'sIJr]b$$&3]JN?44mkIKbIN^@Ns.zW_RC Neπd[T>BnzT-Typn:gžA$Q [;,L=-J"yqCle/L$=wwO&~zV%dlqϒKXo@Ըd<҃`'I~#GF 2{ǍC%*=x_IgwعVv8%ȩ؜rGf;>$3%ζƕt.$E!ҏ q7r'pf4*ӌ_ j7@X?a]"+wdۂ$9:()/C =__H $!%Z[ v|$F`4Ed!UZxNg ,( | Ac|7Ra9P!A> PYCϧ&Q-zhgD_U6fh_b8s{ñ3΍)C¹R12ѶϹan]i#Z}Z=TOCmcBhdc"j6%%2L\i45iwTfVHRr6`zz⽇|EIB oBn!ci `R{ /./o~h哛hsc}OFzO<ڠd? r߸}O9pDDZvTF(9qƠlyH)+4_z&XR˻B7aܞrTAT>)#j Uh#Z"!be6%_Tr, I $V$j8p|ZdbVqMMC9+$~%eOnn*[pY]gI7Θ'(~XE'Mwy'yOS@&xg?,*{M u/™ֳC9]P;c㣱2~7d Fse}cnCbs/N^inW&KI42|R,- e^ϦeB[}nn.;t j`٥>Ԁ~9>aA Lb!FUԲ~UVb2x}|荝tVO߇]x7pvo{ᖞѸ't9 珝Ι%qKB-a[2Ri4p|d01+nGceJI ~gu0} f_`+g |r= bƀz9LMfb6}gVP^ }`vCy~ FZHIUBrh7vh,2n,=j%;vz%٘;qZqܬg=/Xy{^jcݭ76©I9XlAqs68,Ap/?"lAE[NGD5 8&?\m\yT{޲pmz_FFBdK""[BBVs$$P+ XC 9 $Ќ^F+H*3X3v88hzߴRlR^}"RFD<7u\Mo/N,|x|>kw[۽h@9-s(2l̷mV]Ni]l. 2l&!5 h˕fZ, $u k=ȅQ{hN~,# hnuԬs{<K+_\'/2؋N >QVV(T9 _%Gw1url;V'9;|r̼xvŵucVt#'2nLw7ys{ğWq5}36R%\{wΠ]$3wd*R;h_;[nʃ-$~!|\ M_ا~'[C烾t,C?z|RX%\ݫ{F̓2'e Ty3(ˇx+]ėHS f"nr/Ƿk#-&pfݪv \"J< Q&`h00Xx#Syw0XdcL3Xb?j0`(PI` znsh,`˅5XCC,u,|h2/74؀˯k5Ghp;4؄*L~BA&_0x(!1H5<(f Yy4ȱ ߱[a~~[SLѩ`$J`w~Sm NfX۲ݴyFSP+jA!D+Лpː Zh@閲jt[F]M6F*N#Qq{3a;#ڡ @QO7:yarW~*D2 7`, 9wwn4zqS]sdx_Œ~o 32ke4q Ah6%hF;kwdQKX;\n>ͷpM oah觥9зYdByh`:RYld̅{+kr~BVu gW MyL"܀LqZ`.7]ٔjA&zf/Ԃy|Z6f6ٌ&܌Z^44ڸ^ 5mִ`jb2q3zTV[E߮TɇDiݠh\q&:͖BхaJuI:51/la\Yi@6&>R[3ITY`1PTlTl4>:ZlYD6MT^4 MFV_k7sո&ײJVշk?>:_^*:6~X5^OׯpuֿzG C0?X Z.ýv\n捥p W&`E.rƣqp?#}+skEZmJ-q#ӭo(o_&<}Pf|5+me{ -fW >l:f.X7;-iэy 3eC+fC, e{U-zZ|iVճtV ַMZܵop WH[wDņSeբyZ) ^9}qɷznV,ݢyW/őHV"?/J}uf8x{g~D~'0ɘ EY%q2 8T?TGסծIƏXmc?u8V*KsMF.<(&(9@1ptʆ>[6I}T{N8/&k{l)pp>ѻ].aQe#];oy ۿOiw<־/.)e|p}I{X̾7o-{ҵ@]<纥kRJ`G ;>ڄ)l^h@Krr[WP؏/.Clй]tW+'^jGںW B͡.I5]:=~*tEWu(GM7ً' rqb@"ķKΘyX|\"v!v;΀Y'vVA[JH)SK6")I2JzIt/ eU+WJJNƭSut;\Og/8b)E&;#yRs"҈4]!w i{c*/ `AJƻ*Wp.PSa΅f'mvҦs`ҹ呧VDFS 644]YEdXQaN]xP<._32t!22(LP+% t nSFc t+2FWf c)w 3']FA&9x.Con ܉(Ħa#QI8 Y$42PqzqBUZV5xj ~w" P9S& d\1R}&=XMjzd> endobj 49 0 obj <> stream x]Mn0t FBH)  "cVӓaYjUzL)W&н׊jhmffjӍyl"6G=^!_כ|_0Ey־4?eGłE&*pAGQ!*0Yk>[K(8-w1r¼GgO83C>Isd5/هfOsF>BX,#c>OS?%OΟJvp?k_ =n7Nhqon/ endstream endobj 50 0 obj <> endobj 51 0 obj <> stream xy|T0~ι]fdL2w$d YH! bdHȾ*.q+/TօBV VڦmbfܹI@m~>{g=&twEu#k"U͑7ڕ<)tyK[5]H!AFYָfqx:BtG#u_Q3BSǘzȸ9ҫ!QԹ4go@AHR9p;BB)^ 4G1HP֖{Pv㴼=5y }!i0< r:^%h2͞pܞdoJOgY#C9#G/(D 7$rAB(9/hkAiLn@ϡC%|ZDQ/5rAtڀth!܂fAϰ;ދr@KPJt:݈1oAuȈD4.doB ԌZqw|A]h?#h@#h+:0 5L5**Q|(u$xOjTGpJܢxE(r׭h7OzlYF9hfbkceрJZWqIZ8υko#;l๑y/wRl_J< -! 0hxP>#ceaRb&ؑ za ?O$<@}U_lc,| Nd"KV3L=Ƽ^ [ݪ" v$?hZ!X~t IGa=6`?|;~O^8# $?I'UgAr /ɤ1!)ef <{Y{{m%D@›>:=Q 6?FI#,(n'z w'+3r܆W&oչ,īy)"Jx&QFH/y=cflf*SDNf sü|8+>6 !v*bb?g?qop$]nO~?W}B Ph/zBǧL9A X7 bTTTo$^֍' t _!d>`%If&Pn3_0mz>/t<? ra.d!3OMh=>ވu2t*ס#f]. FMĆ{aՕ pvt3fם!.tG̳0cL{GQ[|-Z-`!GH| UL}Dr\@9W] q?<`ǯ)ԫK2΄A ľƟ@[Ps.4u)ڌvukQ+J_M!Ǹ)dy!\v? 4M^@T-PwHحh UF9 b3Ȯ{͊?a Q%:9Ce.)?dlqQaAQ#sB#24KM&{.#nZdhK8!唧OQz5=l0Ftz2"d(5:=JZMfj.Npfx&RT:2G)OWzNNWY }rzӯ*E@)wOVzpR3ee.4)}RTvIz8[waY>nA&I\NLg#u=3g-(WjӗK{! ӣë( t5VeWMhIMP^YT1,!wrӮ$tn`Å̦rWB6mPzZpahKSj6Mo$Nhd]ՂTJ닦ӜJ~iz55M=hn'?~ yʕMs{ʒӫ"h5{a}qȜ]%]&ѡ2RSh!b:i@=J3YkK_ѱhSX?UZ4j6h>mteW( /D]@ QA  dgS''频9+Hzz@C3q~n}a=ݳ$ ZsCU=,IGKKפ%oRgq=sҧZ@)Tv܋RCecI&DrPeX`aOu]/U9X#\xWI~Q_,mFʹi ]Q610aP.ܴI H-14-GsI=hpf*' (D+%E5 ~(u̙nӦ)ʔM5"}%銜i?yfpnMr[VO5ˣK{ >ְ qiI<{#N (uLQ.(!+(EektA}0 sW('-ə^3_ -B+  1~0+f:v-#o̴ٴ7qL;MgLe}uQye#"r}䪰FA9;\pt zؗ^Wrl/%΀+-7te:=p_n }]tOQY6_ X%P5nFm.=-XT8fLft|RpN;AFǛSZ΃S;.+Zqb.(x㚔W[6>=Si%GZ75?LiޔgX;n2z2RK\mNG.ufy嬊jdM/S~ IBf`0da6^$ 8.g`La܉;sb/pLa笇z{zɗ1H0D Tܣ ⤭X}msvm#Pu[iy lw8sdj:g Zdl]QIFbJCoJOFiF0BJY '$c ɥriE #Zv-1qu{[X% ~QR~Lҁ'XPeز[nuQ৯l869׿chnÑ|{7r%ɗΘ&eًf{SlRF-vTVgFȉ# &=XDaQ rb,rf9 a5`q^(kV³W|?d9r1&i*Jh)ȯաP2N%Rl)HJ)칢tIc7ٻJ}xܿINMB)py< EX&ٿܣYEވ֭N|풑NLG8-v2xDOwۼ6ҽ#zQ  iNć}9gd2gxw {*NϐB @Tw*wJ*p5UI YdT,vޯ/U\} ?M/jo8Afο座|磽؇lYb꟠ `҂n ϵal!;.e;YhDA4,1{u<% fmذYBZ :N2:&Aک}Qo))$d| _`Փ#p#U$˺G&4]uK/= >vٸ'3մM!]柎^ُ{=-~TVSPEW"2LzW2=nY:[$tzL-l{]-8>ŽA@^OXhvNQYHR ũ.XSk&,jLR DZA8dI&$ ІX^ ?EZֻ3/Yp`羁L~l^{9>`>QrEl՛uwoc}?z !>'-B)'%(p˕9E&oڴƼNhsl2n-fhM&~CY-DSNOS-Wl6 AӃj%'L;MXkipT)#! ٥%V~gӨw|$!T LXTz̓2fto5SSJ= f;fGHrU;,j_({aDzΗQ M,X^ԛl S BTqxdf.WS-[2϶e5kNay+y1KoBYLS9Ӛk}̽'Ca/ڧ;`5} s^+q`(I`d=*}iᥒ٤lX!so d7MlI#>v B` fd,X 9{ vJ" j.tϬо|q7K$F|Smg#)h%oﳖ}w(_TLVSl7p: ?"3Ef1:!ɟ02_t,eѠ>+bn;^(MS^ugfPuEZ]]=.Ő$xSNM閞+U˪TUXSCE Ztdl:}FfU#iNh#]<s̘ݡNᠾl 4K)6'u&TO>l86Զ;;\ WsN}7Lxeg{k~5w, -,~xƷ[ Ç|kU$hHS`SB~.s")F"yC'BW}Dzi a3} }s3=*{6f|rA_xf+6Qvda~a0Y4%&&=r_ +*Jt/OO<3ZM[ժ1 X9O FYHz K:31K+$b| $yHt*:x!M2Gt a'?u]6) $:r]=O/*"D~5 y"*K҄d5RJkC@ӻ%2H)KD0K*kC!1. S\ \l7Ƕ~(oN`{;d7S.-83 _^>d2sȍ~0Uw0_W%,5B<:Q*[;]ElZj:sI3^JW( 0*M2yI pwS `0VPPg pGj=n8#.ᖈ,{(֣ 9ocϷ߽a=6&6yGoo XDGx~c 9%щ8-@mIYvEcAhKIqړ*=E>R:;BvRM -7r5t#|:$4c*]b! 1!tcqh1jA7sá!UT_7/P~`fS+K0GpGn5~+c Hy̖)= )# )I)*[as\˓ + rsEa-=oN=G:CIE8y {PT甘SWRפG&wq RX%VĶR` t-x;g1e\boj 'ΩR@IߢzkC)j :f`*3-dqwo< 7!)m|#h)UMCa4S}k=$"Y./9ÔLO!Xiޤc)Xz;N^[ Q7r=T\w;nu?`xQ=nM'+Lp m,C6;ma`C nuȏU&T*U >|5K6^5E':A\Ydљ1=^@Гs$zʶ{6禕W,J?{c(rҔ%}fsdc.Bٶ4;ʷ*/=:hRKvGXP-bʙFk?t:bg8P`! XqRqAZ=u=I:ڧ''=,%֧Ig&!!. ]x{ᕿ۵b XLp;xzY>XRлg1g0gpE\9Ǖz|Kx/tlR+sy\9]a-N|K6I&VGP2DR"Wq=a}[;0B~P N<8X Q!D1v'pJd؝B|}גm^<λs峏w|ͯw9м[q) N,*Ξk  \{%+Ͷ.#u\Txޱ}OU8|"tbE2Hq:)7NO^)7.3~/|$$Ƥ̀3=oA4F*(`1d˖ma-֌C1$ Sg5V8RRY0Ҩ5]i/ZM5PZkW?? 3fM$M!7_+'<(9gHy(~e;N d1%I4r)s*~QʕYLY``2c̅ k5完zf&򺌛w1ߓ0ߛ,:lUH<0Gn`Og t}'`ԑbrsD#O?hA\jGjVirލ*݁)574gbSפVJ G\+p~>u'cE\4>8a ٣߬{ᒱ׬?WcߊߓoҎҝPі_5tk,(X5~ʮc_@ڽ ކ o }5XqY(R4RrF,1W.%4gPN>\XZYdr/ޝ uKFA>$dRtIOc=Oz8g~'>[ }/q>vzcؗvQ?;݇hl؇E4sNl7JBpBmJCOs\nt^^oZG)X[?kwĚlF_Iolm#P2t1qMCS-ӬS] Е+]}}fk]8Io0Fl۬Vx& Bҕ8AHMrٓ\V(&YZ f"[lę-.1.lDM\Vł'xXx'A#ڧt𭻴bvg?xZguzRzdLﱀG*_[VD4G9&csęwAdM0S:f] X ;t^5{#wcq-?g0 xb/5MN=(庍 Ia[(2f߹uOp.XXibt *zv U|E;]iݗ?tIVI%: 3&HAG n7&@NWTҳň9 }4b0~쟺B,6psҍ^>+dRQ߉29)RRJYznEvK2z'цTmwK:AvA%DjʠFb 5~bt( Z}EeWr:R w`z y^Go8{b+U%+Ƴzs dz,a9Ln`-zﵘ \g0E}2}ѻm熯Q:CV/QYzAo.:,dS 9(R2M|+zSMoApjDxLwo͵[Mb~R?6+hyްfdwJL6W(o˚4dL[-,k2GV`m5$ѭ4\c&iq6m[I;,>eǽV v-`0C@/z 1^ye/o)ka{֗YVzJ}}fʓ%Zd5+pX1* LC@ PcOKz=ny 68.i|\>KW!^౱p!s !L \ ^@H_p+gDJ+.1i7ĢXW?N/yo*\&tجWmcsB엚OֆgK;ěE]k;7q7uqef:RDfM1j̗ Z  T$D-7$肄TG~q6t/V`ʊ'| xcumK֎|<7]pܻo=̃vՌff[K+87]1e!3`pPIBbi9Ռ0D,z|){xY $'dVvy\D QbtI`tɌӏ&x;$P6*蕘5N ?:;f\su]GW8؛܁+Ďy2{*ܘ_>?SaXg ks} g' 0iZ6xr# :wS  J=eKA|?T Z@`Ș1Z\7`Sm޾ C ~K|{4oAcB|Un6d,U,mc0g3\m6Lٖ,`fKZK2Y{pa1{߳iko1,1tVX)Bt,SuDJs߇"q/~1:OѣLѣ>y(D?{FX3 1`;u/ͯ=eJ7LFݽh$y0PGXe)\H6,E#r@Rޟ^Tnќ"2l+\>.OSI8JU~U ?.{^;:/Jb )vϋ+|Hkk7 8۾x; qiS2{p&HHIc0W ނ ^k{ReW:'F8h~UKk?ȁ}<ٞDj2Ղ [ :Iv:gD >Q BLT$,C%UJbVTM&>nr2x^Fgʁ/(`zeL#vC* WnW ^.ClK\\tfpneda McǷ>w6 /ײU0HٳxT{~|~]1ʍێ)7!3; `'Ұk#lcZ\Ů46m0 z %1J2̇ &>GM*w$T?%Xut 8hp*.‹1Blyo[|{B%d!p9'mst39ɟc19NofF QhB;1;i0c|CLF FTj?oɉmc&l6BS R FE:%M>1?o#ɲWNSeO˜Eblؓ*ɂNcz=`"x1=g﮽T;R a3&' ~E ȨaeoYLZȍ%Hͻn>R17,`_^4hZ'T13ZzDoYb ]n{O-xc#ߩ%[ K7$3{i 6Bi ~Bl4K-E:b?A;t9XH ʠo o:y=6p!h#op)7=mOjB3A8]a _eY(h^AAu xWKUG>m^)W-io~`NmqZ[+Jղq4K ZzZRRNf34vA9Rg؇5}ΤS a. Ԋh4u*eQZkVǺ^j"h&G:zI1}EuDVۍD uuvkAVm*n:TKnp"u g574Jju[Ծc'ݩaVԎ>*V N]t5L-*ǶmTәlZ P_ڠ4{a,,UyQkm% j.55*6aCkeMj}PٰBmD*KqVLM֠awrJ ۉ|Dݫu(*k7֨iUy/AjJ.!ʢZۙ&u66Wj;ChRSMjc,Q{R1]wmFQbK+\Ҷj*uɓĮӹ'S nШlXz&JkY~kaJK^bU5CYU|AFXDA#0jM)Aΰ]󽽈jVƅ6WBzGm,ɞ+-6_ ǥNtZ9gvt;3VB A8\&,.$u!u7i5Wj1,y/a;7h{Q,j^ك{ZIV*tu5Au~Ȋ>&5l֪}~w,\/?0?E5+t`?@Il9ySyhV3O$bTAQ"h{8X ùkZK#Q)en}Thin,eRK{kK{YimLtF7rigʜ.ӡLkvKJF+2QݰC툶Mlo4Ύ.jv;NTqtQc#Zsh2=RmPZY+e hЬtBysN%̭P*.DhcGtU=T5eY{~ͅYQer{dUC2ڶP;RݲP[ȡ76D9:Xilh[#$5,U ˚s^jV ZڣJ}WSG# H4v:" oю.(w+ ZWt]QeUCg:ښ0NH- c0sU! kj_3JQ1ݲ2lF:6݋SX:WihTѹ1z!&(vQM jm_%6!+VHaeT|Dit(MQ]sC-TF͵Q$,%m\:viM *z;5&ƫKJWh[lW-ſ =¢:;)ۣ@M2dвh2:WQrE)ۣK[ز,VQxl PNuv N yC))+#]%@a [R54fp&MryGhm\,6FF(MU9fU;jlhj AzZWt$TG5eԮ% t+& T?lU%A.HǴËҫ+ڡr6ެ]ZxheCtUB\}od$@ݰZ#LK{LfU<@{#'9V7g"(#cG鐙7zta! 1E%E%FpdFզ!-GrꢭFPR5fuVb^dA`H#}G?xG?xG?x/Z>NEgQ l*;Ne/wE#Pz =0Td}ð-/gtdf 8 b!lSќ7B8Zf*AtYޘ&#j5ʪD\1+O6.Qmta"{ԥ83'[4'::Џ/[dv& @ N 3=ma0pfn%D "+O=&K?A`|n$_XwmA8 9Ix>"AQ.2!lp<2X}S !L>e}o39 r*_@`uf|G O#o{:)fB Aл!lByڼ m^&wQ0r|7 G^ !"' (I^Q7ȯ5S!~;Շ&Ab\(/dX}rw.2C AGu>+tz]@Ps7R@(NS+8M$=[!I_;7}Y }WD_Wpb+X9 xWD3YXZXZXZX>ـáپ Q}^Kqո;;wq x,{/J]uA[>=@hDW_2! sF@~`C>!PIIKTv8mOvY"=j\~e؆I,l@F/C't3 ,pq:߬΅Pa1!SsA-w&]ISex'pCef/6x*)F V`}0F$Nd3JآśwE,P.AAx,PE+иy3?&jiߗ>|)},{r{{>r0D~XsUB}7hzT ZM\75v>=iQYhw5h YӺ6ƖV -MPjK[IMc/M<fKb^<)Ct삚Ҥf۝0"X\dLI$-hsy.AbܩMtNfA<K$.bD AqJ|Ҹ4*HtWrK)8RSw}<>J7({玀%FBj.(%KBYl˶a%YcOl`/x$ȫ:d`Z\[\Ni:^r6x',RM,1U nl:lkf! ^*Yȴ%yzwf+2 (]Uy<o:on ?8OqѰQثD> endobj 54 0 obj <> stream x]n0E .E qCcǀ}N?@hG@, ߗw.]8$gFGa=㰤?b{ws.ØX1-qݵ4]yZg8-a6tr_Ƌy=>ϟdIӘޝCT}8sH][tSns9ߎ1IwV SN!Ԇ,+&(W+% \+er/+ xeL 1f~#d،Ψo_Lj (G8[Wx/K }<ҿΖҿ:7`Zb u$= |||_4քؕ?L <8?9%su'gMw>^0sL0wpfd7* endstream endobj 55 0 obj <> endobj 56 0 obj <> stream x{|յ3;3#;l6 , ?@m $A?e!K$ *hP"*E64PV֢~5w$}}wg̹{9s;I{kGlx-SZ]wɡ  [М>{:ח9 *8 ׿FiLkĆu7c}d!46o/UX_ 5_`[[&Wyuuc9b^|xη $iypɻ1|Rl#xя A3s`2l)ř }L'%4x$}D~H|drϓw2u%7Ma8H>U"x8 j NCЄ:B;<ϐ 0:S+쇃0c8)$ $'I-=L Up]tB&qxvlyN$H!4N'|ÿ bh(̓8smnn}-#8'8V0WאcpN]7?hG퐂a[!7k157&JFhPp88*lON,MCN( 0MGi cS!d4) I&9LE DVPoЛ8 ixe P3Pg@ , X5k ]ͨ(p/tVC=('z$|~O A$JQbRNk5i%I'IA]sp2ō|q2[]ϭZ6Vn?}]>0 . v!.R Sttl1NJ^ZErه@pu!|.gJt=Q|#4H>':_~ 50OC-G|t4y/IAB}&k5s)E'O˝0~؜1~7j䈬L'ÝJKu*j%lx@^YVƅN@j*6_Wkz9tLm(j1OSjҀG_^=?% rXŎGeR5NjղxƮRk̏X&AŊxy! fAڑ@iY|a5eY~pb^̯ C`^ܑP`>&n4j{޼]w)6V Ù_(/v31<&.#,J]4HgK_{8zU扪յ[,`N̫XQGewT5L$J<$mbGev]jq2Ⱒ4sv",*SV@0\:]+:-ԅLU{S`"} bB&B4Z"'58="3n'HPQ_m2.)[ ]B/o -lS 5A$͍O@-EKa6+-@Ae  *@ti+k 벎Vst'H  93u(Yq+ݧLL]59=Y9]wqijyWmW/c]@U]]-eIdŵ/ҵO_gqAO$+;WjɊרe]z-3$1&5u"diVL,uBAO*,r~?x >B<}Ф0^tJ% x!HDL}Pg0sj.d"()1pg r?XZ7+JPP1,ჱg>SJ|hܷH{&"!p2 :v #%pr̆l2QF8[-XHTx|WKp]tV{Doɫm:yTag>*D;E&jބw }hٵ-{|C8;̜'$:ty?{JqL'{JΣCh5t> wjެőxU$3+%YErRs' mM3u2}Z 26'0,C&"#˝b rMCrO,o,V[{}7~ףF<'hvj-YĞVeoӪ:<|/|qۜwF(+&-ڊn%L< 7kcqQC tbn8v VJw\mG4d֐" 3&.+֋ X r3;sDOPuUS6Tg5 u0}t^}}Ǟͯx[(Ŕ65dj+GDܿ:z}=c4!\:dwysx$EU+_y,~7teYloa)\grG_X.Zae.AK+dܷM}Ym:U$)Ez5cZӠDUgEA5G7w $REG48ɶ[fg,+=^ mjJ pA3fNMYyȦPtiSsSL!RKwe3Fщ-jמ$ol횉YT^!G4]Xew>Wy%׌v]Se/Of:yzz x%tnoW}HNw=*Dn0"Z@RC *^T@U,DmUdy\S+H[6H!)}c*`Zy3.dS1ncY&gF5CŜZndIxͥ98 SI-?=9;ϾK7lxj`5OˤQernC08QͤDAH7aPtgӮL>`2BzYOwMC{/P& iU9X)ے2M.MLK)He)6%[ˎe>}* %/|6^q:33TwJ(Uqv;9gj,ofh՝eTFNj_B] QOeLG4a0(u-E!fIlO+3Qu`P3 vOwS Nbaʹoɚ{n}`Hk =ck<7=ߢDu<֊JSGv;),p;L#wk#: ͕L tcf5 >%/Oo\0fPړ66{ =gx)3[J#Q<޲Dv&vveA1c|>nϿKO,/+u-trũO1bU Ȥc7wEڗnap'٨LKMdErzSpH;v&-&^x 6mKߦH.AWBlNv(mmυy,}19ŎOUq[ 0*e.[[mvܒԶ f ;lV(u,b{Ц*m\ RQ8մBA*^@S:O42L+慙^7u&vwOrfYå}˻qzrb4Ԋ^ji< |v([&\?xmnc?y[[M/~qWLvOAB2΁d cCL(lw D@#nE/ƻBm)mjQ:ZӾ}Ϝ<]L|!F/7kR4M4s*Nn[(RK =n!Zc0ѣάG󃙥L.!5jJ3E[$c 6IӮ=חoY8qU36lrw_wGG5t%zR)XOFU#ڼeo܃ܓ܋)Kc\H-c̄jT,4ۣnrmL9YIx^lnCLE٫B;Q*+ q(J ULDE!N%e]ƱcJn@H{IJ#Jf3*0qSNChcLHYB9' mh qcĝ1V֛cXDl+Z!A51{Xr [576Р].>?;Kϼ%FJ6k0z*į-sR RKRFLQѺMY8j$!L,[mVGu8ajs(bA<ܢdw\l3'XO<[e+.&ynj1FYyά6XIj%:>7m dq`b gr SNp@SB"x7nlRqŻ%^ޝBQKyeMɤ/<#D㝍xlO}񁟓Ǎ#)\:[dQp 6zOZ-^2]JEGlMmS)GOqY5` &,jKbcؤΏZF._- R%5uЖ6uƺI3gN$unS"ަEZ7GFMpkklˊHCGSuxjTJbxu6:B֮7(65FmH4[oPcb +렓!{,C}+P?Oa9oXuTY,Kn`0na0G-M8>R?R*LEbh ⳎW!L4I7DUaWl Ն6E8ʴ>~Zـ5RSa$_5:A۠"8p*Q&k+5*0c=֚-YͫG yc(ucjcxlVeҬ{P]3WY¨6`}JQHW^V:!)Y+RvذL;.ldyVMG63tF亙QWBe|u=6B _5uP԰c5#L6bL'*#心͖!tͷ3Fј=b-}dFF [j iFVi-Ll.ƼɰfcL~٘3jIt]`=&uHQC1C(`NdN6," I",RjUbacmtױ>W=`OX?ӄG Գ7) 0['2T:C([&Fčldv){xVE=&4 rjCv~vtuˬ2=WjugV4,}0+Ny=݈26fa\Suw뙶ZtJL{t-I[58-U7 K|5<"泸Ԍ̏jFh#[ZMnĠN TdZ: ͳ#*ʱG2lY{;ᵄ;XXYlK,Nl}Ek!KvIFjc18g`tӭzh-1Gu1F%2٨o6(fs`~VC ^oX+TcaT|Fu,:\3VfAKVH2.הgʖ6Bc:#Y| {j [bmUk1GY=fԱJja.9/'La;I 7ou]SfF?iWma[b2JaҼU!;)Ayt[wWu^bP܆DC~%s/D MFتnb Z6Ҝ؍6h Ϯ'>1$QPZh^ _#n| s1v}0}L阡Mǜ~> ^ʼS-c:ctS @Kb!r H?6Fo6vr=n$"rF{ĐMɾ+IL*/Fm coaaz0$[ʼefU=Y,Veg6#Q9mHHKf[Xnc`,U+}6lRճ-SJFNocF<|ܕah^˯yg6m68ņvMUhm꧀d16 }}:6ވ1#I(fh_G56J_󣕾 VGkk玗|rIr Y,cI``Y,{ L3YfZiKڥK-v\s%Iإ7/ pIT};.dR%n油pV҃%4w3JL%Xba^," 9/TbŲK7,q,oby,+XT,aW8%%#&D8"pv>>dEVBY-q|Ae qVCxF<+~,&DQ0MxJ%';x_3GS,1ŭ}B#[֛ z#ٺl&>2/,pU%^5Gx4O$Hksk]{]+%Z.U\ r&^"Ysȏ>ȏ^x^5}dٱB=5;P^*i}A8~ӏCG;W^"H .ң#uYXxSǂG9}uwOK8L?hIsG1B}#}u~z˱Nrd ])O\S>?2;;Ȓum2C;)1M9ۄc͚<w#Eo}{:wlf<A|n4+_q4&a &`71n& glj q7 #Jw|T3UpizFh5N.˅rSSv!?MblbSbv;"v*q4ZRQ)SHn%J"$$IfI8 bbexPK.!t&C-ŃZdo@:BfPVpl`'ipLStJplio(İ2%%w *j VSOSJ%hF}j6Q5YPN QX! iA>YYs_^yߧ0-/k Ֆu߃vv&|?yּSXm,6gs'cyouuDJ{j/kSG]) K;p\w KA\|IڽuuεN["eQo5 _?qV zOm?8ϭat߳= 8w\%J hty_:I1lv/5mmmoO>;5mkrs]hhoKr\Ycg+kk{jj4n vat o^ endstream endobj 57 0 obj 9542 endobj 58 0 obj <> endobj 59 0 obj <> stream x]j0 .JBrt1{eu"Bc} ٫Ujx xWc̹6*ܣWCX<jۏeɲXX5xc|qlbܜlU>O{nȒkYX6a^F˟}vKE&*+xyT W;tl}(b"牷y W56q.ěQݓ>G>PH?@>f|&>#_Q#͌%_/~VtȴOܤ{k7:t\[ endstream endobj 60 0 obj <> endobj 61 0 obj <> stream x|{|Tյ#!I@ O#S3!@ mr2s L2<BڠŪZ-Z&m޶`[[۟iזZ/L\dkZk}p0Q#^50$"rG^h~@wퟻ%/Cݾ^QzxݣX4 D=&ݛv5|~'hz)wFV>WK ͺJ#(q?^3Cׁ.IjmI'+MDW~=vM.r팟q :H <[J)Zji-4wDGIt? Q!5, r\:Mtk8RL'm2bVO,*?/؂0KʤE>IY.Nza<妡.X 4h~1Ia,v*~6+IFBJ:!Rh!}6l/#T$}KB"jv5~L[,`eGp=~o~5Qn,=FRT%͂fbچt)u|&>#U>Cߠ?KbUƞ7?J~:&{旔PZ)HuR-݌nc\-zP>&D&)nμB:kgy’ m^9c2v~TBhy?b0/!ѷ"t}ǏaDC1VֲF\f\p]vRY'cnbeO>0";+YK[ dDsH*VcuZiWR?<4"~,O Yw_$$MejvS&iM7.sA3\r6N}_[ޱZN돬d,Y쀻Ei.d ʡ{{glbBAT \1[\1OFN*cȖ^3|v 7SNQfr!3u iyCf/чp漊P5A̼#[GN\2nWc7!߉zqFǙ,yR|%~S|?_Gݴ5(oWPFَͭow)AwDTz,1f͚##ɳl{ 9EEpaK%lU̞aq/\|%s]==w)~7vGƳV6m7fɳ:f-'3LIYt,˙jJ϶g˖Gg==]Jz>__Z2fdXiBGPcP{w՚Z5ciU5ƎhnK\liC{kk̏>siIΪΚ`d)洝7pq L^69kKKkkei?jO~+ivܫ󞙸e;"{͔N J/7 <J3d􆁧x*oiԕ4p |]c{38.5eZd&|͔y[(3[ɗ5$5.S#YAOƿYm4*y0zLGfEKnOxf8|4ZD >sGs2p(wGEn0phnGs >G >ʿGG׵$]|-Kr&^) %u%"B(bU\j1(X<1sqK5]_q;z' _/Aa=E1!=Nxku?z  K Srb%]n\nXPT!#d'{zR2!\]b)|Q' ]Etu ;bgCbn="j{"B^!=iGt }\mgh7NY$"bd"Ox_PN Q/os=k<._WFDqgc#GwDXXkl0ꤼ,uSYϑB3+Q#|WL?\[:hPDTv\ȣnXqDZ]Ҁ6|Ӌ1G0hhr>cw xxL<3 lP/&$"'IOpz¶ s> *?*YcrDYLBzʰ\/ Q:=?3O$r,KZu&Piك]lE~Dwo9l"`ܹI{&傀aN _y /뱕~"^s{Y6z'a zdU&T=xoNɥnIܓ '.KI9prwR-X6%&yL;?21: L>;/ϒKҙU`9U܇OܥD^ی3R?S/z&TFaYEޏ#y{Ҽg ПPyx?!OߓqN=.n-}a,>NxL]Vtqi&k'agOB~J!oē*PA)ſ5FMg9zgWRZI+DKκɘ+za`@RݚEGS6a:0aO ܥJVSl"R0n%(*JZO -ZH koR6jڷE`bj I+J+W*? /2Bh޺"Gz.TZ7ւG)an۪4aeҲAU}E󅴁KA538)AuzekXi! ^wT֫AYUxCЅv4%e7 +j |Y±>Vԧ j@ +]aQae@ )-<Vz@ E:Ct *߫)>}ۭB]PMq5aqEnoSo׈te(dy@t>dEHB*0ajXhD].$qk>cACoGYZ KI ؋o|P '|Zw]^Py|SKrx~7)ŞG_}d\Aqq]oN8F K+@`)1!H6`aYhʇ=eV@_,''GeVPmHBypp`"(P)<);2p`K16nF_K_@=@!y}h5A홨3{AE}]#b\بɡ|{F|+r n`wtwsdMO4u^\7G7̚]q&Lړ٣{<{V)C/ʀ2d=sz)A(;xKC;cvYjgESrL픻Ffϫ80JN၈zQs^Mj#i̙U;Mvӿ$r`9`ݱeFM"4^i״l*gY' jN"d\B`XlofɁ}rF\LnN6YerInͣS1k2TεewJJ=jZNYXY[̊4[:,>C;,wX@T9#UI-Ou6Vvfe `AWvCJB+p9ftPAMmJ=̀@赌$p@?8<נeCˆ \gwaJ Q2Wnw,I9Xb]-fw,f g>vG{A{aa/696l*tT))9l*s6{O?Ծ޿~zW:OfϩLtiGyp S:J; PQA}A}6fzv>~iJ?Zv=n; @ֱEyN7sq< n3HGiG&ykkq=&=&;mK4s&̤ ) `c>Q~\5\vkl_klH8lnQ9SkmO6 mMw(b<_lʳ1<<6i(Sy5\L۾e]kUm6 FEK{!ŪG%ǪkQŪע~bwٟfehcoffoFoɨQ?LլbO9OQw5 gqĊ;1gbŃT,f7VwŊ?XՁXWpgz6u@⚬7f\>kX1U'eu1RTO351X)[K^g7H][8P6FRlT+6Bو`[/|ș>n]LYͼ4Y K,,XFB\4\P2\YJ}dQFb&alPA|U^ ѕrc Q[? ""Hi6EܫծqwDO]3dj_@H 䬓|[xuǜ/GM,^A? GBC Ч+յw w%4,lQ*O݄.#"%o='b|EŪQj^oݡ׮z]][:V,67Ng0rѣ-D" 0/BEaVqsCEEā8<"65"S!$!>, endstream endobj 62 0 obj 8818 endobj 63 0 obj <> endobj 64 0 obj <> stream x]Pn  Kqs99Evb@k\K"hgF+>Wv'7G}`|cILw KضLl͸ӽ#1Ї> %Ӛ;(ɤgsh~&˟}OUQFk2ЄX+ov9d? !JiŠ+rǚqSOKn7DjXoRR>RLU7,r( endstream endobj 65 0 obj <> endobj 66 0 obj <> stream xy|8~3LfEwo¨6t-WQu9noIOSX#hJG@ȏS"/݀a7@w3|YiZ ڍEVş+~ ( eO!.K9}|nt)CQRaXU{=i_:~MEQ1Hd)]CD2BF9N2d6f:*6h?F3 ?l)x1^oǟ2zy=܏A> 2Gð_Ea/ ܍Ǚ(1yxȅ*dC4_7ЧlƳpcFbҙeLs v){;W^o!1vwc?&d7`;Fߏ@׀UO2s]`Xq4es/07p vs]//z ^i)<b*5,G`[J܇çl|5._*0"| ]Ͻ @c ܷ?@1 (^fzͰζzt(E,rWoCX<'cܟ|Xa#:X1<eR V|I _Fڿ)BPV|B1l T&1YDyrOZGRk({)lQ#Gq\ܱ;kA@@Q v`2HcɾڨWC8hښ)?/Go^(h>&*̏t9BfyԌַmeQ6Dư`ܚ"tn߸szk Iqr^lj>ɬk]C B_)h MQ| )Y%Ւ+}E &ywNNVQr{UJ5jR[G܊>%?ْAI@xB@+&% GE`QUN}0Yv4i@mD٤GLO9 Z#d?G$v2ij>Ghn.1q>xKeyG 5lCM A^/QQBtDYFSRh2-D}5i12IK>D?dv$v̎b?i'Wꗯmkw_u^)>kMIFQ^6L ( jmQV`.jnYx6iH3*jO*M\Fg/9|w,Ukw֞Vh:\ewh4cO6v13mPhȞhM0<;B"m>Êh!qRXFniG. TW.5VdUl>"kɄ=K$sGoqܧlUh2v8}vquzCndoL1. \ ӗKmJ&Ohs  CW7Ԥ]aJe؝a#IV2ϭubOksKqnvw1#Lď* O Nɷh!Er+xs)fs%'q'v*IΠ^'xQ3cǟXdTA;+]gsƃHմgͧ@=7>kH佁VgEs@ p -r~ղs'?0)Jkngc~E)ւ9kOiZ^,l|f϶w` 7~VǐүhAbvHQtLD=R] D0dքAf0yDNˈ~ Jތ TUR T&M,oEx> C.vNB|ss_._-Zp+%J`4ƪ7hQ"\ʔ gLM59kMg-g,s 9٥y`욼qV=]ސet8=ەA wJ"F4yvnD^"S-LǔE262Eg]n!7GOvEro+x*ZTᵺtry)֛0l;EkEI bDq!b"rB 5;y̬|f̲2vfF%2fd|2]MC_WkҲtg&}?XmOx .k}Qǟ ?܂\Q9vv85hIk5nAM\1}h"4h4z#-ǡHّr1=.viu~:l0 H4hTVtB\>C+A Zd kYZ2sM+8=7߻x<<ᘇh~"kiQ/p&Z*b&Os$/NY(-Lw{FwM~(y,_`wnGcor272 O/ gobK!C 3lxӂ242")xQFihҸ<`jM**b+9?z61iyD%M7دɑ M~=8V1:eAL"qiw˜N.T'^MAg "S` qȈV6o j"X6k[fo,oN/q2u` ł@愱p<מgS2c"G?zf} 3?(oԬcXpM|ũnM]MkoO͔SΉZʪ_&\9x@|Q {~;?hA7+Hvw'6^sQ I/Ú_1&yIhv kX V:'Y6NU-)=)LыɍB6SԵM RnmwD\& A+mȗϜ =~`앏b7ή;'{#䑡y0*dmrt"ֈjV/~o~ägYI십u&}D/ζ;] ?hh~cz!OJ -h,5 M`y+V)C{3H&)bR@wSD` L}"4YNӷϺvw֝h1֧ cƗΤ 9ՆNևbOɨoHoݘ~]Tt Luyp˼ee Q2d}bFקbjߜ3{{wJ?39ovݓh_xثAG<;4u wt7p\2R#nTJqę_Uurzf ӒqTȵ4f63"G1҃8;1\]Ρ@׎R:ԩ$r*9~MN Z8dbLS2nH'3uIPCI=;J5ކ2LŕL&!<7[dR4tJU4/`l%X l$d j3=?)~TR$0i47SψH:k)*6}A]5q V{D4 qS zva\'[Z;3mE/.;e]cw55~0buvjlY箹gӷ);Ͱ/;K 8?bZ$0ZRYd&Zzk >][!,d }-y Z8tZN9oZ^C\/ekŨ+ա~HD[A~E;߉nv7I7iwFosooHok>N''Cg3ߴghuEJFВm]]:8^/+%,:e:QQyc,ZIBBco3YS-a#AdHIA,6NN<%ɮdkimǬ~09J%}"J05DlN1T|*`:gtԜb@nItt|̨7%ѕ{?eYbOb_a{اO Q|yl|5؈'v{]lbcItۑuؑӚdN+c.VE 9Q'Q8bn6fq!;WzT-Dh0lwZW۫lmllmmG6M8 Mo/΁xq Gg5U.!wwV?s iK ~n>;'YX++-˴0Wef-vWUkɜxlյԔwrK߉_;b@>!gl8!8а0a "yx߰$>itXx$ŚlnVZ]@Hk$zp\?:v#aV椧;Me"ƖAr?v3N/*䏌aM?f׍äawPBJ>S5Eg5kB^ #'$ i*a+XXeL+1:N~,N?`r F͛ XEp4{i=5>i?r6 oݯ8/lų*JK=So9ɈTN@Zͦ$nGctPu8p6r "i&ա5XձTk2z&LwKg?ы۳jao.v_Gbb9N_C >\14~.8A6 VSe0gԒ#gΏŇOO9rQNaN4<~Cv*(4= Cf%+%5՟H0Vł-Lu)9ş uݩ%BݡLXo!n$WfYTCRf_,z-,֔ڑŢ,9(+eT9 TW3πK9d:_8Kn`=$k'^wKE䢘Z0h]Eu\6@6s: b'gTͬȏxի]VoYʅ{1L}kꮿgN;B**ź)uFƱՔ(qs sRjzC}Rm=Vow&xT%I3!ӫIgso"V=hO8A5q9q gU]Юmw"<9Y`Y$s긺~>b .|78}Gdoӱw.m}pY{^wXsסClW"kf,]8}V Wwڕl DT'\,S9s_*.մ Ws7sq j*+䊹BC=WkܭZ8*HӈZVqLj*<"F;n}շT+# m>G(bL/&k3Wz!$^ D.Ƌ؝ob_9wo}{rޮ"Z^%$4i [?+I=3v`fAl{н/׸$5]2Wu|k9F4dBɷqp;qM!,"ڈ5a Bs7m--qZx!pؗ>2=n-*tvi΂3`z=`XWW(qE|#Jy&ci$ɒc4f35GWRbk4_q F◦Y#1q/TD r`Wa&vneqkkolp翿-ؙu?dFB,Ҏrmi GCƷ$NC;Xg3dm&yqiiV48ָoL$Mқ+wh䍲Ao3&td&m6dcl6${Id0HcO+Y`60ߥd QpL=>,|k@NP{pSS!=x,4gaҵOK荳p8lY,SξZb$7{W]^7\0D~y탿Ouc?ǚK3-TOnOSWbFQ)X=<. KpQ+e bYf!1.Y6k8?b_(b,"$ 1=ipx1LqӅ"JN܇q-%QS_6}*ux'[ ׈ɜK,B܄DęxXtg\m-վi.֮⚴m\v Z{wxDr"l\Nr\[;[T{aIN7bu[#v'ɏ+v%9ȑS-d$iXr6<ɑddct:44;YG V,#h$Ix.R:Mxa8%LT[O'.,8ֿ67E]ҽE!TNx MWB]qM[z>Y\hrt8 ̔)wx7ɚi2k_{ËeoZ Ks1Y '-q:VMǗ\dqd5-K[q{._rʹOGRNZs=ʌ5?V#)ѳ41$R򊠐 ^:fPzKifAy}=ÁٱؽźA sg$q1[;wf8lo.)qLA<PǐuI3茂AIp,I bQ|@LBc6E;K.YSgR*.wp;tq"1q)YqRRg^T7 E;bgp9\E֊DFoE#Vzy\5J +q3#qؑfLE1 <ɜ䆇UœP $rձhd}YYbg/k~K7,_Wr772cƚ_nyDPAnJ ; ,N+`Fc/1ə\yFk "O+:S&L{ ˅}[<OƖS_f_3ܟ*Hs}h)C"mwih'ԯՐ! HbE!"m]j_y|2mz  &7.kN) 8CscmvL'꾥_bx35n.X,?ζ~N*}6Fj%PGvuU1d)XJfQ#60lCyVa;TXD/UXL Kh7s kYYuhG֣vM CGU؈.3]>#* j4W08\fQy s̺TGz^E޼W5( K« Y'=6I練]k38# ԍλUC)C s| UCV^_0$塰D*WaЯLw ~ TtWaЯ{DA_0'&? WUr ~e ~o0WfIa-U0*+1G[*̡ \0🽜FbaPjʹUC 'g? )l#dOI ۡޖUCrS€3n߬S ܮ`9Q8sP')0r>Ta)KkPaOn|On C?c` "s5t^To'> zjzTC( mE=(QB.CZ:(u.H* L!P j6}@5>S$g2Z -$N-<1^1OWZ[ !_4~Jԋ6ó z=m_s4yk6ZC{䚌Zf }D^h}\n4VM),[ y/hsPiE~ eӯ!J/#?o NQe>e.6 uMo'}"YMhduoV}(1f?̄NauŅ'm~u=x!yMB"^VkSw@bgLp^L4Jx[Gmċh,Q7S}?H5L٭_EX2\ PFH_ѹb461.$mTґiHX9owN\RN]u T 8 uJ19_ӭS 'VUjS|g3Et_DE%fZVޯ{>Ш?m ]?_E3υ1!u$oqȝa]WC==acWkI;B%d:0>F*~u!<&E4@h%ۻa#L L7 z5ȨyB3!tU %mdB k,GHV3pppS5؂Ž΍*v `0jÔdUͯ^hRyY|KW V.]ʠ5hWuX'FDLt D/d!9*o @t%(_6 & t'(cX 10(.L$n="*(Tœt5 +jڄ^` yR͡`a>.j['fsR=wH F|}2HZ EMURG{l S#2! v^ٗ0Rj{2w'**'WQy,j^}t{.u*{`c͑`]}m46&lQ?c2u,O^ &WV&=+X#/ Iz,*.Y^Z.,(0h U:jX H3~4 |xTm;:[VkK-j{ ",<No?߼67 ymko^|߼67 ymko^_` BbMkz5ÚCBJt?oo/T MI,[w骜}2<\n7"}Uљ|5gzTm^c #+>Yw1=Eb3S](~. {/2agvF̶egĔTT;Q$E%($u@/.#Xb=HiYD$9H ,[E0bv4T-a  [!O|=>𩌘%;`*@b @Fvf] S ; #p&Q4׈XR ۇAb)6N%oĕBz%=Ι:aSTiTj12_2Ljtי7~lC_jD?QQ$?^|@2<ży%\0o3c 䥐3ʌ@7lp2/  U:J3P*t{3 9!rG~ ȟ`Ħ'ð{za#a!:,@D4S1 ?'C## )32iknğz<0\N:;c2{W+EEEr/fVă`2{ ;5I5̕GaNd^ ! Bbn@ 16H!t yoA6iM?H>z(zREPE衣@"-@-@B)Z(ZR~[R4EP4EhhJ @@)PB R(@ PB REPE("("JQE@QD)dB R@! 2B R f0S 3P fJaD(q8)q8ǁ88ǁ83x=Vs 9$ǀ%9$ǀ$ǀSOlH(ڣ@{5F" QR(PD" QJ(PD)P P Q!!Cp QU\52;pͷi EA=Doki~* y?hT :HݐC:YH"^>8Ss&q_< >+"c ³@8.0ru c~\ >HBUL -O *S'\l.>osAQzނTϚ ;=Qt"Q ] R |H<.t˧!eABj(c?4s"> tO gA6: '{%|e0?{ ÞD)!k*W=y8BJW¼IbسЖ{r g v. 97,)c9#P=pڑS(*J$JS8-{ǖ 8ß)OZ|aH-=;\eo y(k|5.i.D/Ԯj<.Vk}59Vc:$5/\MXdj2VREǪoh]JT ]Xg}6PmA&LD}@y \]YI~(P-5MPW0QDz$ՎƏBcd80N]"3$ 9*$t?;vHpc yI$²DS'{Kȟn(Rg&rŒ̽{ˇ2>Tz"[pC,M&s0SC}/*zOۧGPH% 6P?"7 endstream endobj 67 0 obj 16992 endobj 68 0 obj <> endobj 69 0 obj <> stream x]n0 _0^E蠷u}a6/}A(KVii4^2@w˜S}*mhanY'9E/1DN Xȏ\@*#Ǘ'fڷ`Ofr(#2GddOtgd?d,c)D1QMGxFNWksbh4<͘E7\^ endstream endobj 70 0 obj <> endobj 71 0 obj <> stream xct].vVl6WlcvرӱmwlN:fǺ9}~qkΪjV.sWcg +3scS?fn/+~+WPw!9Z[K3 +gWK @lo?.n&/tu2W\s/>+~!]c g _ eVp2r1MiԬ__yc//h h0v7>ۯ:,]`QLQ_t/9X̬GKɹi!^\4_H#u]M]ݾTp?o O, +gWߚ4W-\\_j~팿Z+:,,_}icnOKۛ;xcK4L_Gj hz*fk`l/ה8XJV_c;+[ޚVpp3viW㯮j+ڴr U{7̀ζV@%fj_M?S`aMDA᫥K  =ͣ'@_+*no`feoՈ_il6'dpsp7 u{+'7k6usv߶Jͭj zMqG g1ҥ6_r|WDtlN;OM2v5x¯-+hs^1\=k(ٺm:TuQ)0oKXa5APCR-^>coBeJqVzo7oN=:~~7I"!};/ݼӓAN|^h8̦]BwQ*AA-=As=[D Y^&pqݺ2rPf/m1}߁* iCkl39{;Nj#מ%Pёy 42y$0"l[I0tUu^=zOn&{8\BV/x$m;UoY~\*x{q!҅q(~:!=s:M\{m S:u_[KڅPI"%-SOCjv +;yAu9/$8z!R|շSK:D"ӏEOҍey 3֪/I~=tZ\ov^n1xѴg<hŃZ 9 AhW{&; +|=19@*|,v *+ֿ#J|)EAm .K;U]L$M2Nm|SH>c`%b$B*t^*·;* x#Mx2&bTj_bBѮzqEOK:j Nkx'YEd?Oyջӡz:NBYWlLoiètus[Ta-p 13>=pg;gP@| kMCq(gB YEE>'Us$q|I$MhouP|[{A~ZPއ"D7?m1{%P~SCDݍŃ !*4ytVNF)U\w o嗜ߔX-?PlTeh|(ޜ;Zf(uX)átFT?:.G#FOt޸1]&4 e 105$C1!6lxEi6/wږocmcn%+!!:JXNonuS^qg2$ gtHa5R1 5 k Ι{Pd 6L0$7[tvԕ P/'LHz`׿oTge͟㚛2# Dۄtj} =h vⲘgz?g^!Y0a"H0Oz 5Zt Ih-Y6(]} *ֱqr@2 }CU,+[xmaϾ!p־2 $8WQ"?޻9a[#Rdk\ha(rՙAL|LUDrUWry^Gv'>\+)iI=Ismv^AiT CQQGc7yKڟ~`g|^mAmQǚF3HMaiD3#qLcX]NjH\&A:2(?4DW^McrD~?Y,(U'/W%g`e1Xwy}QRa_A0/VCdAt]SE 8LX3v20m~/ǨrZ0<"=u|P3Cz 寧bD<iIwR&^V|}a~~-Yros;(߰NA,ߑ@W5K! WFhe`i*l(BOI\V5~9c q/5!$.VGS\F)LHSQXTv&Qb>ѳb7^jy/\Ÿ L)"ѵpH얷1[BKYֈSRt9PϓJ6O_Bўrxo=]o253k\nو~Pacc(_"IFlzEIETVPR]CٛhrF3BH8mA43 A-ЉmStm0z4ÍcD~Jc+Lp ڏA n7M3j,fu0Ym\F\/g&܌(7rJ6H~T$ˊ׾[5͝ӫ^ &?0ᴝF෢dlU%P5p6){WZao 3a@¬ipvy[LYvtg(hګ补"w致 t]D ]q@wXXqtd~0l\'\V7͑L79#IN&^fUO˔FNT%K Z Hh :JbŦ,mw%Eg؀Ma9v,L s%q3|>3#vDžz՞[͂}dLХ; +ᕃ!4TEFʻ?)ߖ34Y{$#Nƌkkhq]k~e $#Kl"mmGXߓ c%0ۭ7 S\8FmH=Edޘ0ftȠ.fW\MPBW~\MRJIt"JTs"ai>'&FGKr$vd2Sb[uu`1q'x-Re1q>{&μ6jUzRIM3LNq*O gJ|dI*qN[~C2i: p8 Cm qvn_^5N7oTJ0~z멛mt}VJZȵjQYt%ZtD&\VBVEwy&CX2E,>zgGh?ÜT7h/[r $yk"'/D1)AQۅQK>N/NilY:c+= D/46 TfkQ;kzs@e3t#xl. DR+_*NnVl#겵3v]%&˽t' ^g GZq(g0o0z{h9xAE)9\l*HG&8UZlUjƩ2H&pYӈ'hb !IOu{P#G3ѝz|,9v tDaPcC~Mm8ATY%%c )f~(<KA#S14AiqQS1#! j~HR# PXf` lHV3(Xjtи591 Y-l3gs1 ŹWn ! %xp}OUTYV<*ETwGe@A\x].}m:h3±hz++vLN%@|A>4YNgYFbO ){+P &ƨH;۞ysY~f3s,7f2<3"zxp)d[Tʜw|EK'G'C(X&tԬsbū"q`{M-2@@xNmfllhWiFg ˱4#z礕 v^ݮ Ks;Bn-iG?5>˞AEbǏ\9M4:e*:8Ft06!~B8J/nٟÝѠk]/-42@,>χ_v~).}1Z"c^=`rđ4292%aA _OĸE>D&9o5;Ϗc6.7W?w(ff*6瘪>gH'ҼSA4xR>LsBm٠ɤ\vKn`.Խryl!C$E03C-#xjɏ=R\Jh}6{;aK@95D) M/4Bb9-wޓ"l6 @mf;ඟ@KE.깃 ʠ$eܠ|[nf0ƑF !L8S5 ,Bp~5}: ⼥0w '?tw5hx a{A.< 6/rZuٜjĞOICj֟&v_#ݞ7}5щz}r])-BHm7ʼnt,DRq't^ÍPDI!΂6GRG+)i؞0_G;)8t4\Nh=5FI6;zX ꠣbe4V(ϤNޝ#DH%.aF~_SճwWD| k!{Ү朼na~7(F#DN"WƮb|F&Q:jKw>R(ʩO7nɉrAOt #!l'Ю_^d0eDz%59l%lpts0,zvyL WdWF31Mܙ}h)b?nƄ۟jMAh_:MvbGFg_FఴSkUPAsnk$=fg%^.c_^qb*)w1R.XCd.fw_Na bꁽ㟲Ğ}Rq"Cٌ\:9>m(u$fZC AXHv1)%Y~Y-j gvds hIBjBJ8k֗ O:N@+e_fe=]j[KkcH@Q2;Gae=i9uu֍Cxkf͜)2\RG`6HA-842*ͤ+wSK@:bux2{L^cBh+1Fa:?j\L N~MKzLHkUۈ@Z6vg=ogEX'E6si DC#ԹA_RM1OTXuǾÛQ2^}˵8-gry" (u2E6Dqnr|v.-mh|?PrܚVkSق9wiha>Il cJ4[,c Hqvo.dSڈB)P 0g%3$f-/RXb4o\@Vr|R-BB}Ihb'D6KT% &jt&>P &@{Yw[SL GJgdžgN6hq sem 3ḶJZrDa=m4s;EQ(ed=8Pϰ|U{[xhG%xܜ2>Ku@ԋa~6C,F3捝e!Ih#EFCut٪ C CgARf̼·)6sυFk:ICW1G_}]Cl>Z{Il6G U:Uշ:QvC0Qyx$0ڙLAUG?M\Jyf<՗:v4ɪE.6ȩ@7b|wQD># ^MnmonPJI+inGmNߖ?4@Uwڴ@{!13e@s7M lBA Y\X\ ~$Ǭ(sV>nR&SK K}UzO%r\jhAJ 6oqyuFU'm/ .I<B,m~wsMbG,ЩYD'{4`BCxlDQ Bﭒεdj5!)?{{PABq ( W֞Z @!<i9b\ t; ;Ȑٴ:}w]m *>f=[R;frC 1 o@:ngq~\yJ78>SVSc9)]Ioͷʱ6}ByT{TֻR:Q ñRiw_*9}{uaD!4QO]>ZɄdAM^L7Nӳ5՘$:mIkv 3Z+;cT2յ y jv0fQ`xp \ŜQ3+072Nȥ]"cvi,Xw*%duqfZ#S9ۥf}m!%]2'tN9/Uzo'%F6;CaxFOzgZ>P$xk_7(ku=>G̝ E=UppLng`~Yfe\;Xg5Hg. BB3s+XUbޜc DEqeT!) KSKhmuUL[6cφJ&gߑ-ŧг-TJ4? i=V,fPX+Eil0n~2i*<xJ ԇ*%whq%nnb$Y 0ZZlqkpĜcKڎlDQeRN v~umR%V,*Tmv(Ouٍ|D蝋PѡOrlo<24u<#?Abʶ eNBFb),Ȯ7I<AFۍ1[֣x=|nR&ڕفYrʏЈ8}H+%m{D7Y1N8&O"_Y lslz(f%CA4\0n"[[Bz٦YƦ%)w> { qeT 1tl,Y`kB 20@}Sǃ̞{=8T:5M: DI`X"d/_lދ:7y\8g[Yn5%@xҠ\p}('<Ҷf`WvFڱ)l#c>WuzHZ"h1]+k^@H|EO#t62&yiSLQhm#E|(^=XUXa=N9&,mԠ *v\[y6Miю` i] x1K6.Cs|=\vj_4[wZGf L  C.\\"ۅ$G^0KN' ݈@`tg{ ?Qn%.2&͕ƜP 諜%"8ێ).L5B٩eAlP DqI"=#zlh,+׶l_i-gZ<т.39657KȜ(-x%aOZi3Xnݍ c4:+)dߨ֧. ^D.]⼯CRAm?Շr~lELt$Th0F'L NR߉&EW 0m?^'ӓX IVlɸacVOD.ɄP`f6}fojo Fy`% mMYqp ]|wVmWmVy9# !wո({ JXyH.&21𩈁J NAk{" }^#gLLE2#0KUNu]7'iL&# +1ӍIJ{'Fg5cnQ0Icb'ζ )]E|,!$M0u;I&"Yߐ!FYlE)^^(OEY*F2o&8㎉\Ea .3 aKߨ.cJWa~rs^ {JI.WvZgEӿB<"~8TQO}8֧MΐlCyiEc8QCهTSs.VE̅B&!;ɟ =\WY:^HNMAFB+fƻ=RSYe.q 7$Yw@#aΉT2ZJ|; A/orծ Cv$T@+#6ly~}.߸xe h^$TQ%?&'.n:h(BRc$BQj͎3-N[$aa1ni|SPaϷR$ۿ۴ܻEgDy$+p.=h3r«[R..wϐHϡu;i/ J՝t|*[ deC5u^bC/e1%˃k@cX :kPowy+ #e'pkSo2gA6̎͡`9U7 (S}!.od A y`12"U /1ffUcp:/dOǎ\Iă|*L?Ҽ9CrL$qIK2Q Wζ2SZ6sY#C :"|PrQ n,X-rdcMԥO,M-)qYw}8e@0z`/L5UrF;Z7 6|㉬ɾ_kNnY|gz}YQXq8ЩA -,kxPmՁLr<ˆs, G twjG'R)n¸nr3o⇢mI&In\JQ7yEiίT"cTdısqF1:-3][ؔd햰|vf |~U׌B*c^]QdMo ,T+[@H HnkA~sn$2suI_$%9T$ƗUX:p{ o-5 S(L /?@QDsQg-Hr6i/";>kaLMNtf?@0 nKunbL"fc?^Qڝ}E vA^߃Tܚ5x Zy~<,Xj['}4%v3%nEI~V{݋$ZF4^ka^%,9ځsEEh׶D*HTtTȫe`m,vc7z3mx :WR;HdH}F&VC!1Wa!#LewVWrpgڀwk${)$#6V=Vd) N ָ5}b=t!)o儰uSciz6b:-43]_i11q THЊKQ]{ th3T9g;܉lY-ݏU4oa}8O^V" n_鱦3(ΡW(OxmV&Xt7QS6! ISql~T09`FHb&S4hG3]S8ߍB%KQ:Z_idնߗem&"jw|-H5PܔG?բyyɁ>YXmVd!Uf!ѧc_,G 3%FLAA.Wj?Ys4t4E n=oGK~:>ԵrVfHS#\߭[XE+AʋmcwYkh|ЕvُLu )t)Vc1A9GRam&0rZ幣PF}, ;a5e+z$I-q8ShI_W)ZGZrÆEϦpmrxRYI^+K2-Jeɧm+Qw"Kّ|*uKVe_^95jܵj`D'svTZ8cI;_gʉlNZ )nzlVMe:tz?+qú0\8f&P_m'JU53pݣtʁ[ $.Ȩ<ǎ=='+%8rAZ|RSa2]=SkU2g ''X2x=ju kgg{ˊ͊e_ g,WP3.}l¤YčqE[oa1w_ݤo~tJ ?{Ĥ&fD(Qnk*3X>KRgB&@ )ƦFv=LGǤޓu0gIDۏ \^Fh6|nnxAv= Qy"'V6xј w3|sz'P-Y U.,n.nI&zBgR>uȠ'C?9 5z-LAx>+_j8'1$i\5[`_#~\6?e=0h5;OkޣcVUɜ "b^O3r0]!‘oŘz"@HO帶2h@( !?V0OHqbD2{f|'!3?af$ K^J@$YmX*hƽ9a?,O< r2.p]'AoaG-Ƶyfx/-%Y#E[ ۉ[:'7x Q5y0^U(aCq'e_'.`ɿͧHyi~.w cyc t4A/\+hmԆwN4x ߴ! =G1bBlJnjgc\pmbmr)M6ZD1iU8bt[oKƿrTg0-ȏpY'lWzoR^ju-VWM{swڈ=gbdqd GS_*#.F,hpgD_:*o, C3& VuALkFBUC *;iݬh:}ᣂp%y3tz&wf沓< %?S\vVvI8Gz٪' 0&C@vq)>O~Im3BnrĈQya TD8b[YsyL8"cvnqk\z;rec!t9J1?'J~,n^|i\H 8$l&*k708Rh@#Pvⓚ@BO}RTX l%WgE ]m:ke2m3,G[< [_;v2@1"V7X_}Ħaޣj &֐*')crPnY3mzY&%%`d=fFӲ'8IOI(m&ff-s7Wʋ3L9P{rszZ55`WA1J;-)6Jsh/@[hv_|9<2{P^K#\תu2mT7TTY׻fq9A?7Ze>KWce{}Bf0Gx9)fBYSháq 7}v\ | 0Nv90=. B_q~h'hOFMKW(:S r` ,,(:-+~_M x1 u|kE1bA X15 2fam N|M..m9= )\ZNO+cÙ3IFᰒ\Shr膲˿u BOFTjNn|s#fW4Cϙd"Mr"\R[&@T8[miObVڟ;VB ]w6OVA F1ZYBΜڢns/둖$~n#cNإE9s'Z0,_ٞ'd8(kTϕ9:2 2rkqgn#w&"\i9n@DzF<[S&ҽP+ Fɼ^~9> zG5e|օ$d^b&Wf9X;/ßH9q^冠a@~tz@]UP;_—r|T &o(m7)1J4/۶ ysR+_jԻٵ] 0!R?RJ ]k s?R%M$cF* KZp=RH`boD|M0fnֵ1)ݻM.)WӾ kñRxI~b ~X9it≱ɤ~\=ےN0Q @]S(="C k%, ᚓv/R?DCLХR2b"~RoZ2$ .Dw$m2x|O&?zK{T1ǟ;Rg[95FZ]+jf͸`Qx#o=G47%lT$-Ǽ73Ne,EE-:ͽ5ޭИЭB)ym@5\L[~ɾ!r&-8_JûYs.bV1> _C]Y?syEXDx#K[ 0a&S:wSGmǘ,:Aep`T" =oRG)EGg I̥h'Yjj]X*tPFUg1mXu KP:2M?}+Z4gD%ݿ!3#>,&730o~vtQur{&)O|ESHY OCR p9`DTxAq\ >_h񐕰X%T/ V%A+H5Cu1Y rPZM?w^;V2su~w?1]Jw=M -N8l6㳹_9PY-Du?Y>zrl;wUMu[6vu:!My⏇k7="pp \T1fxWhQPh<ID3H?@:7\:ϳѐ.pAARLKU`K{ 7rV]^5Zh.pHQǗW X F"MW$A"=ɼ|)DR-@7w8 RKMձ7wt;&>l/+ |37v4"A7zS21m.ؽXPBX{(+8g[6%$1LZH{ho L )IKPec[0b^9rCk^$x?wME˽œYW8r4!G2Z qLVݔwu:E@S G~ZiD-u3T+le#i^LLH ,t- 2 &us)xǯfo"8 *SvzvCye([iDL\T?dY4%K@np(չX/S2۬*o:P*Go!ﳬ ƷtfVs|큉պf%aCK@ZC,65KEVi":2dQKl#Xۃ0-JE (p+kE!RPi,q:yFlӓ,ԭPS&j=3ٽp AYv٢N(<9D @3:b_ SMK̝PNc}/4@Z '2eh'}G7;FB` J}V?Aߣd-wY̊ק;5iaYAՆojg*rFIوBX<"Bd^Kyגʣ:q7Npc+*Myz)RkBŅvpf[ biYbm(&"-Cp,cبR=+ۡl(I;L۝Cxk6b|TOQnFF+]Ri/UFTrsw&&`A)c!kY c/([YCsŲ`m'WvaݫCJOGڬMVPM*t" iMWN7la| '48k`$($#w;Ff3yP<ᖓ<HsAZ'ĒAi]ܱlN\V(iu{ Үbg9[/խDs`X0h;HߜN݅z9w7 i7w~&87Ƒ¨vwk)[r%TkuӁ[s[jY, :|*j@nCk2L;y5r h+GM-iB.n[h&E&_ hskuhL-ђa|R8_wɊKۆ>چ\x\NၺXX5!V6z3ef-X)0|>q释1jFb56t Sedi44cU7'Ц\a'+M`Hp"릵%-M}+ HWIIbYh\џ4 gu= ~ծiKtgDNNc񁉢ey8X'cp}4Ha2UDl܉Җ` )+v!A ^zoOɉh>1"j$E,DMѐHENʐЭ~2]V^Y}Ǧ΍;Ox6OQ)!$"pxn;*T~_SM%Zdkk曑2\V۶ByKiO+mdx3:1$$&RB(˨7}n/OaP:+fFEegB&P; ~\yĹ|6L[J螓!݊W~>tsLCNYe] 2_\ms#XX/=.q5l,sa 00=Mv/U KN]CwFcQDCl\7vHSVQ`ֿ ([ʇEB&0wf!(0W$m+ J/Ǟp1HA^2bƓeժZ^Ҡp( ƪ1 +j/RpTI1b.[߂P6b6FN`KL g/)lfYbt.w.o񇻏,]G#v TЄ# fKMٳY&N2gV"_\jo$4?ā5GEdOFXd`@vN^>੃pZCIXSi*_ /(IWʭӜX5oDϰU*0xXG4S_!8:ژWJ>Kgt_ quϢ;1\f$XlWA0Dxk6!6+ކE.MDlAl&U` ,-/.TXLzˋR2$ꚉLesXy}'ۈm ?Ǭ5MB4d`.Iáԛ$(7T_9?ps;q@fKt}۷1~0mLt5v+ q}tsMYιRwl*+p~; NYb;1ĨAȔYv K+g؀XdALOЁx1J;FTA}+"Pt`Dž89'8khdGys q$LWN7)Q@FGRқ]*qK{%>AчU& ~`vݜ'%J¿zf&VU ) 1:v( loQjyo/]\S0p8HdDyK[LD>A<1, .jD?:?XEeɼH\t ῨsA|͙,sgűњ( ޹6%exW?x)LM?|~~gP(BbB%v6i:ou=?Q:nxHhdO9: aE9@括t!wP*k]ʶTɨ_dp>YY% ;x]:>;{hG+I &0PW.j0bOW}gfdKR ?.>֧\ tz@*atg? wn}7x C1"G߇a h;:t)ćLp©^ !dA4^f.*Ye;/6R*'1~E }qܖN<7~:㺟\MoBI9qDz>k3HL9cpƑ&:>.MSNbm{] l `9`JJGi$KSI-Bg˖6=0SX[hbjkZT 5l$r(-MnJC:t/[>"dҴU KUQL_ETR;P}ږdtI?i0ԉVn8'D@~pvXI`6nlDU>-q?(1m4cޣ${0ˢNط[]rm!xB s9FsKO~Y0]ّT \z'51h in8mUJ@aFe)ӧ +EY'.4&~bOe!Hr"btdZ9a?^Bx?[9-Z.)U3˴fyFp p;;8}Po9ָ)9w.N-R^wRzQk8?kƋ+/h! Ľ6 Y `'|3&|EYU1h,YPOEeB᥈pT mkx L,VެW~1(%XϗẐűk9p]?ۖXFVުNÈR5T4 v:Ua*[Vk? Ƞ' U%L \؎m㞧*1 _ueߣt839p62hpB@6"\ևvf[.pvbٟHa/\dd9arYvQ$3:I_r? :^#@_(KtumZ#u=S{bR' "[D_a4٠ßu<6S hlۊ.c=kjך;Nv }a-KYvb3x@8uU/+SQA;H'#T2Q)x $n $ D`Qc7z$wĔ l$0!I&{{$IBYb,&+w-pSse(;q ,="q!?H0EpE ?v<~!}|$B.FT ԑ0tjxL.;I<_MC@'t'!#9-;霸AT2b eSm@s6HSUX_W[k36رJThp?媒m cZr"+t0(ē5tzYl95^J@?apa̬Fy<1/G;6`k: F Xi$FJ?s #K?-HT}oԦc#El/bDy}X ?oJbQTx8W6T%שt%pKfRJ%tڗgܑ#p`A?9hBW~=);k~~!;%x }=a}N kkv^.P)XB&"WByK;zh 7w_jb'@{8PvKW!vk}ng1 .IT4H"lf邺l:+%TR==Cg~~wUZU^lK_OOdrK$,]'\sS[-[4Wh9Zn{il7!)|HJh$='ՐT]'>3UV )[!}tRE G.aq qTMJ|Q"a&F\Qs}\Q"wFo |k`PXg ^* rL2Ҡ7Hv)nܴ9F 3A B+1sڰ5hVJޡT$,UVc%W+:(?rO]t\&_L4:uO@&PN] CNQ #-Skoڈ[LPBBWۻޒ8BjcɟTwL5Qѫ)_;I}\T\1,AQYx\K5pܒ ZL~2tʹ9DgvwʘQYSTsAk_sDf;R?uͻ!F Rsfʪð(yR=KyzxMutI c+wS yjP?*2췩a\j CxOo+#}o@ֈ#QPhiT_ SRz!M'[T+(u6pD+CW2\1hJL-Ԍ4Çೄ:'׽'Ph7AXZSvkw貾 + ܟf?Q"1E2(柝Hdxs-(yI+:u7ǽQ~U'2|)AG8\?ee%go;$y}+S_]# 8Ϭ1l37!r:ựQ82, ۰7Rh2qcEwziNqۿ<}]^eieYgMg ءVOY5:kE<2}T׆DExU΅>3/?¿=H!C9a5%U5;nyQW|mzhY[ ;.qK7U\OMCV VVFeVw!eKX5)ˈfrwqKB:Mۍ7{=asjFIjx4ֶ *; hC``jZ=7εKpT UUBM#`|Uaeyvo鬧9Q3, "Mwdrk:'''{3 VlA% ΛR]f0;8PZ4?*@=k~飝$ -~7us$BAXa\k{CB23}`,B_2Ыծ?5?"`>I/u2UG,X>2J+:I3ɰm jʓGq:G P;vvX3%%@ۮ?ıےx=˞8fK* (Zt+J iBx`/G*Mn7Tv*U@D6xvm3 WӅsUgbP7eO#WDJ}1sBp"=f< ˜$Xj,@nS-u=}"$ې#+nJV;ne+#g:2?WГJ4P`#ïTAfG@u`&!8cz-$@E:k]eܸw53?P]}BCLԸq'; E͚k/-`y<-{"90M_։7[ Cwt wNƖ_H֠1S?^}̱BOY6]tlY_.q$gz7< AAUS{E=_sYaɩ'bZퟔ ' )0zll$Xmjl[mlcFls3zF4D$qLLlHwB߂bF{-{-@` nI嗧57ZF;o"p:^Ld"?-h: ! 5S™|Q *BˊtF+usB-UKAZBe-,+K{`1׮kA#ڳ݊躢z⧳6CÍLi8''vQ@$=>~DQ^0CmP}K(Ww.C̏5ؚ-ĵ+e<9*$eM˸vBnQ;1aNY.I-VCQ7TF|N̏Ϋ/ Z=um A?,i: :>Js_{3gc?Ov.lC{le`EN\dI-=/7%"gN!tWG>1CsTqMߎIbHjL l_l."VI 3]aЙ4к 0X6`]dʶ"H;TE *ޯ/|IYhػ&Kiٳi8zڇ(`&_!E;sd@)7jMpG9Cxՠ&Oa{K@=!o%l3t&4|s[B Cwޚy<PJ/{v;Y s_:+hU^aC%FR+Vu0G"xD*tz3aX36dɆ6tr4%y[kvCB.8pȺMr@Ybc8]Q: mٯ )8t `{r7itXoVeL@Q`8Ф/[,^?d=mul<J)hE3 ?zlV Ă C4kxdx˒KTsw[?TEM?X +;Ws5Ԁ EЭO֨**IQ9J1bLZM+Ʀv>vb#Uy/Pcnxϓʘ*;d2go&`Dc3F"qcq@hi fۖx"~U\l\!qa kc?}A[Oχu{նUl˗uB n()Ču@ }SU|=`hkeNJ= 9I멷RKOO|Sӟ3v] I4qL>er*&__<_I#L .k=< zNVIY"lEԘAz2LO&_LrAɌ6E 1QeYTˁ4MUA9l0o[ %t8~Qo2׫V!d͘m SJK*=dȝzǸ;Kḻa2*x>e!2QM"&?qa Pq>734 \MvGرxB`|«C6tիQ8|{׌S͋:TkZ D^ 2{"fGbD*(G8wqtMџ/@/sKQ 4_aZ?O0ol{0=׾ HAJZXK4Yo{̿<6'؉ *rX=υO?Nt@~8!끫\$O<{To(9JyZ]uTT1lni?gNRyO# "*}N tOt[?]cZ0!ͫrbrհsaq-051<s(ˡ&A( trd3O2m;[Ikā婨r쇵]芰Z_t "d~?ZïQ`I3~ݞ0aZl@D!K^VWJ@tu38^(*9aOPHT-3F+Y3FS 䨪:#ӱ\xx9O5|iH7ŝC"%>?L gz (>wuUl1Gz՘.Չ+/CՔ ;LxZ &ѿyt2بS&c5ӽҔ[-FGj@KvaH%WkhIJOAdXܜ#+syxȴeȜ2 lBgzɰncvw#J -My=Z%DmPiO}6ה޻PERF~q(Dz\8?{]#io&Ʃd_i$PƱAH%\Z:׍Z;7rբ}0]& Sn"O1^/FWCeKX%qLA6w; z"]$%8G&Lcޅ&r<"Lc{+JFR<~1-8Efm ),G9h'1 I7 +%:yDU.d ϗrB֝ai A _"xBW k>RE`]WBH#h]@}N=U%꧐&7lcv'nAkTC\t0jTZ V\YHb*N7-+nhȰ8R'&d́_kᆶW&f)JT9SP[baX E` &K2ɇrS78-y/Tg+s@>ەdJJ|[ Кw#ҲHN^!LJ?vM`ǦۉmHHQFG]F2ַ+|nuaN;D-І,FJVpxېg*aU_#'BWMyV ᴛĖE8d^(rzADӘ w{]:G_B]|4N;I0^cr*|VhY4t'zR[TS/&˺r 2) +w$3nj(\qQ$7 4-Ifh/cgMNNKgNBP(?=c HCuaJpYjxF;N ȗ;Lx]-UY݄16Z& v"e6ك7r!8Ш*?z`jmH~*\ hSg~5hC`lXXZǻ;Kje % C, tGB_f$MwP DԖ/2EX́ULK'=gw"ȱ5/CN!AA泤l6wqBe.nb}zJzPdjhNe+!\؇M+)M)6Lw0SPY '>RTځ8 [ќ{*H;Uؒ p $ ^U4|93F~XKj7j*;ʒeM_u-6+bYs6㎎AJry{ o8vInq;b/78klpjG&?KU@&%zV@*XrlcnʰMN3ˠzJLB98nkUdSa8З~ՈsWW)6$Tj:(ϘCk{Jۖ;FJjA)1t=ZFKd[[=G~M;?zo=B}V*}qS4V>Ryn2)/ֳQ9'/_3Ɛ2ݑQ{˷U'>x\m ~CD ڣILc"x(KB 1j eLJ٢sqvvQȥ-S9n*c9Iۢ41GIy]uBܨ8bSC3n8] {Ud =R)7mg&&v"Tt@sS h$x 'hG-L\ݝL\ar<\ endstream endobj 72 0 obj 39812 endobj 73 0 obj <> endobj 74 0 obj <> stream x]n8ཟBvQXO HYi@#WGt>R4uwϷ?oytnW/^}cZNy:Շo|v/yUjNi%]O| _sՖ㆔_cs^mzWmasM]ǧôڶcsS1疹EYY٘ w#rbNsmܳGn@?@?@?@?~_~_~_~_~_~_~_~_W~_W~_W~_W~_W~_W~_W~_W~_ᷚs~7~7~7~R~7~7~7~9w~w~w~w~w~w~w~tF8#Hg3ٶ l+ڲr Y,h6;сDt8. Pi|Fv +KdDTguNm-^F ̸>-AāNą,ua`ʼnALt&8eM<#art˄F{ǁN tޮLvqpvvΙK2=n=azf1OOg$@;<) bwW<}ynS~y.XG) 3,ud@ژ4͛rPvc1Kzp endstream endobj 75 0 obj <> endobj 76 0 obj <> endobj 77 0 obj <> /ProcSet[/PDF/Text/ImageC/ImageI/ImageB] >> endobj 1 0 obj <>/Contents 2 0 R>> endobj 7 0 obj <>/Contents 8 0 R>> endobj 10 0 obj <>/Contents 11 0 R>> endobj 15 0 obj <>/Contents 16 0 R>> endobj 18 0 obj <>/Contents 19 0 R>> endobj 27 0 obj <>/Contents 28 0 R>> endobj 32 0 obj <>/Contents 33 0 R>> endobj 78 0 obj <> endobj 79 0 obj < /Dest[1 0 R/XYZ 0 595 0]/Parent 78 0 R/Next 80 0 R>> endobj 80 0 obj < /Dest[7 0 R/XYZ 0 595 0]/Parent 78 0 R/Prev 79 0 R/Next 81 0 R>> endobj 81 0 obj < /Dest[10 0 R/XYZ 0 595 0]/Parent 78 0 R/Prev 80 0 R/Next 82 0 R>> endobj 82 0 obj < /Dest[15 0 R/XYZ 0 595 0]/Parent 78 0 R/Prev 81 0 R/Next 83 0 R>> endobj 83 0 obj < /Dest[18 0 R/XYZ 0 595 0]/Parent 78 0 R/Prev 82 0 R/Next 84 0 R>> endobj 84 0 obj < /Dest[27 0 R/XYZ 0 595 0]/Parent 78 0 R/Prev 83 0 R/Next 85 0 R>> endobj 85 0 obj < /Dest[32 0 R/XYZ 0 595 0]/Parent 78 0 R/Prev 84 0 R>> endobj 35 0 obj <> endobj 86 0 obj <> /Outlines 78 0 R >> endobj 87 0 obj < /Author /Creator /Producer /CreationDate(D:20091213074911+01'00')>> endobj xref 0 88 0000000000 65535 f 0000413103 00000 n 0000000019 00000 n 0000000573 00000 n 0000235339 00000 n 0000010894 00000 n 0000000593 00000 n 0000413247 00000 n 0000245053 00000 n 0000246489 00000 n 0000413391 00000 n 0000246510 00000 n 0000247627 00000 n 0000247649 00000 n 0000249670 00000 n 0000413537 00000 n 0000249692 00000 n 0000251696 00000 n 0000413683 00000 n 0000251718 00000 n 0000252839 00000 n 0000262656 00000 n 0000260079 00000 n 0000252861 00000 n 0000260057 00000 n 0000262634 00000 n 0000265480 00000 n 0000413829 00000 n 0000265502 00000 n 0000267604 00000 n 0000267626 00000 n 0000271484 00000 n 0000413975 00000 n 0000271506 00000 n 0000274472 00000 n 0000415077 00000 n 0000274494 00000 n 0000285839 00000 n 0000285862 00000 n 0000286072 00000 n 0000286407 00000 n 0000286614 00000 n 0000299164 00000 n 0000299187 00000 n 0000299387 00000 n 0000299794 00000 n 0000300056 00000 n 0000311351 00000 n 0000311374 00000 n 0000311577 00000 n 0000311974 00000 n 0000312232 00000 n 0000331569 00000 n 0000331592 00000 n 0000331782 00000 n 0000332305 00000 n 0000332669 00000 n 0000342298 00000 n 0000342320 00000 n 0000342513 00000 n 0000342888 00000 n 0000343119 00000 n 0000352024 00000 n 0000352046 00000 n 0000352246 00000 n 0000352549 00000 n 0000352725 00000 n 0000369804 00000 n 0000369827 00000 n 0000370022 00000 n 0000370466 00000 n 0000370766 00000 n 0000410692 00000 n 0000410715 00000 n 0000410908 00000 n 0000411853 00000 n 0000412819 00000 n 0000412923 00000 n 0000414121 00000 n 0000414177 00000 n 0000414290 00000 n 0000414419 00000 n 0000414553 00000 n 0000414687 00000 n 0000414821 00000 n 0000414955 00000 n 0000415218 00000 n 0000415365 00000 n trailer < ] /DocChecksum /120302A0C6E31FB01CB3721BF37E32E4 >> startxref 415763 %%EOF faust-0.9.46/documentation/additional documentation0000644000175000017500000000076711702130733022415 0ustar orlareyorlareyYou can find additional online documentation with the following links : 1) From Albert Gräf, Gutenberg University, Mainz - http://q-lang.sourceforge.net/examples.html#Pd 2) From Julius O. Smith, CCRMA/Stanford University : - http://ccrma.stanford.edu/realsimple/faust - http://www-ccrma.stanford.edu/~jos/filters - http://ccrma.stanford.edu/realsimple/faust_strings 3) From Bjorn Erlach and Luc Dobereiner, SuperCollider Symposium 2007 : - http://www.koncon.nl/sono-bits/faust_sc_symp.tgz faust-0.9.46/documentation/faust_SMC2009.pdf0000644000175000017500000145165611702130733020372 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 3520 /Filter /FlateDecode >> stream xڝZ[{6}ϯR_#}Z׹ۤIcv>P",qC Iu(Rf_,`0\ -v o߮|"~aEJE8]R,~q.йzwW7Zfyr"yB~}{+ԟo֋efܮA|7"0 s(AL#'ks[O`& n꧋Y/yRftҏսkge7J43=ke]~9Fsԍqєx:|GkPD^ymdz?f\/h:\a4Ybk\nAzQ ]}{~m aIqȓ2ǜ&2S~z.&nL)mVw2s9*˦Hm7•m^U_8.Q&C*PTifrޗ #Ԃky0qt߬` uأH{oX%uo`6y[5;_p0pC r{s2Y>{w, e qrۆ B׻Su״Bnu^ە:K^6rtlln%}{uǒRhZMx6iu6{F67i|E&;R_=OmK<ɢv:\4:х\3۳KUVA0$YvyPo0Y;3—FoOe( #B i_ m+ZL_}%M!)h8' oC zKkzѠ8)بNUnڼ-qbMűUݪŲơD*M[*5n^ޚ7 3ӵ>ZД̓SDaM-)TZ6/J#܈tsR 0ebjKʫ$bkOh ܓtI}yPWtxRyΩri~Fw?d,}'HrXJcpz2=f۟V gdβSm^φ$f<0} MLsu!Ma߶o!6?J)+<6macv^^|Ab#Ԛ R/Aa7ie7 ұA}@/cBRAf[(fEȒAZ#a4Q(:a|-^wÆ.(nhMyv' KG)V!k?ċ `l4Q(@_:xq +Cs~ۑF7O<|.v #I\i4QztiʧU.൝AGQb.|b(NJΠcg/j^C %fϊfi< Hlz׌Q}CƩ!v*||?9?e`u'qT{%p1bgCۧt%-ܗ-tFF;>k@?E&*.*?:%<8D! 걚3SgvHTh਀?/lz䯺p'u gq%G&}}-.Si~ "Ġ*o.]>k/2[g$br>}v_R ]Ds}JRiKW;ytl9.: RXAB c <CLl0X^ReΗ`?I<[2 |ۖtX+F9vⰄfPYٙy W iJ` D?r#I8bx2L"sƤ@=Tͩ$j7JZȓ <\IEvBP 7^ݩpmq?_8N0Dp:In-Zs&6Uê(@0 (u#/L~ALy澳/^e7ٝyu`Hvbd>P˪hLB BY+{;:#MҤ+E s A`AZyu80ĕ|zpCi IԵ18ΘPa}\}ϜyD n,bbb4 }$eX| \Lr8CEṐ_5c 7 `!Ɨir=y'JәQ@0'\fc5!C=ˣQsx@$m@zy!;Z d7-g̠M2G> endobj 1 0 obj << /Font << /F41 4 0 R /F43 5 0 R /F47 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 10 0 obj << /Length 4329 /Filter /FlateDecode >> stream x<ێFv=\*ݵ"6@=CMIsN⭛cIybV=|u~7?hJXb]ڭfI"W'LJz]^WҹuEFʛؽʬN۪2fͮU"/6ͶmV74ؤe7jś7 w-KL6(8Mdɻ.pSb =ny_592յ6>{>W`fIJwz%2+D0A%JJՑ2#`D<0./߂J>m{báMCôk!=TOGo>u ݱ[><Z1g7#8 vVEb53T0L҉*PveaWPv7# Q80h.3@KL T~3?V4*jfA] 0Vx^ ls#ך4+H 8y9(_=n”EY矲~9feyNmA-WjuAEg|?'js> 3 .է3n@ZU"ZQ;(Љȉ\>Г'&<)mw-f:'ÆI ƥ?6}:Qo~X[SKak]Qa oW> i|Rda M)f]}!˜s@ף71.~%I?3A`( ^mQ'J:44]X=vzKb83rU߮Nf~Y/0 |92z̞SR[yQZ_Zr@ WfhK`\K4qNNノ_@nSk]H#M7, g'KCH龱ASt ]ض9[X=mgq ,Rh2\1{>f'edǖ--^sW!7qjil̗ êMKlaHczh[w~̷'6#y\`2p^*bLRv`!~4pxDyj12([fm( ` DwD31h:&dsƹX(Fx=o @F Wy~*](a٩ ($"w: ~aۄe4)mV#~kڌT ZM Qp:p@AtxbɌgǜq6Ak=(mqbK츭H\_7Y=gBn3b]= TCGHdS?m>k(}EIdsϫ#n+ yRvE4S"GpġMzsj:ko!SA Rr2NA(1IME "ĸ?lFQY(gDAgpGm#  #xZA$Y j ]d ָv釉C]9F@чrybf1_32spmgC}rC.RLRz8&7|104Y/R8&&/S (dbFlX~q1?s2QЬPKPVHwlYt*Ҹ86 .|'XKgb1>$4oI'1b;ۿ$aj8ӛ?<5 iF!XAY 8WCq٬{&DU}S!mːmc=&<KdN!7AYky^v4ӾŮf,a@IC OG7UYRٔj;vYI7oaEUgq:LpdK(P94&yYg`ܣ`N@cj4=/q"4Q0ン⺉ G۬HﻭW׉a۩/*Nga F5}@٘ >5?D'E]iIGo/O|BXzЊ{ 7pS8)ΦsQJȉ9%nj}d,ã.cf9LMk}V_Z p̸rtO(@X0R 'L\?zب ~8&G۬CpvUAB0t㦫RG_vBo#5a27<-qZ)]#vb vkMnĝ*jaib\V#I91m:}K^d];Anc^ >q3p}}qE["mQ;w̠ar!\st/ǃhC@z._v37[Kk-MP; SB̆* uR`XϊטF-:“._G-\011[t''zQdd>AgӲ74EDaER釕] a2&ly8()|®Cm @Wo"‰&vwqu$Af3>H% keKv7 SH X%YP^|7qʷi3wqJ7ѸfVІ,HЖV\')&Npٽ. SЌzw-Z DSٗq>|G)nԁ6K[yJ {r2\i-#W)L+Qi{,PitJ#} ai$pQFXw@BShP7Y5M@ ˥8 V˥dD3zplbOvUQ⻷DHSYX%QI Jc;YZ K)TpDVGVte'PܐG刞8i|;s> 6 Eڼ(iYӤ f#ѯ `#7ftxG9k&}yl,]u^c;?L7J򋐏3%B%@(&Zu*%9F.UrlrZ$zP7A$ɮ7A w $NZ(#ۖ{ de*G N R$^(a^y 3׆Af^.Z3nZڲ?:9/MVeK7_^~QG_¬(RbN! j8uD׿Y_YFľ& ebQxf:H?wLaWM{_d_]2p v[0n.ueNe2]F3]v_Qy6aRU™ѣ>P4w$BB-1=6yƘjhK.5K`OO >KJ endstream endobj 9 0 obj << /Type /Page /Contents 10 0 R /Resources 8 0 R /MediaBox [0 0 612 792] /Parent 7 0 R >> endobj 8 0 obj << /Font << /F43 5 0 R /F41 4 0 R /F8 11 0 R /F11 12 0 R /F14 13 0 R /F47 6 0 R /F37 14 0 R /F38 15 0 R /F54 16 0 R /F57 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 22 0 obj << /Length 3303 /Filter /FlateDecode >> stream xZKWȵ?iڇGuJ*18 #E>R!88OOy!A(N>IZ -#;[[!-c9{hY+R"j)".DEPݤ:Mn1Jk>;6."SpW=6>0.*76Ō>e \*OtJ; _Jfyk`.U]eǽhj/[~Pnkb}k6XY+/ x0yrJ#WFh=\Uct_ -!Yv=hO81T*;;8"br; ()E :/o>ʢSj` 8 p j͢ ]y6*\7=Ⱦ{jU1v[ā雦qCWZ.$Y;Bd m/\B`pMx$ L#;'R3fӠ-bM/HG#}ʵ |0 bfpT= ( 3tWUXv/-hFT!gfZ5Ev q8Tf4aJ [8ŭ/B 4<ǮsoZ4&'?(O\3N6<߱yu),ܠYL-//2Aoh,K垨Dܔ_ ƾ[xjtP1 .ug4N~]*$$4oFj! aCkNXDd(CXs@b6J2 Dؕ^-#&L}H¤ɜOAh̉ "M!ڛ80'n5z<}JydA9WxIf; 6O 6gRAO1x@7(ֿb}8pK&6ZfM0wt/*'l1SÎ"4qL]*'pp .BhQ5u8V,c6 :{rgƳwn$3]CPH9# Cl5~% ñ 1,1i=Wo(~[ WC3\T U \@ P'!?…*=u86н)ꎑ(I1@lɯl},3V Uk\ j$n}Q7p;7r}G["}) * ZĜ|jz ^=m?2ӧGT*),0MpZWkΎF{nYyS2@^y.Q[zj$L6$Fx ie*(tZ2\p"3n},.A*h&n>c ,'gbY5͡w: ujjiz5P@APd?@@P@J@1Ljj`j8`ƯwWeBetB*"^ bBZd nx2*_{7e^|N@eJ "S]eCwoMېCT* e 9\{i,D~a e4 sg0ro&f t rQ4+Z"(8ƹ*X.?e >#S[Ka8Q1Č:ޕ t A]CUs'ȉ,L~d\ r}6MVJvDi[{8Tkazֈ'&}z.=!& A0;i\o+* endstream endobj 21 0 obj << /Type /Page /Contents 22 0 R /Resources 20 0 R /MediaBox [0 0 612 792] /Parent 7 0 R >> endobj 18 0 obj << /Type /XObject /Subtype /Image /Width 82 /Height 137 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 24 0 R /Length 6419 /Filter /FlateDecode >> stream xXTIۥ{gwfgv}ޛ&fL 0c1+JE*b $9C 2*( ̀ ߷6 <|ݮ_S眺}E@Z̦)&2dQư2)29;5[t"9 }Mv!U:zMK]w`j-(I1mzZBJRv ȐjoՆ;k$EZCq!io.$șFC+줸@mЋ;>z}\?XX`&6u'O ]7zA\Gq.g<$fң7wIHP_aՐ=R|4.n>;rKtHuGob4JXi+~.p_6 .HEqE-EusSC!+6]1EWvR6a?٠Th'\˙F6aIeY!>E/ /eEr͝o)`ظ^&*؅t=V ZD]BBk Pw-[si\.x*]zqR?J..=ޢkeJ/5 I[Ě1*kܽKʦ'Eާ~"g2z*sepkwlp|h}t_섮Y㭐v*<6YJ-/0lz5C4~18 ϰ5fK-9(#TN, .*E[ ᒒ2 -g+M/_>>;wpo100Qoڴiƍ6lX~u֮]f͚yոضmI;\]];~JdkkK/`3tяLMMEMMM``!)..CD^jʕ+WX´aꝣ{Z2 Z2Kdܳg]e رZۡjE^|9.55N(g-[֦uC^t "eɒ%ZZZǏWWW={EPC' "c/榡 "#5d:M(pԻӃx=dIꇁޞ(2)M0Bʹϋ)qJ\zbH^{'Zܢh6,(<;# /XIcgRExVH-ڈ Iℼ+8Iݾ};??ڵk/_HIIIHHNM=jeG^B.8(u@smϓJ*۞6m$I$M'e%~YuuǏq7o޼zKӓ⢢"#Υ&F];f;3771^<|ũ۴m3gLRtH6I.OTgb'楝YWW܌cu}}D"yG^TTtƍ_~%+++---111&&ܹs8e'Ƅe-rx"C- =aX&ymcnؐ2&)3I$yI$$aJS+b[yǢE84^^^^XXK휪;222444 7\pz{E^A>̃ ZVHqtD H<:jQ:=qZ,2 ߿;LMM 3g"/ *Wm >="ϝ;Wqj|;H!m19#/;49Y=uóݺu ŋbk~~~^^^Nʹ|1bI@αQ:u+¶q E3Yd.6551!XFҗV$mnm qXucc+**`0r'%%GDD媪iD[}t㍫N ;y$˩yݬZ>ǂ\lkVTd%QpPn!Sp3~zvv6 xaX(fTEݩycS÷=XcʔiSL6 UXC4"#Ps'Y6 ɵed/#*s\ũ #7px+Wrrr,#F7MDSkݚ5SUUΆ*t+"O>]qj/tHmI~FH\?X{LgFt8V+WoQeA[(,2lG-dhh꽑0rYE*Erjd`k`!r0@;@GpHg . ָȬm鎦 SBc=` ?-~I,p q lqvh66r^^vd555ũ<Á;m#Gh~^zÚ5"ѰOcƚ #=s A B LlgdwHn/YUU[ }y{U|19sV,Ybu33kKK+ qgOQUUSQA 3F*v.jsiKW}+Dܒ7kYD?hi᤬>mT)ʤI,8<3o\`"(NݵO{._l8#͜1388?XP0 $i2쥷QI.]hBLhjjih1]Ss»[Rwcz̀+F''M8uC8qb?u sԝsgsH;GqPS!PO9>shii m?bĈ$dԩD"y7e~e_}Լ4Cԡm*666Ⱦd?zw{A!yW=K 嵹y[nvQRRBN[$=B˷O͏>}jnnY#>V2dH{_~Լ#Fb>ž3GRͥ:th{_|EOQ!KUohhw{XgVX8[PΒF\[>sPM Rڵkf8ӛqSϽ37"gSNj.ȑ#;Gͻ5cPo;swq?SũywòGH eL?p?.ӟb8c{P˙ X9.\liĻ7pv0?VZN%mt.؍{'䁳(vd >;ۼ3/'>*BMtݷiFQI~ߢСCfffz92lƔN^Ulmmߔҽtߔ}ߋ^R J_.ƸI endstream endobj 24 0 obj << /Type /XObject /Subtype /Image /Width 82 /Height 137 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 6608 /Filter /FlateDecode >> stream x:ixSE)bEPH K>PQDPjmMJR@PDUQE@6wD@AAqWPؕEQ{o@~393s3ܹ s6Ӑ4! iHCҐ4! iHCҐ4! iHCҐ4! iHCҐ4! iHCҐ jp*ѪDeUˡåy\vJ,4* ^(0\Kl6sr☘{Z2 h \ X73G}n;$TH81gӐ:uP\,QH"V "^jy;xs&;\sq*\z3ܖ\GSŰcbq8)P("[^Fڧ< lZGI~¥evy]`s)rm2Gq,Z0T"zuײv)│(Fˇ'zh1sE2BGuJ6Jظ"8DT44RJE)x}Ɖ u'\㨑M0*5sj'  Q%E-I˶.pT+=J0y$!N&&oL4;jiU`k$fӶJXnc%1$/ےrN`]S )5lB Ա}q˦&%\S$֬Gߧf[/RTRi8~45d;,ODcA! }AMi>'uz!TH͹= ťAOIUy>PYYh$ v7uWZKxǛU<ʽ٩S u'pH+ *RvjM9&5VbD+ZGH"1etTgݥT=baPkS+Rڜ//+?`|L(Co&Q=:)<{< J,Ĩ ١lܹЭHD p&-Ļgv-ʔsm8ƹSÝɩKN~AbÓc=*l]$=$HP(%wبK$_IAB;a\zS#I9l)E:(TB#MNv:Ow "[v:kJ[+EŸpa+\``[\' B-+g.OCq}hNݎZQbK8ƫ& |UwKũSz¨mS&]vF(g4fp,T)'r9NQe?e"q%7: c^uv&MRߙ4ڶ:ty۩"xu,~&:\h:Du/4QO\* Ӷ;꘨] vO &r, I_=%MV!ÓםS=rezCGpPy ZV'R$Qkj-\:Yc겻kޅ2xST2p:^.wݥEz𹔢{؈&RdT'C*y<(gbsR!I^YTZ^ureHU -yutWjt ~RZdIcw(e҆j.Z2&jJ~ͫģ:5yy(@:B D,U! ^:dyWOK%W76ShE8P AÉDsAUwx$ZSb8+uS]u6VM#;5i}qk!RnsWAi4yB5WprRÕ},DT͔t$ciA}6=1b<' _5JIΓVHj=ԥccRd.#)n+I+Y*qP×rxQ(Sgfrx6Z˩tIɄSO3W}2 zW"7pLzZvHWԦy>ZX."S'B4I"ׇJa%Zfؽ?7NiHSS#R rY[0wqoO,{e~4^QTeS5 @O%vu^mDK\ RfY5>YFXX9tvJŠ)BHE:\B5BGת@7 c;^8shZ~U.9(U±(mPɸƯz/GR!Oi5՚J>҈et5-x/}C5ÑkPB:&3p.gwGO SlS UYfEMO45̅7*,+:_YS+'_j]K{A~wF `mh9U(+?(?x?m_>]֪9UgƷjby@{ph~R^{#ͼy#`&(O*O)ӕLeiQ9]py[3n7\:'pJ,ؤlV(+[mveS٥||V>V>Q>UZ)-L03ֻ[X7j qgJ0@$@¥` 2~>}8HvyAEA`q`<&mvJ{0< KD\y<Լ_C>`x<W< ||z[A_PYw[?iܺ:w Zfvx`6nM'L U) .!`X V-/6[!PJAO0Y[?.iS ~C0\sEN` &i h:\3aCx- ; uwZvY &-fV|y_ &X k6  0 {`3:Nv2򛚛OEqm m Dx3=9+.od0hoa4lqfp '7p;9P 0Cenl /Mhx7B/ZfZ[IdN\CM)BE`5Xk?lQAm ] = }Wk`'xXx׼\̀rߔf9vDa.8 rX#0 +pqUp#( '(, p#~7-p-̶,9\z˚Vf,p2S^PN)W< _Ƃ?_k *Z '@#A:: ]ԍ ùp|· B%p)| . aV&` X &}Љ\ȍlaUhmBO>NDE}`#:#(:vKQDiQjL+p%h ڨ~90ASѣhz BdAV F3[k<ݍAcb P"8)`6= 04W1M5=j:|=qSyL37߈ߊ"߆pO|3~iy%YչCp`ŲYq| .a|.q 0\yx *<D< ŷ;p/Q\< ?O'd~߉1x,q?H< WGT(^Ex>^WEssxq ƍMƙ8 k܀_܉ehn0tnߥj7ݝ-alqqqy#ބgnn4`\l!aQ1q ߌsSx:/_o$>OY<OKKx?YAIr $s@oy|_ūpsҚ!x nH."H[Ҏ'٤ 16,Ҋ\I.%MeQ8\N -HGt$%>ҁt&]HWҍt'7ҒPHYη?(D^ӍHOJ*֟[ ?f}\?'ݏw^+@rp.XɅNLR5Yf%x2\j\A f_7loo̹ _xd/^h^dFzI1In&,"/^7C:kudYF%d)yF^'o7jYNVr+Kgl,y]@t'F~A_ѯ.!. t#Dߦk['3]GW)=D#zQzC[x ~z{p&{EV o;x'm|٥]3yA_/Wx 5eo>#wr|GQ| ?=t/^~Ujv MO_o ]ǮgYOv3z>֕ucwh=KN'mƎFv+fd~6 b%̆vv+ˊX?ehv7a6X&l&l {MeI^vĪVDH $ %;ȝOg#d)!+X ֒YkŮdg- ӗ=!-,!:CPGt=oDD!6-` ""[̖ت9"{LB֜ezR=I"̓Ca2D>ʶl{e؇#}>a 3^6_ԠQ,z M(Sdiv>`;.; o/xo/楂;25-cr~o[r#ED_!vaG1vjM>z?*paOy/cqV`ɬ{|"`3Ӭc"Ky0${Mgx>Wr^#?ʧGt>y1?X#Y6y[/csxs-g+J^a2r\-/q 2bFc٘9yC|,|{7[1k endstream endobj 19 0 obj << /Type /XObject /Subtype /Image /Width 1911 /Height 1512 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 25 0 R /Length 82200 /Filter /FlateDecode >> stream x;zTX1jha=$أ#"ƒXcK4XW, *(F`T~*QDP k\|۽}cvSonwW_Z`',HFd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1DfHLd 1D&w}'x1c̚5+B.]:t^xaΜ9\2Xާ~z„ UUUq,$`;?v!͛/>#1b^QQQTTi .|g_bE?xg}vĉ 4s"eʔ)]駟 8p-,O;aê YhѪUf|;}k.e!wn喲 nc=>,ߖ>(lӦM; w]Y`~N4)t_m;Ȱ啕guVl&nٿw=[ou6 ҳgϕ+W֝|}}~l2Ǵ]QQѳguYg}=oN:oƟysb-1?<;nm^ؼGx詧ܫWO?裏;ax`ʼ555{i?{izݺu{@DoK42ZoƎ3a„6(pW,$۶m[~zk8AE±bŊ?>= k{.dGuT8`v[UU>n6Ǐf3Z*e ]t}v6{wR6oԨQ믿~W^y%^z͟??liiW^|~_ߞܭ[iӦ6gΜ3o>hdt!*++k}ߝkpYge>8 gUUUi&`˰3%2[O 7{/8||ĉ+{5nܸ 袋ׯ_ED|gS[hQˏF{'?7x#|<3=\v 'Խ /0/`͛wE555ӦMKS)'|?+J9s$XWQ\\`EfJS*))e˖%XQku^߽3Xpap߃]Qpw]1OSK.+9sfyݑ`])>+V$XQ'nd)}u^^^wE/NS U]]u̒}'cw2dX}d,?M+8IX<8ndOƂN<K BdcODu 2o<H{p42_s5~ꩧ&M]yu>>xw=kC;)b-Ҏ,,,q (؝6mڤCr?e/բEam7ɎQb護J>8N. V6oX+zǓ9w$XQ۶m3f'뮻.Nei|Z7QVh6{N:d;5|X+?~ӟ4N>v*kE챜p qw{ VԺuvl}qOٺgl T9<%qa%۩wy'֊ƎlEG}tܝ`E-[3gN+v**TUUթS+رc&v饗&۩/Xxk9{h)S4ih'cqH^r)v*˟RA'%y_qNƞy'c}26p9KZ={cW_M^zX b%9L:5xU\pO4~3#G |7pX6z[ne*[lEݿLq:t0WϞ=rOvv ޝ^z➮fΜ`EÇ{SuuuH| V9}z߆6߬fu2k5Ϛ*2gqswذj6`РAiJF;ُ9pX6~^jv6mlj'Xw:[??۞O?g} ވ@s#2ȑ^<_~e]YFN;-6nܸΪRz믿>hѢx ɪ_~[ouJ(ԩS_r#N8u]7e#<d&2ȑ<8z`dzW_}u_d_*7<묳2/a֬YoqЫWp8%K&MKew#GޕE n}͊ȜV#GO?=wܱvoQLW^ y晙UYYf^gu›Z*?BW{co1 ,-- [%Gq+W8q!C2|g<꫾F{ 9F;vFﳒ۷?.Cb <2}jw?zҤIށyv}d+++0w>k` jc=2>wp?1cƄ?~{8rȑh[oնmۅ 6}j8YFgé#FD0`@ԯ2lذwoiǯf_|w:oǣ Irꫯ}p]t}0ؒ M)S|;РÇjܺu/eLYYYUGuTʀ#'|^\XXx%TUU3gΞ{.pNlOkx݅L6k׮͞=;|jȑmڴ[¨jժ=#vGD}§n˗Ӓ=z{?>K{&Lжm1o}-Df9EGZ}y-Z4cƌ!C.S뭷ނ R}d?Qې lƊ+ƍw 7qvuy݅-Zv 0aŸy晔٣To|ʔ)vmoql̙gϞ 6ছnz.]lle /fyذaƗ~'N<;tx|/ YdNȑEǎ 馛r 替-d[np!ioz}dk׮i%/^.)5*2R"sF̷rK|?PqbmlcYti慌724g}6wuWn꛽E{3O?ӧO{q9X"/;!/oᆃ]@Df9EG%Kp [׮]]w?N?0,Xp&L媫Fq'ovڵku]7o޼,R]].dر;xqyeee ^ZZ裏wmYoڷoC N6ma#8\:tb-~| /pI'~G ؅`z㏯\ҷ"so%29JdS@Df9 dOdS@Df9 dOdS,Yd 7\GCd!2̍Od!2̍o|gq@ w"3@b" ,2$&2}n… ᾋ$&2 @b"3$&2 @b"3$&2ȜVYY9眳h" 9#F8iM:`@"sZ"3@6DDfli_[rnsNeee3w9-)[lY;<o݈# ᾋiM @S3|S6}2FdSM @S#2)DԈ"s Ȟ,2"s 9{K,yWy䑇~xԨQ˖-5{ee;3t{ U\\-X|SOw}Æ {W^k o֓O>l?>nܸr_tR"s 9stZQQQkݺuAD9I&5?NZgu S۶m=7-Kyѱc#8b„ n̙3?Ν;]1S{,2:eʔM6hѢC=Tߢ-[dt'lxٲe;/꣎:!g}vMMM}[x뭷fػ@V׿zUPKdSuE#UW]UXXX-[vm򓟴h"aӦMKO>9%cc=ڷo}j*--M=sd` s駟~w=k&]za뮻>gϞ:u>u9xa,2'/ޡE#s_{ /6^x۵k8s.o.Ϗf[o5z N:)e "~>ճgO?4lEEŝw;.Z(e>l~/ 0`@۶m1C@d:thYYJ뮻{gŠۥK됃Y:t^]ߵov0o_=l|w>eʕi~5ׄ80Tqqq׮]ëǎv l/fNdiPJd;yæO}spr7<OeG}t[ne}K^hQ֭7l={>#ѧF]{u͋{<9YdAȼzUVV73 GN81Ԗ[nYx6mfϞau;/Y$|*Cd۷oԨQ[xUUUwqF6"z}hDfE#N;ad"W^y%||Μ9zhk+kd̷~{T˖-/?0\re0K;sn߾}4C"ȜWߍF棎:*ȡCcƌ)ׯ_x;LS .ly[)Ne6iUWW'XQp˗'XWOh_RK,ICsi_p9眓MdرcڝmӦ~wwo駟.HjܸqOZn` 6;E^~;֊xd޾}ݩ(yZѐ!C.,{*cҥKׯ_d;Z۵k`E?я$=d;Ug῕%b=LVZZQ},guVܝdM(u3tMv[oc۷o`EmYܣ?!N92֊&O(wMpkE/r_R[o`E )_d/k6֊JKK;u`EwOS=XܓĠÍs2ʓ5x2oFd좋.^|ɴiDf9G-X x \E42_q "sFg̘?́3gr!-ZRc5\HVoB[o]פIhq/H ? Gݩq%XѓO>ڭ%KqW̒^ KS/B?ԀY''x"NqWG{]EEE0Wu%;$XСC^xrx <w^~;s!<8_|Eu=3 v*8EEE VMUUU JqwwMG}4()) ~%Xה)STMaÆ .LKjΜ9qwj v꥗^/Ng ȏ0? /zWd'cq/02$%d UV L\{#s\ĉ̵͛w뭷m۶M[7hhN)ç~Gkw o!'"O<yg_}x9TZZ:jԨO?} 7L̻keyW"sȉd/s뭷z9TUU5v;.ڙgy#<ҋ !2燜%%%e\} 3~ 9X?t̷X?޸,ܼ}{ nޛo/+{ b '^Al!'"s`}NڲeڑwL/2b_pOKxkCfXªU_ڑ:uZr!8wA"s~ȕOOG?o!G}t}+gy- /E...oW_}uW^y%|ŋ^VVv)c6`yEd̗\rI1M>}u׭FEov~%>^]BpKGd,!W"s?l׮]8{wuW\w}\F ynin;dȐɓ'W^wߝ>}.]p oFҹs=Cn^ /%9?Pd=s СÐ!CΞ!2}h%ONcƌf_|+$2O>~\[?Cm݂1i{ ܹwܑfLrdXV[m5x`&DfȒȜٳ _{\F˗/kzq8rԩFN0ᢋ.y7h6mt}}9s'MapGoXr/mݶC]tfm8∇~ .=cM7m۶o{p C  2@D洦NZPP0|\F͊ Y9$2%24s"3dIdNKdhDfȒȜ ̉UTT|xAAԩSᾋibd` EdS͜ @,"ȜBdhDfbE"3@3'2,2#8⢋.rȒ,2"s Ȟ,2"s Ȟ,2"s+WSLq("3@b" ,2$&2"sk,XP@E\_A9M/[Ȝ,XPPP0p@hL"s~oȜDf[!2VAdXzW^yqAdnnJKKXvac9qAdnn<̂; ѣwގ4Hd"ss#2&2@D 277"3m"3dId"ss#2&2@DV\yϞ=;W6XdnnDfXDfȒȜԩS +,277"3m"3dIdNKdc .\dIjjj/^fΜ|feee3f̘={ի^RRRTTq#ssN<9xTUU7dp誫Q"3dIdNKd˖-;kf 4h^{բEXuk['M?i]viժUADΝ<<>pu1yѢEvm kҲe}w n'|rgξ&\r%_~WYG੻ᄏgϞmڴ _o_ӧOOٝs^|oq~3f̈ 9;uT;}?ON#2@DDSwڵ}-s=3G櫯:e!-ZtMS$xn;{42?3уPw_:wx5ַo_/Kr YʹȼhѢ` kF&;w>ꨣ}W]uW&Bd ÇL:ȜV.FfRD?sN8wɰ]wݵvXVRJ̷rK%oᕽ)wK_Zf7>utAk6TJdN,>?<&Ed YdN!2灔^\׃>gϞ?2/XZZ}*w^QQQBopeˢOm:)O|F/fNwjoݺ~aw>7lSȼԽ֩;sҎP{xe+DfbE"sF7|,3z`ѧCͰm{֬Y'tR-Fɓ'{ G9sfx42g = _;fm W"2)DFP]]]_eeeˏF#<2vVUUM>}Ȑ!u.3|ggX`4߀)?޼=19뮻KO>dx42_tE~ 7An 2G>+$+W9%x'XWmUQSS`E +<[|}({ܟ0:qv^hmyo&: XDf9ȼo[(IJzYE42r)o_veznڴivK2DgXE4~A2o7ޘ62r-Cmpxpw>but_&O\߰w=nd^bEN ^ /kEEEE۷Oqw*x&XQV~cfZ0WuqqwjwLN:-^8֊Y 1cr 7LM6$nׯ_SO=kE:묓`E{gܗD߾}EǏ~e/JR^ VT]3x'?ZQZ ? ]f?tM7%{0e~ᇛm˝AN;q K"ȜBd^ۖ-[V{[cF?O /.-moH3DY_d^Z=X|%O0=zt8+ F;}#4Ady衇oذaq_&MJ/Z(֊***3fLܝ7n\u]%%%V|n)1bD=q3gNڎ`ӧݩ'ةlb voN5P*++ vo[ܝz뭷n[bE?fo 0N!޸Wh/\oL:TMS 3f$x?2$!C$(9G}8%YdN!2m9xV̗\rIcƌi׮]}vnvgqƨQs#W\>ke#Gӟ'NQzhdٗ5r,2׶&{?.,,~O=Gyߏު3X{9z/؎"X=ܓ"3@,"ȜBd^ۚNd|ÑO޻wpٳO^ꪫ2e]62GK_Q.2"2)D浭DW_}5[g{OOy֬Y}ͼww\{p #8"'"s>,xIKZt"s~^xa\uO>$;c۷pAҥKt62WUUOkn޼yd-[V[EbE~m$4<`pؕW^aB8}k$2G|yշ/<%8ç8 [ҧOp䥗^}JdEdidM'2vء"'xEѴ{Enݺ!?sug;u!2Է1/,,:CdEdidM'2w5ٻw FL2SN)cak$25;|sxߌ`׿7/2p'N6>z+> Yd5uiݻA0|| 7{-D"sK/Mrh|>3D'Ν;;v>,/KEfXDf9|9t&W_}uCիWjiKX9pm6햴jꮻ6lXSr__L; ,2e˖mvȑ9k;2/Y_0`@M֫W3lI'u]W̞={.Z(||ҤIFaEC GΘ1a ,[4ڴisGvp/;պu=㡇ZjU}3N2%\?;|g P;淿V /){L6)m >7YtĉJKKL2wޙ={vUUo5jsE 2 9?Bd"3 6|'4[-Zb CEuYgȐ!v@5f̘¹s:<ާv CE}l)ԩS hzѻwo$2\M ͜ Y Ɖ̉%9?k ͜ Y3z芊\Z` K"sZ3fP5*W6XdXDfhDfȒȜVV"xCȕ 89$2%2 2C3'2@DDfDfhDfȒȜ ͜ Y꥗^j.2sl{뭷|9XF=Κ5ȜVEf89gYp%9-9gYp%9-{suoIdcDDm; ɚ6mڮtR?7t@Df9ȼ-[,8·vC@E"&2ODf9ȼYdN!2m"3DdSk @>EeeeG}g}P%"3Ddid"3Ddid"3Ddid"3Ddid"3Dds]EE '0cƌ\`|"2̹nkx"3dΜ9sLqqq3w9?Bd"3 |+D 2 9?\d^bE~45|1d25髚?1s_W4O{GhȜr.2?{l_;h&ʮ>DVÇXSNu(yѣG޽hȜr12͊l2̹HdfNd,Ad8ds ͜ Y 4q"$2"9$2hDfIdE"34s"3dIdNkɒ%nɓseEfM5-[\QRRTZ"34s"3dIdN+x+V@'2LMjzo;ӿ>DfhDfȒȜ f&ȜDfhDfȒȜ f&ȜDfhDfȒȜ f&ȜDfhDfȒȜ f&ȜDfhDfȒȜVE%K>裾v@$2L"s.壏>z뭗/_ ]dN+"s_.//&ds ͜ ,ibdhDfId69"3$2%2Y"$2{gY,dMr ,i̍ACd6Dfo#21K"sZ"VZZڥK'x¡fBd6D\/3gt(ymݎ;8,"s ym[lYpo6 dsQUU;8@s~c8w\,"ss yM&,26d "s ymM&,26d "sh^s(9g_ѓLM|zi^M&,25ga{SqOgj}DfId&2429.Ydu"$2@~Ef,2:d "3LdKdsl2Df9WΕE\'2L"37Ydu/.,,|seED朘N볟 zM&ۛoٲe9s4} +,2%2~OD>}Wo-d ͝;yȜD'2̹Nd6Df _Ad{"ȜDfIdȜD'2̹Nd6Df _Ad{"ȜDfIdEUUUVQQQ&Kd9+**w>b_,"sM&9928Ś5kC.r': 9?\d&.Ydu"$2ÇXSNu(yѣG޽hȜD'2̹Nd6D\$2C3'2@D 2=Ydu"$2"9$29"sM&9̉%9￿$W6Xd{"ȜDfIdE"34s"3dIdN(xC1r\`9"sM&9̉%9D"x[+,2=Ydu"$2"9$2%2Ԉ"sM&9̉%9-Fdsl2̹HdfNd,i45"ȜDfIdE"34s"3dIdNKdE\'2L"s.{m.2s},2:ds ͜ @,#Fg ʹLE\'2L"s.p%9-Fdsl2&9GdcDDfYdu"$2{gYijDf9׉&msDf=fIdNKd^۪?9YE\'2L" @p%9-ym[|ypov"K"Ȝld.V5˾(xGM`/~_wY=ʷQӫ?fRvo5_̪YV򡭳W^Smb)YĵYmɕؒ_˴x5_ g}X9f`fyX~=8s-؝;Gt9s}ѫVr(y 8%YdN!2m˖- mPdIds]V}fVwX_,#sųxfKI-KOW%؅:݃S7 Rt 7v(;|U::{\z EdSk,2约V]*z6e#sIM(\svIP~q_UUJzuNS|:\c/>eUuտtA}R.p9mg<&Gv|Ed.o;$ؒ1;$ؒWWQo6汫RCo+tk~EO].++^v@MɊ s9YDw|}Pj{zNQ}_-o~p~Vf?gݝ6ruOK ?"s./t(9.YduM!2_TY2?̑F ̛92KM~L' |9'%pu7?=zk3w<7M;YD檏{K&' C3_.;~b\˵êo/"3 "L#E\G?QS,IU-.?w a2G+ Guz6?xA82ZS_OTO ?ԯG_7 g 佗7%&2KqGmj_kJVԎIky]|Q2Fe kU ͐,2DDf9}둹ƾԔ\}ϙ5|0Cq]}w[OWpҖ*x"5tI~(Q@c5_%Q/5c,(ޢ{4b! jb*b K-ߐýn]vf?yvgfL3vڤk{5|=앫sC/oۯsV?vsg.ɨ+.ڧ_—*>f\?,O "sި[]򺣃Jgl:Ly_iN"3ĕ,2GTTNoFTXdΕ\[[;nܸN:KT|_֫f0 I~v+u7N/ayXqi鎳VK__W3>?}_=s̩YX_xJ/ \fI>{DjzٻfYN_8\dyo6;73-LG#F())4iR]d3fGeE\̱umO^owkyu%5|@j/{c[k[>=_W 9f.[iYԦn:19=dV?L/^z垊|EK9 xkvuҵU ~͛wVUU%pExcOdzd}c9fԨQ y '627>' ܾtUZˏ5Х͜\F7O/u{-VꇯMT:Gd.;MQ.ɰkFKravt:P%TMxies|@FK<5ךּ%vuQkSˬ Ad=9yҤI=)'-g$62u-mءۗ1:pnfيhx˚o)zۜSSoTU^vF+u%5wnNaӃ+ˎ4 q_o&/Y[N]^"άr;"2ˬwFۜop!2 2ǃ{"s"󫯾:hР}: oɍI=7,7~jHꡗ,9V;C7l|Z\+gV `{=2W%%5sO3Y3 sUE56c5a"sXKߓ[:7Iw@< 2Ǟ9 ԯ_^;x>蠃ޖ3{#6aۗVNT~VNYk /_ݱݯɼd]eɒݡ%h%)[XJa'5s. ~7fsq"s>|x>qD{E"s,^.#¹u7K?ŻM?zҋ-]tmܨ\\ʼD!/ɠy637W=sI/k.{~VgnPyYgtun\~3,G:3>)=.^4/DxG sY:_9Ӛ@\$DfH8B)6Qu藧?pt3~nIcI;_l~[dG~Q9jEY$ܘv ~oeWfMB f9kܦ3m^r''l5Ug2m:27:7;Xښ'n+nǖ'<`I+UT|f̙,yyvKnvˬ;SB:mzmT jSvžEDfH8B)6Qݶ>s׷  yG]:o[X!jwW"sYukF)JJ{vZޥ0jݷ=Ԧ\ }y:KgR/?I EiMUŽr&D`5AYYSSo$kZZ,Gd.ݻcs7YϖNFZV_dId $9+b<) Wfa?UNs:WW"9tJԄZC/ixɋ_ͨ^Io- F;6⬝sޞ9E%Kr}5:'WkӟV,9e@<;3>Y09!DfrJ"sV ,Xi|A]\E=2w?~SZlW^Eg3}\^WEUn:1=dfrw7lE<>㚑.ډ/-99%Y;Iצ}'-Go%ξ:?~|`zδF ^xJ龫dm\Fg~숍ׇGn7S[O kH̐p"39y嗻t2gΜȜU"s>htR(q/;OjVZ$(ȼbvq[e;9bӶ8{?ꭼÿW~vP~[8:$X-%i9t`u*e?zvь '2`1$9(Ff-69`>>xθ[d=a9"3C)6;j'_=O,m&|(2Ǟl0{!YDμK:|=͘_'<o"1" rDf=$2g%2ɓlb?aϼN/s\9ʚ?^d7a9"3C󭴴tW;mbsM4ۆr'2#2GѸq:uL{Df9ϟl믿ަ)69#27Cd6FdiӦXg^p@H"܈Ȝo"sDf9DfcDf7YdnDd79W"u"1"3ě,27"2Ȝ+Yd:Md-!zx+2Gl &2̙̍3K.M' JFL#Md6FdxER? ̣F Vsȑ pEH DfKTdn#wdNd6FdxEf LdΕ,2Gl &2Ȝ+Yd:Mdc`ذa-Ҋ̹E Df9f͚s%2Q'2#2@k]v9sf]d3f <8* ,2JdNd6FdKR\q9D$2"sl ĕ"sqEf9Cd6FdJd8"Ȝ!2#2q%2ǃ\DfYdo {w}vȜJvyqyEf9Cd6Fd#FʧLbS@2mz-!r9!DfYdh'Lݻwׯ-Ad.N",2gƈQ$2C‰"sqEf9Cd6Fd"NdDx,2"1"s̐p"3$2gUUUuΝ;7* ,2'Ydn>2=J"1"s̐p"3$2g5iҤbĈQY`8"s\VVCӧK.+dIx;ƈQ$2C‰ȜUp(PQY`8"s\ז۵ksy7vHd $9+v!2̓'O.//6lXbrlE"3$ !Y̴ 9ɑyW]uUϞ=ޖ3DfcD(!DfIdJd] umy=ܹso o"1"s̐p"3$2g}t%x 0$Ӻz9Ml6Idm㽚"Ȝ52g=J_I"1&׹{ɯ,Y}JXMJVs=sl H?!"s#"s̹c$2cϜߖۭW)yj{ DdMdΕ,2GlLf%˳*%~#2@!"s#"s̹EӼӒc4P"܈Ȝo"sDf9Dfc4mYҼ"2@!"s#SL ^#F)DdΕ,2GlL戍JZ4cwNd8p`YY'"sDf9Dfc4nBa^cɂ=Ef;YdD\"sԉito!2| BEf LdΕ,2GlLߔJsP"L̹Egm $2v"3$,2S`"s"3PT*eS@2ƍE"sEfH,Bi"3 2g %2@H"sV"3BdDfbL!DfIdJd]̴ Pl"3$ !YE.2Ϛ5+X!CxL+qfߤ8tܹxbx=l7޸SN7pC?EfH8L:o߾ \w9EW_={l]QiiӦ;8lvtБ!e'w%3YdȜU#3EHd r.NdcH"sV"3Bd Df Df=$2g%2.DfJd@dcH"sV"3Bd Df Df=$2g%2[UUUO{5Ef*!G VsҤIqHۮ!"s#"s͟??_}WSd KKKoZ8$Ә1c^yDf9DfDfOdMdHYdnDd7"MdFDf9Df4EF>%cy"2@Ј,275f̘T*e; &2@#"Li"34"2 &2@#"Li"34"21p- &2@#"u .ڵȑ#"3D ԅ)S$pEfz+ = NjjjƎu"3AdvB`ف !2} Dfz+ ="aڴinHEUVV"ف QQQѥKg}SN_~gi]v9mh@oE>}z:"2`#҆ĉ=Lݻwׯ-?"3="Md $ف#2`#DfH8B?"3="Md $yy&LJ"3q%2I 2@H"sVqp@1zhz @\@ȜUp(Ph $ $9+v!2W"3"3$2g%2.DfJd@dDDfڅ @\@ȜL+H֎?>.2g\QQ&7sWTDfJd@d '#G ?ȜU"3Id Df Df=$2g%2.DfJd@dcH"sV"3Bd Df Df=$2g%2.DfJd@dcH"sV"siQd Df Df=$2g%2ۂ -|7{5Ef*!|͛d:c$2̍6` _^MJHdDf9Df4EFD| DfhDdMdHYdnDdηDC>knm߾}%|6lsa-ݻo_$ s衇 . Ј,27R^^~}6E$$2?:up 7Ν;oВꪫn6EuֵkYj̘1>!wU}0S;z"L%$21W/M ݷw"3n @l"3&2Q!2CV"3OdDf!+'2P`"L@T̐LEf(0YdSN9O>@T̐LEf(0YdvW`"3"3c߃Z^d?n?n\m7b<[]Q|cYW/5uoѢE \wف !2Q!2C<=H\?(ibv;$~G^9"BdBdx{@M#sκ,ޒ @o!$Pȼَ}JC;r+2 2;[!Df *DfǾ 42f%/@+V  | 7x"'2C<=Z?۷oeeg|x'NGQ3jGC޽{~E"=!2C=DHkx#;U}EDfIdv@3DfHiM#Osd3cv=JWdnHdDfz4Cd${̑42sfNfb~܈ !h I#-[d'޼{4=y!܈ !Y}W=z$ I#-kd{tm.G\.YȜUp(PNd${̑Ld6"sH"3$2g%2PGd${̑&2m'2@H"sV"3uDfHi"v"3$2g%2PGd${̑&2m'2@H"sV"3uDfHi"v"3$2g~6> '2m'2>G-J຋;@"swii}cd>abBrý)~"v"3Cbd DfDf,2 ǐDDf"3Y?Ydn;{!YEf)~"v"3C F,2LEȜȜokփ>hSE`yϓnA{ 9_d~7tG)S(YdnwyO?n $YdnDd7|GwZǕV.ibU|\4YdEFD|kdj%˱Z}\Df,2@"s#"s@T52=J?Id"3,27"2 DE^#w7Q{?ELEf(0Ydnd:t3fM'"3yzy ?Id"3,27e&Df *#[?Id"3,2S`"3yoky]D$2SDf Ld)0F]JZ^a{t 2''2P`"L@T52GthZ;vZiD%2SDf Ldc`ҤI555QYZ|G`~qй]Nn)"s1)yS" &21ԩӰaâ"3{mw=}N";ENdz 0_Ef lر:t:uj]dvB@T&2پ4cGukfYdKӉE&2;[!Df *DfYdǾ1PUU5r#<2dmEf`Dfz+ D,2 NBfYd FdvB@T"}b,2@V Yd:tz1c;Biy睗O 4Oqt2Xcv7G\3Mdn>l>E"juy衇y5,!v>D6ѣDZ3DfzE+JyhOUb>)2"}>|x'Nl{j~~J6Gy?~6 .][nY}mԽ{~فFdlߣ"s/6zW?mӴj.//[d*2@"=("\DfYdN\o".oUAE$2"s=D-g"sUEfCd*N{u`Df8"Ȝ}H\veܿrF#gsED $9p2؉}A4'ZrOJ^!\E[;k;/=yYs΍+SdE${E3hbo|`B:;"s^ȜUp(P`oI+4rX2OEz52}H2EfYdNi1/gj:Q"s^Ȝ 52_E+2,2I#-y3.- Vj3JdDDf(?;tܡdTQWd;Yd!2GZ\#nU !YPxM#?,iޡ"sމ"Ȝ}9v 9DfIdJdkZȼjȜw",2'yCdFɟ/FݣbkEd Ve{M溋YE.2WWWno7ۯBd^QWd;Yd^D|ed>%kX#8yGǢ]V0"sVM#6n!2n+2,2Ym/W"s22_8ǽ/2 @=?9+ ido"󕛋"sމ"Ȝr%2[,#?[?\"3EXDDf(9^.0oz=E]9DfYdJdn{-~w"XT?Kd."{,~"sV"3^n%;|7Kaqג7vRtEBEf9+JdηEӮ}n^8=6+%2`1DD|K_|)Sl 2F`YrKs;lsP2w9Wd.gyG+++s+YdJdηEGYjUd. "{,~"sV"s-X 7pMA"sfY,2\ܧO~k,2IB"~^{-Z(JdηE>Ujb\^x᭷@H"܈Ȝo_oSbd6" 52hfYdD f9XTm:XY_i<2@NDf9DfE5s"'"s|gkԄEf(N"܈Ȝo"3M"sq aj,2ljF"s,2?ϊPDf9DfE22g4SEf9ND6 fy`R>+2@qEF&M$FaSLS"\|^mֻnmhVYe:v/zJ"sTnlM3/v!xaof旿妛n:w\ N+}n-G >__WDD,N;T$}V"Ȝ555z3l $<2[]v/~ȼ$\9*n+| 6hmV9DfD͠խ]#ߌ٧;^oy睋aa>>l"ȌȌlD"r"sDf'\dh?#F>T'MuaƌkxQY`,"6ka00Idĉ{췴=<_W3<[nN @{!r9pwϚ5sG,2]"ͬ[\dÃU8qb߳\1'a=(2[_~1 h"s묳FU$N'pBΝW t]t 5XcvH"\;zIGbJ˫Cbk" "8L(fvw(.yUUȑ#<5Xcɩl0`vIz,2"ޣ,2lDfYdq 2ږ3DfYd EfDf#2"Ȍ9׶,2"lDf(2_4",2"3D= ٖEfYd Ef9!VYe!C&2[s)?ǹVʛNtfV\سZ9?*Uߏ^eGlk{+/(2"L;CSNW޽{o"܎vi:JdncٶI[K_i39s 2"sD͟?dLs=J_~GzvOβt+.~*۽wV\ڻMk4wVN.]fj?(2!gޘE0L\> Yy޼y۲,2/⫯w=57qI8E͋^i{7YdEfD3&2q-.p3eg0{xӊ5w}i)2-2 YdN$POdPd:lUoDfYdFd&}jG沃~10RJ_^{tinkk?P3QR￸j䩷~,! +.Sd ")|dk]d9:vZWG\] 2,2̈ydՕ *.سe4k.^z'_UvYO0)_z@אU5p@5j12׌o-L"Ad6"3̛l[y5.Adcl֬Yʋ/hSD12/9UW>JfԠ[^޷[V?rS-;zK@_j\?|:~UKY!#sK&Ef#2lDf G掝V!"3"s"3e{O3oӳ>T 8g}<~2xcҿHՔ˽?풹/ qnj?~k#>5ŇCE,N(",2̈"Evv#ػ@dYdbՏ>SX~|_|@LN\X_|xz罪2oծ"3"3mdNϟUJ=;y9U^uX{tEO iŢVtbn>u ڊ~"sߏpn[UK/.2W?>p|_߫`V벃+2FdFd,2#2QW;M soDfbSOE:"3y'mSߪOnܳSgg|T3vhk7e'oVN u7KMQgH_fjRo>Uq"sN>y"3"E#s0{8p-~١cLa^cx 2ٳg{Wd&9&;27Eooҳz);dM+Oت<{w\\Q> ]_3fp`-}W^y=;_EfDfو uwxEx'!^zUW]/E戚1cFc0x`9ߑmڊvS]Yfw4#6N.yՠ99Dd.?Y6t:?+z^+aL<.fmW^y SEfDfو̉Fd|&sEfYdFdΡ0W33Vm!0W[MCN3ni}g\F.󾬺ԲXZ]q6Տ,26w޽67n,2,2Yd6"3 2#2$92az'}W Ƚ*=gtz[:f(g/M²#6i|3زkg a4Xt[y" "lDfو̀Ȍ,2\g}V_?y;{:Z~J{vZt8cԻׯyMU_lp'oe,r'mSuӉîy N~%"sj,2,2Yd6"3 2#2$32W̵s.-ݷDε40,= ĭf`Z}WWeq3ׯp mݺu|uqw8},2_2e,2"\jjj~3sGGʿ98z|Y5a3 /sMK{/Uȼs7.?{*%ӡCvg+5"3#o؟W)2yyv?\dEfYd-j :ׂ=~0aҞG}ymuRo|h*JzaRo=]\e`mrꫯ|8ogqK/t%9'N(2&{Ef@dAdnedr;.a(ݻc{.[o-Nyzᜥ1wYa[jy{ؖw dEfو"zz󩆋W5/Wߪ+02^+2c[EfDfYd6"lDf@dFdDD:7ZTM5G7yaXo5*o*vy\~G{So>U5䂖sХe}WdnǶ,2̈"lDfو̀Ȝ@՗^z… EfH\dg.(^M2?Z;qwCߵw朮sQ wŵFK"27 .hؖ_~fڲ,2#2"Ef#2"sM4)=#̐D9~ågMCW͙[V?pEnP~ Kd1=VӐdrܢoEfYd,2,8~"3$*2Wtқj*U+z%K?~yWf873}sdk3KR;^+/ә{+뻶Ȝ'"Ȍ,2Fd " ̵^ܲ{+5̔}KOW3geWk@. OuD沃K/ɸdI^\YV}~|,2̈"lDfو̀l̐ȼVIwj27HW=}~}VGd^Ґ/Snvp[O7\QھEfYdFdEf#2FdDfDddFWcncd^Rw1`rXG >?'M$25cƌ5}.!Gӯ>>6u*_zˇ!r9ϗyEEf"g.ĉ㽚"3,Og;/;ܡ2fU5}+G{ݾ`yDxbdFDf9Df!D&2s跃5Jզ*g)"3'"s<Ā,2Ǟ,29"3$ȜDPF~}W?~|TXd&Df9Df!DrW 6z1oOd*8(Ê,L "s"3#2C‰9{Df DDf(}{ "p"\Ddj>3 Df~Efn? ,2!2ED&2^d"3P"<\Df,2L)Yd`X@M"p"\Ddj"3Dfa!25!2Ed~"sy̔Ef Ԅ,2!2E-[V[=#v)%2  Yd."3CdL)Yd`X@M"p"LDfJ"3BdjBdLEfb&2SJd"3P"<\Df,23R" E"2S?Df9y睷lٲL)Yd`X@=ܓ)Yd."3CdnѢE1|'eEfJ"3Bdr)k[lŔ)SAfYd."3G};߹dɒlnȜMMMgiӦ%eEfJ"3Bdtttvm'O~^7,2Edz 2L "3BdUEfyPDtIYd`XSEfyPDtIYd`XSEfyPDtIYd7˖-;|7Sd( <@͟^?>iҤՇ}C&L(կ~7`q;"鐸Ȝ8o^; ˚9?d5LHӧzto Qvqǃ>O{W-o~Q6x-ܲ|7a69rdE}Ö<,joO<>oP"3"3 jhh>b566{3EfrUn [&tX/g}a~O8'x2D椟|ᑈG1Ȝ"3$2Kdj˅"sOUYd"s:̤,2 /2Nd^;\ 2I?UEfj 2J" 0Dfȸ,GYdN*2TCd|aKIYaTEf%2Ce62_po"ȜSUd*S"}YI|># $ <{YdNOdkcbqoǾX{ga'2!ܓ,"ȜS5*2o!ƌ6{ix"MfJd@d"2I?UC#>bDnǷ~&2!D沈"sO?nFD{{>&2!D沈"sO/hDƌp\Y+2GH\d^hQ—^zVDf8,"ȜS42oF dׯ .\8iҤ C%.2N<Ħ&@̐q"sYDf9jid~.?5T"s>=C%12τ Ed.,2'T-? 7qDJd%2 2CƉeE椟G\o'2on(9C̡DfDf8,"ȜS42~:b¼᦯ܔQ"s?=C̐q"sYDf9jhdC{1n͊ kzI';Dl~z %2ZGG.rw@ݚ1cFpΜ9L|8蠃j"kk#s09^6o߮7K"s)Yd."2˗{3ϴ+zSvvv{3Ef2}O+2bFd$Yd."25N3و̵%2"s=CCMd"3Ld6"sm"\DP"P 1\[",29}z6 2Pb&2Df~"s 2Pb&2DfYd"s:TFdFd-YdȜ"3PXbEQd(͝5Zو̵%2"s=!qe 7 v@_2vE{3Ef{y5Zو̵%2"s=!q90.PXLԪ\\,2S 9 '2Ed~"3Ad92Nd.,2'TEf!2 Ps"3d\YdN*2TCdrIY[Df8,"\W%K}Yd"s gΜjNd"2s>裣G};ŋyDfj̡?%_IYaDf8,"\?ŋO?v)8׺k?`mEf!2!D沈"s ,(\,2TCd%2 2CƉeEz>USEfj̡DfDf8,"ȜS,2TCd%2 2CƉeE[tgxQ|fK!"sRpNUFdM?{jEdܦ?}^߹|_/ny,2o#jdNpEj~ /d*q!Du/yҥ[PG}3ԧ>5f̘|n:_JVdb"sԯB Df8%\,_|ڴi{رcpv8 ݓYd"sԯB Df8%\ߖ Df٧jQ Ef!DpEa4ȶ\ 2>=VCdU(2?O)%\RyN;z>lY Rn܍zG*XP.]ZւZ[[9 UPu],謳jkk+kAԩS+XVH é=sO?t|N`rkXqx[ݨW*Sʕ+< Q~`A{nWWWY jjj:3*8Οxr7*8b+ب.͝;<_|uvv^xlM7TF=,(xq㶬^7M˺{ 2,2|kƍ7Y+B/w`Anc=Vւ㎑#GV)SQ[6|%K /3(;a zVn9?*XШQ~ߗ7h 뮻{H|,(xCYfUvO<܍?^6lr3iVvV T7M/uI'U-7h755m&,`DpU1cu]e-rM0aj_~Ydl:[fJ }^9 rF"ҕ2l{g~?RdEf9MZWeo]P{{{e񼂍r,uttT*XV9Tr{N`Y,(xq8/"N:?+;y88K782wD!%2EDf2BdPR}{styH"s!f"3ԧF ?k Ж,_-Jd #Df )ċ{[YsE&2EV^.̝;׮ Df )to,2@63SZ#󢥫y"3d 1>22;>l\Df2b&2C}Jed>?Sd,2@63S*#CO.޺LEd,2']WW1EdP+;M[m.c0|s=\.MgȜ- K/Ԯ,"3Ld|ywvoݳIvsd7onbŊ;r)S6ӦM+( 1>/27D꪿u#]0y׽uo-bʔ)w}wkȜ"3!f"3ԧE6_{^dOi"s:TFdPRk¥)i)"s:TFdPRR]iɭ"s:TFd({7\>,su9i>y;evmZveva-3fL[cї\rI=A"s:TFd(;AT>)2{kZۃji1W,2>P}dfmz>Dt QƏ?qĚ? )MgֽQ>ep%2 @eDf"2C)2_Ǻ7g̉"3! to\RЖ Dt QDfȔDC|~-|ye s:"srjŊۼy"3! W{fI>/-rʔ)sOr1x"3! |?wo _\ 2̐){uيխttv}ثDfb#2̐)?zKmڴkر"\=Yd."2"3Ld 6"sDf @F3KYd'2EDf2Bd̤eԍ~z޼yeȣ>zg|S3fLp>nvGuԉg]ߊUE"/BpH~v&2CDfeȑ#hNpEj"sٳg 1I˗IՇO>3,8 ,8wi`Fx,2ׂ,2@63Kbd-"sDfId$]"`r,2WOdS x( 1I̋/.j~T[.E"s ǎve!f"3IWGR"\3ggǂ 2 2CSSSp O6ͮ,"3Ld&q%K#"\\.ٷw9Df*#2CDf._7"L5Dt 1I:و̔Ad2"3Ld&Df#2SJdNʈ套^ZlY͟Vd&Df#2SJdNqSsϽ)ADf;ߨӊ$lDfJ 2CZ_Ƙz惷q!'NXI:و̔Ad*ƈ̐Y"3D!lDfJ 2CDfcDf,Jd6"3DtJ"1"3d QDf%2R"sӧ'emEfl %2CBFdjܹ歷ޚJD6~w?37_… M! Df#2SJda644$eEfRTd>}#63ƌ8ɀ uENx oS0tDf"2C(و̔C̐5+%Ad("3L)9 YSFEF_!Df"2C(و̔C̐5w_1R@d("3L)9 YS?"s1R@d("3o;*q>赃ʔFl2@d #2C EdP"tM1 3̡*F<@d #2C EdP"444gGcccDP"3dMid 2!Df"2C(وQDf YSW|n_Y<@ 4Fd! Df#2GE""3dMidOv¼h 2CBFd"2EDfȚ̒ό8fdfۍG`/F4Fd! Df#2GE""3dMTd.K{Gd(?:묚?L҉Fd"2EDfȚ#1Fd!f"3I'29,2!kDfcDf,b&2t""sFd6Fd!f"3I'29,2!kDfcDf,b&2t""sFd6Fd!f"3I'29,2ioo4i… 2Kd$lD(" dl %2CDfNd6"sYd2Nd6Fd!f"3I'29,2'2#2Cf3Ed!DfL҉Fd"2I޾?vTFd6Fd!f"3I'29,2']SSSp O6ͮʈƈ̐Y"3Ld&Df#2Gy饗;Y8 2CDfcDf,b&2t")%2 U!DfL҉FdȜ"3TId6Fd!f"3I'2R"s:P%2Kd$lDfJ 2CDfcDf,g?k"3I|s~ }'667^ 2CDfcDf,?~ĉ5ZKkd.$Ȝ"3TId6Fd! DfDfJ 2CDfcDf,JdFdȜ"3TId6Fd! DfDfJ 2CDfcDf,JdFdjɒ%|;J"1"3d QDfȼxF͉9DPa644$eEfl %2CBe'2'2!kDfcDf,JdJ̡Df2Kd("3R"s(Fd6Fd! DfJd!Df"2C((%2J\d^l٨Q*TFd6Fd! Df#lV˖-උ̡{oGG*#2#2CfEdP"3DihhΎ n*l %2CBEd̐5"1"3d QDf%2CYd."2Cֈƈ̐Y"3D! QDf Y#2#2CfEdP"3DE""3dͰD6kFGo>l^hw?W<_߶픃i=?7H6uϚK?]m#~۩|}k0<5-GvڡK-y%/k[N?-mS'lo! Df;O4O+2t"3DE""3dM̑Gvֵ5/Z~ޑkpHōs/^P7V߻&EΙyymeg{l" s1\{̬Z5kF[55{Fu˺q{-g$ּߦ"3 1I:"s&~ΔE_?[xH*nw\sR&W|C~YS牊-ޡS5 g6| Z^ezkodn;#K_j=a;;-w8M5{K{g`z$]ڝϵ_z\' 5¿RId$ QDf YGdw=[Td9[SdNXPYdz`zDErnqQ:9i?5k̽E:򃏅ٸ k;c-|fW 4 pIseU>3Coy%6t׉̐t"3Ld&Df"2E-Z4f̘{׮!2aqp=Nا\SBy@C7v76߼p#*#sۯ+R׃sԠ~ֳ&-׶xtdn>x]zוÂ]gdίx{rPQ˛׬\cOFzmYܴ9rIϲ|@d!f"3I'2CYd./ 1DS˜B7ͯlq-h܂;z}-72L~5?vƤ-y!_~ykW:߲gM25w3 ]&TaOv͚7N;3דѻǢ/x/m/v`v{mnjߴoOdZ8Eo{{Q;y7 ?ڵwv )#2CDfNd(" d\ yVG}ۦN89zs*#sn?ݣ7;YR󁯯Id{oο0؟g=k|q& JF%WRNx=5EȜ{CKn>vWz/Ի зXwN!eDfL҉EdŠu=q_ő97&sdE-?\WO(Z]d^x|C259k;;z+۴ۯx7_m G÷ϿS>~.27Ox|n^מ\z_@н )#2CDfNd("Ȝw_kk1ŠOi;#s~^#7E̽w{)/n[TtvQi'2 K}g}q/z{wW/+<, kP߃Qd^w/W_ػ]4^|~?Z] 2Cʈ3!,2'ݒ%Kck+2[k:{VyVG;.~|nS}o%]MdvBul1Z[z>^׼ߦF5{yYajZOاǻwd>{-C==𰮇|[Ko ^u"sQ(`.^ܳF}y?^xo@z޽nRRFd$ Qc.\0.2CSSS?m4*S'yf/R{kWg}̝w]YX_k0?9s]Ggmg;㠳c!ZsJ/B|aWD}7,%=/u>oo=~ϲv`׻žz[mY/m\WԶ̐P"3Ld&DfҥK"s:Pl]U=k0FCޜ_Jۯ8[V'mUT;5{GzS~)2"./\]*77P^|gW6탼Hw?ڶ{,?׳==g3Ύ|B69x i"2CDfNdJ 2C?2aL7'߼nσ{,| ^n΃w82w4UXA~;^nYg{lynm:zgqz>^[Z:g^>@s'ˎ}d:No|^gֻ}Ya%-.̚}7!MDfL҉@)9DfF6{MieU?>$_)8#z+5=7yݳ&-|o?w3/2aC+vHr6m^s {;$X3j\WZ=t[#_)SJgz'/u}]m2|k E +_ |wSҺ+~ZXnnC) wμo)qWw\wjo^ٳOvASx| h9CW ⋅i;#E=+3o!sEi؎9DW<']{giԩ'Oկ~u&ԥc9㎫e]6dc=`Df@dz-~_{ -G|x7ȼ5]1[Vt{{}g)_7`dnoWy[srk]>73)Kg [q/ğ|7{?y`Ͼ3BY3"7me?]SbkM7aJ}C4i "3 2@F֟|:fEar/>mt?|ZSC?gaoo,D"œ e8Wkj@z5B^}S{#wWxl5-G|w%ZM;C|uwl]/u\wjٳ ~C}j2uwo+ˡ^-]֧ˇ(5~' 2" gdny&"sqVŻ~#/=?פUN;dL+i)sǕ v.q#sߕ|6&2]м=O2'3!2C((%2 U92^/]2Kzd}g5۵ g.; {?܋Oޓ[ܩ/MYy_ygK9skTaۦN$g}Sd #Df%2DtJqFykӢ12a{bP7pUd߮^V}__k#s?gv?>fŚ=GeI󽕭^9S! DWYgz꤬ U-2_XDdn􎨻WsO澷]=ՠd{2{E_vwg^6M'6ˎo;+~1Go_5 <ۘ{z==OrI  @! C͙3'xÜ1cFRVXd*ݸ Yd>vc`"`]y==6Cq p߫¢s~1yֶyYZߓ7;o:hr _^=s-?x\s @vJdJ̡7̆ U!27Oxm%v\1䩿~ΔȚh{jk{7N-.c^ϕI2I7=k @vJdJ̡DfȚ"sߛ>zZ`V з$"2{5vݴ!] \wr:W}U[޲uO}͇m]m9ơ;ZXJym[s__ܸ7-venr{oa[XIxk @! C̐5C4fEeV|͓JDd.l~i}e^?֮s/;_l=(؊{=.$VҲO֟k:{k;;fhZOا`?gy+>ۦNn=Sm -Ml]0(2>"3R"s(f#s+ :w=zDuҟMQc?q(gʺȼkt&+v˅G 9\u{! C̐5C~]RۦΙ Wdw/}Q:zݖZw­*dh͗6)5[VJiEw gnNncm n!|}_%~ί~;tinw]q'_SΜƶο^IncN_^^oov7u]1~[ۗ$qu/:󶋺c/hG}6,2PWDf%2CӧgSO=mC%.2U1"3"2C(444gGccc]d%2CֈƈPDdP"3DE""3dl EDf%2CYd."2CֈƈPDdP"3DE""3dl EDf%2CYd."2CֈƈP3ϼꪫj"3I'2CYd."2Cֈƈ!,2!kDfcDfL҉Ed̐5"1"3Cd&Df"2EDf!2t"3DE"O=TpHL>ݮ "3I'2CYd.OI"bx{Df2EdP"30b$ 1="3"2C(LEOGy/!G@d SDf%2(I`Μ9ӓ"3\gggPћ! C566o IYaDf%2DP"3@ƉJdJ̡Df! C'2C((%2J\d^hQ—^z&Df%2C#<2_\.2J\d{=&Df%2Cӧgǜ9s2"s$FfjHdP"3DihhΎ nJd8BEd'2C("s Df%2CYd."2d܎;xAiEfNd("\Ddȸ뮻s͟Vd&Df"2EDfL҉Ed !,2 "3I'2CYd."20DfNd("\d޼y!1c I:"s~DfNd(" 1I:"3@d&Df"2!,2@ DfNd("ȜtW~?ٮg"3I'2C[n%8;z nȜMMM1mAdHR"s: 2t"3PJdN DfNdJ 2VWWP?L҉@)9Df?~ĉk"3I'2DtjKdP"3PJdNDf%2DtjKdP"3PJd2o޼|>jKdP"3PJdώ9J %2C((%2jll 0"3@mJdJ̡Df! C'2C((%22NdP"3PJd%2d DfǼy"sE5klg@MJd(wyȑ#.\mC%.2۽p"2C(444gGccc]d @ Jd("\Dd8BEd'2C("s$Fn|.g=]P#JY r^{muQ?x 袋Z[[ZP.e=n͞=ۇ?(wA/be]VzQOmAdYdHd}k_;|yk-kYw+q*X?rwࡇZFYP߃`Y_ݨO|,hر+kA_}eQGUFm,hM6)/ГN:o~Snh*X6lS7QF͘1,F`A{{TѣGnnɓݨw],(8Gg}veu駗tM+X[rG]F[y1cTw޹܍0aB NYfw!Q{*XP^(kA_|qeuqal7؅^X 6ؠm_W*0vwal}a,ַ5cgqF<V\GEfAd3Vj*_sss r-*wAK,7WV+Xвe*بW^yegwթ`A 6j.(8| ZzuU^mŊlTWw Tnt QPʽf/\ʽ-,(8;]Ppv-lTE8T[*_K*,i]5/ Gb0/M?*XPƇ1ƆXe"3"3"Ȝ @I:"s 2t"3DE""3CAd&Df"2EDfL҉EdZ#ȓO>iWPC"3I'2CYd$ QDfb 2t"3DEfL҉Ed "3I'2CYd$ QDfb 2t"3Dyꩧ>,[,.2@lDfNdJR"3Fd&Df I:(%2@lDfNdJR"3Fd&Df I:(%2@lDfNdJR"sUV>]@ $ C566o v5$2t"3PJd%20DfNdJ̡DfL҉@)9 PI:(%2 "3I'2DP"3CAd&Df2}ݷ%.2 "3I'2Chllඋ̡DfL҉Ed !,2 "3I'2CYd."20DfNd("\Dd`($ QDf PI:"s 2t"3DE""3CAd&Df"2EDfL҉Ed !,2yC[o+!!,2s@ $ QDfb 2t"3DEfL҉Ed "3I'2CYd$ QDfb 2t"3D;cvb#2t"3Dz"3Fd&Df I:(%2@lDfNdJR"sjwv^{1c1dQd3euk~ c1c15n "3 2c1cDfc1cDfc1cDf3⮻1c1FdAdDr=f?5y)G[+'h1c1O-_\d1xlhhHAdkm#|˷|h1c1Q.){y…"3̀Ȝȼ{;"̨cv1c1FdE}'ٛ̏GGc1cAdDf942oѯ1c1FdEרc>:c1c "3T;EEݾẅmh1c1"3Po98;,X 2ix#{?1c1Fd"Ȝȼ{dy1c1FdDfYd̟;60;h1c1"3 2"sTdf\xQɬdV2̀Y,""""""JfP2Jf""""""JfP2Jf""""""Jf%3Jf@ɌYDDDDDDɬdFɬdJfQ2P2dQ2P2dQ2P2dQ2+Q2JfD,""""""JfP2J8s?;w*EDDDDDJfP2J斪 OJf%̀Y,""""""JfP2Jf%YDDDDDD Jf@ɬdV2(A (Jf%%3dV2+EDDDDDD Jfhm۶}?Yɬd%3(QYYdV2+EDDDDDD JfP2+""""""d%3(Jf%̠dV2+""""""Jf%3JfP2+Jfc&4=Q~~rw[oMקt~=6[>2px?4".c'~WPشx(wr2|Klmk 2&Muԩ[ܓъ5?-N ?v`Hx@o=ዃÓЙM{Wݬ#N3c'-;"쐯tG_[ pw^Z7#^r-~/w}mRj%Oj%RpϾ>yج}#:%zaχ-{G_P̠dV2+R9tT`ibuR++ߎͷצ~xÖ7,-\q˭x(ivțsL^8n_rS;;w56U¯M_3kַb K>'.wjE~zG/~񎧞=cg?Lš˗l_a{sӶv& a9N>ŴsRM8+K 1셏2W2gV^6kUi[rb>:nxg̃NJ̠d%Yɬd%s ̏jeٹ;s%]2w7P2+oV|38O݀]n/=r4ϖtdb^2uS̥P2'3ud~wM8~s$Gu:RYv>$k]_uG3go$1?xa'O%*dNnpx@uw+<~Ke]-bFWlwv /wv~vº{m߳/9Y}_ܴ}S6we-جn*Q2Jf%Ycd 5W>1`O7z'm/8VJU2~{~bKsQ9bvk[[4ǞfΩ{S״Я/Zv84wہC_}Wf8oƸ%fͿ1~qS/^I[`{e^NݗmW+yиpH|K,ٴ57f]ˡ⭬Qymݝ{cW\DŽirp&a:/ dV2J9z?K*E/F^qko_9War旪yM.%Y|JG ϼW>3vRߵxZlߑce.^K%.-yd`0ԩ[̅xu}ܵUdoCCC}g]= >uo8yu%~xOXI*=[5qz/CFoz\{3Q2J÷+E|kBummj^*Y=bT]S^_L%&ww9/ŅS݆x%}GY29'_y{k#n{. *]L+Ƅչj076^dEWdk8tڅ\3瀊7_}^q%kwɳĕc{g(nIZ4jzk~UwdV~2Y̠d%%lGO%,޳g|淛Siߩ|6M]of_۽Ǜ5e*<|on7o3/z#^xܵVn1{|Јqj <2L_ o؉ibp٬uqzJSS?=zB4S׍x~S;Yik.. 1!Yt\US3jMl)38u?TNXk]o2>'\;⥚󭼩7YpbЙR5Y2?6;*3}Gu}-}đ)8vO^+4yFz%s^=s6떄c8lLqފ/LNx< £O"G-#.*xճS+0n'\%sx~x}Ѳ:̶z{eyJ8sx[joufGi͗v%2mA8/|ԒK9kLJȒyi_x۽ĕd+ Wj|]T5WF| W%Wnƒ٬u%sxƈϢ,ss%3(AɬdF,xCճ_w#,,x7}Yڶ]_sլw,B[1k,& q0o^7HeaF%VOiWJ+g&jҬVU!ӵwmp쇹 ۧݟj1ntM+سfmqK{N!E9'~XaYb|$Qs ou_VN\xs-)5's[W2'wcɱE̠d%%%W|޻;arQN|x.Cs%#vNUZW2pq8I慫S2/ؼm;ᙓmKrﴊ8Q†%mWuߒ%s,y/Yg.^3eF,uW>v*UȄ=uY?wpFS%$3t۳]̬>pD;G{uYgHngq}/VvdIKdΝ4z|?04;e2ؗ]TJ*,WOg/:8` i5v^9n9u:˗/g>sJf%Hwm~eKH[< ű/N-5mcuv)}Z%󯆎=\=ë]J"sZɼi{_.3^{=J/dmGKɉ 0(9\3lah0W!3bNuuJֽ ,fW;!YZd_QSb:Iɜ 7`IaiS)7vfxs2bnEydGT;<4V2犬#ǰ-\A^f}Z|:̴w==rA;x?9zl_]3Wb+Ω O\2nɣGt9L~"ϑ_d{|9(J 7nI¼%s|Rt"JfP2CjW %3JfDeY}oxϝ~;|ly.C?r·w o97k+@oT3K淶w*U2_ז rlm,<ɑor%Xw\>u|8\Ll!kk_ϜaƭHdjbn|GWsо%s]!ϣ~K1% s\2n7fY2'kAy'|NVCpc铧d=\K[k{O~du0vL8哟1ũ3KPrds-dYI%qjb嗼"o} %s\#Z~Y3y[$;?,Z~ׯxO\/9yޱI]Zq=#5O_2K=2hxa.ϗdSL_Ut_2͈s3(s\%s8,9vҸd1^,^0ql1:$zL־[[٬eqK:JR7oʂ|m̏HYN+I]22뇆mL8kW/?yiM/}OsvD Jf@ɌYnp5iL63~9UaW kﴊyel}`֒xbފƱiS&&vNy$ڦ_"]8Q3Drrx[ א#;y/OF2ďE̠d(}@~˜0aͩ_UԤ]!+GfumgNLX2'Gu;1c1V2'oޔ'yxdɜy\]S{],Wɦ7ydkv\8{Td!g|{mxNʣGáRaJPƯ-%R{.^'y+m/?9#>8s!a_ͼ`99/ Cתh餦dK^J+J5,id8=lty5F3 q^dde2vƬp֩H:N .ʬq;|lnI"1B5ڬaؙsE+ߎw'yxbcrb'ٙS&'yanL՛Z"6~7]տ1-4lذ.]$_ZɌP2d;ܝ:~t19W]5KL=Ia(h]}GV2'qRYA%ӣ'ْv0X2(8Oɜ-N/˯زB$/.~&NϜ Y'T d|$~Yp6e}!8%s"~t!񣢏[j+ ~Xp%77溚jۧUwX_qR2W!K󫾃f^w9r?%3dF,qz{钍Ӑ2qj3񳉹Xړ&(=I֒y10zܘK'M{]K^op!ܵpikYxБsm^93)#Y&Ǧآ(֕WϗLXn^gf0,dNV5MN~/_2'?Gx{Ǯ"Z2\#y4%srk' Ϛ h~^#Y2ZQHn̳"&y^WO-\WˆޘyMej q:pv'ͫw৐ۯ~1$%2[8VЊk^9^0Dn̠d(օirٯ]v1_?O [}FL^g䅺ZW2'g(80*i% JZ:9.dN6ɩ8onɜ7t(*VInsOYy[iRewMoQɜw)N刺|D,SӚ9dN<Ry13p&^>{A[JNK^'㧥~^M);s`]TӺlښ!~30əXU_I4%^:$|&IW8y[u :Nɜ,}wJvhpvߒ>Mln/7d;"\ZB&laQΜ6'l$yu>[`1sՃ+t3ឮ۱d~=&L{mpjGMJPdɜX“]OwTm]] ra !N}I!O97gw=Ewשd#?`?D Jf@|TVV'r%l}Om]]}QxÛc[yʫ88.r뎶xMIrql֒)~ f 1aZJG-XoHܰKKo^\Ixt,dU.%͗bLNn^Ӵ$iyַdN3W&>Jg OV(K]}j 닖tM/hM=sҌv)<`h uڒDdY{Oz-g,Oo~!(199P֓+9ԛ9>P?oK|&mZ5H:&O|u?D Jf@ɬdV2MLrc+]z%.u2E]ɘu%OuK^gmM!3pߑcEQ2٩{rÎ9ѕaۼiL%sH^j9dM.Vu5>s*ѝ=쫯u}Bϔ65.x>~ûkxjUMMXa?sd)Q[W*o˜qbjogN%q={rPr_+; %sȊ-םPU݄/w9'1=g|7CO|x.'Od{ǚ[ٴI3ڥdYaK,±|8rLÝV2شJ<$gޞv,f_}o~B[}g=OY444*_xގ[P،JA%zc& xcfwt{g̲%sO_z%g?,_ϜnS85b˔d.^+ihh|kΰ]_wZ_S|+ݵdjM{tK氞C'N#{¥]_<͹K6nRÉs2w<-fN䥛 9:ldܼO\*%+ KVXRo<Ki>Z^hҷqi[db30s陉H [<)]+g?zlrm ܸ)O~#ܑpw O&%sjLul&h99Ef[,Ãz}Jx1Ѿ%sq:Dg'OO_v8yrO|t8`ZxmIxOGx^d~?(Lҹ߀9CG~>wĥ+;Eu湮cC^M$s3ddJrauO}̟~W|!Cɬ[ҢyWZ]2ׂ}SQ2ٮJf"uKver gwjuO.;l2m`̂%yJ'}iXrV\kkޢCGŅ{}J)CޑX暰"O!sOq:< FYkEl^؆l,X2&N/C}_r yr]K7m+k95G#ƞe+ߎ+IN^%s7{MU虳?e{٫cӟm/U~7=]{q9x쮧{L­ز-}W1%sjʭ;ru/Pf}b w?I'HKKԜ#.:Qhhh ]ڥdp8iF;̩8<产gZk&dbɩt95ɶK搟OsɮMo;Zɜ$19'LڙkoQ7= ym;̩#kt7#^+~Kn@g}]!Q2+A ū:tYɬd~xJ.^WƼi+V/߲}}K6n|S/^!?xaP܌Iz3g 6k5nt̂%?xqPUj ;>ӫk{囷߳oц-/Zg3I>г_bf9gay٪wҕ='Nrs5V5jY[SIY+d[ýbˎIK?ƒW/G8a3qR8?ebp~jů-\oڛy>^ܤA6!'#M=a%qi=;D8ٳ|/`o^_\ϗ:5̹|z³P`^ik=&Ls"O8[<쫵v`"giǒWCGMJyY|4<<˥pB]۸lS}ر5?XEؐW/^% 7l]_gyfEb- /7H۽oMdZ_8Q2Jf%Y$f#yOUM͕O\@Jd~qq{_OJdNN||߀djmr;D JfP2+JfĥMVet̒'zM(zljυ?ͽ=]{:C'Nܹ2K`Oq{kk>~M|Kg3S]{d%3(Jf%HJohQ퐎V2;SJWCGݰooޒ[=1Oѹ2aɊx;r]J搰~~gYjoӷdmᔹ-wT.XWYy+]z#˗~J%3(AɬdV2ȭYz $;\ɜtþr>j[_aK庬RKsa;[ґSj䵅ns(Aɬd%Y,"*Mȏmo({Oz#.<4Jfɚo蛚dӾx%3(AɬdV2+EJ1_/լmvrԸgne~ C ?}杝{\nŌ0 iLY*>!JfP2YɬdV2(A Jf%Y,"""""d%3(̥l׮]ᐨP2(̠d%xSN)EDDDDDJfP2Y\ """"""JfP2YɌYDDDDDD JfP2+Q2(A Jf%3Jf%̠dV2+EDDDDDD Jf~***ٱk.%Y,""""""JfP2CK>}'U2+""""""d%3dV2̀%̀%̀%Jf@ɬd%3(%3Jf%3(%3Jf%3(%3Jf%3(%}R__dQ2+A ([֭[dQ2+A ([2wq%Y,""""""JfP2C+חW2+EDDDDDD Jf@ɌYDDDDDD Jf@ɌYDDDDDD Jf@ɌYDDDDDD Jf@-aɬ=miE-[d%3d.q.]Z@;Q2P2+P2P2dP2P2dP2P2ߖjkk|3g(P2P2Ԯ]fEE-}//N_%3d.Reeex,//+"%3Iɜ ȤdJ I dR2gdȤd2)R2dR2C.Nz'K+R2dR2C.صkW w%sVJfLJfȥ<%xߕY)2)!%9 rQ2+(2)!%9 rQ2+(2)!%9 rQ2+(2)!%9 rQ2+(2)!%9͞={!QQQaWDJfEɬd4tЪ* R2C.Jf%3)!%̐Y @AJfEɬd %3dV2Pr5kV8;vU] @̐KUU+P] @@&%3ER2I dR2P$%3I @@&%3ER2I dR2P$%3I @@&%s.|d2):|g>+WȤdΪ2>R*)!%9JDfeeySJrQ2+(Dd̫cY~U*t)!%9JDf< :ߴJf(QJfEɬdNsܹ??ٶm]̒^d^Jf(QJfEɬdJSf<-0OW %J (@i,ײTO*_%3.%3dV2)dylSeo+C %L (@iZ2BeW %M (@iZ22ϕfϔ󟔽Jf(uJfEɬdJS9cl_W |L رOOϜ9S] %($%3I 2%h%3I 2%h%3I 2%h%3I 2%h%3I 2%h%3I 2%h%3I 2%h%3I 2%h%3I 2%h%3IɜŋxÇp{S2+Q2YUVV'rnoJf%3"Jf 9+%3%h%3IɜJY ȤdJ %BɬdZD dR2gddV2-d2)R2@P2+Q2C.KT%sVJf(Jf%3"Jfȥ<%xߕY)D(@(!%9JY rQ2+(D(@(!%9JY rQ2+(D(@(!%9JY rQ2+(D(@(!%9JY rQ2+(D(@(!%9JY rQ2+8p fͲ+dV2-d\JLsέdV2-d\Jf4)@(!%(MJf%3"JfEɬdJY rQ2+ҤdV2-d\Jf4uR;ɐq[aFUkn|i%k%3d\͛Ύ{}W2kfR;mPvY;gbW2{ؕTy+Q2mO 9\\<ҼJf`%s͠m+dkW.]s7-.Z`%VJf@ dR2C5OF.dRܵ6^8Sff1'&f%LΕIrq%sO.L[`p+W2 gWfJȤd O ,+vK+dՎxj\Z~y%#[p%UVcJȤdΪ2s4pîwW]+)fb4$1^cuֈ#ƴP=8h!C 0_qJf%̷FX~7osJ^U\8ӴKonʃ>/IH3wpv:tHɬdV2Տ0o]illWh^#y%zX]wi%y̒ag^k׮]Z(whݻw329Jf%3(;~\[0::~ yW|.u_+iNfHdV2Q2@EK _'K\g̀]M_ߺJ~5dFɬdNdqk:Yv:kV~~J?x[6d4Jf%s%3[ddc6_n^jƋ.~S׬_5Wo%k4/}Z iJ4Jf(n\yFr^"/ؗXՃJcCo=uiEcoʞQ2)iP"nݒś7-Zwo22_;qB+ /MiK,+oׯ{u%K%3dR2+(D%s#:RR[}Y૟6uoM˾yJy_ʕ3n֞Q2)iP"n9Lwެ襮_<}7W=\ɴYɚCѴ#{Wr@շR2+(D%;?Slbxt$J麥 ™&%3YɜF %/?k=X}!kl[4{ }|,~{3Jf:8%9MUUp{h%s7%kg\zF/W eV󾰒UoԯӴYG3Jf:8%(Md%3(%(MJf%3 %(MJf%3 %(MJf%3 %(MJf%3 %(MJf%3y.\(dJY (eJf%3FJf)@)RdV2mdJY (eJf%3FJf)@)RdV2mdJY (eJf%3FJ>ÿؽ{]7%h#%sVeeevޔJfY)D(@)R2@P2+6R2gddV2mdJ %BɬdHɜJY bΝ .}W2gddV2@(///++,dJ %BɬdvdV2Q2@P2+](iP"JfhJf%s%3%څYɜF %BɬdvdV2Q2@P2+](iP"JfhJf%s%3%څYɜF %BɬdvdV2Q2@P2+](i>O}S .+dV2@P2+3ڵN۞Y BɬdJY BɬdJY BɬdJY BɬdJY BɬdJY bҥԧ{`֍7_ R;<۶m .:}tpǏzYv:|ppgw^0}jPy]ݻ7uC ڵT Î;Y߯=TyrAիyy*/,c=j2,cׯ_o2Vn,c?XX@r՜eރA{Zeȑ#x+e,^N:մe5gt,2gʯÇ;vlED6mT5ڵk M:th0hܸqCA.\͘1PӦMˮ+WT jkkpC?>4dȐ5kdZjUGQM[/^l'O6g3gNӖT Zn]ve˖.c#G 53r;wnv#G6Ҧ-cSLi2qFlر9ԩSk5}lVm ,`ӖK6guz;sLy܂DXxvPoooGGG?? U͛7[E٦Y}}}ʓ zqr\GjzT^pϟ*xpUr#׵K#tPWa0v-/^| Tn7_\_=*C{A>} 7n~j_zUܹ\̪_uvv \K uY^u^:/c坹iX٬,c2ѣAeʖ-cX5y N3[Ʋ_R2Vo{]-ceٶYƚo"38 @Ld &2Dfb"31 @Ld &2Dfb"31 @Ld &2Dfb"31 @Ld &2Dfb"31 @Ld &2Dfb"31 @Ld &2Dfb"31 @Ld &2Dfb"31 @Ld &2Dfb"31 @Ld &2Dfb"31 @Ld &2Dfb"3̏?7 /Es0 @Ld &2S endstream endobj 25 0 obj << /Type /XObject /Subtype /Image /Width 1911 /Height 1512 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 5672 /Filter /FlateDecode >> stream x1 AbP#]_.c ..U%GHvvv`v ` endstream endobj 20 0 obj << /Font << /F57 17 0 R /F54 16 0 R /F59 23 0 R /F43 5 0 R /F41 4 0 R /F47 6 0 R >> /XObject << /Im1 18 0 R /Im2 19 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 28 0 obj << /Length 3981 /Filter /FlateDecode >> stream xێ}o4cF6mѤME6" -Ȓ#;|}υ$"X,֤x=<pRכ91I% ]tKХ~ ]i+,,uM!L6{"#w \z׹BN v&YPNe@ 2 }5ˮZ 7"'C[ƲҴoESA6:2DvcAD|G^n*YٹV&Ly#؁eYxُ--+Ht=W8g#bbRZ)OݭID")n]+ķb9/w~er({0PqY̆B9K&d gu~ԏmm{;{#7-I~S&7px?S퉋l2qM"? 8E˿A _rw_3o` AIaW + DbYujb2R@Ad()\wo[ 5bI+E!\f8]&  1 R '&AnHTv>w_Cdm YA-L(O.0JS Bo) Bf^?0 ˒ʡ+"IAYFoTg2f&S]H#\{WΝD =Ԭp6>O;;)D,b,hp_fdɄpʬHyC$dɓu.TdK&/m肰t:)6agt /+ӨUČDM^N˚ǃkw\ j2N,|uE+uՍBk{8}WMm7`SO!\<Է.$N%ߦk~sO/ #VjخގFi- T>~lc#cLj 2n蹛0q#tQ,6/rb'nEG"Fhti ȾfHДđgg&b-λx&<_\gUL,c;O'-Pݎ&|$H+P<h@hT:.3@ ӥ8gSBC<#(> pH |mQki|GFdD_s Ғ𺙻Bؖ!ER:' v@;V( 1iӤ3ڄadƅ';I< .BS"5z"Wd pYv&j&.3 ~N^r'ߙhꪼGoCk4MG>W`p $ S ^"7 az -;GIElEjGҋsW0 e] c'/IE. $O퇰8j p4^] uyBIG_M!iBsړ./:^Mz&"G sgl? ۄʞɞRrVDyX_(ʂ/hp"=e0< h3cW/Ur1'ͻвl$ qA?ĿP6QUZQD̥7;7η'̇16i?ٜWk ƇU.$_^Y`ig!!l 5ʲaX;TkXdDaI1'eiUC+T]vф)zweoj@̑'?:P9Rsֱ"@;nWOZ#4]{I5)*lz rכ_+MSvz8wdAe,8sJ*G#i_U thclU̵og"f-@j!+ea $tώҽ{4{ (1ê*w<E+_jA,RU.dōp([ē'X:I  1Fny-ȭ+#8h: * xQi([xs:s^l˜y ClZ6bj&2E2:>J y"K۷6P@:3^6MX*+%RB!+dG 'D)X^KIy DF$AV$!(-2+"x5UmuǤBMbnxK6Z|$0:Orh[Kl d^9e '=iæz&0h:ϞqKDžk.*|(`Hv0̵svFgbyI\yzN|*AUz';Bڟ Kp$;:Ҋ[V=ufB' )%TN9ƈ¸ /8D==BԌq:e̞8,}s+tO/r2f"T:[]yWfW5[v]hg96 ڔ3Gj]"L. sX$ {|b(xY? =kkge(%= SW .tvSyC7E=ͧÄ ~6pk{@8]IE㑖4NSX/<\/B.6t rg ;Ef$ږ[\[sC]ql܄E<;:0}czBzgAM#f8cICkf "-T_D|)!sICkmlVr] cY YP ;'9&#X?3RaOSsٰ-?`JjktW=9%|Գ ~p<Q#ÑKQUs/(">CmMP{HCWfO9k\rt\Et:î<g^U@> endobj 26 0 obj << /Font << /F43 5 0 R /F47 6 0 R /F8 11 0 R /F11 12 0 R /F7 29 0 R /F54 16 0 R /F14 13 0 R /F57 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 32 0 obj << /Length 4179 /Filter /FlateDecode >> stream x1g/,cvzf429s" "gh`O<18=NdYfç׽],=\E5743Sڨ:|OqKJT4u|I H!y UxA8ސzm`VӾ[SX ,JBPds A'[|o1xXXశz^-6[Xbu?J $c rh(tDn0Pv뚖Aw1?(BфԂfU1DI1wg |-p:3>mh8F]S=T]<~Sm8u_(P R a.VIz\M3j)&Q5!u8_VgBhR,qUن2@#BD < :a^GDUzUsyjHQ. 5 v@#)Fʡ$>\Kzcq02:bʰOMMUXuSZYES#T=⦮&BpG%OyU&"(̗_,0_Vq#ExǸWET  .ᦘ]qXAtL@6ٯ0/," =369*W ځ?FL#, F8SܴCU 4^9kBLUAi+PVY )n Ec]&|-+ą!4ˊ_yurPGV>!@O:7F (N3g~@oMh_L PĹYxfXGXP: >%e3~au~xrdfyf"h5,3K$@V y#&<9!ଜ'Arim 8ٝc^$XNv,;[Avw #c,;$vy5];MT7/}]^i2|+`(kxD2MJŨjAЧ$9HxY:0jsn>ݞw̎hmC˛E Axe_b4o_!]rX[5HFAx+ʪ,23Mƭ=Wd~&LGo_Rg s(dzaM< i\Qtx+6:m(FZͧsg*Kfݹw38DSEzb8Ť8%C,F|jq'd9ΕRo~uxDzRâPvؾwnBPGkŹņo gQAA3%LdIٹ^zz ˴4J|äՏ%Dh1EH>@9W,;SrKgc< L)'DêMgYgy`3s>ܼ;OytlE|>`<(vetQxm2fչFᵕL;Q'2X"˅tN|?³Вx7CEfȅ_b"ҳاߡ.Kԇ[ Ak›!][:mQvL[aq|VOzK;ig-hN!> ۺ('2暒5M, 3Ӫݚv,nw1.vp+B|M SKC/ d5>f.on7MiLJJc{U^c4O/w븯F|kԽ$?4mqˮ?uw4t Fڿ9&nBqIODȺgEBukk:8PG4A."c ç&deze\~ L.p|"i[Ǣ^^b>SmGS!Ȏ QP7iUu (*I)ٞGQ4$sx u1e`nRo >%@wmtQ!^Ċnsċs)-b@&:3,S?!ǰ ΩKۤpwr6'=E6/<Mטz{C:>]OMo$I^G\ Lr9^3=){A_Go+` V:Iy984=7\ we'3 pX{ItLa1lb<<bu:=.Lc(y[,w]1Gv<}lN~O*GAQի}; eBn"Nqr􇽿fn endstream endobj 31 0 obj << /Type /Page /Contents 32 0 R /Resources 30 0 R /MediaBox [0 0 612 792] /Parent 7 0 R >> endobj 30 0 obj << /Font << /F43 5 0 R /F41 4 0 R /F47 6 0 R /F8 11 0 R /F60 33 0 R /F11 12 0 R /F7 29 0 R /F14 13 0 R /F63 34 0 R /F64 35 0 R /F13 36 0 R /F54 16 0 R /F57 17 0 R /F59 23 0 R >> /ProcSet [ /PDF /Text ] >> endobj 41 0 obj << /Length 3421 /Filter /FlateDecode >> stream x][~Wt^HOed7e'V,Zyn0lmOѲR\7WunUu&3tV]/m΋?3ȝ6uٿ//~i7!31tDLYg)SH Ϫl'2 WD/g/gg' 7|\gu~Y$W||~4J"b(AJa | #$1[Lw. ?}[}}|B\I>{J3J#=eI1dE&N6uVGRC;) O!ܖwu*ޖy -eȺ 'iI:: ,YpK fCrW,ҿeUUVGD6&R#(L{6 ,g.ׯ7& 0ƈ0S Qd:8PuNFKҔ ErrM#zXMcAj`DuC`vEx}14U R*e0VFjU #dȯߖ۬kY.ˊ f],AIhWqr 9Xf^ڃ`;fumio}Hi_X&CXB15tDvϝg3Q Ll0+̈gaDh]<8:sM1lĈH z5=0=/7fnE bY 6/5$[\jr)\ Ib"#B0f(5.$GiD9.%~u|sH6\ y7 #+hDkЮC@L 4?_x謎to8O pqMޥl f;"| N ~ĉ.@ُ>؛#kkLROf.̲- ?ވ6fcXf-)=K˧p`^ YcF:G(c yA‡} OA+M"R$'6=EEzZyizW,a}{ؙGN#1v7Q(fH2p&8(OԈRyGdfALQ4ۄDI'ڭ=Y,/L Ή['N@ޝ?rhn`kv)f U&j<[ ϐ`ν'.թAebRߴW66ΝM@a~oϟ>f"0̴ "?7BqS0P? .S>͝k\9`@"Kd;sEہh^g|܋MC9]Md[42 nĨی$3KO L| XہۜzeֿA5p%f :i!>J.6!X +Z-z:)jb?LH2d=I~su,"l & 2tO,jɮn~k٩&I_AtuWVBI1:ȁrǻvqB|)6dBw?BW1 :sD3_ĬUeQb8{_$ xضhՀoDDdhKK&j/$-U}CxCaVn۽mb ]MlFҁ n ( cIuաy週)Wڭ *FC0.\MrQEmҧ σ=3J*sFd4$t/ڿ[QMϵޣFfayz{ף`q"r^e^!SKw )B>΋OɸJHAH;քgc}elB?A.isawb P/-ǂ4 =‹!Zf:r_v|8x 1cm0RH^'u=6YcoЖѷ庼S{gfe֬CM0˶~`Er6Mo+X hh:k endstream endobj 40 0 obj << /Type /Page /Contents 41 0 R /Resources 39 0 R /MediaBox [0 0 612 792] /Parent 7 0 R >> endobj 37 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./images/compiler-stack.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 42 0 R /BBox [0 0 216 288] /Resources << /Font << /F1 43 0 R/F2 44 0 R>> /ProcSet [ /PDF /Text ] >> /Length 45 0 R /Filter /FlateDecode >> stream xTn1+XЅ| رT3 EJ nɣNp.6@KrvkiYǔh|f>ߙ;Ll2>\LS9 4uPVex^4iy8=G0eoaޢNF?baz4Nӆ/;>(W.aQgbe`oӜ6˗v@Mk}d~)1QMxSXd&F`3rcv0-A03#ȹבwĴ |;"rSl`iC(a? HR:aH:Eہ--u'/&Q#z)_[dY`AHզ:jo)gV 4@ʴ2݈Tm(Rn bM j]C;8;WGk'Ř"N$Ym$+Mjz"$|b$=x5 ä&A /Producer /CreationDate (D:20090302151034+01'00') >> endobj 43 0 obj << /Type /Font /Subtype /TrueType /BaseFont /BAAAAA#2BArial-BoldItalicMT /FirstChar 0 /LastChar 10 /Widths [ 750 556 556 556 277 389 556 556 333 610 610] /FontDescriptor 46 0 R /ToUnicode 47 0 R >> endobj 44 0 obj << /Type /Font /Subtype /TrueType /BaseFont /CAAAAA#2BArial-ItalicMT /FirstChar 0 /LastChar 20 /Widths [ 750 277 500 556 556 556 556 556 333 556 277 333 222 556 500 222 333 777 833 666 500] /FontDescriptor 48 0 R /ToUnicode 49 0 R >> endobj 45 0 obj 638 endobj 46 0 obj << /Type /FontDescriptor /FontName /BAAAAA#2BArial-BoldItalicMT /Flags 68 /FontBBox [ -559 -376 1155 1030] /ItalicAngle -30 /Ascent 905 /Descent -211 /CapHeight 1030 /StemV 80 /FontFile2 50 0 R >> endobj 47 0 obj << /Length 267 /Filter /FlateDecode >> stream x]j >Ask!),zi$cy:zB73/3#k^=:j<,v6(2ܢtY8¢ߖsgF[UFwWe#+Lt1W`('uM' ,e} 7Lq[V/⼦UW+x >J(r#ω c%95'?"?||yu-Fr>I߿p֡+o endstream endobj 48 0 obj << /Type /FontDescriptor /FontName /CAAAAA#2BArial-ItalicMT /Flags 68 /FontBBox [ -517 -324 1080 1024] /ItalicAngle -30 /Ascent 905 /Descent -211 /CapHeight 1024 /StemV 80 /FontFile2 51 0 R >> endobj 49 0 obj << /Length 315 /Filter /FlateDecode >> stream x]Mn0>"&$$BJIXG=R1! n_'m.@c95ɫU 3 \e2ڨ^ŷ:ǒmiX,y {:,yWP7`;sʒkC=w$ѵnt6?‧E&)+(yQ%,^}v>He 2pyAq%"sZGZ}=rE DLԤ9)9%NȔ}$wq /aq?F|缙 endstream endobj 50 0 obj << /Length 52 0 R /Filter /FlateDecode /Length1 23888 >> stream x|{@T{޻<\]X%%"***Xay$Ҧ46/64m7OSmy51iLjmbߙw~ssf̙3|{Ѱ xp5w(o |[6v m> ٴɋbNj[ 0.1 +n|m͏t,JzǛ&cuwL,˝.7c]@2P{w=]]iEXGK?HF(9,RLHIcҶ{h4%kb'f8Ka/ U-i$9.dP9"A ߇`-|(. ٰXDj,#S{…O9P $Qӫy|4n A a~O q.b ]8p%pa+|p6t9P VḍpGGs{5-z耟/ViDЎ? /)VZU1VcNB(5p? S$rG-skwŸ51j4lM;ÚٜcE)v׋7# Yҷ[{H/i6.8,LR&ROl'u$ H["9=S,B4yA0!0n |=Bte=!~[@0,H |Ø2Z$ a [s5jQ'<wp MB@жooY7>U! B g01d$\.|2[I Γ}Ǖ}nE%p`X$ܭY)^&<f(Hn囄c5]A>ܜw!q3I 0B=-*H wb,|:![cY/bDaw~ Dc/Y0 &n|} ?0 bp%Vi܏Qy7  "^b\IxF0Mqw1Ƈ$tch'{0^x2FS&|knx#P+5? }Fp pψŵt2"Wp OI)A'kI\yW͝SZ2{VqQaܜlcF=3#6*[MMKMI6'$& 1(V5fW4ɡ̦i[(mnpOh X|9]%N$F rjz&V#}[A2z)LVՊ=js["MruhAo@uSۧUzra_I=R$[>40Km jJUUmUTQn ծJZrCٶ!!@%&$V$6Ӂ:b M[{]}w718nU(隓" >56{eZ.j׆}M p[yUNEVMk)to6CRB::džjyf Uia`epKN>%'{1NXJDL&O2k[1j``M^04 o`xnx$|;6$ȜAc>͑( շ&\xЛʓ'I#ܺ>>n|ˮߞk2< 14MwE/7񸑓8BΙx} Q(3G ‡ j8'IɳY>d/'~Nf423ͅliq4.JgнYSBTX@w_{=ݞY\4{ɴgڦSL;%QM! sgL1s_}=^x1m)yZ| [dFviΩI&yM;Ιj/go=Hr-DK*wGtoصܵ57/RL"są&8JEO!6̫O z2-ró(ޣqaB!vCxeXcǦL5dd4Mxft^{y+', V$Q@ŧ2QЪ$z6HcE5,Z5t]u62s7KRȮ u[>m)CTMl0ۜuSʷSoL (C!_R~s-)ϦL)Ÿ;l|m'ωoƷ%_|Iy{J򩔿?2'iX)5NGɕJJ;v"Mf5D9 93`2G"g4w"ϱ',Bq<@ +bJiu!JVbuTeFiܴڕ226p`0dC!lРBB9͎$WyqcOr%Kz;IHJ.ىk}sQJόÕZХ3J Jvc &Pݤ./#qE&a--XO2fBzfE!bYtaQ@lTT̚M;p$a{?N(o x/T/Yͭou_~_j՜y j~y]eĔ+ ˛t="~91ZWhd͠fJ! P7]QYYo< ϐWSS^ $>6eZbWp@H!`v*kI7\2k8݅ĊqLg |vGL .#H4FJo ȌɋS#7.q;yybcxwXatqKp_+ `n< A"oŵ"1Xe9B&NHMƑؕC<cFCA12Ǔ#TXf/)-DK#Z:y7e=J$ED;;oa={k 2خGF |,d{|)q5ėDcVG$B&؈SSHC%YuHzc~߭;.`̃y6TI Я!ayNB(/^s"?]}QχFt 1M1]1| Q^_+6]( 9!RFL+̣n1 cюGǖ9f(M~tZm5D|2Ikc2f>6/$r#fF.DWUwopI17ĎQgӴ)Q9.yJ%^nj-սVKQ;sF(-Uj9jMLk5͖[-Lwc!1kQߗ>~&Sqig,&gZFOxYk>$2sG$ F\\-A<"O'HZ@3h+cg'Oe3͆ے87}ۯ_k[{ ˚;!uc9$iCnnޘ,bf | c)5 f[8IЧᒨ&Τ$wJ{b۩'IQx[zMvkAxD{(yZޯyTmKCS{n ֛7m68=ZXu SLlL˙i1 k5'&$ɛ Qq\\3A/zT"K a3i\}=""cģҠD IDz[g8-݉ iTO4LMæ3& w%)t3Ɠc;s$M7N- 0ѣW^ ac{L|P0pv_(x;5N'VYtovh}cv•9K5xySc/UY3 =m3=c`;X4C>Og|s) ή͊'/_\*lN9tH׋.Գ]XdcE#Ht-,]{c"(aQ,֊E8Bj\&9%m*Mq=ObuJS Ml?F+ZS:=3MPgBD;;OnO;i⍱7IjZ gpcWFn[(~:5^S_h[^ýgاn5rQ&N :ސw\pq¥8[%lD#H0bf;a-ר/k]4^Gdl Q|k0'[Fȝ֨Dғ_4&v*{>.l:rmSYPӟ"ˎrSB4&ky~/=0yWn_"dv,cC'՟Riwp6btGJ Pl@mجhN4GHreJ>N3MT"FN:Uu1:<Ҩ3FOȖU1o]g3:=Ҩg/`/494UZZfqe4WNJ^JG+T?h旜S* < nh\1A:1U.#Hӫ뽌Cƚv쟋Tw%k&*liq-\o&7rTV`vWbCZЋc91Z /k=gR}0~'2#Q ^eBǏ-Loא'z<_I<1Pk<[ ~؄uTd_a{OP(C-OqV17~J}zRiIAǥ:u!o%< iq|\ lP^ZژEݨM~e^/L rn~EF.`^fKN6dD4L7ڳIzLb}if5PZn6G_R=a 0*xȭFxچIh>&K;RX;ZYEj 0x1Wd75=QkҭF ӔCUG3UV*0aVҔ zUԙx+Mx5Pδ8&"90>MȠd[3J#6kacodJ¼غR1+]ѽ {JAlج˼xSz*3n8߬ziCJiף&>160 =-aX,v [e̶x3iepO\GXKwxWc*Rl RV[1xFSCS"XuXKF.6HDykG1chrT"DU֯WuModR<1u4{Xa|7R ~e"o<:yǴŏ[U<^^UH-$eb_8^Rn`QzNU|ޏ?ztS܅~T5qbmf2/\dVp5 = ;,<l3JC=/0}jTN3HgC!&kMTm/Yo|?򴺛=r]G^J|~w딻ڛs*w/0yŝofii~^ rvywc[0 <^OKnko9A2Ё rK 䬥f/k θs$F֘CUuntd_WNJ{6zA"{; ^%׺r\T^ښ+;[dO{׆l~wW[*\wy;7Ҿ^|ҷE/6݁l*mUZtPrFz[O3[V ь\n/6v݉mnosߋ z=r6٫}`3CB{S"h@. z=݌D?Wf'v`܃pS=~BkO{;LWÇx;[zA6@3:d~&F{p Ł-^FmkCm.O0"r;C:;=8bn/5ٌv*TX@{l=*L/p(' R{n <ۉ=lhؽjw!hNO_݅!K `uܶ`kN^^___n f_G^[=#H,#ϥ_Ck=˲u,[|||e劅+V/kCFFML} ̢Ybl2t~_LцvfH%a˯Eb܀gQ&|5gzH *ǖM@ƥZצIR'XY箋(38?} G_,M\ߍ\~7rw#ߍ\~7rw#ߍ\~7rw#ߍ\~7rsFƟ|xAGH.y% }bf Z;Y_"rwUdIZci|W-Y5/=GWDrlȽoDNjqi5j|'˸8"˞}UO=VOٚ,OFO;*|E'*YBjRq X75'qW=4ׂa狵62?MOzu痬U|l_x/&<73y~мB W/V8ty T8C~)l&LaLvrL4=`8~peeCb؉mL\'wH<$q{ŽS)qg jb=? 4 4g9r>Z|>4bڋ00&YZ0њrL1!LZ؋W"-o,oԋ S.&&;&+ˇnټafiWVL;0 |lX0 lK%Nt?Q2?y?)SeiH(%[de鯘^ԇZLWbtbL ğ EA:HJu=ʙq yPCYqW%axY$ݘCc>~35,桬|CYC[*td-صTp{0_=lՐ3"aP = ^n򦂝 Y>dOgSr_#ZrG\K/X^`y2+/r,O t&ZvX@0b5kc Ep> {~ɎFò6wd YV0x%Ձ:*9db](R-WXOZs;Zf枴Ֆ^eu.F7{p\?J~ip4X$ INi0S̐ISDm֨FkZ#lWf@Е#Z@|(jV8kFlgMH[}@kCfdmD*'oq7G7qwIT5oh?1$rsyU4W Dh|,@(>\]O x6s4B:r+\H#"]+dvdɵ3v&NKUeigid,N8~wߍ,3ڻj>ߧ dǐ<ԃ" (ކi,#yVB70#J!$LT\ԃhQr*r*hb66kM=HPX^l @\qQsJ1  'P]?A 9VՄJV\UOCˍ<ۧajg'12Ӆ\x^pa'\pv}ۅ w]QX endstream endobj 51 0 obj << /Length 53 0 R /Filter /FlateDecode /Length1 23100 >> stream x|y|TE{oIҝ7tB:If$Da3#i:%I!8`DaqGDܛM3l:(8:~t<ܪSUN}RU}BA/Vs.(ų!$;{~@5egNhތu?'I5-sRk:!.h͖DGu RsRlDϟiE?mr+$p0DN4FG lH?A`ZPDk0\KA x^'$RpiPKqxܥ**9x6Ch+QQg$GU} 2pa]/VDYp$-dC#+C\LJDO&8\L(ZhA\3 gdr~@P 19a!~ k` "v7wFO>J]UU+b&)$$2#q*>?eq[߄F]!mD7FEOG!.1mp=@m݅a(S+x ?KH5"d#y''ȫ\;~Ľ;U8za~HEdgpQcH1Dӎg! ^wc)-#Db%d',!-d&!2LEn!.&GQgoȟGcDa s3<.+nn;{;=׸_sop7g!/o $y·DŽW [T{UWzG jQ}zG}zT״h4ihy\ Za8qW:釻_A>{,'#ou&dl  |Ad?<[mL a_ (<V Ӣ?G^џ+".!"d]1,[^01r]WcGH4s3`WԸmhf\V_RUYQ>xvQaA~3wVLnj >=}ZZj͚`1&c|Aj*T"Gc َi USyRcr+.$T yRC RFɪVowIs^h!ⱐ=[O&RCqCHCG=wؠsyypXo@ҀT8Ls #8kCa(U8QNqS|V3>-#-?/L5i$Z.Nn͠i[}ƎFz'EVPREy j)ss\݁ I #ѷ!AYפ9').)ejK~a,yhRɄ7(N18 ȱ ,y$Ձ F<Ȇ?m{;Q cDX%:O8R?JRa3KBSD \c@0C`I+vk*D32VouZ,e ֦W-uЖ3-I+hX1v"L kcLbrBCOU$f޴ԲUjPmZ>$W*Pʧq ť-3-ƅ,f9Ѣ)"5ŎrڦF^,覈rN-_2ʳP-%xQHO}q5YGe+D+:3yI+]zU)W'5yIjg0$ ͮӘD;ghZc(|x,#EyW/ow֮~R4w)[[nzq5QNp$d :.aLQisfd)E\ixʳ)x63 nOBZ*b6Cvã}ܼԞrݛȦiq;GD3\Dl~fy1Ef'[nE7{UheJjg)99ޚ@)F[\%D-ǪαtͦKIi!.9Ygb%vkuUJJ\1Q%qҮ ]''KklNXtV;3r;s|Rt)Mk,K`بj3ϡnn78U׊8*gheuZd+3I[^9YI VjeŎNp3f7_cy=o>XyuG\pߞuYWa;ל]}EOrV%Vu../&XI|`WkQq9s6n8*b抯'b5x! Z7:bm%+j`1mg ֕hNXhl=f4nWbuRijۈZ@ʆ$Rn|^P)éw$(~p`Sm{S9iAMot ':w^eZsEF_f^O?}^9r RDc4q<޸M>n!jS9NgeKAG"~SDF!2.<֗NjT4Ϗ2d4s zhbF FϸtFk YhG[j {Sv g6!@dmv8V !w/-[b 77oyhƯ#"+iT]Q siW|28B.VjJr BaNvnizd{ۍ,qk2]8b u*%DyUk<(>ྫ:Õe`nuig9Ab!NALW!).hb.nK;2<ɥaMȐ)vx(hZQzllw~r<~TޱǪk̕JEUH'8Kw K{]Ev*ÛY{gฎ$k#;>,=iU“Xt#i?ӌOr0rK1m9u 55To$1,{˷V>u` H i%>&k#U<!Z曎#"*XUPO*p<86:4C|?,Pw*p[э9p*{+#8lsksf%r,%`bqΜQ.lyWL6EGѡ}v_|@ )!exS7}/O!>wh2JZgRU%ͱ7L TYBəT.TT"ޟ\-xFmdv#>Pز*|- b1s|3PEјKh0Q'BT.upe6[A-+:CAN䉼OY&ƣMxUy< =cA;Ob GL^w$Rr}пӾ)lh??`ON j5']痸f<7,:}(<=\ qk]w7Rn3'(=aAꑸvp0^h ; |n\f GE  Ě42 jOШ K$bJBTi4H+Ae}LMМ9dm O|Z>w.}l;sl8+XK hblLzHP[[dIJdg8^mƍY?տp_WO総nF;j ss7Ͽ:Vg*]6WF7=?y?]u[uxPO.Su[ <*>hI5*&GAth 2JA-A9LビBp-*@95 4P4P"9V(V  Z:ァaWbC5MOQUWk bs=)/ѐ489#8+| dH WbyӓEej4w5ϥqweǔގ!#Ө52yr|'o`PȡmtsF ?{+u&c$Ji4IdKSWݴ䄴iBo"Ox]jbYQ,wnUuK9HRQ+/˦tY#A ̉L]OH ]bGl{#Mŏo?M\ sbWJ,P`;1ʭ) ݒdG^`csd'.k l_;}B7|%5g*R.qF~s<5cxjo.Sթ/>7r/Zm?6zhPʾiJ;] 7ZjJbRZgN5Y@ԌT+^kFRnFDݡPoUվiv"MxEgsP1cPCj{l?g_+5r!(N=ϗjGކ[y#p,\wȞk'WWtPZp2r}j'֏=,dv5YfR\$FָA bPTdaTzDJDWQq*-WB ڵZz]+hE-WlmG]Y.8tj(U.ʙn};n%Ǵz82ɒGëMɥ-szl=v;~ysgkL՟jSU佁-I;Ɠ_"t~f͔Ijd*/N|z9sB=櫐'#y(K{ՕAXZ XC~!>R> #*;uvR+9k (CZ L;+n\dŒ=J CZԄMg?O5>ߠSV*y8 ]{ \} ~e%>?JZ 2+e]&co0/8:4nSu+{XT/Ǭj|{ (6ǔzmyt%[0(12{5J&[/fY7*cPܠwzcr҄c>2Z6 Csmza=֏#Km[amFm](OdSe)QCbeSncq&_a&`^2[,fv7C"A}HF1K<>>7e+`{c۪p-q駀qM,:!G^gR05^;;ifqOlħ-ҋ^f6/Ý?Xr}3k ^֤X'2 6v ͌Gq=e?m=OG9&>%ffxc1zk2 J,]ۍ9C9N^1RK 51Q&:ZZe*WFfUMEJ[36Y{J )+f" rʘ|撣I4)'osIIm|^I:ҾIH`Y:/d{GJ+1mN> N?'A8'YݧDT٫Sm߭h>s M^|0E=1rV鉤Sه6L>]/|ʝB(5qb1quI ϟa~?U"r 3>Ԃ|3|)=Lt6&YOoOV@YTˡګ ]>t^ ^l?\>--swR:Ge KA7Noݟ' ۇ}Wsp{pXywmt>T.~.ȍzz$2]`Wz }~'Mi;xx]hyۃ``@bH7xn(uv dTkI&+NI|[j04띌 3F=8NOۇzs;n/c`nzϋ<"/N"`Iލ>oﰄk 1| ސXAe>XhR MA*젇/uq8".*vKxQ!4 TS!c>w{` <žP_oa_na_p.V~C^.͋/h\PW|fiqte ReK54/ QNPP\A!zcL׼vXҞjm3#,8~z%HmحǍf_K{CsH qe,Lű~޵!GMZPh1(bIܽha ZҊ~f5) -W.!h_wgZeE]NuAH=J`ǒCCEQUÒl BS'bx,X^A6 =7Я ͘=N >[>CMz1tNQ,X= Ӆ.<,9A{e  +&SQZ>K*]_TZTӭhʢٳKK1-/)TΩ[gBE\5<Q$x2ϔ . + . + . + . W[$XS bz҂:!=U-k-[=̬B\r ]t0" uK*ɷsiJ}~3Ob3~ E>Q|S[vF/> >36Op1|N!>a5Ul ˎ6o勊Y5_rwhFZ>pJ.Ζ˙Y[jE&L g >N~hRMH{45t9~2uٲXX}X[Nt Kװ,5)4Kci!KkX~2~r?=e<v"N\ye''^ ً).angs|{>>ro_ZZQ35J>?=tHZS # %Vؿ%+?jq%?SBO"Grr7ٗpg~5f`2=iU*{4Jgi,q X;JvF{I>ZL>nm l'fiwNfA4k5/.잣]]N$j-ZQkiZV?"MFM9ou8`!&i<>てRD߲*r#aK4-g W8F5ѥrgSXduaBni0cQBnHoIj 74G)ߣ4C>PCF:`|hv2_HM'P\!m[ߞw1>)sJ+\Xvdɰ3t;c4N+,16O&x2O4Ogr~FDydm MF0 :b endstream endobj 52 0 obj 11289 endobj 53 0 obj 11240 endobj 39 0 obj << /Font << /F59 23 0 R /F54 16 0 R /F57 17 0 R /F43 5 0 R /F41 4 0 R >> /XObject << /Im3 37 0 R >> /ProcSet [ /PDF /Text ] >> endobj 57 0 obj << /Length 2364 /Filter /FlateDecode >> stream xZݓ۶_PoysN3u{kITI.Nbi׉/'7@|-bw k*ZLR_/ a\{z 80 EFghcؗ߿=Cs;CsVe.<ɦ[)]pOKQ2!.>4K^!WǮGzۅ1A ]}G4֜' @yEJ&I+JȼeB 1bnl&ژ5 > :f؈MsA ҮLT?O#YrFzPho 68: ],$!HX_ƛmiivPKk vXGzv'Q3?;'pEa=?:܂[fyT%Tv'RD' '4yӮAMOm$`æB+'o %Au ^l/_W]E7z#lv#{:T)k Q=9,dgw1`XN@ņ]RӺYh~|qY^dY2'ף3xrd|gҊy'Kx̕sҕĬnOUrP*9SNr '|7 *2ʊS6m1Gzhq5:=j}N:"yEԡ)z3Cm뚖P{N߆R0bXOaVG1Vc2=5QҠ,k $OŁ|Ol#ξH4eI,E3#]qU>}nl43Ɇ lF?sb_l〯'H|B Oz\|. * ʓ`Be4 1:ש8H|ȩoni endstream endobj 56 0 obj << /Type /Page /Contents 57 0 R /Resources 55 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 38 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./graphs/loopgraph2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 59 0 R /BBox [0 0 277 347] /Resources << /ExtGState << /a0 << /CA 1 /ca 1 >> >>/Font << /f-0-0 60 0 R>> >> /Length 61 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /BBox [ 0 0 277 347] /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 62 0 R >> stream xWˎ7 WV7`@@If`t`A`O;3>o{%|bv'}'>Jej=/R$h!@^JqqR!5}'>'w"k@(vmRC& lbܳ(vd/J;^Nˇ޹mw姗/4Ҩ$F=戲J,E9U5I N{[5n^5gI{UUjPs v:"Qx''TOIީPIL֪gBᇉ;= )+SJuҒsM9hU+l_Pn ḘCb+8-:}-ۯ- *H9ZH/zt ,@Ⱦ^*>9d> endobj 60 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NimbusRomanNo9L /FirstChar 0 /LastChar 10 /FontDescriptor 63 0 R /Widths [ 1000 611 500 500 500 500 500 500 500 500 500] /ToUnicode 64 0 R >> endobj 61 0 obj 1264 endobj 62 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> /Font << /f-0-0 60 0 R >> >> endobj 63 0 obj << /Type /FontDescriptor /FontName /NimbusRomanNo9L /Flags 4 /FontBBox [ -168 -281 1031 1098] /ItalicAngle 0 /Ascent 1098 /Descent -281 /CapHeight 500 /StemV 80 /StemH 80 /FontFile 65 0 R >> endobj 64 0 obj << /Length 66 0 R /Filter /FlateDecode >> stream x]Kk ໿bb^(K}д?clȧ3#3^^+>pq'IYPwi3a[<ν-\`,̈O蔞`}ѰZ3j:(u̾}/B\m26P}[FbG-Z);ZE.%1RːZ 二&}>Gѧ*}d,w[o΅ӃyJXccU~ endstream endobj 65 0 obj << /Length 67 0 R /Filter /FlateDecode /Length1 1557 /Length2 26589 /Length3 0 >> stream xycteݶmlٱmU*mcǶm[ۨTm{ιZks1m)HUL\Xy@[cWge{[y{Ye3 WBEhflldb 0xqRؘoQpfN@{;N df5r"go31Xyyٙhg^'{c8 {O' /_j5e ::#,<<<c2Q3g?Al* ,l<,FfP71mnj'Qd 03sSߎ5ZZ\jK^&hlhg'&_8, t23S'Rvvc3{L]쀎fR5o'-f6#Ē鯉U=&L}F6f@s?78og#73'ӂcaM\f@;GÖ3rqztt'?ojogFf&#Rff`7),lf`0rXg*+S2J0C4M&y{K$Gn,XdTW,"[#CqWIGHY_J1rNF@a 'b!; tz*]L,"L͜lvfN 3MZM̜,ߜN$fgbo rp<<,7 1{3]\]|}Np dog`rqǴt27]e0n `ri1ݿ?Odod6LW'?[zOfff&p̌+_c90ݵtcA3%Aޥ#I`?_'6[H {Z4evxpSMvi<,}'=.0ꍞ6r OSJM$hV9@r:VMEȭErWdJBqGn@J,v>\i\f8oe#htCzp1o~$3Xo#oNa ~K =?-6ki {"?e[[a]8O*IJJN%EfegST{}L[^rUE2gmO*]mEd:dńdb AI>΅[ ~Ppn$cGɿ\(r q'VoFT ڐ!";)lF6Ԗg^Z6X"ͩ{;x/5^%BS&Sp2xtZcH"D+×ie8_ hRI+TΓ]>-obh(V~Ig֮ u<.kzݵmK=!qmJ3{? F pzCrȟ~-yxgj6["Kָ >x|tl:]+Shy>/F?F5ZEl25RYq7H G,5Qan?b]?s[ VtXE*PDP (9*!ma!C`:kf-~c{=lY/Ԇc "t-O=< G[44/,5@mhi[,-N= yck٢ 0UЦsoSIRcYu~9Ʃ~RkpV|e4+XA#LZHcC $WsP7#1瞻eU< >]ɝ+`.xdJY$n5 ӵomƿn_(j/._:2g$8uҟ*xpYj3Q7G<Q@?|pÚkJ" cfŮD٫FR =GxSU#P*qx}8Ǻ NY `$t8QK]eV۠$쥩֡ڸ{Q@- ^9aJ9V^w]' ED Z~xb):k\9 )}x_5m^6b&0\ػ㔺G R*۝2߲_aV >8߅/n}/aLwxrTA<&2}3z4~>}DsKFf aXX~X; -ՂW9hXhpއo[V%`.4_#w=eQ-Q)zU*-2;|g#  pVk^3aF#ɻP|˕CC:@+х΀&GT%!>5MՈFAL#,dRQ(-qyx:ۼ]!BaQ鷊F^t;3a)kj -6] {)9c݀ Pj+&{\Xe? ܧ 674Fׅ°EP4Zr8Vw(nm-~arw7'+L.W;kvGqyDcJc_9&;tY3ld /ka(+0T6(p4AR]BdνʥT?_2:OnJ;>??;)K(q;30 ?Nev«?BWPQۓfW-5bsqO;yMxqEN,~eg,]5*o'۠C"qE=l`Hխ(mf.fJ꒏]4wDBQ'`uVbn5=~>X>OfA-e)}/޷y:xֱ{t!WU"!;H[Δ쬆]A,um?qXjГ;J(4ven\_p-s`Qř=Ӭ[M:PmS,%3-?0)UEz܅W|\ڳd+`5_ ΄ͮqntp2aYԵ~U1[<3Y_&gZtBkѲNI %$V |vm<_R1#b: [fU^?yu +%ڟ5d9Pw{1l=Bez JWD!F%d>4迱;YMIRc*6ś^Na *OSfNOc n,Fʁbd-%ĬJ;L%K2dkbe E2>2ARfQK Njzr1/zĽ(k8[Oq*LIۮ AucvM׬2BG V'} @3D\ܱ ge0e  țQ4U ٹǵTT~>6ۘ]T ʷY;S'ɻد_iH-uvX59|~Ϯ#.C.+}pJE^ȴEXpUmF˝#w-ZՇrtgMxRoUTv@gEXb\b ~NяFg 0.ߛW/%Zjf(0\]Q]$FfэvN bkǨ)0F|L,wjh03c܉\J'T H t B{ Bgɳo 2#ήv<*G#4qxǮ[e\>W nT<[fLt֊JpMc'3B])"\-a74 o{q"q@{չf=,}b)Tͤ֞C_C}=+XE_+O2T&+9sx~CozXPQW^qsA?)i`K #UG.DDm+WAisi=/TmZ 4rFjLM1E֩bF_<*YbJ\r@7V4hfmujFVS/$•_13Ga)[?d xޞku[!KjӸc#F<{Ԋg*TߖG{Jβh_6"51H_3{BQA2pyqL|LpbEouVʶ_%ekHў3E^$'z`#^Ƽrő6^Y$O7 v;ͦBJ"̍ƝFڳUgm?x]-%:#eB90^Sx傤;<HXrEn>r S dJTdCK>Yvf̵'_~4kNL3UeEu#vXj"0.-y&LSzyCg0iDIoAg/—ᣫhU#qh1[K_0[-,61a(ixq{dd8@J63Vh8m|:vAaHɯў:]s:5lp<l?dD| b V<1P{=jj_)űXMH/yy&R.̃yAu8x$HJlZUT,~ݓ^Z^N)/2;n\.GIYQvs1H|74`얇7p'~_ Yp{}C%dUp/nFoeiȶW'`3⥮8_ j\b/#3/yrmpw,8=Y0ҷ-\4!f (_ äКPztFk,oXNj)U+%+!y})zWKx,w'YrükJ`ejh>voS⸚\GxQwB-Lkk=J7ezjIK#<˭-PM>VZ# VCNLXH,& QJ夠Vq%-.X C㉣K1/ǖӹZMdk k'^ yyR׻Pg1AcSć71T K_aYr>NDlni DL2\lU"/C %IF3& L`pw j.V#[\P FEzܟm݀1)i{8j!<+|aWl+,C5'qW ik+,ȁ AG1cɕ?%|ܖ5šzCkMX7ڑgiJW qod8=]~5&fr<<:D3A];Df0ᐊ7$TAqxZ1fyTu|bbawvLmT}K[QxTҿ0š51pʔ2vatr3I;\l"Y>]=[8jl ۠ʸS<9Eu3%w p3qV)kvD Of\\g Ec"4Qc%h눧e٣8ړtpK#QU #IM-j-|T ,n;T`0_sܕxie^wFm'8 ĸ)+]bEo1k_ ?؀7ҽO}gM:Bh.> _Q@ -'yA ]By 狍nb] `*?1<16=} !o ^H (=F%mbʪA!aDK!v2|1 ' HݕŞeǽ#B\3zܲG"~O]`׃\IThL4r%@ܵg@ѕ<.jFa6~(eC\wM@1uoU;Lϳ,?rY1Ս>!#$w*Io܂N1-94q\D.^[%Dd(>TAѤMX8ĹȓxsS5no2eoQ;PTr˯GRC|U~5;ܾ mͅ| @*}z~G/\=ײc26 |ܒݽX *E\@[suӨBB# <leCԲtbFޮ E]}{|BlXɞ6*vs_\-TJz2X`2ydfrUB;psQ(hhab8ִbDPqз-pw*W9Imf~FF$ֺ]c"Cx6W|?VkOa{L+xLx&Woxii& [صYߜdzpsJE`pi"/dy1T<,8(S/ɨhAԇ1!Rz{Yq?)L$9u8b+[@^,``KB e$fX72 0uOI̽ g6&Ocg'ձ!(SGnsmb[s\iJu- o8ԡ}Ȫ;\tjU(c'Fz.fTm߀nަ'wOք? Fвn^˔]>8fqY#/ woSMAU-u_SK}kAZ3Ǿl#n㦺7p Xo͜%%86ݴ=ˬ)۬  Bz诼$v_30|)rYe|Y v@^ k:7<֑KH*S  8ҭѬVzNߐ1n]83N8NA;Sթ, ›!,/ҡ|8h<Ǟϗt-AC̈ BW%2l$( w2\]T,g 8]epglۋ\ $,]s!`HHe y6M[};J5t]E>1MTJѥ\,𑡝Hś|pºV>34.,޹R}q+9G:g@wƒ{ō]$+ zÒ [n cZxd6J:y8{.͋nEZ7RS hmc)HP9[fA;`JO^bI ZKi#Nq pPJfh>2O}; &}bӞ5#^xG%jg5ӠKܣ5L,Y=Jjj) "& >&&oG (NZoʏKtUTX#*/Z:S7R`]J^=5twǪQ`% fxʞ@i+p#!Bڏ]yiŝCLTŋ!mRm g_z:Du=hG+hѨ"eqizbd$Е>m dY $d,\G' L?D~$Fyy*;83vMFCCڇWΈ 8 o/Vw3v>A\պY#ZcxT^'d[ iWLe!s]wf㔦|dޛ0+J?{U 邻?MmC7DobF1kp8R5ɜԯޤXX=&V1(Qp-^$yylqf#ZEnT/CxXSU#k+?h!ӑG<\' ہ>TVAZ"n3XrG(X4z@=jLLH٭bϊBup(/3½INRw vՔ4_e% B`wSvB[7#tZm,KuJOq[L~~= +m9N;ì聭vg< k a'!L9`{-!*6<ʞ-b4 ގFu!u}Mvn}=_vPLqF҇#( r.u3u2PH = f w =lYzj6X1BmEMM˶E9wm%& #}2pFH[sA T" jȘ_x%"cI%pVŇRb+DմFz`żB}%KݚC;M4j˯Egg$`ZM^[3rL]T`H.xÍU&]f:VhGW"Vb#(B'[!~c=^mE~aQ.z'=x;:PEDJlDwʤbSgF6I衜3 E %]Rr;)w&>V?_tpÑhe7(3!lE%S5R1{A$n^*wtP"{dN@ U܁tB0zzOVb(ko|ċUbݮBwR+S=B}Ԁau—90 4P!x۔dnA Sq_b7\Y_*:[z0C|ͷDx:(6Ys,}I'ʿS~)K&-tUt. Nv>̄G|m,fҗs\~[ۃJ=d+ER+j[|;՘0!/ Ho]Jtʞ3+ y{3 Xsdo܉?g\nP+,)jq5XJ妧}CЊe ݉wÚ0q^wT}i%ekwdt@K30(&|֎R?ӝl ~j䔮j$ )qfʼ(;θmq o?&A!g?f Lg_rٰS -jmE]!>&>ŃqB~Hլ\-e=`'#NqIҖ/q{ם16PaPG8vkn%Pօ2(HuL>nEKr8O輨8rxqbPaZa!b%C8 sb J9qjO2 X ߇gq,‰HUKۆR28(z F 7'1D+\>FdUfC1ܲZ@aLi)9tj E}\hkIB3 :@FF Cnh1۩#72׋TXT?# u~#emO!vSi.޶#^JQcY#I2C壭Lbr䣬WM}P\.PEXAf.i-)G>4}lXE˖lBtTD gFӘ6xd,J xXG_`gD܀% HԑgJ؃u,E2M ]]2:,2 8w0Z~8vofr(UT1M6gQ.4M[s&o"(RJ<0{//W߃ٔJnBஸ5fekY'\Ǡ"A&錵] ~ڕTr{g\d1H> E#9gP=\6cKG ,>WBN~IL$K 3a! QsXyvwN<^N]hkSfe3^xsbOò4/EO! p(9n#+#HQc4= #=Zu7f.N;܈ؖĺHHN)gz7P kL"bsӹl%R4jK!Ұ[c T'/g3u PZ0,w&>vhy{ԡI{"X&Ax+D782L%{bzd&*S/}VI;yx_dK NVo~Y΁i^2Y:1Qv1{;Z85㚭LR'QjSJj7Ua n `~Cs^t1ϭQK&:l*R}80tD>L߀[kM-k9i缾9Y^|>.r/?@]ߨ/-\6Oh[%sq Qv|&oǂ'V_RqCjYF' Y|_~/r6I"AWjXs0CWV*m5>iLRm:)˺_[[ʹAbDQ.ҕ#NW7tu^C/JX* `1i:*[Q> NMypF* eaO 3]r ^> w ,+# Q 3ZS Q/’ ui>2+hku匒->8ziS;NW꒿|R㽨|*\ ~ *bգ3zO@f5(S&1PVt`tk3W̚.Tߓyt'PaV܅ tEh{xK vO֑51ZL1n[W͑\,*G.z~%IgDzxzۃ#G VIS)H){P@>CԂ :Bv|LTg/T1k䉺HbK?wZ.#`gayAtnbR[ D6%,j|5ț8|Le-73-8+ XVz״us &e@*dN۴Gr2u'n <9k#U< 3ODofJ36}rT.19OY|vC_43Tk:6F@WD?1TQ6|^(w b99rLVq+mtx:e]U(0!Y 栐_oTȡ]vDY $g@PYs' o$@/ĬNw[sD;ƌ*1J ؠNY J)"Kp}̫>V>f}d8Al|j )lOu^Aô Uf{r=ݥ=PѺp*5th *"C540LBH]E=- Wځ|`r !`Cuu P f+ Gt2ei X?l5:Su[{-M6o-O19 tK г"o=}SrZ|{E`'&e|vcHC/Sz+'Oazwn|7(?:cڅ^N`}. ǚBh4vxd̨8`=p[XlKo *7T;+0/gcC4m_qSQTh ה آؠ%7P_HyLC[+lFcF%cImly$I;E AUk*HEgq6L4ǎ/ۑ~RFh\'Ó?5WxSD X\5uPwp: Hb#ENg"ݎDA䫺/^mQ ~$XڜFw)#Ԑco;)F6StVN_.)Ah'X FnVR<&ۊ^!`K tyӍNuAqWB1Z'ofշyFAe XT bd]3#\J p{kv=(_W&?xb+j6yZxK^N| $W =d(n㦧[CsIpdF_ NlQ<;m^yx|l o7jt ޲2Z<J F}VnBa~؍&iph0|+]XĢ>SMetxm4ˎN z8:cA1\i'c|NٓBR]o\xOkg%=l:opUu!Mе1t7\Z.s$RaB4Rr+e7Y>eq$p!K_Jҋ7 ( LT5.ջ6Y0q,%9kA^þbVN@,r,APFG/%Zt,KKU|M{-D?Yߟ6ZeR>xlO ѹ:#!P` 6юrz7Fa&]DS_ZgrrY~Ռxe Ֆ8Wyf0AC GruiTe~] ""ADvʊeA XS5ēgY p_VPCkf؊j<=]˶7C p.U@[PK7Xi~*1G҅k×K+';<痠|LS3]ľM-jK:kFż.A5ceNXSEpj%ѓOyܗ)Xk ?̼6y4uYC>3<\xVI%)ǤWSDa#7 )7V^n YQ\@nM!3k^AT o]V"Iφ:jW2 $sC[iVI85nLK)==\ "q* IuEӋYHEej,`TBz>w%wƄ(g9š趃FE0f:@+q[ >eDܔPn&r$Ao:&xL%B}}%:q8yӛ}S!]%g eN 1%ӚqP5nၜi٥)-` k| ({aq jF =ƆuPC_ z6U ֋}HLX':V\@')CM͏p"[zP6t=v/E*j' 70`-ފ;uYl:pj0zr= {,_OO> Xe|c<ze*41~4?_r<#IZ7Ѯ9Z7>yKdꋉ/ެ*!̀Hq; ׳,k ;\S䜠F*(+`Pjַjܘ/, O sE0)/sz<n}pVX_<4$L46vwk f<KF>HEږ1^)@{IPhb4nAD, ? UJ joK, {T-}QGCxȈ=D!ܱ: ;E侙7ՙ"Y浸 '^&F1 ɛkjG j=i07i#bP]D[Obul~܋(1#%t;<1R!=)^OADBeVhʵ!2 w<(g+jYe~i.& $Z9T(CZig! G\ WZ|x=nq=uVb ؜1#=[2&OT9J=6g:-[țڦw p}-S5B;%<)к1e,ń6qw<肗&ZOπyOjXY L=Є3ft{IC:8-AlR.[c/w23skGnD=ĦN5lv0)Ft&"IxyzJ%Abtv^W]tLZhcTi^aI yJiĆmu[ d:d>Iy9 6Gn!pw`?ť?]ݨ|_?9ISB ʾbg Tz!ℶz鮕|>tS| Z-}^ [3 cUY$+h mdgQd'\KNH#1`CP ~v)oQPvP1D1dlíqH{% ̅IBn kD+#aD~]L41klQaܝkDaj,>Zy0o[łڟ(ߋUa,Y~LВ|avg:9=(0PMC|\m N" 㕌o6MD:trڼ1) Ri'ß/6=j=p"8Q!tT#|#{q15/ )fgD1rlV# ?j`Q(*&xP3(8NvM mn0 \GL hHyH)(eI$G]D7iqL#&˦fG'Pŭ@B0Uvd \sv=N|c@M̒L6cb|(|SFˋU,MIS θ W ӵC,dƷ_Yj9Ksh2MU2 NϾQX&2KUB#A~= @?Ӵ~%k?0%veoֹ.C鹶\tpR jV.6gF`苉RV&l+]SJo-E-lgf|` #5VzW1$!gMx0Dϙ(`rWL}*Sع=*#]A $ P]ƪ<@fua7vB`Ѻ{ VOJDT<^BuPFb#|\ Wnںj?Jέ61##?A Nc+ vP(S;c0:R11QbPDӑv.@k>[\Uam٢b*1@Z"Hzە3C2 $"džW?-ǥM5էwxT![ SrWs# #ldЎ4[x8!(ԇwOXdM?ȍizmr3 {X&G<_`f1* ysv(nQXQ ؋# )?ۘnjF*Y#_?]}A&{Tn4g)E 蛄sWm ^? |%?XWT-"ć)Ii0vΑ0]df#Q 5ǥgn @S@?nw:az;NGv=7@Ì|ZUF6Ns e\1a󭋋wi)hV1ӷwz0(Etk]Sn9f-fofqOtV4EwqQ `H>܌ϞdT=m fҩ.{TvqԾXT IŴNiϤ4OC*˨ %JAqW|z  #_{zѹ҅JaY|6w02Q ^1zG_~̄7x;T[/ 2UVArE/GrGx1ȭȍF =l3gr"{ܫb=1茺,`B{ʶaV'q!۳g6c˚{d7O?;v&\VM.G*>e<%n ٯ<&ɑ̵33{I0 4iĬ^'U-Ke zHpobKbuWЪupI7!KYʿJ 6JRe_c)MQ@D]SH :>U~*#%l.vf>!kmAĮ0EЁ0pI$58'~tQ y*]|%aHmkk4fy5EYFӱ%?c/5/Q\Ro[=@֕5aF|^փ{9cBw (|46[0XA|f'xВ,\WQ&䰳Z4@--t]Ql=U8-N\ݼXzu;ElQOgrq%f;eLʊ- 4kA;Wޕoc%QMG/ѿ~y-ze-z(kՊafzxu1/,3OT0~M]n 9j-O3.2xck `mW:HdZ|_R}m q@} ^+]u. ݿ=m[1*bP}'#j36㤔SxVQbB㜣xab r%uF/-&˼CHR8RY:*V\D椚w1/ik!933ǃTƉ"*ce ؙO5-r j,܍qS~z5RFϺ&%dI3 `ܒX;1_oCk12#p \Tks#;pt `J,Q#Ӊlї@\{xDF*ٛb-:Z}F ",=f}Ҋہudtj cJH[T [y+'+HВ a"/tzO-xς>_$7φT)3L֕p:=8,u9ZG۸Cwv{Qq7@Ixy &9(~?cF:<6S -Hfѱ4,?8-!!Y"a}hj`v+x/(RT혼@~80d͑p*@ 91I-"14c'`a-  XPG𼣞u%k ̙cϚ#WH-s]NIɻiՉ%MۥC6/s#U>o8(\fwSc&šʊ o3-u؜1t x9BD3>R_ ˛-[6 0عz}+UPy%к1lCTD[kM\Vve]4l`e@Ei`Q.ه7~FGq1ZoGQOr:v5 c[SBib~=dqpVgO鲗#h6Y Hzak]{BK'TqCzQQ˴wHМU0Sq*@WAj۫V%X2 NQXa,Dige.ql:ٵ6kE@pF/gx[G%~&Sm#><: b[}cʱKBn)U~gNN$ &䩖bJV\A$瞁c{Q%T@BJ|ʚS+6N"SIG\\Iuz{sdOX='VאcO8T+TqNOuawN>.3_Zŝq;"˧j>$BL{z~b#4E @ej笪l__Ͷs9Egux.fvp4=&tbi(l&ξ#խT (UeTLI@8_h3n:CcqBpZVr_kbTѾ >7jS `O\kaG!%f%pDFRnOhЮ6`Z9ڶ0V8fS)Pea[wpLgntM؟ȇ5]OH7OHNy$-"\p2x1"ƥՃwPZkp|AK79G~'ǀD.ZdlgavO5$Qh1ϑYݤ}TOD`[[N@a,^vw.,u5-} O!T]٫NTc] :sGm]t۞6>qN͖e#>!° Txuפ$>fŁVHwEUV{Ǻ,`pG+Sdl{%sط%IAk o@^{"'fvD7pAd R2ytjZ.gBa܆Z Amhf=7$CZHw9$􊯟4՘Wmr'wɨך\<< }O 1*)krü9\q\)^(<0wL/͒9r2Ҵ.jaؤyHhH^A0y[2걈҇(MD_rXic;g# $FDZ/9ڢѴϖ<\_WEM' |ƇG,qE=u?jyn=0{ZgQpo^ ?G *z?4۟MO{~Z kApg ͸)g CڃH`Z*7lF"K~rś2`JK(:}#g6wFd} SFFk&3ꫫvj\8l;LxJnw5к{h.%;.=w*{6K$f4́7~Dn{Q7}E[6~,)exK-ij" m[  ~"=g!XQ#[*jdEX&(8Cz<~ :gR|RX!cF%7P穱:2 R[U*b' ܿNդH8@3"啸3uwS{ȎSÐ&Hm^+jXR C|ZH(I.(i.Ee6.+|V5K`АqTf:50o+@M!k<,$Bp^\y6.4BӄRH榌ݷ}l4r6 zIC!g2n z whMMià ^bdG/}?koIijݘ@Ib/Dy%FN1ڼ> /ProcSet [ /PDF /Text ] >> /Length 73 0 R /Filter /FlateDecode >> stream xVˊ0+t^Wo0r[!l0^GI'd`<.*c'g~?5T2]W|LߴǼ~/S1.ɛ-~]LEf\Hf$ռ4O9]-ʔP4)1QrH>ngΨl̖hٗH˦aHpYT{Aߓr)\hPF<;kr8u_ K`Yd Z~ufiQ."j>EFҼ9p vub}H,J+p9롊V4PO (*gb'eQ]t+'QR)0n,^,8އBz1DP"-'|ֹQ[*ߝ%(~b3O'џ_1ldy<<^f-ifQX]:*5㷬/3ZN~H;}IT̄ Հsƃ!'/*xd`\ޫ Ƴ>2̃&Q )` /Producer /CreationDate (D:20090302091344+01'00') >> endobj 69 0 obj << /Type /Font /Subtype /TrueType /BaseFont /BAAAAA#2BArial-BoldItalicMT /FirstChar 0 /LastChar 6 /Widths [ 750 556 610 389 556 610 889] /FontDescriptor 74 0 R /ToUnicode 75 0 R >> endobj 70 0 obj << /Type /Font /Subtype /TrueType /BaseFont /CAAAAA#2BArial-ItalicMT /FirstChar 0 /LastChar 8 /Widths [ 750 277 556 833 556 556 333 222 556] /FontDescriptor 76 0 R /ToUnicode 77 0 R >> endobj 71 0 obj << /Type /Font /Subtype /TrueType /BaseFont /DAAAAA#2BArial-Black /FirstChar 0 /LastChar 9 /Widths [ 750 1000 666 610 443 666 443 333 666 666] /FontDescriptor 78 0 R /ToUnicode 79 0 R >> endobj 72 0 obj << /Type /Font /Subtype /TrueType /BaseFont /EAAAAA#2BArial-BoldMT /FirstChar 0 /LastChar 7 /Widths [ 750 333 610 389 556 277 277 610] /FontDescriptor 80 0 R /ToUnicode 81 0 R >> endobj 73 0 obj 781 endobj 74 0 obj << /Type /FontDescriptor /FontName /BAAAAA#2BArial-BoldItalicMT /Flags 68 /FontBBox [ -559 -376 1155 1030] /ItalicAngle -30 /Ascent 905 /Descent -211 /CapHeight 1030 /StemV 80 /FontFile2 82 0 R >> endobj 75 0 obj << /Length 249 /Filter /FlateDecode >> stream x]n E|,E&DCu.R Vtf蹽D0`8%(GcIAj95 )6ǰIv.nTY9!-CS, GEW(iT4 hWAzs!eV)1~y|ܘg~(\W7>e7>c>&ne<{Z|v y endstream endobj 76 0 obj << /Type /FontDescriptor /FontName /CAAAAA#2BArial-ItalicMT /Flags 68 /FontBBox [ -517 -324 1080 1024] /ItalicAngle -30 /Ascent 905 /Descent -211 /CapHeight 1024 /StemV 80 /FontFile2 83 0 R >> endobj 77 0 obj << /Length 259 /Filter /FlateDecode >> stream x]MO  aeݏCCbiê(L+B^>VM<@y_t@^=Xi mwκDE} endstream endobj 78 0 obj << /Type /FontDescriptor /FontName /DAAAAA#2BArial-Black /Flags 4 /FontBBox [ -193 -306 1686 1083] /ItalicAngle 0 /Ascent 1100 /Descent -309 /CapHeight 1083 /StemV 80 /FontFile2 84 0 R >> endobj 79 0 obj << /Length 264 /Filter /FlateDecode >> stream x]n E|t%YDCu.R  ^> endobj 81 0 obj << /Length 254 /Filter /FlateDecode >> stream x]N <Ƥ!YWX} JbPz;of^:i> stream x|y`Ǖ>>%XdOȶ _`piX,2V-!vf 97!i6mMBC@4W}A4 -Modiv~H~{3͛޼a*Q TPXzN lO$ Ֆ}#=/mt ^2w^^I,/N'a-,g=yw_#i`b:H~w6b9PUbyz>?H\u쓈 Guf1}MEߧdP>b'F8IRaɆax8 xtC4@ Fh9~%Hpx$c*2'>"4z%,V#!k*P~=Z IjH%p\Heŋ[: ;8*1n?&jAh iP q78rQuC2X  yЇ? ɛ1ᯢV'UT-9ʠ g 7-%J?m"ȳa[I C6ѯעk! NWÏg'Q"RB"/)#SABGKa-\p%0?Bka!"~$mIKQ x^F,G?ׅ 'q&i{gQ:^u8y'ݰ>//Mx"[1r|Jt~4BM*,&<%JL{> u=uo+ߊ>IW?@$6(z+k;Z!x:ou@dYOH"7[/hgR 'a &T?[UkŗGlx B8?z_NH,ыnz& a72A1+i1ѻ1OCO0.~[1{j .0a =@ |Fs xDB'п!{I]p\I'"ur6LNr|%s9^&E^hI5Hh"9b/$ajRQN)<;و&77>"[`/1,!E{)hPɴ52"Bn;ҺlvDH[}D,">cӁoH{ 0Ngb}Y{Dpw1R8ncİ=L6jF>GGwJCkgZٵe`_9ڌCh,FEl*򤼶&VU)g~bڏS4nFjͶwct];22l),ثO7YI t8;ZN0l1 "GBMm8*vV AW5tz?ۤѓnR՟F0l3p4#Q%\^X04I7z Z۱[ǢbʼIta!cM\<bgGvC9YˎXtNx='͛3ҚzEH4{u5KMm[(Um E4xDEK-aĭU*\+ u5 f!S,pQMKfD&KUH}2oϤF;dL7eJE3ˋ(]⨀y3ښ1G6ۤQdtGMFaa4d7̑:pdQ!enИkQftA%>*@F|@Vz S5լREZ/ J)֔\$:R@(@Wxa!7uzĞ;Mt{փ[Osvwg}=Ŵ_x1%ڌױ9dM3kEތ_gƫuΐe$I4-#iIH2tCb&I7elfK ސRtNŬM7I.CbWtjwRRbb\\Ҩ+&Vi\\kqIIdͣ8]?O 8Ý=jx-lfqzB&Ԅqщtn[yӟsۉ6R˯GU:kO1Z ;UEΝ"#C$%t,(![7ieB96`K 6U]p Wk}SGVտ!,~g&Nmcoɔp4zrjX z O'?@Awdq'NХ(hJP3INOLNtz2jCI'&:ca-պ% oFtUk%m6Ui'IˣDvHDBW|w\'/^/w}eܼw줭}~Snu =_nѣ ՀƿO>Ymq#l$VMEEYiFmgexɳSUoK{n~W}ݑK$ؾv 1ْ߽7uwpoc߲gxQ\0iďkVrdm!d.JHfs~x}J13ɂ,an&5Cr&I˔U du$KeEC iD!)DNfr.c[*.\]m==TMǻhI!5žVvՅ:+Z!j4D?WK2צ2ЀtDթtv_x:jrWm&)1 DCfisJ;Wdq>9~z+[a-~Ѝ&zc?{R J`FJW|5 WbֳIJt5ϮWRY,X+_?䃩c% O9SwBS+;19_/^.TAju=%}{u4[krNH6\TT]5FN.,$-oHdbZa[2oC3,2"f]jx|B-Qâ֊@5sw-57]VnTٝEUiUNUaRjLLH$*H4&,%dc9a~)S]☣oO׃*Cr@%Cta%g&Myf.\ c .AJ8  iH&ܕp0D&ae 9+/R)Rʉ1CBy %lְzq=z:x={Pg٪jSs zaw#VdAcݛʼn "/5Rxډ_O{cΫYoHoZ_u #C%]KR!D> :> oS56j/8Hnm)Xcʒgg%t))Ygos|27z+~mqJ4>Iw%d-Ύf$188e]%N$cNUb68 t^L&Nl qN|a@ l0̰J!01njL6A=6N(IF&<#2#zD_-?D٭Y@*w495Z%ܺR+߾+뺩eoi:zŜha{ӕu]0~l_LͥW9ۧǗXѱIWsR叚~`E֨gjf*h~TgsFLbFO PeofY 9J.*Ϲ\ 4S uۉ q\VIdO>ů#+hZ2WEGQhɽ BkIB(}^ş:FNmL$# 3m M@+4}X(oWhSBcTՐ?UhQHiP8hJ٠ԝrB'o :I4Sp=)*7KZ< N>Ph$50VhQrRh&3k2)41(4״HQ.F~_ 5M)4A)47+_BFZoVhB#ghN'`}6dNdsB$c i=s+Ei&trDZ|q|Ш sBNgqc :9mfz:(4, $(mK0)9}az)4Y  ?t!zcF 8UخЬ~щ2] 4K1yQhz ܏^g%aFCivucsHXӇji$X-}08º a>kf!{Ey! Fz>F75>y!".;f4«(%Ѓ #qgt3ov7cou{OIXEP0q"u=zQVޟej{̍2 LZ9tÏ2;r^./J7̵<=OB~R^[zEݨMA\k;r,24pM1Q Jqq"u5;"<,7׍޽8~?([_Zxr :(OY#Ń^nSyv1haV13۰0;+˒ǎ+(:/2*>IJlR3-"j&ʚt+Y!5eWzFCʨ>eJefЃL\;cWb]2xq kfdLE֭sҘͺ؛yܟ0^JVbmY澒C6(qq_{r4LfGo:ʿ\L?׆f,yoZ~^QψM/VN[Ŷgz=<%sۆx܅uJ֐WSH)sa/kzxLɣwsk*El3Y["֐l08&=c͘nE| c"܉Q.qg~k~M<dMscG#zg 3} y^lhż k&AM]k h #֤zy (6/x&c~#?8=g:<Ζrɣ)93\w:'ڡVKw#yX&;WYqVsWl2ygIYg׭,xfR<3H>|VgZJgG#rbn~u}CJ9f&ώ rʘ}撳k)'/sIŁY-6.$ҾYHp `;8+ng/Ӯˏŕ y[7gCcqӏ u[W2lyUɼgh&>ً9^&F>yW>=#9Oʽaa{?&/|ʝҹNqgQ̉ecs=#mg|ggjUNa{bIwx_xg&B\PzhQ8ٿ\- X ({LlYoz?l x{tVa?RS$5T̄I}&$-~ K RZ$Ik}{!i7 y>w_[Zv<1ыx4eѐ7bUJ+}? ?s,FXm>-[$NJ z7Bao-0_'RԶRZS$%o_;܋lEӒAwwdvWj }Y_ZPZBѫ|^;T}[ZJao?-8"h`G| $rJT_nN >Om߇ o(؄(+Ql^ifYoFaTăF ށϋ$#E=Pp?6A 9* !u8o{0S G-9F}#߂bݨgso^ Efߐ3Rm7 ;<^D6K^H,J1v~_7oXYc!e<J! )nMA젇_Q"N*fqSza tSMm { dan_(aCP@ՐU BL0c~.7,*..W/ DClEKvawYmy򆺶WI74Z$-]ԴiU[R|R|[/5f5fbTg=a5"YO63_GrXbpE@v"Hnn [F3|2,:Y8yq^fF?gb.or~ޮ0F5fM)| ߣ7g$~bf V;[ڗ_3|wlIjNuK`MsQ;!v\z{g,v2ͱD_DZS fg2#¯iYE\". Jt-b5H k\b~!} 6IQuj;v>W{ k# X!%q~iQpyo>?`>xQ90}# ^s|KX9Q\VV/)chi\lKe-f8.ㄤR]a%lG#x]pBAN'Q^.2eW].t %NK =@(nnW##zP}PCh;5tz:NWQGգqܕhz؄BA Ŵ#PՂjjV#܄p'A-+|1MJ(K\V9aҬZլNXzVu!7cs1 #ώM5h*g +H+).)rl\5cAzBXf̩ӌjjƲ5T^MkZVR-h'G\Wj=Cj]EN)x-IZh˺HeR]tD_iKȮV9䁖.)rjmį4ՓHj #Imd~F;:`ꀌZcm꒔s\:scE;[ZGcx7Thc8Ɗ-#dwDJh\N}?5ҌPG~qֲzq]pw3"0|ZHZGw|j`| !p>'Ʒ'55$cq f' rrd&E6b\'d#K,sAvYgX ˦iM"<c@?o'-{Pp3%<22c>/ A#o$p5:5x#vNNQĈ4Lbk"DNR X> stream x|y|ՑK׌V4,ktز,BX#FȧHjZf<3,6$Hl3lv, / I 3$r$~3نuYO_׫W޷Uw a jT}ىfxFy|7 |zc_[N@7?M z;o0dذ?o`0UI~{.:~ڠwx}!uPؿ Y7-t|[~xQ2Mf1lv:@ǦS<&8{F<~ 8n%!;aҏ >، > ,$bx$Ryx 6[H*C64ω+i!C @.4z8,~$p!,p P`5lAG_I161vO-& { w j2C0 w:>$q$%fIwMTA40ix~oF'8v'pF <*b<`#t*Dnv7M?=9fGz]͈KkLI!OV M%L2ahwߊoVJ;pkx #|OX p kZuw=p)8G =| $RI. ux"kB ?^fGIZ+צazMӓ? ' >hʈy!"ZV-> B:A,xH$RF*H5YK֑ͤL;]$D7OgȯGcDa BP& ~a0!<"/ׅ? _bbRX"zx0$aRT*t!p6w o2fи8`q+hZg3]i a3G`?I\iG߇#O^1Mx'$1 B^5 B"mBd@ >Â$8ɽmJ&=("A5IN^jǘ&ݏF H |OH=|h&0@U46‡dR>9EvNBl"7 mp 9 _ 'p=JeNma# ns[  )T3 ѣpwKpl!UDށR8^$r-GRpP<O_<* Cp.ԸW'N9NG^ 5៊]R6˯#B0ο +^0#Uftm-X.ǸcEI1 ``Rixכt:_XwA5KW.ZXQ^V(YP

~Ӕ z ^uKGHT;dm e<5E)bGs,B㻔н:bGiى:pP=ނo(fU#}}Qr/WB ߟ<~r{~>ީ6͙LcJ쑲I[d cT(zd_iR\ zaDž,]KQ ?gz1 {VKt~Ph+~sO49 :pJJh^1r_RV:2%T}6/iy~>SNNuz_ptn:r<2\NcdO!sQՖzcnN\-7II;UI]۩:G7l-OO.ĆSs௠H&(C($tnHJUo!hMO;6o${ӻecm#iW;(Ȓ)E*,lL6EZc蝣$ԟ?h!tm']]ۻT[MJ-&-cqrzIU I};?_vh[iNox%6R3\ԭKE.g]/ӷF|*WBV9/lI&NK\=ۏ;2\hBIM- g42"ˊ5%ŞFi$55P6f FPL%r^j1ĕNלiVKJG RmBL:6Y)GVAlPk`+r@iM˳:9.F'c;C/(]=Tl)SR&qtѵ8u,ZI2gӍ;T.}uer[+=ePnܗ/~]xrSaU]=:%Jr<8M9_&2mVCmYjJ7JVGzTg5p;a"ϡܙe@7fg%,ŗ~@ќORqnLÊْz2bH(95Gș"\Ocry 1.PFas8ıOxfv;Q^O8S*v)򐜲lWvpqbjZfn_{l:1o5#ڊiGg{?ܻSU kvݶװ&lƚP8χ%cKHa\a=\LeKU%REqQh<{CLM)v8J3ə$s}c*kɘ"?qU(Ƣj6.y*ȳyļ'bX--ow9>4n;䩮YRѓ` !f]W!ŨhIUuuMrlgU ___^`/I~~,(rιunV}:hE?9~d1U_ZpnmLʆ8~n%W 6Sg1ܘuc}Q`CdEbihή ,怘Bsa [d- &Oܛ"H`ʔ)[4\dXJXmV d]>h~wKe]Tt}O$To-F}K|~W׆?3''w>npu'wʵr>r=￸zws^X+@Vkݧl;E^x5f)gZ>>QO>>~,F~zAf!h"B5җ\- ILYʕ0qAl4 xfi ?$䛋ⴄsO2F/ F NeFQ4@-s8g0ݜ{:9]G?zy23A,VbKe8-9Vӗ陑/;} yk/dnCߏ\v7dQ S ׺Z6_"f 5hFEy:OC4l&V~<]?g_&r̫]72A/pWa*zSF,7`;̼֣gG#$PG_Ryf 99lu7:si~AQG_a^̞GC^x07w>#^lhf* fQ0{z6Jb,w 2ohnOԏA֛iwisq=L0CwVnjdin+c Fu껾߃j)lzꣃ,"*du^4z/CvXtCfq!6Q #},Y݌VA{nG9: KbX/[Y/J02FbJߎ<1(Ђ%ߌ ܼx1n;$=Y6ΒkJQ|&G.6HEĹpԦ+Z|VKrQ}y =ϴhњHwk'Fw=ѻn3Djh:i|iќBefiiʨ{#35-B٪f#W3LˑFʞUUhx 2șcgBO\zVG>?KC1-bV^;.y.JcvHQH^ygeƢ3^՟PT@t=_=+|{6ا:}~Dg{;3:Z3O.}z}3(ia~G '4&PUPa WoUx.Fh qtTqIgU|'wXiEc>OuiʃJyAd)^Wnʕ&5BTj-Zla6Jǣwz-G[ +Pأ}vP3K+6 x ta](V˸v{@iڠߦxr%_w_UCJE7nP֪AHioS+PyG5!~eiJ_uӹnLYAիݮG R~˭*^\ B;o1%"ORE_ T7z20<k@.\vܮCRplߍa5x]]ҔQwp0ٔF A DxQm(Pڅİ\aH{G4558Ctks @Xj~B߰ǃ$zш{w8dK  j+*FGGy–AO`7*]x9eQ̓\MY}U˪ƆUkV+kZKV56Ь4\yu{b\b\ABLc ѳl1t=cʘwtlC>(~MXtC rf(M' Q+qCg!kL8:C3DwT̂"Na"GN٦a3L `.W6+|ˍE̕+6:WuӜ*]J~-ݧ9q$eȘQ,=w`A]:܃?7mᱪofqzm =+sp`;=4FruFR ;SkDXaugbLrή=Wv`-ظoKj(5-Zb؊̅UUa[F^lɲĸ/u_i! H.GN8ym1Δ_"GXY?A O8 q'?A O8 OD7 ^/F!:>gb&{Y2^#u1vdcz9Z9|+X6MJ=G{ #R(9iv~7?G0XY%* C>{d7˨X#Kߥ\wOY> )p)BlO,vNe+Xjz+k\~ׅܞ;hρZ_H+&ikŶz`"q6 $ +BKSP5dZ{i$!7w"7$\?EcdSuup}7s5|7;;!c>>ey򲖦4ݼ#պvFIЄ ؝ ͚uCG衹JJvn۠l8BGKgk^ObiSgg+ar̿z*_09rv&ie(`gr e\!+|\^1rGMv{DQ&sTc""2"3LeFGEʙ%ȺLIV8n+k;&Ͱq~Ͱ'f//(&P}E(޾:RaLe“J_ueQ L:ى|aҡ$CYW^{> stream x:yTǙ3?I ġ2[0\j.!v65BR$s)%qqR'i|tmݦqSn{iGwt۷M6{ucM 7otN37|N&%R@N}ujB?B 8[ Pb# o~E!*hxzŇ'Qk J{:mhx0@Oe'N$?נ_}Go&T/Nƥ'IRZ2!`јT,Ä/BU JY1Bb己x)v);, 7q>^/ӋA.sΑ]D||o3d姖+|IQ4W~4cD?Fѭ ? [iG~D$n;򗤒(CL^P%9K.Q#maZ]hI;h53O@kkx<[46lwָ6mPU޹!+ld,6uڢ‚|M:7GTdIGekp8jyte?ܑ$éoLcV*[/_կH{Ęvvt2ʗI&IqmC+v`ES'&q#/|MC֐˚|eڽ" twm,uamMJ ]%gpv%)//<=E`Y *!Hb(%Yr:2<*8#:x(*}L] Ťce+(9:CP;;a-a8!ǂ-i+w%wƎos]%!u۟=`@ 0<@kD)q2q؞c>gט8wVB^F+ = Ĺ+ t$}ؐC(#hsqQPCwϾƛi-#0Е@RI ͬɜ1@a՞̪R~Ety'+G||$R+ng\S/v:垞h캧V/p֖~x  m~l@'%U[(hvL"(@ >n3HjNsг^2 r_$ö{ Ԍ9I/r._SДTW:sqWp[gZ 0 CM 5iq\#L\IUGu@! 0w=/ x\H.!}CPbWE~KD;;vȻc׈K'~+FyԂ.^WVWZiYR~+V{-7[7H[kk[[|6;Licق ۲ʹ.G OũSO$RlGw/Յ^WI߾Co$ t6vu[7M/;.8Gu FD>~h4SR.D.8U^|\[Wiݳ9оUw&tooU]eEOh]z?~ o)? #F/JAi$’|{=Ja=ԳYw?OW/ݯuwvUW?CUU;;K7Ԕ譕mBz V5FeߥG@ۊpު#BLƂEf`b/P( jb\0f hC snl]lmhp[܄^kۍ} Qԃ g1] ƭƆڽg.=uꅥҿ,=i^Ws)%U;!%%D$^F:'R2pOyNb:_hnSJf4 YG3h(D9!lZÌzT9J0 q4( J$ DT曯oV>vd/U- Uj]?{*en:?5rgQ)H/<:s('0$pk+_z?<bѣc PhKOL ufQNhX(.,,ӠP2p/%|'RVLVK}4KK3{ï'[c{w wU/g'TMK^z:_zׯ^9m.2Y~+ JH>:+f?V=rd?H NhO v'ܰ u{9NQCsPigna[z}dKӭ&E>5tPٞ u[q&$BbdHa2M D1~vx5 /N"PPN (E4dXAIw)Q}X"fͤC['ۀ0qIJN!72&a< 1OQc0!#aE ̨MC;+GkuU~acdy92Rj#$cv+Ukou9lN,^KBxӤwV)r"8A b8BzJ=;qHuA_#HA1ь`#mO,cQ : s5|$EKUA} $j}YDY}]aAC~ecʾr;y$~Cq1zrHŅr|\ⲉשs7s2D.L@=ڔtk >%h9ܯϑG-6iyvcrޅr "}('(f8f ȫ+scc)u9 Ԃkҏ<D PseH駳VɿdVMbYW'A'r_컋G p'yh zy(>?Md.]'> stream x|yx[Ź;sVo. :bDZ5N˱H$&v ,˱RĄ-aC!eې-RLN)t6RZ4]bߌ7m<_̙̼w9Hi?) y$3ex?RLjLk;"oPNd8w:"mS5X=OL_myΗ /iR8ڠ̴و{q1$p8a;ĝ8?JTY?8QQ Ry mc oJi\Q F2G_g Zjk&j?J&Vz㞸΢%4?H26Gϳ<۠ni̷+͆gi#]@4B}ev+o26Mm_REt {JH}ptc_ߠlzYSYCWYLՈfkYybƊ<~%Ry*vX( -!i9-=$^-Aj~Q*%[1(Kn~%L*Gߪ6XP-j1k023;+b5X {  nxXh_KjDwɣT {.)5[}|IRFz~k ,y 9mpDaî]Jߩl C 5~AEҮZ.}a5q ;fjQ~x/e6Zϖ+4S7ӊ5ܧjGlk+B']ԋUY=bfjf&{?33 qg쨹x_-'u`m|Ĵ71l;.uGm[炳9f6w)\x"gQ2ZFY}QE)!j9/q~(fd(t+k|uɣ Uy[煣snpjF{FݓN=Z{f:Ƃ膛[[[m޸šhaΦI$:դN33 \y7vi8ٰ׆M'} Ӌp`X)S ixs)eNjVTlZzn0yvN:IOL#[j&#ϲӒ؎xOarX<ӳl{YVFsY1*wIRR3y˙9,ɵ9y>8v7lֿ^#{cC 'qIëN3W]zeMعĘ2 {\*n^wΪh{c7mǕpޭ\t;wxF!»md^myɓ77 ob{<9  kJ:&xdzS~OAR^~WqͶl:NWWl.gU0Y(;Ke嬬YV8ub{2o/G?M?wm!QVuF\%w%u Rѕ:PdG2%9$I>Zn21*h-!Re XTK2}fP3lT̔Iܕ~6;#lQ"ȩMl۔HkCa`HnjvEWa[k мsJ]-ޮhzhOGszR⿜HIoTPe+kMM4.>cyVkңݲ 1˯Fffs &^ƻMw5XJRseJf& ngE1I(rRdU$u z)<'yɍxlq[M,dE2r7_aADj;"^V)3߀;u/M}a{/?I!`|vQ}kSؤ6=f6ej@ؒm%^PB61͖4Umfȿ%me)+m,9/'' eמtbC:]x!VpzF}J`5E /ӳFeu9WJ [ugԽ:˙VV>~2-j(Zy[PڏHL4r,uceierGa쳌aMN?`4Vn*fKZ5ؐؓuƍ˄ 6K^EoEMvc}.)37BYTYbnI{f0bq)5ŘYqCH]Xdi'vf&'bRRG cLn`ټ,{G+0m'Xnre˕,vO2n|y[GkگM;{7\{|t/usxGZ<|z7 :eZ%δnz35=~lohWCtm=݆1ĘVcr~Cb|Txq|xz!& .FwT\m僟<*ggDYRV) 贁r6N6S1贅F:mUh:D_t2[t:xNiϾ'tVӜT:VhmNd 봁m:m^6S:mtN[;c:Dՙ~2:\өT%LQOͽSU >*~OFs*e.iK:\%mx=SUt[Ӑרo޹: y47o:FuA߂O44]ȯ:.]VeijY$gJgI:YRQaN_iD$mrni!狒1/yVH:KSs=%oH:Y˙N-ϖt_JYyN ݒ.5VF ,Gҋ=u,\=/Kzo4j`ے.)Miħ4ag J:Cegi_*,*=_A''^2/eꤽ /<52Z' Hzi-si-n$A+@qRReu`f" }$"#-*jreD%^X*9f4x$~է{XB\)%Fӣ=IYQ۞Yemk. ɺ ' =ҫlnLɌROX-z\%h*;ŌagyDP!P"axFz@А7gl׾0Z ]!rwǀ\K@ yYvHdbY1 ^<-w⺿'-W 8~\bGQJЊ&9I)xSVS4͎'I"=s5]23#WdVgvoKhn9{fH_;(VkM=^;{5J DdfΑɫ8lMs^*Γ2Oק_Eʝ1aua]2Lz0RԪ8U&v1uC퐾|nmg ~1+{EY~\kqx6W$}2ҾyW{yu;wH 놤/7"Kfs}8o5"#.k~u;j"Ucn]XC\}l{/qwh o{ xIɻՈO\{w?gF^P<;5hݱzSLu?d\Oհz"~ƵgFx>iē@ k_8+Ǔb-ZOGQYjtDմ  ص2U~ zνoվuxMaCZ?aX z*w?0U aZ0"FBaqКᐶx>z`ߌ̵rDCk/CBtMŚds,9h)CZgrwi\ zwBaoۧ0XuhVunҶWh>; bV| {y{7S`}o ћ};BH<> jMM8j!7@>oȷsx.CW ap'? }{z=Pu!7G<O% {_x@ahA0 w8"[Hxn;CO9 e"ޠ4?28R C~( EBaj(w;?ZCB78A.u~O wb x_ ¡ ya@0{POK^g{5B CAްB>^-BIhzwGːaQ'p=E( ){R0D{Þ { LKL BB`C~)b   V]Wvbx1ꕐ[:7nԹqfmjMnmmԺ3Śb@Xg&B,rCAXF4KL:# YܻWGT,Q,QF_,aw^QZ7`nW,# 9"ɋyE^OyG)JYR퍄!f9,4c y6`Qm`݋ sP!ڶaY{gO΅vkæs8,M`}}>QʠܕW᠌\0j7AwE*QGFz}B~*WKd<69'voHuݒ94 a yG) >dҋonfɍ˱p̭[zYuA :p(YS[\^S^U[Uelk`Uuum-u+봺իWէX?d}bgyrqի$[, S<|Sy |mpk3_g68 |mpk3_g68_~~d!1qjˑSgϕFhz𿉱:,_O+qnII';/iׯ痫r>G1uzڬVר.M}~37#mUgh~ogkʼn*7?;[GՕ_F?ӼV4R>?a˪qM*wMeָlԎ)l)4N~Vڇ+9" kj 7M1+@ߺy&RRk,QfDfDj*VJ #@*EFQfVy37R@ 1D$Q;"a{c͟ 챌LfHNi|Z 4Jteń@1K2B9"O+d$D8g8":e_c^_&?:-I#kZ_t(ΟBIa9?B_y#W"V]$@gsJpDnNd4ogiD R)ZvS@ @$" G z葈 zG"=@HD;@.@DDDDp%. \@pI . * $ * *    M"4 4 4 4ЀЀ$ 6aM"l2?481 qL"q c@c@W6} 䨄( G9*!G9 Q G\m?N;S;%+&Q @DJD(Q " DT"ƀb 1b 1 $bLnM Sïb]f\\~\-_I tPղd?BŲ<هaf1G]ZS-h;h= IR/ -Wi-L1534}G TS>n}8 %k*ky+Rb){=Zn)eM~.SN|Y+xe3[Xj${*-w m huh5hhEh9V .]Sh 4rrponv)ķR",+ز*te[=[hh b_CFh9Dw(E=Ee/8R6rک[[c v~̱]YlY.".g]"4snIQ/ʹL$\g@2xu̕8@`Q?&Ut/M \VS_s#d>}T_s,qdw9*7O1}Ts\M]*G5G1۱ձ1ŎͺÏ9!p#(9-&npuS"&!)Ih_MV7]LMg%LMY ͜jN6[fѬYc2+ Ȩ*iG9}JoXڢSjբt8' zh5emh]Y[~Q8c7wc4?=ɨkuwZ]#Xu&{ΞF{cƺ -9Dz}>8zG[GWAwEr֖# W֖qM}B%k?e{>'N DB)3r[-ZU=-S96nNƧ0Y#XXT+C]VVg?rR> /XObject << /Im4 38 0 R /Im5 54 0 R >> /ProcSet [ /PDF /Text ] >> endobj 93 0 obj << /Length 3098 /Filter /FlateDecode >> stream x][s~ׯLgZ*}N4\O&A `Hvi{^@dKJly,oϞ˷\ K?]0jp1NE=.W|X_D Uܖx68E;l.e"?Nj[y_#Dp*d]Ծ3VQGCuCb 3dZd hVݸ8nYϚ!T8 oci<8Bd5Ɔ:cGovP :Xö*h0-;7ƄOo;MA "A8[e z?K7$J84N4mtq,O\,b-ƃE=GNV8Iu4^rGq($Itlg^Ͻh6+Ŗʹ_2CŢXTk=aht?Ac0T1Fu1j56u˦qZzԱ*{?BBj0-XͪUjPC`ӋNp3NCsėsAzF&#8صYI -WkZњD>1CA}GY80 Z^Rs̅P7$h2M9 `Mexa= *Kiu-muc{(b-YxG(0y.Ze,>ST)G!$4 T<(m-J鲕P㽩4nA)6rz(`G-84*Rr%$cؑEqM$E/f};i8Q|QIF` gs<䪘V8+&,ݸJq|7V`Wż]|䪘lVZ Ť,U a@%.?t:r_!n_gIH%eJr9P[h΀"ju9R9I Ru\FNLI"/]G3dmNҤe v.ln+Xfc'3΁1rq9/`}UH/*9m6Sݾ᭯VxRW7ld>c[W3s]߆ %o1a6O$訅UY'8uJ6\R&IH6 kJ8$zbSgrm5ۆ^#"EiL Fj.N-5r:Bg7d8–1:;|,.|f 4?"#ޞ+9b*̐LljLϏBʧ024` &Q whYŪV;Xa+^\PWiW7|ltZPϫ /7tLZZLI(p^M~Mj|Q&ӧ(i}J?~R&;$i F*ܐ`,8j5u<wͩ6{|tɹSNd򺗫jR̈́n2SjPg,=~(wZp!Ǣ;$^U57+f}nZui [7{y_[2󨤩6:r˶@544l^FSBǯ-BCrFd)e  @n&!8:Ђb<=Rod?FNAmrS?(r͵,&_gKD:Pxbx2 <.<du|PEbGLTn {wN"I|@Y;eKobao pN#͇պ^ʷ>6@+[ziA@k.qX+VT{;$IobO'\hZI\ezn2ڒYMDG//ۆGMˣV;_BPHYyY#M"SSώNp?{fӐ N9+bGpoR@,,b{%} o{Cϒt ~\4.BpOjMYK("7@(`uΒjvwS^4t[k_ڐ=s_6,8q; ;BB+U}̀Ф07Sv055}38@K 2k ЀtB`NYZ[}e 2ZYgi얶Md'(ٜ 뀹 BpM|c,OŲX]U*S"!2ma9H#t62.W6!IO Z5(yҷR( ̸\wc9JcTb%%hTy}f s;MfrVI+Vg-r(\\9Ĥ-=G/ly0 F}u^+ _xؘ{gǓNTJR${Ú8ԛ;0TiFfй5`Fу2Wtг4w\Q.Ssǵon;]Jr*Ssiڤhx=c;ivQ݌݇QNֳ\sqMk˅YC-a2(veǹ(r&ON{J)5s`t3N["SN6JI]վەzɞe`Kl  ^ Hu}rXQ=W^3StPq6[|-o?&;cŀU 3AP?z:)q._'x>g2 #-.ɯt G8rBM;O-ػ36Dg2ޛ?>=V[5G,R ÇY3æ>G4 endstream endobj 92 0 obj << /Type /Page /Contents 93 0 R /Resources 91 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 90 0 obj << /Type /XObject /Subtype /Image /Width 503 /Height 419 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 17596 /Filter /FlateDecode /DecodeParms << /Colors 3 /Columns 503 /BitsPerComponent 8 /Predictor 10 >> >> stream xy|SU?s4IMZ6A@*Nв,2 #ΌS~.l. BT@Pp #(R K%Mf'oЦ<{aX%D|'-U 2Ty@*P<@ Cd U 2Ty@*P<@ Cd U 2Ty@CgO>QÆ +--4._[nѣGdѣGWTT;~844;駟܍:.##C.w}zݸk׮Tvرw'|f͚5O>O?t,>}fۼyO}x>!11qƌܖ>sυyޞ:uСC#Fׯ`f͚mٸqcQQeܹߔn?n{qqq?8/u駟h4gΜ9pðayk2}n'x_s[fϞy{ܹaC 5ͫW~ꩧlٲ%//SOEGG{ޞ?~ :tj]r%wFOsٶm׹-O33s tNnOET*XIKcw1$ a lv?O <]Q~矩Я|Ӛflk? ø[??cǎ'N$,[lɒ%F5Uy>aTZK协sFӳg?O=R ;w?sӦM۷H$ ;!%%eʔ)ܖ{]V?>w'Nx=$2j(:?vHJJ>}:O?uo 1o<'9B_k-^ M63g|}=}YZy{Çs;s=܏UUU~aã k͟~v>|[uu5k{1n˦M ^M:Գ!f111O>$й|o\>&&ZuZ6lޒtҤI^;rmٲeΝYYY\UUՌo 9NIp\.tz0X\VV~]6\:tpod2Y,#Fxܹ V+W֮]777cǎ- ˗@ݺuk۶mүFz7n\rr;K/\rڵ;2=0gΜ'NDGGGGG۷ou6mڴj*Juϙ3gȐ!cǎ :ſ+p8NA\.ċhѢ $$$9Eܯ_3gm۶w}o4cCqa6gϞgϚ %/\oceffJ%Kz-Iⷱ222222|;K4fYܻO@<&&zL0^QASQ@flP;4<kӂ*<;ˣ~ߴiU֭[coN7՗޾_ d|gwޝ缜͖;W_ZҥK-BF+Up8V+,;qBm2̳49sЯQQQXRRB7Ќ͆ N U+j΂HĢ Yn׮]ܹ3Yj---MNNUZ~loYFk4yB;w\x1YVΞ6mglN>M=&\.`2NWP (_@ ׎;@P8q")Uyiii| Paaa:tUxw hO1 *?d17L@361)J#cr1t^jQLp]$T[n%k#78dyfn۸41ff[WQyɳ>,p\.TDi8[O,&\mCQ^$`K̎=kD=yɳ>)Taam(_7!Eْ׬N+J˫#WŌLnn@9NЯW@Ο?lٲ7xҥK~QFQ,LXWǩY(҄<0&%0|(җ^X&u]iiiR)l6+=es313 a=,qyV YV9MضoU^xEP`0($wH3U_g׍:f:"'6 !HBXv?'Z !RbuF&F@U>$$ m})nif,)O(oСC0gi'_M)Tbb"ݥ_"[,b*T"^qUɱAʭʭ>c_t+ 󕻌7v;u^s uˡ.?{l1O,fR5̡bQ/1leMc~\WOoR Dرc|\_}JK+T U)_fl 7mÁ&IT#G7USSÈII&5cYh45B(ÇڵM6^PByI ڳgBt:ݕ+WL+/-11qѢE2`Y%¶| dҤIWå+{u%T:UWWQgl6oL=&~ϧ|#ƍ;@#*ߣGSm( +//ꫯ )c$}QSxgMfV^]SS~wBN>-ɺwwvCJJ )L&KLL+ZU΂B1mp6KiiT* q::ݾcǎ>Я>VVVVC7r6kdDb2q8NS,-AQ^ 0{5L#F6l?wjbg/4c~ŋ0_Jvx\~,p_t%4z]vڕvK7H'%ه$=6PCi~c,K~~;Zb+y:q$H剗ׯcVjP * E?uɕ&I-!}o, iZ ҟ9w\ZZL[95 :;@J1՛|OT'_ߏ*O]l[4PCjNZo߾8ՕD2M´S{DHҧՕKߙс"Uɓ'7tܳ@K";t:,RD,چl2 ju ֆ-zn1%v, 6mamwgϞ- `p TWrrjjjJJJb1|=y#a3J 4b@ii'8otŹ(L*cITL+!`݇ @hfݺutt[2"8XUE=)[f`{{w.6w$t[Lv|4>۩u?^N!EM:j:t(++K&uKw^;:Zq%>eYhu#*D"ѶmܯhtcfߍyhZJ<5ʕ+.\wBTXX=eZWy*ɨ x!;uL&{'{uX7|& JERb3)X[߹@X,S(IQ U~X@g]t~ַ1Dw3&LBRSS)Fх:~}xbpDXKӲ`S4}-1jL* #UyP&3i!~#&\_}ILLahwoovm {lV(׿VXXlٲFvl!!-rd m ]գG>|xC:\Я= Iq{]W^w -ŋ~м|vvKϨ47(wCef1ɕP*/78dyuuoab۶PPo9{߭'kˀ}?6}pG@t:݉'( *ؙ-~괢:OK x?͛үYYYc6`-,LXd>Οqf|GZD @пc6ֳ&K\4g-))ٵkV=p@&222Z(2kԑ9Y!D)x2gyͲhlN555:ѣ}yXy|&*B]0xV{(]~v<_=v…}Y,+@sʷكұؾq9%&;zUWW/XćlZ ݇I\\СC) {l׊ZZ.3Jwrob <8A0h߾=)L&KNN0(V8`+-/ױi|wVϫ5gwofl֭[w &(LoXv &< 7oLII; !Zw6FhȺ~:|Yw&-}Yдe˖ŋiiӦ Hŋcl(7񶴺0 _K=&<+6v&^0Lkii)/C&mbmwœI)t\F@U<] ^ p{=w.{| PaaaڵUisG[Əw hL1 *O7 :oe7u7<Ԃ\X,c`窪\߹@$u p3!P*:u; BtC@UG"jeYuS3UNA oN1 *o٨rnl>hus:v;W+VP Z?cǎC`?/ן E8NXW𣬪\h4T*B].ɓ'ׯ_t:%i4i߾}RrƍRLF1L?. Ο?-!ŋ& 0J2$$l6vL&YoYԁON w8C܆|hhobX,;uW^ݲeR0aB.]!l:v]+66w^NjNLM,-&>;NDN.]wA_;JLL4iŀ"##eެ۪ `HO?M=&F@dzN h^>;;{, ;Qy=yJ<@=jfq/-gJeDDd2)Dn_~eٲeaܷVVVJ$ekjjKڵk;wKNb4r8)))=NvZiDhbOOO 333-Z8UUU7on~ᨮ(Vyt_sssh0<=6G;@#*_jh&\}CNNNVVFy۵kw:;{6..η+**&1`mmڴt0`ѢEMЪ hfڵ/; jw")Jxy&)jjlw jWK.Q _C=&F@36III|hTg̘w F@UG׮]NA议*;@#*_ZZw ',B 9˫1 KǪU,XwBTXX?>#ү6-$$zX^E"UNSшsOf3)Zү+VxWQǎNB;h}WyE=&7!]7o)@r΂B>}tJ;bXl&ͳD"t.^(.WYx5<.eHr? ի%Ji޽?))iҤI.VKey+ B7ÈTD4+3*sQ ex,ø O4csĉAUTbjIw:P?z(<36'YI@@NAzO?D1 <Vs- ïJ1 *}v17|nn.،5|>}N Nʏ>H{2 pBRG=dر=z-))ϸ:vmG9v؉'dddǝXׯvHII2e eڵQ,X ?JEEźuڶm;uTn˧~`a^c]ǏgggsҚ4ʆ Z-.:tÇs;9;[}ӦMk(N:tÈ#y[]]fnYfq[6nXTTm;wnxxxG1qn͛ -gώ=ś 6p&_70?u 4hСfy=z)l+VpGxgz!BomZ>x`ώYLL /reff.^nL:UUU\rƌyԩӧO3 ӮS bޔul.?sL1T*#""N>~kXjjj*** ͽ&on݊}衇|߄ "##BZ5 *{ޛuNTv; U@@WK.Q  v{sП߳gOݩD?saaav89rT*mj\}){ޛ՜κ[B&e*P/GEE ??cǎ'N$,[lɒ%F5=e'LPD协sFӳg?O=R ;w?sӦM۷H$ ;iȥKV\ٱcF7Ldәw_E~RlI'N9s]IJJFYY(J?Df h<33.\'Je0X#UWW{DpΝe&!!(]^^޵k׸ݻ}M… FҦM(999iii:uj`r֭+Wp;ٓ[M&(^U… ܖƏRSS5F񪌗.]7Ij񂂂˗/s;ѣK.M:Qא2L%++kĈ^=;wazʕkΟ?ݞIC?;` U~ܸqK/rʵkZw/H~mذoIn4KKK[nѼTjlHv7hju׮]΢ibbbH1 <,D"*P(6Pj&3| @ 4UQw$d˒qs(_哒| @ q峥X5SQPӧO{Jѳ>B <C,pvVK1 <үW\PUoPVv')[U7C&5ɓ'Ckߋcu?(?EoC4,)))//;@J211b@Ty&s:/v)**jү}PU~ԨQ~>Azz:) TyN!XHqq;(_NvjR Hʿ{~> 1*=]z٫Y&޻"LF.c2u;@<@$78dyfn۸41ff[WQyɳ>Z%Q=5WۿPblutٱg('/yg͚5|,Pl6yPQbg5ӊRȕD_o1#S3=0 P |dXvq%BCytFZLYHS{㟳7#<08k'NH1 *R| 3g=**o߾qqq,ڵbZe2Y#A#13 a]{e-! *gV6M2rV#IRWy~?O>bVְwc:"'6 !HBXQgDyԻXͭD8.[zAIKK;w%Kd2ٿ7?l ~(]~iΫ'WcN?<]Xj0sڇS$ 2dȐ!Tγc}rJMv?A}[_:H̱o\$B<J&W|yt˱Aʭʭ>c_t+ַgHe۱or6BTUU\X̤&j濳C"w,\^1kz7)ڵk۠._@(׼r}F\|NN2cSTTqzȑ2 E.750Lrmp,˚L?t:_}UiR_ݶm[ ^R>Yp ?R۴ihѢʲl_mLSЩS־we=KJ@WQQ) c 111U@@ E(_g̘>|RR]ee%) OE~:xf 0w\Sr5V;YBHL*jϋbԕzѣD")(((((lӧO;!"wntXZQ-_n _?%AwB!S{]QQ0L\\\JJ}8;;{ڴiү׮]ܹ? ,˚t% uXKFPݫgLP(w}ر};6,,|rˈ3'W_wrܞyŇ>yl(%ׯ\w &aaaӦM[tرcΥYXBf%=.jp|+PUWqBդ/vt ݲ/ 1"u@hxXa1IbBHLj0B"lWK~9"}L|H."' IWy$lRLHo*:ǦǦN|'DEE1b@Uw~;бCoQ$:@BLBD+SԾXIaN-nf,_?| CXo_K.ǏW*|J2zNM*ü2J>H mIo޼d!+ H,:@RP 6Lӹ_[VaXl$!XwFv4{~~~YY߹@Zj|gPbҤIO>m۶ofddb]ח֣S^B#GDb1߄a*/,ӧOd8;`0Z>/16Њ̯$ *99G=6>_3$!b'EXĨU2D#@ x'*?ɷϟO7DwKcV@Vyi>BOሏ;`Ͼ@B<47\HǙdjeoe^lٲFvX,r%0J%atÆ k \UUnZQQ0).B탛7o*w -ŋ|gપrrr(Vy36{ݻ{cx}F.cv,FSτ\Y^ UҥKxexH'*45<3-!}`^]d[ض-/(wĚ~(Rl͛N!XGO̖pfuZQ]ؿ릏B07AqQF0b0a8|Aee=3`G.&&E' CX%,qQީp J>w0wG}p;vW_]{*BЁHi|mF B$!QO7/j4ZǠ,k4h4T*kݮ d]3pR>_۶6-W/&$0p׭_FÉh{Ϟ=OV(޽; ŌAgl_a]QƏw-g;`89H\\gv>jò$)Ź<[Ylyyxv-T\\M:%s\?_o>A1c೼bwDOiٳ]4dwIKgw4}w4_ŭ_r9nˍF#/?)ʄq.p{7|h!$C>,f9///&&4#FP H\>--q<4*ZZ\^ @SaGanۍ\u<-UQ4 N! 8GchTTTo&e ~oT `r$sBUUUw.vb@U~Ŋ/? xaaaݻw; B|MCl6?D"^lV(|g0Cy \^|2ŀ={| ԇKƏ;Qy=yJT \}&OAެfw>Rg5e˖BvfS* ,`Dzluu)Ο?߳g"TUU 77cǎ<Zx;ӧOw_(zgӱk7 wϕohҥҥK.\{ `~y?Up9SB@B@1 <Č1b@UG~>Cʏ7@}0c<>!~*<:t() Tyjw~w\~> `XjW+V@*o| :fVhȼ>?77h48YjբE"(4D"!!w.ğ 4eNA讚*p{&99AH<>0I/\з_x*!6p|,\`s TWW?b@Tyt/_~߻wЯ/^Plw UxpMSշo_QDTvԉb@U~ĉ~>CMJWlOe.{PRRRXX=}bxgmr wƌ}fyѡCnKNNNMM Qýn^]a={bOVuQ!iiiQڵkyk/\@}mx:sq;uܙr5z)S(*;VUUq[z]kV:99966(7nvHLLu\Ν>T*tBweϞ=EPyE@+WTTXVnJAq;L&*Ձa*Qr+cQjQQQaX-vqQVWVTTpGVڣ4uJml QU(NF [{5N6[o;fP{JՇ_{no(:ΫZV(&+Z_^YY(k'x_`q:{L ~~:U>++zL fl<@ CByP$&&fүݻw|fl<@ CV{nQjzL˩Я^0cUPPpAnˠABCC=o]о}{Zcǎq;4r)xT*?f;zhã>}k~FIMMؘQΜ9㵙(999m۶uW{B1x&RTTtʕFq8G>`2lذG۷oxxxGq:nxϗq[zkoȤ$^w… RZZa6m{9#GpߒH$Ç QX=|0w-XŋZgϞ詌rʕ"nVYYzAw3gp;u]Q9p8<-"h}֚? !ѣMIOO玒3hnm9s{FQ(^۠p{uo7F"pwk(bثw97nyrd^5jcFQ^Ϧ{ 㾕H$^[k6u\ޘD.{5 wƌ"F^?3XcF SЫL&(nr/MERq2 hH$QýR嶣bQT*Wx1 m(^?!!!^g3Q!bث5u}BF"D3}V6 U&L W@yy@*P<@ Cd U 2Ty@*P<@ Cd U 2Ty@*P<@ Cd U 2(,,; hU^^w"?pS endstream endobj 91 0 obj << /Font << /F43 5 0 R /F11 12 0 R /F7 29 0 R /F8 11 0 R /F10 94 0 R /F54 16 0 R /F57 17 0 R /F59 23 0 R /F47 6 0 R /F41 4 0 R >> /XObject << /Im6 90 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 97 0 obj << /Length 3793 /Filter /FlateDecode >> stream x]sݿ3}(86;I઎z>$}AP|XQ;ݯA RmE4 w{~_\.g<|opzQfqYKSSJ/.֋m-]}'o*o]+,nW}pᆁu1Ώ}(gmVUEŽ`!ZȇװAP1`y/ѷo]^4 OKL)˰'6g 3n¸ox~lz!u3$JNB~Q+r>k:BXЗMMLu}ةݪ@&'lv{-u@,-a:w{0 a?0 oڢj|ge J7 Ry R$LW#SX9 ,Z*m3Tf(Y, ){6b`r |=& "'g`DEa0 KӚ`xdy^t]Y_Hxi32푞k=>![SFY}ΩL^9-ʧ/2$ ,GA h$N5Ǫ,&tA*84(do'=ଋ_|+PPD}R)x~ ֱ@FBŀ +w`|h|H}1sa5 :ZЄlg垔"wlʺ+1LA2 )ʪ"*DgWYR=.빵eFU_E}aBOрhVW`6hʩ^Zv}Uʠڶ$O kQ}P.tmEa\xd|Y #SьR耐u]@ "g@W)d)6??mMHOr;c4860C aJDF VCcP "?F8AA5@†^pxadUL_Y1P_( Z_ x)8ɬBS֔F{#!|!NEK`A!@^SH'FjJL?w/?=|w{=ߋD˄) C>/1}bpX{jPnn p'%yl#dJ&ڕ0A&2xL)玧h9{' gwU9~h  `|ͷ`~hɻv!bg%Q:OBq9M0jld#$bh$^!a&fYϛM꺨$LTg[xBG ^z:MBOX DSoXd ̓!ȓN-c<*TĹݖoEo߾yXdR=w\]i1oy {Okḣͦj.1D\4t5  3D#.b:$WqRO,\Ô3@F s9Fjqq~/],C;:3O~ uE+n_@̣X;/yokLk'PsG Ɯg[I L n(BT"<私d4CF4<5ho@̵Tf7ȖI`&VFHsfuI悒j2M3̠e.mʄSp+)8-"Ҷe>ӾL&H«ٷ 4-eƍC9*:Js'@,fZTNYc 2Ƴ sez>eeL̤DSJ,{=cL6<8-RGF~ J07? H*6qJF=߱;gK8H_Laof%1]jm /pY3MΤS8&;?.R *MĄV d-*;h sU-wISPmNU+0Z7f]WHȬiGECp'<Ս!n9V@;0A$&7,^EDB;w`cG|U;b5N!ฆe#K<2|Ja5}9 L0B/N; %yt5b-\ VI;u~T޻Pwbqgo#jf?^=>vDcXaj ~3iT tS,">X-sJX[ B͚"ུ˂ $I3` snfk^'<7o{%i2^oWu$zJF٠K=f|~Ip wY;spw8 Tv(gaӃFmgt8MV;_ n}QLߠd5 $ß^{Ţ0fH endstream endobj 96 0 obj << /Type /Page /Contents 97 0 R /Resources 95 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 95 0 obj << /Font << /F43 5 0 R /F57 17 0 R /F54 16 0 R /F41 4 0 R /F47 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 104 0 obj << /Length 3128 /Filter /FlateDecode >> stream xYY~ׯ`" TʕdpkbRX$Q Z=c|Tʎvs0XG"<1fHC?YA/n6_7g,_A|tQ^Wv}6C?4]5ʼ8`L/GGhs S"~a[޼h&,Val<@~n:t۴޵C)kin~sl)b89lǙȷ6r*āWl6Fm KiR1nnH ׵e?we6nxWjߦ.Mm1u()uG? 1f-W'W|ư\jgu'6sa, |}2 C^E:iRȺ8!U#ve3)yFA_hys*h`y떥ޱke߳Q 6a oi,'j2]1Ņ^Tn”Oۥ S3a Ԧꇮr_Y >3lʮZ$]SWUM~9M ‰mnYӹ>)٤o(\U*جTpR*P*NF+]]jhTjRmd=$(&REJ(TߌBXDMN.*QNs3Fz 2=Ϩ0㦱h'JXDH+*ᎎl%M$X=mCȚ:wj/mV+0@ƊZWjJT$J1)O4.VU+ sc%Ь*V& ,xNIyOf?ݏfXdC%zGٳޮXH> 0]?(tZʢ?u]:-l6ާ{XfSD!!۝"':u6v]qAU0kÜ!L\~<ު94ծ)\jnƵjX͢-8_IcSn6,Hakhѕ탯~3>J<Fz>N,"-"? /LL^wbA Oeu'N78flqbf dca7!5qclzb@` [d2pՌ3}y ÷ Fn&Ҙ̷?Y(<\I ̬1GA]cE. (08C(AV4&fyjUI/euNl\rbNyG06=n~g/3x5 Q̰iH5'xbg]F1 B jnF)8`TuIix(HI8ΕY E 1`rqƻKpz9%lNkeN>$Ln/}m щ[Ӥaaoa( ]cU 7'ŷiRQhmx^:)!aD9 DC;2~\qbP0H\Yd d&;+e}ӫS50Pέxesv?zկVt+K1@Z^'q+ d١CZ}=`TW o_)58Q5(h=b ߆Ea` X+ _r%7#i3Ya0 C0jvX=A=-+ʃ4@03oY"` 09 4P?טɯe/n) ]oQ~epD?t?g:{0ƙ_K_C7%yaAzfgoDgY#4e4zәTiNڦ6o &~[@#scGcj%I .nBUN3kp Y[t+H+̆\w!c=[7K?;\aNknS_B>BKS? Uhw/d?2Qm=?ȣLCb84&?;"?b¦j#|KZOW@/0f^q endstream endobj 103 0 obj << /Type /Page /Contents 104 0 R /Resources 102 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 98 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bench/copy1-bench.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 105 0 R /BBox [0 0 226 226] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 106 0 R >>/Font << /R8 107 0 R>> >> /Length 108 0 R /Filter /FlateDecode >> stream xXMo7 ϯcz"[$(6EpRׅvif|$>|GJY+uק81a0;Ie'Ŭ;5pmҨKp'[ 78 U&l:\Jje/hm :"L1q&˻ӎZ%撼stwn1q˻NE^7]54^H@ke"dH]Dy+TxGF wF: Q!0pɁĂ_gƅل Z$k8IZVLmTHT.ݯSekTVtn%7oՁ/ /;)GK|ޫfY$tiZ&Z=]_=z|۞x( N}ӝDSE;aEO--g =ěNW'MpC@%P|CKT8[ M eʃשϷXnl$LjWE^śh,V XBϏʹz){|L˧*g #CU>KRک<~^꧟%aܭMQ~3 dyCo=^'Zkt(؟85ao> endobj 106 0 obj << /Type /ExtGState /OPM 1 >> endobj 107 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj 108 0 obj 1379 endobj 102 0 obj << /Font << /F43 5 0 R /F54 16 0 R /F41 4 0 R /F47 6 0 R >> /XObject << /Im7 98 0 R >> /ProcSet [ /PDF /Text ] >> endobj 114 0 obj << /Length 2685 /Filter /FlateDecode >> stream xkq@P*8p514@œPLRoRg'owgc(,I=7hDSbHYgs{ ۍMZ?Sh>ݳ$KqU$q'0 K-Wj̘MٜO^sbP('l.Hv٢6M~6c­ Rin5ƞߜp#69MsR~bLYm[`"36x1sϙ>'lNH!4Iθ+ET4kٌ0(DlЄ1=Q,,q2/PwC#!j2/2'Gˌ"L "@?D%LBtˉK[%oOQTi@~E#(,1u?qDpsʣ//._]&Z~90v&; H,`!qNm)85L| eFY{0}D,|y$-shgs.lzqzĔ9\pd,%K ?éQ+ 9|{3ihvj9Q 2]SEЦwڏ..9Q4P  eBwpZ̥A ӦhU@bH)_"@ v]`!@ E-._Mw']=(ӡ:/̙+vcn дXwaP va* 00u-ZrB:M,-fU[6pTstprmz U)]iyh<_gmQEUr~ߙVJkP1!XPmz+|8]S6˗[PTqlD#!ZΎ/Ԇ_h _9ۉr ]]"k#?W12fYv1-[5vUѽZoB*~_36LBx8+5{U.7 I*ZLIFjP:\]\qxd@(<;s9߭>-DOxXxB>:ȵ:p~B|*' QpS'Z%<SqCsZr23/s\ ꏭ]= Щ{j94RB[0N;_(N.*E̫ ,}ppkB$HTH$2ܜ2|rtqu_^>zv/Z9bԪǂmʉ/Vg 'W+0h1_hx a>G;sTvpŗ쀻QӂnE/ߙ&B-&W#, 3Nأ{*=WɕS[u'UG3]!!6'-}~6?(`yNY;i 'a[4KI{$2uf 9u(VfcisAD!\|>Sh2,a]p1k }6@b8@CΌ9Y9)Ot! ݷuH.WC":1ҬIvq xٴ#-$!T&S#Yfsml "̴HF/Yhv m=-1 T c6?& DEMuy39Č>_)Nfoha^IwB^蔉-eg] D ^etBod۰2 3(CjϺ UckرlM endstream endobj 113 0 obj << /Type /Page /Contents 114 0 R /Resources 112 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 99 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bench/stability-bench.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 115 0 R /BBox [0 0 226 226] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 116 0 R >>/Font << /R8 117 0 R>> >> /Length 118 0 R /Filter /FlateDecode >> stream xY6 ޏTU*Etˁ$˥;0/p#KNϠ ҏU+,ob KGwjC\/5ǯ˩aS1 o>=>,ˏ3uYߝ+J6JV/˛Utsy^>Ne4jOa0S@0@!uP)iUvNgk_]!q 0 gYkr:NsM䵇;=$V@BUd<سF[KL@$ca={z`qM%Er!R(xX1Y%^< (  pK*c3ܮffhc(hBjjEʙ @IHST[wDp9#Q`KBF"y])k-A9U=Op(ɐS"aOvA$_?YFc# =ψO`H~H (%Ĭr[ *(+g8e"68HXV޼HژHf F}t5ז Wܸ(T H* )Q-ΩmG-e%!5qD 8}>允9`8]d4 3BtȻ\UQE/ڦn~Qx/AƓv3w:7'UVҭϭMnr??SWі_-^ﵩk-\|^<!brh`uΎFx֖$Z *uŚ5PZj\Ƃ-SZZԘ #ǹ;5^k 9 ^ڰq@R@Ů$th0kF09C\nxXQJwԂkX!>4&037є܋sOB{gp$ݺUϗawZ-۳f232;bLw:'ᢰwjs&&"r|5z+)[=gXJGz*pc<|7:OOU&D [9}=4PcPiA;~8رf,ٱev#c^ѷ%7JVftbD}B =1r#'@;rgDԱwIv`% !9x> endobj 116 0 obj << /Type /ExtGState /OPM 1 >> endobj 117 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj 118 0 obj 1395 endobj 100 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bench/freeverb-bench.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 119 0 R /BBox [0 0 226 226] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 120 0 R >>/Font << /R8 121 0 R>> >> /Length 122 0 R /Filter /FlateDecode >> stream xXMo6WpcEAP`lRׅv%93Jz%7{Ǐϣ`T>O0~~j=?8P쨝σj~8@q#LLst;|q:_xc@08%HzJn<qx*Pur⏝5 C 뒚%:l`'USPu $Pk8>/nҾru()F*y )Z#P/ HrlEI"yU'+Mn2(4]@;K{Fو 91ROm l'&eyYn}K0g0%զIy...tȻ2nOY}֨/ D9NAM*ϧӳk/@^2Z6񯽝@٩o 2Z6 pj(GCp<mniBLġљ{k4u-<"{Յ|m af_oO>LU>24,|(w>_>]}D9)&:XOn|u|2&"xw|xu+Ѽ4L}^꧟a-UJaJthG!WJR+68j 0Ks +Q\cnԦ"w1=8?OS'GM%*j7i#Dj! B́k+H+QS pnj>A.A#,yA$ '#v3#n}6S +#э/nk%˿΄3sH {R}/Aok@flB]J: &XեcQޕ49lZb`(iMy 6q2RC9 6-7 43Jfdfў* =P7q4c32McCeo3o_.oH7QvNubݑY 7jqVu͢Zcd DfA5M_{>,WN+KwQXW4 c몛Fvf-XQNɩET/c)hn|:Im5kWxXkx͇ˋv8@?گt~i9J&cGfN#>e}A I&&3o,mIأx9J/~ww| endstream endobj 119 0 obj << /Producer (GPL Ghostscript SVN PRE-RELEASE 8.61) /CreationDate (Wed Mar 4 04:49:35 2009) /ModDate (D:20090304071608Z) /Title (freeverb-bench.eps) /Subject (gnuplot plot) /Creator (gnuplot 4.2 patchlevel 4 ) /Author (orlarey) >> endobj 120 0 obj << /Type /ExtGState /OPM 1 >> endobj 121 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj 122 0 obj 1433 endobj 112 0 obj << /Font << /F41 4 0 R /F43 5 0 R /F54 16 0 R >> /XObject << /Im8 99 0 R /Im9 100 0 R >> /ProcSet [ /PDF /Text ] >> endobj 127 0 obj << /Length 2869 /Filter /FlateDecode >> stream xڵYYܶ~ׯ`NIC>ʃ%ǎrM*;d$(} gJTZ&>7m}'pRˊȉ )'sw.o̓?;=8p HԹw܋S'/r~rm˸ rWa⻁/].a#wơ](i/Npeo#,ak^;sWM9mTS/MxQzWnX`؝k_·]]nznsV}[Amu A"owA`XJ&~"| IBg<:7fO/_ne[IEDyMzF4vF܃OLfNA%^,a4&6?rOY 5ozHm peb5K 9];EA‡,SZBL¤9S 3K? ؆gkNѣ|?j޲Ʀ,!UVso6j<ǡ5,,USYW<<+8N ƞ|94x8/PL2Ek51[;T GJ=M/SKwPFLQd1D?Πt cЉ "M[m8FhːBkXHPd&})&lE(\ڇi,B)G J!B =*-+!9*IäGPznE1D "L[n!Y؂$*i%iӵnшB(OW,Y*tV~L 6Mdn;MiEQ6?7/-0>ct&ങ+o* 3Q 1@/iH: 4K[1 *A,:-(QU\nz9 䉤o30Q֌12C )T{(O,=.^`N@a,?LR[&t+r7o3(y`JȲIf#MH[)oZ)'e@I1J%? bK:,2X?fǗʄݦkWl$UK9( -VS`ڤDm!k⣊OE9 ߶/Ot[~B@A`jz` Mh!ڗӍ'SmZDI V̡\g04>r6=+( ˣ؉4\e!>\0 `a'}F%O#^!= u n)k~ -@ 焸,=:- J⟂5-_?#!AGM]M }|jfzUhKF 6*" 8m E".3d C(L֧w0}j8B8?eb.*Ğe]7Dz۠%| U:2| }&VHVӻ(l9~{ѡMdLG.k@ 4XWW`EPo?;a&wN9E:(ʋ,*/,ɜ-c%\~"1 :?YIgޱVn}2fR3/uY>B9PVEl[Zț:ſFP q0@ W{gjJT endstream endobj 126 0 obj << /Type /Page /Contents 127 0 R /Resources 125 0 R /MediaBox [0 0 612 792] /Parent 58 0 R >> endobj 101 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bench/karplus32-bench.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 128 0 R /BBox [0 0 226 226] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 129 0 R >>/Font << /R8 130 0 R>> >> /Length 131 0 R /Filter /FlateDecode >> stream xXMo7 ϯcz"[$(6Eؤ o8I+ҌDi)ٟg`<|em3qeԐ'ld 6e+C\FuN'Z>P8XKsL1)0x2*x^_&˾qŀaȁq&ʄMK)BgPu>B0y\6.N:jY8:!5b.Yzwg}>k0`^h1}AX+1TD**[!RǛ4D$wthiaΨ@_}f8d@q_ƄR PZk8)ZVLmDHDek#DVDK& WEoQ}G. 4NxROd=WG-6Y!=ioR(|]Nԓty( ӝDJqÊ?NOX(?nx"}&mhP6 Ҝ[nXL^7H RybR<Ȉy|#a:;u/X,J-ިײƲe1Q~ѡmaE`TƖ ~~ʹw){|B]y/5' ͹;^}{?*!k\[`z QwN@u\ )w#WC> endobj 129 0 obj << /Type /ExtGState /OPM 1 >> endobj 130 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj 131 0 obj 1387 endobj 109 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bench/mixer-bench.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 132 0 R /BBox [0 0 226 226] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 133 0 R >>/Font << /R8 134 0 R>> >> /Length 135 0 R /Filter /FlateDecode >> stream xXMo7 ϯcz"[$(6EQ$ oI+ڻĒ(i)ٟg`q~~ z,~@?;Uk7d :vŇoipt?-8yq~/9Oe M*Tv2*y^_& LG/p+{Pi=c;;i\e7'm:eZ4\`ؐ.搂JD=O ΁g[$X4x4+iƋ$J8fBM*d*:V*b*tM#MbYjd8?y\OdxGoHd _vRN?OJORX1RC:pQ޾tN6wA=nL=Yu ©7xr80u:R) r?qݣysuv!N$p4`iI` ͣy ]JFSܜ#H.!eΡ(̶ح6hq[.eW==)e\+@(O燏{AF٨=ݝ2}tҦ0\on=ҥҰaz뫟~n %*6ڏ2q,DhM5&Q1""+FWU@AvS#A'C8L= ~5Ἃ76YΣN Gu>;T}]M2/GVen(q{#~)?XOcN!v˂H0hc`jV:<٥ HX[K4{D+4^Ljي3Y3.04`i!#,ڈJ|DHQ]_XFTj%eju)J7 ʶ*Kݜ՛AŻy3zt9CyFrN+ ?mQ7Jt/m>W VbevX=Fa\'۸> endobj 133 0 obj << /Type /ExtGState /OPM 1 >> endobj 134 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj 135 0 obj 1297 endobj 125 0 obj << /Font << /F41 4 0 R /F43 5 0 R /F54 16 0 R /F47 6 0 R >> /XObject << /Im10 101 0 R /Im11 109 0 R >> /ProcSet [ /PDF /Text ] >> endobj 139 0 obj << /Length 967 /Filter /FlateDecode >> stream xڕVKsHW*f'ܲr*NK9l99 4BT!x0HF~Lt tsAV O( cD1"v2<ߖ+}~[7xF_ׂ |(p^HahDumFr=&Cc,R,MqJRsmmMJe4v"/q !T.2Ӱ SQ`m/"rZ^Y7TKvyc"(0yX}/]J)jq E `'(vՖB|@eXH`&5xGO⬻~)k{癿ilsr LWY_'ĦX O~WSH|lIOR{=}b;Tgar dRQy\v 78d:;Q,`GXCVd) S?&Kד@ÕZmQεj\A*}!NT?lz=W]vy@s);/*j,hkڏI0< m[ Ȳ]Z~^Lo[2&N$Agp8d@;@:O+bŦű\ CBl%KȤ[IEB?Ors )] (tn+;pi^y"ށzzHZ ضlYսt[ mOW}n ndlЁ頎LaxD0Ћm5`! pw3Ә!!#ݺF^_F $x:{{&e f=eq:呯c)C3#œISIޚ(+2L< endstream endobj 138 0 obj << /Type /Page /Contents 139 0 R /Resources 137 0 R /MediaBox [0 0 612 792] /Parent 140 0 R >> endobj 110 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bench/fdelay8-bench.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 141 0 R /BBox [0 0 226 226] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 142 0 R >>/Font << /R8 143 0 R>> >> /Length 144 0 R /Filter /FlateDecode >> stream xXMo6Wp!$(6Eؤ oI̐V%Ȓ7<я?O(?4xF<4oC!8b['5b(%M9iofLI=n\Jk+\2:vvRZY>dy1/jq1Q:_0h.i^ˋ檀%HԌ-W * b]lBL̡YzkTu5<#{ 5Eߞtb=)tG.FO ,ww>??>15'b8>}rͫGJH;^}{O6^;> /~{/0r z|1F'2J6‰xJIAtm2V*xns1bSJ|bk)1Ar$j9„遹J2/jm c/.Y)Gܣ<)/|})E ER2FS.R@FK7KՓ/:GBAuO%px7Џnt[눟f6fPA4N,Ml 17C$9m!kag~' AlbSt\4e\`@ (weل!%5 '^S~GzOB| @MLҊC-,1 *ֱ;*K:;뷝svɘќߝGNNQdB endstream endobj 141 0 obj << /Producer (GPL Ghostscript SVN PRE-RELEASE 8.61) /CreationDate (Wed Mar 4 04:49:35 2009) /ModDate (D:20090304071608Z) /Title (fdelay8-bench.eps) /Subject (gnuplot plot) /Creator (gnuplot 4.2 patchlevel 4 ) /Author (orlarey) >> endobj 142 0 obj << /Type /ExtGState /OPM 1 >> endobj 143 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj 144 0 obj 1409 endobj 111 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bench/rms-bench.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 145 0 R /BBox [0 0 226 226] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 146 0 R >>/Font << /R8 147 0 R>> >> /Length 148 0 R /Filter /FlateDecode >> stream xXn7W9q HAQh#Y gv"EN*I󬕙5}oLa6z~8eԐlCO5tc .@H仯x3} 4?&dlfUdU iz1~mj)⏝- C .v> ~^CrkΖ D@vkHZe`/Pgd snūDq6ָ"/@/q(n-dPDN@{SH#?VE:p XЇ&}}D>F}  D?^B8ӎDS3=d9!$umB9_jъ V*Fn ho^;Q}D50Ү f_gRKeSQRk"MxzT󃯹Q}9^=I=;p[k B#:tvRW:$sco)6}!`WX x~|Z@м!Y pI\d/ M qhdtޖNFsQddIi9-ޢW@$`Yp|:} nUsyszz{|?+J2ZSUů~YlwlbuvB>5Z(G}{5حaFӅ& ^qXkCi!s&E i  (f|^53If8{JE|{GYxz._hle-c}i˂pڶ.nÁ60I\`&۶2 yܾ^pg&춿GdoS6;к0=s(Mry\_C[ݓKpg X0pV57&'6,iLwtLvf endstream endobj 145 0 obj << /Producer (GPL Ghostscript SVN PRE-RELEASE 8.61) /CreationDate (Wed Mar 4 04:49:35 2009) /ModDate (D:20090304071609Z) /Title (rms-bench.eps) /Subject (gnuplot plot) /Creator (gnuplot 4.2 patchlevel 4 ) /Author (orlarey) >> endobj 146 0 obj << /Type /ExtGState /OPM 1 >> endobj 147 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj 148 0 obj 1393 endobj 123 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bench/rms8-bench.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 149 0 R /BBox [0 0 226 226] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 150 0 R >>/Font << /R8 151 0 R>> >> /Length 152 0 R /Filter /FlateDecode >> stream xXM6 WtL! EIbMڿ_Q$%nla$Q)yZOi~~z=?<2~w(/f4>v8d#A|3M׎8u<:e j21dT<<OǿÇU IZ S5{z֤SaN%ivr4YK]`:J@lHALI!&8d:AlAL9Ġ"q8I(F5>[0{6NtT_Aܒ5 yR'%LR%oMV9YkLZq?U`2[j&;24[%#@&#ޯk!#d&Pl)nH>8 a8-+ [<9jdO,Y-%Ӏzx#yj#K9Ȱ;rX|QH<2>)Ii5y3e1}}:퓩In gc S[it')H:,$ ,G5 <73(! _&Mp$G8K :7[9*@L)s\Y2΋Uu/)YlPM4M62X'L3?|s b4rNFpƷ^LR̭[zـC Ä0[ o+1 %X$e#wxd`B P"Ɛl{0>]U㇝rbO- a g:Ho%O3"+5Sa҄R )Ae\)UL>~|E.jЕѭ?$$ M-TIh$cp$_SIs)4yt`9x AiDKхP"zaȩWdaIF:qQd͘XRT 3{Gzf!h/(z֣oU9`]E*zA٪b> Xo_4sMGtwkLiBiﺓX{xZ/$v]}e"f+Z6.hQHL\߲ r!{G+TC-`]wЄąD[H+50r5g0\]4tQvUXug a,1]QB/.eV+媵¼e9.:GcPl.BwUn .,b3#RHPjK?c5sY> endstream endobj 149 0 obj << /Producer (GPL Ghostscript SVN PRE-RELEASE 8.61) /CreationDate (Wed Mar 4 04:49:35 2009) /ModDate (D:20090304071609Z) /Title (rms8-bench.eps) /Subject (gnuplot plot) /Creator (gnuplot 4.2 patchlevel 4 ) /Author (orlarey) >> endobj 150 0 obj << /Type /ExtGState /OPM 1 >> endobj 151 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj 152 0 obj 1427 endobj 137 0 obj << /Font << /F41 4 0 R /F43 5 0 R /F47 6 0 R >> /XObject << /Im12 110 0 R /Im13 111 0 R /Im14 123 0 R >> /ProcSet [ /PDF /Text ] >> endobj 155 0 obj << /Length 302 /Filter /FlateDecode >> stream xڝN0<]Җ٩ ,0 BfĘ&;4 GEw3@Pf:EϹk%vѓ;^rܔ,Vf'4Պ+?@ 5!8^Ȯ!-qG'LBT(~%4vv<֖SdC1]mmEbĚBhLC2]i~0J2ؽ2ɦCVq%#1~]~SE9ѪUUhn-גQ-p@f^vDOb(6>S/x6 endstream endobj 154 0 obj << /Type /Page /Contents 155 0 R /Resources 153 0 R /MediaBox [0 0 612 792] /Parent 140 0 R >> endobj 124 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bench/vec-speedup.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 156 0 R /BBox [0 0 226 226] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 157 0 R >>/Font << /R8 158 0 R>> >> /Length 159 0 R /Filter /FlateDecode >> stream xXM5c8иc@q@ !!aw;bB=.W](RzU~Ϯv,0oOf0/unņԐo`lCOTt>GGOWy|7isoNfbsdb6>}}3ڕB ;{G4}x6i[9% %<:t4c.0.8 xs\2i'7$hOC~]Fn0X3BRh+E,EoHk"ƫY"iO+E BA8BvBLi~GXxPF WPbqBϻM@ܥ5)^ź,ezçcRi¼;\<7M^ &Z~`.5h?J1%딖?<> ȃ]1{@TC+ŀK:N{|,&Z3820 6 *&j^+֗xS,#qHm.F{27qZb˵[5xpQ =3yz\GޚkXBT-1BCݠҢǻpQ V/7b4RMwӋ_~}r/P܀*4n34 v^܁]FObROc}_ȹUBvLm>g|eC$C7."IŴ;KA* _6 *o( !!`{goA' eGXO,~dGMfwҽshjvht r ɒ?_[l^~nP}vtr4rvPBga|=E<_Fp-Z5G ~ְJkPi O={q*c*[NglVø,<n42oҹbt] 040$]/O3nQ ;^5ZO{)|HUK2hLרzZN*P!٨qa8 3bZ 1cʪBv+15H-#aJ\TJj/}iqt8n .۱Dɕa׮ P5nێy4&lZ^즕n5RLJ?^jG);oW: endstream endobj 156 0 obj << /Producer (GPL Ghostscript SVN PRE-RELEASE 8.61) /CreationDate (Wed Mar 4 08:46:53 2009) /ModDate (D:20090304074658Z) /Title (vec-speedup.eps) /Subject (gnuplot plot) /Creator (gnuplot 4.2 patchlevel 4 ) /Author (orlarey) >> endobj 157 0 obj << /Type /ExtGState /OPM 1 >> endobj 158 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj 159 0 obj 1484 endobj 136 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bench/par-speedup.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 160 0 R /BBox [0 0 226 226] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 161 0 R >>/Font << /R8 162 0 R>> >> /Length 163 0 R /Filter /FlateDecode >> stream xXMo$5rq`w"8,ddDv,]i&iize'F3h?y{xOϣλ&ǏCCoGx,>C #:r?@oq{)ҘƛҔm*3)4g7_ o6eTj>zf_?##F+{>-\)1?:yb085Hs*5Ƨ0%* K֖Aq"CU@" ya/lmJa IaץpI3oZJe+ڪpb>:#24]}@ž U7J!u #Pa`cdWkJ%>]~a<ŖI3??]wxLH-+8$޵wlRP9Lt~H85 )N1$딖?ޝuGsƦ- Q,,;ŀ'uF~x.&X9b "SooݘHĪqլ+vx-S.7g"[[2WDqZE⒛; [<_o">ɀ]…BM ~<Ny]䊭}٠f?<w?Bq(֛_5^-~/܀P`BXS&ձ fQ)$`Klq98uU%^2> endobj 161 0 obj << /Type /ExtGState /OPM 1 >> endobj 162 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj 163 0 obj 1469 endobj 153 0 obj << /Font << /F41 4 0 R /F43 5 0 R >> /XObject << /Im15 124 0 R /Im16 136 0 R >> /ProcSet [ /PDF /Text ] >> endobj 164 0 obj [706.2] endobj 165 0 obj [329.4] endobj 166 0 obj [531.3 531.3] endobj 167 0 obj [525] endobj 168 0 obj [830.6] endobj 169 0 obj [569.5 569.5 569.5] endobj 171 0 obj [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] endobj 172 0 obj [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] endobj 173 0 obj [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] endobj 174 0 obj [799.4] endobj 175 0 obj [498.8 490.1] endobj 176 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500 277.8 833.3] endobj 177 0 obj [277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.3 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.8 361.1] endobj 178 0 obj [388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4] endobj 179 0 obj [500 500 167 333 556 278 333 333 0 333 675 0 556 389 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 214 250 333 420 500 500 833 778 333 333 333 500 675 250 333 250 278 500 500 500 500 500 500 500 500 500 500 333 333 675 675 675 500 920 611 611 667 722 611 611 722 722 333 444 667 556 833 667 722 611 722 611 500 556 722 611 833 611 556 556 389 278 389 422 500 333 500 500 444 500 444 278 500 500 278 278 444 278 722 500 500 500 500 389 389 278 500 444 667 444 444 389] endobj 180 0 obj [556 556 167 333 611 278 333 333 0 333 564 0 611 444 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 180 250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444 921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 480 200 480 541 0 0 0 333 500 444 1000 500 500 333 1000 556 333 889 0 0 0 0 0 0 444 444 350 500] endobj 181 0 obj [333 250 278 500 500 500 500 500 500 500 500 500 500 333 333 570 570 570 500 930 722 667 722 722 667 611 778 778 389 500 778 667 944 722 778 611 778 722 556 667 722 722 1000 722 722 667 333 278 333 581 500 333 500 556 444 556 444 333 500 556 278 333 556 278 833 556 500 556 556 444 389 333 556 500 722 500 500 444] endobj 182 0 obj << /Length1 742 /Length2 1115 /Length3 0 /Length 1638 /Filter /FlateDecode >> stream xڭiTW!b냲hB%4 ƪ%WL`j I %eŸ ZD)BA j*V%@("Z$҂HAB~{߳ &r( $ {?}#L0BC66 1–Џ-E<L9&oAB6b4:F 9; b4=8l>8("/NH@"A 0)BQ!4ǴVÀ47N%8 c rEx ç!8nsfb ;^-@@'E"b/7ptޘR6 I&pP)'| 2GwpBYAqNlT( i;c1"(0.Ŀ [-`\T ݨ-z *" IBL%I '\ zt,aKrvÛTW@s&GɉtVy(n$ nYUFbuzsX~1J>?ռ>A3ffO ;[#)9G;g44"?nO ioxRz(_ȓ-Fğz,꾑Uebdr445Wfr(W=MUEǞ1rܢbolzW*%fݑ{j᝚TwޝDsIYBSE2 O/x߯錅gK;5۫1egL9lޑqmAq߀^{ҲAQ: K7o G'7> _hwqsN {|1:gEY f*',N$ z;DzkJd1 'X] qȅߤ M2\J6;;o"{ ؓଧ [R1KWOkW_Z\xf!yIXYc/]$,g \~2nF](eT[]PZ`W8\ Oc5Ҹ(e`m! hВ}%#dk_7QG++[O ~ktML/1n?n_*1ɇi &l+Y.U~QTkg/Mܽ;Zڶg!cLն-$spAcn딎zϬuʏRIls;Vϖioȉ%~)i0dZe˹W<BElk4K d:Cr]LLF{uxW%_b(BAyEӝᖍ{i+:^l +ZeW[+`ݫm/>EIj|jbAZWJ: wC=wД jx*câNfp?pS.z-mfűߕL,<1z?U[P@ ?P\+n3PGi@vw_ tE#C%y܇Q !_}bj<9bո0) LɿH82̺֕lfډ5,x4TTpue[qS5^_R endstream endobj 183 0 obj << /Type /FontDescriptor /FontName /UNRHAG+CMBX10 /Flags 4 /FontBBox [-301 -250 1164 946] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet (/C) /FontFile 182 0 R >> endobj 184 0 obj << /Length1 1008 /Length2 4454 /Length3 0 /Length 5118 /Filter /FlateDecode >> stream xڭgTSkǩ*Pl"%NhR$@H "HSQ)JU(EzUґ4)RPss|s޵ n9)b~|΁5C)Qs#3o%VG7'|_.x>:#<O6L^]%eFK8isr2nD?uIuNC+W &[VVGL &!o&Y!-3y|#vCs:9xu xQ5 [^4FH&\q)۹0{~ڐ(G4Cfba]ofvEq.?y+1V -bRLUeS)Y?`#M;+r/pδj\.pq4#7-1:ќī˥ ,%pna{={f_^q%VDwGrrFFG NgK6URߜMzIy+fyS!iwݲ!O;iM{4swU!,g8qPȣy)Bzq|إlAo|֋ Q]$wX h#yrVxيY}y r6 L G|Rm\"8w1]]G} ol&0'܍gm{ʮYbd-PrƍYDs~R{?hSjw4]k]5 k g,QЕX"-eȆpl n.q[¾nkS޸!r^َUvCC5o?-V=E{1їbd ^27( TztZ,vEӲuU/yD7n<bvdjnl>pȅ6P܊B'rx:&sﵗ%>VJC!_aS=Xb"e]OzuL=t+ ^KJzƁNi:Oh?\}|Wʅs}ڭӁ%^<&C63W`SDzO)HT>?XZwu>CMk]X)2XB cx/njW6c/^"̛ҖBwhcOֹ(I:mϟhӬ!']`9­eZC_ğ<:>M'!|BG]KWr=`DHgly ȎϜ?JQxzEjG,V\-&(Gœa},o.t8c #1kĐGnoeEnGJ k{>tV,O4/l} c#uNFi;>2w4y .ɵ!-!׆TS,]&gw%%gW??@o%H{?1-Aك,)+?;Y+hG6^T!iUSE\ 8sF3`qsQY!bgsc0nFC-N?HG-ءkg!ail܉3O)R|x=" o+޴@0Jוּ=Q <n~o˔9s7*E[Y+k) !g bs֦tlz؃/d`fr '9RnxH8rVRlboVې@0I5&0T/* qw%d5^Lͱ/-$SLt/[bHזW}c>8x`?CV}ys=rGh[s9ȫ,8o#1:ogw,|ir2w[z,77;] q*cIa)^[Zw kOp'ƚ Bճ1m, OA7AnfgZHYU-)DŽ`zٕ[f#PLڶ+ l{'!f٣-J%%c3&Ȼvuym/yE<Rr a\rvʻˏ7LmWSznzx£K"|\:* vc[֯(IvZ}J-t=3n72^]^1FG[95þ -$o@7jk6IPfM)Bt*[xy,fI;""v5$T\<>~gEP)e]cUΩډ[IigbKvUV*L,"K욧 >cE ΅}nf$>x{sS0V*z\y85(ќ{/)YG.,v^ADo7M-\i]+B0}a"aiGܓLaWs#eD`}tֲk\=LKxkP=W5VyDa Dk'/rx&8G:ҟXyó֞,|\:N#zWPo#:1XG$&zR_8pR4ZiQuǬ3'?@o9BZA­@窔awndS7`usC ͩh?ꐭ6,>QʳӮ] ip-c8~yteN^D|{d,L~*8J+4A*7'5:X݊NѼ %}\瑈h*QP#Vlcק}Z|0KVf/ǻXeK32K~(*r" *Ϗw U8y_-N'H wyeOgƒk>G[F5Dٳ>XX$n:#/ ꭎu ZsbRAMPҎx|hh\B ԧO}=aZv~UޛGSյЀ endstream endobj 185 0 obj << /Type /FontDescriptor /FontName /WXZMGK+CMMI10 /Flags 4 /FontBBox [-32 -250 1048 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet (/E/L/S/X/Y/a/comma/d/e/f/g/i/m/n/o/period/slash/t) /FontFile 184 0 R >> endobj 186 0 obj << /Length1 744 /Length2 1160 /Length3 0 /Length 1689 /Filter /FlateDecode >> stream xڭiTW" 0ZQ/b% Ā ;A6& $39a Ȣ,.""JBeeSa (PXOOߞRo˕!wlT# ^l/t"SBb Fao :ۑiD2  ǀ 2+bR1b, 4TQ` )!)`),n( FY$/$mJn )p(`3I8Ed B4!,|swL&ggX,e\ %RH̗~e@RX%?2XEde8Pop;"P, Ct> }K0퓷;7a ( @G: #h4gt))shV2/Ɂm><Շ,h=!a{*xlҳh=gOP&]WYs.巾YNo .&h˳mע.#uYPkJR'kCS+F_7K}]orWf.5Mܘ֔چE`>}tDx4e0uxw J]>uFI^G骮.ݚ,(9k /}1-~Ӟ/M^Ug閭{ ݶLtdIkU*NEՙc{zyY&;oY0P%:I>ڴi*7)w 9goܟr#>WJ>  g%K><4{'#l[P{t37/˶K_F~ &MTgF$I4:p-hGޥ&Q}w^Z꫾|M<f;,6<@VOĮ֞8@OUB3˺oCYeR@qS7B$,}oۺ]>YwCg!-KnotyCKFԋn~ 2j9(i>ȢϏV'|8*F J+qnwxL11 endstream endobj 187 0 obj << /Type /FontDescriptor /FontName /FRUNXE+CMMI7 /Flags 4 /FontBBox [0 -250 1171 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet (/n) /FontFile 186 0 R >> endobj 188 0 obj << /Length1 761 /Length2 1310 /Length3 0 /Length 1848 /Filter /FlateDecode >> stream xڭy8;ZAU[m?S"AN˳AΌS j-(*D7fݪL(T̘Z=tkIB~[>smτoESQAјǒݧіjwU_[LLR~)ntߍfw|~m*ˊ"57ryKń}yv{P\x]- (ޭaѿg~{Ք֮OoڗW0iYkn^ &ߦy9umש$9]]|=m?.8V~]a5{J\B35%ͺ/~tdRaS!=3%yK-,*I=JKTEG)x9Qnc>{3K埳]}3LtK Ck,YkISwV2iljBS޷s\ӊcY]ÊYG6tPZs&UzijCTdNTЌ2 R 4?30@{N0J0=X~~٣GmPd7H&ǁ{dN-{˫{3-حqAzLǫ-Tğ:~m #DH4  aRc'ɇ[4M-TDaG(Wk%)Ͻ YtB _g/)AhKb\N$uD<3Urm,JI+1L;;;[/$䱔%@[J^;ԬnlKl:* ۷Vj/;mSy_8 ೤}<|5YΓo:c32.8Or`vk|}2x 5f85և3*فUE2k{m8Wbk1ǥn9YeE;O([kU;̎I94֨V[c;N'Fe7L>#+8ZBL?cE.:qeoY'Tߖ64wj Qa,.V#ݪқ~,fF,FX)E^.uhJ9,Ϸ{$3 __O53{`RDLP"-`\~ŮOWIwC/dMTēxNćv!'k"+dcgx}g X'ԜWRL.(c^kڗ3Pd#84R]GSm x endstream endobj 189 0 obj << /Type /FontDescriptor /FontName /STSLWD+CMMI9 /Flags 4 /FontBBox [-29 -250 1075 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 74 /XHeight 431 /CharSet (/f/g) /FontFile 188 0 R >> endobj 190 0 obj << /Length1 1031 /Length2 4116 /Length3 0 /Length 4784 /Filter /FlateDecode >> stream xڭSuXTkIRk@BbABzf`.! "JIA rR@xn|]kz~Fať%`@ZBJ D! X •@ @?_ey9ey ypq?p E P+"h/@"&?+&po8$A!- pBG E!Ӓ. PE;< 1xS?l &(}ܙB{oqmi)sPz aǠj wB<B H?1 s8C?x8&Â}话3"Pػ=R㧃A'?Oꥅ(@So@~&Ag4BIG "؟__$a!|9 ៌<h/BZJ '#KrvhjrdO(/ra۫ދ'q|뿡< 늁,^JI8K~2x?v)) Lwߕ?3p?8b97Xr'gwXH*g.kƮEKLYtd, ]Wy\/]oijn䭢3{vI!y~͏k vnY&UeEtu5YS `dd@7<1&ǟ].ˈV gGݒ\@vd^V޵HoXjB#vН@dlA uUOf4~F0ZeN=V#ěHw> 6ri˒em‚W_fcz8NYz41lNݤʴYipRX_Ĉ35\ (Yԭj2C-R"UkU.ʌCwۻs혟8U椘!?Xd4VT} QWagIj`]> aWAAfAr)bGS3HZHZJOGʤ{5XyaJiHei>{kW~콶ξ4G,t͞u{3LLIVG$ ۯmo,=|?SپjfCUk]?o%C9o7u!pl㱪Ss^mq0g 9͆ʬI\<6>Gzho<{TK1ˉGܞ6Y 76멜\GL6pzMY6v{SB$45偕)1;pY56lsˢ(D$aTf4^a wxn(zobζ m"t?-2qI+4:mJ%$ˡ=ЙH dVd|iniUgZK7PM+y|$PcUBM(v2&[7/&LJlhJ kW:؜uuDp1JoW7–㢰@昉d]J )~0?߳ {ޑtˈ7YZȈj p!c|<9('mfS4jNPt6(ƸcuSXP2t+a*t7G~.0) Eo1 v5%~- +G a|K6Uכ5SsVe.7EJ9ta5O4ҧ:?{FUh҉_N#m/ZoG~m Iȯ9 Dq]$ q52F́OnEnWVnؿ 7ݥe'٩uEgWV:Qe6:_ߒxzln:Ǧ¢b{*U'$.0^Wh5ECT_uojՔYA1'_ҁEv R'q'dlwF{(<4n\пndWʆ"e7 rdmz䚪GX鵳S3U~d~>hOY= ƖNDsZ8+/q)d@9s*Dha ڤhҹڣaEq܅ \eW8=xhix"9W7{p{.~tW aw)8MK-sG^mN}톨 Dеqz^Bc ؘa][ 5Ŋle :H S7W* LlZU̼&݃I*~494dT3&~ݺG̐4UnΡ*'s0r}0%%r|T܄5mufGW~)sWwZYwO:؍vn# o>Xd w6  % #.QҎ=!,U/eM« 1G(OucXqrap{ͱxMMtsk c2[PczU,`RCз;}݅\iZf2:jIRILQ)N1eD_9NĴ~Ba\ #VtC+-ID^Օ k *~Z17}MF&昁!mѿk; ;M;PDcRB8 TUAÖJm=fyKLMks[Á7&/x,ul/ORq6}zts6uv%ǎ]^Ee7]u+8L)3LJN^OBsp򏨚݌W)s:@?m&jߥ`]*ӓȹ$1/φ9:NKX7s5SD,OҮ0<+l}]歷QaS8mgQydڣ\]1!9)I)bΚwk>]~,Z08){om}ϫ՝f9𚺆+`s_2aK:{i{_iѨ{՗GR؄emr.n\u6jş;$wgN5}k1&VpGr$jMIF{xke섭')Z];?2a9 M+pi6OT4BNC|޴ueF,OB:c DqGiC#E霭|9 آbWϥ fn&9ފ$^IN̩VF 6}Qjqbu/;3r A:;Ƭ3B3]1]v;a䂵9A#♫s6QǾW\)B?hL!r{LD\&=z{ FS(afӫ (iW+Oz{i$ `hmcy-w,G3(k;HK\d>vjd3KͶ POE>{䒮 F~,b憃=Y~9ܸlPνhJ#?h-r~Y9%:Y fMO"o-ǥ DiT>Cԏ:UFݬ +D~$0V_ʙ;> endobj 192 0 obj << /Length1 768 /Length2 1353 /Length3 0 /Length 1892 /Filter /FlateDecode >> stream xڭR{8yT]:bs0 *9QNcx_f^QĘP%ǶZlr^$6JCRDƮCJ\ 97y>tF S 1\B|B!0FS" X#!|.Xk"c r!h,br(r8zpy 7d` P` nݏƟivX)Ħؤ F``~qD|(v0y8=9 ^/o*3#!a(6ȅ7كl(,xj29 s@xt(d;B(+crx&ımX9rx ɑ +?䯡_,Ά ExrGHnȸqLH`80W93 yyqEM̪9ZVٕ;~euE\ln)U]V@Ы{-9`@R*[ɵ;,8wwcB|٢QHO];WM3RrH W![_@3#8k)n"-ݘMJvJN_2[XCǣRO뮻W/j0c-hFuE_]|uloG8Kk7ռ2̡W.yV.Jlդ*3r fdX܁EGUzd 'i(L)OޓZnyO*NAfxq/k:ڮ?fLuPqm3d淫D%?I S$zƳcTv Ksi[>4Dux˭7Z/IS޲+5&[lc|ڑ%Hs{fss啵׎cźrdfYtނ5ɐQ\vb㔂)t\a#t_V+9RշDePZww5JNݧY9T^&Lԋbl{ނ>)_~^I/ԨV1=:u)XbQ_lj3sRF(Gj+Fza':c2lN'lo>SӮy},.K&ս_dMIa Ϻ%㞓w#Z>̪IΞ0'Ώ(g"X;׿Ǜ endstream endobj 193 0 obj << /Type /FontDescriptor /FontName /ZEOTZW+CMR7 /Flags 4 /FontBBox [-27 -250 1122 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet (/one/two/zero) /FontFile 192 0 R >> endobj 194 0 obj << /Length1 859 /Length2 1277 /Length3 0 /Length 1867 /Filter /FlateDecode >> stream xڭR{b SSf1GvlN]ݫ$* B(4~ӘMG~0cu< A`"GY8Ҫ"' 0 AmXL@FDz9vC1yR0ք}luFCY/8 ds 2L0"}p=ΆQ?K a/AP",65QVc54$l[19ɀy 98A@൘?Ch5쟮ڲS``jLj?Dz0kC@Dqlyo*|mH$R2+л2* GygkrSJ/+p*jBq0Bq-'L߲3TPFVY-d=31-rk/wy|B%-&te7>9u:~3a/#C}ĦPvsG%i%< hՈi|gxJl VͶQ>yt>-/ TZ]|?RaUnF/-daż>%x"g"^_UW2.mRBsp\ze@8 Q[Abr"}R\i+R)u6r(2ZϨ;u:$QwCW_k\vp$`3sQ.[M4 [e+TX,7~j6ǝ qܤ*(mڭߓk9W޻S_gZX)9w^"H"~Q ,  4O&OVf*Z845;Fje䆯]̭+B =-:9Vڡ!V=\6-Nq:Ͷ} > endobj 196 0 obj << /Length1 746 /Length2 603 /Length3 0 /Length 1117 /Filter /FlateDecode >> stream xSU uLOJu+53Rp 4W03RUu.JM,sI,IR04Tp,MW04U002225RUp/,L(Qp)2WpM-LNSM,HZRQZZTeh\ǥrg^Z9D8&UZT tБ @'T*qJB7ܭ4'/1d<(0s3s* s JKR|SRЕB曚Y.Y옗khg`l ,vˬHM ,IPHK)N楠;z`{hCb,WRY`P "0*ʬP6300*B+.׼̼t#S3ĢJ.QF Ն y) @(CV!- & E@0_Q Lr FF F( KRJ 0~Z&0SS+Rn^Onɚme X9X&u3SjM*,y־% mHx֮"&4׻,^5+Åa3>_xV/'x楼pZkBZAo`(&^y@O+{?x(@Cҳ36*8" :|/mLj}5?뀂{́xLp'X61q^&7":LnWa_TՓlgcx'k]K9j;/rhD; U-z?!f>$̯_6ai|mӻ'uRe"V]v~K-rʋο^1cKǧS9mUZsʂOnܔ┓:'j9'<`ڷ1O~~;>koU$u*<)ᅑxђw'.9%cI~G9}{kCDnof57>Zz55ۼ1(ysx'jN[ +/.yB?4뼫}!h;sma,rXn1h> endobj 198 0 obj << /Length1 748 /Length2 648 /Length3 0 /Length 1166 /Filter /FlateDecode >> stream xSU uLOJu+53Rp T03RUu.JM,sI,IR04Tp,MW04U002222RUp/,L(Qp)2WpM-LNSM,HZRQZZTeh\ǥrg^Z9D8&UZT tБ @'T*qJB7ܭ4'/1d<(0s3s* s JKR|SRЕB曚Y.Y옗khg`l ,vˬHM ,IPHK)N楠;z`;{;kCb,WRY`P "0*ʬP6300*B+.׼̼t#S3ĢJ.QF Ն y) @(CV!- F& řK,Ipaz)Z@ABLܼEariQQj^ 8OajjEj2k-Yӷs]|a>k_d?nvfJm@%>wX,iG /vRfǝ%ش ̵Ɵh3pi8LsEN͚ϯ/%>nԸ[l)* W2nT<.s9EN{6oc^YD/jWh?V(9+AM _{DCO2=)s#oY;ݟsC=՗b;*rSgr_*}=.MrV3W;vfu/ lI(k-<; S=ء~&O,֫ZD_m_7 ?QTZsׄݛ7,g;EZOy,L+գg^Ԕ^T;nOxkcoXw\ ز_IWNO~綡{r(Fw懄;ӌ+n2Inс_[=8gz, endstream endobj 199 0 obj << /Type /FontDescriptor /FontName /CSSKWC+CMSY9 /Flags 4 /FontBBox [-30 -958 1146 777] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 87 /XHeight 431 /CharSet (/similar) /FontFile 198 0 R >> endobj 200 0 obj << /Length1 740 /Length2 1437 /Length3 0 /Length 1966 /Filter /FlateDecode >> stream xڭ{< C"ubL&5cƐ;f\6c5f^w i*:KrriFۨK HTT.i{>kg}o-q@΍DBT#DL$"@ 1wDǃ. qyj Wȃcv^d f9.؊ : ! ; CG 3 9hyM(~I3_K ̵@D8,!`BQhK?Dq``}ۜb[ΆY¿/xaB<ηRbotpD @T8bF ⡅4a~ˠpn2˟G](a XOyBLo'0_B_WF0&̉V6ǣ ъln"9L(@ `K<('I _Ԏ,S߁LFwΊdlID`G $AP5AP"@# ;rj)g%Jڟ.kR=Rb -U59glmDjϹF7pM/R3F@8_m(L1JP%=m5%@qVn8:MS+"y(yGjݺ7Hc3}چzX|ham||G{p}\b}`jfCȌRPxy6CS0RS׺ȍ+_n/u/5=fukjO{{)47+&p$Ѧ'LBcJ0++֯M}S* h6K/n\7#V4䕱SQ8_k>QeJeؕDS̭aoSiC$lDzL1h%e-!כ%^XIkKVO*RrlN:U쇣?讲l endstream endobj 201 0 obj << /Type /FontDescriptor /FontName /PHOFPC+CMTT10 /Flags 4 /FontBBox [-4 -235 731 800] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/S) /FontFile 200 0 R >> endobj 202 0 obj << /Length1 751 /Length2 1196 /Length3 0 /Length 1732 /Filter /FlateDecode >> stream xڭ8[kZcJ)IJ}މ_E$'ď鴶hYJ5XPjmޡeXK^53>|}vA]h8dąJнѕqt@zD $\` =ɞB!bh|PYB@>:a6"2W!++@(EI C$1 `+@0̑߶@PH,"r`OpX >FQ ⯌_ om~7|E"Z! @Ń47%H̀ 'Bq"ePYˀƶJ>r:W{A,Hʄ ]1j GIW߱5{ 0DX"KAH@*P R*t F"baf6)+UM"x$^?7,Mu!.{$w@P%"(@V_ [ )dc ljNyɺtߪMg\n=^%:?Q^x|%kq^kZmLVҔsL3W&4} ?=֩".1]:ݺIr0Ez]iqb)wppxa3nHJ[2,W.G)p轌ۿti^Y4n'PIU;s:tj)_#iUAVO|ֵ,僝{j.htQ^n2';޷ oF3~cfK;xK:95Vwƹ5* X9"k_M>f6B~E?(.tL+cfW'vKww'3\f06{3K.=O,tiN5Tu J XjfUdU⅊^2D&&?{& ~bYP`_RNv{~t(ד:bupv~77d(ţzEͺIfԭUqb*6bm(5*Ϩί,=Hज़eȟR7g[8~<8$Pi]žd`elWA/1t w+)/ HMÍ_e&K-OW[g.޵uFyWT\;a<GVu3UM.A[&o|ߋ<{%i?F|YLL1Kb`7QT}yqCH&kӍd^5 #f -jnfOD}n7buIuĻms*5x&SϢ `s ֋`z=r1]ݔ((?t*6cYUdr(޿bˬw:Slbgtt;jL{lI ҙ۵(I endstream endobj 203 0 obj << /Type /FontDescriptor /FontName /BZZSDM+CMTT8 /Flags 4 /FontBBox [-5 -232 545 699] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet (/one/two) /FontFile 202 0 R >> endobj 204 0 obj << /Length1 1606 /Length2 8427 /Length3 0 /Length 9239 /Filter /FlateDecode >> stream xڭveT]54::)g) 6@ 4 DH6V. ,CfxoXn@{y__k RUWP0ʩh =@r2,s0wi.X.S# p:;ظ<l\VΦ s ` 7g%!GgsóL q1wqIbm [>GZ] 션ڀ\w.3  WտV@ggWQ=mr-ѸsCs[ـ8~ nO 3 S 0 Zq!);s"$&5-job<-~/o Q>Ad,';_FY `ijܣ?vm|Ol\iYۘہ~7/dw!--'m'JYuס 7$`sl`uV68x=d79hBLAσOos8q h46MHTJvXU.Xfr_^7.;t|Vd$gH0uҷp}L;ҍ:} +NQu {$gk4ni:b*8ryd,?hc1G/` (&&ɝ|;m8_F"8wwh倭)еLMK7!wgnC|U5~)ZU~f/G9$ʫebsX`:CV|SFiz#'D;2OBJ%-ƈ f^~ZArehw@YI>=#ݣ!D ޑ"nHٕ9*TM-Y"&G/ 'irFHoKu0TՑM+fh@?ϖ=`wmT(/;Aƨ5/1:,3&A5_r}Mc{~Hǐ;HĄ 2z`4oϏ>ވE[ {::*:[BebJofN/Y[⶷#x2F ɼgA{kIq^QkdbE#ϴ/|c|A|PR麖9R{07B>?S]7m%@J\:L=(uJ{xHb){WF3c(6JK4_p#|jV]YEi`1+|<55ȏKۢK 2IR>RJ'w:~Ias@  'jT\HmG›'c|V! J:F~逡 {z*WVPP<3Y$`ݹΏ.ƋKe)n46p//r-Đ~U,vqΉ4̮Zf%̮֩ Cx;Nvf -ip;mܰp\uro4@)v4l *|1k]0zlx»EY3kn0;Qg6f˥@Gz_Y SOMm&!Ս98Al@MQ,sLn\`8C *Emx'OH}JjIo4QiZpuX,c)4^НFc]idUEV`ld |J K6:?|9Ln8k"_Q"inDX-xr3)̳_ZV,(G\@iv1܂ K|Ϸ\ FF9̌Ca#R#ʒz!hު̩wBDn*S[=t@7|Q:J̆K?,װMp%;[jcѴ>0 iQ54ؘ(Ϥkdgov/v<;'ɳ련C%=B[\p}Hڛq 3dRlyۢ a8%XK wD$Ce)KDפEfN0rO\W+1 udLunQ(іVK58/MZNxKY/Y3Z e`0XwƉB>UC}n!jS).*:qstհBsV](O)/{ZK󕰱QEӟ25guȬd+y{ǩ6efvr׬׊$|4ju)_nV Y-r ‚Y_?8/K6MRY 9'3i)d wT[r@+_gxqkJʢJˊ}9=B j߳{4d,9fҳ" 2A[uMbww=t_Q^Ψ4z'V<81л<ogE3R5Uz z/6c,g>Qa7XQfn; kujyXŅursT?dSX Uʧj["DupKC <\|}FqTidA.Z \j{[ àSڿWw`OgGWjOL|7.8%ZZOQyԡhg8晱V%dgutRh]u~uԠ5ņm)s?;E #P$xT‡ѲU9f)JBmv%'L', Q/.EeT.R7!iK,Xز ZfSq|97&=K?^GaU[j2s3aNY[PQoa"`T1e4>7 NTDjڶ IrnCa1g`(u:n:Nuʮ [0gFA VN.OujJI"-SOaa]%R2}$-BiH#w$xXgv]nh707bf ۰{O&:KCRX[5*m/elԅ3: -,bs PA8@$;/'!6RǣԬ,H.`5K]hiqORJNO}":*|ob""ҥ`ZL Kk_ ~/tqX%2Hk:"ث@R( ݷO8 i<|-Mp']:Fʔh `ƳpէɎi^\!7šmz!o1̞v5]M ?E%Y@mqS˟#:,YPE936af6ǘ*WqD״ ɏNf6$cŵQ12=6v+4kzsuneRR  0L'8Kuw]Ҋ)ukiԠdJ gv7I*vv:_06iU(Z? -6.xRkމ3\bx#%, }{KO)0 z$Jg\'oeu0UW+Y-_X22rqP{xOWɚw_90d݄wf]S)q{_j57:hv#..X`D>@ ta8<րk^ ϟ`Y7Stz/J":u}RMm:ꋤggGL<8ΙhL$9l!s_?j%0tYe !d@8z 4o) y#PuFz,UלH;c~n W|?'!s2qEGlۭ}!䓈y%hU<⚘+jP&V0?֮Q5 LtMx;I JB3e9^Ж<|,YYm/8l>)%WQ䶣:BP#-dw&VKL[ 2/Ŭ-^ah/%mѿYsdIC09cޯ?]}"L Ǎd^iE~{,v71sϒzur?0b"=LDSSP@RRB kl5&j+YOř[2*ƍ4@:FCܧdfoc5vU38Az1o_IjI#y_3_A NgaKA9B4 ,{i If.[t*$nldcХҝ-6`@J‚b3f ǻ+g}&4Yr3YGeע;$n/u:D v kX,rAi`.'57_Nq By"E%`a h&7ts 8%G~1w;LyݠO2Ewq5C^E{ R!(aM;$0&[TWiV o3 /C(21lDmHD([5{b۷!&ǀ m _ܧMa.~K() K( AImTJ8(3g0M͐2MIQ|R0͡9e$Ku;N}KnU+9 CDo[1 QQſ `ŭtP}: (̝\;߅2wCQ:[z\ }$EF6KG#&~9 U)(+)(ԫh2'FA]F8Ou 1#((b3NTQe{=Bl_qlm3 ɰ,;(sƛ2 h~l,%0 1M .wv]ЗLR\ko9 `Q(m'ҡ&#)&gZc踼4C4,Q5pȀ_p&"H\,C 5R~oIYCMRҊ1OɣĪ̷Y5EU8y`cbz10nʴ^LZjpadʨvW/7N}LV* *z Mt52r|IA*״1J > A(g T!}TESنyX~^=Z%w?$Km굙Iލ̄TI}0n\h#րkD~tU+X%*XwV4B{+Ӻ~'yUBFb>τ|@;y.N*T4Nxs0+zy@ nj^ _H[3}7YP[ tc3'/Eto\REB&R=Ӗ=ʎNZZN Yɩ~+E.n~DGKbɢ^e VDKIdfrċ{ U9~r'8Uӽ12{YDI<Ai rdI1G|cC^"(PMkE uq/]|мA6M5%5I)Vw(v0c7VP(eq 5(dX a=kQNZ{ -U`MpjCE$P#Յ%P/XNJӏ9ܶn=p,93WcbTzu)+}ZyyH=42~eݞLth>VBR4Tʵ[$TTtY)ڪ˴d{#[f&\14RX wc#mpU^AOmx8Jh§4.^/Կ~%ḥNempy W}e, GiEe*MmĜ_lRT6"FC38L;Fr=WQ._Шk+ε)bxуO-Obτ q^ܱ +O5uk>S$D hiy`ڭ.=_g+IA?cdPy(CG˃qLnPrS[/V#%o˹ǝK EܪXX7Sb9];v}<ݼqWd}" 'zN,rE0xz&G z 1$m=.&v^"BLK9j(92SQl"~14Pu=ʂ.)4ujaUoCZ>Ӭ!}2D0cXIpw&(39ɄY^(ѱa#{36yőelmW^6ԻJwA?bD$N=~jS/P:M 93Kd " Oiٰ';TK-[CdaT!R2}ϝ؂}.<ѐM Eblwa]߻+}STHuܜ'wD$@L`w59cB`Nb2* 6 _ z lߧ`Xj@jRys3x$RɃhx~SW,»畻p S,k=v؊zuJ f?͵c#8|a1DXs% eT8T<ɡ/ԌD& [M^A">x1oTL!6!X׾3zLx~B/@3rA']jtU endstream endobj 205 0 obj << /Type /FontDescriptor /FontName /DCRUGA+NimbusMonL-Bold /Flags 4 /FontBBox [-43 -278 681 871] /Ascent 623 /CapHeight 552 /Descent -126 /ItalicAngle 0 /StemV 101 /XHeight 439 /CharSet (/a/b/c/d/e/f/g/h/i/l/m/n/numbersign/o/p/r/s/t/u/v/w) /FontFile 204 0 R >> endobj 206 0 obj << /Length1 1612 /Length2 17867 /Length3 0 /Length 18701 /Filter /FlateDecode >> stream xڬcfݲ%|ҶmVm۶mJ۪J۶3sqt{"b͘3ڛHQN =#7@,+௑ LNŔaj5503`"N.J5e *;-_LmlM\B_oT15X,mL" ZRJ y5 @1@ٔ `f`logbOiFgSc˿L=MqLl-,NFv.{b3q5_98 hldUQT<],\l 7iboOIu1sz)o`Nlig hNFN&6abӝUo`_,]Mma4vA301n>7S5򟙡K`bj o7%Ne>$oE7qF!=ZFa#Oa 07)3+#=㿍&.3#]j&T-,i=ۿ]v&_EAXIB][ީR_b9{CXM1p&db?d \,=:KfdWϕ37gVT\L26vurN߂cA7505Y]7 t?2%3:PޤZRPg?#b>ys@pÆWU!/ U&ya~9|F66;~L3U[Qqzc2(}tba&'7/#F? FɎ`ei]gu A&; s" ֑P)*ՒgNjG?I\ (qHy1Afr_狢d_j<ޟ;3$IU#6v7'T(<0U篛Э썘) >"J\4b yV?gIkvպ!^$8Z "lp.\ sT^#ciIvT4`[SnO]3 V)NO~o&S>?~}JI,Aov6v0B}3kvoUh/}slgjBy׿Bb<#C=&^IpFNEK:݁, o_#$|T-[dͨiԼr4G]˄Y|#rdq:rzC(1k2lDB5 )Ś}1q8O8w/.0c J)uCZx -<_f#55׹3C~֒BT Gt+TW#We#ƂB2tV\`E9zyxMI[vI8R˩$70k=FdikaUuR)I<(̓_µؗËD<%GޕIJ4}=UЁjHk |&Sh،-7YuT)['1@{`EêG`*k'[Ctȅzd5n{RJYt 3TwLNbDNL8XSh*Bm<& HBḙŃ;p{ IjDA%ECИ0WmM Г#W2Z^;ӫUiF(@YO7I;UJ5j?.L"w@Կ  HN}1 8v %N.)3euoy.?&h[;ZF$Z7^do%vEIBɴx@lnlg@謾f1^b_kqɌ(hst 0ᐣ]^^QӔS5$y6_(i҈ҭa9o3+H43i~1L~Pꄚԁܒ:}zhS Í]gK[X.GCWj!CTu3A| uL\ɁMC2_tLWK6^tPv/*q:\h1l^6+ طT!bNp{ҠH^h@xzX^ ֚'SВ0@rqkVemϜ.`(ySimǻ,QoZvF ö>HugG/p[}I%~,;2K ]biHYq f0 w Ҿ$o<(-Sد lJWLZ~B[5@oO My⪤S HƜFeNsI'\Ė~8vd|uGrЁfc[9*&V/9GwƊ+ʩ ΌJGch-PQޑ$gs,I$$LyqxUɡt[u=6 JnC-C =[rHNYUݣO8s^K1=ӂaAC)4Xt} O(c#+rRu&n<8~8 ծG5ߊ VJ`*yUFc<$Ӱ'/V[m=7mTĻy{ҽjlx}"čjdGT{zY8S:wtg$%qmDz"d/hP|H,}jg^ߔ!c6'm/(UBOiv߽8 H{1h 6ˇ]9k&vJ 4ݗI*ĿWОN2s/nda ~; mDRdIeMT[*WmEh{4r'1$n?ov@fh 1N;)θ h98U8YQYC tp?{o?2h"zC! Ճ`Z[Hc3.&bY  ])8j| b/O ݧ䨛I_v"ZKGUqs0浩T}=SCߒL5R^Acm0@EKeH;<3D(80[M؀f'dztyM CV) %ɽб[SHOϹ@!>F-5+j(LKbem8p!Su۶x~XE]c7dI[fh'6.5颬qE8Ȅs~ѶE&/Iàs @ d:ﶺ1f"eÏ Et[cų; ^?ӂ*r]/O Oɋ51qVHJY@)Ye|F/sX?#7JOr|8wE6+2@WC6;rB9U8wkwL *7rREK@EE\9P 7dK!2\WH+6 LJ\ {;Π؈٢=fX DTI!;wC 6甊 ?rHL2!!ԼpӞeQLM E$3i=d(Xqt =v*00oī5(B+5׽ٻ2 h +.ly/sƁ3Ā$ 6/cٸJأ[x ͂lTDR](r!W>!kl+b,1޾v`¿cnEz G[raJMٲs7ъ4;ކ;G6 JG2U0.{,Ɩ 8ͣm<̎^o-IګtӾz y;j:~I%:n|HK + m[W&>xJaf,U-tclƙFdNU@xF9Ƀxe1x7c/Z-غ`UR^>6Vpb)vZ u)YԼڮNN94fPTnz.<1i'*?Mlv1k\U!u1cL-g32@ fssH=U׻Pi(J+xxQs>!xmە^؜&1Z+4HweK-˹T*22'<7W<:`?ZQ~7@TLWVwk?cFt+CkE( 85 `x߈$kc7E}͞Ydi9Euhaсs!zσ )wx.m#\B\& M^a)IZ#GCQdx!m24 q$%F+ hk򨚇#0ec#bc"=eHڭ!GX,AGH0mz>&tvIV``:a"\-ӕ㳱}Hob x KCD K'ZjǡW0n_5㋇xLQ{"\-: ]Zle|u,*(l# `ԙ|xF" -p&ȹ%g˾nHVL~g 6B\{9E$7%EuQ85T ^f?6wEU[ 5-u鶦4R1 ^ڗqUS9nBObYԼqbennwpp\{v tHţm#y v*]G~ TwÅIgƋk&6¹ߏEj]쓳j 5CeF5@K=1 _q;lq (7dabCy([}f7[ĖQ$.)UN.|՟/VnHp#בR}/G|؆WԴ GNGI}5޽ 56-scՂy6猍X,BR,ݥ  bP #x䵕dHm@o 셾0\K\%;=@8Xe&.6?c׈V.8ǘEQy |0M E2#?ٜD%u& Mg*_sﻶFޚ;oᜊFG_@׷p rH26a杉 >3QhM'AYG!)1I4Տǔ髱GZيbьߛw1+qAB@Q "m4鉂asSmo̲|~( *WGs%нImTʐ7GW;Cg eU4;iNi9ؒǂۏ |5h.y)웢(siDMI䪤M;KxҡL,_bTl[CYB>21Th8u:w"yx4',N oH8`q8A߸p"ZqBCߐ%P[Hkfը1l@ACSB*#L6״ =w&Y@m,};KvG&n1@ey]Bc׀Q hx6zڈoa2~2N"9j  P?:vM_2*'>}O`^|b ȑcv^(#/JP"RI {)i?ռ=97 vO_Z5VTTZa'a`t (㠉]BqLNO[EVbs%*,} HjCaQ\O[s6  9O_z3=8d(Ux.曖GzV#;,OЛ]ilosDA5x\O7LJ!^CFyAQVL&Lc}q7B5 Zvz?dz͏-]BvH٢d<@U]=Y3#e:B؍b腌"##FǬD@j @Lq!NVow3\ i%BZ@2R@MVf:0e<(0 2bLkAZʤ13NĂ0rPJ+}D'3)nZ=ټ s< u9+-)]P5?)&IUƴI^&qlV[ܠbMjB!3T}5V3舷$iA`fy_|dQ @Fv*ETn\dB(/~1oqh<( ymb"3-YhK8}[GcJQWӝ>OT4rBwwW S1QNm ZKO n;x¥%b*/sߞűb:1EmMz'{}F͈  kXh;:$^> 4_'cLg&W&RL3T?Y>۫۞=4Ȫ+fGdrpEޥUG{᭸3YC  :t}j)kh<6q!+24YC`zyMprb.p!4~M3\ԧU͸\1zuo]uO/Ea -n[7<,`dlN!$v+/:}cV ]4*8d+ Q(뷾#Vn U1RYKW.˚,i  s-%'%ΐF?AdݚyWuP9y)9o:.0X(s]p9 y\~cGvB8m?{P#siSg#quzOj,! ?(`(|^ʡj]f1Q#'^iYu ="ηzc5H&Z?0̀t#t_q2yi<ᠯPJ'-:;h;F' WSu_Ro1\qq'Fāoa%AI2OzKh;ctL^/AV~G l6nz2lf~LX\Ӟ,3Hxٞl#KCUf}ȍN0ʶT#\IATж: }icuwMiP,͖L8>HIYCL.s=Gr ܘ7 #yhjm,}%"VБLhfY N6' c]*H 2uFmYTj ]+RO4Vӟ;!y{"**eaָsS LT6Gh >{NsƱ/Xbv˅E[hʨaB^8}*9ˁUg^T`Õ;uB WܛG8ڏ#Ƨ!gFʅP>q rY^TNfLAzwg,?N3^#MW2l|NսdeOHOjZ|GJ*w ]B&Q,k& <.ЫEo&'$f]e&Q1*i4aM1!9ۮfR]I)@eCL-Iא W9 b% N>=벗c3ؕXvA_x kzT>Jh'Iנ, Kj~~YV]7|H;!slo<謥Gށ~Q/7e+"Ybe+q 3 ɒ/s6/ թƏoҬfrJf(?sرݴCFSԙgRe0+Ȭcmi,/MgNB/g>ýy gĸF&l^1e(7&ߦdwX؂ܞgyad24GG!l(*@;'Q?B5cePeOEc~!0(3f+6;7u3@φ3K ? <И<i"7qKmӤ@4q*Qhqrp%ʹ"s* g6-?u }t Ba2]s+A.՗HrGUQ7YR m%*J?8Dyjm#\]Xf?%zto|Am)j,r_&N\@ N9-S-A_t7on>ĝ5%VO煈8JNJ~ѳv3P0ԖdT}:>򗽪+CN8( -h{{v(@]ɔ[ I5籈.MՃ~ GOO8Vä_tDZdmvC|~B #ǣUNP'{<FLGt_`\mP/?]XOc~ ? ȥml AV qK0^\=9L~\{ ;q* >qOwNZP jnn -ö\gg^g9m"CR*TyXq (9x#9D1nVTպD,D᪼w|vꁪ_xgg!gӀnr oh"+km%o lyWM.=W cIX$0C ,:]7TmGlBQql*OZ4M=D^1G5GYtF.!3>>= fн9|`B8*'i aDFa3/?Iƭdlͩp AvFI ,dbQby-=A#lu;Q(xX͔NظmvELcgC" 2UvD=8|ڦ$6Tyz&а-~LB!~8 97- !sflCЇ!Жz!!^eo?Ẳ"FJ#['QDǯהB(W`Գ9g~SGPĨɲ'ˬRZ2`AKc 6r }1i_5ToixPYk4t 3mZOqgt S`.RҕbrnTMd{L3ٵ D<D28Ґہ'}Xh\irj{KjcNRCh&q(N+f6v:&,᷉3ke4Pjad[f Hv?.HJ,_nCz>ؘz=SEH}~8%`@I ,/t(ejQH{ϔI=F@yz!bHӝ^l:.U~fd)JT,#2}Yu ^17PbI+=2"nj>Q2$e/2匚|Cq%-jX j'lFZ$:u/涂X![4 jgXCrߙq&pUA'Z 6S}, Ratt3$j",FI0b!]w)ij,Kң/ֽRi{b-oOHqBsyk6GfylצDϱ RjMD\!^F|~Æ ó _ǫp)J[)Jb鮦ʒt_ӁiFC1) H[y^\N'ƪTjSkk7[h?|${qIojie5B XKǡڈ=-8Rv@b\F9o$r|p F-}"gїt}(?G.p V'BWBEbvVUhҶu~xp*ǣU{: y mBKǟq.N;5SpJd5? HEclm-'û|f+E?L 88 B@&&ೢaj9 ×9_rOR*Shq9juXAiY䐏';!f5!ؖLʁ8` e83y۠fMS/ҨD[Y^C1~{f&kْ>e|2lk4]0g +ݣl2zA.IZz2内)ј\{I4i[/RSf}Xjic&e8~#$Bti_:.ɵC>8VM?IXnXE5_# $ƖzS'_'q]7]0qA\!;+>|Iv]+'w C{ `Yd_͵;|k4 ԺHqr]oɠZ,D*#b\~'y_lA2㦷FF9f6.;m9b+YXmAVq$\[?̽ I8 f@GDF`b! A? 0O\beMﵾ-`v2jqK(qe H`-XcJv !xAݹC; 9+»k53nh6{M L]UHQR/a%pqM#`=Wik WtMnlISNȂ4  8zʬ?q&x;'F쏦FJ#+>WkYbhGϴw}V$ɵ%_nv]Gk>ƯJ~/Wh ? ՛5f "[a_('f: ڡ/K0h] Q} 3V`Wd+;Xl-G}Z~Fnkb|+j, $z'0@^2|0n5z;şzQèN>/X.OvD[+(cޣ(?\@G[U6rB2< p +r\0՛_B:wx[ǠBn~xMAkLH dvPqȥ0A|RWZc^YtW.T,q赌7ŗTqU]kg Onfwxa TȡwXs<5?RV}jlhN4I3WӲ {$ƹ7xN?>Cah*!:u`x<XiO+b)*'&yY L_ZW+U%Tگ(_lN: IccHo`PNy4x8[tx!$P_ :5_`ГCE;xwmPWfha>)~K];ukH`fȏqOD|In>ʢRB0GFH>.@( BGzTߦaJzP4aBq7u''ϋMwҠ6? Byr 7'Ifܬe sr_1F\ɶ #ByKgs{UUй:5swߟFgz0%8YB:&ҷ]S;Z e4BS~BX u0+Ă |JкD&nB)4{|5.,/F#JTD%֑𖫁_&綴% MXп_̢F'璇Fe-`O _1ٱnlnݧil<U )Giŏ Yl C#0._c^&vMdHXerQˀx `XɯCg+sC!vNjgmG$P~HƷpgW9U%c|ߔqܬKm2r9T@/kOEz׶_(/}ˢgF`Ϩ GD/:@ :9ֽX3ݺm=#fi1ǧ52 aW(C %Qk99'r\!$ט[g5=jeĠ(>]}ۇI:-<*Ckh(eidiK}\f'lFw.|A_PN1+/"bI'=mhtɊr`> qnhs9&CZrc+bpydE< 20 ևnDא̑W:[jUQICƒ;}Tj` .%YZ:$}(٤UT{[^%;EƂ*r k躜5sg^)#&M~"᢬˚ji0/VJhWF\O?!TVTW82׏7VXa)Jpi^ y -f9ͨ@;.;MR+MrscF\eH0/vX^4gJRV (d2t>ng촺F}S=inM\I^U[g-cF%%u5isSצ`>B"0 aᯚ ^=C] ”3LjW6<ʒ#ldzȨuQ1D*ڦ|T뗹bR Si;\a/b=9p\`dSJrk`΄ 2ovuArptpo4(I!J}  {) [HXWt|.'aG+>|PKQʧg-,v` "/m8*ҠRc&=zSQzr#Q3J&/n0JڦàuпrhyZv ڈWy$]|5u01rVen] j#j\nW"c$v=Dwѐfg6sJf*v#[e9%WvoԎOt2"b®H7 g8"N+g?` 2i"gVܝ\)qPS,*~BL2XMofw. , Vy,ѩ2Vbld;>T fMjžJiEnO[Kc}{6#zԹP*}Uϋe3kⶶDx C_ؘ.b{p YSe=(ހT7]h}G dF3* <|l*_rV;.3Im+U#Pw&p!Eƨ nL8d.~'4 D&RBFp8g}Ӹڴ\MFյ> endobj 208 0 obj << /Length1 1630 /Length2 10814 /Length3 0 /Length 11655 /Filter /FlateDecode >> stream xڭteXے5A;Xpn! MӸ;.;w<_3ywUjo*Bz`qK ;FV&^,2^A|F--Dv`^:X <<[{r]< vV`Q_<–NWFNV#;d_g9@߿NZF#fksT`ͻy{`'0ia$!9Ѯ?wXT*Z5'˫̲3!pXܟfye[nS[4؝# s~LJY;5H=lZv '˷a%eg8&v;Z/ ,/[+4P|Un3F VEuޞ ؎m"D/0!^iD?Ԋ]跠*w;9X~x# EJjin)2\y-{y7&MBW.ݛT&8uf\;rb/6oRkn^_ zB~lF{=(ُr9.6f>3 1ZtyM e\d߈5jͳD)6"hQcNҋ2JW$B7?@qER0Uq]V? +%[I*n?n,l _!do 59seU_6gvZDτj#0_a̗T؄gD&v< ' ]ἷԍl< uU~>7{Յ=yv!'/|c[=W=+O<0?>_:q/R4K vҟְmW;hޙฏm>[*`Lc~4=HxFD]EBQB+a7J8Cד|sY&N|&?P =w /<{DU}DQ9\V/Ug2 qyҐx 6)U[4kݤri3{.N"tFj\,"sM48.瘝M]&~ys62+(8X\Yq"40\ SсZe<&aߵxdEU"Dt8E4+ر(qhlK LP'2ŦPx j^IkUZT-8>#O Œ\]Y{`SEw \d\RjVŖ? \al–)Kp`m Wl;AydYin4۵3:F鄬<· O\%R zk V+Xm*>!Ħzﬣa.[/+:r:ٿx@qT(fX‘NQ,ZUv,E9O ]S KdLk9R4 *#Z{r18X| }yũ5i[2 B\׍tiKYe{R<6xYM %bKNg:;jJCqN|s; Zݣ(cX<=3(.1˭E|/hx,ZF7cji+&M7{H!U{)V'LOi|C)#cH&m}bt[B7P $-7ѥڂT'fX'[~wRAwdZLTc)O>[Ƙ' ßި0&^Q5 'σ w=Yc]՗,_67}D1HV"3tE6ahC5X3aVl͎v=*-ue[zg(VDԷ7_ '] }Utiqa K\%)BDaΝ&C$O #ͺuXF'?;~9v,Eh=&uQ<8 C <>/]!s#EÓ> ?&˧tɚRk(F8EW)M##EҝM؅NefI-!T;Aݢ3n{cU2оx/BdzF߄OfWcd.3'!td3XE.rwt_t um%xkbA9|:M9CE^0ـcb ;{8]r~PV淩\zuǮH/zJ}\*.AqB6-Ym~5 t|[*TFߚ9B |[_^MNi1؍eUoDZf7~5(Lҹ%7NPmxJDYp G44> 즒EuLg_~e0}{vxRϔXէze,xm{f&53yAoe }(RMSFUnqB Rw~A+_7ǁ,( }0pf!~T\Wl q6r,պHT(W^&u^~8s泭u]؋]˜$ߎp] 1,b$RP) ׮?v|zCCYz$!J %LK¾'*_^.5rs5T\ކz l,HH|C63pMR^ՊilMkݷ$%i$H_8UwΉ=.P*':;rAb ՏO1tNvcʩvOKCTAYȭt7ڼ)ZqAֵ:z(iUP3Gmt_&b@[{2:+z7\+1,2hҹ]AcO!mKhک$gWpnqe3$:b\bYdm-ц}ϻx 0y,f3s_/ZWɱd(ZFɳ\͖6YHϦ$Mc(ݎ¶eAnh찜)Ij|RX}8EɡhPQ7i75pJo4h"?>.S*\@4q/at3=*&;B;+7 l15j2⯪f.q~MϗwL+t1>' 'B+^nm0OTE W%_-;kdM>Dbް:߉b+~ ZN=%rZpǨ.n}י=ii浢(R#`ҷ*@ujTw]YQWu0qgL'T]qOt LB0\T#ΔH[JbxGqUR݆HUu+!_~\W\=f4x?YC\@%%ep(w!/jحvpdIdGfMt `Zt c+NiˎDۙ'BU#t,Q 7QxpjFZPĬd|fkӢ6v[I+C7qlAE2Ѝ[]gu-6_o)vi(C6{WYg4fS. r|?ψmN.~ry\I.O)ʕ2˨~P}Te(Ak^.fWU=H|FN" ?YRS嫣8*ui1^Dl ִ#%K:4&Y8>nI(>uYkґ;GQeQ 2`2FEZ p!Av:Խ]Q'*sv/@:?ݓdj[ǍL/p - /Oo8\mڹ'-X5'S2Υd|ppm݂HK9ßLA~Caw+T RzabhDTR0SLȞ[&$BC*hw+*BU4*^_:|+Y,^P Zw;X\8W};ThdyCi]h (nEa~s9Ijd'Hܯ|}Nxhl36K6VLwsTF C%nC :d-8wRaogjcMDjBht@Ϳ yFճ i$ƪHJG-r:fTejI6+~(m)FVg8virQkvC3meq~8=BհȌ{wБ 9{1@9`:6q!  S+dELhl7_{fBEExU[.3{Zxj?=-6Ҩ Ԡo^ [), r8~GudL/jc{:A[(,(Gn+*j$_ BXh-yw~(k}Ve@9?hSo2H/URa_M!e120qEV:+f,ߣP0y+? ڒ*0\-; h \BELƾfjB=,_&<6o^%K:Œtԩ l='EimHEW7 cʝ BKR/0r7//H(̊ӹ0D['8&x̸)梲St n<%`! aMr\}W2zsNII1M` >(~/dċ5`Y:쫐sʍ>4$_ cYd_z4N;{{ŻE͖$ jbŬ\ ՐW4({FU3uTh*'Aŵ{IK@H[׵Dڛ,uv"{83a@|乭_ȴlvm'Rw2.ܥo'aich)! ?׳Us"o)\#Rsx >0;i~_N\Vj;33&c'41p'xUɦ3֥ZKsi:8+<>g'֍wdr]\cH/\xY2ys#u?΃6I!<΀4/XbFhv57Wa4S2eV#:@<@u;߾R?a}zm 5˟_s~r&tM[]+翄 sjA 7lR_p z:a{ :?BLfŽeP+ o<,5,E}{b9*R8wHB/G5p\- R}|j.2;Zj 'cs\rÚ<|z\  z_ Mb' i5l[!۴T$~ sgp}p lWg=Ra*xe/keh{w 2^CmmF,4!#*kYo ,ţj}VZڬ:[bᏇƮw!گU &1RYhc lA_pw^T嘓y/$dաo^IJ'jPZnۍ>gs=;*.Anږw+BG}p 3wA+B/1˯x:pSVfjfPe/pd5hHp<@"'8_IQzW+WjCѤ1.Jnrw T|Y", dP0ŒaBÙ.XZcՑsg|S~we^@x_@dw' Z篋VPP#:Rي8m ӏfSapt6Te>Vxm>|"H !byEn:6]IsbΣӫVTg]04nKbE^I<9T)MU̲p4!%BY3Ⱦ4~U w6;km{Wыm@ۈ9D"ޕR٭"%:WD?W$ ! (aP9lxuMG pߔ[jsjX]v`1#2Xq;FIy?.hQ|QJam2v;;;FW:#T= P\G}ϥx uYHP`,|p_^R6knb{&P\+Լ:~eGϨ,@3:6+uuE' s?Fl\ (PGkzr-XV7'@WyirJe0j%ܭbTp@-n |׶۹+rw{:QG6$9<(t%뼈(,yZ"#{q'CjΈBq\3 oђk.t3_@PS_3nVzhRx \g1X|9 &r^\VhQ'Ҙ(Ɲ|mbop<_4ymL6X[zj;f91 V4l7=Krџmz+dF>y@fbH5vgF1̳t;=C}"+ezl(?\WqfiNijarj bymh cxs%gìQT;RZHGQ<\D3(ROշq5%Y n*uHpP ܶ[ Vw3z-OzDN5a<ҫ:V ږ;39Hvk~=SIJdbF0tk@gH'Y٪12gfcR^"D[0N,c~18"t6U U^ !@0S~)x̣`3:'Ӵ~–`3L9d?sL>^!t^O6=9ǯ,V-DXe P 2ល\N(.+*xJ53>/XqR̯3}[ x&H&8  X|ݘrIMY\eMv>"'HiϷa^9:t{yؕ:IU'VN&$"$2}cㆅmԹ2O=D;i[eBcX!O"$(GKAzoݱxx-]Dz~ݟxJ }7zhfY]do 8ZLڈ>9D,8)d[:W92]\d~?txeZ\Q]BVܰ@q 輓ր3Ps!>.3+5Y&,R2XG}i.MX3v"wښ$pLdn~3-og7y`}܍,gX~B}@ %ndtZ]}s~ * i~tSpIsJCxK endstream endobj 209 0 obj << /Type /FontDescriptor /FontName /FHWCRC+NimbusMonL-ReguObli /Flags 4 /FontBBox [-61 -237 774 811] /Ascent 625 /CapHeight 557 /Descent -147 /ItalicAngle -12 /StemV 43 /XHeight 426 /CharSet (/C/E/I/L/M/N/O/R/S/T/a/b/c/colon/d/e/f/four/g/h/i/j/l/m/n/o/one/p/parenleft/parenright/q/r/s/slash/t/three/two/u/v/w/x/y/zero) /FontFile 208 0 R >> endobj 210 0 obj << /Length1 1626 /Length2 14448 /Length3 0 /Length 15292 /Filter /FlateDecode >> stream xڭcx%v=Y1+ضĶbfŶm;9__q_׽&s9=37@QZ֖K^GN.`bdak#bd P31XX\\\pa[;w 3s'5--Y OLG 3_D% hאP˪MlL ygC@ф`j015GX47#\t;k Gǿ G8,lk7!;ۿ}m,ʋ?-#mi_0N6'7j-ks gG b@p013p08:tOֽ_ٶ_,M p,k9mfaϮHؘm7v> ꟝K061cu[@2 "?qS - X]1 ;8[R -_IfoB@I8_Ympp31p22_vc_]5R=3-l.Wg?< NvVdl!![7'=3;';+߻;俀,c`7tFQr21i꒭OejFS-vЄV_3P]Ira_mojW{M0Co3IÑ, ewU7)uo>&E;an bڹZ6&;n;Tw'j?R|? G;$XFڂsēGʁ|XXrDH?l|M P*$t=W33yLdSXɐarñF3W8>S?ʔzɘ7$J3a4^tF xFPh#&+Q3(27{iILxpV(ٕ7C_i?Q]@f(AmwPpD&5/Фe&?$La6I՗#ef1-V;mS /dx),j2oՄNB`'cYL CHVbl & al~o6+0XJm!'.P{+311h  h4 AO]eVhDL׽tC02)4:V4<[Z;ĵi羅k vEG^8.a7m'ջR܉WaujQPɫB'[N)4wۈĉEpf69`z *QuQ+1X"uʨe^ehָFwR}/ayNV$ڬ}vUF*~|tɊA)y_ExĘ vs-=Wph Yhr=CC(FúDU8 ;\X>Q%DKUw~qfyjѮ R%>ݙBN~jWŸ2?%V 3nVO3ru9)NW #^A(C5Qz(Z[TƮIAi 9\N7M9%-Niƈyͅ4v; dX7ƣ nm>Uu)&Ҥ+}1kfP]U|菨rjF)?zP2Yt@K/i'E_v< Cs]Y@3s U%e3*FMdtAZÑֲ4Q L 0Ru^f^-JjPoMIWI]rQlfi j~cÙ/J։t!%skd l^;_ %QbNvG{ (*asęzg؍4{ Ss% ~s~k"lnجQNG]Y`f팙"٨k*N Úss-y|xqsa>To y,QP@n7nTĺR>q@ktΙ䩋Z)+L/><9qݰp5l°;cV!nL[V!fn㽕C7ؚ#M1>4#kFMDRPo敀vpΘGr9AqLWz\A1_OEUK|j%ezMx#NFڨlw#@!Z}\`e%Z>gi*GFe chWbV`ŧ7V .]VVGhX S>;QjH[<|5VWGs >bAb+d~#RCQQȓcw4f31e$]Kܽ'4>#>bU6,&4OoZY/ Zp(1s b1)L^.ز7"L6?`Uv;赲-,*f=ޫ (32p\-х'쑢u1k6eK1hB;0 ژU^G.X֣ޱD]5o($ B9ʴ\g^{ d*,1 $jm°Q!b&ZZsgm8&Cx<5 nCZm!o^6h5Gk/?T3W&=kxw%Þ)}NV??6|^GR+Abaޞ 2qko-jܸVVU3r>kkSGU;.,!q<L[i#P K#$@ 6ڣfη8V]8n}-)2 h tgzƼM K]G / ߧ>]#ረ[h-g0;|8ӐEܦ=ʅo0 \Y]P~QS݊߹ ֦~a0+e7V-|) u]iK`'G }MGFN%Uo[~%|:m#Κ ks}ʬ :Xd~d:ٵ|a1h1W|66vY`Vyu<R,F|65ڈygg rbwG-3иA&%$@5FAe y$r[Lhnڮ@5Fߢ^)*D~/?3zsiȩĪ!(<3kZ6{_ /UE]e[D\  +? c)غ.1g@ņ[*?ڏAqb/K0C<[±2tšEpsq%zc,vl߲:r( Ow=kH_]CNrd:DwC-p xx '&rODj dgZ?D0iH!vo+ T`ꊡ #BߋgN׻F~{@6O/!\/y'+%$VNpSמWLT:P[WҐStg+b/7+2.(Ya]`&L_rKN3^_FcdYӫgUr`u#(Yr8bN͹.EX_eڃ r!+ئb}u;Fhl B7+SrYb'J2&\=eNŒ3yM3cak!8D>8햏3.._/bͧkAcX×k܋z<հp2&aV[_NW?!9̶)?̎ 4eb+OJlli%7 چnvTw_Yp\7[>sai8O fy|Bڛ%Y +p0zy4/GQϱG2v x:w< Q*[pAJqI8xaU9n&]`U.V|1 is \ <ޓjrţjA92)q~†fIk +O +Xy.ӥ n r>/Z'O_&x?_qA8[C `l5ͣzk]h-bh` S>3i0UI2;7*^:|8S~Llj>E#AˎlgF"^Ovޯ*IeN/*ggYq1`c>$ 01,o燒/u|BfĆh*OTU'b8_TrGgl-ⵞ?IV:U:P7 !hp5F$ŊHMˎfcH[r^ <}^4@6x:TjSU0]gp},py+DnS(3(X8OkҒ&WuS@@Q'$aHG/Ϯf1?:+jD|[5+L#txo k^6Ar :`ZHDr ^+"7sŀ~^ʶM gܼN]:Y`Q 4BeʍngF^k01}NI—Dk"bV_'9t).p9n-nR~D OH$.=㼢1 [EE Yhㄞ^!$0D()t%hW3:=W5¡Wx>oԵq5.R-H٫@݌.kvσ" u+%T83(Κxz8,%cSOݪʉyغ}_\aaF Ysxטª;Tj*flbXA_9vܮcXWMpIonZC_Ԕ{[So^'3`%މ-B%t]cW{7VFnTTjQ;9#$5E$wYC*G e8 z(T/?.f5xecֈMF9_Zbju,RONwƽ{hN֦Ǭh'uLn!#DڗRI:rGܤ&{ԶW/ͭydq6s5;*pZ#_Hiባ:'3H'|W k9G7].!^.[b^,?r**L^?Sˆ֐tqԬڅ6G`+|[џMa"ɂ$)Ǹs[l#IALe~=-J ;TV$4+*Ġի`S)ٍ–V4˜!pƀ=f'+e8M :仁j (s9KJMA F$xLU#z $7=d0'@M<[Tg~hqv51j6'̋o!zPO@fH BsCeSm c E8I#E)paiX! cOHW=y P l6hԜo>X=RVx$3DAkpQ< ѡjĤh|cWXl scHJO*wS|~ 3qovN_3$ǥIY^G 8ץj#PؿiN\TLUc#yGspOV? ɧf/ڡOꣃL,KȧhaWO $KqxxӲ&t@} dPBmPZ?!p[u /L(="T8P"ν5CW5,NIoC0`S~~@SlbvCzjC Gc\!izR$qjq[+l^+)eYvF Rz Dt\~[Xgo!+\I^_wY#[|r$^֨vN}}8{,^D8S,>V%&\+akpOLfʭ2eq’* \[_9+l S^s#׽1CVƇ8Ny^< =_bA'8~S/W}'?\5}Nej}xy."2ʽgWZh?'sAݲ,PJmubĕ54iD~olALqA#Mpw7w;JUjf0rfkLѠ>D \%;m8NO),yi2uh ĵnuxkBU,3¹Ǒyzܵ{,kCC¹Of[놧:ޚGuX 伖竷(*l!go5Ss':ˢ_ DV=̧7}*077/8o k {nRh̒Y{mFR2.F(0%1@̒)mGYki8F/~|">DycP- PFKk >jn |Еĉ9LW8돰BsCʜQSEyeXz dӣiATOE1ZJF%'|Mo_6WȟXa>VT fl0 }Xu5ỳ_3WV([.HLioUP$.wv!PBYʇ>kLY Z}H"Ai_XR#ԾZ2@ t;,MXJ?7͒A(rkrxkb 鸍b YdҶ#X[CYbxJRB_pa2[~L2 f4 >hc!Ӑςtk+m7j|T4ir)ۖpNj}Yt $STs(4S MtWsSB̻+n5!*w4̓*u.Ttu0ysυNE={rFEs) dƴK&Mxy?*_|}7b/L3C8ѤZG4+AU[_gLgO|q]"F3^[fkWZ^:mr@ca_h\IYs\ nnjr|hK`~ۨCw$~chɢ1-#YXԹ$(l98Ƀ *ҡ{BST; ͤn)Ž[--DYz*Љ'2RQ̱2dzsrrRyeDС腶, y@;1LXx&B}_j~3Юzt}={|P?0E9\}CtZ簈 Q"{h惉)fVYy1NRkb $kA Ԑ_Nn3Jd}nD]Pөy$vJ/Й/䥻NJxF*ńJZ0a.i$~`.D#1{sʭq#o(}xϹz8aGG6ÀRR:vxPh ,ҸơZĺZ(& WXiSH{wFķцTH( aFMqF|$+hB{m(@BYo*[1c!6=l-BB?kY2V5׋BOAHQ$ݸҳZ- wrgDU:58]S<(4{huuAm̀s?"=2 Yb.kEµ((DՖEž8w(0bxk@GZ9 eaťRIlwAUyֱF~؏+j1 ٢QzaIC}PL6& x;s}.K%=%i \߼vjѵ z{;bGZQ663aAtI{o/X ӝyQ䃐A?E]?jߗ@Ql~ptK.2KBDAz,z%Ejnt!,8RbjL$h`iwhch){W OtUz-y\ HڜFfڹ@ Sl(gZJo'譠;=&if"=ׯLb[͔ۤŁqnƊnΛ3Vh1zQ(=Ϥk&iuOHCY_yU2{o(('|UZ)FvJ)gHJXW̋̊3VQ@=.KdM]_vU& xMfHr+s :gyC`/_pU-3rs5L3k2ǝ*ŋG ,Cv`g  zal ^8-e_c`w^`њ2v jmWı B$Va&UwRKI/1jKjۭI$&,R96u`j)LL9ݾ$$soGWRGolNZΞΜP§oYjWbɽGMiZ9я%rO}8R{VǟydFC 04F|]Y3LfHקjspm̺[E胤 {_N@̫M\WeJ yI`A_p[c |ZJYT-NBt̾"2|o3ZՕZyC IRz{ag1$ S9鼚>z Ðf# '*s㻃ҧ˱r_cH )^pK|fR<m{D{94''Qkwm|D}[ ;5K̓KPoj-MMzt;*r)E!1mc:^Lfyzg1J;jWI^;1hsJ~:òRYQx lfW7H$,e Cg+o'BcѢ5} 1v,F0 [w+:X'NXhK4Bխ5 T*ghIwucij`#G`uM/M/ ŵ{ۿM9Irs~oj__ӑ[=v_bA)rsfuhW>箆hwۅ]:D,wq {CbZ$ -6@EC<5p@N)?F,~{ݧbA˕"鬼%s%&/JdK [C ~qYn5KTQ~[87 (b{ꇴKG_6?Dl`7b +%(Adu[un=AɆ'h!Ŵ+Q9b?0ɲ!Ϸvy'aٝbrY!L֑ɨ3[@KO`q*`j[T^CpB⚪iR0ԣx7U_n[چ.K؟xRӨzNkf+/9& _riU2]g >&;Vuǧv#t'TNdش%jLYNozjPōW\k$N"Ǯ۠|k+a־1LR%q|z W #B`\h8E*EF|Pj1\-nXf9nM3S14e 9F WV,OeJ7b^rhYtBFXXgYg|#c $uFvd2 Ό0鰩Z5,f}Ge4`@C1Z-i8 +.9q`+ɛB,k_,b3 0cr~ MCLH -kW^[wk7^PϞz8΍|Qfo{gA#-<(ZU( gM0,7mVPk/V(;S^Zh}"BY +F"VY q$u^U`amNV*Yv;鉰f$o0¡XkrQYr"ӽTRHRg]f&Q:HG~f{L Szľ ųRZł `W) ʱ+>]'(gɼ#T pyE*oSK/@Hφx߁n:5Q@h ^7z ")I:UYkN$t cv,''tD̯#g@l9 taqߡ_{jr"hAH[u=/#Cڪvn뙺D#V=ڊt[M9 8叮3.(* 'Q|\S͕tbw)4!ܯ$v;4OÛr\Fjb)pۼkojeTGa)(5)ME'~AEJֽ>ße8/:W .tAVRgQ߂ȿuY䱅)? scXEc۶Rz=BI6xx !Ne6OUe'ćr'G*25LmaFy*eݲF_2s-@HDm|,ߙиCcZ{V0+u91>&6xt,M X ® VJR6vup\`;"EK9_gfCK"?SchQDp6Z@-3$?du:QCDAf-.3t?[-Fl?iڈ,I h!me'xNrC_x𐶣Ie@_lDJy!Wx,C1<+ϲ~czޚ^n0jٓxS8nr@ģe{"9!|D {"E(ד5zLgzxZ-)g>Q`IoqOVX!'Kҭr.@IޓISƹ=ݓ[ڕ_3F++ [Дqex_$X2y`фX)w۾=3Б_б²oIea6vŸ V$+3fyn>/,۾z ׿ *7]zŽ%piW@t;aKz XFxks17@kX&1Ȣ)KrEw'bLv98ؑ KtE/qٽ\!>3K|6_?1r4l搜RM| Lw!Wӭ_ό;t.@"*m٠CIaƬ2c-q8H׽j-%,B?~D?+IMdoc+k^թhesD! MMrJ"6D%\};)jXY-pG{x9ksض Uuy'ϫɩ'J{Ռ\>}0:H%b >aU3`wA`'1N)Ibu,d( 2omB2:tHNk" *L(K{t鋽L P=juLQ@4_!Va,60E04)!X4I_W),fMrRo#`[7u+N#*BIgwq22m)=+@%),aͲtVD0*ۘGBV[WOIUCVSI묌%2S (?JihJ>v'|D3̣Pi'r+&Qs.3I=wCA %X̀}t%a/*?%:A<Ҫ]0J뷑oIbک+_YS?@!maPFMߧp8hbԾl'" 9uϕTPT߈p[ eNfYȬᣌy#:-jt>4PN=oߘh;^O3x)ϴ{MƯN8Q]ǸLc?Ad@&ڕ1a?pMT2%+װ|=e#԰ʐ.$r=SE]K_m8yVe(Uo_qmTo|AIn|]|ƛ1ogUt>b^{F fnF7:ߟX+ֶmFдV` Za}2/6DFȡ݁%%b`36OD'l`* dQH_X endstream endobj 211 0 obj << /Type /FontDescriptor /FontName /GFCBLK+NimbusRomNo9L-Medi /Flags 4 /FontBBox [-168 -341 1000 960] /Ascent 690 /CapHeight 690 /Descent -209 /ItalicAngle 0 /StemV 140 /XHeight 461 /CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/Y/Z/a/b/c/colon/d/e/eight/f/five/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/period/q/r/s/seven/six/t/three/two/u/v/x/y/z/zero) /FontFile 210 0 R >> endobj 212 0 obj << /Length1 1630 /Length2 18269 /Length3 0 /Length 19116 /Filter /FlateDecode >> stream xڬce&3+Y+m۶m۶*mҶm۶mR8O1#; <V$!W034uaZ8)qH(Y`HHM -l M8j&a### dghaf WQTO?&Ct0}q51u dbp67ZX5$db*1[Gk@Ʉ`j`dgklOiN'{#n&F&&6NNN3G[=pXY_ݿwkaWL7t67p'_5?%K lO,C-f@ p413p46qr gz{{ky`dbmJ 7f0t̊rcй8A $ l=&0tvCX#[#r\_E]e lw 13i?c`caj&N&l-fIX`j`g8Z[ؚ_m0?$[ebk_+K׿SQSR,gejdAA;w +;#&俀,ch[7=ÿt ?l`kw_VͽڲWeZFs-FV/p}Iraj] `iί6sCIʣ^tk<\"|-6: (E0MVzգIE&G_DЈ|Rct"5_&< ܁PeBpFrTA' q8`z$Dl~`aR"]\p4^{Hn@~K^-PȠ*~IY+:,7U%v_Q qZM{/(ًe F^_~D*?5׻x3NX-XJf!=5)vп*ۺ)+xЎVK" 3Cx~+=2Ot $<1l\0"AxXG%ߠl/'D`"&:1"aUAλ / qjJvevsq<9`%n|Nc7Jpǽnr °wxDX{6ݱ^&ь'J(v Noe),i<_OW(0\[`}@mvV-h}r֎x>UEeOǼ44x ԧT#3=[M>^R֧hO_f~Bµ[`5;>KPkxؕ/7GGz.Zv꧔O0 c4VZhski,O_=꠴, H% pր;eYMi fu%uE ;bD?*]R8V}o]@ۿ]9'@aaQU;YG#\Ҿ"OȞ Ev>eiN`:NcȱԵ]i13B'm>BˡUQ>T-Pa4 Vohh7kE`ۂXZs-VR_d)Rp)mknL PkQ~IFCjaVHt[E]}Co3M͆+qWh m88B]>6HM C`xG 4Q.dcP<lbD'?k& /vf%[I-DiwPi$xg)L~CZdB#m1'cMEM /ך{ho&UK9|z,VeyWM2dDNwN6Q:w*|&`7W]Q]!Pə/Rp{<_!݋| ȩ` 1c0R ڑ @6"4ƛhޜq@R-DBKyF[j7*]h&m>>LԾ%f\q)ee|~OwjlcM cvkM ]bF@B{Oc(#KX5* x 4͠/Dv&ĭ#_ﱦ%;?PEyMyC9b:8䠥Q W)Te[̾+ܛyωTOh{{0W"A ie3f#īnsA\tN;/1G'%`0@jK|~>h4"+Q?vN2o_oNo'7]Fxfy6FqGץìЇ>}-)~TNF;xRX,b>f'xwD7몆y-HxQys m_?FP?æ,HcG>/,@L,% %wBWM/ *FJU%B͆^*L)GJ^'9v4cفE6䗀Q1 UnPR-~)%ο/QGǒ]>T 3Tޥ;SI{ eOau3ʍWHzr \js&Ww^ݱhs-@YCkpKSpa3F_eSKvU<}jZWy(?~OTTA?bΊZ؁Z& ̹-VX?LzPWąbr>Uw畧$;xBWts,"vkN&Ӽ 4߄\'e+U~cA"|`ɴ#{Tċx4CN9.wN_bEr{*8R<)8, ! Pc%Yz,shW}zyr;!th,I dw_`υm͎N7rèEnRZl?QaRJϚMX{Q@̵">3H}Gn9$se2ROGK$mD4ߏlQ;P61P^Ψ~zit8YEŭe }*_sav?gn o|̽k| 1-_\2͡OQKWeS=I9>'`IbC7Iz1}{l*CpFҫ4Dے*̚[&BJ:z-B-A"|(7K6hPH'F k<;im/<+[&\/>+k/b6B4So!i+iS/YG'u)wd[h`1-ͼ6 !C#ޯ2Ϣg.{8fCʒL6 ;#\^bho T :R9'h+y:9)m_ XFr>p~ۀĽiAqBL̃XVY} qR 45b4"RlH6 y娼Ý u;h@&k뛎v[0u vk$B}Vͧ"9RY4.\wE\07qe8zż%Qy̻V! b!Ef!KAPf@XYXtP;%UK,8i*S[\1{Jշ{m?$I{=b%X< =il]fݝ{ M= W9}^sbR0a)0X4,*yխϞ_lB;&[#tlk Jj,t(;?F1?C&䳳GK,Gtys\߂^OffHo/,(zTLUl heJ"$LE:'.EgOzCL0b{g1g}K̾j^8ԉ;XW>tR\gQ>lѮL|?.|2[cњL*oCF-aս!k94:6]ץ69l ~%:֨;J] <~K'!2,=>UL+ãRޱ¸t 뀇4*x;HvkލÀ<z/8iҽoE Qx[B ŝhu`j  *T ԓɹT:`wܕOWRUI^@<}'KOiVBVOf=rZT(=*gn%H[p'9uv㙑 j4*Ym8T@~jmӚP6I~uQoq\?IhOqvu I1]K +Ft4gxOF{,4Pm,*~ʇn2zBBObC57EgnU!ͽ.*ojsF_!2o8G9q԰M5z.=VxIk SΗXx| 2ڼ&h"{2e`MDaAxdmlYpߍ|*6EEw垛b>؟"GRMbC])kb:l6S<`3Owh|{S_gL ]*k!mQ̌[uDGC˚PY\4cpjP },mz& hnÚro^S( r=EyɬSWju<5B*|ͯ!?@,zΓ9%29)E܏.#v̎D;Fw 9n2/ >-n oB|t!&?Y$2N&N L{.chA]⣨ ,U-XDg>2'|}~ơS]k>hNH8>O*aSs#wk{QxףulBVot$8K*s=BvӠ~n@57F0 wX^C3/uԝf-ncl|8ѥI<vT=C`hGKY[߂)B V Dԩ5p԰MLB'-]_zmste?Ssβ"!ԕNYJg,H1 |ПYp5;8z.` nkSChD·c Jfٜ/{o̡*Jm!U87@}8R&`.u M~mكSV] hQx'iJq!TY.K2@4"u%7!MljAZ7 8c?0GY=5@$(Fxޑ+ky ܔq8ҔUh48D1I6/'$9C#h|%&&_ւ#HN'&d({fSlXa Q𼸇$T'uK޹pRiusLH^}rpܠc7|1> Rv`̪X@XQXNvz+&Ƚл;)&iT~&r `OC/)A">3t8Ty'zt.,t'@btF˲+n8L'[QCBgO6a{^emB 3Jy֔o_|Zw_!@ (J#˅DhV`I/Xvx$8cC(5G៹_\*}eTDw@z.Fsϙ}hgS 䏠=b?Čw ^pxX *VvEK$`NL2enb ڃސ2x]uD#;Y/n'M8wpAf< ̗^XL#UtX2CmD;g6gV.bo#يGy8=KC4%=@>..]UU\= :z A9@ub}5g֠pmu 5NyS5tL Ӎ:@P7t<Хtq-J[Da«U^t:D& qQPbTiA ?׽uBũ+جICiN߶C#t[יNUfr&vAwu[Ywռ Ic Oo 7ʬ%P9dnVDvfґ wOGy- wC)b r !PN<R R 7E:*_nJ2h H7-z_Fe?ӝ\ydIE˜99&;G%"[#>`$TCľY z7C XHJUh^ÿ\6)6ǀ~yVAŝ5@WoѨ}ޗa)%VJ#ξRq\fVǁwXL*z 1!|[Nܴ[zϰ0YT] DANؘf6)Kfj~EF) f;gP= (mD 6oΑS-yj|=ț猼3]PQivĔSym>ysהe~Q[dS!8}S 6 ]H@Nf*RGS@w})>$Y,W~RE`AUDUiY6?pUՍ}?ҶiH׫{nA^y8'v=U Q{|4"F/̟Y~ ;ٛؖoO`arR02י\-9-Z@"f&yV*~۵/Bs+UЌ*.{ٔ- E ǰYQ+RB/.l,Y97ʽRu֡[=GfzƦ 4%(;Cj irn{D8~_UxcYpW(g֥{ۘN`CDžvBž_VER)yij^:7B^b۪)J!sFKe\T ZzD=[ /щ$eT/< WtMsmwE{)dsgj撴JYDe /mC*pd\z'ĤDGELh *O,a.) ,уM7SkX-D}k!g-i;1Lڟܧ:"/ cs"L`ƻ`vM<_C}@ڙwY] w=8WfUP"^6'+7X&iάٻoZҿm&RNUq݉:B`uOY!ITCZ\aП !4-[#WoA,ʮҖH) nWLz"ƠBrQe gl[DYA8 eJRO AhԻ-[()l?Χ7tVj*TpKztTӇ-E3GP(dF'=mU.خ`L+p'evVL-s\v=+=0M|aysp.NKrr#b1lRx[pV~&mzĴV&~c< nd{cxxAf뙎4tF,}0t&l BSLx@ÍM59a>[VX3-P? meG_`{8Rq{|I到P~`JE~1y NB ||:x\m\>yIlrMܢ}e.Ҵdfl?p2jfAEی+2R;,ɰy7O((ɷ)NróYPg8Kk :'²0wCr@Ň6O*f-E<|dZ=°EA,T]Ȧ9FDD&!rwsv)CU33J4tÖ-u+Hc=e믗ا~pZC=AA`q[- [9l 6ϻZ*I%G+`Z ۵ş" ].{q .{}PcZwK,;hvڤ2#n^sɃKʜW-qϋ SCeG&WWc.yc @R.+q C|O?9Rv5ˬ< zxwgƘl^|#tLq~> $8J*qVTū!Dt![VSK(  ߹0>5zBogQ:P94 Xadz~`(Ay#<>1S1܍ vP,ݰvq:F'd9 kaL>yP>7F?#E2x{wBT &K![j4ql]iOհP=l6?@MfPW#cbL N-jE("T]f4H9Nnٹ(6NHoTI~l؝ߎYFS /-w[J6KY?P^ҋf20iC2|SGI S%}M.%`o+k[ij`=VAV%p{"<%W)X̡IB,g=%qiq /HW,Ckl8qXH׋;MKE&`rKÛ>R&{h}0(hfU^䰊[nzAOkRR#7 (`&ZMQP؅> GxD.2^,dIjX9A hpqO<{UuD4`RzP,G ^_e 6]NIܥmWFˡgƋD:DjW3e52,QDIÒs7>wG @уY\j`T9]I-keq1@f ?Y5ָoB{nm^z 5LlۙI,~2  ^+f]74d{0).:Q+8UҲs#0+vhM7f0Oa X,rC*ؑANw~ƻ{ZBA)lzS  ^`M*lj'klj7a1gcoO ?D)M,ׅH 4ك 1thhwZ8CoZQ0ҶTX,I(H|Cy[@5)?ˢ#Vit56# iw2ƬϢ6D#a~VڸۄI].&KN!%} 3 8?\g2ӓ!dGL lqG>#Kg QVKP|X| ?/^Ђ{!"ݟ6$xP:r~!$پNwdDj Ą. r;,C|'=ΏxuUjc~|S}т{æ\^ca9%s\?Zb zo ؗjZ(Zg{4UE.dF)7*!nc[MUcV,6nK4oOq2΄'E:Eѻ쯜s5qW6lg *;$b,;2f>o/t*ۍ)Z$Fr8FΤ%j /ھuꞓ~Nϡ€Ż_IVEa"=䣱ܸ-V q`"+)螘L;$٤\z-=gB,ET]J_!ttϜF+d?8¬ˆ9$GNvX8"W5ݞ WY&O$ =f&TUϓuR9kk-\@xkh@9qe[1<V)eO~8hV`7Pw韼VV~1sPn[mz{ߤH/+*qӼh_"aktC]=yXAz'8+(Tź[$PO6}~uS#.F$p_)¼Uن,BvKAhG;uIc ~XwVad#1O? 6&̗ ԁ(X+1ߙWVaQMŦAh.3!Ƭ7gЍNnܣWmA}޶ M4MJ`<ܵ7|RoGM'޼&V9@΢\SPDŰSWځ˦:f`Y'll8S>sBd1@Q >xgtn\_91j|# ˥ªytP!P:p.CKB*d8vusN%/[Si-=&`F߇ S3D[a4{` *15Q/" _æA,h?(6My㜉%bTȓFzsc0 MbI(r,K0&=rba#M[D9T5 EACELM ^)Q&;HkL; p~QNБhxQjaIf'Ҥͫ!4}rl^ݜ(ݿ I7Sl[gN"*w)<&*цʆ5"UFq2]/YmQNQ3Xl\]]ٯC>ɦ`X 2#dqA[T130&6u-H'##ދX[Q=$zyav)K'xol崌ͺNN6vN];V2KJwhY?DRxKOA9]QT" \=4z]8mHʦj,c^ "`ȏX½pe?&lq*A9Diru'Ѱ )"UM6]5DU}NJϿ-!r:yۂ/:I47Pi9dN1!wr>e>1;nb^GWۨu f!tai#]D.x5UA|xi~E5kN&a@C8 bafqVzLgj xfI'Ѭ:iz7z@J2#bľ}J,{0e [ S#ޥVx6NUM1+AQ-xQ] .E@>סc@t*2k[+r[h }_Of2EQ%JjU!esK,`MEU6f~lpĤ 7K+˪ƻRO`m~L Dn{O~O_׏] R ;^lY?βϗo^&U9^0COn(!vCѳKjTH_ζq ޿f玈sᯬ$r'?pl+n67ypγƚ ^- XKjK%:RCۂEeFǓy%&ܫy`b5'tգ{8Uce7#cQ*=X)L0='Kzkiq#T*ΩXh[0w#>jNҔ^cH%,b=3\Vl';ũVC=wRGQʓ&E|&̀xԋ8QVds$T'l;Vq;R^Ȇt4.lU.}^D5yjW h^ufX ny-m=??0D>$>NsIq@ EEdv6ӪN pڱ]6ƿOU,/̂,7v.kMzˀw}C0ޮ>~fJYɱ[SqT׊7m[7_>=UT.М蚍Y,|1"v* (ƚv=x|twDmӇy?C\#]ČkN$)FY^bVg~T:(DAvֲ2:Sv޶CBi0J>S(r /ҥ@⭎4 )67}XW(n{erygQ)[ h'K;uy1m)&IeN9bVI!c"v@\o0Z^rxeXy[~=<-FqUi rO-|th \2I:G#)K]<+N @ҮZ_vU\ SQAAIS΢,YNGz swc^{7s'x WR{uЅlr+e iz!`vRof۴q3/> endobj 214 0 obj << /Length1 1647 /Length2 12883 /Length3 0 /Length 13737 /Filter /FlateDecode >> stream xڭteXݒ--Xpmݝww'KpwwCpww9s9ΟywUU{.rb%Uza3{ =3@dkbo`-Gpv1|`N@c  4M,,fnnnxr@IMKK/_." ;LJhA?T.@9UTҖVPI*$v@&\Ml@9)H 0w03՚334}=LAt-rX8۹|܁=dgjjWvs rp>Ȕ]M@.JbΠ`oifoWKc41p+ `rv1A Wgſ*8-l4οlr|35/vf\ fc3{;OQ#%2 "yߩ%\mlm?{h k;Z8 +d&UH!lg=3;? g L bj 07vf@'C#05K_jڙ{6mvV 5O ?2iۛ/*{7=371~i,.JpiUf̾[h+x3N[wgE բ7ԃgiڈُ,ֺ1xqLtZO>w7̸}BpbcO/~t+'n̔NC Le.PQ  hK=·~ ۟Nc(NzCuţ4e٨xd|N ɔeyQN?}Lw$AxeJZЬ{rx #t#ъ=G?Eg{RIx,r"I>g?yU>l tZ`?1pŕw ADhX$p'i<@q4JyGIF!E:c77vcϊ ԕ9#Dz,$!(X TQ&Do^|aNY 1h2r\%Q3-wR\65+OZgpW yΡ(gu{ 2VjvHtp\5="Ѫb1B5?+T|X6J|o-:Zm0^ӿe]Y-xp<`:Ę Ap@*X=P4P*4>FҫK$!FHav_qW5s.jqqJ1'E(>.`Som{օ/C+:AL:%;u}E3@CfEaA~wLrjϤnޠC Ɖ;NsNZQuu"~pˉ'hX}Y܍|Wz)ѳxڅcix`'Uم7bn{zdʢߤ`tc9B`|Adnj-ZU`" o%~DG=(AdZ%32BX֑ed_d5SfqFxҔOR~u]@:K~ )҂|M.+Es+ݨN嗕;'k¥|K\AK8(_ Kg_P$UTg]:^/*=h HnjSf~Tb!h9Js ǤDj_6N>T| Zo(q$G#xѾ:"ڝwREְ*0w2ձ?_jW.D |yta=<'-,6ණԛ>.aUhj5F5"G'ؘ*i(u 2P[W3uv,Yc~)jGqixqxߠUsւU]WNg&amQm5#TPģS6]xZ6#4=Ob/w `C$VeG(}YGW ϕL ≆FЙًKºgE+f4Vx? &Z"k6A#/'85)/WL~BҊwrwm+v~#\!ӡR'$C7`* EcBFQ?z+iNB+Qp^Ӯ/|9X_L9,x#ڹf/^;v|'V0nNVWgS1̗~x>,qV[:ʏt_6eT]1(d#U#.s*t@\GV6mܷ~{X.ea7?gVqۼ@yU#J\t1da`ԦQvq'2z==[Z~?4Ҙ8 yK.z!9~X qQ? 3!Jh _eXq%.ϓ`T@? y OBp=%nȰ%E;Er;S{k2bJ$,}7Y@=qSt0ھ8kbY}Rjvt+z|ath_n)vo}0otMwo]jB hG!WH:OW aWvhf*LSo6 ءO0IBc|g{a[ѠL=\4%[(hc2vv>^gc*C-Ιն=WG*ȿBso \fo=ш5zqɐ Z%ֻ]0JV-FZAY6 옔/dR8W`s(965"qZ?$5v`k P}|MRsc)º h3W~ÁU lۦYJjB=Ʒ"H$J1~r7D}WG\]%̣fੑTAl"}@U7}Z ]tCY?yZߪ6*nMOIPb!;! d'_arV(+!9) Dv)AL nuj]%bk6𽓺 ԃJYܫ񎑸% x0>.e;RGĩuP!v0DK,y @sW+U8FS鑔\`=nnxó"_'^L:eQP5ք=VsHPr݉d Di!O(y Pei~ڙ1A.8\҈%Oa/")ۆW:p`[{6\>Z Ha"sZ%qr;rXZyJr [SFv9WٙZć/ Q]YpѶ'3wr$pT L:p-uFۋElړI. ";F$_H݁T <ޱie 绘YPdĴ++mhA0\Q(8W(c?u9m.QWzBzNs 8w#7mB%07Gӗ^R:M1jgXY\ Bjv+G9o-Z3OHu*2~N-"ً(;27Wf6쭼b5WA9ca Γj'ﺋ^پV\ndWX;_HhQGsK?O6iJMI69m1zy}5n" v8 ZlBTVP O!]e:է`)2aIuOVc)/Bn dt `H~of]S[H2zBʵ̕CW@qɷv#rN  m%U#;hKCSr!K7uFc0Ur>aznCv7qFDV S3A(ۂ+{ ͻ B`d Qڷ-'+C'jXed@6vI('[eַ[1?&p1~~fjIo nv)vB798T|G.>ē[V>28Kxoi]KkDVg^2dBgXaV5yy|Pc9%d\dvLudݿy˞(Xx1M}jk_JK]E6Jn+,n*XE|S(:6a[A-TBbpE<΋ WgIɊ8uwAxSB+Lb2SOd}(3 $0gFNGܝ,igi/(ͯGAߕfhE //yۃVORJuv nUxSqN]OZW_)jWtҢ"v ^ h<z񮙩;6r07b{,'=a"{+gg<~x#pzʐ,u+B4  )`">R<}P?Փ={ #w{^y#k;W'䂽pgc KJDz 2} ~ 2&D] ۄh d#疹}mSC#UqC9^^ ߳ V;m`| .G88ЃK/24lh&,;]q3LOoHF‹)$4rkYB^<`nψ A~{H6TYj ^)Me9bH(\$D^[{-Fɯ`-baeq=,+[T rI\KUB襨6ߚH Jd~蝏1=0pz!|"` C-#:k4夽Ӟ?>Fli bVy96!ޑ# vlz?x* j!_h%恝~RbIq>?mg:PQL+hFg͡AzS`ĥ \&Eiqt8*蟭Y V5z-Xv66szv^+ ۟>"l8YqS܎ 'mAjN`MFq@A!HHм= UVUz;(Ndd#gtWqiR!+ 38Yk KE8ǖ>oWrUKFrf*=-A&l0خpS>}®oǣT/hSJݚЛT^4R|ǒ (UV7>;l+m@N{bo+SgG*e`=2pr>`#(v؀axZɾ = [aM0IΛi.w|G+sIdS_6Pbd4#G8R~;tW3on~R7jg`Ї-zu^o Wή1Vk4ljkב.Ez7+aPR&v~-xވgӨ<1gϷfF/G/˅f,= Aw4q:ELRу(|&[2^LL,喁 ?Lq|i`!tFل]pIRG@T8y7|t=J7?KfGsMQ0JnFEnXj 󗳣zK6 5 <|@}kMQ91V@ỊѢ ܡhbv_Gg! %6.d7I/ÍdgO㐔T>tbmQ\;EX]4Y;Y$͊h h!}WJQΊ&{〉@r5[ቜ^̥ bjEn䵨xC rw/La+ŪxtyƈEvjێWfOΎ0f[tjR*{ DMPʹջt3rޟX#ډF>Y>BUxwvǕ1קj`A> Zpgs"πεoO_$2 I!: !쌏B T( rɂ>w㔾ԍF(dc]D19;m5.x_vIS痤y2~%.`Ѻ7~"0-|8F'fլy .YPW'8Iu_Efqf])IVz9=-{b''+&,a͵h™="Qyغ®<@5ΐ0A$Ow+v *ш-|t-'O9uRx<&4R"Xj\Llj(/mg1܆ĩ`װ%}|ԱzgP#4 ўڹ$4OLv|tKT#Qec X\YΛ:TQ jLr% k%5~c0[ol+cܸO{`U"3R,f0κDZc+ 5|2nt5 @,c bdY׎ ܗ5focܢ Jg*ܥa#>& a'i} ;مNkoli(z +Uך֐UA߰UUH } HZEz}} 5CW80Q DT}<^'Mck[iPYm|۫!~(yZȭ]+`ֳH& .#_봒efH+{mQ7q]Эck#aTa2ViJ9m.M>mf.,EMeAB?bgLN3üK! u٣J&$uq^.$⑝/LE];W6$  8j!uB:Ts+#E$9vJak|hC#=E?%S<$ђ8#j xĊ\y@B%kAS!=z0W?{;c,_;nB!+!ʒ': JAKk P~=|frӭ$m_Rk=jNI=\M6V7HjnYEҼiCUSy0}F3UQv'y?\>?~ ap'7$>A'wࡉ^ٹT_qxYufa>AK w;62`X.dL?(7#Z[L!ϲ!y%4+=S! yF$O]: :RXh4#rL;)5칚'REmZXLZuVN DSo0 t-/74TWx[/VUH Asq`ɚX.B'peskRYH( sF}%mr$<'jʍ$?/;0ڂ(\C^hM|3͑L ZCܓ _ z/SOӷ-BxÆޥi0YW}J1&),' -+&:P_N*pUgPY,K ﰋI=$ Q">eEDe)aaLہDĖ{V,*!f mF#NY05wVmVfkeOpr9lSG{J= " 1Udb1deU’MZO9G$&H¨fHϗo5ʈu%h.Jk*H }&V|>'s OJ6b=Fk93c0cJU6wh~C0 4 mM1JڴIpL?l>f]BEƗ< xOrSU>Ja9KKZryp7(jz[U8a+jEߢ+t!N'#^- q8]{2~%tz4?lv pr3xQ4eP`e([1F$d׋&_ACPގĈqw?u1 auR; =JY,L]^ÃvJ.!_Le< Oj4ϊ]1T^hvC)'v G'2ffh%J̑Tx&<[2%fz&K6~'2ۮNIzkϡ,(N5 շZI)n`;IEfm7%gyx ]p6!t hMu]chڌø^g nykJ޷1eh|zg7*W_$Nz)5Hy 7OW(nzqbP\ .R#9/,c2'#iQ)3+=LL6t/f`c-F.aSBǠSF*UivZu/9-';y\l֖MD5|l*\4~*Ŵ paH0%pC׎r4]& mWM6t endstream endobj 215 0 obj << /Type /FontDescriptor /FontName /KRZSZY+NimbusRomNo9L-ReguItal /Flags 4 /FontBBox [-169 -270 1010 924] /Ascent 669 /CapHeight 669 /Descent -193 /ItalicAngle -15 /StemV 78 /XHeight 441 /CharSet (/A/C/D/E/I/J/M/O/P/S/T/a/b/c/comma/d/e/f/fi/five/fl/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/period/q/r/s/t/three/two/u/v/w/x/y/z/zero) /FontFile 214 0 R >> endobj 170 0 obj << /Type /Encoding /Differences [2/fi/fl 33/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft 93/bracketright 95/underscore 97/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft 125/braceright/asciitilde 150/endash] >> endobj 33 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UNRHAG+CMBX10 /FontDescriptor 183 0 R /FirstChar 67 /LastChar 67 /Widths 168 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WXZMGK+CMMI10 /FontDescriptor 185 0 R /FirstChar 58 /LastChar 116 /Widths 177 0 R >> endobj 94 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FRUNXE+CMMI7 /FontDescriptor 187 0 R /FirstChar 110 /LastChar 110 /Widths 164 0 R >> endobj 14 0 obj << /Type /Font /Subtype /Type1 /BaseFont /STSLWD+CMMI9 /FontDescriptor 189 0 R /FirstChar 102 /LastChar 103 /Widths 175 0 R >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OMYQKC+CMR10 /FontDescriptor 191 0 R /FirstChar 40 /LastChar 115 /Widths 178 0 R >> endobj 29 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZEOTZW+CMR7 /FontDescriptor 193 0 R /FirstChar 48 /LastChar 50 /Widths 169 0 R >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GYFIFB+CMSY10 /FontDescriptor 195 0 R /FirstChar 0 /LastChar 112 /Widths 176 0 R >> endobj 36 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NSJEOL+CMSY7 /FontDescriptor 197 0 R /FirstChar 48 /LastChar 48 /Widths 165 0 R >> endobj 15 0 obj << /Type /Font /Subtype /Type1 /BaseFont /CSSKWC+CMSY9 /FontDescriptor 199 0 R /FirstChar 24 /LastChar 24 /Widths 174 0 R >> endobj 34 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PHOFPC+CMTT10 /FontDescriptor 201 0 R /FirstChar 83 /LastChar 83 /Widths 167 0 R >> endobj 35 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BZZSDM+CMTT8 /FontDescriptor 203 0 R /FirstChar 49 /LastChar 50 /Widths 166 0 R >> endobj 17 0 obj << /Type /Font /Subtype /Type1 /BaseFont /DCRUGA+NimbusMonL-Bold /FontDescriptor 205 0 R /FirstChar 35 /LastChar 119 /Widths 172 0 R /Encoding 170 0 R >> endobj 16 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BQGVZL+NimbusMonL-Regu /FontDescriptor 207 0 R /FirstChar 34 /LastChar 126 /Widths 173 0 R /Encoding 170 0 R >> endobj 23 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FHWCRC+NimbusMonL-ReguObli /FontDescriptor 209 0 R /FirstChar 40 /LastChar 121 /Widths 171 0 R /Encoding 170 0 R >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GFCBLK+NimbusRomNo9L-Medi /FontDescriptor 211 0 R /FirstChar 45 /LastChar 122 /Widths 181 0 R /Encoding 170 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XMWSSI+NimbusRomNo9L-Regu /FontDescriptor 213 0 R /FirstChar 2 /LastChar 150 /Widths 180 0 R /Encoding 170 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KRZSZY+NimbusRomNo9L-ReguItal /FontDescriptor 215 0 R /FirstChar 2 /LastChar 122 /Widths 179 0 R /Encoding 170 0 R >> endobj 7 0 obj << /Type /Pages /Count 6 /Parent 216 0 R /Kids [2 0 R 9 0 R 21 0 R 27 0 R 31 0 R 40 0 R] >> endobj 58 0 obj << /Type /Pages /Count 6 /Parent 216 0 R /Kids [56 0 R 92 0 R 96 0 R 103 0 R 113 0 R 126 0 R] >> endobj 140 0 obj << /Type /Pages /Count 2 /Parent 216 0 R /Kids [138 0 R 154 0 R] >> endobj 216 0 obj << /Type /Pages /Count 14 /Kids [7 0 R 58 0 R 140 0 R] >> endobj 217 0 obj << /Type /Catalog /Pages 216 0 R >> endobj 218 0 obj << /Producer (pdfTeX-1.40.3) /Creator (TeX) /CreationDate (D:20090608232243+02'00') /ModDate (D:20090608232243+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) >> endobj xref 0 219 0000000000 65535 f 0000003718 00000 n 0000003614 00000 n 0000000015 00000 n 0000408873 00000 n 0000409045 00000 n 0000409216 00000 n 0000409391 00000 n 0000008322 00000 n 0000008217 00000 n 0000003808 00000 n 0000407370 00000 n 0000406941 00000 n 0000407652 00000 n 0000407227 00000 n 0000407935 00000 n 0000408529 00000 n 0000408359 00000 n 0000011985 00000 n 0000025379 00000 n 0000113624 00000 n 0000011878 00000 n 0000008495 00000 n 0000408699 00000 n 0000018594 00000 n 0000107772 00000 n 0000117966 00000 n 0000117859 00000 n 0000113798 00000 n 0000407512 00000 n 0000122482 00000 n 0000122375 00000 n 0000118116 00000 n 0000406799 00000 n 0000408076 00000 n 0000408218 00000 n 0000407794 00000 n 0000126311 00000 n 0000154513 00000 n 0000151818 00000 n 0000126204 00000 n 0000122703 00000 n 0000127246 00000 n 0000127429 00000 n 0000127643 00000 n 0000127893 00000 n 0000127913 00000 n 0000128126 00000 n 0000128466 00000 n 0000128675 00000 n 0000129063 00000 n 0000140443 00000 n 0000151774 00000 n 0000151796 00000 n 0000184935 00000 n 0000224119 00000 n 0000154405 00000 n 0000151961 00000 n 0000409498 00000 n 0000156203 00000 n 0000156330 00000 n 0000156530 00000 n 0000156551 00000 n 0000156638 00000 n 0000156845 00000 n 0000157188 00000 n 0000184893 00000 n 0000184913 00000 n 0000186031 00000 n 0000186214 00000 n 0000186411 00000 n 0000186612 00000 n 0000186815 00000 n 0000187010 00000 n 0000187030 00000 n 0000187243 00000 n 0000187565 00000 n 0000187774 00000 n 0000188106 00000 n 0000188310 00000 n 0000188647 00000 n 0000188851 00000 n 0000189178 00000 n 0000199701 00000 n 0000208323 00000 n 0000214022 00000 n 0000224034 00000 n 0000224056 00000 n 0000224077 00000 n 0000224098 00000 n 0000227605 00000 n 0000245449 00000 n 0000227497 00000 n 0000224319 00000 n 0000407084 00000 n 0000249638 00000 n 0000249530 00000 n 0000245657 00000 n 0000253073 00000 n 0000258161 00000 n 0000260265 00000 n 0000265600 00000 n 0000255153 00000 n 0000252962 00000 n 0000249753 00000 n 0000254766 00000 n 0000255012 00000 n 0000255059 00000 n 0000255131 00000 n 0000267697 00000 n 0000271003 00000 n 0000273118 00000 n 0000262406 00000 n 0000258050 00000 n 0000255284 00000 n 0000259874 00000 n 0000260124 00000 n 0000260171 00000 n 0000260243 00000 n 0000262016 00000 n 0000262265 00000 n 0000262312 00000 n 0000262384 00000 n 0000275209 00000 n 0000277980 00000 n 0000269696 00000 n 0000265489 00000 n 0000262539 00000 n 0000267306 00000 n 0000267556 00000 n 0000267603 00000 n 0000267675 00000 n 0000269309 00000 n 0000269555 00000 n 0000269602 00000 n 0000269674 00000 n 0000280166 00000 n 0000277336 00000 n 0000270891 00000 n 0000269843 00000 n 0000409611 00000 n 0000272729 00000 n 0000272977 00000 n 0000273024 00000 n 0000273096 00000 n 0000274824 00000 n 0000275068 00000 n 0000275115 00000 n 0000275187 00000 n 0000276950 00000 n 0000277195 00000 n 0000277242 00000 n 0000277314 00000 n 0000282337 00000 n 0000277868 00000 n 0000277485 00000 n 0000279779 00000 n 0000280025 00000 n 0000280072 00000 n 0000280144 00000 n 0000281950 00000 n 0000282196 00000 n 0000282243 00000 n 0000282315 00000 n 0000282461 00000 n 0000282486 00000 n 0000282511 00000 n 0000282542 00000 n 0000282565 00000 n 0000282590 00000 n 0000406317 00000 n 0000282627 00000 n 0000282974 00000 n 0000283333 00000 n 0000283724 00000 n 0000283749 00000 n 0000283780 00000 n 0000284428 00000 n 0000284787 00000 n 0000285213 00000 n 0000285688 00000 n 0000286259 00000 n 0000286591 00000 n 0000288348 00000 n 0000288570 00000 n 0000293808 00000 n 0000294077 00000 n 0000295885 00000 n 0000296104 00000 n 0000298071 00000 n 0000298294 00000 n 0000303198 00000 n 0000303512 00000 n 0000305523 00000 n 0000305752 00000 n 0000307738 00000 n 0000308015 00000 n 0000309250 00000 n 0000309475 00000 n 0000310759 00000 n 0000310986 00000 n 0000313071 00000 n 0000313289 00000 n 0000315140 00000 n 0000315363 00000 n 0000324722 00000 n 0000325000 00000 n 0000343822 00000 n 0000344400 00000 n 0000356176 00000 n 0000356533 00000 n 0000371946 00000 n 0000372342 00000 n 0000391579 00000 n 0000392090 00000 n 0000405948 00000 n 0000409696 00000 n 0000409771 00000 n 0000409824 00000 n trailer << /Size 219 /Root 217 0 R /Info 218 0 R /ID [ ] >> startxref 410096 %%EOF faust-0.9.46/documentation/faust-soft-computing.pdf0000644000175000017500000107022411702130733022315 0ustar orlareyorlarey%PDF-1.3 3 0 obj << /Length 3579 /Filter /FlateDecode >> stream xڥZr}W-2XٲvT*%>/]PJ%*LϽ/_{:R7FYz޻.<7e׏{]b/mWoqR6$޽ Otr ڏKho﮾띻KvWs޶;zxK7-?o|u7~B|I«cU2HY5t)$enSV}aO_}7"p Eglc/tS0}+7Mo Q̙yWEe[:'SV탔 vm&itum1O7B=VM`fx{鈷9FdOKg3_:s$=G_ty_xR;tiUL6qKW~Z@,ʋLW"7@Eao ?u5Hw#e*ēmMLGm <özLRɏ37OOX'/%yKqs0Xћ_8I`~: uAd/|GG$vn/o4t0Hf\TjŢ;_=UBZ`VׯJ,Qyu |z:GZqFA舰vdO +RHT[DU"oAHLQ9vD4/DhƸLTaK'^, 7_1r(UBn ܢ/,hs;抝XBIx%"Em8[T;qBٸƪM ؛ޮ~- ymӆ,6t=VFk ]nr=+2Z5gxi!8?i߈Ǫ?(3FǼRoڎT;Zџ XzD6dzOeI‰.be<*KkQO$v(E#׃a_=f<&**3JB% [ޏȓ㙧սR9sfRf,Ttm)dp+CHq4%[$V6D=i+cq?,s@ X{O.)lu<[ڋ3ڝUN.@PrrEl=3) Ը`PR btJ^9 Q ^@zWo!YUqg i<-ng^Qf;7b5v 'SvGbMh 0Mc{rr<&zx)W7cc>!mC?/viL.V8fBakU ䷯l5*dE&a^d]i>wvc~r`RlRKIyR#3\>8L dI,#7ލȲ'ļG"䇮.EH30&p@EWq-)(K4bziYV̕ \pl.um:k6;3(eOQSt4UiYJ0!g'Fh!:VG^oRk A;ЈZՈE#ձ<T8xΔF(wJ+ՔO\e>Q#b9fyC/FS si_TwLG_@_|p=9|>3d8!RύdaglfK3ի#3βiadTYЈH(qS/~v2hKbű(K%Wϣ(: w@vZ~ 1 ta~SVp,}yK4x@1!P#czhi=#a83RdT;@eIf\$V=JlP]$q,s$P1&,eSgVPzZ,(%Zƕ2h;ij*p B$ =9S7.Jh;](=% e'o97R^fkF9Z`kfPYAckyRnd(mC0мz.3$EϠܵ:{_BH#ЉOhXtQw =Nd3y~3LR})R7\1K({-NNe ;@y漏Ω0`+" Cܳd3,-@y3-;eŶ[a sBcBTVBUH{Ӕ <_샴B:hDoŇ)_QL_NR7L[%bs8JO`Č+b` 3 [|bjjJ rR߱-EtfY4Lit#?JR r]!e\i[!xY&Sю~*X ڤ% $>5là9%TfnYR\'蛤4;"ȩӴ# tǚW b߶{զk+ fi.醥u|FxHrNZ fCD$G]QBei3HbDr BBZJ,*%3j px)峃dHf8>-]a2Cڮd&-%%{u>2n2fer0y#~`bZ+?ؚ> ED=7)YJ 1tjU>$Q 2Me*%ҪJߠY5-u攻<і8d[v+)ռH1tvQv F;1Xч[:M٤k <·te;R꜠ ziЖc^`؊Ч^>q t:IIdfc'a8qo΋,}GHM?ѡl[̦_bd$endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 595.276 841.89] /Parent 10 0 R >> endobj 1 0 obj << /Font << /F46 5 0 R /F47 7 0 R /F50 9 0 R >> /ProcSet [ /PDF /Text ] >> endobj 17 0 obj << /Length 4831 /Filter /FlateDecode >> stream x<]or7Dy-`^-n=$ڵ-;!eʢ;nE(r87/K%2eQȬ|uq{wUqi2w]qfz}u-4[,j,էA, "qemƅ*管Ґi LCg٢궼_*ΊrشiU 5>V(ffҲrǶ\un*6eGV逸\/*meXTwT~ŕV-+g?1&w}H@}B#T@SMԬ6mUkX"- )񈛗QM[5JهmUylC>6zvos$4G>PcgXۺOj׺ە>/mwL2-;OJn Xp @T~]2#~6a Gx(iyu؀'t[Vնi]f qJ5{^.XoElⓨ r i=BӦlKRpUf,vY<4t͒h`AanBE N=_ŁD =KG)#.iLƌc *BQ.͖ JyW#~&juƤsl 9fI?}o<%Up+ʘ%,$iƐl$Ȑ./쿩Hp f?O wwFj"W] 6s ,KKFXkM<;dO7P8rLG"~ OUnq)w6D!]8-:<;\/MC۬B׌ wOU[=4N OIK]5[g1}h;:oߴ 1kL˅c%12-Ua GPصekQmztb-iC1 - /$!m\Rx8̌"ׁ hj1< C2RgJXR=3BξPeY;Β!(T&$"O&h43E Qj' '\A9(wU3 *q {QvpB ST&P u[p '+ϣiPX`d& .A%1T;L~̺N=kZg4{*r0}|,~Fc}V^,=Ё0P1@+״C;\"4Ry2Y6uP *bK!!pր& Ɔ&rsW[_;ܛފ3c#x9yM2qdGjN-p^Ct|I0GCs4߀>6{@cLXN}U0pEkA= o2:FZ#d\0ȓo@5e#p7c^3dPQ m{gdcCI=^8qS5yw$LfPI1 Mx]滶i3 YshiIpqnФs@3pNh3X·B`h`Ty ]Ί<\ߌ7dÏck5qYf::wS8@P2)*2KNN!8DOL&8e$G($܂e9!kYXD>:ɨMuqz<\<3W.!d ~ 5#FfJ B:?Z}oR`\!i"@KI>[E='mK0R$4*FVWŞ.B1s~&bZ7mG~gglstV%V@7GmifRv:Z8d P7;t3k~(L f9~e0zS!%9[3QT->A<_>!?q(׎#A+6ŹLW% ţYa#P@(QC#DŽq&b)j*CoV3M jm X<FMQiLBU4+^Y;ط>Lq}V}ޡ+9ȕq`=,x6ǓLat]cS0$Gy#jE8GS؁klz #7[HVA*؜!)EÿI} lq޴mm5\) /5!9ˋ ?YUtTш *$}R$\r:ùf/8̾HF*̞R r0|(S1!Rnu',7e܄O r/{mrU}8,||^U> "TXM̩Poz!7p%a `V|"wFw!. 6R'/"T;=X:!\) K h9g][r0> #f7)W؁g'nb1WGܦjs0û6h3pfo̷/_nCl`4GX>! NlX5fsBæ?&IT^>QTQVs#Zm[v)!z_}g#ނÝq"v.oQf3 >o} ](1I[H{pOrs\)VFRžCl*[dsvls`Q:R'7/߫ޔ{!wTAJ={WS8ҫ6=}"G:޾.'!ބP n/^~s1*/8_t a/k/.w̡hkm?`^/;SNZG7{(tk:)>\#tjwks=/]ke4!F᭶ޑdY[5탻Q"h1܌\U}.;;Q5P h>K'w̰)~rYb8Ä5#PN_f zSa(ùG˲;ͼiπJ 3ǞOfBS>t=5<.]uup[+>dW[2j _χ2\cvO$>\C2fi|>e}dUqTPѩщut'&ye#B#nݦ e:^&v[=ɍ,MwP?~?\ !V*@n3v :E܈y۶\߽^]gը14I-O lL eDtZlez2duZ7a~p?NRZ%Sv5+q& L%.# ^V@V3g),|K+ XC}X9` `Õ%c|b1+  ~$s? 0 e$=z+Iկo8&p5$J<ʭYu0wD)&JIj5BWڣ,lvgU{2G@zQ!..&o#Y(,DS\E)\)TY؛uQV4`*̳Jf n&m0tqTr`S`u9N}/;O7{ O*@@3XoʝEN": 93>?OL}bϩlWҔd9pl?[ZJ@jkyFf0;ŋ>j/ o }X)"3y ?LPa8)qV_7GV #,kҷ8PnH{UyTw^᠙ho-܅Gv3<ɦCsGVMG?.#G&g*y~sGVTJ.lY:oTmendstream endobj 16 0 obj << /Type /Page /Contents 17 0 R /Resources 15 0 R /MediaBox [0 0 595.276 841.89] /Parent 10 0 R >> endobj 11 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 460 173] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 39 0 R >> >> /Length 40 0 R /Filter /FlateDecode >> stream xMr7 s>_Cqidzhf %1c 8<&px32)ɍXLÀ\[C%WGwq*~d #Û2= ><'"9ge\B?kf-!ݩylIۏ&oœkG6oOOO_kfڌPQLVad{6ER뽘wkSEK驛S{~ 9h规W3*})m4rEԏHqjZF&6S*'/撡}F\ǰjn+z.3Kdho2XblG+P4:J`SJrwV%Fe֜e$/e?>hĜ{=cZ}D"eS?dqvC/JT( I/2LrL=r,N 1 ]#j(XUPVH!/e*2ĩXJmEt4dxxӐ!+ %T9 ?^4fw+׽i+&x-8=N 0U+RIWVJz<(aXu+rÑ jو#3.״mPKv+M#woqN*p͙׏&Qt11_"huaW|xl:m8R] =bm@Q}8RcqJE^)5}޲<؊ʥyJc8FLEQUKjgU1fN*[iΐ<Ӛe@Uw<.S4CxĶ@ {ޙ>Py5VF8>a7{fWzA 7^9A*OY ~Yby72ּ?5M\\o.s)a@-E^k;wnu~jPendstream endobj 39 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 40 0 obj 1756 endobj 12 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 460 173] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 41 0 R >> >> /Length 42 0 R /Filter /FlateDecode >> stream xIne7 Eoz+qa؃JK<0/Jem1-o巺}6bmßrf`6n=Z]k);J0GuFG k׷^8mct޻^>9Ad..2h-z+Cy[)D;ay~zdeđF S))H8 w bI*/U¶Ü F4N|bjd,bZ7Z!,Eb?o3eR~09.9rlMba(J"sԖKj("u9d#M\@b҆'N@1I, 9XN5A7!@7̉2I@y3)Zom~Li-(E`7S6Y,1W;=5vʯOcqVy=% rY"Fݓ)(guš=HL K`E\8%xB'^nVJo`fw- +fetX k]@סYēC3k/cu*dT h%(jհc_l+2pϸQ ]M gty4+m>,r cH|z,*r|{镞/Y!p~eSsu^(` WNNG_.zBm,W-3f(ЛH0vhÖqS*GYcu'+*_5woi(aFsg1?8p< l40T[ nQaﺇM ;RR?n`[w`:14ǠNʥBm4k7XUnQΌgdByӤHJgA9IBAfю4KЁҩQX0Zwm 5Y9cedG%C1gN0YU f^aalF!i3'TlZx!ihrm$;mޞn~%:e.Z$+E??hD{>>g->~wf?`>2ӃAtWh9tdQv+|iZvJT( Y3&x:LPIPE!JP&[9ʀE(%ڗu~W)n4- ;%k >P.Kp0$"!, _肜!u=176AIi;4j: %E"DH)}8x]Rs wCKQ4PI^x4> endobj 42 0 obj 1749 endobj 13 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 460 145] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 43 0 R >> >> /Length 44 0 R /Filter /FlateDecode >> stream xWˎ7 W()I!*R=1la@(>Hqo}~|yk?>Zw|!hG;~Le =Z/e2;ZS-sYj;dy1c%7y~xTިǠoaV2=>Aci>VԸNa ?eKowNTV_CYAqixdxD\ VYPorޘ*6qb 8!I(eu>DH&=~x$mU )qwTQF)j$:CX 4]fÊ( (J4 $.BpTXVAxX䆴QiibkpfzˀX pnTc-* N p!I3(i81DtuE+7:<ϠK7p:@ |y($[w7 Ztmj; D]:0BdVaaѤ'q%^OUd ի@<N "zF6570h e~Z&e%SALHJ/5BA Q$n[AŹz„@_&/-~4h<95ՂW !D7` q9qjLmp0A-P0^]78KAE|d{E4~e(/H;&X+q_+0 ڵsIYy5@[2 0u⵴1d-+ELS!F7ŇSe 9_t=~tpDyﶶK1䖯[y8>Sw>߰ůf,) gȫS.^G/IteGlT\\+~v|DF`$(aжၮR}MPLK*HV08 LܣhYhY̊یd[K"w$kYV).sLL9 $k0zZ}z%k;¬nsM$5w\Zn鉸Dfe s) ߦ{Q‚A!EEvB<+B L0ѣP!aQva1i.>5d=o>eFOAlh`KOr5_6ree [m[/ C{Q8jME,|5<5@Y){  ##νeN.g3gY D L?evA> endobj 44 0 obj 1691 endobj 14 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 290 231] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 45 0 R >> >> /Length 46 0 R /Filter /FlateDecode >> stream x=% Z,R+plOh8jfg޾CUݪࡃy%<<ߏ;x__;FNTj?߯kjVbY)i֬?_8ˬΔu`o? ;z4~Jϩe4Y|ߒfxZ6)d+4jOM@5~rG$]|ŭё6K55~W>KI*Nȫ ER29e8Wc"_#R~?˼e`l68٪UqV!~ANN<`=5BpOC3AVE]δz*ʭ Vp) -۱.|Vz8D2sܲT8#|a 4!z}Zr\&V\(e!p<ħHrib]9zF0M:]\b IQ5JuP_/n4s?I[d*Rl$o"kAr)=Tay /ñ%^&׷Fou(}G׳=zށ8=eCފOo#:=~ .s&ُb^vJK2 ]t#0񩡵C)5d4ΘMޚ;?[_unBq] #blǢyUHyh2c :я9}X_2BfL ^d~\O(-/2͙PO ٝckl*Uh.Y7ENWQJ ;ϷFg8]˝ȉ$XQ/U[A SWW`#wMw%Z8P5H:"3{\[L}<"3a{F9]@(5'D|@tZWuCM+oY7}+υaP=&ޚ{5 c۵ {Ydo/O{wkn{ejH=۶r{Ӹ4 k~.[LXJeqendstream endobj 45 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 46 0 obj 1799 endobj 15 0 obj << /Font << /F47 7 0 R /F50 9 0 R /F27 20 0 R /F11 23 0 R /F14 26 0 R /F8 29 0 R /F7 32 0 R /F10 35 0 R /F46 5 0 R /F33 38 0 R >> /XObject << /Im1 11 0 R /Im2 12 0 R /Im3 13 0 R /Im4 14 0 R >> /ProcSet [ /PDF /Text ] >> endobj 57 0 obj << /Length 3711 /Filter /FlateDecode >> stream x[Y#~_} +9ol6IɃwܒGjꚙ ` 0j)XXb#?60GF;"7nN#N݇0DZPHR'v(V]ozԸpEdzbz_;1Miqc1Xӎ:0F(Ӑ,J)`~ͷw7,ɇ&d~g:zn(a΍>Oō ͿnM$qR&MIf&N?O=-i#Ok[}C|_/׻&>o(g/.NSiiGñ5ڌ&TSm:xo-l9Ġ6:Dk+DN!Ҵ$=Xp۸NPII=N4~ [W^4:Kc)֒M|ڳEo[w|r?jADD5|OUQ2Qحm3j j1]nYlvqlB{48T2nȤ"¶A`Xe\牺tSm{/66"?RE\:,zQ-v y'/N6Gml:hDZhT&ړ>F!@z=걙.1~jtHIфXiKE96N ] qu_;A;p䞧l}6Xwp t_z~%! H3pVeqä..r ޹<7R>|=,"`Yc.ŤᩘӉ8{Y"7]2ʶT$4yJjtᔝeSf=qCB*$980kp­_`eM%7gD p/b7gr?:ߗ0g-!st~:S3k'M5ݶyy6h;>s}{M=hw,x)|ݐe<[yNP RFN+/֧<,Nzϳq=9qTza{2?L Rh2_g$Ru!~e k(&zFm$"Dd"ԹLD ҾDAAb`+=iE%OQQpjH站/xiFU7֥cBD;Ҭ/=×L27* )Z@CMm}3My^zϫmj}J*h2uw;xx' qyJW}](X2ݹFbzu'ƯlE+sv"BST-5AiVXɝ =-;(xP)um>/W󁮙<&JatiZ?Z"t bZa͂6b=89.`' YHb繜p@>vķ{RLJU"!nsXv`kgk]qǝ$KjAs=h kGd.aUpGϻP.ICAGő8v?GeeB"8yK +c^\Z硖 גqYJŏH-1v+\d{״5s$T8bOfmWEIOE 9@18=w ҼԛK֖ɔT!#4d%!yCaDkÂ,!{7e7 V!so;y[rZۮ$Lm^xPHƽv--ԃxU2){O״kkZ9B{ׯpbϕJWZ>ggڟ 1k>56wy)EiW/M0Smٳp+yHo:ܚ?.ȡ[^9-ϛɞ,\җJ>GZ^K5+y&L1 ګ{i~991: c >"楈=3"]Ka;j]D(2o=ՎX7a~[hm=pendstream endobj 56 0 obj << /Type /Page /Contents 57 0 R /Resources 55 0 R /MediaBox [0 0 595.276 841.89] /Parent 10 0 R >> endobj 47 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 460 174] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 60 0 R >> >> /Length 61 0 R /Filter /FlateDecode >> stream xIr Eu<$O൭W!!-^~dVT=D b!Q?Y_c֎ǏF (}{Dy,cl|ZK1@chfu<9/ kæVkb 55eT[}KGVfO1X4:zhq+|vtp"Pѻ&dn[`\rR< J|P>^ʃ$z U{ LI P{pKVYr #fa$ ^ uj>SrK x١ ;%Vgˡ&&\d@Ⲻ4W4\ܣzQmP`7>7 ԱlTfȸiRbJgTET"3ڼc{`W,4Sk1hǘߜUwbpќL;6Rb$AHO1i2zI̙Ǩ W'KC3>0.n"($h1-'xc/olZ>7H42U?m>^HCqc  OT{Kw *+kAԊpW$[*(2 \,.waKY׺C)jN 7:FlY1{XmS/kl&t:d^K;j~^$4E rTf"X\R;Z=#ԕRuКRny8ePbk,X z~)b#GQ~ P$+*Iu]jn~,Ȃf (z?OMt03_ M#+>i@r|gzA^&mW]3W"3KzNlxU[gE1s"~5r衶,q4 W4vtO ͷz~b ʻF#ZX^4mb# '-xdS7۩|NE#}[Emvtn.V|%sy.Vlendstream endobj 60 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 61 0 obj 1784 endobj 48 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 460 230] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 62 0 R >> >> /Length 63 0 R /Filter /FlateDecode >> stream xXɒd5 W/0 8 N L}>U1}ʒ_[Ne?>=~n_yfoۯ᷇o>cZTͦԷfMf߿?G)u\6K˷{Z͖Oׄ l[R-sxZ=<{*m{Y<ƶfN9WqrŏwkwOP8VMyV84MǟzGkΠHȋQ~⸝ ELnhR6Ho8=ZqɀaKF%'=fj]sŨB*'EL4]k25MXD\{\q9Ւ F7" yŕ4gΰirpL6xeLBNZXҚ#r:a %z TFxCbr4[S|6!FGݽ6i(QF%"lj_H ֈjr1\! BjH./ eUG(%/*UJ /LeeMY,e ŢjtR"Awwz>8JgV]O0RD QuUWd*>(^J>hJ@ k8"W")1-H 7)z"^ӒoYTТ2el%[8?`)CcQsqo2_t=Ճ"sɤ́|أ[`A)^w6z쏏j]mlS?Mc~L.pcX3rB'74iqX:}:.uauݫ"o=o[}ufQ ׼q>qH [8b414( L4AM=@B/4pp[7qkh@*0Qt)Icv}/S8 P&W`8 md1܏XR`dJ FSNэZR|,1Ul\38n6܀ S]2P3VY\>a:=Z.ɼc H"˴Nt\8*ڸby%YY/EŐLttFXX7:p<< i\T͡JE9jEθEW5ēUtA H !Ge kjZCbe@K4]N09n+)E.0U4aRULtII[%S&*Ԭe#pp@_04\׫OJ=Dеj*vNrG(@,\ըvCdA#rZ\]BPezj@Z[ȨH˫*MPCMTљ fK0<֟ 4s+9CiC:U7kiu%{4]ڏYܴkngܴVݴ^B[/.=$7UyB[wI. {׻c3'|#endstream endobj 62 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 63 0 obj 1821 endobj 49 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 460 287] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 64 0 R >> >> /Length 65 0 R /Filter /FlateDecode >> stream xX7 + h mفgvvW.p$o{Ne~>oO?ۯ4z/~d$}w+_5{]wiR>pVJ)8zOSRTsO8ُ-Ӧ6/Z5YK+AwhȓfJEIOR3$[*5Zʮ^᭢Lb_fIO G%Ѥ\Y ǍYyrt4i[^|I7eZ~3b"LGpCHc y-Y̔;*rH>i8E-W\K<!. + c pTbj"}$ri9sE+l>Nqci%0/(%"Gy#jUsIy A 0PӘ1lP.<2, Z"`3GT^CFT<;bbL<ZI # w`R_Ac&3Yp5l|{cْ'N@)Vє 8{;*E<̼grK N*<#@^-pj+4^fhw kDv(V>& 0V'}p8M7eK vh"vXg yCA)*2CꌚSӞ$0Kȓ!/N*$)B lׅ G qviCS(G˾q1屧Uwl$c҂Kl}$Bo:h#' _ nk(ɱ2_,)tF 1KX+J lKWU_g@y\`hX0,YnXPX[lǎ'jݟl$tXǾ6c$lX[9sgj|S7_+<?x'xϬx\-4\g?|\0W] J9 g endstream endobj 64 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 65 0 obj 1873 endobj 50 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 460 231] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 66 0 R >> >> /Length 67 0 R /Filter /FlateDecode >> stream xXK\E ) *'` $X b\ U*)cZTͦԷfMf߿?pˣ:Sk2\+#9gw=2-z1ۖTܾ>JFJ=}@{,Ku֓ƶfN9Wirŏweo}r͵jʳʿť6c=4:R^yr7Cn;ƿ&50T+a< h>^W ,x}ŒwD^<+/יPdPV6 (ehA)ӣGh<ՊH\R5-91S1WZD7iry"iX{ʼš|OrN5.jC^23||Op^*T@ 9uR P"liW|>Ń@{Lmed]Q m[ p(@l4b3[`|*_E%z;XEA^qj]¤x֔RP,Fg(%lyWAULkWF*NDBeNNշ_x` #:*y Jh^&3W"y =c[j`llSX.4iUR=ZBŅFm[<@48jGsqZ9f4DtH=Ӄ"sɥAb-8j;e};i^ZW9(fO;xjn:gJƽxu94P\.Z  _-o︶[ïfNx AK,01+i ?kflw;-̓[hD`ء`X˥I~+jlF)2b1^njn4ӕ qu9ˇB˖CV .ˍ *"A=UY MTCMTə?c?v'1z{!endstream endobj 66 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 67 0 obj 1822 endobj 51 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 403 230] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 68 0 R >> >> /Length 69 0 R /Filter /FlateDecode >> stream xX9%I)A~dC*)a@SˎfrXM6}>[&_Ai_𮔣zOk3_M/x(Xxՙ]_.pO 1Vt:$xxC7Vjϯ-ZV*nqݘ[\xn[ϳJq ϽixEǗ5LE7+f0ĸ%o끙GFLojUɧzaNZN^&7Ppd!ۼҤl{ja-2 fX!x4 )>E_Z^V#  ).!Y|Hpa lX=/ /0XBIQf2Q ^ WB ܐh#Mz2?ԮNximAr-CӌD#HRTQhUze@4'K SDVTs(*KKl_`!o?e 7l7A)țΆ\$rq6ᆅkv䁁1o;nC ra( T,g&gg4zc%ӫZ`6Z4̑SA=1g-:ݸqi,KE5yU7?Ĩ8yؘi\0؎^{l 4tM?f':)Au^*nlЖ4PZ8[oTޞU^E2%S XU:Nk:a$Gq\ƙhPN/ X?\13ˤUdm,hF3_)2/JMY*/ a 'ؘk\f6~,KsVqWiENE0Ťray0<26~@M4킡N/0E .0$pfC@T/7'> ߥ}¿$Aendstream endobj 68 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 69 0 obj 2192 endobj 52 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 403 287] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 70 0 R >> >> /Length 71 0 R /Filter /FlateDecode >> stream xY$ + j `liLZOJ=J~_ !?1Fx@ߏtڑox~_+Ggva?Yk9OŎ[?8rv;%yse=q.Hzg Y/N+0a*ui6s_4õZMaqfxvݰilX2\+ox㻄K|?>x»n۽J@f#n*} FeZIg:_S/j ԺvvZFG˩|fmGn@꼢R3^tRc@׉ ?3"<щE(0^YF'#Mי$\U[eT|:W,J5:r0*)X k%╯ d5]yLR~{?!*90>~娊9pBy^,U5`~\gox"otعr2 n瑌U1[䖛c)Mbx80s Z4jS+8 Rg@?)].hN$p5؅ |aBGdձx\e`\e]]n*جL:GTi=Vesq<ˢ `#Øq-7!3v"ʇ^1UƑIv@Y`܁_`zfxhG걣FQU5?.Np%A8rfp*+rT̘hnfeA dcA6ֳbP, :գk\Uuqkڱ9Y5=Ďw#3Uwu'N =ȸ4%LlW}EK {H&YQRrPu ղB( -K [6eU.R :"=)1bet)8al3V\n+rXIf ͪFOg.Y+-H֪>$sf,+:vi4Jzʛ>z @wnmhcFa E8yDuP)kꂴ up>B3aps][{f="/uMlJ 5Xto[;6' L&S}T/wyˬ4VtƎVBg/$^eu NZ½iEU+-.+\2Mas( xIXj7yq8ZdS/4\g>'~&9oR *Vv7TYҳ7'&b椚Ykf}RTG.J|q @w0pRb8x=5.<)ºm+ aC>bڈ#{DJ8=TyqTRΠrYgfL)f$}rX+#:P#F{7 a/8#R b#&ٻZW7Ppm*s{j] 55]QF_dnH\V45f^u)3x 7z G5KM6!坌oo}H|endstream endobj 70 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 71 0 obj 3215 endobj 53 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 173 95] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 72 0 R >> >> /Length 73 0 R /Filter /FlateDecode >> stream xA@E 0zc.4:4?>! &K qW# Z4RϞ`JunI~|Mv22`ԍx:3x4p)B)8g12endstream endobj 72 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 73 0 obj 144 endobj 54 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 117 87] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 74 0 R >> >> /Length 75 0 R /Filter /FlateDecode >> stream xMj1 :NZ EE_M'- a uFm^/`<L-و2zN a$;*`\Cw;Fi\iWN9A4!aBVu'=GG92> endobj 75 0 obj 204 endobj 55 0 obj << /Font << /F47 7 0 R /F8 29 0 R /F11 23 0 R /F14 26 0 R /F27 20 0 R /F46 5 0 R /F50 9 0 R /F10 35 0 R /F57 59 0 R >> /XObject << /Im5 47 0 R /Im6 48 0 R /Im7 49 0 R /Im8 50 0 R /Im9 51 0 R /Im10 52 0 R /Im11 53 0 R /Im12 54 0 R >> /ProcSet [ /PDF /Text ] >> endobj 78 0 obj << /Length 5171 /Filter /FlateDecode >> stream xfAzggA[Rj H-|6wqsۻ7RJYڳIZ2\{GU0k]rYBҏn3śm?4k&/=w+R`u%sU)AuY icAv(خ(=v ㋓kM߷r%$)~BQ?Mc);M @1@7)f7fmGZ‹CnƹJ'Ԝ_P_ aEgipkPX.j)'\x)б˦7!`JYJuO_5!N}TʣZ4n#3V_#,#65vTD$\L#*kT Ed=۾#^()+9jxU*e9[8]w6˫dMJ|"JH/kϣȁj; 5]Z#9O 3%I JZW#gx ,O5C[. Pf(Cd Ԕt)'Y Vݢ z|7xɡc~@~/'Ç`5ace**Ǒ4%F<[l( ݗJ2ij&.C#xO! pWM?+b*E)@+8z>Awy5W4| JhQ'YaMu}u|$ )Q){PÉK]$\sβeL/)cBRTOo嗨onrqZ]f^|?Wf|VFx5м*X6mhЮM_QR;<֛`~f`T ouoˮ5kwDc^wm hc4AH4-,I7WI Uߧd0Y|:Y67)g(T TUB{ qVB*ԨauDIrυKh Pb33SHe]ɉs;A y:9q]B8Z% qr|\Is!'BBuŒ`&7l9 "c,u9OxFIZ cHE-P#Z-jppU \nlejlU>-[pטe F#/}p a(0olp}p+{uf{aC0ui/ <q-SImPn Qۀ]w(еÏ{ls䂣6邪l{gR+lxc" ) nIn^Ώ 3湠ưh,ƌ`mmx0jf7NN/[ݣm,[S;BxYIlE#$@n62;Β7R>.61Εo\T:ګhe& =!9P~+0`*R!x20FyW@+r#/$AJUp|@\ aC59J1oM H@CQ֙vO@?nm%3/&7;i n6|-?2rˁa2Y,`E 6 Tqy>a5qt49@'1"* 0dyukSnJ䔄Eh@k1;n>`N /Is^f6H kw8Df + g4hp,;֘UZ6Nu+@%>]xZ w`gqI`ii͟ni(+COa uU7. uh㌴&Mlx3 h\zrcuBDjȕW!DÙw&F& BR]\)1$SuRꣽ%d Pwm*>`5lzȡ}wmEfS7SZdTEE d+ɔeXPi!-IwΝu\>U#K*~vquzf5)·+ t&++x)ztLe#*]&orԺ16`CYc[]' P&Sfljo3'B,Wh99+(%X#keOrPL`dS% J[%\cn(z,'z4H́Fвɝ{``ٛo|8'7;t?,fY~ʕT:sT3PC%0˾im?ϬI+#x?%uE(,Us`c81oDX@6nJ$;-DNBMilI `QRQ*2("~:?|9L쌮BPDUz♊rni.i.Qtn=DƮ7C5V^Om#Ok9^`llj {m &c aAzG͌v;hwOZ<0*XYG3Eh(C1 0QJ+-R1}> endobj 76 0 obj << /Font << /F47 7 0 R /F50 9 0 R /F58 80 0 R /F11 23 0 R /F8 29 0 R /F14 26 0 R /F33 38 0 R /F31 83 0 R /F35 86 0 R /F34 89 0 R /F36 92 0 R /F32 95 0 R /F46 5 0 R /F27 20 0 R /F10 35 0 R /F7 32 0 R /F1 98 0 R >> /ProcSet [ /PDF /Text ] >> endobj 101 0 obj << /Length 5326 /Filter /FlateDecode >> stream x=YǙ+7$Vjm v@,]E̴alR8﫣GyKaUwUF1>2:#2c7o4dZ^߹_۟_c$!,3 v(nOv.Mq>+_߰2M1Vc3o7F ㍢.7?on^ ˆ!?妘1r)%=`F52|\/nJ>Ŭ,u~}m󐻙z'L)WŸb6]4Ǡ` y̧by0(*Q =~sƋrv2/2d*<.z76^T¦XN!Zc`ޭxitry=#w}~—U>Ogh>Wн=Ԍ߬ n9eto|Ȍn #ǖe_|?Luqe&NF,6"J6lm i Uޅ$FMBU/]y)kd<@CfyUH@lM@[b 4gۏ(@V@:MDo5}DDrsha^U[-h"muUs;Gq%g8тE k-Iqx>~j4|Wsb W5cc'"`@#dEmEu"d㫼I qic"XFߧ3c gFIy+Q$_GXlGm_i6k`\eY Pߩr}xa}:ܱ B@PQdp[ryR|ĭEh`cbGZ-YLed͠='-5KCS?< V[fk pY\Lx@m7bPƋɿ4| HܗA os~h'&\Z0 ír_ ] VAʗV5` t_9y| !T?2r׌{:eȌpPj<FӵS|2+WeUEn+_rn)IUHEu X]84 yW&2x]l|fp3G1bJ+vΠa\ WzWF@E-S\TE[ ǤRnh L 6d?HPZ2v MiFDQ)m/A " )q` N8dwPYa \A(hbk8RCTTۓLgGZ~X܃Ӛ0}7UV?ZSDg2ZPIti5L}պ BCZ‰i40EE%c!r{jzc@b"m7D@#mC!mQ^CXi844j`~M˧W5ɴ>k-A=%FhDBhkB0fz8lJbf_'%([4LYعNr"n"z}le)4d9:lmwKcH-sam$TCiV/8:<:5T] ETq`/̳W(Ajt77T[@WNJߒ67hN"ф4Z UA{Iy[M=d Mϟ*]pPhx8S$j<#/xpq۞XPXru88p w9Z_ RMEEDu2ͤIKV}j=6txɃ/y=98z_VQ)U> }"iԧ:M}ApXMp֘K5q87V.B=,君%צoJLI',F:k@߲Ϛ0O%M4 3Y1mX"~DIC;F^ȂD& KXP^f"D!CJGPtyuyCL͂xVjC g.N0D3]d2Ѿtk&)98yb#@r}p%D  B-} 1n0 虺`1@&(0HP[77?o᷸Ҭm1;Wf b4 }&nڕ:i(S/4+_%@@\a-⦼a ,\v503.y;m*IvӭD0DnW`ihi Yy*q/z5e]HFfAN|V[*4DJ{(  q;ֲrD]h?f4C#R{,Q;n "/8pxoxsw eVH*{JL{QIOodYT,6/hk_:w9uDz Z˭J, B @}jx=`.K5Ή!PvՏe[du*) 2։ ԘR@LjnY 5q3.a:/0Z}ZT8 ;z&ElSg[d.[a4-}^5X}*ѓi*I՝<5ث׻KTڋdЙd{hz3YoaMlk)x=[qu`+8/Δ<<= z~л9YO7m_WKF;L֛`6bМiH$c¦Þuq+Z漉,LT"8'_zgX-zL^M'1-]ʩ4BlmPqdk% VMbSJ~M `0ThYLP,d/k`6Aa@Ų#/X'Du2?PKdDb9[_]9:zVIK X^9'⪘ϯO}sYAk*̦i2cDV!\fWDvdD 2²1CSEwP9D=+Uumv:6sÉg=t' @hr F`6؛{/}MaSsJR`]i[Z`hN}e}$>v&i5\X3y}A C-%n$vK~;^%vji)N8O?!ɂDs`qwI E'ei|LX 榽Ű""73Exv-iz'i1w6K:w)wd8mj~9.]:g -ܭq=` xksob8~9MQy׭c_bͺS;o|{3} [QE4^k)*_ZNow>Li/w'K<צy "N$6sP7Y_9Qk8c7^&;CASdGHfEhi| t[~xޔ[~V*KQ~RpWwL.+uM>_0 : )z t(|Y iք\a49G Wbǣ6Mt M[OiWb9f'8,scsQbb*fohsKǃ][ !ϴC!%r}mă!<^P)\|>\a_1!C5ufMgIbuP`] =.,K>߫=w0+m[,8HwZ^y?NkP^!->w,MuCgU|d{cnD\>ݭI.gznH7(SH7%5-ixߕXƒGo=B)YUUYrAzIrg/|oVTZoEGPv.7yna].x]Ba۝O5Ζj 0fٵ %vkmz_ʟ2)SoWuE0nW>ezoy]2j*kBPsw`<@q{Tn3VMK0`$nbpXAUP7:8=:=Xou_`Bqkendstream endobj 100 0 obj << /Type /Page /Contents 101 0 R /Resources 99 0 R /MediaBox [0 0 595.276 841.89] /Parent 10 0 R >> endobj 99 0 obj << /Font << /F47 7 0 R /F50 9 0 R /F11 23 0 R /F8 29 0 R /F27 20 0 R /F14 26 0 R /F7 32 0 R /F10 35 0 R /F13 104 0 R /F1 98 0 R /F57 59 0 R >> /ProcSet [ /PDF /Text ] >> endobj 114 0 obj << /Length 3791 /Filter /FlateDecode >> stream x\{o6ߟb[k4%j^hšMyWuه#ɉO3|Zq׻+"%Qp8oܰ l"9aO\\۳d>ѤPjrva:-~Q:-_ͲlSMlCk$oξ7D ", ¸#E 9f(H.7t8O(aE1p7YdTay $=~&NgB7M]NS6WuW4IA3Gξi;m2Ny6}=74NgHbIƒiz^@w-]*{3'j^>}vs]5ei:^q}dԁN{P(vf}gN`99wo$s\jR(I1 rqy3>͉]Zk}Wʽ\kUί\ k_r64ճc-WF!`u8CQoc2`Io <JD,MxI$' 8I/fz18 *rP}pKsU;/G\YR:e*d$p"J(9xcH9eK 9L '3~EhGӖWYXnؘZ>{21 B->bz0!" {Iπ݈hFxPCqD`& "^: F0Uۣ}/HV7=%QC9>P QcWQQ Rl(FxF@"wUxf:qzb~p @Ijf =JScDwRd73%Ph(pjH2I(Zܬl y U\+oܲz,'mr ˃ ¶^7ͼo6KoAWKbz?Pꌤrt?-=T%佪\'U,Z*"Vm2Jp0; 9"76?8@9Yv<'`4qވ @>1ӄ N 7RHA-²(`|Y8C # 7I_ I%\qp ؈%gx?6L.Ilc\6b[w뱘ۺPcCl? %lPqz}⽣2]K29*cKWۭ2 "14=iC p8>̻>߄Ꭿ6|y38gnq*wW\"]SneQQ<٢iE1Gu$̲R*Lb\X>x}ʵ+Ɍ=ձMdNLE5Ж8mI@%- E^0!g.u@Kj]Z<%z?k]ֺy(FWm1(5r}??anU!v~g;on5ltc[cGi)5]` BO[g(ɶn[ kAG<,D7I, '^m$C$cwKAa,yZ˹Gz 3xT[ 2;V1nޑdlPGR9S/EsoK9ֻ +Kr\B$M =?-W0&h\e\ev.$Vj:Sӻ,*USRXnn<k) QakIN䐇-i[7lS"8ZjI9<ݙJz@:tI՘&Y2߽7CQd A#ͳ_a9UnQx0eM%5S ϟ MȦɲE\wQ7MuER5jwFZ}|\o aE=P]Հz.qw!Y^.ns7>>ZAqM5CBC``M|4s›E5Y tY8:5on[u# W(F\Dp}-@q@n*ЩS@AN#Z<`DD@aDPL[s D e@綸)S^Xlrut΢J3CNh/q]4 */0JD]'-`.SlE)<\}?-WSgc ,4>!Ϝ 8n0g ؊9+H7 &|(h?C cF֯Q5ɦݖtw !-,0bQ-˻D Ѹϙ@}}3\ pI#O q͟VpBu'yB> ߋ,_UJXS&|X?7&B]Kc|IF^E8U:[MSهK ,?^˄Wcs;O*[ KGE&s0{FjݗBbI97wOSs~iqT&JO儆 O ;ZɆTͷI Xj'7-`*47N3ѧxl1%f&x3NE\mIzҴ:{]T2z{@f5w!NF!Mo$ܱñ{ӘjQN STMm~ b2jvQ3uaφ5uX@Ozɳ}8RDC=cLg9wt,l&w!l?Zaik*>iMGOqtIO'F\~jX rv`7G4[~vN*dWOE? ܬMـdbp;7;C~5#չ+]B܉^B& '7]FM^Uk￴vֿVkO\ߵ\c1\KKyޞ57Z6]gC0OI̶ +zEa\2ޅfkjō<\Z)UE Bq";9@:e,Cxܟ9!$c{PEHnByv9{qi>9J½O`tR'1米Rb(8scfEUͪ6{ko"'[ľkKOcKPWC,Kօbf^X܈&yurАi{coNDs%p箸L@ګ`1 eSuhAP'Ҥ bT,"j_-^1nr| \t3%!f) n " 6mRiy JC!X uG(XC[L2h9٫CB`[W sܵ6=| 9RWfp}G-!`kj}Uab(mvtP̥}ʼ#endstream endobj 113 0 obj << /Type /Page /Contents 114 0 R /Resources 112 0 R /MediaBox [0 0 595.276 841.89] /Parent 10 0 R >> endobj 105 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 709 173] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 115 0 R >> >> /Length 116 0 R /Filter /FlateDecode >> stream xWKd' ) 0H #zc/|}gSqG/QRJQ?wx|{4#]=TJW*U\?9Z% %AYVZ*&?Kb\@KoOZSHaIrA3E`3=IJv$V4hP/w5*#吪*Z7uu'C' AQ .9L&WQ!%ӚCmgkmp]Z!=\{[4{Os*өT{o}{_S>HvK4d3+Aӗ/жl]ZKMIt:A[Z.Zn6.5=nJΆSROZ +I#OL҈&reJRpf.L,[BR J"F5TX^8)ÇigT(Gt'IB-hND }z^sY>W|Bb hG!*|áabS裵[F2 P(<+#XDRE P\5Md^= ?9kI%у栮4Hb$n@1XbBP/r$@yOp_yA8ZO K:$笀 <ש5u]T/U&A#L$= ӊ^GSj0Lw~^x6k=eҦ9񞼾|d [kx!Hj]n OcF{q页 OTwGx26Z\MM8/ɗcR'H*++ \ 4FMaj2 FP@F瀯EgEG0n_][ , 95븅uEuYȐɐ#Y F *èn Fĩ<:t s $1@ȈylbkG/zGT;玾 567f5Yo` D+3D_7g@CKzft`6)`*xxuGÍKCĈ) gh8$$"TjZC+7_-;UT Ukx#³*NAmM:iV_NGEFўW#(ea84@t~"LqW&IlQt[E*5jydDȘ%瀆h 2rLzqi7+4Ы [7(hy+ZYڎZ#ɒjS@O 0>FS+ |+F=SJr> endobj 116 0 obj 1652 endobj 106 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 377 87] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 117 0 R >> >> /Length 118 0 R /Filter /FlateDecode >> stream xKn%7 EoED}d F`:d9Un 0դ%E?r*G}x|[;(7(-a(ὧe?6SmedZ/)[9{͎5Kߜ6ZꥉSGɩ;2X0CP yo+# Gj%yXT2)lJ+Y<𔽅W 3:.H.rlNX~x&,#6$y&]y<Jh5'#ףR֩}3~Osj&-H]X55kG3 kz*ЃyԥzIjFCyT~)zG5+.T:WR(¥&ВFF:Kk% ]jρz`UvʋomDZyqJ?0ujt'ߗc+kGY9%Cwůk0ᨽה Ԍg5(KѮ/[X #s8S$C<@#h?u=Ec+":Y_y_2 u{̞#yrq,veĂc4ަ&TGu|2:璳Xn.,LԸ8b% ;suϾgE&Ht^ > endobj 118 0 obj 1605 endobj 107 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 630 60] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 119 0 R >> >> /Length 120 0 R /Filter /FlateDecode >> stream xWI7 )8h:NH/,r>ʡ"/\P~Bk54Le9mQIPMK`KZߐ}nxQĸ%g船 !P H#L0B8Hܔ4prbpUשqƶCᾫ$fԞ @y>=]8k7?_iejwc' Ќ3sl$qaH5:A6L>o90mT܇S[|wM˟ ٬C[ [$[7ȊێwtJ9%=mR2-ON6В1l+|2Uk&.`OaըG{4"D{*wrnkl5TW .Rc֍ڰw> endobj 120 0 obj 1679 endobj 108 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 261 60] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 121 0 R >> >> /Length 122 0 R /Filter /FlateDecode >> stream xVI6:8$Gp/,rTg .5A7?} 6]^e;tz9sƶ˙#T9S!1əvž9orE]j7xc.5"]n5f7Pdy `JknR֬vI[fM)#/}RF&en})bw%s|&fztiO1|*5yB6"ozD]3nbͺsc-OMSƔlZv88.e޽DE!?|VXr#7~Y91tszy> S_1vR+yߞ/oW`endstream endobj 121 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 122 0 obj 1123 endobj 112 0 obj << /Font << /F47 7 0 R /F50 9 0 R /F8 29 0 R /F14 26 0 R /F11 23 0 R /F27 20 0 R /F7 32 0 R /F46 5 0 R /F1 98 0 R /F58 80 0 R /F10 35 0 R >> /XObject << /Im13 105 0 R /Im14 106 0 R /Im15 107 0 R /Im16 108 0 R >> /ProcSet [ /PDF /Text ] >> endobj 130 0 obj << /Length 2851 /Filter /FlateDecode >> stream xZo_K K"{آ Ŧ6LVR6Pě-ZEK$Gp8aĂßXhɄ Lb.~w}6Z\o^϶iG!SJ&tӜϏA`P!e0k1|mc67r7 Bҭ#^%?/Ev{vԕgk(MV)@uP LPJ&}0 RgMS1]H,ж\3:Kغ=Twn=ADhr[cuc{]lPwp챺ohƬp5#?qHqsbliR## >;^Q;씧ve\W][V\讪bUxdb"iޟdSfG`skHkƧR&7,+xәZLoգ|SuKT < 0RC{ҠY0=xWG"ʕ3kK}@4?̧€{"1I%GBuc8Zu8M[98R@䀖 WK|%A1x)DnLU;UOOcdӥ7k~L%1 فSSZ1y1&мBӐpKwj3)<Y! O !vԗ}L?ԜYzn?κCVԭoS ᇢv!XsP2 E 86 R/mGF]PoP™^>شF*p¢UFTUVֽ˸!ra]("o/u]yYGG_#] f'gcԪZ. @:K ~[0>Y峘u=kV}mʆ3'b8Ć=gT?Vd*2ZL `R=v}h@ #Դp9NRuҘ FwrU7!B`HR@UszmDKBF[T}3((,ϵV#;4΁ML[ Z8h1cCoP ot`'_ !$GKSfB,Jֻ?1+C4g/>nїSg/>qW "ȼ / ;tTW;Cr_R&W3rWMۋ_d:p:ot^mSF%aWS&uTf Z;ɥCuC’9ufYήNݿɹlŽsZ=j]7t̥.UԷ+j**]v=Vt܇ 8+56v rsXDEn)߰c)5l@زx W]ung0Lz%z*˗DLE=:27.]Ѵv0[8`p$o. 2T TYV Rəgwۨwe9Yjq^l*QLG&(r:HYanflw ؁cm'i8!)*/WB 9 P*C*{ PQ) ^w̹Oxr\ffBEq]=g%t`@œ L8W#L8"r.MɈ8VY*륿eݠmjjaHj;`#Q+y=> endobj 109 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 423 198] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 132 0 R >> >> /Length 133 0 R /Filter /FlateDecode >> stream xK$;]9 kKBB*8xRCӗm$P(%ÝNo< o߿o+w.K_1_W_PyjNzBK֎]x۞e{)]U᫛c23i=33jk-U=O/kiQ3pa01gL R՟'(e=1V۟=gSL=_{oGкՑޑ'Ivr=^#L"mfX8=#ڙ HZa #M-}XUl &hax D @WIRBkW=u>FR~qqn/?lz" u :P翿JjAl4ߍHdSDz0'LZܖ4o,g6`9V#3s6rrIN7VOkof٬Xn歈( WSA*:ovFd*UhG,OlWslgM硥֕ؠ|^(5GiX򻖿Qmٜ63jyŖ,)K֟=F?zknj;!CdӒvS Ziy@Yl G@#DW.&ȶ[QMAPa<ؿo&H&~6Yr4ɸ^S>|Pn5#O<Փ11xw?G,t}% kP~?X=?W}<ǏQӥҔUGrGy$FۂfFBMd@ocҴHU%O43tͼr)ڔu`vǙv[4F>MK/CzMs/xc#وڳdM ~,5;`mc=F4Ix1 /r#cW3H> kV$z\Odsgs5/cf 06,^Z&'=ǽكI[4}{V-o+a4_*qd1}Xb D.x͂3.5 dīm^M1(e"H sRm |'uTVvŘmV%\?Cl6վ(5B^dwGCoKPMz]1pdzȦ1bQs \DP wXCy+n3h_n8 PrC$SbqH5L0g"Ϟkd{m9c-fk/*z=u&&NTAۭX?lC+2]aܗzafS#0ُ!#z~3$8Ɉ.8xI ` M tqMNHpcܦ[(SE26/ q`B=7Bc03ѶH~"e"q$%au} ƻKHƳ"$U{犭 [ߴ= AD7R(tgtH}̄(3'X=Iri׽{3dUIZr8k5jsv?%{K\mQVٯ')R^#@c#od_FI9.56V]׬Jc=1ʖ头6\!d1uҦ)'ŅMfxRi5UtLgdJf_K.U&:mM.y#,(SJӧ΋ێcn[(rrjeK%+?qA({clua5 }v%HZO_P#e~ ;n)|($7D|->^f2R[Ҳ%Y<싡FlwE罟?.PktLg>y {t*0A/e?odu֡#)y[965f dzo e;Vtm0׾= $Mxq7~"na/(d15Pce4+1TtMfca 3.p8=$&`D#R%06P͈dazL0bB9~p n~3*Ϋ'،6EIk/,w,4.f$gJj*(GvيY=FVԘ9^x*<5oZ|+輾Kc كpq"x Ѫf9uNϑq~~R%Cs/̟{ 96ȾT$>x*!`d_.$ymH-Oq5fH ɀE)=@$Rs[6 S _ {! )kș"Cy_$=`j&l'*e.mӃV jd&q!^#R 8LX)Gfb6x܉GO8<{fwv1β)e#I =fL ʗM%0'ͯ8dL|ǔnP0M&܀>1T7+$ 623 (/G|Cf+1F=䯛{,,/|5*\R,%%+7 [n|z 9Kc=$2;VmmOίI Q]X ]r}(sxc$62l_KJl_N Cj )GT#t{uO4~LlzLO+վ}g!||_9w%у ǝ|_ZOI='{<Yʚt_Q]ϓUԥ jOfY;WIst_5CVTH'WVo||'H> >Ö lN`Y  :fkfiJYfL5jO-(jm@נkzXh l6+aR^բݶ7lk'8Ca[ǘӶ,Vלt8  NK3SAh,,OQ_y F;Q?姿{Yu=l[~8f7~:@k$TB0V۶,G]X@,ccI7iYme{ͪ"FEK4Fʨj1Ay >!p.ǦB׌BFqՇĊ5'x!&+`ZD ,qz] -Qܷ4S+iide27n_A2’DvMA%Ϲv?w97ؔ O p("^q;fOOTNEUm0^ GCdL+DObvn7 z>rY;YĿuw_/.#G9s!Hz_ > QN\;TNWtx W ̲ O |>` cN%' ꉂU*`H:bx"NYG>y".MD"_po`㉄O{GO".!'$oTaڑ0$^0؎3;u%,lq>'FI!W; V`0t8@iz`9'F8OUbS= 0~{j*a6~:;ʉ1I) ? ?=eN PXDuV Dv,ybaFgX{?0;Euñ@ O`$@W`]+֮XqD>`LlSq0L7SBөO,QKOX=a0B&͹oMv:?Ԯ*8 |0 Nu!=@ɲ1 άpOW1b5jʹ<=x ; N-tEvu~@ǁltu]~) !28͐)?]zTYWdW\{ǩOW7#jW¿KZޟ4ĩOd` Bh>H;ॵJQy(#qfZL*Ei 0y٨xoq"VK!b6GU LRU@rysAVs4= ٕY2 e Ν F+'^[!w . ]"& }S4_ZG H!y!pxB pQ{d f>C>GL5PC($~ )ja9,P`E<j`RX'٧ms㫍RnCS, O|nx;Vspt=iʷF"A^eK&.9(86DpFE '!0H>pցҙxp;pbZFe˳ͻm:9tTȷ0e52KP~p4"Ӝ޺;pz#GXpçP*ԇI.hqun=YS'nc>H酢/D%;H=+T'aD (F(8(qY(a Mv\S<`<.a\Ky<"?SDQ Ee#84(Q{(rY2p(=B \"wP& QdPܳE:#lݺlAYOQim!teă2J҃(a<'OoDQW(QQt QQW5,kW('ZD9(Q˕Bn؀" :G0l@(Y(r {Dڪ\<'NOXDڙ6(t9DZϯY'i7( w/@Y[9 (zۓ8= PdmY؀"j(WB؀SY;[Z|ހEjσ''ZTVPt}ӁP$W_"Y[1="۞E, G^N(|E}9(~!c,BY-BI P!@Q4io@x 븑E(I(1 =RC5^<"zx0O F8"| E6k֡Qct6oD*84>ݮf,#^X_4:qG'\TOÖz~vmU:UUfFA0GE+]ЩaգU!?_u :$um%7g鼸(+^"z'SJQMݙ58CI=*>Wཟ^Ι7q)̇ ʃ,H*=O U}erup""V/:r^b0ڇ2`HH(2:bj{ ԭno7W]b/T1f*繁R7*|>49u@ $;6i*XSw<٢!nuoM5=sJaj*,e9Q3~u)TTBE 2C?vBPTdhAYD˜j00Ȩ[=:4UI"iU@ *̩_u>kh˳}:Y' 28O3SF T40GO{^hnR_ +l(;x:;o79 LKK~' `Un`(.:N)#:JiMS8 v#0dbA('2 R o)*! *p8 δC 0ᨌEk,A_]UUQКBj7BѕC=c46Z.SCC5O! c/H"ILP~1jqIV0*7w^1iTJ~x#~d%+ɥ3+{~$4:𴋪h7eU,mt"lGO¯:Ul@5mhSY;OpGxH ՜rv(̣׈CnB6JD ]؞ $$eO@-Cg/ak4ʢQPR'o t>`bn,t4"?'IOg:@5M]Hzz\(ds8q`,)˃8&G=Ql %$C`Rdz56!0ftHBiW)pE,5&`j9O H)\OnΦ4aeކ-7 ?J`m6O[!/쎩ZCRs ct% C8]r@#\`MJ0•cggTo0'$e?X ߬b#'3]p]@CVvs3h#R ¢.T:PYV*A Ճа9: /O8O9)xM_q.bCZU*}U ҉P*#-evc잪bm䂨iROI\rvzU&qw[duLv ǘ*9`s|t{Jʬe<_AxؘLrŒ꘧/uxTOTl @O ֋y[`J Qc%dbIͷ[z=ŹVGfȌA5+%}lŭi[N,lksMEi[S~IS+ 3ZLqPIZc$${TVN!Ղfk~Pj8(]Xκl)urʼn S;M.aGG&ÄremRSϯBanqNN E{daߐ#q~8YS8 1R/@tpcNx TCNrB $wENUCWrE3?J*롬e#PZد3NO=kӁc7PRRBs/thP{tLJ9q>w{_^+9]>6;-7("n9|JF(&H0DsZ-Ж ଴ǒeKeǔv)WeFue44INSJBv΂aud Ē5UrՅ#@/Ƃ:kѓovC)GKe~:C.P)z{]:U%]1"R{?q,NwΨWdrvJO'ůXX/[7q2 0)mw ޽,R.K,(K|k%KĪķ1?.[|L e/ë"#'_[ԯ*kef s[bk/QK;9%Ax[Z6=X7je%A*nK|eP%V!r^XJn#*؏t ^O>֪{n_av;lmú;[>vSiam xa9;0oZ%}#wyUr,%xxA$7BȓȒ/JӕT$,L;:I/{dws'w{.ܲ-k.ܲ&[ܲn9-Aٹekol %-GcU^'ZsR*?qR*suJ-I-ZOjYpukSԲ!Ӿ޳Rˢr- T_ǀF[\9Eпt3֣j Rr֞'u٫[V-ˋ֠d[~iZWӳʫ 7v>ٛ+kmW2YBddkfo.}~kuyvعdݽ^\h[d톔'W.}-U^Nr+|I}+3&7A -6V:ή{J;]Ms_RE~y?VXBϨIc҅qwOWe_,鮛ٱ뚼^6!Ugu?='Kpendstream endobj 132 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 133 0 obj 11618 endobj 110 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 429 287] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 134 0 R >> >> /Length 135 0 R /Filter /FlateDecode >> stream x\In(;rܿSe14zv7 -^ΈH% h<3*9DN,#<#?~˿~?>W_u'{9F.OT|H?-13bHa`l!_OW.>m9>Ul{iS-,bsRkO4j ; f̏lu> ?3ڜb{z(')s}~I61NI#ՙe3Ix v,tӁ&kp!q[q~ qf.CN ;oI Hf'wC"~>s#J"CBhpNC$^vH!F}^}#"dG^y? 7 =b$m`@9 ܘ$\X˭:xv05ؿ%]cS]mzRg1N3p䟦Yaᨃ {8,r_fV6Fa*|͘#dSz Ej@;LoM4O u _< m(j6} f)7vL6gFM}x9݄]aKVL'M- +&-j7nN8Ņi#SH C$Z4E1k6ơ{؂OrlO'dySފySdFu2#Sh>ń榐K}\4bN6S{"]Xf8):A3dY 'jb fg|rRD59@NoeE~pEV%:2GІZ0n 㒛`Y\f^C3vͰ-3&B5Yv Mmq,NTbBfL_ ףup_AmY8gG7 Оa7bgKPrH5g.۪QX+""?3eCP*OZbX`cgYyWRےAHvfPf$i6zq{pN9JGeaIZ~,}'lp'^cG?R~1Oa("PgڔOPG&^d r]s97Z+*}ONpiA췞K,p.ܸy@lIkC37c<ڞV9$[)kc82pӡQy0VV3ohb HE "#hQ2whL8u 'w:cjs/|WDRo&|^C9EݩDm>Ddw<=&nٸ5]T2&\`mrxFǗM )>MWfvfΤԩ٠Ĵ&eiى`NQ(V[UC1dQmH}eCm>SQ5!x(E'rL?mLzx1!vy<聍'qKgܓҡ9Co 椳M  MBR`a*@+ ܙz0LM"5MR)"y $(.3DԛSqXi<&oYt81;cjtqJDYFVYhsMEBlQEp g`c?2Z+)@*Ӎ_3,gGᛃ9cs'S\XrzD! $Șk|BaQbH1ڑ̰c|b}J8GSl`77m`aZIJl\60tl`V﶑ P5 / t|o!^68vTa20;~ⷤSm(nFPl*ᲁٱ5<la\6-8EE~Y0Zұ=V)n(cŰc.;@1g\vZypF3;5^q{ۧN>u5mԿv>~~~nʚ{&Io2v _LA]w`hvjYS,!V,QZMJ)^=|J Y#V^pML٘ocbXTa"e 1{$Oeڪ'"5,Y_XAǮD +5(AEiHWgqkB#S5jd>LRB}aˢkW>&cSQjMOgٍZ>fT57TjkʈE˙uGeRQϩNU 8DMd\~ EΝ]ęIf#HEnQ`jVp f M9n rH bF>A̐,L)ИaObYHlRqҡUYc8@瀥0A-A?b+d刦6%3YNd{tJxo͈:kB!< ݔqqT\QOQ96_m\}Xw{Qؒ0OH@AM4 FX,E>zl*kecm/HB=EGM6;vÂE ] I'6(4#Q&3CZi6oe!ENbN^ovnв ( sDg YfazbeЊGq(B61)ePjژ]N(hZd Y8ƅSıT9`m$O pəM zk[YGvy]`9lƤAT` $!$"E & FlGL2$f/ FzFRe"J'!TڦBb;|ĉK̢LD|'kIF@{b| Ҧ;k_vƈv2rTTxܣa18Ԣ0%.GzR |:P ,2t׸ 5A/^qY!JuɃ @<'Q3 3_[T6TȊ 5ZWm`l 5,!+C5o %w_<%s1pw1]Ӿj~tШ K& 8bO=J>KQT#3# Ka0d}@e|h8ө~͔Rڗ=8Rx37(3g<W͡Mg2d횁 򐙽yflƿ~t`Q3Dboo4\}b3&[X¸5^㰷)57\u06KVduD5q z)<z՚>/ė]`-*u% ?rDbQ`AF~z9CY".b>tTMلCR=FgX){dВYg'cztVWo)tfɴS06c"ƤoRJvq#5_b2+VIv;.zE'f즇D2.W€Qtx&r\N6* xA= 䊖)tg-3╰*.&$)׳dmBl=&-^N/j`Т@jvzզ@Ϫ)CXC0o~˜Y9yC0аqunrI0.?s)3vmMRc[ى$W15َeq9;ܹz!wmtl˛Ԑ0PcUF9q+ giQBlTmI< J{|EE4*W=d6EGφmҁǿ F8JR1՚!66wZ6!Bōcx㐂׺ʔ]WA º~yxaz*|=AJ>B:d3,U}1*}35(Xd/hoXu,K:[SϢVjS׮t5Rv1Ce+‰ʨ=Tplp&ͺٸ!:.TAcN6>Nm[_jtTrFِ:h1u#ThC:ŦD)a+*#3 (]|, U"p3F Daف57 FT|#{&73Z7[>LQzQ%drT2i݀Ap &23JxVEv!u DAWt|mAoH rz23jL-Iɛ[@NN3 Doe2x OT7de6Drdeku1"6,o96Sbxa=!,0XeJz;O)AQ|[5|&a Q8{2"z B DLoJBСNWTCȻ FV* IUz;MV-q10#ƯU _0dO,SNTA۸+ &5.](kFrv2 4_ڒ7NCu^٦>oJvoEe\ @MUfdVPVg;N]TO)+*,Q=9nJ-(=5ڳn~( ևF׋p{QR'</b,Qb iXq; B zu]3GI]uTmdʫO6qnX)Y튪SͳxŽe"U'$ٵ,k{!ɇ+$yY1AТO.@Bf1 GcJ9#$6] EsT0K;CbeH W&ކ=*h !6$Դ߆~ ct ^g[kɊ0;ݡ&J隀?V M)kQU;x zݥDTaQ _ސP<]8Ojnl# h{AXw \*p·?y)ʑk]R-e,`!P1uG&_d+\^=A`.J[:oawϨzeULOUiYǞY_@{ƇH/P.I\d .r N2,0֜ůfH]Ҙ*y"7/DuCPg+>/uqUlD*eҤ {Eta"V8&2v>#(dȦ(*>ih/zԔ.l7EFIFFK[@ &7Q7!RM+ b}woRvN0h+ _[` 3[; {i8/85.R0Q0d(7+ P7=  p_;1fɣ3^Qhx> endobj 135 0 obj 7072 endobj 111 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 426 311] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 136 0 R >> >> /Length 137 0 R /Filter /FlateDecode >> stream x}I$;>OcNkGHaPOSU3?)Z=w |=z_+w~Sީr]ϯ4z!?{g<~~~w'S}aO|Y껿cGlwt{{tu?ϔV%75kyŗ*9w/lX=&*sK:;oדe.IX3sb/xY~}hֻW,pUZ}g Feh` $=D[†b+h#\ɮB.56oZ>b됓Q 1 ,Z})InD}(g[h5K6,?P CA;=6@v=ax;vlwCG9!oesLz 5CΙ<'&AK6{ W.#\__ =c̍,vo95l7vBymf۾>z&0 MEwi~HQjA.rY{g#D9뼋>҅ŰyvƉ?&ajvoWR m\׸nhF Vm(hrcHs_ YdmKl{Wcw'lrʱw1}HÛr \LZ"۹4LJ<*WcE*׶Npnvۂ_d c V3ϟAIO j2 bEOlo6ӹ<0"W]olc@,ϽP: 'f 3;ZtUJr >V.7KC\6 o'Ҁv9 f]IreR&q.۪QO1vnWڥ"~3:&Q}ժ&hN`MnD 16 "PС@"/Ge-ԖPjxVoRXxz=Em'.6$qdR*'XR3j{ܪQ!z%ct@LpC[&.ki[R ^nlߐM<(Ͽ@.l_ !o[wk\ŰBBaыC~)>;.hwJ϶oE͠R{u#H] $0܍}?MrGşBn!t${ ȴe)uȪ_$`d=6P ٦Ӂ$LMfuPm9Τ(a"[qFeqDtnqOC:>!#m=%gtp|z M;""a[z}  lp>H6AS-~h&>4W91(Pf嗏3W]-7glN7gsqnMO',-v*KZ4/IM3At""g6&S.KHXY\U1ᕆ38a&Ҁt\`yA8&Kx$@;._it?خ5X\m z|kjdW|#2i?F! Bф[GzpVvdTJ!;;%H?D)7P{ORa5\Im:Gڲ~.$CLg4Xc&EbN'2$'@[k$UvhX>`_-]&9c1fm/CC:ʚQӿ*,P6_M^Ɵ_a!CU= ? d mJĩ^eyC2 p .o `>`u{Ͷ6=i5IOq~6!+aHT[;M`.eFtAYRpC([hrޅF9G3oөyA6XkrgA @-ZIľ^ jHG,H/F>|אPZ P>-\ٍ %@ F[Q9k om(*|A/)!tmW/X4ZLexh~ǡ+T+gԴAgaq7w-2o11Z}WenTlo\{@}}Cy|` C=໬\nu>!&$k //JgׇqN _8'JPrN㡼஁q04o J8 j:yose9`MHU@bPcqaxLuůc=[u 2oG2"lyOX rH_bF0a+kyU0v24 *tpC۳=<1[@ҿPj u2"\ r,K}3_]EJ wv=&`}\vmi4e I1ưdle)t<47Vu .0 hktqBPɂ׮ CG0j*3uR$BeqD=1>Kh#ox`Îí:|ޝQ3[` dQKCtqAE/@ $%I^tYM7օ'"WθʐyA"puz#`lH}(O͚ &HPaj@ofHO@@1oUUZu$#ȼ&6&JC_PʄN#bI V)-9Ao/U8!lEEF`N~P*h놝ҕ=ҤwAy$@7v@3ݮ8,o:ہ~6:[x߆̅{i;6r0\.(J(3o|JpsH 7kfǥd9މIŖt\h$,VAn|.8Tw ?wua]#GxK DFd%l3d i)lNƼ3e@|$ގuɏE̯TqvWB͇Ap3,\xAlͰl/r:X[9y3tY!s>l-Jr.x5(0r҄xn6$|3!ETG5`& J*b[ -"[7,V[+p(Ooػ?Nw&X8Rm`)$ݤX0-%<oL}(oH}bH.ʓJ!TIWQfhe%o&zH/j k)UlDEկ'4<.E],^C)9Ca#B55fPy| r͔2]bCtD&W]_ e@3CX(p2 AumXmkJ*?@p%؁,:0D LRG5qy +:*yK }Y$ݴDT[SFgeߺ ~m#D%yȀnIBLO 8.CE8Q]HXZ!SAD!R8u>!}m(4HBQ7P)<$@ +Gs/PQ+爨NZ^-EV@ʷi aۺahmh<0\<="ȹBrDI :R|\ao+Kn -H%>Bnm:lK[!7lHV阇 =g K#Ϣ}wZ`˯m-0^ZZx B{"x(k!i޶/|a-ls2d,lħ c5f̀Xq DЍ/cA`r|>*x=[@(1A-rPXQUJ<WYʩ"cs"sKT`Tk*HEa@ҐL;~<#֏8˻h㈶3#,mx\C;tJ_({D\X_j~ֶv<LҎgBFXԗ-G2O8pqE؎֎q=K;YzA1{m Mͧ_S g1pM@Q+y܃>;+<:kt݃~AA )Dmq;5]" 5~%[pI Dp'\ޟ_>!#, 0B.X):Ov{= @BǸeHMʯB&7 XCZ@JσPgr ͮ1BDr)K:'Cwy!ͪiTc@ Qߧ0~aIgDO꒸0KAᒗ Ī:O{r{zT'Cjww"`{( >. *DBKЂm\C~4GS#Ɩ<ѹ(UI?nx_d?[?j )mVI%y. & pV*AwQPW% 0r>ѕORb#VC]Pǣ_CxCzJ@6(hgQtÎ!3@E+5.J[<#|2/KӤ3.g@)8;؎rH񤤴hA[OzxsSIm(?:COa27 39NtdcͽJ]*/"e6~DHfi۲7Elck [\U@7IMP B(daHD nbBRz!Ja6B(g1s(|A!JJλcr4#Ȣ]t US%%9a>R(, zcl<#F221F֭;F U~9(1f0$)z"4(%qKG,J1Jx1Jc.!.Q.tC qWRJԄo\\@#PB(Z(q3y߄)T*-h>.hGTUzNF$GtA#%DkDRbhcEQII0.-6napH:!J T,= Rw2"BH'w QJXFh (JLTq]'CBE)%d%; 'AL#cxGxg1JD*m]^(%.C:8w!J"ae*Ett W.ZsruDQ2GH(e50SwRJ |E/sx|C)rW)<|Equd;W^̉$=A ?䍙XpoL&q̨ŧT9)A.uNG0ۥ(u& FJ+@SUf$ ie0̉R9&WԽX\2 ĉc^m?xHQ׼<ۑavB0/%L@Q i:)2з6mԉji񗲧Bbl"gU@Tg祢+x}3%Qx^aAM}n(D9$P"՗ *Hb L+lJYT4zu|lebanl+Bf+H{>`)8 72SRI[? Xb#gz:vn)u"~6u6ACKYwf$rג줷id1?9T\s0/?T=Z_ W#q .NSUѐĎx]6&߲Bp RBl҈=0 J/D'@AX;¼L{<˞BV`.İCtLZ|"X.%Vad"uX-yOivՀW~V*ğUVdtKI>ri4 e9G?8Z$L˫6P=!TZ,=^ nMӇ$ib}lxC}(QyL ʊMJؕ7"0en1%֐<~a#Fӂ^1( ^4yAlF,-q>;l]l)<_71ir`dˆu8Ѻ}pser&-_BI\c[*= H~PWc FvXP2OsTG }R\\+&<`̀ZI/zTai0D?0/0QiDvˌ"y" n4Z.`dϊate;1 r} W!@`X&҆Q \gƂo8x1"vT(Z 5wglƎe4xWq}Tڏ6+ԃvE-ݶǿ4=W)9$H(Q 5)ҳM0h O ih$9@ITW)f|!rg~PA-E:NBĭl Y#]:5^ Иsq[~ S5Fdg3Q@j@P;c*vBnikzR|@4k6#L(q 0v>IY6IP( 1@iJacR@;X ]IVI`⾇R}}SA~A"zTi닫1\ v-C?pdWх-yUX Z(j &,LauCiA[m ßQ_{$*"@a_0mWJs[ma琇{2K @XoϮzH籼ҝ}&cٰZ եy5(1TaMm m,  B @D|$)mQzg bO.WHCׯ<$"@JMV\XI̢;ubA2|(`'7J#||CbEM$A!Yp-,UPTȸ=x32 :3*W` 6H6 m asC#3G9p,|[ByE?j|TF+Nu p^ȉsq=܃f[-36E/C`~CuuZ kyBo fĴ Iê/RT&J}%j*) $@F g W7Hdwѱ3-,eБ^ ]:&q!|΅eUK>Q$*f bI %&zpdXD! QBS}F:KV #Պw3U:oMLY0 \0uKh7纬eu8nڐ3.|ˍZrz,WqzVp\xv[{dt)޲v u>X0rh__CXnpkBfR6e ܨKXr6 gd]yCzKgߵ523.]x*կ4!wB.q.3[~\*bm+k/9xy `b:XND 87bu Dm8N(UUR2m1]-yۍjܰpSN^Qc;>vbaK뉱TYvcd JnlcUvcF%xn'JB)wٍ&v!vc vcft~MD c9r63 X:x7mǪ~z,tsLjmg qqJcye;SۘiJAL`_W[z"uK)X%n[xCzP٨n1e=_d=[n݈-sz,m=& Uas>nl/{bI>? J\ i.03H+\ۋ=SQE[quz8ɗE Dx0g|iBe%!ȃb89WaIgnLL&h7r @zq{vY%0Pm2~WfBXQiV_l;6V4&{⬤?̿@,2'ajĸ,:; ;f '|C6!il㬐Կ2Y`iLj{(>I6 iw6 ;ݩ,5_*V?;H0\(u ?5Fjl.7Ô{(-'1e=tڕ[ 1ҸCM:čaW(DU#9l I f-2{R s) 9F>7c|gNmt>2N&(;'$)o?l8 PoF_y K ȻA ?4Y M:~h789~} 3~LxV:jC{_@鱰~~:P g L!M9B *jLjp E]0Oo;1tGo`C$L< "7;`C&7aq}@ ç33Hvy*r 8G@5q0/7.23ˎQf%yR$1}Ro%wT|.ؑa$k5po,L @"& Ea4`Ǥh 5VnaM@ ϼpt4PݳQz@w(Ze 4gẍ2֍u%Oe,xʓcl&-RN8k1y -- mYqVg2- L?N/X*`y)thϐkL+?\m!Kx.KҝׁςwP΋C{}[XLrAmc/B?TNc5ky/Ū$.Nr+bFؚ/Sd js<-`VhfmmEuMo\ GiJ۩T5!GwcySy'j8}Õbz`je\ZMʳ"s(-8@0SǥPER&"LHb2*O GvEFk~}A>ΉyI ρO*Z8Lz*(i{c9n:%ԡn~l.F!>&#ݠQr0KB}4~a 1O^RQmoشx]yz>f M) Fu{r"61_5:긋\@۷Uh0lݜ*S1gW95@:YԚ oX(z}GkHlɞI`]]_}JSUa\\"M,yi}B uK .ZlN`L]CgF\ ^r[CI1t?eI}a69`zN-ճ[]ʗTOϏ:-ŝzjӡ-plvLgB}BiVxB=RT[?t0zqlW%B zap~\ m@D뙛;%s#QΩ&2`ΟXOXO_:b=s8X}Ub=\C >pAބP*]J!9ކECD@!7JѪDglb<1Ar*1{enڑz++ڱ07tM:E:EDUvL8vJJ?[zttȸmI`6$qDstב}©>!bEcep]csG}P@}pk)M=X '> ,Hr:-ȷ8"`6^^H=/(>j#&3G{d>”W( CݽcLW5~L"BfO:oQ8Uo <`jq>Aqσ13Bn~؅ǿ@P8OZq#1F_Lԧv/Q,I OhP^'NMX 2aY)or;frtCвTn#|RlZȟ@qO˷C"}(:>R׏oHL 7Qo*QA?Cluy!vJ=U]dCcs@n^z#Q7wFEF?t,[| @! )>3R9 ^c;AQHTG@Ai T[G鳴rκ&uy"*J5cS)(=EJ`> -2p  yŀp]TM&R ,*&ae+||"i>tB- LH¾ EvS 4iҀToTKDkB@R#Զ[?>^ErA*jt&h+{\vA=!Fl$j 5.TIOKBǖY bT={`}{?1ɟD!uE!¹ᆨ!uGs52ط$"K { ~GCViW?ᆨм"}"`K!"ZR!B|%" DZ"蛬 8"8Ƹ@!:~ڿx7^ QhuptG4CHU/6כ! f b|!'ߙ@K@tCy3Z8!$\htCb ao'}B@xJW/|酀$&^e@n^*o4C(]EڣBaFvtC(+hC]JgnB<N#v& [vEUv?P=нX!uzuBA-yZ"Aë!=!R>jCsOPYu!P@v@GG:$!7wZxo[o]C݈v o紷CuRCmj@v;#]!S 8hH!mi1/nQI>y4D@O4`QtD![=:NO s':-9㡪drN|}Ӏ)ڑywE*h_WSFtE@y"@:"9X9m||E'-~?iViUiPF{"AWm]+ؐj;>MĶo5E џ}7EMۈ o@ƃqo77EGi Undj] bx"P5"$tfIBc+etwEp䯜\bh]((2iP:"]\]"8dwEOWPkӆsr>{0sz"`T3NSn?#)m+(M5"@M^vS"Ҏ+¹ Xnˁ 3`CmdaBx[򥲻"+EWwEYM]'Re*{tBPcoJ]GvT|,߄)#u DcxcM:=e8:Wd6BDE:i@}(}Yuغ#P*Eh!_@tDL"4Q;DĐ=LM}`wc 3ȂSDgB7PX@tF(o@cG;pecwF3$sCPA6E$s}SԏaٍQf7FpL4Fy{1B<&#lnF@V=f Bvae/1{D_|}.E8v苰2E!jp}"\h2-ev\c\evW."]fwE~]NjDtE] >z"lID8pA'¶0GK0GK0GKcaaapxBDOxO0GOca==⤣'±0{ODsD8&&h&awKmx>UU~5%hH23%H.D%ceiob׫eD'%{ !4XhcDQ?-WJW8-hu-ȶj- _< )j>='pP|KxDwʎ]U&{SdoQpMr5E[-*SyqG_ @+γDtECItEp2u,lgvW:Z>"z*z}_s!?@mMjΰk/1"P6'Vj@ºjaE8dEHE"^mHXA}(b￶/BQ 4&zz_wptDʈCIv_MYv_E;yeը}HI@+8ǐmE4B~6P.{@v|`ccle1w#X]!ƿwc#SܣMQcTmLI1(fGEcfopPc1=J1j@[w96?\&C6 T_ iEd"\"'Ao}hs0dIŕ WqAT#PkcL#t1Bej6wAUkҸ! ;5F4!WcRh6ލӞyFIdFlF`{햷Fy9rtFO_]v^ڍwc_LWE`v @ oI0jEش"Tu)B[E<"}7EN/B2"t:*)iQElE8HE Ԑg"!){EpF>"PuEط"\"'o`- E7"ЁÚI(֊g=EY_m)v.<3LQ]E+ybeB"ptǽ+K"9,5xهD #'OH= -Xںh+M4qOM\oo!5A o6+CGguD cvD<>Rw$5֧j@#!P@`C ,C8@%!Pbׁu]cq31VbuBj |ߝή½xBξ*XuBzOn@l\^%I`dmAyAS< }$`P0endstream endobj 136 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 137 0 obj 17603 endobj 123 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 329 199] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 138 0 R >> >> /Length 139 0 R /Filter /FlateDecode >> stream xIm]o>+NieBG#/H'yH J??O.kfg_O+ϔ>s|m|O)Z}z_)ϞwϷF%mOFfy%JwmiuVjΟϭ$ =k7r3vZ?3:=#b|ZV՟^އ^>1^_}VzޫU{g=o/Vv"YӖ4>uTy}Ry|c]ʟSµnmjmPug)YϬ=yɞ8f?z 1~WڵkYqAQEEO1!עu65''y}ЭzOR3ڬ'F}SG$oI ,vm?V8MhBM `O- A̗#?##-E; ՂŔmB=Ik~$u=&BAAơ QI1W#Xc%iW  ??.Rc;aqk܈9C,*kT,"ݡNl_]g?:8#4AˣG:ZdywmG{CE(j]ti[,v4\E h3F|M=:ghYOcu6UG;ŶkcħicidGKtǣj?ci.-oHӿ}xȈ֑̦wOTc 4nf좨 2}=WERL=~4aDHjk[MfW!42 p hxs JV!S;+Tn13&у];-6miS.dP@m˻]6zbႡ!dMZL * @>VW@Z߈ ᇀJ0r`ߴ@ьc@z`9">]XWF3~h3iݗ{CiOC{6:&z{Wp~Ȟ}%J=NM+P8x'ɒ%-v lkaWE5;Rb;_> Nx:i_\ 㶚yFΠa 4\YI \nx/=$. bń5zX*WC~f@;H|> s1va v"5z:̹YMju}R{l jcfN[|(O,`;mHA t0pڒF-\s @R,bJͰS+?Ld\%nܻG^܍%u[ʾbt[^ ǯq /h?Ԧjzz󇨀#D"۟"݁sJ›\H>gqٕ##K/^b⺀=}u-bKz  )& ԫ _ɹDMWgڹ*k{8m`S O[W+ Cl/ c2w5*Yr% |(>v+C~PnU\? o`{3`\~,8}WZQW_Q7 QԡW"R_bw>N'Fq-|m;a%G(|!DEЬp>}!?kaE4PmqZA.F،oR )?#d72iK :cBgȧ : /v K01jMğ8 9w%fce = }{L)WĦq?]8P\f ՙO"vA͋ &aTm<2X:B]E+m|.qg?Ɖ]DpthpF ~j@)i&=s0T`uuZ= m_UV|vscd^ZS}oaKJb/0ÜHK81;v/~ {S/%?q߯e Y̲oyՈN1[p~Gm"RHh>Jt|m2 `cȃc\;H^Ry$LMͫ G#Uή-\G5KkO!sEeIC[bq4x"+ku,CGA mh6q3NO}h#\[:0KvFwx T28- 3 G|>G C&{+|buK}@i4w.@n7ZnY65@{'h Gc34! d>$ݒ Vtݱuœ~-=E-bc$έi>nMfps03B'pXf4ޡ (Jl`3.QGܗBrJ 2 T&N!"˶O{~wA*hЃ28GCrZɕX`B6d/wDp涫C:tHHi#3!V :ZX4!5p6A3|v≭[nʑ{M[ zFtm 7E[;<{F.p jޤBm5'>Ή m3K҃)HKwt&;[pfѷN1\'QɄ &W'yÌ{L$i*fq<04:CBU&u wqN A)pD4@l0nsۅ5eWFBu#Q:uvkNǍuikQJaF:;п z1zmd{BtX-8.]]~ĸG;bȁ0IXuc00:930Ю/\{V+@cc.qE[a.l W)S8+W(0u#rrDmFser*)-W[fo1\431H3;8&$nD̃ ImGzj!Fee Yt8(Bh|&ݑX/dVjoQdq⁛$c)ڜysf öDG d@B$k8Cl{3a{txԀ&2Bo==j(>O&cf"5 # b,H([ʣ4L tjHiI{DO^˩A- ՉҬ@TVi"HvSE\ĚMd $YڗWJ|Iwv3"!҈+4b[q=dl:$ꟴoùgsսBǐ}.C9wR\ez$rve \m.NGe V{_=Q\ ~ 1cgxd|?I F""{AqEX%W2䪇Ig.$wSR[>=:.ogJnbj*'F-bT ,)BȤ!ɋ*4,ˀ0eAbc@dPemJ-O '&B,P#mZԳ) \erވ;.qZ]Qvd(!bP_m6,% WWDr n_p\jrTn(hoh+;v:"voY^{.0h#&Nd[37S n?'+4br4W927O+oMڻDEos<[C .):' rbrC{2|t">P:Ftxtdj.FܾP=!w7uwp"U?A1p#v 5BD?ZoT ȄIGqjG |`?t'7K//txa銫T-^)IZXX 4uhz9_ (&P8eкڵʶ;EXq]m$.7C·whߩuxznV)3tЈjf]POeysU5ٶMV ^:;'PٵG\5om*y@B(Bfeuw,%AW/^=Gf]BM/m1ⵗre:]B)T#ȎSsWT]lu6O̢2#ʼs`{ wQp[1<*v d%ה [6`!&Ŝ̸zeE4bѭѢpgSa5k`:~2^v{gfQكwM66檓4 ,󫷈3sБlgCvaULׯ8V5BׁB#)!R l~I"IdDul(F^M^ #m`5 tԎ7bxdj6ck4p.ӏDקOJiJ1# 0}1h_n4Gׯ+ϫ`s}}~}DW ȼEެ!$~N %f<2ҠGR]\(3V;ŃGa<'K`qpv DHrMUݿAifOGe t_=kM\~..OPY{*7~Ebv3?"S>* ?,#oMϮs!*㇘=='{zH7<=w!P@О+yE#ُ'`CLP= C gY~N2d&`mQF}M{^doqRnIףGMAhtY6ϸh3(ky)9rbX]–P?޴Ay΅Nd}%~ce*Sϸz(y #Ε(P3  ƞޔj߯$Z^msd:~wv0~~w8ec>"^E} pyqѳr%֑m}]_vL0Ap\wW=y8lLg?{^/zy82őύ5`G/^8rP'#4_Tõboa$f ܦG?y9%閵S:8/iƑla솄0v/a۷0=G(AuqHG~# ,P,wydn߲붿A ,R&߲t\xYTdܨ?dq^y hzG3moYm>h܏0ܶq7.pD9z<ݥ[AzF"+x[ (ƾvR'^)08ӿ-<ў,ƧK,@jašXbR}ԟCi\>@;zzМd0tp#ˏ3fĿOm03g=0IeX`F1T>+2%n+n?%@V]6%npig#Ì.p(̌dDF5YӷW\ ֥zu_bӴu8 J\Td1v텿@Sc~W;<8= 9A'6gP=$'==ʏ'dڑq%xTjREFrEytbV@[77z5\=?vOKvk\]If#UGT^ɿC;JM_P,4dOOh(˺1fu'cyCHb=jOXSi^8so3o@fQQͲH4wZ;(qQnR|AQdw}un>=:%ſX.endstream endobj 138 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 139 0 obj 9368 endobj 124 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 456 173] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R4 140 0 R >> /XObject << /R8 141 0 R >> >> /Length 142 0 R /Filter /FlateDecode >> stream x\Ie9r) ~sjGH "!9ďZdу|$}z+>~{~2Gezb01qC>?QJ XZf椘^uVKKÖjv3WLۆ͐_̧ 3kY̘G~aMrgz!a%fl55kɵrQRz1K|f ^3=ihyJ9R{6p! ܐܱd-O~Ir byZzxJhOk@5 Wc`<A9])gmM| ^o P EG+zgxmO঄crv`ֹ들k} ޭhCV$=WRR npɾر\8MJc̯a\3Jz+W ,N!~) ? <3-r 1u<ۑ!881[G=39/JyYDr6?p EFg ѵ!7L `," {Fn-ؑr 8|@{5 dwLT,cB\ i_jsl7ӧ¨L߯:,՜_!Ze3ȠJ ג}\Ѧmo 8Uț.-v}uG} poN:y#,.wA\?'QR2_밿o }]g= 8FG2;>Kf219@We[$PD3Yb = WKSL6T$:c ][9X;Dv՝ M|CUYW}~OlQ DoD06" ?a "e^ q( 0iFdtchtHB~:E4&I@l)~%%]&(k3>geү3Wa^!` N6qt_E4DA1\wsE0*H˨26$`{oyڸt)3 I/ f~%Knp=f#EԠ88 ,.: K0IBp xB|$uDט.rf4vj6$B3Pa"3Rg%O톝ؓںQsg$>uI#=a$h;y^SO}L4A ¼J`]*,AlD(uLm2p*WAgk*wA"Sl/Ђ ֢_HʬX~n3VRDNGҘ9x*AoJ4q &md]ZQFMS[HW op״%`?H9 F :=YfYBmR.=V|zN fbNa yVZ5Lrn/m%@@-g[@f1$x:hW O$KL2 XB v6->swRtJt&25,L; <qq %x d"o_i%J܎ee8˓0u5UB_Vs&wi!01rpbR!g]{Kg fն䯨|ϐN&EKcB!&Gv1є-sP[oH-fi, ڈ$1 1'݂ybOp1CQR*J1r|mŠI? Tgi[{i X -M$SE0V e:O PΔՠ㵻enݡwWCưYy_y!Ɓ~KtPQ%}=#aKB$GP/U2  %:dFTBcfØl3vGb3*?Dsp2 'i(^98eDݼA&lR.8 T P)!@W{4L'C2Um*i%eNEՌ s諪2kɌk$Ȩ-BRPŅpE|}w:&Ern @x##kLUs_AdCh"v8sm=. Ga $rRkLWbCr>wfZ 6sc}ɰR̲t "6=Qkӏ bR&O^3hߢ)(ŒSRFi3dǖvƩ ca㠽:o> ^b҅bDyOHbw)xX70 VgjE,T3_ 5@8e"iOKUI^һyj` }zې,oCt:c_׊u&9+dQIG7%s&)>3 پ@'"]{E`0ץOT4x.*,ݎP~17H2mwƔ珏L&ZL[0!w; -Y,Φ &LIB/älDa; ZA: ПnrD#4&iOO?ûJ%"1la]l|FɱR7F[ahXo:cț@aB>)a=6%DAdQiui:T+ѩiBg7җ jj.kk+?u&C,c>7ZТ̦Db/T OPX<=YhcEKBl1d]BɞmhHt-Bbi3**t̏qz4l^dB KNDt 'p"=#fz1*ʅWPdn7.f7J;b(6$nI鸹BQfoCrHn,0b$&KdEg} ,ƶ/HL!4NRPזM+.ެf0#b+!bSSXn 0tM4v4vFFRɔ͋gFꙻz\koҝb$}DeL{xlZ W|t.rA ¤2gYX d2M8ً`W95Z?Ʈ@2eiEȸTE+6$x!rEDh~<0=8zA(v  -lmy.cP'5WULxZd{,v>5 \uH0άb&5F7 C9XM) )k֞02SI%` 4ٌƤZ-.b_h& )݅P=mO]F%[ o`) ƣ@4-Gky{d^@L{2Aw ޱ\T =AJIb X81Q"Ʉ#}xb!|+aTNx)Lt8TKC T",GOsdF?%]̭>*f6IHV"-ӗ3a進!)iKEIW@8MsCid~{e =B,؊G=F6setDS&2VQ[ Nd`*ߐ7J3 Y<˯Pk&U AeE%NH>fH ZÎL6K-ޓʒQusq׼;+_-Ў)U]nMCO}7f=b[lȢ^륋ZD+fg-Mrub,k 0R_B*!s75JZ+HLdB2V(uC>FfD=iM4vX Jbfr)=N 2T攐1?cj |Ck5٪Ga.5U2׍{ޒ#4v䞯Ճ9N3_?29ncIK0 Zg1dTGwpS::H)Qt@3;f:^J6to.h *"wӥE Jj72b>vL4mQ%sx3fsܜaS?[W5cllʌ2x+w x)>Wս|EVŲ,v !f^R#j} ];2S+Zqoeһ|ƥ슛A i٭`9uPlB~ē} YoSɟ.퐭O!ߡѼ*cb5k$Jf& k(zB"f 99'JfAvc.jK8gZ;jEOQdh4A^A[:C|ħڢ #̱C#]9ԉ-גHG1OΎl|'5]c]ِ*r|96g\BT"S!#pk]tҧP1f{mм{&s$&5N {k`k>jxbONǕ " J  CexT&MHbgDMezsa?Ls jw0#kPKǧۍ {|oi<0H9d+LHł~LSTaf'm ]'ZfvV$=;^k](Kє :ӫgωR=|/p 18  S(ۅBi-Yo(#y,tU84b_meLih2-i3\lBj1lcCMq*iVE5&3ƅ zf8\a`E7Zz\ʪcLq93_S%3FuE4M6m4ftƑ b~1w`3f^):.H-Wi F !C[z~ oFͥ^3ZN{M233&xQoK>64tU.|?V1=y gC"n1/J|qCe3h^=l ^Ld3: u4!`.tP(x᪠oȅoj zOL/HbMH]!h3&a2/g=`+F\)SYc+ D/1ɷ\KppUH) {r\7+tyt)O=+D(%iX93Jx}yUAehX= :XOmY+贕itZpRx'79JiŽm D~j7ɘ}sAVS?gt[9 K.{|WU."x׌lU@7*ӑ)X k| t}9[Lygu+u.qDo'8V}~7B /A >U?K5,S_rC]SM3F~'di6zϕH|NvS=;|LXsjs)`: s&v|ڳ]='Ns&z^B!ya¶rAaz*ꮞc!waO\Un%U[VH/z} w}^ؠhjڠY2cQR Fy(D'50HI(n- ScIazNh1gxVDՙAYEú3uk3`Bs׃b6SΎ!O=[3RSQr Gb4_" "9=:̽jdSwyrK)J[4ADkqYJA!!D{B0ꇀ /sf-QU%)~Ec!2> endobj 141 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 97 /Height 31 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 97 /Colors 3 >> /Length 402 >> stream xKEiЖІ`m2,A ʧ|"K+J[gԙ(JT@œgVyh%:C(}\E+q<Fbhߣ8OnC+qEvVzFD~5ZA++h\.JtU4Z,h%:"шh4JtDߢl6C+DtV#FDGBKFDFDG2!ZT:% LZ4mDG##}Y=+z=FnDiFNDG̉Fe0hnJt yѨj(|[vRA+2tY;Z0P\Vÿfzs  toendstream endobj 142 0 obj 9854 endobj 125 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 631 188] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R4 143 0 R >> /XObject << /R8 144 0 R >> >> /Length 145 0 R /Filter /FlateDecode >> stream x}K$;ݼV+֏ Kxp7 Th{J̺QxOLEHH?1/o?r{Q_W~_|2k{ޣן_Xsޥ~zϩcQeg:dϕ>bzw>JXhCZc{||jGYgyA M^%Jzfnfrŭޱ?f QywOG6+|V\eּ^2Ǫ=X/]x9=zyY|rᆴ1ޣwzW߾:1f~׹^;{Չz͑:} )wk}!xQwʃC¼SNuvBz7Gz%G!5 ;'G\/Q>=qt9j{9B3FuDat]'b-ONӰN`eaѾ+]Ϣ7{vҹ4?-gyv:&vw1 hsNMst[pe_wuLΆ\n {-pD^|?o;sw:dEs$ƪVexQkŗѳ{w6Ie_&h_suйlq[%l9Y9~jFtq-\R'Ni6]:t-H|©csw B'>w8m. Ɔf'<{!T_Op.wkp! {vԞ!|?8Qr5'ЈYs,\s^ߣ1M]O囐pT O r'?tRtNf&?,?U}8.G: |3)n8~ 1_}@GԜ%ڇ{[!$!Nv݆h!rቐHhNGRILI4-G IC[ŒBsej.>9.ӆu? 'i'zr ᝜ \ ϫ:U߅B9DqǼQ0bsCe[b0F2x^6@gY=uX/G$͙<I9r=&Z־[֙oYېg~xDoGĄfrr @9얓㪎Tm?LN?|ʯ z‡-)g?HДY88hxrr6ל%YIC#vb> όuY2 ƀ4Q@̖ y䱣W_ qsEI֬v`栭?'XH. ͊ Ʊ\:d]jw=wlsFմ2h`V>= ?x(Kլ5L 75%iIOu~P3@P9($8@ &HamuP1?jRag%["mHPa!^8gxzL4 <ӣ& v 뤇jo/^ U{QˆLNJ ކEFiR`񑌫cێLh2̄1"+a&i~$V}qRBw:=|vi6 xs4P4 T1?wOm,rچ8`@pT_PtqS0Ȁ>^iX;f*E 23dD3c6t=jZ@^He"0- ef4yx-Vy~Ȫ k4>T{#lA/M"~Zd٫]Gxq)7i/, b< w*h}I kqTP41t0p41D;̡µwͩf`">jY IN>CЫ欰nW7 ULXÓ.U fLmOg|+}7 ~>n~!\DUߐ=(߰?Up4'{JGc7pyao} u{GtH=-2i1v;b@ 4X|$|=FgqUx54*e d ~N8^8v@ 1*9Ii.qC g7\Cvu-X5`ABdt:hGN4v4>) 0C;Y\y36L@!銝?"S3doӂpmTmÉ Vb A|}.у{sɕ䒡geڔO\uMNh G̀99dbF%\ZkOCYprxj$6C|A#q OIQZč}_6vY>ln%@e:m?܅EQQbq,TA@݆z鉀P@B_ vݳŽ% =YcCcΨB&(*)ug&8=Sfg .MFRRb&,5Ii,[0fnb@ҧ*СVѯNe9s7$%oNMc @C9hBܤrI`-Hӆ167o1H E$Wȭ#؃) /Lb DC6V8z2 SУS6 jhEmTGgzLF1^|.q>46 "!IDN]Cq 5:qK3eB{2M9!O$YOOHuC?Bܘh yp6GP{E0չ QO*>ȂX/(.8a (ǐj7%o|%TYm5KcBXλR@Jrv:A'\~<ĀJ`e 2B0%=m:E(.8HHQ" >\جcPi*yTGeNjsh> 'f`[ʉK)u#B2 䛂M XAR*4{LŖھ怢F`) NƦs]kp7QR >1Co' yIZCCupC&)R6ql;ZG{t ZػBl8fhtq44$8vZB0$T:9k0 EYi&!rt@{# dh&&Auh͑|RF5~ kk0$F+9j*VX@C$T&j\}UJ+$W&s7F`HhߒP"Dt {4v"¾4>mVUvfp \I \?<Xe{m'ۓ$֪!fA^#TIHi8bjKTЄQ 4GM4¥ "CUQP+a i=xZn>ῄ;h7H0c?c'[+pxi+n SD2ZR{?D8Pax#2Ni+Z~d[렧kUĴ|fI,A9Pķ '6}A2wCKqwב\וצ#kR! jMH!_noMWI@{AROK(9W;Wk1I B;<f~ 9 /xsڢj6(:6l_sh<*QMeo6T5 74gfow2HhZ26$AoߐM"򾹌"J$0_#@^EJ;]`ooSmm⧂?B{ -`m>-?MaC q2yTb)3v ¼d ni%KvEA7X Ǩb!Ǩo f)c+A.s- ѩ恂[d'PZGV}aq.!ѨɲoXEc&yJ8$1b[3eNH.!Ѽ"D9LCfd3K$Q u*eSP#btC+% 0`ܕ#$0]ulIq3tk;7*g`Y8d};J#=uAF?F]= cGlN$oG6t" nGBv1F27s|)q[,!4&1Ra`&H˯ 1D. (pJ蹽!ɂX י~C HVJZPҕv18pjBqgr`;>iSvAʟHeN@bccN PW7IVfveə0m_g=qMPOvpOhia#V ye3\7x0&gN&`F{̞"Pzf)_=6jtXƕw0 ,mz" E1꠷oQ'.OKua/k3,f)7blYqσOv!P)%%;F a.'2c0,Mfߓ.|լvxj, ȃ ˭i0f1"exJCuŜfa,ʶ',:e{s(2Ȉ wkAΰD+r,bJ.IKZUUxtu .ԝ6.]}  9^!i4Dbv+kG&dxz툨!a`5ӄ=pRGr6\@%kHi#$ oXrH"7r2W LKHr5k "%5MFϢGphv^8åjySDk=>63 (B,ڋ.v4F}<}*k_F&_HV@]IN"c_@{{in8\³x -0w!ܛU [2OaM@"9އ Ts$"~RMI(v0GAqojḄC9/.lBAgsb`>;*1,5_ ~^)W)VєvsM SS=FD{ʿȺ3\R(%]4QKT-&H UT#ڰ(pUG*.f+*Eiۊ^4?w fDfq.^N^َ8gNW%'jUF(xu 8̤VC3(wqG_;h(գgQ!$IX qWKQz0&#a}g+i9"yxLM4,kelXxNK|,#:9f-s0LvC'1͓m@!(q`i' BUv/#Dr7ihzaecel_q G:1hVpvXG5^L/!֣1ᤆ3fm$O)WQt-@y>Ml!aRSbX"n$TTs]-TTd3Ut#d<8&w7}EW&8F j(3vwYC,%e eX` ')?6!&ӓ4ɒ)@1+osL^x "# BpM&Ad_7ɨ.^f;2dy ]*֎_h`JGp%#D&3 i®pOȓs@1:P=2C Xyp)JWtʒE|B(&7d(PdHƴ :?@pH7opr*^S並xhW&-YR6z@fSOqzAQpt42ǜ OhΘT4\LBc,TڑB^ʬ\wڰ!<%*A!qj}VYE`VyQSEMZC[{چl4"lTULU\&J%Nط.`Wz6$!e]Gp jD(xEW,Nnq3.Ƀ~ŧG2rӛeTs Kr*V*obCMH ]8dԌ V~8Mw]X/` x2Q8h'Z9[ Ht $X_cCPƲf2h$q V/ʜWe-* Ɇ=[27y?"0RaZ6=pv3ZAϊy+m] :<)l 2/q }Qq3V\A6Y#xX3Xs[/Gܜ fᵩTkd2=]i_W +f$)DkS*뾩:&DS΢?\s,'5g>3 }oX=.QY 5(s^!j;viqyT8 CMqW"QaIԭ@n1Rp7IsRb6Kwii{G72@#r;FnHٱ;$Q@B9$iҵ،;h%3܅Zq7١;C%Z4[l&p'twA3R*TVW+H] % y;; 9OҞxdwQգψ%;UD>Xًڮ1L o-a rmW}i/֒<=Z=Dƨ#D!k &S'zw'z@/q΀m^ NҞ.#̑DK!e$X-ٚ{P{;wA»=3)n'wA2.8g>9vxVAĦ&NM$OS* >`mu,Ҿ`0z.d^C(O]V"DmIOi(ZLlq z:ҥDSlIH5#Dj[%%TYMl蠃o&[݁;-S__3:@#lц=|hSAҗ/f@PA\li%C0=чB6L2|0mp?>Tء wyvpQGa #&H=a*+Τ[FTa.:qS$O@ YPJ`אw8zuPK ômp;O"JLtxC *ӄ,%L~<C.ћv0~@tk(OcD凚Cu8rh)\7\= BW>dju{TCco1&EFkM I8T-~o NPKX7?rt42s'e;O7ֹ?@_,@;6T| @c9qT)kFy"baIU]Gcozdq n&&=p4T߶=m*/M͟4R!/4|̄|Cv j+-L!dĮ>(KP R]{tTCP?ľj{ ]Pl[4^PlO! gJPEN |Q*dF6rvaW\% \6\Neٰ etf ێ2Z>T˿ a jo;2@V)v@oY#;0QV<SypR;D&r[82j% Ծ#nNμow;JPȃH?AN jFTAm(X"X&^mYEI#+|d zvjUڛ5V? "VT̞UysE?~ڻ\X (bPD5,pć /X)7C]I*j,fOݻSPlGUɳ;*C܍znPŎnP{[i4Ehl=ɴHsC׹9He=ለ> } Y5|틾؞Qi:DuiLj(D]asi%03<,ES\qVYܵ gB햆F6E-jˈ:#"VYz*(ZO{ע E[=BӎZԆHS+i5sQka ]+v )5mLa(xu9*M[G?ߓaINC5n# yꔢv8xX6ₛ$nODWe~X3#d{j:iZഢ'U )R5C-K?$Tа+QJ$m5mSiF!bl(zFjxnNSkT!jNDaj)6/jHԋ1&BJ5RҩNڕuhgkW2zW6`F1`-N;HTv$i5Lj$%ȑQj_ {(PKvjJH}D:ĵͫGr˔W *B&ej=0.Cm(1,Cm*bQ%Tz1hBP.o BԾu+N#]_Z}T Q{PSpnG)Z|AFaO|jq?"HH:2}!zrL|Q.E#XlI w)H;Mx/lFA~ nBS)-N(EͥHpK {H;7twvS4bOB0UԢffZOL6ߚk`wS}(EM]w Xh@E*(cڥXi4gյL[2H qm0=Kxd*jcF(A#4_OaVEUi]YfK#vSʁG10@q tA`Z,ڦU)LRNх`A's6vU,TBKq]dwegEoJv!º0=tqlv u{Hǡm0fxW&M4,ά %Hʨ)'k 6ba@{F74PRk+"p5y(NKu17Mi1{7\b ~?cWW7 vOuSUIi _X_a݆avB;j#6Hʪ CHf1Sܩ,bŀ0ݣŸݑ7?HwFT؍#HA ^c^>IR_%4 -]t7,F>JfVnT9;'{]8$z0{h*=-tKEuef 6Qؑpun!ZH'6S2I5&[DIXaӭ18>w,Bp+6d _>vBڌK($9D}!~vÞ^zo]|=|v_}n^¡x;{zw{_W%endstream endobj 143 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 144 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 88 /Height 27 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 88 /Colors 3 >> /Length 251 >> stream x[ EY܅˨;+>]B&NQ,-I4(|1؈5 T΂ۈg2@F d@%fu۶RɋO)+#tsw}AeB5T:ML{2-# 0Bo-,'P#V"Krrp7ǜ=KExp,GHIlɋ_4GFw"BA!nbO"OG0a@#~_S {endstream endobj 145 0 obj 14357 endobj 126 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 306 206] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R4 146 0 R >> /XObject << /R8 147 0 R >> >> /Length 148 0 R /Filter /FlateDecode >> stream xXK% ܿS 4(~70kP th{;|UQ? ?wu׌&ˎWoz:>ц߱"ɡ1Zr|{ա8;fBŹfo}W^[5֥̇#L0kXmc[o>PR/uh-Κ:Wġc̥mV-js!LV y {?#~hLE-"OTsZ8VFowsҧ<< m68MB4Jh/g+'s=Vv@-`ְv:n-fbY O%Rߢyn$0hãNm&bõ  $(C+sY~*g%V9)Q2Qj& Pa?WUp1:,ۣSq{txV#=Ȕp|(#s(]g(7Y/w+/e]ⶼUhݴv񓅴_j}Ic|Рl0'- @η rVGy?\JS^-A$?-=`LKQ#p@3f>o/O2=;r|Dq=v#2P$e>ZේȺXK_j_r \O~5L _߸h gI@+ߖϭ6r<}|[endstream endobj 146 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 147 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 169 /Height 50 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 169 /Colors 3 >> /Length 596 >> stream xJAǷKz|@{ 3PCK-DQDANlٚUjH"p/.{KSrڥmgBNGrKnT߂pN[W ㌯y@\k1_muu0ؑzq[fc{s0 {{yuqp{\^.p/\}v"޷e{%ý l?{Y/m7^{s+{r{H?>?D,(=nRHp zX, oӦH` }r g2(Ђ$iœ{f8{ 7.PYGϢ7HGgs9s+%}> /XObject << /Im17 109 0 R /Im18 110 0 R /Im19 111 0 R /Im20 123 0 R /Im21 124 0 R /Im22 125 0 R /Im23 126 0 R >> /ProcSet [ /PDF /Text ] >> endobj 155 0 obj << /Length 2962 /Filter /FlateDecode >> stream xYݏܶb`>"%RRHp> (l?vyEw>H};S4@q"|f&VBJIH$QٟvselR77dnJ4e؝'y)vn~!"HeBtH)2`ˮ~Hb|v]9\_B!l}mW:m(^_ c1D ?NeyzfW#v*V-ݚ!#[L`r .o"hEB F|!$BD*MHR MzS}xO5hy3(:$,(:ӧݚݾ,hS&q+#d roNA'xb9K2J p+vJo?whP@ 2ᬞ@奄tܯ䥵 x6߻ɢv_WNn,KE+t+ylvR&P`2lhݩpxdk۶vȤ7/(qK @9i:F'Dtl?uZHϔ*CdD;SZzoPU5#`))>{CK7ڇhs![3*uZgM=DaB(B0`ʧS1o ?gs As,% 7wŞ Z1HV%7i$bM`]~p)sg0,qy,x'XR'f.hC wܰk@yp_^5P\;gT,R@ 8 8ӌ%DŽUxPDoBh:Mƶ0w4Q3Nk u<'wVfiĽ7;W-:"XT; a΅B-QYa-0ߣD!h t̽TVǯUݪʆΖK*Cg89Dj_bx~,v/-wVxZCEjgI4C9wTeŸvdCj 1vO||(<]Ά:b:x lT; hGB;^{6zf J=haKbMlA[ՅxcU;B܀BPWy1 GnV@Pt{cp ;YpI̊jFKc :dFYo`G7l# *8rY->:rd0r[w&4 Gr`) Hvq2.$#9S_QT~R0 IjвKR ڜQOtqs>SuW"m/ '*g3|>Sjyy 괐~0g=X4(㑘05(3@:"3qQT*DO !d\+oBXx)8QSSU>_-:*hh_75r moK a>SS\flRA;LPB7-#0a+7IFZB9wTQLQ}nDo(\ RRU, @+,ۜ`Y>L<1\Z` *(e#y,>+<: d!LE6:E$_}b*xoNUOzwbICQ5CQ C'`&#RC;.>N3w2'snTw<:|ű/˟Z@/@Lf ̌]pK8VEkn+\3ĒSK812gCq ] $a¿MpBoOϚa䊊(8tҀE@S*?9FK K݀= z#-~7ዞ[ڜ7<[WE_yqHD1^F(Mq91!/??THn/@13"NDn/47",~(*QQFrE.Q!o3Y79`ޤD#W|D "i񺄫StGJ[ Ԙ}$|KA+dDu7 TPnǽP̬)>v9SNCNEGUKR-=X 'LQsHb0Y `-8fH/E>i; ? H[#$T$:s97l8LzHr8'150jalh:9r:kJOg]N(E qiWl0Oy[.af?Bkxꭒ;1߯:^5 M~d˅IK!]HoG Mx^2$$1dB@ON D3jMBN{E6#) HA3xK%g|:[]Fe83]Nzx-DF4<oi8K|+Q0)3S%M n4cDzӓ\aWA~2NZG]H90Ar;:0+b_O|5S|].BK03NA]y+.Vj^1_52ggU^>sthCsOv C B, Sw~O. ?iD+sw`#R|CX~BllwkEaaPW|:Əxwp.KXendstream endobj 154 0 obj << /Type /Page /Contents 155 0 R /Resources 153 0 R /MediaBox [0 0 595.276 841.89] /Parent 131 0 R >> endobj 127 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 236 189] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R4 156 0 R >> /XObject << /R8 157 0 R >> >> /Length 158 0 R /Filter /FlateDecode >> stream xKE w r=GXB "D(0`|3 BWuUq|߶lw|}}}{k>*+6_it>[,Jݾfe){ݾ~{e,՚̶3*K[FͰ*JauR-fIf-٬iȫXqjj)2bR흯Nf)a?|voYZnJD^dGdeUC!z6ΐsX(E%VNt#(H)R6/|$rIcz_>2/K,R?Gھ&)u~=5["Ξ2{@]iz;U 2UVQ(| O#_@/NeSe¹@Sœ)ԻFAi.ޏC`* f%EzJ{ tnZ5C[fls[, mqBfۋ*:xiR틌.)sHGBXpE2f͑@Z(MRܞΓ%/ܣ@FAqRJ(IkR"gSV $[gG)N/sZ@pkR/'%|pV'q@e YO>HL -&-E+rkFKc)FAI~ܑgZGn=GAAo(* AK^WQidiASoX Ba5r 0=N9^*'T=ؔff`IwIxśE|+EEw&8I6UYx6 hcQ⡲vQR6L=WFRiAqj<[1&ݮ1e<`z>Y)~]c*הc^SƒCy=)L6N}=1!!yqMSĥNn/sNsNHkJ8]=%|bqxLߜSi01%hrW)0z"5=m_p1("=5(1'N;bfE;X x\Vh Ќ~X쌎 -Cu>,VP6>})ʊ@ JZx>,n`AXRڜ!d+; 5h 3ZoMxNp@Arff*Ze;H`$ms:Q"5͔f^)}9 @&*pDzw`]?-,S,M"mp!1+%dP؛XCLʍj={IW<~C SCI$~I΂ ~/.ЏEQKfZo!*:Үn?K|z?Dq9/s։2޾~um?%HMendstream endobj 156 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 157 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 93 /Height 39 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 93 /Colors 3 >> /Length 582 >> stream xJAg[AP4SҔ||@{CLUîQ l`jn4b=?!v;䉓ETtGe % ,C\pt8{L^sDxLshzWE*GٟVvr9BGg"LBbuė5\ѽ_~2t&:K ~G*"˲Z~6xrv|x,&LqV֚uHs[E\< 4'endstream endobj 158 0 obj 1819 endobj 149 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 1080 344] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 159 0 R >> >> /Length 160 0 R /Filter /FlateDecode >> stream xݽIl$6U CptɪH>MU {į7" 7|׃}k4{W_^_~^ҋ|ikJJiolVWW-a;!ӿ>Jj7 ՟[_6U!ͧ #}JyL{ V,d>5i5갯|k7zJQC3~h_}gt^|V+8IOJ8V__y87_!ޱ!S>ߍ'>|3cug|.Op[_%s|a<2xoذg  lrӷb_O'XW5~ҹWD9_riלj~[} Z.#krLJG95Z,\wBq]:w9ٿO8w,^'[ -FVTQBh÷gT$'>ٝ/)sRlOrQ9{ 1}? 9Wjd_݉8N}o}~طѹ4?Iw8*L <Ȝ㫣JOXM5+|2x ~m0'Gx/Of`@ xZ<1nZ|-Eȅ<+'VL7t uד|r~a+/2~br k'3.$i7GHHֱ;$%!{@w,S"|٪_OQ>uTFa{0Vq$`_p0%N|BZs;I]t[RAZ~nvw|cE@2?= O4B1*?I8v;!<@N/ k =?Txnx.xdm|i 9۾s(=@_}уh/o_$V6)3[L?"U\xg7YGӬaC78$3Ug+ߧ1 Ю+Q@~23&Nä!羇zSWx uVvUlOqVO݌ӿQB/w?eO܎$?djYD !a)v,ɅR57qZLA7>>ssk )qc'_QMNS h*sAq:'% t R(GP9X?Ԑm9wKli𑾋)@4kViXJr"*0S{I4tz@΁LYq8%{_G!ہv<ݑDdgR `XēL!;Bv)lR8$Ș/V\ʤ]b,ːR+z3Hct}d}.He=XAJ29DACr)S2\g\^(ظ&~AG/Mp]ۚߨ|t9&MbTGR{?y(w>XWiKl:\96$~AO5RTELRW~ \cHYxply1֢WHM.l@/ D 4"W=H;!Ttq$ȎINh)I tй,M2x7J#~ !c }Ș&/Yw%3a~GpK 4w3 u> b_U }IE;;hYKar>HU5|9u 60cqep{_5 c?3S9)I|'!LOX(Gw<"֒$JV3p-! Y6 `iԊ73,a뮕X}A<@ s} B8 k# yΫA^\r0إ|+ $6*_ `7~IPVx^h5xH$=|\}w06s\aIt}Y\BWϹ^;ccib#]4֝&[̷E:c4~ǂxpXod͚;)6H c<\kf{QNШe̠Y,Ca]`_{4}f uUc*/mo՟Mɍ{!~s7ȡuK >vʏ9V8% ~vqe2dC0fu.u`}sX& g2chsT}> &&'HQA2|TmA,8Ɏyq2I ڎj~k\*m*J.IU'թcX_p1g<+hSGn ?,DV_P GOڈ@PRWT YZº_^ ct5Lx$/# b(}u!10C"&ҺH}FӉ[D'tG:ZtTH։lH/H0$>ɪA]f@Vb'Vz`3!5oHA-fE p׷1Sl憡| q?"PFg O*O'4ycuEBBcB<Y}u@7mL Ln ;nMw^dbо ?*huBM^WubL7v5t\3$\3{u`3}0#:rw q›XxS v /ɟ1؝ĥwxa6R<#+\[ t&ߩ*~/Y ^w^y<Ty:?Ϸ||1*4|\P Y!T.&B4bq .m> WC?Ys lX_e uJ C; ]w'먻.B>r!q4A,L+Tg+e8uHF}: `)I3ެsA-A1t$;S:c|RI0:BȺ"mz EE$W.}ҷ BV _В{!ρPRLZ j ]@‹|.'&*L̖9NCILÀbn(2z5K6J߾M6c@ "A5b Ea *;%:?\2?yo|gg( Po-hԭ BF` +eǽ9hl>79ט1Q?&.p =hUn9E q 1ajk>FM<&N') @6譝!:} 4 l]ِ&術PZJ|9|V__ 5aRQ{0ȦyFnXAW$Xy8HWrV]@w͌()BС/] FO-T@⊦e0L7^&ْ#|IzjM)$PCq&K adRv9F\=QĤ0Q/n([n91hr3Q0Ge`_Bm2mP!#>r.؍Ig HC'l:~ 2y'GRf$mn㨡@L[ &BOD #?U '[dCM8C-g QD5z(aj{L\T(!e/!q !$( T!vCi%baDbc"W &@Eͣ*Zm> 'jZ:fs lp5gXqaf+z_:4hBR`$ #wc꣯"VxEę0EM 6ѱ wĎr1A:@X A&xSsA c|@(uV| =EQz+_1Rx=Mt'T r@Y1͛XMEг>:#m[؏A<#ʀB\p%18ZԐ^d Ի!ǒ <+PːGOwHy8EWʈ^dڰN, @P{'_WJhoWLl& p915Gv)\fl3'ň( g?C<C3&#@sd2qH ;# 5Zc4}CIp(OQ/1F3?RpP#UtvU |\Dɠ ?YƃՆp!CdKt뒠'0c~w;N1蚅 zĻ,W=Q>o6!c&>O8%~nr|//CPװS@@'dR~"no J }[`>*{=?!1_5˰3ٝ>}WF,N!oXZ_sBaI^/_wjƀW?.Jo? nkW*C0)ם9fC~XBBo+2c0 ѠV(<ZOkǯ~ ~r܎9tV);p;*O%7$ţ`ᘮȠw!?YڍM抔0 *7 CJ!=OfP âlOܡ+rDu*4&P\y Bk_@]ڮ7pAxZ. R4vPPLRQq͘A~[T B  F$$q`Ϲb2v/pXV=1,m:3] HD WqiBS% HP 龂iHזt&gRa$)3;ƈg8شJwlݔ{ ; ^gs.]DV}K TQguR|QҠ{`, $3ac]uǂ"s,V&ts[qAm[PJ3dBEl ڈK /s@Yx<ᴻMNCI>cH@G:mM`p=o Ҙȥ#Ŷb7D&o<  S";Xy]0@34H4 ϓïPp4Nd/&Q#c{?ʠ3R8~wnCT*g*IAeazj撮ᔕmip၈v=1tN q5͍*oŇxquV(5dۆaI,φ *gϘ(D1*u7w+ғ9GBrZȇWdm^F-zHry 27BNs0\Ĝq9c :+|+h. +2CH;:2 f]Upo0pYa0g=Y#aj GF1 -Js-J&؇Zg(.l/d@i507ޑ4>3,Li ]yΐ?x9Z_#6?}qβ8)ȷ M Atސf%iJ,oaP9Mc'=ْ1(Sxh2b 8~N&O'')*ykiV럦NL m1aI]Tcžk0|Ec]9_)ƤФQ .u似wǓY uBeZœ5T[qK saL(C@8=Ȭxn26diKz^ĂsvMZ-?E6)z7L4+RM]AY )ڜ^isKUFmH'ߒDAtm(@:h=Çek`E^Ar `G)K &RĮeVI>a`bMŘ78-zLvqT}IF?PS'0.1c'M g(wJgl-4 )9wa5># I͈a"VMyȊL~%HG,XMथ\} j,Ѱn:w!fdwHq?>5Ey_ҷ7ߢd*&A#'EKNRDHBfA2C4 j/3cqU.{♪qㅻQ D3D"L٤]u'@ 5G<rlrӺˆI |biÜI-CU*J"1$IԦ3Xްc &ɍD ChB1` >9384Kv1964_Q{̰ %J"W?Df/4mRDN8N oH ئc?QFV!mP#oLs6u|nJ!i@*ˆ=[z(|+ }0qN&r %Fc~*'dxCZHTe2wu'D] w%%BM8drWɇ3{^AN aK 1e HMbO$~CxayB?kpȠp%;+Ɵs̸ŝBЦ<@;hWQ$^@M|98*Ȓ ǃ=$wQ\"J BKbհvvmTYf{kcP\,H!Ei _O*elr‡'(h\WXPEI 2ٺ,F8AX.80^lâM>הٚ@dCw0 (!|j0cb Y0űF[r*jQ[P9-dh. F Bﳃ8Ւe(*u%{C'o$7:Qlˆ|:A|`MfP(!пHrT!k_1_\:>2Z@:lG Fӗpcm͆4ʘH$-T9MІjKɲa%BG2DwR saHR| ׋R< ˾ ,s5d&)^ Q ( <Y*u">Ӹkr@B?Isx@|F ~MD;eI" !\1!UGoe % wVY}8g&dc frk;׾5zO~4}zOТ 9F"GFLH%i?sF:\rQy?i/f JhK"JTGu\RѺIr*DyVC1o?y]|,]uYWutxZ]̠5HEf3+63 vDLxeoWC=>*FI!+3-ڏI8e2ƂlC̈`NWʦZH_w5<V 7vPpģi;䉳s=#oHwP Q; 4>/K 푼B=te(Vor@qK!o#=i|]T tɷ,NYfG^Q\`7+PLs ORk>6E53X4lB1!E2| 3nѷ!! 6LE *"DS\IDZ+R*QY95R Sܾ{+ A拯6ݝTk![z>NqJXѣOf+(5~LEr7)|\| u}AnO*{h6WiU  ``ɷOle^jCW5%y5莤|X<3d&7XJ= Lѿ^eI(WN7 S*atj0xa9c>vE~Jv`7+GBBݩ!߮ qh+iBFNѕ"^!d3q8#kgÝ!!!^QS)0&4FxEqR+qEM"^YTTalg=)uT*sߝ#nfHgD[{ } :\)\|ӑq95ZݹvF#^' qEjS֥`r_^[d:U{%+@7$=^IIuJ4^YE$sv%+uEc頕$`t+]~35;k5&ν@D|s(|N?DOPK;sgfu;f ϝF}=2(͞k bZwm {Z`v"0*QTIUp]hdi c^)0}9njՕd*ae52}"|,5rGz kI v?"[)4q⩑՗/`#,0z7-Ӂ\ aVHWVifzM Hå4>. - `ŗ~ ɱE11 ,VlXXEwCϻA/l4@9Q)tpJtÀ>E'Qe5a@&uU@ܣUq!#YS uYm?T*SR0]P)9ՙlW?4!/WC!#g!uEiCCNHZ\ê}h,^ڇ"+z;Y>̲J)<ϺJ!r!8WSwCc ڇm>,S*~ǻၨ!( ^NCAfM\@4.Ƨ⁨"|G r%,]IKQC[T -@$CJe]ј~ѯ'@d-]5yXuD9D DKQ5IV1=ƩhP Duk 񪁸!Qx[Wzj m@ͼ~])IVShVN!ט҃rJ pTs$ƜP%}U2 \% 9+&WDjas Z"JFDcF ZؔND%]yMpND+G lgTAd@9KED+?tDŠɌyWQ|cDuO*cQX5&8(N}<)r flmwLE!yq+ANff FKFz cdSH)0Al:Wcv/#xT)\ye2!1 -:F > fdN< R*2d,^ ,yu@@u[IcpÞɧ%-uvc(qi7O5.,ԟ{r ! ]> ׫{m@RZ=* 1.O[ES6aG:‚ݲC_v :cLCQ-2SA2\`T:ISVI(Ɏlb1 o&bh|0|lKӚxr5X YѰHdo. 5yXer#s2=9ʤW6P|ĝ]+bAfǢ: ^u#GY yl *86 qmԇ!޲B)2ר_WTf n ^%Q@`sd8Rb{ ͠]H2fQ|ꊦǢtRiŞ`E8iEN)"S8^4U Ebd +wkU]q RauV_ wz 7¸gF*aT`f%ħ zN2Ly1 " ?e{ZRfJTamޮmeKAZILe*q ̖< -,ŢƯTHNkibN&$ !Ftyr+.Qi: QXDmltɠv;͓Êpc*t0vcA/pCzG(r45a-}S/lk`sCqFD|9GI%Bрa ֬!.~SQy Gb M!9ե5.QVfq&3Ҫ+z|4J_X,zlv쏇5:R _Fl5eö n H`Xd1=%F:>舢nͤZ J!jFKʱ[G{6_Qh)dX']{{yѹw2*ƳPp fcbsMrcdtGc{Oܠp8i#ۗ%Vxs=rQ}Ps.j 6񋵤S~0.b M]NQƶ;X:UFA| pأE:XH%]{kgp犡seccjG+%1.8qqG<;V=863 5_f =w4}k1+Xj9)$Ō,KKE` NurYQ2dEnʊ fm lsDR]s`2Uj#wQ)=@bacCٻ0$ZB-{]k0@0y:^9l ," bv,>Ϗd<蜱x/|E35ApH>W-=%?)5>}0D}0<c)Fc}yuYhzv5hwMCU2R58㍝F|B̠¼!Rj7>2eoiO# ƣ׹a0^G5P>0_*r4Zy\LE1T# GߺMo>﫯Ԯpg2 m>v*#p^4?c0jG~hJwiНhј;ү6-j#6-Gbaj-+:yW:DU?ht9o+Ǵa4}g5hȻFrF ~fY0.}li254h=m7`ϻG#=FFcX:a0`NpewhH~Nyw :a4P@V ;h\Q"ގƌ{ap D/ n:/v/W*S J%n2 i!w/5<$ EO nnrۧQp>ck@C>W 2wX;6=s=aߡ1ޱfX\Ox5;??`S3nX ]gYƍ밥:>Vsgg {Wg&ib. =l0H1;Fzh@T=WAf@|?]F9w 2c5xG= 4,oħ-˗WLg<J@Q_c:+ z;p )㵞ZwW,>omعJ'0BwoMkv#3b΄E,LP 2X ^Ҏ"o.* ߾ W|.5Rzf?2 QeϹ!'tr?'$zPŠвφe_YЗƅ͌*\儖%\`6zv-hqR8|a|ƌ⛙-°BAheLh׹Ae 2V<. c[R[z I]^|oxʆHl(H-L`CT.]yN!})LIt0-]пY*n-J*m]@.ftBl>6؊_ g޶2xl4){|ĂHd6OsReV[R rN)#2\ɠ@A4&U2ٓStKk?R^L[q2vѷG=]K5CpR$R(47Î#Yi enoKCPakfۭ!gqpҐgDU3^-KC19Ҫz-KC6ك"r4ζ۰BL_R,XKpԑqt*ix[1, GpT/8S͹2 TiHS(ia9!Ӡz ?/?́Ӑ@siܙq|VYeCK@Gsტ&؁hW[K61uEIۣ$ᵆ$$Ѣ8Ѣt )GMZ%|EMeƳ*sC^GdZyi k]jAW}?pGganA:TTa`C$|"VCп{8 RX!$3ZA 1"/bgAr@~9C3 C̙0| Z&xźF X|ѓz\uCLu-ٽt.@4ސ8 Hy:I}N'mCayXu`M;P:pk?v}sM׾&u!v,qRa/ q${gAAsX8X Kg,ِ%((D:Xr` ||P, PI?Xk!X},phz v xxC-M`2|0c.@%,52c~uu?aM=nXC7WhwI{x+looU v2L?d6 Ggp@04?)"a1}* K폪 XUUa>| _՝uA܇ΩY vcA{A>t^es{Nɜ 8K/`?ajNiUB{߁1VAҴk`Q߬W$v ry LڡoaOz[T=Wס'~/f]rftpvU?{8BLo{<?kaD}A`(NjF $QOE a;hn%C-|X 3i%s'kG=9W$6kppkNLA{G7N=1i?0<Ff75 Akb("{`?yEV'X ,Y~ f> {.Ɉfp[ZUř*vYW]k ls,P@] wJ23z &*[M Qb<' 7ߟta :\U2zU5xG&|z5IR3]@B%;d(@cGe|'';zpWʗ7N jg"gyRd ד ?)HG%2D4$tl(52:<"\y:PQϘ +=Tc/( dB> (P $CPiPD5@qtަ }$E xk>p1kV/f5B HVRtP#j٠h_ Hcg;a؀OU/`M;|t +@]Z¢v,hPE垍ى BcÆ5e=,DGesA&k-Ya)d(7fuT@M\s+ج-P\$(! Y 5ш@xlLC{?Q nQD1Z`ѣ#(`bAGwoJffgS^^I7(@z_~6>6[i@/Z GNP. ySRFih ~]JpcB=JDiѩf%o'ˌM0 2cB" AD =RF|+Ԃ M#zKgcN/ajQۤHExW!)vpP5)L.Q8,f5]}rp4 KR .`"2io#nu".`qD@T1b(#"7Y@w00tMl)ZN(UgV|@ݼ+D!KLSz@цm$\RK\D_ڳTu@J=G{zSw1 &%BA-%U~HqN퀨 ʆ0Ck>5zP0$& ZU5ϟ`m0;q]T2;-0JX18K;kFUW (NadFh>b}䙂T26RzB|.;Fm.57>p<Ԣ1?j#3dZQRlֵ85ĵ=VnJ3#٠cע@o&,l[J7C$ @2T%!2,cE|QXNNi@P眺(GHc _ID%]6B@G"O]K"DÿJTZ$"("w\To5*Ԃ*ӚdIͽ"V1Dc|Fy n@m]IIOm6e]L~2-6ɺXxL+M l AysY8āK3c\,.*,6N{/&zALlDgaQ4m1 2;Q4(2hR6h9y3kbCQ 裱E+EAszM(LrVQhC7Q9R(:bI(Kpa Xա>v`Rތ{We@HhQtwrKSt$@9EG8RP};lNf9/W@.y:Yl flNqۨQ)J>H߼3F`#6+.yvS=7s0N{{̢G3_7іt1 (C_XO"ݮ,p +bhZ]-R%aY`smXeb}ؼ !dE,-h0 3Y4->-@[>FP,R"ZF[ [(6'g(endstream endobj 159 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 160 0 obj 23480 endobj 150 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 811 482] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 161 0 R >> >> /Length 162 0 R /Filter /FlateDecode >> stream xݝK$]絊XA'!aF̲h¹2YD8Iď^~ǯy={{]j_~5޽W%xՙ{W??~No^.o]mj~5j\^uNkwIs> =>>g|uW)w[ylx{_+W]/|GWR,i_Wu 6~k5C}WsUx>bdVy-P+r0߿Z~9$_$ސlAt9ސc|!`VS˸buAdZ1M81QA)+JAr-S{M¬ > G݆R{k,#A;F%{nb> WukTHL+-> |PБ':Ԝ<sL:8R(BSc=X JkXŞe]j,h_K\n=ygܐ^zlŃI10 T"?DX."EOJb0jN#08$kĢ̇`wę.2Av ٯ` .P-%|YeuuJЖ63(HO<1#"rr0#.1?jУ"҄[%def`Jol0]4xC3Mb9F6i%l"?V%p# MVVyho Hnf'$^ eF;̄Kmj[1Q{(GoeKc*R|RXJCd~BK >P#`c@ (XE\PlO,djUAZL%! *:Hfiw7яn\QULc\5vͥfu̶y˨*Hh=XkW&KC / l])?yyX@W;dqB&(žm>y_ԑ {FtjwiVKHx7RISՆuۓ,_F|b[*q_}0RCݾTd"l63A8,.uM{%m=oЗwd67oH\oKP\t bI) "x2gXEVW3/|ocB5߄^nq?KDqe>7C|)f]Dc+u(q]'K\nz0sBF2yoՎa5Cj'!";xD@~$;38ЇWm9%Lx0_$KcPCVقDE4ea J`/x_N?{8T ML, 4(!h5+NpbY, >۞3;;',,C>K?!_OHB(? 67Tp B:u; dzidž43\oSs^p=hoO&iH>MDK F xCCRZF=' nӶI3HFjeJK}8Ć"[.Kzp`%jV,XrP,4Qffx%kjlwK'U'1gY:RPI"+LCEhg@0ܿoɼ0(]~pd SevaߐQ>(>:P'yWNzZXA]/LָN/Hc: S7 ."NZd%'zؽzC3}y(d3?Fy[bk'iZGΩ9ܸ4c"4EwycwhP]BտU*OƲ" ىG AO{iW=O[׌p@Ӫ%u29,*k|[SӐ>!q̔I_2Fyn/zLw&Hqea_Yb1qglEG*aw,D<6\9ਿ lCiJK2BuU 7JIr07nt@涁J]1e: [7=d;4jO^X֎Ujzsez\$=)\qSe8}cXMwIVy9HebCnkFD>uEQ8QᡔTLfJ}q^0thݐa'=+΂Hk dD{akq,?F:eF:iL?oO"Gc`\Of}2zxեwdMx{C]xm9cS&Rr oܧMdalĦJ& e#[?<͠ r!K٬F2%ZY"rla+[0qdl%2oi FihcyƠF`eID2~EhOt"'^OTG|p'fo9W͜ 6q͜$0̩ɜ<BfaN`=S :-t/tA6wNHyr'!ks_ioI{pZNUIzz'}jex'ޞ v~cOƞP7͌X ݶŞp;zs4L³}<k ɟظS]۞j_l?bƟPzOb4ǃ?խIGD$+j۴'HrvoDtӹhO8G!풍4ȫ=Wˇý H3KDy=ЫʶNo:9fCO8 z 6G&C^`ސ ʓcnRZni՞r Ny!V[9w2,{_~l3U/'6@mdm" 9/o_s `Nerؤk]\߆舯Ნ~uV!ش1WCЦhڄircmeDfTŔ uH\v^ M|yE֯d>С {(T,:s(ZCv?'qN]83ÉJ`,GM_vy??V?!^\\c~cFP<=01}eY |.V-Z N>ob4jŀrV</b&|pj(y#|T+IB(8Ͻ;O}JQ'qJPiп^'azd5+!|By3$j^? @'埐GAί߽~B<s"Bxϯg xic.صRr^ 4c_ Gpz_oz_K^#K8)Kgv0 .A\6.:e8I૕~̀c3h#r|ms+05d'm!|D݃e$>|A墆ʥhwN/\l(H)4sn5 )R5':zJngS|s]DT J.'`M;*q6P#V%['B7CXC ?moYmԝa͓-|;49P{lQ90"NK6<8I^bIi>D7Na1rVFgS Py][yo-:`NmBdmV@7(N>t* `qB6gC0ĬԿD}F(L&$0Qn"Ә/<æ"ciLDV e:'%˹=Wo6,ãxx)C1S,1 e´ šxk@dg>I{AdO tra'hoӈQaĶTAsv|aQK;D *l35!LzdE˦Wb)0߳ J (]m-'5G 9C3!U3Iuvw쉡t-6OZ3A2IxVa5tnIJkg1VoP ^ijGWDoi-\dhn9JEoGt)-[7t PCLAdI>d6M46R,O#E=Y\{q Ӗc`p =1;NZh[>"n?GNMf| ± 4Y!=O,[nLU'mbU7$>D @/(mQKxHܥ&7Sڛkz?A>ՒcNFȲe}I UKZ}}VeM=t2(u4*ϕ_ufi?[>.ߛ1d1dSǰ7$Rxꊲ ;9 uOg*4-pz39/)oR=)E,ҟg&[Vlv$j"*j];lAo iVasi{/W:"{ 3&8U<ɮἥm=EwW"ΗM)T”%Sf9]6o0k7u3vȏ'p &35ETfa{a$5貛_ @4! ,3F\W[i;YV XoŕD~bz!P IZmMGYγ]#8M*鹈Q†|]}F?!a/g*b+-U#Po?nh  W(XPP'n?72uUAUZFwZ\tK_p'qB Jk|c Q|B~n7)D{-DA?E+>q2 8!hY]Nՙ蘮4$ bŝge\!AN+~%5+'8s$7 +AuJ(V|sMÔ֡vs+Aj{ ,Qkn3 ZUNH\m'Dڑ!NJ\^ @8F'{raWTR6ө{T ލA`3qmxVq]3L1d3͵2֤Nllެ(u̦H&raJj1Ey4Ǵ(ֽT"'ǔ ZI]A? mMlG O8PߐS֊cRuKѓxDۨ2L$tj-8~=<E&SF#jH*g%W4NS&vSx ZOl}RjJ-8%Hfi%SEN&Ts:OUQm W(XQjeB+ZU^pܒ Uyʾ ԃ"WH^{wN5g>*U*w2"Q[;J,wmNqKMbP!ހHJ"N2~(焐ߏX$J}B>- <Li)^u(]^|p(pqS XHl/ef:H*Ra⸜qѣ \ R`O$"S!Œj'!82T<uk}\ǹmP˽}UNܾ̣x}mV^N7zT"kUnOTݕE#nH)RSގ揀=HBOAs&\t85,*7>ßPPi5(woA7^f(~OkBR$>t6TT_j;ya¼ [G%j,㕃-й8E@Į!.qy˂Y(-[r1-7 y9n0zTWpP6u*%3w*|bu4N*"jTSĖJ LX\~.6a-]7d*^<(UՍ(Kp"^QIJ1qrD# RS<@u6ثA2 TUwMJ8Z ñyX.dM伵7=<>F "!O b[&dͣ1>xE^)hbWMAxo!tb.U|iOh;nlm78͚G]Rn+tP q aI]$#; 6ɓPzP2I0&Qp{*ʊRhO5OeVੵM[SHMN$}:Ir`z:mN nΧ\%D'Hrpq42m*(KܹМF41Tᷪ~xﵬPiTwiC䠷ݚ K=?&Mf vl*yx#VU>Fu'Lҳ\v^6>NcJ0] ZjʹDERq-4xu=S?*(:!,` \fjڂ>n Q\dW{ wd9y/L]"j݃Wf<dW@j@YP]%a-mP=Q9 [|U? $>pCs?n\tU|Ǹ-6-GyiSA@bͪ9(Ij3wQBmVNѨI_(HC߉KJ Jذ9z뛸n:Vc !ƃgvD,ne 8\A T[1)DPT4Aq'$ ydVZmUN~4w'ܟPE~ 4z.Ǩ}my;U? ȶR\ kTXUjK Tü*٥"U]Y0-\L-WP.B(T/Rم2XWO'jq5Fz\,:g{b:aCHhTUWAf7j)ֿ;߁ta{!7BsG#t}RYsnCְk_vS[= :'SUWp>2BEQcP=M߶t?q: U`Ѯ*$t61]7SNrDrFߗ=,X1`!+#DV)!CD;,|Ʌ (^l ~l| ĕqQp=Qc`:ۥ(*R g@<\Y|svCmS")GmUTiXQzکj+㚥zO$Ujl>)3rjR`XT]K:aWK7oZ-CIx%Oo0K_9Ӕڑs0VOZ\*%$Cم|ŪfzX֞͡1K82E!;KcOk^ 3V!<`(AheTʿl3#9.p, m@DmCmp CHCQr,Ue^nQ(ŷP "Q]}DVMu)O'gOL\SH0FJ+-xzPr⼚LHTg~QIsX,3g[b6CtEPz bTg+$d!3ؘdz 6c(ʨ]߲~a=kv2z**AX ΖQD10J.ep!b7Q셱Csjuc|B. *A.w!ZߝP$4qʱl>\N!NP>'v tO/)(s^REt %^^ѫKJ6n{:Io_NRJ5lNRb:Nr:IIVv*az=Tt$!_y@I.')q0<l OLo- M |шJ0zB5e)53n%HۅbRkpJ`Э1JF26Paq6teXYۥiI&yBWkH @ kйUNF$zlgxDW%ŕ~aGy ZOYp!>IJ2ax=H-ېU,;kDe!܀4-\g˱ϰmM9^lfi(dkCgIj74cCJȜo)< ݀0sUQ<D4֫{/yݴPMonFx:$/XCJ[Jlu pK O)<[J\<&M3m2@ xe VH.2"&zsOէ Ũ"0UC#؛åT`g{9NxX _OBG>OA]3W0r儃\&yr08vN^I9xG*R';SyWT~U|̹D9vM50&ghfG$ŠƯBDւpwߠGVsZTsv_mUjZ,ncr!DT5%'%Y Qb5!0Ŕ5sv8(-=+B]_ Ur.و)JYP_Pe.]LEXU.4 D]u8]GD%7ZnJg!or鯬t!bO ~\2p>vcɶb|löQc[^v.\b7$Gjs%R=,9iDzRVR{כ MF㔼kؓ\(s1`KQݼžAG[[)ܟWҥ(رSQY9*GWOL*jE hZ3p`4,K{AG_PJA;Һ ɡ\QDgu;@EDVs1Lot쀇$y9o{Qw)`ϧ\2( ƗX:[fNaҎ2j*/ *Rjq-S}Udek33endstream endobj 161 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 162 0 obj 15058 endobj 151 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 882 228] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 163 0 R >> >> /Length 164 0 R /Filter /FlateDecode >> stream x[I$ +!3>t*idVu-{l5@s82򏧻/K៏Ю;WО>],֫-]!<,`3}hYCZ\s\sWXχo\P].߮2B5E~>*Ѷ{Q+c#6/tU>3p~_#CWo۟pZg&SrfH å41:؞ڟ+xBn\>;?6_\_26 @pyhFb>Ff#sC T#GpEs ![f@]_Gפg&RvcD$Jѯ=WUrrt`,!n+، 8f =BCF3D9TМ#PGѪYESF;<8C%=lLKV[ә:WFփch>1ɡb?(El@(XRaON aHpa;[ ;詋|u DK!fo^@<C|=؇X>9+cGAØ)<:I)t'Z ~dp0Re衛cz=j9|yLg>9@eow#8sY;(P;2(6G9w (SޠW^ދwgdoѮ [BtR37hҙ&m : ;s5gs! :X WTWV^ދsy$w7Dz7İ7]-g,~eo S8s1C9FgYm U> GWFDv 3}n,g^JߋL߯-nOv3ی[[3y@w{}=l41_ Zhkgthd"A?8?6Bc%q%>bdM4ë"PI# 9+2Aj8趙´ pQIACH$62 th@4O]%3o:6/@yT["9cbZQ J{DeL ۶Lj+àtK}&D6їhTj |VFlpqJaIS>Π)}Fuӛ e__3&\ &okv\flyK)ZĜ4g@<6kVٛ@9Gd>M0˳KJD- 7xB hȬ (倆АY zyBCf^74%S?"kGmhxC8]݂_tٰ#4x}4O4-'4xn@Ioh ؠ@qNpifOnp9>![!3]e&8:w`~`LȬgjFuK_GZ!ǀd5B‡^o|1|'<7gל";k[ꬾϻժW\/_$%ű7{f}~[(Lr `L}LT4op92&spv̥ !d7 1a2xa*^ "U ,a]0xy}$GŽs1lМ! 8FH+B PZ" Y3|2 =ݚjB8D6G= T"TH)hCtUkDpY& }+p(#fh;XЅw5"5cpWqI+99#GsȲP^Ukq4Ḧ́Uyfny8tW|jIyx=LTdt5AGehS6hoTP/9u]~#ҙr5>^PE%x8zy#7\& 䀶ZwM Hzp+j=*g#qt#:'0'& =X@:V+RzFdZI pYtR*Ҍc@LrAWwUPpG$9pl1LބSl`ci 5C:PDwj)f(|{F8 f( >99Yt`Ţzt{ d; [FBNgɑڪC0](LAy-u^v'Xfyj9,Gi+BZe=˦f  O(l XiIpn@@ WZ\x«R̫';8βg^-%MP`)YB4 %sLMo76;Xwb!ͫKZbΞ^"SӕcQd1UK WTڨcCݳXmk9J5 3Cas3(^x5\igI#9-g'G$hE[^bÖ, |Bg#XbU>#Ln$@W |J&DU0!;Zu(N,o@t9P$jmFA$pg{7>ԧS$r?(;J ސ`$|) X^bXݚy%+yrQ)t1rfT{6]ؐωLfsQsv_C:2~1{~ w-Ch"3UHvh*é'kؾdWG\ +Gìy2 R'4MIꈢ %g-<E~3C7`tץMg{ܜB3u4͎օeN}Ρd)f[aҏ7K|` U4jWXAg?l|j.ގguӍDRKWnMf ls̀ -[Ag]Kݓol_f >.P69I3_f"ő 0'7?fErqJ+ȗŚUZ/wCnh? Ay($br| ~,Z-4HʁEowRFYI^:8MvJBn urXU<Һ߁=<0_ꥰc a.Q-]FQFrC}ۨ^7%eckŎ6[φ5h$dSNქ`AS>gO> ӌ];Q剨8dRWm& V݃y~͢bnHú `ݾmO5E+ܑ2.hThu,5ٜdѼx6cp{m=h@fa|DzNط1KTf,(%˔a8L%ZЁLsTmLj[:-Ҿ`tbREnBt=rtbǕJ4d>dYt>9D(HMe\9[>d`<;=v-IoUg)'Yi…0u?r6ּ+z*_+sL]J}]9Ͼ!g YUs~/Lޯ5Vtߣ'~~|Gf<Q{Lս;X;gBFXe 1zhEl3y"_p⭵ֻne9sp>ha &j{=D !=?r)Zzr1ݠۖOpBWcnfx'LIpl}p;7h͕G`\v ̖s3ps2<_#S޽4QU4#3f|f[bbxKx{m_n7kq6_fItY0Z)j+KU_s[m4yU2xExۍk4zһ/froI:Xݨ%V FnGs=(_r=j-(qi*=IlwF-+ƼK["l[A.-ob-kZv+?2endstream endobj 163 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 164 0 obj 5217 endobj 153 0 obj << /Font << /F47 7 0 R /F58 80 0 R /F50 9 0 R /F46 5 0 R /F14 26 0 R /F8 29 0 R /F35 86 0 R /F11 23 0 R >> /XObject << /Im24 127 0 R /Im25 149 0 R /Im26 150 0 R /Im27 151 0 R >> /ProcSet [ /PDF /Text ] >> endobj 168 0 obj << /Length 3392 /Filter /FlateDecode >> stream xڕZY~_GmvvgA t)^'bƌFHXd$7q-gd!*T%{!@hp6kU܂ĻG6'[ZW(h1 ^/z\wL cƨI:ABІ)s亏a~sHQ|2MoiإF᫅@UAa%0%ȰʷL:_򲦭zͯW8ҕCWЃ/ eU//L5HɝY\vhGpwigI\V:mś[Jqg)g/yʲi/IVvztuܪu{Mv hRi-O8P.wbM˖B =l~nue&!,K|\A'bRVua.22q m-T.J%J"'ɯ\R{-H˙MmWEǎoA@Nxk8'ח]uTnlwӫv\aImJҩG#ŠP'j_i){ۚiբ|IJbfF<f;Du>h ٤àN/yNU_(G̞[+/qi}/bQi30(c'YPwCa5qQVHFZu~pW^n" G e` FYB`n f8<ށCs sSEvor3tF F-}])vff + /ߚ:;lGł0>˳؞V@@|ڃF=W55p?VŽ"LsDN#H9Ȱ`3t!d}1S0 ko8mǔp|qdbb'0~(E޼<$'FAιaǶdrFA!=[XٌQZ/=9"6<8L>V2v|c cx60t&b<2:T:WXPIw/)PXigƒ$"W5V(Fw<&\ƞ #ǡF*7I@&A_FC^k[Í<9rps;R̚9 >$LigLֵuI:~t(}RB0Y$r1²xχ)Ź׳e6 pl1B@^G7$ CHb}oW #P `_ !0Td+nrR7bzslp%|-hPf>/|qr%:YcC!XMXGR!zQQNSet~,Pl:>siˑp ˜Nϣ_тPِQ˽h7 L!哞Ŭg"D>.M0 ݾҐH!ɷ* 0+U"\#VFWۿa ! ЀTQc//⚊(]; hMtI2آþ00996";"Ńϸ{݊`|wfk=wlXI &,ЅJ+_+|HqI{% N61Vp%i"~DvQQ|ƟVd !W0]n>lPr:oQVXSb1c^9aUJKDt Bo Ȗ%ؚ!Gy(n v~6g"?`~S ɔl F6W:(y͛aryK(cB /qWmh9 [Qe:^'=tB哪5@ Ÿ*c ?9| 5e"emb(J{4Zc)&jOrCVF  !TT 'Ɵe!ug"ȋg>u ӤY*͐$Ykg:($S &NDK%([Cczkho г5 j"Ľ\IBl]kJy C<+ fcH`sO&߄h̒Lj=$Q,P||/]POq >`&d)e'RA˅4^{[G0NPxl<p]; .YLn2'n0H{2tAiћ'>BUX<.h|IƳ@8=3> endobj 152 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 1010 993] /Resources << /ProcSet [ /PDF ] /ExtGState << /R4 169 0 R >> >> /Length 170 0 R /Filter /FlateDecode >> stream x}I\;\doak訑lW9"5({P/s& dwI@GxG?/<ǿG\?1Zy֚M NEce2S3FwXPXq_-n̢Y115m>5 jJG[#t[>`rYE1gAC߈߭\WنP2b*28<!gZBq^M%w'FoZ`:)1 Q >=c(z5^gxNqE)8a8J>'־*$s~Ʀ o` X[-l+OXX5( "Zb01="` W7K`jV _jjNb`s)~hwQ@Clv"3i)E6ƙCJICu搒MQjCʜ o!Ջ9$۪0dg\!hb&kdaxO:!|پ!+3!ɽCIa{,b9 }tY0xd"o!֊{HbY= "lbX ZĢ >h 5t] baHFbTD2HXXߵYȥ_,"YWxc8e*Eib >,bcEX}X.hfvC>,"7TEw(K,qԦ-RNÈ-$AUO]2wbJJI_k fa^M ĐQ&b_%l ;[] ^&~UpZm =b@&hYaaRҢOX!!P' fqʡ ۼ n[ Ӊ͍oBX9+̅/>=z |Y Uz_cQ}լVh.ٜ'4L&cgtLb&1m-)c~{,e dm.3O e۹c+ͳ̅CĘ0I,/Du\x3etP*a x"LemwH#o/ I? RB{mL5F=s}~1bo;)uui!S ``1hpFKbgK&AfH_Ȁ񁩛>-"w6I9KReE38ggc0ǙR &D$.g 2D K*a %ςu*N)`2fGvxt&@QV-žQ%JRZ)Ma^ "`c.iL Rl-R?cFl`8A6 *`R@ `jꆙoqr)Nʑ`F,`uKa)0&1$t pYAu'Ro af!Jh:MF0AS#Hflg||=,dFȋKlm4 ܖ+b2 ](g *Nۂ-~_LʣvaV΢q8*xhj`fUӃ@+~_&#)~Աny:t316;.mNn%M^]׮Lpů˚Z_v=\?VH XEUa.uc^3* ?y:vT]"T"C[EݍiW8:Z *kG* XI2Jx #. k 7ꗁCϺFocWqv^찍0~Xee;$S 6^KٵJ1~9Z_1Wx &YH4h &* Y^%`k X[fX-F3 /G-||yOȭN=Y\p5VJDcH`Ù¼fX>>lĠ8cU*udWV+.q>L|3FБ%¬0 I)>8m8w :55S0m(ށT ~ؗA~#5.~pp+VbZ(/uluN \ZIvܖ0D%?tXT7pݡSrZĞ2LW`Rq&B-Z^_1Tgb,ЌsJj&__1nj}mG֍q5rEq1 ]l65Gv*u|V( Z'(oR6ӖN9Q2{M8 ɂQc n57@pG`04Lb#Ma4ؔ5Ʉňo4 C-_ig7E05X/Cc?` "BNU5*ٌXe%l -QD-DՀmfA_XtR0d`h"Cw&u ؟&E-9ܼ/ *s~teKУI+X{Xɚ@sU&H͈ 8iCg6&ށX縶 9j6 Cy5gHN5(ʁ /:Tg^3#*ɀlVbf/?J< jʭo`zL~ .˒a,p3ˡ+${fԱӹT',b[q,.(.5lWv=ٻ̠`ϜD-uuz1:v\pw`+hirCp{k2Qb_ĭh!ڙ :ڻ|I7-~H>&x7p LU frjɟ"ݚ i # ,;PԃL\܊A6K5AME=4Rh W@ij;YvbM8=f1)^#^(h UӀ~&<7KK`ȉWCK_|^B||l=讟NpРIgH3ELBy7IYmĵ€@K* Ir 'm(ܣ䍑a0dK15 0/aH'6d/-I;)FR"Gq (q()(yC>xOϼOON/~Fy%o¼nL$8k.yr.&5U|s&9eH@aaR rDΌ*u4eUɢjλVAU4dϏ(3AgƨKM c}%0 k NL\N_w̷ ȷȞ Cnʹ((l F㩷1 b9(7>D]şc)~YFW.26қ=me *&x"u:`o+`Ǩ& 20LLBXE 6~;T^i@/\L8bġj 8Lq:5옂8膊)0(X0ɒӯĬn}}IEK8Je&I /3)QJ q,^\eBFp\tۘƹS !^r 1>#v MR `&] `m[4P)=jYSV X2'X&/)X z7uXfI:`UGLLda~ɛt\`elZ )R: yt v`j6 O׊hW(WsB4yxQL*`AUK <\87OX<ܼi)S&k7H\kӂ9iaHI]s v!$eiT/j%C&K,kbWSg!كĪ^,gZ6: nccjlN 6=|9d! S8< \&jv93ox Yi%D·_~,m[WS+Lc:!5,뇑=p *ξփ7Io9ʟz۰wwpmZ;v];? F0XTB <$B"¼MutI^GaMS$0I>Fcqa?YzMMr,'KƌFj|)jvDbx߉^Dm:ۇi&FA; #pszh^0A't`qLnA29#M^@d1Q :ojic@zY7ڕVC0ٳ>҅ypbZo굼,հ\*ymLF\"S煋tC;SM=済SJa 2 [% qMik>ksQ^K#OEQ|#$2[衍|D;(w2BxN)zW NX`*՝PvaXC\-\_vu׹Iy'_:K*2"#aL..01u_λIOAyk_:l5p.l)ρb)!9촰`q$5ނO#kV}jgxPrbj6KG|?̣RJ 0?$FnLy!\HT 3Nb*u6>P1 xS 0>%bX\-||#6FX%V`ngz29"@-:y:_1~q۷]+<ݮ_0>חQIv&?j3{!20 mo8*K*, ]QC U{p| yIZ5oTv# Ў.P9@:u0p+I>\">6{2b5aXnh*07}>aN lY(/MD%jWy\<:HEQc+(ftpv` sbD}*35MnNaoJxXxo[ŏDkI.'`6胪LrEց 9KCpLq. DQ é0FVN0 ,K-A?Xn1k̚=nZ\oҘ[xC=moàcP<\>9fpy+PPpCҬ m!:,>nC6=I&/ Tt0Ǻkh|#2=-6 0%sT,Qa5lQq `ݜ UuVt*ojͩL3gsv0iù~>Y=1&@Np޸/ t nh/{FD:<$lnSMq?ܺJiL|")WI5@f 'co/LX™[&wtmraQAGc^7f.k66&!: I)u@982 Ʒ*t@{uLM8;`DjbW8A)Y!\c"nK%MWϹ6B[&W8-7@PW4긺4޾4,p[ '*W$Ik/կ+'VzxT^x|^_\`u)?`;-z `UN܊nw%6ImފƸ3\4?R?J 㖂orq1>._BR_GKVF"=⇰uD>ǔpԎ7WJDIb\uy^ k7 bG$H0Lߺ_ʇuHQY&T v0 ie:ZFAduRތCGn=C"٦|'.$z'^WJ޳"$VQy,eު^bD2ɛȎ8 cX'Is$WZ"܂1!G܈['8-n\;{2- ,i ptxI`UO]ꕿ*1`FlDSt:ZJV (RFbҗVdL Z^B;L2k+BlL8qNKs¸K(M0#$f F3" @CxW`kt>0#XiMJe|bBfyǔ w}lHued+vYT!k"q[d,,>cᗳ!nB#c?%l xa93KhzߔQ1̼mO!Q~C4]0zen *sX *uFߑƳ:A ֪6IAJ0j%u~}0s0?m)5KxtnN}״pp+`a_ tP{cȄ?iõm\u`, H»1F:!O[MV|{Pc' ; /(gFmݔ&)vG8j^&`Uo+VZlPtT\FD;1#2lPʋ aF,ViXp $œ;ҐFk5$.JŹ),f^/w"UT[:3=~9 ۔8ym 1 .iha~^8dj@Cj)T>8Aβ1;ft |wBjȻPZZ|vCVֽ̄* ^|?Uo'$qဠiLa`RmlN3 }Ln2".)p^Zerk?`6"sB$ 4KqYdHRH\@P+"66\$ĕcxJ_AQ" Yx;|td3`01eAyLEuto]F h0cO$/\F8KIψƏxY1IhQƖo1]RpM&2hP)&|۠ W"& 3Ca(˺ Vl0LRUv:jgLF͐Dq$Wzx6<@,NHD 4QH90[ ~󓻓 iR pmx2k,Lktsd'JaLx24"0iBzI‹ Y0L8D:穂L#%zNz(*xÅGAⱺ]0OVgWة NUC\^1:WU%U\ᗁ;B#++҃90[]T Z"di> v漄%e`pN떀aeA 3唐Y'A$KE 0!\1ٓVm}L/?#B2ImAF"U%31@H xxӀ7JT"7M?%`"x}.y>pX%\ p:O:x51i\})AEY,&x?_ς*}GIc~~f V;&cKlx]z|b ϼk5x-#uJk!*(\X ǤL*^2ZT=s l' 3EŦI-q.@'-D!NZjדX6`|Iw?poԄL:\t+2+FLKJk|=>Z)hc/;¤.A>%og")9zUc9|bhiuv|me* ܸs \aAH* ^ד~$&2GRz,4nh)/ST>FMVh07}!Z:_15[>CU^7+4*N ?}radI0J8` Lk•YpfSK0jTZ9% \SVj`nFnR!3ᄁ*U2 jhB~-VM&G&# 'ɶ4ё iAL%KIFQJ i RD >]<A?5G)֑[ cV<*ZJ!Shݯ=Xp ]ygN4 X?zT+VȦ̠zat' 륄T<|? Ɖ~01F` FFD`R Ryy/Y=8i2PϩdjRIwɠzHlי;^]c $ׇ>xo~H'.')xԮk5K`Bxںhs=SwsF%Ԫ P8 -xt&UB/LeQhI4} z !1F] =A J7uTENuzQk2޼}׷F%;)?#џ㫰nNEб9 ژuwB&`I~S-#䁾^O_٘:Нpw.JyZ:.R;#Z] tor99YIqB̊goY?c#"qvTޙ$))NIdڑ*4!ŵnLI "R:;lP[ܜG}v (M<2qc$մ>7j:l5`OFVUM2S7-3oroR˘c 4HMS'k iq$NGEy &C%L1''&jґSCTBguEG^'ܰՀRI`T[ ઘ9N+VŅLBz`^5np^:!/l\$RUP:HÍ/MHJ)PIڰr&2Wy]_=$Uΰ0Yz<{:cE'\ܴNQ4!̋u9cg?I73p1LPMROyT6ע[:/e121(s26ӈ!12T/H7{^N!0M:(cHo]N LE]kOQ fVtqJCw͵y9[3 }mK2̼-2>oy.&XU@~2;"];?ED2:'ԍҮ C0hyHI:܈\KZo~AoO4.]q s@(o1'bIY6>䙝0^^_ٙ,tl]]_G96nBɗĚHMY{gFUl-ؿ!RY>Yf9:Nz[ zمw6G##>nrpw&wlcKH|/K2:oҗ"7ȌKZT*07F0>^dJvz3eLLnAn¢ {⭂XW$eziTW2yWSrQY' bjBQu83]qGY水7ȋ6\<`hf *٧ԉ|Q;aè LOv؃:F`ƥ=LфdIJh|19hWXVLZ(Yʁ[U`zWj*]1/@eq-l54`@6N' 3x]VR l`?'RHLPPHiD= :+R*uIk*O<%d*w+Q S,W07Ϯڻq(cנ -ͯϵ*~.0YF|g'F*̵\tzv;(lEUFf^u!6_j]zM׏BՊLhhSisR`/0#.i%) AMQv#F>=&s"<|Bn5ENcۜ7L!z-zɅީ4Ұyԩiu}@pYk.c'U{[zPs`x']{c6$r(9,5dĩ3l!hѡ} M_ڬNa#="/-\Ŧ_҅adū!\ǔv&_vڕP!#7G<0\+*yP7Dr.G9s%=c}hsۺS[|_-?lUB+[x!~ot);B*C\cIkC}ps~YĄ_F oȄ+ YRpB[%LM`p3Ab 7Ś`Q3JwzB}AWs \f[5=M˺M7&Նh OgBZQe%"^394(ݘA+Y!!,_"ܓ<y T[5ê(4-)q!]H>fsNJW`GQH*Q6۔5pSCW)F.yד+(=eSzfGQi6e/x0d;LMI%I\7p =N#g&!9@wm]/ƫw F' $L#"uAl6/!#E>Qc4y:/e7<Rw;Џ-Ij;7_M?URƇ%us2 *\H)HW\թ']8WZq R71"!|B'zB=3otwSJn'!̡pN];uW0g 3`qSSS-PS1IM0(dbN[)ʍ^Zp;$uk5a ='ղ}0ť3{W7c/n^Coh28u0yCŠqdUu-p&NO~%w̽h/,AT6$ sʓ\8CSuf+[Ǥ j%;:hq(+':+D,5Nd]U}e”Šewd4:1pLxEe)Urie_gzz(WEr1ׯWwqh0 ]$}=su1 `%6! }J/ӄDb++JR[sV _ mbzR@qWyF;7: jFY9m0͔4fGhyܤ>Y`OdR\4xyK f&UB߅7PLY]5f̄p'R?.2r4mLTv" f+G֟I;8{Z'4wccfd!2!M)Ӫ7*6h$7H6qMSīk,>ɷ6%hPi_J|z|q>",3!iL\$[`&ln(Q#;p7_|@endstream endobj 169 0 obj << /Type /ExtGState /Name /R4 /TR /Identity /OPM 1 /SM 0.02 >> endobj 170 0 obj 16438 endobj 165 0 obj << /Type /XObject /Subtype /Form /FormType 1 /Matrix [1 0 0 1 0 0] /BBox [0 0 261 160] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R7 171 0 R >> /XObject << /R8 172 0 R >> >> /Length 173 0 R /Filter /FlateDecode >> stream x+T03T0A(Uȥd^U`df`gn 14303u ^?B%+ <endstream endobj 171 0 obj << /Type /ExtGState /Name /R7 /TR /Identity /OPM 1 /SM 0.02 >> endobj 172 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 283 /Height 180 /BitsPerComponent 8 /Filter /DCTDecode /Length 9922 >> stream AdobedC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?hEYZ`ĤɪM It³>}i2 g+++ڙ4c.tF`RI:TJ !l+r%_5ȋ?̎5! hMKQV7ƙfp2qR}JuO0b1s4HI|;oW%m{~֠3K0İ ;XdͧX#"lteQ.a<"=7(*"djȋ#m>Fϡ;0{Tn;(mKZ%Ӈ;F3׮)(& K`t2dx'ٴY߄ ]@yYu[\nP*1|dp*GpI}JuO[M-*lOLYJGI59mц%rGL56Ykė;QFN<ӔDWfҿe~*&vY7;}!Vb0]NHg5Xw#IG)rù,~:m>}0;+</`bUt8wγ 6j.dI@q!I=>Pt{/ Pez(`rq;?@i{ *}.et#OOեs$} zwV nE sT4;?;?¬nuAE;?;?¬nuPҠٓ'TQE;mm:YPt @Ͽz/&IaaQ0hZi}OiPgٱ v-4o4b#I{B@VnxX ҥmNS\S*V@?Y\ȣF`P2}Vf(jgMmuNҧ8}oO%? m>8#>##- '/i;$7|c֟+0d4mal)"WsjFRz㨯X =kLs )&3 $ WWhF΃va#|2kg#}?#wƏCe#fe h"cߓ}1JhgHOGaه綳Kn#U/ PG?ҡD 1uHgHOG#:GG>O{*8.""p{qz7#:GG??"?vappEKd~nEV 8Q^+??"?Α>ƅH󍫌`c0+?"?Α>ƏCe#{tO. s,dd%ОUmP@1^Α>ƏFtȏ4&wg#k~cK'oq[iwKn,sY֭ R Ee#^i}W:ىo FmQ6 z2/es%{.D%Sи8yS'>d6_5hS*OЅy` 5/A@oטb._?u1n\Ǵ@ 5i3-y“LT^|7S3HG]͒Nڛ'ڢE/Ky{?@ _oQzKA/P%A,izU;Eb0&1#xҒ[ĈFB'~H_hU!""`0'zO= edp~fn0{Q_owQ6I\pj g(> }/W)|=_?% OEj _ g(€QzGڢ—?% <=_T^|7Q_o g(> }/W)|=_?% OEj _ g(€QzGڢ—?% <=_T^|7Q_o g(> }/W)|=_?% OE>2|=_P3| }?!^k_/*+|K#P[?Fƹu1t4&_ɇx~)#H7I;nYAN߱@ QO߆CמaN{+.`KtDlIr'Q.Jg ]ҙ9$_a@Y&/4)_5h@Y&/4)_5h@Y&/4)_5h@Y&/4)_5h@Y&/4)_5h@Y&m|qmOЅy` 5/A@oטb._?u1n\Ǵ@oӟh((((((wHH%@̱ŴNXe~jxkȭX&6Pb#B_y1@yIk9A, ߨ$YRi;mf;}߱ 8'G#Z+$tT%FX3p=I ( ( ( ( ( ( dOG-ʴ}?!^k_/*+|K#P[?˟m?1[?/PVxZHn`G|6ðx%[Uۇq)ߟ>o6P+z]lӀv1$e9a9.[W۷Pct9v?uSo?t}rluSo?t}rlZݺmáv}}/n-_nB6݌a;q۾P*ڮ=ˌfIOMy*ڮ=ˌfIOMyqjvc9ێ}uv1Cn_Q@jp_.1%=6G-ȫjp_.1%=6G-ʭūۨF۱:n;wޟ#msO}E"|d\"|d\*nn0szK([W۷Pct9v?uSo?t}rluSo?t}rlZݺmáv}}/n-_nB6݌a;q۾P*ڮ=ˌfIOMy*ڮ=ˌfIOMyqjvc9ێ}uv1Cn_Q@ @&c{Hr6(skˋSKf69xf9?蟝YI~ֿˋW[lȜ>1DB.p0 Y{dt',U]{̒}eЛcܪ_e!)qjvc9ێVv\c2Jzm[͑Vv\c2Jzm[͕[W۷Pct9v?-ūۨF۱:n;wޟE[Uۇq)ߟ>o6E[Uۇq)ߟ>o6Un-_nB6݌a;q۾Pnn0szK(mWn3$~~忼mWn3$~~忼U}uv1Cn_QBZݺmáv}}/U]{̒}dU]{̒}eV#msO}E qjvc9ێVv\c2Jzm[͑Vv\c2Jzm[͕[W۷Pct9v?-ūۨF۱:n;wޟE[Uۇq)ߟ>o6_nU9'9wūۨF۱:n;wޟv pۆ9[?b+|K#WOЅy` +$n,YmX]1=yD*ne(1됧Ҷ)}l1k:n"#%mY0L?Xj+,:mFHC>ݬ.O5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?&_𬿷k v@O ?n5<?œUv VO۵iu?.`OTtǟUl[ڻlӤm̸+ʜڬ.3bb;/|O%iJ,`\q[ ԕ+ @ڼ tSu?*(ԝ&ѷ kS5'%aOErvhJ5|C'ha F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F4QvP F5598+jM~Uv,@QEUV"?endstream endobj 173 0 obj 69 endobj 166 0 obj << /Font << /F47 7 0 R /F46 5 0 R /F58 80 0 R /F50 9 0 R /F57 59 0 R /F11 23 0 R /F14 26 0 R >> /XObject << /Im28 152 0 R /Im29 165 0 R >> /ProcSet [ /PDF /Text ] >> endobj 176 0 obj << /Length 3961 /Filter /FlateDecode >> stream xڥZYs~ׯ#Ya܇g"r6JR. 8"Q 4,|} ڤ*U˙ϯ]C<:3'̼xar9Y\?/.L0 dsxӓM$iLg~oʽu,~U'էL'vӁȽ*r<'^o X}*u"˦5 VyAWX[{+,M8v(ԓFN}WrY{Sk Kacx~#~˻U&oۼޛ.:=P^Gܗ^*=h;tYča{˨klZGÖx*AZr@y]ٝ Sh,7?r'rW4#BG38كƃ!ouڵ炻/FE݂IhlΝЃ=s1R;秷?k]}avqRcEc+pvFh[zW#\cы%Vjq "zC>Dnd= UuI!LJp=Hvq?t$9)9Hrv%eWz4Zhݡ9W;ou_7b\|^:3T`vxjڼ%+RUn[ۊ]}#{:G5ZΑ >r rس;W},/̬נQL緽lwؐ,D8 %N.bόͫ/n d !bh-^g Xnv'8<ͻe,"P5 |\\-|k55G(`PE^D?r`]bܝ HFzS[̆{O~߾iv՞Ҡܗ@At,\]IDKgzĝ}W1tP5c$/#(3mk槓@246<)9.Sg;xAdlzurg~WTɌh4OO#B+g&BSyȂxQá8-A8zT?/-sΟn.D嘱.ΔR+cW~\g_]?;gLC]Yt E&/rk3 ft N}yyD?LWmSԸOV v`b>h'tW7-3.DxL(~[)KYz1xh aCG]tHѡ%=58X ¹%5e'i>UڅՅM1'S:K?38E@"WFQ"q)B' >% ĆĀ)`; 1쳽l'dB(m,[E!$A\Bjڝ\[IXtp]A,{H ob(!fS's4ɬuhPE4n/kD< l_L4mp0}b>a; 4c-vB#q{JFT~"Oeꂐ/$ĝ*QK:G(V,hɚv0B[sq ݶpx5G08-Qؕ߅_"̍<ЦgBTv2xشz {@/Td:Y/ *$0. !p^Psg8=ĿYL tYGv"5L Wm2IplעXA,g./XyjifaTb;a@Bw:$ ^YL-_t%8*ߩQ"npd@X22TӖ@]z.! (\ȫ\sĦ@l~]Tn[`".o-K.~^Bk[m0ꚣn鞨ImmX9v]IֶĿTTR6˔gf%m{jK<׭ڮ_i(Rp%S]$_~* 9ntd1zj2}fͲ:L:h(X ݼOG˪";s7l}2Qura -S[BbǣV;K72sQ_\EekQ^ɻatpnm#LCWNq;~*Zq."#m2NO;C6US7V",w }{fLhrH!A&NtOݍL^@Qt`,Β8ݹRH.8U"` t6@BQ[P|NJ'רP~q e5*5Cc&\t̾%?qz`bߘOѲ4IAYۥ55Wc? klP(>bbq/,,MI"K7himKC軼eMKM>/-5A-!c޷Fw( E5𦠍LKlˣ$/42~hĈ!ygXw,^@^1T<~'0~Pݱ]E|"r_[S5Q?=j!^+s$WCVp¶(HA!I\Bԓf3Lb0dC])nyu7<m^9oM~hTB.N eD::@O9dʧ%z"[A3@^RU.䟥Nc OϜ`W C+t3Gӝ?MqkZmTə6ւ}U_tW?jaGih CwQLsÞ;hE3vLwl^904ɢ%50Q"ܾ $d/*t3tw/Mli&8u8Nupݍץ`B-uJVÏR M+G~?m#zA 8ʹQ̍ݦ[[.03]{>j)[ZΥI|+7sCw( ~OpΫK馈W7==PS]G 4L\'J$eyI!@_iܱ21֦FڣEglpB?ğhte'w]1 k(7́eSӵI^E*4AfHfLF*מ$cmE X`E?0~4$K7ڛmD.6r&4P`6­~[}sFJ|3/:CDtؐƞ5qs[Hc''BNQ" v0C &HO6]A7;;MuH3~G穛cБ);J]XPzbmΑM }lU8;"_q`h֓C^˯n<-1_Z LW"|HwOI(,@ͨm;$)\+j/ xh0IgB: ֟YRN$Hgؙ7,q_XMendstream endobj 175 0 obj << /Type /Page /Contents 176 0 R /Resources 174 0 R /MediaBox [0 0 595.276 841.89] /Parent 131 0 R >> endobj 174 0 obj << /Font << /F47 7 0 R /F50 9 0 R /F11 23 0 R /F46 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 103 0 obj << /Length1 789 /Length2 736 /Length3 532 /Length 1302 /Filter /FlateDecode >> stream xRkPWe| P+#d75Fh$ mʲ +ݰ0`iE-( VXJ*T:D`)((>괴@?s=,$*t&)62OJT1h2@i5TL$bh!Y,P:IR4A1 cl4q8F$' k%IZ B=  'rRSH'a  g p&gQOS 衁'J 05UNջEEyPKP%b "rP $ǭ )vMq 5yܠM)9QS89]ngשg $ɡąFȑOe_#ʽ/oKت{Zu$-y=~QpmY 3X_9^ښ_n{#9>w[lw'[껶1keq }u_$FsCX CsTW#g{vo=ט]GV y4GuVF\̖,Q}Ftt3گQvT+#r37(^h =;<󍮝 $awLZ`ʯ~XzGѣC9mC eV\龷4^R:")O^m{}cc;*\杤ZfgϨ#kנ8efhA[Iꞣ+tU#{cn캒}:RQhqww-TS-G~w7ȏOӎ/*~\|÷]ߝ-[aO5!>W^OMUnc߫ŏw j]Ъ? qZkT? & nendstream endobj 104 0 obj << /Type /Font /Subtype /Type1 /Encoding 177 0 R /FirstChar 0 /LastChar 20 /Widths 178 0 R /BaseFont /HXDLTQ+CMSY7 /FontDescriptor 102 0 R >> endobj 102 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /HXDLTQ+CMSY7 /ItalicAngle -14 /StemV 93 /XHeight 431 /FontBBox [-15 -951 1252 782] /Flags 4 /CharSet (/minus/lessequal) /FontFile 103 0 R >> endobj 178 0 obj [893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 893 ] endobj 177 0 obj << /Type /Encoding /Differences [ 0 /minus 1/.notdef 20/lessequal 21/.notdef] >> endobj 97 0 obj << /Length1 949 /Length2 1823 /Length3 532 /Length 2473 /Filter /FlateDecode >> stream xR{<”H ;ĎAd: f$cm̼3̭n\.٢Ri6R*ݱtڛ缿y<ڝʎqlmv< ޡhAff\̇,/2tNNO0v8c7O6' ѣ<pg\Bf2? d*4(dM@~ `< \!HH,pܦ 8ABS,]Z T6PAܖV\*7\-  "9/p2b}a6SC 0x>QYt> $Ohd\,b,n M@b8γj". D/be,  s8b{= Xc[hl.|E1m$L   LX]*0qh ZP1y?v., `&X+Ԭ1N4X,h{(Х\_xV `,H?ǦlUT'&yU6(y 5w//Kݯ8{U+FUFjmJ։{@37*9*hZB{Y!}\ {]?Jث'H^Ac%-ږ2CqƎ퐁Zll@BI6Mӥj}Fٕ u'+?H_kPm6:(Oٙl|`0 &L4[U1Ԟ6&Al{Fjyտ5|#(k{*\TEEv\EvbWJd=1@c#o|:e!eb+a7:c{7VhiCFts'TC2{㴎8?)dE 嗝)Toƺ92 {jK3@~I#2 zZ< ]_.}y),ۿ7fp0;ߟ ۰*y~ wۤnNzVIO7۔UŪ&ožΔ_nM_^'6Z<7ʧ.sٲw҃ehNN%p6Iw hWo [#W#KuWمg#?j/0 ܅Λ>pNLt~9iAhh<  ²M{{]_+Vi f0њДsT y➵o,8侟kVF%a3f,WilbN iF8vYrA!GjcS9ÉnJ #+,ct^N(6=0]mL-鵬} wuCKk=z>M['K;z,ZÓ-Zf 3iԎ<+J;s& s@1R4MDP>`뼮b c>t4αK:ﯫǺcP[7$}S۬J2l-=Ӏ&I*zsqPwѧJN;46M^_~%\Q@Dc*nc|wXïp/RW+Z+.1WWgw/y\2FYfI3`MfRƾzxԉ5ֿ&-L1#웳SbUݻUiYȫ_I\?6K q poK_qc`bԞy{=B)/p낋IWO$wm yQAKsR֢.j/ߡoc"nSIt,SՋ/]{xɍG I<<?|cBsazoI!,Ѫn3)β Sry#*\ʳwiip gN]pD)052j*c R4/}wrglL4K;Gj ~b}[I4VAvO\VUzU[MgCǸE] /PUEriU{遘ƝMC5HՑ5j􏝄Ӷ=mQkb4Jwg?#]rޕ>wiXQU;$we,gT)]-a⳵wWizՕ/GOf< \k=CZp*O&O0^ǣZ󃯥(temLS٥D%"\w!c" ١d ;-. C]sb۸H>VXlqO_B\>IF ?endstream endobj 98 0 obj << /Type /Font /Subtype /Type1 /Encoding 179 0 R /FirstChar 26 /LastChar 125 /Widths 180 0 R /BaseFont /OJBWYT+CMEX10 /FontDescriptor 96 0 R >> endobj 96 0 obj << /Ascent 40 /CapHeight 0 /Descent -600 /FontName /OJBWYT+CMEX10 /ItalicAngle 0 /StemV 47 /XHeight 431 /FontBBox [-24 -2960 1454 772] /Flags 4 /CharSet (/braceleftbigg/summationtext/uniondisplay/bracehtipdownleft/bracehtipdownright/bracehtipupleft/bracehtipupright) /FontFile 97 0 R >> endobj 180 0 obj [750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1056 0 0 0 0 0 0 0 0 0 0 1111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 450 450 450 450 ] endobj 179 0 obj << /Type /Encoding /Differences [ 0 /.notdef 26/braceleftbigg 27/.notdef 80/summationtext 81/.notdef 91/uniondisplay 92/.notdef 122/bracehtipdownleft/bracehtipdownright/bracehtipupleft/bracehtipupright 126/.notdef] >> endobj 94 0 obj << /Length1 758 /Length2 1086 /Length3 532 /Length 1649 /Filter /FlateDecode >> stream xRkXUEZ z,;.wi%!\LMgg`vXI b--KĪHnja` "4`_=s{{ygmr x$)GyH.Xl?J0xya-n0c'b`Pq(%H 0&F&pN6A6a)0->T4qD YِhXfMՓ qpLA]q:H׉}Бdd?;pDHbe'u9:shYq%.T 8l6cHHzY't7WNJY>^/DAWg2}>vJH+t_2Z>oϊh nL-(nJRddxb9w59-w+w,Xww6 z߬J;MImE[uх.3S+s]jgiYըV?Q/gTV43Ϊ7mxsͤ", ޞuA޾KN֍+|.5 Ve vc^ֱRk-{ }M|?̉o/gY3Z7>5h:7ʷ֙^={ᩬٚ;\ ^Ұ]?ԧ>8;HA㶳^&wiJ!0[mY.6cJ ;s"v0:cg:RٓF~l~DGNI*y >p{O0K~y ]X-{lvVXaw#M哈'̫C,3T4ɩ)*6֮2>.]>ypz| 5:Lג7j-Tk2dMwT dVUC8WGlrNo [yDjN>dȯgw^N.v\FǘʚSe:O}3Ź5I WM_=u7qeCbkܓCaFZIo6] ystILUZYY!ֱ}[< 'Uy}Rͼ;Ls/ p/Ńg39ͩ1:zSf/+Lb-ȿizw?*w{ɏ\|w͊ ; ߮c̀kzSAv`mjeOq _uGvl͚Mqzc.az#s,.H0;b,w ENO :?425R= 9`WbokS{zޤMqǵ>MO8`nanҖ-m(Xۥp/y(>תmt^@Miwu:c?һ~sƆj]k/vc$o[DgNSѳgr:E s_QGg5u8~9yODorM>8m.SbtB@!0I"\ kendstream endobj 95 0 obj << /Type /Font /Subtype /Type1 /Encoding 181 0 R /FirstChar 48 /LastChar 48 /Widths 182 0 R /BaseFont /DBAISE+CMR6 /FontDescriptor 93 0 R >> endobj 93 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /DBAISE+CMR6 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontBBox [-20 -250 1193 750] /Flags 4 /CharSet (/zero) /FontFile 94 0 R >> endobj 182 0 obj [611 ] endobj 181 0 obj << /Type /Encoding /Differences [ 0 /.notdef 48/zero 49/.notdef] >> endobj 91 0 obj << /Length1 773 /Length2 733 /Length3 532 /Length 1295 /Filter /FlateDecode >> stream xRkPSGmu5ZAB7@J&5" O˽r!nn (hT#JHtPt*Q_ժ(8şNwٳ[>/J+TTE!@MHU4D"g \9 2 C>PQiVH3`jFHJC#02VP @⹽l/lHqω/pP0ѯR*h?fhxAВ/ʛ{)?FYy龝:,w*㝬;%}.Id{i^T\z {XԵf-ϙEfGܣtƤQq63!QU=5ں;T[ɓ۞&%)P=n٦> endobj 90 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /JUBAEE+CMSY6 /ItalicAngle -14 /StemV 93 /XHeight 431 /FontBBox [-4 -948 1329 786] /Flags 4 /CharSet (/asteriskmath) /FontFile 91 0 R >> endobj 184 0 obj [639 ] endobj 183 0 obj << /Type /Encoding /Differences [ 0 /.notdef 3/asteriskmath 4/.notdef] >> endobj 88 0 obj << /Length1 782 /Length2 1433 /Length3 532 /Length 2008 /Filter /FlateDecode >> stream xRYXYU$qdS4H0@dPH*PTJD6E@ّqin e3 ,VGesAu_c?Bl,Xlp6$3;"D1%ClBQl6cqq@+s[!F6)@nc< \.Ƚ/l})Ԇ(OopB`_R}9o,2E0e;b<@T:*tAC :qt"oևVw o.v["@,T T*$'ϫ_ڄq,!SR4KK  bL1\$D.NgnҁYLmBT`? G_ R>f%5?y14,a2%Պnn5w&v8A h)<`#lg&>T$"ͭL]Xkk:gI荫&AOdrƌõXy19,jRuJI{(pMʾz,8okGԑn}KWLV*&4u@8IygQLYZx.fGʦގKst8z6sĨ|A4ꍧ+o}аQYr2HQ:MB[D~7aΧJj]g_jUav(Qjo|Fl[ecx /yf6ntjl)Jev<s=񡴫K4^6oTVH;b=R /Mz/K+Qed970wVe&ʋl27Z9jQb><ݻ`~~Ӹ]ۀcDe-PjYk4^aۄ}C}Q3+G7^4ܟ9?J .cV&OAMFKZm4,GZ1Zm4+?,]ň;xb4zJZw* IƆ,FLݍ6J_SnǝJ4$z}!JPhWz"÷ o^݈ł!0>-f-DPVJ;kdRԭ}'JeYU(ZW2iq9i Oiīv=}[@EW󱙪JH]ʓn-`wxnjqzfoǘא0[׫x4()9^T?6K14wt9{h ʍ6MiN  4RMS4Im?ugYhjge_^OBod y -J+]tϏK]pWн[cz|Z]V꼭YLa4%?Ay!H+ѫ[u\[)ic?2 O:@99GWCފX3bXvҐJ-gm2Žz\}&22;qKHϖ/|;oETWR,^ֺ,"iڋpgtu  6*g$SCT92 dĮy?FZOnCb@ g.//ii?Tݿ=|Xf_7x'SșOܨ^c{C[_e:啚P@{ڣQ>L,"!^އ;5 oH/ 6 ·P+Lendstream endobj 89 0 obj << /Type /Font /Subtype /Type1 /Encoding 185 0 R /FirstChar 107 /LastChar 110 /Widths 186 0 R /BaseFont /LIHRDV+CMMI6 /FontDescriptor 87 0 R >> endobj 87 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /LIHRDV+CMMI6 /ItalicAngle -14 /StemV 85 /XHeight 431 /FontBBox [11 -250 1241 750] /Flags 4 /CharSet (/k/n) /FontFile 88 0 R >> endobj 186 0 obj [661 0 0 770 ] endobj 185 0 obj << /Type /Encoding /Differences [ 0 /.notdef 107/k 108/.notdef 110/n 111/.notdef] >> endobj 85 0 obj << /Length1 835 /Length2 1025 /Length3 532 /Length 1616 /Filter /FlateDecode >> stream xRiTWՊ(q (KABT$`HAAv B@"V+CG$ ")i"BwX"XVPikT=şysa9F2|@Ph7qDALD0>j,D&j)\V @)\ S CɁPDPhT2p<b2`p ) ðDJ!]QBr-@)+$ 5?ORCA0@7\XMQP t˯R (f]'>^WҰ󴐪}ciwbR\*B˗8T.لmnԲP 8ZcKIvm|8uW4)rIwGUǞ߾>]:ӎV=}4km+3N/9+~tV Z3oB|GF4uL!mEjYau6߹j1>qddˌ˙MM!ȶ??DVWEtuskJ/w?:Z#0zYq,}ڛer7Yig U8Iy̳k$׭Ea4 Ə;4⨋LM 652u٩9$Hd*&ֲ{^=?,*ȈCm.ߣ+f̩xDp)ϼU"վB[{]vo6Z~火yzi̐ROqD+̒ޕB|?]/DG\ fJJ Z7৙KB"e0&gZAj`YɂS,l{X&07OT-]endstream endobj 86 0 obj << /Type /Font /Subtype /Type1 /Encoding 187 0 R /FirstChar 24 /LastChar 95 /Widths 188 0 R /BaseFont /RINNJQ+CMSY9 /FontDescriptor 84 0 R >> endobj 84 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /RINNJQ+CMSY9 /ItalicAngle -14 /StemV 87 /XHeight 431 /FontBBox [-30 -958 1146 777] /Flags 4 /CharSet (/similar/arrowup/logicaland/logicalor) /FontFile 85 0 R >> endobj 188 0 obj [799 0 0 0 0 0 0 0 0 0 514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 685 685 ] endobj 187 0 obj << /Type /Encoding /Differences [ 0 /.notdef 24/similar 25/.notdef 34/arrowup 35/.notdef 94/logicaland/logicalor 96/.notdef] >> endobj 82 0 obj << /Length1 840 /Length2 1525 /Length3 532 /Length 2131 /Filter /FlateDecode >> stream xR{8T.䖄tqs1M#ۥ&BHaͬ13Ԏl.#RBR.HiMQQrr%e8va v2pKFgPbi|-(,B!-IK3  ^8 6*ⳙ r0A؅0ِ0Pa`v$ !)Cl.tV_`Vk* PQzTBp80: B7D}On goYÆ#^tߗC_!;}Al&C رEk[ @XԶ9 .4'6R;@6WF:[;Qol}_|DXl.zf. l. k"B@->fv$`a3A)C\D70e"0zmٺE( 'd3|q!-` swZ5c R[GYZט"Ys;ѵZ^Ex2|Bas%ƳiGFKLU h0^aƔc捠_K8iIgh?eV ][%::yë#[Uʺ'4td'-uH(TnxkvpyA?ȨO1+B:pg q*CNOLieF-$փY7Gc>ޑiKU;=x5֙q[rTo$Qz1e\QwN eD.hMIH7?RJ^ž͌+ f6u2gώYc|u^}~ems3+)o6~ZF9v{&dJόfy$wO,[_rM ~3x#4%:֮qmV/[%>ޞ U+OLm&!c@=q❻]mC]텂i=NqX}AT}qᒨ#haHx.%͌Aw{>V|dlU|tY~/tĥZ,ХoK5iKmG_2}2V~'PLyy`Cqp]9*=ݧe7IX[?iZ߱~! [3"06pŤZR^* riQ.:^I),kj~m닱{\]5]l4'M+jz}Jʼnrǻ2&Z{hqq8}խ!ZwHldaO8kD-^y'y#~X{mDʆd .WC[kGGQ_F&_(8ޓ3UUJWْ\kRmjg WuUpxGe6]˲b+ݠj=G2+ \Ž\?`|wKڥoב|x-/TκD%g?@ ̿oendstream endobj 83 0 obj << /Type /Font /Subtype /Type1 /Encoding 189 0 R /FirstChar 33 /LastChar 58 /Widths 190 0 R /BaseFont /OWJCKC+CMR9 /FontDescriptor 81 0 R >> endobj 81 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /OWJCKC+CMR9 /ItalicAngle 0 /StemV 74 /XHeight 431 /FontBBox [-39 -250 1036 750] /Flags 4 /CharSet (/exclam/parenleft/parenright/plus/colon) /FontFile 82 0 R >> endobj 190 0 obj [286 0 0 0 0 0 0 400 400 0 799 0 0 0 0 0 0 0 0 0 0 0 0 0 0 286 ] endobj 189 0 obj << /Type /Encoding /Differences [ 0 /.notdef 33/exclam 34/.notdef 40/parenleft/parenright 42/.notdef 43/plus 44/.notdef 58/colon 59/.notdef] >> endobj 191 0 obj << /Type /Encoding /Differences [ 0 /.notdef 1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 10/.notdef 11/breve/minus 13/.notdef 14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl 22/.notdef 30/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 127/.notdef 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 141/.notdef 147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 157/.notdef 159/Ydieresis 160/.notdef 161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] >> endobj 80 0 obj << /Type /Font /Subtype /Type1 /Encoding 191 0 R /BaseFont /Courier >> endobj 59 0 obj << /Type /Font /Subtype /Type1 /Encoding 191 0 R /BaseFont /Courier-Oblique >> endobj 37 0 obj << /Length1 884 /Length2 2373 /Length3 532 /Length 3010 /Filter /FlateDecode >> stream xRy<. /IXCdD ; 03=DlIɒG,>))IR8S~s:>o1;<߰Om"`&7{RˌHTo@ t\(B"0MD%!5 QiLۘHCN)(F _דDs8@\=7Ѵ0 -B !H%$B_O[|t:He~[XLDw !C4aoNC|E徫| ټquy ED}I;[]gR &aa1K 9fiee :;IfAoXc< -#4NxƱ/ne](+ Hz;EQ#9Ryǫf[UӷfxGΉe:.^Dz* 1A^Jޒt0;WW0WTRoWx5NfE]~LT~ >2Mڴ촻řqQAT 9[٣/+Ҍ<ue#^vBe!"9bewJ˾ʝ`R 4iCƙ=;  ҚECdw{l6|ڑ%sb.N^kiL~pv3tXZjf[wOlkvʑ3f3>*e\/C)t i_L\ح$]V-6a|+oMs oq;Exĭ R3?o7*yW0UU9V" ZYK>>ܝe xi[WpޞzW)FM=GcT r7}Ac~FhNSSFWl^y%p͜zjƈ)}H޷c!"u:='H)!b*GN^*woi"P,NA?'`JvGWU~YŬp1?4'̚,19XZK =fmTcx2d]%x DX4_R,4Kx.d^?:,EJ#Cuevszx8Q&=sBX|Y]2b6'XȲzٜ|]f{q! z_N-'Z^S%~D4gb(1aǘo`[S1>BD#IS>BƥKlcVfȹ3.% *zq^= OJt¾yq,p:e<=ևpwyѶI׫I|S[eƪHn€벲`z ^Vuښoq pA1faLG w\7{p:;t@zjs=\otDg\=ս<y[M}*>1F0-aǶ);v Q$U\|SQ3Ʈف= K;7GSo O%v}ch&T> endobj 36 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /NQXXXK+CMMI9 /ItalicAngle -14 /StemV 74 /XHeight 431 /FontBBox [-29 -250 1075 750] /Flags 4 /CharSet (/period/comma/less/greater/A/B/X/n) /FontFile 37 0 R >> endobj 193 0 obj [286 286 799 0 799 0 0 771 778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 620 ] endobj 192 0 obj << /Type /Encoding /Differences [ 0 /.notdef 58/period/comma/less 61/.notdef 62/greater 63/.notdef 65/A/B 67/.notdef 88/X 89/.notdef 110/n 111/.notdef] >> endobj 34 0 obj << /Length1 995 /Length2 3992 /Length3 532 /Length 4672 /Filter /FlateDecode >> stream xeXTmǑ A$aK tH# "13 0t* (-%%! 4 HJJ7ys>?ܿuZ湮g(!oc8AT PVKG š0he[R JJNLK ?J@ E9J_"q@Emр-nb($[Ppr ~p nH!D !PhJ/Kh{ W-$ o mM"0h'o`Րx/߶mQN)8X@@b"DܝuBNH@*"+rB"P8= ;D#߾>FZZ7==[g 3oƷ,!B/ĿZY ALT bm)!T0QQ  185UQ  +WH1ζ`I +M&(/Ex(J# c@( ]@|!/Mz>(EE/B~*3F\ݑʀ(DB\X; wbh(A"pʉ1 \:1QQJ`1 ȍ- ]hugi#$6](#M20^tF:NIJ1$߸s+9-bucɥIYw$ZPlEvM\LBp-?x4Y9Lu1Iٻ|>23|:YI6'YzXԋrT\sRlS] R(JStѶBhyoE΁D(.;& 6k&CKEW^| _'PxM!NoF)̯8 %QRz }M3|ẹR$kd~w"QXbGz _zl*355cUֻ!P;XXX^dAqe].P`CD \_|r }$+T$/nm59vt/3[9}]24'ƤnшT%J9HV^ ?}bL{8OR|qh9qZ4"&M-,2<1zgA*Н+n2t,Ԛ)u0gU@Ngܝ7+BW[o};N\F4YM}U+{bʗH 'j$jb9)_lt K*aH]4K,0[F愳lly dQBąMW-A^k 5?Bx#/I[/?gbEg\\h_Z}B0.Gt[BJV[dȭ@Sy,{Oظ.-Z>ACAnBuYyu\+ZDr~r8dRпS@"'ڜG:2r,񩌶X߫YNn4S&(evT[l[/.हT4)pOMkdq 3Q'+2(L"B5bVi`|9FKZq;:N[h[QAyciiquBgT|7$NL꽪&_jh 4bf}`NͰ lg3/o4k6}Yopݑ~r=&Bi>H k"Y/OfȔ*e=Mj*J[Ӊ{X\bu79#|wtez:*e0oIixb}\lmE=iּCDϪjC92lu&/X1^ɰ`ț47-W'7i9d&ȽF/}0!? v=$R,RƴXn&$3Ss*3+o 7o #f_Xz*D93b7 /7bN9s^e_96JM&7] >p#%hS!g7v{K>1uLu5eiEr@[lw%\?ILD6==LuS@;;JT s+-wѱZ]zl|Ũk8"16%?TySj#{l}kP3H`CFZCMXP L~ٹR1s95U&=&C*[zޏkw"7F9VOKY.k [gIZ߀pn⭽PY6h.mr@[pVSޒAD׺Ā>s-T2*g'2!FY$F׮& a )m ORE+2'E.*Nz$ȭAS"k/nZ8]}!.e>{z9l>!A{S{REb OyEg Ѵ 4ø]d0GaioŐq [û`U *Rδ'-ĉZ8"lNay V2It`}#18j<ױd MEMdfZ R&*^8Z6i`Svd\lnq:4ߖ3]rw$Sԫ݁,pN2uzƽ7D7m)||6}{} xaw%r##}f4EY_Z6ލ 9yPʘrjh7n'N<ͬ6"M&Uɪ-_dyQ|95)#E} UZGW69M41 (G哞pu0%8m@.Y3V$DP`J2^^/E1N'lKUZ-#%&|͆K]М0jc# ;{jRfszCCł=X)EJAoU_ʿ@{ ߙ* HK,eM%c%:67%I ev!Qu ~mkEɇP$O #bҭ'@wcSBaEL& ]?u%%YS[=_2愂ƍu\ ʌom2Iڜs4SAd 2 djr^av@F΋E(/F*_!> endobj 33 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /WTLWLW+CMMI7 /ItalicAngle -14 /StemV 81 /XHeight 431 /FontBBox [0 -250 1171 750] /Flags 4 /CharSet (/period/comma/A/B/D/i/j/k/m/n/o/p/q/t/u/v) /FontFile 34 0 R >> endobj 195 0 obj [339 339 0 0 0 0 0 859 863 0 934 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 404 473 607 0 1014 706 564 589 524 0 0 432 675 571 ] endobj 194 0 obj << /Type /Encoding /Differences [ 0 /.notdef 58/period/comma 60/.notdef 65/A/B 67/.notdef 68/D 69/.notdef 105/i/j/k 108/.notdef 109/m/n/o/p/q 114/.notdef 116/t/u/v 119/.notdef] >> endobj 31 0 obj << /Length1 843 /Length2 1768 /Length3 532 /Length 2375 /Filter /FlateDecode >> stream xR{ச 6]R3ߙx]\ά(d'=6!+[PjEq=bYىϓ:mws;Rz,jyU6%|~*>x];R'FN:r%9/,}P1:^%F^ IE  -n";(;Ŗ~)1uesN x\c$"U94'yX91ӳMol%@;r˦V%]UmA?,Sou赝UegS\ʻx Ccgnf{ɲ.U6ݾ?//urS:z_ e1.j^t*ا1bEToK4f{;.OO S֓4Qwkf8[gWZ/KmrxQA |q-EcDGU`#XǼ)˲vIj.x(T&7n!!0M=>S5;}`2ͅ0oM*hKѵ9YepHN5 ^U۔sQ3jAxmHe͌&\jNDoϙ3_Gc58!iDFm4O8t^xLa^ g_4o|;imóupIC4e6!S 6w(8UH{ ߦOdl؁ޫ* dR2 Iqm;}"(+ܠݲbkB%UJ}֞4lG+T޵)xՃqIksX2?BPKVO6f-Wxqr@`d1&lVdk=]KK;-Tgߞul<,.|z߲Wy\']>[&tmx[bF?taeKJukƼǖ_F&;L ?zIS8붾>(-xfbfrȆs K~o0Gl2M؛glf?zJn7:&]'3fX)͉nAҙwV*פdGNUy+a$'5N3&݅$~y-rVQ%`|!xV$=Pґw$S^{߽ȣW9&(${X /=o| ֿ e_yrOfswJPՖ3/{vTs/MSF:u疩IŇ;O&͸}1|hܸTbQ&鄞'P,sCs_Bz? A,?Pendstream endobj 32 0 obj << /Type /Font /Subtype /Type1 /Encoding 196 0 R /FirstChar 43 /LastChar 61 /Widths 197 0 R /BaseFont /WJLMWA+CMR7 /FontDescriptor 30 0 R >> endobj 30 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /WJLMWA+CMR7 /ItalicAngle 0 /StemV 79 /XHeight 431 /FontBBox [-27 -250 1122 750] /Flags 4 /CharSet (/plus/zero/one/two/three/equal) /FontFile 31 0 R >> endobj 197 0 obj [877 0 0 0 0 569 569 569 569 0 0 0 0 0 0 0 0 0 877 ] endobj 196 0 obj << /Type /Encoding /Differences [ 0 /.notdef 43/plus 44/.notdef 48/zero/one/two/three 52/.notdef 61/equal 62/.notdef] >> endobj 28 0 obj << /Length1 1287 /Length2 6628 /Length3 532 /Length 7449 /Filter /FlateDecode >> stream xtuX5 H- 200twJIwwJH7! Rqϟ׹\sk]z~_zju-v 0" sbJhrs9$Rp5N " B03a>=P fr2I1 %l!pkP bAZ05ɝ(5Ԅ8B.09!v_,`@?i_% GLf "$fu!NUb5"X6uBUlj(ZC[wv*00nol* NfPk%vvխ@V@ 3#bwD#QS7svFtn4B!D|zd@0%hӃ@|@On!sr=Z_ Df?g@Ngl9!p7Nif`}}ƅP!vP?g3D{?C9av1: MGh ΈqAlB9 dqB1Ϝf Ċ Db߈ 7 "A?Í$N A7"7X7ȏho?gII';ш?_ yR 8 ..D~ g8ȝx 5ɂ@ 9H$urcHLD: eSj]G oEJ,iqvw\o#ڽ4dbSfy韥o\5|?CVZ)M0(WsPsW찤 wZ<h/>VzRA*c2yBQ&L嘭]jі /UB!I\>"}`ҥP^R/ݺ߱nSnKtj״/'=qgJh=^Ix9?]dQ3/E@ԫI 礌?ݐv^7z>r;`Z,jOp gA@$` 4 qzSQ*CVϒFWݰ#,'`ct+eGbLphIal|SMi9!X9-)}Ozr\e"AfƓuRa7#4$ӡy{z~iׇ$7x="P=BOB<#oڠX)dvH[co" z !Z 5y@[W͑=v>W˗qS+-R/&?ؖ!%oά=X#+nf0;Xyĝ(L}`&sUbm_I 2ȉ~G=Xǜ6ƧE׀t&{[9Fb76򀮹vfxKUPw]ZrR3w+gzVx]f+sdokZ놤ۗ -Yso܄A37CAlb L4tVͧbAԫ &fyZ̴,jlP׮Da˕4-Bϡl&ȴ-Z?GAn:2qoܗ:WD 9]P}bI~nE}ɖ}+gi]wp21bšFYu[29eh7czm jEr:)T/>: 1u8}j}S>4U/(7 `?Sƾ;1ʽ¿fI] 3?/0@%UV ٯ Ps!eEIUCLqNdz5#2ςqtnoG(Ayc@OԞE~(< {R0mݝbC>NɒM EXk؇y~ogjqK f:}o{? @R.- XZf˔4ui˰#~6Zfa?M J$A#)ul | q^cc gs?$M}NU=I:S:#%Y6 ʮ8oTgԦF\ue]E%~Q7kYd=fwc/[ cMٜs,8iƹ7 |Rvk; ђ~hN˗fo7~QKҳ~,Qq^RU5<r(+t4K]gO/g+?jD%}< }n+:.6: r#d`$.T_=TF}{cEHq_+/$`1}iTj3~G,!֕GB1Ÿ(ؔO˿=͞#-Ug2䍲DJdI;JpdD5M>r|#%%txEڐ=zM&}AzPAm[>5lgw=ըZ6L3M[MNBh6Y.u_4WZ *%OnZ^UމMc/΋l!U]WkxЊl<׼ ~ֆNqZnT~uTyr^6eTL{$ZhVU0bQ?Y{SGy€xn@J7W:طf~V WMa cQ"{ѳRi_}\:IBOd>wܘ;xGzx@ϑ4V ۉI]B(65HwZM%.Ƽ5#PQwEL }c<Ֆ|KD2r))>R :_ v@?J#w^&}z6UU ñl;ԣ3X? :w<61qBos>gt ,u0:8;"P )ڟʷdHL.$~B U>R_4f$x14:A}kJ[Ul|E1~+kh$yVH[4_:Bnہ} rZi.Z${J#/4UY@b5i3=mٙ.( g˷_sk=[rgtZFCWu'(0^n*?q:jë̯ jr?2nٚKb d̛2#E(T e8-Vg).ޤӋ$VWkAZ91QwMu@d1i{m5 P\BH4W"BWő"ܧ䓄Đu(~xr;AY&O:{3 PGoKŤ-4Ukm)Mf-嶨6Q;zO0Jn2ao(U|\i{C`o{KD٣Oӭx S[o{1a'Yt6qIiQVǥ^wX9-8YJ5xjC *}[-C [ƆR We(3B}3E(WeB16Ҋ_h3+ ƤMoK2UPeH=zFǤ޸ @ڵrhf  f^k[CfE_Rռge{i R&i\CgqrK.pF~V?ado(~)n~~!`b"Aڪ-_~``w!W |`{HAM?j൭ {FСH?Ȍw/@,vvCC0X7T9v>wk;wxԭ;w&a eX=eq|+ B$H;~B8K]#Ćg> @8Yn֝wkz{ ѭQ$8QILǡPfUoL;"K2cq5]٭ͯen&T7??> &Q\>|z'25(|^)Q$dI b{!Y=j3~yr[-禕C˹ q1;BqCn4cB;^zS][ Zό%Tcӿ~2.e4 @,O۲z'G056®]C_x7[*DaQSxv/_~)͏+׈ ory&+Q|!$MCqG5 ;D2d"k7 ;.g 2}!ZDC3:#igEL5o8!-theT|bƭ5.; z:*`]ܪ\t.fCt MXϓhf9'{d[x.q}IZ>{0𬩩Epsu*Z⤗YmF i:yvN 5%>sG]X{l? >"gT}1!@ʰ3vi !B=I(k9{o^S ^4yk:tO/4oxHR|-0ɂa#Evm'Hx@XP岵mi(Դyc,|W-%hɄOQFfeg|˟Ky{jV cS%g}~'f\2GJ09\wX㡆[QH0$N}I??y=D6ȝ̆[z=R~,\~Dži~7ow<b3lrXmM-\e/OQY(,6g'4\_'>l\u:ԃ5 Y_/P 1Zl?hJ\qB¸(VXٕudcOqaIAk=.śp4>APcGM!ӇA?&@:Y뚶0"YvԆQܹT{S|ס܈ NsWn)Rl0 @jUW{=O雧8İûe-=YZpr!`i :ڧ;ף1-Gj+dU 7&67dWPMj'CqM)8"@,5WkΩNx}[9h76g4YWu'5<ΊSOkiD*OGeD6-[GeZtm޺GuFm'-\qso{}NҼo"wƼ;Q'z֭mIPvE!)׿e+,:TEx~%Φ W'V,{0R5*GMuihW<,*$Za!]NPMwķx~ k-^B&^nH֩ϡ%cO>X{N4[Υ*,zalOfCc֩Cq˻cڣoI}1(JH`UJ*8@q]: PN17q^̑YG!)޻ !Hyu!~XYGګ, jZn|Kc+z5C8#)P-)byT*cQ0F;̸1_ao3zjt{q餴&NQTcVz5޼&F'2{Ly_I‹&K˜L W3 n/endstream endobj 29 0 obj << /Type /Font /Subtype /Type1 /Encoding 198 0 R /FirstChar 33 /LastChar 117 /Widths 199 0 R /BaseFont /RJUGXP+CMR10 /FontDescriptor 27 0 R >> endobj 27 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /RJUGXP+CMR10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-251 -250 1009 969] /Flags 4 /CharSet (/exclam/quotedblright/percent/ampersand/parenleft/parenright/plus/zero/one/two/three/colon/equal/at/bracketleft/bracketright/a/b/c/d/e/i/l/m/n/o/p/r/s/t/u) /FontFile 28 0 R >> endobj 199 0 obj [278 500 0 0 833 778 0 389 389 0 778 0 0 0 0 500 500 500 500 0 0 0 0 0 0 278 0 0 778 0 0 778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 0 278 0 0 0 500 556 444 556 444 0 0 0 278 0 0 278 833 556 500 556 0 392 394 389 556 ] endobj 198 0 obj << /Type /Encoding /Differences [ 0 /.notdef 33/exclam/quotedblright 35/.notdef 37/percent/ampersand 39/.notdef 40/parenleft/parenright 42/.notdef 43/plus 44/.notdef 48/zero/one/two/three 52/.notdef 58/colon 59/.notdef 61/equal 62/.notdef 64/at 65/.notdef 91/bracketleft 92/.notdef 93/bracketright 94/.notdef 97/a/b/c/d/e 102/.notdef 105/i 106/.notdef 108/l/m/n/o/p 113/.notdef 114/r/s/t/u 118/.notdef] >> endobj 25 0 obj << /Length1 1082 /Length2 2568 /Length3 532 /Length 3310 /Filter /FlateDecode >> stream xSWXi *JP0$ HM$$9tWCC YFA( #QTdT%#HTQ$:~[R{{oI)bɞDS@  aII} $4 H@ UJC~A7 ?EBDǠI% ! ؑ1xt v %8HO Oo92%;H*d L X2`A܊ !' S +4qK[-& A1D?: d,H!Jux:׬) MctI^P@*J*x>io&Po8Hjj7#p;#'+c-iƓhA~ #P(@ C z|R̐!c$/@QE@S( hHFx @1F"Ӡ#ԚPGplx~!N?0%BS}yB ӡiUT<4 4' (d?h{TSzKB!0?`H$D7 Ҡ[j*(hENCdL@dDC#O +A$r }zz`Eu@A] P*Jt 頩t[BM>` toZ?bZG 1}dy+QaE;Zg9W㱡v*żh9Yq |=f͔rXK'n]R{atʹ)'=k}Fe~ oٛs~2ܷ[ jm/hSW0o;_ZQ=8=KSϦOc췾T8/-~Ar]^'F6?6جO!ֻ97# [L(y YB +1U-ڡy4`nj7*Y`~֊_l(̼.aO_-gkw[ub(Z+S| }9m{w∵FmiS~?c.J˕HqyNYBKN+gORenE(?qB!8#ʇwrZKEn|!/N%Ůd<.Erِ5w28Iϓړi.u6sx݇ݗ{g-S#1ʹlOOYIl* PŶ#: m#'Cþ#D MaNd,oFi&} Ef`3TK_^lِcԘU+=_FvS m+?vd„ji]?s6emڽ|d۴^hޓ\PrEl>I뺞4HӌpaZ Af`w˙@T2\& LqۊMނXRu$ Յ.>68~Qj;HMk'VLΥf39qDi1W-~7y)}u];U]__]ZXX[^t7UأQ>g4rۗn-ذ.6˻M+lg޼rxǶ{>Ksvu\ac.rañyl#[,^ZjQ۞&']Qj[mRq4$6#}PQk?<_р2m9$USXftfw8 菻3Vc0mp3^yiGRb^$ƞ=ʂO?dopwWg#(%b`vν3n 7۪p_-ۈ+$w6 )Ӑ\xo`MRwc{2G$N8g3ckMv> endobj 24 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /DSFWNG+CMSY10 /ItalicAngle -14 /StemV 85 /XHeight 431 /FontBBox [-29 -960 1116 775] /Flags 4 /CharSet (/minus/multiply/asteriskmath/lessequal/similar/propersubset/arrowright/element/universal/existential/intersection/logicaland/braceleft/braceright/bar) /FontFile 25 0 R >> endobj 201 0 obj [778 0 778 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 778 0 0 0 778 0 778 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 0 0 0 0 0 556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 0 667 0 0 0 0 0 0 0 500 500 0 0 278 ] endobj 200 0 obj << /Type /Encoding /Differences [ 0 /minus 1/.notdef 2/multiply/asteriskmath 4/.notdef 20/lessequal 21/.notdef 24/similar 25/.notdef 26/propersubset 27/.notdef 33/arrowright 34/.notdef 50/element 51/.notdef 56/universal/existential 58/.notdef 92/intersection 93/.notdef 94/logicaland 95/.notdef 102/braceleft/braceright 104/.notdef 106/bar 107/.notdef] >> endobj 22 0 obj << /Length1 1382 /Length2 7903 /Length3 532 /Length 8756 /Filter /FlateDecode >> stream xUT])^][-"Ŋ[@pw+ ݊{qV9W{}Ϙk0ѩirX0{N.Q"1 9, rx@!Q>Q! & be`cH cv* k| s 3]<2P(@7`g؂ `1w 9)[B-\r;9åk0{'l w]hP*˃ P9*0 S[@\3Be쭠`'?8YP[,APgqyڿj ]7f  /d^؛, V^A ?Dpx `nesO` sk_[ :X p]~x%P nkFl3B3P0^ p~+;;{;CAֿ#p=|wWe~V7 ~\In?ܿDf/3-@6;[p;׳]m@x[k᧊ |L ?[9mrVn^'0oN>^'B@= ;jw ~Ŗ= 0s亰b%(lT!m5b\+bNcZ`SP|H)^ґgn K5:>oMy>l"4McCc.\ȝ-zEU6 =(3?[ $ fDjKX.l!0aۤ2v,T_Ol#<鶴 "4Eѩ?($Ru%T~oNlҥbM*&)(,&0/J'o ߪT"PȤazst|ntwrܛQC8]ʍmH2GNqRX~k7*x -`XKLE n{oy VL[8j;r#5267eI$ Ĉd 1 q֭>7ԥĶǒ RlSpj{ @jS*3. aITO--V*<yX"ROLCeSUd/N.ǔIO~ۍ嵉ädF^w?u ( $ǐ/ wJR AD6[]$t?3KWtl\Ks[jyzQOo,sʈ,eAV d}*_ކɻ0W&ismKҹ(_k2+A!_%m]8fL)~ZVӿ̾Xu <YjSTy4L4%tPYOstc$l#A9|S㪥W~=*.@(R{lydrDžI[%/;eVk\4BP ,?jdFyqŨv"or7]~u*;߿fov%xw$X/WÈU;>4*{>Dҭ UÑg9t>ٞ {zsGtH,KwP^YPẏ9@U-_Eh[ic--z~&9PY*cɠiCEͿS\s\!+ZBreby_3@TLҙvwބ\Mgi6e/GPo>? " n]Fí{zSkW3$lm0 ~G8xVbECyDH8QVwd) 2=mꔈ"n璀@bU Qȯ4~t*سYRQ&c,9Ѹv6[So("vdwV:+a<[$YU1[dss` <•v G_K [O)5&Sr' 4{f& XOJG 'ay#a۰8*CRq>1 vI]Wܜ.f8DEp'J<$Dٔ2m~E r-`s_E\G2~e"/AIN-C,ҦrAh͑m=J[>y|qdt7;l~J&.$CUh#G$QK/m^)ՇOߐ2yPo*^pVކTb=|#]Faš@lZ^}9efe-卾JzO *$*xB¾~ܸQ/*VAlY/ >ˏ.̯'RJx!Io! c2avďHP%#uOthqeJiw&PHCW h=&:Tڴ$2*L㵴Nf~ JAխ {HNg PX>M2%\ͷ{sqb6<1V@x8i#<7! (E89nKl[wE`uE0^O(E-{!n(sH5M6bw |'H;' b"X0KpΠBc&̛ApA+R'h}ِ.Yz ju~T(kt´u;+r2>/yY/wG-6e ƴE:9Ndk%^o2S\tdxe4Y4erh$ϫ/ ȦJ╄A A[lfoC(#/((g$PoT1qJ/;NeK݀*hcZKAtzGd8Qn5eyN 'گ#wQNv$ȃ5~K+"ɍ F~fRFmxe>>#fthQt?Zpb7:st |ShUFfDMŲa.}b6ʡOSjgn S 5Vxئ6wS+sIgYg&|Xш*<&7T7ӕ4v欘c촨q~:ݨ%_Aۘ(zI_Z̆ySD)@udUR}(3bBzܪPO\0ngƗVaZ t,\XjFlJ! HyJN<'6>EuC taLsx_Pt^:|m ^:979exA[f25>*Uf앣Ό XcRڟ6j U,_HԊpiT<`فε:g?ahBM읡S=D}#w`)8u $.$! |ƉAe@4gf;M-O;L)^)JXf/u(y _Y薿` 5^^gCʤ8CzC58F~PA^Xo3.Ku%AJ˔ɩS=KcԻE$z/. Zjw_љa_k:j*E|g "\>O.* CXͣ-;\ -xy~O,6asbZ)e@A<0$BOA**p;Eái;V<#lv{sިrZfEq kkUY$^cȿ"NiHS904E821a#$1d7Kf̟yLvH]W7f@SwPgȪD%Spp[4删0m j+/ Y%B}m#~Ե*Y2-0R&70N z첺Ǵ<1-*B]."'QYdaqwX\v/; M4oPK#r_DN R匵م,r.&rn6tR8m|7l4h[#*ȣKGhM1/y u]hYoDoa1*7h <*b@ft2.WRJ#4H9Ԭ&2TB7@y Dfدj1ūa`a!3.<}::_ԬJZ̀e}"mUE+9#u| |dyr7ӧtUjYKL!}NƬ6N aւ4Ƈe8Bh*\"'ԕS ~+N)2|浈џ`"4I;y-E0L%u&Ց)j*VڌaG_>Đlep`rď.;T|HDQW2iR,}Cȱ3Νr[00e_AfvJEJdP3DǛ`McPރ/DWoI8Sz7. \@}휕ho.ɶ'7Lq*" Jvc% _r P''H_.U~ O(qw<|]{^$HܢKw\m#Uq̞ zJ*+N `iD!/:1$738 h$(mRnfE,0) M%OxTi!s(<֒QI4^^Tei͘ ǖ؁6z%:X#זM}48ۣ<~gfq?p@Oәf6 'e3;K/,>}VûQ(cB> I8C@l7Y"fVuhXIҿ:^|"urx2ICAMY4'kh9>#믭4"ݢ<'C^¿$?\U-'Z}z9WŪ=wT0BTO:;j1? 5r_sCkuF%fqWEe#W#!O12/_`wlUMx<︦?)hSIT70ڼdL5~fgЧ蔏,ѽG;s8` uԪSƷurn;|E}oȊ_35ҹ9;V9+c/~3>CqP!"oy0l^\-gl9R=oTG;6=eMҷY7q%ޫBM9r=3<\' ٶB>Wl4 Pdf< g Egݮt`>-y=p|ohZtD2wݺ=ng=WSus#K>Cٕ;| 81!l<$ +ٛ>K|t &a?ir!Ήܡ<&TӎS˜(\u k}"d:8RV-dV˾\v2ͮW_7P 1 | >40Ӆn$`u+aZ%E~M{Iϰ;s'gj3r5nt.CcK>:J=#`.jÐ9cꕿNcC}y4E#ٻj悯zqڸxY{XF(Z_8Ӟۧ4.zޤ;Bl@ ޲8WU> F.MoJXԭ:Lsɭ~d\ٱu;s5~w|hNկ_)ghk!YoG(&dz=&u(Ƹ=,`#>~1M%`|f, -'1Q)Byn;ɒ&k QRK, je,M$C3 b U$#/'&V9[2]4N~/a׼zs3"_rdΖ3"e'sǓqj!dkhy?wr (cq8F%̈́jo$u9qLw`U!BM _]<P)>9`"uYk~'/1\b68N(DȈ~ҨUX> endobj 21 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /TQQBUF+CMMI10 /ItalicAngle -14 /StemV 72 /XHeight 431 /FontBBox [-32 -250 1048 750] /Flags 4 /CharSet (/alpha/beta/lambda/triangleright/triangleleft/period/comma/less/slash/greater/star/A/B/C/D/O/a/b/c/d/e/f/i/j/k/l/m/n/o/p/q/r/s/t/u/v/x/y/z) /FontFile 22 0 R >> endobj 203 0 obj [640 566 0 0 0 0 0 0 0 0 583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 0 0 0 0 0 0 0 0 0 0 278 278 778 500 778 500 0 750 758 715 828 0 0 0 0 0 0 0 0 0 0 763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 529 429 433 520 466 490 0 0 345 412 521 298 878 600 485 503 446 451 469 361 572 485 0 572 490 465 ] endobj 202 0 obj << /Type /Encoding /Differences [ 0 /.notdef 11/alpha/beta 13/.notdef 21/lambda 22/.notdef 46/triangleright/triangleleft 48/.notdef 58/period/comma/less/slash/greater/star 64/.notdef 65/A/B/C/D 69/.notdef 79/O 80/.notdef 97/a/b/c/d/e/f 103/.notdef 105/i/j/k/l/m/n/o/p/q/r/s/t/u/v 119/.notdef 120/x/y/z 123/.notdef] >> endobj 19 0 obj << /Length1 907 /Length2 3082 /Length3 532 /Length 3733 /Filter /FlateDecode >> stream xWy8T'(Dٗc}cHD0h$130d'MHٳf,D)쑥Hzz~_w?sߟs/\9p%#4#IJPeQnl UԔYYD zzT]" X#IAhN@ ^xx$ D'u=8NĂeBzaH XW `5>6O !eԢ}\un{L+; ּXf0{۾xsi;3 ӛ?KϾ P)\A+9`Oubuo::їݦ~Gih$u[l }9r)Ib"V< w4okߩd!EK%+~oepYKKFN,KMzާ (uN3M/k ar'm٪ V\ %;1_b J'7U#Fmj>G)D _)g fVZs|+O rD7׵P:H8uʓ 4׼[[>d5yzkMhbG~Mw 7;qySVzT}߳ԎxVj/cݙ ꢂIFt]5kHv-a/%Gzy0F3E"ߔG&"E֞|'CK/>wfPuӉlvϚ x"=S?K:C?\|-ӭ#]BdhEVIӒ*:~4Mn3teQ?0գ3O4NXl{S`0bIb/rKR}D<,7]ΐ%tɠ&R'+gh3 ޒ_ fOp|MDa{ {ܬkZqH~ꚜF7wRQ^`eVY$I-+m\Sҭf Gދ|-]$~˫JcBŠ̘@⨾,Ugqx6:I@gF3?/-SywYDVBww9_G\f|ƓN*A ŗw9ʤwSf #-\ͧsM A,jt&{M"-5ӦNWPOkap`$'[(˖ Ӟ|Au-^yR4`UvK'~xv[䂰NC#^MQH߳K%QŸ䐨eɬLk8Eė~DLoĹv(hqM~9{Iwa ncef)jE}-1> +[%|yͲ&W#d)uۻ=d<^T@04ba<!'\Sq&0+,R o(y'S &O LԴfhr2үȵaaȟ.='O\<RPh:PH<֙|b> uOvDmpaዦ1ϥr_%W?eS=_R5P8lw3Z\P?{krՃy63aS7%{:P6bl|Fp:|8jvbx0A%J*Hy])D:B9tfzYmcvy b <03i.6{V^L:q@1 "30)",Q&Ӄ Ќӿa6#]Q۱?5vNo_VzUWiv_-em[r[IZu??$h~}>~?j¦=}#N!?lc؇=9vY0N0 N(z6=]v!A?"v'w?~q> Eq .fRu] 7?roY5{_Bq*AJ\qKف-%f||19. kS徺x̹ieskwq_|ג{Urڌٲ>"7#?nrXEZQF3[9nVϻF:Mxjs7:O{:+ED' &(F 0 /6;ҧ!J[J88(:ƊQ'{-焙bT̬LK3QwD]{4p-x68zTnaKgT@gjU{ ze8 eUio_. !^to9C7I);k V]ډ4(o@W][x@$DE} endstream endobj 20 0 obj << /Type /Font /Subtype /Type1 /Encoding 204 0 R /FirstChar 66 /LastChar 90 /Widths 205 0 R /BaseFont /EGUYCU+MSBM10 /FontDescriptor 18 0 R >> endobj 18 0 obj << /Ascent 464 /CapHeight 689 /Descent 0 /FontName /EGUYCU+MSBM10 /ItalicAngle 0 /StemV 40 /XHeight 463 /FontBBox [-55 -420 2343 920] /Flags 4 /CharSet (/B/D/N/P/R/S/Z) /FontFile 19 0 R >> endobj 205 0 obj [667 0 722 0 0 0 0 0 0 0 0 0 722 0 611 0 722 556 0 0 0 0 0 0 667 ] endobj 204 0 obj << /Type /Encoding /Differences [ 0 /.notdef 66/B 67/.notdef 68/D 69/.notdef 78/N 79/.notdef 80/P 81/.notdef 82/R/S 84/.notdef 90/Z 91/.notdef] >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Encoding 191 0 R /BaseFont /Times-Italic >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /Encoding 191 0 R /BaseFont /Times-Roman >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /Encoding 191 0 R /BaseFont /Times-Bold >> endobj 10 0 obj << /Type /Pages /Count 6 /Parent 206 0 R /Kids [2 0 R 16 0 R 56 0 R 77 0 R 100 0 R 113 0 R] >> endobj 131 0 obj << /Type /Pages /Count 4 /Parent 206 0 R /Kids [129 0 R 154 0 R 167 0 R 175 0 R] >> endobj 206 0 obj << /Type /Pages /Count 10 /Kids [10 0 R 131 0 R] >> endobj 207 0 obj << /Type /Catalog /Pages 206 0 R >> endobj 208 0 obj << /Producer (pdfTeX-0.14h) /Creator (TeX) /CreationDate (D:20040615160400) >> endobj xref 0 209 0000000004 65535 f 0000003778 00000 n 0000003666 00000 n 0000000009 00000 n 0000000006 00000 f 0000286179 00000 n 0000000008 00000 f 0000286089 00000 n 0000000058 00000 f 0000285998 00000 n 0000286268 00000 n 0000008893 00000 n 0000010971 00000 n 0000013042 00000 n 0000015055 00000 n 0000017176 00000 n 0000008778 00000 n 0000003868 00000 n 0000285545 00000 n 0000281534 00000 n 0000285386 00000 n 0000280543 00000 n 0000271507 00000 n 0000280383 00000 n 0000270524 00000 n 0000266935 00000 n 0000270365 00000 n 0000265912 00000 n 0000258184 00000 n 0000265753 00000 n 0000257754 00000 n 0000255103 00000 n 0000257597 00000 n 0000254497 00000 n 0000249547 00000 n 0000254338 00000 n 0000249004 00000 n 0000245716 00000 n 0000248845 00000 n 0000010871 00000 n 0000010950 00000 n 0000012942 00000 n 0000013021 00000 n 0000014955 00000 n 0000015034 00000 n 0000017076 00000 n 0000017155 00000 n 0000021317 00000 n 0000023423 00000 n 0000025566 00000 n 0000027761 00000 n 0000029905 00000 n 0000032419 00000 n 0000035956 00000 n 0000036420 00000 n 0000036944 00000 n 0000021202 00000 n 0000017412 00000 n 0000000079 00000 f 0000245621 00000 n 0000023323 00000 n 0000023402 00000 n 0000025466 00000 n 0000025545 00000 n 0000027661 00000 n 0000027740 00000 n 0000029805 00000 n 0000029884 00000 n 0000032319 00000 n 0000032398 00000 n 0000035856 00000 n 0000035935 00000 n 0000036321 00000 n 0000036400 00000 n 0000036845 00000 n 0000036924 00000 n 0000042585 00000 n 0000042470 00000 n 0000037220 00000 n 0000000000 00000 f 0000245534 00000 n 0000243270 00000 n 0000240863 00000 n 0000243113 00000 n 0000240314 00000 n 0000238421 00000 n 0000240156 00000 n 0000238089 00000 n 0000235802 00000 n 0000237929 00000 n 0000235480 00000 n 0000233911 00000 n 0000235324 00000 n 0000233605 00000 n 0000231680 00000 n 0000233448 00000 n 0000230906 00000 n 0000228154 00000 n 0000230746 00000 n 0000048364 00000 n 0000048247 00000 n 0000042841 00000 n 0000227777 00000 n 0000226197 00000 n 0000227618 00000 n 0000052539 00000 n 0000054518 00000 n 0000056449 00000 n 0000058454 00000 n 0000063209 00000 n 0000075155 00000 n 0000082554 00000 n 0000059903 00000 n 0000052421 00000 n 0000048550 00000 n 0000054416 00000 n 0000054496 00000 n 0000056347 00000 n 0000056427 00000 n 0000058352 00000 n 0000058432 00000 n 0000059801 00000 n 0000059881 00000 n 0000100485 00000 n 0000110180 00000 n 0000121006 00000 n 0000136185 00000 n 0000142955 00000 n 0000139496 00000 n 0000063090 00000 n 0000060159 00000 n 0000286379 00000 n 0000075052 00000 n 0000075132 00000 n 0000082452 00000 n 0000082532 00000 n 0000100382 00000 n 0000100462 00000 n 0000110078 00000 n 0000110158 00000 n 0000120294 00000 n 0000120374 00000 n 0000120984 00000 n 0000135623 00000 n 0000135703 00000 n 0000136162 00000 n 0000138588 00000 n 0000138668 00000 n 0000139474 00000 n 0000145926 00000 n 0000169735 00000 n 0000185121 00000 n 0000194478 00000 n 0000190665 00000 n 0000142836 00000 n 0000139794 00000 n 0000145034 00000 n 0000145114 00000 n 0000145904 00000 n 0000169632 00000 n 0000169712 00000 n 0000185018 00000 n 0000185098 00000 n 0000190563 00000 n 0000190643 00000 n 0000211245 00000 n 0000221750 00000 n 0000194359 00000 n 0000190887 00000 n 0000211142 00000 n 0000211222 00000 n 0000211574 00000 n 0000211654 00000 n 0000221730 00000 n 0000226093 00000 n 0000225974 00000 n 0000221933 00000 n 0000228056 00000 n 0000227990 00000 n 0000231445 00000 n 0000231209 00000 n 0000233826 00000 n 0000233802 00000 n 0000235711 00000 n 0000235687 00000 n 0000238319 00000 n 0000238287 00000 n 0000240718 00000 n 0000240546 00000 n 0000243583 00000 n 0000243501 00000 n 0000243744 00000 n 0000249375 00000 n 0000249233 00000 n 0000254906 00000 n 0000254731 00000 n 0000258046 00000 n 0000257976 00000 n 0000266512 00000 n 0000266260 00000 n 0000271134 00000 n 0000270869 00000 n 0000281199 00000 n 0000280877 00000 n 0000285834 00000 n 0000285750 00000 n 0000286480 00000 n 0000286549 00000 n 0000286602 00000 n trailer << /Size 209 /Root 207 0 R /Info 208 0 R >> startxref 286698 %%EOF faust-0.9.46/documentation/lac07_graef.pdf0000644000175000017500000037325211702130733020277 0ustar orlareyorlarey%PDF-1.4 3 0 obj << /Length 4051 /Filter /FlateDecode >> stream xڝZ[ܶ~ϯ8pxeQw(PǮ 6pR;$(x$]i+i}|7C겇Ѿ(rDsf߿K]؏4zRy4ʮ$0SW﫟u(iwכ(Kk{tHzě[ݡp^_^xdqI‹gyr?O~vOyZ|u_ _Azy^L(?SI~Y<{i̗knEEAz>&=ni0ޞvGMccSOuփt:u{M =Om:ͦHyEy4q0WIBAA?V7j׻C",H|Ăg|p4VNyJygslXүjnTiH~v;@NW]ϯ HeBm{oHʽ}O$:T/]Kv-Tm}g8]cIuܥQ]y$˙WXQ1Eo-cC *Ż4v>`0xlwֻڵ\̃t/Ks1j.+h=C? 4EDSXweG,M.~3+& Oӗ!mDli [j^o,!(M%I@7gs#O_=qu$\C5^ =іnC-#c'OfVxWd//>hsՈPwK퍋rdF U"jH 9gl3ݖÄtoawRΕGQc(48W}x*a  vc4M{L@2x6K-#HMXdxovlLHPx#{E?v}pJ[dx>g|hFSnjYwg÷~e't 2S.O!iq'mNErqZU͋9B9Qm̼+4$LqIH8OrOr8phܼ߈uk:Ng''}<s^0_;R _+ϻr#+x$T)aG͎ Ckmԋ_r2%=cdD4/ lvЮk`;@ Q$E1/ \8U  Y$ӹ$cj)(A1~Em<5L^Q AeRJ+7OMݮj. ^`zW\Q<1/ΘuyyBnZ稴?ω(8∴g.:w*֣<_˵L3Q?RWgN&H-'$bF$0LP{tc`+A%"0GG`-=oA ވ}"n{Q:ܺ[S(W"Y* 1f0n]ԟ<knQ6,坎kUǦ-vQYO(Ś ͛gE.={"KaeN;^\%O{OhV`mZD#gcL7gdACK*2眝Ț)b.?̨<u 1L QN3>׉, &, R?wMQEqe{S9UŅL5XR2ӧs_Wīߴ5$yjBFUF#8cQ.:WB.t`'ȈuKݱ_E6Ck;1ŮʳO٥be*\ؤ\|CW\(7f W$+bz6qq*c_x Gj+=c 40f j=UO( ؔgCͻZ@cI#֑N7;aUU"dW3}uiCuR@Q $]d~XD-N0<알RKDDI.ҝ5 ?k犍K]rz<6~gYyRږ)ʉco{-x(-I4#41e|;Lz`r2m[ġFK|>@W?`OT^' 2~41~ől_hq6"OÿpŰH?9I8Zhuri̘X#vqa]./bUxiR'jݹ/x'O-TԹq*ln`CjhV15O|d&=Hݮ3O s϶uWI?IyKgt&; R_ԥ\bb&lkCyqmɲ> endobj 1 0 obj << /Font << /F17 6 0 R /F18 9 0 R /F8 12 0 R /F28 15 0 R /F29 18 0 R /F31 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 25 0 obj << /Length 5109 /Filter /FlateDecode >> stream xڭ[Ks丑ϯRxY{;vػbI2j|߾R(ibw/U #3ew~>,Z}rPi.y&>|95N2YN%-? -<*iJ~l\慩~X(9o_~]ҤZCF#?6SuZnyb"C;Ýi@HX:-urQI7tstNFxh~%m[T2#yZ̼mm̚BLҲjכ& f[d& W\1P|TF䝰Lgy.]QL*G(,$u:Oн6nR735v0N\~L2͝u›e95688/7jhǬ؃{&S@ٖtPwv mpk2~@uh_cF [.܆Mz`M^f2eLh#CkLJ#$s?j >Zka 78АgBbfcxwV9FP$"h c`GUlIK0/F)RnNa>Gz5V*00n&CmAUk6djdYY1frV KԱ6HllnF|IWj m}6UvD` ~L]EDDWP+m)qLjş܄dE' K;ͷ2o{A4'AXSgh(xEo8nGп$>}#I,צpl%FqΎYL҂-&O~<w/Q[+LSlK1=tKU<.(XLj*zŝ^΢b١蔴zE[XLܱ$?ͮꋼ#,Fl:cCKM)D\s`[z65~Wck's[C.yi(NFy0a/煫0rF-q+vDKχ'9xo#y'zS|k9cXvh Qes#b,Z`6 X$qOnFjN lDwOA c?/AWA_9Xj7Dѡ[S > p$Ppc;h7&XT_KL.U[D$PlB"/ȍ+b"R[ d=F}Zøx?1"QE:"/|arVpr?KF&}6 ǝ`؈' ughxi\⒘q_]-Y_ 0E.pic)0qvq re"#SKAC=FIQ7 m2`8s-jF.^rBK6m_Zߏ4-}zvhbDEnYסb`rw*ј-W&K߰_}7\bwCH nZ-8p-T]GLɜ6cFJpR&xZ8SDZUcRxc:>>XSJ(Ɲ$x:ՂN/i1P&w3-Д>}F/3WŒOBD6dG h&/;D Jy٪TZC ȴMkms"3?k906/Fz%G$m4R<|T"Yu;Bv9bWX,8N覎 mG:N3FM1M7dݯCc2;5r-pJ1χ !6,KpEi. HT;9D:!S ȁd0v4g0炁">^IRfHp&7R୼F`9q9!s94d`73!ԣ2r.9$kŅ HH-H=n$,`;"m`$t!'n_2u<1k v)l $N^&߹_`u#8l^k9=QՌ@!Jz謂fخ4"a'8$p6R6&Q'^إte9SZY7FOGoicE_[a[DT!6'>j h;7`HFL> _#ۂKat%J)lBwdN1 + 䎥3YW:sT]z_$g£ ]23gCMcN-N#=#W!?usjP1oV|?<>Jc=UI09>'I] sH~άz ka-'@S3?_%UkgצX#,KD?V/~~ג \ҝ3a1u!.B9|( KUN(&!j n7kAC<@J,>s%o<>d;ī-(2Gb?7Fo1Ӛ.LrU>FndEp^ (a$ϺW\_RΒ_PhKSK7{J,Gl&\Tq TZkMۗI=&~ٷs;"ɤ3*詗(=6ha\|LUhtjiQX/wqsZ :L~$PcbR%ǪF(vMobNn!2rWY?CJpV%W\Jͼ}V> ՄAbHU4 BKAv$w؂zWEa7b! ww_,0 M-):$\0tk61ɉk H['> q`y^aIvgt$qBGf=MüN1wV#3~7^h:OgWM@yI@,;1A+ie[h ٍ d{?2׉[ot 7Ή^ *^Sʻ|z.S\Y#CiÚ5ZGBlB8*+&*UW B<7wyը`MR[K|JRe¸1SWRRuSqla."9te$@PH*u-jwnKRedV ɃfxCfb3.R1qn|]Q_l{+YWRڛ7BĊdRUݮhC`m} X¶v]ï06ݼ`.G,g!{LoP]B뷅Vv)߆R6Lo2)Pl tua5~#B++ NnI;BtpWgT( =y׆yaA;m7upqaB:W|Pre=c[fXDmk}b=("h!OJo5B{wendstream endobj 24 0 obj << /Type /Page /Contents 25 0 R /Resources 23 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 22 0 R >> endobj 23 0 obj << /Font << /F8 12 0 R /F29 18 0 R /F32 28 0 R /F17 6 0 R /F33 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 35 0 obj << /Length 4720 /Filter /FlateDecode >> stream xڭ[IȕHZ 30\1ρ%1%v1E5IUvoPfژ<$X?}SqҤLKu.w+Ҥݧn4{]lz5*Wz~CW?7'l55oK?TO_coߥw[tI+xƦ;0fPC%|yj~84t5!ͩncS7#Tc_ XMO40bf}-ց;_]aF]?ƍXꥮ{Hm,,%ke}3} [+ Id|/ J4BUu1䅕~]ϣ c,Vg9AJlV:CUj1kikٱ3IZBl*RůUbVgnLуyg 3QJP~A*+\̹mjK/6R==DH20ByܵzyZ)P5픻@pˉ8`WR^,dQl٢L{4+VZҡ肌IePTJrm5 I vGpf!"fGLb6̡{c5dPZ^mG>BW*9bG\,/s.CT0ATL}@2y{ l!i"0~V=- g̚2U\\m(,PޕWϻ2*줼7VwWOZ%cng=xiT3Aכ$@w?jћd9HJ=-:wBn=Юm;W1 ڪИ_Դ瑴ZnTOl| [zGBٗ>%ST32 &-8 0?f{O2LV* PkiJȑ*򤰅WS7F;kξ\^38N S1^xg]Rdy&g0v{͘SxX2 |3^x`型ϚP>o{:^3f&|.!!io54|'iMҽnV{[Xznf42t=7dD}"jLdL+K d*tvol4Fg`-!$4b tP  iiZj@ 7UOxm8{v%#fm$]JydHY/\CѢޫ>[HNΣv1JXv5V5[x{cڑ Ɗ52L#g ItB/#^8CSf80tYoGR?Tk7RœʔodG WD6~J㽣hs-v,qvXӒ? LZbgt"Δ_$8ҔBb׶~qՄd[-< Na3QENl14,X?CȓX!bZj ;0|5QR`=`AWx k<ǾIN0nj߉=ᬦI]FYy>6Ƃ&ʫ'vlSY[SVLb8<ϲ\JIޮXkwj^AiB,D< Aœ2s>/+'ZAy":#Zpw <TERuT2q҅f7zq/>Vq(29t Iwcn|w.X7EUsQE~ I|qeC4s]1jD ٫Qjp@TKJ> endobj 33 0 obj << /Font << /F8 12 0 R /F29 18 0 R /F28 15 0 R /F33 31 0 R /F17 6 0 R /F31 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 38 0 obj << /Length 4048 /Filter /FlateDecode >> stream xڝێ}H*7kx(%fmEh(4l kK^Iy\HJEaLG_;Y,d.rk&qaZoS 'iP?|^$q*ҌTѺm=cáCo<"n*xo^l+7"K!$D,S=ۧ/W"5q՝YuL=0PqcGCFrh&)ڵ"Q%L?=:}?@#ؓ`#,B:օQ,A|^I'iaj:O$P1Q:=dnXm_}xYsVӃޠ ERbT,`E&8Ӛ9ޝ"RJHћ"ּnDXZpVEHtv'[ĉLXO~B93y4+呞h[{<`OKi".dy[꫁^sIW'yLDfX"U 4-RRgpO +{I@ł["sլv;A9>HE{A,*ƯT!h>⿪{DψgE "P?V]X4B~|Y>fiT+Ĺ~On62 zT![5+lh֓*{Dyc9ԫQ-kR\[<;$D3pc"rMc4 ǑE> wL|hO1Wx&yLTe[mS%ۖ.=,Әw,X;J5u:3E ǀ,TԕS6;<5쑬& 9,3?TI,VdA#_H¥Aؙ46&Zoj2*˕z(`~hGDXF j*| .!d~ā, $gx㯳^8>u+Tadz=mW git @8X}# ڟ%Z| P rigRJ"eEyJ\<eB8kZ?&?lD ޹Ȋ O3Kvt4֌rAS\΄ *~](4kA!%Sin[aj1ڬB%!A(̵[37B]JO=5)΢OMuio}@h^T`[(qg VĪsҔPpf_U$ ;0Vnܣj;eL_?" 1# oU[gk?DFzi:y_=THԪʶk!YwwwV6n!$!4xPRRe>r_wAQQ4Jޓd{tcR/A Ay`|I(F<۞&>8dY`%QFa_N`7ʇ%?p<3}V:vsϢr`Qy;6iZmV(fV)Λl^BJ\r}pap|-(*|ِu$G4(\G; i1 o"i11=H lɅc\e6f篿{enh)`bifmSxV+H}"Ta82qGކo#Ӿb]A~hrͯ =@jOr0p[oy _跳N>Cp0 y'FAm1xÌcsSXrFaHB(ٻٜ1[,d+>hA`e II3Dj /G,LgݚhA(j\蜻 e[2Go+ʺ`W)0OUR9le@-AVL#'jk?)T~D ߆@}8f@ ^H\v!P)JQ3TT1ǸJ6NAt %se< ={Bۀ# 5;۫ki-\"]. C ̎4*`X fp$?K5נP5届o{Bp{~F&<|HpO"jqRGw$N}`K:P`c4IzQc@УWE 2)VZ`2c[ZQ5xB_Pv'l8"IG=a"+8>OE[l">mX L9MX#CVa38`9r, kxpCcb[a :9 бS* tWXTqY\SQG| JHZ ~j) ,*L UJ#8H&Mm\Z؞l<2:&5r9ȰcK #dYFo[bv;ɱʲ9-W)70Ɩ3v/i:)"@I(*;rZї@3OFМt };j9G+YxV8CH`-q|sv$X`%e,g !RVN*3 50%ZEY)3qpe\soX(5 N'1Kbl m8 в_HG YF鹫6Pk̽ieܦǪ{@A:j/q#vin~o}or~OeW9 y鯹P7_XΝ]_>bg%٤cID}>d=kGbkn5 .M aT'c!Kc~pgez\ ,;[v3/r6{V_;߮vūlQ l` tljz܉ʋB 71_g(:r=oݞ#rp96Hm5&&%4mef, Vo=s(U'!b&jw 1 V]es?+="qzF*\*aPs̃щpI"u$}X5Z&QJ9a>y1Ὧa}|GٷVAX!1>)&EcA0:!Tl+˝ VO-_bs~ÆHD{6L -#z&z3iCk~po/qC,/A򒺮.ba'c'IZ`3GO2Uwcc~S6'GrLBjn7jI#> 5y6 !3ߌZlr?:IqҪ 8Ue1+ġdֻVc[>wq&}=Yo,ANR,՘tD?DP ؆u5-].]`}=o,6wn|;t~HK_gp@ ˅Cͤ٥hVWz)\i ƆJB#̊9=A2ߩI(H^xl"5Im 2W:q~;["b$D:ByIrQKJaG2q{c-b{L$췺)J'r Zz`sN])o*+ [ؖr⇼endstream endobj 37 0 obj << /Type /Page /Contents 38 0 R /Resources 36 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 22 0 R >> endobj 32 0 obj << /Type /XObject /Subtype /Image /Width 255 /Height 150 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 1668 /Filter /FlateDecode >> stream x& R !zظGX8Mb!mktUofuM~oǙc|Z͏O?hmcT\]xm߄yU8S/+#Zpb'9uS/]ז6Ÿ{\m_^s-IGT I5^Q?W`b7_G<_(YY~#gB~=1;e"0<ɿ43d%߈L=5;9>G:P7\NSM^F ȿ_&W@ݴ龧ë,iCy6i CdNjMQ%oZ[ANG~G ƒPw; `z%4Wop\w:a~pY1V+':MpbA|wmgZ'_ߴB ΃g4_/2~<|ip.qIh-#> /XObject << /Im1 32 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 44 0 obj << /Length 4904 /Filter /FlateDecode >> stream xڭ[]o丱}_aȁH+@lL  w wnݭ[6{ DŪSʿM&uZg7nJuSUR봺xhjNuR6΢6n##Ljs#3zg<Ƙ~N3uGv p[9?>&3乪y=c666>`vQ h5{nmmK]юvKᯠQ v!姷D_EB9m7vQ=ւƩԸk5mۇ挩VyLmhfh<}qUi3f3u[ ]&u]v~,.|u-eF|nGYM߿H3Kd.k9n㊤ UȂby[_H8cҒ@Ox ɒ4Mq<*6p yn='gw531pU,u^{NwnrU ?Gih<ʇ6〜}k N+rG_7uײZ/2])s4)QRSe`۩H^mkE>E4Bs= :OZ{m燍am/~7@ ,DʤEI{`,)4ޫ-ʏSȩ{,`f % GHy^5]\mo&3s`5Fi|v2mpw,/v_(+y{,ShU;a {:yq+̑V\ U0fqk? ,f/h"lh Utu*JkgmBJ'3iU*_j;t RVݟXcs ERdoڮ'6v#ZؤѶ휠ؤCA$E+GCHsXHR{mej"sث,[T&; 1΃=9]I \Ѥ36<|GZ,hҕYಠ]I' QSg*_xǠ#z_ gV%E,jqC ~ mTY5*5:~#Y, 4A3_4!Mci2` OXJ´?ySY$KmoK'hUmX`4ԌPΈoМX XHf+ f225haBw%\rb~$ "WZwwq&G>1/w cyκmLk-Gx5= nQX|-Y!/zZ/YsƔ3\ohKx/R5X(C gDkȀymіO2sX/PqjKsٱ&:*"~<\Qy+f|[b2[p3I@֋TM* {9 A3Y8SG ʱ)͗>2Wg0[ȐcIuD tDͣm`ǂfVL[p@ mÂT&]8_!ȓZU(u,7 K P%vxp_Z65ȅ/Iykɥ} ")_~wLf `%} rI^bG[Y& Y RՔ%[;#2,ǀ>(q*a}P{+I*lp*]h ԍ r(K"IQV+A+KʺvLSX4Hfu߆*)rMv!H7&d;=Yq7?X; 1܆ 5%Tٛ^Sk*^bu2 kRC¬cq7J"1jRaą0a'2=# 6p'.(5Moc4C䅎Y7Z 4NNxêYa>TG:ӭ&kݍRb,Hx-4>$:(]-{enX5ѐbf)_erV $tOw93f6J%d.grTc3o]@/PVmedWWdRO"R_g^1N U7N*|vy VP5߄O;_f )w%Q~4MW`y@뼰.{4+Ub:ہ7D 侸fTwI [|M$+>2zT eԱf--q5B0nIhps6"> iJܤA`g9iaERkNk̎GL9$3U&Y՛2OyttpE0YT'x 7)5k27@M2r6C tᘟ"z&81pN,|4E*;^X ihRe dB4uVVis@hڰOx9:dFfD;ʓE84o.r[R94¸zq߱12 r\YL\1K0St́w";greqL;փ\-JmTìDVeXvJddx?֚U48yR<1)q:R3; *,5,U%z8 9uz58w=YH_6=CLs~*H|Bwu<;܏T[2Qhdt:|2^n=3/߃`*mss&ٱ š*M[_:Du%m]$&#~y]tZRpI®-ʅZf2)8I4Oڸ&fKo 1|Xe}<8I U!J>'4޹}ĺk ✅A|Ksm՜WYqt\n[3r㘵B*A$x$W:5{BCeniV94b!M߉j ti:usqnx&Ŝ  'X7Mp)c g̥\brK8J,#f+p"$yraRooel4ǵ 5Y"i/*iEEsuġHCmY0ƿaBc}>}Wendstream endobj 43 0 obj << /Type /Page /Contents 44 0 R /Resources 42 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 22 0 R >> endobj 42 0 obj << /Font << /F8 12 0 R /F29 18 0 R /F33 31 0 R /F17 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 47 0 obj << /Length 2123 /Filter /FlateDecode >> stream xڍrx- DmP'7!_f?5t<4Z'ow.&!ٗ&},MeL6wM#-&MdBmxjKlOsvQ?wěPuU>6&5﷡&x*W-q kFđ #& BDҤD6"$ v _E&eL&q$'GrS@WB﫦!zι>62]*K"$˶d>Oco $x+b-H'+;]7<TۓC_9؆ZN)1DI2/EA75~ˏjNya)hԛZ\FWܹc^M^?*b%͕xĄ2›@W9mIiWSI﫦t\3vc:_ W$=4C>(>j^{=o/~̒`J~xn?tYHJqE/j \}=z(S26붡&9h"e\^5˙1gN~~cş.H7bt&J0buGVH%j녌Hb*ʕj@ŏG1(' ŲL*iVlt#c&w|vV-R:PrZ ?w=`isǔ'MOHJ7&BM`if (GI3[1\Ί2DE6N5Õ7C0Qc!eF؛, viH7 e'fO;|B=^*4ta55Gp^OYIߒ>c@yZPsT"QiCðAY5[x̹jT2,f}TۭiSo2;Y$Dzی\1 {cZ4`lAS mxm5]#&t x}ڼ@ta e-)179lzQy5tHʲLG= )9 Ƥʫs_eQѰPńRE*>ns pq?Y};yaRWO I,%L!m#<~,:QfPeXO@$P2qqNo2ۊ -Cߤ@jaw?7,s:uZ26L7Wc:Z0iyX?fxC{Jf!{IyFҦ1hO/_(_ЪqHqδDN\LVZq*1~ ax!GY 4BGfWU c\ݚJ@I,Pڷ3DvH1<(F2ꂟO05We,|a-Ҟ[krsصY$gyCQ`Lh:Hib^*K-S kjhٹ޷FF_<y?䙲d9 .~r|O'4_za*"<ZYlڿ^FZX)8"޲ %'*+  /uo:";$-K?~[a75uS*z=sy wcaJu:?r?Ҽ9A[x5.wf߻ XH, Pu|84#QDkK]|'|XCb_ёEendstream endobj 46 0 obj << /Type /Page /Contents 47 0 R /Resources 45 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 22 0 R >> endobj 39 0 obj << /Type /XObject /Subtype /Image /Width 253 /Height 164 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 1182 /Filter /FlateDecode >> stream xv E/gƂƒ}Ytq ^pGcLrV] d. }u':}K՟? ƅS/6ww/_❨xN8r+׾Eڿbwh_tj߬^Y`!mS05oSiohy;Ǥ!m3V h_>춙`IQj0:i\u-xrKE"+z^Y,ʆǴW6Ilt[+X6]+nxL{ӚO{ǗJ[i/0_&xT|+iui<߷uiɡbSZޚ^cH<=@{MڏO!Wk?JW#ZN{$վ'߸I{־xC{,՚޴G k-yb3+iocḛKio/톉ǴϞx|\;sr; o!}c~c~wdҞ)ҞiOfrEi)-ioMi/X1$f=:w\ guj}|.)endstream endobj 40 0 obj << /Type /XObject /Subtype /Image /Width 924 /Height 395 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 11238 /Filter /FlateDecode >> stream xے8@z`Ƭ۪\@-"#!w8׏($0J`@ i.D6i N{)>p6k|LN'6LPt_i'C ?{ht}E~NN|qoO;hrZ<޹N8zNZ|qerZNGֻqܛ`xy˛k8mi#ߌ2[w)]˿߻@/9orm)yJ[\˞<6=r[ qti_MBx.o>zO8lǝJ 촗yqT;P]x#^iU1{DD= (A|ΐXyJvzXCIopZpZ崜Vi@wiiN;ovUF6}r7_9!pZNi5O ==P0;O*:W~S -8-6tڹ+kϺP皆#8- _P@C*wֿ'i1@W覡nWЇu㯣)Obi1EhhBi7t{Ni'r~êZie;2rډ6,'}rZߊ}q,*'q:{~_kQ";bcJ~۝&4DNm'q䴜.,:ߎ)~8k>m𮪳cŒ\"-yw=Hv{lM}N h*8-pJ}]Tzjŝ'8dj/#N;iMx8-p"g#0+26yH%8_U{<8t7__G`Gvmgb>1[mj'nwO߇.K%U^L8-v:)ȠENh3ӎ~KrB~^iwbqڢ=;תGl=Hf ~1~9-ͷֿb>zsڃqNVN=rFMh]O7Jk9-8>ӊN;yNipKt/?A2z>U|r؏Qi16\lxV/ҮN=bSMbK_^4ӪyNg ^[i.M d%wVvpi9w,QK:mLxiQ8gŷi[ֈ5nVq9rg|1XزwQ6 N  %:ifV<8'qgcٿEQK*zeBdWݭ GK:훻|ؗzwj_<Ji ӊN52+=+.ysXC/MjuX!GG,/)NC,Js{WJoZ\9-iZiON4C,}Iv[7i9 NKk9-y"0QUͼ{!#JV2{627nxn;߻c\r͜6; };vj}bp;Qb.2ry#8XNpMvi7\h9-V-JQe*#Ey. vXs{qo|:nݼѣڼOVz'N;E ~9ϧh#hs"Ee;Uٽ DN9bh霉TiGlqZ'm5{, O>kX4~x?Yr՝vj3,<^0/ibCE5߇kwNuom8-8~U-:rt⟅Gv)ഀ'j,|J}/R/hJN ,1 ޫB( y `} %MYNz@kELH*AsBnwUX{P7?iiyMj~C{p8O Tk8m8#OH2eUrZpZl<#czgtsWO!%{u% ޽i;Ք o&9-8-8-ii朶חȄ:%/5؄قӂrک˲Jr9̛|V;lK>tHܪl*LtN{w&(N֒#0{.g;Qb`*,xwG4T|cBe%wZ wڢ #~d CrU44.|"ݫt?e%fq˳i/.=6{ש]]noEW@2 e^b8-wږwwFmY#6|h DU, |wɄ=:fG?F]8-FvxKz%rU~e㋃K{{?n+l<(j+ZX32r|kXYk9-Frڇwt38W !(vMhٷJ;bN N N;FqeZipKY?z&[2źNKkbոb»qeA=k-w}.ݭ9Lജ6_#8(;uk:Ӿ8fNSkK*X<0d|1bLi GbZ&i(;EborZ@_-#iciGl귉qZ )L=vs2l~[rv8-8evXe{I3//iW`i1Ӟ϶P- u%316{uXYFkzw8-̟NٜON4C,}IvK9wZ.?P'&/{!Q^= "۳8ih`V';ѯG%{xrNSlXy*Vm~ܬ.n (_W:CV]ylkĢf<7}ќvX4~ϧ}yi82]o~O;؃n}b_U^4ipڑZ|t2x(N+.8Q5WXWF! h^<_eضtN|1K LoSWh/8_^4 wnicÎØe>[2N{ݞgȥgJҫ~_"8e&Lw̜eD&8-7{E﹜--pH82 D^@'<} ])?㠔:mZK﹜uD%L[4x!s2miWoцm2bwŋL8mL|'Oi+eF)Qj2;V+S&:m3HDIbuLtv]q?q76;td8q?(i{ yڿkwO{qڅ]&L>WUQt}TQ9ݫ} XU]Ӯtv?{&|heGgPCUTѳ||UJx|d1}#}_X7q㋖9[Lm}8q.݋ZקzWHv)|Ӥ_{)E{8O[ⴜGiժ>,;|oŐWgp9157FiiK(x^Nl^x*|䑙GVv|1ӊbU]wXG{< OE.]kJ@ܻO~i$^L]>-z bc9^%'q?Ny3!ۄس Ү{U6*PQxdbHu/[ː =oקvTT3yIN#(fq9mu%-Υ"~P7UMVy 8>dMQ y3pN[:6Ӧ3ii{]8N5vg#gd0פNd,Jen/v|LBvL;r(my8|QNs&EiW+L+߇f\pZiXO~X7{~H˼?Wrop̪N[G>kԒd'S0h^nkŃG(lj`MvX&uoq hbOǙvifJso/rx>]<O눊Z\16bQ* 3:b{ߊN[hzNi8mѵQ꺷<98^2rs9±2`n72vfY}nb?=^m+}hY;m#Y#X㢅8>zģKyKi+:vXxjS1oJdꤺ"P^W WvX,}8%tVR]ݬkE;¶Nc=5nFmh7J7݃Ӧ++J8߻i#$_p峒.2n i+^m|\*z<"w{~Ks&jEZL|}iZ=]nIZȜ.N[q`y,NC,?3EߜƶUl|bCEKrr1m&}G8Ա}k1jtYk~\s~`Ņ@fM>BD0F[A= sef0;ꜩ7Uj|ۡ!O (ib}`NciEYk ;mv9^O,hdZ@ M@|)@)E/U!F0GB6>c  m'(zvfN `(xo+4/W#dBGwO~ygX[6`C݃O;b}uiN|ARћdx7Y $"ȎYt*ڻ!04/^e.n<12NɄiip@8·.-}DyMht`beXiyLi举Vj"/ .rAEhn8_"z9mEs&rtƑ`s]ffUNI,{yW?-6REwun.2Hh#IEr)r'(2Z+.9_=N{+RZi-,g;#'  ꑨd)Qw Rt:ԁ@^syfqږZ(WE+DC+iW{|t P&?rZ9eO>5 *%;8m~Ȅ9|1 9 ުS8m;,\i$>wZAPݻ];j_#j8e`Q&/}"Imq\݀$ܛVe.[yc*r,jf6+kwXsZN۱C+a"7'rZgr{h;m[?wg,syboư}bDoU;>(˄~e_<^󝝟e{Yk9->8uKoXd ]ZOvxn繶JQ!3RvDN[,Jl~iVNĀN[T%be[7arZ|<V,cbQJ>Ӧi#kbN[qsӢyǾ7VrbO)V]:x'Z\~@zӓ):m-H$~wɎ2"?#L?`Xs{Pjaw#6rG ;mabƢ`w}.崜'j8g0NrZNzH$jVNi9-$n5v7WrWսOD ӵ=G6w瘱S2p[fwS߰>d̳Ќݢ+/1e6-gQ|͜wgIqZ[ڗWnp1 y.i%_2rZiqKrZi 8ū_N 8>ƸL&QmiG6EmxvC][VS` )Pm!iഄ۔~^G >Ke 9-S8흾rZ8bvy<&y ُ=6!`s%#D⨳ÒInwqnR1i WH%.8}|aH#&EA7NB;YeVӎ촗l 䞯LTC;zi& ~5bIWWgϼ݇/KQ|-[w:;}=q-Vi `RG#7ZV6$jLbW=N NhDjZi -В7N xˤNKh9--Vnpگf9--VnO|N x +%B+7xWNKh9-XXWʍS -~yS"#9296wFlK<7~mK8흷#k8I8-svTWx17ޱ\)T=Q<Nۘ4z/) .kmܸݽq3n-_%'4-6Kq 8;A!΍f33ω w:uL^Ꝝ4}zhJQnC̸ӞPpi/]42w9>΍Ks{:m:g8-}(7&<#qM . {K^:٭/BCq)iWE.OX[JU͇rt+9mT,GpvZ N[9.X5Z@iG'cx(ഄ6m9-%i -vڎJhZL괽D[%i(NKhil~`@~>XiGWrZpZ ⴿg9^pvn@Ӧo/M5gU$@;)M| q?{鴿9Zl]lpS?i]EG$8m\մ62[N[qlQҭ-͊)Ҝ뎑pKϬvڠrZZ FENXv?6,Xi^\JKɢ`I0|ڠ`a=\W|ڢ鸏:-XiҢͳ~{<_f n)Yi/7?n'*-ӖCV)-N{極hq+eQ}6Nlfqڹ r;o9䘥bv^ev e`\k-]Ck-K,l8-N;2[NqŹJl8Zl^sE2cfwڗ0]Kd2Lӕa7/Tfq}bi} ;S]{_p i9-xi~ ~)>vy~Xjs9Yx9e> s 2 8XfN:8me &*Nۥ̉-SfyyGw&xVP:9DerZN 8-rZNi9-@Ҍe.: DYm4endstream endobj 45 0 obj << /Font << /F29 18 0 R /F8 12 0 R /F28 15 0 R >> /XObject << /Im2 39 0 R /Im3 40 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 50 0 obj << /Length 3410 /Filter /FlateDecode >> stream xڥYK۸ϯPɉh_agkl\6{DJ"iק_$ۇ7?tziaĞQfӱQuynnΗ{U{ϛ_W[0#~f U75wvU/xD*_We^tt"L-GA0Nh6oel6NWncb]0^MERtF釬t?USd~؀>hop3c6vahj9`(~kCXTؓ=Ғ-omf7A6iSHO2Y9:o{Ɇڞ~(#que%-.UҡLU/t?߭>|/4&if?)&=VvYk>ܭ>ciTKF/ `eRe @fmƘĬ34uӱf7*^H xJ__3;] Uiݱv@wGzt}h pS)+";}\årz b <0T&+B74σf}<穬gRp РN3 #gfʡ.Dm#?XB:g@so C ޅtƛܷbθaif"\63Ay&t[c_ pvLGzh/Q BO ?!FMX3Z\I 2 (d k$#;c(d hDr+F ;i&c%$aE_5:1q( @ kA\&~t88t|ݒh ]#ǫutȮw9$ emT6C⼰%fͰuT~AYCl%D)GAAȤ|=AS1<}vhB,.#;DҴsD\ħqG{^HVҵ E ilODm9מ3{3|pAF0x+E|-uS&"+Ls@QϺ6s9S!%&6N) gb09hDOgCƎ# 'LB*VԛD"06mROT" *غ!6ZP-&0tC|{܌I=d[ELMrCeS@P"{IwxT{In!$렔\a5?(5M'x2N <ƐG`jÓ \0UY$\l/E'7L mLa#4b)b  _|itUi(u6ҜF qPcOR;8 Hr=o$2L+4(iMSuـ1Y(c?g ĩaRDCҨ+0%KqAW<Z XN@k[ =C?]0p0\^4H'D!ʇL `Vlr|X )m?P@ y/}~v)dpSw(2Kqq9(-4M6,aDq#Є Wd$أ| }96. &gq8zV&yC*`G.5/"e҅,["p%,s$6wMF_(4lx)!Zu(11.{޳7u1ƼYQ?}@>cY-;OݗvRchJ<U_~fbYZ+/]1gE5KĖ |e E?#<b=2hĜۚ2 yTXg'fD]!ʣ'蒟9e cPL;6TdxK}q"Ƣ颛1Q0K{ԘTMcQ(x1) ziU d7P]drDƶ{F`I4U qU!ʀc[R VXYfыtfd>xr-"IiBIpn A3i씓,Fwyb\')4.HV)h  TPn5]gω Rd+4-B8jZ>iP(Yu$-6jpHʶaa<VH1HTBC I\6ATj8P1L #F+O9i{aA=`s=U- ʁJ6*`%'Šp(wqI9W`Uri9R9` i܁Uy&e<>z]ĩraQ4;9)vUX 爉͝$wF8T9+x>ENhIl|EuKߣ^- _s+@X̳ADecN4W!Ӽpi]ƒl>qp~=IӔsmO3XTIN2tZ`q/N@Y.9+߀G?.qsL) $)puH[tE4$Fdۅ q;lģ^ &xr~%h%7 V87J {Ϫ-Kӄ5M6C䉜)?qb(E46Ϸ h M(Ҙ7sdr<. h<) PzcҊK@(8*Ѱ cOH}7o>od Q c#Zss,hB _x`ͷ?o^[~ &60p<q |V=;(_\K/0J aj>sQfr>>(;RF8e˝@!0%G^=.?1VX[pz&^{=zKѧ> endobj 41 0 obj << /Type /XObject /Subtype /Image /Width 255 /Height 221 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 1452 /Filter /FlateDecode >> stream xr0 E+g.:&6 QO;EZnmDnX?@r._Y@B}}H}Dg%?&hOmA~,'o{u7P|oE۞3_fnc?ZOtw4']jTo:g'DX[YW{z'P˭XfN )ۥNBs?Z-lC^K'k6{2k&2ȿ!^?>G?.o2hʏtw[y=/w _;n zS'-CO~@x;a ?ppFcg u@ ?U~ߜ/~'{'/x(xF͵=754[l=f ?A~Gu…ʕ((N/$> /XObject << /Im4 41 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 55 0 obj << /Length 1616 /Filter /FlateDecode >> stream xڍWKs6Ẅ́4$4}ih PBRI׻l}~-$dTqte3'(Mp 뉒*qy;6׉զO6zݞ|8>`%v~=9#&EZvIi(iGqY3):?6žbcfr12ROWgLeʪ}-f#82cH,@^m\,RլkJэfƶKk;^=K끯eA5zHi*؁nwχmAҒR:cm':~bRwO G2mW&stHљ4 z^P;4 ~P[O}8 p3>БԡH)hfU\r-JH[jͷ=-=d?̼+k,q (UUh_OQ CEB(kL>l}YU!xbݎd_G+q*Wb[jûnAEEʿQxC7#-lT-nѐWsz {̐I'~6gKreDʤ MR?(˂l9HLVpK1#!0)Јw>uO*N&~r*x ,8EoI:h˚A&]b gw] IuvGRCpTq&L^ nё!޸<γʆDf ots?ޠծMDzͫQjݸ,C t9mЉe:IC_͑ $V*6M^ UiViu<r]5ÜQte!waSVl8W3k%=}M ޒ H%3 oJ w͹Lh[kYWއ] D39dp94k_$ݩ=w:〦KFܢzϯc8 ܃^+wG8J<ڂ-(gx\"KOc N6Yxp5w%S&ZW,5L>HkG#2 BӞ?OrZ7[ i5?'쌷 5f&BWI)[#:ӯl˱N~=jHendstream endobj 54 0 obj << /Type /Page /Contents 55 0 R /Resources 53 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 51 0 R >> endobj 52 0 obj << /Type /XObject /Subtype /Image /Width 257 /Height 697 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 5161 /Filter /FlateDecode >> stream x]E(oUF$VnY%f$\oV(ۋNCb_wÏ; Nv`~ֿ_8wg,[u 6N?u]}{V/ v`jώjƏ{f(P]k} ]{/NR`Qpsڮv WKj:V(WÍ(pGZȇ2 = CP@ |F}OR@"sbg)]=qb^W=R)Św~j gQWXk= (VZ/&_D:dzF׈Ƞ@qL=oF6޷Ymjެ/#D$_g(T@"*q0Vy8l4\7oJ8wȩn(p^R=\\V=PW`o3JٍZUlW@GDk;B VLx]VswO>cξQ-l(У@Âbwީ!oR s}?3 P_bp<>ȦG((@3BM0}+{nNR0QXbi2 P(@P`7A+@UBjV Ӡ gVu[S-ş_#X~QB+0/#zA+DTdҒ7di k(Щd ) M($SH,=QZ PX,M M$KKdi[f (Rx Z `IӡOeMȬ cҋ GLxKw[FhHzҧ3h9ҵt[ X,YZ0vIÒ) YZ4$K49 P y(( YzF#VHGdIgp?YpwF,-Ym(P^Q+_tvִL]Sd5VVQkPaF+OLn(Pɒ%Kd}:)@[W4$HN~g|(Яdi);诽BWb Ҩ+l w5 {=㈃@gS`=N6ÍK8޴ PpFOGRQ Lm! pP"OC{k @p".F .B;3)$W`8hd:V58;@mVx[i/@VH2hP׾MGZ4 k( xd@;BCGQ϶@ joXoR ߎw,N*ɛuW@ R`@ dS#3 k(@c P یPG P }pw،):X--3@ b)`fٹ[q}ͣ VV/dMK9IjURz~` o;hk{gM_i S@͂7 UjXG p5z#TvN^X@0#T yɤ(@`y8 J'E([cx %ᇗ_W bim@ ( PR Ԗ*ؿk ܏+YCS2!Sa@OλrS(po{gX9PNN[9P`ShJG9Pʁ(@ P|ꃮQsKo( = ;B ?S(X(##D PfQ}(@ P(@ PfQ}(pxu qˁ7=ʁ~Aϻrr@8ʁ3N}賬(@@ P(@ ]@[q*-Tw#ZX(0$?++_zNr3!!(ྀr(@ P( GHƮI:B[#$GCrt* GHᰎbC P(@ PF! 澀HZ0.X#}1 Q!3Bp_} P(@ PdH@?A- ̸5^T}sTN8^&YwN}α@r@Rp_@9Pʁ(@ PT - 3yPrgle5FYAʁßZ00gl%[p_} P(@ P5BQ}(`5B_0MnrV@+@cc 2#D(@ P(@ 5fN͇_y_ \9P>rSx(L9Pژb[_\$xE9P`ի_㝩Z(S"r%ʁ,9#r*P@ +u=YHendstream endobj 53 0 obj << /Font << /F8 12 0 R /F29 18 0 R /F17 6 0 R /F28 15 0 R >> /XObject << /Im5 52 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 30 0 obj << /Length1 750 /Length2 576 /Length3 532 /Length 1110 /Filter /FlateDecode >> stream xSU uLOJu+53Rp 44P03RUu.JM,sI,IR04Tp,MW04U002225RUp/,L(Qp)2WpM-LNSM,HZRQZZTeh\ǥrg^Z9D8&UZT tБ @'T*qJB7ܭ4'/1d<80s3s**s JKR|SRЕB盚Y.Y옗khg`l ,vˬHM ,IPHK)N楠;|`yiC,WRY`P "P*ʬP6300*B+2׼̼t#S3ĢJ.` L 2RR+R+./jQMBZ~(ZI? % q.L89WTY*Z 644S077EQ\ZTWN+2AZuZ~uKmm+\_XŪڗ7D쨛Rl:/P1dɫϾ(l=Uhd_OܗEkv-X1tލ`i_y. 1dz:un~Q?3/S}] $e~s]F1ʻ/Q?m򻳷|<ċݺ/q'}I+6EgxT.GgtvՏGU|~]Rޅ_k9:{pG d}dN<6-uBoH=cMvHzqaRK~,K̞}˛myo~v _s>.#ҭߦ{/əkܗ\m|rXϾadj|ǝR/,2p0, HIM,*M,lrendstream endobj 31 0 obj << /Type /Font /Subtype /Type1 /Encoding 56 0 R /FirstChar 15 /LastChar 15 /Widths 57 0 R /BaseFont /RKQRQR+CMSY10 /FontDescriptor 29 0 R >> endobj 29 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /RKQRQR+CMSY10 /ItalicAngle -14.035 /StemV 85 /XHeight 431 /FontBBox [-29 -960 1116 775] /Flags 4 /CharSet (/bullet) /FontFile 30 0 R >> endobj 57 0 obj [500 ] endobj 56 0 obj << /Type /Encoding /Differences [ 0 /.notdef 15/bullet 16/.notdef] >> endobj 27 0 obj << /Length1 762 /Length2 1410 /Length3 532 /Length 1967 /Filter /FlateDecode >> stream xR}8NqjV K+Kì1͌!4Ddlj3of׎DDUW3Kl|bV[QdRH+vuu>@"5lMaLG4X*ElDHs9!Rl C")`҉ sEQ(F0K\ >AqV($ Q6IERxK7T9 RzoZ),8%`* !BAH>cA ,캈8|@`A܁'PCa "n C:+([ab{0ٸ?v΁41O IK_@ *qwx0'0(T#r#R" F`$$Q:#HyP&sBҽhJK t[F#TfA&$ra@N+ !Dj|c̛͋ޚr ӳBj +U{e+-K;pY2/&_دW}v!c/Z=5 ߞ*i:f?t =ylԦx׆Zi?nwcg3 ]+'sNHS)'[agU1g}+|Lq4suv;U:p=$RK{uKo{[gSzx\?rM|t3Zn5H6-ao™usQn~m%Q䮺pֳW z[<ͷTIq_Bˇ8B*0Wendstream endobj 28 0 obj << /Type /Font /Subtype /Type1 /Encoding 58 0 R /FirstChar 77 /LastChar 78 /Widths 59 0 R /BaseFont /MSXIJS+CMMI10 /FontDescriptor 26 0 R >> endobj 26 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /MSXIJS+CMMI10 /ItalicAngle -14.04 /StemV 72 /XHeight 431 /FontBBox [-32 -250 1048 750] /Flags 4 /CharSet (/M/N) /FontFile 27 0 R >> endobj 59 0 obj [970 803 ] endobj 58 0 obj << /Type /Encoding /Differences [ 0 /.notdef 77/M/N 79/.notdef] >> endobj 20 0 obj << /Length1 1388 /Length2 6426 /Length3 532 /Length 7281 /Filter /FlateDecode >> stream xe\E)I)S;&`AF:T$P$%|ƽs^=g7]k]kZu7Sp@؃Up @IP /@Ʀۡ  ,(BA1)1)!6 qrF8~``$dء0L`A(~ x;   Ҁ;"nqyQNH.F8 L-0FQNBu`s PQ`$@Fj[۫B@ p'( ;CP g e3MTMx^_>};eO_o  X b1Y p1!  p7 #P#H$m h `( 0_+vcݠhL31L f&qj"Iâ _THB#msx)B@avHSM8F?$!H83Z]~~&o´0__ޜ@Μ@) 1uaQSb"@L]?Sb yU@L?#7bV@?SĤA (9 DEbWDᨿ>U[v`0 M#@ҡ.ie*8XNMu! XwZ˵?*2(H6q6.< %mk<pWYalW,C2z*֕Q½LsEΥ{RMew" N[A~.vYͦq*… %5]*G^o lHs98mقO8  b$;Nc*n* N(~͉9ňNm 'RY2Fe*~D/z'M$S$UWĦg|*ReU\eo^t,WY~K~| o+n(6ZqQ V-Lf 1Jld+QCxu%-g!&L.>(E / d[ kY"Z d;Gso|p(-A9ZK\7$R ~x './V0}'0ٗaG-sg[P@1["ep98d~@U a7#9sm!RT z 9߾~-W ~pJfѳ;N)`96<q/1Xۻ)itB?i+:Cڋn)mm!Mn ~$U{h5I3t:ouӝh K>60芌oyZ>ۧ`Ct-_7$dM5{6O P|rΧsZ#- 1$K;ۄgv* teѩuyVZ-i _g²; VYަ dz66QQBt"&JȖ+I|MYS#*pvƮPOe=YtM1t/)oH΃&3֜8TGVf q_ Iak5LQA@nKdIp/I)6+B7oMOފ2ifK Pk%#&oR;dM 8nԜuah/yA%?R9Nox!-h9^CbesV84pL,~Q)cVKw}&N>}t(qr~8O|ϙTYՖ( u`=۹v=/y'06MJiW9UCceniyƯEv84^_TܦN)y}/ԈkRFGZc[9 4Њ$]vS^s\ F7hwOO-w+?I C+ gxT9~FMPڊJKU O$X#1[!a;U<FX鰃`FUjD&QfƋo生 WN-mE9n@g5&n ex366X'~VI)bQ]n@ym{+KJxGLfߺqWrZé)s[x"5LE\B.{2Sᦪȗgc!3)3)bDmʕ>t4 mϘeߍDgV{s(d;[I;e>cYԃ[NZ|jς"(>B4op.2"S4um˔)&c%!⦱$;S P ;/Ź\ȸ2w7ޛ72]%e%>n=w%NF:{L0H6$s(h56Akǒ;,W gB[NӌUK~;ؚ|1`a>LT>us]K#)ĽG{┗ UQLOėMB?,ֿGk &xh `Tњ/6U2Zņyq@ν0M!1(. A"_Gt!e5%<.E_Oi}>8֣n{|}K0O ֗>{qxND6*Q}'ΏQs3:A{D||6 G:/r!&KP՛63wdDi+UDi>j6`QUFw~kk6®|n\{zbZpCֱ;e DEHVDTDACgCUth=v-$]ɘV֠bZM˨%58sIl SuM6sy\2V7rqʇ]Icsݱt~7tlhM^Eҵ9-$zYEkYl!R:ʣ3M}oa!zdo^_zHA"b ?^տ1#3? 5`7|*A*Y<ΤJԊڈnaUc9-(,e[9m,h᫆??Ձ9E yј~K{]7؜Bb|Y7O~\N$ڗ;#{7 uE)@zg_i*dۮumPIY&vCլJrR2$q'ʭ ŜG-c?P6ǶCvh ڼ dV'{6gˮ) γvD1$Ю_/!b/.YD;,U3>yJ+ʼmuc'L `SWV.{mQ VXpE"m8Uum8 %6 [ NR4MN$?|s{PGk|'38wHZ,Ҋ+[L ["E27~@mn7ӣ8I{4 𦛮j2q# qn;x>kjrwa6b-ٜqsUe;P UZk}bǙׂ6ji|3tsɋ{iT6C Ѹ&AEL&\ū/*O~w&%z(&C΄ >ekԧZZ$Bnڈ#^W s{HSjR mIJAWO9rհ'J?2Vb䄯5e}ne!~8,6>\FyQ`g7 4;7o_{6Գ|IXIJ0k)чW4'{.* {JJ[šKa^A Yށi肖g응Xiw$s L)oQVd|2ޮvKPY +-9_Ҹx:ʣ.<p.~YnCUT8RF]&VRϠ>KwU 4S,* w֝i\V-鬆vo1o8O{>%}'#!XMy$F[:pK||L -vɝ~Έ)].SnJ謠"s ;b*vR|ϝ|ʬo%S֔HpIu74Y&QSLS,ԬP 'v_љqFD䠝5 IfME0ݓCX[CoiE¾r4O)dWC}bX0qye,ajGaܢbx*͋dJuBWqb-)L۱-⏫lt^ Ta ԦB\;QQ 鷨tkL1Qs1|Z}/%7R n;ic[g#BeA?I<|y9/ӄhϙVKS)/ 9_iօ)YewS/.TYIIoVCֵk*)$v^H}]mfPNHt`(;pD龛|IݷUMgr#6 81#=sa9_)dXO>JJL<2'\%&yK; Gx1q`%?S-"ӞFW3{|m̱#!k̓0>w+=Mt'J:wWS}Ʈ8É.P\˩7 .x=|И;bʅ4]bk,or_6~uX-z ;dƣWتiG4 n_e_yWwfnÕDJE2iv0T0 Ǎp+뜰x=p)<0s<VFNDkI8o9ĬMI{UŜN#%ȥ8>q,;"LST"9c$#j9OUG2^<4l/#59U)uYu`R;̘~&$$lҲX;)w}u@Bj}#}ᰑ ޑ|iKφ^Jv 4ѱ';[4 bNRBG]|tYK_QInqy3gq?Ր\Pixde?7)Y$>64Z[/b _~eE<'ghJ+,ZzrV̤ǣ%e&qxThK9 V^&9 _)ecޥB#8mܩ>Kr$Mޤzgҍe'56n1GW}y+=7Ϭ RO428ܗ (+an^E#0 nxWI+SX-u&B߼Rt^ 0D=%qGygD^ؒaE>e|_ *o;(Q|@@QLVgܐ2f7Qm7+G ^Ȕ3{k0ΰ,0$:laiZAtڌ /W@a:}58TuSؚH(J__~endstream endobj 21 0 obj << /Type /Font /Subtype /Type1 /Encoding 60 0 R /FirstChar 34 /LastChar 126 /Widths 61 0 R /BaseFont /XYFDXU+CMTT9 /FontDescriptor 19 0 R >> endobj 19 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName /XYFDXU+CMTT9 /ItalicAngle 0 /StemV 74 /XHeight 431 /FontBBox [-6 -233 542 698] /Flags 4 /CharSet (/quotedbl/numbersign/plus/hyphen/period/slash/zero/one/two/three/four/five/colon/equal/C/D/F/P/underscore/a/b/c/d/e/f/g/h/i/l/m/n/o/p/r/s/t/u/v/x/y/asciitilde) /FontFile 20 0 R >> endobj 61 0 obj [525 525 0 0 0 0 0 0 0 525 0 525 525 525 525 525 525 525 525 525 0 0 0 0 525 0 0 525 0 0 0 0 0 525 525 0 525 0 0 0 0 0 0 0 0 0 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 0 525 525 525 525 525 525 525 525 525 0 0 525 525 525 525 525 0 525 525 525 525 525 0 525 525 0 0 0 0 525 ] endobj 60 0 obj << /Type /Encoding /Differences [ 0 /.notdef 34/quotedbl/numbersign 36/.notdef 43/plus 44/.notdef 45/hyphen/period/slash/zero/one/two/three/four/five 54/.notdef 58/colon 59/.notdef 61/equal 62/.notdef 67/C/D 69/.notdef 70/F 71/.notdef 80/P 81/.notdef 95/underscore 96/.notdef 97/a/b/c/d/e/f/g/h/i 106/.notdef 108/l/m/n/o/p 113/.notdef 114/r/s/t/u/v 119/.notdef 120/x/y 122/.notdef 126/asciitilde 127/.notdef] >> endobj 17 0 obj << /Length1 1808 /Length2 10967 /Length3 532 /Length 12007 /Filter /FlateDecode >> stream xUX\˶qOp'X!@n!w5he%{{wQUc5Ƭj$UT258330DTU LLH"@C'spxX?H[;wZI!k gd06N !++_+@G Є`2v@6H9I٘86q ,& ,ibkc0"1ۂVVG׸5_3l휝9[OUSNhrQ)'C+Q4Q9mL\0JjT48` . /3x"߿lmM@6fv;;33dctŒ 6N%pMHu hl41kAv_m60Zہ=Wa6& hG_W GAV\+gX[ !'wx6l{dcXwk rcXſa!\<;Xh (X `q_w :B \Έ@7&.xʿ N7w78o8_FGc[% Ng&f&p>?kV`V X71ְv_m X7[9`+?lYVn [y`+#CcMfl2?lrYuLg_?;;Ͻ?>Kw`@71Ҽ1oEJcpXd),-YS|]L;rbUሌ=zCY:}}'B6Oqs?Թ}tfBt9=;ۀٛSvHђD/'9Ԣ.Vj!AYIRKBB\a־x[ |[msxCNxч7gZlnNϵ#jvK+d4ʨNmYj]Riv}F4?vT?/ s#T.f] R$v(p O*Gx}'3@܀<o2m|(_K?})GG&Qzy=Kn.{:r˛z/aK/c 5c*#!zS4,D foKl 9 =MoGud vJl9ؖPD{Gѿkwl:&-aƐ陳6&=8:.採Zivv]az, ;P\yzf3cĩsLFtSRtHAH;gAddYFiKXFsy{ OȒx]觹-L m][Nu9OvCa{NmG)VG҃4F氊ҽ3'v݄5K.v(šNQN_fͿ:PbV&NJEbC+5~åLϮǃ.znpcHO7Pios0'ASq;.wTJ "LmstH2sXDf=TT筺1"J.A'+-@>lKt?W[sys|Kn;)ژ%#My\/㸖p0搤oa*l@$ة8gyyY"VuBH@qIW5I~+,KHQ ' ltnB,1G<;ҡ]ndM{GiqgTwR]*^'tTn}NTUf݌cfUm %J8|\z^FD(one<i?YV⫿Yj`cq137YOhE?\Rfؔlө 1b9P!C zdU,NEԍq2tdIn1ڣW  O5'zA2|36lŴm`U_ xQɶq JsmK<6AVZwtq#͕P&;TO2)ՅzT%mrIĦ}ZVFC$K37z:Z`aրdC@T{Ux~q9Ev\@2ME8+o궛="Bjw>RB4ϰSxܻ?/`/Z> k\ p$CR'Cº!(4W|Z3Gԧt}Lg%#r F]%_3aPҿ!a 5}oDD9r+&dl*Lw>UQ_TV6̒QpЃ; ITXv}OYk&JhZ)40 }MC(]^O/ v+[:9} $%Usi0;i6GLQ]w\ZLz4r>qkhh(u IM^ven\FL߻Y(GTmeR4b0(U){XY d ._!5TXjjpK4LʽnojV/kѽQBf&kJIMl ž+ΆO,A8&p@~:Q4A**O9'hQKꯎtnWIɊ 1܅$V"JwWvjq }c3o~s0GMi_n L*s#w?do(Dsag/6[_V{cd%K2gס@Y8o[>/1lИNi+Ly#l#=mI<:jy_Q{n// iϗFh+^ g$̺&ʘ0JU'ߍ m߂O/0PEi4W~gSR˨4eI80-Vվb! TLp,y%ַS^ (dw]E^ov,+VR$lxÝ = 킠'>6i|<8?0Z8v=1,ڠ+jOKr|ŊL F}̕1Y2G ҇]:R>ڵ`Dx (Wk^YݚZM; ,fA]5w/3 fç%C &COZ1&mʄ>[ h/P>8:PZ$md%CnDw=pթ^k3A'~Z#5f%<Ƴ4quS*2_U~iзi%:-ق x*]09y?KƇa)y, {T5Go28v Dlo"L')/ `_tM#X3 1%dd7r0UUQ΢Y y2-D{<ϏRYN[O\R.uʺZGCd OзedW|aoѦC2~ 6хQg_Gj`Fd)&nG4;晚Oi M{S/cvc"eSQqiB 9x+"ԟfMk7*^ƟrXMBbmIxd*枷ߚG2㌷%vJ2j$]FJOls4c%4dVtALhAu쀙sBɩUXӑS?ƺ`jԭ~=یQ;Topu \M .+wD_IQ#Y%)+.s#LSG Kk%N(U.d= (Uf䫈'`lh 6nCe_Occ gVJU6FکS 0[+oj wm%v 7s=D']T<')毊.(AHگ޼nMxk$^K bdH‰gDv a>\{HлԳ]d*9s}#QuD(f ,xϐ"毌,Ì 9WxBZز" I0yr?F%*79sBnI^]|RޤZ#{{G} tka?ωQ"P fiC@x܈{4ӭU@6VfCE:Uޮ!6I_ԍ$?} `(ْݧ!bl&ͷNWPjJV C tTamA2( F.,xsik>$dhF*eqb]&"sՅ1BMzO[ D,<igy=q8Z=kִ k2 VI`q1-X47Ś+)T)-`Z1YeAB"ю#:XTG@k:(W>BQ/Ht\AϒX{Y! E#1|i.2z9VCaDfFqozciVߍϤ~֌>b!g2H͹e2]C:!}mԃUZRxֈOD8<7/5 c] p,=i(7NGM\ ߐο-V́SY{B/]!]iVpˇMr.WΜb׶b'RX3ҿ#Q_W2'~4*ۚɷw1t(Gcֹwׄ[2KN_EVء`/[4pvrVQݪh]U+ZcW_8f<ՎC#ί_ohXokt&E~Y8{ﵙt| "j,9HF:ܨa6J˂B[OMV",{?&)h#YjBvbexWѳ}Aώsf.lxa)nvvgcrjKe} riZ )/msZ/g;'֤ȑ n4T77:mxٯOK־Z|[vJQidDn*{+$e[׏b7mX RY6M(h ;%7enqI2r-<|\j Ƶskyf!bzP)71$Ye;*+[A}aһ*pdrV~#$9's(j qE pXo;?>4fZa5Q\H>慞~ʹWg{;Օ1Ia[yYÀt4 w"%&i;f: rlY1+Hkmlcq+)Hq PX&R[@Sq*/J,h)UW`,wM^v(&}1W9]FMbp"hkaFhn,OǧzgUWVQ=,nkn/myhf;"x ӻX<߈_VE/%L/?B "S?cdWߪ}kۣ U,J}jƫ.}JY9"9nυKKnww_T̕ɢZL 4fR+Zْ7< erP(H,Yzޓ'_lRP~\k]SI$]Ls!O@89C @P2<$a%5&tY·~ {/qT^/ YwR@l3ԧPk3L*}goUamncCQu5N//iO}u8=C)$W \)m8a%ΒMp7v=%Rt\'̵*PaKLzŹu@,FP{zIC;<c-[33=ېv(6;ey9#OOɊ+IswD.h0a$& 6mv9[XavUƈK0`13z`O\/MZ㒝X/po9wWve"pL{W=RA>/gz ˱qT.껟8r{9`jלULҰB[ZVR!Jb3oB VeRpǐMg|'Zh;4ae\^vW"Q&'K6l5|ѵU;L>9S`go:̸[o5VD;b·I(" 4kT,M2ճyVLf3kњLx޴FdDgSpbE=^2Zqjyh?usyb*wDlSk5 Ų\[c̐+XqM뫅]ם}e!Ň l0yw¼"B,6b]㨏if\erd^{(x#\5@VzN϶?BfD '7?olȃ.h:B OW?VBqt{'w,|/LwyL0TKt|LX,4ASWc.cgxC2hd5zZGh p&qyt !ِ&nԠUl{s%1p` $ BZ"}3Z%E f= m\[9*-6E.^X0hi靘esߙ滣g]Sa䂂%־eꥋ`>yEYo"4_NT^}!q4,N%^!C$R9M`Hf՝x*Cx>+R|LĻF"." Mw4"AUd[b(d*QVG7}Nû IOq)DP,or$##ga0ct@_渏~{K;rmFrΩRJW-TMY}Ct޸"Dr3o`lE3]XOF}hvS??]+y))$Ӗ>6E&!|>0Y#VOQ=vƛ4_.hhq>٘_4"+T[ { ,¥ss\ǷS2x퓟Zls qX7,Wv,N7rN4 sؔQV Q OHg=嘉toa3-kxrۭӋot}TTOIv} Q}܅~LuNKNߍ)"r:M452 s45qQ|׈i[/Y ]D+AHĆVYG? 2۹ xOCzhޘh$)'2OJp+y'Uq[pn֯0~=d>w%Hϴrܩ?YKUC]; .;ثi[<3,&ľ}ebl-,/-jZZ"Lº*vf:m#g֞w+\TtL)C^ } o]pKb7\wlT /. }wkŋ̄8? >xUi6W$3E;CjIoymV |:aPrM,sBz$ W8v-U WCy~*\td_{CJ(rpU0++zS|G-%i'B [d>Ft.@v.*wNU Nd7#R& xz#X@+P;c m4Tý aXBinT0NCy{)Bm}1G4Y0t&N0Do~Rϕ%JOnEO]|jsCpn9 \[9^!^Chn@\6^^1>8kf*rB-FaAjj.R<#hDvyCR!kyL@Y*t8&81n&<>nnd?Ʒ&Vżs\cxPDS -GN'Ğru5T.c 7GCvQT1=M'S\pڣ\f vW8T>MvŸjgutU5cSyAS46jMEXo-6ug$<\4ʺe&@PLUʌp¦,u_9qpby?(Đ#ńy@R~dZTaw J^m"Xq?9}YHs D_y"TwnrQ3J9z.BK((^Jy+10H>=i'5JYْUT2wzg\́ނ䆴k7{1G/5,di bfs] Y;UMe9p@9h'څ}'H=mʔf)+,n0ɛHMULP04d>=@}g(*>GgתuVI?ݨam4E.uT6WUL;>z朥 ٝhZJ&{ߍe3J3/> endobj 16 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName /CDSLHY+CMTT10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-4 -235 731 800] /Flags 4 /CharSet (/quotedbl/numbersign/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/nine/colon/semicolon/less/equal/question/A/B/I/M/P/R/S/X/Y/Z/underscore/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/braceright/asciitilde) /FontFile 17 0 R >> endobj 63 0 obj [525 525 0 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 525 525 525 525 525 0 525 0 525 525 0 0 0 0 0 0 525 0 0 0 525 0 0 525 0 525 525 0 0 0 0 525 525 525 0 0 0 0 525 0 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 ] endobj 62 0 obj << /Type /Encoding /Differences [ 0 /.notdef 34/quotedbl/numbersign 36/.notdef 38/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six 55/.notdef 57/nine/colon/semicolon/less/equal 62/.notdef 63/question 64/.notdef 65/A/B 67/.notdef 73/I 74/.notdef 77/M 78/.notdef 80/P 81/.notdef 82/R/S 84/.notdef 88/X/Y/Z 91/.notdef 95/underscore 96/.notdef 97/a/b/c/d/e/f/g/h/i 106/.notdef 107/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft 124/.notdef 125/braceright/asciitilde 127/.notdef] >> endobj 14 0 obj << /Length1 1309 /Length2 8438 /Length3 532 /Length 9255 /Filter /FlateDecode >> stream xeX[C(n)5 $.E;R(Vܥ@K)Pe}i}n7XxcI蟫i``ԙK % b͝!03X%( [<^<~x008(W?@ ͡esgk Bq;;_w84N`+ĎA 'y% O%W0oLG [br߰2.vv*ݩnnW (@`8SuS .*lnC6.vN';qZ,P;y>8uŵXu/CZ`쿙7?6 qr>v1+*& @`{`>#(?:`œoʀGVG]?q.!Ǻq8c]X|, 9]r>u܏u990w/6.W61x,2.ǹr7[B60 ĜlRCJ|GKQ(SۂkSwNi l e{ Kޟd^8DLih#'}]xas4k ,_-T)ms#LߝzziݬZޕ> ϑu-IVFJdr\J{X}uZ-uVȱf?.$Z2Z7v/ Ө!\mwCHH[[/Gc&-:i⾞ t1"c $Ι:4<$>&TDKGJhnnDQ~3߅~EՋ?0_]dD{(K;Zфdw˯3Q[bqU6] gVwJV/3-c/&#Wc,n,P8qz1=\.w '4~Am\^Ff'PYfkzE Z OYSʯ3*@(Od0kmaO[ v(sGyR{EMc$7sݫNJ=jϰiJ6I%5IFts(=湘'+%W]DJ%al\Rbh Rw5ACwOME _ ,IخB=^%1Q<~G.Kp^1Wm"gTx?QbTbaRrTxS6?^}Avr5ݺ38I *MΩ0V w|+ hg},tÎkԹRޘ(?aczDe|jE:аdHl*Ah0hnDȿ,wUb]rMۮ 6ўjǹ--sprΙJWn/pfUdlwN7HO1tzE'Gn{gSAV1'uD̍V 8Gi'/ۙsr:U|*x LlWCRQ_6_0(1mP\&u!]frKh]NGסP~O ')ƍj˟*EH_ dCZ7WtLG5W/|NML?&y L"  q,!l{Fu(+Tܰ8p3MDlHd/G[T)’59W$h<2kJ *YvR.ο$NgOO%r֡#o?{/}8A y!!x`l%׶ʩϞ#9 W{VV3oO~w)s#P\}%eVf`hnv)–axK]h Fuȸ[8,1£]xbL`TxLm<{#ɃTޢAcŝ%{N ] 4}sf ^WOP^FQxt2: T ͼ>ζ}gr=GD]ͳv抶 i$U{:5FbJIia;)JK"u qRi{ś԰8F!7P{ >gQr !m}:!IoN@G[?d;:pnAj VT"j ŠKCYچ(ѾT .N)/y8Sg.)2؂X=\b/gM|1WjKf\ syr2~uU%iq(:>/i(Pze[/M[e=ˬܴ h,EjD.EWAZVleN)&:ڭQJ`WΒH(KH>_z+9+e_))H0FGN/(%6W_D&*ZJJ-NԈ^dGUz)~>CˬiбᤸШ#]H>Ǥo00O<sj]t@` T݀>gOr fv+>ϔ LZKEOQ2!'RRѓɼU4RKN8J ʹ K8gS|PZȮ(-o4!ֈ@Wa5*B&̼K/mWyj N?"ᇊ|69o94,J8Ş[U!c~qJkqq>2 ;Cs CDJAIs5] /%*& ߈K8 [l(x c< YNtMuj&C j9p@4 N| MdI.Ixys~õa|lH}%t77w9D͒4ӕkGN!̳NAm7X3݆V*o v֏⤢!?*i 5p!8۷rv(!p2-`@ޯ_ɏ-tQV ^|-OB9m!-\0+dkoz V7gtaGoxM`&y ͳ5RY~HЂJ/$I<"X๧ 9b?>¨o׬Ywr+6-::(KU#2ǷAQc\%>ZM3f㚽_[hM:D3~%f xc(|G%æ@Aj86*ȟ5MEt?Ι>R~6{WUE'.wᇴzfG7ui~se9(%2ϻE&إ{MȔٻewĚ`}RuZaZo./흲>"ӳ' MCVo_h3;How(Z7/ϿX(vUCqu>IL,w[!+c܀M#c7fEu.eo$7AzQJqۊj!й `Zѝc(3SE]zJQ/ydղr|$ݍiUQƭ4RdVM^_oQZ*rVc([t61AfC}]gDH(R8X=?2lWCg|D6MR .[K ֻn. DY'ACcA]5ʑNFZUV}|_,hI_9 $ƒVEQmSry;ȺYӪ,GG+}]{WFsb圖+9\"lS؊2Ww)?zZ?|油ZrxJRؓ]:VM5OofFa-&&D)tb~3tU+xGJ\BsYuiu^(;3X=3Wj9ffu>$: xt*&@{(p9BhGR<9~w6ȼbwre5`xl'$瀤nȡé[+5ed^p?~NNu_77KhX}ϖf15K7LP=ew"q):٨&&š6n!+J&uߐT%/IZ(7;7~ifZ>륫7j8kY|<)s&29sZ(H}@VKLw:@KoDs!7]L :J=-?l7zj_!(.F/2QF`qqjkݰ@G et2N8cUܗ͌(9=7݇q :@-'y\H5+MFa>MQ(VQGߴ$kN} V?-t7p5UvZB%>dw۸B;+HFTrkJ$+M4>6A+6Q:kbf'>LB||K9ꇏ =Z?ih4KAiZ\ I/ЛWM)4 #VPvݐ ٯl1MU$oR0dQ;@}V6,VoMC! kZz=1W6oB12 )C>;vф$[K͜:tCb6L l{j mU@B Hm7SS_ D.L8wDkl>شL|}l|oc(P=iw6֧d |;+Q*Z] cJ]hW/2; i*%5;*ۚ9CD~T6Us2n׋#ոHާe{|u{ձQ_岓;(M׆ zҩ@&ܔd3D@x/Ͽzv^ €gT8X_H星ƕ@  _i׉q"!; ͑f[B?T$!w"_|w@LIV!5;6%6  q,^~E9>h4ł!4s}*QثEJVo%QK8+% ˈ81Qx=G=̓rRsRrE^(FFn&ƿ],H>j!5<VGa40*[OzFI/L_@$t*@Y:i$3S21icB"xZ_:V Լ۷$njэ,P^!}u:m@Ų15uwcϗ7xO4mB个zW "ֱ1 S!؜qqH6Sg] A{LvKnԻ8N1q$_>}養ޤ9P2Ed9><bnSKM ejFW5N|l)k^"I{N Z[|J~gtU\nK?vla|9?tvwQ-t3=4/e%ȃG@DJ>@M\Woj5<1{6)}Y Ӟ{@79m2DӬ-ߕ9H"TAj=~=|Җ`X3Br5BJ346KẸq6PQ%a'nR&rm< aDs:x.?~͞Jљȗ^*cNL iϕG;X^\X+\ms轹qaOo'52ݩFaOg&UXen{w6zrԊ$uzLiptПt yț/㙴GTs.?xZ [%˥voα)fnpO ĵuy ,Ah xJyZI(A4'r34pg8#&qj}7Ptɲ0M;,)](#an# Gb1ڬ!X%r/JWߚY;NgL1pXoS WwGEՑ*t_#hyH I%='MORR.Z0})8"KuÞXha`?-$15@ơ4heedCK8c7VbM#mwa.\^ W\@(s̄afclWCRZ&b+(AQ3Ng B~׾Mop`dWG}x4Y{!@-BBJڗcl>7"RqM/D$Nl?7Ux1;2?B1'2?->[m^L+E#Ѩfrд9M|rT2kV%\kvmMDd"6Ӌ U Dx =˃xRg[zq A8dvduE0J*5W=2Hzmw.@?=]5Lcgg&9&dbXK0Bp-l'vYj;mpI8+U%sYDz qn %FcLYYgr9M]2Kz#TwѺjeZFG @Dk}7CjuvLOq`T9񒞾|ݼ_ߵ*^H绾 ~Z|&9 ZM/Jqaxz%ʊ zbCb;2%Q$_G2|Ŕ5yΊ!H;x+vS_+\g.Se %5F z567g֭zA@6l8X ?݄kEķ.Czs4AoiDd9'ׁ嫛>G@S;Xtt䐙v, *jh$c/ #[_4J?!A:.)pTc!d =NG/<oxwcu1v3Gݑ/ꭄ߼-|Ƨ.u*]LZD08&8qDzJB &@\IQa㥬P_Os% haۿk$Yo"uW*[Wka=FX09__  7b/mendstream endobj 15 0 obj << /Type /Font /Subtype /Type1 /Encoding 64 0 R /FirstChar 40 /LastChar 120 /Widths 65 0 R /BaseFont /MWATJT+CMTI10 /FontDescriptor 13 0 R >> endobj 13 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /MWATJT+CMTI10 /ItalicAngle -14.04 /StemV 68 /XHeight 431 /FontBBox [-163 -250 1146 969] /Flags 4 /CharSet (/parenleft/parenright/hyphen/zero/two/three/four/five/six/A/C/D/I/L/M/P/Q/S/a/c/d/e/f/g/h/i/l/m/n/o/p/r/s/t/u/w/x) /FontFile 14 0 R >> endobj 65 0 obj [409 409 0 0 0 358 0 0 511 0 511 511 511 511 511 0 0 0 0 0 0 0 0 0 0 743 0 716 755 0 0 0 0 386 0 0 627 897 0 0 678 767 0 562 0 0 0 0 0 0 0 0 0 0 0 0 0 511 0 460 511 460 307 460 511 307 0 0 256 818 562 511 511 0 422 409 332 537 0 664 464 ] endobj 64 0 obj << /Type /Encoding /Differences [ 0 /.notdef 40/parenleft/parenright 42/.notdef 45/hyphen 46/.notdef 48/zero 49/.notdef 50/two/three/four/five/six 55/.notdef 65/A 66/.notdef 67/C/D 69/.notdef 73/I 74/.notdef 76/L/M 78/.notdef 80/P/Q 82/.notdef 83/S 84/.notdef 97/a 98/.notdef 99/c/d/e/f/g/h/i 106/.notdef 108/l/m/n/o/p 113/.notdef 114/r/s/t/u 118/.notdef 119/w/x 121/.notdef] >> endobj 11 0 obj << /Length1 2036 /Length2 14836 /Length3 532 /Length 15935 /Filter /FlateDecode >> stream xSt%hm۶m۶m۶mTJ*vŶm]xm7IK[}9蓋@^FD֙_HF^DVل_' 3' #$ 3>?lL- le MlrX+Y8{ X[+3 _Ę% [S;|]Oӗ>4)$l=ML!d|?X[ l,=w;{gG|;cGUn2&.6UH! 'Q wcy g#s|Sk'MlKNZULVT{6y [ged;2|u?tG-[#;c [3|FV|GGȯE,^ &&_tv_C s:_h2O3;9Z{[;LOgohbkmbWGG.N_ll DX=MlXF}3bçs6p2aǧ4q5|:igRt6w4?+e'ZYKk_N&~͙Kolm Xw+J, +kڢkbkkkE}H/?"\C_.E}UWC_ՕWu?U]}UWC_WuWu?UNk L߇ s~9 ЗџF`~9_$ךu/r _V6 /+/r ᗕ_e~Y_Vn=[_Vᗕ_e~Y}=? _Ռ-LM,肂v^4_O?z8~=dkryΈ+29Ww%7Axن.o֥R?_2`@ް";&D/?\2=۰o2e< N:XlU$k\ ȓ +j6ffZ e"POwg[wON^ oZtA|)O~DC0cRܡDV<;+/7Sr?YWE ћB qnT'x'a(c3/\*J,!{8O}(J#Kr.Qզ!i$B{) IhϗŸ#Si b)H+g?-ۄ+-կH-A[)? 6# qh_FY7`/ =xK 2@%ԁ;h9,AG#e&qu'oݨ'G9֏\]4cd+pK,s5`(@rGX.AuQ8#^,!qb:.jo1eҙI%&jw[.bgEZ#\"K(lj3ҿ5h7QVcf=8ޥȷd_yOODo79&*X SCBu"?}A/Mz`/z(ri  *i'"PA6}չ=~:}Q$?q̭XGc8Ii4ډ0OJwFCTm#caO*k}:nQF%~ cQ^\E?9;7)ʧۥA.8v)R$1ܢ wF<}|,Kiaӝ%ǡPM`Aӹx=HWcޓ 9n6-[$P qn]1`]wՅe}|cN2ADi0&J2yHgqcfu:[w`g֩l؄@hޅ7ᧅO?fh< ?N>~YCÛcU@\ZJJ=`MΦ K<E/N%jj5d{0_#5S%3,ǣ}&7x}D;2kl[hhV?Bri~!y ^qAq>{UXS[bIYSCIlpmM%z^aK ~q*ݖ\+ö8դx$!3af֫5INQn{-!T:vINCg-H;mWRGb={eCbYYcT l& tє#XVeQTB0_+O$DcGB14?D!j\xVPhÃBt4~i IXN(G]ɭaH)@(;c69GOa=H/2W LXe(R-[HT|bF$ @]fz1x3UBlu#8BkcljQˍyԓ('54_!-c[o R†L:t^e;ǧ\%ff.:Խu 4b]=Sl5[;Lڭ\Ĭ2̰ۯaI\N4R,j/' b m#@\ rt%{RwPo݆9"$$Ҏ6jrL~j\.B Q'9RQ(e0'Rp;6| ӓJ@Px`1@KC,**bSWB)3kVb(i.>$h$Y,~dʉDVl Jg$| ?6. 96N>?HU3Wr(~Z_]p.ۭ97VƯ! B6(П~˱: io 3DN#cC}w?py,D\ Y1;w[1z`&3PloLSer, JC?pt)|Bꪯ'V6<njvdeu-*" :4.xE+ՅK࠱>s]}>dK}Lo~,|U?-C%Ns^3?kr붻)N@Il =짠uPA elIsEcGЊc} 7nzV2ytDTam.AҩGw',Qxrj2ҫ):zʟ|IP;5ŏ_kk4,PG84>Q#<. 9ĭ(=y&åP Pͪyįᅗ4)G(W wd;p Z>׋Ekv W$d=ϋޢ,LjJg6#2:|ki߲O@&{K畇P%䶛9劎 Z%xxoޜ͌^ Z}Ri$Kݲk/a/H-;&a|SA> j #ŠHځ שw_д%ϸ]Ni1;@B)ݧKAZ#aQ"Y7ܙ!仵ad m)0+KlVDir#5? G_jC7衉%y \/4YƹTq ־3N7uJu ,qr "5D\rP1,C?N̈f Hҵe˱J\y]c]&.@̢LW+"2fi@/P?hnm~üVz8\Yi ' ] !N t2Q+ZCNV"+3H )MSVV7;t?!α*żp[! "ǂƮls*u.NN["HPc~$7l5 #m]J6]X)-].D=?rK*,lxS5N`x3"u6WX;muJ"RfwiM|e=Bz p>ZCB<+?" f9RjaWAP/=}l_,n휩YRMVE؏!o|:VȄ*x֡vju{+pȼFV ݗHO^-s>26qJ {.E&Hf-sUY~wufO VZc:,|GC&88Yr9GA ).t2Ø1$ f;zm-we F1Sa"làmcyt&D4Ǽ [04#žSJ3-bN,w)` Qq@ u|w5Iɭ` -xJNyqrA[ IݎufgNV! +UiIU3>)ѽAn9̼/jqߎrS^mo> Sf|`̧<7t5Ņo(q=ffI!/`JYb +:DWo<b PQd\Df Nx$}~PT]/J8#;3ҁWg ZRfҀ@F)8?x/ƍ8۩?VMB2 :$_t {n5ꔻ*(xpCsQL "n3DD%-3}l?cE-,0aF{ /{/ I_MpDGUqCx#-$Zʈr;f",>t=Y0|@/ߐO|@m+en;@n\̿8 1`.7W "<&y*,sT+ 1%I# 3 L ՞}:Wŋ 5Ela7iК{UtPLAo}ȮqS1T10r3Qov:~(L׬!ƹJ'btUPYz;\yD^V B?;noN.sǫ4S_!"P6}:GCg OxN0̊(Qy0܂u 8 9EM_]5z2G.͇0=iǖcT' =\{1U "t5锣nz]RH@zoaP4#P HתN&!˒W`/fH+W[L ̶,I=ڪxk.l^:bDTr Q 'eثpB#Ym쑲zsDIQ[ 'U(di#Xg6 ć' ,s)9Qwx)4s}(2i ٩ɹhֹ~J m"15L)ܲ ' 5qgra @RnG/'YԆɀ u\D:0ҥrk|H .o(m`LJ`[E #-^a7c+p\@[R<)yo\<N|s5=㝬bzQ6^^KwB ?<_W ƻ?B2q:Ju0邠bߤ:D?}NrP]|'/, SK#.>#@$vE~ƈQt5c/f]*dG7؇cz dH{?̵@MLQ;`SZ &~(:ģdVyjG7\EGL-{K]M-=$~ r+mfL_2xKg޼-LdvMdxmZA1-wݕn3[?`;i J|?ԋ*l$Fhy=ʥY!/[A_,DLu{F-w>iAԝ8AJ j,ovܒjFY]@O@#rC~vk>| |>!|բk*?5dT'Lt\^Ҕp5åL 1I# Ybe=5ܼ[C w1Vt^`n"ɇ1{*b8 2 FzEҖƞ)!1GaK~#LȖ=F;f/q-!Q|EվW]8Z;Zpr>N0cY>b M,c|#A]bé[<5J+XW;.'K~ ƀޢPp|yJ6M.}/f#ssQlD&'QPh,y9[ubh#\!8zg@>]Sm#ٿAcwY)nB&,J#zvb#0{4B=Zp@^5҄nqȎ{43F֑M sOvrh-G^זvT>\h&}{1 bT·׌Rʸ*~. ?{{t!1p`0b'(heD"JO-x~ m 膈T'EΎ?Ldt`};BL oxɱmbK 8'CM7u 8P¹#ON#_?HO-> Z(`#,c?0Nz3ȹ)0@$Ƚ.mn_{j. bpmg3YjA-++H=pE yŽri;!=M$9RIVr' d0c=&|S~nnC ?t1QFPK p'˻M{=SBrRqjvzfJu"x=L"p7FԇDzZevF7Z;9;{(kv>,cbl~h%%|2wΛ\Sf$"+u+G/U~TT,h8%?JۚI*L0R2j(}%CNw;pRݱy g[s0綔==:Ȫ.OW m* [F|Ef{i/Y &UgX.P*T`36汸Ow(LpcX~,8&Fz;V;$ê]aP?5iazס`^̙/N ;\2CJ%qYU<=k~kK&keHV!Tfs%"LtS=$)j;m5T@5Rvl8(3y.]^t~võgЇuPz6e?K- 7nBPgM7-s/k^S\(ޅg+3w^4W]"pUuBj$Lr?A!;[zj%J:)TTů_`~Y;$-[1g=:Ύ˗?Fr0$>v'3CiR{"\2t'\AALOV8:SB3D"Yq!Yf )G̓"7@I A:qQb@]RHmŦ^; Gt6bȥqXz˔$/X<\s1%}QmWcڔbݘkbek1I^ \\\~=p'20^FNoC<$L<) (遁7 pTP:Q(µW xa.RE;S׃s >#'@O;Er]ݴlBZϭfiEG)Q-DQĻaj7[Z)H9l5 f[|-JN/#")Rq2VV3ND&0oؓkdtG MN/c')sЌ2LF"u!k =imu{d0_4:6\mz:4* MDcxwM{g'\y`ƅ:Q=7/D'3Y<vl~YE!E~ `;>>[Y$65F3C.؅fVҡ &ȅՂJ=p9l6,GΥL ]biM'|KJOBBE덉x ryU Gj|Y޵ϰezoW~LFY7cpK;6Rostsx^lG&GӱN[ڑ}' $:&q4`2tҸIο%ʄs)f'RmG!:B[+h;mzjQFj x"-dqgIR ~e}&#{E" 2r#:"E>F2꼣̞9tZu8wļe\S>>*]_$cKb8J9x Sz厦΂?U&q!Z9{:T~AmnPm7@,n>n$[raѢYż7R7N.tc, 2Q4 Sf}L+H5Ƹǥgs?{]9Q9Hw2#v.FkbYC^ASַZ ዞI ѥaL0aP37<y-18b c9a'=*&I3訃U7RN]GWn/, Q6,BO^Cy*V ne_1O/ػZ]kj*fɨ꾅E)cz*ȆE|e4)"2K0du狺zY.7Xt/ @Jt/&>/PIZnr_q_, Ʌ+| I*t^j=,ϑ-B jn@2V(KwJO}s 7,DDgFT-u|}JqVbQ.š v̺??:y\qt‘1C 3#"LZ,?M,GDMӌ'oQFE ከgON3kpBϰFU| oSp%O+7PV H>g{.!YbDn{2 i[@p[=iJhGh̸dktй? BuɬTpFq!{4(($.|c ┛u"$EQiKt)̧1n֊'/?C1~DcA+txvcLW"(ogi&n&ʻ_;K?- H$}`#梣BZHэ^"ۥl9Ou0]MrVY -K[=6C˱4bA61] ܄Ad{:-#3*^EPz ź{!%˛-ݩ# 4*q~k)\]D8xrut?,4>GHqq(eb&9&,,@q.-4ad,#TKUe3::D0ZFD8$HC6UVJ|.  KO0 awI-my3uqӞ"= _ŗ"'pUxWk5?y3`eϽ*7'HjfhKi0·D$,&d=iI5N@{W>t}G=egKZl4xP+XRۘ!KC>%UN~yk3 ^֐h<^FncPDh )ao>*' O 3]NP/ ~%j1@IXh˲" |<"Wizu|Z7* m7䀲a&װ4{wڧzb VAsʼnnMΩ…kƒ6i|qmD7c5 (+.b GeB*U*z!WLlvxm|1=U^9~# q), (?O泰pU0i:((*$Hsf// =KI ^qyY\[en%J>G&0__?  6Ŷ`g?$kRuh߆$J6K4 e}3 ޶sЀ>Q[rtB9'ꢝ/^_7yO肷s'ӜAhXsP[&kÍ֦ތbSṃܛ>E4O#)oWhgmvmӨ voioE5?ͺ6֮Ssum|ÎGoI5pzĄxDɩ:;y$R>4No§SyCc$?*(ٻfw BK V삒 ̫KLLqGe X=s#^e$'bmH?yEcysK q Di QmeNn +s!f`Y,tPsݱaZOS|"SBFվ(bmك4v[PVE{ԧK5gd̔Gn o#s~S-vKZh 3uA`Ni(%t&{@RN%mhN2 vU^WB80$?'Y8:8ZA/8endstream endobj 12 0 obj << /Type /Font /Subtype /Type1 /Encoding 66 0 R /FirstChar 11 /LastChar 127 /Widths 67 0 R /BaseFont /LVGNFV+CMR10 /FontDescriptor 10 0 R >> endobj 10 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /LVGNFV+CMR10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-251 -250 1009 969] /Flags 4 /CharSet (/ff/fi/fl/ffi/quotedblright/quoteright/parenleft/parenright/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/dieresis) /FontFile 11 0 R >> endobj 67 0 obj [583 556 556 833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 278 389 389 0 778 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 0 0 0 0 0 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 778 0 556 722 750 750 1028 750 750 611 278 500 278 0 0 0 500 556 444 556 444 306 500 556 278 306 528 278 833 556 500 556 528 392 394 389 556 528 722 528 528 444 500 0 0 0 500 ] endobj 66 0 obj << /Type /Encoding /Differences [ 0 /.notdef 11/ff/fi/fl/ffi 15/.notdef 34/quotedblright 35/.notdef 39/quoteright/parenleft/parenright 42/.notdef 43/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon 60/.notdef 65/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q 82/.notdef 83/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright 94/.notdef 97/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash 124/.notdef 127/dieresis 128/.notdef] >> endobj 8 0 obj << /Length1 1239 /Length2 6316 /Length3 532 /Length 7099 /Filter /FlateDecode >> stream xgT] HU@"Azdf$"TiAz!HP)&W^=yί=?u{9WI!\ %`! XDy!PH%\B XT". !*=^@.EĀp- Ԇy9]q0!ʻ 4{=|vd`0a|w@  GUv ȅ EC!]vp{2A K#x\k0Pn^p6VSiޮ9sA#\@пJONexÑvoG4j+<Ӄ!^Fn73nw<~@ 5>~/e-]Q O8@pS= ڣ<:Naa-W_#$ twI(@S>1 ]Y~#NAUNL7&j&?$KknH& J!0q?P?rq 7qF?gqFn N){sqqq1|*(!@~!0nŁb"WwܷےM~EJ;jxV7TBȃИSӉx.4yfk~R~'{?==v&Ftm{O7 G["x#}ݙ{=9z\JFӬ:,|:0bf*.Ƒ5Vh(ߛɉ3OC"INZi~d']ZY0dZ!?;~uuqƩ 45,4p&2`o>-2C¦G#|jezN1~bNLf:[fOJ'!Aky\꺞RسȹTEp b$NbΤZRgTdǼ_8Nܬ')![x~V7r=H\ r屑A(ow,Ys*I4* 6R4cNL)peG0䘹u2(cֈ}N=0r8yMgspVa:vi޶B6cR=ǾڜBb=n7/ڙ{?d {sh$mRrߊzx'wNETw஦2p ӴlEa7­YZ& UgȌ"gUxIghhv@ uՍ^ѢOnV)R:błA\rԷCZo^ϙoIC(DKyu'dkOƾ$?y|]xl}v)W^cr2/ Y[WB4mD96_c$;^՘~@ %VɏwyOy ? 9'_45|9QS ru'{_h.5:!8O#f3\lZ]Ng?TE+UzmՇ·h b & h.ͽI=">/aCdةT'=p[ SUҌa$ >/"ạ3ӫ)vܲydm͝nf&N>%[J<}w<:Pu" >bbBxq<>ӫ$aikdΠݧ7 wXz9Mr~BU9bu=BAzlz50Qt\BQ];qBU䥚()yڶu:P|zn10Ge1Я]lPqRA.'Ix2*n s€k~E˜-11x#JB+~OqO kWr?\ylfth'Hm& %vE>Z',{Kj*_fBC;^J"ɂ2xvUj0H>TZ J Œ+pb,$ !_3q V^):w[9Iޯ:YRЮzeϢWP@]v7ʘ˭ĽvnZJ( IH\B"W4X@*%jw)l^)Jp:dW۟fhgd^i]i; 8Ô } ahFEOk 2ᗲ0ҲbdE揙AB]լ$^nk )9Zew,RX /p!IP `=GW]kumx ̻1W/5epk8X}[ Uk^ מ? q8ߟ[gΙ,[^YmNA"Z) 6#|ʰ_kɷUJ ՒC^\ORb.Mǔ^~cskrz ɪdU9W&ǩeA< _^126't\+.;Tx ;/mfI/}`cuGK[;eLt}3_"D[sZVx!'QYpNdzGA 8ˉ(ٴ帝sE.s)Rk_Q+˰Y)-Y`N9ԯc@ؽp{\ # mKP6wne8gUSV[8s_@}QX9m,O=G"4+Jpʉ:.@س Ӏp_H;+gnn^-3szx#ޠT$bJm <| zDCCS_-5S& ؛ѱm;c?8[.]!L6'Hnp_k<:ޢ!Zg%۞/8U5w~N2!B{˷m/ /E޺ُ}coMop_?QbJ=IL.5u&n{}~me][±Nn{K Ke\_mXBeF= ѤUĶ1=cI*\ sdT'wUmhbi&~GZmiEc'NC9X(S: V3d,2Y).ԉ2x4=A[-Pp:hP Jmںi~Ug ~t ~S.psphP& SV^I)1J(7tr(4Y5:z48ptߚʇ-ԯR`ysBT|,sЛ9/dJ21u Xב0ɯ"$?'\$7rNU&dMPԇ]ȴj 6/]-yxL2kZ;xY0fU=,ѳ=EV<=Fz#وz4Ъ LEWFɝ_M 0)D5Ӳ;>O(f IIWΧr̮p>%t'?i@OB]4VZ~Yp?2v hX藣YB{ G'*l/^hgl ( 1w+J =elz식lje{cvܝKM[jA Dƒ>UV)dXyڟk{j@%e=b:t䇞;zIbuv,]om5ztU UԴ*0s`|2Ee' !;D}kFV}ɤdOy1Xp=k5,Ý#Z7Vih1]Vm}F AK|0h|=AH/$¼ 6y]`5B)g]e\S#`. Uo1l]Z niq(qׯw C\}ޠ1-eB`[ g"E;񪀶UZ6v`^t}ɗ_(_HRc3P)y%}/cm E'oJ}h{EVp]wz#e;pb#ϪmܐZ}iχ}_&֑J!oa >݌j ܴ=0"u 0~Z@#J\}D-nݬ: <+?Y(J$W.4vbb~@XLb Çh=ɢ+>I7rET< "<9iWW>::sy0?Z̒\lgY]j (~ʋ~3Qco5W6@),_MNJ  ZVZ3>Z!>_Kٱkc耡pdpNX~vcRU9CB(}g|7:jx@ M8rLdJgښV첚<I4%$Pu?mOjl>z$=@I]VOUET8u(H` c§WW&IB %VQ/!uwBʗfubQS` 2uPOװRw+e.T썎"#dQmCL~? 5u6Ny;5lFY C հX,[1NhvtQ\fZ79Y#0ɎoO8e1fFWTN/T5ȟrI9*zGS{CL˻|hBPuϨhd^e%夊WB7@]Y <ց^>XaAD5#/"T![Sf?L~ "=M2b?PTW"7X9 ndEayKi&y CNZzH;kV1Y9XKiW&GO'd\MI}~ZNqNIT KlXga6 |9E-ڔ}$ʫOa7=k8N[}]Ӊ5€:qtѫ$vͪd]֚q>6 HhOƮ:3u6b"@Gv{)} v-|\.2m*&}Sf>M'#.w.p [{IF\o0cnÊ$aG)V鍌U~?nU+.0(ZggA?o)@6)1ztgv?,UR o4|BG߻]n5wqceO:JUǼWHugܼY?dz]H+P8|adw|,D gq1mB[ƴ_zpS䗈ei'ՎъapD{oyr@q 9Rų}I "u5AS(-Iȗ " e`iP+;9g>G\m)0n_fնP@Gd,^Bsiܖ] u X_zUe)Hǖ1b}xl]gI|[x\4rV[_zAQ*4`ugj `vhFUR-fFނ/,eZh/ɾcM2Fwtc+9 rx-ɦا-0ϏUL/eA u> endobj 7 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /WZKAEX+CMR12 /ItalicAngle 0 /StemV 65 /XHeight 431 /FontBBox [-34 -251 988 750] /Flags 4 /CharSet (/comma/hyphen/period/zero/five/nine/at/D/G/I/J/M/U/a/b/c/d/e/f/g/h/i/m/n/o/p/r/s/t/u/v/w/y/z) /FontFile 8 0 R >> endobj 69 0 obj [272 326 272 0 490 0 0 0 0 490 0 0 0 490 0 0 0 0 0 0 762 0 0 0 748 0 0 768 0 353 503 0 0 897 0 0 0 0 0 0 0 734 0 0 0 0 0 0 0 0 0 0 0 490 544 435 544 435 299 490 544 272 0 0 0 816 544 490 544 0 381 386 381 544 517 707 0 517 435 ] endobj 68 0 obj << /Type /Encoding /Differences [ 0 /.notdef 44/comma/hyphen/period 47/.notdef 48/zero 49/.notdef 53/five 54/.notdef 57/nine 58/.notdef 64/at 65/.notdef 68/D 69/.notdef 71/G 72/.notdef 73/I/J 75/.notdef 77/M 78/.notdef 85/U 86/.notdef 97/a/b/c/d/e/f/g/h/i 106/.notdef 109/m/n/o/p 113/.notdef 114/r/s/t/u/v/w 120/.notdef 121/y/z 123/.notdef] >> endobj 5 0 obj << /Length1 1357 /Length2 7393 /Length3 532 /Length 8204 /Filter /FlateDecode >> stream xe\]PJ`haFcHAiP:%D:8s"G 3qm &j,V%0xkB-nB:  #)!b6 βXr%!^%3_Mqr4//6GL⏸)_0EEp>K֗2OHUNrsȠLy)(ř<{=*~~ǔG![[D\XʵDH٪.S4@9sou:r%)L3I,,`5\Kd|VQyc/o 3݋j/d*;Wği> Ė.*ܕn~ɵg>ׁ|UlA1ǿnJߵ^L̝Tpd3Qe#Y:u峉>a}03!1[OnRR\3MQ'AN*vuzf_ .BMNa 2V,ӷJFǝ6H#eu즜aj;Z-5W2Z! ͹M@ ]S& N0|eS0x9}> uDa1T#{diT7_.xby{=Dњ`O9} ./+#?X&2e6zw=RT%>ZxEgLA=.dj]j'-MzcAf /T»ϹR1 yTN˭kA ~Z'݌D-<3L?l=X_W>^?yi򽚲39B3ID/pAO#q-_` 5'p8yc[&7;ɲS1@ϯti{:]SmƇ^[n5*m [|88gO~&KB!FλR/r>(OcGzfҟ5U۽y4U$aDL<w2GqdYo_kQhZ<32(t4U|"|888_2NB3*^cai# :[ĬA7n/j/) =ՎyG*/4HO TюNb\ѧ 4ұMF;{E!+c8[0fRhX0_NR9`hWOSG7 ȵ˛5kӢܾ`Q2Tcjk'e@&cjz|]۳7;VvduC1ko '/;oG w=$g9%~+3vA q(7^$,Ws맋wOt^ z~v{cM6?Gh=Lb0u1U8>)7ՏJnv_en}5h6*9%3LiLC|)V2u0&@Ր#Qc 1Iq5q0Bs"(KEODUQכK(sɩ֯=>v0'-咐)asAwEWM >Ϗ/_rU#~n}t_su-H!.ݏtJ10l^M66p}{=hOK8Čd+5ukM('.k N\5EH4u=Tn%S1X,9}bg?Xp:<,FuZ~(V{Tha:pէz5&2O(c͋mgOpx"B< %Lf BOT|!-_~DTo ⯐y4/T [hB3mtߒ_m'<&4:O44AKۻ] D&6>jKa\/ߍ}#\IO(Krt/ĖF_KAk}Tաzz,&{KO2h.æsKELY@Z5(՜oBEâ Zv(e8a4W .TJʣPvWe$Ҭx^5*1w)Cd\o֊n[rLC]4Ow A-v} p-H!" ] c.AQc2y7tOGR$L^:|;VM?鋂&.Oc߄4(HnZ y1V"|Tgru[ZsGcoG6*v2sT,bk|nozL  01mDbaо|NgЄl|~kj%6iR~ 9UÉt`W :}/KC 1%SVm2QX~@ofWs1>1kX)jd qr=$w_])o{@w Ӿ(0d<7 v(t6,_֖.B=,չ&I!j8Y@)B=#DDZC奚Wpk7i7pD>'WB_*{ɏ-ߗ`5!|0W%Gp;W&UZ^Ax}R~+W{ZPE-On`Uٵ0v/]SoA5K7BOD!m^mYGpg0ueݶoP'\g]y,+/v0*L\On@̤]'S׈IMU>̧#R8>$Ba ͻv=wQ!5zpFZB/&d>.]Gcv)c9uC"?t֧F4d8׵ͼw~+{ s52^kHV]V?g׽U[61_: "HqHٲ՛S^('wuiEOi qnu3.-L]\LЩbbIcv@C^RTR5XwygvYw?̠~k- Tj:\p1,ՔE~T#Udp&hT˿pSaA]pi;z? T*;oi{:ʔ .ID7YkL.VtӶ_iݖiTdQ_2NN>-e&+(i$6ܚ Pn(O`Ӎu[ dyͺ+$H:@ju ?Ҝ*'X/Me}tt,b7\6ٻḀO1Z<(Pl3<4Z֌ ·SNFƨ|"_OLKq&| _'~eC'& :XYH= %vwuiI>a}٪+MɊ_E@TeG11̹iaY|H>rghzfBP|gp|iwnw)*vJe2_\f]_2)Z M3 = {VOv<瀛 Qp TV\W]p_Ä(؟5l91ۂw"ter`Vhc> TYR{ŒX dpH6B[h`WX!4Ƣ¯fL!Dd#vMAK|HT8DulJu_z@$UGdz>=ynSbiR'Av,@"L7VnPPK4С_׹d|}GTc+DߺY G,#al8 K9p*=aqi|KwxI7D&.'N=aO}4`{l'#qCo=hyGsD77©X ͭP<^ӰiltZ=E޻U:H G7X-x43p[W2F3NrŢ}FsL 4(K@1CϓѪ\VjݟH\ĩ> endobj 4 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName /DKGONM+CMBX12 /ItalicAngle 0 /StemV 109 /XHeight 444 /FontBBox [-53 -251 1139 750] /Flags 4 /CharSet (/one/two/three/four/five/six/seven/A/B/C/D/F/G/I/K/P/R/S/T/W/a/b/c/d/e/f/g/h/i/l/m/n/o/p/r/s/t/u/w/x/y/dieresis) /FontFile 5 0 R >> endobj 71 0 obj [562 562 562 562 562 562 562 0 0 0 0 0 0 0 0 0 850 800 812 862 0 707 884 0 419 0 881 0 0 0 0 769 0 839 625 782 0 0 1162 0 0 0 0 0 0 0 0 0 547 625 500 625 513 344 562 625 312 0 0 312 937 625 562 625 0 459 444 437 625 0 812 594 594 0 0 0 0 0 562 ] endobj 70 0 obj << /Type /Encoding /Differences [ 0 /.notdef 49/one/two/three/four/five/six/seven 56/.notdef 65/A/B/C/D 69/.notdef 70/F/G 72/.notdef 73/I 74/.notdef 75/K 76/.notdef 80/P 81/.notdef 82/R/S/T 85/.notdef 87/W 88/.notdef 97/a/b/c/d/e/f/g/h/i 106/.notdef 108/l/m/n/o/p 113/.notdef 114/r/s/t/u 118/.notdef 119/w/x/y 122/.notdef 127/dieresis 128/.notdef] >> endobj 22 0 obj << /Type /Pages /Count 6 /Parent 72 0 R /Kids [2 0 R 24 0 R 34 0 R 37 0 R 43 0 R 46 0 R] >> endobj 51 0 obj << /Type /Pages /Count 2 /Parent 72 0 R /Kids [49 0 R 54 0 R] >> endobj 72 0 obj << /Type /Pages /Count 8 /Kids [22 0 R 51 0 R] >> endobj 73 0 obj << /Type /Catalog /Pages 72 0 R >> endobj 74 0 obj << /Producer (pdfeTeX-1.21a) /Creator (TeX) /CreationDate (D:20061205170645+01'00') /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref 0 75 0000000000 65535 f 0000004253 00000 n 0000004138 00000 n 0000000009 00000 n 0000125582 00000 n 0000117103 00000 n 0000125426 00000 n 0000116216 00000 n 0000108843 00000 n 0000116061 00000 n 0000107429 00000 n 0000091216 00000 n 0000107272 00000 n 0000090253 00000 n 0000080720 00000 n 0000090095 00000 n 0000079351 00000 n 0000067065 00000 n 0000079193 00000 n 0000066001 00000 n 0000058443 00000 n 0000065844 00000 n 0000126515 00000 n 0000009685 00000 n 0000009567 00000 n 0000004379 00000 n 0000058130 00000 n 0000055887 00000 n 0000057973 00000 n 0000055571 00000 n 0000054186 00000 n 0000055414 00000 n 0000019091 00000 n 0000014718 00000 n 0000014600 00000 n 0000009801 00000 n 0000020935 00000 n 0000018973 00000 n 0000014846 00000 n 0000028611 00000 n 0000029969 00000 n 0000045130 00000 n 0000026187 00000 n 0000026069 00000 n 0000021086 00000 n 0000041383 00000 n 0000028493 00000 n 0000026291 00000 n 0000046758 00000 n 0000045012 00000 n 0000041523 00000 n 0000126623 00000 n 0000048710 00000 n 0000054047 00000 n 0000048592 00000 n 0000046897 00000 n 0000055801 00000 n 0000055778 00000 n 0000058360 00000 n 0000058333 00000 n 0000066637 00000 n 0000066350 00000 n 0000080165 00000 n 0000079832 00000 n 0000090821 00000 n 0000090566 00000 n 0000108351 00000 n 0000107935 00000 n 0000116743 00000 n 0000116498 00000 n 0000126148 00000 n 0000125886 00000 n 0000126704 00000 n 0000126770 00000 n 0000126821 00000 n trailer << /Size 75 /Root 73 0 R /Info 74 0 R /ID [ ] >> startxref 127024 %%EOF faust-0.9.46/documentation/touchOSC.txt0000644000175000017500000001204711702130733017752 0ustar orlareyorlareyThis document describes the various messages TouchOSC (Android) can send expressed as Faust metadata ready to be inserted in widget labels. ================================================================================ Accelerometer ================================================================================ [osc:/accxyz/0 -10 10] x-accelerometer [osc:/accxyz/1 -10 10] y-accelerometer [osc:/accxyz/Z -10 10] z-accelerometer ================================================================================ Layout : simple ================================================================================ page 1 -------------------------------------------------------------------------------- [osc:/1/fader5] [osc:/1/fader1] [osc:/1/toggle1] [osc:/1/fader2] [osc:/1/toggle2] [osc:/1/fader3] [osc:/1/toggle3] [osc:/1/fader4] [osc:/1/toggle4] page 2 ( 4x4 matrix ) -------------------------------------------------------------------------------- [osc:/2/push1] [osc:/2/push2] [osc:/2/push3] [osc:/2/push4] [osc:/2/push5] [osc:/2/push6] [osc:/2/push7] [osc:/2/push8] [osc:/2/push9] [osc:/2/push10] [osc:/2/push11] [osc:/2/push12] [osc:/2/push13] [osc:/2/push14] [osc:/2/push15] [osc:/2/push16] [osc:/2/toggle1] [osc:/2/toggle2] [osc:/2/toggle3] [osc:/2/toggle4] Page 3 (2D-joystick) -------------------------------------------------------------------------------- [osc:/3/xy/0] x-coord [osc:/3/xy/1] y-coord [osc:/3/toggle1] [osc:/3/toggle2] [osc:/3/toggle3] [osc:/3/toggle4] Page 4 (8x8 matrix) -------------------------------------------------------------------------------- [osc:/4/multitoggle/1/1] [osc:/4/multitoggle/2/1] ... [osc:/4/multitoggle/8/1] [osc:/4/multitoggle/1/2] [osc:/4/multitoggle/2/2] ... [osc:/4/multitoggle/8/2] . . . [osc:/4/multitoggle/1/8] [osc:/4/multitoggle/2/8] ... [osc:/4/multitoggle/8/8] [osc:/4/toggle1] [osc:/4/toggle2] [osc:/4/toggle3] [osc:/4/toggle4] ================================================================================ Layout : Mix 2 ================================================================================ page 1 -------------------------------------------------------------------------------- [osc:/1/rotary1] [osc:/1/toggle1] [osc:/1/toggle3] [osc:/1/rotary4] [osc:/1/toggle2] [osc:/1/toggle4] [osc:/1/rotary2] [osc:/1/rotary5] [osc:/1/fader1] [osc:/1/fader2] [osc:/1/rotary3] [osc:/1/rotary6] [osc:/1/push1] [osc:/1/push2] [osc:/1/push3] [osc:/1/push4] [osc:/1/fader3] page 2 (2 banks of 16 faders) -------------------------------------------------------------------------------- [osc:/2/multifader1/1] ... [osc:/2/multifader1/16] [osc:/2/multifader2/1] ... [osc:/2/multifader2/16] page 3 (2 2D-joysticks) -------------------------------------------------------------------------------- [osc:/3/xy1/0] x-coord [osc:/3/xy1/1] y-coord [osc:/3/xy2/0] x-coord [osc:/3/xy2/1] y-coord ================================================================================ Layout : Mix 16 ================================================================================ page 1 -------------------------------------------------------------------------------- [osc:/1/fader1] [osc:/1/toggle1] [osc:/1/fader2] [osc:/1/toggle2] [osc:/1/xy/0] x-coord [osc:/1/xy/1] y-coord [osc:/1/fader3] [osc:/1/toggle3] [osc:/1/fader4] [osc:/1/push1] [osc:/1/push2] [osc:/1/push3] [osc:/1/push4] [osc:/1/push5] page 2 -------------------------------------------------------------------------------- [osc:/2/fader1 ] [osc:/2/fader2 ] ... [osc:/2/fader8 ] [osc:/2/toggle1] [osc:/2/toggle2] ... [osc:/2/toggle8] page 3 -------------------------------------------------------------------------------- [osc:/3/fader1 ] [osc:/3/fader2 ] ... [osc:/3/fader8 ] [osc:/3/toggle1] [osc:/3/toggle2] ... [osc:/3/toggle8] page 4 (2 banks of 24 faders) -------------------------------------------------------------------------------- [osc:/4/multifader1/1] ... [osc:/4/multifader1/24] [osc:/4/multifader2/1] ... [osc:/4/multifader2/24] ================================================================================ Layout : Keys ================================================================================ page 1 (1 octave keyboard) -------------------------------------------------------------------------------- [osc:/1/push1] [osc:/1/push2] ... [osc:/1/push12] page 2 (1 octave keyboard) -------------------------------------------------------------------------------- [osc:/2/push1] [osc:/2/push2] ... [osc:/2/push12] page 3 (sliders + rotary) -------------------------------------------------------------------------------- [osc:/3/rotary1] [osc:/3/push3] [osc:/3/push4] [osc:/3/push1] [osc:/3/push2] [osc:/3/fader1][osc:/3/fader2][osc:/3/fader3 ][osc:/3/fader4 ][osc:/3/fader5 ] [osc:/3/toggle1][osc:/3/toggle2][osc:/3/toggle3] faust-0.9.46/COPYING0000644000175000017500000004503111702130733013703 0ustar orlareyorlarey FAUST compiler, Version 0.9.3 Copyright (C) 2003-2005 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ---------------------------------------------------------------------------- GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. faust-0.9.46/benchmark/0000755000175000017500000000000011702130733014577 5ustar orlareyorlareyfaust-0.9.46/benchmark/zero1.dsp0000644000175000017500000000001411702130733016342 0ustar orlareyorlareyprocess = 0;faust-0.9.46/benchmark/rms8.dsp0000644000175000017500000000005211702130733016175 0ustar orlareyorlareyprocess = par(i,8,component("rms.dsp")) ; faust-0.9.46/benchmark/crybaby1.dsp0000644000175000017500000000013011702130733017015 0ustar orlareyorlareyimport("effect.lib"); process = par(i, 1, crybaby(hslider("freq", 100, 10, 1000, 1))); faust-0.9.46/benchmark/alsa-gtk-bench.cpp0000644000175000017500000013016511702130733020071 0ustar orlareyorlarey/* link with : "" */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; // handle 32/64 bits int size issues #ifdef __x86_64__ #define uint32 unsigned int #define uint64 unsigned long int #define int32 int #define int64 long int #else #define uint32 unsigned int #define uint64 unsigned long long int #define int32 int #define int64 long long int #endif // check 32/64 bits issues are correctly handled #define CHECKINTSIZE \ assert(sizeof(int32)==4);\ assert(sizeof(int64)==8); // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif //#define BENCHMARKMODE // g++ -Wall -O3 -lm -lpthread -lasound `gtk-config --cflags --libs` test.cpp -o test #define check_error(err) if (err) { printf("%s:%d, alsa error %d : %s\n", __FILE__, __LINE__, err, snd_strerror(err)); exit(1); } #define check_error_msg(err,msg) if (err) { fprintf(stderr, "%s:%d, %s : %s(%d)\n", __FILE__, __LINE__, msg, snd_strerror(err), err); exit(1); } #define display_error_msg(err,msg) if (err) { fprintf(stderr, "%s:%d, %s : %s(%d)\n", __FILE__, __LINE__, msg, snd_strerror(err), err); } #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) // abs is now predefined //template T abs (T a) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<pw_uid); param.sched_priority = 99; /* 0 to 99 */ err = sched_setscheduler(0, SCHED_FIFO, ¶m); setuid (uid); return (err != -1); } /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } <> #define BENCHMARKMODE #ifdef BENCHMARKMODE /** * Returns the number of clock cycles elapsed since the last reset * of the processor */ static __inline__ uint64 rdtsc(void) { union { uint32 i32[2]; uint64 i64; } count; __asm__ __volatile__("rdtsc" : "=a" (count.i32[0]), "=d" (count.i32[1])); return count.i64; } #define KSKIP 20 #define KMESURE 600 int mesure = 0; // these values are used to determine the number of clocks in a second uint64 firstRDTSC; uint64 lastRDTSC; // these tables contains the last KMESURE in clocks uint64 starts[KMESURE]; uint64 stops [KMESURE]; #define STARTMESURE starts[mesure%KMESURE] = rdtsc(); #define STOPMESURE stops[mesure%KMESURE] = rdtsc(); mesure = mesure+1; struct timeval tv1; struct timeval tv2; void openMesure() { struct timezone tz; gettimeofday(&tv1, &tz); firstRDTSC = rdtsc(); } void closeMesure() { struct timezone tz; gettimeofday(&tv2, &tz); lastRDTSC = rdtsc(); } /** * return the number of RDTSC clocks per seconds */ int64 rdtscpersec() { // If the environment variable CLOCKSPERSEC is defined // we use it instead of our own measurement char* str = getenv("CLOCKSPERSEC"); if (str) { int64 cps = (int64) atoll(str); if (cps > 1000000000) { return cps; } else { return (lastRDTSC-firstRDTSC) / (tv2.tv_sec - tv1.tv_sec) ; } } else { return (lastRDTSC-firstRDTSC) / (tv2.tv_sec - tv1.tv_sec) ; } } /** * Converts a duration, expressed in RDTSC clocks, into seconds */ double rdtsc2sec( uint64 clk) { return double(clk) / double(rdtscpersec()); } double rdtsc2sec( double clk) { return clk / double(rdtscpersec()); } /** * Converts RDTSC clocks into Megabytes/seconds according to the * number of frames processed during the period, the number of channels * and 4 bytes samples. */ double megapersec(int frames, int chans, uint64 clk) { return double(frames*chans*4)/double(1024*1024*rdtsc2sec(clk)); } /** * Compute the mean value of a vector of measures */ static uint64 meanValue( vector::const_iterator a, vector::const_iterator b) { uint64 r = 0; unsigned int n = 0; while (a!=b) { r += *a++; n++; } return (n>0) ? r/n : 0; } /** * Print the median value (in Megabytes/second) of KMESURE * throughputs measurements */ void printstats(const char* applname, int bsize, int ichans, int ochans) { assert(mesure > KMESURE); vector V(KMESURE); for (int i = 0; i 0) printHWParams(fInputParams); if (fSoftOutputs > 0) printHWParams(fOutputParams); } void printCardInfo(snd_ctl_card_info_t* ci) { printf("Card info (address : %p)\n", ci); printf("\tID = %s\n", snd_ctl_card_info_get_id(ci)); printf("\tDriver = %s\n", snd_ctl_card_info_get_driver(ci)); printf("\tName = %s\n", snd_ctl_card_info_get_name(ci)); printf("\tLongName = %s\n", snd_ctl_card_info_get_longname(ci)); printf("\tMixerName = %s\n", snd_ctl_card_info_get_mixername(ci)); printf("\tComponents = %s\n", snd_ctl_card_info_get_components(ci)); printf("--------------\n"); } void printHWParams( snd_pcm_hw_params_t* params ) { printf("HW Params info (address : %p)\n", params); #if 0 printf("\tChannels = %d\n", snd_pcm_hw_params_get_channels(params)); printf("\tFormat = %s\n", snd_pcm_format_name((_snd_pcm_format)snd_pcm_hw_params_get_format(params))); printf("\tAccess = %s\n", snd_pcm_access_name((_snd_pcm_access)snd_pcm_hw_params_get_access(params))); printf("\tRate = %d\n", snd_pcm_hw_params_get_rate(params, NULL)); printf("\tPeriods = %d\n", snd_pcm_hw_params_get_periods(params, NULL)); printf("\tPeriod size = %d\n", (int)snd_pcm_hw_params_get_period_size(params, NULL)); printf("\tPeriod time = %d\n", snd_pcm_hw_params_get_period_time(params, NULL)); printf("\tBuffer size = %d\n", (int)snd_pcm_hw_params_get_buffer_size(params)); printf("\tBuffer time = %d\n", snd_pcm_hw_params_get_buffer_time(params, NULL)); #endif printf("--------------\n"); } }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) abstract interfaces ******************************************************************************* *******************************************************************************/ #include #include using namespace std; struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; struct uiItem; typedef void (*uiCallback)(float val, void* data); /** * Graphic User Interface : abstract definition */ class UI { typedef list clist; typedef map zmap; private: static list fGuiList; zmap fZoneMap; bool fStopped; public: UI() : fStopped(false) { fGuiList.push_back(this); } virtual ~UI() { // suppression de this dans fGuiList } // -- zone management void registerZone(float* z, uiItem* c) { if (fZoneMap.find(z) == fZoneMap.end()) fZoneMap[z] = new clist(); fZoneMap[z]->push_back(c); } // -- saveState(filename) : save the value of every zone to a file void saveState(const char* filename) { ofstream f(filename); for (zmap::iterator i=fZoneMap.begin(); i!=fZoneMap.end(); i++) { f << *(i->first) << ' '; } f << endl; f.close(); } // -- recallState(filename) : load the value of every zone from a file void recallState(const char* filename) { ifstream f(filename); if (f.good()) { for (zmap::iterator i=fZoneMap.begin(); i!=fZoneMap.end(); i++) { f >> *(i->first); } } f.close(); } void updateAllZones(); void updateZone(float* z); static void updateAllGuis() { list::iterator g; for (g = fGuiList.begin(); g != fGuiList.end(); g++) { (*g)->updateAllZones(); } } // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; void addCallback(float* zone, uiCallback foo, void* data); // -- widget's layouts virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void show() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /** * User Interface Item: abstract definition */ class uiItem { protected : UI* fGUI; float* fZone; float fCache; uiItem (UI* ui, float* zone) : fGUI(ui), fZone(zone), fCache(-123456.654321) { ui->registerZone(zone, this); } public : virtual ~uiItem() {} void modifyZone(float v) { fCache = v; if (*fZone != v) { *fZone = v; fGUI->updateZone(fZone); } } float cache() { return fCache; } virtual void reflectZone() = 0; }; /** * Callback Item */ struct uiCallbackItem : public uiItem { uiCallback fCallback; void* fData; uiCallbackItem(UI* ui, float* zone, uiCallback foo, void* data) : uiItem(ui, zone), fCallback(foo), fData(data) {} virtual void reflectZone() { float v = *fZone; fCache = v; fCallback(v, fData); } }; /** * Update all user items reflecting zone z */ inline void UI::updateZone(float* z) { float v = *z; clist* l = fZoneMap[z]; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } /** * Update all user items not up to date */ inline void UI::updateAllZones() { for (zmap::iterator m = fZoneMap.begin(); m != fZoneMap.end(); m++) { float* z = m->first; clist* l = m->second; float v = *z; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } } inline void UI::addCallback(float* zone, uiCallback foo, void* data) { new uiCallbackItem(this, zone, foo, data); }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE gtk interface ******************************************************************************* *******************************************************************************/ #include #define stackSize 256 // Insertion modes #define kSingleMode 0 #define kBoxMode 1 #define kTabMode 2 class GTKUI : public UI { private : static bool fInitialized; static list fGuiList; protected : GtkWidget* fWindow; int fTop; GtkWidget* fBox[stackSize]; int fMode[stackSize]; bool fStopped; GtkWidget* addWidget(const char* label, GtkWidget* w); virtual void pushBox(int mode, GtkWidget* w); public : static const gboolean expand = TRUE; static const gboolean fill = TRUE; static const gboolean homogene = FALSE; GTKUI(char * name, int* pargc, char*** pargv); // -- layout groups virtual void openFrameBox(const char* label); virtual void openTabBox(const char* label = ""); virtual void openHorizontalBox(const char* label = ""); virtual void openVerticalBox(const char* label = ""); virtual void closeBox(); // -- active widgets virtual void addButton(const char* label, float* zone); virtual void addToggleButton(const char* label, float* zone); virtual void addCheckButton(const char* label, float* zone); virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); // -- passive display widgets virtual void addNumDisplay(const char* label, float* zone, int precision); virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max); virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); virtual void show(); virtual void run(); }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) gtk implementation ******************************************************************************* *******************************************************************************/ // global static fields bool GTKUI::fInitialized = false; list UI::fGuiList; static gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { return FALSE; } static void destroy_event( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } GTKUI::GTKUI(char * name, int* pargc, char*** pargv) { if (!fInitialized) { gtk_init(pargc, pargv); fInitialized = true; } fWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); //gtk_container_set_border_width (GTK_CONTAINER (fWindow), 10); gtk_window_set_title (GTK_WINDOW (fWindow), name); gtk_signal_connect (GTK_OBJECT (fWindow), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); gtk_signal_connect (GTK_OBJECT (fWindow), "destroy", GTK_SIGNAL_FUNC (destroy_event), NULL); fTop = 0; fBox[fTop] = gtk_vbox_new (homogene, 4); fMode[fTop] = kBoxMode; gtk_container_add (GTK_CONTAINER (fWindow), fBox[fTop]); fStopped = false; } // empilement des boites void GTKUI::pushBox(int mode, GtkWidget* w) { assert(++fTop < stackSize); fMode[fTop] = mode; fBox[fTop] = w; } void GTKUI::closeBox() { assert(--fTop >= 0); } // les differentes boites void GTKUI::openFrameBox(const char* label) { GtkWidget * box = gtk_frame_new (label); //gtk_container_set_border_width (GTK_CONTAINER (box), 10); pushBox(kSingleMode, addWidget(label, box)); } void GTKUI::openTabBox(const char* label) { pushBox(kTabMode, addWidget(label, gtk_notebook_new ())); } void GTKUI::openHorizontalBox(const char* label) { GtkWidget * box = gtk_hbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_frame_new (label)); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } void GTKUI::openVerticalBox(const char* label) { GtkWidget * box = gtk_vbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_frame_new (label)); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } GtkWidget* GTKUI::addWidget(const char* label, GtkWidget* w) { switch (fMode[fTop]) { case kSingleMode : gtk_container_add (GTK_CONTAINER(fBox[fTop]), w); break; case kBoxMode : gtk_box_pack_start (GTK_BOX(fBox[fTop]), w, expand, fill, 0); break; case kTabMode : gtk_notebook_append_page (GTK_NOTEBOOK(fBox[fTop]), w, gtk_label_new(label)); break; } gtk_widget_show (w); return w; } // --------------------------- Press button --------------------------- struct uiButton : public uiItem { GtkButton* fButton; uiButton (UI* ui, float* zone, GtkButton* b) : uiItem(ui, zone), fButton(b) {} static void pressed( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(1.0); } static void released( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(0.0); } virtual void reflectZone() { float v = *fZone; fCache = v; if (v > 0.0) gtk_button_pressed(fButton); else gtk_button_released(fButton); } }; void GTKUI::addButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_button_new_with_label (label); addWidget(label, button); uiButton* c = new uiButton(this, zone, GTK_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "pressed", GTK_SIGNAL_FUNC (uiButton::pressed), (gpointer) c); gtk_signal_connect (GTK_OBJECT (button), "released", GTK_SIGNAL_FUNC (uiButton::released), (gpointer) c); } // --------------------------- Toggle Buttons --------------------------- struct uiToggleButton : public uiItem { GtkToggleButton* fButton; uiToggleButton(UI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addToggleButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_toggle_button_new_with_label (label); addWidget(label, button); uiToggleButton* c = new uiToggleButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (uiToggleButton::toggled), (gpointer) c); } // --------------------------- Check Button --------------------------- struct uiCheckButton : public uiItem { GtkToggleButton* fButton; uiCheckButton(UI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addCheckButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_check_button_new_with_label (label); addWidget(label, button); uiCheckButton* c = new uiCheckButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC(uiCheckButton::toggled), (gpointer) c); } // --------------------------- Adjustmenty based widgets --------------------------- struct uiAdjustment : public uiItem { GtkAdjustment* fAdj; uiAdjustment(UI* ui, float* zone, GtkAdjustment* adj) : uiItem(ui, zone), fAdj(adj) {} static void changed (GtkWidget *widget, gpointer data) { float v = GTK_ADJUSTMENT (widget)->value; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_adjustment_set_value(fAdj, v); } }; static int precision(double n) { if (n < 0.009999) return 3; else if (n < 0.099999) return 2; else if (n < 0.999999) return 1; else return 0; } // -------------------------- Vertical Slider ----------------------------------- void GTKUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_vscale_new (GTK_ADJUSTMENT(adj)); gtk_range_set_inverted (GTK_RANGE(slider), TRUE); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); gtk_widget_set_usize(slider, -1, 160); openFrameBox(label); addWidget(label, slider); closeBox(); } // -------------------------- Horizontal Slider ----------------------------------- void GTKUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_hscale_new (GTK_ADJUSTMENT(adj)); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); gtk_widget_set_usize(slider, 160, -1); openFrameBox(label); addWidget(label, slider); closeBox(); } // ------------------------------ Num Entry ----------------------------------- void GTKUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, step); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* spinner = gtk_spin_button_new (GTK_ADJUSTMENT(adj), 0.005, precision(step)); //gtk_widget_set_usize(slider, 160, -1); openFrameBox(label); addWidget(label, spinner); closeBox(); } // ========================== passive widgets =============================== // ------------------------------ Progress Bar ----------------------------------- struct uiBargraph : public uiItem { GtkProgressBar* fProgressBar; float fMin; float fMax; uiBargraph(UI* ui, float* zone, GtkProgressBar* pbar, float lo, float hi) : uiItem(ui, zone), fProgressBar(pbar), fMin(lo), fMax(hi) {} float scale(float v) { return (v-fMin)/(fMax-fMin); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_progress_bar_set_fraction(fProgressBar, scale(v)); } }; void GTKUI::addVerticalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_BOTTOM_TO_TOP); gtk_widget_set_size_request(pb, 8, -1); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); } void GTKUI::addHorizontalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_LEFT_TO_RIGHT); gtk_widget_set_size_request(pb, -1, 8); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); } // ------------------------------ Num Display ----------------------------------- struct uiNumDisplay : public uiItem { GtkLabel* fLabel; int fPrecision; uiNumDisplay(UI* ui, float* zone, GtkLabel* label, int precision) : uiItem(ui, zone), fLabel(label), fPrecision(precision) {} virtual void reflectZone() { float v = *fZone; fCache = v; char s[64]; if (fPrecision <= 0) { snprintf(s, 63, "%d", int(v)); } else if (fPrecision>3) { snprintf(s, 63, "%f", v); } else { const char* format[] = {"%.1f", "%.2f", "%.3f"}; snprintf(s, 63, format[fPrecision-1], v); } gtk_label_set_text(fLabel, s); } }; void GTKUI::addNumDisplay(const char* label, float* zone, int precision ) { GtkWidget* lw = gtk_label_new(""); new uiNumDisplay(this, zone, GTK_LABEL(lw), precision); openFrameBox(label); addWidget(label, lw); closeBox(); } // ------------------------------ Text Display ----------------------------------- struct uiTextDisplay : public uiItem { GtkLabel* fLabel; char** fNames; float fMin; float fMax; int fNum; uiTextDisplay (UI* ui, float* zone, GtkLabel* label, char* names[], float lo, float hi) : uiItem(ui, zone), fLabel(label), fNames(names), fMin(lo), fMax(hi) { fNum = 0; while (fNames[fNum] != 0) fNum++; } virtual void reflectZone() { float v = *fZone; fCache = v; int idx = int(fNum*(v-fMin)/(fMax-fMin)); if (idx < 0) idx = 0; else if (idx >= fNum) idx = fNum-1; gtk_label_set_text(fLabel, fNames[idx]); } }; void GTKUI::addTextDisplay(const char* label, float* zone, char* names[], float lo, float hi ) { GtkWidget* lw = gtk_label_new(""); new uiTextDisplay (this, zone, GTK_LABEL(lw), names, lo, hi); openFrameBox(label); addWidget(label, lw); closeBox(); } void GTKUI::show() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); } /** * Update all user items reflecting zone z */ static gboolean callUpdateAllGuis(gpointer) { UI::updateAllGuis(); return TRUE; } void GTKUI::run() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); gtk_timeout_add(40, callUpdateAllGuis, 0); gtk_main (); stop(); } /****************************************************************************** ******************************************************************************* DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // Definition of a Faust Digital Signal Processor //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; int fThreadNum; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; virtual void conclude() {} }; <> mydsp DSP; /****************************************************************************** ******************************************************************************* MAIN PLAY THREAD ******************************************************************************* *******************************************************************************/ // lopt : Scan Command Line long int Arguments long lopt (int argc, char *argv[], const char* longname, const char* shortname, long def) { for (int i=2; irun(); pthread_exit(0); return 0; } int main(int argc, char *argv[] ) { CHECKINTSIZE; UI* interface = new GTKUI(argv[0], &argc, &argv); // compute rcfilename to (re)store application state char rcfilename[256]; char* home = getenv("HOME"); snprintf(rcfilename, 255, "%s/.%src", home, basename(argv[0])); AudioInterface audio ( AudioParam().cardName( sopt(argc, argv, "--device", "-d", "hw:0") ) .frequency( lopt(argc, argv, "--frequency", "-f", 44100) ) .buffering( lopt(argc, argv, "--buffer", "-b", 1024) ) .periods( lopt(argc, argv, "--periods", "-p", 2) ) .inputs(DSP.getNumInputs()) .outputs(DSP.getNumOutputs()) ); AVOIDDENORMALS; audio.open(); DSP.init(audio.frequency()); DSP.buildUserInterface(interface); interface->recallState(rcfilename); pthread_create(&guithread, NULL, run_ui, interface); bool rt = setRealtimePriority(); printf(rt?"RT : ":"NRT: "); audio.shortinfo(); if (fopt(argc, argv, "--verbose", "-v")) audio.longinfo(); bool running = true; audio.write(); audio.write(); openMesure(); while(running) { audio.read(); STARTMESURE DSP.compute(audio.buffering(), audio.inputSoftChannels(), audio.outputSoftChannels()); STOPMESURE audio.write(); running = mesure <= (KMESURE + KSKIP); } closeMesure(); interface->saveState(rcfilename); #ifdef BENCHMARKMODE printstats(argv[0], audio.buffering(), DSP.getNumInputs(), DSP.getNumOutputs()); #endif return 0; } faust-0.9.46/benchmark/crybaby8.dsp0000644000175000017500000000013011702130733017024 0ustar orlareyorlareyimport("effect.lib"); process = par(i, 8, crybaby(hslider("freq", 100, 10, 1000, 1))); faust-0.9.46/benchmark/Makefile0000644000175000017500000002103211702130733016235 0ustar orlareyorlareysystem := $(shell uname -s) ifeq ($(system), Darwin) MYGCCFLAGS := '-O3 -mfpmath=sse -msse -msse2 -msse3 -ffast-math -ftree-vectorize' else MYGCCFLAGS := '-O3 -march=native -mfpmath=sse -msse -msse2 -msse3 -ffast-math -ftree-vectorize' endif MYICCFLAGS := '-O3 -xHost -ftz -fno-alias -fp-model fast=2' VSIZE := 1024 all : icc gcc icc : ialsascal ialsavec ialsavec2 ialsaomp2 ialsasch ialsasch2 gcc : galsascal galsavec galsavec2 galsaomp2 galsasch galsasch2 osx : gcoreaudioscal gcoreaudiovec1 gcoreaudiovec2 gcoreaudiovec3 gcoreaudiovec4 gcoreaudiosch gcoreaudiosch2 ### intel-compiler single-precision x {scalar, vector and openMP} ialsascal : install -d ialsascaldir $(MAKE) DEST='ialsascaldir/' ARCH='alsa-gtk-bench.cpp' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsasch : install -d ialsaschdir $(MAKE) DEST='ialsaschdir/' ARCH='alsa-gtk-bench.cpp' VEC='-sch -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsasch2 : install -d ialsasch2dir $(MAKE) DEST='ialsasch2dir/' ARCH='alsa-gtk-bench.cpp' VEC='-sch -g -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsavec : install -d ialsavecdir $(MAKE) DEST='ialsavecdir/' ARCH='alsa-gtk-bench.cpp' VEC='-vec -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsavec1 : install -d ialsavec1dir $(MAKE) DEST='ialsavec1dir/' ARCH='alsa-gtk-bench.cpp' VEC='-vec -lv 1 -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsavec2 : install -d ialsavec2dir $(MAKE) DEST='ialsavec2dir/' ARCH='alsa-gtk-bench.cpp' VEC='-vec -dfs -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsavec3 : install -d ialsavec3dir $(MAKE) DEST='ialsavec3dir/' ARCH='alsa-gtk-bench.cpp' VEC='-vec -g -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsaomp : install -d ialsaompdir $(MAKE) DEST='ialsaompdir/' ARCH='alsa-gtk-bench.cpp' VEC='-omp -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS='-openmp '$(MYICCFLAGS) -f Makefile.compile ialsaomp2 : install -d ialsaomp2dir $(MAKE) DEST='ialsaomp2dir/' ARCH='alsa-gtk-bench.cpp' VEC='-omp -g -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS='-openmp '$(MYICCFLAGS) -f Makefile.compile ### gcc-compiler single-precision x {scalar, vector and openMP} galsascal : install -d galsascaldir $(MAKE) DEST='galsascaldir/' ARCH='alsa-gtk-bench.cpp' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile galsasch : install -d galsaschdir $(MAKE) DEST='galsaschdir/' ARCH='alsa-gtk-bench.cpp' VEC='-sch -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile galsasch2 : install -d galsasch2dir $(MAKE) DEST='galsasch2dir/' ARCH='alsa-gtk-bench.cpp' VEC='-sch -g -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile galsavec : install -d galsavecdir $(MAKE) DEST='galsavecdir/' ARCH='alsa-gtk-bench.cpp' VEC='-vec -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile galsavec1 : install -d galsavec1dir $(MAKE) DEST='galsavec1dir/' ARCH='alsa-gtk-bench.cpp' VEC='-vec -lv 1 -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile galsavec2 : install -d galsavec2dir $(MAKE) DEST='galsavec2dir/' ARCH='alsa-gtk-bench.cpp' VEC='-vec -dfs -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile galsavec3 : install -d galsavec3dir $(MAKE) DEST='galsavec3dir/' ARCH='alsa-gtk-bench.cpp' VEC='-vec -g -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile galsaomp : install -d galsaompdir $(MAKE) DEST='galsaompdir/' ARCH='alsa-gtk-bench.cpp' VEC='-omp -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS='-fopenmp '$(MYGCCFLAGS) -f Makefile.compile galsaomp2 : install -d galsaomp2dir $(MAKE) DEST='galsaomp2dir/' ARCH='alsa-gtk-bench.cpp' VEC='-omp -g -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS='-fopenmp '$(MYGCCFLAGS) -f Makefile.compile gcoreaudioscal : install -d gcoreaudioscaldir $(MAKE) DEST='gcoreaudioscaldir/' ARCH='coreaudio-gtk-bench.cpp' LIB='-lpthread -framework CoreAudio -framework AudioUnit -framework CoreServices `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gcoreaudiovec1 : install -d gcoreaudiovec1dir $(MAKE) DEST='gcoreaudiovec1dir/' ARCH='coreaudio-gtk-bench.cpp' VEC='-vec -lv 1 -vs $(VSIZE)' LIB='-lpthread -framework CoreAudio -framework AudioUnit -framework CoreServices `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gcoreaudiovec2 : install -d gcoreaudiovec2dir $(MAKE) DEST='gcoreaudiovec2dir/' ARCH='coreaudio-gtk-bench.cpp' VEC='-vec -dfs -vs $(VSIZE)' LIB='-lpthread -framework CoreAudio -framework AudioUnit -framework CoreServices `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gcoreaudiovec3 : install -d gcoreaudiovec3dir $(MAKE) DEST='gcoreaudiovec3dir/' ARCH='coreaudio-gtk-bench.cpp' VEC='-vec -g -vs $(VSIZE)' LIB='-lpthread -framework CoreAudio -framework AudioUnit -framework CoreServices `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gcoreaudiovec4 : install -d gcoreaudiovec4dir $(MAKE) DEST='gcoreaudiovec4dir/' ARCH='coreaudio-gtk-bench.cpp' VEC='-vec -dfs -g -vs $(VSIZE)' LIB='-lpthread -framework CoreAudio -framework AudioUnit -framework CoreServices `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gcoreaudiosch : install -d gcoreaudioschdir $(MAKE) DEST='gcoreaudioschdir/' ARCH='coreaudio-gtk-bench.cpp' VEC='-sch -vs $(VSIZE)' LIB='-lpthread -framework CoreAudio -framework AudioUnit -framework CoreServices `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gcoreaudiosch2 : install -d gcoreaudiosch2dir $(MAKE) DEST='gcoreaudiosch2dir/' ARCH='coreaudio-gtk-bench.cpp' VEC='-sch -g -vs $(VSIZE)' LIB='-lpthread -framework CoreAudio -framework AudioUnit -framework CoreServices `pkg-config --cflags --libs gtk+-2.0`' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile ### intel-compiler double-precision x {scalar, vector and openMP} idalsascal : install -d idalsascaldir $(MAKE) DEST='idalsascaldir/' ARCH='alsa-gtk-bench.cpp' VEC='-double' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile idalsavec : install -d idalsavecdir $(MAKE) DEST='idalsavecdir/' ARCH='alsa-gtk-bench.cpp' VEC='-double -vec -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile idalsaomp : install -d idalsaompdir $(MAKE) DEST='idalsaompdir/' ARCH='alsa-gtk-bench.cpp' VEC='-double -omp -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS='-openmp '$(MYICCFLAGS) -f Makefile.compile ### intel-compiler quad-precision x {scalar, vector and openMP} iqalsascal : install -d iqalsascaldir $(MAKE) DEST='iqalsascaldir/' ARCH='alsa-gtk-bench.cpp' VEC='-quad' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile iqalsavec : install -d iqalsavecdir $(MAKE) DEST='iqalsavecdir/' ARCH='alsa-gtk-bench.cpp' VEC='-quad -vec -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile iqalsaomp : install -d iqalsaompdir $(MAKE) DEST='iqalsaompdir/' ARCH='alsa-gtk-bench.cpp' VEC='-quad -omp -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS='-openmp '$(MYICCFLAGS) -f Makefile.compile clean : rm -rf *dir faust-0.9.46/benchmark/README0000644000175000017500000000364011702130733015462 0ustar orlareyorlarey HOW TO BENCHMARK FAUST GENERATED CODE This folder contains what is needed to benchmark the efficiency of programs generated by the Faust compiler on Intel processors. Several options are considered, scalar code, vector code and parallel code (OpenMP and Sch). The C++ compiler used and their options are also considered. The elements to produce the benchmarks are the following : 1) you can either use the .dsp files already in the folder or replace them with your own .dsp files. 2) 'alsa-gtk-bench.cpp' is the architecture file used for the benchmarks. It corresponds to an alsa gtk application specially equipped to measure the time it takes to process the samples. The application will do 600 measurements before quitting automatically. The mean value of the 10 best measurements will be retained. Instead of being expressed in seconds this value will be converted in throughput in MB/s, that is the number of bytes of samples the application is able to process per seconds. Note : 'alsa-gtk-bench.cpp' uses rdtsc as a wall clock. It is therefore specific to X86 processors and must be adapted for other processors. In order to convert clocks to seconds the code measure the number of clocks per seconds unless the the environment variable CLOCKSPERSEC is set with the exact value to use for the conversion. 3) The file Makefile contains the various combinations of faust options and gcc or icc options you may want to test. If you have gcc and icc installed you can just do a 'make'. If you have only gcc installed do a 'make gcc'. For icc do a 'make icc'. This will produce several variants of audio applications in separate directories : {i,g}alsa{scal,vec,omp,sch,..}dir. Check the Makefile for possible targets. 4) the script 'bench.sh' will run all the binaries of all the directories and collect their results in a single 'results-yymmdd.hhmmss' file. Run bench.sh several times to be sure of the stability of the results. faust-0.9.46/benchmark/bench.sh0000755000175000017500000000036511702130733016221 0ustar orlareyorlarey#!/bin/bash AOPT="-b 1024 -p 3 -d hw:0" DST=results-$(date +%y%m%d.%H%M%S) echo "Faust ALSA Benchmark : " $AOPT > $DST uname -a >> $DST date >> $DST for d in *dir; do for f in $d/*; do if [ -x $f ]; then $f $AOPT >> $DST fi done done faust-0.9.46/benchmark/rms.dsp0000644000175000017500000000110111702130733016101 0ustar orlareyorlarey// Root Mean Square of n consecutive samples RMS(n) = square : mean(n) : sqrt ; // the square of a signal square(x) = x * x ; // the mean of n consecutive samples of a signal // uses fixpoint to avoid the accumulation of // rounding errors mean(n) = float2fix : integrate(n) : fix2float : /(n); // the sliding sum of n consecutive samples of a signal integrate(n,x) = x - x@n : +~_ ; // convertion between float and fix point float2fix(x) = int(x*(1<<20)); fix2float(x) = float(x)/(1<<20); // Root Mean Square of 1000 consecutive samples process = RMS(1000) ; faust-0.9.46/benchmark/copy1.dsp0000644000175000017500000000001511702130733016336 0ustar orlareyorlareyprocess = _; faust-0.9.46/benchmark/rms4.dsp0000644000175000017500000000005211702130733016171 0ustar orlareyorlareyprocess = par(i,4,component("rms.dsp")) ; faust-0.9.46/benchmark/Makefile.compile0000644000175000017500000000043611702130733017671 0ustar orlareyorlareydspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) appl := $(addprefix $(DEST), $(dspsrc:.dsp=$(EXT))) all : $(appl) $(DEST)%$(EXT) : %.dsp faust $(VEC) -a $(ARCH) $< -o $@.cpp $(CXX) -O3 $(CXXFLAGS) $@.cpp $(LIB) -o $@ clean : rm -f $(DEST) faust-0.9.46/benchmark/coreaudio-gtk-bench.cpp0000644000175000017500000013464011702130733021125 0ustar orlareyorlarey/* link with : "" */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; // handle 32/64 bits int size issues #ifdef __x86_64__ #define uint32 unsigned int #define uint64 unsigned long int #define int32 int #define int64 long int #else #define uint32 unsigned int #define uint64 unsigned long long int #define int32 int #define int64 long long int #endif // check 32/64 bits issues are correctly handled #define CHECKINTSIZE \ assert(sizeof(int32)==4);\ assert(sizeof(int64)==8); // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif //#define BENCHMARKMODE // g++ -Wall -O3 -lm -lpthread -lasound `gtk-config --cflags --libs` test.cpp -o test #define check_error(err) if (err) { printf("%s:%d, alsa error %d : %s\n", __FILE__, __LINE__, err, snd_strerror(err)); exit(1); } #define check_error_msg(err,msg) if (err) { fprintf(stderr, "%s:%d, %s : %s(%d)\n", __FILE__, __LINE__, msg, snd_strerror(err), err); exit(1); } #define display_error_msg(err,msg) if (err) { fprintf(stderr, "%s:%d, %s : %s(%d)\n", __FILE__, __LINE__, msg, snd_strerror(err), err); } #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) // abs is now predefined //template T abs (T a) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<> #define BENCHMARKMODE #ifdef BENCHMARKMODE /** * Returns the number of clock cycles elapsed since the last reset * of the processor */ static __inline__ uint64 rdtsc(void) { union { uint32 i32[2]; uint64 i64; } count; __asm__ __volatile__("rdtsc" : "=a" (count.i32[0]), "=d" (count.i32[1])); return count.i64; } #define KSKIP 20 #define KMESURE 600 int mesure = 0; // these values are used to determine the number of clocks in a second uint64 firstRDTSC; uint64 lastRDTSC; // these tables contains the last KMESURE in clocks uint64 starts[KMESURE]; uint64 stops [KMESURE]; #define STARTMESURE starts[mesure%KMESURE] = rdtsc(); #define STOPMESURE stops[mesure%KMESURE] = rdtsc(); mesure = mesure+1; struct timeval tv1; struct timeval tv2; void openMesure() { struct timezone tz; gettimeofday(&tv1, &tz); firstRDTSC = rdtsc(); } void closeMesure() { struct timezone tz; gettimeofday(&tv2, &tz); lastRDTSC = rdtsc(); } /** * return the number of RDTSC clocks per seconds */ int64 rdtscpersec() { // If the environment variable CLOCKSPERSEC is defined // we use it instead of our own measurement char* str = getenv("CLOCKSPERSEC"); if (str) { int64 cps = (int64) atoll(str); if (cps > 1000000000) { return cps; } else { return (lastRDTSC-firstRDTSC) / (tv2.tv_sec - tv1.tv_sec) ; } } else { return (lastRDTSC-firstRDTSC) / (tv2.tv_sec - tv1.tv_sec) ; } } /** * Converts a duration, expressed in RDTSC clocks, into seconds */ double rdtsc2sec( uint64 clk) { return double(clk) / double(rdtscpersec()); } double rdtsc2sec( double clk) { return clk / double(rdtscpersec()); } /** * Converts RDTSC clocks into Megabytes/seconds according to the * number of frames processed during the period, the number of channels * and 4 bytes samples. */ double megapersec(int frames, int chans, uint64 clk) { return double(frames*chans*4)/double(1024*1024*rdtsc2sec(clk)); } /** * Compute the mean value of a vector of measures */ static uint64 meanValue( vector::const_iterator a, vector::const_iterator b) { uint64 r = 0; unsigned int n = 0; while (a!=b) { r += *a++; n++; } return (n>0) ? r/n : 0; } /** * Print the median value (in Megabytes/second) of KMESURE * throughputs measurements */ void printstats(const char* applname, int bsize, int ichans, int ochans) { assert(mesure > KMESURE); vector V(KMESURE); for (int i = 0; i #include using namespace std; struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; struct uiItem; typedef void (*uiCallback)(float val, void* data); /** * Graphic User Interface : abstract definition */ class UI { typedef list clist; typedef map zmap; private: static list fGuiList; zmap fZoneMap; bool fStopped; public: UI() : fStopped(false) { fGuiList.push_back(this); } virtual ~UI() { // suppression de this dans fGuiList } // -- zone management void registerZone(float* z, uiItem* c) { if (fZoneMap.find(z) == fZoneMap.end()) fZoneMap[z] = new clist(); fZoneMap[z]->push_back(c); } // -- saveState(filename) : save the value of every zone to a file void saveState(const char* filename) { ofstream f(filename); for (zmap::iterator i=fZoneMap.begin(); i!=fZoneMap.end(); i++) { f << *(i->first) << ' '; } f << endl; f.close(); } // -- recallState(filename) : load the value of every zone from a file void recallState(const char* filename) { ifstream f(filename); if (f.good()) { for (zmap::iterator i=fZoneMap.begin(); i!=fZoneMap.end(); i++) { f >> *(i->first); } } f.close(); } void updateAllZones(); void updateZone(float* z); static void updateAllGuis() { list::iterator g; for (g = fGuiList.begin(); g != fGuiList.end(); g++) { (*g)->updateAllZones(); } } // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; void addCallback(float* zone, uiCallback foo, void* data); // -- widget's layouts virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void show() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /** * User Interface Item: abstract definition */ class uiItem { protected : UI* fGUI; float* fZone; float fCache; uiItem (UI* ui, float* zone) : fGUI(ui), fZone(zone), fCache(-123456.654321) { ui->registerZone(zone, this); } public : virtual ~uiItem() {} void modifyZone(float v) { fCache = v; if (*fZone != v) { *fZone = v; fGUI->updateZone(fZone); } } float cache() { return fCache; } virtual void reflectZone() = 0; }; /** * Callback Item */ struct uiCallbackItem : public uiItem { uiCallback fCallback; void* fData; uiCallbackItem(UI* ui, float* zone, uiCallback foo, void* data) : uiItem(ui, zone), fCallback(foo), fData(data) {} virtual void reflectZone() { float v = *fZone; fCache = v; fCallback(v, fData); } }; /** * Update all user items reflecting zone z */ inline void UI::updateZone(float* z) { float v = *z; clist* l = fZoneMap[z]; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } /** * Update all user items not up to date */ inline void UI::updateAllZones() { for (zmap::iterator m = fZoneMap.begin(); m != fZoneMap.end(); m++) { float* z = m->first; clist* l = m->second; float v = *z; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } } inline void UI::addCallback(float* zone, uiCallback foo, void* data) { new uiCallbackItem(this, zone, foo, data); }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE gtk interface ******************************************************************************* *******************************************************************************/ #include #define stackSize 256 // Insertion modes #define kSingleMode 0 #define kBoxMode 1 #define kTabMode 2 class GTKUI : public UI { private : static bool fInitialized; static list fGuiList; protected : GtkWidget* fWindow; int fTop; GtkWidget* fBox[stackSize]; int fMode[stackSize]; bool fStopped; GtkWidget* addWidget(const char* label, GtkWidget* w); virtual void pushBox(int mode, GtkWidget* w); public : static const gboolean expand = TRUE; static const gboolean fill = TRUE; static const gboolean homogene = FALSE; GTKUI(char * name, int* pargc, char*** pargv); // -- layout groups virtual void openFrameBox(const char* label); virtual void openTabBox(const char* label = ""); virtual void openHorizontalBox(const char* label = ""); virtual void openVerticalBox(const char* label = ""); virtual void closeBox(); // -- active widgets virtual void addButton(const char* label, float* zone); virtual void addToggleButton(const char* label, float* zone); virtual void addCheckButton(const char* label, float* zone); virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); // -- passive display widgets virtual void addNumDisplay(const char* label, float* zone, int precision); virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max); virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); virtual void show(); virtual void run(); }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) gtk implementation ******************************************************************************* *******************************************************************************/ // global static fields bool GTKUI::fInitialized = false; list UI::fGuiList; static gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { return FALSE; } static void destroy_event( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } GTKUI::GTKUI(char * name, int* pargc, char*** pargv) { if (!fInitialized) { gtk_init(pargc, pargv); fInitialized = true; } fWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); //gtk_container_set_border_width (GTK_CONTAINER (fWindow), 10); gtk_window_set_title (GTK_WINDOW (fWindow), name); gtk_signal_connect (GTK_OBJECT (fWindow), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); gtk_signal_connect (GTK_OBJECT (fWindow), "destroy", GTK_SIGNAL_FUNC (destroy_event), NULL); fTop = 0; fBox[fTop] = gtk_vbox_new (homogene, 4); fMode[fTop] = kBoxMode; gtk_container_add (GTK_CONTAINER (fWindow), fBox[fTop]); fStopped = false; } // empilement des boites void GTKUI::pushBox(int mode, GtkWidget* w) { assert(++fTop < stackSize); fMode[fTop] = mode; fBox[fTop] = w; } void GTKUI::closeBox() { assert(--fTop >= 0); } // les differentes boites void GTKUI::openFrameBox(const char* label) { GtkWidget * box = gtk_frame_new (label); //gtk_container_set_border_width (GTK_CONTAINER (box), 10); pushBox(kSingleMode, addWidget(label, box)); } void GTKUI::openTabBox(const char* label) { pushBox(kTabMode, addWidget(label, gtk_notebook_new ())); } void GTKUI::openHorizontalBox(const char* label) { GtkWidget * box = gtk_hbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_frame_new (label)); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } void GTKUI::openVerticalBox(const char* label) { GtkWidget * box = gtk_vbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_frame_new (label)); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } GtkWidget* GTKUI::addWidget(const char* label, GtkWidget* w) { switch (fMode[fTop]) { case kSingleMode : gtk_container_add (GTK_CONTAINER(fBox[fTop]), w); break; case kBoxMode : gtk_box_pack_start (GTK_BOX(fBox[fTop]), w, expand, fill, 0); break; case kTabMode : gtk_notebook_append_page (GTK_NOTEBOOK(fBox[fTop]), w, gtk_label_new(label)); break; } gtk_widget_show (w); return w; } // --------------------------- Press button --------------------------- struct uiButton : public uiItem { GtkButton* fButton; uiButton (UI* ui, float* zone, GtkButton* b) : uiItem(ui, zone), fButton(b) {} static void pressed( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(1.0); } static void released( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(0.0); } virtual void reflectZone() { float v = *fZone; fCache = v; if (v > 0.0) gtk_button_pressed(fButton); else gtk_button_released(fButton); } }; void GTKUI::addButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_button_new_with_label (label); addWidget(label, button); uiButton* c = new uiButton(this, zone, GTK_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "pressed", GTK_SIGNAL_FUNC (uiButton::pressed), (gpointer) c); gtk_signal_connect (GTK_OBJECT (button), "released", GTK_SIGNAL_FUNC (uiButton::released), (gpointer) c); } // --------------------------- Toggle Buttons --------------------------- struct uiToggleButton : public uiItem { GtkToggleButton* fButton; uiToggleButton(UI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addToggleButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_toggle_button_new_with_label (label); addWidget(label, button); uiToggleButton* c = new uiToggleButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (uiToggleButton::toggled), (gpointer) c); } // --------------------------- Check Button --------------------------- struct uiCheckButton : public uiItem { GtkToggleButton* fButton; uiCheckButton(UI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addCheckButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_check_button_new_with_label (label); addWidget(label, button); uiCheckButton* c = new uiCheckButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC(uiCheckButton::toggled), (gpointer) c); } // --------------------------- Adjustmenty based widgets --------------------------- struct uiAdjustment : public uiItem { GtkAdjustment* fAdj; uiAdjustment(UI* ui, float* zone, GtkAdjustment* adj) : uiItem(ui, zone), fAdj(adj) {} static void changed (GtkWidget *widget, gpointer data) { float v = GTK_ADJUSTMENT (widget)->value; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_adjustment_set_value(fAdj, v); } }; static int precision(double n) { if (n < 0.009999) return 3; else if (n < 0.099999) return 2; else if (n < 0.999999) return 1; else return 0; } // -------------------------- Vertical Slider ----------------------------------- void GTKUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_vscale_new (GTK_ADJUSTMENT(adj)); gtk_range_set_inverted (GTK_RANGE(slider), TRUE); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); gtk_widget_set_usize(slider, -1, 160); openFrameBox(label); addWidget(label, slider); closeBox(); } // -------------------------- Horizontal Slider ----------------------------------- void GTKUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_hscale_new (GTK_ADJUSTMENT(adj)); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); gtk_widget_set_usize(slider, 160, -1); openFrameBox(label); addWidget(label, slider); closeBox(); } // ------------------------------ Num Entry ----------------------------------- void GTKUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, step); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* spinner = gtk_spin_button_new (GTK_ADJUSTMENT(adj), 0.005, precision(step)); //gtk_widget_set_usize(slider, 160, -1); openFrameBox(label); addWidget(label, spinner); closeBox(); } // ========================== passive widgets =============================== // ------------------------------ Progress Bar ----------------------------------- struct uiBargraph : public uiItem { GtkProgressBar* fProgressBar; float fMin; float fMax; uiBargraph(UI* ui, float* zone, GtkProgressBar* pbar, float lo, float hi) : uiItem(ui, zone), fProgressBar(pbar), fMin(lo), fMax(hi) {} float scale(float v) { return (v-fMin)/(fMax-fMin); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_progress_bar_set_fraction(fProgressBar, scale(v)); } }; void GTKUI::addVerticalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_BOTTOM_TO_TOP); gtk_widget_set_size_request(pb, 8, -1); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); } void GTKUI::addHorizontalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_LEFT_TO_RIGHT); gtk_widget_set_size_request(pb, -1, 8); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); } // ------------------------------ Num Display ----------------------------------- struct uiNumDisplay : public uiItem { GtkLabel* fLabel; int fPrecision; uiNumDisplay(UI* ui, float* zone, GtkLabel* label, int precision) : uiItem(ui, zone), fLabel(label), fPrecision(precision) {} virtual void reflectZone() { float v = *fZone; fCache = v; char s[64]; if (fPrecision <= 0) { snprintf(s, 63, "%d", int(v)); } else if (fPrecision>3) { snprintf(s, 63, "%f", v); } else { const char* format[] = {"%.1f", "%.2f", "%.3f"}; snprintf(s, 63, format[fPrecision-1], v); } gtk_label_set_text(fLabel, s); } }; void GTKUI::addNumDisplay(const char* label, float* zone, int precision ) { GtkWidget* lw = gtk_label_new(""); new uiNumDisplay(this, zone, GTK_LABEL(lw), precision); openFrameBox(label); addWidget(label, lw); closeBox(); } // ------------------------------ Text Display ----------------------------------- struct uiTextDisplay : public uiItem { GtkLabel* fLabel; char** fNames; float fMin; float fMax; int fNum; uiTextDisplay (UI* ui, float* zone, GtkLabel* label, char* names[], float lo, float hi) : uiItem(ui, zone), fLabel(label), fNames(names), fMin(lo), fMax(hi) { fNum = 0; while (fNames[fNum] != 0) fNum++; } virtual void reflectZone() { float v = *fZone; fCache = v; int idx = int(fNum*(v-fMin)/(fMax-fMin)); if (idx < 0) idx = 0; else if (idx >= fNum) idx = fNum-1; gtk_label_set_text(fLabel, fNames[idx]); } }; void GTKUI::addTextDisplay(const char* label, float* zone, char* names[], float lo, float hi ) { GtkWidget* lw = gtk_label_new(""); new uiTextDisplay (this, zone, GTK_LABEL(lw), names, lo, hi); openFrameBox(label); addWidget(label, lw); closeBox(); } void GTKUI::show() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); } /** * Update all user items reflecting zone z */ static gboolean callUpdateAllGuis(gpointer) { UI::updateAllGuis(); return TRUE; } void GTKUI::run() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); gtk_timeout_add(40, callUpdateAllGuis, 0); gtk_main (); stop(); } /****************************************************************************** ******************************************************************************* DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // Definition of a Faust Digital Signal Processor //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; int fThreadNum; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; virtual void conclude() {} }; <> mydsp DSP; /****************************************************************************** ******************************************************************************* COREAUDIO INTERFACE ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------------------- // number of physical input and output channels of the CA device //---------------------------------------------------------------------------- int gDevNumInChans; int gDevNumOutChans; bool running = true; //---------------------------------------------------------------------------- // tables of noninterleaved input and output channels for FAUST //---------------------------------------------------------------------------- float* gInChannel[256]; float* gOutChannel[256]; #define OPEN_ERR -1 #define NO_ERR 0 class TCoreAudioRenderer { private: AudioBufferList* fInputData; AudioDeviceID fDeviceID; AudioUnit fAUHAL; OSStatus GetDefaultDevice(int inChan, int outChan, AudioDeviceID* id); static OSStatus Render(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData); public: TCoreAudioRenderer() {} virtual ~TCoreAudioRenderer() {} long OpenDefault(long inChan, long outChan, long bufferSize, long sampleRate); long Close(); long Start(); long Stop(); }; typedef TCoreAudioRenderer * TCoreAudioRendererPtr; static void PrintStreamDesc(AudioStreamBasicDescription *inDesc) { printf("- - - - - - - - - - - - - - - - - - - -\n"); printf(" Sample Rate:%f\n", inDesc->mSampleRate); printf(" Format ID:%.*s\n", (int) sizeof(inDesc->mFormatID), (char*)&inDesc->mFormatID); printf(" Format Flags:%lX\n", inDesc->mFormatFlags); printf(" Bytes per Packet:%ld\n", inDesc->mBytesPerPacket); printf(" Frames per Packet:%ld\n", inDesc->mFramesPerPacket); printf(" Bytes per Frame:%ld\n", inDesc->mBytesPerFrame); printf(" Channels per Frame:%ld\n", inDesc->mChannelsPerFrame); printf(" Bits per Channel:%ld\n", inDesc->mBitsPerChannel); printf("- - - - - - - - - - - - - - - - - - - -\n"); } static void printError(OSStatus err) { switch (err) { case kAudioHardwareNoError: printf("error code : kAudioHardwareNoError\n"); break; case kAudioConverterErr_FormatNotSupported: printf("error code : kAudioConverterErr_FormatNotSupported\n"); break; case kAudioConverterErr_OperationNotSupported: printf("error code : kAudioConverterErr_OperationNotSupported\n"); break; case kAudioConverterErr_PropertyNotSupported: printf("error code : kAudioConverterErr_PropertyNotSupported\n"); break; case kAudioConverterErr_InvalidInputSize: printf("error code : kAudioConverterErr_InvalidInputSize\n"); break; case kAudioConverterErr_InvalidOutputSize: printf("error code : kAudioConverterErr_InvalidOutputSize\n"); break; case kAudioConverterErr_UnspecifiedError: printf("error code : kAudioConverterErr_UnspecifiedError\n"); break; case kAudioConverterErr_BadPropertySizeError: printf("error code : kAudioConverterErr_BadPropertySizeError\n"); break; case kAudioConverterErr_RequiresPacketDescriptionsError: printf("error code : kAudioConverterErr_RequiresPacketDescriptionsError\n"); break; case kAudioConverterErr_InputSampleRateOutOfRange: printf("error code : kAudioConverterErr_InputSampleRateOutOfRange\n"); break; case kAudioConverterErr_OutputSampleRateOutOfRange: printf("error code : kAudioConverterErr_OutputSampleRateOutOfRange\n"); break; case kAudioHardwareNotRunningError: printf("error code : kAudioHardwareNotRunningError\n"); break; case kAudioHardwareUnknownPropertyError: printf("error code : kAudioHardwareUnknownPropertyError\n"); break; case kAudioHardwareIllegalOperationError: printf("error code : kAudioHardwareIllegalOperationError\n"); break; case kAudioHardwareBadDeviceError: printf("error code : kAudioHardwareBadDeviceError\n"); break; case kAudioHardwareBadStreamError: printf("error code : kAudioHardwareBadStreamError\n"); break; case kAudioDeviceUnsupportedFormatError: printf("error code : kAudioDeviceUnsupportedFormatError\n"); break; case kAudioDevicePermissionsError: printf("error code : kAudioDevicePermissionsError\n"); break; default: printf("error code : unknown\n"); break; } } OSStatus TCoreAudioRenderer::Render(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32, UInt32 inNumberFrames, AudioBufferList *ioData) { TCoreAudioRendererPtr renderer = (TCoreAudioRendererPtr)inRefCon; AudioUnitRender(renderer->fAUHAL, ioActionFlags, inTimeStamp, 1, inNumberFrames, renderer->fInputData); for (int i = 0; i < gDevNumInChans; i++) { gInChannel[i] = (float*)renderer->fInputData->mBuffers[i].mData; } for (int i = 0; i < gDevNumOutChans; i++) { gOutChannel[i] = (float*)ioData->mBuffers[i].mData; } STARTMESURE DSP.compute((int)inNumberFrames, gInChannel, gOutChannel); STOPMESURE running = mesure <= (KMESURE + KSKIP); return 0; } OSStatus TCoreAudioRenderer::GetDefaultDevice(int inChan, int outChan, AudioDeviceID* id) { UInt32 theSize = sizeof(UInt32); AudioDeviceID inDefault; AudioDeviceID outDefault; OSStatus res; if ((res = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultInputDevice, &theSize, &inDefault)) != noErr) return res; if ((res = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &theSize, &outDefault)) != noErr) return res; // Duplex mode if (inChan > 0 && outChan > 0) { // Get the device only if default input and output are the same if (inDefault == outDefault) { *id = inDefault; return noErr; } else { printf("GetDefaultDevice : error input = %ld and output = %ld are not the same\n", inDefault, outDefault); return kAudioHardwareBadDeviceError; } } else if (inChan > 0) { *id = inDefault; return noErr; } else if (outChan > 0) { *id = outDefault; return noErr; } else { return kAudioHardwareBadDeviceError; } return noErr; } long TCoreAudioRenderer::OpenDefault(long inChan, long outChan, long bufferSize, long samplerate) { OSStatus err = noErr; ComponentResult err1; UInt32 outSize; UInt32 enableIO; Boolean isWritable; AudioStreamBasicDescription srcFormat, dstFormat, sampleRate; long in_nChannels, out_nChannels; printf("OpenDefault inChan = %ld outChan = %ld bufferSize = %ld samplerate = %ld\n", inChan, outChan, bufferSize, samplerate); if (GetDefaultDevice(inChan, outChan, &fDeviceID) != noErr) { printf("Cannot open default device\n"); return OPEN_ERR; } // Setting buffer size outSize = sizeof(UInt32); err = AudioDeviceSetProperty(fDeviceID, NULL, 0, false, kAudioDevicePropertyBufferFrameSize, outSize, &bufferSize); if (err != noErr) { printf("Cannot set buffer size %ld\n", bufferSize); printError(err); return OPEN_ERR; } // Setting sample rate outSize = sizeof(AudioStreamBasicDescription); err = AudioDeviceGetProperty(fDeviceID, 0, false, kAudioDevicePropertyStreamFormat, &outSize, &sampleRate); if (err != noErr) { printf("Cannot get current sample rate\n"); printError(err); return OPEN_ERR; } if (samplerate != long(sampleRate.mSampleRate)) { sampleRate.mSampleRate = (Float64)(samplerate); err = AudioDeviceSetProperty(fDeviceID, NULL, 0, false, kAudioDevicePropertyStreamFormat, outSize, &sampleRate); if (err != noErr) { printf("Cannot set sample rate = %ld\n", samplerate); printError(err); return OPEN_ERR; } } // AUHAL ComponentDescription cd = {kAudioUnitType_Output, kAudioUnitSubType_HALOutput, kAudioUnitManufacturer_Apple, 0, 0}; Component HALOutput = FindNextComponent(NULL, &cd); err1 = OpenAComponent(HALOutput, &fAUHAL); if (err1 != noErr) { printf("Error calling OpenAComponent\n"); printError(err1); goto error; } err1 = AudioUnitInitialize(fAUHAL); if (err1 != noErr) { printf("Cannot initialize AUHAL unit\n"); printError(err1); goto error; } enableIO = 1; err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output, 0, &enableIO, sizeof(enableIO)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output\n"); printError(err1); goto error; } enableIO = 1; err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input, 1, &enableIO, sizeof(enableIO)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input\n"); printError(err1); goto error; } err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_CurrentDevice, kAudioUnitScope_Global, 0, &fDeviceID, sizeof(AudioDeviceID)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_CurrentDevice\n"); printError(err1); goto error; } err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 1, (UInt32*)&bufferSize, sizeof(UInt32)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_MaximumFramesPerSlice\n"); printError(err1); goto error; } err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 0, (UInt32*)&bufferSize, sizeof(UInt32)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_MaximumFramesPerSlice\n"); printError(err1); goto error; } err1 = AudioUnitGetPropertyInfo(fAUHAL, kAudioOutputUnitProperty_ChannelMap, kAudioUnitScope_Input, 1, &outSize, &isWritable); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_ChannelMap-INFO 1\n"); printError(err1); } in_nChannels = (err1 == noErr) ? outSize / sizeof(SInt32) : 0; printf("in_nChannels = %ld\n", in_nChannels); err1 = AudioUnitGetPropertyInfo(fAUHAL, kAudioOutputUnitProperty_ChannelMap, kAudioUnitScope_Output, 0, &outSize, &isWritable); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_ChannelMap-INFO 0\n"); printError(err1); } out_nChannels = (err1 == noErr) ? outSize / sizeof(SInt32) : 0; printf("out_nChannels = %ld\n", out_nChannels); /* Just ignore this case : seems to work without any further change... if (outChan > out_nChannels) { printf("This device hasn't required output channels\n"); goto error; } if (inChan > in_nChannels) { printf("This device hasn't required input channels\n"); goto error; } */ if (outChan < out_nChannels) { SInt32 chanArr[out_nChannels]; for (int i = 0; i < out_nChannels; i++) { chanArr[i] = -1; } for (int i = 0; i < outChan; i++) { chanArr[i] = i; } err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_ChannelMap, kAudioUnitScope_Output, 0, chanArr, sizeof(SInt32) * out_nChannels); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_ChannelMap 0\n"); printError(err1); } } if (inChan < in_nChannels) { SInt32 chanArr[in_nChannels]; for (int i = 0; i < in_nChannels; i++) { chanArr[i] = -1; } for (int i = 0; i < inChan; i++) { chanArr[i] = i; } AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_ChannelMap , kAudioUnitScope_Input, 1, chanArr, sizeof(SInt32) * in_nChannels); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_ChannelMap 1\n"); printError(err1); } } if (inChan > 0) { outSize = sizeof(AudioStreamBasicDescription); err1 = AudioUnitGetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 1, &srcFormat, &outSize); if (err1 != noErr) { printf("Error calling AudioUnitGetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Output\n"); printError(err1); } PrintStreamDesc(&srcFormat); srcFormat.mSampleRate = samplerate; srcFormat.mFormatID = kAudioFormatLinearPCM; srcFormat.mFormatFlags = kAudioFormatFlagsNativeFloatPacked | kLinearPCMFormatFlagIsNonInterleaved; srcFormat.mBytesPerPacket = sizeof(float); srcFormat.mFramesPerPacket = 1; srcFormat.mBytesPerFrame = sizeof(float); srcFormat.mChannelsPerFrame = inChan; srcFormat.mBitsPerChannel = 32; PrintStreamDesc(&srcFormat); err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 1, &srcFormat, sizeof(AudioStreamBasicDescription)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Output\n"); printError(err1); } } if (outChan > 0) { outSize = sizeof(AudioStreamBasicDescription); err1 = AudioUnitGetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &dstFormat, &outSize); if (err1 != noErr) { printf("Error calling AudioUnitGetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Output\n"); printError(err1); } PrintStreamDesc(&dstFormat); dstFormat.mSampleRate = samplerate; dstFormat.mFormatID = kAudioFormatLinearPCM; dstFormat.mFormatFlags = kAudioFormatFlagsNativeFloatPacked | kLinearPCMFormatFlagIsNonInterleaved; dstFormat.mBytesPerPacket = sizeof(float); dstFormat.mFramesPerPacket = 1; dstFormat.mBytesPerFrame = sizeof(float); dstFormat.mChannelsPerFrame = outChan; dstFormat.mBitsPerChannel = 32; PrintStreamDesc(&dstFormat); err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &dstFormat, sizeof(AudioStreamBasicDescription)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Output\n"); printError(err1); } } if (inChan > 0 && outChan == 0) { AURenderCallbackStruct output; output.inputProc = Render; output.inputProcRefCon = this; err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, 0, &output, sizeof(output)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_SetRenderCallback 1\n"); printError(err1); goto error; } } else { AURenderCallbackStruct output; output.inputProc = Render; output.inputProcRefCon = this; err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, 0, &output, sizeof(output)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_SetRenderCallback 0\n"); printError(err1); goto error; } } fInputData = (AudioBufferList*)malloc(sizeof(UInt32) + inChan * sizeof(AudioBuffer)); if (fInputData == 0) { printf("Cannot allocate memory for input buffers\n"); goto error; } fInputData->mNumberBuffers = inChan; // Prepare buffers for (int i = 0; i < inChan; i++) { fInputData->mBuffers[i].mNumberChannels = 1; fInputData->mBuffers[i].mData = malloc(bufferSize * sizeof(float)); fInputData->mBuffers[i].mDataByteSize = bufferSize * sizeof(float); } return NO_ERR; error: AudioUnitUninitialize(fAUHAL); CloseComponent(fAUHAL); return OPEN_ERR; } long TCoreAudioRenderer::Close() { for (int i = 0; i < gDevNumInChans; i++) { free(fInputData->mBuffers[i].mData); } free(fInputData); AudioUnitUninitialize(fAUHAL); CloseComponent(fAUHAL); return NO_ERR; } long TCoreAudioRenderer::Start() { OSStatus err = AudioOutputUnitStart(fAUHAL); if (err != noErr) { printf("Error while opening device : device open error \n"); return OPEN_ERR; } else { return NO_ERR; } } long TCoreAudioRenderer::Stop() { OSStatus err = AudioOutputUnitStop(fAUHAL); if (err != noErr) { printf("Error while closing device : device close error \n"); return OPEN_ERR; } else { return NO_ERR; } } /****************************************************************************** ******************************************************************************* MAIN PLAY THREAD ******************************************************************************* *******************************************************************************/ // lopt : Scan Command Line long int Arguments /* long lopt (int argc, char *argv[], const char* longname, const char* shortname, long def) { for (int i=2; irun(); pthread_exit(0); return 0; } int main(int argc, char *argv[] ) { CHECKINTSIZE; UI* interface = new GTKUI(argv[0], &argc, &argv); // compute rcfilename to (re)store application state char rcfilename[256]; char* home = getenv("HOME"); snprintf(rcfilename, 255, "%s/.%src", home, basename(argv[0])); TCoreAudioRenderer audio_device; long srate = (long)lopt(argv, "--frequency", 44100); int fpb = lopt(argv, "--buffer", 512); AVOIDDENORMALS; DSP.init(srate); DSP.buildUserInterface(interface); gDevNumInChans = DSP.getNumInputs(); gDevNumOutChans = DSP.getNumOutputs(); interface->recallState(rcfilename); pthread_create(&guithread, NULL, run_ui, interface); openMesure(); if (audio_device.OpenDefault(gDevNumInChans, gDevNumOutChans, fpb, srate) < 0) { printf("Cannot open CoreAudio device\n"); return 0; } if (audio_device.Start() < 0) { printf("Cannot start CoreAudio device\n"); return 0; } while(running) { usleep(100000); } closeMesure(); interface->saveState(rcfilename); #ifdef BENCHMARKMODE printstats(argv[0], fpb, DSP.getNumInputs(), DSP.getNumOutputs()); #endif return 0; } faust-0.9.46/benchmark/zero2.dsp0000644000175000017500000000001611702130733016345 0ustar orlareyorlareyprocess = 0,0;faust-0.9.46/benchmark/mixer.dsp0000644000175000017500000000147111702130733016436 0ustar orlareyorlareydeclare name "mixer"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //------------------------------------------------- // Simple 8x2 mixer //------------------------------------------------- import("music.lib"); smooth(c) = *(1-c) : +~*(c); vol = *(vslider("fader", 0, -60, 4, 0.1) : db2linear : smooth(0.99)); mute = *(1 - checkbox("mute")); vumeter(x) = attach(x, envelop(x) : vbargraph("", 0, 1)) with { envelop = abs : min(0.99) : max ~ -(1.0/SR); }; pan = _ <: *(sqrt(1-c)), *(sqrt(c)) with { c = (nentry("pan",0,-8,8,1)-8)/-16 : smooth(0.99); }; voice(v) = vgroup("voice %v", mute : hgroup("", vol : vumeter) : pan); stereo = hgroup("stereo out", vol, vol); process = hgroup("mixer", par(i, 8, voice(i)) :> stereo); faust-0.9.46/benchmark/rms2.dsp0000644000175000017500000000005211702130733016167 0ustar orlareyorlareyprocess = par(i,2,component("rms.dsp")) ; faust-0.9.46/benchmark/freeverb.dsp0000644000175000017500000000526111702130733017113 0ustar orlareyorlareydeclare name "freeverb"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //====================================================== // // Freeverb // Faster version using fixed delays (20% gain) // //====================================================== // Constant Parameters //-------------------- fixedgain = 0.015; scalewet = 3.0; scaledry = 2.0; scaledamp = 0.4; scaleroom = 0.28; offsetroom = 0.7; initialroom = 0.5; initialdamp = 0.5; initialwet = 1.0/scalewet; initialdry = 0; initialwidth= 1.0; initialmode = 0.0; freezemode = 0.5; stereospread= 23; allpassfeed = 0.5; // Filter Parametres //------------------ combtuningL1 = 1116; combtuningL2 = 1188; combtuningL3 = 1277; combtuningL4 = 1356; combtuningL5 = 1422; combtuningL6 = 1491; combtuningL7 = 1557; combtuningL8 = 1617; allpasstuningL1 = 556; allpasstuningL2 = 441; allpasstuningL3 = 341; allpasstuningL4 = 225; // Control Sliders //-------------------- // Damp : filtrage des aigus des echos (surtout actif pour des grandes valeurs de RoomSize) // RoomSize : taille de la piece // Dry : signal original // Wet : signal avec reverbration dampSlider = hslider("Damp",0.5, 0, 1, 0.025)*scaledamp; roomsizeSlider = hslider("RoomSize", 0.5, 0, 1, 0.025)*scaleroom + offsetroom; wetSlider = hslider("Wet", 0.3333, 0, 1, 0.025); drySlider = hslider("Dry", 0, 0, 1, 0.025); combfeed = roomsizeSlider; // Comb and Allpass filters //------------------------- allpass(dt,fb) = (_,_ <: (*(fb),_:+:@(dt)), -) ~ _ : (!,_); comb(dt, fb, damp) = (+:@(dt)) ~ (*(1-damp) : (+ ~ *(damp)) : *(fb)); // Reverb components //------------------ monoReverb(fb1, fb2, damp, spread) = _ <: comb(combtuningL1+spread, fb1, damp), comb(combtuningL2+spread, fb1, damp), comb(combtuningL3+spread, fb1, damp), comb(combtuningL4+spread, fb1, damp), comb(combtuningL5+spread, fb1, damp), comb(combtuningL6+spread, fb1, damp), comb(combtuningL7+spread, fb1, damp), comb(combtuningL8+spread, fb1, damp) :> allpass (allpasstuningL1+spread, fb2) : allpass (allpasstuningL2+spread, fb2) : allpass (allpasstuningL3+spread, fb2) : allpass (allpasstuningL4+spread, fb2) ; stereoReverb(fb1, fb2, damp, spread) = + <: monoReverb(fb1, fb2, damp, 0), monoReverb(fb1, fb2, damp, spread); // fxctrl : add an input gain and a wet-dry control to a stereo FX //---------------------------------------------------------------- fxctrl(g,w,Fx) = _,_ <: (*(g),*(g) : Fx : *(w),*(w)), *(1-w), *(1-w) +> _,_; // Freeverb //--------- freeverb = vgroup("Freeverb", fxctrl(fixedgain, wetSlider, stereoReverb(combfeed, allpassfeed, dampSlider, stereospread))); process = freeverb; faust-0.9.46/benchmark/copy2.dsp0000644000175000017500000000001711702130733016341 0ustar orlareyorlareyprocess = _,_; faust-0.9.46/benchmark/tapiir.dsp0000644000175000017500000000227211702130733016602 0ustar orlareyorlareydeclare name "tapiir"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //====================================================== // // TAPIIR // (from Maarten de Boer's Tapiir) // //====================================================== import("music.lib"); dsize = 524288; // user interface //--------------- tap(n) = vslider("tap %n", 0,0,1,0.1); in(n) = vslider("input %n", 1,0,1,0.1); gain = vslider("gain", 1,0,1,0.1); del = vslider("delay (sec)", 0, 0, 5, 0.01) * SR; // bus, mixer and matrix //----------------------------------------------------------- //bus(n) = par(i,n,_); mixer(taps,lines) = par(i,taps,*(tap(i))), par(i,lines,*(in(i))) :> *(gain); matrix(taps,lines) = ( bus(lines+taps) <: tgroup("", par(i, taps, hgroup("Tap %i", mixer(taps,lines) : delay(dsize,del)))) ) ~ bus(taps); // tapiir //-------- tapiir(taps,lines) = vgroup("Tapiir", bus(lines) <: (matrix(taps,lines), bus(lines)) <: vgroup( "outputs", par( i, lines, hgroup("output %i", mixer(taps,lines)) ) ) ); process = tapiir(6,2); faust-0.9.46/benchmark/karplus32.dsp0000644000175000017500000000237211702130733017141 0ustar orlareyorlareydeclare name "karplus32"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //----------------------------------------------- // karplus-strong // with 32 resonators in parallel //----------------------------------------------- import("music.lib"); // Excitator //-------- upfront(x) = (x-x') > 0.0; decay(n,x) = x - (x>0)/n; release(n) = + ~ decay(n); trigger(n) = upfront : release(n) : >(0.0) : +(leak); leak = 1.0/65536.0; size = hslider("excitation (samples)", 128, 2, 512, 1); // Resonator //----------------- dur = hslider("duration (samples)", 128, 2, 512, 1); att = hslider("attenuation", 0.1, 0, 1, 0.01); average(x) = (x+x')/2; resonator(d, a) = (+ : delay(4096, d-1.5)) ~ (average : *(1.0-a)) ; // Polyphony //----------------- detune = hslider("detune", 32, 0, 512, 1); polyphony = hslider("polyphony", 1, 0, 32, 1); output = hslider("output volume", 0.5, 0, 1, 0.1); process = vgroup("karplus32", vgroup("noise generator", noise * hslider("level", 0.5, 0, 1, 0.1)) : vgroup("excitator", *(button("play"): trigger(size))) <: vgroup("resonator x32", par(i,32, resonator(dur+i*detune, att) * (polyphony > i))) :> *(output),*(output) ); faust-0.9.46/benchmark/fdelay8.dsp0000644000175000017500000000043511702130733016645 0ustar orlareyorlareyimport("filter.lib"); line(i) = vgroup("line %i", fdelay5(128, d) : *(g) ) with { g = vslider("gain (dB)", -60, -60, 4, 0.1) : db2linear : smooth(0.995); d = nentry("delay (samp)", 10, 10, 128, 0.1) : smooth(0.995); }; process = hgroup("", par(i, 8, line(i)) ); faust-0.9.46/WHATSNEW0000644000175000017500000001104011702130733014024 0ustar orlareyorlarey ================ | FAUST 0.9.46 | ================ GRAME - Centre National de Creation Musicale - is happy to announce the release of FAUST 0.9.46. This new release provides several fixes, additions and improvements in particular in the examples, libraries and architecture files. ------------- About FAUST : ------------- FAUST (Functional Audio Stream) is a functional programming language specifically designed for real-time signal processing and synthesis. A distinctive characteristic of FAUST is to be fully compiled. The FAUST compiler translates DSP specifications into very efficient C++ code that works at sample level. It targets high-performance signal processing applications, libraries and audio plug-ins for a variety of audio platforms and standards. A same FAUST specification can be used to easily generate native JACK or ALSA applications, as well as CSOUND, LADSPA, MAX/MSP, PD, Q, SC and VST plugins. The Faust distribution can be downloaded at: http://sourceforge.net/projects/faudiostream The GIT repository can be cloned with the following command : git clone git://faudiostream.git.sourceforge.net/gitroot/faudiostream/faudiostream faust Two mailing lists are available: https://lists.sourceforge.net/lists/listinfo/faudiostream-devel https://lists.sourceforge.net/lists/listinfo/faudiostream-users In order to test FAUST without installing it, please refer to the Online Faust Compiler (requires firefox): http://faust.grame.fr ======================== WHAT'S NEW ============================== --------------- Architectures : --------------- - supercollider : - revised search-order for SuperCollider headers in Linux, - enhancements to SuperCollider class and control name generation in faust2sc and supercollider.cpp, - Faust prefix added to SuperCollider module name to conform with faust2supercollider script, - default SynthDef with metadata support added to faust2supercollider and faust2sc - -DNO_LIBSNDFILE and -DNDEBUG added to Makefile.sccompile for conformity with faust2supercollider (Darwin) - matlabplot : new -s (skip) option allowing to skip samples before printing - netjack : IP and port paramaters added in netjack-dsp architecture, NetJack client now restart. - iPhone : architecture files updated - pure : bug fixes, realtime-friendly voice allocation fixes, support for metadata. - puredata : on Darwin both 32 and 64-bits intel code are now generated ----------- Libraries : ----------- - effect.lib : moog_vcf_2bn added, minor zita_rev1 additions - filter.lib : tf2np, tf2snp, and general ladder/lattice filters added - osc : build for both i386 and x86_64 architectures on Mac OSX, corrects frames value in OSC IO architecture ---------- Examples : ---------- - improvements and bug corrections in faust-stk - new examples for Faust-STK in /examples/faust-stk/pd-patches/fancy - new description metadata tag in faust-stk examples ---------- Compiler : ---------- - Support for listings with accents and symbolic representation for numbers of type i/j.pi**k or i/j.e**k in automatic documentation system - improved and simplified infinite loop detection during compilation, default compiler timeout set to 10 mn - bug fix when counting recursive signals to draw - compiling error with VC++ 2008 fix --------- Scripts : --------- - option -utf8 added to faust2mathdoc allowing to recode the .dsp file to UTF-8 before being processed - added -I/usr/local/lib/faust to faust2ladspa because faust2jack uses this solution for typical personal Linux - faust2sc: added checkInputs method to generated UGen; SynthDef input signals wrapped in In.ar() - faust2pd : updated to faust2pd-2.5 ---------------- Acknowledgments: ---------------- Many persons have been contributing to the FAUST project by providing code for the compiler, architecture files, libraries, examples, documentation, scripts, bug reports, ideas, etc. I would like to thank them and especially: Fons Adriaensen, Tim Blechmann, Tiziano Bole, Baktery Chanka, Thomas Charbonnel, Damien Cramet, Etienne Gaudrin, Albert Graef, Stefan Kersten, Victor Lazzarini, Matthieu Leberre, Mathieu Leroi, Kjetil Matheussen, Hermann Meyer, Romain Michon, Remy Muller, Sampo Savolainen, Nicolas Scaringella, Stephen Sinclair, Travis Skare, Julius Smith, Michael Wilson, as well as my colleagues at GRAME, in particular : Dominique Fober, Stephane Letz and Karim Barkati, and from the ASTREE project : Jerome Barthelemy (IRCAM), Alain Bonardi (IRCAM), Raffaele Ciavarella (IRCAM), Pierre Jouvelot (Mines/ParisTech), Laurent Pottier (U. Saint-Etienne) Yann Orlarey GRAME faust-0.9.46/syntax-highlighting/0000755000175000017500000000000011702130733016636 5ustar orlareyorlareyfaust-0.9.46/syntax-highlighting/faust.xml0000644000175000017500000002064711702130733020513 0ustar orlareyorlarey mem prefix int float rdtable rwtable select2 select3 ffunction fconstant fvariable button checkbox vslider hslider nentry vgroup hgroup tgroup vbargraph hbargraph attach acos asin atan atan2 cos sin tan exp log log10 pow sqrt abs min max fmod remainder floor ceil rint process with case seq par sum prod import component library environment declare faust-0.9.46/syntax-highlighting/README0000644000175000017500000000273711702130733017527 0ustar orlareyorlareyFaust Syntax Highlighting Files ------------------------------- This folder contains syntax highlighting files for various editors. The editors currently supported are : KDE Kate/Kwrite, GNOME gedit, Macintosh TextWrangler, highlight and vim 1) KDE Kate/Kwrite install the file 'faust.xml' into Kate syntax folder ('/opt/kde3/share/apps/katepart/syntax' on suse 10.0) ('/usr/share/apps/katepart/syntax' on mandriva and ubuntu) 2) gedit Install the file 'faust.lang' into gedit syntax folder ('/usr/share/gtksourceview-2.0/language-specs' on Ubuntu 9.10) 3) TextWrangler install the file Faust.plist into ~/Library/Application\ Support/TextWrangler/Language\ Modules/ 4) Highlight install dsp.lang into /usr/share/highlight/langDefs/ Examples using highlight : highlight --latex -l -t 4 -i karplus.dsp -o karplus.dsp.tex highlight -l -t 4 -i mixer.dsp -o mixer.dsp.html 5) VIM 'faust.vim' is a syntax file for VIM contributed by Bjrn Lindig - install the file 'faust.vim' into vim syntax folder ('~/.vim/syntax/') - add the following lines to the file 'filetype.vim' in the '~/.vim' directory (if its not there, you have to create it): faust filetype file if exists("did_load_filetypes") finish endif augroup filetypedetect au! BufRead,BufNewFile *.fst setfiletype faust au! BufRead,BufNewFile *.dsp setfiletype faust augroup END 6) EMACS An EMACS Faust mode is provided by Juan Gabriel Alzate Romero at https://github.com/rukano/emacs-faust-mode faust-0.9.46/syntax-highlighting/faust.vim0000644000175000017500000000502311702130733020475 0ustar orlareyorlarey" There has to be a file called filetype.vim in your ~/.vim directory " with the following content: " faust filetype file " if exists("did_load_filetypes") " finish " endif " augroup filetypedetect " au! BufRead,BufNewFile *.fst setfiletype faust " au! BufRead,BufNewFile *.dsp setfiletype faust " augroup END " " " Faust syntax file " Language: faust " Maintainer: bjoern lindig " Version: 0.1 " Last change: 2009-05-12 " remove any old syntax stuff hanging around syn clear """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " faust primitives " the list is taken from the faust.xml file writen for the kate-editor and may " not be complete syn keyword fstPrims mem prefix int float rdtable rwtable select2 select3 ffunction fconstant fvariable button checkbox vslider hslider nentry vgroup hgroup tgroup vbargraph hbargraph attach acos asin atan atan2 cos sin tan exp log log10 pow sqrt abs min max fmod remainder floor ceil rint """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " faust operators syn keyword fstOps process with case seq par sum prod import component library environment declare """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " faust comments syn match fstComment "//.*$" syn region fstComment start="/\*" end="\*/" contains=fstOperator keepend extend """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " faust operators syn match fstOperator "_" syn match fstOperator "!" syn match fstOperator "+" syn match fstOperator "-" syn match fstOperator "*" syn match fstOperator " / " syn match fstOperator "%" syn match fstOperator "<" syn match fstOperator ">" syn match fstOperator ">=" syn match fstOperator "<=" syn match fstOperator "!=" syn match fstOperator "==" syn match fstOperator "&" syn match fstOperator "\^" syn match fstOperator "|" syn match fstOperator "<<" syn match fstOperator ">>" syn match fstOperator ":" syn match fstOperator "," syn match fstOperator "<:" syn match fstOperator ":>" syn match fstOperator "\~" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " faust brackets syn match fstAoperator "(" syn match fstAoperator ")" " String syn region fstString start=+"+ skip=+\\\\\|\\"+ end=+"+ " Color definition hi link fstAoperator Statement hi link fstPrims Label hi link fstOps Identifier hi link fstOperator Special hi link fstComment Comment hi link fstString String " The name of the syntax is faust let b:current_syntax = "faust" faust-0.9.46/syntax-highlighting/faust.lang0000644000175000017500000002520611702130733020630 0ustar orlareyorlarey text/x-faust *.dsp // /* */

faust-0.9.46/tools/faust2flash_v0.1/Step_2_FlashBuilder_project/html-template/swfobject.js0000644000175000017500000005565311702130733031420 0ustar orlareyorlarey/*! SWFObject v2.1 Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis This software is released under the MIT License */ var swfobject = function() { var UNDEF = "undefined", OBJECT = "object", SHOCKWAVE_FLASH = "Shockwave Flash", SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash", FLASH_MIME_TYPE = "application/x-shockwave-flash", EXPRESS_INSTALL_ID = "SWFObjectExprInst", win = window, doc = document, nav = navigator, domLoadFnArr = [], regObjArr = [], objIdArr = [], listenersArr = [], script, timer = null, storedAltContent = null, storedAltContentId = null, isDomLoaded = false, isExpressInstallActive = false; /* Centralized function for browser feature detection - Proprietary feature detection (conditional compiling) is used to detect Internet Explorer's features - User agent string detection is only used when no alternative is possible - Is executed directly for optimal performance */ var ua = function() { var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF, playerVersion = [0,0,0], d = null; if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) { d = nav.plugins[SHOCKWAVE_FLASH].description; if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+ d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10); playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10); playerVersion[2] = /r/.test(d) ? parseInt(d.replace(/^.*r(.*)$/, "$1"), 10) : 0; } } else if (typeof win.ActiveXObject != UNDEF) { var a = null, fp6Crash = false; try { a = new ActiveXObject(SHOCKWAVE_FLASH_AX + ".7"); } catch(e) { try { a = new ActiveXObject(SHOCKWAVE_FLASH_AX + ".6"); playerVersion = [6,0,21]; a.AllowScriptAccess = "always"; // Introduced in fp6.0.47 } catch(e) { if (playerVersion[0] == 6) { fp6Crash = true; } } if (!fp6Crash) { try { a = new ActiveXObject(SHOCKWAVE_FLASH_AX); } catch(e) {} } } if (!fp6Crash && a) { // a will return null when ActiveX is disabled try { d = a.GetVariable("$version"); // Will crash fp6.0.21/23/29 if (d) { d = d.split(" ")[1].split(","); playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; } } catch(e) {} } } var u = nav.userAgent.toLowerCase(), p = nav.platform.toLowerCase(), webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit ie = false, windows = p ? /win/.test(p) : /win/.test(u), mac = p ? /mac/.test(p) : /mac/.test(u); /*@cc_on ie = true; @if (@_win32) windows = true; @elif (@_mac) mac = true; @end @*/ return { w3cdom:w3cdom, pv:playerVersion, webkit:webkit, ie:ie, win:windows, mac:mac }; }(); /* Cross-browser onDomLoad - Based on Dean Edwards' solution: http://dean.edwards.name/weblog/2006/06/again/ - Will fire an event as soon as the DOM of a page is loaded (supported by Gecko based browsers - like Firefox -, IE, Opera9+, Safari) */ var onDomLoad = function() { if (!ua.w3cdom) { return; } addDomLoadEvent(main); if (ua.ie && ua.win) { try { // Avoid a possible Operation Aborted error doc.write(""); // String is split into pieces to avoid Norton AV to add code that can cause errors script = getElementById("__ie_ondomload"); if (script) { addListener(script, "onreadystatechange", checkReadyState); } } catch(e) {} } if (ua.webkit && typeof doc.readyState != UNDEF) { timer = setInterval(function() { if (/loaded|complete/.test(doc.readyState)) { callDomLoadFunctions(); }}, 10); } if (typeof doc.addEventListener != UNDEF) { doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, null); } addLoadEvent(callDomLoadFunctions); }(); function checkReadyState() { if (script.readyState == "complete") { script.parentNode.removeChild(script); callDomLoadFunctions(); } } function callDomLoadFunctions() { if (isDomLoaded) { return; } if (ua.ie && ua.win) { // Test if we can really add elements to the DOM; we don't want to fire it too early var s = createElement("span"); try { // Avoid a possible Operation Aborted error var t = doc.getElementsByTagName("body")[0].appendChild(s); t.parentNode.removeChild(t); } catch (e) { return; } } isDomLoaded = true; if (timer) { clearInterval(timer); timer = null; } var dl = domLoadFnArr.length; for (var i = 0; i < dl; i++) { domLoadFnArr[i](); } } function addDomLoadEvent(fn) { if (isDomLoaded) { fn(); } else { domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+ } } /* Cross-browser onload - Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/ - Will fire an event as soon as a web page including all of its assets are loaded */ function addLoadEvent(fn) { if (typeof win.addEventListener != UNDEF) { win.addEventListener("load", fn, false); } else if (typeof doc.addEventListener != UNDEF) { doc.addEventListener("load", fn, false); } else if (typeof win.attachEvent != UNDEF) { addListener(win, "onload", fn); } else if (typeof win.onload == "function") { var fnOld = win.onload; win.onload = function() { fnOld(); fn(); }; } else { win.onload = fn; } } /* Main function - Will preferably execute onDomLoad, otherwise onload (as a fallback) */ function main() { // Static publishing only var rl = regObjArr.length; for (var i = 0; i < rl; i++) { // For each registered object element var id = regObjArr[i].id; if (ua.pv[0] > 0) { var obj = getElementById(id); if (obj) { regObjArr[i].width = obj.getAttribute("width") ? obj.getAttribute("width") : "0"; regObjArr[i].height = obj.getAttribute("height") ? obj.getAttribute("height") : "0"; if (hasPlayerVersion(regObjArr[i].swfVersion)) { // Flash plug-in version >= Flash content version: Houston, we have a match! if (ua.webkit && ua.webkit < 312) { // Older webkit engines ignore the object element's nested param elements fixParams(obj); } setVisibility(id, true); } else if (regObjArr[i].expressInstall && !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac)) { // Show the Adobe Express Install dialog if set by the web page author and if supported (fp6.0.65+ on Win/Mac OS only) showExpressInstall(regObjArr[i]); } else { // Flash plug-in and Flash content version mismatch: display alternative content instead of Flash content displayAltContent(obj); } } } else { // If no fp is installed, we let the object element do its job (show alternative content) setVisibility(id, true); } } } /* Fix nested param elements, which are ignored by older webkit engines - This includes Safari up to and including version 1.2.2 on Mac OS 10.3 - Fall back to the proprietary embed element */ function fixParams(obj) { var nestedObj = obj.getElementsByTagName(OBJECT)[0]; if (nestedObj) { var e = createElement("embed"), a = nestedObj.attributes; if (a) { var al = a.length; for (var i = 0; i < al; i++) { if (a[i].nodeName == "DATA") { e.setAttribute("src", a[i].nodeValue); } else { e.setAttribute(a[i].nodeName, a[i].nodeValue); } } } var c = nestedObj.childNodes; if (c) { var cl = c.length; for (var j = 0; j < cl; j++) { if (c[j].nodeType == 1 && c[j].nodeName == "PARAM") { e.setAttribute(c[j].getAttribute("name"), c[j].getAttribute("value")); } } } obj.parentNode.replaceChild(e, obj); } } /* Show the Adobe Express Install dialog - Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75 */ function showExpressInstall(regObj) { isExpressInstallActive = true; var obj = getElementById(regObj.id); if (obj) { if (regObj.altContentId) { var ac = getElementById(regObj.altContentId); if (ac) { storedAltContent = ac; storedAltContentId = regObj.altContentId; } } else { storedAltContent = abstractAltContent(obj); } if (!(/%$/.test(regObj.width)) && parseInt(regObj.width, 10) < 310) { regObj.width = "310"; } if (!(/%$/.test(regObj.height)) && parseInt(regObj.height, 10) < 137) { regObj.height = "137"; } doc.title = doc.title.slice(0, 47) + " - Flash Player Installation"; var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn", dt = doc.title, fv = "MMredirectURL=" + win.location + "&MMplayerType=" + pt + "&MMdoctitle=" + dt, replaceId = regObj.id; // For IE when a SWF is loading (AND: not available in cache) wait for the onload event to fire to remove the original object element // In IE you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work if (ua.ie && ua.win && obj.readyState != 4) { var newObj = createElement("div"); replaceId += "SWFObjectNew"; newObj.setAttribute("id", replaceId); obj.parentNode.insertBefore(newObj, obj); // Insert placeholder div that will be replaced by the object element that loads expressinstall.swf obj.style.display = "none"; var fn = function() { obj.parentNode.removeChild(obj); }; addListener(win, "onload", fn); } createSWF({ data:regObj.expressInstall, id:EXPRESS_INSTALL_ID, width:regObj.width, height:regObj.height }, { flashvars:fv }, replaceId); } } /* Functions to abstract and display alternative content */ function displayAltContent(obj) { if (ua.ie && ua.win && obj.readyState != 4) { // For IE when a SWF is loading (AND: not available in cache) wait for the onload event to fire to remove the original object element // In IE you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work var el = createElement("div"); obj.parentNode.insertBefore(el, obj); // Insert placeholder div that will be replaced by the alternative content el.parentNode.replaceChild(abstractAltContent(obj), el); obj.style.display = "none"; var fn = function() { obj.parentNode.removeChild(obj); }; addListener(win, "onload", fn); } else { obj.parentNode.replaceChild(abstractAltContent(obj), obj); } } function abstractAltContent(obj) { var ac = createElement("div"); if (ua.win && ua.ie) { ac.innerHTML = obj.innerHTML; } else { var nestedObj = obj.getElementsByTagName(OBJECT)[0]; if (nestedObj) { var c = nestedObj.childNodes; if (c) { var cl = c.length; for (var i = 0; i < cl; i++) { if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) { ac.appendChild(c[i].cloneNode(true)); } } } } } return ac; } /* Cross-browser dynamic SWF creation */ function createSWF(attObj, parObj, id) { var r, el = getElementById(id); if (el) { if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content attObj.id = id; } if (ua.ie && ua.win) { // IE, the object element and W3C DOM methods do not combine: fall back to outerHTML var att = ""; for (var i in attObj) { if (attObj[i] != Object.prototype[i]) { // Filter out prototype additions from other potential libraries, like Object.prototype.toJSONString = function() {} if (i.toLowerCase() == "data") { parObj.movie = attObj[i]; } else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword att += ' class="' + attObj[i] + '"'; } else if (i.toLowerCase() != "classid") { att += ' ' + i + '="' + attObj[i] + '"'; } } } var par = ""; for (var j in parObj) { if (parObj[j] != Object.prototype[j]) { // Filter out prototype additions from other potential libraries par += ''; } } el.outerHTML = '' + par + ''; objIdArr[objIdArr.length] = attObj.id; // Stored to fix object 'leaks' on unload (dynamic publishing only) r = getElementById(attObj.id); } else if (ua.webkit && ua.webkit < 312) { // Older webkit engines ignore the object element's nested param elements: fall back to the proprietary embed element var e = createElement("embed"); e.setAttribute("type", FLASH_MIME_TYPE); for (var k in attObj) { if (attObj[k] != Object.prototype[k]) { // Filter out prototype additions from other potential libraries if (k.toLowerCase() == "data") { e.setAttribute("src", attObj[k]); } else if (k.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword e.setAttribute("class", attObj[k]); } else if (k.toLowerCase() != "classid") { // Filter out IE specific attribute e.setAttribute(k, attObj[k]); } } } for (var l in parObj) { if (parObj[l] != Object.prototype[l]) { // Filter out prototype additions from other potential libraries if (l.toLowerCase() != "movie") { // Filter out IE specific param element e.setAttribute(l, parObj[l]); } } } el.parentNode.replaceChild(e, el); r = e; } else { // Well-behaving browsers var o = createElement(OBJECT); o.setAttribute("type", FLASH_MIME_TYPE); for (var m in attObj) { if (attObj[m] != Object.prototype[m]) { // Filter out prototype additions from other potential libraries if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword o.setAttribute("class", attObj[m]); } else if (m.toLowerCase() != "classid") { // Filter out IE specific attribute o.setAttribute(m, attObj[m]); } } } for (var n in parObj) { if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // Filter out prototype additions from other potential libraries and IE specific param element createObjParam(o, n, parObj[n]); } } el.parentNode.replaceChild(o, el); r = o; } } return r; } function createObjParam(el, pName, pValue) { var p = createElement("param"); p.setAttribute("name", pName); p.setAttribute("value", pValue); el.appendChild(p); } /* Cross-browser SWF removal - Especially needed to safely and completely remove a SWF in Internet Explorer */ function removeSWF(id) { var obj = getElementById(id); if (obj && (obj.nodeName == "OBJECT" || obj.nodeName == "EMBED")) { if (ua.ie && ua.win) { if (obj.readyState == 4) { removeObjectInIE(id); } else { win.attachEvent("onload", function() { removeObjectInIE(id); }); } } else { obj.parentNode.removeChild(obj); } } } function removeObjectInIE(id) { var obj = getElementById(id); if (obj) { for (var i in obj) { if (typeof obj[i] == "function") { obj[i] = null; } } obj.parentNode.removeChild(obj); } } /* Functions to optimize JavaScript compression */ function getElementById(id) { var el = null; try { el = doc.getElementById(id); } catch (e) {} return el; } function createElement(el) { return doc.createElement(el); } /* Updated attachEvent function for Internet Explorer - Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks */ function addListener(target, eventType, fn) { target.attachEvent(eventType, fn); listenersArr[listenersArr.length] = [target, eventType, fn]; } /* Flash Player and SWF content version matching */ function hasPlayerVersion(rv) { var pv = ua.pv, v = rv.split("."); v[0] = parseInt(v[0], 10); v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0" v[2] = parseInt(v[2], 10) || 0; return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false; } /* Cross-browser dynamic CSS creation - Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php */ function createCSS(sel, decl) { if (ua.ie && ua.mac) { return; } var h = doc.getElementsByTagName("head")[0], s = createElement("style"); s.setAttribute("type", "text/css"); s.setAttribute("media", "screen"); if (!(ua.ie && ua.win) && typeof doc.createTextNode != UNDEF) { s.appendChild(doc.createTextNode(sel + " {" + decl + "}")); } h.appendChild(s); if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) { var ls = doc.styleSheets[doc.styleSheets.length - 1]; if (typeof ls.addRule == OBJECT) { ls.addRule(sel, decl); } } } function setVisibility(id, isVisible) { var v = isVisible ? "visible" : "hidden"; if (isDomLoaded && getElementById(id)) { getElementById(id).style.visibility = v; } else { createCSS("#" + id, "visibility:" + v); } } /* Filter to avoid XSS attacks */ function urlEncodeIfNecessary(s) { var regex = /[\\\"<>\.;]/; var hasBadChars = regex.exec(s) != null; return hasBadChars ? encodeURIComponent(s) : s; } /* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only) */ var cleanup = function() { if (ua.ie && ua.win) { window.attachEvent("onunload", function() { // remove listeners to avoid memory leaks var ll = listenersArr.length; for (var i = 0; i < ll; i++) { listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]); } // cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect var il = objIdArr.length; for (var j = 0; j < il; j++) { removeSWF(objIdArr[j]); } // cleanup library's main closures to avoid memory leaks for (var k in ua) { ua[k] = null; } ua = null; for (var l in swfobject) { swfobject[l] = null; } swfobject = null; }); } }(); return { /* Public API - Reference: http://code.google.com/p/swfobject/wiki/SWFObject_2_0_documentation */ registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr) { if (!ua.w3cdom || !objectIdStr || !swfVersionStr) { return; } var regObj = {}; regObj.id = objectIdStr; regObj.swfVersion = swfVersionStr; regObj.expressInstall = xiSwfUrlStr ? xiSwfUrlStr : false; regObjArr[regObjArr.length] = regObj; setVisibility(objectIdStr, false); }, getObjectById: function(objectIdStr) { var r = null; if (ua.w3cdom) { var o = getElementById(objectIdStr); if (o) { var n = o.getElementsByTagName(OBJECT)[0]; if (!n || (n && typeof o.SetVariable != UNDEF)) { r = o; } else if (typeof n.SetVariable != UNDEF) { r = n; } } } return r; }, embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj) { if (!ua.w3cdom || !swfUrlStr || !replaceElemIdStr || !widthStr || !heightStr || !swfVersionStr) { return; } widthStr += ""; // Auto-convert to string heightStr += ""; if (hasPlayerVersion(swfVersionStr)) { setVisibility(replaceElemIdStr, false); var att = {}; if (attObj && typeof attObj === OBJECT) { for (var i in attObj) { if (attObj[i] != Object.prototype[i]) { // Filter out prototype additions from other potential libraries att[i] = attObj[i]; } } } att.data = swfUrlStr; att.width = widthStr; att.height = heightStr; var par = {}; if (parObj && typeof parObj === OBJECT) { for (var j in parObj) { if (parObj[j] != Object.prototype[j]) { // Filter out prototype additions from other potential libraries par[j] = parObj[j]; } } } if (flashvarsObj && typeof flashvarsObj === OBJECT) { for (var k in flashvarsObj) { if (flashvarsObj[k] != Object.prototype[k]) { // Filter out prototype additions from other potential libraries if (typeof par.flashvars != UNDEF) { par.flashvars += "&" + k + "=" + flashvarsObj[k]; } else { par.flashvars = k + "=" + flashvarsObj[k]; } } } } addDomLoadEvent(function() { createSWF(att, par, replaceElemIdStr); if (att.id == replaceElemIdStr) { setVisibility(replaceElemIdStr, true); } }); } else if (xiSwfUrlStr && !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac)) { isExpressInstallActive = true; // deferred execution setVisibility(replaceElemIdStr, false); addDomLoadEvent(function() { var regObj = {}; regObj.id = regObj.altContentId = replaceElemIdStr; regObj.width = widthStr; regObj.height = heightStr; regObj.expressInstall = xiSwfUrlStr; showExpressInstall(regObj); }); } }, getFlashPlayerVersion: function() { return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] }; }, hasFlashPlayerVersion: hasPlayerVersion, createSWF: function(attObj, parObj, replaceElemIdStr) { if (ua.w3cdom) { return createSWF(attObj, parObj, replaceElemIdStr); } else { return undefined; } }, removeSWF: function(objElemIdStr) { if (ua.w3cdom) { removeSWF(objElemIdStr); } }, createCSS: function(sel, decl) { if (ua.w3cdom) { createCSS(sel, decl); } }, addDomLoadEvent: addDomLoadEvent, addLoadEvent: addLoadEvent, getQueryParamValue: function(param) { var q = doc.location.search || doc.location.hash; if (param == null) { return urlEncodeIfNecessary(q); } if (q) { var pairs = q.substring(1).split("&"); for (var i = 0; i < pairs.length; i++) { if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) { return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1))); } } } return ""; }, // For internal usage only expressInstallCallback: function() { if (isExpressInstallActive && storedAltContent) { var obj = getElementById(EXPRESS_INSTALL_ID); if (obj) { obj.parentNode.replaceChild(storedAltContent, obj); if (storedAltContentId) { setVisibility(storedAltContentId, true); if (ua.ie && ua.win) { storedAltContent.style.display = "block"; } } storedAltContent = null; storedAltContentId = null; isExpressInstallActive = false; } } } }; }(); ././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootfaust-0.9.46/tools/faust2flash_v0.1/Step_2_FlashBuilder_project/html-template/playerProductInstall.swffaust-0.9.46/tools/faust2flash_v0.1/Step_2_FlashBuilder_project/html-template/playerProductInstall.s0000644000175000017500000000122111702130733033422 0ustar orlareyorlareyCWSxuSMkA~6IMҴ釮PԃǮ/@S1-Gw'fuNf[g?h)oxd*xQ_ԙMm=̾3>1C@=0u@4t]d3f!zzs0zrާޛϝw]mڕϷڋ8Lf%WD=5CAQ *hQZ/^i90ؔ%+Mj;}m/%Ͻdž(eWPAXHP>2l{é%VKT=67$tlO FZ ަHgYq-P8ʯ_I,5(&j햠MpGA6&q\XjЫ!K|kۖz{QL}Gfaust-0.9.46/tools/faust2flash_v0.1/Step_2_FlashBuilder_project/.settings/0000755000175000017500000000000011702130733026217 5ustar orlareyorlarey././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootfaust-0.9.46/tools/faust2flash_v0.1/Step_2_FlashBuilder_project/.settings/org.eclipse.core.resources.prefsfaust-0.9.46/tools/faust2flash_v0.1/Step_2_FlashBuilder_project/.settings/org.eclipse.core.resources0000644000175000017500000000013011702130733033306 0ustar orlareyorlarey#Thu Jun 04 22:47:52 PDT 2009 eclipse.preferences.version=1 encoding/=UTF-8 faust-0.9.46/tools/faust2flash_v0.1/COPYING0000644000175000017500000010451311702130733020032 0ustar orlareyorlarey GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . faust-0.9.46/tools/faust2flash_v0.1/README.txt0000644000175000017500000000377611702130733020506 0ustar orlareyorlareyFaust to Flash conversion scripts Travis Skare / skare@stanford.edu Project site: http://ccrma.stanford.edu/~travissk/faustflash Personal site: http://www.travisskare.com Introduction ------------ The enclosed code can be used with your own Faust DSP scripts, the Faust compiler, Adobe Alchemy/Flash/Flex to produce Flash .swf files. While the process is designed to be able to display DSP examples online, it can be used for multimedia demos, audio effects in games, etc. Please note that the code is functional, but has some known technical issues and a list of areas for improvement. The C++ code in particular needs some cleanup; large sections were thrown together to fix bugs and get communication from ActionScript->C++ working (this was my first Alchemy project). Feel free to email me with questions, comments, or suggestions for improvement. Changelog (Current Version: 0.1) --------- 0.1: Proof of concept - functional but needs some cleanup. License ------- As my intent is to polish this up and submit the architecture file as a patch to Faust (if the project desires it) it's tentatively GPL. See the file COPYING. The Unfortunately Obligatory License Agreement (and other short stories): ------------------------------------------------------------------------ THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. faust-0.9.46/tools/faust2flash_v0.1/Step_1_faust_architecture_file/0000755000175000017500000000000011702130733025071 5ustar orlareyorlareyfaust-0.9.46/tools/faust2flash_v0.1/Step_1_faust_architecture_file/alchemy-as.cpp0000644000175000017500000003142111702130733027621 0ustar orlareyorlarey // Faust -> Alchemy -> ActionScript C++ Architecture File #include "AS3.h" // math.h is needed for many faust examples, so include it. // otherwise we have to hand-edit c++. #include "math.h" #ifdef __GNUC__ #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) // abs is now predefined //template T abs (T a) { return (a> n); } #else #endif /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } <> /****************************************************************************** ******************************************************************************* ABSTRACT USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { public: bool fStopped; UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(char* label, float* zone) = 0; virtual void addToggleButton(char* label, float* zone) = 0; virtual void addCheckButton(char* label, float* zone) = 0; virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void openFrameBox(char* label) = 0; virtual void openTabBox(char* label) = 0; virtual void openHorizontalBox(char* label) = 0; virtual void openVerticalBox(char* label) = 0; virtual void closeBox() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } }; ////// Implementation of UI // Faust UI hookup is straightforward // We subclass from UI and then these methods will get called by compiled // Faust which assembles controls. We handle all UI as needed, and when // things changed we need to set *zone=(some value). // This is a little more complicated when jumping between alchemy/script. // So rather than deal with marshalling pointers, just cheat and use an int:pointer map. // NOTE: I should have used an STL map but that wasn't working back when I used gcc. // I'll investigate since that would clean up the code quite a bit. // upper bound on number of controls #define MAX_CONTROLS 25 // map of unique ui control id to a float* where faust reads the corresponding value. static float* uidToZone[MAX_CONTROLS]; // Counter that assigns control IDs. static int uiMap_id = 0; // I wasn't able to properly thunk the UI actionscrpit methods to C. // Since we know the complete UI at the time of creation, a collection of // ui creation info is passed back from faust_init, and actionscript // can read it and create the UI. // This is a little messy and was done last-minute. const int TYPE_BUTTON = 0; const int TYPE_TOGGLE = 1; const int TYPE_SLIDER = 2; // max length for a label - more than 50 chars will get cut. #define LABEL_LEN 50 struct uiElemInfo { int type; int id; char label[LABEL_LEN+1]; float min; float max; float init; float step; }; uiElemInfo uielems[MAX_CONTROLS]; static int uielems_size = 0; // todo: stdio.h has strncpy, I just got paranoid about extra includes making the code bigger :) void strcopy(char *src, char *dst) { dst[LABEL_LEN] = '\0'; for (int i = 0; i < LABEL_LEN; ++i) { if (0 == (dst[i] = src[i])) return; } } void BuildUIArray(AS3_Val &array) { for (int i = 0; i < uielems_size; ++i) { AS3_Val result = AS3_Object( "type:AS3ValType,id:AS3ValType,label:AS3ValType,min:AS3ValType,max:AS3ValType,init:AS3ValType,step:AS3ValType", AS3_Int(uielems[i].type), AS3_Int(uielems[i].id), AS3_String(uielems[i].label), AS3_Number(uielems[i].min), AS3_Number(uielems[i].max), AS3_Number(uielems[i].init), AS3_Number(uielems[i].step) ); AS3_Set(array, AS3_Int(i), result); // decrease refcount? todo: this may leak memory... //AS3_Release(result); } } class ActionScriptUI : public UI { public: ActionScriptUI() { fStopped = false; } virtual ~ActionScriptUI() { } // Pass in a zone, get back a unique ID. int registerControl(float *zone) { if (!zone) return 0; uiMap_id++; uidToZone[uiMap_id] = zone; return uiMap_id; } // Called from Flash when any control is updated. // Results will take effect on the next dsp callback // since everything runs in the same thread. void updateControl(int id, float value) { *(uidToZone[id]) = value; } virtual void addButton(char* label, float* zone) { int id = registerControl(zone); uielems[uielems_size].type = TYPE_BUTTON; uielems[uielems_size].id = id; strcopy(label, uielems[uielems_size].label); uielems[uielems_size].min = 0; uielems[uielems_size].max = 0; uielems[uielems_size].init = 0; uielems[uielems_size].step = 0; uielems_size++; } virtual void addToggleButton(char* label, float* zone) { int id = registerControl(zone); uielems[uielems_size].type = TYPE_TOGGLE; uielems[uielems_size].id = id; strcopy(label, uielems[uielems_size].label); uielems[uielems_size].min = 0; uielems[uielems_size].max = 0; uielems[uielems_size].init = 0; uielems[uielems_size].step = 0; uielems_size++; } virtual void addCheckButton(char* label, float* zone) { return addToggleButton(label, zone); } virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) { return addHorizontalSlider(label, zone, init, min, max, step); } virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) { int id = registerControl(zone); uielems[uielems_size].type = TYPE_SLIDER; uielems[uielems_size].id = id; strcopy(label, uielems[uielems_size].label); uielems[uielems_size].min = min; uielems[uielems_size].max = max; uielems[uielems_size].init = init; uielems[uielems_size].step = step; uielems_size++; } virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) { return addHorizontalSlider(label, zone, init, min, max, step); } // Not implemented yet - these only affect UI layout and aren't critical. // See actionscript comments for details. virtual void openFrameBox(char* label) {} virtual void openTabBox(char* label) {} virtual void openHorizontalBox(char* label) {} virtual void openVerticalBox(char* label) {} virtual void closeBox() {} virtual void run() { } }; /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // abstract definition of a signal processor //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; //---------------------------------------------------------------------------- // FAUST generated signal processor //---------------------------------------------------------------------------- <> /// Alchemy DSP class Faust { public: Faust() { // mydsp will be defined by faust in 'includeclass' dsp_ = new mydsp(); ui_ = new ActionScriptUI(); dsp_->buildUserInterface(ui_); dsp_->init(44100); // 44.1k, 2 channels, @ 32-bit is hardcoded into flash player 10. } ~Faust() { if (dsp_) delete dsp_; if (ui_) delete ui_; } //private: public: // we're all friends here mydsp *dsp_; ActionScriptUI *ui_; }; Faust *faust = NULL; // Alchemy wrapper interface code static AS3_Val api_init(void *thisPtr, AS3_Val args) { faust = new Faust(); AS3_Val array = AS3_Array(""); BuildUIArray(array); return array; } static AS3_Val api_shutdown(void *thisPtr, AS3_Val args) { if (faust) delete faust; return AS3_Int(0); } // args = int id, float value static AS3_Val api_onControlChange(void *thisPtr, AS3_Val args) { if (!faust) return AS3_Int(0); // Marshall the arguments in. int id = 0; AS3_Val controlVal; AS3_ArrayValue(args, "IntType, AS3ValType", &id, &controlVal); double control_double = AS3_NumberValue(controlVal); // loss of precision is ok. float value = (float)control_double; // Call the actual update function faust->ui_->updateControl(id, value); return AS3_Int(0); } #define MAX_FLASH_BUFFER 8192 // output buffers - L/R channels separate static float bufferL[MAX_FLASH_BUFFER]; static float bufferR[MAX_FLASH_BUFFER]; // output buffer - construct interleaved output static float bufferSum[2*MAX_FLASH_BUFFER]; // input buffers - L/R separate static float inputL[MAX_FLASH_BUFFER]; static float inputR[MAX_FLASH_BUFFER]; // input buffer scratch space - interleaved static float bufferInSum[2*MAX_FLASH_BUFFER]; // This is the most 'interesting' function of the file - it takes in flash sound buffers // and sends them through Faust DSP code. // args = int nsamples, float* buffer (byte[] in flash) static AS3_Val api_tick(void *thisPtr, AS3_Val args) { if (!faust) return AS3_Int(0); // Marshall arguments in. int nsamples = 0; int use_input = 0; AS3_Val buffer; AS3_Val input; AS3_ArrayValue(args, "IntType, IntType, AS3ValType, AS3ValType", &nsamples, &use_input, &input, &buffer); float* outputs[2] = {bufferL, bufferR}; float* inputs[2] = {inputL, inputR}; if (use_input) { //AS3_ByteArray_seek(input, 0, 0); // we need (#samples * sizeof(float) * 2 channels) bytes. AS3_ByteArray_readBytes((char*)bufferInSum, input, nsamples * 4 * 2); char *src = (char*)bufferInSum; char *dl = (char*)inputL, *dr = (char*)inputR; for (int i = 0; i < nsamples; ++i) { // fix endianness dl[3] = src[0]; dl[2] = src[1]; dl[1] = src[2]; dl[0] = src[3]; dr[3] = src[4]; dr[2] = src[5]; dr[1] = src[6]; dr[0] = src[7]; dl += 4; dr += 4; src += 8; } } // magic! faust->dsp_->compute(nsamples, inputs, outputs); // Post-process: interleave arrays. // Faust outputs to two separate arrays (which are probably contiguous in memory - see above) // Flash's sound callback needs this as LRLRLRLR... // For added fun, LLVM internal float seems to be the opposite endianness // as what Flash uses, so we have to do this byte-by-byte. char *copyL = (char*)bufferL; char *copyR = (char*)bufferR; char *tape_head = (char*)bufferSum; for (int i = 0; i < nsamples; ++i) { *tape_head++ = copyL[3]; *tape_head++ = copyL[2]; *tape_head++ = copyL[1]; *tape_head++ = copyL[0]; *tape_head++ = copyR[3]; *tape_head++ = copyR[2]; *tape_head++ = copyR[1]; *tape_head++ = copyR[0]; copyL+=4; copyR+=4; } AS3_ByteArray_writeBytes(buffer, bufferSum, 4 * nsamples * 2); return AS3_Int(0); } //Alchemy entry point // Here we are responsible for contructing an API object to pass back to Flash. // This must contain pointers to all functions which may be called. int main() { //define the methods exposed to ActionScript //typed as an ActionScript Function instance AS3_Val methodInit = AS3_Function( NULL, api_init ); AS3_Val methodShutdown = AS3_Function( NULL, api_shutdown ); AS3_Val methodOnControlChange = AS3_Function( NULL, api_onControlChange ); AS3_Val methodTick = AS3_Function( NULL, api_tick ); // construct an API lookup table with references to all functions // In flash we'll instantiate one of these and call methods on it // e.g. faust.api_tick(). AS3_Val result = AS3_Object( "api_init:AS3ValType, api_shutdown:AS3ValType, api_onControlChange:AS3ValType, api_tick:AS3ValType", methodInit, methodShutdown, methodOnControlChange, methodTick); AS3_Release(methodInit); AS3_Release(methodShutdown); AS3_Release(methodOnControlChange); AS3_Release(methodTick); // notify Flash of our functions and run -- this function never returns. AS3_LibInit(result); return 0; } faust-0.9.46/windows/0000755000175000017500000000000011702130733014337 5ustar orlareyorlareyfaust-0.9.46/windows/faust_vs2008.vcproj0000644000175000017500000004676311702130733017750 0ustar orlareyorlarey faust-0.9.46/windows/.cvsignore0000644000175000017500000000006011702130733016333 0ustar orlareyorlarey_output faust_vs2008.suo faust_vs2008.ncb *.userfaust-0.9.46/windows/faust_vs2008.sln0000644000175000017500000000154511702130733017226 0ustar orlareyorlarey Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "faust_vs2008", "faust_vs2008.vcproj", "{5B179DA5-5826-46C2-AF2C-DBEF9181610D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {5B179DA5-5826-46C2-AF2C-DBEF9181610D}.Debug|Win32.ActiveCfg = Debug|Win32 {5B179DA5-5826-46C2-AF2C-DBEF9181610D}.Debug|Win32.Build.0 = Debug|Win32 {5B179DA5-5826-46C2-AF2C-DBEF9181610D}.Release|Win32.ActiveCfg = Release|Win32 {5B179DA5-5826-46C2-AF2C-DBEF9181610D}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal faust-0.9.46/examples/0000755000175000017500000000000011702130733014463 5ustar orlareyorlareyfaust-0.9.46/examples/osc.maxpat0000644000175000017500000001241111702130733016462 0ustar orlareyorlarey{ "patcher" : { "fileversion" : 1, "rect" : [ 88.0, 64.0, 371.0, 253.0 ], "bglocked" : 0, "defrect" : [ 88.0, 64.0, 371.0, 253.0 ], "openrect" : [ 88.0, 64.0, 371.0, 253.0 ], "openinpresentation" : 0, "default_fontsize" : 12.0, "default_fontface" : 0, "default_fontname" : "Arial", "gridonopen" : 0, "gridsize" : [ 15.0, 15.0 ], "gridsnaponopen" : 0, "toolbarvisible" : 1, "boxanimatetime" : 200, "imprint" : 0, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "boxes" : [ { "box" : { "maxclass" : "message", "text" : "/* get", "outlettype" : [ "" ], "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 2, "patching_rect" : [ 33.0, 16.0, 39.0, 18.0 ], "numoutlets" : 1, "id" : "obj-20" } } , { "box" : { "maxclass" : "newobj", "text" : "s osc", "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 1, "patching_rect" : [ 33.0, 42.0, 39.0, 20.0 ], "numoutlets" : 0, "id" : "obj-24" } } , { "box" : { "maxclass" : "message", "text" : "/* hello", "outlettype" : [ "" ], "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 2, "patching_rect" : [ 78.0, 16.0, 47.0, 18.0 ], "numoutlets" : 1, "id" : "obj-11" } } , { "box" : { "maxclass" : "message", "text" : "host 194.5.49.255", "outlettype" : [ "" ], "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 2, "patching_rect" : [ 34.0, 136.0, 107.0, 18.0 ], "numoutlets" : 1, "id" : "obj-18" } } , { "box" : { "maxclass" : "message", "text" : "host 127.0.0.1", "outlettype" : [ "" ], "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 2, "patching_rect" : [ 55.0, 159.0, 87.0, 18.0 ], "numoutlets" : 1, "id" : "obj-17" } } , { "box" : { "maxclass" : "comment", "text" : "OSC communication", "fontname" : "Arial", "fontface" : 1, "fontsize" : 14.0, "numinlets" : 1, "patching_rect" : [ 33.0, 93.0, 189.0, 23.0 ], "numoutlets" : 0, "id" : "obj-9" } } , { "box" : { "maxclass" : "newobj", "text" : "print Error", "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 1, "patching_rect" : [ 240.0, 201.0, 64.0, 20.0 ], "numoutlets" : 0, "id" : "obj-14" } } , { "box" : { "maxclass" : "newobj", "text" : "print FAUST", "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 1, "patching_rect" : [ 240.0, 143.0, 76.0, 20.0 ], "numoutlets" : 0, "id" : "obj-15" } } , { "box" : { "maxclass" : "newobj", "text" : "udpreceive 5512", "outlettype" : [ "" ], "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 1, "patching_rect" : [ 240.0, 173.0, 99.0, 20.0 ], "numoutlets" : 1, "id" : "obj-28" } } , { "box" : { "maxclass" : "newobj", "text" : "udpreceive 5511", "outlettype" : [ "" ], "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 1, "patching_rect" : [ 239.0, 116.0, 98.0, 20.0 ], "numoutlets" : 1, "id" : "obj-34" } } , { "box" : { "maxclass" : "newobj", "text" : "r osc", "outlettype" : [ "" ], "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 0, "patching_rect" : [ 162.0, 135.0, 37.0, 20.0 ], "numoutlets" : 1, "id" : "obj-37" } } , { "box" : { "maxclass" : "newobj", "text" : "udpsend 127.0.0.1 5510", "fontname" : "Arial", "fontsize" : 11.595187, "numinlets" : 1, "patching_rect" : [ 92.0, 201.0, 136.0, 20.0 ], "numoutlets" : 0, "id" : "obj-38" } } , { "box" : { "maxclass" : "panel", "bgcolor" : [ 0.878431, 0.94902, 0.839216, 1.0 ], "numinlets" : 1, "patching_rect" : [ 18.0, 83.0, 334.0, 155.0 ], "numoutlets" : 0, "id" : "obj-47" } } ], "lines" : [ { "patchline" : { "source" : [ "obj-11", 0 ], "destination" : [ "obj-24", 0 ], "hidden" : 0, "midpoints" : [ 87.5, 37.5, 42.5, 37.5 ] } } , { "patchline" : { "source" : [ "obj-17", 0 ], "destination" : [ "obj-38", 0 ], "hidden" : 0, "midpoints" : [ 64.5, 190.5, 101.5, 190.5 ] } } , { "patchline" : { "source" : [ "obj-18", 0 ], "destination" : [ "obj-38", 0 ], "hidden" : 0, "midpoints" : [ 43.5, 185.0, 101.5, 185.0 ] } } , { "patchline" : { "source" : [ "obj-20", 0 ], "destination" : [ "obj-24", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-28", 0 ], "destination" : [ "obj-14", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-34", 0 ], "destination" : [ "obj-15", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-37", 0 ], "destination" : [ "obj-38", 0 ], "hidden" : 0, "midpoints" : [ 171.5, 184.0, 101.5, 184.0 ] } } ] } } faust-0.9.46/examples/peakingEQ.dsp0000644000175000017500000000027211702130733017040 0ustar orlareyorlareyimport("maxmsp.lib"); G = hslider("Gain [unit:dB]", 0, -10, 10, 0.1); F = hslider("Freq", 1000, 100, 10000, 1); Q = hslider("Q", 1, 0.01, 100, 0.01); process(x) = peakingEQ(x,F,G,Q); faust-0.9.46/examples/Makefile.qtcompile0000644000175000017500000000335611702130733020126 0ustar orlareyorlarey###-------------------------------------------- ### DEST : directory where to put binaries ### ARCH : faust architecture file system := $(shell uname -s) dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) ### check what type of applications to build (MacOSX Darwin or Linux) ifeq ($(system), Darwin) appls := $(addprefix $(DEST), $(dspsrc:.dsp=.app)) SPEC := -spec macx-g++ else appls := $(addprefix $(DEST), $(dspsrc:.dsp=)) SPEC := endif ### -------------------------------------------- ### allocate a unique directory TDR := $(shell mktemp -d -t FAUST.XXXXXX) TMP = $(TDR)/$(<:.dsp=) ### -------------------------------------------- all : $(appls) ### Darwin $(DEST)%.app : %.dsp install -d $(TMP) faust -a $(ARCH) $(VEC) $< -o $(TMP)/$<.cpp cd $(TMP); qmake -project "$(DEFS)" "INCLUDEPATH+=/usr/local/lib/faust/" "INCLUDEPATH+=/usr/local/lib/faust/osclib" "LIBS+=$(LIB)" "HEADERS+=/usr/local/lib/faust/gui/faustqt.h" cd $(TMP); qmake $(SPEC) make -C $(TMP) rm -rf $@ mv $(TMP)/$(<:.dsp=.app) $(DEST) rm -rf $(TDR) ### Linux hdir1 := $(wildcard /usr/local/lib/faust/gui/faustqt.h) hdir2 := $(wildcard /usr/share/faust/faustqt.h) hdir3 := $(wildcard /usr/local/lib/faust/faustqt.h) hdir23 := $(if $(hdir2),$(dir $(hdir2)),$(dir $(hdir3))) hdir := $(if $(hdir1),$(dir $(hdir1)),$(hdir23)) qm4 := $(shell which qmake-qt4) qm := $(if $(qm4),$(qm4),qmake) $(DEST)% : %.dsp rm -rf $(TMP) install -d $(TMP) faust -a $(ARCH) $(VEC) $< -o $(TMP)/$<.cpp cd $(TMP); $(qm) -project "$(DEFS)" "INCLUDEPATH+=/usr/local/lib/faust/" "INCLUDEPATH+=/usr/local/lib/faust/osclib" "LIBS+=$(LIB)" "HEADERS+=$(hdir)faustqt.h" cd $(TMP); $(qm) $(SPEC) make -C $(TMP) mv $(TMP)/$(<:.dsp=) $@ rm -rf $(TMP) clean: rm -rf $(DEST) faust-0.9.46/examples/phaser_flanger.dsp0000644000175000017500000000065011702130733020154 0ustar orlareyorlareyol = library("oscillator.lib"); fl = library("filter.lib"); el = library("effect.lib"); //process = ol.sawtooth_demo <: // el.flanger_demo : el.phaser2_demo :> fl.spectral_level_demo <: _,_; fx_stack = vgroup("[1]", ol.sawtooth_demo) <: vgroup("[2]", el.flanger_demo) : vgroup("[3]", el.phaser2_demo); level_viewer(x,y) = attach(x,vgroup("[4]", fl.spectral_level_demo(x+y))),y; process = fx_stack : level_viewer; faust-0.9.46/examples/volume.dsp0000644000175000017500000000062511702130733016505 0ustar orlareyorlareydeclare name "volume"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //----------------------------------------------- // Volume control in dB //----------------------------------------------- import("music.lib"); smooth(c) = *(1-c) : +~*(c); gain = vslider("[1]", 0, -70, +4, 0.1) : db2linear : smooth(0.999); process = *(gain); faust-0.9.46/examples/highShelf.dsp0000644000175000017500000000027211702130733017075 0ustar orlareyorlareyimport("maxmsp.lib"); G = hslider("Gain [unit:dB]", 0, -10, 10, 0.1); F = hslider("Freq", 1000, 100, 10000, 1); Q = hslider("Q", 1, 0.01, 100, 0.01); process(x) = highShelf(x,F,G,Q); faust-0.9.46/examples/vumeter.dsp0000644000175000017500000000104211702130733016657 0ustar orlareyorlareydeclare name "vumeter"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //------------------------------------------------- // Simple vumeter //------------------------------------------------- import("math.lib"); import("music.lib"); vmeter(x) = attach(x, envelop(x) : vbargraph("[2][unit:dB]", -70, +5)); hmeter(x) = attach(x, envelop(x) : hbargraph("[2][unit:dB]", -70, +5)); envelop = abs : max ~ -(1.0/SR) : max(db2linear(-70)) : linear2db; process = vmeter; faust-0.9.46/examples/bandfilter.dsp0000644000175000017500000000224411702130733017307 0ustar orlareyorlareydeclare name "bandfilter"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; import("math.lib"); import("music.lib"); //---------------------second order filter-------------------------- // filter(Q,F,G) // Q : quality factor [1..100] // F : frequency (Hz) // G : gain [0..1] //------------------------------------------------------------------ filter(Q,F,G) = TF2( (1 + K/Q + K*K) / D, 2 * (K*K - 1) / D, (1 - K/Q + K*K) / D, 2 * (K*K - 1) / D, (1 - V*K/Q + K*K) / D ) with { V = db2linear(G); K = tan(PI*F/SR); D = 1 + V*K/Q + K*K; }; //--------------- Band Filter with user interface ------------------ // bandfilter(F) // F : default frequency (Hz) // //------------------------------------------------------------------ bandfilter(F) = filter( nentry("Q factor [style:knob]",50,0.1,100,0.1), nentry("freq [unit:Hz][style:knob]", F, 20, 20000, 1), 0 - vslider("gain [unit:dB]", 0, -50, 50, 0.1) ); //------------------------- Process -------------------------------- process = vgroup("Bandfilter", bandfilter(1000)); faust-0.9.46/examples/Makefile.sccompile0000644000175000017500000000224411702130733020102 0ustar orlareyorlarey# Makefile to produce supercollider plugins with Faust: # 'foo.dsp' -> 'foo.so|scx' and 'foo.sc' # These two files (scsynth plugin and sclang extension), can be copied to # $HOME/share/SuperCollider/Extensions (Linux) or # $HOME/Library/Application Support/SuperCollider/Extensions (Mac OS X) # # The shell script /tools/faust2appls/faust2supercollider # needs to be installed somewhere in the user's search path. system := $(shell uname -s) ifeq ($(system), Darwin) EXT := scx else EXT := so endif dspsrc := $(wildcard *.dsp) libsrc := $(wildcard *.lib) incsrc := $(wildcard *.h) allsrc := $(dspsrc) $(libsrc) $(incsrc) ifeq ($(DEST),) DEST := ./supercolliderdir endif F2SC = faust2supercollider -sd ### allocate a unique directory for staging TMP := $(shell mktemp -d -t F2SC.XXXXXX) ### -------------------------------------------- # NOTE: Some source files need others, so best to copy all together: all : $(allsrc) $(DEST) $(TMP) cp -i $(allsrc) $(TMP) || echo "Cannot copy temp source to $(TMP)" (cd $(TMP); for i in $(dspsrc); do $(F2SC) $$i; done) mv $(TMP)/*.sc $(TMP)/*.$(EXT) $(DEST) rm -rf $(TMP) $(DEST): mkdir -p $(DEST) $(TMP): mkdir -p $(TMP) faust-0.9.46/examples/Makefile.qcompile0000644000175000017500000000057711702130733017744 0ustar orlareyorlareyDEST := qdir/ dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) modules := $(addprefix $(DEST), $(dspsrc:%.dsp=%.so)) ###allcpp: $(cppsrc) allmodules: $(modules) $(DEST)%.so: $(DEST)%.cpp $(CXX) -shared -O3 $(CXXFLAGS) -Dmydsp=$(patsubst %.so,%,$(notdir $@)) $< -o $@ $(DEST)%.cpp: %.dsp faust $(VEC) -a q.cpp $< -o $@ clean: rm -rf $(DEST) faust-0.9.46/examples/karplus.dsp0000644000175000017500000000156211702130733016660 0ustar orlareyorlareydeclare name "karplus"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //----------------------------------------------- // karplus-strong //----------------------------------------------- import("music.lib"); // Excitator //-------- upfront(x) = (x-x') > 0.0; decay(n,x) = x - (x>0.0)/n; release(n) = + ~ decay(n); trigger(n) = upfront : release(n) : >(0.0); size = hslider("excitation [unit:f]", 128, 2, 512, 1); // resonator //----------------- dur = hslider("duration [unit:f]", 128, 2, 512, 1); att = hslider("attenuation", 0.1, 0, 1, 0.01); average(x) = (x+x')/2; resonator(d, a) = (+ : delay(4096, d-1.5)) ~ (average : *(1.0-a)) ; process = noise * hslider("level", 0.5, 0, 1, 0.1) : vgroup("excitator", *(button("play"): trigger(size))) : vgroup("resonator", resonator(dur, att)); faust-0.9.46/examples/stereoecho.dsp0000644000175000017500000000053011702130733017331 0ustar orlareyorlareydeclare name "stereoecho"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2007"; //----------------------------------------------- // A 1 second Stereo Echo //----------------------------------------------- import("music.lib"); process = vgroup("stereo echo", (echo1s, echo1s)); faust-0.9.46/examples/noise.dsp0000644000175000017500000000317411702130733016315 0ustar orlareyorlareydeclare name "Noise"; declare version "1.1"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2009"; //----------------------------------------------------------------- // Noise generator and demo file for the Faust math documentation //----------------------------------------------------------------- \section{Presentation of the "noise.dsp" Faust program} This program describes a white noise generator with an interactive volume, using a random function. \subsection{The random function} The \texttt{random} function describes a generator of random numbers, which equation follows. You should notice hereby the use of an integer arithmetic on 32 bits, relying on integer wrapping for big numbers. random \subsection{The noise function} The white noise then corresponds to: noise random = +(12345)~*(1103515245); noise = random/2147483647.0; \subsection{Just add a user interface element to play volume!} Endly, the sound level of this program is controlled by a user slider, which gives the following equation: process \section{Block-diagram schema of process} This process is illustrated on figure 1. process process = noise * vslider("Volume[style:knob]", 0, 0, 1, 0.1); \section{Notice of this documentation} You might be careful of certain information and naming conventions used in this documentation: \section{Listing of the input code} The following listing shows the input Faust code, parsed to compile this mathematical documentation. faust-0.9.46/examples/switcher.dsp0000644000175000017500000000106211702130733017022 0ustar orlareyorlareydeclare name "switch"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2007"; //----------------------------------------------- // Switch between two stereo sources. // Useful to compare these two sources // The parameter c\in{0,1} indicates the // channels to select //----------------------------------------------- switch(c,x0,x1,y0,y1) = sel(c,x0,y0), sel(c,x1,y1) with { sel(c,x,y) = (1-c)*x + c*y; }; process = switch(hslider("source 0 <-> source 1",0,0,1,1)); faust-0.9.46/examples/echo.dsp0000644000175000017500000000047611702130733016120 0ustar orlareyorlareydeclare name "echo"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //----------------------------------------------- // A Simple Echo //----------------------------------------------- import("music.lib"); process = vgroup("echo-simple", echo1s); faust-0.9.46/examples/matrix.dsp0000644000175000017500000000104211702130733016474 0ustar orlareyorlareydeclare name "matrix"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //----------------------------------------------- // Audio Matrix : N inputs x M outputs //----------------------------------------------- import("music.lib"); Fader(in) = db2linear(vslider("Input %in", -10, -96, 4, 0.1)); Mixer(N,out) = hgroup("Output %out", par(in, N, *(Fader(in)) ) :> _ ); Matrix(N,M) = tgroup ("Matrix %N x %M", par(in, N, _) <: par(out, M, Mixer(N, out))); process = Matrix(8, 8); faust-0.9.46/examples/Makefile0000644000175000017500000003251611702130733016132 0ustar orlareyorlarey# Directory containing Faust .lib and .cpp architecture files: ck1 := /opt/local/lib/faust/music.lib ck2 := /usr/local/lib/faust/music.lib ck3 := $(FAUST_LIB_PATH)/faust/music.lib LIB := $(if $(wildcard $(ck1)),/opt/local/lib,"") LIB := $(if $(wildcard $(ck2)),/usr/local/lib,$(LIB)) LIB := $(if $(wildcard $(ck3)),$(FAUST_LIB_PATH),$(LIB)) ifeq ($(OSC),1) OSCCTRL := -DOSCCTRL -I$(LIB)/faust/osclib QTDEFS := "DEFINES += OSCCTRL" OSCLIB := -L$(LIB)/faust/osclib -lOSCFaust -loscpack endif MYICCFLAGS := '-O3 -xHost -ftz -fno-alias -fp-model fast=2 $(OSCCTRL)' ifeq ($(system), Darwin) MYGCCFLAGS := '-O3 -march=native -mfpmath=sse -msse -msse2 -msse3 -ffast-math $(OSCCTRL)' else MYGCCFLAGS := '-O3 -mfpmath=sse -msse -msse2 -msse3 -ffast-math $(OSCCTRL)' endif VSIZE := 256 SC_SOURCE_DIR = ../../supercollider all : jackgtk test: ijackgtk ijackvec ijackomp gjackgtk gjackvec gjackomp ijackgtk : install -d ijackgtkdir $(MAKE) DEST='ijackgtkdir/' ARCH='jack-gtk.cpp' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ijackvec : install -d ijackvecdir $(MAKE) DEST='ijackvecdir/' ARCH='jack-gtk.cpp' VEC='-vec -lv 1 -vs $(VSIZE)' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ijackomp : install -d ijackompdir $(MAKE) DEST='ijackompdir/' ARCH='jack-gtk.cpp' VEC='-vs $(VSIZE) -omp' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS='-openmp '$(MYICCFLAGS) -f Makefile.compile ijacksch : install -d ijackschdir $(MAKE) DEST='ijackschdir/' ARCH='jack-gtk.cpp' VEC='-sch -vs $(VSIZE)' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile gjackgtk : install -d gjackgtkdir $(MAKE) DEST='gjackgtkdir/' ARCH='jack-gtk.cpp' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gjackvec : install -d gjackvecdir $(MAKE) DEST='gjackvecdir/' ARCH='jack-gtk.cpp' VEC='-vec -lv 1 -vs $(VSIZE)' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gjackomp : install -d gjackompdir $(MAKE) DEST='gjackompdir/' ARCH='jack-gtk.cpp' VEC='-vec -vs $(VSIZE) -omp' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='g++' CXXFLAGS='-fopenmp '$(MYGCCFLAGS) -f Makefile.compile svg: $(MAKE) -f Makefile.svgcompile puredata : install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-I$(LIB)/faust/' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.pdcompile alsagtk : install -d alsagtkdir $(MAKE) DEST='alsagtkdir/' ARCH='alsa-gtk.cpp' LIB='-I$(LIB)/faust/ -lpthread -lasound `pkg-config --cflags --libs gtk+-2.0` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile ialsagtk : install -d ialsagtkdir $(MAKE) DEST='ialsagtkdir/' ARCH='alsa-gtk.cpp' LIB='-I$(LIB)/faust/ -lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsavec : install -d ialsavecdir $(MAKE) DEST='ialsavecdir/' ARCH='alsa-gtk.cpp' VEC='-vec -vs $(VSIZE)' LIB='-I$(LIB)/faust/ -lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsaomp : install -d ialsaompdir $(MAKE) DEST='ialsaompdir/' ARCH='alsa-gtk.cpp' VEC='-omp -vs $(VSIZE)' LIB='-I$(LIB)/faust/ -lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS='-openmp '$(MYICCFLAGS) -f Makefile.compile ialsasch : install -d ialsaschdir $(MAKE) DEST='ialsaschdir/' ARCH='alsa-gtk.cpp' VEC='-sch -vs $(VSIZE)' LIB='-I$(LIB)/faust/ -lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile jackgtk : install -d jackgtkdir $(MAKE) DEST='jackgtkdir/' ARCH='jack-gtk.cpp' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` $(OSCLIB)' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile msjackgtk : install -d msjackgtkdir $(MAKE) DEST='msjackgtkdir/' ARCH='ms-jack-gtk.cpp' LIB='-I$(LIB)/faust/ -lMidiShare `pkg-config --cflags --libs jack gtk+-2.0`' -f Makefile.compile jackqt : install -d jackqtdir $(MAKE) DEST='jackqtdir/' ARCH='jack-qt.cpp' LIB='-ljack $(OSCLIB)' DEFS=$(QTDEFS) CXXFLAGS=$(MYGCCFLAGS) -f Makefile.qtcompile jackqtsch : install -d jackqtschdir $(MAKE) DEST='jackqtschdir/' ARCH='jack-qt.cpp' VEC='-sch -vs $(VSIZE)' LIB='-ljack' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.qtcompile netjackqt : install -d netjackqtdir $(MAKE) DEST='netjackqtdir/' ARCH='netjack-qt.cpp' LIB='-ljacknet $(OSCLIB)' DEFS=$(QTDEFS) CXXFLAGS=$(MYGCCFLAGS) -f Makefile.qtcompile jackwt : install -d jackwtdir $(MAKE) DEST='jackwtdir/' ARCH='jack-wt.cpp' LIB='-I$(LIB)/faust/ -ljack -lwt -lwthttp -lboost_signals-mt $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.compile paqt : install -d paqtdir $(MAKE) DEST='paqtdir/' ARCH='pa-qt.cpp' LIB='-lportaudio $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.qtcompile caqt : install -d caqtdir $(MAKE) DEST='caqtdir/' ARCH='ca-qt.cpp' LIB='-framework CoreAudio -framework AudioUnit -framework CoreServices $(OSCLIB)' CXXFLAGS=$(MYGCCFLAGS) DEFS=$(QTDEFS) -f Makefile.qtcompile oscioqt : OSCLIB = -L$(LIB)/faust/osclib -lOSCFaust -loscpack oscioqt : install -d oscioqtdir $(MAKE) DEST='oscioqtdir/' ARCH='oscio-qt.cpp' LIB='-ljack $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.qtcompile osciogtk : OSCLIB = -L$(LIB)/faust/osclib -lOSCFaust -loscpack osciogtk : install -d osciogtkdir $(MAKE) DEST='osciogtkdir/' ARCH='oscio-gtk.cpp' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` $(OSCLIB)' CXXFLAGS=-I$(LIB)/faust/osclib -f Makefile.compile alsaqt : install -d alsaqtdir $(MAKE) DEST='alsaqtdir/' ARCH='alsa-qt.cpp' LIB='-lpthread -lasound $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.qtcompile ladspa : install -d ladspadir $(MAKE) DEST='ladspadir/' ARCH='ladspa.cpp' LIB='-I$(LIB)/faust/' EXT='.so' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.ladspacompile ladspasch : install -d ladspaschdir $(MAKE) DEST='ladspaschdir/' ARCH='ladspa.cpp' VEC='-sch -vs $(VSIZE)' LIB='-I$(LIB)/faust/' EXT='.so' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.ladspacompile dssi : install -d dssidir $(MAKE) DEST='dssidir/' ARCH='dssi.cpp' LIB='-I$(LIB)/faust/' EXT='.so' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.dssicompile csound : install -d csounddir $(MAKE) DEST='csounddir/' -f Makefile.csound csounddouble : install -d csounddoubledir $(MAKE) DEST='csounddoubledir/' VEC='-double' -f Makefile.csound jackwx : install -d jackwxdir $(MAKE) DEST='jackwxdir/' ARCH='jack-wx.cpp' LIB='`pkg-config jack --cflags --libs` `wx-config --cflags --libs`' -f Makefile.compile ossgtk : install -d ossgtkdir $(MAKE) DEST='ossgtkdir/' ARCH='oss-gtk.cpp' LIB='-lpthread `pkg-config gtk+-2.0 --cflags --libs`' -f Makefile.compile osswx : install -d osswxdir $(MAKE) DEST='osswxdir/' ARCH='oss-wx.cpp' LIB='-lpthread `wx-config --cflags --libs`' -f Makefile.compile pagtk : install -d pagtkdir $(MAKE) DEST='pagtkdir/' ARCH='pa-gtk.cpp' LIB='-I$(LIB)/faust/ -lpthread -lportaudio `pkg-config gtk+-2.0 --cflags --libs` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile pawx : install -d pawxdir $(MAKE) DEST='pawxdir/' ARCH='pa-wx.cpp' LIB='-lpthread -lportaudio `wx-config --cflags --libs`' -f Makefile.compile module : install -d moduledir $(MAKE) DEST='moduledir/' ARCH='module.cpp' LIB='-I$(LIB)/faust/ -fPIC -shared' EXT='.so' -f Makefile.compile bundle : install -d bundledir $(MAKE) DEST='bundledir/' ARCH='module.cpp' LIB='-I$(LIB)/faust/ -fPIC -bundle' EXT='.so' -f Makefile.compile maxmsp msp : install -d mspdir $(MAKE) DEST='mspdir/' ARCH='max-msp.cpp' LIB='' -f Makefile.mspcompile w32vstdir : mkdir w32vstdir w32vst : w32vstdir $(MAKE) DEST='w32vstdir/' ARCH='vst2p4.cpp' LIB='' -f Makefile.w32vstcompile vst : install -d vstdir $(MAKE) DEST='vstdir/' ARCH='vst.cpp' LIB='' -f Makefile.vstcompile iphone : install -d iphonedir $(MAKE) DEST='iphonedir/' ARCH='iphone-cocoa.cpp' LIB='' -f Makefile.iphonecompile iphonenet : install -d iphonenetdir $(MAKE) DEST='iphonenetdir/' ARCH='iphone-cocoa-net.cpp' LIB='' -f Makefile.iphonenetcompile bench : install -d benchdir $(MAKE) DEST='benchdir/' ARCH='bench.cpp' LIB='-I$(LIB)/faust/' -f Makefile.compile ibench : install -d ibenchdir $(MAKE) DEST='ibenchdir/' ARCH='bench.cpp' LIB='-I$(LIB)/faust/' CXX='icc' CXXFLAGS='-O3 -xHost -ftz -fno-alias -fp-model fast=2' -f Makefile.compile ivecbench : install -d ivecbenchdir $(MAKE) DEST='ivecbenchdir/' ARCH='bench.cpp' VEC='-vec -vs $(VSIZE)' LIB='-I$(LIB)/faust/' CXX='icc' CXXFLAGS='-O3 -xHost -ftz -fno-alias -fp-model fast=2' -f Makefile.compile ivecjack : install -d ivecjackdir $(MAKE) DEST='ivecjackdir/' ARCH='jack-gtk.cpp' VEC='-vec -vs $(VSIZE)' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0`' CXX='icc' CXXFLAGS='-O3 -xHost -ftz -fno-alias -fp-model fast=2' -f Makefile.compile iparbench : install -d iparbenchdir $(MAKE) DEST='iparbenchdir/' ARCH='bench.cpp' VEC='-vec -vs $(VSIZE) -omp' LIB='-I$(LIB)/faust/' CXX='icc' CXXFLAGS='-O3 -openmp -xHost -ftz -fno-alias -fp-model fast=2' -f Makefile.compile gparbench : install -d gparbenchdir $(MAKE) DEST='gparbenchdir/' ARCH='bench.cpp' VEC='-vec -vs $(VSIZE) -omp' LIB='-I$(LIB)/faust/' CXX='g++' CXXFLAGS='-O3 -march=native -mfpmath=sse -msse -msse2 -msse3 -ffast-math' -f Makefile.compile sndfile : install -d sndfiledir $(MAKE) DEST='sndfiledir/' ARCH='sndfile.cpp' LIB='-I$(LIB)/faust/ -lsndfile' -f Makefile.compile CXXFLAGS=$(OSCCTRL) plot : install -d plotdir $(MAKE) DEST='plotdir/' ARCH='plot.cpp' LIB='-I$(LIB)/faust/' -f Makefile.compile matlabplot : install -d matlabplotdir $(MAKE) DEST='matlabplotdir/' ARCH='matlabplot.cpp' LIB='-I$(LIB)/faust/' -f Makefile.compile q : install -d qdir $(MAKE) DEST='qdir/' ARCH='q.cpp' LIB='-I$(LIB)/faust/' -f Makefile.qcompile supercollider sc: install -d supercolliderdir $(MAKE) DEST='supercolliderdir/' -f Makefile.sccompile jackconsole : install -d jackconsoledir $(MAKE) DEST='jackconsoledir/' ARCH='jack-console.cpp' VEC='-vec -vs $(VSIZE)' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack ` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile mathdoc : $(MAKE) -f Makefile.mathdoc help: @echo "make alsagtk [OSC=1] : compile examples as ALSA applications with a GTK Graphical User Interface" @echo "make alsaqt [OSC=1] : compile examples as ALSA applications with a QT4 Graphical User Interface" @echo "make sndfile : compile examples as sound file processors with a Command line User Interface" @echo "make jackconsole [OSC=1] : compile examples as JACK applications with a Command line User Interface" @echo "make jackgtk [OSC=1] : compile examples as JACK applications with a GTK Graphical User Interface" @echo "make jackqt [OSC=1] : compile examples as JACK applications with a QT4 Graphical User Interface" @echo "make jackwx : compile examples as JACK applications with a wxWindows Graphical User Interface" @echo "make ossgtk : compile examples as OSS applications with a GTK Graphical User Interface" @echo "make osswx : compile examples as OSS applications with a wxWindows Graphical User Interface" @echo "make pagtk [OSC=1] : compile examples as PortAudio applications with a GTK Graphical User Interface" @echo "make paqt [OSC=1] : compile examples as PortAudio applications with a QT4 Graphical User Interface" @echo "make pawx : compile examples as PortAudio applications with a wxWindows Graphical User Interface" @echo "make caqt [OSC=1] : compile examples as CoreAudio applications with a QT4 Graphical User Interface" @echo "make oscioqt : compile examples as OSC driven applications with a QT4 Graphical User Interface" @echo "--------------------------------------------" @echo "make ladspa : compile examples as LADSPA plugins" @echo "make dssi : compile examples as DSSI plugins" @echo "make csound : compile examples as CSOUND opcodes" @echo "make csounddouble : compile examples as double precision CSOUND opcodes" @echo "make maxmsp : compile examples as Max/MSP externals" @echo "make vst : compile examples as native VST plugins" @echo "make w32vst : crosscompile examples as windows VST plugins" @echo "make iphone : compile examples for Apple iPhone/iPod" @echo "make supercollider : compile examples as Supercollider plugins" @echo "make puredata : compile examples as Puredata externals" @echo "make q : compile examples as Q plugins" @echo "--------------------------------------------" @echo "make svg : generate the examples block-diagrams in SVG format " @echo "make mathdoc : generate the examples math documentation in TEX and PDF formats " @echo "make bench : compile examples as command line benchmarks " @echo "make plot : compile examples as command line programs that print samples for plotting with, e.g., gnuplot" @echo "make matlabplot : compile examples as command line programs that print samples in matlab input format" @echo "--------------------------------------------" @echo "make clean : remove all object files" clean : rm -rf *dir rm -rf *-svg $(MAKE) -f Makefile.mathdoc clean faust-0.9.46/examples/rewriting/0000755000175000017500000000000011702130733016475 5ustar orlareyorlareyfaust-0.9.46/examples/rewriting/fact.dsp0000644000175000017500000000007011702130733020117 0ustar orlareyorlareyfact(0) = 1; fact(n) = n*fact(n-1); process = fact(10); faust-0.9.46/examples/rewriting/test.pd0000644000175000017500000000240511702130733020002 0ustar orlareyorlarey#N canvas 363 282 562 379 10; #X obj 38 65 fact~; #X obj 67 111 snapshot~; #X floatatom 67 141 10 0 0 0 - - -; #X obj 85 65 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 199 29 phasor~ 1; #X obj 156 84 serial~; #X obj 200 112 snapshot~; #X floatatom 200 142 7 0 0 0 - - -; #X obj 218 84 metro 100; #X obj 218 53 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 320 27 loadbang; #X msg 320 55 \; pd dsp 1; #X obj 171 229 sum~; #X obj 196 294 dac~; #X obj 195 261 *~ 0; #X obj 218 230 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #N canvas 0 0 450 300 (subpatch) 0; #X array scope 1920 float 2; #X coords 0 1 1920 -1 200 140 1; #X restore 271 200 graph; #X obj 69 262 tabwrite~ scope; #X obj 69 229 metro 40; #X obj 69 206 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X msg 171 203 vol \$1; #X obj 174 178 hsl 64 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X connect 0 1 1 0; #X connect 1 0 2 0; #X connect 3 0 1 0; #X connect 4 0 5 1; #X connect 5 1 6 0; #X connect 6 0 7 0; #X connect 8 0 6 0; #X connect 9 0 8 0; #X connect 10 0 11 0; #X connect 12 1 14 0; #X connect 12 1 17 0; #X connect 14 0 13 0; #X connect 15 0 14 1; #X connect 18 0 17 0; #X connect 19 0 18 0; #X connect 20 0 12 0; #X connect 21 0 20 0; faust-0.9.46/examples/rewriting/sample.pd0000644000175000017500000000047511702130733020311 0ustar orlareyorlarey#N canvas 337 294 450 300 10; #X obj 112 62 metro 100; #X floatatom 3 18 5 0 0 0 - - -; #X obj 112 35 tgl 15 0 empty sample empty 17 7 0 10 -262144 -1 -1 1 1; #X obj 55 62 inlet~; #X obj 56 104 snapshot~; #X connect 0 0 4 0; #X connect 2 0 0 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X coords 0 -1 1 1 65 35 1 0 0; faust-0.9.46/examples/rewriting/Makefile0000644000175000017500000000070011702130733020132 0ustar orlareyorlarey dspsrc := $(wildcard *.dsp) cppsrc := $(dspsrc:.dsp=.cpp) plugins := $(dspsrc:%.dsp=%~.pd_linux) svg := $(dspsrc:.dsp=-svg) xml := $(dspsrc:.dsp=.dsp.xml) pd := $(dspsrc:.dsp=.pd) all: $(plugins) $(svg) clean: rm -Rf *~ $(cppsrc) $(plugins) $(svg) $(xml) %.cpp %.dsp.xml %-svg: %.dsp faust -xml -svg -sd -a puredata.cpp $< -o $@ %~.pd_linux: %.cpp g++ -shared -fPIC -Dmydsp=$(@:%~.pd_linux=%) -o $@ $< %.pd: %.dsp.xml faust2pd -s $< faust-0.9.46/examples/rewriting/sum.dsp0000644000175000017500000000214611702130733020014 0ustar orlareyorlarey // How to emulate Faust's seq, par, sum. // x(k) is assumed to yield the kth signal. xseq(1,x) = x(0); xseq(n,x) = xseq(n-1,x) : x(n-1); xpar(1,x) = x(0); xpar(n,x) = xpar(n-1,x) , x(n-1); xsum(1,x) = x(0); xsum(n,x) = xsum(n-1,x) + x(n-1); // These are all very similar. Abstracting // on the binary "accumulator" function, we // get the familiar fold(-left) function: fold(1,f,x) = x(0); fold(n,f,x) = f(fold(n-1,f,x),x(n-1)); // Now seq, par, sum can be defined as: fseq(n) = fold(n,\(x,y).(x:y)); fpar(n) = fold(n,\(x,y).(x,y)); fsum(n) = fold(n,+); // Often it is more convenient to specify // parameters as a Faust tuple. We can match // against the (x,y) pattern to decompose // these. vfold(f,(x,y)) = f(vfold(f,x),y); vfold(f,x) = x; // Tuple version of seq, par, sum: vseq = vfold(\(x,y).(x:y)); vpar = vfold(\(x,y).(x,y)); vsum = vfold(+); // Example: sum of sinusoids. import("music.lib"); f0 = 440; a(0) = 1; a(1) = 0.5; a(2) = 0.3; h(i) = a(i)*osc((i+1)*f0); v = hslider("vol", 0.3, 0, 1, 0.01); process = v*fsum(3,h); //process = v*xsum(3,h); //process = v*vsum((h(0),h(1),h(2))); faust-0.9.46/examples/rewriting/mesh.dsp0000644000175000017500000000162711702130733020147 0ustar orlareyorlarey /* Layout of a systolic array: x1 xm ↓ ↓ y1 → □ → ... → □ → y1' ↓ ↓ ... ... ↓ ↓ yn → □ → ... → □ → yn' ↓ ↓ x1' xm' g(m,f) : y,x1,...,xm -> x1',...,xm',y' constructs a single row of size m. h(n,m,f) : y1,...,yn,x1,...,xm -> x1',...,xm',yn',...,y1' constructs an array of size nxm. f is the function computed by each cell, which must take exactly two inputs and yield exactly two outputs. */ g(1,f) = f; g(m,f) = (f, r(m-1)) : (_, g(m-1,f)); h(1,m,f) = g(m,f); h(n,m,f) = (r(n+m) <: (!,r(n-1),s(m), (_,s(n-1),r(m) : g(m,f)))) : (h(n-1,m,f), _); // route n inputs r(1) = _; r(n) = _,r(n-1); // skip n inputs s(1) = !; s(n) = !,s(n-1); // sample cell function f = + <: _,_; //process = g(3,f); process = h(2,3,f); faust-0.9.46/examples/rewriting/fold.dsp0000644000175000017500000000235411702130733020135 0ustar orlareyorlarey // How to emulate Faust's seq, par, sum. // x(k) is assumed to yield the kth signal. xseq(1,x) = x(0); xseq(n,x) = xseq(n-1,x) : x(n-1); xpar(1,x) = x(0); xpar(n,x) = xpar(n-1,x) , x(n-1); xsum(1,x) = x(0); xsum(n,x) = xsum(n-1,x) + x(n-1); // These are all very similar. Abstracting // on the binary "accumulator" function, we // get the familiar fold(-left) function: fold(1,f,x) = x(0); fold(n,f,x) = f(fold(n-1,f,x),x(n-1)); // Now seq, par, sum can be defined as: fseq(n) = fold(n,\(x,y).(x:y)); fpar(n) = fold(n,\(x,y).(x,y)); fsum(n) = fold(n,+); fprod(n) = fold(n,*); // Often it is more convenient to specify // parameters as a Faust tuple. We can match // against the (xs,x) pattern to decompose // these. vfold(f,(xs,x)) = f(vfold(f,xs),x); vfold(f,x) = x; // Tuple version of seq, par, sum: vseq = vfold(\(x,y).(x:y)); vpar = vfold(\(x,y).(x,y)); vsum = vfold(+); vprod = vfold(*); // Examples: import("music.lib"); f0 = 440; a(0) = 1; a(1) = 0.5; a(2) = 0.3; h(i) = a(i)*osc((i+1)*f0); // sums //process = xsum(3,h); //process = fsum(3,h); //process = vsum((h(0),h(1),h(2))); reverse (x:y) = reverse(y):reverse(x); reverse(x) = x; // sequences from tuples (parallel -> serial) process = reverse(vseq((sin,cos,tan))); faust-0.9.46/examples/rewriting/mesh.pd0000644000175000017500000000220511702130733017755 0ustar orlareyorlarey#N canvas 678 191 450 300 10; #X floatatom 79 41 5 0 0 0 - x1 -; #X floatatom 154 42 5 0 0 0 - x2 -; #X floatatom 228 43 5 0 0 0 - x3 -; #X floatatom 42 122 5 0 0 0 - y2 -; #X floatatom 42 98 5 0 0 0 - y1 -; #X obj 114 112 mesh~; #X obj 356 218 tgl 15 0 sample empty empty 17 7 0 10 -262144 -1 -1 0 1; #X msg 356 243 \; pd dsp \$1; #X obj 373 111 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X msg 373 136 \; val \$1; #X obj 79 18 tgl 15 0 x1 val empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 154 19 tgl 15 0 x2 val empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 228 21 tgl 15 0 x3 val empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 21 97 tgl 15 0 y1 val empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 21 121 tgl 15 0 y2 val empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 216 180 sample; #X obj 279 88 sample; #X obj 280 129 sample; #X obj 141 180 sample; #X obj 71 180 sample; #X obj 356 192 loadbang; #X connect 0 0 5 3; #X connect 1 0 5 4; #X connect 2 0 5 5; #X connect 3 0 5 2; #X connect 4 0 5 1; #X connect 5 1 19 0; #X connect 5 2 18 0; #X connect 5 3 15 0; #X connect 5 4 17 0; #X connect 5 5 16 0; #X connect 6 0 7 0; #X connect 8 0 9 0; #X connect 20 0 6 0; faust-0.9.46/examples/rewriting/serial.dsp0000644000175000017500000000021111702130733020456 0ustar orlareyorlarey // sequences from tuples (parallel -> serial) serial((x,y)) = serial(x) : serial(y); serial(x) = x; process = serial((sin,cos,tan)); faust-0.9.46/examples/Makefile.w32pdcompile0000644000175000017500000000356611702130733020444 0ustar orlareyorlarey################################################################################ # # CROSSCOMPILATION FROM LINUX OF PD EXTERNALS FOR WINDOWS # Faust Project, Y. Orlarey - Grame # ################################################################################ #------------------------------------------------------------------------------ # 1/ VST SDK Should be installed somewhere VST=../vstsdk2.4 #------------------------------------------------------------------------------ # 2/ mingw crosscompiler should be installed ('mingw32' package on Ubuntu) #CROSS=i386-mingw32- CROSS=i586-mingw32msvc- CXX=$(CROSS)g++ CXXFLAGS=-I$(VST) -I$(VST)/public.sdk/source/vst2.x -DBUILDING_DLL -mno-cygwin LDFLAGS= DLLWRAP=$(CROSS)dllwrap --target=i386-mingw32 -mno-cygwin STRIP=$(CROSS)strip #------------------------------------------------------------------------------ # 3/ we transform all .dsp Faust codes into the corresponding dll DSP= $(wildcard *.dsp) DLL= $(addprefix $(DEST), $(DSP:.dsp=.dll)) ##PLUGIN= $(SRC:.dsp=) ##DLL=$(PLUGIN).dll # all : $(DLL) # how to generate the cpp file from the faust source $(DEST)%.cpp : %.dsp faust -a vst2p4.cpp $< -o $@ # we need to create the .def file needed to generate the .dll $(DEST)%.def : @echo LIBRARY $(@:.def=) > $@ @echo DESCRIPTION \'Faust generated VST plugin\' >> $@ @echo EXPORTS main=VSTPluginMain >> $@ $(DEST)%.dll: $(DEST)%.o $(DEST)%.def $(DEST)audioeffect.o $(DEST)audioeffectx.o $(DEST)vstplugmain.o $(DLLWRAP) --driver-name $(CXX) --def $(@:.dll=.def) $^ -o $@ $(STRIP) $@ $(DEST)audioeffect.o: $(VST)/public.sdk/source/vst2.x/audioeffect.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ $(DEST)audioeffectx.o: $(VST)/public.sdk/source/vst2.x/audioeffectx.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ $(DEST)vstplugmain.o: $(VST)/public.sdk/source/vst2.x/vstplugmain.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ faust-0.9.46/examples/Makefile.mathdoc0000644000175000017500000000264711702130733017552 0ustar orlareyorlareyDSP = $(wildcard *.dsp) TEX = $(wildcard *-mdoc/tex/*.tex) PDF = $(wildcard *-mdoc/pdf/*.pdf) all : mathdoc copypdfs .PHONY: all clean compile copypdfs copyall install mathdoc help compile : $(MAKE) -C .. install : sudo $(MAKE) -C .. install sudo $(MAKE) -C ../tools/faust2appls install mathdoc : faust2mathdoc *.dsp copypdfs : mkdir -p allmathpdfs cp $(wildcard *-mdoc/pdf/*.pdf) allmathpdfs/ copyall : mkdir -p allmathdsps mkdir -p allmathtexs mkdir -p allmathpdfs cp $(wildcard *.dsp) allmathdsps/ cp $(wildcard *-mdoc/tex/*.tex) allmathtexs/ cp $(wildcard *-mdoc/pdf/*.pdf) allmathpdfs/ help : @echo "make or make all : compile math documentation of all examples, then copy resulting pdf files into \"allmathpdfs\" directory." @echo "make clean : remove \"*-mdoc\" and \"allmath*\" directories." @echo "make compile : compile the faust compiler." @echo "make install : install the faust compiler and faust2appls scripts." @echo "make mathdoc : generate math documentation of all examples (with faust2mathdoc)." @echo "make copypdfs : copy pdf files into \"allmathpdfs\" directory." @echo "make copyall : copy dsp, pdf, and tex files into \"allmathdsps\", \"allmathpdfs\", and \"allmathtexs\" directories." @echo "make total : clean, compile faust, install faust and faust2appls, compile math docs, and copy files." clean : rm -rf allmath* rm -rf *-mdoc total : clean compile install mathdoc copyall faust-0.9.46/examples/graphic_eq.dsp0000644000175000017500000000041211702130733017272 0ustar orlareyorlareyol = library("oscillator.lib"); fl = library("filter.lib"); process = // ol.sawtooth_demo : fl.filterbank_demo : fl.spectral_level_demo <: _,_; vgroup("[1]",ol.sawtooth_demo) : vgroup("[2]",fl.filterbank_demo) : vgroup("[3]",fl.spectral_level_demo) <: _,_; faust-0.9.46/examples/Makefile.svgcompile0000644000175000017500000000023111702130733020266 0ustar orlareyorlareysrc := $(wildcard *.dsp) target := $(src:.dsp=.dsp-svg) all : $(target) %.dsp-svg : %.dsp faust -svg $< > /dev/null clean : rm -rf $(target) faust-0.9.46/examples/README0000644000175000017500000000162311702130733015345 0ustar orlareyorlareyThis folder contains several examples of Faust programs as well as Makefiles to compile them for various audio architectures. cd examples make help will give you the main targets Compilation of MAX/MSP externals on OSX ======================================== Compilation of all .dsp files to produce MAX/MSP externals on OSX can be done using the Makefile - edit the Makefile.mspcompile file and setup the "cycling" and "install_plug_ins" variables with the appropriate values for your machine - use "make msp" to produce all MAX/MSP externals Compilation of VST plug-ins on OSX =================================== Compilation of all .dsp files to produce VST plug-ins on OSX can be done using the Makefile - edit the Makefile.vstcompile file and setup the "vst_sdk" and "install_plug_ins" variables with the appropriate values for your machine - use "make vst" to produce all VST plug-ins faust-0.9.46/examples/panpot.dsp0000644000175000017500000000061011702130733016471 0ustar orlareyorlareydeclare name "panpot"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //------------------------------------------------- // Stereo panpot //------------------------------------------------- panpot(x) = sqrt(c)*x, sqrt(1-c)*x with { c=(nentry("[1]pan[style:knob]",0,-90,90,1)-90.0)/-180.0; }; process = panpot; faust-0.9.46/examples/Makefile.w32vstcompile0000644000175000017500000000360111702130733020643 0ustar orlareyorlarey################################################################################ # # CROSSCOMPILATION FROM LINUX OF VST PLUGINS FOR WINDOWS # Faust Project, Y. Orlarey - Grame # ################################################################################ #------------------------------------------------------------------------------ # 1/ VST SDK Should be installed somewhere VST=/usr/local/lib/vstsdk2.4 #------------------------------------------------------------------------------ # 2/ mingw crosscompiler should be installed ('mingw32' package on Ubuntu) #CROSS=i386-mingw32- CROSS=i586-mingw32msvc- CXX=$(CROSS)g++ CXXFLAGS=-I$(VST) -I$(VST)/public.sdk/source/vst2.x -DBUILDING_DLL -mno-cygwin LDFLAGS= DLLWRAP=$(CROSS)dllwrap --target=i386-mingw32 -mno-cygwin STRIP=$(CROSS)strip #------------------------------------------------------------------------------ # 3/ we transform all .dsp Faust codes into the corresponding dll DSP= $(wildcard *.dsp) DLL= $(addprefix $(DEST), $(DSP:.dsp=.dll)) ##PLUGIN= $(SRC:.dsp=) ##DLL=$(PLUGIN).dll # all : $(DLL) # how to generate the cpp file from the faust source $(DEST)%.cpp : %.dsp faust -a vst2p4.cpp $< -o $@ # we need to create the .def file needed to generate the .dll $(DEST)%.def : @echo LIBRARY $(@:.def=) > $@ @echo DESCRIPTION \'Faust generated VST plugin\' >> $@ @echo EXPORTS main=VSTPluginMain >> $@ $(DEST)%.dll: $(DEST)%.o $(DEST)%.def $(DEST)audioeffect.o $(DEST)audioeffectx.o $(DEST)vstplugmain.o $(DLLWRAP) --driver-name $(CXX) --def $(@:.dll=.def) $^ -o $@ $(STRIP) $@ $(DEST)audioeffect.o: $(VST)/public.sdk/source/vst2.x/audioeffect.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ $(DEST)audioeffectx.o: $(VST)/public.sdk/source/vst2.x/audioeffectx.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ $(DEST)vstplugmain.o: $(VST)/public.sdk/source/vst2.x/vstplugmain.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ faust-0.9.46/examples/BPF.dsp0000644000175000017500000000026411702130733015604 0ustar orlareyorlareyimport("maxmsp.lib"); G = hslider("Gain [unit:dB]", 0, -10, 10, 0.1); F = hslider("Freq", 1000, 100, 10000, 1); Q = hslider("Q", 1, 0.01, 100, 0.01); process(x) = BPF(x,F,G,Q); faust-0.9.46/examples/osc.pd0000644000175000017500000000120111702130733015566 0ustar orlareyorlarey#N canvas 418 463 539 314 10; #X obj 208 180 prepend send; #X obj 208 209 sendOSC; #X obj 24 111 loadbang; #X msg 24 143 connect localhost 5510; #X obj 319 178 dumpOSC 5511; #X obj 319 215 print FAUST; #X obj 407 177 dumpOSC 5512; #X obj 407 214 print Error; #X obj 208 150 r osc; #X msg 104 113 connect localhost 5513; #X msg 116 72 disconnect; #X obj 200 12 s osc; #X msg 201 -12 /* hello; #X obj 280 12 s osc; #X msg 281 -12 /* get; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 4 0 5 0; #X connect 6 0 7 0; #X connect 8 0 0 0; #X connect 9 0 1 0; #X connect 10 0 1 0; #X connect 12 0 11 0; #X connect 14 0 13 0; faust-0.9.46/examples/noisemetadata.dsp0000644000175000017500000000425011702130733020012 0ustar orlareyorlarey \title{name} \author{author} \date{\today} \maketitle \begin{tabular}{ll} \hline \textbf{name} & name \\ \textbf{version} & version \\ \textbf{author} & author \\ \textbf{license} & license \\ \textbf{copyright} & copyright \\ \hline \end{tabular} \bigskip //----------------------------------------------------------------- // Noise generator and demo file for the Faust math documentation //----------------------------------------------------------------- declare name "NoiseMD"; // avoid same name as in noise.dsp declare version "1.1"; declare author "Grame"; declare author "Yghe"; declare license "BSD"; declare copyright "(c)GRAME 2009"; \section{Presentation of the "noise.dsp" Faust program} This program describes a white noise generator with an interactive volume, using a random function. \subsection{The random function} random = +(12345)~*(1103515245); The \texttt{random} function describes a generator of random numbers, which equation follows. You should notice hereby the use of an integer arithmetic on 32 bits, relying on integer wrapping for big numbers. random \subsection{The noise function} noise = random/2147483647.0; The white noise then corresponds to: noise \subsection{Just add a user interface element to play volume!} process = noise * vslider("Volume[style:knob]", 0, 0, 1, 0.1); Endly, the sound level of this program is controlled by a user slider, which gives the following equation: process \section{Block-diagram schema of process} This process is illustrated on figure 1. process \section{Notice of this documentation} You might be careful of certain information and naming conventions used in this documentation: \section{Listing of the input code} The following listing shows the input Faust code, parsed to compile this mathematical documentation. faust-0.9.46/examples/LPF.dsp0000644000175000017500000000026411702130733015616 0ustar orlareyorlareyimport("maxmsp.lib"); G = hslider("Gain [unit:dB]", 0, -10, 10, 0.1); F = hslider("Freq", 1000, 100, 10000, 1); Q = hslider("Q", 1, 0.01, 100, 0.01); process(x) = LPF(x,F,G,Q); faust-0.9.46/examples/lowboost.dsp0000644000175000017500000000250011702130733017040 0ustar orlareyorlareydeclare name "lowboost"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //------------------------------------------------------------------ // DAFX, Digital Audio Effects (Wiley ed.) // chapter 2 : filters // section 2.3 : Equalizers // page 53 : second order shelving filter design //------------------------------------------------------------------ import("music.lib"); //------------------- low-frequency shelving boost (table 2.3) -------------------- V0(g) = pow(10,g/20.0); K(fc) = tan(PI*fc/SR); square(x) = x*x; denom(fc) = 1 + sqrt(2)*K(fc) + square(K(fc)); lfboost(fc, g) = TF2( (1 + sqrt(2*V0(g))*K(fc) + V0(g)*square(K(fc))) / denom(fc), 2 * (V0(g)*square(K(fc)) - 1) / denom(fc), (1 - sqrt(2*V0(g))*K(fc) + V0(g)*square(K(fc))) / denom(fc), 2 * (square(K(fc)) - 1) / denom(fc), (1 - sqrt(2)*K(fc) + square(K(fc))) / denom(fc) ); //------------------------------ User Interface ----------------------------------- freq = hslider("[1]freq [unit:Hz][style:knob]", 1000, 20, 20000, 0.1); gain = hslider("[2]gain [unit:dB][style:knob]", 0, -20, 20, 0.1); //----------------------------------- Process ------------------------------------- process = vgroup("low-freq shelving boost", lfboost(freq,gain)); faust-0.9.46/examples/HPF.dsp0000644000175000017500000000026411702130733015612 0ustar orlareyorlareyimport("maxmsp.lib"); G = hslider("Gain [unit:dB]", 0, -10, 10, 0.1); F = hslider("Freq", 1000, 100, 10000, 1); Q = hslider("Q", 1, 0.01, 100, 0.01); process(x) = HPF(x,F,G,Q); faust-0.9.46/examples/parametric_eq.dsp0000644000175000017500000000051011702130733020003 0ustar orlareyorlareyol = library("oscillator.lib"); fl = library("filter.lib"); //process = ol.sawtooth_demo : fl.parametric_eq_demo : // fl.mth_octave_spectral_level_demo(2) <: _,_; process = vgroup("[1]", ol.sawtooth_demo) : vgroup("[2]", fl.parametric_eq_demo) : vgroup("[3]", fl.mth_octave_spectral_level_demo(2)) <: _,_; faust-0.9.46/examples/osci.dsp0000644000175000017500000000106311702130733016130 0ustar orlareyorlareydeclare name "osci"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2009"; //----------------------------------------------- // Sinusoidal Oscillator // (with linear interpolation) //----------------------------------------------- import("music.lib"); smooth(c) = *(1-c) : +~*(c); vol = hslider("volume [unit:dB]", 0, -96, 0, 0.1) : db2linear : smooth(0.999) ; freq = hslider("freq [unit:Hz]", 1000, 20, 24000, 1); process = vgroup("Oscillator", osci(freq) * vol); faust-0.9.46/examples/envelop.dsp0000644000175000017500000000231411702130733016643 0ustar orlareyorlareydeclare name "envelop"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; import("music.lib"); //------------------------------------------------- // ADSR Envelop Generator // The 'state' of the envelop generator is // defined by a phase signal p2 allowing to // distinguish the attack and the decay-sustain // phases, and the envelop signal y itself. //------------------------------------------------- envelop(a,d,s,r,t) = adsr ~ (_,_) : (!,_) // The 2 'state' signal are feedback with { adsr (p2,y) = (t>0) & (p2|(y>=1)), // p2 = decay-sustain phase y + p1*a - (p2&(y>s))*d*y - p3*r*y // y = envelop signal with { p1 = (p2==0) & (t>0) & (y<1); // p1 = attack phase p3 = (t<=0) & (y>0); // p3 = release phase }; }; attack = 1.0/(SR*nentry("[1:]attack [unit:ms][style:knob]", 20, 1, 1000, 1)/1000); decay = nentry("[2:]decay[style:knob]", 2, 1, 100, 0.1)/100000; sustain = nentry("[3:]sustain [unit:pc][style:knob]", 10, 1, 100, 0.1)/100; release = nentry("[4:]release[style:knob]", 10, 1, 100, 0.1)/100000; process = button("play"): hgroup("", envelop(attack, decay, sustain, release) : *(noise)); faust-0.9.46/examples/zita_rev1.dsp0000644000175000017500000000013111702130733017072 0ustar orlareyorlareyprocess = component("effect.lib").zita_rev1; // For test inputs, see ./reverb_tester.dsp faust-0.9.46/examples/pitch_shifter.dsp0000644000175000017500000000131411702130733020025 0ustar orlareyorlareydeclare name "pitch-shifter"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //---------------------------- // very simple real time pitch shifter //---------------------------- import("music.lib"); transpose (w, x, s, sig) = fdelay1s(d,sig)*fmin(d/x,1) + fdelay1s(d+w,sig)*(1-fmin(d/x,1)) with { i = 1 - pow(2, s/12); d = i : (+ : +(w) : fmod(_,w)) ~ _; }; pitchshifter = vgroup("Pitch Shifter", transpose( hslider("window (samples)", 1000, 50, 10000, 1), hslider("xfade (samples)", 10, 1, 10000, 1), hslider("shift (semitones) ", 0, -12, +12, 0.1) ) ); process = pitchshifter; faust-0.9.46/examples/dbmeter.dsp0000644000175000017500000000117311702130733016617 0ustar orlareyorlareydeclare name "dbmeter"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //------------------------------------------------- // A dB Vumeter //------------------------------------------------- import("math.lib"); import("music.lib"); vmeter(x) = attach(x, envelop(x) : vbargraph("[unit:dB]", -70, 10)); hmeter(x) = attach(x, envelop(x) : hbargraph("[unit:dB]", -70, 10)); envelop = abs : max(db2linear(-70)) : linear2db : min(10) : max ~ -(80.0/SR); null(x) = attach(0,x); process = hgroup("8 channels dB meter", par(i,8, vgroup("%i", vmeter : null)));faust-0.9.46/examples/Makefile.iphonecompile0000644000175000017500000000065311702130733020761 0ustar orlareyorlareydspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) appl := $(addprefix $(DEST), $(dspsrc:.dsp=$(EXT))) all : $(appl) $(DEST)% : %.dsp install -d $@ cp -r /usr/local/lib/faust/iPhone/* $@ faust $(VEC) -a $(ARCH) $< -o $@/iphone-faust.h xcodebuild -project $@/iPhone.xcodeproj PRODUCT_NAME=$(<:.dsp=) cp -r $@/build/Release-iphoneos/$(<:.dsp=.app) $@/../ rm -r $@ clean : rm -f $(DEST) faust-0.9.46/examples/Makefile.dssicompile0000644000175000017500000000101011702130733020425 0ustar orlareyorlareyARCH := dssi.cpp DEST := dssidir/ dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) modules := $(addprefix $(DEST), $(dspsrc:%.dsp=%.so)) ###allcpp: $(cppsrc) allmodules: $(modules) ifeq ($(system), Darwin) SHAREDFLAG := -bundle else SHAREDFLAG := -shared endif $(DEST)%.so: $(DEST)%.cpp $(CXX) -I. -Wall $(LIB) -fPIC -DPIC $(SHAREDFLAG) $(CXXFLAGS) -Dmydsp=$(patsubst %.so,%,$(notdir $@)) $< -o $@ $(DEST)%.cpp: %.dsp faust $(VEC) -a $(ARCH) $< -o $@ clean: rm -rf $(DEST) faust-0.9.46/examples/vcf_wah_pedals.dsp0000644000175000017500000000064111702130733020141 0ustar orlareyorlareyol = library("oscillator.lib"); fl = library("filter.lib"); el = library("effect.lib"); // process = ol.sawtooth_demo : // el.crybaby_demo : el.moog_vcf_demo : el.wah4_demo : // fl.spectral_level_demo <: _,_; process = vgroup("[1]", ol.sawtooth_demo) : vgroup("[2]", el.crybaby_demo) : vgroup("[3]", el.wah4_demo) : vgroup("[4]", el.moog_vcf_demo) : vgroup("[5]", fl.spectral_level_demo) <: _,_; faust-0.9.46/examples/cubic_distortion.dsp0000644000175000017500000000043311702130733020536 0ustar orlareyorlareyol = library("oscillator.lib"); fl = library("filter.lib"); el = library("effect.lib"); process = // ol.oscr_demo : el.cubicnl_demo : fl.spectral_level_demo <: _,_; vgroup("[1]",ol.oscr_demo) : vgroup("[2]",el.cubicnl_demo) : vgroup("[3]",fl.spectral_level_demo) <: _,_; faust-0.9.46/examples/Makefile.compile0000644000175000017500000000043211702130733017551 0ustar orlareyorlareydspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) appl := $(addprefix $(DEST), $(dspsrc:.dsp=$(EXT))) all : $(appl) $(DEST)%$(EXT) : %.dsp faust $(VEC) -a $(ARCH) $< -o $@.cpp $(CXX) $@.cpp $(CXXFLAGS) $(LIB) -o $@ clean : rm -f $(DEST) faust-0.9.46/examples/Makefile.mspcompile0000644000175000017500000000510711702130733020275 0ustar orlareyorlareydspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) appl := $(addprefix $(DEST), $(dspsrc:.dsp=~.mxo)) processor := $(shell uname -p) CC=g++ #CC=/Developer/usr/bin/llvm-g++ INC := -I/usr/local/include/c74support/max-includes -I/usr/local/include/c74support/msp-includes -I $(PWD) -I/usr/local/lib/faust all : $(appl) $(DEST)%~.mxo : %.dsp Info.plist.template install -d $@/Contents/MacOS faust $(VEC) -g -vs 2048 -a $(ARCH) $< -o $@/$(<:.dsp=.cpp) #faust -sch -g -vs 2048 $(VEC) -a $(ARCH) $< -o $@/$(<:.dsp=.cpp) ifeq ($(processor), i386) $(CC) -arch i386 -fpascal-strings -fasm-blocks -g -O3 $(INC) -c $@/$(<:.dsp=.cpp) -o $@/$(<:.dsp=.i386.o) $(CC) -framework MaxAPI -framework Carbon -framework MaxAudioAPI -arch i386 -Wl,-Y,1455 -bundle $@/$(<:.dsp=.i386.o) -o $@/$(<:.dsp=.i386~) # $(CC) -arch ppc -fpascal-strings -fasm-blocks -g -O3 $(INC) -c $@/$(<:.dsp=.cpp) -o $@/$(<:.dsp=.ppc.o) # $(CC) -framework Carbon -framework MaxAPI -framework MaxAudioAPI -arch ppc -Wl,-Y,1455 -bundle $@/$(<:.dsp=.ppc.o) -o $@/$(<:.dsp=.ppc~) sed s/FOO/$(<:.dsp=~)/ $@/Contents/Info.plist # lipo -create $@/$(<:.dsp=.i386~) $@/$(<:.dsp=.ppc~) -output $@/Contents/MacOS/$(<:.dsp=~) lipo -create $@/$(<:.dsp=.i386~) -output $@/Contents/MacOS/$(<:.dsp=~) rm -f $@/$(<:.dsp=.ppc~) $@/$(<:.dsp=.ppc.o) $@/$(<:.dsp=.i386.o) $@/$(<:.dsp=.i386~) else g++ -arch ppc -fpascal-strings -fasm-blocks -g -O3 $(INC) -c $@/$(<:.dsp=.cpp) -o $@/$(<:.dsp=.ppc.o) g++ -framework Carbon -framework MaxAPI -framework MaxAudioAPI -arch ppc -Wl,-Y,1455 -bundle $@/$(<:.dsp=.ppc.o) -o $@/$(<:.dsp=.ppc~) sed s/FOO/$(<:.dsp=~)/ $@/Contents/Info.plist lipo -create $@/$(<:.dsp=.ppc~) -output $@/Contents/MacOS/$(<:.dsp=~) rm -f $@/$(<:.dsp=.ppc~) $@/$(<:.dsp=.ppc.o) endif Info.plist.template : echo '' > Info.plist.template echo '' >> Info.plist.template echo '' >> Info.plist.template echo '' >> Info.plist.template echo ' CFBundleExecutable' >> Info.plist.template echo ' FOO' >> Info.plist.template echo ' CFBundleName' >> Info.plist.template echo ' FOO' >> Info.plist.template echo ' CFBundlePackageType' >> Info.plist.template echo ' iLaX' >> Info.plist.template echo '' >> Info.plist.template echo '' >> Info.plist.template clean : rm -f $(DEST) faust-0.9.46/examples/multibandfilter.dsp0000644000175000017500000000067111702130733020364 0ustar orlareyorlareydeclare name "multibandfilter"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //---------------------------Multi Band Filter----------------------------- // //------------------------------------------------------------------------- process = hgroup("Multi Band Filter", seq( i, 10, vgroup("peak %i", component("bandfilter.dsp").bandfilter(1000*(1+i))) ) ); faust-0.9.46/examples/mixer.dsp0000644000175000017500000000117411702130733016322 0ustar orlareyorlareydeclare name "mixer"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //------------------------------------------------- // Simple 8x2 mixer //------------------------------------------------- vol = component("volume.dsp"); pan = component("panpot.dsp"); vumeter = component("vumeter.dsp").vmeter; mute = *(1 - checkbox("mute")); voice(v) = vgroup("Ch %v", mute : hgroup("[2]", vol : vumeter) : pan); stereo = hgroup("stereo out", (vol, vol : vgroup("L", vumeter), vgroup("R", vumeter))); process = hgroup("mixer", par(i, 8, voice(i)) :> stereo ); faust-0.9.46/examples/faust-stk/0000755000175000017500000000000011702130733016404 5ustar orlareyorlareyfaust-0.9.46/examples/faust-stk/instrument.lib0000644000175000017500000002352011702130733021306 0ustar orlareyorlarey//instrument.lib - Faust function of various types usefull for building physical model instruments declare name "Faust-STK Tools Library"; declare author "Romain Michon (rmichon@ccrma.stanford.edu)"; declare copyright "Romain Michon"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); import("math.lib"); import("filter.lib"); import("effect.lib"); //========================= ENVELOPE GENERATORS =============================== //----------------------- VIBRATO ENVELOPE ---------------------------- // 4 phases envelope to control vibrato gain // // USAGE: // _ : *(envVibrato(b,a,s,r,t)) : _ // where // b = beginning duration (silence) in seconds // a = attack duration in seconds // s = sustain as a percentage of the amplitude to be modified // r = release duration in seconds // t = trigger signal envVibrato(b,a,s,r,t) = env ~ (_,_,_) : (!,!,_) // the 3 'state' signals are fed back with { env (p2,cnt,y) = (t>0) & (p2|(y>=1)), (cnt + 1)*(t>0), // counter for the first step "b" (y + p1*p3*u*(s/100) - p4*w*y)*((p4==0)|(y>=eps)) // y = envelop signal //*(y>=eps) // cut off tails to prevent denormals with { p1 = (p2==0) & (t>0) & (y<1) & (cnt>(b*SR)); // p1 = attack phase p3 = 1-(cnt<(nb)); // p3 = beginning phase p4 = (t<=0) & (y>0); // p4 = release phase // #samples in attack, release, must be >0 nb = SR*b+(b==0.0) ; na = SR*a+(a==0.0); nr = SR*r+(r==0.0); // attack and (-60dB) release rates z = s+(s==0.0)*db2linear(-60); u = 1/na; w = 1-1/pow(z*db2linear(60), 1/nr); // values below this threshold are considered zero in the release phase eps = db2linear(-120); }; }; //----------------------- ATTACK - SUSTAIN - RELEASE ---------------------------- // Attack - Sustain - Release envelope // // USAGE: // _ : *(asr(a,s,r,t)) : _ // where // a = attack duration in seconds // s = sustain as a percentage of the amplitude to be modified // r = release duration in seconds // t = trigger signal asr(a,s,r,t) = env ~ (_,_) : (!,_) // the 2 'state' signals are fed back with { env (p2,y) = (t>0) & (p2|(y>=1)), (y + p1*u*(s/100) - p3*w*y) // y = envelop signal *((p3==0)|(y>=eps)) // cut off tails to prevent denormals with { p1 = (p2==0) & (t>0) & (y<1); // p1 = attack phase p3 = (t<=0) & (y>0); // p3 = release phase // #samples in attack, release, must be >0 na = SR*a+(a==0.0); nr = SR*r+(r==0.0); // correct zero sustain level z = s+(s==0.0)*db2linear(-60); // attack and (-60dB) release rates u = 1/na; w = 1-1/pow(z*db2linear(60), 1/nr); // values below this threshold are considered zero in the release phase eps = db2linear(-120); }; }; //----------------------- ASYMPT60 ---------------------------- // Envelope generator which asymptotically approaches a target value. // // USAGE: // asympT60(value,trgt,T60,trig) : _ // where // value = starting value // trgt = target value // T60 = ramping time // trig = trigger signal asympT60(value,trgt,T60,trig) = (_*factor + constant)~_ with{ cntSample = *(trig) + 1~_ : -(1); attDur = float(2); cndFirst = ((cntSample < attDur) & (trig > 0)); target = value*cndFirst + trgt*(cndFirst < 1); factorAtt = exp(-7/attDur); factorT60 = exp(-7/(T60*float(SR))); factor = factorAtt*((cntSample < attDur) & (trig > 0)) + ((cntSample >= attDur) | (trig < 1))*factorT60; constant = (1 - factor)*target; }; //========================= TABLES =============================== //----------------------- CLIPPING FUNCTION ---------------------------- // Positive and negative clipping functions. // // USAGE: // _ : saturationPos : _ // _ : saturationNeg : _ // _ : saturationPos : saturationNeg : _ saturationPos(x) = x <: (_>1),(_<=1 : *(x)) :> +; saturationNeg(x) = x <: (_<-1),(_>=-1 : *(x)) :> *(-1) + _; //----------------------- BOW TABLE ---------------------------- // Simple bow table. // // USAGE: // index : bow(offset,slope) : _ // where // 0 <= index <= 1 bow(offset,slope) = pow(abs(sample) + 0.75, -4) : saturationPos with{ sample(y) = (y + offset)*slope; }; //----------------------- REED TABLE ---------------------------- // Simple reed table to be used with waveguide models of clanrinet, saxophone, etc. // // USAGE: // _ : reed(offset,slope) : _ // where // offset = offset between 0 and 1 // slope = slope between 0 and 1 // REFERENCE: // https://ccrma.stanford.edu/~jos/pasp/View_Single_Reed_Oscillation.html reed(offset,slope) = reedTable : saturationPos : saturationNeg with{ reedTable = offset + (slope*_); }; //========================= FILTERS =============================== //----------------------- ONE POLE ---------------------------- onePole(b0,a1,x) = (b0*x - a1*_)~_; //----------------------- ONE POLE SWEPT ---------------------------- onePoleSwep(a1,x) = (1 + a1)*x - a1*x'; //----------------------- POLE ZERO ---------------------------- poleZero(b0,b1,a1,x) = (b0*x + b1*x' - a1*_)~_; //----------------------- ONE ZEROS ---------------------------- // Simple One zero and One zero recursive filters // // USAGE: // _ : oneZero0(b0,b1) : _ // _ : oneZero1(b0,b1) : _ // REFERENCE: // https://ccrma.stanford.edu/~jos/fp2/One_Zero.html oneZero0(b0,b1,x) = (*(b1) + x*b0)~_; oneZero1(b0,b1,x) = (x'*b1 + x*b0); //----------------------- BANDPASS FILTER WITH CONSTANT UNITY PEAK GAIN BASED ON A BIQUAD ---------------------------- bandPass(resonance,radius) = TF2(b0,b1,b2,a1,a2) with{ a2 = radius*radius; a1 = -2*radius*cos(PI*2*resonance/SR); b0 = 0.5-0.5*a2; b1 = 0; b2 = -b0; }; //----------------------- BANDPASS FILTER BASED ON A BIQUAD ---------------------------- // Band pass filter using a biquad (TF2 is declared in filter.lib) // // USAGE: // _ : bandPassH(resonance,radius) : _ // where // resonance = center frequency // radius = radius bandPassH(resonance,radius) = TF2(b0,b1,b2,a1,a2) with{ a2 = radius*radius; a1 = -2*radius*cos(PI*2*resonance/SR); b0 = 1; b1 = 0; b2 = 0; }; //----------------------- FLUE JET NON-LINEAR FUNCTION ---------------------------- // Jet Table: flue jet non-linear function, computed by a polynomial calculation jetTable(x) = x <: _*(_*_-1) : saturationPos : saturationNeg; //----------------------- NON LINEAR MODULATOR ---------------------------- // nonLinearModulator adapts the function allpassnn from filter.lib for using it with waveguide instruments // // USAGE: // _ : nonLinearModulator(nonlinearity,env,freq,typeMod,freqMod,order) : _ // where // nonlinearity = nonlinearity coefficient between 0 and 1 // env = input to connect any kind of envelope // freq = current tone frequency // typeMod = if 0: theta is modulated by the incoming signal; // if 1: theta is modulated by the averaged incoming signal; // if 2: theta is modulated by the squared incoming signal; // if 3: theta is modulated by a sine wave of frequency freqMod; // if 4: theta is modulated by a sine wave of frequency freq; // freqMod = frequency of the sine wave modulation // order = order of the filter nonLinearModulator(nonlinearity,env,freq,typeMod,freqMod,order) = //theta is modulated by a sine wave _ <: nonLinearFilterOsc*(typeMod >= 3), //theta is modulated by the incoming signal (_ <: nonLinearFilterSig*nonlinearity,_*(1 - nonlinearity) :> +)*(typeMod < 3) :> + with{ //which frequency to use for the sine wave oscillator? freqOscMod = (typeMod == 4)*freq + (typeMod != 4)*freqMod; //the incoming signal is scaled and the envelope is applied tsignorm(x) = nonlinearity*PI*x*env; tsigsquared(x) = nonlinearity*PI*x*x*env; //incoming signal is squared tsigav(x) = nonlinearity*PI*((x + x')/2)*env; //incoming signal is averaged with its previous sample //select which version of the incoming signal of theta to use tsig(x) = tsignorm(x)*(typeMod == 0) + tsigav(x)*(typeMod == 1) + tsigsquared(x)*(typeMod == 2); //theta is modulated by a sine wave generator tosc = nonlinearity*PI*osc(freqOscMod)*env; //incoming signal is sent to the nonlinear passive allpass ladder filter nonLinearFilterSig(x) = x <: allpassnn(order,(par(i,order,tsig(x)))); nonLinearFilterOsc = _ <: allpassnn(order,(par(i,order,tosc))); }; //========================= WAVE TABLES =============================== //----------------------- STICK IMPACT ---------------------------- // Stick impact table. // // USAGE: // index : readMarmstk1 : _ readMarmstk1 = ffunction(float readMarmstk1 (int), ,""); marmstk1TableSize = 246; //========================= TOOLS =============================== //----------------------- STEREOIZER ---------------------------- // This function takes a mono input signal and spacialize it in stereo // in function of the period duration of the tone being played. // // USAGE: // _ : stereo(periodDuration) : _,_ // where // periodDuration = period duration of the tone being played in number of samples // ACKNOWLEDGMENT // Formulation initiated by Julius O. Smith in https://ccrma.stanford.edu/realsimple/faust_strings/ stereoizer(periodDuration) = _ <: _,widthdelay : stereopanner with{ W = hslider("v:Spat/spatial width", 0.5, 0, 1, 0.01); A = hslider("v:Spat/pan angle", 0.6, 0, 1, 0.01); widthdelay = delay(4096,W*periodDuration/2); stereopanner = _,_ : *(1.0-A), *(A); }; //----------------------- INSTRREVERB ---------------------------- // GUI for zita_rev1_stereo from effect.lib // // USAGE: // _,_ : instrRerveb instrReverb = _,_ <: *(reverbGain),*(reverbGain),*(1 - reverbGain),*(1 - reverbGain) : zita_rev1_stereo(rdel,f1,f2,t60dc,t60m,fsmax),_,_ <: _,!,_,!,!,_,!,_ : +,+ with{ reverbGain = hslider("v:Reverb/reverbGain",0.137,0,1,0.01) : smooth(0.999); roomSize = hslider("v:Reverb/roomSize",0.72,0.01,2,0.01); rdel = 20; f1 = 200; f2 = 6000; t60dc = roomSize*3; t60m = roomSize*2; fsmax = 48000; }; faust-0.9.46/examples/faust-stk/harpsi.dsp0000644000175000017500000000771211702130733020411 0ustar orlareyorlareydeclare name "Harpsichord"; declare description "Nonlinear WaveGuide Commuted Harpsichord"; declare author "Romain Michon (rmichon@ccrma.stanford.edu)"; declare copyright "Romain Michon"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "A commuted WaveGuide Harpsichord."; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",0.8,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [2][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [2][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [2][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); //==================== PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),1,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //convert a frequency in a midi note number freqToNoteNumber = (log-log(440))/log(2)*12+69+0.5 : int; freqn = freq : freqToNoteNumber; //string excitation soundBoard = dryTapAmp*noise with{ dryTapAmpT60 = ffunction(float getValueDryTapAmpT60(float), ,""); noteCutOffTime = freqn : dryTapAmpT60*gain; dryTapAmp = asympT60(0.15,0,noteCutOffTime,gate); }; //loopfilter is a biquad filter whose coefficients are extracted from a C++ file using the foreign function mechanism loopFilter = TF2(b0,b1,b2,a1,a2) with{ //functions are imported from the C++ file loopFilterb0 = ffunction(float getValueLoopFilterb0(float), ,""); loopFilterb1 = ffunction(float getValueLoopFilterb1(float), ,""); loopFilterb2 = ffunction(float getValueLoopFilterb2(float), ,""); loopFiltera1 = ffunction(float getValueLoopFiltera1(float), ,""); loopFiltera2 = ffunction(float getValueLoopFiltera2(float), ,""); //coefficients are extracted from the functions b0 = loopFilterb0(freqn); b1 = loopFilterb1(freqn); b2 = loopFilterb2(freqn); a1 = loopFiltera1(freqn); a2 = loopFiltera2(freqn); }; //delay length as a number of samples delayLength = SR/freq; //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(delayLength); //----------------------- Algorithm implementation ---------------------------- //envelope for string loop resonance time stringLoopGainT = gate*0.9996 + (gate<1)*releaseLoopGain(freqn)*0.9 : smooth(0.999) with{ releaseLoopGain = ffunction(float getValueReleaseLoopGain(float), ,""); }; //one string string = (*(stringLoopGainT)+_ : delay(4096,delayLength) : loopFilter)~NLFM; process = soundBoard : string : stereo : instrReverb; faust-0.9.46/examples/faust-stk/voiceForm.dsp0000644000175000017500000001363711702130733021057 0ustar orlareyorlareydeclare name "Voice Formant"; declare description "Voice Formant Instrument"; declare author "Romain Michon (rmichon@ccrma.stanford.edu)"; declare copyright "Romain Michon"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "This instrument contains an excitation singing wavetable (looping wave with random and periodic vibrato, smoothing on frequency, etc.), excitation noise, and four sweepable complex resonances. Phoneme preset numbers: 0->eee (beet), 1->ihh (bit), 2->ehh (bet), 3->aaa (bat), 4->ahh (father), 5->aww (bought), 6->ohh (bone), 7->uhh (but), 8->uuu (foot), 9->ooo (boot), 10->rrr (bird), 11->lll (lull), 12->mmm (mom), 13->nnn (nun), 14->nng (sang), 15->ngg (bong), 16->fff, 17->sss, 18->thh, 19->shh, 20->xxx, 21->hee (beet), 22->hoo (boot), 23->hah (father), 24->bbb, 25->ddd, 26->jjj, 27->ggg, 28->vvv, 29->zzz, 30->thz, 31->zhh"; import("music.lib"); import("oscillator.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); phoneme = hslider("v:Physical_Parameters/Phoneme [2][tooltip:0->eee, 1->ihh, 2->ehh, 3->aaa, 4->ahh, 5->aww, 6->ohh, 7->uhh, 8->uuu, 9->ooo, 10->rrr, 11->lll, 12->mmm, 13->nnn, 14->nng, 15->ngg, 16->fff, 17->sss, 18->thh, 19->shh, 20->xxx, 21->hee, 22->hoo, 23->hah, 24->bbb, 25->ddd, 26->jjj, 27->ggg, 28->vvv, 29->zzz, 30->thz, 31->zhh]",4,0,31,1); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [3][unit:Hz]",6,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [3][tooltip:A value between 0 and 1]",0.05,0,1,0.01); vibratoBegin = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Begin [3][unit:s][tooltip:Vibrato silence duration before attack]",0.05,0,2,0.01); vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack [3][unit:s][tooltip:Vibrato attack duration]",0.5,0,2,0.01); vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release [3][unit:s][tooltip:Vibrato release duration]",0.1,0,2,0.01); voicedEnvelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Voiced_Attack [4][unit:s][tooltip:Voiced sounds attack duration]",0.01,0,2,0.01); voicedEnvelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Voiced_Release [4][unit:s][tooltip:Voiced sounds release duration]",0.01,0,2,0.01); noiseEnvelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Noised_Attack [4][unit:s][tooltip:Noised sounds attack duration]",0.001,0,2,0.001); noiseEnvelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Noised_Release [4][unit:s][tooltip:Noised sounds release duration]",0.001,0,2,0.001); //==================== SIGNAL PROCESSING ================ //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //exitation filters (declared in instrument.lib) onePoleFilter = onePole(b0,a1) with{ pole = 0.97 - (gain*0.2); b0 = 1 - pole; a1 = -pole; }; oneZeroFilter = oneZero1(b0,b1) with{ zero = -0.9; b0 = 1/(1 - zero); b1 = -zero*b0; }; //implements a formant (resonance) which can be "swept" over time from one frequency setting to another formSwep(frequency,radius,filterGain) = *(gain_) : bandPass(frequency_,radius) with{ //filter's radius, gain and frequency are interpolated radius_ = radius : smooth(0.999); frequency_ = frequency : smooth(0.999); gain_ = filterGain : smooth(0.999); }; //formants parameters are countained in a C++ file phonemeGains = ffunction(float loadPhonemeGains(int,int), ,""); phonemeParameters = ffunction(float loadPhonemeParameters(int,int,int), ,""); //formants frequencies ffreq0 = phonemeParameters(phoneme,0,0); ffreq1 = phonemeParameters(phoneme,1,0); ffreq2 = phonemeParameters(phoneme,2,0); ffreq3 = phonemeParameters(phoneme,3,0); //formants radius frad0 = phonemeParameters(phoneme,0,1); frad1 = phonemeParameters(phoneme,1,1); frad2 = phonemeParameters(phoneme,2,1); frad3 = phonemeParameters(phoneme,3,1); //formants gains fgain0 = phonemeParameters(phoneme,0,2) : pow(10,(_/20)); fgain1 = phonemeParameters(phoneme,1,2) : pow(10,(_/20)); fgain2 = phonemeParameters(phoneme,2,2) : pow(10,(_/20)); fgain3 = phonemeParameters(phoneme,3,2) : pow(10,(_/20)); //gain of the voiced part od the sound voiceGain = phonemeGains(phoneme,0) : smooth(0.999); //gain of the fricative part of the sound noiseGain = phonemeGains(phoneme,1) : smooth(0.999); //formants filters filter0 = formSwep(ffreq0,frad0,fgain0); filter1 = formSwep(ffreq1,frad1,fgain1); filter2 = formSwep(ffreq2,frad2,fgain2); filter3 = formSwep(ffreq3,frad3,fgain3); //----------------------- Algorithm implementation ---------------------------- //envelopes (declared in instrument.lib) and vibrato vibratoEnvelope = envVibrato(vibratoBegin,vibratoAttack,100,vibratoRelease,gate); voicedEnvelope = asr(voicedEnvelopeAttack,100,voicedEnvelopeRelease,gate); noiseEnvelope = asr(noiseEnvelopeAttack,100,noiseEnvelopeRelease,gate); vibrato = osc(vibratoFreq)*vibratoGain*100*vibratoEnvelope; //the voice source is generated by an impulse train //(imptrain defined in oscillator.lib) that is lowpass filtered voiced = imptrain(freq+vibrato) : lowpass3e(3300) : *(voiceGain*voicedEnvelope); //ficative sounds are produced by a noise generator frica = noise*noiseEnvelope*noiseGain; process = voiced : oneZeroFilter : onePoleFilter : +(frica) <: filter0,filter1,filter2,filter3 :> + : stereo : instrReverb; faust-0.9.46/examples/faust-stk/Makefile.qtcompile0000644000175000017500000000343211702130733022042 0ustar orlareyorlarey###-------------------------------------------- ### DEST : directory where to put binaries ### ARCH : faust architecture file system := $(shell uname -s) dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) ### check what type of applications to build (MacOSX Darwin or Linux) ifeq ($(system), Darwin) appls := $(addprefix $(DEST), $(dspsrc:.dsp=.app)) SPEC := -spec macx-g++ else appls := $(addprefix $(DEST), $(dspsrc:.dsp=)) SPEC := endif ### -------------------------------------------- ### allocate a unique directory TDR := $(shell mktemp -d -t FAUST.XXXXXX) TMP = $(TDR)/$(<:.dsp=) ### -------------------------------------------- all : $(appls) ### Darwin $(DEST)%.app : %.dsp install -d $(TMP) faust -a $(ARCH) $(VEC) $< -o $(TMP)/$<.cpp cd $(TMP); qmake -project "$(DEFS)" "INCLUDEPATH+=/usr/local/lib/faust/" "INCLUDEPATH+=$(PWD)" "INCLUDEPATH+=/usr/local/lib/faust/osclib" "LIBS+=$(LIB)" "HEADERS+=/usr/local/lib/faust/gui/faustqt.h" cd $(TMP); qmake $(SPEC) make -C $(TMP) rm -rf $@ mv $(TMP)/$(<:.dsp=.app) $(DEST) rm -rf $(TDR) ### Linux hdir1 := $(wildcard /usr/local/lib/faust/gui/faustqt.h) hdir2 := $(wildcard /usr/share/faust/faustqt.h) hdir3 := $(wildcard /usr/local/lib/faust/faustqt.h) hdir23 := $(if $(hdir2),$(dir $(hdir2)),$(dir $(hdir3))) hdir := $(if $(hdir1),$(dir $(hdir1)),$(hdir23)) qm4 := $(shell which qmake-qt4) qm := $(if $(qm4),$(qm4),qmake) $(DEST)% : %.dsp rm -rf $(TMP) install -d $(TMP) faust -a $(ARCH) $(VEC) $< -o $(TMP)/$<.cpp cd $(TMP); $(qm) -project "$(DEFS)" "INCLUDEPATH+=/usr/local/lib/faust/" "INCLUDEPATH+=$(PWD)" "INCLUDEPATH+=/usr/local/lib/faust/osclib" "LIBS+=$(LIB)" "HEADERS+=$(hdir)faustqt.h" cd $(TMP); $(qm) $(SPEC) make -C $(TMP) mv $(TMP)/$(<:.dsp=) $@ rm -rf $(TMP) clean: rm -rf $(DEST) faust-0.9.46/examples/faust-stk/flutestk.dsp0000644000175000017500000001376111702130733020765 0ustar orlareyorlareydeclare name "FluteSTK"; declare description "Nonlinear WaveGuide Flute from STK"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "A simple flute physical model, as discussed by Karjalainen, Smith, Waryznyk, etc. The jet model uses a polynomial, a la Cook."; declare reference "https://ccrma.stanford.edu/~jos/pasp/Flutes_Recorders_Pipe_Organs.html"; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); embouchureAjust = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Embouchure_Ajust [2][tooltip:A value between 0 and 1]",0.5,0,1,0.01); noiseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Noise_Gain [2][tooltip:A value between 0 and 1]",0.03,0,1,0.01); pressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Pressure [2][tooltip:Breath pressure (value between 0 and 1)]",1,0,1,0.01); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [4][unit:Hz]",6,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [4][tooltip:A value between 0 and 1]",0.05,0,1,0.01); vibratoBegin = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Begin [4][unit:s][tooltip:Vibrato silence duration before attack]",0.05,0,2,0.01); vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack [4][unit:s][tooltip:Vibrato attack duration]",0.5,0,2,0.01); vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release [4][unit:s][tooltip:Vibrato release duration]",0.1,0,2,0.01); envelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Attack [5][unit:s][tooltip:Envelope attack duration]",0.03,0,2,0.01); envelopeDecay = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Decay [5][unit:s][tooltip:Envelope decay duration]",0.01,0,2,0.01); envelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Release [5][unit:s][tooltip:Envelope release duration]",0.3,0,2,0.01); //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //attack - sustain - release envelope for nonlinearity (declared in instrument.lib) envelopeMod = asr(nonLinAttack,100,envelopeRelease,gate); //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),envelopeMod,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- jetReflexion = 0.5; //jetRatio = 0.08 + (0.48*embouchureAjust); //original stk function jetRatio = 1+(0.5-embouchureAjust); //corrected function endReflexion = 0.5; //Delay lines lengths in number of samples //jetDelayLength = (SR/freq-2)*jetRatio; //original stk function for jet delay length jetDelayLength = (SR/(freq*2)-2)*jetRatio; //corrected function for jet delay length boreDelayLength = SR/(freq*2)-2; //original function for bore delay length //boreDelayLength = SR/(freq)-2; //corrected function for bore delay length filterPole = 0.7 - (0.1*22050/SR); //One Pole Filter (declared in instrument.lib) onePoleFilter = _*gain : onePole(b0,a1) with{ gain = -1; pole = 0.7 - (0.1*22050/SR); b0 = 1 - pole; a1 = -pole; }; //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //----------------------- Algorithm implementation ---------------------------- //the vibrato amplitude is controled by an envelope generator (declared in instrument.lib) vibrato = vibratoGain*envVibrato(vibratoBegin,vibratoAttack,100,vibratoRelease,gate)*osc(vibratoFreq); //Breath pressure is controlled by an Attack / Decay / Sustain / Release envelope envelopeBreath = pressure*adsr(pressure*envelopeAttack,envelopeDecay,80,envelopeRelease,gate); breathPressure = envelopeBreath + envelopeBreath*(noiseGain*noise + vibrato) + 10.0^(-15.0); //delay lines jetDelay = fdelay(4096,jetDelayLength); boreDelay = fdelay(4096,boreDelayLength); //reflexion filter is a one pole and a dcblocker reflexionFilters = onePoleFilter : dcblocker; process = (reflexionFilters <: //Differential Pressure ((breathPressure - _*jetReflexion) : jetDelay : jetTable) + (_*endReflexion)) ~ (boreDelay : NLFM) : //output scaling and stereo signal *(0.3*gain) : stereo : instrReverb; faust-0.9.46/examples/faust-stk/Makefile.sccompile0000644000175000017500000000224411702130733022023 0ustar orlareyorlarey# Makefile to produce supercollider plugins with Faust: # 'foo.dsp' -> 'foo.so|scx' and 'foo.sc' # These two files (scsynth plugin and sclang extension), can be copied to # $HOME/share/SuperCollider/Extensions (Linux) or # $HOME/Library/Application Support/SuperCollider/Extensions (Mac OS X) # # The shell script /tools/faust2appls/faust2supercollider # needs to be installed somewhere in the user's search path. system := $(shell uname -s) ifeq ($(system), Darwin) EXT := scx else EXT := so endif dspsrc := $(wildcard *.dsp) libsrc := $(wildcard *.lib) incsrc := $(wildcard *.h) allsrc := $(dspsrc) $(libsrc) $(incsrc) ifeq ($(DEST),) DEST := ./supercolliderdir endif F2SC = faust2supercollider -sd ### allocate a unique directory for staging TMP := $(shell mktemp -d -t F2SC.XXXXXX) ### -------------------------------------------- # NOTE: Some source files need others, so best to copy all together: all : $(allsrc) $(DEST) $(TMP) cp -i $(allsrc) $(TMP) || echo "Cannot copy temp source to $(TMP)" (cd $(TMP); for i in $(dspsrc); do $(F2SC) $$i; done) mv $(TMP)/*.sc $(TMP)/*.$(EXT) $(DEST) rm -rf $(TMP) $(DEST): mkdir -p $(DEST) $(TMP): mkdir -p $(TMP) faust-0.9.46/examples/faust-stk/Makefile.qcompile0000644000175000017500000000057711702130733021665 0ustar orlareyorlareyDEST := qdir/ dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) modules := $(addprefix $(DEST), $(dspsrc:%.dsp=%.so)) ###allcpp: $(cppsrc) allmodules: $(modules) $(DEST)%.so: $(DEST)%.cpp $(CXX) -shared -O3 $(CXXFLAGS) -Dmydsp=$(patsubst %.so,%,$(notdir $@)) $< -o $@ $(DEST)%.cpp: %.dsp faust $(VEC) -a q.cpp $< -o $@ clean: rm -rf $(DEST) faust-0.9.46/examples/faust-stk/phonemes.h0000644000175000017500000001272411702130733020401 0ustar orlareyorlarey//Phonemes datas for voiceForm.dsp //©Romain Michon (rmichon@ccrma.stanford.edu), 2011 //licence: STK-4.3 float loadPhonemeGains(int index0, int index1) { static float phonemeGains[32][2] = {{1.0, 0.0}, // eee {1.0, 0.0}, // ihh {1.0, 0.0}, // ehh {1.0, 0.0}, // aaa {1.0, 0.0}, // ahh {1.0, 0.0}, // aww {1.0, 0.0}, // ohh {1.0, 0.0}, // uhh {1.0, 0.0}, // uuu {1.0, 0.0}, // ooo {1.0, 0.0}, // rrr {1.0, 0.0}, // lll {1.0, 0.0}, // mmm {1.0, 0.0}, // nnn {1.0, 0.0}, // nng {1.0, 0.0}, // ngg {0.0, 0.7}, // fff {0.0, 0.7}, // sss {0.0, 0.7}, // thh {0.0, 0.7}, // shh {0.0, 0.7}, // xxx {0.0, 0.1}, // hee {0.0, 0.1}, // hoo {0.0, 0.1}, // hah {1.0, 0.1}, // bbb {1.0, 0.1}, // ddd {1.0, 0.1}, // jjj {1.0, 0.1}, // ggg {1.0, 1.0}, // vvv {1.0, 1.0}, // zzz {1.0, 1.0}, // thz {1.0, 1.0} // zhh }; return phonemeGains[index0][index1]; } float loadPhonemeParameters(int index0, int index1, int index2){ static float phonemeParameters[32][4][3] = {{ { 273, 0.996, 10}, // eee (beet) {2086, 0.945, -16}, {2754, 0.979, -12}, {3270, 0.440, -17}}, { { 385, 0.987, 10}, // ihh (bit) {2056, 0.930, -20}, {2587, 0.890, -20}, {3150, 0.400, -20}}, { { 515, 0.977, 10}, // ehh (bet) {1805, 0.810, -10}, {2526, 0.875, -10}, {3103, 0.400, -13}}, { { 773, 0.950, 10}, // aaa (bat) {1676, 0.830, -6}, {2380, 0.880, -20}, {3027, 0.600, -20}}, { { 770, 0.950, 0}, // ahh (father) {1153, 0.970, -9}, {2450, 0.780, -29}, {3140, 0.800, -39}}, { { 637, 0.910, 0}, // aww (bought) { 895, 0.900, -3}, {2556, 0.950, -17}, {3070, 0.910, -20}}, { { 637, 0.910, 0}, // ohh (bone) NOTE:: same as aww (bought) { 895, 0.900, -3}, {2556, 0.950, -17}, {3070, 0.910, -20}}, { { 561, 0.965, 0}, // uhh (but) {1084, 0.930, -10}, {2541, 0.930, -15}, {3345, 0.900, -20}}, { { 515, 0.976, 0}, // uuu (foot) {1031, 0.950, -3}, {2572, 0.960, -11}, {3345, 0.960, -20}}, { { 349, 0.986, -10}, // ooo (boot) { 918, 0.940, -20}, {2350, 0.960, -27}, {2731, 0.950, -33}}, { { 394, 0.959, -10}, // rrr (bird) {1297, 0.780, -16}, {1441, 0.980, -16}, {2754, 0.950, -40}}, { { 462, 0.990, +5}, // lll (lull) {1200, 0.640, -10}, {2500, 0.200, -20}, {3000, 0.100, -30}}, { { 265, 0.987, -10}, // mmm (mom) {1176, 0.940, -22}, {2352, 0.970, -20}, {3277, 0.940, -31}}, { { 204, 0.980, -10}, // nnn (nun) {1570, 0.940, -15}, {2481, 0.980, -12}, {3133, 0.800, -30}}, { { 204, 0.980, -10}, // nng (sang) NOTE:: same as nnn {1570, 0.940, -15}, {2481, 0.980, -12}, {3133, 0.800, -30}}, { { 204, 0.980, -10}, // ngg (bong) NOTE:: same as nnn {1570, 0.940, -15}, {2481, 0.980, -12}, {3133, 0.800, -30}}, { {1000, 0.300, 0}, // fff {2800, 0.860, -10}, {7425, 0.740, 0}, {8140, 0.860, 0}}, { {0, 0.000, 0}, // sss {2000, 0.700, -15}, {5257, 0.750, -3}, {7171, 0.840, 0}}, { { 100, 0.900, 0}, // thh {4000, 0.500, -20}, {5500, 0.500, -15}, {8000, 0.400, -20}}, { {2693, 0.940, 0}, // shh {4000, 0.720, -10}, {6123, 0.870, -10}, {7755, 0.750, -18}}, { {1000, 0.300, -10}, // xxx NOTE:: Not Really Done Yet {2800, 0.860, -10}, {7425, 0.740, 0}, {8140, 0.860, 0}}, { { 273, 0.996, -40}, // hee (beet) (noisy eee) {2086, 0.945, -16}, {2754, 0.979, -12}, {3270, 0.440, -17}}, { { 349, 0.986, -40}, // hoo (boot) (noisy ooo) { 918, 0.940, -10}, {2350, 0.960, -17}, {2731, 0.950, -23}}, { { 770, 0.950, -40}, // hah (father) (noisy ahh) {1153, 0.970, -3}, {2450, 0.780, -20}, {3140, 0.800, -32}}, { {2000, 0.700, -20}, // bbb NOTE:: Not Really Done Yet {5257, 0.750, -15}, {7171, 0.840, -3}, {9000, 0.900, 0}}, { { 100, 0.900, 0}, // ddd NOTE:: Not Really Done Yet {4000, 0.500, -20}, {5500, 0.500, -15}, {8000, 0.400, -20}}, { {2693, 0.940, 0}, // jjj NOTE:: Not Really Done Yet {4000, 0.720, -10}, {6123, 0.870, -10}, {7755, 0.750, -18}}, { {2693, 0.940, 0}, // ggg NOTE:: Not Really Done Yet {4000, 0.720, -10}, {6123, 0.870, -10}, {7755, 0.750, -18}}, { {2000, 0.700, -20}, // vvv NOTE:: Not Really Done Yet {5257, 0.750, -15}, {7171, 0.840, -3}, {9000, 0.900, 0}}, { { 100, 0.900, 0}, // zzz NOTE:: Not Really Done Yet {4000, 0.500, -20}, {5500, 0.500, -15}, {8000, 0.400, -20}}, { {2693, 0.940, 0}, // thz NOTE:: Not Really Done Yet {4000, 0.720, -10}, {6123, 0.870, -10}, {7755, 0.750, -18}}, { {2693, 0.940, 0}, // zhh NOTE:: Not Really Done Yet {4000, 0.720, -10}, {6123, 0.870, -10}, {7755, 0.750, -18}} }; return phonemeParameters[index0][index1][index2]; }faust-0.9.46/examples/faust-stk/piano.dsp0000644000175000017500000002317011702130733020225 0ustar orlareyorlareydeclare name "Commuted Piano"; declare description "WaveGuide Commuted Piano"; declare author "Romain Michon (rmichon@ccrma.stanford.edu)"; declare copyright "Romain Michon"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "A commuted WaveGuide piano."; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); brightnessFactor = hslider("v:Physical_Parameters/Brightness_Factor [2][tooltip:A value between 0 and 1]",0,0,1,0.01); detuningFactor = hslider("v:Physical_Parameters/Detuning_Factor [2][tooltip:A value between 0 and 1]",0.1,0,1,0.01)*10; stiffnessFactor = hslider("v:Physical_Parameters/Stiffness_Factor [2][tooltip:A value between 0 and 1]",0.28,0,1,0.01)*3.7; hammerHardness = hslider("v:Physical_Parameters/Hammer_Hardness [2][tooltip:A value between 0 and 1]",0.1,0,1,0.01)*0.1; //==================== COMMUTED PIANO PARAMETERS ================ //variables to set keybord splitting zone DCB2_TURNOFF_KEYNUM = 92; FIRST_HIGH_NOTE = 88; PEDAL_ENVELOPE_T60 = 7; //convert an amplitude in db dbinv(x) = pow(10,0.05*x); //convert a frequency in a midi note number freqToNoteNumber = (log-log(440))/log(2)*12+69+0.5 : int; freqn = freq : freqToNoteNumber; //a counter that restart a every note-on cntSample = *(gate)+1~_ : -(1); //==================== PIANO SOUND BOARD ================ //exponential envelope with 3 phases for the pedal excitation asympT60pedal(value,T60) = (*(factor) + constant)~_ with{ attDur = hammerHardness*float(SR); target = value*((cntSample < attDur) & (gate > 0)); factorAtt = exp (-1/(attDur)); factorG = exp(-1/(2*float(SR))); factorT60 = exp(-7/(T60*float(SR))); factor = factorAtt*gate*(cntSample < attDur) + (cntSample >= attDur)*gate*factorG + ((gate-1)*-1)*factorT60; constant = (1 - factor)*target; }; //the sound of the piano sound board is generated by noise generator whose output gain is shaped by //an exponential envelope soundBoard = dryTapAmp*noise + pedalEnv*noise : *(0.5) with{ //the values of the envelope cut-off time are stored in an external C++ function dryTapAmpT60 = ffunction(float getValueDryTapAmpT60(float), ,""); sustainPedalLevel = ffunction(float getValueSustainPedalLevel(float), ,""); pedalEnvCutOffTime = 1.4; noteCutOffTime = freqn : dryTapAmpT60*gain; pedalEnvValue = freqn : sustainPedalLevel*0.2; noteEnvValue = 0.15; dryTapAmp = asympT60(noteEnvValue,0,noteCutOffTime,gate); pedalEnv = asympT60pedal(pedalEnvValue,pedalEnvCutOffTime); }; //==================== HAMMER MODELING ================ //To model the exitation hammer, we filter the sound from the soundboard with a serie of 4 one pole filters //connected in serie //onePole is declared in instrument.lib calcHammer = onePole((1-hammerPole)*hammerGain,-hammerPole) with{ //filter gains and coefficients are stored in external C++ files loudPole = ffunction(float getValueLoudPole(float), ,""); softPole = ffunction(float getValuePoleValue(float), ,""); loudGain = ffunction(float getValueLoudGain(float), ,""); softGain = ffunction(float getValueSoftGain(float), ,""); loudPoleValue = loudPole(freqn) + (brightnessFactor*-0.25) + 0.02; softPoleValue = softPole(freqn); normalizedVelocityValue = 1; loudGainValue = loudGain(freqn); softGainValue = softGain(freqn); overallGain = 1; hammerPole = softPoleValue + (loudPoleValue - softPoleValue)*normalizedVelocityValue; hammerGain = overallGain*(softGainValue + (loudGainValue - softGainValue)*normalizedVelocityValue); }; hammer = seq(i,4,calcHammer); //==================== DC BLOCKERS ================ //the values for the dcblockers a1 are stored in an external C++ file DCBa1 = ffunction(float getValueDCBa1(float), ,""); dCBa1Value = freqn : DCBa1; dCBb0Value = 1 - dCBa1Value; dcBlock1 = poleZero((dCBb0Value*0.5),(dCBb0Value*-0.5),dCBa1Value); dcBlock2a = oneZero1(0.5,-0.5); dcBlock2b = onePole(dCBb0Value,dCBa1Value); //==================== HIGH TUNING CALCULATION ================ //high tones are not generated with the waveguide technique but with a serie of biquad filters r1_1 = ffunction(float getValuer1_1db(float), ,""); r1_2 = ffunction(float getValuer1_2db(float), ,""); r2 = ffunction(float getValuer2db(float), ,""); r3 = ffunction(float getValuer3db(float), ,""); e = ffunction(float getValueSecondStageAmpRatio(float), ,""); second_partial_factor = ffunction(float getValueSecondPartialFactor(float), ,""); third_partial_factor = ffunction(float getValueThirdPartialFactor(float), ,""); bq4_gEarBalled = ffunction(float getValueBq4_gEarBalled(float), ,""); r1_1Value = r1_1(freqn)/SR : dbinv; r1_2Value = r1_2(freqn)/SR : dbinv; r2Value = r2(freqn)/SR : dbinv; r3Value = r3(freqn)/SR : dbinv; eValue = e(freqn) : dbinv; second_partial_factorValue = second_partial_factor(freqn); third_partial_factorValue = third_partial_factor(freqn); //set biquad gains and coeffs gainHighBq(0) = bq4_gEarBalled(freqn)/0.5; gainHighBq(1) = bq4_gEarBalled(freqn)/0.5; gainHighBq(2) = 1; gainHighBq(3) = 1; b0HighBq(0) = 1; b0HighBq(1) = 1; b0HighBq(2) = 1; b0HighBq(3) = 1; b1HighBq(0) = 0; b1HighBq(1) = 0; b1HighBq(2) = -2*(eValue*r1_1Value+(1-eValue)*r1_2Value)*cos(2*PI*freq/SR); b1HighBq(3) = 0; b2HighBq(0) = 0; b2HighBq(1) = 0; b2HighBq(2) = eValue*r1_1Value*r1_1Value+(1-eValue)*r1_2Value*r1_2Value; b2HighBq(3) = 0; a1HighBq(0) = -2*r3Value*cos(2*PI*freq*third_partial_factorValue/SR); a1HighBq(1) = -2*r2Value*cos(2*PI*freq*second_partial_factorValue/SR); a1HighBq(2) = -2*r1_1Value*cos(2*PI*freq/SR); a1HighBq(3) = -2*r1_2Value*cos(2*PI*freq/SR); a2HighBq(0) = r3Value*r3Value; a2HighBq(1) = r2Value*r2Value; a2HighBq(2) = r1_1Value*r1_1Value; a2HighBq(3) = r1_2Value*r1_2Value; highBqs = seq(i,4,*(gainHighBq(i)) : TF2(b0HighBq(i),b1HighBq(i),b2HighBq(i),a1HighBq(i),a2HighBq(i))); hiPass = oneZero1(b0,b1) with{ b0 = -0.5; b1 = -0.5; }; //==================== STRIKE POSITION COMB FILTER EQ ================ eq = _*filterGain : TF2(b0,b1,b2,a1,a2) with{ strikePosition = ffunction(float getValueStrikePosition(float), ,""); bandwidthFactors = ffunction(float getValueEQBandWidthFactor(float), ,""); eq_gain = ffunction(float getValueEQGain(float), ,""); eq_tuning = freq/strikePosition(freqn); eq_bandwidth = bandwidthFactors(freqn)*freq; filterGain = eq_gain(freqn); a2 = (eq_bandwidth / SR) * (eq_bandwidth / SR); a1 = -2*(eq_bandwidth / SR)*cos(2*PI*eq_tuning/SR); b0 = 0.5 - 0.5 * a2; b1 = 0; b2 = -b0; }; //==================== PIANO COUPLED STRINGS ================ //values for the couple strings are stored in externals C++ functions singleStringDecRate = ffunction(float getValueSingleStringDecayRate(float), ,""); singleStringZero = ffunction(float getValueSingleStringZero(float), ,""); singleStringPole = ffunction(float getValueSingleStringPole(float), ,""); stiffnessCoefficient = ffunction(float getValueStiffnessCoefficient(float), ,""); //coupling filter parameters g = pow(10,((singleStringDecRate(freqn)/freq)/20)); //attenuation per period b = singleStringZero(freqn); a = singleStringPole(freqn); tempd = 3*(1-b)-g*(1-a); b0Coupling = 2*(g*(1-a)-(1-b))/tempd; b1Coupling = 2*(a*(1-b)-g*(1-a)*b)/tempd; a1Coupling = (g*(1-a)*b - 3*a*(1-b))/tempd; //string stiffness stiffness = stiffnessFactor*stiffnessCoefficient(freqn); stiffnessAP = poleZero(b0s,b1s,a1s) with{ b0s = stiffness; b1s = 1; a1s = stiffness; }; delayG(frequency,stiffnessCoefficient) = fdelay(4096,delayLength) with{ allPassPhase(a1,WT) = atan2((a1*a1-1.0)*sin(WT),(2.0*a1+(a1*a1+1.0)*cos(WT))); poleZeroPhase(b0,b1,a1,WT) = atan2(-b1*sin(WT)*(1 + a1*cos(WT)) + a1*sin(WT)*(b0 + b1*cos(WT)), (b0 + b1*cos(WT))*(1 + a1*cos(WT)) + b1*sin(WT)*a1*sin(WT)); wT = frequency*2*PI/SR; delayLength = (2*PI + 3*allPassPhase(stiffnessCoefficient, wT) + poleZeroPhase((1+2*b0Coupling), a1Coupling + 2*b1Coupling, a1Coupling, wT)) / wT; }; coupledStrings = (parallelStrings <: (_,(_+_ <: _,_),_ : _,_,(_ : couplingFilter),_ : adder))~(_,_) : !,!,_ with{ releaseLoopGain = ffunction(float getValueReleaseLoopGain(float), ,""); hz = ffunction(float getValueDetuningHz(float), ,""); coupledStringLoopGain = gate*0.9996 + ((gate-1)*-1)*releaseLoopGain(freqn)*0.9 : smooth(0.999); couplingFilter = poleZero(b0Coupling,b1Coupling,a1Coupling); hzValue = hz(freqn); freq1 = freq + 0.5*hzValue*detuningFactor; freq2 = freq - 0.5*hzValue*detuningFactor; delay1 = delayG(freq1,stiffness); delay2 = delayG(freq2,stiffness); parallelStrings(x,y) = _ <: (+(x)*coupledStringLoopGain : seq(i,3,stiffnessAP) : delay1), (_+y*coupledStringLoopGain : seq(i,3,stiffnessAP) : delay2); adder(w,x,y,z) = (y <: +(w),+(z)),x ; }; //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //==================== PROCESSING ================ conditionLowNote = freqn < FIRST_HIGH_NOTE; conditionHighNote = freqn >= FIRST_HIGH_NOTE; process = soundBoard <: (*(conditionLowNote)*6 : hammer : dcBlock1 : coupledStrings <: +(eq)), (*(conditionHighNote) : hiPass : dcBlock1 : hammer : dcBlock2a : highBqs : dcBlock2b) :> + : *(12) : stereo : instrReverb; faust-0.9.46/examples/faust-stk/Makefile0000644000175000017500000003336011702130733020051 0ustar orlareyorlarey# Directory containing Faust .lib and .cpp architecture files: ck1 := /opt/local/lib/faust/music.lib ck2 := /usr/local/lib/faust/music.lib ck3 := $(FAUST_LIB_PATH)/faust/music.lib LIB := $(if $(wildcard $(ck1)),/opt/local/lib,"") LIB := $(if $(wildcard $(ck2)),/usr/local/lib,$(LIB)) LIB := $(if $(wildcard $(ck3)),$(FAUST_LIB_PATH),$(LIB)) ifeq ($(OSC),1) OSCCTRL := "-DOSCCTRL -I$(LIB)/faust/osclib" QTDEFS := "DEFINES += OSCCTRL" OSCLIB := -L$(LIB)/faust/osclib -lOSCFaust -loscpack endif MYICCFLAGS := '-O3 -xT -ftz -fno-alias -fp-model fast=2 $(OSCCTRL)' ifeq ($(system), Darwin) MYGCCFLAGS := '-O3 -march=native -mfpmath=sse -msse -msse2 -msse3 -ffast-math $(OSCCTRL)' else MYGCCFLAGS := '-O3 -mfpmath=sse -msse -msse2 -msse3 -ffast-math $(OSCCTRL)' endif VSIZE := 256 SC_SOURCE_DIR = ../../supercollider ifdef POLY PDPOLY=$(POLY) else PDPOLY=2 endif ifdef RADIO PDRADIO=-r $(RADIO) endif MYF2PDFLAGS='-s -n $(PDPOLY) $(PDRADIO)' all puredata: install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-L$(LIB)' F2PDFLAGS=$(MYF2PDFLAGS) CXXFLAGS=$(MYGCCFLAGS) -f Makefile.pdcompile pdpoly2 : install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-L$(LIB)' F2PDFLAGS='-n 2 -s' -f Makefile.pdcompile pdpoly4 : install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-L$(LIB)' F2PDFLAGS='-n 4 -s' -f Makefile.pdcompile pdpoly6 : install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-L$(LIB)' F2PDFLAGS='-n 6 -s' -f Makefile.pdcompile pdpoly8 : install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-L$(LIB)' F2PDFLAGS='-n 8 -s' -f Makefile.pdcompile test: ijackgtk ijackvec ijackomp gjackgtk gjackvec gjackomp ijackgtk : install -d ijackgtkdir $(MAKE) DEST='ijackgtkdir/' ARCH='jack-gtk.cpp' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ijackvec : install -d ijackvecdir $(MAKE) DEST='ijackvecdir/' ARCH='jack-gtk.cpp' VEC='-vec -lv 1 -vs $(VSIZE)' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ijackomp : install -d ijackompdir $(MAKE) DEST='ijackompdir/' ARCH='jack-gtk.cpp' VEC='-vs $(VSIZE) -omp' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS='-openmp '$(MYICCFLAGS) -f Makefile.compile ijacksch : install -d ijackschdir $(MAKE) DEST='ijackschdir/' ARCH='jack-gtk.cpp' VEC='-sch -vs $(VSIZE)' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile gjackgtk : install -d gjackgtkdir $(MAKE) DEST='gjackgtkdir/' ARCH='jack-gtk.cpp' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gjackvec : install -d gjackvecdir $(MAKE) DEST='gjackvecdir/' ARCH='jack-gtk.cpp' VEC='-vec -lv 1 -vs $(VSIZE)' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gjackomp : install -d gjackompdir $(MAKE) DEST='gjackompdir/' ARCH='jack-gtk.cpp' VEC='-vec -vs $(VSIZE) -omp' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='g++' CXXFLAGS='-fopenmp '$(MYGCCFLAGS) -f Makefile.compile svg: $(MAKE) -f Makefile.svgcompile alsagtk : install -d alsagtkdir $(MAKE) DEST='alsagtkdir/' ARCH='alsa-gtk.cpp' LIB='-I$(LIB)/faust/ -lpthread -lasound `pkg-config --cflags --libs gtk+-2.0` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile ialsagtk : install -d ialsagtkdir $(MAKE) DEST='ialsagtkdir/' ARCH='alsa-gtk.cpp' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsavec : install -d ialsavecdir $(MAKE) DEST='ialsavecdir/' ARCH='alsa-gtk.cpp' VEC='-vec -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsaomp : install -d ialsaompdir $(MAKE) DEST='ialsaompdir/' ARCH='alsa-gtk.cpp' VEC='-omp -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS='-openmp '$(MYICCFLAGS) -f Makefile.compile ialsasch : install -d ialsaschdir $(MAKE) DEST='ialsaschdir/' ARCH='alsa-gtk.cpp' VEC='-sch -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile jackgtk : install -d jackgtkdir $(MAKE) DEST='jackgtkdir/' ARCH='jack-gtk.cpp' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile msjackgtk : install -d msjackgtkdir $(MAKE) DEST='msjackgtkdir/' ARCH='ms-jack-gtk.cpp' LIB='-lMidiShare `pkg-config --cflags --libs jack gtk+-2.0`' -f Makefile.compile jackqt : install -d jackqtdir $(MAKE) DEST='jackqtdir/' ARCH='jack-qt.cpp' LIB='-ljack $(OSCLIB)' DEFS=$(QTDEFS) CXXFLAGS=$(MYGCCFLAGS) -f Makefile.qtcompile jackqtsch : install -d jackqtschdir $(MAKE) DEST='jackqtschdir/' ARCH='jack-qt.cpp' VEC='-sch -vs $(VSIZE)' LIB='-ljack' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.qtcompile netjackqt : install -d netjackqtdir $(MAKE) DEST='netjackqtdir/' ARCH='netjack-qt.cpp' LIB='-ljacknet $(OSCLIB)' DEFS=$(QTDEFS) CXXFLAGS=$(MYGCCFLAGS) -f Makefile.qtcompile jackwt : install -d jackwtdir $(MAKE) DEST='jackwtdir/' ARCH='jack-wt.cpp' LIB='-I$(LIB)/faust/ -ljack -lwt -lwthttp -lboost_signals-mt $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.compile paqt : install -d paqtdir $(MAKE) DEST='paqtdir/' ARCH='pa-qt.cpp' LIB='-lportaudio $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.qtcompile caqt : install -d caqtdir $(MAKE) DEST='caqtdir/' ARCH='ca-qt.cpp' LIB='-framework CoreAudio -framework AudioUnit -framework CoreServices $(OSCLIB)' CXXFLAGS=$(MYGCCFLAGS) DEFS=$(QTDEFS) -f Makefile.qtcompile oscioqt : OSCLIB = -L$(LIB)/faust/osclib -lOSCFaust -loscpack oscioqt : install -d oscioqtdir $(MAKE) DEST='oscioqtdir/' ARCH='oscio-qt.cpp' LIB='-ljack $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.qtcompile osciogtk : OSCLIB = -L$(LIB)/faust/osclib -lOSCFaust -loscpack osciogtk : install -d osciogtkdir $(MAKE) DEST='osciogtkdir/' ARCH='oscio-gtk.cpp' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` $(OSCLIB)' CXXFLAGS=-I$(LIB)/faust/osclib -f Makefile.compile alsaqt : install -d alsaqtdir $(MAKE) DEST='alsaqtdir/' ARCH='alsa-qt.cpp' LIB='-lpthread -lasound $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.qtcompile ladspa : install -d ladspadir $(MAKE) DEST='ladspadir/' ARCH='ladspa.cpp' LIB='-I$(LIB)/faust/' EXT='.so' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.ladspacompile ladspasch : install -d ladspaschdir $(MAKE) DEST='ladspaschdir/' ARCH='ladspa.cpp' VEC='-sch -vs $(VSIZE)' LIB='-I$(LIB)/faust/' EXT='.so' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.ladspacompile dssi : install -d dssidir $(MAKE) DEST='dssidir/' ARCH='dssi.cpp' LIB='-I$(LIB)/faust/' EXT='.so' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.dssicompile csound : install -d csounddir $(MAKE) DEST='csounddir/' -f Makefile.csound csounddouble : install -d csounddoubledir $(MAKE) DEST='csounddoubledir/' VEC='-double' -f Makefile.csound jackwx : install -d jackwxdir $(MAKE) DEST='jackwxdir/' ARCH='jack-wx.cpp' LIB='`pkg-config jack --cflags --libs` `wx-config --cflags --libs`' -f Makefile.compile ossgtk : install -d ossgtkdir $(MAKE) DEST='ossgtkdir/' ARCH='oss-gtk.cpp' LIB='-lpthread `pkg-config gtk+-2.0 --cflags --libs`' -f Makefile.compile osswx : install -d osswxdir $(MAKE) DEST='osswxdir/' ARCH='oss-wx.cpp' LIB='-lpthread `wx-config --cflags --libs`' -f Makefile.compile pagtk : install -d pagtkdir $(MAKE) DEST='pagtkdir/' ARCH='pa-gtk.cpp' LIB='-I$(LIB)/faust/ -lpthread -lportaudio `pkg-config gtk+-2.0 --cflags --libs` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile pawx : install -d pawxdir $(MAKE) DEST='pawxdir/' ARCH='pa-wx.cpp' LIB='-lpthread -lportaudio `wx-config --cflags --libs`' -f Makefile.compile module : install -d moduledir $(MAKE) DEST='moduledir/' ARCH='module.cpp' LIB='-fPIC -shared' EXT='.so' -f Makefile.compile bundle : install -d bundledir $(MAKE) DEST='bundledir/' ARCH='module.cpp' LIB='-I$(LIB)/faust/ -fPIC -bundle' EXT='.so' -f Makefile.compile maxmsp msp : install -d mspdir $(MAKE) DEST='mspdir/' ARCH='max-msp.cpp' LIB='' -f Makefile.mspcompile w32vstdir : mkdir w32vstdir w32vst : w32vstdir $(MAKE) DEST='w32vstdir/' ARCH='vst2p4.cpp' LIB='' -f Makefile.w32vstcompile vst : install -d vstdir $(MAKE) DEST='vstdir/' ARCH='vst.cpp' LIB='' -f Makefile.vstcompile iphone : install -d iphonedir $(MAKE) DEST='iphonedir/' ARCH='iphone-cocoa.cpp' LIB='' -f Makefile.iphonecompile iphonenet : install -d iphonenetdir $(MAKE) DEST='iphonenetdir/' ARCH='iphone-cocoa-net.cpp' LIB='' -f Makefile.iphonenetcompile bench : install -d benchdir $(MAKE) DEST='benchdir/' ARCH='bench.cpp' LIB='' -f Makefile.compile ibench : install -d ibenchdir $(MAKE) DEST='ibenchdir/' ARCH='parbench.cpp' LIB='' CXX='icc' CXXFLAGS='-O3 -xT -ftz -fno-alias -fp-model fast=2' -f Makefile.compile ivecbench : install -d ivecbenchdir $(MAKE) DEST='ivecbenchdir/' ARCH='parbench.cpp' VEC='-vec -vs $(VSIZE)' LIB='' CXX='icc' CXXFLAGS='-O3 -xT -ftz -fno-alias -fp-model fast=2' -f Makefile.compile ivecjack : install -d ivecjackdir $(MAKE) DEST='ivecjackdir/' ARCH='jack-gtk.cpp' VEC='-vec -vs $(VSIZE)' LIB='`pkg-config --cflags --libs jack gtk+-2.0`' CXX='icc' CXXFLAGS='-O3 -xT -ftz -fno-alias -fp-model fast=2' -f Makefile.compile iparbench : install -d iparbenchdir $(MAKE) DEST='iparbenchdir/' ARCH='parbench.cpp' VEC='-vec -vs $(VSIZE) -omp' LIB='' CXX='icc' CXXFLAGS='-O3 -openmp -xT -ftz -fno-alias -fp-model fast=2' -f Makefile.compile gparbench : install -d gparbenchdir $(MAKE) DEST='gparbenchdir/' ARCH='parbench.cpp' VEC='-vec -vs $(VSIZE) -omp' LIB='' CXX='g++' CXXFLAGS='-O3 -march=native -mfpmath=sse -msse -msse2 -msse3 -ffast-math' -f Makefile.compile sndfile : install -d sndfiledir $(MAKE) DEST='sndfiledir/' ARCH='sndfile.cpp' LIB='-I$(LIB)/faust/ -lsndfile' -f Makefile.compile CXXFLAGS=$(OSCCTRL) plot : install -d plotdir $(MAKE) DEST='plotdir/' ARCH='plot.cpp' LIB='' -f Makefile.compile matlabplot : install -d matlabplotdir $(MAKE) DEST='matlabplotdir/' ARCH='matlabplot.cpp' LIB='' -f Makefile.compile q : install -d qdir $(MAKE) DEST='qdir/' ARCH='q.cpp' LIB='' -f Makefile.qcompile supercollider sc: install -d supercolliderdir $(MAKE) DEST='supercolliderdir/' -f Makefile.sccompile jackconsole : install -d jackconsoledir $(MAKE) DEST='jackconsoledir/' ARCH='jack-console.cpp' VEC='-vec -vs $(VSIZE)' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack ` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile mathdoc : $(MAKE) -f Makefile.mathdoc help: @echo "make alsagtk [OSC=1] : compile examples as ALSA applications with a GTK Graphical User Interface" @echo "make alsaqt [OSC=1] : compile examples as ALSA applications with a QT4 Graphical User Interface" @echo "make sndfile : compile examples as sound file processors with a Command line User Interface" @echo "make jackconsole [OSC=1] : compile examples as JACK applications with a Command line User Interface" @echo "make jackgtk [OSC=1] : compile examples as JACK applications with a GTK Graphical User Interface" @echo "make jackqt [OSC=1] : compile examples as JACK applications with a QT4 Graphical User Interface" @echo "make jackwx : compile examples as JACK applications with a wxWindows Graphical User Interface" @echo "make ossgtk : compile examples as OSS applications with a GTK Graphical User Interface" @echo "make osswx : compile examples as OSS applications with a wxWindows Graphical User Interface" @echo "make pagtk [OSC=1] : compile examples as PortAudio applications with a GTK Graphical User Interface" @echo "make paqt [OSC=1] : compile examples as PortAudio applications with a QT4 Graphical User Interface" @echo "make pawx : compile examples as PortAudio applications with a wxWindows Graphical User Interface" @echo "make caqt [OSC=1] : compile examples as CoreAudio applications with a QT4 Graphical User Interface" @echo "make oscioqt : compile examples as OSC driven applications with a QT4 Graphical User Interface" @echo "--------------------------------------------" @echo "make ladspa : compile examples as LADSPA plugins" @echo "make dssi : compile examples as DSSI plugins" @echo "make csound : compile examples as CSOUND opcodes" @echo "make csounddouble : compile examples as double precision CSOUND opcodes" @echo "make maxmsp : compile examples as Max/MSP externals" @echo "make vst : compile examples as native VST plugins" @echo "make w32vst : crosscompile examples as windows VST plugins" @echo "make iphone : compile examples for Apple iPhone/iPod" @echo "make supercollider : compile examples as Supercollider plugins" @echo "make puredata : compile examples as Puredata externals" @echo "make q : compile examples as Q plugins" @echo "--------------------------------------------" @echo "make svg : generate the examples block-diagrams in SVG format " @echo "make mathdoc : generate the examples math documentation in TEX and PDF formats " @echo "make bench : compile examples as command line benchmarks " @echo "make plot : compile examples as command line programs that print samples for plotting with, e.g., gnuplot" @echo "make matlabplot : compile examples as command line programs that print samples in matlab input format" @echo "--------------------------------------------" @echo "make clean : remove all object files" clean : rm -rf *dir rm -rf *-svg $(MAKE) -f Makefile.mathdoc clean faust-0.9.46/examples/faust-stk/harpsichord.h0000644000175000017500000000710211702130733021063 0ustar orlareyorlarey//Parameters for harpsichord.dsp //©Romain Michon (rmichon@ccrma.stanford.edu), 2011 //licence: FAUST-STK #include "instrument.h" #define _LOOKUP_TABLE_H_ double DryTapAmpT60_points[16*2] = { // NoteNumber(A440=69), T60(sec) 21.001,0.491, 26.587,0.498, 34.249,0.470, 40.794,0.441, 47.977,0.392, 55.000,0.370, 60.000,0.370, 66.000,0.370, 71.934,0.370, 78.000,0.370, 83.936,0.390, 88.557,0.387, 92.858,0.400, 97.319,0.469, 102.400,0.500, 107.198,0.494 }; extern LookupTable DryTapAmpT60; LookupTable DryTapAmpT60(&DryTapAmpT60_points[0], 16); float getValueDryTapAmpT60 (float index){ return DryTapAmpT60.getValue(index); } double releaseLoopGain_points[10*2] = { 21.000,0.865, 24.000,0.880, 29.000,0.896, 36.000,0.910, 48.000,0.920, 60.000,0.950, 72.000,0.965, 84.000,0.988, 88.000,0.997, 99.000,0.988 }; extern LookupTable releaseLoopGain; LookupTable releaseLoopGain(&releaseLoopGain_points[0], 10); float getValueReleaseLoopGain(float index){ return releaseLoopGain.getValue(index); } double loopFilterb0_points[18*2] = { 35.000,0.94373, 36.000,0.94731, 46.000,0.94731, 47.000,0.96202, 52.000,0.96202, 53.000,0.97477, 58.000,0.97477, 59.000,0.97733, 64.000,0.97733, 65.000,0.97971, 70.000,0.97971, 71.000,0.97971, 76.000,0.97971, 77.000,0.98698, 82.000,0.98698, 83.000,0.98462, 86.000,0.98462, 87.000,0.98611, }; extern LookupTable loopFilterb0; LookupTable loopFilterb0(&loopFilterb0_points[0], 18); float getValueLoopFilterb0(float index){ return loopFilterb0.getValue(index); } double loopFilterb1_points[18*2] = { 35.000,0.60010, 36.000,-0.59124, 46.000,-0.59124, 47.000,-0.21243, 52.000,-0.21243, 53.000,-0.39280, 58.000,-0.39280, 59.000,-0.48307, 64.000,-0.48307, 65.000,0.51965, 70.000,0.51965, 71.000,0.51965, 76.000,0.51965, 77.000,-0.42463, 82.000,-0.42463, 83.000,0.85655, 86.000,0.85655, 87.000,0.68851, }; extern LookupTable loopFilterb1; LookupTable loopFilterb1(&loopFilterb1_points[0], 18); float getValueLoopFilterb1(float index){ return loopFilterb1.getValue(index); } double loopFilterb2_points[18*2] = { 35.000,-0.00360, 36.000,-0.12249, 46.000,-0.12249, 47.000,-0.16044, 52.000,-0.16044, 53.000,-0.21680, 58.000,-0.21680, 59.000,-0.16346, 64.000,-0.16346, 65.000,0.22162, 70.000,0.22162, 71.000,0.22162, 76.000,0.22162, 77.000,-0.14973, 82.000,-0.14973, 83.000,0.24937, 86.000,0.24937, 87.000,0.14838, }; extern LookupTable loopFilterb2; LookupTable loopFilterb2(&loopFilterb2_points[0], 18); float getValueLoopFilterb2(float index){ return loopFilterb2.getValue(index); } double loopFiltera1_points[18*2] = { 35.000,0.5941, 36.000,-0.65928, 46.000,-0.65928, 47.000,-0.24222, 52.000,-0.24222, 53.000,-0.41402, 58.000,-0.41402, 59.000,-0.50837, 64.000,-0.50837, 65.000,0.51263, 70.000,0.51263, 71.000,0.51263, 76.000,0.51263, 77.000,-0.43976, 82.000,-0.43976, 83.000,0.85396, 86.000,0.85396, 87.000,0.68332, }; extern LookupTable loopFiltera1; LookupTable loopFiltera1(&loopFiltera1_points[0], 18); float getValueLoopFiltera1(float index){ return loopFiltera1.getValue(index); } double loopFiltera2_points[18*2] = { 35.000,-0.02641, 36.000,-0.10275, 46.000,-0.10275, 47.000,-0.15842, 52.000,-0.15842, 53.000,-0.21653, 58.000,-0.21653, 59.000,-0.15833, 64.000,-0.15833, 65.000,0.22025, 70.000,0.22025, 71.000,0.22025, 76.000,0.22025, 77.000,-0.14583, 82.000,-0.14583, 83.000,0.24405, 86.000,0.24405, 87.000,0.14370, }; extern LookupTable loopFiltera2; LookupTable loopFiltera2(&loopFiltera2_points[0], 18); float getValueLoopFiltera2(float index){ return loopFiltera2.getValue(index); } faust-0.9.46/examples/faust-stk/Makefile.mathdoc0000644000175000017500000000264711702130733021473 0ustar orlareyorlareyDSP = $(wildcard *.dsp) TEX = $(wildcard *-mdoc/tex/*.tex) PDF = $(wildcard *-mdoc/pdf/*.pdf) all : mathdoc copypdfs .PHONY: all clean compile copypdfs copyall install mathdoc help compile : $(MAKE) -C .. install : sudo $(MAKE) -C .. install sudo $(MAKE) -C ../tools/faust2appls install mathdoc : faust2mathdoc *.dsp copypdfs : mkdir -p allmathpdfs cp $(wildcard *-mdoc/pdf/*.pdf) allmathpdfs/ copyall : mkdir -p allmathdsps mkdir -p allmathtexs mkdir -p allmathpdfs cp $(wildcard *.dsp) allmathdsps/ cp $(wildcard *-mdoc/tex/*.tex) allmathtexs/ cp $(wildcard *-mdoc/pdf/*.pdf) allmathpdfs/ help : @echo "make or make all : compile math documentation of all examples, then copy resulting pdf files into \"allmathpdfs\" directory." @echo "make clean : remove \"*-mdoc\" and \"allmath*\" directories." @echo "make compile : compile the faust compiler." @echo "make install : install the faust compiler and faust2appls scripts." @echo "make mathdoc : generate math documentation of all examples (with faust2mathdoc)." @echo "make copypdfs : copy pdf files into \"allmathpdfs\" directory." @echo "make copyall : copy dsp, pdf, and tex files into \"allmathdsps\", \"allmathpdfs\", and \"allmathtexs\" directories." @echo "make total : clean, compile faust, install faust and faust2appls, compile math docs, and copy files." clean : rm -rf allmath* rm -rf *-mdoc total : clean compile install mathdoc copyall faust-0.9.46/examples/faust-stk/Makefile.svgcompile0000644000175000017500000000023111702130733022207 0ustar orlareyorlareysrc := $(wildcard *.dsp) target := $(src:.dsp=.dsp-svg) all : $(target) %.dsp-svg : %.dsp faust -svg $< > /dev/null clean : rm -rf $(target) faust-0.9.46/examples/faust-stk/NLFeks.dsp0000644000175000017500000000627511702130733020250 0ustar orlareyorlareydeclare name "Nonlinear EKS"; declare author "Julius Smith and Romain Michon"; declare version "1.0"; declare license "STK-4.3"; declare copyright "Julius Smith"; declare reference "http://ccrma.stanford.edu/~jos/pasp/vegf.html"; // -> Virtual\_Electric\_Guitars\_Faust.html"; import("music.lib"); // Define SR, delay import("instrument.lib"); import("effect.lib"); // stereopanner //==================== GUI SPECIFICATION ================ // standard MIDI voice parameters: // NOTE: The labels MUST be "freq", "gain", and "gate" for faust2pd freq = nentry("freq", 440, 20, 7040, 1); // Hz gain = nentry("gain", 1, 0, 10, 0.01); // 0 to 1 gate = button("gate"); // 0 or 1 // Additional parameters (MIDI "controllers"): // Pick angle in [0,0.9]: pickangle = 0.9 * hslider("pick_angle",0,0,0.9,0.1); // Normalized pick-position in [0,0.5]: beta = hslider("pick_position [midi: ctrl 0x81]", 0.13, 0.02, 0.5, 0.01); // MIDI Control 0x81 often "highpass filter frequency" // String decay time in seconds: t60 = hslider("decaytime_T60", 4, 0, 10, 0.01); // -60db decay time (sec) // Normalized brightness in [0,1]: B = hslider("brightness [midi:ctrl 0x74]", 0.5, 0, 1, 0.01);// 0-1 // MIDI Controller 0x74 is often "brightness" // (or VCF lowpass cutoff freq) // Dynamic level specified as dB level desired at Nyquist limit: L = hslider("dynamic_level", -10, -60, 0, 1) : db2linear; // Note: A lively clavier is obtained by tying L to gain (MIDI velocity). //Nonlinear filter parameters typeModulation = nentry("v:Nonlinear Filter/typeMod",0,0,4,1); nonLinearity = hslider("Nonlinearity",0,0,1,0.01) : smooth(0.999); frequencyMod = hslider("freqMod",220,20,1000,0.1) : smooth(0.999); //==================== SIGNAL PROCESSING ================ //----------------------- noiseburst ------------------------- // White noise burst (adapted from Faust's karplus.dsp example) // Requires music.lib (for noise) noiseburst(gate,P) = noise : *(gate : trigger(P)) with { diffgtz(x) = (x-x') > 0; decay(n,x) = x - (x>0)/n; release(n) = + ~ decay(n); trigger(n) = diffgtz : release(n) : > (0.0); }; nlfOrder = 6; P = SR/freq ; // fundamental period in samples Pmax = 4096; // maximum P (for delay-line allocation) ppdel = beta*P; // pick position delay pickposfilter = ffcombfilter(Pmax,ppdel,-1); // defined in filter.lib excitation = noiseburst(gate,P) : *(gain); // defined in signal.lib rho = pow(0.001,1.0/(freq*t60)); // multiplies loop-gain // Original EKS damping filter: b1 = 0.5*B; b0 = 1.0-b1; // S and 1-S dampingfilter1(x) = rho * ((b0 * x) + (b1 * x')); // Linear phase FIR3 damping filter: h0 = (1.0 + B)/2; h1 = (1.0 - B)/4; dampingfilter2(x) = rho * (h0 * x' + h1*(x+x'')); loopfilter = dampingfilter2; // or dampingfilter1 filtered_excitation = excitation : smooth(pickangle) : pickposfilter : levelfilter(L,freq); // see filter.lib //nonlinear allpass filter (nonLinearModulator is declared in instrument.lib) NLFM = nonLinearModulator(nonLinearity,1,freq,typeModulation,frequencyMod,nlfOrder); //declared in instrument.lib stereo = stereoizer(P); stringloop = (+ : fdelay4(Pmax, P-2)) ~ (loopfilter : NLFM); process = filtered_excitation : stringloop : stereo : instrReverb; faust-0.9.46/examples/faust-stk/README0000644000175000017500000001210711702130733017265 0ustar orlareyorlareyFAUST SYNTHESIS TOOLKIT: A SET OF LINEAR AND NONLINEAR PHYSICAL MODELS FOR FAUST CIEREC, EA 3068 Center for Computer Research in Music and Acoustics Université Jean Monnet and (CCRMA) Stanford University F-42023, Saint-Etienne, France Palo Alto, CA 94305, USA 1/ What is it? -------------- The FAUST Synthesis ToolKit is a set virtual musical instruments written in the FAUST programming language and based on waveguide algorithms and modal synthesis. Most of them were inspired by instruments implemented in the Synthesis ToolKit and the program SynthBuilder. The STK is developed since 1996 by P. R. Cook and G. P. Scavone. It is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language that can be used in the development of music synthesis and audio processing software (https://ccrma.stanford.edu/software/stk/). On the other hand, SynthBuilder was a program used at Stanford's CCRMA (Center for Computer Research in Music and Acoustics) in the nineties to implement physical models of musical instruments. Most of its algorithms use the waveguide synthesis technique but some of them are also based on modal synthesis. Our attention has partly been focused on the pedagogical aspect of the implemented objects. Indeed, we tried to make the FAUST code of each objects as optimized and as expressive as possible. Some of the instruments in the (FAUST-STK) use nonlinear allpass filters to create interesting and new behaviors. Also, most of them can be used with gesture following datas (see the /gesture-following folder for some examples). 2/ Which instruments? --------------------- WIND INSTRUMENTS - A simple clarinet (clarinet.dsp), - A clarinet with a tone hole model (blowHole.dsp), - A flute (flutestk.dsp), - A pan-flute (flute.dsp), - A brass instrument that can be used as a trumpet, a trombon, a french horn, etc. (brass.dsp), - A simple saxophone (saxophony.dsp), - A bottle where it is possible to blow threw the neck to make sound (blowBotle.dsp). STRING INSTRUMENTS - An acoustic finger bass (bass.dsp), - A bowed string instrument that can be used as a cello, a violin, etc. (bowed.dsp), - A simple sitar (sitar.dsp), - A nonlinear extended Karplus-Strong (NLFeks.dsp). KEYBOARDS INSTRUMENTS - A piano that uses commuted waveguide synthesis (piano.dsp), - An harpsichord (harpsi.dsp). PERCUSSION INSTRUMENTS - A tibetan bowl (tibetanBowl.dsp), - A wooden bare (uniBar.dsp), - An iron bare (tunedBar.dsp), - A glass bare (glassHarmonica.dsp), - A set of percussion instruments that use modal synthesis (modalBar.dsp). OTHER - A voice synthesizer (voiceForm.dsp), - A FM synthesizer that uses an nonlinear allpass filter (NLFfm.dsp). 3/ Organisation of the distribution and remarks ----------------------------------------------- Most of the instruments implemented in the FAUST-STK use functions declared in instrument.lib so this file is required for compilation. Also, a few instruments use datas that are stored in external C++ functions (.h). The "pd-patches" folder contains examples of use of the FAUST-STK instruments in PureData (faust2pd needs to be install on your computer to use these examples). The FAUST-STK instruments are all monophonic. If you wish to make them polyphonic, we recommend you to compile them for PureData and to use faust2pd ("make pdpoly2" or "make pdpoly4" or "make pdpoly6" or "make pdpoly8" where 2, 4, 6 and 8 are the number of voices). For more informations about that, you can look at the examples in the pd-patches/ folder. You can find in the gesture-following/ folder an improved version of bowed.dsp that uses gesture following datas in PureData (first, type "make" in a terminal and then open playMe.pd). This work has been done with the help of E. Maestre (MTG, Barcelona). The instruments from the Faust-STK have been tested with the OSC support for FAUST implemented with some of the architecture files (jackqt, jackgtk, etc.). 3/ How to compile? ------------------ In order to compile the instruments, the latest FAUST repository must be installed on your computer (03/21/2011) as well as all the required dependencies for the FAUST architecture you wish to use. Type "make help" in a terminal to print the list of available architectures and to know how to compile the examples. 4/ Acknowledgments ------------------ This work has been carried out in the frame of the ASTREE project (Analyse et Synthèse Temps REEl), supported by the Agence Nationale de Recherche (ANR-08-CORD-003) at Stanford's CCRMA (Center for Computer Research in Music and Acoustics). Special thanks to J.O. Smith, Y. Orlarey, E. Maestre, S. Letz and L. Pottier for their support and help. Thanks also to my colleagues from the CCRMA team for all their suggestions and good ideas. 5/ Questions and suggestions ---------------------------- About FAUST-STK: rmichon@ccrma.stanford.edu or rmnmichon@gmail.com About FAUST: https://lists.sourceforge.net/lists/listinfo/faudiostream-users Romain Michonfaust-0.9.46/examples/faust-stk/modalBar.h0000644000175000017500000000304011702130733020273 0ustar orlareyorlarey//Modal datas for modalBar.dsp //©Romain Michon (rmichon@ccrma.stanford.edu), 2011 //licence: STK-4.3 #include #include float loadPreset(int preset, int index0, int index1){ static float presets[9][4][4] = { {{1.0, 3.99, 10.65, -2443}, // Marimba {0.9996, 0.9994, 0.9994, 0.999}, {0.04, 0.01, 0.01, 0.008}, {0.429688, 0.445312, 0.093750}}, {{1.0, 2.01, 3.9, 14.37}, // Vibraphone {0.99995, 0.99991, 0.99992, 0.9999}, {0.025, 0.015, 0.015, 0.015 }, {0.390625,0.570312,0.078125}}, {{1.0, 4.08, 6.669, -3725.0}, // Agogo {0.999, 0.999, 0.999, 0.999}, {0.06, 0.05, 0.03, 0.02}, {0.609375,0.359375,0.140625}}, {{1.0, 2.777, 7.378, 15.377}, // Wood1 {0.996, 0.994, 0.994, 0.99}, {0.04, 0.01, 0.01, 0.008}, {0.460938,0.375000,0.046875}}, {{1.0, 2.777, 7.378, 15.377}, // Reso {0.99996, 0.99994, 0.99994, 0.9999}, {0.02, 0.005, 0.005, 0.004}, {0.453125,0.250000,0.101562}}, {{1.0, 1.777, 2.378, 3.377}, // Wood2 {0.996, 0.994, 0.994, 0.99}, {0.04, 0.01, 0.01, 0.008}, {0.312500,0.445312,0.109375}}, {{1.0, 1.004, 1.013, 2.377}, // Beats {0.9999, 0.9999, 0.9999, 0.999}, {0.02, 0.005, 0.005, 0.004}, {0.398438,0.296875,0.070312}}, {{1.0, 4.0, -1320.0, -3960.0}, // 2Fix {0.9996, 0.999, 0.9994, 0.999}, {0.04, 0.01, 0.01, 0.008}, {0.453125,0.453125,0.070312}}, {{1.0, 1.217, 1.475, 1.729}, // Clump {0.999, 0.999, 0.999, 0.999}, {0.03, 0.03, 0.03, 0.03 }, {0.390625,0.570312,0.078125}}, }; return presets[preset][index0][index1]; };faust-0.9.46/examples/faust-stk/Makefile.w32vstcompile0000644000175000017500000000356511702130733022575 0ustar orlareyorlarey################################################################################ # # CROSSCOMPILATION FROM LINUX OF VST PLUGINS FOR WINDOWS # Faust Project, Y. Orlarey - Grame # ################################################################################ #------------------------------------------------------------------------------ # 1/ VST SDK Should be installed somewhere VST=../vstsdk2.4 #------------------------------------------------------------------------------ # 2/ mingw crosscompiler should be installed ('mingw32' package on Ubuntu) #CROSS=i386-mingw32- CROSS=i586-mingw32msvc- CXX=$(CROSS)g++ CXXFLAGS=-I$(VST) -I$(VST)/public.sdk/source/vst2.x -DBUILDING_DLL -mno-cygwin LDFLAGS= DLLWRAP=$(CROSS)dllwrap --target=i386-mingw32 -mno-cygwin STRIP=$(CROSS)strip #------------------------------------------------------------------------------ # 3/ we transform all .dsp Faust codes into the corresponding dll DSP= $(wildcard *.dsp) DLL= $(addprefix $(DEST), $(DSP:.dsp=.dll)) ##PLUGIN= $(SRC:.dsp=) ##DLL=$(PLUGIN).dll # all : $(DLL) # how to generate the cpp file from the faust source $(DEST)%.cpp : %.dsp faust -a vst2p4.cpp $< -o $@ # we need to create the .def file needed to generate the .dll $(DEST)%.def : @echo LIBRARY $(@:.def=) > $@ @echo DESCRIPTION \'Faust generated VST plugin\' >> $@ @echo EXPORTS main=VSTPluginMain >> $@ $(DEST)%.dll: $(DEST)%.o $(DEST)%.def $(DEST)audioeffect.o $(DEST)audioeffectx.o $(DEST)vstplugmain.o $(DLLWRAP) --driver-name $(CXX) --def $(@:.dll=.def) $^ -o $@ $(STRIP) $@ $(DEST)audioeffect.o: $(VST)/public.sdk/source/vst2.x/audioeffect.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ $(DEST)audioeffectx.o: $(VST)/public.sdk/source/vst2.x/audioeffectx.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ $(DEST)vstplugmain.o: $(VST)/public.sdk/source/vst2.x/vstplugmain.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ faust-0.9.46/examples/faust-stk/flute.dsp0000644000175000017500000001322111702130733020232 0ustar orlareyorlareydeclare name "Flute"; declare description "Nonlinear WaveGuide Flute"; declare author "Romain Michon (rmichon@ccrma.stanford.edu)"; declare copyright "Romain Michon"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "A simple flute based on Smith algorythm: https://ccrma.stanford.edu/~jos/pasp/Flutes_Recorders_Pipe_Organs.html"; import("music.lib"); import("instrument.lib"); import("effect.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]") : int; pressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Pressure [2][tooltip:Breath pressure (value bewteen 0 and 1)]",0.9,0,1.5,0.01) : smooth(0.999); breathAmp = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Noise Gain [2][tooltip:Breath noise gain (value between 0 and 1)]",0.1,0,1,0.01)/10; typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [4][unit:Hz]",5,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [4][tooltip:A value between 0 and 1]",0.1,0,1,0.01); vibratoBegin = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Begin [4][unit:s][tooltip:Vibrato silence duration before attack]",0.1,0,2,0.01); vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack [4][unit:s][tooltip:Vibrato attack duration]",0.5,0,2,0.01); vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release [4][unit:s][tooltip:Vibrato release duration]",0.2,0,2,0.01); pressureEnvelope = checkbox("h:Envelopes_and_Vibrato/v:Pressure_Envelope_Parameters/Pressure_Env [5][unit:s][tooltip:Activate Pressure envelope]") : int; env1Attack = hslider("h:Envelopes_and_Vibrato/v:Pressure_Envelope_Parameters/Press_Env_Attack [5][unit:s][tooltip:Pressure envelope attack duration]",0.05,0,2,0.01); env1Decay = hslider("h:Envelopes_and_Vibrato/v:Pressure_Envelope_Parameters/Press_Env_Decay [5][unit:s][tooltip:Pressure envelope decay duration]",0.2,0,2,0.01); env1Release = hslider("h:Envelopes_and_Vibrato/v:Pressure_Envelope_Parameters/Press_Env_Release [5][unit:s][tooltip:Pressure envelope release duration]",1,0,2,0.01); env2Attack = hslider("h:Envelopes_and_Vibrato/v:Global_Envelope_Parameters/Glob_Env_Attack [6][unit:s][tooltip:Global envelope attack duration]",0.1,0,2,0.01); env2Release = hslider("h:Envelopes_and_Vibrato/v:Global_Envelope_Parameters/Glob_Env_Release [6][unit:s][tooltip:Global envelope release duration]",0.1,0,2,0.01); //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //attack - sustain - release envelope for nonlinearity (declared in instrument.lib) envelopeMod = asr(nonLinAttack,100,0.1,gate); //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),envelopeMod,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //Loops feedbacks gains feedBack1 = 0.4; feedBack2 = 0.4; //Delay Lines embouchureDelayLength = (SR/freq)/2-2; boreDelayLength = SR/freq-2; embouchureDelay = fdelay(4096,embouchureDelayLength); boreDelay = fdelay(4096,boreDelayLength); //Polinomial poly = _ <: _ - _*_*_; //jet filter is a lowwpass filter (declared in filter.lib) reflexionFilter = lowpass(1,2000); //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //----------------------- Algorithm implementation ---------------------------- //Pressure envelope env1 = adsr(env1Attack,env1Decay,90,env1Release,(gate | pressureEnvelope))*pressure*1.1; //Global envelope env2 = asr(env2Attack,100,env2Release,gate)*0.5; //Vibrato Envelope vibratoEnvelope = envVibrato(vibratoBegin,vibratoAttack,100,vibratoRelease,gate)*vibratoGain; vibrato = osc(vibratoFreq)*vibratoEnvelope; breath = noise*env1; flow = env1 + breath*breathAmp + vibrato; //instrReverb is declared in instrument.lib process = (_ <: (flow + *(feedBack1) : embouchureDelay : poly) + *(feedBack2) : reflexionFilter)~(boreDelay : NLFM) : *(env2)*gain : stereo : instrReverb; faust-0.9.46/examples/faust-stk/glassHarmonica.dsp0000644000175000017500000001266311702130733022057 0ustar orlareyorlareydeclare name "Glass Harmonica"; declare description "Nonlinear Banded Waveguide Modeled Glass Harmonica"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "This instrument uses banded waveguide. For more information, see Essl, G. and Cook, P. Banded Waveguides: Towards Physical Modelling of Bar Percussion Instruments, Proceedings of the 1999 International Computer Music Conference."; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",0.8,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); select = nentry("h:Physical_and_Nonlinearity/v:Physical_Parameters/Excitation_Selector [2][tooltip:0=Bow; 1=Strike]",0,0,1,1); integrationConstant = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Integration_Constant [2][tooltip:A value between 0 and 1]",0,0,1,0.01); baseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Base_Gain [2][tooltip:A value between 0 and 1]",1,0,1,0.01); bowPressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Pressure [2][tooltip:Bow pressure on the instrument (Value between 0 and 1)]",0.2,0,1,0.01); bowPosition = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Position [2][tooltip:Bow position on the instrument (Value between 0 and 1)]",0,0,1,0.01); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); //==================== MODAL PARAMETERS ================ preset = 3; nMode(3) = 6; modes(3,0) = 1.0; basegains(3,0) = pow(0.999,1); excitation(3,0) = 1*gain*gate/(nMode(3) - 1); modes(3,1) = 2.32; basegains(3,1) = pow(0.999,2); excitation(3,1) = 1*gain*gate/(nMode(3) - 1); modes(3,2) = 4.25; basegains(3,2) = pow(0.999,3); excitation(3,2) = 1*gain*gate/(nMode(3) - 1); modes(3,3) = 6.63; basegains(3,3) = pow(0.999,4); excitation(3,3) = 1*gain*gate/(nMode(3) - 1); modes(3,4) = 9.38; basegains(3,4) = pow(0.999,5); excitation(3,4) = 1*gain*gate/(nMode(3) - 1); modes(3,5) = 0 : float; basegains(3,5) = 0 : float; excitation(3,5) = 0 : float; //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),1,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //the number of modes depends on the preset being used nModes = nMode(preset); //bow table parameters tableOffset = 0; tableSlope = 10 - (9*bowPressure); delayLengthBase = SR/freq; //delay lengths in number of samples delayLength(x) = delayLengthBase/modes(preset,x); //delay lines delayLine(x) = delay(4096,delayLength(x)); //Filter bank: bandpass filters (declared in instrument.lib) radius = 1 - PI*32/SR; bandPassFilter(x) = bandPass(freq*modes(preset,x),radius); //Delay lines feedback for bow table lookup control baseGainApp = 0.8999999999999999 + (0.1*baseGain); velocityInputApp = integrationConstant; velocityInput = velocityInputApp + _*baseGainApp,par(i,(nModes-1),(_*baseGainApp)) :> +; //Bow velocity is controled by an ADSR envelope maxVelocity = 0.03 + 0.1*gain; bowVelocity = maxVelocity*adsr(0.02,0.005,90,0.01,gate); //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(delayLengthBase); //----------------------- Algorithm implementation ---------------------------- //Bow table lookup (bow is decalred in instrument.lib) bowing = bowVelocity - velocityInput <: *(bow(tableOffset,tableSlope)) : /(nModes); //One resonance resonance(x) = + : + (excitation(preset,x)*select) : delayLine(x) : *(basegains(preset,x)) : bandPassFilter(x); process = //Bowed Excitation (bowing*((select-1)*-1) <: //nModes resonances with nModes feedbacks for bow table look-up par(i,nModes,(resonance(i)~_)))~par(i,nModes,_) :> + : //Signal Scaling and stereo *(4) : NLFM : stereo : instrReverb; faust-0.9.46/examples/faust-stk/saxophony.dsp0000644000175000017500000001401211702130733021142 0ustar orlareyorlareydeclare name "Saxophone"; declare description "Nonlinear WaveGuide Saxophone"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "This class implements a hybrid digital waveguide instrument that can generate a variety of wind-like sounds. It has also been referred to as the blowed string model. The waveguide section is essentially that of a string, with one rigid and one lossy termination. The non-linear function is a reed table. The string can be blown at any point between the terminations, though just as with strings, it is impossible to excite the system at either end. If the excitation is placed at the string mid-point, the sound is that of a clarinet. At points closer to the bridge, the sound is closer to that of a saxophone. See Scavone (2002) for more details."; declare reference "https://ccrma.stanford.edu/~jos/pasp/Woodwinds.html"; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); pressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Pressure [2][tooltip:Breath pressure (a value between 0 and 1)]",1,0,1,0.01); reedStiffness = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Reed_Stiffness [2][tooltip:A value between 0 and 1]",0.3,0,1,0.01); blowPosition = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Blow_Position [2][tooltip:A value between 0 and 1]",0.5,0,1,0.01); noiseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Noise_Gain",0.05,0,1,0.01); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [4][unit:Hz]",6,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [4][tooltip:A value between 0 and 1]",0.1,0,1,0.01); vibratoBegin = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Begin [4][unit:s][tooltip:Vibrato silence duration before attack]",0.05,0,2,0.01); vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack [4][unit:s][tooltip:Vibrato attack duration]",0.3,0,2,0.01); vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release [4][unit:s][tooltip:Vibrato release duration]",0.1,0,2,0.01); envelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Attack [5][unit:s][tooltip:Envelope attack duration]",0.05,0,2,0.01); envelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Release [5][unit:s][tooltip:Envelope release duration]",0.01,0,2,0.01); //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //attack - sustain - release envelope for nonlinearity (declared in instrument.lib) envelopeMod = asr(nonLinAttack,100,envelopeRelease,gate); //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),envelopeMod,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //reed table parameters reedTableOffset = 0.7; reedTableSlope = 0.1 + (0.4*reedStiffness); //the reed function is declared in instrument.lib reedTable = reed(reedTableOffset,reedTableSlope); //Delay lines length in number of samples fdel1 = (1-blowPosition) * (SR/freq - 3); fdel2 = (SR/freq - 3)*blowPosition +1 ; //Delay lines delay1 = fdelay(4096,fdel1); delay2 = fdelay(4096,fdel2); //Breath pressure is controlled by an attack / sustain / release envelope (asr is declared in instrument.lib) envelope = (0.55+pressure*0.3)*asr(pressure*envelopeAttack,100,pressure*envelopeRelease,gate); breath = envelope + envelope*noiseGain*noise; //envVibrato is decalred in instrument.lib vibrato = vibratoGain*envVibrato(vibratoBegin,vibratoAttack,100,vibratoRelease,gate)*osc(vibratoFreq); breathPressure = breath + breath*vibratoGain*osc(vibratoFreq); //Body filter is a one zero filter (declared in instrument.lib) bodyFilter = *(gain) : oneZero1(b0,b1) with{ gain = -0.95; b0 = 0.5; b1 = 0.5; }; instrumentBody(delay1FeedBack,breathP) = delay1FeedBack <: -(delay2) <: ((breathP - _ <: breathP - _*reedTable) - delay1FeedBack),_; process = (bodyFilter,breathPressure : instrumentBody) ~ (delay1 : NLFM) : !, //Scaling Output and stereo *(gain) : stereo : instrReverb; faust-0.9.46/examples/faust-stk/pd-patches/0000755000175000017500000000000011702130733020434 5ustar orlareyorlareyfaust-0.9.46/examples/faust-stk/pd-patches/modal.pd0000644000175000017500000000035711702130733022062 0ustar orlareyorlarey#N canvas 223 61 502 600 10; #X msg 411 461 \; pd dsp 1; #X msg 411 498 \; pd dsp 0; #X obj 166 415 audio-out; #X obj 125 20 midi-in 2; #X obj 19 77 modalBar; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/ironBare.pd0000644000175000017500000000035711702130733022527 0ustar orlareyorlarey#N canvas 223 61 504 567 10; #X msg 387 424 \; pd dsp 1; #X msg 387 462 \; pd dsp 0; #X obj 131 379 audio-out; #X obj 125 20 midi-in 2; #X obj 19 77 tunedBar; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/voiceSynth.pd0000644000175000017500000000036011702130733023113 0ustar orlareyorlarey#N canvas 223 61 503 674 10; #X msg 409 523 \; pd dsp 1; #X msg 409 560 \; pd dsp 0; #X obj 164 477 audio-out; #X obj 125 20 midi-in 2; #X obj 19 77 voiceForm; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/woodenBare.pd0000644000175000017500000000035311702130733023047 0ustar orlareyorlarey#N canvas 418 70 372 573 10; #X msg 285 424 \; pd dsp 1; #X msg 285 462 \; pd dsp 0; #X obj 23 370 audio-out; #X obj 23 20 midi-in 2; #X obj 23 71 uniBar; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/flutes.pd0000644000175000017500000000052211702130733022262 0ustar orlareyorlarey#N canvas 22 22 1177 685 10; #X msg 544 552 \; pd dsp 1; #X msg 544 590 \; pd dsp 0; #X obj 294 503 audio-out; #X obj 336 5 midi-in 2; #X obj 8 65 flute; #X obj 699 64 flutestk; #X connect 3 0 4 0; #X connect 3 0 5 0; #X connect 3 1 4 1; #X connect 3 1 5 1; #X connect 4 1 2 1; #X connect 4 2 2 2; #X connect 5 1 2 1; #X connect 5 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/saxophone.pd0000644000175000017500000000036011702130733022764 0ustar orlareyorlarey#N canvas 223 61 501 634 10; #X msg 415 491 \; pd dsp 1; #X msg 415 528 \; pd dsp 0; #X obj 170 445 audio-out; #X obj 125 20 midi-in 2; #X obj 19 77 saxophony; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/bottle.pd0000644000175000017500000000036111702130733022252 0ustar orlareyorlarey#N canvas 160 22 509 730 10; #X msg 387 581 \; pd dsp 1; #X msg 387 619 \; pd dsp 0; #X obj 131 536 audio-out; #X obj 125 20 midi-in 2; #X obj 19 77 blowBottle; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/trumpet.pd0000644000175000017500000000035411702130733022463 0ustar orlareyorlarey#N canvas 160 22 509 730 10; #X msg 387 581 \; pd dsp 1; #X msg 387 619 \; pd dsp 0; #X obj 131 536 audio-out; #X obj 125 20 midi-in 2; #X obj 19 77 brass; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/tibetan.pd0000644000175000017500000000036211702130733022410 0ustar orlareyorlarey#N canvas 160 22 504 567 10; #X msg 387 424 \; pd dsp 1; #X msg 387 462 \; pd dsp 0; #X obj 131 379 audio-out; #X obj 125 20 midi-in 2; #X obj 19 77 tibetanBowl; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/osc.pd0000644000175000017500000000120111702130733021537 0ustar orlareyorlarey#N canvas 418 463 539 314 10; #X obj 208 180 prepend send; #X obj 208 209 sendOSC; #X obj 24 111 loadbang; #X msg 24 143 connect localhost 5510; #X obj 319 178 dumpOSC 5511; #X obj 319 215 print FAUST; #X obj 407 177 dumpOSC 5512; #X obj 407 214 print Error; #X obj 208 150 r osc; #X msg 104 113 connect localhost 5513; #X msg 116 72 disconnect; #X obj 200 12 s osc; #X msg 201 -12 /* hello; #X obj 280 12 s osc; #X msg 281 -12 /* get; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 4 0 5 0; #X connect 6 0 7 0; #X connect 8 0 0 0; #X connect 9 0 1 0; #X connect 10 0 1 0; #X connect 12 0 11 0; #X connect 14 0 13 0; faust-0.9.46/examples/faust-stk/pd-patches/harpsichord-poly.pd0000644000175000017500000000035411702130733024252 0ustar orlareyorlarey#N canvas 641 188 358 538 10; #X msg 273 361 \; pd dsp 1; #X msg 273 399 \; pd dsp 0; #X obj 19 335 audio-out; #X obj 19 68 harpsi; #X obj 19 17 midi-in 8; #X connect 3 1 2 1; #X connect 3 2 2 2; #X connect 4 0 3 0; #X connect 4 1 3 1; faust-0.9.46/examples/faust-stk/pd-patches/plucked.pd0000644000175000017500000000066511702130733022417 0ustar orlareyorlarey#N canvas 160 22 767 702 10; #X msg 278 546 \; pd dsp 1; #X msg 278 584 \; pd dsp 0; #X obj 22 501 audio-out; #X obj 262 13 midi-in 2; #X obj 19 77 sitar; #X obj 506 73 NLFeks; #X obj 262 76 bass; #X connect 3 0 4 0; #X connect 3 0 5 0; #X connect 3 0 6 0; #X connect 3 1 4 1; #X connect 3 1 5 1; #X connect 3 1 6 1; #X connect 4 1 2 1; #X connect 4 2 2 2; #X connect 5 1 2 1; #X connect 5 2 2 2; #X connect 6 1 2 1; #X connect 6 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/clarinets.pd0000644000175000017500000000052611702130733022750 0ustar orlareyorlarey#N canvas 22 22 974 784 10; #X obj 11 73 clarinet; #X msg 507 542 \; pd dsp 1; #X msg 507 580 \; pd dsp 0; #X obj 257 493 audio-out; #X obj 493 63 blowHole; #X obj 263 11 midi-in 2; #X connect 0 1 3 1; #X connect 0 2 3 2; #X connect 4 1 3 1; #X connect 4 2 3 2; #X connect 5 0 0 0; #X connect 5 0 4 0; #X connect 5 1 0 1; #X connect 5 1 4 1; faust-0.9.46/examples/faust-stk/pd-patches/glassBare.pd0000644000175000017500000000036511702130733022670 0ustar orlareyorlarey#N canvas 160 22 504 567 10; #X msg 387 424 \; pd dsp 1; #X msg 387 462 \; pd dsp 0; #X obj 131 379 audio-out; #X obj 125 20 midi-in 2; #X obj 19 77 glassHarmonica; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/fm.pd0000644000175000017500000000035411702130733021365 0ustar orlareyorlarey#N canvas 223 61 507 679 10; #X msg 416 543 \; pd dsp 1; #X msg 416 580 \; pd dsp 0; #X obj 171 497 audio-out; #X obj 125 20 midi-in 2; #X obj 19 77 NLFfm; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/piano-poly.pd0000644000175000017500000000035311702130733023051 0ustar orlareyorlarey#N canvas 641 188 352 554 10; #X msg 273 361 \; pd dsp 1; #X msg 273 399 \; pd dsp 0; #X obj 19 366 audio-out; #X obj 19 17 midi-in 8; #X obj 19 68 piano; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/fancy/0000755000175000017500000000000011702130733021534 5ustar orlareyorlareyfaust-0.9.46/examples/faust-stk/pd-patches/fancy/what-a-friend/0000755000175000017500000000000011702130733024162 5ustar orlareyorlareyfaust-0.9.46/examples/faust-stk/pd-patches/fancy/what-a-friend/what_a_friend.mid0000644000175000017500000011457211702130733027461 0ustar orlareyorlareyMThdMTrk- what_a_friendXQ hQ gZ/MTrkG,MIDI 01EZF7 E@hF@H_H@*H@@EERNEN 3@ J@8>@xE@HZEAL.)982A@>@9@jA&9 >FA@>@9@FAC>C 9>.>@ A@9@n9<>EAG A@.@9@>@6@$@N53\@NE@:@ >@A@:FL>/vF@>@*>":IE_&:@ E@,>@BCG>@ :3fC@ >@:@H5@5GAR^A@@L>5@@@BA\:IA@ @L.+@ :@(@@.:3>G57&5@>@:@B@)7n0@@AZ2G9Z>R5N@<@9@4A@j2C\@2@6Eb;W+<5:h@b;@$E@ZCP;GAN>L5@ +@pC@A@>@,;@R+I@+@"::>GAN0C74d@>@A@:@0@ 7@*$C:0=<7'@:@@:$@ 7@:@=@@@J@8)LEN9@04@G@@>9@@@)@E@0@@FT+IAR:G2@d@A@ 2@+@:@F@j@ -C4CZE_5@<@>E@5@J@.@$>@j@HWCIF@AN+420BA@@+@2@ F@:@F@@L04)@ET9@@@ E@0@ )@9@bR>@@Er@@:$>AG5&:7>G<@2>@$A@5@:@$@.=@CC:0(7@73|@(@7@=@:@C@N@4)7ET<@9@ @@E@Z@@9"<8EC29@ <@@@E@bER@R<@H\T@B<@H@@@E@.0Rx@0@.)P3EC@>CJI ENH:H@0J@@2>@C@E@p3@)@Z@?WEb9Z)I30nE@ )@3@?@9@~CGRC@V3.AT9I?G-8@:-@3@9@(?@A@"C'C@f@(.7>RAL9GF>@ A@9@J>(A*9(&A@>@9@^A.>1 9'j>@ 9@A@:>@A>9>RA@9@ >@ .@>@ICG-:@E_:L+C5<>Ph@VE@>@,:@5@R>N5,7, +@>@ @C.7@5@@@BA_:C>>@\A@@E&:@$@@F:/ >1>@ :@F@045@9@5@ <@80@~@ >CAL@<@A@A_<\>ZE_@2:|@2A@<@>@2@ E@^EbHe>ZA\2H@E@ A@>@jAWEb;Zt@P@zE@ A@0;@f:LCNAP@0E@F0@@@0>J0@^0I>C@ A@0@:@V0@:ICL>TAT|@~A@C@>@:@&E\:IAT>Rn0@ :@ E@$A@:P>@8:@Z@:GFNCL0GAI>Nl@N>@:@ C@A@F@ 0@R:1F/C,>CA3 00@ :@F@C@>@ A@F>>:CFEC8ANbA@:@>@F@C@"FL:GCG>PAR0@ A@C@ F@:@0@:>=RF> 0I@l@v0@4=@:@F@.0LT@0@>E>HL@<<)><@@@E@H@J40xHWW @"J@$>@T3@)@E@Z@MrEb34CZ )>M@ E@ C@ 3@)@N+I3*3@@+@*Jb?TE\ 31-E J@(E@-@ 3@?@:)Rb)@VEW.>:I>T@Z:@E@ >@CCC@@ AR9L:<>I@:@>@A@9@.@ @>N9E:CALA@:@>@9@@RCN>Ll@V:@E@>@A@NFW>>>@@F@FEW>@NAW:E>I(@@5@>@ A@:@8+@">T8W/E5W@@"/@+L*8@5@>@X+@@0P9N5P^0@@5@9@<@j1>v1@"@2RL9CAN@>A@<@9@ >@~9WAW*2@PA@"@@9@4@@2ARA@@EZ+<;P5)p@j;@@E@2CP ;G>L5@+@xC@>@,;@N+:^+@"@(:8AI0:>G 7*l@.A@>@$:@(7@r:N@N77V:@7@@@0@^@ EN009C@L)@`@29@ @@)@E@0@@ FGAL+3:32"`@*A@+@ :@2@F@R@DE-:HR4)<:6D@-@ @:4@<@H@@EPJZ.4>E5@b@ C>HN 4/-1<4BC@H@@-@4@$<@@F@:0AE20+%P@A@(+@F@:@L2@B@$01@>EE)'9%l@n@@(E@ 9@:Ee0@9b")@ E@9@E_9W @v9@0E@ C8C@AW9LFA@9@J+3+@CE:: @L0)&>@7@@@:@C@B0860@fER::AP>GE@ A@>@:@bFT:@>R >@:@ F@0E>0@FFR :>>PrF@>@.0@:@0@CN =N:CC@:@=@000@ ELGh@::@>@C@2Jl:.@ >\VJ@>@V:C:@@ J\GT;ND< A>6A@ J@G@@D@>LWA.A@L@bMTLPL@M@L;@:ERHW Z7I@`@C@ F@ >@`7@NETAW:AI@x@2>@lJ@A@E@ G@>h:5@/@2+8*>@<+@>@FR>RATCL0Gl@bF@(C@A@EN>@E@.C:><C@(>@0@VEL=L41::@@:@ E@.CL:Cf:@=@ C@4@F0I0@@ETHW<>@<5Ch@F@@H@<@E@jH7<)E)@)"@@<@ H@E@R@PHTEN5@<@BGW<&<@8G@H_R9<?75TD@JJ@(>@?@E@$9@05@20:V0@>@ 9IEP)P?<34d@BE@H9@,3@CP9IR)@$9@C@@-EAR3/9Nl@3@-@9@?@ C@)IA@)@C@Z@AG.49<>@h@~A@9@>@FAZ:A@bAbbA@8.@"CL91@+::*AL5&@n:@ >@A@*Jh`>bJ@ 5@p>@fJ\nJ@LP L@M\*+@TM@L:<:972.@ @V9@4A@<@>@ 9W9@&AZ9%~A@ @L2@9@8@@2ARA@@E_+:;W51d@ ;@(E@JCL;I>IAN"5@+@pC@A@ >@@;@.+>^+@>@AG:8>E047.d@>:@$A@$>@7@V:E@G>*z:@@@ 0@>@N@)8CAG+.2,@.>@ A@:@+@(2@^>I:1 71 5 *7@$5@>@ @":@)78C8$CAL @$@H@ A@ C@F@>@.@)4HTER )'X@0@2J_38>NEWCGx@FJ@C@>@E@3@0)@b0@JEN)E?G3/9>+>3 F3@4+@&?GF-@3@$C@7@9@<@?@)@)@AP>L.89@D@.A@9@>@ AR>N9L:G@`@:A@.@:@(>@9@ZCN@R7@9E-:EAN+*2*0@2A@:@>@5_65@b5\2@&2I>5@J:<>750<>@5@<@:@N@@ <<@@<@2@nA_>R:IZ>@:@$A@@EZ@@6:>>I5< 27+@>@5@ :@2@6@,d@9@<@5@>9<<:>>ALV0@<@9@ >@A@:EWAG <8><@A@ E@VJ_ANET@97>E\@6J@>@A@E@ 9@6HWE@AE<45)>H@E@ A@$<@l5@*ANG2#v>@<@A@E@@2@zA_Eb@<\>T58d@JA@>@<@5@E@R>C@A@ <@82@2EEN57>@<@ A@ E@X5@"J_@AREW9>>Ed@.J@>@ A@E@X9@&CC;C@,E@4;@7@H2@Ee>W;T5@TE@>@;@&@CZ@R;P@@B@@ C@ +424;@`+@2@ @/>AT>L9G 5.@^5@ /@ A@ 9@>@ +>t@+@&CN>C0G7C:CT@nC@7@:@>@FCI78:C@ 7@(0@27LCTR7@C@rEZ:LAR>N@l@ZE@ A@>@H:@CP4:=P:L@x@B:@C@(=@4@N0Lv0@ 2T2@@ETHZ&5@,<@H@6G\<*"<@,G@*N7<,@A@7@$:@ >@6A\ZA@VATZA@FA\5P:G>N"A@5@.@>@:@CL@PP50p@rE@C>Z>@:@@C@ AZ:02A@:@b@W5@N:<..5C7C@<@j>@.@:@7@5@ /8|@ /@0C9NG2CAG9I<< @D5T2@(5@9@<@ >@ A@N2:f2@*@ 53+4;PEZ|@*;@E@.C>AG ;.><5@+@C@A@ >@X;@ +3:+@^@0CAG:4>@7"X@.:@4>@87@A@J::@L:@@@H0@@)CEZ9I0(t@6E@A\A@ 9@)@@T.0@(@@^@>C::2(+'7/`@^>@ :@7@`+@(2@jJPJ@ @J.J@F@B@ N@@J:@4@&F8LEC<OTJLVJ@F@O@C@L@N@F>OT0EJPLEC@:h@"C@,O@F@L@J@8:@00@.ORCI&C@O@FQZE:E@Q@b@4>R\:(J\FEH@.J@,F@R@ TNHI6H@T@h4@:@RWVZJNOTO@0<O V@O@ R@ J@l0@V@QZT\LR0HR5G98T@ T@Q@L@H@:H\EP @I E@@@8H@ 9@5@$0@ FTCR >.2C@F@>@N@E\9R@R0< )8P@&E@@@9@"CT9>f)@9@C@0@ A_9T:A@9@>08.0@~>T 9Z2N@3P)@t@*9@@3@>@2@3G=T8N @0>p@*=@$3@ 8@D)@0@:PCIFN3&AP +1 @A@"A0@C@A@:@F@v@+@ EL\JeE\T@>@J@E@.@*>:JE>@J@>NJI>>@J@FJb>W&J@>@*Jb>TDNGZ/8@@*J@>@/@G@HPD@>>@H@"JR>C&J@>@@H54HW01EPAND@NE@A@XH@ZE_\A_ 7*@h@~7@ F@A@ >@ C@EW97R7,p@>A@>@ E@J@G@2@5@7@fANGW>CEIJR5%2%7&*7@ J@A@>@5@2@G@E@FGG@AI7CJ_23EW5I>LH@A@E@>@G@ 7@J@5@2@&L\@W275377EW@\@B@@E@L@2@5@7@nMbGZJ_2E7CAT5CCR@x@A@C@$7@5@M@G@2@C4AWJ@/@1>@TE@H@@@HTEL@LvE@@@H@)10"0@RET@RHWBH@ @@ )@E@:EZHh@Z2IF2@CI?:+@3(9>h@ 9@C@+@AT-<9I*-@ 3@ 9@@A@?@CC)<.C@d)@AP.0>E9%D@nA@9@ >@NA\RA@t.@AbfA@b-"-@F7E?P<@-E4I?@@W@x@7@.7CCRBC@@7@@@<@6@P 7&7@,@@H-@4@V@ :4>LAN+(2&d@l5Z^5@pA@>@ :@5\2@+@H5@2>I:< 5/*5@>@:@N>>>@(A@2@0&@@:><(:>@:@^@PAR@ AZ9\F2@`9@A@v2In2@2@E\+>53;Tp@6E@;@"CT ;:25@+@xC@T;@ +7+@@0G:<>GANd@BA@>@Tj:@>@@@<0@&),EIHW0/@L@l@n0@@@H@)@E@RHW0L@LE@ ) E@ )@$@@0@ H@B@+@CLFP2>AG><A@2A T@N2@,>@,+@A@C@H\2N>TF@$H@2@ >@:@@EN)7@G00<Z0C7>v0@7@>@ :@C@JCP:G>T7@f7@,:@>@C@^BT:L>Z7>4@z7@>@B@:@jBP:G>N7CT@:@7@>@ B@.7(:E@ZCT0G>R>@">(@R@@>@7@C@:@0@f08:>@>>IC@7/6C@7@:@@@>@0@@>L2G:TEh 7%\@&7@E@ >@2@:@f>P2@:G70ETFE@ :@>@7@2@@Fe:Z>T4E7CP@F4@ 7@F@:@>@JFR4:7@:G:F@4:@4@7@ @ DP:L0P&D@C@4@"0@C@$:@Z:CC@0N":@C@80@2L2@@4I4@5_ W7E@P@>@X7@F@b?RDR@_Jh.GEbP@J>@J@0E@rLZ@R.@D@@ L@rMeAWJA@ M@&LCNL@N@:@MeAZ>0H@.M@,A@>@<:@*LW@NEPHWIFEJZ7<C>RC@@>@ F@J@\:@7@A*5@9<DC<: EeD@@\@A@0E@HoAejH@\A\CZ5G@:7T@ C@ A@F@>@:@&E_A_@Ph@5@E@7@A@>@<@@CTAZ2E74>T53;Wp@A@C@;@>@rET >EAIA@>@E@"J_>GGWAGETA@>@2@5@E@G@7@J@JLhAhGhEb@H@07_d@*L@7@,E@ 5T @G@A@@*5@>7N:7@RGZJ_AWCG2G6G@J@2@A@C@jCTHbA_ 0T:LP@bH@A@C@bAWCPH_.C@A@ H@jCCAGFL>NC@A@ F@>@:@0@nE_:T>R4>@x@E@ >@(:@(4@~CP=b:\@00Z:@@ C@=@h0@48@4@5Z OhHbE\d@O@8H@ E@fMbJ_6J@ M@fL_@TE\2@@L@ E@l5@Hh9R@hEh @`@r@@E@H@&F_@Rf@@F@9@Hl@e2@@$H@jDT@BR?ZJo58MRAI.A@ M@jAhMl>M@A@^AZ5L:N>Wh@8..*A@ @5@:@>@d.@CT7W9Z@Z<\->@0@~-@<@7@C@9@@@2\2@@ Ee+T5N>_:Z\@zE@:@$>@2F\>8>@\F@:D>:D@b>_Eo:Zz:@ E@CL5@:E>@ +@$C@ :@"Ab&A@5W:W>\7\@t@n>@ :@+P7@ 5@@+@<\5T9W0Zl@f0@D5@ 9@<@vRAZ2T@A@9@2@IR9@<@>@A@>2@V2@@0+E51E\;TX@;@E@R;LCIAL>I5@+@A@>@C@0;@B+3^+@>@AP::>G7<07x@>A@>@(:@47@V@R7.z@@7@<0@^@()L@\0,9R@f@@ 9@AL9(F9@,)@ 0@A@@ CP@P>E\@Z:@DA@.@>@@-,@:97<:T@J:@7@X+@0>@@ LAL9>.4D@9@ A@>@ .@ >TAT.85N @~A@ .@5@@>@b@$@ICL7LI50C< E@ @F:@C@.:AEJ:@>@ A@ZAW:P>RF5@:@>@+@,A@CT:G^:@$C@@:PE\>T+@5/P@":@E@CL>@AP"C@(A@ZA\:CF+@A@5@:@E:@`@@>@>@r@(0EN2C9@@0@>A@ <@9@ >@N>G@<@A@NAZ>TE\2'&A@>@<@$E@@\AZT:<@>@$2@HA@:<@j@ 0@EZH\2I>IARh@zH@E@A@@>@ET2@N0C@\@Z)@<@>@A@E@$0@2L2@ @+EAR5<;L>N@2;@>@:CP;IA@l;@C@"EZ;LAL>LvE@>@;@A@ G_CN;P>PAT~;@>@A@ C@ G@D5@P+@ J_AT>WEZG\/@54 @@Z5@ >@/@ J@E@G@A@>R+Nb>@+@"@0TH\CT>WARFGA@A0@F@d>@A@H@C@F>FF@vEWA8A@E@AP:CCI>P<@`@jC@A@>@,:@ FT@P:N=C=@@F@= EGH@*E@$@@:@=@6=F\ :80@:@=@F@V@HhPCEC@"C4@J@C@>@E@2<\HbCN.)@3@H@C@8<@*0E^0@N@?CEP<>-09,3*l@rE@<@9@?@F?N7LP9Ip@6>@C@$9@>ENBE@rC\9ZvC@D.@$9@RAZ9P>Rj>@A@9@6@NCP7I-7>T+4T@:E@0:@,>@A@FP^F@Z>PEb:I^E@>@:@">ZCWC@>@J:E5@7C>P+@ 2@>@ :@+: 5@7@\+@2@ C|@R9@<@(>@A@L2@>N9R5N@Z21j2@BE_;W>\+G5<@@>@\;@ E@05@CG;@>NAL+@C@A@>@0;@F+:v+@*@:<>IAL0<77`@&A@ >@ :@@0@7@b@:>@P$E7Cp@Z$@:@7@@@Z0>R0@J@)N@PET9I0,@^@@E@40@49@)@ Id@N.@A@>@:@+G:I2E5I7G:+@ 7@ 5@2@:@>@ 9P)@5>0@t@F5@9@ZEeRH@r7@>@F@B@Fb>b 4G:G<@>@ F@.C\He>EH@>@ C@BFWJb>WfJ@>@:@F@$4@FLL\@CI@I0L:*P@C@F@@@L@`:@0@@:JZMbARFG20@.J@ F@C@L@O@d:@44@@Q_HWERLW5>9<4@jE@H@L@9@Q@5@zThHe2H@$T@6RPBR@JTZ>T@n@T_QWLR )1HI0)0@T@ Q@L@H@^@\EbHlr0@)@H@ @@E@F<:F@.HPH@@EW)@Je?83C8d@RC@J@?@ E@v?GJZEPCGV)@<3@C@ ?@J@E@~EZJZ?GCL6J@C@E@?@*0Lf0@>@ ?LCL)NT@*C@F@?@0<@83@"E\?R\A\9Z @.Ll@:9@ >@A@(.@:MlA_:A@`M@MeJ_A\FRJM@J@F@A@>CT@\<\-C9W@l@&<@9@C@@@h-@.@2EEb>Z:PL@E@2@>@(:@2A\9R5Z_7W 07`@2;@ 7@P0@ >@z2GR2@>@ CP+EAT;T>R5@;@RET>3AG">@E@A@V>NG_A>CGJ>@A@C@G@H5@JbETGZ>NAT+@j@H@B>@J@ E@A@G@ /N5I>\R>@.@0@z5@/@GWETJ\AR>E@G@J@A@"+R+@@Hb>\CTFPAW0RA@A0@nF@C@>@A@0H@FI,CT>LARB0@ C@A@ F@>@6E_>W:P@$8 @.E@,>@,:@d$@:CT=R:N(<4@ @ :@ C@ =@((@J$3~$@@ERHW@LX@j@@H@<@ E@bE'H4@CE:H:<0b@@@ H@E@<@.HN<4@@EEr@@E@ <@H@FEPH\@LJe>T`@NJ@ E@ >@HhE@@9@ <@.CR9Ln9@C@A\9N)@43@D9@(?@A@CN-:"C@H-@@.<AT>P9E2A@>@9@V>,A7 91NA@9@>@*@(AP>C9E>@A@ 9@AR>N9GNA@9@>@(.@:CN@R7C9ET+C\@E@C:b:@4C@>@":3>"ALA@ >@:@j<\@W9Rv<@9@4@@:P>Z7P|@h@:+@(2@+L7@:@L>@+@@0ZRAR2I9L @9@X2@A@ 9Cn9@,>@<@>2@z2@@ +@E\;\57@.E@CTN5@+@xC@H;@+:j+@*@$:<AL0<>C73\@rA@.@Nf:@>@7@@@Z@)NEW9R@W 9@@@@)@E@ 0@N@,FR:@AP+G 28BA@0:@F@@+@2@@-CHWWD@BJ@$>@(.@,E@.@H_@ <@-@~@(FG+::,AG2*FA@@&F@+@:@@2@j@$EI)491@<0)&9@)@0@E@@@/MTrk{MIDI 02Cn@V)N@V!7N!@Z!r!@N$*$@f$4$@2&4>&@R$(B$@^!(f!@N.r@J#f@Z:"@rz@F8J@f4r@6!L !@&!(v!@6"If"@Z"."@^",n"@V"#*"@2!C^!@&4v@F@v1n@R'R@".V"@>$/z$@~%3%@&&>>&@$@$@jNF@!@r!@#C#@.$>r$@!8r!@F8.@<@!<>!@ "GR"@ !3!@<@LB@$1J$@~#6@nz@.!)!@!v!@:"8n"@F" "@$@F$@j$4v$@>:&@#@"!4Z!@Z!'Z!@R"3V"@R".~"@*$L^$@n$%J$@V"1v"@R"~"@:$1&$@&0Z&@f&&>&@j"V"@b&6&@j"1z"@f7f@Rn@N&1&@f$<|"$@D"@&!,*!@ 1@$<$@"J!@BJ$@N+:"+@Z-,R-@^."f.@:-*F-@F+4V+@Z(3f(@Z& V&@N$8*$@:R@r"#f"@2#3N#@B$>N$@J7"@r,^@6"&@:6@3@<@G"@I:@B!(B!@R"R"@V$8*$@>&N&@V$8$@B!^!@B/j@F.>@:$1&$@v&N&@~&.j&@*$7"$@v!'N!@R<"@4n@6:F@^"I"@f"CF"@"!>F!@JGJ@>f@:!/n!@."1n"@F3v@">"@>$GZ$@ $G:$@B%.Z%@V&:&@b&ER&@:$%*$@^#8b#@>4^@:!,V!@J4j@V"1b"@^"0""@"8Z"@>!%.!@V7j@J:Z@&:6&@F):&)@ ($.(@Z#>f#@JE @2$PR$@f$/"$@$F$@V$0*$@~$7b$@j$1*$@z$@F$@b$16$@r$CB$@v$>>$@f$>N$@v$,.$@n$CN$@r$4B$@^$3b$@b$/b$@R3R@~7z@2,Z@f>R@b06@r@v@N1B@bI~@61f@BG@""@b" Z"@j"1N"@j"4f"@^"7R"@V"#@r#)J#@b&IB&@&:N&@^#Cb#@N#'f#@R$C:$@n$>"$@$CB$@b$@>$@z$46$@~$(.$@r$Nb$@b$@:$@7*@$&@!!@2Gn@ 8@.<@Z0@&!>N!@6"Ej"@B$E$@f$N6$@N%)z%@2&:n&@$N$@.#(j#@B@&&@v8*@N%"@:R@R3Z@Z!CR!@Z!>J!@^">J"@ "$N"@v"2"@~"0Z"@n"6"@n",N"@V"0:"@jCZ@)J@^:2@zL@*C&@Lj@>">B"@f$PN$@$>:$@$0&$@*&G>&@~&IB&@f&0"&@.>@&RB&@V&G>&@>j@rLR@NLV@b$PB$@.#GN#@R#C6#@~@V@^>f@V#IR#@N#:J#@f$<6$@R$C$@j$N$@"$LF$@$($@v$PB$@^$T>$@rCR@>4&@/2@@B@ CN@J>@GF@f8&@~IZ@F:>@v@F@n<.@ EZ@1V@>3 @:"E^"@^"#""@"8R"@n".:"@")."@r",B"@z":J"@Z",^"@FNb@^4"@ GJ@Z@*@ IR@J<~@2"ER"@Z"&@F!PJ!@^$G $@6&GV&@v@@6$IJ$@>&.&&@b'3F'@r(:B(@"(L>(@B)<*)@r*f*@N+>J+@6+C&+@^-*&-@2-/N-@J+1V+@B(4f(@F&4 &@2$)"$@~L>@^WR@!)@z&E:&@j&4"&@vE^@~16@~!ER!@R!4J!@b"@F"@j"8Z"@R!GR!@Z!@:!@v>B@r>R@^#/2#@j$">$@V%.>%@~&EF&@n&>N&@^(<(@ &>N&@>#>F#@^$WF$@j$EF$@r-:F-@r-$j-@F+CZ+@>+@^+@R$IZ$@N&/.&@R(>^(@R)>Z)@b):Z)@Z$I$@$>:$@~!32!@!R!@N7B@j<.@~'C6'@&"6&@J$@"$@2'_6'@b&R:&@Z$I$@v'RB'@R&E.&@^$8"$@!:V!@R.*@f0f@Z":Z"@N":Z"@b!@*!@R!Ez!@B>F@B:F@jP~@rIR@.!7N!@B"4Z"@Z$7~$@v$T>$@R%4J%@^&C&@b&NF&@ #4R#@F>Z@R:f@F#,:#@R$1*$@v&&*&@$<$@^$LR$@J!&!@j,.@~3@B%V@Z)2@v!.^!@N"CV"@V"."@"@^"@:!'*!@z/R@N:n@$EZ$@$):$@Z&1*&@n''@v(G.(@f)>)@r*3>*@j+7.+@j*>*@R)'2)@$@N$@j$@^$@N(@F(@R)(2)@Z*0B*@v+IJ+@^+/R+@^-8N-@F+7"+@r(L&(@I*@*b@N&@B&@R$7"$@!&V!@V0J@z/J@n&GR&@N$<"$@v!8F!@b@F@V7"@'>"'@&46&@V$>$@@N@j0b@NEF@n#&@z":B"@^"&F"@b&G:&@.)N)@ )LF)@B)E)@&>&@ &F&@V"8>"@z!L2!@$L$@:$($@bGJ@~/&@~WJ@z!PJ!@vTJ@ZI"@ #@:#@r#4*#@&C6&@&E2&@v##*#@f!/&!@v@V@f$P^$@j$@&$@&<:&@b&>Z&@Z(CJ(@^(IN(@R$WF$@z$P&$@ @J@f>:@z&E>&@$G:$@j$@Z$@V8R@FCJ@v'>.'@r'8R'@b&@R&@f&>>&@r:J@n7j@NP@.!"@F:*@82@^!#J!@b"C:"@j"<^"@N$:6$@v$<6$@Z%*V%@V&@j&@n&CN&@n#C:#@j8f@ E>@N!)6!@V# j#@^$I$@V$>J$@R!<*!@b4&@7Z@6/R@2!/f!@J"CJ"@"!1j!@./j@>>:@:$7&$@&7J&@B$,2$@f!7b!@V8V@j'V@R!3R!@z!n!@>$8"$@~$8^$@V&1:&@Z$>$@v!7J!@^B+@V)C2)@f&>&@En@2:F@b!CV!@V!)!@6">V"@N"0b"@RCJ@Z4b@N$LB$@z$,F$@V&:B&@^$3*$@!)2!@N>@^>"@ &L>&@j&GF&@R6@z>@&PB&@f&C*&@#@.#@#."#@&T6&@j&I>&@v$G$@$PJ$@^"E>"@Z"/V"@j!02!@z!7V!@jIB@Z:>@j$:F$@r$LB$@r$GJ$@Z$@J$@j$::$@n$IJ$@j$RN$@j$@.$@~@6@1b@B!!@v<>@^R!@Z!N!@j"7^"@b"J"@r!:N!@R""&"@j#Rn#@>$WN$@$>$@^$L$@Z%GJ%@z&PB&@N&8&@F&WF&@Z&L>&@4Z@:@"@@N@B!<*!@r#IV#@b$IV$@^$/*$@$LB$@$C*$@7@6G@"!E!@:"GF"@&L@*@n@2$E6$@^$/>$@n(EJ(@v(/(@6+/*+@n+).+@-%>-@J.#Z.@B-(R-@j+F+@n+3B+@j(I.(@(4(@2&@:&@j&$n&@N$PB$@r$*&$@!@R!@Z!'*!@~(WF(@f(P"(@&1"&@&0*&@~$LV$@V$/2$@'T*'@r'3J'@j&@6&@&/&&@~:B@n/r@V!Er!@&!@v!@F"@j"@B"'>"@z"3B"@~":"@n",^"@f"&B"@b"7^"@B"'F"@r1N@^$7$@&PJ&@j$(.$@4.@j*@!Pj!@>!0:!@EJ@f/:@v#@B#@f#7B#@z&GB&@r&8&@#ER#@Z#7R#@R$GB$@j$:.$@z&C:&@(G>(@z(>F(@z$IZ$@b$>J$@j42@z.V@^!7!@v!6@r!'B!@f"IF"@f"$."@ "0^"@J">"@^!Nr!@6G&@^7B@vC*@Rj@z!E:!@r"/Z"@F$Iv$@"%4v%@J&,Z&@6#:#@2CJ@:!@.!@B#*~#@F$L$@FP@&L.@!L*!@""G>"@ !I!@N:@P:@/MTrk4xMIDI 03@Z>@@HRH@@<"@@>@E H@@ H@@)HN@@H@&@.(HE@@H@"@,"@@H4H@"@0@@H<H@@:@@ H>*H@"@ @@HNH@@88H/@@H@&@4@@H8H@@..@@H H@@@"@@H H@@:"@@H8H@"@E&@@HC&H@"@:@@ H>H@@>,H8@@H@@E6@@nHG?W"H@ ?@HG ?:H@ ?@HH@?E.?@H3H@ ?@*?@H:H@?E$H7 ?@H@&?@$H3?@H@"?@,H(?@H@?@.?@H0H@?@$HC ?@H@?@(H@ ?@H@"?>$HG ?@H@"?@,H:?@H@&?>$H7?@H@*?C*?@H/H@&?EHI?@2?G:?@ H@2DTD@ERrE@*H_6H@vDW"D@EL&E@^C@rC@6ARfA@N@\B@@FAeA@C@C@E\E@&AZ A@B>_N>@NRZ>@2@7j@@NA\A@ CGZC@BE\E@CI.C@NJl*J@ HN.H@*LZfL@:QTnQ@"OLvO@.MRfM@2L0L@MN M@JZnJ@.LIfL@H8rH@JJLvJ@EInE@.F:.F@EZE@><">@@@r@@A:nA@C<"C@E:2E@bHIBH@JJEJ@LLRL@BM7FM@ZHPRH@fTbNT@ Q\>Q@FOC&O@zQRVQ@FO%:O@VMQ@JO06O@vQ_^Q@2OEO@MGM@JQR2Q@fO FO@RQTNQ@>O@O@~M7M@2QTBQ@JO*"O@QZVQ@JO*&O@jM8M@JQI6Q@RO"6O@fQZ^Q@:O1&O@ZMI"M@6TZfT@"TRZT@fQIrQ@*O/nO@BMTM@JPJ@fL@"L@MRfM@:L'&L@ZJCjJ@NG8 G@VCNBC@^E8E@F@zF@.H:ZH@>J\^J@ E>&E@rF RF@:FI.F@*E>~E@"CGNC@bA@BA@&C3C@~EZE@nFNfF@6H<^H@>J@vJ@:LPbL@:M7JM@NOCNO@JQLJQ@RR)JR@RVTV@2T8JT@N[e~[@BY1FY@JX7VX@FTR@nR@MLM@&TRZT@ZV_RV@nORVO@.MGZM@BJ7J@&GLvG@fCL*C@ETE@FIF@NEL.E@HWH@2@R6@@"FWF@>Z>@F)>@,<@F<:><@j>I>@.>@ >@.@1B@@f@7@@ALVA@BA/&A@C>bC@VC*C@ET^E@NE J@H@2H@ KNNK@bO FO@RV_V@&T>FT@FQE^Q@Q_RQ@FO:O@nQbjQ@2OG:O@BM>BM@"LP^L@FMW&M@BJT.J@jHRRH@6JNbJ@bHL>H@EZ^E@nFPNF@2EZbE@ZCI>C@bE4E@nGWBG@^HT^H@FJE"J@fLI:L@zML>M@ZOP:O@nO&*O@^M\vM@FL%*L@ZJCJ@bHb^H@ZJGJJ@JL3L@jMG M@6O@fO@.QCjQ@>RCrR@:VZ&V@TL.T@ZRR^R@NTbNT@>`eb`@*^L^@.]N~]@&[)r[@Y<Y@"`NF`@V?R DGD@&E1 ?@xE@F8rF@.He H@^JRBJ@LRRL@*LZL@M\*M@>J>rJ@LCL@"MNrM@OLzO@QLQ@"TWhQZT@ Q@nJZVJ@FL."L@bM7nM@FQ_zQ@BO(>O@NM.M@OT:O@&HCH@*QZQ@RT_nT@NRRR@NRT"R@QPQ@@_XH>@@(H@ @>>@@ H)H@ @4&@@ HEH@&@:@@H4H@@4@@H8H@"@7"@@H4H@"@<@@H:H@@4"@@H<H@"@4"@@H.H@@<*@@ HH@@:@@H/H@@>*@@ H/H@@:@@H4H@@<@@H(H@@>"@@H H@@@"@@HH@@I0H.@@6@76@@$H@:H1 ?LH@$?@HP,?3H@?@H/H@ ?G2?@H)H@?@*?@H(H@?>.?@H(H@ ?@.?@6?@2?@H"H@?E:?@.?E6?@H0H@"?E H@?@H@"?>(H:?@H@*?@$H4?@H@"?@,H/?@H@?@0H?@H@?G HC?@.?8JH@ ?@>C>@EE@>C2>@:>:>@E/E@>E,E.>@E@&>>">@E0E@">E>@E<E@&>>*>@E3E@>G">@E3E@.>>>@E>E@>>2>@E/E@">G>@E3E@>:>@E7E@>7>@E,E@>:>@E/E@>8>@E7E@&>/>@E*E@>@*>@ E'E@>E>@E1E@"><>@>>E0E>@E@">>>@E,E@>@,E.>@E@*><>@E3E@><,E(>@E@&>@>@"E*E@>8,E4>@E@*>/>@E:E@>7*>@E:E@">4>@E3E@>>&>@E4E@&>/>@E<E@>4>@E8E@.>'>@E<E@>P*>@E1E@*>7EC>@0E@z@IHL@@H@F@4H@@:,H/@@H@.@/@@H>H@@1H @@F@&@@@H@">IEE>@E@>>G6>@B>7>@E%E@">8">@E,E@><>@E7"E@">7>@E@E@*>)E4>@ E@>@>@E,E@>G>@E@E@*>1EC >@,E@><">@ E1E@>8>@EE"E@&>(E7>@(E@>4">@E0E@>7>@ EGE@>E$E:>@ > .>@xE@2AN*A@JRJ@*AC:A@JJ@ANA@JIJ@:A>A@JIJ@&A>0J@ A@ J@&A:"A@JEJ@*A>A@JIJ@&A3A@JIJ@"A82A@ J:J@A.*A@J>J@A>A@J@J@"A3(J@A@J@&A3A@JEJ@*A,A@JGJ@&A3$J<A@J@&A1A@J>J@"A4A@JRPA(2J@@A@.HNH@@N6@@H'H@ @C6@@*@*@@H$H@@1@@H@H@*@82@@H"H@"@>@@ H@H@&@>@@6@,2@@:@0@@H3H@@4.@@H,H@@:@@H4H@&@(@@H>H@@@&@@"H.H@ @@.@@HC0@*F@@,H@@I>@@H/$@<2@@$H@j@eXHT@@,H@ @1J@@H'H@@ @@HH@ @@@@H7H@@8(H1@@H@*@ HE@@ H@2@%@@HGH@"@/*@@H8H@&@)@@HEH@.@4@@H@H@@>B@@&@,H7"H@@@6H@EH@L@@f?WHH@?@&HGH@?<?@6?@2?@:?<*?@H&H@?8H7?@H@*?C H3?@H@&?G:?@.?3.?@6?<2?@6?E:?@6?>*?@>?>2?@.?N>?@*?LhHZZ?@F?>H@@?@n><D#D@E4.>@ E@BFIF@FDL,>D@EG6>@FIE@pF@FDWE_D@HE@NACA@.>bv>@J>PDR:D@ EP>@@E@>T>>@E3"E@>4>@>>C.>@ E(E@>I E@ >@E@.>>>@ EEE@">G>@ENE@.>C">@ETE@">I>@&EPE@>I">@N>C Eb>@4E@>I2>@&@CHbAA@ @@dH@*AI JZFA@,J@vG/MNOEO@M@E>E@TA@?Rr?@V@PJ@@RAZ^A@fBZbB@.CLC@2E_*E@rFTF@"IWjI@>JWVJ@2II:I@^JbRJ@FIEBI@NJeRJ@NIP^I@>JRJJ@NFWVF@>HZJH@ZFIVF@:D'D@^ELbE@VCRQ@ZR@bR@>T@NT@RVGJV@fWGRW@BY1bY@.[\ [@Y\Y@j]P"]@VWRV@:TGT@QIrQ@.O:&O@zMTRM@VMR@^TbVT@FR@RR@BQTFQ@^T\JT@nQW:Q@~ONFO@VOTjO@fM<&M@jMIvM@NLWBL@rLEjL@>HEZH@JH>jH@REI*E@~E@vE@BCNRC@NCCC@*E\bE@NEP^E@CI>C@>E>"E@ FL^F@ZH:6H@RJefJ@"EPBE@>F:JF@NC0NC@NEZFE@BAW2A@vCR^C@:@C.@@fAE^A@>>NN>@J>G>>@J@<@@:AWfA@*@CZ@@">G>>@r<@J=(=@>P>@2AWZA@BE>JE@JG>~G@2HGVH@:J3RJ@.LCL@HeNH@nFR>F@EWRE@N>>@@7@@.ALA@*C/2C@E::E@F8.F@.HL*H@J8J@LIL@6MTM@"O0"O@QEQ@RRVR@ TWZT@>4@I>@@@2AR6A@C88E>C@Y@"[.[@]G]@^PB^@`Z"`@2[E\P[@]E \@l]@N[C>[@ZCBZ@Y@Y@NX%2X@W:.W@VN.V@URNU@TWT@>S..S@ R>R@QPQ@&PCFP@&O0O@ NTFN@MRM@FL.L@ K:K@JN2J@ICJI@HLH@6G0&G@F$F@EIE@.D7VD@C,C@BCRB@ AIA@R>4(?8>@@?@ <><@">0&>@?E.?@"AP6A@C>,E: C@0E@F&F@.H\H@:JRJ@KP>K@&OZVO@ML6M@K7HJCK@J@H\:H@fJ:J@>H3$JTH@J@6KVK@*E)E@BJ((K3J@(K@vETHPE@(H@ J\ KW J@hK@.EPE@HH@ J:K@J@K@:JEJ@FMNQeM@`Q@fJNJ@H\2H@6OeO@6HLJH@MbJM@LL4J\L@0J@HI6H@E@E@>C<*C@E$2E@ HZPELH@8E@A0RA@@CPAZ@@8A@He&H@ERRE@6APNA@"@W @@J>\N>@AG2A@ C3:C@GRG@2GLG@JIJ@L@L@O\O@"OGO@Q:Q@"T/T@X@X@X4BX@SRS@QP`OTQ@ O@MZM@>JNLH@J@H@EERE@GP:>@@G@@6ARA@"ACPA@(C@ ECFPE@$F@>H8J<H@J@&NLN@&M>M@Vh`T0&V@$T@fL14OT L@PRO@.RG"P@R@P$QRP@O@Q@O@L>L@FJ>J@&H$H@&FEKIK@H.H@\F@*OTBO@:E8"E@&E E@FKGLlEN K@DE@8L@NM_HRH@M@fOrbO@BEG6E@KL*K@LL>L@H@"H@ETE@FC/EZC@DE@*H_"H@@ev@@.@bf@@J>/@>@@@?$j?@&>.6>@"?P>N>@?@*>L?P">@ ?@*>G ?L>@ ?@&>W.>@?10>P ?@,>@?W&?@>@4?Z>@$?@>P6>@?C?@>T$D)>@C@?R8C0?@4C@"E7JhE@8J@6ATA@CI2C@F>F@nMPM@ O@O@RE VR6V@R@ MTM@ZJC&J@F:2F@C7C@.AP:A@FeF@&He6H@Je J@Me&M@OZFO@bO\>O@Q<Q@M\zM@.J_ZJ@&LNBL@NMRM@&HTBH@^HW>H@JI7I@.JP.J@FJW^J@.LGbL@2MTVM@^QZQ@2OEfO@FMRFM@VO@O@zQCVQ@ZG@H@H@G@:H H@"T\ZT@.HTH@ZT&T@2H/H@RH)H@:H@H@T8T@*H,H@T7T@H@H@&T,T@&H TI H@T@&H<H@T:T@H@H@T4T@.T@T@ HW*H@T T@HEH@ T8T@.H1H@:HIH@rTIT@&H:H@ T7T@H@H@~T@T@HCH@&T<T@HCH@"T3T@H>H@TGT@2H'H@ TNT@^T%T@ H\ ThT@DH@.@LHW.H@@@H'H@ @G>@@6@,@@H,H@ @:&@@H3H@@)@@ H8H@*@)@@H7H@@@@@H7H@2@@@HCH@"@%"@@H)H@@)@@H/H@@0@@H<H@@,@@H3H@@:@@HH@@4@@H&H@@.@@ H'H@@7@@H$@3&@@H@^H0?T H@(?@HEH@?8?@H7H@?@.?@H H@?E"?@J?4 H.?@H@&?.?@HCH@?:,H<?@H@?8.?@H3H@?@.?@H&H@?>.?@H(H@?< H?@@H@?4"?@HH@?86?@2?GB?@>?H7H@@?@jFC$:F@:@2:8*:@.:I*:@2:C.:@E4:C.:@.:L6:@.:>2:@ E@ :E2:@::@EG:@ E@":@(E8 :@E@::EI:@ E@":>EL:@E@:@(E@:@E@:@6:@E'E@:E*:@ E(E@:>2:@6:<$E3:@$E@:3.:@.:&2:@">>@6>I&>@>>IF1>@F@2>I F>>@F@*>C0F%>@F@>> F.>@F@2>@>@F:F@&>4F(>@F@&>>>@ F/F@&>@F8>@ F@">8$F) >@F@">8">@>>LF>@4F@n@8H, @@H@@*@@H@H@.@8@@H<H@2@ @@H>H@*@'*@@ H%H@@* HE@@ H@.@)@@HLH@.@:(H< @@H@@ H3@@H@6@&HC @@H@6@*@@H3H@&@)@@H)H@&@(@@ H'H@"@3@@HH@@1@@B@<0H$ @@PH@BA,&A@JLAJ@>J7J@JJEA@ J@2A JP A@ J@.A& JEA@J@"A0 JIA@ J@AGA@JE.J@ARA@JGJ@"APJCA@0J@ALA@J>"J@.AIA@>AC*A@:J.ACA@J@>A1J4A@J@6AE J4A@J@>JLA4A@J@A C@J@*CJ8 C@J@*C'J<C@ J@&C( JE C@J@.C) J7C@J@&C: J4C@J@>JGJ@:C3J7J@C@2C0J@C@C<C@JC.J@C@>C>C@RCC>F:C@F@2C8F8C@F@6CG F<C@BC<&F@ C@&HIH@C4C@&HEH@ C<C@*H*,C3C@>C:2C@,H@ CL6C@JZJ@C<.C@ F<F@CG*C@J3J@&C>FJNC@0J@&C3C@$F@*@\Hef@@ H@E7"E@@.Z@@>.>@ ;G<@;@jHH@r@0@@2@<@@H@E H@E@@<@@ E/ HE@H@@4@@H>E0H@E@&@@@@E1H1E@H@@>,H'@@6@,@@$H@E6E@BE8HE @BH@@@jJR6J@??@"J:J@?<&?@6?G&?@J4J@?@JL?@6?L J@DE@HhJ?@H@F?P*?@.?P4E<*?@.JI:E@@J@E%??@?*E@"HP?@ E'H@E@?@H\ E>&H@?@E@N?C>?@r>G2>@>>@>@>A3>8>@A@ EE@>8 E0A>@ A@E@>>>@AE3A@ E@>G A&EG>@A@E@:>AE* >@A@E@>I$A E(>@E@&>8>@ E:E@A@>:A >@E< A@E@*>@ A&>@ E/A@E@">CA>@E@A@ E@:AENE@A@*><A>@ E>A@E@BA.E3H>E@xA@AC&>@HA@:2:@:&::@A4A@::>$A<:@>@ A@":<$AC:@A@:NALz:@ A@B>@ :jA@:@.:WCP.:@pC@"@:@@.@ H"@@H@"@HG@@H@2@<@@6@:*@@H@H@@PHP"@@&@8V@@j@f@@:>@2>E:>@:>>>@A@">I>@AA@.>: AC>@A@>>G(A >@*>.V>@DA@nAR*A@ J,J@AIE( JTA@E@$J@"A8E7J@A@ E@ J@&ACA@EJ,E@J@&A<A@J<J@.A*EJNA@J@ E@*A."A@J'J@JJ3$A:J@A@6H<@@*@@H@2@N(H: @@H@@GH%@@H@"@C,H<@@ H@@)$HG@@H@*@7(HG@@H@.@&H< @@2@$@@0H@.

PFG">@ F@HT@RVH@@@~FbI<@lF@>@&FW>\>@$F@O@ HIH@*JIJ@KNK@"L* MLL@M@O\2O@6HEH@JN(K:K@J@L.MGL@ M@OT:O@*HC INH@$I@ JIKE J@K@MIO@2H#H@JL$K*&K@J@L"MIL@M@O\6O@FHI"H@JEJ@K>K@MI:M@OZFO@2TrZT@BQT>Q@VOCO@~Q7"Q@NMLM@OLNO@:L0bL@>MWVM@>JP>J@nL7BL@JH:NH@^FGvF@EG2E@jF3R>@f>R^>@O_ZO@fQ_Q@^Vb:V@TbFT@ZRNBR@^PWFP@RQWQ@^OTNO@RMNNM@JOZFO@ZJ::J@rLWRL@BMRJM@RHTH@VJT>J@KIK@L<2L@K_QeK@xQ@fK\.K@QGL.L@DQ@6O_>O@^GWHRH@,G@RIGI@JZVJ@.M\>M@:CI$FI C@TF@bDP*D@E42E@.HTbH@vHZ@RH@@@FHZ@T"H@@@^DN?3D@E?@ J@ ?C,JZ*?@,J@>?WJZ"?@ J@?T6?@J"J@&?0 JP?@J@B??@.?4DHZRH@?@N>E@E@>N0EL>>@0E@>L(ELnE@4>@2*<@PC@&RZ>@ZAb"A@:9N>NB9@(>@F;bV;@N>WR>@FAI:A@VC\RC@bEbjE@>AE>A@:>Nj>@RCRC@ 9W*9@*@Z&@@&<'7@:@6AI 9C 58^A@5@,<@9@/faust-0.9.46/examples/faust-stk/pd-patches/fancy/what-a-friend/piano.pd0000644000175000017500000001772411702130733025630 0ustar orlareyorlarey#N canvas 0 0 450 300 10; #X obj 10 330 inlet; #X obj 130 330 inlet; #X obj 190 330 r \$0-read; #X obj 130 360 r \$0-all; #X obj 190 360 faust-control \$0; #X obj 190 390 s \$0-write; #X obj 130 390 r \$0-in; #X obj 130 660 s \$0-out; #X obj 10 420 faust-gate 1; #X obj 130 420 piano~; #X obj 10 450 faust-gate 2; #X obj 130 450 piano~; #X obj 10 480 faust-gate 3; #X obj 130 480 piano~; #X obj 10 510 faust-gate 4; #X obj 130 510 piano~; #X obj 10 540 faust-gate 5; #X obj 130 540 piano~; #X obj 10 570 faust-gate 6; #X obj 130 570 piano~; #X obj 10 600 faust-gate 7; #X obj 130 600 piano~; #X obj 10 630 faust-gate 8; #X obj 130 630 piano~; #X obj 130 690 outlet~; #X obj 190 690 outlet~; #X obj 10 690 outlet; #X connect 1 0 4 0; #X connect 2 0 4 0; #X connect 4 0 5 0; #X connect 1 0 26 0; #X connect 6 0 9 0; #X connect 9 0 7 0; #X connect 0 0 8 0; #X connect 8 0 9 0; #X connect 3 0 9 0; #X connect 0 0 10 0; #X connect 10 0 11 0; #X connect 3 0 11 0; #X connect 0 0 12 0; #X connect 12 0 13 0; #X connect 3 0 13 0; #X connect 0 0 14 0; #X connect 14 0 15 0; #X connect 3 0 15 0; #X connect 0 0 16 0; #X connect 16 0 17 0; #X connect 3 0 17 0; #X connect 0 0 18 0; #X connect 18 0 19 0; #X connect 3 0 19 0; #X connect 0 0 20 0; #X connect 20 0 21 0; #X connect 3 0 21 0; #X connect 0 0 22 0; #X connect 22 0 23 0; #X connect 3 0 23 0; #X connect 9 1 24 0; #X connect 9 2 25 0; #X connect 11 1 24 0; #X connect 11 2 25 0; #X connect 13 1 24 0; #X connect 13 2 25 0; #X connect 15 1 24 0; #X connect 15 2 25 0; #X connect 17 1 24 0; #X connect 17 2 25 0; #X connect 19 1 24 0; #X connect 19 2 25 0; #X connect 21 1 24 0; #X connect 21 2 25 0; #X connect 23 1 24 0; #X connect 23 2 25 0; #X obj 10 30 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Brightness-Factor \$0-piano/Physical-Parameters/Brightness-Factor Brightness-Factor -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 30 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Brightness-Factor \$0-piano/Physical-Parameters/Brightness-Factor empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 60 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Detuning-Factor \$0-piano/Physical-Parameters/Detuning-Factor Detuning-Factor -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 60 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Detuning-Factor \$0-piano/Physical-Parameters/Detuning-Factor empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 90 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Hammer-Hardness \$0-piano/Physical-Parameters/Hammer-Hardness Hammer-Hardness -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 90 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Hammer-Hardness \$0-piano/Physical-Parameters/Hammer-Hardness empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 120 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Stiffness-Factor \$0-piano/Physical-Parameters/Stiffness-Factor Stiffness-Factor -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 120 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Stiffness-Factor \$0-piano/Physical-Parameters/Stiffness-Factor empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 150 hsl 128 15 0 1 0 0 \$0-piano/Reverb/reverbGain \$0-piano/Reverb/reverbGain reverbGain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 150 nbx 5 14 0 1 0 0 \$0-piano/Reverb/reverbGain \$0-piano/Reverb/reverbGain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 180 hsl 128 15 0.01 2 0 0 \$0-piano/Reverb/roomSize \$0-piano/Reverb/roomSize roomSize -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 180 nbx 5 14 0.01 2 0 0 \$0-piano/Reverb/roomSize \$0-piano/Reverb/roomSize empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 210 hsl 128 15 0 1 0 0 \$0-piano/Spat/pan-angle \$0-piano/Spat/pan-angle pan-angle -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 210 nbx 5 14 0 1 0 0 \$0-piano/Spat/pan-angle \$0-piano/Spat/pan-angle empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 240 hsl 128 15 0 1 0 0 \$0-piano/Spat/spatial-width \$0-piano/Spat/spatial-width spatial-width -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 240 nbx 5 14 0 1 0 0 \$0-piano/Spat/spatial-width \$0-piano/Spat/spatial-width empty 0 -6 0 10 -262144 -1 -1 256; #X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; #X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; #X obj 450 10 r \$0-init; #X obj 858 10 s \$0-all; #X obj 1062 10 s \$0-read; #X obj 1266 10 r \$0-write; #X msg 450 30 1; #X obj 450 50 s \$0-active; #X connect 49 0 50 0; #X obj 858 30 r \$0-active; #X msg 858 50 active \$1; #X connect 51 0 52 0; #X connect 52 0 46 0; #X obj 1266 30 route active; #X obj 1266 50 s \$0-active; #X connect 48 0 53 0; #X connect 53 0 54 0; #X msg 450 70 0; #X obj 450 90 s \$0-piano/Physical-Parameters/Brightness-Factor; #X connect 45 0 55 0; #X connect 55 0 56 0; #X obj 858 70 r \$0-piano/Physical-Parameters/Brightness-Factor; #X msg 858 90 /piano/Physical-Parameters/Brightness-Factor \$1; #X connect 57 0 58 0; #X connect 58 0 46 0; #X obj 1266 70 route /piano/Physical-Parameters/Brightness-Factor; #X obj 1266 90 s \$0-piano/Physical-Parameters/Brightness-Factor; #X connect 53 1 59 0; #X connect 59 0 60 0; #X msg 450 110 0.1; #X obj 450 130 s \$0-piano/Physical-Parameters/Detuning-Factor; #X connect 45 0 61 0; #X connect 61 0 62 0; #X obj 858 110 r \$0-piano/Physical-Parameters/Detuning-Factor; #X msg 858 130 /piano/Physical-Parameters/Detuning-Factor \$1; #X connect 63 0 64 0; #X connect 64 0 46 0; #X obj 1266 110 route /piano/Physical-Parameters/Detuning-Factor; #X obj 1266 130 s \$0-piano/Physical-Parameters/Detuning-Factor; #X connect 59 1 65 0; #X connect 65 0 66 0; #X msg 450 150 0.1; #X obj 450 170 s \$0-piano/Physical-Parameters/Hammer-Hardness; #X connect 45 0 67 0; #X connect 67 0 68 0; #X obj 858 150 r \$0-piano/Physical-Parameters/Hammer-Hardness; #X msg 858 170 /piano/Physical-Parameters/Hammer-Hardness \$1; #X connect 69 0 70 0; #X connect 70 0 46 0; #X obj 1266 150 route /piano/Physical-Parameters/Hammer-Hardness; #X obj 1266 170 s \$0-piano/Physical-Parameters/Hammer-Hardness; #X connect 65 1 71 0; #X connect 71 0 72 0; #X msg 450 190 0.28; #X obj 450 210 s \$0-piano/Physical-Parameters/Stiffness-Factor; #X connect 45 0 73 0; #X connect 73 0 74 0; #X obj 858 190 r \$0-piano/Physical-Parameters/Stiffness-Factor; #X msg 858 210 /piano/Physical-Parameters/Stiffness-Factor \$1; #X connect 75 0 76 0; #X connect 76 0 46 0; #X obj 1266 190 route /piano/Physical-Parameters/Stiffness-Factor; #X obj 1266 210 s \$0-piano/Physical-Parameters/Stiffness-Factor; #X connect 71 1 77 0; #X connect 77 0 78 0; #X msg 450 230 0.137; #X obj 450 250 s \$0-piano/Reverb/reverbGain; #X connect 45 0 79 0; #X connect 79 0 80 0; #X obj 858 230 r \$0-piano/Reverb/reverbGain; #X msg 858 250 /piano/Reverb/reverbGain \$1; #X connect 81 0 82 0; #X connect 82 0 46 0; #X obj 1266 230 route /piano/Reverb/reverbGain; #X obj 1266 250 s \$0-piano/Reverb/reverbGain; #X connect 77 1 83 0; #X connect 83 0 84 0; #X msg 450 270 0.72; #X obj 450 290 s \$0-piano/Reverb/roomSize; #X connect 45 0 85 0; #X connect 85 0 86 0; #X obj 858 270 r \$0-piano/Reverb/roomSize; #X msg 858 290 /piano/Reverb/roomSize \$1; #X connect 87 0 88 0; #X connect 88 0 46 0; #X obj 1266 270 route /piano/Reverb/roomSize; #X obj 1266 290 s \$0-piano/Reverb/roomSize; #X connect 83 1 89 0; #X connect 89 0 90 0; #X msg 450 310 0.6; #X obj 450 330 s \$0-piano/Spat/pan-angle; #X connect 45 0 91 0; #X connect 91 0 92 0; #X obj 858 310 r \$0-piano/Spat/pan-angle; #X msg 858 330 /piano/Spat/pan-angle \$1; #X connect 93 0 94 0; #X connect 94 0 46 0; #X obj 1266 310 route /piano/Spat/pan-angle; #X obj 1266 330 s \$0-piano/Spat/pan-angle; #X connect 89 1 95 0; #X connect 95 0 96 0; #X msg 450 350 0.5; #X obj 450 370 s \$0-piano/Spat/spatial-width; #X connect 45 0 97 0; #X connect 97 0 98 0; #X obj 858 350 r \$0-piano/Spat/spatial-width; #X msg 858 370 /piano/Spat/spatial-width \$1; #X connect 99 0 100 0; #X connect 100 0 46 0; #X obj 1266 350 route /piano/Spat/spatial-width; #X obj 1266 370 s \$0-piano/Spat/spatial-width; #X connect 95 1 101 0; #X connect 101 0 102 0; #X coords 0 -1 1 1 235 260 1 0 0; #X text 0 280 Generated Fri Sep 16 14:36:27 2011 by faust2pd v2.2. See http://faust.grame.fr and http://pure-lang.googlecode.com.; faust-0.9.46/examples/faust-stk/pd-patches/fancy/what-a-friend/what-a-friend.pd0000644000175000017500000000244111702130733027136 0ustar orlareyorlarey#N canvas 265 97 1038 587 10; #X obj 20 29 midi-in 8; #X obj 20 80 piano; #X obj 276 386 audio-out; #X obj 276 28 midi-in 2; #X obj 276 80 bass; #X obj 551 78 modalBar; #X obj 654 26 midi-in 8; #X obj 390 346 *~ 0.5; #X obj 504 345 *~ 0.5; #X obj 134 347 *~ 0.2; #X obj 248 346 *~ 0.2; #X obj 639 481 seq; #X msg 671 411 bang; #X msg 671 438 stop; #X msg 721 437 pause; #X msg 781 437 continue; #X text 709 410 play; #X obj 639 508 midiout; #X obj 522 415 loadbang; #X msg 522 439 read what_a_friend.mid; #X text 48 9 MIDI channel must be set to 1; #X text 311 8 MIDI channel must be set to 2; #X text 684 7 MIDI channel must be set to 3; #X msg 91 427 \; pd dsp 1; #X msg 91 465 \; pd dsp 0; #X text 537 530 In order to have this example work \, input device and output device in MIDI settings must be set to the same internal driver.; #X connect 0 0 1 0; #X connect 0 1 1 1; #X connect 1 1 9 0; #X connect 1 2 10 0; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 7 0; #X connect 4 2 8 0; #X connect 5 1 2 1; #X connect 5 2 2 2; #X connect 6 0 5 0; #X connect 6 1 5 1; #X connect 7 0 2 1; #X connect 8 0 2 2; #X connect 9 0 2 1; #X connect 10 0 2 2; #X connect 11 0 17 0; #X connect 12 0 11 0; #X connect 13 0 11 0; #X connect 14 0 11 0; #X connect 15 0 11 0; #X connect 18 0 19 0; #X connect 19 0 11 0; faust-0.9.46/examples/faust-stk/pd-patches/fancy/what-a-friend/bass.pd0000644000175000017500000001572211702130733025446 0ustar orlareyorlarey#N canvas 0 0 450 300 10; #X obj 10 330 inlet; #X obj 130 330 inlet; #X obj 190 330 r \$0-read; #X obj 130 360 r \$0-all; #X obj 190 360 faust-control \$0; #X obj 190 390 s \$0-write; #X obj 130 390 r \$0-in; #X obj 130 480 s \$0-out; #X obj 10 420 faust-gate 1; #X obj 130 420 bass~; #X obj 10 450 faust-gate 2; #X obj 130 450 bass~; #X obj 130 510 outlet~; #X obj 190 510 outlet~; #X obj 10 510 outlet; #X connect 1 0 4 0; #X connect 2 0 4 0; #X connect 4 0 5 0; #X connect 1 0 14 0; #X connect 6 0 9 0; #X connect 9 0 7 0; #X connect 0 0 8 0; #X connect 8 0 9 0; #X connect 3 0 9 0; #X connect 0 0 10 0; #X connect 10 0 11 0; #X connect 3 0 11 0; #X connect 9 1 12 0; #X connect 9 2 13 0; #X connect 11 1 12 0; #X connect 11 2 13 0; #X obj 10 30 hsl 128 15 20 1000 0 0 \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency Modulation-Frequency -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 30 nbx 5 14 20 1000 0 0 \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 60 nbx 5 14 0 4 0 0 \$0-bass/Nonlinear-Filter-Parameters/Modulation-Type \$0-bass/Nonlinear-Filter-Parameters/Modulation-Type Modulation-Type 0 -6 0 10 -262144 -1 -1 256; #X obj 10 90 hsl 128 15 0 1 0 0 \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity Nonlinearity -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 90 nbx 5 14 0 1 0 0 \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 120 hsl 128 15 0 1 0 0 \$0-bass/Physical-Parameters/Touch-Length \$0-bass/Physical-Parameters/Touch-Length Touch-Length -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 120 nbx 5 14 0 1 0 0 \$0-bass/Physical-Parameters/Touch-Length \$0-bass/Physical-Parameters/Touch-Length empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 150 hsl 128 15 0 1 0 0 \$0-bass/Reverb/reverbGain \$0-bass/Reverb/reverbGain reverbGain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 150 nbx 5 14 0 1 0 0 \$0-bass/Reverb/reverbGain \$0-bass/Reverb/reverbGain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 180 hsl 128 15 0.01 2 0 0 \$0-bass/Reverb/roomSize \$0-bass/Reverb/roomSize roomSize -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 180 nbx 5 14 0.01 2 0 0 \$0-bass/Reverb/roomSize \$0-bass/Reverb/roomSize empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 210 hsl 128 15 0 1 0 0 \$0-bass/Spat/pan-angle \$0-bass/Spat/pan-angle pan-angle -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 210 nbx 5 14 0 1 0 0 \$0-bass/Spat/pan-angle \$0-bass/Spat/pan-angle empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 240 hsl 128 15 0 1 0 0 \$0-bass/Spat/spatial-width \$0-bass/Spat/spatial-width spatial-width -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 240 nbx 5 14 0 1 0 0 \$0-bass/Spat/spatial-width \$0-bass/Spat/spatial-width empty 0 -6 0 10 -262144 -1 -1 256; #X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; #X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; #X obj 450 10 r \$0-init; #X obj 938 10 s \$0-all; #X obj 1182 10 s \$0-read; #X obj 1426 10 r \$0-write; #X msg 450 30 1; #X obj 450 50 s \$0-active; #X connect 36 0 37 0; #X obj 938 30 r \$0-active; #X msg 938 50 active \$1; #X connect 38 0 39 0; #X connect 39 0 33 0; #X obj 1426 30 route active; #X obj 1426 50 s \$0-active; #X connect 35 0 40 0; #X connect 40 0 41 0; #X msg 450 70 220; #X obj 450 90 s \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 32 0 42 0; #X connect 42 0 43 0; #X obj 938 70 r \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency; #X msg 938 90 /bass/Nonlinear-Filter-Parameters/Modulation-Frequency \$1; #X connect 44 0 45 0; #X connect 45 0 33 0; #X obj 1426 70 route /bass/Nonlinear-Filter-Parameters/Modulation-Frequency; #X obj 1426 90 s \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 40 1 46 0; #X connect 46 0 47 0; #X msg 450 110 0; #X obj 450 130 s \$0-bass/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 32 0 48 0; #X connect 48 0 49 0; #X obj 938 110 r \$0-bass/Nonlinear-Filter-Parameters/Modulation-Type; #X msg 938 130 /bass/Nonlinear-Filter-Parameters/Modulation-Type \$1; #X connect 50 0 51 0; #X connect 51 0 33 0; #X obj 1426 110 route /bass/Nonlinear-Filter-Parameters/Modulation-Type; #X obj 1426 130 s \$0-bass/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 46 1 52 0; #X connect 52 0 53 0; #X msg 450 150 0; #X obj 450 170 s \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 32 0 54 0; #X connect 54 0 55 0; #X obj 938 150 r \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity; #X msg 938 170 /bass/Nonlinear-Filter-Parameters/Nonlinearity \$1; #X connect 56 0 57 0; #X connect 57 0 33 0; #X obj 1426 150 route /bass/Nonlinear-Filter-Parameters/Nonlinearity; #X obj 1426 170 s \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 52 1 58 0; #X connect 58 0 59 0; #X msg 450 190 0.15; #X obj 450 210 s \$0-bass/Physical-Parameters/Touch-Length; #X connect 32 0 60 0; #X connect 60 0 61 0; #X obj 938 190 r \$0-bass/Physical-Parameters/Touch-Length; #X msg 938 210 /bass/Physical-Parameters/Touch-Length \$1; #X connect 62 0 63 0; #X connect 63 0 33 0; #X obj 1426 190 route /bass/Physical-Parameters/Touch-Length; #X obj 1426 210 s \$0-bass/Physical-Parameters/Touch-Length; #X connect 58 1 64 0; #X connect 64 0 65 0; #X msg 450 230 0.137; #X obj 450 250 s \$0-bass/Reverb/reverbGain; #X connect 32 0 66 0; #X connect 66 0 67 0; #X obj 938 230 r \$0-bass/Reverb/reverbGain; #X msg 938 250 /bass/Reverb/reverbGain \$1; #X connect 68 0 69 0; #X connect 69 0 33 0; #X obj 1426 230 route /bass/Reverb/reverbGain; #X obj 1426 250 s \$0-bass/Reverb/reverbGain; #X connect 64 1 70 0; #X connect 70 0 71 0; #X msg 450 270 0.72; #X obj 450 290 s \$0-bass/Reverb/roomSize; #X connect 32 0 72 0; #X connect 72 0 73 0; #X obj 938 270 r \$0-bass/Reverb/roomSize; #X msg 938 290 /bass/Reverb/roomSize \$1; #X connect 74 0 75 0; #X connect 75 0 33 0; #X obj 1426 270 route /bass/Reverb/roomSize; #X obj 1426 290 s \$0-bass/Reverb/roomSize; #X connect 70 1 76 0; #X connect 76 0 77 0; #X msg 450 310 0.6; #X obj 450 330 s \$0-bass/Spat/pan-angle; #X connect 32 0 78 0; #X connect 78 0 79 0; #X obj 938 310 r \$0-bass/Spat/pan-angle; #X msg 938 330 /bass/Spat/pan-angle \$1; #X connect 80 0 81 0; #X connect 81 0 33 0; #X obj 1426 310 route /bass/Spat/pan-angle; #X obj 1426 330 s \$0-bass/Spat/pan-angle; #X connect 76 1 82 0; #X connect 82 0 83 0; #X msg 450 350 0.5; #X obj 450 370 s \$0-bass/Spat/spatial-width; #X connect 32 0 84 0; #X connect 84 0 85 0; #X obj 938 350 r \$0-bass/Spat/spatial-width; #X msg 938 370 /bass/Spat/spatial-width \$1; #X connect 86 0 87 0; #X connect 87 0 33 0; #X obj 1426 350 route /bass/Spat/spatial-width; #X obj 1426 370 s \$0-bass/Spat/spatial-width; #X connect 82 1 88 0; #X connect 88 0 89 0; #X coords 0 -1 1 1 235 260 1 0 0; #X text 0 280 Generated Fri Sep 16 14:34:48 2011 by faust2pd v2.2. See http://faust.grame.fr and http://pure-lang.googlecode.com.; faust-0.9.46/examples/faust-stk/pd-patches/fancy/what-a-friend/modalBar.pd0000644000175000017500000003116111702130733026232 0ustar orlareyorlarey#N canvas 0 0 450 300 10; #X obj 10 360 inlet; #X obj 130 360 inlet; #X obj 190 360 r \$0-read; #X obj 130 390 r \$0-all; #X obj 190 390 faust-control \$0; #X obj 190 420 s \$0-write; #X obj 130 420 r \$0-in; #X obj 130 690 s \$0-out; #X obj 10 450 faust-gate 1; #X obj 130 450 modalBar~; #X obj 10 480 faust-gate 2; #X obj 130 480 modalBar~; #X obj 10 510 faust-gate 3; #X obj 130 510 modalBar~; #X obj 10 540 faust-gate 4; #X obj 130 540 modalBar~; #X obj 10 570 faust-gate 5; #X obj 130 570 modalBar~; #X obj 10 600 faust-gate 6; #X obj 130 600 modalBar~; #X obj 10 630 faust-gate 7; #X obj 130 630 modalBar~; #X obj 10 660 faust-gate 8; #X obj 130 660 modalBar~; #X obj 130 720 outlet~; #X obj 190 720 outlet~; #X obj 10 720 outlet; #X connect 1 0 4 0; #X connect 2 0 4 0; #X connect 4 0 5 0; #X connect 1 0 26 0; #X connect 6 0 9 0; #X connect 9 0 7 0; #X connect 0 0 8 0; #X connect 8 0 9 0; #X connect 3 0 9 0; #X connect 0 0 10 0; #X connect 10 0 11 0; #X connect 3 0 11 0; #X connect 0 0 12 0; #X connect 12 0 13 0; #X connect 3 0 13 0; #X connect 0 0 14 0; #X connect 14 0 15 0; #X connect 3 0 15 0; #X connect 0 0 16 0; #X connect 16 0 17 0; #X connect 3 0 17 0; #X connect 0 0 18 0; #X connect 18 0 19 0; #X connect 3 0 19 0; #X connect 0 0 20 0; #X connect 20 0 21 0; #X connect 3 0 21 0; #X connect 0 0 22 0; #X connect 22 0 23 0; #X connect 3 0 23 0; #X connect 9 1 24 0; #X connect 9 2 25 0; #X connect 11 1 24 0; #X connect 11 2 25 0; #X connect 13 1 24 0; #X connect 13 2 25 0; #X connect 15 1 24 0; #X connect 15 2 25 0; #X connect 17 1 24 0; #X connect 17 2 25 0; #X connect 19 1 24 0; #X connect 19 2 25 0; #X connect 21 1 24 0; #X connect 21 2 25 0; #X connect 23 1 24 0; #X connect 23 2 25 0; #X obj 10 30 hsl 128 15 1 15 0 0 \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq Vibrato-Freq -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 30 nbx 5 14 1 15 0 0 \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 60 hsl 128 15 0 1 0 0 \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain Vibrato-Gain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 60 nbx 5 14 0 1 0 0 \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 90 hsl 128 15 20 1000 0 0 \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency Modulation-Frequency -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 90 nbx 5 14 20 1000 0 0 \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 120 nbx 5 14 0 4 0 0 \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type Modulation-Type 0 -6 0 10 -262144 -1 -1 256; #X obj 10 150 hsl 128 15 0 1 0 0 \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity Nonlinearity -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 150 nbx 5 14 0 1 0 0 \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 90 nbx 5 14 0 8 0 0 \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Preset \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Preset Preset 0 -6 0 10 -262144 -1 -1 256; #X obj 235 120 nbx 5 14 0 1 0 0 \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Resonance \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Resonance Resonance 0 -6 0 10 -262144 -1 -1 256; #X obj 235 150 hsl 128 15 0 1 0 0 \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Stick-Hardness \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Stick-Hardness Stick-Hardness -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 150 nbx 5 14 0 1 0 0 \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Stick-Hardness \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Stick-Hardness empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 180 hsl 128 15 0 1 0 0 \$0-modalBar/Reverb/reverbGain \$0-modalBar/Reverb/reverbGain reverbGain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 180 nbx 5 14 0 1 0 0 \$0-modalBar/Reverb/reverbGain \$0-modalBar/Reverb/reverbGain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 210 hsl 128 15 0.01 2 0 0 \$0-modalBar/Reverb/roomSize \$0-modalBar/Reverb/roomSize roomSize -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 210 nbx 5 14 0.01 2 0 0 \$0-modalBar/Reverb/roomSize \$0-modalBar/Reverb/roomSize empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 240 hsl 128 15 0 1 0 0 \$0-modalBar/Spat/pan-angle \$0-modalBar/Spat/pan-angle pan-angle -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 240 nbx 5 14 0 1 0 0 \$0-modalBar/Spat/pan-angle \$0-modalBar/Spat/pan-angle empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 270 hsl 128 15 0 1 0 0 \$0-modalBar/Spat/spatial-width \$0-modalBar/Spat/spatial-width spatial-width -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 270 nbx 5 14 0 1 0 0 \$0-modalBar/Spat/spatial-width \$0-modalBar/Spat/spatial-width empty 0 -6 0 10 -262144 -1 -1 256; #X obj 422 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; #X obj 442 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; #X obj 490 10 r \$0-init; #X obj 1218 10 s \$0-all; #X obj 1582 10 s \$0-read; #X obj 1946 10 r \$0-write; #X msg 490 30 1; #X obj 490 50 s \$0-active; #X connect 54 0 55 0; #X obj 1218 30 r \$0-active; #X msg 1218 50 active \$1; #X connect 56 0 57 0; #X connect 57 0 51 0; #X obj 1946 30 route active; #X obj 1946 50 s \$0-active; #X connect 53 0 58 0; #X connect 58 0 59 0; #X msg 490 70 6; #X obj 490 90 s \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X connect 50 0 60 0; #X connect 60 0 61 0; #X obj 1218 70 r \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X msg 1218 90 /modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$1; #X connect 62 0 63 0; #X connect 63 0 51 0; #X obj 1946 70 route /modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X obj 1946 90 s \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X connect 58 1 64 0; #X connect 64 0 65 0; #X msg 490 110 0.1; #X obj 490 130 s \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X connect 50 0 66 0; #X connect 66 0 67 0; #X obj 1218 110 r \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X msg 1218 130 /modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$1; #X connect 68 0 69 0; #X connect 69 0 51 0; #X obj 1946 110 route /modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X obj 1946 130 s \$0-modalBar/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X connect 64 1 70 0; #X connect 70 0 71 0; #X msg 490 150 220; #X obj 490 170 s \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 50 0 72 0; #X connect 72 0 73 0; #X obj 1218 150 r \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X msg 1218 170 /modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$1; #X connect 74 0 75 0; #X connect 75 0 51 0; #X obj 1946 150 route /modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X obj 1946 170 s \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 70 1 76 0; #X connect 76 0 77 0; #X msg 490 190 0; #X obj 490 210 s \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 50 0 78 0; #X connect 78 0 79 0; #X obj 1218 190 r \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X msg 1218 210 /modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type \$1; #X connect 80 0 81 0; #X connect 81 0 51 0; #X obj 1946 190 route /modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X obj 1946 210 s \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 76 1 82 0; #X connect 82 0 83 0; #X msg 490 230 0; #X obj 490 250 s \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 50 0 84 0; #X connect 84 0 85 0; #X obj 1218 230 r \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X msg 1218 250 /modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$1; #X connect 86 0 87 0; #X connect 87 0 51 0; #X obj 1946 230 route /modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X obj 1946 250 s \$0-modalBar/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 82 1 88 0; #X connect 88 0 89 0; #X msg 490 270 1; #X obj 490 290 s \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Preset; #X connect 50 0 90 0; #X connect 90 0 91 0; #X obj 1218 270 r \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Preset; #X msg 1218 290 /modalBar/Physical-and-Nonlinearity/Physical-Parameters/Preset \$1; #X connect 92 0 93 0; #X connect 93 0 51 0; #X obj 1946 270 route /modalBar/Physical-and-Nonlinearity/Physical-Parameters/Preset; #X obj 1946 290 s \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Preset; #X connect 88 1 94 0; #X connect 94 0 95 0; #X msg 490 310 1; #X obj 490 330 s \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Resonance; #X connect 50 0 96 0; #X connect 96 0 97 0; #X obj 1218 310 r \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Resonance; #X msg 1218 330 /modalBar/Physical-and-Nonlinearity/Physical-Parameters/Resonance \$1; #X connect 98 0 99 0; #X connect 99 0 51 0; #X obj 1946 310 route /modalBar/Physical-and-Nonlinearity/Physical-Parameters/Resonance; #X obj 1946 330 s \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Resonance; #X connect 94 1 100 0; #X connect 100 0 101 0; #X msg 490 350 0.25; #X obj 490 370 s \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Stick-Hardness; #X connect 50 0 102 0; #X connect 102 0 103 0; #X obj 1218 350 r \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Stick-Hardness; #X msg 1218 370 /modalBar/Physical-and-Nonlinearity/Physical-Parameters/Stick-Hardness \$1; #X connect 104 0 105 0; #X connect 105 0 51 0; #X obj 1946 350 route /modalBar/Physical-and-Nonlinearity/Physical-Parameters/Stick-Hardness; #X obj 1946 370 s \$0-modalBar/Physical-and-Nonlinearity/Physical-Parameters/Stick-Hardness; #X connect 100 1 106 0; #X connect 106 0 107 0; #X msg 490 390 0.137; #X obj 490 410 s \$0-modalBar/Reverb/reverbGain; #X connect 50 0 108 0; #X connect 108 0 109 0; #X obj 1218 390 r \$0-modalBar/Reverb/reverbGain; #X msg 1218 410 /modalBar/Reverb/reverbGain \$1; #X connect 110 0 111 0; #X connect 111 0 51 0; #X obj 1946 390 route /modalBar/Reverb/reverbGain; #X obj 1946 410 s \$0-modalBar/Reverb/reverbGain; #X connect 106 1 112 0; #X connect 112 0 113 0; #X msg 490 430 0.72; #X obj 490 450 s \$0-modalBar/Reverb/roomSize; #X connect 50 0 114 0; #X connect 114 0 115 0; #X obj 1218 430 r \$0-modalBar/Reverb/roomSize; #X msg 1218 450 /modalBar/Reverb/roomSize \$1; #X connect 116 0 117 0; #X connect 117 0 51 0; #X obj 1946 430 route /modalBar/Reverb/roomSize; #X obj 1946 450 s \$0-modalBar/Reverb/roomSize; #X connect 112 1 118 0; #X connect 118 0 119 0; #X msg 490 470 0.6; #X obj 490 490 s \$0-modalBar/Spat/pan-angle; #X connect 50 0 120 0; #X connect 120 0 121 0; #X obj 1218 470 r \$0-modalBar/Spat/pan-angle; #X msg 1218 490 /modalBar/Spat/pan-angle \$1; #X connect 122 0 123 0; #X connect 123 0 51 0; #X obj 1946 470 route /modalBar/Spat/pan-angle; #X obj 1946 490 s \$0-modalBar/Spat/pan-angle; #X connect 118 1 124 0; #X connect 124 0 125 0; #X msg 490 510 0.5; #X obj 490 530 s \$0-modalBar/Spat/spatial-width; #X connect 50 0 126 0; #X connect 126 0 127 0; #X obj 1218 510 r \$0-modalBar/Spat/spatial-width; #X msg 1218 530 /modalBar/Spat/spatial-width \$1; #X connect 128 0 129 0; #X connect 129 0 51 0; #X obj 1946 510 route /modalBar/Spat/spatial-width; #X obj 1946 530 s \$0-modalBar/Spat/spatial-width; #X connect 124 1 130 0; #X connect 130 0 131 0; #X coords 0 -1 1 1 460 290 1 0 0; #X text 0 310 Generated Fri Sep 16 14:41:42 2011 by faust2pd v2.2. See http://faust.grame.fr and http://pure-lang.googlecode.com.; faust-0.9.46/examples/faust-stk/pd-patches/fancy/what-a-friend/audio-out.pd0000644000175000017500000000156411702130733026423 0ustar orlareyorlarey#N canvas 86 452 512 359 10; #X obj 54 222 env~; #X obj 54 245 - 100; #X obj 158 222 env~; #X obj 158 245 - 100; #X obj 100 204 dac~; #X obj 55 174 inlet~; #X obj 158 173 inlet~; #X obj 217 4 tgl 15 0 dsp-toggle dsp-toggle empty 0 -6 0 8 -262144 -1 -1 1 1; #X msg 211 203 \; pd dsp \$1; #X obj 314 172 loadbang; #X msg 314 199 1; #X text 251 12 Stereo audio output + VU meter.; #X obj 53 29 vu 15 120 \$0-L empty -1 -8 0 8 -66577 -1 1 0; #X obj 141 29 vu 15 120 \$0-R empty -1 -8 0 8 -66577 -1 1 0; #X obj 54 273 s \$0-L; #X obj 158 273 s \$0-R; #X obj 211 172 r dsp-toggle; #X obj 314 225 s dsp-toggle; #X obj 3 173 inlet; #X connect 0 0 1 0; #X connect 1 0 14 0; #X connect 2 0 3 0; #X connect 3 0 15 0; #X connect 5 0 0 0; #X connect 5 0 4 0; #X connect 6 0 2 0; #X connect 6 0 4 1; #X connect 9 0 10 0; #X connect 10 0 17 0; #X connect 16 0 8 0; #X coords 0 -1 1 1 235 160 1 0 0; faust-0.9.46/examples/faust-stk/pd-patches/fancy/turkish-march/0000755000175000017500000000000011702130733024315 5ustar orlareyorlareyfaust-0.9.46/examples/faust-stk/pd-patches/fancy/turkish-march/harpsi.pd0000644000175000017500000002124411702130733026133 0ustar orlareyorlarey#N canvas 0 0 450 300 10; #X obj 10 330 inlet; #X obj 130 330 inlet; #X obj 190 330 r \$0-read; #X obj 130 360 r \$0-all; #X obj 190 360 faust-control \$0; #X obj 190 390 s \$0-write; #X obj 130 390 r \$0-in; #X obj 130 660 s \$0-out; #X obj 10 420 faust-gate 1; #X obj 130 420 harpsi~; #X obj 10 450 faust-gate 2; #X obj 130 450 harpsi~; #X obj 10 480 faust-gate 3; #X obj 130 480 harpsi~; #X obj 10 510 faust-gate 4; #X obj 130 510 harpsi~; #X obj 10 540 faust-gate 5; #X obj 130 540 harpsi~; #X obj 10 570 faust-gate 6; #X obj 130 570 harpsi~; #X obj 10 600 faust-gate 7; #X obj 130 600 harpsi~; #X obj 10 630 faust-gate 8; #X obj 130 630 harpsi~; #X obj 130 690 outlet~; #X obj 190 690 outlet~; #X obj 10 690 outlet; #X connect 1 0 4 0; #X connect 2 0 4 0; #X connect 4 0 5 0; #X connect 1 0 26 0; #X connect 6 0 9 0; #X connect 9 0 7 0; #X connect 0 0 8 0; #X connect 8 0 9 0; #X connect 3 0 9 0; #X connect 0 0 10 0; #X connect 10 0 11 0; #X connect 3 0 11 0; #X connect 0 0 12 0; #X connect 12 0 13 0; #X connect 3 0 13 0; #X connect 0 0 14 0; #X connect 14 0 15 0; #X connect 3 0 15 0; #X connect 0 0 16 0; #X connect 16 0 17 0; #X connect 3 0 17 0; #X connect 0 0 18 0; #X connect 18 0 19 0; #X connect 3 0 19 0; #X connect 0 0 20 0; #X connect 20 0 21 0; #X connect 3 0 21 0; #X connect 0 0 22 0; #X connect 22 0 23 0; #X connect 3 0 23 0; #X connect 9 1 24 0; #X connect 9 2 25 0; #X connect 11 1 24 0; #X connect 11 2 25 0; #X connect 13 1 24 0; #X connect 13 2 25 0; #X connect 15 1 24 0; #X connect 15 2 25 0; #X connect 17 1 24 0; #X connect 17 2 25 0; #X connect 19 1 24 0; #X connect 19 2 25 0; #X connect 21 1 24 0; #X connect 21 2 25 0; #X connect 23 1 24 0; #X connect 23 2 25 0; #X obj 10 30 hsl 128 15 20 1000 0 0 \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency Modulation-Frequency -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 30 nbx 5 14 20 1000 0 0 \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 60 nbx 5 14 0 4 0 0 \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type Modulation-Type 0 -6 0 10 -262144 -1 -1 256; #X obj 10 90 hsl 128 15 0 1 0 0 \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity Nonlinearity -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 90 nbx 5 14 0 1 0 0 \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 120 hsl 128 15 0 1 0 0 \$0-harpsi/Reverb/Freeverb/Damp \$0-harpsi/Reverb/Freeverb/Damp Damp -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 120 nbx 5 14 0 1 0 0 \$0-harpsi/Reverb/Freeverb/Damp \$0-harpsi/Reverb/Freeverb/Damp empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 150 hsl 128 15 0 1 0 0 \$0-harpsi/Reverb/Freeverb/RoomSize \$0-harpsi/Reverb/Freeverb/RoomSize RoomSize -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 150 nbx 5 14 0 1 0 0 \$0-harpsi/Reverb/Freeverb/RoomSize \$0-harpsi/Reverb/Freeverb/RoomSize empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 180 hsl 128 15 0 1 0 0 \$0-harpsi/Reverb/Freeverb/Wet \$0-harpsi/Reverb/Freeverb/Wet Wet -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 180 nbx 5 14 0 1 0 0 \$0-harpsi/Reverb/Freeverb/Wet \$0-harpsi/Reverb/Freeverb/Wet empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 210 hsl 128 15 0 1 0 0 \$0-harpsi/Spat/pan-angle \$0-harpsi/Spat/pan-angle pan-angle -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 210 nbx 5 14 0 1 0 0 \$0-harpsi/Spat/pan-angle \$0-harpsi/Spat/pan-angle empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 240 hsl 128 15 0 1 0 0 \$0-harpsi/Spat/spatial-width \$0-harpsi/Spat/spatial-width spatial-width -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 240 nbx 5 14 0 1 0 0 \$0-harpsi/Spat/spatial-width \$0-harpsi/Spat/spatial-width empty 0 -6 0 10 -262144 -1 -1 256; #X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; #X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; #X obj 450 10 r \$0-init; #X obj 1162 10 s \$0-all; #X obj 1518 10 s \$0-read; #X obj 1874 10 r \$0-write; #X msg 450 30 1; #X obj 450 50 s \$0-active; #X connect 48 0 49 0; #X obj 1162 30 r \$0-active; #X msg 1162 50 active \$1; #X connect 50 0 51 0; #X connect 51 0 45 0; #X obj 1874 30 route active; #X obj 1874 50 s \$0-active; #X connect 47 0 52 0; #X connect 52 0 53 0; #X msg 450 70 220; #X obj 450 90 s \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 44 0 54 0; #X connect 54 0 55 0; #X obj 1162 70 r \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X msg 1162 90 /harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$1; #X connect 56 0 57 0; #X connect 57 0 45 0; #X obj 1874 70 route /harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X obj 1874 90 s \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 52 1 58 0; #X connect 58 0 59 0; #X msg 450 110 0; #X obj 450 130 s \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 44 0 60 0; #X connect 60 0 61 0; #X obj 1162 110 r \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X msg 1162 130 /harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type \$1; #X connect 62 0 63 0; #X connect 63 0 45 0; #X obj 1874 110 route /harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X obj 1874 130 s \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 58 1 64 0; #X connect 64 0 65 0; #X msg 450 150 0; #X obj 450 170 s \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 44 0 66 0; #X connect 66 0 67 0; #X obj 1162 150 r \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X msg 1162 170 /harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$1; #X connect 68 0 69 0; #X connect 69 0 45 0; #X obj 1874 150 route /harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X obj 1874 170 s \$0-harpsi/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 64 1 70 0; #X connect 70 0 71 0; #X msg 450 190 0.72; #X obj 450 210 s \$0-harpsi/Reverb/Freeverb/Damp; #X connect 44 0 72 0; #X connect 72 0 73 0; #X obj 1162 190 r \$0-harpsi/Reverb/Freeverb/Damp; #X msg 1162 210 /harpsi/Reverb/Freeverb/Damp \$1; #X connect 74 0 75 0; #X connect 75 0 45 0; #X obj 1874 190 route /harpsi/Reverb/Freeverb/Damp; #X obj 1874 210 s \$0-harpsi/Reverb/Freeverb/Damp; #X connect 70 1 76 0; #X connect 76 0 77 0; #X msg 450 230 0.54; #X obj 450 250 s \$0-harpsi/Reverb/Freeverb/RoomSize; #X connect 44 0 78 0; #X connect 78 0 79 0; #X obj 1162 230 r \$0-harpsi/Reverb/Freeverb/RoomSize; #X msg 1162 250 /harpsi/Reverb/Freeverb/RoomSize \$1; #X connect 80 0 81 0; #X connect 81 0 45 0; #X obj 1874 230 route /harpsi/Reverb/Freeverb/RoomSize; #X obj 1874 250 s \$0-harpsi/Reverb/Freeverb/RoomSize; #X connect 76 1 82 0; #X connect 82 0 83 0; #X msg 450 270 0.141; #X obj 450 290 s \$0-harpsi/Reverb/Freeverb/Wet; #X connect 44 0 84 0; #X connect 84 0 85 0; #X obj 1162 270 r \$0-harpsi/Reverb/Freeverb/Wet; #X msg 1162 290 /harpsi/Reverb/Freeverb/Wet \$1; #X connect 86 0 87 0; #X connect 87 0 45 0; #X obj 1874 270 route /harpsi/Reverb/Freeverb/Wet; #X obj 1874 290 s \$0-harpsi/Reverb/Freeverb/Wet; #X connect 82 1 88 0; #X connect 88 0 89 0; #X msg 450 310 0.6; #X obj 450 330 s \$0-harpsi/Spat/pan-angle; #X connect 44 0 90 0; #X connect 90 0 91 0; #X obj 1162 310 r \$0-harpsi/Spat/pan-angle; #X msg 1162 330 /harpsi/Spat/pan-angle \$1; #X connect 92 0 93 0; #X connect 93 0 45 0; #X obj 1874 310 route /harpsi/Spat/pan-angle; #X obj 1874 330 s \$0-harpsi/Spat/pan-angle; #X connect 88 1 94 0; #X connect 94 0 95 0; #X msg 450 350 0.5; #X obj 450 370 s \$0-harpsi/Spat/spatial-width; #X connect 44 0 96 0; #X connect 96 0 97 0; #X obj 1162 350 r \$0-harpsi/Spat/spatial-width; #X msg 1162 370 /harpsi/Spat/spatial-width \$1; #X connect 98 0 99 0; #X connect 99 0 45 0; #X obj 1874 350 route /harpsi/Spat/spatial-width; #X obj 1874 370 s \$0-harpsi/Spat/spatial-width; #X connect 94 1 100 0; #X connect 100 0 101 0; #X coords 0 -1 1 1 235 260 1 0 0; #X text 0 280 Generated Mon Mar 21 14:53:34 2011 by faust2pd v2.2. See http://faust.grame.fr and http://pure-lang.googlecode.com.; faust-0.9.46/examples/faust-stk/pd-patches/fancy/turkish-march/turkish-march.mid0000644000175000017500000001043611702130733027575 0ustar orlareyorlareyMThdMTrk" marche-turcQqX/MTrkMIDI 01!@GPpEGG@}E@WDGUD@EHp9\HPXE@PPIQ@7<@@@kQP+P@E9[TTQ@D<[@O]<@ @@T@^OL;D@?D4@@@O@L@;@eNMQ@;N@OIN@Q@@@;@JOPKQ\P4\SPO@-Q@dS@NE QD;M@P:N@ Q@@@;@BLEOM#;P@PNO@L@@@;@8NP QH;H@HSN@Q@ 4@;@@@6OHFQHdS[4P&Q@ O@iS@u4@9NP QP;X@OIN@Q@(;@@@=OE LD/\DO@L@,/@CKNNM;[SK@#N@;@j4[ L[4@ZL@@G\kEH:G@@DH?E@EPqD@9[HH&E@&LP?M@KPL@ (G_,@/PF4\(@,@P\ D[/@74@G@E@:E@G@:G@I@:I@J@:J@I@:I@G@:G@E@:E@C@:C@B@:B@C@:C@@@>@@>@Z>@B@ZB@E@ZE@C@ZC@B@ZB@>@Z>@B@ZB@@@Z@@>@Z>@;@Z;@>@Z>@E@ZE@C@ZC@G@ZG@E@ZE@C@ZC@B@ZB@>@Z>@@@Z@@I@ZI@J@ZJ@N@ZN@Q@ZQ@E@^E@G@ZG@C@ZC@E@ZE@B@ZB@>@Z>@J@^J@L@:L@J@:J@L@:L@J@:J@L@:L@J@:J@L@:L@J@*J@I@nI@J@jJ@I@jI@J@jJ@>@j>@=@j=@E@jE@@@n@@B@jB@>@j>@J@jJ@I@jI@G@jG@I@jI@N@jN@Q@jQ@S@jS@O@jO@N@jN@L@jL@O@jO@N@jN@L@jL@J@jJ@I@jI@G@jG@E@jE@C@jC@B@jB@@@j@@C@jC@B@jB@@@j@@>@j>@@@j@@B@jB@C@jC@E@jE@@@j@@E@jE@C@jC@B@jB@G@jG@E@jE@C@jC@E@jE@C@jC@B@jB@@@j@@>@j>@;@j;@G@jG@I@jI@J@jJ@I@jI@G@jG@E@jE@C@jC@B@jB@@@j@@G@jG@E@jE@G@jG@E@jE@C@jC@B@jB@vN@jN@vL@:L@fJ@jJ@vN@:N@S@:S@Q@:Q@S@:S@U@:U@V@ZV@J@nJ@rI@:I@fG@jG@vJ@>J@J@J@J@^J@J@jJ@vO@jO@vL@jL@vQ@nQ@rQ@~Q@/MTrkMIDI 02N@:N@L@:L@J@:J@I@:I@G@>G@E@:E@G@:G@I@:I@J@:J@I@:I@G@:G@E@:E@C@:C@B@:B@C@:C@@@>@@>@Z>@B@ZB@E@ZE@C@ZC@B@ZB@>@Z>@B@ZB@@@Z@@>@Z>@;@Z;@>@Z>@E@ZE@C@ZC@G@ZG@E@ZE@C@ZC@B@ZB@>@Z>@@@Z@@I@ZI@J@ZJ@N@ZN@Q@ZQ@E@^E@G@ZG@C@ZC@E@ZE@B@ZB@>@Z>@J@^J@L@:L@J@:J@L@:L@J@:J@L@:L@J@:J@L@:L@J@*J@I@nI@J@jJ@I@jI@J@jJ@>@j>@=@j=@E@jE@@@n@@B@jB@>@j>@J@jJ@I@jI@G@jG@I@jI@N@jN@Q@jQ@S@jS@O@jO@N@jN@L@jL@O@jO@N@jN@L@jL@J@jJ@I@jI@G@jG@E@jE@C@jC@B@jB@@@j@@C@jC@B@jB@@@j@@>@j>@@@j@@B@jB@C@jC@E@jE@@@j@@E@jE@C@jC@B@jB@G@jG@E@jE@C@jC@E@jE@C@jC@B@jB@@@j@@>@j>@;@j;@G@jG@I@jI@J@jJ@I@jI@G@jG@E@jE@C@jC@B@jB@@@j@@G@jG@E@jE@G@jG@E@jE@C@jC@B@jB@vN@jN@vL@:L@fJ@jJ@vN@:N@S@:S@Q@:Q@S@:S@U@:U@V@~V@/MTrk8MIDI 04N@:N@L@:L@J@:J@I@:I@G@>G@E@:E@G@:G@I@:I@J@:J@I@:I@G@:G@E@:E@C@:C@B@:B@C@:C@@@>@@>@Z>@B@ZB@E@ZE@C@ZC@B@ZB@>@Z>@B@ZB@@@Z@@>@Z>@;@Z;@>@Z>@E@ZE@C@ZC@G@ZG@E@ZE@C@ZC@B@ZB@>@Z>@@@Z@@I@ZI@J@ZJ@N@ZN@Q@ZQ@E@^E@G@ZG@C@ZC@E@ZE@B@ZB@>@Z>@J@^J@L@:L@J@:J@L@:L@J@:J@L@:L@J@:J@L@:L@J@*J@I@nI@J@jJ@I@jI@J@jJ@>@j>@=@j=@E@jE@@@n@@B@jB@>@j>@J@jJ@I@jI@G@jG@I@jI@N@jN@Q@jQ@S@jS@O@jO@N@jN@L@jL@O@jO@N@jN@L@jL@J@jJ@I@jI@G@jG@E@jE@C@jC@B@jB@@@j@@C@jC@B@jB@@@j@@>@j>@@@j@@B@jB@C@jC@E@jE@@@j@@E@jE@C@jC@B@jB@G@jG@E@jE@C@jC@E@jE@C@jC@B@jB@@@j@@>@j>@;@j;@G@jG@I@jI@J@jJ@I@jI@G@jG@E@jE@C@jC@B@jB@@@j@@G@jG@E@jE@G@jG@E@jE@C@jC@/MTrkXMIDI 032@>2@-@>-@/@>/@*@6*@ +@>+@&@>&@+@>+@-@6-@2@>2@-@>-@/@>/@*@6*@ +@>+@&@>&@+@>+@-@6-@2@>2@-@>-@/@>/@*@6*@ +@>+@&@>&@+@>+@-@6-@2@>2@-@>-@/@>/@*@6*@ +@>+@&@>&@+@>+@-@6-@2@>2@-@>-@/@>/@*@6*@ +@>+@&@>&@+@>+@-@6-@2@>2@-@>-@/@>/@*@6*@ +@>+@&@>&@+@>+@-@6-@2@>2@-@>-@/@>/@*@6*@ +@>+@&@>&@+@>+@-@6-@2@>2@-@>-@/@>/@*@6*@ +@>+@&@>&@+@>+@-@6-@2@B2@/faust-0.9.46/examples/faust-stk/pd-patches/fancy/canon/bass.pd0000644000175000017500000001572211702130733024116 0ustar orlareyorlarey#N canvas 0 0 450 300 10; #X obj 10 330 inlet; #X obj 130 330 inlet; #X obj 190 330 r \$0-read; #X obj 130 360 r \$0-all; #X obj 190 360 faust-control \$0; #X obj 190 390 s \$0-write; #X obj 130 390 r \$0-in; #X obj 130 480 s \$0-out; #X obj 10 420 faust-gate 1; #X obj 130 420 bass~; #X obj 10 450 faust-gate 2; #X obj 130 450 bass~; #X obj 130 510 outlet~; #X obj 190 510 outlet~; #X obj 10 510 outlet; #X connect 1 0 4 0; #X connect 2 0 4 0; #X connect 4 0 5 0; #X connect 1 0 14 0; #X connect 6 0 9 0; #X connect 9 0 7 0; #X connect 0 0 8 0; #X connect 8 0 9 0; #X connect 3 0 9 0; #X connect 0 0 10 0; #X connect 10 0 11 0; #X connect 3 0 11 0; #X connect 9 1 12 0; #X connect 9 2 13 0; #X connect 11 1 12 0; #X connect 11 2 13 0; #X obj 10 30 hsl 128 15 20 1000 0 0 \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency Modulation-Frequency -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 30 nbx 5 14 20 1000 0 0 \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 60 nbx 5 14 0 4 0 0 \$0-bass/Nonlinear-Filter-Parameters/Modulation-Type \$0-bass/Nonlinear-Filter-Parameters/Modulation-Type Modulation-Type 0 -6 0 10 -262144 -1 -1 256; #X obj 10 90 hsl 128 15 0 1 0 0 \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity Nonlinearity -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 90 nbx 5 14 0 1 0 0 \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 120 hsl 128 15 0 1 0 0 \$0-bass/Physical-Parameters/Touch-Length \$0-bass/Physical-Parameters/Touch-Length Touch-Length -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 120 nbx 5 14 0 1 0 0 \$0-bass/Physical-Parameters/Touch-Length \$0-bass/Physical-Parameters/Touch-Length empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 150 hsl 128 15 0 1 0 0 \$0-bass/Reverb/reverbGain \$0-bass/Reverb/reverbGain reverbGain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 150 nbx 5 14 0 1 0 0 \$0-bass/Reverb/reverbGain \$0-bass/Reverb/reverbGain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 180 hsl 128 15 0.01 2 0 0 \$0-bass/Reverb/roomSize \$0-bass/Reverb/roomSize roomSize -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 180 nbx 5 14 0.01 2 0 0 \$0-bass/Reverb/roomSize \$0-bass/Reverb/roomSize empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 210 hsl 128 15 0 1 0 0 \$0-bass/Spat/pan-angle \$0-bass/Spat/pan-angle pan-angle -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 210 nbx 5 14 0 1 0 0 \$0-bass/Spat/pan-angle \$0-bass/Spat/pan-angle empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 240 hsl 128 15 0 1 0 0 \$0-bass/Spat/spatial-width \$0-bass/Spat/spatial-width spatial-width -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 240 nbx 5 14 0 1 0 0 \$0-bass/Spat/spatial-width \$0-bass/Spat/spatial-width empty 0 -6 0 10 -262144 -1 -1 256; #X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; #X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; #X obj 450 10 r \$0-init; #X obj 938 10 s \$0-all; #X obj 1182 10 s \$0-read; #X obj 1426 10 r \$0-write; #X msg 450 30 1; #X obj 450 50 s \$0-active; #X connect 36 0 37 0; #X obj 938 30 r \$0-active; #X msg 938 50 active \$1; #X connect 38 0 39 0; #X connect 39 0 33 0; #X obj 1426 30 route active; #X obj 1426 50 s \$0-active; #X connect 35 0 40 0; #X connect 40 0 41 0; #X msg 450 70 220; #X obj 450 90 s \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 32 0 42 0; #X connect 42 0 43 0; #X obj 938 70 r \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency; #X msg 938 90 /bass/Nonlinear-Filter-Parameters/Modulation-Frequency \$1; #X connect 44 0 45 0; #X connect 45 0 33 0; #X obj 1426 70 route /bass/Nonlinear-Filter-Parameters/Modulation-Frequency; #X obj 1426 90 s \$0-bass/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 40 1 46 0; #X connect 46 0 47 0; #X msg 450 110 0; #X obj 450 130 s \$0-bass/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 32 0 48 0; #X connect 48 0 49 0; #X obj 938 110 r \$0-bass/Nonlinear-Filter-Parameters/Modulation-Type; #X msg 938 130 /bass/Nonlinear-Filter-Parameters/Modulation-Type \$1; #X connect 50 0 51 0; #X connect 51 0 33 0; #X obj 1426 110 route /bass/Nonlinear-Filter-Parameters/Modulation-Type; #X obj 1426 130 s \$0-bass/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 46 1 52 0; #X connect 52 0 53 0; #X msg 450 150 0; #X obj 450 170 s \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 32 0 54 0; #X connect 54 0 55 0; #X obj 938 150 r \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity; #X msg 938 170 /bass/Nonlinear-Filter-Parameters/Nonlinearity \$1; #X connect 56 0 57 0; #X connect 57 0 33 0; #X obj 1426 150 route /bass/Nonlinear-Filter-Parameters/Nonlinearity; #X obj 1426 170 s \$0-bass/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 52 1 58 0; #X connect 58 0 59 0; #X msg 450 190 0.15; #X obj 450 210 s \$0-bass/Physical-Parameters/Touch-Length; #X connect 32 0 60 0; #X connect 60 0 61 0; #X obj 938 190 r \$0-bass/Physical-Parameters/Touch-Length; #X msg 938 210 /bass/Physical-Parameters/Touch-Length \$1; #X connect 62 0 63 0; #X connect 63 0 33 0; #X obj 1426 190 route /bass/Physical-Parameters/Touch-Length; #X obj 1426 210 s \$0-bass/Physical-Parameters/Touch-Length; #X connect 58 1 64 0; #X connect 64 0 65 0; #X msg 450 230 0.137; #X obj 450 250 s \$0-bass/Reverb/reverbGain; #X connect 32 0 66 0; #X connect 66 0 67 0; #X obj 938 230 r \$0-bass/Reverb/reverbGain; #X msg 938 250 /bass/Reverb/reverbGain \$1; #X connect 68 0 69 0; #X connect 69 0 33 0; #X obj 1426 230 route /bass/Reverb/reverbGain; #X obj 1426 250 s \$0-bass/Reverb/reverbGain; #X connect 64 1 70 0; #X connect 70 0 71 0; #X msg 450 270 0.72; #X obj 450 290 s \$0-bass/Reverb/roomSize; #X connect 32 0 72 0; #X connect 72 0 73 0; #X obj 938 270 r \$0-bass/Reverb/roomSize; #X msg 938 290 /bass/Reverb/roomSize \$1; #X connect 74 0 75 0; #X connect 75 0 33 0; #X obj 1426 270 route /bass/Reverb/roomSize; #X obj 1426 290 s \$0-bass/Reverb/roomSize; #X connect 70 1 76 0; #X connect 76 0 77 0; #X msg 450 310 0.6; #X obj 450 330 s \$0-bass/Spat/pan-angle; #X connect 32 0 78 0; #X connect 78 0 79 0; #X obj 938 310 r \$0-bass/Spat/pan-angle; #X msg 938 330 /bass/Spat/pan-angle \$1; #X connect 80 0 81 0; #X connect 81 0 33 0; #X obj 1426 310 route /bass/Spat/pan-angle; #X obj 1426 330 s \$0-bass/Spat/pan-angle; #X connect 76 1 82 0; #X connect 82 0 83 0; #X msg 450 350 0.5; #X obj 450 370 s \$0-bass/Spat/spatial-width; #X connect 32 0 84 0; #X connect 84 0 85 0; #X obj 938 350 r \$0-bass/Spat/spatial-width; #X msg 938 370 /bass/Spat/spatial-width \$1; #X connect 86 0 87 0; #X connect 87 0 33 0; #X obj 1426 350 route /bass/Spat/spatial-width; #X obj 1426 370 s \$0-bass/Spat/spatial-width; #X connect 82 1 88 0; #X connect 88 0 89 0; #X coords 0 -1 1 1 235 260 1 0 0; #X text 0 280 Generated Fri Sep 16 10:51:36 2011 by faust2pd v2.2. See http://faust.grame.fr and http://pure-lang.googlecode.com.; faust-0.9.46/examples/faust-stk/pd-patches/fancy/canon/flute.pd0000644000175000017500000005177111702130733024311 0ustar orlareyorlarey#N canvas 0 0 450 300 10; #X obj 10 480 inlet; #X obj 130 480 inlet; #X obj 190 480 r \$0-read; #X obj 130 510 r \$0-all; #X obj 190 510 faust-control \$0; #X obj 190 540 s \$0-write; #X obj 130 540 r \$0-in; #X obj 130 630 s \$0-out; #X obj 10 570 faust-gate 1; #X obj 130 570 flute~; #X obj 10 600 faust-gate 2; #X obj 130 600 flute~; #X obj 130 660 outlet~; #X obj 190 660 outlet~; #X obj 10 660 outlet; #X connect 1 0 4 0; #X connect 2 0 4 0; #X connect 4 0 5 0; #X connect 1 0 14 0; #X connect 6 0 9 0; #X connect 9 0 7 0; #X connect 0 0 8 0; #X connect 8 0 9 0; #X connect 3 0 9 0; #X connect 0 0 10 0; #X connect 10 0 11 0; #X connect 3 0 11 0; #X connect 9 1 12 0; #X connect 9 2 13 0; #X connect 11 1 12 0; #X connect 11 2 13 0; #X obj 10 30 hsl 128 15 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Attack \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Attack Glob-Env-Attack -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 30 nbx 5 14 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Attack \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Attack empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 60 hsl 128 15 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Release \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Release Glob-Env-Release -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 60 nbx 5 14 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Release \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Release empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 30 hsl 128 15 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Attack \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Attack Press-Env-Attack -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 30 nbx 5 14 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Attack \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Attack empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 60 hsl 128 15 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Decay \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Decay Press-Env-Decay -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 60 nbx 5 14 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Decay \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Decay empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 90 hsl 128 15 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Release \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Release Press-Env-Release -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 90 nbx 5 14 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Release \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Release empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 120 tgl 15 0 \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Pressure-Env \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Pressure-Env Pressure-Env 0 -6 0 10 -262144 -1 -1 0 1; #X obj 460 30 hsl 128 15 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack Vibrato-Attack -2 -6 0 10 -262144 -1 -1 0 1; #X obj 610 30 nbx 5 14 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack empty 0 -6 0 10 -262144 -1 -1 256; #X obj 460 60 hsl 128 15 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin Vibrato-Begin -2 -6 0 10 -262144 -1 -1 0 1; #X obj 610 60 nbx 5 14 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin empty 0 -6 0 10 -262144 -1 -1 256; #X obj 460 90 hsl 128 15 1 15 0 0 \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq Vibrato-Freq -2 -6 0 10 -262144 -1 -1 0 1; #X obj 610 90 nbx 5 14 1 15 0 0 \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq empty 0 -6 0 10 -262144 -1 -1 256; #X obj 460 120 hsl 128 15 0 1 0 0 \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain Vibrato-Gain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 610 120 nbx 5 14 0 1 0 0 \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 460 150 hsl 128 15 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release Vibrato-Release -2 -6 0 10 -262144 -1 -1 0 1; #X obj 610 150 nbx 5 14 0 2 0 0 \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 180 hsl 128 15 20 1000 0 0 \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency Modulation-Frequency -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 180 nbx 5 14 20 1000 0 0 \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 210 nbx 5 14 0 4 0 0 \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type Modulation-Type 0 -6 0 10 -262144 -1 -1 256; #X obj 10 240 hsl 128 15 0 1 0 0 \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity Nonlinearity -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 240 nbx 5 14 0 1 0 0 \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 270 hsl 128 15 0 2 0 0 \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack Nonlinearity-Attack -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 270 nbx 5 14 0 2 0 0 \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 180 hsl 128 15 0 1 0 0 \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain Noise-Gain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 180 nbx 5 14 0 1 0 0 \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 210 hsl 128 15 0 1.5 0 0 \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Pressure \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Pressure Pressure -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 210 nbx 5 14 0 1.5 0 0 \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Pressure \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Pressure empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 300 hsl 128 15 0 1 0 0 \$0-flute/Reverb/reverbGain \$0-flute/Reverb/reverbGain reverbGain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 300 nbx 5 14 0 1 0 0 \$0-flute/Reverb/reverbGain \$0-flute/Reverb/reverbGain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 330 hsl 128 15 0.01 2 0 0 \$0-flute/Reverb/roomSize \$0-flute/Reverb/roomSize roomSize -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 330 nbx 5 14 0.01 2 0 0 \$0-flute/Reverb/roomSize \$0-flute/Reverb/roomSize empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 360 hsl 128 15 0 1 0 0 \$0-flute/Spat/pan-angle \$0-flute/Spat/pan-angle pan-angle -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 360 nbx 5 14 0 1 0 0 \$0-flute/Spat/pan-angle \$0-flute/Spat/pan-angle empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 390 hsl 128 15 0 1 0 0 \$0-flute/Spat/spatial-width \$0-flute/Spat/spatial-width spatial-width -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 390 nbx 5 14 0 1 0 0 \$0-flute/Spat/spatial-width \$0-flute/Spat/spatial-width empty 0 -6 0 10 -262144 -1 -1 256; #X obj 647 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; #X obj 667 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; #X obj 715 10 r \$0-init; #X obj 1419 10 s \$0-all; #X obj 1771 10 s \$0-read; #X obj 2123 10 r \$0-write; #X msg 715 30 1; #X obj 715 50 s \$0-active; #X connect 61 0 62 0; #X obj 1419 30 r \$0-active; #X msg 1419 50 active \$1; #X connect 63 0 64 0; #X connect 64 0 58 0; #X obj 2123 30 route active; #X obj 2123 50 s \$0-active; #X connect 60 0 65 0; #X connect 65 0 66 0; #X msg 715 70 0.1; #X obj 715 90 s \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Attack; #X connect 57 0 67 0; #X connect 67 0 68 0; #X obj 1419 70 r \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Attack; #X msg 1419 90 /flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Attack \$1; #X connect 69 0 70 0; #X connect 70 0 58 0; #X obj 2123 70 route /flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Attack; #X obj 2123 90 s \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Attack; #X connect 65 1 71 0; #X connect 71 0 72 0; #X msg 715 110 0.1; #X obj 715 130 s \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Release; #X connect 57 0 73 0; #X connect 73 0 74 0; #X obj 1419 110 r \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Release; #X msg 1419 130 /flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Release \$1; #X connect 75 0 76 0; #X connect 76 0 58 0; #X obj 2123 110 route /flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Release; #X obj 2123 130 s \$0-flute/Envelopes-and-Vibrato/Global-Envelope-Parameters/Glob-Env-Release; #X connect 71 1 77 0; #X connect 77 0 78 0; #X msg 715 150 0.05; #X obj 715 170 s \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Attack; #X connect 57 0 79 0; #X connect 79 0 80 0; #X obj 1419 150 r \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Attack; #X msg 1419 170 /flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Attack \$1; #X connect 81 0 82 0; #X connect 82 0 58 0; #X obj 2123 150 route /flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Attack; #X obj 2123 170 s \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Attack; #X connect 77 1 83 0; #X connect 83 0 84 0; #X msg 715 190 0.2; #X obj 715 210 s \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Decay; #X connect 57 0 85 0; #X connect 85 0 86 0; #X obj 1419 190 r \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Decay; #X msg 1419 210 /flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Decay \$1; #X connect 87 0 88 0; #X connect 88 0 58 0; #X obj 2123 190 route /flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Decay; #X obj 2123 210 s \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Decay; #X connect 83 1 89 0; #X connect 89 0 90 0; #X msg 715 230 1; #X obj 715 250 s \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Release; #X connect 57 0 91 0; #X connect 91 0 92 0; #X obj 1419 230 r \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Release; #X msg 1419 250 /flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Release \$1; #X connect 93 0 94 0; #X connect 94 0 58 0; #X obj 2123 230 route /flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Release; #X obj 2123 250 s \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Press-Env-Release; #X connect 89 1 95 0; #X connect 95 0 96 0; #X msg 715 270 0; #X obj 715 290 s \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Pressure-Env; #X connect 57 0 97 0; #X connect 97 0 98 0; #X obj 1419 270 r \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Pressure-Env; #X msg 1419 290 /flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Pressure-Env \$1; #X connect 99 0 100 0; #X connect 100 0 58 0; #X obj 2123 270 route /flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Pressure-Env; #X obj 2123 290 s \$0-flute/Envelopes-and-Vibrato/Pressure-Envelope-Parameters/Pressure-Env; #X connect 95 1 101 0; #X connect 101 0 102 0; #X msg 715 310 0.5; #X obj 715 330 s \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack; #X connect 57 0 103 0; #X connect 103 0 104 0; #X obj 1419 310 r \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack; #X msg 1419 330 /flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack \$1; #X connect 105 0 106 0; #X connect 106 0 58 0; #X obj 2123 310 route /flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack; #X obj 2123 330 s \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack; #X connect 101 1 107 0; #X connect 107 0 108 0; #X msg 715 350 0.1; #X obj 715 370 s \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin; #X connect 57 0 109 0; #X connect 109 0 110 0; #X obj 1419 350 r \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin; #X msg 1419 370 /flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin \$1; #X connect 111 0 112 0; #X connect 112 0 58 0; #X obj 2123 350 route /flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin; #X obj 2123 370 s \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin; #X connect 107 1 113 0; #X connect 113 0 114 0; #X msg 715 390 5; #X obj 715 410 s \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X connect 57 0 115 0; #X connect 115 0 116 0; #X obj 1419 390 r \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X msg 1419 410 /flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$1; #X connect 117 0 118 0; #X connect 118 0 58 0; #X obj 2123 390 route /flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X obj 2123 410 s \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X connect 113 1 119 0; #X connect 119 0 120 0; #X msg 715 430 0.1; #X obj 715 450 s \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X connect 57 0 121 0; #X connect 121 0 122 0; #X obj 1419 430 r \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X msg 1419 450 /flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$1; #X connect 123 0 124 0; #X connect 124 0 58 0; #X obj 2123 430 route /flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X obj 2123 450 s \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X connect 119 1 125 0; #X connect 125 0 126 0; #X msg 715 470 0.2; #X obj 715 490 s \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release; #X connect 57 0 127 0; #X connect 127 0 128 0; #X obj 1419 470 r \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release; #X msg 1419 490 /flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release \$1; #X connect 129 0 130 0; #X connect 130 0 58 0; #X obj 2123 470 route /flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release; #X obj 2123 490 s \$0-flute/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release; #X connect 125 1 131 0; #X connect 131 0 132 0; #X msg 715 510 220; #X obj 715 530 s \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 57 0 133 0; #X connect 133 0 134 0; #X obj 1419 510 r \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X msg 1419 530 /flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$1; #X connect 135 0 136 0; #X connect 136 0 58 0; #X obj 2123 510 route /flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X obj 2123 530 s \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 131 1 137 0; #X connect 137 0 138 0; #X msg 715 550 0; #X obj 715 570 s \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 57 0 139 0; #X connect 139 0 140 0; #X obj 1419 550 r \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X msg 1419 570 /flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type \$1; #X connect 141 0 142 0; #X connect 142 0 58 0; #X obj 2123 550 route /flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X obj 2123 570 s \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 137 1 143 0; #X connect 143 0 144 0; #X msg 715 590 0; #X obj 715 610 s \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 57 0 145 0; #X connect 145 0 146 0; #X obj 1419 590 r \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X msg 1419 610 /flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$1; #X connect 147 0 148 0; #X connect 148 0 58 0; #X obj 2123 590 route /flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X obj 2123 610 s \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 143 1 149 0; #X connect 149 0 150 0; #X msg 715 630 0.1; #X obj 715 650 s \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack; #X connect 57 0 151 0; #X connect 151 0 152 0; #X obj 1419 630 r \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack; #X msg 1419 650 /flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack \$1; #X connect 153 0 154 0; #X connect 154 0 58 0; #X obj 2123 630 route /flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack; #X obj 2123 650 s \$0-flute/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack; #X connect 149 1 155 0; #X connect 155 0 156 0; #X msg 715 670 0.1; #X obj 715 690 s \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain; #X connect 57 0 157 0; #X connect 157 0 158 0; #X obj 1419 670 r \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain; #X msg 1419 690 /flute/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain \$1; #X connect 159 0 160 0; #X connect 160 0 58 0; #X obj 2123 670 route /flute/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain; #X obj 2123 690 s \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain; #X connect 155 1 161 0; #X connect 161 0 162 0; #X msg 715 710 0.9; #X obj 715 730 s \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Pressure; #X connect 57 0 163 0; #X connect 163 0 164 0; #X obj 1419 710 r \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Pressure; #X msg 1419 730 /flute/Physical-and-Nonlinearity/Physical-Parameters/Pressure \$1; #X connect 165 0 166 0; #X connect 166 0 58 0; #X obj 2123 710 route /flute/Physical-and-Nonlinearity/Physical-Parameters/Pressure; #X obj 2123 730 s \$0-flute/Physical-and-Nonlinearity/Physical-Parameters/Pressure; #X connect 161 1 167 0; #X connect 167 0 168 0; #X msg 715 750 0.137; #X obj 715 770 s \$0-flute/Reverb/reverbGain; #X connect 57 0 169 0; #X connect 169 0 170 0; #X obj 1419 750 r \$0-flute/Reverb/reverbGain; #X msg 1419 770 /flute/Reverb/reverbGain \$1; #X connect 171 0 172 0; #X connect 172 0 58 0; #X obj 2123 750 route /flute/Reverb/reverbGain; #X obj 2123 770 s \$0-flute/Reverb/reverbGain; #X connect 167 1 173 0; #X connect 173 0 174 0; #X msg 715 790 0.72; #X obj 715 810 s \$0-flute/Reverb/roomSize; #X connect 57 0 175 0; #X connect 175 0 176 0; #X obj 1419 790 r \$0-flute/Reverb/roomSize; #X msg 1419 810 /flute/Reverb/roomSize \$1; #X connect 177 0 178 0; #X connect 178 0 58 0; #X obj 2123 790 route /flute/Reverb/roomSize; #X obj 2123 810 s \$0-flute/Reverb/roomSize; #X connect 173 1 179 0; #X connect 179 0 180 0; #X msg 715 830 0.6; #X obj 715 850 s \$0-flute/Spat/pan-angle; #X connect 57 0 181 0; #X connect 181 0 182 0; #X obj 1419 830 r \$0-flute/Spat/pan-angle; #X msg 1419 850 /flute/Spat/pan-angle \$1; #X connect 183 0 184 0; #X connect 184 0 58 0; #X obj 2123 830 route /flute/Spat/pan-angle; #X obj 2123 850 s \$0-flute/Spat/pan-angle; #X connect 179 1 185 0; #X connect 185 0 186 0; #X msg 715 870 0.5; #X obj 715 890 s \$0-flute/Spat/spatial-width; #X connect 57 0 187 0; #X connect 187 0 188 0; #X obj 1419 870 r \$0-flute/Spat/spatial-width; #X msg 1419 890 /flute/Spat/spatial-width \$1; #X connect 189 0 190 0; #X connect 190 0 58 0; #X obj 2123 870 route /flute/Spat/spatial-width; #X obj 2123 890 s \$0-flute/Spat/spatial-width; #X connect 185 1 191 0; #X connect 191 0 192 0; #X coords 0 -1 1 1 685 410 1 0 0; #X text 0 430 Generated Thu Sep 15 19:36:13 2011 by faust2pd v2.2. See http://faust.grame.fr and http://pure-lang.googlecode.com.; faust-0.9.46/examples/faust-stk/pd-patches/fancy/canon/audio-out.pd0000644000175000017500000000156411702130733025073 0ustar orlareyorlarey#N canvas 86 452 512 359 10; #X obj 54 222 env~; #X obj 54 245 - 100; #X obj 158 222 env~; #X obj 158 245 - 100; #X obj 100 204 dac~; #X obj 55 174 inlet~; #X obj 158 173 inlet~; #X obj 217 4 tgl 15 0 dsp-toggle dsp-toggle empty 0 -6 0 8 -262144 -1 -1 1 1; #X msg 211 203 \; pd dsp \$1; #X obj 314 172 loadbang; #X msg 314 199 1; #X text 251 12 Stereo audio output + VU meter.; #X obj 53 29 vu 15 120 \$0-L empty -1 -8 0 8 -66577 -1 1 0; #X obj 141 29 vu 15 120 \$0-R empty -1 -8 0 8 -66577 -1 1 0; #X obj 54 273 s \$0-L; #X obj 158 273 s \$0-R; #X obj 211 172 r dsp-toggle; #X obj 314 225 s dsp-toggle; #X obj 3 173 inlet; #X connect 0 0 1 0; #X connect 1 0 14 0; #X connect 2 0 3 0; #X connect 3 0 15 0; #X connect 5 0 0 0; #X connect 5 0 4 0; #X connect 6 0 2 0; #X connect 6 0 4 1; #X connect 9 0 10 0; #X connect 10 0 17 0; #X connect 16 0 8 0; #X coords 0 -1 1 1 235 160 1 0 0; faust-0.9.46/examples/faust-stk/pd-patches/fancy/daisy/0000755000175000017500000000000011702130733022645 5ustar orlareyorlareyfaust-0.9.46/examples/faust-stk/pd-patches/fancy/daisy/piano.pd0000644000175000017500000001772411702130733024313 0ustar orlareyorlarey#N canvas 0 0 450 300 10; #X obj 10 330 inlet; #X obj 130 330 inlet; #X obj 190 330 r \$0-read; #X obj 130 360 r \$0-all; #X obj 190 360 faust-control \$0; #X obj 190 390 s \$0-write; #X obj 130 390 r \$0-in; #X obj 130 660 s \$0-out; #X obj 10 420 faust-gate 1; #X obj 130 420 piano~; #X obj 10 450 faust-gate 2; #X obj 130 450 piano~; #X obj 10 480 faust-gate 3; #X obj 130 480 piano~; #X obj 10 510 faust-gate 4; #X obj 130 510 piano~; #X obj 10 540 faust-gate 5; #X obj 130 540 piano~; #X obj 10 570 faust-gate 6; #X obj 130 570 piano~; #X obj 10 600 faust-gate 7; #X obj 130 600 piano~; #X obj 10 630 faust-gate 8; #X obj 130 630 piano~; #X obj 130 690 outlet~; #X obj 190 690 outlet~; #X obj 10 690 outlet; #X connect 1 0 4 0; #X connect 2 0 4 0; #X connect 4 0 5 0; #X connect 1 0 26 0; #X connect 6 0 9 0; #X connect 9 0 7 0; #X connect 0 0 8 0; #X connect 8 0 9 0; #X connect 3 0 9 0; #X connect 0 0 10 0; #X connect 10 0 11 0; #X connect 3 0 11 0; #X connect 0 0 12 0; #X connect 12 0 13 0; #X connect 3 0 13 0; #X connect 0 0 14 0; #X connect 14 0 15 0; #X connect 3 0 15 0; #X connect 0 0 16 0; #X connect 16 0 17 0; #X connect 3 0 17 0; #X connect 0 0 18 0; #X connect 18 0 19 0; #X connect 3 0 19 0; #X connect 0 0 20 0; #X connect 20 0 21 0; #X connect 3 0 21 0; #X connect 0 0 22 0; #X connect 22 0 23 0; #X connect 3 0 23 0; #X connect 9 1 24 0; #X connect 9 2 25 0; #X connect 11 1 24 0; #X connect 11 2 25 0; #X connect 13 1 24 0; #X connect 13 2 25 0; #X connect 15 1 24 0; #X connect 15 2 25 0; #X connect 17 1 24 0; #X connect 17 2 25 0; #X connect 19 1 24 0; #X connect 19 2 25 0; #X connect 21 1 24 0; #X connect 21 2 25 0; #X connect 23 1 24 0; #X connect 23 2 25 0; #X obj 10 30 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Brightness-Factor \$0-piano/Physical-Parameters/Brightness-Factor Brightness-Factor -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 30 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Brightness-Factor \$0-piano/Physical-Parameters/Brightness-Factor empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 60 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Detuning-Factor \$0-piano/Physical-Parameters/Detuning-Factor Detuning-Factor -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 60 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Detuning-Factor \$0-piano/Physical-Parameters/Detuning-Factor empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 90 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Hammer-Hardness \$0-piano/Physical-Parameters/Hammer-Hardness Hammer-Hardness -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 90 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Hammer-Hardness \$0-piano/Physical-Parameters/Hammer-Hardness empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 120 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Stiffness-Factor \$0-piano/Physical-Parameters/Stiffness-Factor Stiffness-Factor -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 120 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Stiffness-Factor \$0-piano/Physical-Parameters/Stiffness-Factor empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 150 hsl 128 15 0 1 0 0 \$0-piano/Reverb/reverbGain \$0-piano/Reverb/reverbGain reverbGain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 150 nbx 5 14 0 1 0 0 \$0-piano/Reverb/reverbGain \$0-piano/Reverb/reverbGain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 180 hsl 128 15 0.01 2 0 0 \$0-piano/Reverb/roomSize \$0-piano/Reverb/roomSize roomSize -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 180 nbx 5 14 0.01 2 0 0 \$0-piano/Reverb/roomSize \$0-piano/Reverb/roomSize empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 210 hsl 128 15 0 1 0 0 \$0-piano/Spat/pan-angle \$0-piano/Spat/pan-angle pan-angle -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 210 nbx 5 14 0 1 0 0 \$0-piano/Spat/pan-angle \$0-piano/Spat/pan-angle empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 240 hsl 128 15 0 1 0 0 \$0-piano/Spat/spatial-width \$0-piano/Spat/spatial-width spatial-width -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 240 nbx 5 14 0 1 0 0 \$0-piano/Spat/spatial-width \$0-piano/Spat/spatial-width empty 0 -6 0 10 -262144 -1 -1 256; #X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; #X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; #X obj 450 10 r \$0-init; #X obj 858 10 s \$0-all; #X obj 1062 10 s \$0-read; #X obj 1266 10 r \$0-write; #X msg 450 30 1; #X obj 450 50 s \$0-active; #X connect 49 0 50 0; #X obj 858 30 r \$0-active; #X msg 858 50 active \$1; #X connect 51 0 52 0; #X connect 52 0 46 0; #X obj 1266 30 route active; #X obj 1266 50 s \$0-active; #X connect 48 0 53 0; #X connect 53 0 54 0; #X msg 450 70 0; #X obj 450 90 s \$0-piano/Physical-Parameters/Brightness-Factor; #X connect 45 0 55 0; #X connect 55 0 56 0; #X obj 858 70 r \$0-piano/Physical-Parameters/Brightness-Factor; #X msg 858 90 /piano/Physical-Parameters/Brightness-Factor \$1; #X connect 57 0 58 0; #X connect 58 0 46 0; #X obj 1266 70 route /piano/Physical-Parameters/Brightness-Factor; #X obj 1266 90 s \$0-piano/Physical-Parameters/Brightness-Factor; #X connect 53 1 59 0; #X connect 59 0 60 0; #X msg 450 110 0.1; #X obj 450 130 s \$0-piano/Physical-Parameters/Detuning-Factor; #X connect 45 0 61 0; #X connect 61 0 62 0; #X obj 858 110 r \$0-piano/Physical-Parameters/Detuning-Factor; #X msg 858 130 /piano/Physical-Parameters/Detuning-Factor \$1; #X connect 63 0 64 0; #X connect 64 0 46 0; #X obj 1266 110 route /piano/Physical-Parameters/Detuning-Factor; #X obj 1266 130 s \$0-piano/Physical-Parameters/Detuning-Factor; #X connect 59 1 65 0; #X connect 65 0 66 0; #X msg 450 150 0.1; #X obj 450 170 s \$0-piano/Physical-Parameters/Hammer-Hardness; #X connect 45 0 67 0; #X connect 67 0 68 0; #X obj 858 150 r \$0-piano/Physical-Parameters/Hammer-Hardness; #X msg 858 170 /piano/Physical-Parameters/Hammer-Hardness \$1; #X connect 69 0 70 0; #X connect 70 0 46 0; #X obj 1266 150 route /piano/Physical-Parameters/Hammer-Hardness; #X obj 1266 170 s \$0-piano/Physical-Parameters/Hammer-Hardness; #X connect 65 1 71 0; #X connect 71 0 72 0; #X msg 450 190 0.28; #X obj 450 210 s \$0-piano/Physical-Parameters/Stiffness-Factor; #X connect 45 0 73 0; #X connect 73 0 74 0; #X obj 858 190 r \$0-piano/Physical-Parameters/Stiffness-Factor; #X msg 858 210 /piano/Physical-Parameters/Stiffness-Factor \$1; #X connect 75 0 76 0; #X connect 76 0 46 0; #X obj 1266 190 route /piano/Physical-Parameters/Stiffness-Factor; #X obj 1266 210 s \$0-piano/Physical-Parameters/Stiffness-Factor; #X connect 71 1 77 0; #X connect 77 0 78 0; #X msg 450 230 0.137; #X obj 450 250 s \$0-piano/Reverb/reverbGain; #X connect 45 0 79 0; #X connect 79 0 80 0; #X obj 858 230 r \$0-piano/Reverb/reverbGain; #X msg 858 250 /piano/Reverb/reverbGain \$1; #X connect 81 0 82 0; #X connect 82 0 46 0; #X obj 1266 230 route /piano/Reverb/reverbGain; #X obj 1266 250 s \$0-piano/Reverb/reverbGain; #X connect 77 1 83 0; #X connect 83 0 84 0; #X msg 450 270 0.72; #X obj 450 290 s \$0-piano/Reverb/roomSize; #X connect 45 0 85 0; #X connect 85 0 86 0; #X obj 858 270 r \$0-piano/Reverb/roomSize; #X msg 858 290 /piano/Reverb/roomSize \$1; #X connect 87 0 88 0; #X connect 88 0 46 0; #X obj 1266 270 route /piano/Reverb/roomSize; #X obj 1266 290 s \$0-piano/Reverb/roomSize; #X connect 83 1 89 0; #X connect 89 0 90 0; #X msg 450 310 0.6; #X obj 450 330 s \$0-piano/Spat/pan-angle; #X connect 45 0 91 0; #X connect 91 0 92 0; #X obj 858 310 r \$0-piano/Spat/pan-angle; #X msg 858 330 /piano/Spat/pan-angle \$1; #X connect 93 0 94 0; #X connect 94 0 46 0; #X obj 1266 310 route /piano/Spat/pan-angle; #X obj 1266 330 s \$0-piano/Spat/pan-angle; #X connect 89 1 95 0; #X connect 95 0 96 0; #X msg 450 350 0.5; #X obj 450 370 s \$0-piano/Spat/spatial-width; #X connect 45 0 97 0; #X connect 97 0 98 0; #X obj 858 350 r \$0-piano/Spat/spatial-width; #X msg 858 370 /piano/Spat/spatial-width \$1; #X connect 99 0 100 0; #X connect 100 0 46 0; #X obj 1266 350 route /piano/Spat/spatial-width; #X obj 1266 370 s \$0-piano/Spat/spatial-width; #X connect 95 1 101 0; #X connect 101 0 102 0; #X coords 0 -1 1 1 235 260 1 0 0; #X text 0 280 Generated Wed Sep 14 23:04:18 2011 by faust2pd v2.2. See http://faust.grame.fr and http://pure-lang.googlecode.com.; faust-0.9.46/examples/faust-stk/pd-patches/fancy/daisy/voiceForm.pd0000644000175000017500000003346311702130733025134 0ustar orlareyorlarey#N canvas 351 68 1569 879 10; #X obj 10 390 inlet; #X obj 130 390 inlet; #X obj 190 390 r \$0-read; #X obj 130 420 r \$0-all; #X obj 190 420 faust-control \$0; #X obj 190 450 s \$0-write; #X obj 130 450 r \$0-in; #X obj 130 540 s \$0-out; #X obj 10 480 faust-gate 1; #X obj 130 480 voiceForm~; #X obj 10 510 faust-gate 2; #X obj 130 510 voiceForm~; #X obj 130 570 outlet~; #X obj 190 570 outlet~; #X obj 10 570 outlet; #X obj 10 30 hsl 128 15 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Attack \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Attack Noised-Attack -2 -6 0 10 -262144 -1 -1 6 1; #X obj 160 30 nbx 5 14 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Attack \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Attack empty 0 -6 0 10 -262144 -1 -1 0.001 256; #X obj 10 60 hsl 128 15 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Release \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Release Noised-Release -2 -6 0 10 -262144 -1 -1 6 1; #X obj 160 60 nbx 5 14 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Release \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Release empty 0 -6 0 10 -262144 -1 -1 0.001 256; #X obj 10 90 hsl 128 15 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Attack \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Attack Voiced-Attack -2 -6 0 10 -262144 -1 -1 63 1; #X obj 160 90 nbx 5 14 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Attack \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Attack empty 0 -6 0 10 -262144 -1 -1 0.01 256; #X obj 10 120 hsl 128 15 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Release \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Release Voiced-Release -2 -6 0 10 -262144 -1 -1 63 1; #X obj 160 120 nbx 5 14 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Release \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Release empty 0 -6 0 10 -262144 -1 -1 0.01 256; #X obj 235 30 hsl 128 15 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack Vibrato-Attack -2 -6 0 10 -262144 -1 -1 3175 1; #X obj 385 30 nbx 5 14 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack empty 0 -6 0 10 -262144 -1 -1 0.5 256; #X obj 235 60 hsl 128 15 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin Vibrato-Begin -2 -6 0 10 -262144 -1 -1 317 1; #X obj 385 60 nbx 5 14 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin empty 0 -6 0 10 -262144 -1 -1 0.05 256; #X obj 235 90 hsl 128 15 1 15 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq Vibrato-Freq -2 -6 0 10 -262144 -1 -1 4536 1; #X obj 385 90 nbx 5 14 1 15 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq empty 0 -6 0 10 -262144 -1 -1 6 256; #X obj 235 120 hsl 128 15 0 1 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain Vibrato-Gain -2 -6 0 10 -262144 -1 -1 635 1; #X obj 385 120 nbx 5 14 0 1 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain empty 0 -6 0 10 -262144 -1 -1 0.05 256; #X obj 235 150 hsl 128 15 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release Vibrato-Release -2 -6 0 10 -262144 -1 -1 635 1; #X obj 385 150 nbx 5 14 0 2 0 0 \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release empty 0 -6 0 10 -262144 -1 -1 0.1 256; #X obj 10 180 hsl 128 15 0 31 0 0 \$0-voiceForm/Physical-Parameters/Phoneme \$0-voiceForm/Physical-Parameters/Phoneme Phoneme -2 -6 0 10 -262144 -1 -1 1639 1; #X obj 160 180 nbx 5 14 0 31 0 0 \$0-voiceForm/Physical-Parameters/Phoneme \$0-voiceForm/Physical-Parameters/Phoneme empty 0 -6 0 10 -262144 -1 -1 4 256; #X obj 10 210 hsl 128 15 0 1 0 0 \$0-voiceForm/Reverb/reverbGain \$0-voiceForm/Reverb/reverbGain reverbGain -2 -6 0 10 -262144 -1 -1 1740 1; #X obj 160 210 nbx 5 14 0 1 0 0 \$0-voiceForm/Reverb/reverbGain \$0-voiceForm/Reverb/reverbGain empty 0 -6 0 10 -262144 -1 -1 0.137 256; #X obj 10 240 hsl 128 15 0.01 2 0 0 \$0-voiceForm/Reverb/roomSize \$0-voiceForm/Reverb/roomSize roomSize -2 -6 0 10 -262144 -1 -1 4531 1; #X obj 160 240 nbx 5 14 0.01 2 0 0 \$0-voiceForm/Reverb/roomSize \$0-voiceForm/Reverb/roomSize empty 0 -6 0 10 -262144 -1 -1 0.72 256; #X obj 10 270 hsl 128 15 0 1 0 0 \$0-voiceForm/Spat/pan-angle \$0-voiceForm/Spat/pan-angle pan-angle -2 -6 0 10 -262144 -1 -1 7620 1; #X obj 160 270 nbx 5 14 0 1 0 0 \$0-voiceForm/Spat/pan-angle \$0-voiceForm/Spat/pan-angle empty 0 -6 0 10 -262144 -1 -1 0.6 256; #X obj 10 300 hsl 128 15 0 1 0 0 \$0-voiceForm/Spat/spatial-width \$0-voiceForm/Spat/spatial-width spatial-width -2 -6 0 10 -262144 -1 -1 6350 1; #X obj 160 300 nbx 5 14 0 1 0 0 \$0-voiceForm/Spat/spatial-width \$0-voiceForm/Spat/spatial-width empty 0 -6 0 10 -262144 -1 -1 0.5 256; #X obj 422 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; #X obj 442 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; #X obj 490 10 r \$0-init; #X obj 1082 10 s \$0-all; #X obj 1378 10 s \$0-read; #X obj 1674 10 r \$0-write; #X msg 490 30 1; #X obj 490 50 s \$0-active; #X obj 1082 30 r \$0-active; #X msg 1082 50 active \$1; #X obj 1674 30 route active; #X obj 1674 50 s \$0-active; #X msg 490 70 0.001; #X obj 490 90 s \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Attack ; #X obj 1082 70 r \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Attack ; #X msg 1082 90 /voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Attack \$1; #X obj 1674 70 route /voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Attack ; #X obj 1674 90 s \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Attack ; #X msg 490 110 0.001; #X obj 490 130 s \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Release ; #X obj 1082 110 r \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Release ; #X msg 1082 130 /voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Release \$1; #X obj 1674 110 route /voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Release ; #X obj 1674 130 s \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Noised-Release ; #X msg 490 150 0.01; #X obj 490 170 s \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Attack ; #X obj 1082 150 r \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Attack ; #X msg 1082 170 /voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Attack \$1; #X obj 1674 150 route /voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Attack ; #X obj 1674 170 s \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Attack ; #X msg 490 190 0.01; #X obj 490 210 s \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Release ; #X obj 1082 190 r \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Release ; #X msg 1082 210 /voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Release \$1; #X obj 1674 190 route /voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Release ; #X obj 1674 210 s \$0-voiceForm/Envelopes-and-Vibrato/Envelope-Parameters/Voiced-Release ; #X msg 490 230 0.5; #X obj 490 250 s \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack ; #X obj 1082 230 r \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack ; #X msg 1082 250 /voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack \$1; #X obj 1674 230 route /voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack ; #X obj 1674 250 s \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack ; #X msg 490 270 0.05; #X obj 490 290 s \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin ; #X obj 1082 270 r \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin ; #X msg 1082 290 /voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin \$1; #X obj 1674 270 route /voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin ; #X obj 1674 290 s \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Begin ; #X msg 490 310 6; #X obj 490 330 s \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq ; #X obj 1082 310 r \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq ; #X msg 1082 330 /voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$1; #X obj 1674 310 route /voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq ; #X obj 1674 330 s \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq ; #X msg 490 350 0.05; #X obj 490 370 s \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain ; #X obj 1082 350 r \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain ; #X msg 1082 370 /voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$1; #X obj 1674 350 route /voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain ; #X obj 1674 370 s \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain ; #X msg 490 390 0.1; #X obj 490 410 s \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release ; #X obj 1082 390 r \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release ; #X msg 1085 397 /voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release \$1; #X obj 1674 390 route /voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release ; #X obj 1674 410 s \$0-voiceForm/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release ; #X msg 490 430 4; #X obj 490 450 s \$0-voiceForm/Physical-Parameters/Phoneme; #X obj 1229 431 r \$0-voiceForm/Physical-Parameters/Phoneme; #X obj 1674 430 route /voiceForm/Physical-Parameters/Phoneme; #X obj 1674 450 s \$0-voiceForm/Physical-Parameters/Phoneme; #X msg 490 470 0.137; #X obj 490 490 s \$0-voiceForm/Reverb/reverbGain; #X obj 1082 470 r \$0-voiceForm/Reverb/reverbGain; #X msg 1082 490 /voiceForm/Reverb/reverbGain \$1; #X obj 1674 470 route /voiceForm/Reverb/reverbGain; #X obj 1674 490 s \$0-voiceForm/Reverb/reverbGain; #X msg 490 510 0.72; #X obj 490 530 s \$0-voiceForm/Reverb/roomSize; #X obj 1082 510 r \$0-voiceForm/Reverb/roomSize; #X msg 1082 530 /voiceForm/Reverb/roomSize \$1; #X obj 1674 510 route /voiceForm/Reverb/roomSize; #X obj 1674 530 s \$0-voiceForm/Reverb/roomSize; #X msg 490 550 0.6; #X obj 490 570 s \$0-voiceForm/Spat/pan-angle; #X obj 1082 550 r \$0-voiceForm/Spat/pan-angle; #X msg 1082 570 /voiceForm/Spat/pan-angle \$1; #X obj 1674 550 route /voiceForm/Spat/pan-angle; #X obj 1674 570 s \$0-voiceForm/Spat/pan-angle; #X msg 490 590 0.5; #X obj 490 610 s \$0-voiceForm/Spat/spatial-width; #X obj 1082 590 r \$0-voiceForm/Spat/spatial-width; #X msg 1082 610 /voiceForm/Spat/spatial-width \$1; #X obj 1674 590 route /voiceForm/Spat/spatial-width; #X obj 1674 610 s \$0-voiceForm/Spat/spatial-width; #X text 0 340 Generated Wed Sep 14 23:09:33 2011 by faust2pd v2.2. See http://faust.grame.fr and http://pure-lang.googlecode.com.; #X connect 0 0 8 0; #X connect 0 0 10 0; #X connect 1 0 4 0; #X connect 1 0 14 0; #X connect 2 0 4 0; #X connect 3 0 9 0; #X connect 3 0 11 0; #X connect 4 0 5 0; #X connect 6 0 9 0; #X connect 8 0 9 0; #X connect 9 0 7 0; #X connect 9 1 12 0; #X connect 9 2 13 0; #X connect 10 0 11 0; #X connect 11 1 12 0; #X connect 11 2 13 0; #X connect 45 0 55 0; #X connect 45 0 61 0; #X connect 45 0 67 0; #X connect 45 0 73 0; #X connect 45 0 79 0; #X connect 45 0 85 0; #X connect 45 0 91 0; #X connect 45 0 97 0; #X connect 45 0 103 0; #X connect 45 0 109 0; #X connect 45 0 114 0; #X connect 45 0 120 0; #X connect 45 0 126 0; #X connect 45 0 132 0; #X connect 48 0 53 0; #X connect 49 0 50 0; #X connect 51 0 52 0; #X connect 52 0 46 0; #X connect 53 0 54 0; #X connect 53 1 59 0; #X connect 55 0 56 0; #X connect 57 0 58 0; #X connect 58 0 46 0; #X connect 59 0 60 0; #X connect 59 1 65 0; #X connect 61 0 62 0; #X connect 63 0 64 0; #X connect 64 0 46 0; #X connect 65 0 66 0; #X connect 65 1 71 0; #X connect 67 0 68 0; #X connect 69 0 70 0; #X connect 70 0 46 0; #X connect 71 0 72 0; #X connect 71 1 77 0; #X connect 73 0 74 0; #X connect 75 0 76 0; #X connect 76 0 46 0; #X connect 77 0 78 0; #X connect 77 1 83 0; #X connect 79 0 80 0; #X connect 81 0 82 0; #X connect 82 0 46 0; #X connect 83 0 84 0; #X connect 83 1 89 0; #X connect 85 0 86 0; #X connect 87 0 88 0; #X connect 88 0 46 0; #X connect 89 0 90 0; #X connect 89 1 95 0; #X connect 91 0 92 0; #X connect 93 0 94 0; #X connect 94 0 46 0; #X connect 95 0 96 0; #X connect 95 1 101 0; #X connect 97 0 98 0; #X connect 99 0 100 0; #X connect 100 0 46 0; #X connect 101 0 102 0; #X connect 101 1 107 0; #X connect 103 0 104 0; #X connect 105 0 106 0; #X connect 106 0 46 0; #X connect 107 0 108 0; #X connect 107 1 112 0; #X connect 109 0 110 0; #X connect 112 0 113 0; #X connect 112 1 118 0; #X connect 114 0 115 0; #X connect 116 0 117 0; #X connect 117 0 46 0; #X connect 118 0 119 0; #X connect 118 1 124 0; #X connect 120 0 121 0; #X connect 122 0 123 0; #X connect 123 0 46 0; #X connect 124 0 125 0; #X connect 124 1 130 0; #X connect 126 0 127 0; #X connect 128 0 129 0; #X connect 129 0 46 0; #X connect 130 0 131 0; #X connect 130 1 136 0; #X connect 132 0 133 0; #X connect 134 0 135 0; #X connect 135 0 46 0; #X connect 136 0 137 0; #X coords 0 -1 1 1 460 320 1 0 0; faust-0.9.46/examples/faust-stk/pd-patches/fancy/daisy/daisy.pd0000644000175000017500000000216511702130733024307 0ustar orlareyorlarey#N canvas 364 81 761 668 10; #X msg 284 576 \; pd dsp 1; #X msg 284 614 \; pd dsp 0; #X obj 13 447 audio-out; #X obj 531 518 seq; #X msg 563 448 bang; #X msg 563 475 stop; #X msg 613 474 pause; #X msg 673 474 continue; #X text 601 447 play; #X obj 531 545 midiout; #X text 71 5 MIDI channel must be set to 1; #X obj 13 78 piano; #X obj 442 452 loadbang; #X obj 13 27 midi-in 8; #X obj 360 25 midi-in 2; #X obj 127 382 *~ 0.8; #X obj 241 405 *~ 0.8; #X obj 327 410 *~ 10; #X obj 469 414 *~ 10; #X obj 268 78 voiceForm; #X msg 442 476 read daisy.mid; #X text 385 4 MIDI channel must be set to 2; #X text 352 582 In order to have this example work \, input device and output device in MIDI settings must be set to the same internal driver.; #X connect 3 0 9 0; #X connect 4 0 3 0; #X connect 5 0 3 0; #X connect 6 0 3 0; #X connect 7 0 3 0; #X connect 11 1 15 0; #X connect 11 2 16 0; #X connect 12 0 20 0; #X connect 13 0 11 0; #X connect 13 1 11 1; #X connect 14 0 19 0; #X connect 14 1 19 1; #X connect 15 0 2 1; #X connect 16 0 2 2; #X connect 17 0 2 1; #X connect 18 0 2 2; #X connect 19 1 17 0; #X connect 19 2 18 0; #X connect 20 0 3 0; faust-0.9.46/examples/faust-stk/pd-patches/fancy/daisy/daisy.mid0000644000175000017500000000427511702130733024461 0ustar orlareyorlareyMThdMTrkdaisyQ X/MTrkMIDI 01KJHJ@%GI)G@kCJ}C@D>BD>@ @K&BK@@CJB@2@KC@<@@CJI>L C@p>@ZEJ4JH&E@GIJ@CJG@WC@6@K1BK%@@ CJ B@7EJC@JGIE@SEJG@1E@NGI3HIG@#GI H@.EF G@GJHE@RGIJ@EJG@zCJ E@EC@6EJQGI!E@ZCJG@#@K C@KCJ@@=@KC@>D @@q>@y>Hd>@iCJxGIC@EFG@rE@(CJGIC@=G@EJXE@yGIG@HIH@JH@GIJ@CJG@7EJC@uE@>L'CJ>@*C@/MTrkMIDI 02%@+uOG\Cb>]6C@>@ G@+@eCl>dGa3C@>@G@f&uDCdGZ>]:C@G@>@qCbG[&@>_JC@G@>@g+s5>\C];[EC@;@>@S+@Cd>d;a0C@>@;@t&nQC];]>]A;@>@C@w>^C];\J>@;@&@C@T$s(@ZC]XCY/>@C@;@>[;ZC`=+@G;@>@C@#+b0>V;ZCZ5>@C@;@>[;YC[+@5;@>@C@b&b-BE>W@ B@<@hBC W`&@>@ B@<@E@S-l0BCET>[,@E@B@<@bBH>\EW@E@B@<@@-@+[->YCY;XNC@;@>@^CX;Z>]b+@0>@C@;@(c(>Y@VCV;TE@@;@C@>@vCZ>[@X;ZRC@@@;@>@(@K-l'=@CY7P@T9RL7@9@C@@@ =@W=D@WCZ9\7Z -@9@7@@@ =@C@-t=D @XCW7Z9\17@9@@@C@=@k=D@T9V7TCW-@h7@ 9@@@=@C@&f4BT<]B@&@UC\F@@ C@nEb<@>b#&@@"BESEO:>@E@<@B@gET>SB?@B@-dBE>SEO@<@E@B@wB?>SEM

-@E@B@>@<@B+b-@REFW;TCY%+@/&c;@C@>@ >YCW;V=>@C@;@lCZ>Y;V:&@gC@>@;@*+^#>XCV;RD;@C@>@x>WCW;R+@d>@;@C@B$i$J7I7>@7@;@r;V>U7N+@7@;@>@"&`,ZI>@<@6@}Q6=2&@46@<@ >@J+e>YC\;WI;@>@C@RCX>W;T+@s;@>@C@6&[BC >ZEZ@E@<@4+bD>YCY;XE>@;@C@nC\>Z;Y+@ ;@>@C@&t(BG>ZEU@B@<@E@S/lM>YCX;VH;@>@C@mC]>Z;Y/@h;@ >@C@92e1B?EQ>U@ <@6+m)>SCS;P8+@C@>@;@cCZ>Y;WK;@>@C@h&n->S CV;TD;@>@C@[&@>W;TCXB>@C@;@q+u'>]C^;^?;@>@C@+@C`;_>b1>@C@;@C`;_>bt>@C@;@/faust-0.9.46/examples/faust-stk/pd-patches/fancy/daisy/audio-out.pd0000644000175000017500000000156411702130733025106 0ustar orlareyorlarey#N canvas 86 452 512 359 10; #X obj 54 222 env~; #X obj 54 245 - 100; #X obj 158 222 env~; #X obj 158 245 - 100; #X obj 100 204 dac~; #X obj 55 174 inlet~; #X obj 158 173 inlet~; #X obj 217 4 tgl 15 0 dsp-toggle dsp-toggle empty 0 -6 0 8 -262144 -1 -1 1 1; #X msg 211 203 \; pd dsp \$1; #X obj 314 172 loadbang; #X msg 314 199 1; #X text 251 12 Stereo audio output + VU meter.; #X obj 53 29 vu 15 120 \$0-L empty -1 -8 0 8 -66577 -1 1 0; #X obj 141 29 vu 15 120 \$0-R empty -1 -8 0 8 -66577 -1 1 0; #X obj 54 273 s \$0-L; #X obj 158 273 s \$0-R; #X obj 211 172 r dsp-toggle; #X obj 314 225 s dsp-toggle; #X obj 3 173 inlet; #X connect 0 0 1 0; #X connect 1 0 14 0; #X connect 2 0 3 0; #X connect 3 0 15 0; #X connect 5 0 0 0; #X connect 5 0 4 0; #X connect 6 0 2 0; #X connect 6 0 4 1; #X connect 9 0 10 0; #X connect 10 0 17 0; #X connect 16 0 8 0; #X coords 0 -1 1 1 235 160 1 0 0; faust-0.9.46/examples/faust-stk/pd-patches/fancy/take5/0000755000175000017500000000000011702130733022545 5ustar orlareyorlareyfaust-0.9.46/examples/faust-stk/pd-patches/fancy/take5/piano.pd0000644000175000017500000002060411702130733024202 0ustar orlareyorlarey#N canvas 0 0 450 300 10; #X obj 10 360 inlet; #X obj 130 360 inlet; #X obj 190 360 r \$0-read; #X obj 130 390 r \$0-all; #X obj 190 390 faust-control \$0; #X obj 190 420 s \$0-write; #X obj 130 420 r \$0-in; #X obj 130 630 s \$0-out; #X obj 10 450 faust-gate 1; #X obj 130 450 piano~; #X obj 10 480 faust-gate 2; #X obj 130 480 piano~; #X obj 10 510 faust-gate 3; #X obj 130 510 piano~; #X obj 10 540 faust-gate 4; #X obj 130 540 piano~; #X obj 10 570 faust-gate 5; #X obj 130 570 piano~; #X obj 10 600 faust-gate 6; #X obj 130 600 piano~; #X obj 130 660 outlet~; #X obj 190 660 outlet~; #X obj 10 660 outlet; #X connect 1 0 4 0; #X connect 2 0 4 0; #X connect 4 0 5 0; #X connect 1 0 22 0; #X connect 6 0 9 0; #X connect 9 0 7 0; #X connect 0 0 8 0; #X connect 8 0 9 0; #X connect 3 0 9 0; #X connect 0 0 10 0; #X connect 10 0 11 0; #X connect 3 0 11 0; #X connect 0 0 12 0; #X connect 12 0 13 0; #X connect 3 0 13 0; #X connect 0 0 14 0; #X connect 14 0 15 0; #X connect 3 0 15 0; #X connect 0 0 16 0; #X connect 16 0 17 0; #X connect 3 0 17 0; #X connect 0 0 18 0; #X connect 18 0 19 0; #X connect 3 0 19 0; #X connect 9 1 20 0; #X connect 9 2 21 0; #X connect 11 1 20 0; #X connect 11 2 21 0; #X connect 13 1 20 0; #X connect 13 2 21 0; #X connect 15 1 20 0; #X connect 15 2 21 0; #X connect 17 1 20 0; #X connect 17 2 21 0; #X connect 19 1 20 0; #X connect 19 2 21 0; #X obj 10 30 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Brightness-Factor \$0-piano/Physical-Parameters/Brightness-Factor Brightness-Factor -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 30 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Brightness-Factor \$0-piano/Physical-Parameters/Brightness-Factor empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 60 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Detuning-Factor \$0-piano/Physical-Parameters/Detuning-Factor Detuning-Factor -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 60 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Detuning-Factor \$0-piano/Physical-Parameters/Detuning-Factor empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 90 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Hammer-Hardness \$0-piano/Physical-Parameters/Hammer-Hardness Hammer-Hardness -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 90 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Hammer-Hardness \$0-piano/Physical-Parameters/Hammer-Hardness empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 120 hsl 128 15 0 1 0 0 \$0-piano/Physical-Parameters/Stiffness-Factor \$0-piano/Physical-Parameters/Stiffness-Factor Stiffness-Factor -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 120 nbx 5 14 0 1 0 0 \$0-piano/Physical-Parameters/Stiffness-Factor \$0-piano/Physical-Parameters/Stiffness-Factor empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 150 hsl 128 15 0 1 0 0 \$0-piano/Reverb/Freeverb/Damp \$0-piano/Reverb/Freeverb/Damp Damp -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 150 nbx 5 14 0 1 0 0 \$0-piano/Reverb/Freeverb/Damp \$0-piano/Reverb/Freeverb/Damp empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 180 hsl 128 15 0 1 0 0 \$0-piano/Reverb/Freeverb/RoomSize \$0-piano/Reverb/Freeverb/RoomSize RoomSize -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 180 nbx 5 14 0 1 0 0 \$0-piano/Reverb/Freeverb/RoomSize \$0-piano/Reverb/Freeverb/RoomSize empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 210 hsl 128 15 0 1 0 0 \$0-piano/Reverb/Freeverb/Wet \$0-piano/Reverb/Freeverb/Wet Wet -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 210 nbx 5 14 0 1 0 0 \$0-piano/Reverb/Freeverb/Wet \$0-piano/Reverb/Freeverb/Wet empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 240 hsl 128 15 0 1 0 0 \$0-piano/Spat/pan-angle \$0-piano/Spat/pan-angle pan-angle -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 240 nbx 5 14 0 1 0 0 \$0-piano/Spat/pan-angle \$0-piano/Spat/pan-angle empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 270 hsl 128 15 0 1 0 0 \$0-piano/Spat/spatial-width \$0-piano/Spat/spatial-width spatial-width -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 270 nbx 5 14 0 1 0 0 \$0-piano/Spat/spatial-width \$0-piano/Spat/spatial-width empty 0 -6 0 10 -262144 -1 -1 256; #X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; #X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; #X obj 450 10 r \$0-init; #X obj 858 10 s \$0-all; #X obj 1062 10 s \$0-read; #X obj 1266 10 r \$0-write; #X msg 450 30 1; #X obj 450 50 s \$0-active; #X connect 47 0 48 0; #X obj 858 30 r \$0-active; #X msg 858 50 active \$1; #X connect 49 0 50 0; #X connect 50 0 44 0; #X obj 1266 30 route active; #X obj 1266 50 s \$0-active; #X connect 46 0 51 0; #X connect 51 0 52 0; #X msg 450 70 0; #X obj 450 90 s \$0-piano/Physical-Parameters/Brightness-Factor; #X connect 43 0 53 0; #X connect 53 0 54 0; #X obj 858 70 r \$0-piano/Physical-Parameters/Brightness-Factor; #X msg 858 90 /piano/Physical-Parameters/Brightness-Factor \$1; #X connect 55 0 56 0; #X connect 56 0 44 0; #X obj 1266 70 route /piano/Physical-Parameters/Brightness-Factor; #X obj 1266 90 s \$0-piano/Physical-Parameters/Brightness-Factor; #X connect 51 1 57 0; #X connect 57 0 58 0; #X msg 450 110 0.1; #X obj 450 130 s \$0-piano/Physical-Parameters/Detuning-Factor; #X connect 43 0 59 0; #X connect 59 0 60 0; #X obj 858 110 r \$0-piano/Physical-Parameters/Detuning-Factor; #X msg 858 130 /piano/Physical-Parameters/Detuning-Factor \$1; #X connect 61 0 62 0; #X connect 62 0 44 0; #X obj 1266 110 route /piano/Physical-Parameters/Detuning-Factor; #X obj 1266 130 s \$0-piano/Physical-Parameters/Detuning-Factor; #X connect 57 1 63 0; #X connect 63 0 64 0; #X msg 450 150 0.1; #X obj 450 170 s \$0-piano/Physical-Parameters/Hammer-Hardness; #X connect 43 0 65 0; #X connect 65 0 66 0; #X obj 858 150 r \$0-piano/Physical-Parameters/Hammer-Hardness; #X msg 858 170 /piano/Physical-Parameters/Hammer-Hardness \$1; #X connect 67 0 68 0; #X connect 68 0 44 0; #X obj 1266 150 route /piano/Physical-Parameters/Hammer-Hardness; #X obj 1266 170 s \$0-piano/Physical-Parameters/Hammer-Hardness; #X connect 63 1 69 0; #X connect 69 0 70 0; #X msg 450 190 0.28; #X obj 450 210 s \$0-piano/Physical-Parameters/Stiffness-Factor; #X connect 43 0 71 0; #X connect 71 0 72 0; #X obj 858 190 r \$0-piano/Physical-Parameters/Stiffness-Factor; #X msg 858 210 /piano/Physical-Parameters/Stiffness-Factor \$1; #X connect 73 0 74 0; #X connect 74 0 44 0; #X obj 1266 190 route /piano/Physical-Parameters/Stiffness-Factor; #X obj 1266 210 s \$0-piano/Physical-Parameters/Stiffness-Factor; #X connect 69 1 75 0; #X connect 75 0 76 0; #X msg 450 230 0.72; #X obj 450 250 s \$0-piano/Reverb/Freeverb/Damp; #X connect 43 0 77 0; #X connect 77 0 78 0; #X obj 858 230 r \$0-piano/Reverb/Freeverb/Damp; #X msg 858 250 /piano/Reverb/Freeverb/Damp \$1; #X connect 79 0 80 0; #X connect 80 0 44 0; #X obj 1266 230 route /piano/Reverb/Freeverb/Damp; #X obj 1266 250 s \$0-piano/Reverb/Freeverb/Damp; #X connect 75 1 81 0; #X connect 81 0 82 0; #X msg 450 270 0.54; #X obj 450 290 s \$0-piano/Reverb/Freeverb/RoomSize; #X connect 43 0 83 0; #X connect 83 0 84 0; #X obj 858 270 r \$0-piano/Reverb/Freeverb/RoomSize; #X msg 858 290 /piano/Reverb/Freeverb/RoomSize \$1; #X connect 85 0 86 0; #X connect 86 0 44 0; #X obj 1266 270 route /piano/Reverb/Freeverb/RoomSize; #X obj 1266 290 s \$0-piano/Reverb/Freeverb/RoomSize; #X connect 81 1 87 0; #X connect 87 0 88 0; #X msg 450 310 0.141; #X obj 450 330 s \$0-piano/Reverb/Freeverb/Wet; #X connect 43 0 89 0; #X connect 89 0 90 0; #X obj 858 310 r \$0-piano/Reverb/Freeverb/Wet; #X msg 858 330 /piano/Reverb/Freeverb/Wet \$1; #X connect 91 0 92 0; #X connect 92 0 44 0; #X obj 1266 310 route /piano/Reverb/Freeverb/Wet; #X obj 1266 330 s \$0-piano/Reverb/Freeverb/Wet; #X connect 87 1 93 0; #X connect 93 0 94 0; #X msg 450 350 0.6; #X obj 450 370 s \$0-piano/Spat/pan-angle; #X connect 43 0 95 0; #X connect 95 0 96 0; #X obj 858 350 r \$0-piano/Spat/pan-angle; #X msg 858 370 /piano/Spat/pan-angle \$1; #X connect 97 0 98 0; #X connect 98 0 44 0; #X obj 1266 350 route /piano/Spat/pan-angle; #X obj 1266 370 s \$0-piano/Spat/pan-angle; #X connect 93 1 99 0; #X connect 99 0 100 0; #X msg 450 390 0.5; #X obj 450 410 s \$0-piano/Spat/spatial-width; #X connect 43 0 101 0; #X connect 101 0 102 0; #X obj 858 390 r \$0-piano/Spat/spatial-width; #X msg 858 410 /piano/Spat/spatial-width \$1; #X connect 103 0 104 0; #X connect 104 0 44 0; #X obj 1266 390 route /piano/Spat/spatial-width; #X obj 1266 410 s \$0-piano/Spat/spatial-width; #X connect 99 1 105 0; #X connect 105 0 106 0; #X coords 0 -1 1 1 235 290 1 0 0; #X text 0 310 Generated Mon Mar 21 15:15:14 2011 by faust2pd v2.2. See http://faust.grame.fr and http://pure-lang.googlecode.com.; faust-0.9.46/examples/faust-stk/pd-patches/fancy/take5/take5.mid0000644000175000017500000001012011702130733024243 0ustar orlareyorlareyMThdMTrk>take5XQXQ[QQ/MTrk FMIDI 01o Qcb :ed6'\g'@66R:[?P:6@:@ ?@y'R0'@'6R:[?P56@?@:@.R,.@91Q8G:G=6S:[?P56@:@(?@j.R,.@91Q8K:M=D(1@ 8@:@=@)'\'@6R:[?P06@#:@?@['T'@W6T:V?TI6@:@?@y.S,.@91P8I:M=<(8@:@=@1@'\<'@a6T:[?PS6@:@?@y'T'@>6R:T?U56@:@:@8@1@=@3'\2'@k6S:[?P:6@:@?@o'S'@H6T:[?P:6@ :@(?@j.R,.@91\8L:O=?8@:@=@'1@ 6Y;R?[[6@E5^A;@5@ ?@f:Z=IAJA@2=@ :@EBY7O:Wb7@7B@U:@M;U6a?[)6@?@7;@S5];X?X5@;@#?@\=Q:LAEG:@=@A@;:TAU=Pl:@=@-A@XBi=Ys7Hx=@B@A7@=P@]7SC=@7@<@@R;\6PV;@6@6;L5D?\;@25@Z?@ :P=SA^o:@=@A@0=d7NDcI_|7@-I@ =@D@R;Y6]36@2;@,6`;]]6@;@J;Y5YDgD@5@ ;@8];S?SCWl8@ ;@C@?@g8W;G?NC?8@;@ C@?@,8`>VBX*8@B@>@Bf8h>]c8@B@>@6R:[?PS:@6@?@G'T '@M6R:[?PN6@?@ :@`.S,.@91O8M:M=A(:@=@1@8@'\-'@p6R:[?P?6@:@?@['S#'@46R:[?PD6@(:@?@V.R,.@91Q8M:N=<:@(1@=@(8@'\#'@u6R:[?PS6@:@?@['R'@C6S:[?P]:@6@#?@G.R,.@91Q8J:L=D28@:@=@1@$'\'@ 6R:[?P?:@?@6@y'S'@96S:[?P56@:@(?@j.R,.@91Q8K:M=F(1@ 8@:@=@)'\'@6R:[?P06@#:@?@['T'@W6T:V?TI6@:@?@y.S,.@91P8I:M=D(8@:@=@1@'\<'@a6T:[?PS6@:@?@y'T'@C6R:T?U56@:@FVkF@%BOZB@/DVD@9E_KE@MFbF@/GgG@aKbUK@GWG@aDQD@%ASA@BQB@\D]sD@CEWE@FgiF@aEWqE@WFRPF@4GZ-G@ IaI@ Ia I@HRGVfG@*DOdD@%FVF@%G_dG@9Hb H@HIjI@pM_PM@,IX2I@>FWfF@4BOZB@/DVD@>E_FE@MFbF@/GgG@KbUK@kGWG@aDQD@%AZnA@%DJ2D@4IbPI@*GOvG@\FW )F@T:Vn:@>?V{?@CBbiB@CDb(D@9Ei E@FO F@9E_-E@pD]-D@ BO7B@:N,:@H=VU=@ ?N$%?@/AQUBNA@fAI&B@H?G&A@=G0?@=@R?O ?@=R?O=@H=JI?@:F?=@8K0:@|8@/:R:@k:Nx:@>?T#?@HBbPB@MDbD@%EixE@FOF@4E_-E@pD]-D@>BO7B@:N,:@H=VU=@h?OBw?@?=M=@?LN?@=NX=@:K<:@8I18@M:R4:@DAV A@BSB@AXSA@?T?@=IF=@Y?O`w?@/faust-0.9.46/examples/faust-stk/pd-patches/fancy/take5/blowHole.pd0000644000175000017500000005031111702130733024645 0ustar orlareyorlarey#N canvas 0 0 450 300 10; #X obj 10 510 inlet; #X obj 130 510 inlet; #X obj 190 510 r \$0-read; #X obj 130 540 r \$0-all; #X obj 190 540 faust-control \$0; #X obj 190 570 s \$0-write; #X obj 130 570 r \$0-in; #X obj 130 660 s \$0-out; #X obj 10 600 faust-gate 1; #X obj 130 600 blowHole~; #X obj 10 630 faust-gate 2; #X obj 130 630 blowHole~; #X obj 130 690 outlet~; #X obj 190 690 outlet~; #X obj 10 690 outlet; #X connect 1 0 4 0; #X connect 2 0 4 0; #X connect 4 0 5 0; #X connect 1 0 14 0; #X connect 6 0 9 0; #X connect 9 0 7 0; #X connect 0 0 8 0; #X connect 8 0 9 0; #X connect 3 0 9 0; #X connect 0 0 10 0; #X connect 10 0 11 0; #X connect 3 0 11 0; #X connect 9 1 12 0; #X connect 9 2 13 0; #X connect 11 1 12 0; #X connect 11 2 13 0; #X obj 10 30 hsl 128 15 0 2 0 0 \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Attack \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Attack Envelope-Attack -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 30 nbx 5 14 0 2 0 0 \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Attack \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Attack empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 60 hsl 128 15 0 2 0 0 \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Release \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Release Envelope-Release -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 60 nbx 5 14 0 2 0 0 \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Release \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Release empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 30 hsl 128 15 0 2 0 0 \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack Vibrato-Attack -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 30 nbx 5 14 0 2 0 0 \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 60 hsl 128 15 1 15 0 0 \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq Vibrato-Freq -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 60 nbx 5 14 1 15 0 0 \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 90 hsl 128 15 0 1 0 0 \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain Vibrato-Gain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 90 nbx 5 14 0 1 0 0 \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 120 hsl 128 15 0 2 0 0 \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release Vibrato-Release -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 120 nbx 5 14 0 2 0 0 \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 150 hsl 128 15 20 1000 0 0 \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency Modulation-Frequency -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 150 nbx 5 14 20 1000 0 0 \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 180 nbx 5 14 0 4 0 0 \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type Modulation-Type 0 -6 0 10 -262144 -1 -1 256; #X obj 10 210 hsl 128 15 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity Nonlinearity -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 210 nbx 5 14 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 240 hsl 128 15 0 2 0 0 \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack Nonlinearity-Attack -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 240 nbx 5 14 0 2 0 0 \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 150 hsl 128 15 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain Noise-Gain -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 150 nbx 5 14 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 180 hsl 128 15 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Pressure \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Pressure Pressure -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 180 nbx 5 14 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Pressure \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Pressure empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 210 hsl 128 15 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Reed-Stiffness \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Reed-Stiffness Reed-Stiffness -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 210 nbx 5 14 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Reed-Stiffness \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Reed-Stiffness empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 240 hsl 128 15 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Tone-Hole-Openness \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Tone-Hole-Openness Tone-Hole-Openness -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 240 nbx 5 14 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Tone-Hole-Openness \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Tone-Hole-Openness empty 0 -6 0 10 -262144 -1 -1 256; #X obj 235 270 hsl 128 15 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Vent-Openness \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Vent-Openness Vent-Openness -2 -6 0 10 -262144 -1 -1 0 1; #X obj 385 270 nbx 5 14 0 1 0 0 \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Vent-Openness \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Vent-Openness empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 300 hsl 128 15 0 1 0 0 \$0-blowHole/Reverb/Freeverb/Damp \$0-blowHole/Reverb/Freeverb/Damp Damp -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 300 nbx 5 14 0 1 0 0 \$0-blowHole/Reverb/Freeverb/Damp \$0-blowHole/Reverb/Freeverb/Damp empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 330 hsl 128 15 0 1 0 0 \$0-blowHole/Reverb/Freeverb/RoomSize \$0-blowHole/Reverb/Freeverb/RoomSize RoomSize -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 330 nbx 5 14 0 1 0 0 \$0-blowHole/Reverb/Freeverb/RoomSize \$0-blowHole/Reverb/Freeverb/RoomSize empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 360 hsl 128 15 0 1 0 0 \$0-blowHole/Reverb/Freeverb/Wet \$0-blowHole/Reverb/Freeverb/Wet Wet -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 360 nbx 5 14 0 1 0 0 \$0-blowHole/Reverb/Freeverb/Wet \$0-blowHole/Reverb/Freeverb/Wet empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 390 hsl 128 15 0 1 0 0 \$0-blowHole/Spat/pan-angle \$0-blowHole/Spat/pan-angle pan-angle -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 390 nbx 5 14 0 1 0 0 \$0-blowHole/Spat/pan-angle \$0-blowHole/Spat/pan-angle empty 0 -6 0 10 -262144 -1 -1 256; #X obj 10 420 hsl 128 15 0 1 0 0 \$0-blowHole/Spat/spatial-width \$0-blowHole/Spat/spatial-width spatial-width -2 -6 0 10 -262144 -1 -1 0 1; #X obj 160 420 nbx 5 14 0 1 0 0 \$0-blowHole/Spat/spatial-width \$0-blowHole/Spat/spatial-width empty 0 -6 0 10 -262144 -1 -1 256; #X obj 422 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; #X obj 442 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; #X obj 490 10 r \$0-init; #X obj 1218 10 s \$0-all; #X obj 1582 10 s \$0-read; #X obj 1946 10 r \$0-write; #X msg 490 30 1; #X obj 490 50 s \$0-active; #X connect 60 0 61 0; #X obj 1218 30 r \$0-active; #X msg 1218 50 active \$1; #X connect 62 0 63 0; #X connect 63 0 57 0; #X obj 1946 30 route active; #X obj 1946 50 s \$0-active; #X connect 59 0 64 0; #X connect 64 0 65 0; #X msg 490 70 0.01; #X obj 490 90 s \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Attack; #X connect 56 0 66 0; #X connect 66 0 67 0; #X obj 1218 70 r \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Attack; #X msg 1218 90 /blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Attack \$1; #X connect 68 0 69 0; #X connect 69 0 57 0; #X obj 1946 70 route /blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Attack; #X obj 1946 90 s \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Attack; #X connect 64 1 70 0; #X connect 70 0 71 0; #X msg 490 110 0.1; #X obj 490 130 s \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Release; #X connect 56 0 72 0; #X connect 72 0 73 0; #X obj 1218 110 r \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Release; #X msg 1218 130 /blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Release \$1; #X connect 74 0 75 0; #X connect 75 0 57 0; #X obj 1946 110 route /blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Release; #X obj 1946 130 s \$0-blowHole/Envelopes-and-Vibrato/Envelope-Parameters/Envelope-Release; #X connect 70 1 76 0; #X connect 76 0 77 0; #X msg 490 150 0.5; #X obj 490 170 s \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack; #X connect 56 0 78 0; #X connect 78 0 79 0; #X obj 1218 150 r \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack; #X msg 1218 170 /blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack \$1; #X connect 80 0 81 0; #X connect 81 0 57 0; #X obj 1946 150 route /blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack; #X obj 1946 170 s \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Attack; #X connect 76 1 82 0; #X connect 82 0 83 0; #X msg 490 190 5; #X obj 490 210 s \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X connect 56 0 84 0; #X connect 84 0 85 0; #X obj 1218 190 r \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X msg 1218 210 /blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq \$1; #X connect 86 0 87 0; #X connect 87 0 57 0; #X obj 1946 190 route /blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X obj 1946 210 s \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Freq; #X connect 82 1 88 0; #X connect 88 0 89 0; #X msg 490 230 0.1; #X obj 490 250 s \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X connect 56 0 90 0; #X connect 90 0 91 0; #X obj 1218 230 r \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X msg 1218 250 /blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain \$1; #X connect 92 0 93 0; #X connect 93 0 57 0; #X obj 1946 230 route /blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X obj 1946 250 s \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Gain; #X connect 88 1 94 0; #X connect 94 0 95 0; #X msg 490 270 0.01; #X obj 490 290 s \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release; #X connect 56 0 96 0; #X connect 96 0 97 0; #X obj 1218 270 r \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release; #X msg 1218 290 /blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release \$1; #X connect 98 0 99 0; #X connect 99 0 57 0; #X obj 1946 270 route /blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release; #X obj 1946 290 s \$0-blowHole/Envelopes-and-Vibrato/Vibrato-Parameters/Vibrato-Release; #X connect 94 1 100 0; #X connect 100 0 101 0; #X msg 490 310 220; #X obj 490 330 s \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 56 0 102 0; #X connect 102 0 103 0; #X obj 1218 310 r \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X msg 1218 330 /blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency \$1; #X connect 104 0 105 0; #X connect 105 0 57 0; #X obj 1946 310 route /blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X obj 1946 330 s \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Frequency; #X connect 100 1 106 0; #X connect 106 0 107 0; #X msg 490 350 0; #X obj 490 370 s \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 56 0 108 0; #X connect 108 0 109 0; #X obj 1218 350 r \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X msg 1218 370 /blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type \$1; #X connect 110 0 111 0; #X connect 111 0 57 0; #X obj 1946 350 route /blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X obj 1946 370 s \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Modulation-Type; #X connect 106 1 112 0; #X connect 112 0 113 0; #X msg 490 390 0; #X obj 490 410 s \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 56 0 114 0; #X connect 114 0 115 0; #X obj 1218 390 r \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X msg 1218 410 /blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity \$1; #X connect 116 0 117 0; #X connect 117 0 57 0; #X obj 1946 390 route /blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X obj 1946 410 s \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity; #X connect 112 1 118 0; #X connect 118 0 119 0; #X msg 490 430 0.1; #X obj 490 450 s \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack; #X connect 56 0 120 0; #X connect 120 0 121 0; #X obj 1218 430 r \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack; #X msg 1218 450 /blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack \$1; #X connect 122 0 123 0; #X connect 123 0 57 0; #X obj 1946 430 route /blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack; #X obj 1946 450 s \$0-blowHole/Physical-and-Nonlinearity/Nonlinear-Filter-Parameters/Nonlinearity-Attack; #X connect 118 1 124 0; #X connect 124 0 125 0; #X msg 490 470 0; #X obj 490 490 s \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain; #X connect 56 0 126 0; #X connect 126 0 127 0; #X obj 1218 470 r \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain; #X msg 1218 490 /blowHole/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain \$1; #X connect 128 0 129 0; #X connect 129 0 57 0; #X obj 1946 470 route /blowHole/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain; #X obj 1946 490 s \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Noise-Gain; #X connect 124 1 130 0; #X connect 130 0 131 0; #X msg 490 510 0.35; #X obj 490 530 s \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Pressure; #X connect 56 0 132 0; #X connect 132 0 133 0; #X obj 1218 510 r \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Pressure; #X msg 1218 530 /blowHole/Physical-and-Nonlinearity/Physical-Parameters/Pressure \$1; #X connect 134 0 135 0; #X connect 135 0 57 0; #X obj 1946 510 route /blowHole/Physical-and-Nonlinearity/Physical-Parameters/Pressure; #X obj 1946 530 s \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Pressure; #X connect 130 1 136 0; #X connect 136 0 137 0; #X msg 490 550 0.35; #X obj 490 570 s \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Reed-Stiffness; #X connect 56 0 138 0; #X connect 138 0 139 0; #X obj 1218 550 r \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Reed-Stiffness; #X msg 1218 570 /blowHole/Physical-and-Nonlinearity/Physical-Parameters/Reed-Stiffness \$1; #X connect 140 0 141 0; #X connect 141 0 57 0; #X obj 1946 550 route /blowHole/Physical-and-Nonlinearity/Physical-Parameters/Reed-Stiffness; #X obj 1946 570 s \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Reed-Stiffness; #X connect 136 1 142 0; #X connect 142 0 143 0; #X msg 490 590 0.12; #X obj 490 610 s \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Tone-Hole-Openness; #X connect 56 0 144 0; #X connect 144 0 145 0; #X obj 1218 590 r \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Tone-Hole-Openness; #X msg 1218 610 /blowHole/Physical-and-Nonlinearity/Physical-Parameters/Tone-Hole-Openness \$1; #X connect 146 0 147 0; #X connect 147 0 57 0; #X obj 1946 590 route /blowHole/Physical-and-Nonlinearity/Physical-Parameters/Tone-Hole-Openness; #X obj 1946 610 s \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Tone-Hole-Openness; #X connect 142 1 148 0; #X connect 148 0 149 0; #X msg 490 630 0; #X obj 490 650 s \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Vent-Openness; #X connect 56 0 150 0; #X connect 150 0 151 0; #X obj 1218 630 r \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Vent-Openness; #X msg 1218 650 /blowHole/Physical-and-Nonlinearity/Physical-Parameters/Vent-Openness \$1; #X connect 152 0 153 0; #X connect 153 0 57 0; #X obj 1946 630 route /blowHole/Physical-and-Nonlinearity/Physical-Parameters/Vent-Openness; #X obj 1946 650 s \$0-blowHole/Physical-and-Nonlinearity/Physical-Parameters/Vent-Openness; #X connect 148 1 154 0; #X connect 154 0 155 0; #X msg 490 670 0.72; #X obj 490 690 s \$0-blowHole/Reverb/Freeverb/Damp; #X connect 56 0 156 0; #X connect 156 0 157 0; #X obj 1218 670 r \$0-blowHole/Reverb/Freeverb/Damp; #X msg 1218 690 /blowHole/Reverb/Freeverb/Damp \$1; #X connect 158 0 159 0; #X connect 159 0 57 0; #X obj 1946 670 route /blowHole/Reverb/Freeverb/Damp; #X obj 1946 690 s \$0-blowHole/Reverb/Freeverb/Damp; #X connect 154 1 160 0; #X connect 160 0 161 0; #X msg 490 710 0.54; #X obj 490 730 s \$0-blowHole/Reverb/Freeverb/RoomSize; #X connect 56 0 162 0; #X connect 162 0 163 0; #X obj 1218 710 r \$0-blowHole/Reverb/Freeverb/RoomSize; #X msg 1218 730 /blowHole/Reverb/Freeverb/RoomSize \$1; #X connect 164 0 165 0; #X connect 165 0 57 0; #X obj 1946 710 route /blowHole/Reverb/Freeverb/RoomSize; #X obj 1946 730 s \$0-blowHole/Reverb/Freeverb/RoomSize; #X connect 160 1 166 0; #X connect 166 0 167 0; #X msg 490 750 0.141; #X obj 490 770 s \$0-blowHole/Reverb/Freeverb/Wet; #X connect 56 0 168 0; #X connect 168 0 169 0; #X obj 1218 750 r \$0-blowHole/Reverb/Freeverb/Wet; #X msg 1218 770 /blowHole/Reverb/Freeverb/Wet \$1; #X connect 170 0 171 0; #X connect 171 0 57 0; #X obj 1946 750 route /blowHole/Reverb/Freeverb/Wet; #X obj 1946 770 s \$0-blowHole/Reverb/Freeverb/Wet; #X connect 166 1 172 0; #X connect 172 0 173 0; #X msg 490 790 0.6; #X obj 490 810 s \$0-blowHole/Spat/pan-angle; #X connect 56 0 174 0; #X connect 174 0 175 0; #X obj 1218 790 r \$0-blowHole/Spat/pan-angle; #X msg 1218 810 /blowHole/Spat/pan-angle \$1; #X connect 176 0 177 0; #X connect 177 0 57 0; #X obj 1946 790 route /blowHole/Spat/pan-angle; #X obj 1946 810 s \$0-blowHole/Spat/pan-angle; #X connect 172 1 178 0; #X connect 178 0 179 0; #X msg 490 830 0.5; #X obj 490 850 s \$0-blowHole/Spat/spatial-width; #X connect 56 0 180 0; #X connect 180 0 181 0; #X obj 1218 830 r \$0-blowHole/Spat/spatial-width; #X msg 1218 850 /blowHole/Spat/spatial-width \$1; #X connect 182 0 183 0; #X connect 183 0 57 0; #X obj 1946 830 route /blowHole/Spat/spatial-width; #X obj 1946 850 s \$0-blowHole/Spat/spatial-width; #X connect 178 1 184 0; #X connect 184 0 185 0; #X coords 0 -1 1 1 460 440 1 0 0; #X text 0 460 Generated Mon Mar 21 14:25:13 2011 by faust2pd v2.2. See http://faust.grame.fr and http://pure-lang.googlecode.com.; faust-0.9.46/examples/faust-stk/pd-patches/fancy/take5/take5.pd0000644000175000017500000000227411702130733024110 0ustar orlareyorlarey#N canvas 303 22 748 793 10; #X msg 642 600 \; pd dsp 1; #X msg 642 638 \; pd dsp 0; #X obj 18 574 audio-out; #X obj 418 639 seq; #X msg 450 569 bang; #X msg 450 596 stop; #X msg 500 595 pause; #X msg 560 595 continue; #X text 488 568 play; #X obj 418 666 midiout; #X obj 335 573 loadbang; #X obj 18 79 piano; #X obj 263 79 blowHole; #X msg 335 597 read take5.mid; #X obj 18 28 midi-in 6 1; #X obj 362 24 midi-in 2 2; #X text 290 707 In order to have this example work \, input device and output device in MIDI settings must be set to the same internal driver. The seq object is included in the pd-extended distribution and is part of the cyclone package (http://puredata.info/community/projects/software/cyclone). ; #X obj 117 466 *~ 0.8; #X obj 166 466 *~ 0.8; #X obj 350 534 *~ 1.6; #X obj 403 534 *~ 1.6; #X connect 3 0 9 0; #X connect 4 0 3 0; #X connect 5 0 3 0; #X connect 6 0 3 0; #X connect 7 0 3 0; #X connect 10 0 13 0; #X connect 11 1 17 0; #X connect 11 2 18 0; #X connect 12 1 19 0; #X connect 12 2 20 0; #X connect 13 0 3 0; #X connect 14 0 11 0; #X connect 14 1 11 1; #X connect 15 0 12 0; #X connect 15 1 12 1; #X connect 17 0 2 1; #X connect 18 0 2 2; #X connect 19 0 2 1; #X connect 20 0 2 2; faust-0.9.46/examples/faust-stk/pd-patches/fancy/take5/audio-out.pd0000644000175000017500000000156411702130733025006 0ustar orlareyorlarey#N canvas 86 452 512 359 10; #X obj 54 222 env~; #X obj 54 245 - 100; #X obj 158 222 env~; #X obj 158 245 - 100; #X obj 100 204 dac~; #X obj 55 174 inlet~; #X obj 158 173 inlet~; #X obj 217 4 tgl 15 0 dsp-toggle dsp-toggle empty 0 -6 0 8 -262144 -1 -1 1 1; #X msg 211 203 \; pd dsp \$1; #X obj 314 172 loadbang; #X msg 314 199 1; #X text 251 12 Stereo audio output + VU meter.; #X obj 53 29 vu 15 120 \$0-L empty -1 -8 0 8 -66577 -1 1 0; #X obj 141 29 vu 15 120 \$0-R empty -1 -8 0 8 -66577 -1 1 0; #X obj 54 273 s \$0-L; #X obj 158 273 s \$0-R; #X obj 211 172 r dsp-toggle; #X obj 314 225 s dsp-toggle; #X obj 3 173 inlet; #X connect 0 0 1 0; #X connect 1 0 14 0; #X connect 2 0 3 0; #X connect 3 0 15 0; #X connect 5 0 0 0; #X connect 5 0 4 0; #X connect 6 0 2 0; #X connect 6 0 4 1; #X connect 9 0 10 0; #X connect 10 0 17 0; #X connect 16 0 8 0; #X coords 0 -1 1 1 235 160 1 0 0; faust-0.9.46/examples/faust-stk/pd-patches/violin.pd0000644000175000017500000000035411702130733022263 0ustar orlareyorlarey#N canvas 283 39 572 726 10; #X msg 463 571 \; pd dsp 1; #X msg 463 609 \; pd dsp 0; #X obj 204 526 audio-out; #X obj 137 14 midi-in 2; #X obj 17 72 bowed; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 1 2 1; #X connect 4 2 2 2; faust-0.9.46/examples/faust-stk/pd-patches/midi-in.pd0000644000175000017500000000634511702130733022317 0ustar orlareyorlarey#N canvas 555 193 650 564 10; #X obj 331 8 notein; #X obj 336 353 pack f f f; #X obj 394 292 / 127; #X obj 336 384 outlet; #X obj 16 92 ctlin 123; #X obj 154 92 inlet; #X obj 204 200 list split 3; #X obj 204 242 makenote; #X obj 204 269 pack f f; #X obj 336 322 poly \$1 1; #X obj 50 27 tgl 15 0 \$0-led-1 \$0-led-1 empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 67 27 tgl 15 0 \$0-led-2 \$0-led-2 empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 84 27 tgl 15 0 \$0-led-3 \$0-led-3 empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 101 27 tgl 15 0 \$0-led-4 \$0-led-4 empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 260 385 s \$0-leds; #X obj 471 291 unpack f f f; #X obj 550 323 > 0; #X obj 471 262 r \$0-leds; #X obj 471 358 makefilename \$0-led-%d; #X obj 471 385 pack s f; #X msg 471 413 \; \$1 \$2; #X text 470 234 LED logic; #X obj 118 27 tgl 15 0 \$0-led-5 \$0-led-5 empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 135 27 tgl 15 0 \$0-led-6 \$0-led-6 empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 152 27 tgl 15 0 \$0-led-7 \$0-led-7 empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 169 27 tgl 15 0 \$0-led-8 \$0-led-8 empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 217 3 tgl 15 0 \$0-toggle \$0-toggle empty 0 -6 0 8 -262144 -1 -1 1 1; #X obj 154 124 spigot; #X obj 244 8 r \$0-toggle; #X obj 336 190 spigot; #X msg 400 83 stop; #X obj 540 456 loadbang; #X obj 244 56 sel 0; #X obj 197 3 bng 15 250 50 0 \$0-notes-off \$0-notes-off empty 0 -6 0 8 -262144 -1 -1; #X obj 540 503 s \$0-toggle; #X msg 540 479 1; #X obj 16 265 s \$0-notes-off; #X obj 400 9 r \$0-notes-off; #X msg 244 85 bang; #X obj 401 384 outlet; #X obj 161 3 nbx 2 14 0 16 0 0 \$0-chan \$0-chan empty -15 6 0 10 -262144 -1 -1 0 256; #X obj 521 9 r \$0-chan; #X obj 274 134 expr $f1 && (($f2==$f3) || ($f3==0)); #X obj 318 83 t f b; #X obj 154 164 route stop note; #X text 18 420 MIDI input logic. Handles MIDI note-on/off messages and the all-notes off controller. Velocity values are normalized to the 0-1 range. MIDI input can be restricted to one MIDI channel. Through the inlet \, you can also pass in MIDI style messages \, either note/velocity or note/velocity/duration (use a "stop" message to emulate all-notes-off). Other (control) messages are simply passed through to the second outlet. The creation argument sets the number of voices (8 voices max).; #X obj 16 307 loadbang; #X obj 16 328 f \$2; #X obj 16 349 s \$0-chan; #X connect 0 0 43 0; #X connect 0 1 2 0; #X connect 0 2 42 1; #X connect 1 0 3 0; #X connect 1 0 14 0; #X connect 2 0 9 1; #X connect 4 0 36 0; #X connect 5 0 27 0; #X connect 6 0 7 0; #X connect 6 2 9 0; #X connect 7 0 8 0; #X connect 7 1 8 1; #X connect 8 0 9 0; #X connect 9 0 1 0; #X connect 9 1 1 1; #X connect 9 2 1 2; #X connect 15 0 18 0; #X connect 15 2 16 0; #X connect 16 0 19 1; #X connect 17 0 15 0; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 27 0 44 0; #X connect 28 0 27 1; #X connect 28 0 32 0; #X connect 28 0 42 0; #X connect 29 0 9 0; #X connect 30 0 9 0; #X connect 31 0 35 0; #X connect 32 0 38 0; #X connect 35 0 34 0; #X connect 37 0 30 0; #X connect 38 0 36 0; #X connect 41 0 42 2; #X connect 41 0 30 0; #X connect 42 0 29 1; #X connect 43 0 29 0; #X connect 43 1 42 0; #X connect 44 0 36 0; #X connect 44 1 6 0; #X connect 44 2 39 0; #X connect 46 0 47 0; #X connect 47 0 48 0; #X coords 0 -1 1 1 235 45 1 0 0; faust-0.9.46/examples/faust-stk/pd-patches/audio-out.pd0000644000175000017500000000156411702130733022675 0ustar orlareyorlarey#N canvas 86 452 512 359 10; #X obj 54 222 env~; #X obj 54 245 - 100; #X obj 158 222 env~; #X obj 158 245 - 100; #X obj 100 204 dac~; #X obj 55 174 inlet~; #X obj 158 173 inlet~; #X obj 217 4 tgl 15 0 dsp-toggle dsp-toggle empty 0 -6 0 8 -262144 -1 -1 1 1; #X msg 211 203 \; pd dsp \$1; #X obj 314 172 loadbang; #X msg 314 199 1; #X text 251 12 Stereo audio output + VU meter.; #X obj 53 29 vu 15 120 \$0-L empty -1 -8 0 8 -66577 -1 1 0; #X obj 141 29 vu 15 120 \$0-R empty -1 -8 0 8 -66577 -1 1 0; #X obj 54 273 s \$0-L; #X obj 158 273 s \$0-R; #X obj 211 172 r dsp-toggle; #X obj 314 225 s dsp-toggle; #X obj 3 173 inlet; #X connect 0 0 1 0; #X connect 1 0 14 0; #X connect 2 0 3 0; #X connect 3 0 15 0; #X connect 5 0 0 0; #X connect 5 0 4 0; #X connect 6 0 2 0; #X connect 6 0 4 1; #X connect 9 0 10 0; #X connect 10 0 17 0; #X connect 16 0 8 0; #X coords 0 -1 1 1 235 160 1 0 0; faust-0.9.46/examples/faust-stk/tibetanBowl.dsp0000644000175000017500000001375311702130733021377 0ustar orlareyorlareydeclare name "Tibetan Bowl"; declare description "Banded Waveguide Modeld Tibetan Bowl"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "This instrument uses banded waveguide. For more information, see Essl, G. and Cook, P. Banded Waveguides: Towards Physical Modelling of Bar Percussion Instruments, Proceedings of the 1999 International Computer Music Conference."; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",0.8,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); select = nentry("h:Physical_and_Nonlinearity/v:Physical_Parameters/Excitation_Selector [2][tooltip:0=Bow; 1=Strike]",0,0,1,1); integrationConstant = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Integration_Constant [2][tooltip:A value between 0 and 1]",0,0,1,0.01); baseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Base_Gain [2][tooltip:A value between 0 and 1]",1,0,1,0.01); bowPressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Pressure [2][tooltip:Bow pressure on the instrument (Value between 0 and 1)]",0.2,0,1,0.01); bowPosition = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Position [2][tooltip:Bow position on the instrument (Value between 0 and 1)]",0,0,1,0.01); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); //==================== MODAL PARAMETERS ================ preset = 0; nMode(0) = 12; modes(0,0) = 0.996108344; basegains(0,0) = 0.999925960128219; excitation(0,0) = 11.900357 / 10; modes(0,1) = 1.0038916562; basegains(0,1) = 0.999925960128219; excitation(0,1) = 11.900357 / 10; modes(0,2) = 2.979178; basegains(0,2) = 0.999982774366897; excitation(0,2) = 10.914886 / 10; modes(0,3) = 2.99329767; basegains(0,3) = 0.999982774366897; excitation(0,3) = 10.914886 / 10; modes(0,4) = 5.704452; basegains(0,4) = 1.0; excitation(0,4) = 42.995041 / 10; modes(0,5) = 5.704452; basegains(0,5) = 1.0; excitation(0,5) = 42.995041 / 10; modes(0,6) = 8.9982; basegains(0,6) = 1.0; excitation(0,6) = 40.063034 / 10; modes(0,7) = 9.01549726; basegains(0,7) = 1.0; excitation(0,7) = 40.063034 / 10; modes(0,8) = 12.83303; basegains(0,8) = 0.999965497558225; excitation(0,8) = 7.063034 / 10; modes(0,9) = 12.807382; basegains(0,9) = 0.999965497558225; excitation(0,9) = 7.063034 / 10; modes(0,10) = 17.2808219; basegains(0,10) = 0.9999999999999999999965497558225; excitation(0,10) = 57.063034 / 10; modes(0,11) = 21.97602739726; basegains(0,11) = 0.999999999999999965497558225; excitation(0,11) = 57.063034 / 10; //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),1,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //the number of modes depends on the preset being used nModes = nMode(preset); //bow table parameters tableOffset = 0; tableSlope = 10 - (9*bowPressure); delayLengthBase = SR/freq; //delay lengths in number of samples delayLength(x) = delayLengthBase/modes(preset,x); //delay lines delayLine(x) = delay(4096,delayLength(x)); //Filter bank: bandpass filters (declared in instrument.lib) radius = 1 - PI*32/SR; bandPassFilter(x) = bandPass(freq*modes(preset,x),radius); //Delay lines feedback for bow table lookup control baseGainApp = 0.8999999999999999 + (0.1*baseGain); velocityInputApp = integrationConstant; velocityInput = velocityInputApp + _*baseGainApp,par(i,(nModes-1),(_*baseGainApp)) :> +; //Bow velocity is controled by an ADSR envelope maxVelocity = 0.03 + 0.1*gain; bowVelocity = maxVelocity*adsr(0.02,0.005,90,0.01,gate); //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(delayLengthBase); //----------------------- Algorithm implementation ---------------------------- //Bow table lookup (bow is decalred in instrument.lib) bowing = bowVelocity - velocityInput <: *(bow(tableOffset,tableSlope)) : /(nModes); //One resonance resonance(x) = + : + (excitation(preset,x)*select) : delayLine(x) : *(basegains(preset,x)) : bandPassFilter(x); process = //Bowed Excitation (bowing*((select-1)*-1) <: //nModes resonances with nModes feedbacks for bow table look-up par(i,nModes,(resonance(i)~_)))~par(i,nModes,_) :> + : //Signal Scaling and stereo NLFM : stereo : instrReverb; faust-0.9.46/examples/faust-stk/uniBar.dsp0000644000175000017500000000744011702130733020341 0ustar orlareyorlareydeclare name "UniBar"; declare description "Nonlinear Banded Waveguide Models"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "This instrument uses banded waveguide. For more information, see Essl, G. and Cook, P. Banded Waveguides: Towards Physical Modelling of Bar Percussion Instruments, Proceedings of the 1999 International Computer Music Conference."; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",0.8,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); select = nentry("h:Physical_and_Nonlinearity/v:Physical_Parameters/Excitation_Selector [2][tooltip:0=Bow; 1=Strike]",0,0,1,1); integrationConstant = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Integration_Constant [2][tooltip:A value between 0 and 1]",0,0,1,0.01); baseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Base_Gain [2][tooltip:A value between 0 and 1]",1,0,1,0.01); bowPressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Pressure [2][tooltip:Bow pressure on the instrument (Value between 0 and 1)]",0.2,0,1,0.01); bowPosition = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Position [2][tooltip:Bow position on the instrument (Value between 0 and 1)]",0,0,1,0.01); //==================== MODAL PARAMETERS ================ preset = 1; nMode(1) = 4; modes(1,0) = 1; basegains(1,0) = pow(0.9,1); excitation(1,0) = 1*gain/nMode(1); modes(1,1) = 2.756; basegains(1,1) = pow(0.9,2); excitation(1,1) = 1*gain/nMode(1); modes(1,2) = 5.404; basegains(1,2) = pow(0.9,3); excitation(1,2) = 1*gain/nMode(1); modes(1,3) = 8.933; basegains(1,3) = pow(0.9,4); excitation(1,3) = 1*gain/nMode(1); //==================== SIGNAL PROCESSING ================ //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //the number of modes depends on the preset being used nModes = nMode(preset); //bow table parameters tableOffset = 0; tableSlope = 10 - (9*bowPressure); delayLengthBase = SR/freq; //delay lengths in number of samples delayLength(x) = delayLengthBase/modes(preset,x); //delay lines delayLine(x) = delay(4096,delayLength(x)); //Filter bank: bandpass filters (declared in instrument.lib) radius = 1 - PI*32/SR; bandPassFilter(x) = bandPass(freq*modes(preset,x),radius); //Delay lines feedback for bow table lookup control baseGainApp = 0.8999999999999999 + (0.1*baseGain); velocityInputApp = integrationConstant; velocityInput = velocityInputApp + _*baseGainApp,par(i,(nModes-1),(_*baseGainApp)) :> +; //Bow velocity is controled by an ADSR envelope maxVelocity = 0.03 + 0.1*gain; bowVelocity = maxVelocity*adsr(0.02,0.005,90,0.01,gate); //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(delayLengthBase); //----------------------- Algorithm implementation ---------------------------- //Bow table lookup (bow is decalred in instrument.lib) bowing = bowVelocity - velocityInput <: *(bow(tableOffset,tableSlope)) : /(nModes); //One resonance resonance(x) = + : + (excitation(preset,x)*select) : delayLine(x) : *(basegains(preset,x)) : bandPassFilter(x); process = //Bowed Excitation (bowing*((select-1)*-1) <: //nModes resonances with nModes feedbacks for bow table look-up par(i,nModes,(resonance(i)~_)))~par(i,nModes,_) :> + : //Signal Scaling and stereo *(14) : stereo : instrReverb; faust-0.9.46/examples/faust-stk/Makefile.iphonecompile0000644000175000017500000000065311702130733022702 0ustar orlareyorlareydspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) appl := $(addprefix $(DEST), $(dspsrc:.dsp=$(EXT))) all : $(appl) $(DEST)% : %.dsp install -d $@ cp -r /usr/local/lib/faust/iPhone/* $@ faust $(VEC) -a $(ARCH) $< -o $@/iphone-faust.h xcodebuild -project $@/iPhone.xcodeproj PRODUCT_NAME=$(<:.dsp=) cp -r $@/build/Release-iphoneos/$(<:.dsp=.app) $@/../ rm -r $@ clean : rm -f $(DEST) faust-0.9.46/examples/faust-stk/Makefile.dssicompile0000644000175000017500000000101011702130733022346 0ustar orlareyorlareyARCH := dssi.cpp DEST := dssidir/ dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) modules := $(addprefix $(DEST), $(dspsrc:%.dsp=%.so)) ###allcpp: $(cppsrc) allmodules: $(modules) ifeq ($(system), Darwin) SHAREDFLAG := -bundle else SHAREDFLAG := -shared endif $(DEST)%.so: $(DEST)%.cpp $(CXX) -I. -Wall $(LIB) -fPIC -DPIC $(SHAREDFLAG) $(CXXFLAGS) -Dmydsp=$(patsubst %.so,%,$(notdir $@)) $< -o $@ $(DEST)%.cpp: %.dsp faust $(VEC) -a $(ARCH) $< -o $@ clean: rm -rf $(DEST) faust-0.9.46/examples/faust-stk/Makefile.compile0000644000175000017500000000045011702130733021472 0ustar orlareyorlareydspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) appl := $(addprefix $(DEST), $(dspsrc:.dsp=$(EXT))) all : $(appl) $(DEST)%$(EXT) : %.dsp faust $(VEC) -a $(ARCH) $< -o $@.cpp $(CXX) -O3 $(CXXFLAGS) -I $(PWD) $(LIB) $@.cpp -o $@ clean : rm -f $(DEST) faust-0.9.46/examples/faust-stk/modalBar.dsp0000644000175000017500000001172111702130733020637 0ustar orlareyorlareydeclare name "Modal Bar"; declare description "Nonlinear Modal percussive instruments"; declare author "Romain Michon (rmichon@ccrma.stanford.edu)"; declare copyright "Romain Michon"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "A number of different struck bar instruments. Presets numbers: 0->Marimba, 1->Vibraphone, 2->Agogo, 3->Wood1, 4->Reso, 5->Wood2, 6->Beats, 7->2Fix; 8->Clump"; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",0.8,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); stickHardness = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Stick_Hardness [2][tooltip:A value between 0 and 1]",0.25,0,1,0.01); reson = nentry("h:Physical_and_Nonlinearity/v:Physical_Parameters/Resonance [2][tooltip:A value between 0 and 1]",1,0,1,1); presetNumber = nentry("h:Physical_and_Nonlinearity/v:Physical_Parameters/Preset [2][tooltip:0->Marimba, 1->Vibraphone, 2->Agogo, 3->Wood1, 4->Reso, 5->Wood2, 6->Beats, 7->2Fix; 8->Clump]",1,0,8,1); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [4][unit:Hz]",6,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [4][tooltip:A value between 0 and 1]",0.1,0,1,0.01); //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),1,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //check if the vibraphone is used vibratoOn = presetNumber == 1; //vibrato vibrato = 1 + osc(vibratoFreq)*vibratoGain*vibratoOn; //filter bank output gain directGain = loadPreset(presetNumber,3,2); //modal values for the filter bank loadPreset = ffunction(float loadPreset (int,int,int), ,""); //filter bank using biquad filters biquadBank = _ <: sum(i, 4, oneFilter(i)) with{ condition(x) = x<0 <: *(-x),((-(1))*-1)*x*freq :> +; dampCondition = (gate < 1) & (reson != 1); //the filter coefficients are interpolated when changing of preset oneFilter(j,y) = (loadPreset(presetNumber,0,j : smooth(0.999)) : condition), loadPreset(presetNumber,1,j : smooth(0.999))*(1-(gain*0.03*dampCondition)), y*(loadPreset(presetNumber,2,j) : smooth(0.999)) : bandPassH; }; //one pole filter with pole set at 0.9 for pre-filtering, onePole is declared in instrument.lib sourceFilter = onePole(b0,a1) with{ b0 = 1 - 0.9; a1 = -0.9; }; //excitation signal excitation = counterSamples < (marmstk1TableSize*rate) : *(marmstk1Wave*gate) with{ //readMarmstk1 and marmstk1TableSize are both declared in instrument.lib marmstk1 = time%marmstk1TableSize : int : readMarmstk1; dataRate(readRate) = readRate : (+ : decimal) ~ _ : *(float(marmstk1TableSize)); //the reading rate of the stick table is defined in function of the stickHardness rate = 0.25*pow(4,stickHardness); counterSamples = (*(gate)+1)~_ : -(1); marmstk1Wave = rdtable(marmstk1TableSize,marmstk1,int(dataRate(rate)*gate)); }; process = excitation : sourceFilter : *(gain) <: //resonance (biquadBank <: -(*(directGain))) + (directGain*_) : //vibrato for the vibraphone *(vibrato) : NLFM*0.6 : stereo : instrReverb; faust-0.9.46/examples/faust-stk/bass.h0000644000175000017500000000350711702130733017512 0ustar orlareyorlarey//Parameters for bass.dsp //©Romain Michon (rmichon@ccrma.stanford.edu), 2011 //licence: FAUST-STK #include "instrument.h" #define _LOOKUP_TABLE_H_ double bassLoopFilterb0_points[19*2] = { 24.000,0.54355, 26.000,0.54355, 27.000,0.55677, 29.000,0.55677, 32.000,0.55677, 33.000,0.83598, 36.000,0.83598, 43.000,0.83598, 44.000,0.88292, 48.000,0.88292, 51.000,0.88292, 52.000,0.77805, 54.000,0.77805, 57.000,0.77805, 58.000,0.91820, 60.000,0.91820, 61.000,0.91820, 63.000,0.94594, 65.000,0.91820, }; extern LookupTable bassLoopFilterb0; LookupTable bassLoopFilterb0(&bassLoopFilterb0_points[0], 18); float getValueBassLoopFilterb0(float index){ return bassLoopFilterb0.getValue(index); } double bassLoopFilterb1_points[19*2] = { 24.000,-0.36586, 26.000,-0.36586, 27.000,-0.37628, 29.000,-0.37628, 32.000,-0.37628, 33.000,-0.60228, 36.000,-0.60228, 43.000,-0.60228, 44.000,-0.65721, 48.000,-0.65721, 51.000,-0.65721, 52.000,-0.51902, 54.000,-0.51902, 57.000,-0.51902, 58.000,-0.80765, 60.000,-0.80765, 61.000,-0.80765, 63.000,-0.83230, 65.000,-0.83230, }; extern LookupTable bassLoopFilterb1; LookupTable bassLoopFilterb1(&bassLoopFilterb1_points[0], 18); float getValueBassLoopFilterb1(float index){ return bassLoopFilterb1.getValue(index); } double bassLoopFiltera1_points[19*2] = { 24.000,-0.81486, 26.000,-0.81486, 27.000,-0.81147, 29.000,-0.81147, 32.000,-0.81147, 33.000,-0.76078, 36.000,-0.76078, 43.000,-0.76078, 44.000,-0.77075, 48.000,-0.77075, 51.000,-0.77075, 52.000,-0.73548, 54.000,-0.73548, 57.000,-0.73548, 58.000,-0.88810, 60.000,-0.88810, 61.000,-0.88810, 63.000,-0.88537, 65.000,-0.88537, }; extern LookupTable bassLoopFiltera1; LookupTable bassLoopFiltera1(&bassLoopFiltera1_points[0], 18); float getValueBassLoopFiltera1(float index){ return bassLoopFiltera1.getValue(index); } faust-0.9.46/examples/faust-stk/Makefile.mspcompile0000644000175000017500000000477411702130733022227 0ustar orlareyorlareydspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) appl := $(addprefix $(DEST), $(dspsrc:.dsp=~.mxo)) processor := $(shell uname -p) CC=g++ #CC=/Developer/usr/bin/llvm-g++ INC := -I/usr/local/include/c74support/max-includes -I/usr/local/include/c74support/msp-includes -I $(PWD) -I/usr/local/lib/faust all : $(appl) $(DEST)%~.mxo : %.dsp Info.plist.template install -d $@/Contents/MacOS faust $(VEC) -g -vs 2048 -a $(ARCH) $< -o $@/$(<:.dsp=.cpp) #faust -sch -g -vs 2048 $(VEC) -a $(ARCH) $< -o $@/$(<:.dsp=.cpp) ifeq ($(processor), i386) $(CC) -arch i386 -fpascal-strings -fasm-blocks -g -O3 $(INC) -c $@/$(<:.dsp=.cpp) -o $@/$(<:.dsp=.i386.o) $(CC) -framework MaxAPI -framework Carbon -framework MaxAudioAPI -arch i386 -Wl,-Y,1455 -bundle $@/$(<:.dsp=.i386.o) -o $@/$(<:.dsp=.i386~) $(CC) -arch ppc -fpascal-strings -fasm-blocks -g -O3 $(INC) -c $@/$(<:.dsp=.cpp) -o $@/$(<:.dsp=.ppc.o) $(CC) -framework Carbon -framework MaxAPI -framework MaxAudioAPI -arch ppc -Wl,-Y,1455 -bundle $@/$(<:.dsp=.ppc.o) -o $@/$(<:.dsp=.ppc~) sed s/FOO/$(<:.dsp=~)/ $@/Contents/Info.plist lipo -create $@/$(<:.dsp=.i386~) $@/$(<:.dsp=.ppc~) -output $@/Contents/MacOS/$(<:.dsp=~) rm -f $@/$(<:.dsp=.ppc~) $@/$(<:.dsp=.ppc.o) $@/$(<:.dsp=.i386.o) $@/$(<:.dsp=.i386~) else g++ -arch ppc -fpascal-strings -fasm-blocks -g -O3 $(INC) -c $@/$(<:.dsp=.cpp) -o $@/$(<:.dsp=.ppc.o) g++ -framework Carbon -framework MaxAPI -framework MaxAudioAPI -arch ppc -Wl,-Y,1455 -bundle $@/$(<:.dsp=.ppc.o) -o $@/$(<:.dsp=.ppc~) sed s/FOO/$(<:.dsp=~)/ $@/Contents/Info.plist lipo -create $@/$(<:.dsp=.ppc~) -output $@/Contents/MacOS/$(<:.dsp=~) rm -f $@/$(<:.dsp=.ppc~) $@/$(<:.dsp=.ppc.o) endif Info.plist.template : echo '' > Info.plist.template echo '' >> Info.plist.template echo '' >> Info.plist.template echo '' >> Info.plist.template echo ' CFBundleExecutable' >> Info.plist.template echo ' FOO' >> Info.plist.template echo ' CFBundleName' >> Info.plist.template echo ' FOO' >> Info.plist.template echo ' CFBundlePackageType' >> Info.plist.template echo ' iLaX' >> Info.plist.template echo '' >> Info.plist.template echo '' >> Info.plist.template clean : rm -f $(DEST) faust-0.9.46/examples/faust-stk/bowed.dsp0000644000175000017500000001322611702130733020220 0ustar orlareyorlareydeclare name "Bowed"; declare description "Nonlinear WaveGuide Bowed Instrument"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "A bowed string model, a la Smith (1986), after McIntyre, Schumacher, Woodhouse (1983)."; declare reference "https://ccrma.stanford.edu/~jos/pasp/Bowed_Strings.html"; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); bowPosition = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Position [2][tooltip:Bow position along the string (value between 0 and 1)]",0.7,0.01,1,0.01); bowPressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Pressure [2][tooltip:Bow pressure on the string (value between 0 and 1)]",0.75,0,1,0.01); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [4][unit:Hz]",6,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [4][tooltip:A value between 0 and 1]",0.01,0,1,0.01); vibratoBegin = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Begin [4][unit:s][tooltip:Vibrato silence duration before attack]",0.05,0,2,0.01); vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack [4][unit:s][tooltip:Vibrato attack duration]",0.5,0,2,0.01); vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release [4][unit:s][tooltip:Vibrato release duration]",0.01,0,2,0.01); envelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Attack [5][unit:s][tooltip:Envelope attack duration]",0.01,0,2,0.01); envelopeDecay = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Decay [5][unit:s][tooltip:Envelope decay duration]",0.05,0,2,0.01); envelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Release [5][unit:s][tooltip:Envelope release duration]",0.1,0,2,0.01); //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //attack - sustain - release envelope for nonlinearity (declared in instrument.lib) envelopeMod = asr(nonLinAttack,100,envelopeRelease,gate); //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),envelopeMod,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //Parameters for the bow table tableOffset = 0; tableSlope = 5 - (4*bowPressure); //the bow table is declared in instrument.lib bowTable = bow(tableOffset,tableSlope); //a attack - decay - sustain - release envelope is used envelope = adsr(gain*envelopeAttack,envelopeDecay,90, (1-gain)*envelopeRelease,gate); maxVelocity = 0.03 + (0.2 * gain); //Delay lines declaration and vibrato, the length of the two delay lines are evolving propotionally betaRatio = 0.027236 + (0.2*bowPosition); fdelneck = (SR/freq-4)*(1 - betaRatio); vibratoEnvelope = envVibrato(vibratoBegin,vibratoAttack,100,vibratoRelease,gate); vibrato = fdelneck + ((SR/freq - 4)*vibratoGain*vibratoEnvelope*osc(vibratoFreq)); neckDelay = fdelay(4096,vibrato); fdelbridge = (SR/freq - 4)*betaRatio; bridgeDelay = delay(4096,fdelbridge); //Body Filter: a biquad filter with a normalized pick gain (declared in instrument.lib) bodyFilter = bandPass(500,0.85); //String Filter: a lowpass filter (declared in instrument.lib) stringFilter = *(0.95) : -onePole(b0,a1) with{ pole = 0.6 - (0.1*22050/SR); gain = 0.95; b0 = 1-pole; a1 = -pole; }; //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //----------------------- Algorithm implementation ---------------------------- bowVelocity = envelope*maxVelocity; instrumentBody(feedBckBridge) = (*(-1) <: +(feedBckBridge),_ : (bowVelocity-_ <: *(bowTable) <: _,_),_ : _, + : +(feedBckBridge),_) ~ (neckDelay) : !,_; process = (stringFilter : instrumentBody) ~ (bridgeDelay : NLFM) : bodyFilter(*(0.2)) : _*gain*8 : stereo : instrReverb; faust-0.9.46/examples/faust-stk/Makefile.pdcompile0000644000175000017500000000434611702130733022026 0ustar orlareyorlarey ###-------------------------------------------- ### Build puredata externals on Darwin or Linux ### system := $(shell uname -s) DEST := pddir/ dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) patches := $(addprefix $(DEST), $(dspsrc:.dsp=.pd)) FAUST2PD := faust2pd OPTIONAL := -I ./ FREEVERB := freeverb.dsp.xml ###-------------------------------------------- ### compilation flags for Linux ### include dir must contain m_pd.h ### LINUXCFLAGS := -DPD -O2 -funroll-loops -fomit-frame-pointer -fPIC \ -Wall $(CXXFLAGS) LINUXINCLUDE := -I/usr/include/pdextended ###-------------------------------------------- ### compilation flags for Darwin ### DARWINCFLAGS := -DPD -O2 -funroll-loops -fomit-frame-pointer -fPIC -Wall -msse DYNLOAD_FLAGS := -bundle -undefined suppress -flat_namespace DARWININCLUDE := -I/Applications/Pd-extended.app/Contents/Resources/include/ -I/opt/local/include ###-------------------------------------------- ### check what type of modules to build (MacOSX Darwin or Linux) ### ifeq ($(system), Darwin) modules := $(addprefix $(DEST), $(dspsrc:.dsp=~.pd_darwin)) else modules := $(addprefix $(DEST), $(dspsrc:.dsp=~.pd_linux)) endif ###-------------------------------------------- ### Will use faust2pd to create the GUI patches ### only if it is installed helper:=$(shell which faust2pd) hasfaust2pd := $(findstring /faust2pd, $(helper)) ifeq ($(hasfaust2pd),) todo:=$(modules) message:="*** Install /tools/faust2pd if you want the example Pd patches to work ***" else todo:=$(modules) $(patches) message:="Compiled: $(todo)" endif ###-------------------------------------------- allmodules: $(todo) print_message $(DEST)%.cpp: %.dsp faust -a $(ARCH) $< -o $@ $(DEST)%.pd: %.dsp faust -xml $< -o /dev/null $(FAUST2PD) $(F2PDFLAGS) $<.xml mv $(<:.dsp=.pd) $(DEST) rm -f $<.xml $(DEST)%~.pd_linux: $(DEST)%.cpp $(CXX) $(LINUXCFLAGS) $(LINUXINCLUDE) $(OPTIONAL) -shared -Dmydsp=$(patsubst %~.pd_linux,%,$(notdir $@)) $< -o $@ $(DEST)%~.pd_darwin: $(DEST)%.cpp $(CXX) $(DARWINCFLAGS) $(DARWININCLUDE) $(DYNLOAD_FLAGS) $(OPTIONAL) -Dmydsp=$(patsubst %~.pd_darwin,%,$(notdir $@)) $< -o $@ print_message: echo $(message) clean: rm -rf $(DEST) faust-0.9.46/examples/faust-stk/Makefile.ladspacompile0000644000175000017500000000101411702130733022654 0ustar orlareyorlareyARCH := ladspa.cpp DEST := ladspadir/ dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) modules := $(addprefix $(DEST), $(dspsrc:%.dsp=%.so)) ###allcpp: $(cppsrc) allmodules: $(modules) ifeq ($(system), Darwin) SHAREDFLAG := -bundle else SHAREDFLAG := -shared endif $(DEST)%.so: $(DEST)%.cpp $(CXX) -I. -Wall $(LIB) -fPIC -DPIC $(SHAREDFLAG) $(CXXFLAGS) -Dmydsp=$(patsubst %.so,%,$(notdir $@)) $< -o $@ $(DEST)%.cpp: %.dsp faust $(VEC) -a $(ARCH) $< -o $@ clean: rm -rf $(DEST) faust-0.9.46/examples/faust-stk/NLFfm.dsp0000644000175000017500000000741411702130733020064 0ustar orlareyorlareydeclare name "NLFfm"; declare description "FM synthesizer implemented with a nonlinear passive allpass filter"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; import("instrument.lib"); import("music.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",0.8,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [2][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [2][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [2][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [2][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [3][unit:Hz]",5,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [3][tooltip:A value between 0 and 1]",0.1,0,1,0.01); vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack [3][unit:s][tooltip:Vibrato attack duration]",0.5,0,2,0.01); vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release [3][unit:s][tooltip:Vibrato release duration]",0.01,0,2,0.01); envelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Attack [4][unit:s][tooltip:Envelope attack duration]",0.05,0,2,0.01); envelopeDecay = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Decay [4][unit:s][tooltip:Envelope decay duration]",0.05,0,2,0.01); envelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Release [4][unit:s][tooltip:Envelope release duration]",0.05,0,2,0.01); //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 3; //attack - sustain - release envelope for nonlinearity (declared in instrument.lib) envelopeMod = asr(nonLinAttack,100,envelopeRelease,gate); //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),envelopeMod,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Algorithm implementation ---------------------------- //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //vibrato gain is controled by envVibrato (declared in instrument.LIB) vibrato = osc(vibratoFreq)*vibratoGain*envVibrato(0.1*2*vibratoAttack,0.9*2*vibratoAttack,100,vibratoRelease,gate); //output gain is controled by an adsr envelope envelope = adsr(envelopeAttack,envelopeDecay,90,envelopeRelease,gate)*gain; breath = envelope + envelope*vibrato; process = osc(freq)*breath : NLFM : stereo : instrReverb; faust-0.9.46/examples/faust-stk/bass.dsp0000644000175000017500000000731411702130733020051 0ustar orlareyorlareydeclare name "Bass"; declare description "Nonlinear WaveGuide Acoustic Bass"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); import("instrument.lib"); import("music.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",120,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); touchLength = hslider("v:Physical_Parameters/Touch_Length [2][tooltip:A value between 0 and 1]",0.15,0,1,0.01)*2; typeModulation = nentry("v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); //==================== SIGNAL PROCESSING ====================== //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),1,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //delay length in number of samples delayLength = float(SR)/freq; //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(delayLength); //string excitation excitation = asympT60(-0.5,-0.985,0.02,gate),noise*asympT60(gain,0,touchLength,gate) : onePoleSwep : excitationFilter : excitationFilter with{ //the exitation filter is a one pole filter (declared in instrument.lib) excitationFilter = onePole(0.035,-0.965); }; //the bodyfilter is a bandpass filter (declared in instrument.lib) bodyFilter = bandPass(108,0.997); //the reflexion filter is pole zero filter (declared in instrument.lib) whose coefficients are //modulated in function of the tone being played reflexionFilter = poleZero(b0,b1,a1) with{ //filter coefficients are stored in a C++ function loopFilterb0 = ffunction(float getValueBassLoopFilterb0(float), ,""); loopFilterb1 = ffunction(float getValueBassLoopFilterb1(float), ,""); loopFiltera1 = ffunction(float getValueBassLoopFiltera1(float), ,""); freqToNoteNumber = (log - log(440))/log(2)*12 + 69 + 0.5 : int; freqn = freq : freqToNoteNumber; b0 = loopFilterb0(freqn); b1 = loopFilterb1(freqn); a1 = loopFiltera1(freqn); }; delayLine = asympT60(0,delayLength,0.01,gate),_ : fdelay(4096); //the resonance duration is different whether a note-on signal is sent or not resonanceGain = gate + (gate < 1 <: *(asympT60(1,0.9,0.05))); process = excitation : (+)~(delayLine : NLFM : reflexionFilter*resonanceGain) <: bodyFilter*1.5 + *(0.5) : *(4) : stereo : instrReverb; faust-0.9.46/examples/faust-stk/piano.h0000644000175000017500000003470011702130733017667 0ustar orlareyorlarey//Parameters for piano.dsp //©Romain Michon (rmichon@ccrma.stanford.edu), 2011 //licence: FAUST-STK #include "instrument.h" #define _LOOKUP_TABLE_H_ //********************************************************************** extern LookupTable noteOffDelayTime; /* pianoDriverC.sb */ /* Coupling Filter */ extern LookupTable singleStringDecayRate; extern LookupTable singleStringZero; extern LookupTable singleStringPole; extern LookupTable releaseLoopGain; extern LookupTable detuningHz; extern LookupTable stiffnessCoefficient; extern LookupTable strikePosition; extern LookupTable EQGain; extern LookupTable EQBandwidthFactor; /* PianoDriverA */ /* HammerFilter */ extern LookupTable loudPole; extern LookupTable softPole; extern LookupTable normalizedVelocity; extern LookupTable loudGain; extern LookupTable softGain; /* Soundboard */ extern LookupTable sustainPedalLevel; extern LookupTable DryTapAmpT60; extern double DryTapAmpCurrent; extern LookupTable DCBa1; /* pianoDriverB */ /* High Notes */ extern LookupTable secondStageAmpRatio; extern LookupTable r1_1db; extern LookupTable r1_2db; extern LookupTable r2db; extern LookupTable r3db; extern LookupTable secondPartialFactor; extern LookupTable thirdPartialFactor; extern LookupTable bq4_gEarBalled; //*************************************************************** /* PianoDriver.sb */ double noteOffDelayTime_points[5*2] = { 89.000,3.000, 93.000,2.000, 95.000,1.500, 99.782,1.020, 108.000,0.300, }; LookupTable noteOffDelayTime(¬eOffDelayTime_points[0], 5); /* pianoDriverC.sb */ /* Coupling Filter */ double singleStringDecayRate_points[17*2] = { 21.000,-1.500, 24.000,-1.500, 28.000,-1.500, 29.000,-6.000, 36.000,-6.000, 42.000,-6.100, 48.000,-7.000, 52.836,-7.000, 60.000,-7.300, 66.000,-7.700, 72.000,-8.000, 78.000,-8.800, 84.000,-10.000, 88.619,-11.215, 92.368,-12.348, 95.684,-13.934, 99.000,-15.000 }; LookupTable singleStringDecayRate(&singleStringDecayRate_points[0], 17); double singleStringZero_points[17*2] = { 21.000,-1.000, 24.000,-1.000, 28.000,-1.000, 29.000,-1.000, 32.534,-1.000, 36.000,-0.700, 42.000,-0.400, 48.000,-0.200, 54.000,-0.120, 60.000,-0.080, 66.000,-0.070, 72.000,-0.070, 79.000,-0.065, 84.000,-0.063, 88.000,-0.060, 96.000,-0.050, 99.000,-0.050 }; LookupTable singleStringZero(&singleStringZero_points[0], 17); double singleStringPole_points[17*2] = { 21.000,0.350, 24.604,0.318, 26.335,0.279, 28.000,0.250, 32.000,0.150, 36.000,0.000, 42.000,0.000, 48.000,0.000, 54.000,0.000, 60.000,0.000, 66.000,0.000, 72.000,0.000, 76.000,0.000, 84.000,0.000, 88.000,0.000, 96.000,0.000, 99.000,0.000 }; LookupTable singleStringPole(&singleStringPole_points[0], 17); double releaseLoopGain_points[10*2] = { 21.000,0.865, 24.000,0.880, 29.000,0.896, 36.000,0.910, 48.000,0.920, 60.000,0.950, 72.000,0.965, 84.000,0.988, 88.000,0.997, 99.000,0.988 }; LookupTable releaseLoopGain(&releaseLoopGain_points[0], 10); double detuningHz_points[18*2] = { 21.000,0.003, 24.000,0.003, 28.000,0.003, 29.000,0.060, 31.000,0.100, 36.000,0.110, 42.000,0.120, 48.000,0.200, 54.000,0.200, 60.000,0.250, 66.000,0.270, 72.232,0.300, 78.000,0.350, 84.000,0.500, 88.531,0.582, 92.116,0.664, 95.844,0.793, 99.000,1.000 }; LookupTable detuningHz(&detuningHz_points[0], 18); double stiffnessCoefficient_points[10*2] = { 21.000,-0.850, 23.595,-0.850, 27.055,-0.830, 29.000,-0.700, 37.725,-0.516, 46.952,-0.352, 60.000,-0.250, 73.625,-0.036, 93.810,-0.006, 99.000,1.011 }; LookupTable stiffnessCoefficient(&stiffnessCoefficient_points[0], 10); double strikePosition_points[12*2] = { 21.000,0.050, 24.000,0.050, 28.000,0.050, 35.000,0.050, 41.000,0.050, 42.000,0.125, 48.000,0.125, 60.000,0.125, 72.000,0.125, 84.000,0.125, 96.000,0.125, 99.000,0.125 }; LookupTable strikePosition(&strikePosition_points[0], 12); double EQGain_points[14*2] = { 21.000,2.000, 24.000,2.000, 28.000,2.000, 30.000,2.000, 35.562,1.882, 41.000,1.200, 42.000,0.600, 48.000,0.500, 54.000,0.500, 59.928,0.502, 66.704,0.489, 74.201,0.477, 91.791,1.000, 99.000,1.000 }; LookupTable EQGain(&EQGain_points[0], 14); double EQBandwidthFactor_points[13*2] = { 21.000,5.000, 24.112,5.000, 28.000,5.000, 35.000,4.956, 41.000,6.000, 42.000,2.000, 48.773,1.072, 57.558,1.001, 63.226,1.048, 69.178,1.120, 72.862,1.525, 80.404,2.788, 97.659,1.739 }; LookupTable EQBandwidthFactor(&EQBandwidthFactor_points[0], 13); /* PianoDriverA */ /* HammerFilter */ double loudPole_points[19*2] = { 21.000,0.875, 23.719,0.871, 27.237,0.836, 28.996,0.828, 32.355,0.820, 36.672,0.816, 40.671,0.820, 45.788,0.812, 47.867,0.812, 54.000,0.810, 60.000,0.800, 66.000,0.800, 72.000,0.810, 78.839,0.824, 84.446,0.844, 89.894,0.844, 96.463,0.848, 103.512,0.840, 107.678,0.840 }; LookupTable loudPole(&loudPole_points[0], 19); double softPole_points[16*2] = { 21.000,0.990, 24.000,0.990, 28.000,0.990, 29.000,0.990, 36.000,0.990, 42.000,0.990, 48.000,0.985, 54.000,0.970, 60.000,0.960, 66.000,0.960, 72.000,0.960, 78.000,0.970, 84.673,0.975, 91.157,0.990, 100.982,0.970, 104.205,0.950 }; LookupTable softPole(&softPole_points[0], 16); double normalizedVelocity_points[8*2] = { 0.000,0.000, 0.170,0.318, 0.316,0.546, 0.460,0.709, 0.599,0.825, 0.717,0.894, 0.841,0.945, 1.000,1.000 }; LookupTable normalizedVelocity(&normalizedVelocity_points[0], 8); double loudGain_points[16*2] = { 21.873,0.891, 25.194,0.870, 30.538,0.848, 35.448,0.853, 41.513,0.842, 47.434,0.826, 53.644,0.820, 60.720,0.815, 65.630,0.820, 72.995,0.853, 79.060,0.920, 85.270,1.028, 91.624,1.247, 95.668,1.296, 99.000,1.300, 100.000,1.100 }; LookupTable loudGain(&loudGain_points[0], 16); double softGain_points[15*2] = { 20.865,0.400, 22.705,0.400, 25.960,0.400, 28.224,0.400, 31.196,0.400, 36.715,0.400, 44.499,0.400, 53.981,0.400, 60.000,0.350, 66.000,0.350, 72.661,0.350, 81.435,0.430, 88.311,0.450, 93.040,0.500, 96.434,0.500 }; LookupTable softGain(&softGain_points[0], 15); /* Soundboard */ double sustainPedalLevel_points[13*2] = { 21.000,0.050, 24.000,0.050, 31.000,0.030, 36.000,0.025, 48.000,0.010, 60.000,0.005, 66.000,0.003, 72.000,0.002, 78.000,0.002, 84.000,0.003, 90.000,0.003, 96.000,0.003, 108.000,0.002 }; LookupTable sustainPedalLevel(&sustainPedalLevel_points[0], 13); double DryTapAmpT60_points[16*2] = { 21.001,0.491, 26.587,0.498, 34.249,0.470, 40.794,0.441, 47.977,0.392, 55.000,0.370, 60.000,0.370, 66.000,0.370, 71.934,0.370, 78.000,0.370, 83.936,0.390, 88.557,0.387, 92.858,0.400, 97.319,0.469, 102.400,0.500, 107.198,0.494 }; LookupTable DryTapAmpT60(&DryTapAmpT60_points[0], 16); double DryTapAmpCurrent = 0.15; double DCBa1_points[18*2] = { 21.000,-0.999, 24.000,-0.999, 30.000,-0.999, 36.000,-0.999, 42.000,-0.999, 48.027,-0.993, 60.000,-0.995, 72.335,-0.960, 78.412,-0.924, 84.329,-0.850, 87.688,-0.770, 91.000,-0.700, 92.000,-0.910, 96.783,-0.850, 99.000,-0.800, 100.000,-0.850, 104.634,-0.700, 107.518,-0.500 }; LookupTable DCBa1(&DCBa1_points[0], 18); /* pianoDriverB */ /* High Notes */ double secondStageAmpRatio_points[6*2] = { 82.277,-18.508, 88.000,-30.000, 90.000,-30.000, 93.451,-30.488, 98.891,-30.633, 107.573,-30.633 }; LookupTable secondStageAmpRatio(&secondStageAmpRatio_points[0], 6); double r1_1db_points[3*2] = { 100.000,-75.000, 103.802,-237.513, 108.000,-400.000 }; LookupTable r1_1db(&r1_1db_points[0], 3); double r1_2db_points[4*2] = { 98.388,-16.562, 100.743,-75.531, 103.242,-154.156, 108.000,-300.000 }; LookupTable r1_2db(&r1_2db_points[0], 4); double r2db_points[2*2] = { 100.000,-115.898, 107.858,-250.000 }; LookupTable r2db(&r2db_points[0], 2); double r3db_points[2*2] = { 100.000,-150.000, 108.000,-400.000 }; LookupTable r3db(&r3db_points[0], 2); double secondPartialFactor_points[2*2] = { 88.000,2.000, 108.000,2.100 }; LookupTable secondPartialFactor(&secondPartialFactor_points[0], 2); double thirdPartialFactor_points[2*2] = { 88.000,3.100, 108.000,3.100 }; LookupTable thirdPartialFactor(&thirdPartialFactor_points[0], 2); double bq4_gEarBalled_points[6*2] = { 100.000,0.040, 102.477,0.100, 104.518,0.300, 106.000,0.500, 107.000,1.000, 108.000,1.500 }; LookupTable bq4_gEarBalled(&bq4_gEarBalled_points[0], 6); //************************************************************************ float getValueDryTapAmpT60 (float index){ return DryTapAmpT60.getValue(index); } float getValueSustainPedalLevel (float index){ return sustainPedalLevel.getValue(index); } float getValueLoudPole(float index){ return loudPole.getValue(index); } float getValuePoleValue(float index){ return softPole.getValue(index); } float getValueLoudGain(float index){ return loudGain.getValue(index); } float getValueSoftGain(float index){ return softGain.getValue(index); } float getValueDCBa1(float index){ return DCBa1.getValue(index); } float getValuer1_1db(float index){ return r1_1db.getValue(index); } float getValuer1_2db(float index){ return r1_2db.getValue(index); } float getValuer2db(float index){ return r2db.getValue(index); } float getValuer3db(float index){ return r3db.getValue(index); } float getValueSecondStageAmpRatio(float index){ return secondStageAmpRatio.getValue(index); } float getValueSecondPartialFactor(float index){ return secondPartialFactor.getValue(index); } float getValueThirdPartialFactor(float index){ return thirdPartialFactor.getValue(index); } float getValueBq4_gEarBalled(float index){ return bq4_gEarBalled.getValue(index); } float getValueStrikePosition(float index){ return strikePosition.getValue(index); } float getValueEQBandWidthFactor(float index){ return EQBandwidthFactor.getValue(index); } float getValueEQGain(float index){ return EQGain.getValue(index); } float getValueDetuningHz(float index){ return detuningHz.getValue(index); } float getValueSingleStringDecayRate(float index){ return singleStringDecayRate.getValue(index); } float getValueSingleStringZero(float index){ return singleStringZero.getValue(index); } float getValueSingleStringPole(float index){ return singleStringPole.getValue(index); } float getValueStiffnessCoefficient(float index){ return stiffnessCoefficient.getValue(index); } float getValueReleaseLoopGain(float index){ return releaseLoopGain.getValue(index); } //Harpsichord double loopFilterb0_points[18*2] = { 35.000,0.94373, 36.000,0.94731, 46.000,0.94731, 47.000,0.96202, 52.000,0.96202, 53.000,0.97477, 58.000,0.97477, 59.000,0.97733, 64.000,0.97733, 65.000,0.97971, 70.000,0.97971, 71.000,0.97971, 76.000,0.97971, 77.000,0.98698, 82.000,0.98698, 83.000,0.98462, 86.000,0.98462, 87.000,0.98611, }; extern LookupTable loopFilterb0; LookupTable loopFilterb0(&loopFilterb0_points[0], 18); float getValueLoopFilterb0(float index){ return loopFilterb0.getValue(index); } double loopFilterb1_points[18*2] = { 35.000,0.60010, 36.000,-0.59124, 46.000,-0.59124, 47.000,-0.21243, 52.000,-0.21243, 53.000,-0.39280, 58.000,-0.39280, 59.000,-0.48307, 64.000,-0.48307, 65.000,0.51965, 70.000,0.51965, 71.000,0.51965, 76.000,0.51965, 77.000,-0.42463, 82.000,-0.42463, 83.000,0.85655, 86.000,0.85655, 87.000,0.68851, }; extern LookupTable loopFilterb1; LookupTable loopFilterb1(&loopFilterb1_points[0], 18); float getValueLoopFilterb1(float index){ return loopFilterb1.getValue(index); } double loopFilterb2_points[18*2] = { 35.000,-0.00360, 36.000,-0.12249, 46.000,-0.12249, 47.000,-0.16044, 52.000,-0.16044, 53.000,-0.21680, 58.000,-0.21680, 59.000,-0.16346, 64.000,-0.16346, 65.000,0.22162, 70.000,0.22162, 71.000,0.22162, 76.000,0.22162, 77.000,-0.14973, 82.000,-0.14973, 83.000,0.24937, 86.000,0.24937, 87.000,0.14838, }; extern LookupTable loopFilterb2; LookupTable loopFilterb2(&loopFilterb2_points[0], 18); float getValueLoopFilterb2(float index){ return loopFilterb2.getValue(index); } double loopFiltera1_points[18*2] = { 35.000,0.5941, 36.000,-0.65928, 46.000,-0.65928, 47.000,-0.24222, 52.000,-0.24222, 53.000,-0.41402, 58.000,-0.41402, 59.000,-0.50837, 64.000,-0.50837, 65.000,0.51263, 70.000,0.51263, 71.000,0.51263, 76.000,0.51263, 77.000,-0.43976, 82.000,-0.43976, 83.000,0.85396, 86.000,0.85396, 87.000,0.68332, }; extern LookupTable loopFiltera1; LookupTable loopFiltera1(&loopFiltera1_points[0], 18); float getValueLoopFiltera1(float index){ return loopFiltera1.getValue(index); } double loopFiltera2_points[18*2] = { 35.000,-0.02641, 36.000,-0.10275, 46.000,-0.10275, 47.000,-0.15842, 52.000,-0.15842, 53.000,-0.21653, 58.000,-0.21653, 59.000,-0.15833, 64.000,-0.15833, 65.000,0.22025, 70.000,0.22025, 71.000,0.22025, 76.000,0.22025, 77.000,-0.14583, 82.000,-0.14583, 83.000,0.24405, 86.000,0.24405, 87.000,0.14370, }; extern LookupTable loopFiltera2; LookupTable loopFiltera2(&loopFiltera2_points[0], 18); float getValueLoopFiltera2(float index){ return loopFiltera2.getValue(index); } //bass double bassLoopFilterb0_points[19*2] = { 24.000,0.54355, 26.000,0.54355, 27.000,0.55677, 29.000,0.55677, 32.000,0.55677, 33.000,0.83598, 36.000,0.83598, 43.000,0.83598, 44.000,0.88292, 48.000,0.88292, 51.000,0.88292, 52.000,0.77805, 54.000,0.77805, 57.000,0.77805, 58.000,0.91820, 60.000,0.91820, 61.000,0.91820, 63.000,0.94594, 65.000,0.91820, }; extern LookupTable bassLoopFilterb0; LookupTable bassLoopFilterb0(&bassLoopFilterb0_points[0], 18); float getValueBassLoopFilterb0(float index){ return bassLoopFilterb0.getValue(index); } double bassLoopFilterb1_points[19*2] = { 24.000,-0.36586, 26.000,-0.36586, 27.000,-0.37628, 29.000,-0.37628, 32.000,-0.37628, 33.000,-0.60228, 36.000,-0.60228, 43.000,-0.60228, 44.000,-0.65721, 48.000,-0.65721, 51.000,-0.65721, 52.000,-0.51902, 54.000,-0.51902, 57.000,-0.51902, 58.000,-0.80765, 60.000,-0.80765, 61.000,-0.80765, 63.000,-0.83230, 65.000,-0.83230, }; extern LookupTable bassLoopFilterb1; LookupTable bassLoopFilterb1(&bassLoopFilterb1_points[0], 18); float getValueBassLoopFilterb1(float index){ return bassLoopFilterb1.getValue(index); } double bassLoopFiltera1_points[19*2] = { 24.000,-0.81486, 26.000,-0.81486, 27.000,-0.81147, 29.000,-0.81147, 32.000,-0.81147, 33.000,-0.76078, 36.000,-0.76078, 43.000,-0.76078, 44.000,-0.77075, 48.000,-0.77075, 51.000,-0.77075, 52.000,-0.73548, 54.000,-0.73548, 57.000,-0.73548, 58.000,-0.88810, 60.000,-0.88810, 61.000,-0.88810, 63.000,-0.88537, 65.000,-0.88537, }; extern LookupTable bassLoopFiltera1; LookupTable bassLoopFiltera1(&bassLoopFiltera1_points[0], 18); float getValueBassLoopFiltera1(float index){ return bassLoopFiltera1.getValue(index); }faust-0.9.46/examples/faust-stk/sitar.dsp0000644000175000017500000000331711702130733020242 0ustar orlareyorlareydeclare name "Sitar"; declare description "WaveGuide Sitar"; declare author "Romain Michon (rmichon@ccrma.stanford.edu)"; declare copyright "Romain Michon"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "This instrument implements a sitar plucked string physical model based on the Karplus-Strong algorithm using a randomly modulated delay line."; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); resonance = hslider("v:Physical_Parameters/Resonance [2][tooltip:A value between 0 and 1]",0.7,0,1,0.01)*0.1; //==================== SIGNAL PROCESSING ================ //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //excitation envelope (adsr) envelope = adsr(0.001,0.04,0,0.5,gate); //the delay length is randomly modulated targetDelay = SR/freq; delayLength = targetDelay*((1+(0.5*noise)) : smooth(0.9992)); delayLine = delay(4096,delayLength); //the loop gain control the resonance duration loopGain = 0.895 + resonance + (freq*0.0000005); amGain = 0.1*gain; //feedback filter is a one zero (declared in instrument.lib) filter = oneZero1(b0,b1) with{ zero = 0.01; b0 = 1/(1 + zero); b1 = -zero*b0; }; process = (*(loopGain) : filter + (envelope*noise*amGain))~delayLine : *(8) : stereo : instrReverb; faust-0.9.46/examples/faust-stk/tunedBar.dsp0000644000175000017500000001235111702130733020662 0ustar orlareyorlareydeclare name "Tuned Bar"; declare description "Nonlinear Banded Waveguide Models"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "This instrument uses banded waveguide. For more information, see Essl, G. and Cook, P. Banded Waveguides: Towards Physical Modelling of Bar Percussion Instruments, Proceedings of the 1999 International Computer Music Conference."; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",0.8,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); select = nentry("h:Physical_and_Nonlinearity/v:Physical_Parameters/Excitation_Selector [2][tooltip:0=Bow; 1=Strike]",0,0,1,1); integrationConstant = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Integration_Constant [2][tooltip:A value between 0 and 1]",0,0,1,0.01); baseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Base_Gain [2][tooltip:A value between 0 and 1]",1,0,1,0.01); bowPressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Pressure [2][tooltip:Bow pressure on the instrument (Value between 0 and 1)]",0.2,0,1,0.01); bowPosition = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Position [2][tooltip:Bow position on the instrument (Value between 0 and 1)]",0,0,1,0.01); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); //==================== MODAL PARAMETERS ================ preset = 2; nMode(2) = 4; modes(2,0) = 1; basegains(2,0) = pow(0.999,1); excitation(2,0) = 1*gain*gate/nMode(2); modes(2,1) = 4.0198391420; basegains(2,1) = pow(0.999,2); excitation(2,1) = 1*gain*gate/nMode(2); modes(2,2) = 10.7184986595; basegains(2,2) = pow(0.999,3); excitation(2,2) = 1*gain*gate/nMode(2); modes(2,3) = 18.0697050938; basegains(2,3) = pow(0.999,4); excitation(2,3) = 1*gain*gate/nMode(2); //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),1,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //the number of modes depends on the preset being used nModes = nMode(preset); //bow table parameters tableOffset = 0; tableSlope = 10 - (9*bowPressure); delayLengthBase = SR/freq; //delay lengths in number of samples delayLength(x) = delayLengthBase/modes(preset,x); //delay lines delayLine(x) = delay(4096,delayLength(x)); //Filter bank: bandpass filters (declared in instrument.lib) radius = 1 - PI*32/SR; bandPassFilter(x) = bandPass(freq*modes(preset,x),radius); //Delay lines feedback for bow table lookup control baseGainApp = 0.8999999999999999 + (0.1*baseGain); velocityInputApp = integrationConstant; velocityInput = velocityInputApp + _*baseGainApp,par(i,(nModes-1),(_*baseGainApp)) :> +; //Bow velocity is controled by an ADSR envelope maxVelocity = 0.03 + 0.1*gain; bowVelocity = maxVelocity*adsr(0.02,0.005,90,0.01,gate); //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(delayLengthBase); //----------------------- Algorithm implementation ---------------------------- //Bow table lookup (bow is decalred in instrument.lib) bowing = bowVelocity - velocityInput <: *(bow(tableOffset,tableSlope)) : /(nModes); //One resonance resonance(x) = + : + (excitation(preset,x)*select) : delayLine(x) : *(basegains(preset,x)) : bandPassFilter(x); process = //Bowed Excitation (bowing*((select-1)*-1) <: //nModes resonances with nModes feedbacks for bow table look-up par(i,nModes,(resonance(i)~_)))~par(i,nModes,_) :> + : //Signal Scaling and stereo *(4) : NLFM : stereo : instrReverb; faust-0.9.46/examples/faust-stk/Makefile.csound0000644000175000017500000000205311702130733021336 0ustar orlareyorlarey ###-------------------------------------------- ### adjust flags to the system ### system := $(shell uname -s) ifeq ($(system), Darwin) LIB := -I/Library/Frameworks/CsoundLib.framework/Headers -I/usr/local/include -framework CsoundLib -L/usr/local/lib -dynamiclib -arch i386 else #LIB := -I/usr/local/include -lsndfile -lcsound -shared LIB := -I/usr/include/csound -shared -fPIC endif ###For Windows with gcc/mingw:(if headers in /usr/local/include and libs in /usr/local/lib) ###g++ -O2 -shared -o myopcode.dylib myopcode.cpp -DOPCODE_NAME=myopcode -I/usr/local/include -lsndfile -lcsound32 ###-------------------------------------------- ### Build csound opcodes on Darwin or Linux (fx.dsp -> fx.cpp -> fx.dylib) ### dspsrc := $(wildcard *.dsp) ##cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) opcodes := $(addprefix $(DEST), $(dspsrc:.dsp=.dylib)) all : $(opcodes) $(DEST)%.dylib : %.dsp faust $(VEC) -uim -a csound.cpp $< -o $@.cpp $(CXX) -O3 $(CXXFLAGS) $(LIB) -DOPCODE_NAME=$(notdir $(@:.dylib=)) $@.cpp -o $@ clean : rm -f $(DEST) faust-0.9.46/examples/faust-stk/blowHole.dsp0000644000175000017500000001732711702130733020701 0ustar orlareyorlareydeclare name "BlowHole"; declare description "Nonlinear WaveGuide Clarinet with one register hole and one tonehole"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "A clarinet model, with the addition of a two-port register hole and a three-port dynamic tonehole implementation, as discussed by Scavone and Cook (1998). In this implementation, the distances between the reed/register hole and tonehole/bell are fixed. As a result, both the tonehole and register hole will have variable influence on the playing frequency, which is dependent on the length of the air column. In addition, the highest playing freqeuency is limited by these fixed lengths."; declare reference "https://ccrma.stanford.edu/~jos/pasp/Woodwinds.html"; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); reedStiffness = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Reed_Stiffness [2][tooltip:Reed stiffness (value between 0 and 1)]",0.35,0,1,0.01); toneHoleOpenness = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Tone_Hole_Openness [2][tooltip:A value between 0 and 1]",0.12,0,1,0.01); ventOpenness = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Vent_Openness [2][tooltip:A value between 0 and 1]",0,0,1,0.01); noiseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Noise_Gain [2][tooltip:Breath noise gain (value between 0 and 1)]",0,0,1,0.01); pressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Pressure [2][tooltip:Breath pressure (value bewteen 0 and 1)]",0.35,0,1,0.01); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [4][unit:Hz]",5,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [4][tooltip:A value between 0 and 1]",0.1,0,1,0.01); vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack [4][unit:s][tooltip:Vibrato attack duration]",0.5,0,2,0.01); vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release [4][unit:s][tooltip:Vibrato release duration]",0.01,0,2,0.01); envelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Attack [5][unit:s][tooltip:Envelope attack duration]",0.01,0,2,0.01); envelopeDecay = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Decay [5][unit:s][tooltip:Envelope decay duration]",0.05,0,2,0.01); envelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Release [5][unit:s][tooltip:Envelope release duration]",0.1,0,2,0.01); //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order (problem with compilation time if order is bigger than 2) nlfOrder = 2; //attack - sustain - release envelope for nonlinearity (declared in instrument.lib) envelopeMod = asr(nonLinAttack,100,envelopeRelease,gate); //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),envelopeMod,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //reed table parameters reedTableOffset = 0.7; reedTableSlope = -0.44 + (0.26*reedStiffness); //the reed function is declared in instrument.lib reedTable = reed(reedTableOffset,reedTableSlope); // Calculate the initial tonehole three-port scattering coefficient rb = 0.0075; // main bore radius rth = 0.003; // tonehole radius scattering = pow(rth,2)*-1 / (pow(rth,2) + 2*pow(rb,2)); // Calculate register hole filter coefficients r_rh = 0.0015; // register vent radius teVent = 1.4*r_rh; // effective length of the open hole xi = 0 ; // series resistance term zeta = 347.23 + 2*PI*pow(rb,2)*xi/1.1769; psi = 2*PI*pow(rb,2)*teVent/(PI*pow(r_rh,2)); rhCoeff = (zeta - 2*SR*psi)/(zeta + 2*SR*psi); rhGain = -347.23/(zeta + 2*SR*psi); ventFilterGain = rhGain*ventOpenness; // Vent filter ventFilter = *(ventFilterGain) : poleZero(1,1,rhCoeff); teHole = 1.4*rth; // effective length of the open hole coeff = (teHole*2*SR - 347.23)/(teHole*2*SR + 347.23); scaledCoeff = (toneHoleOpenness*(coeff - 0.9995)) + 0.9995; //register hole filter using a poleZero filter (declared in instrument.lib) toneHoleFilter = *(1) : poleZero(b0,-1,a1) with{ b0 = scaledCoeff; a1 = -scaledCoeff; }; //reflexion filter is a one zero filter (delcred in instrument.lib) reflexionFilter = oneZero0(0.5,0.5)*-0.95; //delay lengths in number of samples delay0Length = 5*SR/22050; delay2Length = 4*SR/22050; delay1Length = (SR/freq*0.5 - 3.5) - (delay0Length + delay2Length) - (nlfOrder*nonLinearity)*(typeModulation < 2); //fractional delay lines delay0 = fdelay(4096,delay0Length); delay1 = fdelay(4096,delay1Length); delay2 = fdelay(4096,delay2Length); //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //----------------------- Algorithm implementation ---------------------------- //envelope(ADSR) + vibrato + noise envelope = (0.55 + pressure*0.3)*asr(pressure*envelopeAttack,100,pressure*envelopeRelease,gate); vibratoEnvelope = envVibrato(0.1*2*vibratoAttack,0.9*2*vibratoAttack,100,vibratoRelease,gate); vibrato = vibratoGain*osc(vibratoFreq)*vibratoEnvelope; breath = envelope + envelope*noiseGain*noise; breathPressure = breath + (breath*vibrato); //two-port junction scattering for register vent twoPortJunction(portB) = (pressureDiff : ((_ <: breathPressure + *(reedTable)) <: (+(portB) : ventFilter <: +(portB),_),_))~ delay0 : inverter : + ,_ with{ pressureDiff = -(breathPressure); inverter(a,b,c) = b,c,a; }; //three-port junction scattering (under tonehole) threePortJunction(twoPortOutput) = (_ <: junctionScattering(twoPortOutput),_ : +(twoPortOutput), + : reflexionFilter,_)~delay2 : !,_ with{ toneHole(temp,portA2,portB2) = (portA2 + portB2-_ + temp : toneHoleFilter)~_; junctionScattering(portA2,portB2) = (((portA2+portB2-2*_)*scattering) <: toneHole(_,portA2,portB2),_,_)~_ : !,_,_; }; process = (twoPortJunction : threePortJunction,_) ~ (delay1 : NLFM) : !,*(gain)*1.5 : stereo : instrReverb; faust-0.9.46/examples/faust-stk/brass.dsp0000644000175000017500000001245711702130733020237 0ustar orlareyorlareydeclare name "Brass"; declare description "WaveGuide Brass instrument from STK"; declare author "Romain Michon (rmichon@ccrma.stanford.edu)"; declare copyright "Romain Michon"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "A simple brass instrument waveguide model, a la Cook (TBone, HosePlayer)."; declare reference "https://ccrma.stanford.edu/~jos/pasp/Brasses.html"; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); pressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Pressure [2][tooltip:A value between 0 and 1]",1,0.01,1,0.01); lipTension = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Lip_Tension [2][tooltip:A value between 0 and 1]",0.780,0.01,1,0.001); slideLength = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Slide_Length [2][tooltip:A value between 0 and 1]",0.041,0.01,1,0.001); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [4][unit:Hz]",6,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [4][tooltip:A value between 0 and 1]",0.05,0,1,0.01); vibratoBegin = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Begin [4][unit:s][tooltip:Vibrato silence duration before attack]",0.05,0,2,0.01); vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack [4][unit:s][tooltip:Vibrato attack duration]",0.5,0,2,0.01); vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release [4][unit:s][tooltip:Vibrato release duration]",0.1,0,2,0.01); envelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Attack [5][unit:s][tooltip:Envelope attack duration]",0.005,0,2,0.01); envelopeDecay = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Decay [5][unit:s][tooltip:Envelope decay duration]",0.001,0,2,0.01); envelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Release [5][unit:s][tooltip:Envelope release duration]",0.07,0,2,0.01); //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //attack - sustain - release envelope for nonlinearity (declared in instrument.lib) envelopeMod = asr(nonLinAttack,100,envelopeRelease,gate); //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),envelopeMod,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //lips are simulated by a biquad filter whose output is squared and hard-clipped, bandPassH and saturationPos are declared in instrument.lib lipFilterFrequency = freq*pow(4,(2*lipTension)-1); lipFilter = *(0.03) : bandPassH(lipFilterFrequency,0.997) <: * : saturationPos; //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //delay times in number of samples slideTarget = ((SR/freq)*2 + 3)*(0.5 + slideLength); boreDelay = fdelay(4096,slideTarget); //----------------------- Algorithm implementation ---------------------------- //vibrato vibrato = vibratoGain*osc(vibratoFreq)*envVibrato(vibratoBegin,vibratoAttack,100,vibratoRelease,gate); //envelope (Attack / Decay / Sustain / Release), breath pressure and vibrato breathPressure = pressure*adsr(envelopeAttack,envelopeDecay,100,envelopeRelease,gate) + vibrato; mouthPressure = 0.3*breathPressure; //scale the delay feedback borePressure = *(0.85); //differencial presure deltaPressure = mouthPressure - _; process = (borePressure <: deltaPressure,_ : (lipFilter <: *(mouthPressure),(1-_)),_ : _, * :> + : dcblocker) ~ (boreDelay : NLFM) : *(gain)*4 : stereo : instrReverb; faust-0.9.46/examples/faust-stk/clarinet.dsp0000644000175000017500000001250111702130733020714 0ustar orlareyorlareydeclare name "Clarinet"; declare description "Nonlinear WaveGuide Clarinet"; declare author "Romain Michon"; declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "A simple clarinet physical model, as discussed by Smith (1986), McIntyre, Schumacher, Woodhouse (1983), and others."; declare reference "https://ccrma.stanford.edu/~jos/pasp/Woodwinds.html"; import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); reedStiffness = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Reed_Stiffness [2][tooltip:Reed stiffness (value between 0 and 1)]",0.5,0,1,0.01); noiseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Noise_Gain [2][tooltip:Breath noise gain (value between 0 and 1)]",0,0,1,0.01); pressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Pressure [2][tooltip:Breath pressure (value bewteen 0 and 1)]",1,0,1,0.01); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [4][unit:Hz]",5,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [4][tooltip:A value between 0 and 1]",0.1,0,1,0.01); vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack [4][unit:s][tooltip:Vibrato attack duration]",0.5,0,2,0.01); vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release [4][unit:s][tooltip:Vibrato release duration]",0.01,0,2,0.01); envelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Attack [5][unit:s][tooltip:Envelope attack duration]",0.01,0,2,0.01); envelopeDecay = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Decay [5][unit:s][tooltip:Envelope decay duration]",0.05,0,2,0.01); envelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Release [5][unit:s][tooltip:Envelope release duration]",0.1,0,2,0.01); //==================== SIGNAL PROCESSING ====================== //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //attack - sustain - release envelope for nonlinearity (declared in instrument.lib) envelopeMod = asr(nonLinAttack,100,envelopeRelease,gate); //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),envelopeMod,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //reed table parameters reedTableOffset = 0.7; reedTableSlope = -0.44 + (0.26*reedStiffness); //the reed function is declared in instrument.lib reedTable = reed(reedTableOffset,reedTableSlope); //delay line with a length adapted in function of the order of nonlinear filter delayLength = SR/freq*0.5 - 1.5 - (nlfOrder*nonLinearity)*(typeModulation < 2); delayLine = fdelay(4096,delayLength); //one zero filter used as a allpass: pole is set to -1 filter = oneZero0(0.5,0.5); //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); //----------------------- Algorithm implementation ---------------------------- //Breath pressure + vibrato + breath noise + envelope (Attack / Decay / Sustain / Release) envelope = adsr(envelopeAttack,envelopeDecay,100,envelopeRelease,gate)*pressure*0.9; vibrato = osc(vibratoFreq)*vibratoGain* envVibrato(0.1*2*vibratoAttack,0.9*2*vibratoAttack,100,vibratoRelease,gate); breath = envelope + envelope*noise*noiseGain; breathPressure = breath + breath*vibrato; process = //Commuted Loss Filtering (_,(breathPressure <: _,_) : (filter*-0.95 - _ <: //Non-Linear Scattering *(reedTable)) + _) ~ //Delay with Feedback (delayLine : NLFM) : //scaling and stereo *(gain)*1.5 : stereo : instrReverb; faust-0.9.46/examples/faust-stk/instrument.h0000644000175000017500000001444311702130733020773 0ustar orlareyorlarey//Set of C++ wave table function //©Romain Michon (rmichon@ccrma.stanford.edu), 2011 //licence: STK-4.3 #include #include #define TABLE_SIZE 1024 //****************************************************** //functions for parameters lookup and interpolation //****************************************************** class LookupTable { public: LookupTable(double *points, int num_points); double getValue(double x); protected: // Note: Actual array size is 2*m_nPoints; double *m_Points; int m_nPoints; }; LookupTable::LookupTable(double *points, int num_points) { // Note: Actual array size is 2*num_points m_Points = points; m_nPoints = num_points; } double LookupTable::getValue(double x) { // Note: Assumes points are monotonically increasing in X! int i=0; while (x>m_Points[i*2] && i=m_nPoints) return m_Points[(m_nPoints-1)*2+1]; double ratio = (x - m_Points[(i-1)*2]) / (m_Points[i*2] - m_Points[(i-1)*2]); return m_Points[(i-1)*2+1]*(1-ratio) + m_Points[i*2+1]*(ratio); } //******************************** //stick for modal synthesis //******************************** float readMarmstk1(int index){ static float marmstk1[TABLE_SIZE/4] = { 0.000579833984375, -0.003417968750000, 0.015930175781250, -0.037689208984375, 0.062866210937500, 0.168640136718750, -0.226287841796875, -0.020233154296875, 0.017120361328125, 0.032745361328125, 0.028198242187500, -0.065704345703125, 0.102355957031250, -0.135375976562500, -0.088378906250000, 0.135375976562500, 0.036987304687500, 0.030181884765625, -0.023498535156250, -0.050872802734375, 0.120574951171875, -0.223419189453125, 0.235260009765625, -0.296081542968750, 0.384582519531250, -0.363708496093750, 0.206207275390625, 0.076873779296875, -0.262420654296875, 0.306579589843750, -0.349090576171875, 0.359161376953125, -0.304809570312500, 0.156860351562500, 0.022552490234375, -0.063598632812500, 0.017425537109375, 0.024505615234375, -0.016296386718750, -0.056304931640625, 0.093536376953125, -0.108825683593750, 0.215484619140625, -0.354858398437500, 0.316925048828125, -0.164672851562500, 0.028594970703125, 0.095001220703125, -0.165679931640625, 0.218811035156250, -0.239105224609375, 0.182830810546875, -0.026275634765625, -0.016601562500000, -0.042175292968750, 0.080566406250000, -0.123352050781250, 0.071563720703125, -0.021514892578125, -0.000488281250000, 0.080139160156250, -0.188354492187500, 0.230712890625000, -0.172271728515625, 0.033325195312500, 0.111236572265625, -0.127532958984375, 0.118682861328125, -0.136383056640625, 0.068878173828125, 0.041931152343750, -0.126129150390625, 0.134155273437500, -0.024902343750000, -0.094726562500000, 0.136840820312500, -0.140930175781250, 0.123962402343750, -0.080383300781250, -0.033691406250000, 0.167541503906250, -0.194976806640625, 0.151489257812500, -0.042388916015625, -0.028625488281250, 0.030853271484375, -0.079559326171875, 0.071166992187500, 0.026977539062500, -0.075714111328125, 0.110107421875000, -0.076507568359375, -0.043426513671875, 0.063110351562500, -0.099487304687500, 0.137664794921875, -0.086181640625000, 0.047119140625000, 0.022491455078125, -0.092956542968750, 0.070709228515625, -0.036560058593750, -0.004943847656250, 0.051208496093750, -0.042541503906250, 0.042114257812500, -0.024414062500000, -0.039916992187500, 0.082580566406250, -0.094451904296875, 0.039459228515625, 0.037048339843750, -0.061218261718750, 0.080810546875000, -0.070159912109375, 0.037139892578125, 0.008789062500000, -0.078094482421875, 0.094024658203125, -0.048431396484375, 0.009643554687500, 0.020263671875000, -0.032379150390625, 0.021820068359375, -0.021270751953125, -0.033203125000000, 0.102172851562500, -0.089721679687500, 0.052856445312500, -0.001495361328125, -0.070404052734375, 0.109436035156250, -0.104156494140625, 0.116302490234375, -0.074310302734375, -0.004425048828125, 0.061309814453125, -0.090698242187500, 0.056732177734375, -0.015380859375000, -0.010406494140625, 0.019622802734375, 0.000213623046875, -0.017272949218750, 0.065399169921875, -0.119842529296875, 0.105499267578125, -0.051391601562500, -0.024383544921875, 0.085968017578125, -0.099731445312500, 0.121948242187500, -0.098876953125000, 0.038085937500000, 0.034362792968750, -0.071441650390625, 0.039550781250000, -0.017272949218750, -0.001708984375000, 0.031402587890625, -0.027740478515625, 0.013183593750000, 0.013488769531250, -0.083831787109375, 0.103637695312500, -0.061645507812500, 0.026947021484375, 0.036499023437500, -0.078735351562500, 0.089294433593750, -0.090393066406250, 0.034820556640625, 0.019500732421875, -0.070129394531250, 0.102569580078125, -0.070922851562500, 0.039672851562500, 0.020507812500000, -0.078674316406250, 0.065002441406250, -0.045806884765625, 0.027801513671875, 0.012115478515625, -0.018829345703125, 0.015594482421875, -0.010772705078125, -0.042938232421875, 0.062103271484375, -0.032745361328125, 0.004791259765625, 0.028137207031250, -0.067687988281250, 0.078094482421875, -0.063049316406250, 0.039215087890625, 0.012359619140625, -0.052337646484375, 0.074401855468750, -0.063629150390625, 0.034362792968750, 0.013732910156250, -0.044189453125000, 0.042419433593750, -0.047210693359375, 0.019897460937500, 0.020538330078125, -0.039825439453125, 0.048675537109375, -0.025726318359375, -0.016998291015625, 0.038482666015625, -0.056060791015625, 0.061584472656250, -0.014343261718750, -0.023101806640625, 0.051849365234375, -0.069854736328125, 0.043853759765625, -0.016662597656250, 0.002380371093750, 0.033721923828125, -0.039733886718750, 0.021148681640625, -0.010375976562500, 0.000000000000000, 0.000000000000000, 0.000000000000000, -0.000030517578125, 0.000030517578125, 0.000000000000000, 0.000000000000000, -0.000030517578125, -0.000030517578125, 0.000030517578125, 0.000030517578125, -0.000061035156250, 0.000000000000000, 0.000000000000000, 0.000000000000000, 0.000030517578125, -0.000030517578125, 0.000000000000000, 0.000030517578125, -0.000030517578125, 0.000000000000000, 0.000061035156250, -0.000061035156250, 0.000030517578125, 0.000000000000000, -0.000030517578125, 0.000000000000000, 0.000061035156250, 0.000000000000000, -0.000030517578125, 0.000000000000000, 0.000030517578125}; return marmstk1[index]; };faust-0.9.46/examples/faust-stk/Makefile.vstcompile0000644000175000017500000000222011702130733022224 0ustar orlareyorlareydspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) appl := $(addprefix $(DEST), $(dspsrc:.dsp=$(EXT))) # Setup this variable to access the VST SDK files vst_sdk := "/Volumes/Document1/Developpement/ProjectsCVS/JackCVS/JackOSX/jackosx/jackplugins/JACK-ASinsert/VST/VSTSDK" # Setup this variable with the location for the compiled VST plug-ins install_plug_ins := "/Library/Audio/Plug-Ins/VST" all : $(appl) $(DEST)% : %.dsp install -d $@ cp -r $(vst_sdk) $@ cp -r /usr/local/lib/faust/VST/* $@ faust $(VEC) -a $(ARCH) $< -o $@/vst-output.cpp mv $@/vst-output.cpp $@/$(<:.dsp=.cpp) sed -e 's/vst-output.cpp/$(<:.dsp=.cpp)/' $@/VST.xcode/project.pbxproj > $@/VST.xcode/new_project.pbxproj && mv $@/VST.xcode/new_project.pbxproj $@/VST.xcode/project.pbxproj sed -e 's/XXXX/$(<:.dsp=)/' $@/Info.plist > $@/new_Info.plist && mv $@/new_Info.plist $@/Info.plist xcodebuild -project $@/VST.xcode clean xcodebuild -project $@/VST.xcode mv $@/build/FaustVST.vst $@/build/$(<:.dsp=.vst) rm -r $@/build/VST.build install -d $(install_plug_ins) cp -r $@/build/$(<:.dsp=.vst) $(install_plug_ins) clean : rm -f $(DEST) faust-0.9.46/examples/faust-stk/blowBottle.dsp0000644000175000017500000001170011702130733021230 0ustar orlareyorlareydeclare name "BlowBottle"; declare description "Blown Bottle Instrument"; declare author "Romain Michon (rmichon@ccrma.stanford.edu)"; declare copyright "Romain Michon"; declare version "1.0"; declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license); declare description "This object implements a helmholtz resonator (biquad filter) with a polynomial jet excitation (a la Cook)."; import("math.lib"); import("music.lib"); import("instrument.lib"); //==================== GUI SPECIFICATION ================ freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1); gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]"); noiseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Noise_Gain [2][tooltip:Breath noise gain (value between 0 and 1)]",0.5,0,1,0.01)*2; pressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Pressure [2][tooltip:Breath pressure (value bewteen 0 and 1)]",1,0,1,0.01); typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type [3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal; 2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod; 4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1); nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity [3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01); frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency [3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1); nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack [3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01); vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq [4][unit:Hz]",5,1,15,0.1); vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain [4][tooltip:A value between 0 and 1]",0.1,0,1,0.01); vibratoBegin = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Begin [4][unit:s][tooltip:Vibrato silence duration before attack]",0.05,0,2,0.01); vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack [4][unit:s][tooltip:Vibrato attack duration]",0.5,0,2,0.01); vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release [4][unit:s][tooltip:Vibrato release duration]",0.01,0,2,0.01); envelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Attack [5][unit:s][tooltip:Envelope attack duration]",0.01,0,2,0.01); envelopeDecay = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Decay [5][unit:s][tooltip:Envelope decay duration]",0.01,0,2,0.01); envelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Release [5][unit:s][tooltip:Envelope release duration]",0.5,0,2,0.01); //==================== SIGNAL PROCESSING ================ //----------------------- Nonlinear filter ---------------------------- //nonlinearities are created by the nonlinear passive allpass ladder filter declared in filter.lib //nonlinear filter order nlfOrder = 6; //attack - sustain - release envelope for nonlinearity (declared in instrument.lib) envelopeMod = asr(nonLinAttack,100,envelopeRelease,gate); //nonLinearModultor is declared in instrument.lib, it adapts allpassnn from filter.lib //for using it with waveguide instruments NLFM = nonLinearModulator((nonLinearity : smooth(0.999)),envelopeMod,freq, typeModulation,(frequencyMod : smooth(0.999)),nlfOrder); //----------------------- Synthesis parameters computing and functions declaration ---------------------------- //botlle radius bottleRadius = 0.999; //stereoizer is declared in instrument.lib and implement a stereo spacialisation in function of //the frequency period in number of samples stereo = stereoizer(SR/freq); bandPassFilter = bandPass(freq,bottleRadius); //----------------------- Algorithm implementation ---------------------------- //global envelope is of type attack - decay - sustain - release envelopeG = gain*adsr(gain*envelopeAttack,envelopeDecay,80,envelopeRelease,gate); //pressure envelope is also ADSR envelope = pressure*adsr(gain*0.02,0.01,80,gain*0.2,gate); //vibrato vibrato = osc(vibratoFreq)*vibratoGain*envVibrato(vibratoBegin,vibratoAttack,100,vibratoRelease,gate)*osc(vibratoFreq); //breat pressure breathPressure = envelope + vibrato; //breath noise randPressure = noiseGain*noise*breathPressure ; process = //differential pressure (-(breathPressure) <: ((+(1))*randPressure : +(breathPressure)) - *(jetTable),_ : bandPassFilter,_)~NLFM : !,_ : //signal scaling dcblocker*envelopeG*0.5 : stereo : instrReverb; faust-0.9.46/examples/lowShelf.dsp0000644000175000017500000000027111702130733016756 0ustar orlareyorlareyimport("maxmsp.lib"); G = hslider("Gain [unit:dB]", 0, -10, 10, 0.1); F = hslider("Freq", 1000, 100, 10000, 1); Q = hslider("Q", 1, 0.01, 100, 0.01); process(x) = lowShelf(x,F,G,Q); faust-0.9.46/examples/Makefile.pdcompile0000644000175000017500000000431411702130733020100 0ustar orlareyorlarey ###-------------------------------------------- ### Build puredata externals on Darwin or Linux ### system := $(shell uname -s) DEST := pddir/ dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) patches := $(addprefix $(DEST), $(dspsrc:.dsp=.pd)) FAUST2PD := faust2pd F2PDFLAGS := -r 10 -s ###-------------------------------------------- ### compilation flags for Linux ### LINUXCFLAGS := -DPD -fPIC -Wall -O3 -mfpmath=sse -msse -msse2 -msse3 -ffast-math LINUXINCLUDE := -I/usr/include/pdextended ###-------------------------------------------- ### compilation flags for Darwin ### DARWINCFLAGS := -DPD -fPIC -Wall -O3 -mfpmath=sse -msse -msse2 -msse3 -ffast-math DYNLOAD_FLAGS := -bundle -undefined suppress -flat_namespace DARWININCLUDE := -I/Applications/Pd-extended.app/Contents/Resources/include/ ###-------------------------------------------- ### check what type of modules to build (MacOSX Darwin or Linux) ### ifeq ($(system), Darwin) modules := $(addprefix $(DEST), $(dspsrc:.dsp=~.pd_darwin)) else modules := $(addprefix $(DEST), $(dspsrc:.dsp=~.pd_linux)) endif ###-------------------------------------------- ### Will use faust2pd to create the GUI patches ### only if it is installed helper:=$(shell which faust2pd) hasfaust2pd := $(findstring /faust2pd, $(helper)) ifeq ($(hasfaust2pd),) todo:=$(modules) else todo:=$(modules) $(patches) endif ###-------------------------------------------- allmodules: $(todo) $(DEST)%.cpp: %.dsp faust -a $(ARCH) $< -o $@ $(DEST)%.pd: %.dsp faust -xml $< -o /dev/null $(FAUST2PD) $(F2PDFLAGS) $<.xml mv $(<:.dsp=.pd) $(DEST) rm -f $<.xml $(DEST)%~.pd_linux: $(DEST)%.cpp $(CXX) $(LINUXCFLAGS) $(LINUXINCLUDE) -shared -Dmydsp=$(patsubst %~.pd_linux,%,$(notdir $@)) $< -o $@ # On Darwin we create both 32-bits and 64-bits intel code $(DEST)%~.pd_darwin: $(DEST)%.cpp $(CXX) -arch i386 $(DARWINCFLAGS) $(DARWININCLUDE) $(DYNLOAD_FLAGS) -Dmydsp=$(patsubst %~.pd_darwin,%,$(notdir $@)) $< -o $@.i386 $(CXX) -arch x86_64 $(DARWINCFLAGS) $(DARWININCLUDE) $(DYNLOAD_FLAGS) -Dmydsp=$(patsubst %~.pd_darwin,%,$(notdir $@)) $< -o $@.x86_64 lipo -create $@.i386 $@.x86_64 -output $@ rm $@.i386 $@.x86_64 clean: rm -rf $(DEST) faust-0.9.46/examples/reverb_designer.dsp0000644000175000017500000000041711702130733020342 0ustar orlareyorlareyimport("effect.lib"); N = 16; // Feedback Delay Network (FDN) order (power of 2, 2 to 16) NB = 5; // Number of T60-controlled frequency-bands (3 or more) BSO = 3; // Order of each lowpass/highpass bandsplit (odd positive integer) process = fdnrev0_demo(N,NB,BSO); faust-0.9.46/examples/peakNotch.dsp0000644000175000017500000000027211702130733017110 0ustar orlareyorlareyimport("maxmsp.lib"); G = hslider("Gain [unit: lin]", 1, 0, 8, 0.01); F = hslider("Freq", 1000, 100, 10000, 1); Q = hslider("Q", 1, 0.01, 100, 0.01); process(x) = peakNotch(x,F,G,Q); faust-0.9.46/examples/Makefile.ladspacompile0000644000175000017500000000101411702130733020733 0ustar orlareyorlareyARCH := ladspa.cpp DEST := ladspadir/ dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) modules := $(addprefix $(DEST), $(dspsrc:%.dsp=%.so)) ###allcpp: $(cppsrc) allmodules: $(modules) ifeq ($(system), Darwin) SHAREDFLAG := -bundle else SHAREDFLAG := -shared endif $(DEST)%.so: $(DEST)%.cpp $(CXX) -I. -Wall $(LIB) -fPIC -DPIC $(SHAREDFLAG) $(CXXFLAGS) -Dmydsp=$(patsubst %.so,%,$(notdir $@)) $< -o $@ $(DEST)%.cpp: %.dsp faust $(VEC) -a $(ARCH) $< -o $@ clean: rm -rf $(DEST) faust-0.9.46/examples/quadecho.dsp0000644000175000017500000000064211702130733016766 0ustar orlareyorlareydeclare name "quadecho"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2007"; //----------------------------------------------- // A 1 second quadriphonic Echo //----------------------------------------------- import("music.lib"); process = vgroup("stereo echo", multi(echo1s, 4)) with{ multi(f,1) = f; multi(f,n) = f,multi(f,n-1); }; faust-0.9.46/examples/spectral_level.dsp0000644000175000017500000000024711702130733020202 0ustar orlareyorlarey// Spectrum analyzer fl = library("filter.lib"); BandsPerOctave = 3; // third-octave filter bank process = fl.mth_octave_spectral_level_demo(BandsPerOctave) <: _,_; faust-0.9.46/examples/freeverb.dsp0000644000175000017500000000536711702130733017006 0ustar orlareyorlareydeclare name "freeverb"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; declare reference "https://ccrma.stanford.edu/~jos/pasp/Freeverb.html"; //====================================================== // // Freeverb // Faster version using fixed delays (20% gain) // //====================================================== // Constant Parameters //-------------------- fixedgain = 0.015; scalewet = 3.0; scaledry = 2.0; scaledamp = 0.4; scaleroom = 0.28; offsetroom = 0.7; initialroom = 0.5; initialdamp = 0.5; initialwet = 1.0/scalewet; initialdry = 0; initialwidth= 1.0; initialmode = 0.0; freezemode = 0.5; stereospread= 23; allpassfeed = 0.5; // Filter Parametres //------------------ combtuningL1 = 1116; combtuningL2 = 1188; combtuningL3 = 1277; combtuningL4 = 1356; combtuningL5 = 1422; combtuningL6 = 1491; combtuningL7 = 1557; combtuningL8 = 1617; allpasstuningL1 = 556; allpasstuningL2 = 441; allpasstuningL3 = 341; allpasstuningL4 = 225; // Control Sliders //-------------------- // Damp : filtrage des aigus des echos (surtout actif pour des grandes valeurs de RoomSize) // RoomSize : taille de la piece // Dry : signal original // Wet : signal avec reverbration dampSlider = hslider("Damp",0.5, 0, 1, 0.025)*scaledamp; roomsizeSlider = hslider("RoomSize", 0.8, 0, 1, 0.025)*scaleroom + offsetroom; wetSlider = hslider("Wet", 0.8, 0, 1, 0.025); drySlider = hslider("Dry", 0, 0, 1, 0.025); combfeed = roomsizeSlider; // Comb and Allpass filters //------------------------- allpass(dt,fb) = (_,_ <: (*(fb),_:+:@(dt)), -) ~ _ : (!,_); comb(dt, fb, damp) = (+:@(dt)) ~ (*(1-damp) : (+ ~ *(damp)) : *(fb)); // Reverb components //------------------ monoReverb(fb1, fb2, damp, spread) = _ <: comb(combtuningL1+spread, fb1, damp), comb(combtuningL2+spread, fb1, damp), comb(combtuningL3+spread, fb1, damp), comb(combtuningL4+spread, fb1, damp), comb(combtuningL5+spread, fb1, damp), comb(combtuningL6+spread, fb1, damp), comb(combtuningL7+spread, fb1, damp), comb(combtuningL8+spread, fb1, damp) +> allpass (allpasstuningL1+spread, fb2) : allpass (allpasstuningL2+spread, fb2) : allpass (allpasstuningL3+spread, fb2) : allpass (allpasstuningL4+spread, fb2) ; stereoReverb(fb1, fb2, damp, spread) = + <: monoReverb(fb1, fb2, damp, 0), monoReverb(fb1, fb2, damp, spread); // fxctrl : add an input gain and a wet-dry control to a stereo FX //---------------------------------------------------------------- fxctrl(g,w,Fx) = _,_ <: (*(g),*(g) : Fx : *(w),*(w)), *(1-w), *(1-w) +> _,_; // Freeverb //--------- freeverb = vgroup("Freeverb", fxctrl(fixedgain, wetSlider, stereoReverb(combfeed, allpassfeed, dampSlider, stereospread))); process = freeverb; faust-0.9.46/examples/smoothdelay.dsp0000644000175000017500000000145611702130733017531 0ustar orlareyorlareydeclare name "SmoothDelay"; declare author "Yann Orlarey"; declare copyright "Grame"; declare version "1.0"; declare license "STK-4.3"; //--------------------------process---------------------------- // // A stereo smooth delay with a feedback control // // This example shows how to use sdelay, a delay that doesn't // click and doesn't transpose when the delay time is changed //------------------------------------------------------------- import("music.lib"); process = par(i, 2, voice) with { voice = (+ : sdelay(N, interp, dtime)) ~ *(fback); N = int(2^19); interp = hslider("interpolation[unit:ms][style:knob]",10,1,100,0.1)*SR/1000.0; dtime = hslider("delay[unit:ms][style:knob]", 0, 0, 5000, 0.1)*SR/1000.0; fback = hslider("feedback[style:knob]",0,0,100,0.1)/100.0; }; faust-0.9.46/examples/Makefile.csound0000644000175000017500000000205311702130733017415 0ustar orlareyorlarey ###-------------------------------------------- ### adjust flags to the system ### system := $(shell uname -s) ifeq ($(system), Darwin) LIB := -I/Library/Frameworks/CsoundLib.framework/Headers -I/usr/local/include -framework CsoundLib -L/usr/local/lib -dynamiclib -arch i386 else #LIB := -I/usr/local/include -lsndfile -lcsound -shared LIB := -I/usr/include/csound -shared -fPIC endif ###For Windows with gcc/mingw:(if headers in /usr/local/include and libs in /usr/local/lib) ###g++ -O2 -shared -o myopcode.dylib myopcode.cpp -DOPCODE_NAME=myopcode -I/usr/local/include -lsndfile -lcsound32 ###-------------------------------------------- ### Build csound opcodes on Darwin or Linux (fx.dsp -> fx.cpp -> fx.dylib) ### dspsrc := $(wildcard *.dsp) ##cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) opcodes := $(addprefix $(DEST), $(dspsrc:.dsp=.dylib)) all : $(opcodes) $(DEST)%.dylib : %.dsp faust $(VEC) -uim -a csound.cpp $< -o $@.cpp $(CXX) -O3 $(CXXFLAGS) $(LIB) -DOPCODE_NAME=$(notdir $(@:.dylib=)) $@.cpp -o $@ clean : rm -f $(DEST) faust-0.9.46/examples/spat.dsp0000644000175000017500000000312211702130733016140 0ustar orlareyorlareydeclare name "spat"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //========================================================== // // GMEM SPAT // implementation of L. Pottier Spatializer // //========================================================== //------------------------------------------------------ // Volume d'une voie de sortie //------------------------------------------------------ // i = numero de voie (entre 0 et n-1) // n = nombre total de voies // a = angle de la source (entre 0 et 1) // d = distance de la source (entre 0 et 1) //------------------------------------------------------ scaler(i,n,a,d) = sqrt(max(0.0, 1.0 - abs( fmod(a+0.5+float(n-i)/n, 1.0) - 0.5 ) * (n*d))) * (d/2.0+0.5); //------------------------------------------------------ // spatialisateur a N sorties // n = nombre de sorties // a = angle de la source (entre 0 et 1) // d = distance de la source (entre 0 et 1) // // utilise le constructeur parametrique : par(i,n,E(i)) // qui met en parallele n expressions E(0), E(1), ...E(n-1) //------------------------------------------------------ smooth(c) = *(1-c) : +~*(c); spat(n,a,d) = _ <: par(i, n, *( scaler(i, n, a, d) : smooth(0.9999) )); //------------------------------------------------------ // EXEMPLE : une entree mono spatialisee sur 8 sorties //------------------------------------------------------ angle = hslider("angle", 0.0, 0, 1, 0.01); distance = hslider("distance", 0.5, 0, 1, 0.01); process = vgroup("Spatializer 1x8", spat(8, angle, distance)); faust-0.9.46/examples/lowcut.dsp0000644000175000017500000000247511702130733016520 0ustar orlareyorlareydeclare name "lowcut"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //------------------------------------------------------------------ // DAFX, Digital Audio Effects (Wiley ed.) // chapter 2 : filters // section 2.3 : Equalizers // page 53 : second order shelving filter design //------------------------------------------------------------------ import("music.lib"); //------------------- low-frequency shelving cut (table 2.3) -------------------- V0(g) = pow(10,g/-20.0); K(fc) = tan(PI*fc/SR); square(x) = x*x; denom(fc,g) = 1 + sqrt(2*V0(g))*K(fc) + V0(g)*square(K(fc)); lfcut(fc, g) = TF2( (1 + sqrt(2)*K(fc) + square(K(fc))) / denom(fc,g), 2 * (square(K(fc)) - 1) / denom(fc,g), (1 - sqrt(2)*K(fc) + square(K(fc))) / denom(fc,g), 2 * (V0(g)*square(K(fc)) - 1) / denom(fc,g), (1 - sqrt(2*V0(g))*K(fc) + V0(g)*square(K(fc))) / denom(fc,g) ); //------------------------------ User Interface ----------------------------------- freq = hslider("freq [unit:Hz][style:knob]", 100, 20, 5000, 1); att = hslider("attenuation [unit:dB][style:knob]", 0, -96, 10, 0.1); //----------------------------------- Process ------------------------------------- process = vgroup("low-freq shelving cut", lfcut(freq,att)); faust-0.9.46/examples/osc.dsp0000644000175000017500000000077411702130733015767 0ustar orlareyorlareydeclare name "osc"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2009"; //----------------------------------------------- // Sinusoidal Oscillator //----------------------------------------------- import("music.lib"); smooth(c) = *(1-c) : +~*(c); vol = hslider("volume [unit:dB]", 0, -96, 0, 0.1) : db2linear : smooth(0.999) ; freq = hslider("freq [unit:Hz]", 1000, 20, 24000, 1); process = vgroup("Oscillator", osc(freq) * vol); faust-0.9.46/examples/oscio.maxpat0000644000175000017500000003662011702130733017022 0ustar orlareyorlarey{ "patcher" : { "fileversion" : 1, "rect" : [ 25.0, 96.0, 288.0, 210.0 ], "bglocked" : 0, "defrect" : [ 25.0, 96.0, 288.0, 210.0 ], "openrect" : [ 85.0, 44.0, 286.0, 210.0 ], "openinpresentation" : 1, "default_fontsize" : 12.0, "default_fontface" : 0, "default_fontname" : "Arial", "gridonopen" : 0, "gridsize" : [ 15.0, 15.0 ], "gridsnaponopen" : 0, "toolbarvisible" : 1, "boxanimatetime" : 200, "imprint" : 0, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "boxes" : [ { "box" : { "maxclass" : "comment", "text" : "Print", "patching_rect" : [ 14.0, 79.0, 150.0, 20.0 ], "numoutlets" : 0, "presentation" : 1, "id" : "obj-16", "fontname" : "Arial", "fontsize" : 12.0, "presentation_rect" : [ 19.0, 80.0, 39.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "gswitch2", "patching_rect" : [ 165.0, 92.0, 39.0, 32.0 ], "numoutlets" : 2, "id" : "obj-15", "outlettype" : [ "", "" ], "numinlets" : 2 } } , { "box" : { "maxclass" : "toggle", "patching_rect" : [ 165.0, 64.0, 20.0, 20.0 ], "numoutlets" : 1, "presentation" : 1, "id" : "obj-11", "outlettype" : [ "int" ], "presentation_rect" : [ 27.0, 104.0, 20.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "comment", "text" : "Send signal messages to any running faust program. \nDisplays the output in Max window.", "linecount" : 4, "presentation_linecount" : 4, "patching_rect" : [ 392.0, 361.0, 153.0, 62.0 ], "numoutlets" : 0, "presentation" : 1, "id" : "obj-10", "fontname" : "Arial", "fontsize" : 12.0, "presentation_rect" : [ 120.0, 89.0, 159.0, 62.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "comment", "text" : "ms", "patching_rect" : [ 121.0, 173.0, 150.0, 20.0 ], "numoutlets" : 0, "presentation" : 1, "id" : "obj-7", "fontname" : "Arial", "fontsize" : 12.0, "presentation_rect" : [ 118.0, 173.0, 26.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "comment", "text" : "Speed", "patching_rect" : [ 399.0, 302.0, 150.0, 20.0 ], "numoutlets" : 0, "presentation" : 1, "id" : "obj-6", "fontname" : "Arial", "fontsize" : 12.0, "presentation_rect" : [ 69.0, 3.0, 54.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "comment", "text" : "ON/OFF", "patching_rect" : [ 396.0, 276.0, 150.0, 20.0 ], "numoutlets" : 0, "presentation" : 1, "id" : "obj-4", "fontname" : "Arial", "fontsize" : 12.0, "presentation_rect" : [ 10.0, 4.0, 54.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "comment", "text" : "100", "patching_rect" : [ 316.0, 9.0, 52.0, 20.0 ], "numoutlets" : 0, "presentation" : 1, "id" : "obj-36", "fontname" : "Arial", "fontsize" : 12.0, "presentation_rect" : [ 223.0, 37.0, 34.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "comment", "text" : "50", "patching_rect" : [ 276.0, 9.0, 35.0, 20.0 ], "numoutlets" : 0, "presentation" : 1, "id" : "obj-35", "fontname" : "Arial", "fontsize" : 12.0, "presentation_rect" : [ 187.0, 37.0, 28.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "comment", "text" : "10", "patching_rect" : [ 226.0, 9.0, 39.0, 20.0 ], "numoutlets" : 0, "presentation" : 1, "id" : "obj-33", "fontname" : "Arial", "fontsize" : 12.0, "presentation_rect" : [ 151.0, 37.0, 28.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "comment", "text" : "1", "patching_rect" : [ 165.0, 9.0, 43.0, 20.0 ], "numoutlets" : 0, "presentation" : 1, "id" : "obj-20", "fontname" : "Arial", "fontsize" : 12.0, "presentation_rect" : [ 124.0, 37.0, 28.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "comment", "text" : "Steps", "patching_rect" : [ 411.0, 6.0, 150.0, 20.0 ], "numoutlets" : 0, "presentation" : 1, "id" : "obj-13", "fontname" : "Arial", "fontsize" : 12.0, "presentation_rect" : [ 162.0, 11.0, 48.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "button", "patching_rect" : [ 555.0, 42.0, 20.0, 20.0 ], "numoutlets" : 1, "presentation" : 1, "id" : "obj-24", "outlettype" : [ "bang" ], "presentation_rect" : [ 228.0, 56.0, 20.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "newobj", "text" : "uzi 100", "patching_rect" : [ 555.0, 81.0, 48.0, 20.0 ], "numoutlets" : 3, "id" : "obj-25", "fontname" : "Arial", "outlettype" : [ "bang", "bang", "int" ], "fontsize" : 11.595187, "numinlets" : 2 } } , { "box" : { "maxclass" : "button", "patching_rect" : [ 411.0, 42.0, 20.0, 20.0 ], "numoutlets" : 1, "presentation" : 1, "id" : "obj-57", "outlettype" : [ "bang" ], "presentation_rect" : [ 124.0, 56.0, 20.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "message", "text" : "/* 1.", "patching_rect" : [ 411.0, 147.0, 32.5, 18.0 ], "numoutlets" : 1, "id" : "obj-56", "fontname" : "Arial", "outlettype" : [ "" ], "fontsize" : 12.0, "numinlets" : 2 } } , { "box" : { "maxclass" : "newobj", "text" : "* 1.", "patching_rect" : [ 123.0, 172.0, 32.5, 20.0 ], "numoutlets" : 1, "id" : "obj-53", "fontname" : "Arial", "outlettype" : [ "float" ], "fontsize" : 12.0, "numinlets" : 2 } } , { "box" : { "maxclass" : "slider", "patching_rect" : [ 125.0, 15.0, 20.0, 140.0 ], "numoutlets" : 1, "presentation" : 1, "id" : "obj-52", "floatoutput" : 1, "outlettype" : [ "" ], "size" : 9.0, "presentation_rect" : [ 77.0, 23.0, 20.0, 140.0 ], "numinlets" : 1, "min" : 1.0 } } , { "box" : { "maxclass" : "number", "patching_rect" : [ 124.0, 210.0, 50.0, 20.0 ], "numoutlets" : 2, "presentation" : 1, "id" : "obj-50", "fontname" : "Arial", "outlettype" : [ "int", "bang" ], "fontsize" : 12.0, "presentation_rect" : [ 64.0, 173.0, 50.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "button", "patching_rect" : [ 497.0, 42.0, 20.0, 20.0 ], "numoutlets" : 1, "presentation" : 1, "id" : "obj-26", "outlettype" : [ "bang" ], "presentation_rect" : [ 188.0, 56.0, 20.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "newobj", "text" : "uzi 50", "patching_rect" : [ 497.0, 81.0, 46.0, 20.0 ], "numoutlets" : 3, "id" : "obj-29", "fontname" : "Arial", "outlettype" : [ "bang", "bang", "int" ], "fontsize" : 11.595187, "numinlets" : 2 } } , { "box" : { "maxclass" : "newobj", "text" : "s _faust", "patching_rect" : [ 411.0, 187.0, 51.0, 20.0 ], "numoutlets" : 0, "id" : "obj-23", "fontname" : "Arial", "fontsize" : 11.595187, "numinlets" : 1 } } , { "box" : { "maxclass" : "button", "patching_rect" : [ 445.0, 42.0, 20.0, 20.0 ], "numoutlets" : 1, "presentation" : 1, "id" : "obj-19", "outlettype" : [ "bang" ], "presentation_rect" : [ 151.0, 56.0, 20.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "newobj", "text" : "uzi 10", "patching_rect" : [ 445.0, 81.0, 46.0, 20.0 ], "numoutlets" : 3, "id" : "obj-8", "fontname" : "Arial", "outlettype" : [ "bang", "bang", "int" ], "fontsize" : 11.595187, "numinlets" : 2 } } , { "box" : { "maxclass" : "newobj", "text" : "print FAUST", "patching_rect" : [ 185.0, 138.0, 74.0, 20.0 ], "numoutlets" : 0, "id" : "obj-1", "fontname" : "Arial", "fontsize" : 11.595187, "numinlets" : 1 } } , { "box" : { "maxclass" : "newobj", "text" : "s _faust", "patching_rect" : [ 32.0, 204.0, 53.0, 20.0 ], "numoutlets" : 0, "id" : "obj-12", "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 1 } } , { "box" : { "maxclass" : "message", "text" : "/* 0.1", "patching_rect" : [ 32.0, 163.0, 39.0, 18.0 ], "numoutlets" : 1, "id" : "obj-5", "fontname" : "Arial", "outlettype" : [ "" ], "fontsize" : 12.0, "numinlets" : 2 } } , { "box" : { "maxclass" : "newobj", "text" : "metro 10", "patching_rect" : [ 32.0, 127.0, 58.0, 20.0 ], "numoutlets" : 1, "id" : "obj-3", "fontname" : "Arial", "outlettype" : [ "bang" ], "fontsize" : 12.0, "numinlets" : 2 } } , { "box" : { "maxclass" : "toggle", "patching_rect" : [ 32.0, 90.0, 20.0, 20.0 ], "numoutlets" : 1, "presentation" : 1, "id" : "obj-2", "outlettype" : [ "int" ], "presentation_rect" : [ 25.0, 25.0, 20.0, 20.0 ], "numinlets" : 1 } } , { "box" : { "maxclass" : "message", "text" : "host 194.5.49.255", "patching_rect" : [ 33.0, 311.0, 107.0, 18.0 ], "numoutlets" : 1, "id" : "obj-18", "fontname" : "Arial", "outlettype" : [ "" ], "fontsize" : 12.0, "numinlets" : 2 } } , { "box" : { "maxclass" : "message", "text" : "host 127.0.0.1", "patching_rect" : [ 54.0, 334.0, 87.0, 18.0 ], "numoutlets" : 1, "id" : "obj-17", "fontname" : "Arial", "outlettype" : [ "" ], "fontsize" : 12.0, "numinlets" : 2 } } , { "box" : { "maxclass" : "comment", "text" : "OSC communication", "patching_rect" : [ 32.0, 268.0, 189.0, 23.0 ], "numoutlets" : 0, "id" : "obj-9", "fontname" : "Arial", "fontface" : 1, "fontsize" : 14.0, "numinlets" : 1 } } , { "box" : { "maxclass" : "newobj", "text" : "print Error", "patching_rect" : [ 239.0, 376.0, 64.0, 20.0 ], "numoutlets" : 0, "id" : "obj-14", "fontname" : "Arial", "fontsize" : 12.0, "numinlets" : 1 } } , { "box" : { "maxclass" : "newobj", "text" : "udpreceive 5512", "patching_rect" : [ 239.0, 348.0, 99.0, 20.0 ], "numoutlets" : 1, "id" : "obj-28", "fontname" : "Arial", "outlettype" : [ "" ], "fontsize" : 12.0, "numinlets" : 1 } } , { "box" : { "maxclass" : "newobj", "text" : "udpreceive 5511", "patching_rect" : [ 186.0, 59.0, 98.0, 20.0 ], "numoutlets" : 1, "id" : "obj-34", "fontname" : "Arial", "outlettype" : [ "" ], "fontsize" : 12.0, "numinlets" : 1 } } , { "box" : { "maxclass" : "newobj", "text" : "r _faust", "patching_rect" : [ 161.0, 310.0, 51.0, 20.0 ], "numoutlets" : 1, "id" : "obj-37", "fontname" : "Arial", "outlettype" : [ "" ], "fontsize" : 12.0, "numinlets" : 0 } } , { "box" : { "maxclass" : "newobj", "text" : "udpsend 127.0.0.1 5510", "patching_rect" : [ 91.0, 376.0, 136.0, 20.0 ], "numoutlets" : 0, "id" : "obj-38", "fontname" : "Arial", "fontsize" : 11.595187, "numinlets" : 1 } } , { "box" : { "maxclass" : "panel", "patching_rect" : [ 17.0, 258.0, 334.0, 155.0 ], "numoutlets" : 0, "id" : "obj-47", "bgcolor" : [ 0.878431, 0.94902, 0.839216, 1.0 ], "numinlets" : 1 } } ], "lines" : [ { "patchline" : { "source" : [ "obj-15", 1 ], "destination" : [ "obj-1", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-34", 0 ], "destination" : [ "obj-15", 1 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-11", 0 ], "destination" : [ "obj-15", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-17", 0 ], "destination" : [ "obj-38", 0 ], "hidden" : 0, "midpoints" : [ 63.5, 365.5, 100.5, 365.5 ] } } , { "patchline" : { "source" : [ "obj-18", 0 ], "destination" : [ "obj-38", 0 ], "hidden" : 0, "midpoints" : [ 42.5, 360.0, 100.5, 360.0 ] } } , { "patchline" : { "source" : [ "obj-19", 0 ], "destination" : [ "obj-8", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-2", 0 ], "destination" : [ "obj-3", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-24", 0 ], "destination" : [ "obj-25", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-25", 2 ], "destination" : [ "obj-56", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-26", 0 ], "destination" : [ "obj-29", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-28", 0 ], "destination" : [ "obj-14", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-29", 2 ], "destination" : [ "obj-56", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-3", 0 ], "destination" : [ "obj-5", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-37", 0 ], "destination" : [ "obj-38", 0 ], "hidden" : 0, "midpoints" : [ 170.5, 359.0, 100.5, 359.0 ] } } , { "patchline" : { "source" : [ "obj-5", 0 ], "destination" : [ "obj-12", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-50", 0 ], "destination" : [ "obj-3", 1 ], "hidden" : 0, "midpoints" : [ 133.5, 239.0, 107.0, 239.0, 107.0, 117.0, 80.5, 117.0 ] } } , { "patchline" : { "source" : [ "obj-52", 0 ], "destination" : [ "obj-53", 1 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-52", 0 ], "destination" : [ "obj-53", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-53", 0 ], "destination" : [ "obj-50", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-56", 0 ], "destination" : [ "obj-23", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-57", 0 ], "destination" : [ "obj-56", 0 ], "hidden" : 0, "midpoints" : [ ] } } , { "patchline" : { "source" : [ "obj-8", 2 ], "destination" : [ "obj-56", 0 ], "hidden" : 0, "midpoints" : [ ] } } ] } } faust-0.9.46/examples/lfboost.dsp0000644000175000017500000000233511702130733016646 0ustar orlareyorlareydeclare name "lfboost"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //------------------------------------------------------------------ // DAFX, Digital Audio Effects (Wiley ed.) // chapter 2 : filters // section 2.3 : Equalizers // page 53 : second order shelving filter design //------------------------------------------------------------------ import("math.lib"); import("music.lib"); //----------------------low frequency boost filter ------------------------------- // lfboost(F,G) // F : frequency (in Hz) // G : gain (in dB) // //-------------------------------------------------------------------------------- lfboost(F,G) = TF2( (1 + sqrt(2*V)*K + V*K*K) / denom, 2 * (V*K*K - 1) / denom, (1 - sqrt(2*V)*K + V*K*K) / denom, 2 * (K*K - 1) / denom, (1 - sqrt(2)*K + K*K) / denom ) with { V = db2linear(G); K = tan(PI*F/SR); denom = 1 + sqrt(2)*K + K*K; }; //====================low frequency boost process =============================== process = vgroup("lowboost", lfboost( nentry("freq [unit:Hz][style:knob]", 100, 20, 150, 1), vslider("gain [unit:dB]", 0, -20, 20, 0.1) ) ); faust-0.9.46/examples/oscio.pd0000644000175000017500000000232111702130733016122 0ustar orlareyorlarey#N canvas 179 36 415 457 10; #X obj 202 336 prepend send; #X obj 202 365 sendOSC; #X obj 43 276 loadbang; #X msg 43 308 connect localhost 5510; #X obj 177 233 dumpOSC 5511; #X obj 177 270 print FAUST; #X obj 265 232 dumpOSC 5512; #X obj 265 269 print Error; #X obj 202 306 r _faust; #X obj 88 11 vsl 15 128 0 100 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X floatatom 88 150 5 0 0 0 - - -; #X obj 44 174 metro 10; #X text 124 150 ms; #X obj 44 109 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 33 87 ON/OFF; #X msg 44 198 /* 0.1; #X obj 43 225 s _faust; #X obj 222 58 until; #X msg 222 15 10; #X msg 262 16 50; #X msg 302 16 100; #X msg 183 15 1; #X msg 221 88 /* 0.1; #X obj 220 115 s _faust; #X text 77 -10 Speed; #X text 180 -9 Step by step; #X text 35 -46 Send signal messages to any running faust program. Displays the ouput in Pd window.; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 4 0 5 0; #X connect 6 0 7 0; #X connect 8 0 0 0; #X connect 9 0 10 0; #X connect 10 0 11 1; #X connect 11 0 15 0; #X connect 13 0 11 0; #X connect 15 0 16 0; #X connect 17 0 22 0; #X connect 18 0 17 0; #X connect 19 0 17 0; #X connect 20 0 17 0; #X connect 21 0 17 0; #X connect 22 0 23 0; faust-0.9.46/examples/reverb_tester.dsp0000644000175000017500000000021011702130733020037 0ustar orlareyorlareyprocess(x,y) = component("effect.lib").stereo_reverb_tester(gui_group,x,y) with { gui_group(x) = hgroup("Stereo Reverb Tester",x); }; faust-0.9.46/examples/gate_compressor.dsp0000644000175000017500000000055511702130733020374 0ustar orlareyorlareyol = library("oscillator.lib"); el = library("effect.lib"); fl = library("filter.lib"); process = // ol.sawtooth_demo <: // el.gate_demo : el.compressor_demo :> fl.spectral_level_demo <: _,_; vgroup("[1]", ol.sawtooth_demo) <: vgroup("[2]", el.gate_demo) : vgroup("[3]", el.compressor_demo) :> vgroup("[4]", fl.spectral_level_demo) <: _,_; faust-0.9.46/examples/APF.dsp0000644000175000017500000000026411702130733015603 0ustar orlareyorlareyimport("maxmsp.lib"); G = hslider("Gain [unit:dB]", 0, -10, 10, 0.1); F = hslider("Freq", 1000, 100, 10000, 1); Q = hslider("Q", 1, 0.01, 100, 0.01); process(x) = APF(x,F,G,Q); faust-0.9.46/examples/capture.dsp0000644000175000017500000000150311702130733016635 0ustar orlareyorlareydeclare name "capture"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //------------------------------------------------- // Capture : record up to 8s of sound and // playback the recorded sound in loop //------------------------------------------------- import("music.lib"); B = button("Capture"); // Capture sound while pressed I = int(B); // convert button signal from float to integer R = (I-I') <= 0; // Reset capture when button is pressed D = (+(I):*(R))~_; // Compute capture duration while button is pressed: 0..NNNN0..MMM capture = *(B) : (+ : delay(8*65536, D-1)) ~ *(1.0-B) ; smooth(c) = *(1-c) : +~*(c); level = hslider("level (db)", 0, -96, 4, 0.1) : db2linear : smooth(0.999); process = vgroup( "Audio Capture", capture : *(level) ) ; faust-0.9.46/examples/tester.dsp0000644000175000017500000000200011702130733016471 0ustar orlareyorlareydeclare name "tester"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //----------------------------------------------- // Tester : tests louspeakers // Send a test signal( sine, noise, pink) to one // of 8 loudspeakers //----------------------------------------------- import("music.lib"); pink = f : (+ ~ g) with { f(x) = 0.04957526213389*x - 0.06305581334498*x' + 0.01483220320740*x''; g(x) = 1.80116083982126*x - 0.80257737639225*x'; }; // User interface //---------------- smooth(c) = *(1-c) : +~*(c); vol = hslider("[2] volume [unit:dB]", -96, -96, 0, 1): db2linear : smooth(0.999); freq = hslider("[1] freq [unit:Hz]", 1000, 10, 20000, 1); dest = hslider("[3] destination", 0, 0, 8, 1); testsignal = osci(freq)*checkbox("sine wave") + noise * checkbox("white noise") + pink(noise) * db2linear(20) * checkbox("pink noise"); process = vgroup( "Audio Tester", testsignal*vol <: par(i, 8, *(dest==i)) ); faust-0.9.46/examples/tapiir.dsp0000644000175000017500000000223011702130733016460 0ustar orlareyorlareydeclare name "tapiir"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //====================================================== // // TAPIIR // (from Maarten de Boer's Tapiir) // //====================================================== import("music.lib"); dsize = 524288; // user interface //--------------- tap(n) = vslider("tap %n", 0,0,1,0.1); in(n) = vslider("input %n", 1,0,1,0.1); gain = vslider("gain", 1,0,1,0.1); del = vslider("delay (sec)", 0, 0, 5, 0.01) * SR; // mixer and matrix //----------------------------------------------------------- mixer(taps,lines) = par(i,taps,*(tap(i))), par(i,lines,*(in(i))) :> *(gain); matrix(taps,lines) = ( bus(lines+taps) <: tgroup("", par(i, taps, hgroup("Tap %i", mixer(taps,lines) : delay(dsize,del)))) ) ~ bus(taps); // tapiir //-------- tapiir(taps,lines) = vgroup("Tapiir", bus(lines) <: (matrix(taps,lines), bus(lines)) <: vgroup( "outputs", par( i, lines, hgroup("output %i", mixer(taps,lines)) ) ) ); process = tapiir(6,2); faust-0.9.46/examples/karplus32.dsp0000644000175000017500000000237411702130733017027 0ustar orlareyorlareydeclare name "karplus32"; declare version "1.0"; declare author "Grame"; declare license "BSD"; declare copyright "(c)GRAME 2006"; //----------------------------------------------- // karplus-strong // with 32 resonators in parallel //----------------------------------------------- import("music.lib"); // Excitator //-------- upfront(x) = (x-x') > 0.0; decay(n,x) = x - (x>0)/n; release(n) = + ~ decay(n); trigger(n) = upfront : release(n) : >(0.0) : +(leak); leak = 1.0/65536.0; size = hslider("excitation (samples)", 128, 2, 512, 1); // Resonator //----------------- dur = hslider("duration (samples)", 128, 2, 512, 1); att = hslider("attenuation", 0.1, 0, 1, 0.01); average(x) = (x+x')/2; resonator(d, a) = (+ : delay(4096, d-1.5)) ~ (average : *(1.0-a)) ; // Polyphony //----------------- detune = hslider("detune", 32, 0, 512, 1); polyphony = hslider("polyphony", 1, 0, 32, 1); output = hslider("output volume", 0.5, 0, 1, 0.1); process = vgroup("karplus32", vgroup("noise generator", noise * hslider("level", 0.5, 0, 1, 0.1)) : vgroup("excitator", *(button("play"): trigger(size))) <: vgroup("resonator x32", par(i,32, resonator(dur+i*detune, att) * (polyphony > i))) :> *(output),*(output) ); faust-0.9.46/examples/Makefile.vstcompile0000644000175000017500000000222011702130733020303 0ustar orlareyorlareydspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) appl := $(addprefix $(DEST), $(dspsrc:.dsp=$(EXT))) # Setup this variable to access the VST SDK files vst_sdk := "/Volumes/Document1/Developpement/ProjectsCVS/JackCVS/JackOSX/jackosx/jackplugins/JACK-ASinsert/VST/VSTSDK" # Setup this variable with the location for the compiled VST plug-ins install_plug_ins := "/Library/Audio/Plug-Ins/VST" all : $(appl) $(DEST)% : %.dsp install -d $@ cp -r $(vst_sdk) $@ cp -r /usr/local/lib/faust/VST/* $@ faust $(VEC) -a $(ARCH) $< -o $@/vst-output.cpp mv $@/vst-output.cpp $@/$(<:.dsp=.cpp) sed -e 's/vst-output.cpp/$(<:.dsp=.cpp)/' $@/VST.xcode/project.pbxproj > $@/VST.xcode/new_project.pbxproj && mv $@/VST.xcode/new_project.pbxproj $@/VST.xcode/project.pbxproj sed -e 's/XXXX/$(<:.dsp=)/' $@/Info.plist > $@/new_Info.plist && mv $@/new_Info.plist $@/Info.plist xcodebuild -project $@/VST.xcode clean xcodebuild -project $@/VST.xcode mv $@/build/FaustVST.vst $@/build/$(<:.dsp=.vst) rm -r $@/build/VST.build install -d $(install_plug_ins) cp -r $@/build/$(<:.dsp=.vst) $(install_plug_ins) clean : rm -f $(DEST) faust-0.9.46/examples/notch.dsp0000644000175000017500000000026611702130733016312 0ustar orlareyorlareyimport("maxmsp.lib"); G = hslider("Gain [unit:dB]", 0, -10, 10, 0.1); F = hslider("Freq", 1000, 100, 10000, 1); Q = hslider("Q", 1, 0.01, 100, 0.01); process(x) = notch(x,F,G,Q); faust-0.9.46/architecture/0000755000175000017500000000000011702130733015327 5ustar orlareyorlareyfaust-0.9.46/architecture/oscio-qt.cpp0000644000175000017500000000752211702130733017577 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include "gui/FUI.h" #include "gui/faustqt.h" #include "gui/OSCUI.h" #include "misc.h" #include "audio/oscdsp.h" /**************************BEGIN USER SECTION **************************/ /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; list GUI::fGuiList; /****************************************************************************** ******************************************************************************* MAIN PLAY THREAD ******************************************************************************* *******************************************************************************/ int main( int argc, char *argv[] ) { char name[256], dst[258]; char rcfilename[256]; float oscio = 0; char* home = getenv("HOME"); snprintf(name, 255, "%s", basename(argv[0])); snprintf(dst, 257, "/%s/", name); snprintf(rcfilename, 255, "%s/.%src", home, name); GUI* interface = new QTGUI(argc, argv); FUI* finterface = new FUI(); DSP.buildUserInterface(interface); DSP.buildUserInterface(finterface); oscdsp osca (dst, argc, argv); OSCUI* oscinterface = new OSCUI(name, argc, argv, &osca); DSP.buildUserInterface(oscinterface); snprintf(dst, 257, "/%s/", oscinterface->getRootName()); osca.setDest (dst); osca.init (name, &DSP); finterface->recallState(rcfilename); osca.start (); oscinterface->run(); interface->run(); osca.stop(); finterface->saveState(rcfilename); delete oscinterface; return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/vst2p4.cpp0000644000175000017500000005543211702130733017206 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2007-2011 Remy Muller & Julius Smith All rights reserved. ----------------------------BSD License------------------------------ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Remy Muller or Julius Smith or of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------VST SDK---------------------------------- In order to compile a VST (TM) plugin with this architecture file you will need the proprietary VST SDK from Steinberg. Please check the corresponding license. ************************************************************************ ************************************************************************/ /******************************************************************** * VST-2.4 wrapper for the FAUST language. * * Usage: faust -a vst2p4.cpp myfaustprog.dsp * * By Julius Smith (http://ccrma.stanford.edu/~jos/), based on * vst.cpp by remy muller remy.muller@ircam.fr * http://www.smartelectronix.com/~mdsp/. * Essentially, vst.cpp was edited to look more like the "again" * programming sample that comes with the VST-2.4 SDK from Steinberg. * * NOTES: * Relies on automatically generated slider GUI for VST plugins. * - Horizontal and vertical sliders mapped to "vstSlider" * - Numeric Entries similarly converted to "vstSlider" * - No support for bar graphs or additional numeric and text displays * - Tested on the Muse Receptor Pro 1.0, System Version 1.6.20070717, * using Visual C++ 2008 Express Edition * (part of the Microsoft Visual Studio 2008, Beta 2) * - Reference: * http://ccrma.stanford.edu/realsimple/faust/Generating_VST_Plugin_Faust.html * * FAUST * Copyright (C) 2003-2007 GRAME, Centre National de Creation Musicale * http://www.grame.fr/ * ********************************************************************/ #include #include #include #include #include #include #include //#include #include #include #include #include #include #include #include using namespace std ; // There is a bug with powf() when cross compiling with mingw // the following macro avoid the problem #ifdef WIN32 #define powf(x,y) pow(x,y) #define expf(x) exp(x) #endif // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif struct Meta : std::map { void declare(const char* key, const char* value) { (*this)[key] = value; } }; //------------------------------------------------------------------- // Generic min and max using c++ inline //------------------------------------------------------------------- inline int max (unsigned int a, unsigned int b) { return (a>b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a T abs (T a) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<> /****************************************************************************** ******************************************************************************* * * USER INTERFACE * ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void run() {}; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /****************************************************************************** ******************************************************************************* * * FAUST DSP * ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // Base dsp class for this architecture //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ /****************************************************************************** * * VST wrapper * ******************************************************************************/ #include "audioeffectx.h" class vstUI; class Faust : public AudioEffectX { private: mydsp* dsp; vstUI* dspUI; char programName[kVstMaxProgNameLen + 1]; Meta meta; public: Faust(audioMasterCallback audioMaster, mydsp* dspi, vstUI* dspUIi); virtual ~Faust(); virtual void processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames); virtual void setProgramName(char *name); virtual void getProgramName(char *name); virtual void setParameter(VstInt32 index, float value); virtual float getParameter(VstInt32 index); virtual void getParameterLabel(VstInt32 index, char *label); virtual void getParameterDisplay(VstInt32 index, char *text); virtual void getParameterName(VstInt32 index, char *text); virtual void setSampleRate(float sampleRate); virtual bool getEffectName (char* name); virtual bool getVendorString (char* text); virtual bool getProductString (char* text); virtual VstInt32 getVendorVersion (); virtual bool getInputProperties (VstInt32 index, VstPinProperties* properties); virtual bool getOutputProperties (VstInt32 index, VstPinProperties* properties); }; /*--------------------------------------------------------------------------*/ class vstUIObject { protected: string fLabel; float* fZone; float range(float min, float max, float val) { // VST parameters are normalized in the range [0;1] val = min + val * (max - min); return (val < min) ? min : (val > max) ? max : val; } public: vstUIObject(const char* label, float* zone):fLabel(label),fZone(zone) {} virtual ~vstUIObject() {} virtual void GetName(char *text){std::strcpy(text,fLabel.c_str());} virtual void SetValue(double f) {*fZone = range(0.0f,1.0f,(float)f);} virtual float GetValue() {return *fZone;} virtual void GetDisplay(char *text){std::sprintf(text,"%f",*fZone);} virtual long GetID() { /* returns the sum of all the ASCII characters contained in the parameter's label */ unsigned int i; long acc; for(i=0,acc = 0;i0.5f)?1.0f:0.0f;} virtual void GetDisplay(char *text){(*fZone>0.5f)? std::strcpy(text,"ON"): std::strcpy(text,"OFF");} }; /*--------------------------------------------------------------------------*/ class vstCheckButton : public vstUIObject { public: vstCheckButton(const char* label, float* zone):vstUIObject(label,zone) {} virtual ~vstCheckButton() {} virtual float GetValue() {return *fZone;} virtual void SetValue(double f) {*fZone = (f>0.5f)?1.0f:0.0f;} virtual void GetDisplay(char *text){(*fZone>0.5f)? std::strcpy(text,"ON"): std::strcpy(text,"OFF");} }; /*--------------------------------------------------------------------------*/ class vstButton : public vstUIObject { public: vstButton(const char* label, float* zone):vstUIObject(label,zone) {} virtual ~vstButton() {} virtual float GetValue() {return *fZone;} virtual void SetValue(double f) {*fZone = (f>0.5f)?1.0f:0.0f;} virtual void GetDisplay(char *text){(*fZone>0.5f)? std::strcpy(text,"ON"): std::strcpy(text,"OFF");} }; /*--------------------------------------------------------------------------*/ class vstSlider : public vstUIObject{ private: float fInit; float fMin; float fMax; float fStep; public: vstSlider(const char* label, float* zone, float init, float min, float max, float step) :vstUIObject(label,zone), fInit(init), fMin(min), fMax(max),fStep(step) {} virtual ~vstSlider() {} virtual float GetValue() {return (*fZone-fMin)/(fMax-fMin);} // normalize virtual void SetValue(double f) {*fZone = range(fMin,fMax,(float)f);} // expand }; /*--------------------------------------------------------------------------*/ class vstUI : public UI { private: vector fUITable; public: vstUI(){} virtual ~vstUI() { for (vector::iterator iter = fUITable.begin(); iter != fUITable.end(); iter++) delete *iter; } void addButton(const char* label, float* zone) {fUITable.push_back(new vstButton(label, zone));} void addToggleButton(const char* label, float* zone) {fUITable.push_back(new vstToggleButton(label, zone));} void addCheckButton(const char* label, float* zone) {fUITable.push_back(new vstCheckButton(label, zone));} void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { fUITable.push_back(new vstSlider(label, zone, init, min, max, step)); } void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { fUITable.push_back(new vstSlider(label, zone, init, min, max, step)); } void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { /* Number entries converted to horizontal sliders */ fUITable.push_back(new vstSlider(label, zone, init, min, max, step)); } void openFrameBox(const char* label) {} void openTabBox(const char* label) {} void openHorizontalBox(const char* label) {} void openVerticalBox(const char* label) {} void closeBox() {} void SetValue(VstInt32 index, double f) {assert(indexSetValue(f);} float GetValue(VstInt32 index) {assert(indexGetValue();} void GetDisplay(VstInt32 index, char *text) {assert(indexGetDisplay(text);} void GetName(VstInt32 index, char *text) {assert(indexGetName(text);} long GetNumParams() {return fUITable.size();} long makeID() /* Creates a (unique?)id by summing all the parameter's labels, * then wrapping it in the range [0;maxNumberOfId] and adding * this number to the offset made by the Four Character ID: 'FAUS' */ { const long maxNumberOfId = 128; long baseid = 'FAUS'; long id=0; for(int i=0;iGetID(); return baseid + id % maxNumberOfId; } // To be implemented void addNumDisplay(const char* label, float* zone, int precision){} void addTextDisplay(const char* label, float* zone, char* names[], float min, float max){} void addHorizontalBargraph(const char* label, float* zone, float min, float max){} void addVerticalBargraph(const char* label, float* zone, float min, float max){} }; //----------------------------------------------------------------------------- #define NUM_PROGRAMS 0 AudioEffect* createEffectInstance (audioMasterCallback audioMaster) { // The dsp and its UI need to be allocated now because // AudioEffectX wants the no. parameters available as an instance argument: mydsp* dspi = new mydsp(); vstUI* dspUIi = new vstUI(); dspi->buildUserInterface(dspUIi); return new Faust(audioMaster,dspi,dspUIi); } Faust::Faust(audioMasterCallback audioMaster, mydsp* dspi, vstUI* dspUIi) : AudioEffectX(audioMaster, NUM_PROGRAMS, dspUIi->GetNumParams()) { // Copy the pointers to dsp and dspUI instances and take them over // (we'll also deallocate): dsp = dspi; dspUI = dspUIi; dsp->init(long(getSampleRate())); meta["name"] = "FaustFx"; mydsp::metadata(&meta); setNumInputs(dsp->getNumInputs()); setNumOutputs(dsp->getNumOutputs()); setUniqueID(dspUI->makeID()); canProcessReplacing(); vst_strncpy(programName, "Default", kVstMaxProgNameLen); // default program name } //---------------------------------------------------------------------------- Faust::~Faust() { if (dsp) delete dsp; if (dspUI) delete dspUI; } //------------------------------------------------------------------------------------------------------- void Faust::setProgramName (char* name) { // this template does not use programs yet - just say "Default": vst_strncpy (programName, name, kVstMaxProgNameLen); } //----------------------------------------------------------------------------- void Faust::getProgramName(char *name) { vst_strncpy (name, programName, kVstMaxProgNameLen); } //----------------------------------------------------------------------------- void Faust::setParameter(VstInt32 index, float value) { if(indexSetValue(index,value); } //----------------------------------------------------------------------------- float Faust::getParameter(VstInt32 index) { if(indexGetValue(index); else return 0.0f; } //----------------------------------------------------------------------------- void Faust::getParameterName(VstInt32 index, char *label) { if(indexGetName(index,label); // parameter name, including units else vst_strncpy (label, "IndexOutOfRange", kVstMaxParamStrLen); } //----------------------------------------------------------------------------- void Faust::getParameterDisplay(VstInt32 index, char *text) { if(indexGetDisplay(index,text); // displayed float value as text else vst_strncpy (text, "IndexOutOfRange", kVstMaxParamStrLen); } //----------------------------------------------------------------------------- void Faust::getParameterLabel(VstInt32 index, char *label) { vst_strncpy (label, "", kVstMaxParamStrLen); // parameter units in Name } //----------------------------------------------------------------------------- void Faust::setSampleRate(float sampleRate) { // allways call this AudioEffect::setSampleRate(sampleRate); dsp->init(long(getSampleRate())); } //----------------------------------------------------------------------------------------- bool Faust::getEffectName (char* text) { vst_strncpy (text, meta["name"].c_str(), kVstMaxProductStrLen); return true; } //----------------------------------------------------------------------------------------- bool Faust::getVendorString (char* text) { if (meta.count("author") > 0) { vst_strncpy (text, meta["author"].c_str(), kVstMaxVendorStrLen); return true; } else { return false; } } //----------------------------------------------------------------------------------------- bool Faust::getProductString (char* text) { vst_strncpy (text, meta["name"].c_str(), kVstMaxProductStrLen); return true; } //----------------------------------------------------------------------------------------- VstInt32 Faust::getVendorVersion () { return 1000; } //----------------------------------------------------------------------------- void Faust::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames) { AVOIDDENORMALS; dsp->compute(sampleFrames, inputs, outputs); } //----------------------------------------------------------------------------------------- bool Faust::getInputProperties (VstInt32 index, VstPinProperties* properties) { if(index>=0 && indexgetNumInputs()) { sprintf (properties->label, "Grame Faust DSP input: %d",index); sprintf (properties->shortLabel, "In %d",index); properties->flags = kVstPinIsActive; if (dsp->getNumInputs() == 2) { properties->flags |= kVstPinIsStereo; } return true; } else return false; } //----------------------------------------------------------------------------------------- bool Faust::getOutputProperties (VstInt32 index, VstPinProperties* properties) { if(index>=0 && indexgetNumOutputs()) { sprintf (properties->label, "Grame Faust DSP output: %d",index); sprintf (properties->shortLabel, "Out %d",index); properties->flags = kVstPinIsActive; if (dsp->getNumOutputs() == 2) { properties->flags |= kVstPinIsStereo; } return true; } else return false; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/audio/0000755000175000017500000000000011702130733016430 5ustar orlareyorlareyfaust-0.9.46/architecture/audio/portaudio-dsp.h0000644000175000017500000001605011702130733021375 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #ifndef __portaudio_dsp__ #define __portaudio_dsp__ #include #include #include #include "audio.h" #include "dsp.h" #define max(x,y) (((x)>(y)) ? (x) : (y)) static int audioCallback(const void *ibuf, void *obuf, unsigned long frames, const PaStreamCallbackTimeInfo*, PaStreamCallbackFlags, void * drv); //---------------------------------------------------------------------------- static void pa_error(int err) { if (err != paNoError) { printf( "PortAudio error: %s\n", Pa_GetErrorText( err ) ); } } /****************************************************************************** ******************************************************************************* PORT AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ class portaudio : public audio { dsp* fDsp; PaStream* fAudioStream; long fSampleRate, fBufferSize; //---------------------------------------------------------------------------- // number of physical input and output channels of the PA device //---------------------------------------------------------------------------- int fDevNumInChans; int fDevNumOutChans; //---------------------------------------------------------------------------- // tables of noninterleaved input and output channels for FAUST //---------------------------------------------------------------------------- float* fInChannel[256]; float* fOutChannel[256]; //---------------------------------------------------------------------------- // allocated the noninterleaved input and output channels for FAUST //---------------------------------------------------------------------------- void allocChannels (int size, int numInChan, int numOutChan) { assert (numInChan < 256); assert (numOutChan < 256); for (int i = 0; i < numInChan; i++) { fInChannel[i] = (float*) calloc (size, sizeof(float)); for (int j = 0; j < size; j++) fInChannel[i][j] = 0.0; } for (int i = 0; i < numOutChan; i++) { fOutChannel[i] = (float*) calloc (size, sizeof(float)); for (int j = 0; j < size; j++) fOutChannel[i][j] = 0.0; } } public: portaudio(long srate, long bsize) : fDsp(0), fAudioStream(0), fSampleRate(srate), fBufferSize(bsize), fDevNumInChans(0), fDevNumOutChans(0) {} virtual ~portaudio() { stop(); } virtual bool init(const char* name, dsp* DSP){ fDsp = DSP; pa_error(Pa_Initialize()); const PaDeviceInfo* idev = Pa_GetDeviceInfo(Pa_GetDefaultInputDevice()); const PaDeviceInfo* odev = Pa_GetDeviceInfo(Pa_GetDefaultOutputDevice()); fDevNumInChans = (fDsp->getNumInputs() > 0) ? idev->maxInputChannels : 0 ; fDevNumOutChans = (fDsp->getNumOutputs() > 0) ? odev->maxOutputChannels : 0; PaStreamParameters inputParameters; PaStreamParameters outputParameters; inputParameters.device = Pa_GetDefaultInputDevice(); inputParameters.sampleFormat = paFloat32; inputParameters.channelCount = fDevNumInChans; inputParameters.hostApiSpecificStreamInfo = 0; outputParameters.device = Pa_GetDefaultOutputDevice(); outputParameters.sampleFormat = paFloat32; outputParameters.channelCount = fDevNumOutChans; outputParameters.hostApiSpecificStreamInfo = 0; PaError err; if ((err = Pa_IsFormatSupported( ((fDevNumInChans > 0) ? &inputParameters : 0), ((fDevNumOutChans > 0) ? &outputParameters : 0), fSampleRate)) != 0) { printf("stream format is not supported err = %d\n", err); return false; } allocChannels(fBufferSize, max(fDevNumInChans, fDsp->getNumInputs()), max(fDevNumOutChans, fDsp->getNumOutputs())); fDsp->init(fSampleRate); return true; } virtual bool start() { pa_error(Pa_OpenDefaultStream(&fAudioStream, fDevNumInChans, fDevNumOutChans, paFloat32, fSampleRate, fBufferSize, audioCallback, this)); Pa_StartStream(fAudioStream); return true; } virtual void stop() { if (fAudioStream) { Pa_StopStream (fAudioStream); Pa_CloseStream(fAudioStream); fAudioStream = 0; } } int processAudio(const float *ibuf, float *obuf, unsigned long frames) { const float* fInputBuffer = ibuf; float* fOutputBuffer = obuf; // split input samples for (unsigned long s = 0; s < frames; s++) { for (int c = 0; c < fDevNumInChans; c++) { fInChannel[c][s] = fInputBuffer[c + s*fDevNumInChans]; } } // process samples fDsp->compute(frames, fInChannel, fOutChannel); // merge output samples for (unsigned long s = 0; s < frames; s++) { for (int c = 0; c < fDevNumOutChans; c++) { fOutputBuffer[c + s*fDevNumOutChans] = fOutChannel[c][s]; } } return 0; } }; //---------------------------------------------------------------------------- // Port Audio Callback //---------------------------------------------------------------------------- static int audioCallback(const void *ibuf, void *obuf, unsigned long frames, const PaStreamCallbackTimeInfo*, PaStreamCallbackFlags, void * drv) { portaudio * pa = (portaudio*) drv; return pa->processAudio ((const float*)ibuf, (float*)obuf, frames); } #endif faust-0.9.46/architecture/audio/jack-dsp.h0000644000175000017500000001062711702130733020303 0ustar orlareyorlarey #ifndef __jack_dsp__ #define __jack_dsp__ #include #include #include "audio.h" #include "dsp.h" static int _srate(jack_nframes_t nframes, void *); static void _jack_shutdown(void *); static int _process (jack_nframes_t nframes, void *client); #ifdef _OPENMP static void* _jackthread(void* arg); #endif /****************************************************************************** ******************************************************************************* JACK AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ class jackaudio : public audio { dsp* fDsp; jack_client_t* fClient; int fNumInChans; // number of input channels int fNumOutChans; // number of output channels jack_port_t * fInput_ports[256]; // Jack input ports jack_port_t * fOutput_ports[256]; // Jack output ports float* fInChannel[256]; // tables of noninterleaved input channels for FAUST float* fOutChannel[256]; // tables of noninterleaved output channels for FAUST public: jackaudio() : fClient(0), fNumInChans(0), fNumOutChans(0) {} virtual ~jackaudio() { stop(); } virtual bool init(const char*name, dsp* DSP) { fDsp = DSP; if ((fClient = jack_client_open(name, JackNullOption, NULL)) == 0) { fprintf(stderr, "jack server not running?\n"); return false; } #ifdef _OPENMP jack_set_process_thread(fClient, _jackthread, this); #else jack_set_process_callback(fClient, _process, this); #endif jack_set_sample_rate_callback(fClient, _srate, 0); jack_on_shutdown(fClient, _jack_shutdown, 0); fNumInChans = fDsp->getNumInputs(); fNumOutChans = fDsp->getNumOutputs(); for (int i = 0; i < fNumInChans; i++) { char buf[256]; snprintf(buf, 256, "in_%d", i); fInput_ports[i] = jack_port_register(fClient, buf, JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0); } for (int i = 0; i < fNumOutChans; i++) { char buf[256]; snprintf(buf, 256, "out_%d", i); fOutput_ports[i] = jack_port_register(fClient, buf, JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); } fDsp->init(jack_get_sample_rate(fClient)); return true; } virtual bool start() { if (jack_activate(fClient)) { fprintf(stderr, "cannot activate client"); return false; } char** physicalInPorts = (char **)jack_get_ports(fClient, NULL, NULL, JackPortIsPhysical|JackPortIsInput); char** physicalOutPorts = (char **)jack_get_ports(fClient, NULL, NULL, JackPortIsPhysical|JackPortIsOutput); if (physicalOutPorts != NULL) { for (int i = 0; i < fNumInChans && physicalOutPorts[i]; i++) jack_connect(fClient, physicalOutPorts[i], jack_port_name(fInput_ports[i])); } if (physicalInPorts != NULL) { for (int i = 0; i < fNumOutChans && physicalInPorts[i]; i++) jack_connect(fClient, jack_port_name(fOutput_ports[i]), physicalInPorts[i]); } return true; } virtual void stop() { if (fClient) { jack_deactivate(fClient); for (int i = 0; i < fNumInChans; i++) jack_port_unregister(fClient, fInput_ports[i]); for (int i = 0; i < fNumOutChans; i++) jack_port_unregister(fClient, fOutput_ports[i]); jack_client_close(fClient); fClient = 0; } } // jack callbacks int process (jack_nframes_t nframes) { AVOIDDENORMALS; for (int i = 0; i < fNumInChans; i++) fInChannel[i] = (float *)jack_port_get_buffer(fInput_ports[i], nframes); for (int i = 0; i < fNumOutChans; i++) fOutChannel[i] = (float *)jack_port_get_buffer(fOutput_ports[i], nframes); fDsp->compute(nframes, fInChannel, fOutChannel); return 0; } #ifdef _OPENMP void process_thread () { jack_nframes_t nframes; while (1) { nframes = jack_cycle_wait(fClient); process (nframes); jack_cycle_signal(fClient, 0); } } #endif }; //---------------------------------------------------------------------------- // Jack Callbacks //---------------------------------------------------------------------------- static int _srate(jack_nframes_t nframes, void *) { printf("the sample rate is now %u/sec\n", nframes); return 0; } static void _jack_shutdown(void *) { exit(1); } static int _process(jack_nframes_t nframes, void *client) { jackaudio* jackclient = (jackaudio*)client; return jackclient->process (nframes); } #ifdef _OPENMP static void* _jackthread(void* arg) { jackaudio* jackclient = (jackaudio*)arg; jackclient->process_thread(); return 0; } #endif #endif faust-0.9.46/architecture/audio/oscdsp.h0000644000175000017500000000353111702130733020076 0ustar orlareyorlarey #ifndef __osc_dsp__ #define __osc_dsp__ #include #include "audio/audio.h" #include "audio/dsp.h" #include "OSCIO.h" /****************************************************************************** ******************************************************************************* OSC AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ #define kMaxBuffer 4096 class oscdsp : public audio, public oscfaust::OSCIO { dsp* fDsp; float ** fInBuffers, **fOutBuffers; public: oscdsp(const char * dst, int argc, char *argv[]) : OSCIO(dst), fDsp(0), fInBuffers(0), fOutBuffers(0) { for (int i = 1; i < argc-1; i++) if (!strcmp(argv[i], "-iodst")) setDest (argv[i+1]); } virtual ~oscdsp() { stop(); } virtual bool init(const char*name, dsp* DSP) { fDsp = DSP; fDsp->init(44100); fInBuffers = new float*[numInputs()]; fOutBuffers = new float*[numOutputs()]; for (int i= 0; i < numInputs(); i++) fInBuffers[i] = new float[kMaxBuffer]; for (int i= 0; i < numOutputs(); i++) fOutBuffers [i] = new float[kMaxBuffer]; return true; } virtual bool start() { return true; } virtual void stop() {} void compute( int nframes ) { fDsp->compute(nframes, fInBuffers, fOutBuffers); for (int i= 0; i < numOutputs(); i++) send( nframes, fOutBuffers [i], i); } void receive( int nvalues, float * val ) { int inChans = numInputs(); if (!inChans) { compute(nvalues); return; } for (int i=0; i < nvalues; i++) { int c = i % inChans; int frame = i / inChans; fInBuffers[c][frame] = val[i]; } compute (nvalues / inChans); } int numOutputs() const { return fDsp ? fDsp->getNumOutputs() : 0; } int numInputs() const { return fDsp ? fDsp->getNumInputs() : 0; } }; #endif faust-0.9.46/architecture/audio/alsa-dsp.h0000644000175000017500000005277411702130733020324 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #ifndef __alsa_dsp__ #define __alsa_dsp__ #include #include #include #include #include #include "audio.h" #include "dsp.h" /** DEFAULT ALSA PARAMETERS CONTROLLED BY ENVIRONMENT VARIABLES Some default parameters of Faust's ALSA applications are controlled by the following environment variables : FAUST2ALSA_DEVICE = "hw:0" FAUST2ALSA_FREQUENCY= 44100 FAUST2ALSA_BUFFER = 1024 FAUST2ALSA_PERIODS = 2 */ using namespace std; // handle 32/64 bits int size issues #ifdef __x86_64__ #define uint32 unsigned int #define uint64 unsigned long int #define int32 int #define int64 long int #else #define uint32 unsigned int #define uint64 unsigned long long int #define int32 int #define int64 long long int #endif // check 32/64 bits issues are correctly handled #define check_error(err) if (err) { printf("%s:%d, alsa error %d : %s\n", __FILE__, __LINE__, err, snd_strerror(err)); exit(1); } #define check_error_msg(err,msg) if (err) { fprintf(stderr, "%s:%d, %s : %s(%d)\n", __FILE__, __LINE__, msg, snd_strerror(err), err); exit(1); } #define display_error_msg(err,msg) if (err) { fprintf(stderr, "%s:%d, %s : %s(%d)\n", __FILE__, __LINE__, msg, snd_strerror(err), err); } #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) /** * Used to set the priority and scheduling of the audi#include #include o thread */ static bool setRealtimePriority () { struct passwd * pw; int err; uid_t uid; struct sched_param param; uid = getuid (); pw = getpwnam ("root"); setuid (pw->pw_uid); param.sched_priority = 50; /* 0 to 99 */ err = sched_setscheduler(0, SCHED_RR, ¶m); setuid (uid); return (err != -1); } /****************************************************************************** ******************************************************************************* AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ enum { kRead = 1, kWrite = 2, kReadWrite = 3 }; /** * A convenient class to pass parameters to AudioInterface */ class AudioParam { public: const char* fCardName; unsigned int fFrequency; unsigned int fBuffering; unsigned int fPeriods; unsigned int fSoftInputs; unsigned int fSoftOutputs; public : AudioParam() : fCardName("hw:0"), fFrequency(44100), fBuffering(512), fPeriods(2), fSoftInputs(2), fSoftOutputs(2) {} AudioParam& cardName(const char* n) { fCardName = n; return *this; } AudioParam& frequency(int f) { fFrequency = f; return *this; } AudioParam& buffering(int fpb) { fBuffering = fpb; return *this; } AudioParam& periods(int p) { fPeriods = p; return *this; } AudioParam& inputs(int n) { fSoftInputs = n; return *this; } AudioParam& outputs(int n) { fSoftOutputs = n; return *this; } }; /** * An ALSA audio interface */ class AudioInterface : public AudioParam { public : snd_pcm_t* fOutputDevice ; snd_pcm_t* fInputDevice ; snd_pcm_hw_params_t* fInputParams; snd_pcm_hw_params_t* fOutputParams; snd_pcm_format_t fSampleFormat; snd_pcm_access_t fSampleAccess; unsigned int fCardInputs; unsigned int fCardOutputs; unsigned int fChanInputs; unsigned int fChanOutputs; // interleaved mode audiocard buffers void* fInputCardBuffer; void* fOutputCardBuffer; // non interleaved mode audiocard buffers void* fInputCardChannels[256]; void* fOutputCardChannels[256]; // non interleaved mod, floating point software buffers float* fInputSoftChannels[256]; float* fOutputSoftChannels[256]; public : const char* cardName() { return fCardName; } int frequency() { return fFrequency; } int buffering() { return fBuffering; } int periods() { return fPeriods; } float** inputSoftChannels() { return fInputSoftChannels; } float** outputSoftChannels() { return fOutputSoftChannels; } AudioInterface(const AudioParam& ap = AudioParam()) : AudioParam(ap) { fInputDevice = 0; fOutputDevice = 0; fInputParams = 0; fOutputParams = 0; } /** * Open the audio interface */ void open() { int err; // allocation d'un stream d'entree et d'un stream de sortie err = snd_pcm_open( &fInputDevice, fCardName, SND_PCM_STREAM_CAPTURE, 0 ); check_error(err) err = snd_pcm_open( &fOutputDevice, fCardName, SND_PCM_STREAM_PLAYBACK, 0 ); check_error(err) // recherche des parametres d'entree err = snd_pcm_hw_params_malloc ( &fInputParams ); check_error(err); setAudioParams(fInputDevice, fInputParams); // recherche des parametres de sortie err = snd_pcm_hw_params_malloc ( &fOutputParams ); check_error(err) setAudioParams(fOutputDevice, fOutputParams); // set the number of physical input and output channels close to what we need fCardInputs = fSoftInputs; fCardOutputs = fSoftOutputs; snd_pcm_hw_params_set_channels_near(fInputDevice, fInputParams, &fCardInputs); snd_pcm_hw_params_set_channels_near(fOutputDevice, fOutputParams, &fCardOutputs); printf("inputs : %u, outputs : %u\n", fCardInputs, fCardOutputs); // enregistrement des parametres d'entree-sortie err = snd_pcm_hw_params (fInputDevice, fInputParams ); check_error (err); err = snd_pcm_hw_params (fOutputDevice, fOutputParams ); check_error (err); //assert(snd_pcm_hw_params_get_period_size(fInputParams,NULL) == snd_pcm_hw_params_get_period_size(fOutputParams,NULL)); // allocation of alsa buffers if (fSampleAccess == SND_PCM_ACCESS_RW_INTERLEAVED) { fInputCardBuffer = calloc(interleavedBufferSize(fInputParams), 1); fOutputCardBuffer = calloc(interleavedBufferSize(fOutputParams), 1); } else { for (unsigned int i = 0; i < fCardInputs; i++) { fInputCardChannels[i] = calloc(noninterleavedBufferSize(fInputParams), 1); } for (unsigned int i = 0; i < fCardOutputs; i++) { fOutputCardChannels[i] = calloc(noninterleavedBufferSize(fOutputParams), 1); } } // allocation of floating point buffers needed by the dsp code fChanInputs = max(fSoftInputs, fCardInputs); assert (fChanInputs < 256); fChanOutputs = max(fSoftOutputs, fCardOutputs); assert (fChanOutputs < 256); for (unsigned int i = 0; i < fChanInputs; i++) { fInputSoftChannels[i] = (float*) calloc (fBuffering, sizeof(float)); for (unsigned int j = 0; j < fBuffering; j++) { fInputSoftChannels[i][j] = 0.0; } } for (unsigned int i = 0; i < fChanOutputs; i++) { fOutputSoftChannels[i] = (float*) calloc (fBuffering, sizeof(float)); for (unsigned int j = 0; j < fBuffering; j++) { fOutputSoftChannels[i][j] = 0.0; } } } void setAudioParams(snd_pcm_t* stream, snd_pcm_hw_params_t* params) { int err; // set params record with initial values err = snd_pcm_hw_params_any ( stream, params ); check_error_msg(err, "unable to init parameters") // set alsa access mode (and fSampleAccess field) either to non interleaved or interleaved err = snd_pcm_hw_params_set_access (stream, params, SND_PCM_ACCESS_RW_NONINTERLEAVED ); if (err) { err = snd_pcm_hw_params_set_access (stream, params, SND_PCM_ACCESS_RW_INTERLEAVED ); check_error_msg(err, "unable to set access mode neither to non-interleaved or to interleaved"); } snd_pcm_hw_params_get_access(params, &fSampleAccess); // search for 32-bits or 16-bits format err = snd_pcm_hw_params_set_format (stream, params, SND_PCM_FORMAT_S32); if (err) { err = snd_pcm_hw_params_set_format (stream, params, SND_PCM_FORMAT_S16); check_error_msg(err, "unable to set format to either 32-bits or 16-bits"); } snd_pcm_hw_params_get_format(params, &fSampleFormat); // set sample frequency snd_pcm_hw_params_set_rate_near (stream, params, &fFrequency, 0); // set period and period size (buffering) err = snd_pcm_hw_params_set_period_size (stream, params, fBuffering, 0); check_error_msg(err, "period size not available"); err = snd_pcm_hw_params_set_periods (stream, params, fPeriods, 0); check_error_msg(err, "number of periods not available"); } ssize_t interleavedBufferSize (snd_pcm_hw_params_t* params) { _snd_pcm_format format; snd_pcm_hw_params_get_format(params, &format); snd_pcm_uframes_t psize; snd_pcm_hw_params_get_period_size(params, &psize, NULL); unsigned int channels; snd_pcm_hw_params_get_channels(params, &channels); ssize_t bsize = snd_pcm_format_size (format, psize * channels); return bsize; } ssize_t noninterleavedBufferSize (snd_pcm_hw_params_t* params) { _snd_pcm_format format; snd_pcm_hw_params_get_format(params, &format); snd_pcm_uframes_t psize; snd_pcm_hw_params_get_period_size(params, &psize, NULL); ssize_t bsize = snd_pcm_format_size (format, psize); return bsize; } void close() {} /** * Read audio samples from the audio card. Convert samples to floats and take * care of interleaved buffers */ void read() { if (fSampleAccess == SND_PCM_ACCESS_RW_INTERLEAVED) { int count = snd_pcm_readi(fInputDevice, fInputCardBuffer, fBuffering); if (count<0) { display_error_msg(count, "reading samples"); int err = snd_pcm_prepare(fInputDevice); check_error_msg(err, "preparing input stream"); } if (fSampleFormat == SND_PCM_FORMAT_S16) { short* buffer16b = (short*) fInputCardBuffer; for (unsigned int s = 0; s < fBuffering; s++) { for (unsigned int c = 0; c < fCardInputs; c++) { fInputSoftChannels[c][s] = float(buffer16b[c + s*fCardInputs])*(1.0/float(SHRT_MAX)); } } } else if (fSampleFormat == SND_PCM_FORMAT_S32) { int32* buffer32b = (int32*) fInputCardBuffer; for (unsigned int s = 0; s < fBuffering; s++) { for (unsigned int c = 0; c < fCardInputs; c++) { fInputSoftChannels[c][s] = float(buffer32b[c + s*fCardInputs])*(1.0/float(INT_MAX)); } } } else { printf("unrecognized input sample format : %u\n", fSampleFormat); exit(1); } } else if (fSampleAccess == SND_PCM_ACCESS_RW_NONINTERLEAVED) { int count = snd_pcm_readn(fInputDevice, fInputCardChannels, fBuffering); if (count<0) { display_error_msg(count, "reading samples"); int err = snd_pcm_prepare(fInputDevice); check_error_msg(err, "preparing input stream"); } if (fSampleFormat == SND_PCM_FORMAT_S16) { for (unsigned int c = 0; c < fCardInputs; c++) { short* chan16b = (short*) fInputCardChannels[c]; for (unsigned int s = 0; s < fBuffering; s++) { fInputSoftChannels[c][s] = float(chan16b[s])*(1.0/float(SHRT_MAX)); } } } else if (fSampleFormat == SND_PCM_FORMAT_S32) { for (unsigned int c = 0; c < fCardInputs; c++) { int32* chan32b = (int32*) fInputCardChannels[c]; for (unsigned int s = 0; s < fBuffering; s++) { fInputSoftChannels[c][s] = float(chan32b[s])*(1.0/float(INT_MAX)); } } } else { printf("unrecognized input sample format : %u\n", fSampleFormat); exit(1); } } else { check_error_msg(-10000, "unknow access mode"); } } /** * write the output soft channels to the audio card. Convert sample * format and interleaves buffers when needed */ void write() { recovery : if (fSampleAccess == SND_PCM_ACCESS_RW_INTERLEAVED) { if (fSampleFormat == SND_PCM_FORMAT_S16) { short* buffer16b = (short*) fOutputCardBuffer; for (unsigned int f = 0; f < fBuffering; f++) { for (unsigned int c = 0; c < fCardOutputs; c++) { float x = fOutputSoftChannels[c][f]; buffer16b[c + f*fCardOutputs] = short( max(min(x,1.0),-1.0) * float(SHRT_MAX) ) ; } } } else if (fSampleFormat == SND_PCM_FORMAT_S32) { int32* buffer32b = (int32*) fOutputCardBuffer; for (unsigned int f = 0; f < fBuffering; f++) { for (unsigned int c = 0; c < fCardOutputs; c++) { float x = fOutputSoftChannels[c][f]; buffer32b[c + f*fCardOutputs] = int( max(min(x,1.0),-1.0) * float(INT_MAX) ) ; } } } else { printf("unrecognized output sample format : %u\n", fSampleFormat); exit(1); } int count = snd_pcm_writei(fOutputDevice, fOutputCardBuffer, fBuffering); if (count<0) { display_error_msg(count, "w3"); int err = snd_pcm_prepare(fOutputDevice); check_error_msg(err, "preparing output stream"); goto recovery; } } else if (fSampleAccess == SND_PCM_ACCESS_RW_NONINTERLEAVED) { if (fSampleFormat == SND_PCM_FORMAT_S16) { for (unsigned int c = 0; c < fCardOutputs; c++) { short* chan16b = (short*) fOutputCardChannels[c]; for (unsigned int f = 0; f < fBuffering; f++) { float x = fOutputSoftChannels[c][f]; chan16b[f] = short( max(min(x,1.0),-1.0) * float(SHRT_MAX) ) ; } } } else if (fSampleFormat == SND_PCM_FORMAT_S32) { for (unsigned int c = 0; c < fCardOutputs; c++) { int32* chan32b = (int32*) fOutputCardChannels[c]; for (unsigned int f = 0; f < fBuffering; f++) { float x = fOutputSoftChannels[c][f]; chan32b[f] = int( max(min(x,1.0),-1.0) * float(INT_MAX) ) ; } } } else { printf("unrecognized output sample format : %u\n", fSampleFormat); exit(1); } int count = snd_pcm_writen(fOutputDevice, fOutputCardChannels, fBuffering); if (count<0) { display_error_msg(count, "w3"); int err = snd_pcm_prepare(fOutputDevice); check_error_msg(err, "preparing output stream"); goto recovery; } } else { check_error_msg(-10000, "unknow access mode"); } } /** * print short information on the audio device */ void shortinfo() { int err; snd_ctl_card_info_t* card_info; snd_ctl_t* ctl_handle; err = snd_ctl_open (&ctl_handle, fCardName, 0); check_error(err); snd_ctl_card_info_alloca (&card_info); err = snd_ctl_card_info(ctl_handle, card_info); check_error(err); printf("%s|%d|%d|%d|%d|%s\n", snd_ctl_card_info_get_driver(card_info), fCardInputs, fCardOutputs, fFrequency, fBuffering, snd_pcm_format_name((_snd_pcm_format)fSampleFormat)); } /** * print more detailled information on the audio device */ void longinfo() { int err; snd_ctl_card_info_t* card_info; snd_ctl_t* ctl_handle; printf("Audio Interface Description :\n"); printf("Sampling Frequency : %d, Sample Format : %s, buffering : %d\n", fFrequency, snd_pcm_format_name((_snd_pcm_format)fSampleFormat), fBuffering); printf("Software inputs : %2d, Software outputs : %2d\n", fSoftInputs, fSoftOutputs); printf("Hardware inputs : %2d, Hardware outputs : %2d\n", fCardInputs, fCardOutputs); printf("Channel inputs : %2d, Channel outputs : %2d\n", fChanInputs, fChanOutputs); // affichage des infos de la carte err = snd_ctl_open (&ctl_handle, fCardName, 0); check_error(err); snd_ctl_card_info_alloca (&card_info); err = snd_ctl_card_info(ctl_handle, card_info); check_error(err); printCardInfo(card_info); // affichage des infos liees aux streams d'entree-sortie if (fSoftInputs > 0) printHWParams(fInputParams); if (fSoftOutputs > 0) printHWParams(fOutputParams); } void printCardInfo(snd_ctl_card_info_t* ci) { printf("Card info (address : %p)\n", ci); printf("\tID = %s\n", snd_ctl_card_info_get_id(ci)); printf("\tDriver = %s\n", snd_ctl_card_info_get_driver(ci)); printf("\tName = %s\n", snd_ctl_card_info_get_name(ci)); printf("\tLongName = %s\n", snd_ctl_card_info_get_longname(ci)); printf("\tMixerName = %s\n", snd_ctl_card_info_get_mixername(ci)); printf("\tComponents = %s\n", snd_ctl_card_info_get_components(ci)); printf("--------------\n"); } void printHWParams( snd_pcm_hw_params_t* params ) { printf("HW Params info (address : %p)\n", params); #if 0 printf("\tChannels = %d\n", snd_pcm_hw_params_get_channels(params)); printf("\tFormat = %s\n", snd_pcm_format_name((_snd_pcm_format)snd_pcm_hw_params_get_format(params))); printf("\tAccess = %s\n", snd_pcm_access_name((_snd_pcm_access)snd_pcm_hw_params_get_access(params))); printf("\tRate = %d\n", snd_pcm_hw_params_get_rate(params, NULL)); printf("\tPeriods = %d\n", snd_pcm_hw_params_get_periods(params, NULL)); printf("\tPeriod size = %d\n", (int)snd_pcm_hw_params_get_period_size(params, NULL)); printf("\tPeriod time = %d\n", snd_pcm_hw_params_get_period_time(params, NULL)); printf("\tBuffer size = %d\n", (int)snd_pcm_hw_params_get_buffer_size(params)); printf("\tBuffer time = %d\n", snd_pcm_hw_params_get_buffer_time(params, NULL)); #endif printf("--------------\n"); } }; // lopt : Scan Command Line long int Arguments long lopt(int argc, char *argv[], const char* longname, const char* shortname, long def) { for (int i=2; igetNumInputs()) .outputs(DSP->getNumOutputs())); } virtual ~alsaaudio() { stop(); delete fAudio; } virtual bool init(const char */*name*/, dsp* DSP) { AVOIDDENORMALS; fAudio->open(); DSP->init(fAudio->frequency()); return true; } virtual bool start() { fRunning = true; if (pthread_create( &fAudioThread, 0, __run, this)) fRunning = false; return fRunning; } virtual void stop() { if (fRunning) { fRunning = false; pthread_join (fAudioThread, 0); } } virtual void run() { bool rt = setRealtimePriority(); printf(rt ? "RT : ":"NRT: "); fAudio->shortinfo(); fAudio->write(); fAudio->write(); while(fRunning) { fAudio->read(); fDSP->compute(fAudio->buffering(), fAudio->inputSoftChannels(), fAudio->outputSoftChannels()); fAudio->write(); } } }; void* __run (void* ptr) { alsaaudio * alsa = (alsaaudio*)ptr; alsa->run(); return 0; } #endif /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/audio/dsp.h0000644000175000017500000000162011702130733017366 0ustar orlareyorlarey /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ #ifndef __dsp__ #define __dsp__ class UI; //---------------------------------------------------------------- // signal processor definition //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; #endif faust-0.9.46/architecture/audio/coreaudio-dsp.h0000644000175000017500000013257711702130733021356 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ #ifndef __coreaudio_dsp__ #define __coreaudio_dsp__ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include "audio.h" #include "dsp.h" using namespace std; /****************************************************************************** ******************************************************************************* COREAUDIO INTERFACE ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------------------- // number of physical input and output channels of the CA device //---------------------------------------------------------------------------- int gDevNumInChans; int gDevNumOutChans; //---------------------------------------------------------------------------- // tables of noninterleaved input and output channels for FAUST //---------------------------------------------------------------------------- float* gInChannel[256]; float* gOutChannel[256]; #define OPEN_ERR -1 #define NO_ERR 0 #define WAIT_COUNTER 60 typedef UInt8 CAAudioHardwareDeviceSectionID; #define kAudioDeviceSectionInput ((CAAudioHardwareDeviceSectionID)0x01) #define kAudioDeviceSectionOutput ((CAAudioHardwareDeviceSectionID)0x00) #define kAudioDeviceSectionGlobal ((CAAudioHardwareDeviceSectionID)0x00) #define kAudioDeviceSectionWildcard ((CAAudioHardwareDeviceSectionID)0xFF) dsp * gDsp; class TCoreAudioRenderer { private: AudioBufferList* fInputData; AudioDeviceID fDeviceID; AudioUnit fAUHAL; AudioObjectID fPluginID; // Used for aggregate device bool fState; OSStatus GetDefaultDevice(int inChan, int outChan, int samplerate, AudioDeviceID* id); OSStatus CreateAggregateDevice(AudioDeviceID captureDeviceID, AudioDeviceID playbackDeviceID, int samplerate, AudioDeviceID* outAggregateDevice); OSStatus CreateAggregateDeviceAux(vector captureDeviceID, vector playbackDeviceID, int samplerate, AudioDeviceID* outAggregateDevice); OSStatus DestroyAggregateDevice(); OSStatus GetDeviceNameFromID(AudioDeviceID id, char* name); int SetupSampleRateAux(AudioDeviceID inDevice, int samplerate); static OSStatus Render(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData); static OSStatus SRNotificationCallback(AudioDeviceID inDevice, UInt32 inChannel, Boolean isInput, AudioDevicePropertyID inPropertyID, void* inClientData); public: TCoreAudioRenderer() :fInputData(0),fDeviceID(0),fAUHAL(0),fPluginID(0),fState(false) {} virtual ~TCoreAudioRenderer() {} long OpenDefault(long inChan, long outChan, long bufferSize, long sampleRate); long Close(); long Start(); long Stop(); }; typedef TCoreAudioRenderer * TCoreAudioRendererPtr; static void PrintStreamDesc(AudioStreamBasicDescription *inDesc) { cout << "- - - - - - - - - - - - - - - - - - - -" << endl; cout << " Sample Rate: " << inDesc->mSampleRate << endl; cout << " Format ID:%.*s\n" << sizeof(inDesc->mFormatID) << (char*)&inDesc->mFormatID << endl; cout << " Format Flags " << inDesc->mFormatFlags << endl; cout << " Bytes per Packet: " << inDesc->mBytesPerPacket << endl; cout << " Frames per Packet: " << inDesc->mFramesPerPacket << endl; cout << " Bytes per Frame: " << inDesc->mBytesPerFrame << endl; cout << " Channels per Frame: "<< inDesc->mChannelsPerFrame << endl; cout << " Bits per Channel: " << inDesc->mBitsPerChannel << endl; cout << "- - - - - - - - - - - - - - - - - - - -" << endl; } static void printError(OSStatus err) { switch (err) { case kAudioHardwareNoError: printf("error code : kAudioHardwareNoError\n"); break; case kAudioConverterErr_FormatNotSupported: printf("error code : kAudioConverterErr_FormatNotSupported\n"); break; case kAudioConverterErr_OperationNotSupported: printf("error code : kAudioConverterErr_OperationNotSupported\n"); break; case kAudioConverterErr_PropertyNotSupported: printf("error code : kAudioConverterErr_PropertyNotSupported\n"); break; case kAudioConverterErr_InvalidInputSize: printf("error code : kAudioConverterErr_InvalidInputSize\n"); break; case kAudioConverterErr_InvalidOutputSize: printf("error code : kAudioConverterErr_InvalidOutputSize\n"); break; case kAudioConverterErr_UnspecifiedError: printf("error code : kAudioConverterErr_UnspecifiedError\n"); break; case kAudioConverterErr_BadPropertySizeError: printf("error code : kAudioConverterErr_BadPropertySizeError\n"); break; case kAudioConverterErr_RequiresPacketDescriptionsError: printf("error code : kAudioConverterErr_RequiresPacketDescriptionsError\n"); break; case kAudioConverterErr_InputSampleRateOutOfRange: printf("error code : kAudioConverterErr_InputSampleRateOutOfRange\n"); break; case kAudioConverterErr_OutputSampleRateOutOfRange: printf("error code : kAudioConverterErr_OutputSampleRateOutOfRange\n"); break; case kAudioHardwareNotRunningError: printf("error code : kAudioHardwareNotRunningError\n"); break; case kAudioHardwareUnknownPropertyError: printf("error code : kAudioHardwareUnknownPropertyError\n"); break; case kAudioHardwareIllegalOperationError: printf("error code : kAudioHardwareIllegalOperationError\n"); break; case kAudioHardwareBadDeviceError: printf("error code : kAudioHardwareBadDeviceError\n"); break; case kAudioHardwareBadStreamError: printf("error code : kAudioHardwareBadStreamError\n"); break; case kAudioDeviceUnsupportedFormatError: printf("error code : kAudioDeviceUnsupportedFormatError\n"); break; case kAudioDevicePermissionsError: printf("error code : kAudioDevicePermissionsError\n"); break; default: printf("error code : unknown\n"); break; } } OSStatus TCoreAudioRenderer::Render(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32, UInt32 inNumberFrames, AudioBufferList *ioData) { TCoreAudioRendererPtr renderer = (TCoreAudioRendererPtr)inRefCon; AudioUnitRender(renderer->fAUHAL, ioActionFlags, inTimeStamp, 1, inNumberFrames, renderer->fInputData); for (int i = 0; i < gDevNumInChans; i++) { gInChannel[i] = (float*)renderer->fInputData->mBuffers[i].mData; } for (int i = 0; i < gDevNumOutChans; i++) { gOutChannel[i] = (float*)ioData->mBuffers[i].mData; } gDsp->compute((int)inNumberFrames, gInChannel, gOutChannel); return 0; } static CFStringRef GetDeviceName(AudioDeviceID id) { UInt32 size = sizeof(CFStringRef); CFStringRef UIname; OSStatus err = AudioDeviceGetProperty(id, 0, false, kAudioDevicePropertyDeviceUID, &size, &UIname); return (err == noErr) ? UIname : NULL; } OSStatus TCoreAudioRenderer::GetDeviceNameFromID(AudioDeviceID id, char* name) { UInt32 size = 256; return AudioDeviceGetProperty(id, 0, false, kAudioDevicePropertyDeviceName, &size, name); } OSStatus TCoreAudioRenderer::GetDefaultDevice(int inChan, int outChan, int samplerate, AudioDeviceID* id) { UInt32 theSize = sizeof(UInt32); AudioDeviceID inDefault; AudioDeviceID outDefault; OSStatus res; if ((res = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultInputDevice, &theSize, &inDefault)) != noErr) return res; if ((res = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &theSize, &outDefault)) != noErr) return res; // Duplex mode if (inChan > 0 && outChan > 0) { // Get the device only if default input and output are the same if (inDefault == outDefault) { *id = inDefault; return noErr; } else { printf("GetDefaultDevice : input = %ld and output = %ld are not the same, create aggregate device...\n", inDefault, outDefault); if (CreateAggregateDevice(inDefault, outDefault, samplerate, id) != noErr) return kAudioHardwareBadDeviceError; } } else if (inChan > 0) { *id = inDefault; return noErr; } else if (outChan > 0) { *id = outDefault; return noErr; } else { return kAudioHardwareBadDeviceError; } return noErr; } OSStatus TCoreAudioRenderer::CreateAggregateDevice(AudioDeviceID captureDeviceID, AudioDeviceID playbackDeviceID, int samplerate, AudioDeviceID* outAggregateDevice) { OSStatus err = noErr; AudioObjectID sub_device[32]; UInt32 outSize = sizeof(sub_device); err = AudioDeviceGetProperty(captureDeviceID, 0, kAudioDeviceSectionGlobal, kAudioAggregateDevicePropertyActiveSubDeviceList, &outSize, sub_device); vector captureDeviceIDArray; if (err != noErr) { printf("Input device does not have subdevices\n"); captureDeviceIDArray.push_back(captureDeviceID); } else { int num_devices = outSize / sizeof(AudioObjectID); printf("Input device has %d subdevices\n", num_devices); for (int i = 0; i < num_devices; i++) { captureDeviceIDArray.push_back(sub_device[i]); } } err = AudioDeviceGetProperty(playbackDeviceID, 0, kAudioDeviceSectionGlobal, kAudioAggregateDevicePropertyActiveSubDeviceList, &outSize, sub_device); vector playbackDeviceIDArray; if (err != noErr) { printf("Output device does not have subdevices\n"); playbackDeviceIDArray.push_back(playbackDeviceID); } else { int num_devices = outSize / sizeof(AudioObjectID); printf("Output device has %d subdevices\n", num_devices); for (int i = 0; i < num_devices; i++) { playbackDeviceIDArray.push_back(sub_device[i]); } } return CreateAggregateDeviceAux(captureDeviceIDArray, playbackDeviceIDArray, samplerate, outAggregateDevice); } OSStatus TCoreAudioRenderer::SRNotificationCallback(AudioDeviceID inDevice, UInt32 /*inChannel*/, Boolean /*isInput*/, AudioDevicePropertyID inPropertyID, void* inClientData) { TCoreAudioRenderer* driver = (TCoreAudioRenderer*)inClientData; switch (inPropertyID) { case kAudioDevicePropertyNominalSampleRate: { printf("JackCoreAudioDriver::SRNotificationCallback kAudioDevicePropertyNominalSampleRate\n"); driver->fState = true; // Check new sample rate Float64 sampleRate; UInt32 outSize = sizeof(Float64); OSStatus err = AudioDeviceGetProperty(inDevice, 0, kAudioDeviceSectionGlobal, kAudioDevicePropertyNominalSampleRate, &outSize, &sampleRate); if (err != noErr) { printf("Cannot get current sample rate\n"); printError(err); } else { printf("SRNotificationCallback : checked sample rate = %f\n", sampleRate); } break; } } return noErr; } int TCoreAudioRenderer::SetupSampleRateAux(AudioDeviceID inDevice, int samplerate) { OSStatus err = noErr; UInt32 outSize; Float64 sampleRate; // Get sample rate outSize = sizeof(Float64); err = AudioDeviceGetProperty(inDevice, 0, kAudioDeviceSectionGlobal, kAudioDevicePropertyNominalSampleRate, &outSize, &sampleRate); if (err != noErr) { printf("Cannot get current sample rate\n"); printError(err); return -1; } else { printf("Current sample rate = %f\n", sampleRate); } // If needed, set new sample rate if (samplerate != (int)sampleRate) { sampleRate = (Float64)samplerate; // To get SR change notification err = AudioDeviceAddPropertyListener(inDevice, 0, true, kAudioDevicePropertyNominalSampleRate, SRNotificationCallback, this); if (err != noErr) { printf("Error calling AudioDeviceAddPropertyListener with kAudioDevicePropertyNominalSampleRate\n"); printError(err); return -1; } err = AudioDeviceSetProperty(inDevice, NULL, 0, kAudioDeviceSectionGlobal, kAudioDevicePropertyNominalSampleRate, outSize, &sampleRate); if (err != noErr) { printf("Cannot set sample rate = %d\n", samplerate); printError(err); return -1; } // Waiting for SR change notification int count = 0; while (!fState && count++ < WAIT_COUNTER) { usleep(100000); printf("Wait count = %d\n", count); } // Check new sample rate outSize = sizeof(Float64); err = AudioDeviceGetProperty(inDevice, 0, kAudioDeviceSectionGlobal, kAudioDevicePropertyNominalSampleRate, &outSize, &sampleRate); if (err != noErr) { printf("Cannot get current sample rate\n"); printError(err); } else { printf("Checked sample rate = %f\n", sampleRate); } // Remove SR change notification AudioDeviceRemovePropertyListener(inDevice, 0, true, kAudioDevicePropertyNominalSampleRate, SRNotificationCallback); } return 0; } OSStatus TCoreAudioRenderer::CreateAggregateDeviceAux(vector captureDeviceID, vector playbackDeviceID, int samplerate, AudioDeviceID* outAggregateDevice) { OSStatus osErr = noErr; UInt32 outSize; Boolean outWritable; bool fClockDriftCompensate = true; // Prepare sub-devices for clock drift compensation // Workaround for bug in the HAL : until 10.6.2 AudioObjectPropertyAddress theAddressOwned = { kAudioObjectPropertyOwnedObjects, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster }; AudioObjectPropertyAddress theAddressDrift = { kAudioSubDevicePropertyDriftCompensation, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster }; UInt32 theQualifierDataSize = sizeof(AudioObjectID); AudioClassID inClass = kAudioSubDeviceClassID; void* theQualifierData = &inClass; UInt32 subDevicesNum = 0; //--------------------------------------------------------------------------- // Setup SR of both devices otherwise creating AD may fail... //--------------------------------------------------------------------------- UInt32 keptclockdomain = 0; UInt32 clockdomain = 0; outSize = sizeof(UInt32); bool need_clock_drift_compensation = false; for (UInt32 i = 0; i < captureDeviceID.size(); i++) { if (SetupSampleRateAux(captureDeviceID[i], samplerate) < 0) { printf("TCoreAudioRenderer::CreateAggregateDevice : cannot set SR of input device\n"); } else { // Check clock domain osErr = AudioDeviceGetProperty(captureDeviceID[i], 0, kAudioDeviceSectionGlobal, kAudioDevicePropertyClockDomain, &outSize, &clockdomain); if (osErr != 0) { printf("TCoreAudioRenderer::CreateAggregateDevice : kAudioDevicePropertyClockDomain error\n"); printError(osErr); } else { keptclockdomain = (keptclockdomain == 0) ? clockdomain : keptclockdomain; printf("TCoreAudioRenderer::CreateAggregateDevice : input clockdomain = %d\n", clockdomain); if (clockdomain != 0 && clockdomain != keptclockdomain) { printf("TCoreAudioRenderer::CreateAggregateDevice : devices do not share the same clock!! clock drift compensation would be needed...\n"); need_clock_drift_compensation = true; } } } } for (UInt32 i = 0; i < playbackDeviceID.size(); i++) { if (SetupSampleRateAux(playbackDeviceID[i], samplerate) < 0) { printf("TCoreAudioRenderer::CreateAggregateDevice : cannot set SR of output device\n"); } else { // Check clock domain osErr = AudioDeviceGetProperty(playbackDeviceID[i], 0, kAudioDeviceSectionGlobal, kAudioDevicePropertyClockDomain, &outSize, &clockdomain); if (osErr != 0) { printf("TCoreAudioRenderer::CreateAggregateDevice : kAudioDevicePropertyClockDomain error\n"); printError(osErr); } else { keptclockdomain = (keptclockdomain == 0) ? clockdomain : keptclockdomain; printf("TCoreAudioRenderer::CreateAggregateDevice : output clockdomain = %d", clockdomain); if (clockdomain != 0 && clockdomain != keptclockdomain) { printf("TCoreAudioRenderer::CreateAggregateDevice : devices do not share the same clock!! clock drift compensation would be needed...\n"); need_clock_drift_compensation = true; } } } } // If no valid clock domain was found, then assume we have to compensate... if (keptclockdomain == 0) { need_clock_drift_compensation = true; } //--------------------------------------------------------------------------- // Start to create a new aggregate by getting the base audio hardware plugin //--------------------------------------------------------------------------- char device_name[256]; for (UInt32 i = 0; i < captureDeviceID.size(); i++) { GetDeviceNameFromID(captureDeviceID[i], device_name); printf("Separated input = '%s' \n", device_name); } for (UInt32 i = 0; i < playbackDeviceID.size(); i++) { GetDeviceNameFromID(playbackDeviceID[i], device_name); printf("Separated output = '%s' \n", device_name); } osErr = AudioHardwareGetPropertyInfo(kAudioHardwarePropertyPlugInForBundleID, &outSize, &outWritable); if (osErr != noErr) { printf("TCoreAudioRenderer::CreateAggregateDevice : AudioHardwareGetPropertyInfo kAudioHardwarePropertyPlugInForBundleID error\n"); printError(osErr); return osErr; } AudioValueTranslation pluginAVT; CFStringRef inBundleRef = CFSTR("com.apple.audio.CoreAudio"); pluginAVT.mInputData = &inBundleRef; pluginAVT.mInputDataSize = sizeof(inBundleRef); pluginAVT.mOutputData = &fPluginID; pluginAVT.mOutputDataSize = sizeof(fPluginID); osErr = AudioHardwareGetProperty(kAudioHardwarePropertyPlugInForBundleID, &outSize, &pluginAVT); if (osErr != noErr) { printf("TCoreAudioRenderer::CreateAggregateDevice : AudioHardwareGetProperty kAudioHardwarePropertyPlugInForBundleID error\n"); printError(osErr); return osErr; } //------------------------------------------------- // Create a CFDictionary for our aggregate device //------------------------------------------------- CFMutableDictionaryRef aggDeviceDict = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); CFStringRef AggregateDeviceNameRef = CFSTR("JackDuplex"); CFStringRef AggregateDeviceUIDRef = CFSTR("com.grame.JackDuplex"); // add the name of the device to the dictionary CFDictionaryAddValue(aggDeviceDict, CFSTR(kAudioAggregateDeviceNameKey), AggregateDeviceNameRef); // add our choice of UID for the aggregate device to the dictionary CFDictionaryAddValue(aggDeviceDict, CFSTR(kAudioAggregateDeviceUIDKey), AggregateDeviceUIDRef); // add a "private aggregate key" to the dictionary int value = 1; CFNumberRef AggregateDeviceNumberRef = CFNumberCreate(NULL, kCFNumberIntType, &value); SInt32 system; Gestalt(gestaltSystemVersion, &system); printf("TCoreAudioRenderer::CreateAggregateDevice : system version = %x limit = %x\n", system, 0x00001054); // Starting with 10.5.4 systems, the AD can be internal... (better) if (system < 0x00001054) { printf("TCoreAudioRenderer::CreateAggregateDevice : public aggregate device....\n"); } else { printf("TCoreAudioRenderer::CreateAggregateDevice : private aggregate device....\n"); CFDictionaryAddValue(aggDeviceDict, CFSTR(kAudioAggregateDeviceIsPrivateKey), AggregateDeviceNumberRef); } // Prepare sub-devices for clock drift compensation CFMutableArrayRef subDevicesArrayClock = NULL; /* if (fClockDriftCompensate) { if (need_clock_drift_compensation) { jack_info("Clock drift compensation activated..."); subDevicesArrayClock = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); for (UInt32 i = 0; i < captureDeviceID.size(); i++) { CFStringRef UID = GetDeviceName(captureDeviceID[i]); if (UID) { CFMutableDictionaryRef subdeviceAggDeviceDict = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); CFDictionaryAddValue(subdeviceAggDeviceDict, CFSTR(kAudioSubDeviceUIDKey), UID); CFDictionaryAddValue(subdeviceAggDeviceDict, CFSTR(kAudioSubDeviceDriftCompensationKey), AggregateDeviceNumberRef); //CFRelease(UID); CFArrayAppendValue(subDevicesArrayClock, subdeviceAggDeviceDict); } } for (UInt32 i = 0; i < playbackDeviceID.size(); i++) { CFStringRef UID = GetDeviceName(playbackDeviceID[i]); if (UID) { CFMutableDictionaryRef subdeviceAggDeviceDict = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); CFDictionaryAddValue(subdeviceAggDeviceDict, CFSTR(kAudioSubDeviceUIDKey), UID); CFDictionaryAddValue(subdeviceAggDeviceDict, CFSTR(kAudioSubDeviceDriftCompensationKey), AggregateDeviceNumberRef); //CFRelease(UID); CFArrayAppendValue(subDevicesArrayClock, subdeviceAggDeviceDict); } } // add sub-device clock array for the aggregate device to the dictionary CFDictionaryAddValue(aggDeviceDict, CFSTR(kAudioAggregateDeviceSubDeviceListKey), subDevicesArrayClock); } else { jack_info("Clock drift compensation was asked but is not needed (devices use the same clock domain)"); } } */ //------------------------------------------------- // Create a CFMutableArray for our sub-device list //------------------------------------------------- // we need to append the UID for each device to a CFMutableArray, so create one here CFMutableArrayRef subDevicesArray = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); vector captureDeviceUID; for (UInt32 i = 0; i < captureDeviceID.size(); i++) { CFStringRef ref = GetDeviceName(captureDeviceID[i]); if (ref == NULL) return -1; captureDeviceUID.push_back(ref); // input sub-devices in this example, so append the sub-device's UID to the CFArray CFArrayAppendValue(subDevicesArray, ref); } vector playbackDeviceUID; for (UInt32 i = 0; i < playbackDeviceID.size(); i++) { CFStringRef ref = GetDeviceName(playbackDeviceID[i]); if (ref == NULL) return -1; playbackDeviceUID.push_back(ref); // output sub-devices in this example, so append the sub-device's UID to the CFArray CFArrayAppendValue(subDevicesArray, ref); } //----------------------------------------------------------------------- // Feed the dictionary to the plugin, to create a blank aggregate device //----------------------------------------------------------------------- AudioObjectPropertyAddress pluginAOPA; pluginAOPA.mSelector = kAudioPlugInCreateAggregateDevice; pluginAOPA.mScope = kAudioObjectPropertyScopeGlobal; pluginAOPA.mElement = kAudioObjectPropertyElementMaster; UInt32 outDataSize; osErr = AudioObjectGetPropertyDataSize(fPluginID, &pluginAOPA, 0, NULL, &outDataSize); if (osErr != noErr) { printf("TCoreAudioRenderer::CreateAggregateDevice : AudioObjectGetPropertyDataSize error\n"); printError(osErr); goto error; } osErr = AudioObjectGetPropertyData(fPluginID, &pluginAOPA, sizeof(aggDeviceDict), &aggDeviceDict, &outDataSize, outAggregateDevice); if (osErr != noErr) { printf("TCoreAudioRenderer::CreateAggregateDevice : AudioObjectGetPropertyData error\n"); printError(osErr); goto error; } // pause for a bit to make sure that everything completed correctly // this is to work around a bug in the HAL where a new aggregate device seems to disappear briefly after it is created CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.1, false); //------------------------- // Set the sub-device list //------------------------- pluginAOPA.mSelector = kAudioAggregateDevicePropertyFullSubDeviceList; pluginAOPA.mScope = kAudioObjectPropertyScopeGlobal; pluginAOPA.mElement = kAudioObjectPropertyElementMaster; outDataSize = sizeof(CFMutableArrayRef); osErr = AudioObjectSetPropertyData(*outAggregateDevice, &pluginAOPA, 0, NULL, outDataSize, &subDevicesArray); if (osErr != noErr) { printf("TCoreAudioRenderer::CreateAggregateDevice : AudioObjectSetPropertyData for sub-device list error\n"); printError(osErr); goto error; } // pause again to give the changes time to take effect CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.1, false); //----------------------- // Set the master device //----------------------- // set the master device manually (this is the device which will act as the master clock for the aggregate device) // pass in the UID of the device you want to use pluginAOPA.mSelector = kAudioAggregateDevicePropertyMasterSubDevice; pluginAOPA.mScope = kAudioObjectPropertyScopeGlobal; pluginAOPA.mElement = kAudioObjectPropertyElementMaster; outDataSize = sizeof(CFStringRef); osErr = AudioObjectSetPropertyData(*outAggregateDevice, &pluginAOPA, 0, NULL, outDataSize, &captureDeviceUID[0]); // First apture is master... if (osErr != noErr) { printf("TCoreAudioRenderer::CreateAggregateDevice : AudioObjectSetPropertyData for master device error\n"); printError(osErr); goto error; } // pause again to give the changes time to take effect CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.1, false); // Prepare sub-devices for clock drift compensation // Workaround for bug in the HAL : until 10.6.2 if (fClockDriftCompensate) { if (need_clock_drift_compensation) { printf("Clock drift compensation activated...\n"); // Get the property data size osErr = AudioObjectGetPropertyDataSize(*outAggregateDevice, &theAddressOwned, theQualifierDataSize, theQualifierData, &outSize); if (osErr != noErr) { printf("TCoreAudioRenderer::CreateAggregateDevice kAudioObjectPropertyOwnedObjects error\n"); printError(osErr); } // Calculate the number of object IDs subDevicesNum = outSize / sizeof(AudioObjectID); printf("TCoreAudioRenderer::CreateAggregateDevice clock drift compensation, number of sub-devices = %d\n", subDevicesNum); AudioObjectID subDevices[subDevicesNum]; outSize = sizeof(subDevices); osErr = AudioObjectGetPropertyData(*outAggregateDevice, &theAddressOwned, theQualifierDataSize, theQualifierData, &outSize, subDevices); if (osErr != noErr) { printf("TCoreAudioRenderer::CreateAggregateDevice kAudioObjectPropertyOwnedObjects error\n"); printError(osErr); } // Set kAudioSubDevicePropertyDriftCompensation property... for (UInt32 index = 0; index < subDevicesNum; ++index) { UInt32 theDriftCompensationValue = 1; osErr = AudioObjectSetPropertyData(subDevices[index], &theAddressDrift, 0, NULL, sizeof(UInt32), &theDriftCompensationValue); if (osErr != noErr) { printf("TCoreAudioRenderer::CreateAggregateDevice kAudioSubDevicePropertyDriftCompensation error\n"); printError(osErr); } } } else { printf("Clock drift compensation was asked but is not needed (devices use the same clock domain)\n"); } } // pause again to give the changes time to take effect CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.1, false); //---------- // Clean up //---------- // release the private AD key CFRelease(AggregateDeviceNumberRef); // release the CF objects we have created - we don't need them any more CFRelease(aggDeviceDict); CFRelease(subDevicesArray); if (subDevicesArrayClock) CFRelease(subDevicesArrayClock); // release the device UID for (UInt32 i = 0; i < captureDeviceUID.size(); i++) { CFRelease(captureDeviceUID[i]); } for (UInt32 i = 0; i < playbackDeviceUID.size(); i++) { CFRelease(playbackDeviceUID[i]); } printf("New aggregate device %d\n", *outAggregateDevice); return noErr; error: DestroyAggregateDevice(); return -1; } OSStatus TCoreAudioRenderer::DestroyAggregateDevice() { OSStatus osErr = noErr; AudioObjectPropertyAddress pluginAOPA; pluginAOPA.mSelector = kAudioPlugInDestroyAggregateDevice; pluginAOPA.mScope = kAudioObjectPropertyScopeGlobal; pluginAOPA.mElement = kAudioObjectPropertyElementMaster; UInt32 outDataSize; if (fPluginID > 0) { osErr = AudioObjectGetPropertyDataSize(fPluginID, &pluginAOPA, 0, NULL, &outDataSize); if (osErr != noErr) { printf("TCoreAudioRenderer::DestroyAggregateDevice : AudioObjectGetPropertyDataSize error\n"); printError(osErr); return osErr; } osErr = AudioObjectGetPropertyData(fPluginID, &pluginAOPA, 0, NULL, &outDataSize, &fDeviceID); if (osErr != noErr) { printf("TCoreAudioRenderer::DestroyAggregateDevice : AudioObjectGetPropertyData error\n"); printError(osErr); return osErr; } } return noErr; } long TCoreAudioRenderer::OpenDefault(long inChan, long outChan, long bufferSize, long samplerate) { OSStatus err = noErr; ComponentResult err1; UInt32 outSize; UInt32 enableIO; Boolean isWritable; AudioStreamBasicDescription srcFormat, dstFormat, sampleRate; long in_nChannels, out_nChannels; printf("OpenDefault inChan = %ld outChan = %ld bufferSize = %ld samplerate = %ld\n", inChan, outChan, bufferSize, samplerate); SInt32 major; SInt32 minor; Gestalt(gestaltSystemVersionMajor, &major); Gestalt(gestaltSystemVersionMinor, &minor); // Starting with 10.6 systems, the HAL notification thread is created internally if (major == 10 && minor >= 6) { CFRunLoopRef theRunLoop = NULL; AudioObjectPropertyAddress theAddress = { kAudioHardwarePropertyRunLoop, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster }; OSStatus osErr = AudioObjectSetPropertyData (kAudioObjectSystemObject, &theAddress, 0, NULL, sizeof(CFRunLoopRef), &theRunLoop); if (osErr != noErr) { printf("TCoreAudioRenderer::Open kAudioHardwarePropertyRunLoop error\n"); printError(osErr); } } if (GetDefaultDevice(inChan, outChan, samplerate,&fDeviceID) != noErr) { printf("Cannot open default device\n"); return OPEN_ERR; } // Setting buffer size outSize = sizeof(UInt32); err = AudioDeviceSetProperty(fDeviceID, NULL, 0, false, kAudioDevicePropertyBufferFrameSize, outSize, &bufferSize); if (err != noErr) { printf("Cannot set buffer size %ld\n", bufferSize); printError(err); return OPEN_ERR; } // Setting sample rate outSize = sizeof(AudioStreamBasicDescription); err = AudioDeviceGetProperty(fDeviceID, 0, false, kAudioDevicePropertyStreamFormat, &outSize, &sampleRate); if (err != noErr) { printf("Cannot get current sample rate\n"); printError(err); return OPEN_ERR; } if (samplerate != long(sampleRate.mSampleRate)) { sampleRate.mSampleRate = (Float64)(samplerate); err = AudioDeviceSetProperty(fDeviceID, NULL, 0, false, kAudioDevicePropertyStreamFormat, outSize, &sampleRate); if (err != noErr) { printf("Cannot set sample rate = %ld\n", samplerate); printError(err); return OPEN_ERR; } } // AUHAL ComponentDescription cd = {kAudioUnitType_Output, kAudioUnitSubType_HALOutput, kAudioUnitManufacturer_Apple, 0, 0}; Component HALOutput = FindNextComponent(NULL, &cd); err1 = OpenAComponent(HALOutput, &fAUHAL); if (err1 != noErr) { printf("Error calling OpenAComponent\n"); printError(err1); goto error; } err1 = AudioUnitInitialize(fAUHAL); if (err1 != noErr) { printf("Cannot initialize AUHAL unit\n"); printError(err1); goto error; } enableIO = 1; err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output, 0, &enableIO, sizeof(enableIO)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output\n"); printError(err1); goto error; } enableIO = 1; err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input, 1, &enableIO, sizeof(enableIO)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input\n"); printError(err1); goto error; } err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_CurrentDevice, kAudioUnitScope_Global, 0, &fDeviceID, sizeof(AudioDeviceID)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_CurrentDevice\n"); printError(err1); goto error; } err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 1, (UInt32*)&bufferSize, sizeof(UInt32)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_MaximumFramesPerSlice\n"); printError(err1); goto error; } err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 0, (UInt32*)&bufferSize, sizeof(UInt32)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_MaximumFramesPerSlice\n"); printError(err1); goto error; } err1 = AudioUnitGetPropertyInfo(fAUHAL, kAudioOutputUnitProperty_ChannelMap, kAudioUnitScope_Input, 1, &outSize, &isWritable); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_ChannelMap-INFO 1\n"); printError(err1); } in_nChannels = (err1 == noErr) ? outSize / sizeof(SInt32) : 0; printf("in_nChannels = %ld\n", in_nChannels); err1 = AudioUnitGetPropertyInfo(fAUHAL, kAudioOutputUnitProperty_ChannelMap, kAudioUnitScope_Output, 0, &outSize, &isWritable); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_ChannelMap-INFO 0\n"); printError(err1); } out_nChannels = (err1 == noErr) ? outSize / sizeof(SInt32) : 0; printf("out_nChannels = %ld\n", out_nChannels); /* Just ignore this case : seems to work without any further change... if (outChan > out_nChannels) { printf("This device hasn't required output channels\n"); goto error; } if (inChan > in_nChannels) { printf("This device hasn't required input channels\n"); goto error; } */ if (outChan < out_nChannels) { SInt32 chanArr[out_nChannels]; for (int i = 0; i < out_nChannels; i++) { chanArr[i] = -1; } for (int i = 0; i < outChan; i++) { chanArr[i] = i; } err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_ChannelMap, kAudioUnitScope_Output, 0, chanArr, sizeof(SInt32) * out_nChannels); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_ChannelMap 0\n"); printError(err1); } } if (inChan < in_nChannels) { SInt32 chanArr[in_nChannels]; for (int i = 0; i < in_nChannels; i++) { chanArr[i] = -1; } for (int i = 0; i < inChan; i++) { chanArr[i] = i; } AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_ChannelMap , kAudioUnitScope_Input, 1, chanArr, sizeof(SInt32) * in_nChannels); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_ChannelMap 1\n"); printError(err1); } } if (inChan > 0) { outSize = sizeof(AudioStreamBasicDescription); err1 = AudioUnitGetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 1, &srcFormat, &outSize); if (err1 != noErr) { printf("Error calling AudioUnitGetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Output\n"); printError(err1); } PrintStreamDesc(&srcFormat); srcFormat.mSampleRate = samplerate; srcFormat.mFormatID = kAudioFormatLinearPCM; srcFormat.mFormatFlags = kAudioFormatFlagsNativeFloatPacked | kLinearPCMFormatFlagIsNonInterleaved; srcFormat.mBytesPerPacket = sizeof(float); srcFormat.mFramesPerPacket = 1; srcFormat.mBytesPerFrame = sizeof(float); srcFormat.mChannelsPerFrame = inChan; srcFormat.mBitsPerChannel = 32; PrintStreamDesc(&srcFormat); err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 1, &srcFormat, sizeof(AudioStreamBasicDescription)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Output\n"); printError(err1); } } if (outChan > 0) { outSize = sizeof(AudioStreamBasicDescription); err1 = AudioUnitGetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &dstFormat, &outSize); if (err1 != noErr) { printf("Error calling AudioUnitGetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Output\n"); printError(err1); } PrintStreamDesc(&dstFormat); dstFormat.mSampleRate = samplerate; dstFormat.mFormatID = kAudioFormatLinearPCM; dstFormat.mFormatFlags = kAudioFormatFlagsNativeFloatPacked | kLinearPCMFormatFlagIsNonInterleaved; dstFormat.mBytesPerPacket = sizeof(float); dstFormat.mFramesPerPacket = 1; dstFormat.mBytesPerFrame = sizeof(float); dstFormat.mChannelsPerFrame = outChan; dstFormat.mBitsPerChannel = 32; PrintStreamDesc(&dstFormat); err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &dstFormat, sizeof(AudioStreamBasicDescription)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Output\n"); printError(err1); } } if (inChan > 0 && outChan == 0) { AURenderCallbackStruct output; output.inputProc = Render; output.inputProcRefCon = this; err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, 0, &output, sizeof(output)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_SetRenderCallback 1\n"); printError(err1); goto error; } } else { AURenderCallbackStruct output; output.inputProc = Render; output.inputProcRefCon = this; err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, 0, &output, sizeof(output)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_SetRenderCallback 0\n"); printError(err1); goto error; } } fInputData = (AudioBufferList*)malloc(sizeof(UInt32) + inChan * sizeof(AudioBuffer)); if (fInputData == 0) { printf("Cannot allocate memory for input buffers\n"); goto error; } fInputData->mNumberBuffers = inChan; // Prepare buffers for (int i = 0; i < inChan; i++) { fInputData->mBuffers[i].mNumberChannels = 1; fInputData->mBuffers[i].mData = malloc(bufferSize * sizeof(float)); fInputData->mBuffers[i].mDataByteSize = bufferSize * sizeof(float); } return NO_ERR; error: AudioUnitUninitialize(fAUHAL); CloseComponent(fAUHAL); return OPEN_ERR; } long TCoreAudioRenderer::Close() { for (int i = 0; i < gDevNumInChans; i++) { free(fInputData->mBuffers[i].mData); } free(fInputData); AudioUnitUninitialize(fAUHAL); CloseComponent(fAUHAL); DestroyAggregateDevice(); return NO_ERR; } long TCoreAudioRenderer::Start() { OSStatus err = AudioOutputUnitStart(fAUHAL); if (err != noErr) { printf("Error while opening device : device open error \n"); return OPEN_ERR; } else { return NO_ERR; } } long TCoreAudioRenderer::Stop() { OSStatus err = AudioOutputUnitStop(fAUHAL); if (err != noErr) { printf("Error while closing device : device close error \n"); return OPEN_ERR; } else { return NO_ERR; } } /****************************************************************************** ******************************************************************************* CORE AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ class coreaudio : public audio { TCoreAudioRenderer audio_device; long fSampleRate, fFramesPerBuf; public: coreaudio(long srate, long fpb) : fSampleRate(srate), fFramesPerBuf(fpb) {} virtual ~coreaudio() {} virtual bool init(const char* /*name*/, dsp* DSP) { gDsp = DSP; DSP->init (fSampleRate); gDevNumInChans = DSP->getNumInputs(); gDevNumOutChans = DSP->getNumOutputs(); if (audio_device.OpenDefault(gDevNumInChans, gDevNumOutChans, fFramesPerBuf, fSampleRate) < 0) { printf("Cannot open CoreAudio device\n"); return false; } return true; } virtual bool start() { if (audio_device.Start() < 0) { printf("Cannot start CoreAudio device\n"); return false; } return true; } virtual void stop() { audio_device.Stop(); audio_device.Close(); } }; #endif /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/audio/netjack-dsp.h0000644000175000017500000001034411702130733021006 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #ifndef __netjack_dsp__ #define __netjack_dsp__ #include "audio.h" #include "dsp.h" #include #include class netjackaudio : public audio { dsp* fDsp; jack_net_slave_t* fNet; int fCelt; std::string fMasterIP; int fMasterPort; static void net_shutdown(void *) { printf("Network failure, restart...\n"); } static int net_process(jack_nframes_t buffer_size, int, float** audio_input_buffer, int, void**, int, float** audio_output_buffer, int, void**, void* arg) { AVOIDDENORMALS; netjackaudio* obj = (netjackaudio*)arg; obj->fDsp->compute(buffer_size, audio_input_buffer, audio_output_buffer); return 0; } public: netjackaudio(int celt, const std::string master_ip, int master_port) :fCelt(celt), fMasterIP(master_ip), fMasterPort(master_port) {} bool init(const char* name, dsp* DSP) { fDsp = DSP; jack_slave_t request = { DSP->getNumInputs(), DSP->getNumOutputs(), 0, 0, DEFAULT_MTU, -1, (fCelt > 0) ? JackCeltEncoder: JackFloatEncoder, (fCelt > 0) ? fCelt : 0, 2 }; jack_master_t result; if ((fNet = jack_net_slave_open(fMasterIP.c_str(), fMasterPort, name, &request, &result)) == 0) { printf("jack remote server not running ?\n"); return false; } jack_set_net_slave_process_callback(fNet, net_process, this); jack_set_net_slave_shutdown_callback(fNet, net_shutdown, 0); fDsp->init(result.sample_rate); return true; } bool start() { if (jack_net_slave_activate(fNet)) { printf("cannot activate net"); return false; } return true; } void stop() { jack_net_slave_deactivate(fNet); jack_net_slave_close(fNet); } }; #endif /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/audio/audio.h0000644000175000017500000000114111702130733017677 0ustar orlareyorlarey /****************************************************************************** ******************************************************************************* An abstraction layer over audio layer ******************************************************************************* *******************************************************************************/ #ifndef __audio__ #define __audio__ class dsp; class audio { public: audio() {} virtual ~audio() {} virtual bool init(const char* name, dsp*) = 0; virtual bool start() = 0; virtual void stop() = 0; }; #endif faust-0.9.46/architecture/vsti-mono.cpp0000644000175000017500000011104511702130733017770 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2007-2011 Julius Smith All rights reserved. ----------------------------BSD License------------------------------ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Julius Smith nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------VST SDK---------------------------------- In order to compile a VST (TM) plugin with this architecture file you will need the proprietary VST SDK from Steinberg. Please check the corresponding license. ************************************************************************ ************************************************************************/ /******************************************************************** * vsti-mono.cpp - Monaural VSTi-2.4 wrapper for the FAUST language. * * Usage: faust -a vsti-mono.cpp myfaustprog.dsp * * By Julius Smith (http://ccrma.stanford.edu/~jos/), based on vst.cpp * by remy muller * (http://www.smartelectronix.com/~mdsp/). Essentially, vst.cpp was * first edited to look more like the "again" programming sample that * comes with the VST-2.4 SDK from Steinberg. Next, features from the * "vstxsynth" program sample were added to give simple MIDI synth * support analogous to that of faust2pd, except that only one voice * is supported. (If the Faust patch has any input signals, this * architecture file should reduce to vst2p4.cpp --- i.e., basic VST * plugin support.) As with faust2pd, to obtain MIDI control via * NoteOn/Off, Velocity, and KeyNumber, there must be a button named * "gate" and sliders (or numeric entries) named "gain" and "freq" in * the Faust patch specified in myfaustprog.dsp. * * NOTES: * Relies on automatically generated slider GUI for VST plugins. * - Horizontal and vertical sliders mapped to "vstSlider" * - Numeric Entries similarly converted to "vstSlider" * - No support for bar graphs or additional numeric and text displays * - Tested on the Muse Receptor Pro 1.0, System Version 1.6.20070717, * using Visual C++ 2008 Express Edition * (part of the Microsoft Visual Studio 2008, Beta 2) * - Reference: * http://ccrma.stanford.edu/realsimple/faust/Generating_VST_Plugin_Faust.html * * FAUST * Copyright (C) 2003-2007 GRAME, Centre National de Creation Musicale * http://www.grame.fr/ * ********************************************************************/ // Suggestion: Faust could replace all leading comments in this file // by the following shorter comment: /******************************************************************** * C++ source generated by the following command line: * * faust -a vsti.cpp name.dsp -o name-vsti.cpp * ********************************************************************/ // (where the filenames could be really right, and the path to vsti.cpp // could be included as well.) #include #include #include #include #include #include #include #include //#include #include #include #include #include #include using namespace std ; // There is a bug with powf() when cross compiling with mingw // the following macro avoid the problem #ifdef WIN32 #define powf(x,y) pow(x,y) #define expf(x) exp(x) #endif // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif struct Meta { void declare (const char* key, const char* value) { } }; #ifdef __GNUC__ //------------------------------------------------------------------- // Generic min and max using gcc extensions //------------------------------------------------------------------- #define max(x,y) ((x)>?(y)) #define min(x,y) ((x)b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a T abs (T a) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<> /****************************************************************************** ******************************************************************************* * * USER INTERFACE * ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(char* label, float* zone) = 0; virtual void addToggleButton(char* label, float* zone) = 0; virtual void addCheckButton(char* label, float* zone) = 0; virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumDisplay(char* label, float* zone, int precision) = 0; virtual void addTextDisplay(char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(char* label, float* zone, float min, float max) = 0; virtual void openFrameBox(char* label) = 0; virtual void openTabBox(char* label) = 0; virtual void openHorizontalBox(char* label) = 0; virtual void openVerticalBox(char* label) = 0; virtual void closeBox() = 0; virtual void run() {}; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /****************************************************************************** ******************************************************************************* * * FAUST DSP * ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // Base dsp class for this architecture //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ /****************************************************************************** * * VST wrapper * ******************************************************************************/ #include "audioeffectx.h" class vstUI; //------------------------------------------------------------------------------ // Faust class prototype //------------------------------------------------------------------------------ class Faust : public AudioEffectX { public: Faust(audioMasterCallback audioMaster, mydsp* dspi, vstUI* dspUIi); virtual ~Faust(); virtual void processReplacing (float **inputs, float **outputs, VstInt32 sampleFrames); virtual VstInt32 processEvents (VstEvents* events); virtual void setProgram (VstInt32 program); virtual void setProgramName (char *name); virtual void getProgramName (char *name); virtual bool getProgramNameIndexed (VstInt32 category, VstInt32 index, char *text); virtual void setParameter (VstInt32 index, float value); virtual float getParameter (VstInt32 index); virtual void getParameterLabel (VstInt32 index, char *label); virtual void getParameterDisplay (VstInt32 index, char *text); virtual void getParameterName (VstInt32 index, char *text); virtual void setSampleRate (float sampleRate); virtual bool getInputProperties (VstInt32 index, VstPinProperties *properties); virtual bool getOutputProperties (VstInt32 index, VstPinProperties *properties); virtual bool getEffectName (char *name); virtual bool getVendorString (char *text); virtual bool getProductString (char *text); virtual VstInt32 getVendorVersion (); virtual VstInt32 canDo (char *text); virtual VstInt32 getNumMidiInputChannels (); virtual VstInt32 getNumMidiOutputChannels (); virtual VstInt32 getMidiProgramName (VstInt32 channel, MidiProgramName *midiProgramName); virtual VstInt32 getCurrentMidiProgram (VstInt32 channel, MidiProgramName *currentProgram); virtual VstInt32 getMidiProgramCategory (VstInt32 channel, MidiProgramCategory *category); private: mydsp* dsp; vstUI* dspUI; // For synths: bool noteIsOn; VstInt32 currentNote; VstInt32 currentVelocity; VstInt32 currentDelta; void initProcess (); void noteOn (VstInt32 note, VstInt32 velocity, VstInt32 delta); void noteOff (); void fillProgram (VstInt32 channel, VstInt32 prg, MidiProgramName* mpn); char programName[kVstMaxProgNameLen + 1]; }; /*--------------------------------------------------------------------------*/ class vstUIObject { /* superclass of all VST UI widgets */ protected: string fLabel; float* fZone; inline float clip(float min, float max, float val) { return (val < min) ? min : (val > max) ? max : val; } inline float normalize(float min, float max, float val) { // VST parameters are normalized to the range [0;1] on the host val = min + val * (max - min); return (val < min) ? min : (val > max) ? max : val; } public: vstUIObject(char* label, float* zone):fLabel(label),fZone(zone) {} virtual ~vstUIObject() {} virtual void GetName(char *text){std::strcpy(text,fLabel.c_str());} virtual void SetValue(double f) {*fZone = normalize(0.0f,1.0f,(float)f);} virtual void SetValueNoNormalization(double f) {*fZone = clip(0.0f,1.0f,(float)f);} virtual float GetValue() {return *fZone;} virtual void GetDisplay(char *text){std::sprintf(text,"%f",*fZone);} virtual long GetID() { /* returns the sum of all the ASCII characters contained in the parameter's label */ unsigned int i; long acc; for(i=0,acc = 0;i0.5f)?1.0f:0.0f;} virtual void GetDisplay(char *text){(*fZone>0.5f)? std::strcpy(text,"ON"): std::strcpy(text,"OFF");} }; /*--------------------------------------------------------------------------*/ class vstCheckButton : public vstUIObject { public: vstCheckButton(char* label, float* zone):vstUIObject(label,zone) {} virtual ~vstCheckButton() {} virtual float GetValue() {return *fZone;} virtual void SetValue(double f) {*fZone = (f>0.5f)?1.0f:0.0f;} virtual void GetDisplay(char *text){(*fZone>0.5f)? std::strcpy(text,"ON"): std::strcpy(text,"OFF");} }; /*--------------------------------------------------------------------------*/ class vstButton : public vstUIObject { public: vstButton(char* label, float* zone):vstUIObject(label,zone) {} virtual ~vstButton() {} virtual float GetValue() {return *fZone;} virtual void SetValue(double f) {*fZone = (f>0.5f)?1.0f:0.0f;} virtual void GetDisplay(char *text){(*fZone>0.5f)? std::strcpy(text,"ON"): std::strcpy(text,"OFF");} }; /*--------------------------------------------------------------------------*/ class vstSlider : public vstUIObject{ private: float fInit; float fMin; float fMax; float fStep; public: vstSlider(char* label, float* zone, float init, float min, float max, float step) :vstUIObject(label,zone), fInit(init), fMin(min), fMax(max),fStep(step) {} virtual ~vstSlider() {} // The VST host calls GetValue() and expects a result in [0,1]. // The VST host calls SetValue(f) with f in [0,1]. We convert to real units. // When we process MIDI controls, we call SetValueNoNormalization(f) with f in real units. virtual float GetValue() {return (*fZone-fMin)/(fMax-fMin);} // normalize virtual void SetValue(double f) {*fZone = normalize(fMin,fMax,(float)f);} // denormalize virtual void SetValueNoNormalization(double f) {*fZone = clip(fMin,fMax,(float)f);} // raw }; /*--------------------------------------------------------------------------*/ class vstUI : public UI { private: vector fUITable; public: int freqIndex; int gainIndex; int gateIndex; vstUI(){ freqIndex = gainIndex = gateIndex = -1; } virtual ~vstUI() { for (vector::iterator iter = fUITable.begin(); iter != fUITable.end(); iter++) delete *iter; } void setAny(int anyIndex, float val, char *str) { if (anyIndex<0) { #ifdef DEBUG // On the Receptor, and perhaps other hosts, output to stderr is logged in a file. fprintf(stderr,"*** Faust vsti: %sIndex = %d never set!\n",str,anyIndex); #endif return; } if (anyIndex >= fUITable.size()) { #ifdef DEBUG fprintf(stderr,"*** Faust vsti: %sIndex = %d too large!\n",str,anyIndex); #endif return; } #ifdef DEBUG fprintf(stderr,"*** Faust vsti: Setting %sIndex = %d to %f\n",str,anyIndex,val); #endif fUITable[anyIndex]->SetValueNoNormalization(val); } void setFreq(float val) { setAny(freqIndex, val, "freq"); } void setGate(float val) { setAny(gateIndex, val, "gate"); } void setGain(float val) { setAny(gainIndex, val, "gain"); } bool ckAnyMatch(char* label, char* indexName, int *index) { if (_stricmp(label,indexName)==0) { #ifdef DEBUG fprintf(stderr,"=== Faust vsti: label '%s' matches '%s'\n",label,indexName); #endif *index = fUITable.size() - 1; return true; } return false; } void ckAllMatches(char* label) { ckAnyMatch(label,"gain",&gainIndex); ckAnyMatch(label,"gate",&gateIndex); ckAnyMatch(label,"freq",&freqIndex); } void addButton(char* label, float* zone) { vstButton* theButton = new vstButton(label, zone); fUITable.push_back(theButton); #ifdef DEBUG fprintf(stderr,"=== Faust vsti: Adding Button with label '%s'\n",label); #endif ckAnyMatch(label,"gate",&gateIndex); } void addToggleButton(char* label, float* zone) {fUITable.push_back(new vstToggleButton(label, zone));} void addCheckButton(char* label, float* zone) {fUITable.push_back(new vstCheckButton(label, zone));} void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) { vstSlider* theSlider = new vstSlider(label, zone, init, min, max, step); fUITable.push_back(theSlider); #ifdef DEBUG fprintf(stderr,"=== Faust vsti: Adding VSlider (HSlider) with label '%s'\n",label); #endif ckAllMatches(label); } void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) { vstSlider* theSlider = new vstSlider(label, zone, init, min, max, step); fUITable.push_back(theSlider); #ifdef DEBUG fprintf(stderr,"=== Faust vsti: Adding HSlider with label '%s'\n",label); #endif ckAllMatches(label); } void addNumEntry(char* label, float* zone, float init, float min, float max, float step) { /* Number entries converted to horizontal sliders */ vstSlider* theSlider = new vstSlider(label, zone, init, min, max, step); fUITable.push_back(theSlider); #ifdef DEBUG fprintf(stderr,"=== Faust vsti: Adding NumEntry (HSlider) with label '%s'\n",label); #endif ckAllMatches(label); } void openFrameBox(char* label) {} void openTabBox(char* label) {} void openHorizontalBox(char* label) {} void openVerticalBox(char* label) {} void closeBox() {} void SetValue(VstInt32 index, double f) {assert(indexSetValue(f);} float GetValue(VstInt32 index) {assert(indexGetValue();} void GetDisplay(VstInt32 index, char *text) {assert(indexGetDisplay(text);} void GetName(VstInt32 index, char *text) {assert(indexGetName(text);} long GetNumParams() {return fUITable.size();} long makeID() /* Creates a (unique?)id by summing all the parameter's labels, * then wrapping it in the range [0;maxNumberOfId] and adding * this number to the offset made by the Four Character ID: 'FAUS' */ { const long maxNumberOfId = 128; long baseid = 'FAUS'; long id=0; for(int i=0;iGetID(); return baseid + id % maxNumberOfId; } // To be implemented void addNumDisplay(char* label, float* zone, int precision){} void addTextDisplay(char* label, float* zone, char* names[], float min, float max){} void addHorizontalBargraph(char* label, float* zone, float min, float max){} void addVerticalBargraph(char* label, float* zone, float min, float max){} }; //----------------------------------------------------------------------------- // Class Implementations //----------------------------------------------------------------------------- #define kNumPrograms 1 AudioEffect* createEffectInstance (audioMasterCallback audioMaster) { // The dsp and its UI need to be allocated now because // AudioEffectX wants the no. parameters available as an instance argument: mydsp* dspi = new mydsp(); vstUI* dspUIi = new vstUI(); dspi->buildUserInterface(dspUIi); #ifdef DEBUG fprintf(stderr,"=== Faust vsti: created\n"); // look for this in the system log #endif return new Faust(audioMaster,dspi,dspUIi); } //----------------------------------------------------------------------------- // Faust //----------------------------------------------------------------------------- Faust::Faust(audioMasterCallback audioMaster, mydsp* dspi, vstUI* dspUIi) :AudioEffectX(audioMaster, kNumPrograms,dspUIi->GetNumParams()) { // Copy the pointers to dsp and dspUI instances and take them over // (we'll also deallocate): dsp = dspi; dspUI = dspUIi; #ifdef DEBUG fprintf(stderr,"=== Faust vsti: classInit:\n"); #endif dsp->classInit((int)getSampleRate()); // Ask AudioEffect for sample-rate setProgram(0); setProgramName("Default"); if (audioMaster) { setNumInputs(dsp->getNumInputs()); setNumOutputs(dsp->getNumOutputs()); canProcessReplacing(); if (dsp->getNumInputs() == 0) { isSynth(); // at least let's hope so! if (dsp->getNumOutputs() < 1) { fprintf(stderr,"*** faust: vsti: No signal inputs or outputs, and Faust has no MIDI outputs!\n"); } } setUniqueID(dspUI->makeID()); } initProcess(); if (dsp->getNumInputs() == 0) { suspend(); // Synths start out quiet } } //---------------------------------------------------------------------------- Faust::~Faust() { if (dsp) delete dsp; if (dspUI) delete dspUI; } //----------------------------------------------------------------------------- void Faust::setProgram (VstInt32 program) // Override this method of AudioEffect in order to set // local instance variables corresponding to the current MIDI program. // Here there is only one program. { if (program < 0 || program >= kNumPrograms) { fprintf(stderr,"*** Faust vsti: setting program to %d is OUT OF RANGE\n",program); return; } #ifdef DEBUG fprintf(stderr,"=== Faust vsti: setting program to %d\n",program); #endif curProgram = program; // curProgram defined in audioeffect.h } //------------------------------------------------------------------------------ void Faust::setProgramName (char* name) { vst_strncpy (programName, name, kVstMaxProgNameLen); } //----------------------------------------------------------------------------- void Faust::getProgramName(char *name) { vst_strncpy (name, programName, kVstMaxProgNameLen); } //----------------------------------------------------------------------------- void Faust::getParameterLabel(VstInt32 index, char *label) { // We are not using parameter "units" display: vst_strncpy (label, "", kVstMaxParamStrLen); // parameter units in Name } //----------------------------------------------------------------------------- void Faust::getParameterDisplay(VstInt32 index, char *text) { if(indexGetDisplay(index,text); // get displayed float value as text else vst_strncpy (text, "IndexOutOfRange", kVstMaxParamStrLen); } //----------------------------------------------------------------------------- void Faust::getParameterName(VstInt32 index, char *label) { if(indexGetName(index,label); // parameter name, including units else vst_strncpy (label, "IndexOutOfRange", kVstMaxParamStrLen); } //----------------------------------------------------------------------------- void Faust::setParameter(VstInt32 index, float value) { if(indexSetValue(index,value); } //----------------------------------------------------------------------------- float Faust::getParameter(VstInt32 index) { if(indexGetValue(index); else return 0.0f; } //----------------------------------------------------------------------------- bool Faust::getInputProperties (VstInt32 index, VstPinProperties* properties) { if(index>=0 && indexgetNumInputs()) { sprintf (properties->label, "Grame Faust DSP input: %d",index); sprintf (properties->shortLabel, "In %d",index); properties->flags = kVstPinIsActive; if (dsp->getNumInputs() == 2) { properties->flags |= kVstPinIsStereo; } return true; } else return false; } //----------------------------------------------------------------------------- bool Faust::getOutputProperties (VstInt32 index, VstPinProperties* properties) { if(index>=0 && indexgetNumOutputs()) { sprintf (properties->label, "Grame Faust DSP output: %d",index); sprintf (properties->shortLabel, "Out %d",index); properties->flags = kVstPinIsActive; if (dsp->getNumOutputs() == 2) { properties->flags |= kVstPinIsStereo; } return true; } else return false; } //----------------------------------------------------------------------------- bool Faust::getProgramNameIndexed (VstInt32 category, VstInt32 index, char* text) { if (index < kNumPrograms) { vst_strncpy (text, programName, kVstMaxProgNameLen); return true; } return false; } //----------------------------------------------------------------------------- bool Faust::getEffectName (char* name) { // Get from Faust-supplied metadata? vst_strncpy (name, "Effect Name goes here", kVstMaxEffectNameLen); return true; } //----------------------------------------------------------------------------- bool Faust::getVendorString (char* text) { vst_strncpy (text, "Vendor String goes here", kVstMaxVendorStrLen); return true; } //----------------------------------------------------------------------------- bool Faust::getProductString (char* text) { vst_strncpy (text, "Product String goes here", kVstMaxProductStrLen); return true; } //----------------------------------------------------------------------------- VstInt32 Faust::getVendorVersion () { return 1000; } //----------------------------------------------------------------------------- VstInt32 Faust::canDo (char* text) { if (!strcmp (text, "receiveVstEvents")) return 1; if (!strcmp (text, "receiveVstMidiEvent")) return 1; if (!strcmp (text, "midiProgramNames")) return 1; return -1; // explicitly can't do; 0 => don't know } //----------------------------------------------------------------------------- VstInt32 Faust::getNumMidiInputChannels () { return 1; // one MIDI-in channel } //----------------------------------------------------------------------------- VstInt32 Faust::getNumMidiOutputChannels () { return 0; // no MIDI-outs } //----------------------------------------------------------------------------- VstInt32 Faust::getMidiProgramName (VstInt32 channel, MidiProgramName* mpn) { VstInt32 prg = mpn->thisProgramIndex; if (prg < 0 || prg > 0) return 0; fillProgram (channel, prg, mpn); return 1; // we have only 1 "MIDI program" } //------------------------------------------------------------------------ VstInt32 Faust::getCurrentMidiProgram (VstInt32 channel, MidiProgramName* mpn) { // There is only one MIDI program here, so return it regardless of MIDI channel: if (channel < 0 || channel >= 16 || !mpn) return -1; VstInt32 prg = 0; mpn->thisProgramIndex = prg; fillProgram (channel, prg, mpn); return prg; } //------------------------------------------------------------------------ void Faust::fillProgram (VstInt32 channel, VstInt32 prg, MidiProgramName* mpn) // Fill mpn struct for given channel. Here there should be only one. { mpn->midiBankMsb = mpn->midiBankLsb = -1; mpn->reserved = 0; mpn->flags = 0; vst_strncpy (mpn->name, programName, kVstMaxProgNameLen); mpn->midiProgram = (char)prg; // prg should only be 0 mpn->parentCategoryIndex = -1; } //------------------------------------------------------------------------ VstInt32 Faust::getMidiProgramCategory (VstInt32 channel, MidiProgramCategory* cat) // VST host wants to fill cat struct for given channel. We have only one category. { cat->parentCategoryIndex = -1; // -1:no parent category cat->flags = 0; // reserved, none defined yet, zero. VstInt32 category = cat->thisCategoryIndex; vst_strncpy (cat->name, "Faust Patch", kVstMaxProgNameLen); return 1; // one category } //*********************************************************************** //----------------------------------------------------------------------------- void Faust::setSampleRate(float sampleRate) { AudioEffect::setSampleRate(sampleRate); dsp->instanceInit((int)getSampleRate()); // in case AudioEffect altered it } //----------------------------------------------------------------------------- void Faust::initProcess () { noteIsOn = false; currentDelta = currentNote = currentDelta = 0; dsp->instanceInit((int)getSampleRate()); } //----------------------------------------------------------------------------- void Faust::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames) { AVOIDDENORMALS; #ifdef DEBUG fprintf(stderr,"=== Faust vsti: processReplacing . . .\n"); #endif if (dsp->getNumInputs() > 0) { // We're an effect . . . keep going: dsp->compute(sampleFrames, inputs, outputs); } else { // We're a synth . . . int i, nouts = dsp->getNumOutputs(); if (noteIsOn) { // we're synthesizing . . . if (currentDelta > 0) { // but waiting out a timestamp delay . . . if (currentDelta >= sampleFrames) { // start time is after this chunk currentDelta -= sampleFrames; // According to the VST programming sample, we DON'T clear the output buffers yet. // Could this be a bug in the sample program? I would like to add the following: // for (i=0; icompute(sampleFrames, inputs, outptr); free(outptr); } } else { dsp->compute(sampleFrames, inputs, outputs); } } else { // silence until NoteOn . . . for (i=0; inumEvents > 0) { #ifdef DEBUG fprintf(stderr,"=== Faust vsti: processEvents processing %d events\n", ev->numEvents); #endif } for (VstInt32 i = 0; i < ev->numEvents; i++) { #ifdef DEBUG fprintf(stderr,"=== Faust vsti: event type = %d\n", (ev->events[i])->type); #endif if ((ev->events[i])->type != kVstMidiType) { #ifdef DEBUG fprintf(stderr,"=== Faust vsti: EVENT IGNORED!\n"); #endif continue; } VstMidiEvent* event = (VstMidiEvent*)ev->events[i]; char* midiData = event->midiData; VstInt32 chan = midiData[0] & 0xf; VstInt32 status = midiData[0] & 0xf0; #ifdef DEBUG fprintf(stderr,"\n=== Faust vsti: event->midiData[0] = 0x%x\n", event->midiData[0]); fprintf(stderr,"=== Faust vsti: midi channel = 0x%x\n", chan); fprintf(stderr,"=== Faust vsti: midi status = 0x%x\n", status); fprintf(stderr,"=== Faust vsti: event->midiData[1] = 0x%x\n", event->midiData[1]); fprintf(stderr,"=== Faust vsti: event->midiData[2] = 0x%x\n", event->midiData[2]); #endif if (status == 0x90) { // note on VstInt32 note = midiData[1] & 0x7f; VstInt32 velocity = midiData[2] & 0x7f; #ifdef DEBUG fprintf(stderr, "=== Faust vsti: note = %d, velocity = %d, delay = %d\n", note,velocity,event->deltaFrames); #endif if (velocity>0) { noteOn(note, velocity, event->deltaFrames); } else { noteOff(); } } else if (status == 0x80) { // note off noteOff(); // } else if (status == 0xA0) { // poly aftertouch } else if (status == 0xB0) { // control change /* DO SOMETHING WITH THE CONTROLLER DATA */ fprintf(stderr,"=== Faust vsti: CONTROL CHANGE (status 0xB0)!\n"); if (midiData[1] == 0x7e || midiData[1] == 0x7b) { // all notes off fprintf(stderr,"=== Faust vsti: ALL NOTES OFF!\n"); noteOff (); // why is all-notes-off inside a "control change" event? } // } else if (status == 0xC0) { // program change // } else if (status == 0xD0) { // mono aftertouch // } else if (status == 0xE0) { // pitch change // } else if (status == 0xF0) { // SYSX ... } // For a list, see // http://www.alfred-j-faust.de/rft/midi%20status%20types.html #ifdef DEBUG fprintf(stderr,"=== Faust vsti: Going to next event\n", event->midiData[2]); #endif event++; } return 1; } //----------------------------------------------------------------------------- void Faust::noteOn (VstInt32 note, VstInt32 velocity, VstInt32 delta) { #ifdef DEBUG fprintf(stderr,"=== Faust vsti: noteOn: note = %d, vel = %d, del = %d\n",note,velocity,delta); #endif currentNote = note; currentVelocity = velocity; currentDelta = delta; noteIsOn = true; float freq = 440.0f * powf(2.0f,(((float)note)-69.0f)/12.0f); float gain = velocity/127.0f; dspUI->setFreq(freq); // Hz - requires Faust control-signal "freq" dspUI->setGain(gain); // 0-1 - requires Faust control-signal "gain" dspUI->setGate(1.0f); // 0 or 1 - requires Faust button-signal "gate" } //----------------------------------------------------------------------------- void Faust::noteOff () { if (noteIsOn) { #ifdef DEBUG fprintf(stderr,"=== Faust vsti: noteOff\n"); #endif dspUI->setGate(0); } else { #ifdef DEBUG fprintf(stderr,"=== Faust vsti: noteOff IGNORED (note was not on)\n"); #endif } } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/ladspa.cpp0000644000175000017500000004206611702130733017307 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include #include #include #include #include #include "ladspa.h" #include "gui/GUI.h" #include "misc.h" #include "audio/dsp.h" // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #warning *** ladspa.cpp: NO SSE FLAG (denormals may slow things down) *** #define AVOIDDENORMALS #endif #define sym(name) xsym(name) #define xsym(name) #name /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ //-----------------------------------portCollector-------------------------------------- // // portCollector is passed to the buildUserInterface method of a dsp object // in order to build a description of its inputs, outputs and control ports. // This description is used to fill a LADSPA_Descriptor // //-------------------------------------------------------------------------------------- //--------------------------------useful constants-------------------------------------- #define MAXPORT 1024 static const int ICONTROL = LADSPA_PORT_INPUT|LADSPA_PORT_CONTROL; static const int OCONTROL = LADSPA_PORT_OUTPUT|LADSPA_PORT_CONTROL; static const int RANGE = LADSPA_PORT_INPUT|LADSPA_PORT_CONTROL; static const char* inames[] = { "input00", "input01", "input02", "input03", "input04", "input05", "input06", "input07", "input08", "input09", "input10", "input11", "input12", "input13", "input14", "input15", "input16", "input17", "input18", "input19", "input20", "input21", "input22", "input23", "input24", "input25", "input26", "input27", "input28", "input29", "input30", "input31", "input32", "input33", "input34", "input35", "input36", "input37", "input38", "input39" }; static const char* onames[] = { "output00", "output01", "output02", "output03", "output04", "output05", "output06", "output07", "output08", "output09", "output10", "output11", "output12", "output13", "output14", "output15", "output16", "output17", "output18", "output19", "output20", "output21", "output22", "output23", "output24", "output25", "output26", "output27", "output28", "output29", "output30", "output31", "output32", "output33", "output34", "output35", "output36", "output37", "output38", "output39" }; class portCollector : public UI { private: //-------------------------------------------------------------------------------------- const int fInsCount; // number of audio input ports const int fOutsCount; // number of audio output ports int fCtrlCount; // number of control ports LADSPA_PortDescriptor fPortDescs[MAXPORT]; // table of port descriptors to be used in a LADSPA_Descriptor const char* fPortNames[MAXPORT]; // table of port names to be used in a LADSPA_Descriptor LADSPA_PortRangeHint fPortHints[MAXPORT]; // table of port hints to be used in a LADSPA_Descriptor string fPluginName; // toplevel prefix used as plugin name stack fPrefix; // current prefix for controls name //-------------------------------------------------------------------------------------- string simplify(const string& src) { int i=0; int level=2; string dst; while (src[i] ) { switch (level) { case 0 : case 1 : case 2 : // Skip the begin of the label "--foo-" // until 3 '-' have been read if (src[i]=='-') { level++; } break; case 3 : // copy the content, but skip non alphnum // and content in parenthesis switch (src[i]) { case '(' : case '[' : level++; break; case '-' : dst += '-'; break; default : if (isalnum(src[i])) { dst+= tolower(src[i]); } } break; default : // here we are inside parenthesis and // we skip the content until we are back to // level 3 switch (src[i]) { case '(' : case '[' : level++; break; case ')' : case ']' : level--; break; default : break; } } i++; } return (dst.size() > 0) ? dst :src; } void addPortDescr(int type, const char* label, int hint, float min=0.0, float max=0.0) { string fullname = simplify(fPrefix.top() + "-" + label); char * str = strdup(fullname.c_str()); fPortDescs[fInsCount + fOutsCount + fCtrlCount] = type; fPortNames[fInsCount + fOutsCount + fCtrlCount] = str; fPortHints[fInsCount + fOutsCount + fCtrlCount].HintDescriptor = hint; fPortHints[fInsCount + fOutsCount + fCtrlCount].LowerBound = min; fPortHints[fInsCount + fOutsCount + fCtrlCount].UpperBound = max; fCtrlCount++; } void openAnyBox(const char* label) { if (fPrefix.size() == 0) { // top level label is used as plugin name fPluginName = label; fPrefix.push(label); } else { string s; if (label && label[0]) { s = fPrefix.top() + "-" + label; } else { s = fPrefix.top(); } fPrefix.push(s); } } public: //--------------------------------Collect the audio ports------------------------------- portCollector(int ins, int outs) : UI(), fInsCount(ins), fOutsCount(outs), fCtrlCount(0) { for (int i = 0; i < ins; i++) { fPortDescs[i] = LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO; fPortNames[i] = inames[i]; fPortHints[i].HintDescriptor = 0; } for (int j = 0; j < outs; j++) { fPortDescs[ins + j] = LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO; fPortNames[ins + j] = onames[j]; fPortHints[ins + j].HintDescriptor = 0; } }; virtual ~portCollector() {} //------------------------------Collect the control ports------------------------------- virtual void addButton(const char* label, float* zone) { addPortDescr(ICONTROL, label, LADSPA_HINT_TOGGLED); } virtual void addToggleButton(const char* label, float* zone) { addPortDescr(ICONTROL, label, LADSPA_HINT_TOGGLED); } virtual void addCheckButton(const char* label, float* zone) { addPortDescr(ICONTROL, label, LADSPA_HINT_TOGGLED); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { addPortDescr(ICONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { addPortDescr(ICONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { addPortDescr(ICONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) { addPortDescr(OCONTROL, label, 0, -10000, +10000); } virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) { addPortDescr(OCONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) { addPortDescr(OCONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } virtual void addVerticalBargraph(const char* label, float* zone, float min, float max){ addPortDescr(OCONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } virtual void openFrameBox(const char* label) { openAnyBox(label); } virtual void openTabBox(const char* label) { openAnyBox(label); } virtual void openHorizontalBox(const char* label) { openAnyBox(label); } virtual void openVerticalBox(const char* label) { openAnyBox(label); } virtual void closeBox() { fPrefix.pop(); } virtual void show() {} virtual void run() {} //---------------------------------Fill the LADSPA descriptor--------------------------- // generate an ID from a plugin name int makeID (const char* s) { int h = 0; for (int i = 0; s[i]; i++) { h = (h << 3) + (s[i] & 7); } return 1+h%1000; } // fill a ladspa descriptor with the information collected on ports void fillPortDescription (LADSPA_Descriptor * descriptor) { const char* name = sym(mydsp); descriptor->PortCount = fCtrlCount+fInsCount+fOutsCount; descriptor->PortDescriptors = fPortDescs; descriptor->PortNames = fPortNames; descriptor->PortRangeHints = fPortHints; descriptor->Label = strdup(name); descriptor->UniqueID = makeID(name); // descriptor->Label = strdup(fPluginName.c_str()); // descriptor->UniqueID = makeID(fPluginName.c_str()); descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = name; // descriptor->Name = strdup(fPluginName.c_str()); descriptor->Maker = "undefined"; descriptor->Copyright = "undefined"; } }; //--------------------------------------portData---------------------------------------- // // portData : a user interface used to associate the data buffers and the ports // //-------------------------------------------------------------------------------------- class portData : public UI { private: //-------------------------------------------------------------------------------------- const int fInsCount; // number of audio input ports const int fOutsCount; // number of audio output ports int fCtrlCount; // number of control ports float* fPortZone[MAXPORT]; // float* fPortData[MAXPORT]; //-------------------------------------------------------------------------------------- void addZone(float* zone) { fPortZone[fInsCount + fOutsCount + fCtrlCount] = zone; fCtrlCount++; } public: //--------------------------------Collect the audio ports------------------------------- portData(int ins, int outs) : UI(), fInsCount(ins), fOutsCount(outs), fCtrlCount(0) {}; virtual ~portData() {} //------------------------------Collect the control zones------------------------------- virtual void addButton(const char* label, float* zone) { addZone(zone); } virtual void addToggleButton(const char* label, float* zone) { addZone(zone); } virtual void addCheckButton(const char* label, float* zone) { addZone(zone); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { addZone(zone); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { addZone(zone); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { addZone(zone); } // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) { addZone(zone); } virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) { addZone(zone); } virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) { addZone(zone); } virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) { addZone(zone); } virtual void openFrameBox(const char* label) { } virtual void openTabBox(const char* label) { } virtual void openHorizontalBox(const char* label) { } virtual void openVerticalBox(const char* label) { } virtual void closeBox() { } virtual void show() {} virtual void run() {} //---------------------------------interaction with LADSPA------------------------------ void setPortData (unsigned long port, LADSPA_Data* data) { fPortData[port] = data; } void updateCtrlZones() { for (int i = fInsCount+fOutsCount; i < fInsCount+fOutsCount+fCtrlCount; i++) *fPortZone[i] = *fPortData[i]; } float** getInputs() { return &fPortData[0]; } float** getOutputs() { return &fPortData[fInsCount]; } }; //--------------------------------Faust-LADSPA plugin----------------------------------- // // Plugin structure, callbacks and LADSPA_descriptor(i) entry point // //-------------------------------------------------------------------------------------- LADSPA_Descriptor* gDescriptor = 0; struct PLUGIN { unsigned long fSampleRate; portData* fPortData; dsp* fDsp; PLUGIN(unsigned long r, portData* d, dsp* p) : fSampleRate(r), fPortData(d), fDsp(p) {} }; LADSPA_Handle instantiate_method (const struct _LADSPA_Descriptor * Descriptor, unsigned long SampleRate) { dsp* p = new mydsp(); portData* d = new portData(p->getNumInputs(), p->getNumOutputs()); p->buildUserInterface(d); return new PLUGIN (SampleRate, d, p); } void connect_method (LADSPA_Handle Instance, unsigned long Port, LADSPA_Data * DataLocation) { PLUGIN* p = (PLUGIN*) Instance; p->fPortData->setPortData(Port, DataLocation); } void activate_method (LADSPA_Handle Instance) { PLUGIN* p = (PLUGIN*) Instance; p->fDsp->init(p->fSampleRate); } void run_method (LADSPA_Handle Instance, unsigned long SampleCount) { PLUGIN* p = (PLUGIN*) Instance; p->fPortData->updateCtrlZones(); AVOIDDENORMALS; p->fDsp->compute(SampleCount, p->fPortData->getInputs(), p->fPortData->getOutputs()); } void deactivate_method (LADSPA_Handle Instance) {} void cleanup_method (LADSPA_Handle Instance) { PLUGIN* p = (PLUGIN*) Instance; delete p->fPortData; delete p->fDsp; delete p; } //-------------------------------------------------------------------------------------- void init_descriptor(LADSPA_Descriptor* descriptor) { descriptor->UniqueID = 123456; descriptor->Label = "none"; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = "none"; descriptor->Maker = "Yann Orlarey"; descriptor->Copyright = "GPL"; descriptor->ImplementationData = 0; // description des methods descriptor->instantiate = instantiate_method; descriptor->connect_port = connect_method; descriptor->activate = activate_method; descriptor->run = run_method; descriptor->run_adding = 0; descriptor->set_run_adding_gain = 0; descriptor->deactivate = deactivate_method; descriptor->cleanup = cleanup_method; } //-------------------------------------------------------------------------------------- const LADSPA_Descriptor * ladspa_descriptor(unsigned long Index) { if (Index == 0) { if (gDescriptor == 0) { // allocate temporaries dsp and portCollector to build the plugin description mydsp* p = new mydsp(); if (p) { portCollector* c=new portCollector(p->getNumInputs(), p->getNumOutputs()); p->buildUserInterface(c); gDescriptor = new LADSPA_Descriptor; init_descriptor(gDescriptor); c->fillPortDescription(gDescriptor); delete p; } else { printf("Memory Error : unable to allocate the dsp object\n"); } } return gDescriptor; } else { return NULL; } } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/octave.cpp0000644000175000017500000003331411702130733017320 0ustar orlareyorlarey/* octave.cpp Copyright (C) 2009 by Bjoern Anton Erlach. */ // OCTAVE architecture file for faust. // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation; either version 2 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA // 02111-1307 USA //------------------------------------------------------------------- #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; // TODO: find out what to do with this Meta thing struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) // abs is now predefined //template T abs (T a) { return (a> n); } /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } <> /****************************************************************************** ******************************************************************************* ABSTRACT USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; // -- frames and labels virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void show() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; struct param { string fName; float *fVals; float* fZone; float fMin; float fMax; param(string name, float* z, float init, float a, float b) : fName(name), fVals(NULL), fZone(z), fMin(a), fMax(b) { *z = init; } }; class FNUI : public UI { vector fParam; int numOptions; public: FNUI() : UI() { numOptions=0; } virtual ~FNUI() {} void addOption(const char* label, float* zone, float init, float min, float max) { string fullname = label; fParam.push_back(param(fullname, zone, init, min, max)); numOptions++; } virtual vector getOpts () { return fParam; } virtual void addButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual int getNumOptions() { return numOptions; } virtual void addToggleButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addCheckButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) {} virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) {} virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) {} virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) {} virtual void openFrameBox(const char* label) { } virtual void openTabBox(const char* label) { } virtual void openHorizontalBox(const char* label) { } virtual void openVerticalBox(const char* label) { } //virtual void openFrameBox(const char* label) { openAnyBox(label); } //virtual void openTabBox(const char* label) { openAnyBox(label); } //virtual void openHorizontalBox(const char* label) { openAnyBox(label); } //virtual void openVerticalBox(const char* label) { openAnyBox(label); } //virtual void closeBox() { fPrefix.pop(); } virtual void closeBox() { } virtual void run() {} virtual void show() {} }; /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // abstract definition of a signal processor //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; //---------------------------------------------------------------------------- // FAUST generated signal processor //---------------------------------------------------------------------------- <> //---------------------------------------------------------------------------- // Octave interface //---------------------------------------------------------------------------- // Prefered way to allocate memory #define ALLOC(x) alloca(x) #define FREE(x) ((void)0) // if ALLOCA is not available use MALLOC //#define ALLOC(x) malloc(x) //#define FREE(x) free(x) #define QUOTEME(x) #x #define DEFAULT_SAMPLERATE 44100 #define DEFAULT_BLOCKSIZE 64 // linear interpolation for vector valued control inputs void interpolate_ctrlin (float *vals, NDArray in, int n) { int nin = in.length(); double ratio = (double)(n-1)/(double)(nin-1); int irat = (int) ratio; double frat = ratio - (double) irat; double rest = 0; int i = 0; float x; for (int j=0; j<(nin-1); j++) { float del; int seglength = irat; rest += frat; if (rest >= 1.0) { seglength ++; rest -= 1.0; } del = (in(j+1) - in(j)) / (float) seglength; x = in(j); for (int k=0; k opts; int bsize; int srate; octave_value_list retval; octave_value tmp; FNUI* interface = new FNUI(); DSP.buildUserInterface(interface); // check if global variable FAUST_BLOCKSIZE is set. tmp = get_global_value ("FAUST_BLOCKSIZE", true); if (tmp.is_defined ()) bsize = (int) tmp.scalar_value(); else { bsize = DEFAULT_BLOCKSIZE; } // check if global variable FAUST_SAMPLERATE is set. tmp = get_global_value ("FAUST_SAMPLERATE", true); if (tmp.is_defined ()) srate = (int) tmp.scalar_value(); else { srate = DEFAULT_SAMPLERATE; } DSP.init(srate); opts = interface->getOpts(); numIn = DSP.getNumInputs(); numOut = DSP.getNumOutputs(); numOpts = interface->getNumOptions(); // print a usage message in case the function is called with too few arguments if (nargin < numIn || nargin == 0) { if (numOut>1) { octave_stdout << "[out1"; for (i=2; i<=numOut; i++) octave_stdout << ",out" << i; octave_stdout << "] = " << QUOTEME(FAUST_FUNC_NAME) << "("; } else { octave_stdout << "out = " << QUOTEME(FAUST_FUNC_NAME) << "("; } if (numIn == 0) octave_stdout << "numsamps"; else octave_stdout << "in1"; for (i=2; i<=numIn; i++) octave_stdout << ", in" << i; for (i=0; i maxInputLength) maxInputLength = nc; } else if (nc == 1) { if (nr > maxInputLength) maxInputLength = nr; } else { maxInputLength = nc; octave_stdout << "Argument " << i << " has wrong dimensions " << nr << "x" << nc << "\n"; } } } ctrllength = (maxInputLength+bsize-1)/bsize; // check for arguments that should serve as control inputs for (i=ctrlargoff; i 1) { allscalarctrls = 0; opts[i-ctrlargoff].fVals = (float*) ALLOC(sizeof(float)*ctrllength); interpolate_ctrlin(opts[i-ctrlargoff].fVals, v, ctrllength); *opts[i-ctrlargoff].fZone = (float) v(0); } else { *opts[i-ctrlargoff].fZone = (float) args(i).scalar_value(); } } } for (i=0; i m.columns()) { for (int j=0; j 0) { int n = min(bsize, nleft); for (i=0; i #include #include //#include struct vec_int { __m128i vec; vec_int() {} vec_int(int a) { vec = _mm_set_epi32(a,a,a,a); } vec_int(int a, int b, int c, int d) { vec = _mm_set_epi32(d,c,b,a); } vec_int(__m128i m) { vec = m; } operator __m128i() const { return vec; } const int& operator[](int i)const { int* ip = (int*)&vec; return *(ip+i); } int& operator[](int i) { int* ip = (int*)&vec; return *(ip+i); } }; struct vec_float { __m128 vec; vec_float() {} vec_float(float a) { vec = _mm_set_ps1(a); } vec_float(float a, float b, float c, float d) { vec = _mm_set_ps(d,c,b,a); } vec_float(__m128 m) { vec = m; } //vec_float(vec_int vi) { vec = _mm_cvtepi32_ps(vi); } operator __m128() const { return vec; } const float& operator[](int i)const { float* fp = (float*)&vec; return *(fp+i); } float& operator[](int i) { float* fp = (float*)&vec; return *(fp+i); } }; // Flush to zero mode: during underflow zero result is returned when the result is true // Not compatible with the IEEE standard 754 ( which // deliver denormalized result in case of underflow ) #define NO_DENORMALIZE _mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (_MM_FLUSH_ZERO_ON)) #define DENORMALIZE _mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (_MM_FLUSH_ZERO_OFF)) // constants // 0 0 0 0 #define VEC_INT_ZERO(a) _mm_xor_si128(a,a) // 0xffffffff 0xffffffff 0xffffffff 0xffffffff #define VEC_INT_ONES(a) _mm_cmpeq_epi32(a,a) // Example: 2^10 - 1 = 1023 -> VEC_INT_PW2_MINUS_1(a,10) #define VEC_INT_PW2_MINUS_1(a,pw) _mm_srli_epi32(_mm_cmpeq_epi32(a,a),32-pw) // 1 1 1 1: particular case #define VEC_INT_ONE(a) _mm_srli_epi32(_mm_cmpeq_epi32(a,a),31) // Example: 2^10 = 1024 -> VEC_INT_PW2(a,10) #define VEC_INT_PW2(a,pw) _mm_slli_epi32(_mm_srli_epi32(_mm_cmpeq_epi32(a,a),31),pw) // Example: -2^10 = -1024 -> VEC_INT_MINUS_PW2(a,10) #define VEC_INT_MINUS_PW2(a,pw) _mm_slli_epi32(_mm_cmpeq_epi32(a,a),pw) // -1 -1 -1 -1: particular case #define VEC_INT_MINUS_ONE(a) _mm_cmpeq_epi32(a,a) // 0.0 0.0 0.0 0.0 #define VEC_FLOAT_ZERO(a) _mm_xor_ps(a,a) // 0xffffffff 0xffffffff 0xffffffff 0xffffffff #define VEC_FLOAT_ONES(a) _mm_cmpeq_ps(a,a) // conversions entre vecteurs d'ints et de floats inline vec_int float2int( vec_float a) { return _mm_cvtps_epi32(a); } inline int float2int( float a ) { return int(a); } inline vec_float int2float( vec_int a) { return _mm_cvtepi32_ps(a); } inline float int2float( int a ) { return float(a); } // arithmetic inline vec_float add_vec( vec_float a, vec_float b) { return _mm_add_ps(a,b); } inline vec_float add_vec( vec_int a, vec_float b) { return _mm_add_ps(int2float(a),b); } inline vec_float add_vec( vec_float a, vec_int b) { return _mm_add_ps(a,int2float(b)); } inline vec_int add_vec( vec_int a, vec_int b) { return _mm_add_epi32(a,b); } inline vec_float add_scal( vec_float a, vec_float b) { return _mm_add_ss(a,b); } inline vec_int add_scal( vec_int a, vec_int b) { return _mm_add_epi32(a,b); } // _mm_add_pi32 en MMX //inline scal_int add_scal( scal_int a, scal_int b) { return _mm_add_pi32(a,b); } inline vec_float sub_vec( vec_float a, vec_float b) { return _mm_sub_ps(a,b); } inline vec_int sub_vec( vec_int a, vec_int b) { return _mm_sub_epi32(a,b); } inline vec_float sub_scal( vec_float a, vec_float b) { return _mm_sub_ss(a,b); } inline vec_int sub_scal( vec_int a, vec_int b) { return _mm_sub_epi32(a,b); } // _mm_sub_pi32 en MMX //inline scal_int sub_scal( scal_int a, scal_int b) { return _mm_sub_pi32(a,b); } inline vec_float mul_vec( vec_float a, vec_float b) { return _mm_mul_ps(a,b); } inline vec_float mul_vec( vec_int a, vec_float b) { return _mm_mul_ps(int2float(a),b); } inline vec_float mul_vec( vec_float a, vec_int b) { return _mm_mul_ps(a,int2float(b)); } inline vec_float mul_scal( vec_float a, vec_float b) { return _mm_mul_ss(a,b); } // INTEGER MULTIPLICATION // low 32 bits of a 32 * 32 bit multiplication: each double-word X and Y is broken down into two words, A & B and C & D: // X = ( A << 16 ) + B // Y = ( C << 16 ) + D // then: // X * Y = (( A << 16 ) + B ) * (( C << 16 ) + D ) // X * Y = ( A*C << 32 ) + ( A*D << 16 ) + ( B*C << 16 ) + B*D // the partial result A*C does not appear in the low 32 bits result so does not need to be computed // ( however, if it's different from zero, then there is an overflow ) inline vec_int mul_vec( vec_int a, vec_int b) { vec_int temp0 = _mm_shufflehi_epi16( _mm_shufflelo_epi16( b, 0xB1), 0xB1); vec_int temp1 = _mm_and_si128( b, _mm_srli_epi32( _mm_cmpeq_epi32( b,b), 16)); vec_int temp2 = _mm_madd_epi16( a, temp0); vec_int temp3 = _mm_madd_epi16( a, temp1); vec_int temp4 = _mm_slli_epi32( temp2, 16); return _mm_add_epi32( temp4, temp3); } inline vec_int mul_scal( vec_int a, vec_int b) { vec_int temp0 = _mm_shufflelo_epi16( b, 0xB1); vec_int temp1 = _mm_and_si128( b, _mm_cvtsi32_si128(0x00ff)); vec_int temp2 = _mm_madd_epi16( a, temp0); vec_int temp3 = _mm_madd_epi16( a, temp1); vec_int temp4 = _mm_slli_epi32( temp2, 16); return _mm_add_epi32( temp4, temp3); } inline vec_float div_vec( vec_float a, vec_float b) { return _mm_mul_ps(a,_mm_rcp_ps(b)); /*_mm_div_ps(a,b);*/ } inline vec_int div_vec( vec_int a, vec_int b) { return _mm_cvtps_epi32(_mm_mul_ps(_mm_cvtepi32_ps(a),_mm_rcp_ps(_mm_cvtepi32_ps(b)))); } // A CHANGER !!!! inline vec_float div_scal( vec_float a, vec_float b) { return _mm_mul_ss(a,_mm_rcp_ss(b)); /*_mm_div_ss(a,b);*/ } inline vec_int div_scal( vec_int a, vec_int b) { return _mm_cvtps_epi32(_mm_mul_ss(_mm_cvtepi32_ps(a),_mm_rcp_ss(_mm_cvtepi32_ps(b)))); } // A CHANGER !!!!! //inline scal_int div_scal( scal_int a, scal_int b) { return _mm_cvtsi32_si64((_mm_cvtsi64_si32(a))/(_mm_cvtsi64_si32(b))); } // A CHANGER !!!!! inline vec_int mod_vec( vec_int a, vec_int N) { vec_int temp = _mm_sub_epi32(a,N); vec_int zero = _mm_xor_si128(a,a); vec_int select = _mm_xor_si128( _mm_cmpgt_epi32(temp,zero), _mm_cmpeq_epi32(temp,zero)); // a - N >= 0 return _mm_or_si128(_mm_and_si128(select,temp),_mm_andnot_si128(select,a)); // if( a - N >=0 ) return a - N; else return a; } inline vec_int mod_scal( vec_int a, vec_int N) { vec_int temp = _mm_sub_epi32(a,N); vec_int zero = _mm_xor_si128(a,a); vec_int select = _mm_xor_si128( _mm_cmpgt_epi32(temp,zero), _mm_cmpeq_epi32(temp,zero)); // a - N >= 0 return _mm_or_si128(_mm_and_si128(select,temp),_mm_andnot_si128(select,a)); // if( a - N >=0 ) return a - N; else return a; } // simulation of a*b + c #define madd_vec(a,b,c) add_vec(mul_vec(a,b),c) #define madd_scal(a,b,c) add_scal(mul_scal(a,b),c) //inline vec_float madd_scal( vec_float a, vec_float b, vec_float c) { return _mm_add_ss(_mm_mul_ss(a,b),c); } //inline vec_int madd_vec( vec_int a, vec_int b, vec_int c) { return add_vec(mul_vec(a,b),c); } //inline vec_int madd_scal( vec_int a, vec_int b, vec_int c) { return add_scal(mul_scal(a,b),c); } // simulation of - ( a*b - c ) //inline vec_float nmsub_vec( vec_float a, vec_float b, vec_float c) { } // simulation of a*(1/b) + c inline vec_float divadd_vec( vec_float a, vec_float b, vec_float c) { return _mm_add_ps(_mm_mul_ps(a,_mm_rcp_ps(b)),c); } inline vec_float divadd_scal( vec_float a, vec_float b, vec_float c) { return _mm_add_ss(_mm_mul_ss(a,_mm_rcp_ss(b)),c); } // simulation of - ( a*(1/b) - c ) //inline vec_float divsub_vec( vec_float a, vec_float b, vec_float c) { } // shift ( and fill with 0's ) inline vec_int shift_left_vec( vec_int a, vec_int num) { return _mm_sll_epi32(a,num); } inline vec_int shift_left_vec( vec_int a, int num) { return _mm_slli_epi32(a,num); } inline vec_int shift_left_scal( vec_int a, vec_int num) { return _mm_sll_epi32(a,num); } // _mm_sll_pi32(a,num) en MMX //inline scal_int shift_left_scal( scal_int a, scal_int num) { return _mm_sll_pi32(a,num); } inline vec_int shift_left_scal( vec_int a, int num) { return _mm_slli_epi32(a,num); } // _mm_slli_pi32(a,num) en MMX //inline scal_int shift_left_scal( scal_int a, int num) { return _mm_slli_pi32(a,num); } // shift ( and fill with the sign bit ) inline vec_int shift_right_vec( vec_int a, vec_int num) { return _mm_sra_epi32(a,num); } inline vec_int shift_right_vec( vec_int a, int num) { return _mm_srai_epi32(a,num); } inline vec_int shift_right_scal( vec_int a, vec_int num) { return _mm_sra_epi32(a,num); } // _mm_sra_pi32(a,num) en MMX //inline scal_int shift_right_scal( scal_int a, scal_int num) { return _mm_sra_pi32(a,num); } inline vec_int shift_right_scal( vec_int a, int num) { return _mm_srai_epi32(a,num); } // _mm_srai_pi32(a,num) en MMX //inline scal_int shift_right_scal( scal_int a, int num) { return _mm_srai_pi32(a,num); } // shift ( and fill with 0's ) inline vec_int shift_right_vec_logical( vec_int a, vec_int num) { return _mm_srl_epi32(a,num); } inline vec_int shift_right_vec_logical( vec_int a, int num) { return _mm_srli_epi32(a,num); } inline vec_int shift_right_scal_logical( vec_int a, vec_int num) { return _mm_srl_epi32(a,num); } // _mm_sra_pi32(a,num) en MMX //inline scal_int shift_right_scal_logical( scal_int a, scal_int num) { return _mm_srl_pi32(a,num); } inline vec_int shift_right_scal_logical( vec_int a, int num) { return _mm_srli_epi32(a,num); } // _mm_srai_pi32(a,num) en MMX //inline scal_int shift_right_scal_logical( scal_int a, int num) { return _mm_srli_pi32(a,num); } // Logic // Ajouts YO;; supprime //inline vec_float and_vec( vec_float a, vec_int b) { return _mm_and_ps(a,b); } //inline vec_float and_vec( vec_int a, vec_float b) { return _mm_and_ps(a,b); } inline vec_float and_vec( vec_float a, vec_float b) { return _mm_and_ps(a,b); } inline vec_int and_vec( vec_int a, vec_int b) { return _mm_and_si128(a,b); } inline vec_float and_scal( vec_float a, vec_float b) { return _mm_and_ps(a,b); } inline vec_int and_scal( vec_int a, vec_int b) { return _mm_and_si128(a,b); } // _mm_and_si64(a,b) en MMX //inline scal_int and_scal( scal_int a, scal_int b) { return _mm_and_si64(a,b); } inline vec_float or_vec( vec_float a, vec_float b) { return _mm_or_ps(a,b); } inline vec_int or_vec( vec_int a, vec_int b) { return _mm_or_si128(a,b); } inline vec_float or_scal( vec_float a, vec_float b) { return _mm_or_ps(a,b); } inline vec_int or_scal( vec_int a, vec_int b) { return _mm_or_si128(a,b); } // _mm_or_si64(a,b) en MMX //inline scal_int or_scal( scal_int a, scal_int b) { return _mm_or_si64(a,b); } inline vec_float xor_vec( vec_float a, vec_float b) { return _mm_xor_ps(a,b); } inline vec_int xor_vec( vec_int a, vec_int b) { return _mm_xor_si128(a,b); } inline vec_float xor_scal( vec_float a, vec_float b) { return _mm_xor_ps(a,b); } inline vec_int xor_scal( vec_int a, vec_int b) { return _mm_xor_si128(a,b); } // _mm_xor_si64(a,b) en MMX //inline scal_int xor_scal( scal_int a, scal_int b) { return _mm_xor_si64(a,b); } //------------------------------------------------------------------------------------------------------------ // YO : remplacement de inline vec_float par inline vec_int dans les operations de comparaison entre vec_float // pour une meilleur compatibilit avec la compilation vectorielle //------------------------------------------------------------------------------------------------------------ // cast (without conversion) inline vec_float cast2vec_float(vec_int x) { return _mm_castsi128_ps(x); } inline vec_int cast2vec_int(vec_float x) { return _mm_castps_si128(x); } // convertions inline vec_float conv2vec_float(vec_int x) { return _mm_cvtepi32_ps(x); } inline vec_int conv2vec_int(vec_float x) { return _mm_cvtps_epi32(x); } // comparaison //inline vec_float int2float( vec_int a) { return _mm_cvtepi32_ps(a); } inline vec_float gt_vec( vec_float a, vec_float b) { return _mm_cmpgt_ps(a,b); } inline vec_float gt_vec( vec_int a, vec_float b) { return _mm_cmpgt_ps(_mm_cvtepi32_ps(a),b); } inline vec_float gt_vec( vec_float a, vec_int b) { return _mm_cmpgt_ps(a,_mm_cvtepi32_ps(b)); } inline vec_int gt_vec( vec_int a, vec_int b) { return _mm_cmpgt_epi32(a,b); } inline vec_float gt_scal( vec_float a, vec_float b) { return _mm_cmpgt_ps(a,b); } inline vec_float gt_scal( vec_int a, vec_float b) { return _mm_cmpgt_ps(_mm_cvtepi32_ps(a),b); } inline vec_float gt_scal( vec_float a, vec_int b) { return _mm_cmpgt_ps(a,_mm_cvtepi32_ps(b)); } inline vec_int gt_scal( vec_int a, vec_int b) { return _mm_cmpgt_epi32(a,b); } // choose between two values choose(c,u,v) = c?u:v // the type of the result depends of the types of u and v, not of the type of c inline vec_float choose(vec_float c, vec_float u, vec_float v) { return _mm_or_ps(_mm_and_ps(c,u), _mm_andnot_ps(c,v)); } inline vec_float choose(vec_float c, vec_int u, vec_float v) { return _mm_or_ps(_mm_and_ps(c,_mm_cvtepi32_ps(u)), _mm_andnot_ps(c,v)); } inline vec_float choose(vec_float c, vec_float u, vec_int v) { return _mm_or_ps(_mm_and_ps(c,u), _mm_andnot_ps(c,_mm_cvtepi32_ps(v))); } inline vec_float choose(vec_int c, vec_float u, vec_float v) { return choose(cast2vec_float(c), u, v); } inline vec_float choose(vec_int c, vec_int u, vec_float v) { return choose(cast2vec_float(c), u, v); } inline vec_float choose(vec_int c, vec_float u, vec_int v) { return choose(cast2vec_float(c), u, v); } inline vec_int choose(vec_int c, vec_int u, vec_int v) { return _mm_or_si128(_mm_and_si128(c,u), _mm_andnot_si128(c,v)); } inline vec_int choose(vec_float c, vec_int u, vec_int v) { return choose(cast2vec_int(c), u, v); } // choose between two values choosezero(c,u) = c?u:0 inline vec_float choosezero(vec_float c, vec_float u) { return _mm_and_ps(c,u); } inline vec_float choosezero(vec_int c, vec_float u) { return choosezero(cast2vec_float(c), u); } inline vec_int choosezero(vec_int c, vec_int u) { return _mm_and_si128(c,u); } inline vec_int choosezero(vec_float c, vec_int u) { return choosezero(cast2vec_int(c), u); } //inline vec_int gt_vec( vec_float a, vec_float b) { return _mm_srli_epi32(_mm_cmpgt_ps(a,b),31); } //inline vec_int gt_vec( vec_float a, vec_float b) { vec_univ v; v.f4 = _mm_cmpgt_ps(a,b); return _mm_srli_epi32(v.i4,31); } //inline vec_int gt_vec( vec_int a, vec_int b) { return _mm_cmpgt_epi32(a,b); } //inline vec_int gt_scal( vec_float a, vec_float b) { return _mm_srli_epi32(_mm_cmpgt_ss(a,b),31); } //inline vec_int gt_scal( vec_float a, vec_float b) { vec_univ v; v.f4 = _mm_cmpgt_ss(a,b); return _mm_srli_epi32(v.i4,31); } //inline vec_int gt_scal( vec_float a, vec_float b) { return _mm_srli_epi32(_mm_cmpgt_ss(a,b),31); } //inline vec_int gt_scal( vec_int a, vec_float b) { return _mm_srli_epi32(_mm_cmpgt_ss(a,b),31); } //inline vec_int gt_scal( vec_int a, vec_int b) { return _mm_cmpgt_epi32(a,b); } // _mm_cmpgt_pi32(a,b) en MMX //inline scal_int gt_scal( scal_int a, scal_int b) { return (__m128i) _mm_cmpgt_pi32(a,b); } #if 0 inline vec_int lt_vec( vec_float a, vec_float b) { return _mm_cmplt_ps(a,b); } inline vec_int lt_vec( vec_int a, vec_int b) { return _mm_cmpgt_epi32(b,a); } inline vec_int lt_scal( vec_float a, vec_float b) { return _mm_cmplt_ss(a,b); } inline vec_int lt_scal( vec_int a, vec_int b) { return _mm_cmpgt_epi32(b,a); } // _mm_cmpgt_pi32(b,a) en MMX //inline scal_int lt_scal( scal_int a, scal_int b) { return _mm_cmpgt_pi32(b,a); } inline vec_int ge_vec( vec_float a, vec_float b) { return _mm_cmpge_ps(a,b); } inline vec_int ge_vec( vec_int a, vec_int b) { return _mm_xor_si128( _mm_cmpgt_epi32(a,b), _mm_cmpeq_epi32(a,b)); } inline vec_int ge_scal( vec_float a, vec_float b) { return _mm_cmpge_ss(a,b); } inline vec_int ge_scal( vec_int a, vec_int b) { return _mm_xor_si128( _mm_cmpgt_epi32(a,b), _mm_cmpeq_epi32(a,b)); } // _mm_xor_si64,_mm_cmpgt_pi32,_mm_cmpeq_pi32 MMX //inline scal_int ge_scal( scal_int a, scal_int b) { return _mm_xor_si64( _mm_cmpgt_pi32(a,b),_mm_cmpeq_pi32(a,b)); } inline vec_int le_vec( vec_float a, vec_float b) { return _mm_cmple_ps(a,b); } inline vec_int le_vec( vec_int a, vec_int b) { return _mm_xor_si128( _mm_cmpgt_epi32(b,a), _mm_cmpeq_epi32(b,a)); } inline vec_int le_scal( vec_float a, vec_float b) { return _mm_cmple_ss(a,b); } inline vec_int le_scal( vec_int a, vec_int b) { return _mm_xor_si128( _mm_cmpgt_epi32(b,a), _mm_cmpeq_epi32(b,a)); } // _mm_xor_si64,_mm_cmpgt_pi32,_mm_cmpeq_pi32 MMX //inline scal_int le_scal( scal_int a, scal_int b) { return _mm_xor_si64( _mm_cmpgt_pi32(b,a),_mm_cmpeq_pi32(b,a)); } inline vec_int eq_vec( vec_float a, vec_float b) { return _mm_cmpeq_ps(a,b); } inline vec_int eq_vec( vec_int a, vec_int b) { return _mm_cmpeq_epi32(a,b); } inline vec_int eq_scal( vec_float a, vec_float b) { return _mm_cmpeq_ss(a,b); } inline vec_int eq_scal( vec_int a, vec_int b) { return _mm_cmpeq_epi32(a,b); } // _mm_cmpeq_pi32(a,b) en MMX //inline scal_int eq_scal( scal_int a, scal_int b) { return _mm_cmpeq_pi32(a,b); } inline vec_int neq_vec( vec_float a, vec_float b) { return _mm_cmpneq_ps(a,b); } inline vec_int neq_vec( vec_int a, vec_int b) { return _mm_andnot_si128(_mm_cmpeq_epi32(a,b), _mm_cmpeq_epi32(a,a)); } inline vec_int neq_scal( vec_float a, vec_float b) { return _mm_cmpneq_ss(a,b); } inline vec_int neq_scal( vec_int a, vec_int b) { return _mm_andnot_si128(_mm_cmpeq_epi32(a,b), _mm_cmpeq_epi32(a,a)); } // _mm_andnot_si64,_mm_cmpeq_pi32 MMX //inline scal_int neq_scal( scal_int a, scal_int b) { return _mm_andnot_si64(_mm_cmpeq_pi32(a,b),SCAL_INT_ALL_ONE); } #endif // memory #if 0 inline vec_float set_vec( double a) { float val = float(a); vec_float temp = _mm_load_ss(&val); return _mm_shuffle_ps(temp,temp,0x00); } inline vec_float set_vec( float a) { float val = a; vec_float temp = _mm_load_ss(&val); return _mm_shuffle_ps(temp,temp,0x00); } inline vec_int set_vec( long int a) { vec_int temp = _mm_cvtsi32_si128(int(a)); temp = _mm_unpacklo_epi32(temp,temp); return _mm_unpacklo_epi32(temp,temp); } inline vec_int set_vec( int a) { vec_int temp = _mm_cvtsi32_si128(a); temp = _mm_unpacklo_epi32(temp,temp); return _mm_unpacklo_epi32(temp,temp);} inline vec_int set_vec( short a) { vec_int temp = _mm_cvtsi32_si128(int(a)); temp = _mm_unpacklo_epi32(temp,temp); return _mm_unpacklo_epi32(temp,temp); } //inline scal_int set_vec( long int a) { _mm_cvtsi32_si64(int(a)); } //inline scal_int set_vec( int a) { _mm_cvtsi32_si64(a); } //inline scal_int set_vec( short a) { _mm_cvtsi32_si64(int(a)); } #endif #if 0 inline vec_float set_vec( double a, double b, double c, double d) { __vec_float temp; temp.s[0]=float(a); temp.s[1]=float(b); temp.s[2]=float(c); temp.s[3]=float(d); return temp.v; } inline vec_float set_vec( float a, float b, float c, float d) { __vec_float temp; temp.s[0]=a; temp.s[1]=b; temp.s[2]=c; temp.s[3]=d; return temp.v; } inline vec_int set_vec( int a, int b, int c, int d) { __vec_int temp; temp.s[0]=a; temp.s[1]=b; temp.s[2]=c; temp.s[3]=d; return temp.v; } inline vec_int set_vec( long int a, long int b, long int c, long int d) { __vec_int temp; temp.s[0]=int(a); temp.s[1]=int(b); temp.s[2]=int(c); temp.s[3]=int(d); return temp.v; } inline vec_int set_vec( short a, short b, short c, short d) { __vec_int temp; temp.s[0]=short(a); temp.s[1]=short(b); temp.s[2]=short(c); temp.s[3]=short(d); return temp.v; } #endif inline vec_float set_vec( float a, float b, float c, float d) { return vec_float(a,b,c,d); } inline vec_int set_vec( int a, int b, int c, int d) { return vec_int(a,b,c,d); } inline vec_float set_vec( float a) { return vec_float(a); } inline vec_int set_vec( int a) { return vec_int(a); } inline vec_float load_a_vec( float* a) { return _mm_load_ps(a); } inline vec_int load_a_vec( int* a) { return _mm_load_si128((__m128i*)a); } inline vec_float load_u_vec( float* a) { return _mm_loadu_ps(a); } inline vec_int load_u_vec( int* a) { return _mm_loadu_si128((__m128i*)a); } // nouvelles fonctions d'criture sans polluer le cache inline void store_stream( float* a, vec_float b) { return _mm_stream_ps(a,b); } inline void store_stream( int* a, vec_int b) { return _mm_stream_si128((__m128i*)a,b); } inline void store_a_vec( float* a, vec_float b) { return _mm_store_ps(a,b); } inline void store_a_vec( int* a, vec_int b) { return _mm_store_si128((__m128i*)a,b); } inline void store_u_vec( float* a, vec_float b) { return _mm_storeu_ps(a,b); } inline void store_u_vec( int* a, vec_int b) { return _mm_storeu_si128((__m128i*)a,b); } inline vec_float load_scal(float* a) { return _mm_load_ss(a); } inline vec_int load_scal(int* a) { return _mm_cvtsi32_si128(*a); } //inline scal_int load_scal(int* a) { return _mm_cvtsi32_si64(*a); } inline void store_scal(float* a, vec_float content) { return _mm_store_ss(a,content); } inline void store_scal(int* a, vec_int content) { *a = _mm_cvtsi128_si32(content); return; } //inline void store_scal(int* a, scal_int content) { *a = _mm_cvtsi64_si32(content); return; } inline vec_float REC0(vec_float a) { return _mm_unpacklo_ps(a,a); } inline vec_float REC1(vec_float a) { return _mm_unpacklo_ps(a,a); } inline vec_float REC2(vec_float a) { return _mm_shuffle_ps(a,a,0x90); } inline vec_float REC3(vec_float a) { return _mm_shuffle_ps(a,a,0x1B); } inline vec_int REC0(vec_int a) { return _mm_unpacklo_epi32(a,a); } inline vec_int REC1(vec_int a) { return _mm_unpacklo_epi32(a,a); } inline vec_int REC2(vec_int a) { return _mm_shuffle_epi32(a,0x90); } inline vec_int REC3(vec_int a) { return _mm_shuffle_epi32(a,0x1B); } // scalar to vector: takes 4 vector which lower elements stands for a scalar value and rebuild a vector from these 4 scalar //inline vec_float SCAL2VEC(vec_float a0,vec_float a1,vec_float a2,vec_float a3) { return _mm_shuffle_ps(_mm_shuffle_ps(a0,a1,0x00),_mm_shuffle_ps(a2,a3,0x00),0x88); } inline vec_float SCAL2VEC(vec_float a0,vec_float a1,vec_float a2,vec_float a3) { return _mm_unpacklo_ps(_mm_unpacklo_ps(a0,a2),_mm_unpacklo_ps(a1,a3)); } inline vec_int SCAL2VEC(vec_int a0,vec_int a1,vec_int a2,vec_int a3) { return _mm_unpacklo_epi32(_mm_unpacklo_epi32(a0,a2),_mm_unpacklo_epi32(a1,a3)); } //inline vec_int SCAL2VEC(scal_int a0,scal_int a1,scal_int a2,scal_int a3) { return _mm_unpacklo_epi32( _mm_movpi64_epi64(_mm_unpacklo_pi32(a0,a2)), _mm_movpi64_epi64(_mm_unpacklo_pi32(a1,a3)) ); } // ou _mm_set_epi64( _mm_unpacklo_pi32(a0,a1), _mm_unpacklo_pi32(a2,a3)) inline vec_float SCAL2VEC(double a0, double a1, double a2, double a3) { return _mm_set_ps(float(a3),float(a2),float(a1),float(a0)); } inline vec_float SCAL2VEC(float a0, float a1, float a2, float a3) { return _mm_set_ps(a3,a2,a1,a0); } inline vec_int SCAL2VEC(long a0, long a1, long a2, long a3) { return _mm_set_epi32(int(a3),int(a2),int(a1),int(a0)); } inline vec_int SCAL2VEC(int a0, int a1, int a2, int a3) { return _mm_set_epi32(a3,a2,a1,a0); } inline vec_int SCAL2VEC(short a0, short a1, short a2, short a3) { return _mm_set_epi32(int(a3),int(a2),int(a1),int(a0)); } // vector to scalar: build a scalar vector from one element of the initial vector inline vec_float VEC2SCALVEC0(vec_float a) { return a; } // return x,x,x,a0 // _mm_shuffle_ps(a,a,Ox00) would return a0,a0,a0,a0 inline vec_float VEC2SCALVEC1(vec_float a) { return _mm_shuffle_ps(a,a,0x55); } // return a1,a1,a1,a1 inline vec_float VEC2SCALVEC2(vec_float a) { return _mm_shuffle_ps(a,a,0xAA); } // return a2,a2,a2,a2 inline vec_float VEC2SCALVEC3(vec_float a) { return _mm_shuffle_ps(a,a,0xFF); } // return a3,a3,a3,a3 inline vec_int VEC2SCALVEC0(vec_int a) { return a; } // return x,x,x,a0 // _mm_shuffle_epi32(a,Ox00) would return a0,a0,a0,a0 inline vec_int VEC2SCALVEC1(vec_int a) { return _mm_shuffle_epi32(a,0x55); } // return a1,a1,a1,a1 inline vec_int VEC2SCALVEC2(vec_int a) { return _mm_shuffle_epi32(a,0xAA); } // return a2,a2,a2,a2 inline vec_int VEC2SCALVEC3(vec_int a) { return _mm_shuffle_epi32(a,0xFF); } // return a3,a3,a3,a3 //inline scal_int VEC2SCALVEC0(vec_int a) { return _mm_movepi64_pi64(a); } // ATTENTION !!!! : //inline scal_int VEC2SCALVEC1(vec_int a) { __m64 temp = _mm_movepi64_pi64(a); return _mm_unpackhi_pi32(temp,temp); } // VEC2SCALVEC0 et 1 peuvent tre runis en une instruction plus efficace //inline scal_int VEC2SCALVEC2(vec_int a) { return _mm_movepi64_pi64(_mm_shuffle_epi32(a,0xAA)); } //inline scal_int VEC2SCALVEC3(vec_int a) { return _mm_movepi64_pi64(_mm_shuffle_epi32(a,0xFF)); } // vector to scalar: build a single scalar from a vector inline float VEC2SCAL0(vec_float a) { float temp; _mm_store_ss(&temp,a); return temp; } inline float VEC2SCAL1(vec_float a) { float temp; _mm_store_ss(&temp,_mm_shuffle_ps(a,a,0x55)); return temp; } inline float VEC2SCAL2(vec_float a) { float temp; _mm_store_ss(&temp,_mm_shuffle_ps(a,a,0xAA)); return temp; } inline float VEC2SCAL3(vec_float a) { float temp; _mm_store_ss(&temp,_mm_shuffle_ps(a,a,0xFF)); return temp; } inline int VEC2SCAL0(vec_int a) { return _mm_cvtsi128_si32(a); } inline int VEC2SCAL1(vec_int a) { return _mm_cvtsi128_si32(_mm_shuffle_epi32(a,0x55)); } inline int VEC2SCAL2(vec_int a) { return _mm_cvtsi128_si32(_mm_shuffle_epi32(a,0xAA)); } inline int VEC2SCAL3(vec_int a) { return _mm_cvtsi128_si32(_mm_shuffle_epi32(a,0xFF)); } //inline int VEC2SCAL0(scal_int a) { return _mm_cvtsi64_si32(a); } // select: if( select == 0 ) then a ; else b ; inline vec_float select_vec( vec_float select, vec_float a, vec_float b) { return _mm_or_ps( _mm_andnot_ps(select,a), _mm_and_ps(select,b));} inline vec_float select_scal( vec_float select, vec_float a, vec_float b){ return _mm_or_ps( _mm_andnot_ps(select,a), _mm_and_ps(select,b));} inline vec_float select_vec( vec_int select, vec_float a, vec_float b) { __m128 temp = _mm_cvtepi32_ps(select); return _mm_or_ps( _mm_andnot_ps(temp,a), _mm_and_ps(temp,b));} inline vec_float select_scal( vec_int select, vec_float a, vec_float b){ __m128 temp = _mm_cvtepi32_ps(select); return _mm_or_ps( _mm_andnot_ps(temp,a), _mm_and_ps(temp,b));} inline vec_int select_vec( vec_int select, vec_int a, vec_int b) { return _mm_or_si128( _mm_andnot_si128(select,a), _mm_and_si128(select,b)); } inline vec_int select_scal( vec_int select, vec_int a, vec_int b) { return _mm_or_si128( _mm_andnot_si128(select,a), _mm_and_si128(select,b)); } // ou MMX // vectorial version of the "mem" Faust key-word // return a[2] a[1] a[0] b[3] inline vec_float mem1_vec( vec_float a, vec_float b) { return _mm_shuffle_ps(_mm_shuffle_ps(b,a,0x4E),a,0x99); } inline vec_int mem1_vec( vec_int a, vec_int b) { return _mm_unpacklo_epi32( _mm_shuffle_epi32( _mm_unpacklo_epi32( _mm_shuffle_epi32( b, 0xFF), a), 0xEE), _mm_shuffle_epi32( a, 0x88) ); } // return a[1] a[0] b[3] b[2] inline vec_float mem2_vec( vec_float a, vec_float b) { return _mm_shuffle_ps(b,a,0x4E); } inline vec_int mem2_vec( vec_int a, vec_int b) { return _mm_shuffle_epi32( _mm_unpackhi_epi32( b, _mm_shuffle_epi32( a, 0x44)), 0xD8 ); } // return a[0] b[3] b[2] b[1] inline vec_float mem3_vec( vec_float a, vec_float b) { return _mm_shuffle_ps(b,_mm_shuffle_ps(b,a,0x4E),0x99); } inline vec_int mem3_vec( vec_int a, vec_int b) { return _mm_unpacklo_epi32( _mm_shuffle_epi32( b, 0x99), _mm_shuffle_epi32( _mm_unpackhi_epi32( b, _mm_shuffle_epi32( a, 0x00)), 0xEE) ); } // conversion inline vec_float bool2float( vec_float a ) { return _mm_and_ps(a,set_vec(1.0f)); } inline vec_float bool2float( vec_int a ) { return _mm_cvtepi32_ps(_mm_and_si128(a,_mm_sub_epi32(_mm_xor_si128(a,a),_mm_cmpeq_epi32(a,a)))); } inline vec_int bool2int( vec_int a) { return _mm_and_si128(a,_mm_sub_epi32(_mm_xor_si128(a,a),_mm_cmpeq_epi32(a,a))); } inline vec_int bool2int( vec_float a ) { return _mm_cvtps_epi32(_mm_and_ps(a,set_vec(1.0f))); } inline vec_int boolfloat2boolint( vec_float a ) { vec_int temp; asm volatile("" : "=xmm" (temp) : "0" (a)); return temp; } inline vec_float boolint2boolfloat( vec_int a ) { vec_float temp; asm volatile("" : "=xmm" (temp) : "0" (a)); return temp; } #elif defined(__ALTIVEC__) /****************************************************/ /* */ /* ALTIVEC implementation */ /* */ /****************************************************/ //#define vec_float vector float //#define vec_int vector signed int //#define vec_bool vector bool int struct vec_int { vector signed int vec; vec_int() {} vec_int(vector signed int m) { vec = m; } // operator __m128i() const { return vec; } }; struct vec_float { // union { __m128 vec; __m128i i4; }; vector float vec; vec_float() {} vec_float(vector float m) { vec = m; } //vec_float(vec_int a) { vec = _mm_cvtepi32_ps(a); } //operator __m128() const { return vec; } }; typedef union{ float s[4]; vec_float v; } __vec_float; typedef union{ int s[4]; vec_int v; } __vec_int; // Non-Java mode: during underflow zero result is returned // Not compatible with the Java-IEEE-C9X standard ( which // deliver denormalized result in case of underflow ) #define NO_DENORMALIZE vec_mtvscr(vec_or(vec_mfvscr(),(vector unsigned short)(0x8000))) #define DENORMALIZE vec_mtvscr(vec_or(vec_mfvscr(),(vector unsigned short)(0x0000))) // constants // 0 0 0 0 #define VEC_INT_ZERO(a) vec_xor(a,a) // 0xffffffff 0xffffffff 0xffffffff 0xffffffff #define VEC_INT_ONES(a) (vector signed int)vec_cmpeq(a,a) // 1 1 1 1 #define VEC_INT_ONE(a) vec_splat_s32(1) // -1 -1 -1 -1 #define VEC_INT_MINUS_ONE(a) vec_splat_s32(-1) // a must belong to [-16,15] // no efficient equivalent with SSE2 #define VEC_INT_MINUS_16_TO_15(a) vec_splat_s32(a) // This not exactly equivalent to the SSE2 version // the power must belong to [17,31] // ( that is 2^17 - 1 = 32767 is the minimum // and 2^31 - 1 = 2147483647 is the maximum; // if you need 2^32 - 1, use VEC_INT_ONES ) // Example: 2^19 - 1 = 524287 -> VEC_INT_PW2_MINUS_1(a,19) #define VEC_INT_PW2_MINUS_1(a,pw) vec_sr((vector signed int)vec_cmpeq(a,a), vec_splat_u32(32-pw)) // This not exactly equivalent to the SSE2 version // the power must belong to [4,18] // ( that is 2^18 = 262144 is the maximum // and 2^4 = 16 is the minimum; // if you need 2^0 = 1, use VEC_INT_ONE, // if you need 2^1 = 2, use VEC_INT_MINUS_16_TO_15(2) // if you need 2^2 = 4, use VEC_INT_MINUS_16_TO_15(4) // if you need 2^3 = 8, use VEC_INT_MINUS_16_TO_15(8) ) // Example: 2^10 = 1024 -> VEC_INT_PW2(a,10) #define VEC_INT_PW2(a,pw) vec_sl(vec_splat_s32(8), vec_splat_u32(pw-3)) //vec_sr(a,(vector unsigned int)num); // 0.0 0.0 0.0 0.0 #define VEC_FLOAT_ZERO(a) vec_xor(a,a) // 0xffffffff 0xffffffff 0xffffffff 0xffffffff #define VEC_FLOAT_ONES(a) (vector float)vec_cmpeq(a,a) // arithmetic inline vec_float add_vec( vec_float a, vec_float b) { return vec_add(a,b); } inline vec_float add_scal(vec_float a, vec_float b) { return vec_add(a,b); } inline vec_int add_vec( vec_int a, vec_int b) { return vec_add(a,b); } inline vec_int add_scal(vec_int a, vec_int b) { return vec_add(a,b); } inline vec_float sub_vec( vec_float a, vec_float b) { return vec_sub(a,b); } inline vec_float sub_scal( vec_float a, vec_float b) { return vec_sub(a,b); } inline vec_int sub_vec( vec_int a, vec_int b) { return vec_sub(a,b); } inline vec_int sub_scal( vec_int a, vec_int b) { return vec_sub(a,b); } inline vec_float mul_vec( vec_float a, vec_float b) { return vec_madd(a,b,(vec_float)(vec_splat_s32(int(0x00000000)))); } inline vec_float mul_scal( vec_float a, vec_float b) { return vec_madd(a,b,(vec_float)(vec_splat_s32(int(0x00000000)))); } // low 32 bits of a 32 * 32 bit multiplication: each double-word X and Y is broken down into two words, A & B and C & D: // X = ( A << 16 ) + B // Y = ( C << 16 ) + D // then: // X * Y = (( A << 16 ) + B ) * (( C << 16 ) + D ) // X * Y = ( A*C << 32 ) + ( A*D << 16 ) + ( B*C << 16 ) + B*D // the partial result A*C does not appear in the low 32 bits result so does not need to be computed ( however, if it's different // from zero, then there is an overflow ) // In this implementation A*D + B*C is computed in a single "vec_msum" inline vec_int mul_vec( vec_int a, vec_int b) { const vector unsigned int VEC_SIXTEEN_UINT32 = vec_splat_u32(-16); return (vector signed int)vec_add( vec_sl( vec_msum( (vector unsigned short)a, (vector unsigned short)(vec_rl( b, VEC_SIXTEEN_UINT32 ) ), vec_splat_u32(0) ), VEC_SIXTEEN_UINT32 ), vec_mulo( (vector unsigned short)a, (vector unsigned short)b ) ); } inline vec_int mul_scal( vec_int a, vec_int b) { const vector unsigned int VEC_SIXTEEN_UINT32 = vec_splat_u32(-16); return (vector signed int)vec_add( vec_sl( vec_msum( (vector unsigned short)a, (vector unsigned short)(vec_rl( b, VEC_SIXTEEN_UINT32 ) ), vec_splat_u32(0) ), VEC_SIXTEEN_UINT32 ), vec_mulo( (vector unsigned short)a, (vector unsigned short)b ) ); } //inline vec_int mul_vec( vec_int a, vec_int b) { return (vec_int)vec_round(vec_madd((vec_float)(a),(vec_float)(b),(vec_float)(vec_splat_s32(int(0x00000000))))); } //inline vec_int mul_scal( vec_int a, vec_int b) { return (vec_int)vec_round(vec_madd((vec_float)(a),(vec_float)(b),(vec_float)(vec_splat_s32(int(0x00000000))))); } inline vec_float div_vec( vec_float a, vec_float b) { return vec_madd(a,vec_re(b),(vec_float)(vec_splat_s32(int(0x00000000)))); } inline vec_float div_scal( vec_float a, vec_float b) { return vec_madd(a,vec_re(b),(vec_float)(vec_splat_s32(int(0x00000000)))); } inline vec_int div_vec( vec_int a, vec_int b) { return (vec_int)vec_round(vec_madd((vec_float)(a),vec_re((vec_float)(b)),(vec_float)(vec_splat_s32(int(0x00000000))))); } inline vec_int div_scal( vec_int a, vec_int b) { return (vec_int)vec_round(vec_madd((vec_float)(a),vec_re((vec_float)(b)),(vec_float)(vec_splat_s32(int(0x00000000))))); } inline vec_int mod_vec( vec_int a, vec_int N) { vec_int temp = vec_sub(a,N); vec_int zero = vec_splat_s32(int(0x00000000)); vector bool int select = (vector bool int )(vec_xor(vec_cmpgt(temp,zero),vec_cmpeq(temp,zero))); // a - N >= 0 return vec_sel(a,temp,select); // if( a - N >=0 ) return a - N; else return a; } inline vec_int mod_scal( vec_int a, vec_int N) { vec_int temp = vec_sub(a,N); vec_int zero = vec_splat_s32(int(0x00000000)); vector bool int select = (vector bool int )(vec_xor(vec_cmpgt(temp,zero),vec_cmpeq(temp,zero))); // a - N >= 0 return vec_sel(a,temp,select); // if( a - N >=0 ) return a - N; else return a; } // return a*b + c inline vec_float madd_vec( vec_float a, vec_float b, vec_float c) { return vec_madd(a,b,c); } inline vec_float madd_scal( vec_float a, vec_float b, vec_float c) { return vec_madd(a,b,c); } // return - ( a*b - c ) inline vec_float nmsub_vec( vec_float a, vec_float b, vec_float c) { return vec_nmsub(a,b,c); } inline vec_float nmsub_scal( vec_float a, vec_float b, vec_float c) { return vec_nmsub(a,b,c); } // return a*(1/b) + c inline vec_float divadd_vec( vec_float a, vec_float b, vec_float c) { return vec_madd(a,vec_re(b),c); } inline vec_float divadd_scal( vec_float a, vec_float b, vec_float c) { return vec_madd(a,vec_re(b),c); } // return - ( a*(1/b) - c ) inline vec_float divsub_vec( vec_float a, vec_float b, vec_float c) { return vec_nmsub(a,vec_re(b),c); } inline vec_float divsub_scal( vec_float a, vec_float b, vec_float c) { return vec_nmsub(a,vec_re(b),c); } // logic inline vec_float and_vec( vec_float a, vec_float b) { return vec_and(a,b); } inline vec_float and_scal( vec_float a, vec_float b) { return vec_and(a,b); } inline vec_int and_vec( vec_int a, vec_int b) { return vec_and(a,b); } inline vec_int and_scal( vec_int a, vec_int b) { return vec_and(a,b); } inline vec_float or_vec( vec_float a, vec_float b) { return vec_or(a,b); } inline vec_float or_scal( vec_float a, vec_float b) { return vec_or(a,b); } inline vec_int or_vec( vec_int a, vec_int b) { return vec_or(a,b); } inline vec_int or_scal( vec_int a, vec_int b) { return vec_or(a,b); } inline vec_float xor_vec( vec_float a, vec_float b) { return vec_xor(a,b); } inline vec_float xor_scal( vec_float a, vec_float b) { return vec_xor(a,b); } inline vec_int xor_vec( vec_int a, vec_int b) { return vec_xor(a,b); } inline vec_int xor_scal( vec_int a, vec_int b) { return vec_xor(a,b); } // shift left inline vec_int shift_left_vec( vec_int a, vec_int num) { return vec_sl(a,(vector unsigned int)num); } inline vec_int shift_left_scal( vec_int a, vec_int num) { return vec_sl(a,(vector unsigned int)num); } // shift ( and fill with the sign bit ) inline vec_int shift_right_vec( vec_int a, vec_int num) { return vec_sra(a,(vector unsigned int)num); } inline vec_int shift_right_scal( vec_int a, vec_int num) { return vec_sra(a,(vector unsigned int)num); } // shift ( and fill with 0's ) //inline vec_int shift_right_vec_logical( vec_int a, int num) { return vec_sr(a, set_vec(num) ); } //inline vec_int shift_right_scal_logical( vec_int a, int num) { return vec_sr(a, set_vec(num) ); ); } inline vec_int shift_right_vec_logical( vec_int a, vec_int num) { return vec_sr(a,(vector unsigned int)num); } inline vec_int shift_right_scal_logical( vec_int a, vec_int num) { return vec_sr(a,(vector unsigned int)num); } // comparaison inline vec_float gt_vec( vec_float a, vec_float b) { return (vector float)vec_cmpgt(a,b); } inline vec_float gt_scal( vec_float a, vec_float b) { return (vector float)vec_cmpgt(a,b); } inline vec_int gt_vec( vec_int a, vec_int b) { return (vector signed int)vec_cmpgt(a,b); } inline vec_int gt_scal( vec_int a, vec_int b) { return (vector signed int)vec_cmpgt(a,b); } inline vec_float lt_vec( vec_float a, vec_float b) { return (vector float)vec_cmplt(a,b); } inline vec_float lt_scal( vec_float a, vec_float b) { return (vector float)vec_cmplt(a,b); } inline vec_int lt_vec( vec_int a, vec_int b) { return (vector signed int)vec_cmplt(a,b); } inline vec_int lt_scal( vec_int a, vec_int b) { return (vector signed int)vec_cmplt(a,b); } inline vec_float ge_vec( vec_float a, vec_float b) { return (vector float)vec_cmpge(a,b); } inline vec_float ge_scal( vec_float a, vec_float b) { return (vector float)vec_cmpge(a,b); } inline vec_int ge_vec( vec_int a, vec_int b) { return (vector signed int)vec_xor(vec_cmpgt(a,b),vec_cmpeq(a,b)); } inline vec_int ge_scal( vec_int a, vec_int b) { return (vector signed int)vec_xor(vec_cmpgt(a,b),vec_cmpeq(a,b)); } inline vec_float le_vec( vec_float a, vec_float b) { return (vector float)vec_cmple(a,b); } inline vec_float le_scal( vec_float a, vec_float b) { return (vector float)vec_cmple(a,b); } inline vec_int le_vec( vec_int a, vec_int b) { return (vector signed int)vec_xor(vec_cmplt(a,b),vec_cmpeq(a,b)); } inline vec_int le_scal( vec_int a, vec_int b) { return (vector signed int)vec_xor(vec_cmplt(a,b),vec_cmpeq(a,b)); } inline vec_float eq_vec( vec_float a, vec_float b) { return (vector float)vec_cmpeq(a,b); } inline vec_float eq_scal( vec_float a, vec_float b) { return (vector float)vec_cmpeq(a,b); } inline vec_int eq_vec( vec_int a, vec_int b) { return (vector signed int)vec_cmpeq(a,b); } inline vec_int eq_scal( vec_int a, vec_int b) { return (vector signed int)vec_cmpeq(a,b); } inline vec_float neq_vec( vec_float a, vec_float b) { return (vector float)vec_xor(vec_cmpeq(a,b),vec_cmpeq(a,a)); } inline vec_float neq_scal( vec_float a, vec_float b) { return (vector float)vec_xor(vec_cmpeq(a,b),vec_cmpeq(a,a)); } inline vec_int neq_vec( vec_int a, vec_int b) { return (vector signed int)vec_xor(vec_cmpeq(a,b),vec_cmpeq(a,a)); } inline vec_int neq_scal( vec_int a, vec_int b) { return (vector signed int)vec_xor(vec_cmpeq(a,b),vec_cmpeq(a,a)); } // memory inline vec_float set_vec( vec_float a) { return a; } inline vec_float set_vec( __vec_float a) { return a.v; } inline vec_int set_vec( vec_int a) { return a; } inline vec_int set_vec( __vec_int a) { return a.v; } inline vec_float set_vec( double a) { float af; af = (float)a; vector float temp; temp = vec_lde(0,&af); temp = vec_perm(temp,temp,vec_lvsl(0,&af)); return vec_splat(temp,0); //__vec_float temp; float af = float(a); temp.s[0]=af; temp.s[1]=af; temp.s[2]=af; temp.s[3]=af; return temp.v; } inline vec_float set_vec( float a) { float af; af = a; vector float temp; temp = vec_lde(0,&af); temp = vec_perm(temp,temp,vec_lvsl(0,&af)); return vec_splat(temp,0); //__vec_float temp; temp.s[0]=a; temp.s[1]=a; temp.s[2]=a; temp.s[3]=a; return temp.v; } inline vec_int set_vec( long int a) { int ai; ai = (int)a; vector signed int temp; temp = vec_lde(0,&ai); temp = vec_perm(temp,temp,vec_lvsl(0,&ai)); return vec_splat(temp,0); //__vec_int temp; int al = int(a); temp.s[0]=al; temp.s[1]=al; temp.s[2]=al; temp.s[3]=al; return temp.v; } inline vec_int set_vec( int a) { int ai; ai = a; vector signed int temp; temp = vec_lde(0,&ai); temp = vec_perm(temp,temp,vec_lvsl(0,&ai)); return vec_splat(temp,0); //__vec_int temp; temp.s[0]=a; temp.s[1]=a; temp.s[2]=a; temp.s[3]=a; return temp.v; } inline vec_int set_vec( short a) { int ai; ai = (int)a; vector signed int temp; temp = vec_lde(0,&ai); temp = vec_perm(temp,temp,vec_lvsl(0,&ai)); return vec_splat(temp,0); //__vec_int temp; int as = int(a); temp.s[0]=as; temp.s[1]=as; temp.s[2]=as; temp.s[3]=as; return temp.v; } inline vec_float set_vec( double a, double b, double c, double d) { __vec_float temp; temp.s[0]=float(a); temp.s[1]=float(b); temp.s[2]=float(c); temp.s[3]=float(d); return temp.v; } inline vec_float set_vec( float a, float b, float c, float d) { __vec_float temp; temp.s[0]=a; temp.s[1]=b; temp.s[2]=c; temp.s[3]=d; return temp.v; } inline vec_int set_vec( int a, int b, int c, int d) { __vec_int temp; temp.s[0]=a; temp.s[1]=b; temp.s[2]=c; temp.s[3]=d; return temp.v; } inline vec_int set_vec( long int a, long int b, long int c, long int d) { __vec_int temp; temp.s[0]=int(a); temp.s[1]=int(b); temp.s[2]=int(c); temp.s[3]=int(d); return temp.v; } inline vec_int set_vec( short a, short b, short c, short d) { __vec_int temp; temp.s[0]=short(a); temp.s[1]=short(b); temp.s[2]=short(c); temp.s[3]=short(d); return temp.v; } inline vec_float load_a_vec( float* a) { return vec_ld(0,a); } //inline vec_float load_u_vec( float* a) { } inline vec_int load_a_vec( int* a) { return vec_ld(0,a); } //inline vec_int load_u_vec( int* a) { } inline void store_a_vec( float* a, vec_float b) { return vec_st(b,0,a); } //inline void store_u_vec( float* a, vec_float b) { } inline void store_a_vec( int* a, vec_int b) { return vec_st(b,0,a); } //inline void store_u_vec( int* a, vec_int b) { } inline vec_float load_scal(float* a) { vector float temp; temp = vec_lde(0,a); return vec_perm(temp,temp,vec_lvsl(0,a)); } inline vec_int load_scal(int* a) { vector signed int temp; temp = vec_lde(0,a); return vec_perm(temp,temp,vec_lvsl(0,a)); } inline void store_scal(float* a, vec_float content) { vec_float temp = vec_splat(content,0); return vec_ste(temp,0,a); } inline void store_scal(int* a, vec_int content) { vec_int temp = vec_splat(content,0); return vec_ste(temp,0,a); } inline vec_float REC0(vec_float a) { return vec_mergeh(a,a); } inline vec_float REC1(vec_float a) { return vec_mergeh(a,a); } inline vec_float REC2(vec_float a) { return vec_sld(vec_splat(a,0),a,12); } inline vec_float REC3(vec_float a) { vector float temp1 = vec_mergel(a,a); vector float temp2 = vec_mergeh(a,a); return vec_mergel(vec_mergel(temp1,temp2),vec_mergeh(temp1,temp2)); } inline vec_int REC0(vec_int a) { return vec_mergeh(a,a); } inline vec_int REC1(vec_int a) { return vec_mergeh(a,a); } inline vec_int REC2(vec_int a) { return vec_sld(vec_splat(a,0),a,12); } inline vec_int REC3(vec_int a) { vector signed int temp1 = vec_mergel(a,a); vector signed int temp2 = vec_mergeh(a,a); return vec_mergel(vec_mergel(temp1,temp2),vec_mergeh(temp1,temp2)); } // scalar to vector: takes 4 vector which lower elements stands for a scalar value and rebuild a vector from these 4 scalar inline vec_float SCAL2VEC(vec_float a0,vec_float a1,vec_float a2,vec_float a3) { return vec_perm(vec_mergeh(a0,a1),vec_mergeh(a2,a3),vec_lvsl(8,(float*)(0))); //return vec_perm(vec_perm(a0,a1,VEC_PERM0),vec_perm(a2,a3,VEC_PERM0),VEC_PERM1); } inline vec_int SCAL2VEC(vec_int a0,vec_int a1,vec_int a2,vec_int a3) { return vec_perm(vec_mergeh(a0,a1),vec_mergeh(a2,a3),vec_lvsl(8,(int*)(0))); //return vec_perm(vec_perm(a0,a1,VEC_PERM0),vec_perm(a2,a3,VEC_PERM0),VEC_PERM1); } inline vec_float SCAL2VEC(float a0, float a1, float a2, float a3) { __vec_float temp; temp.s[0]=a0; temp.s[1]=a1; temp.s[2]=a2; temp.s[3]=a3; return temp.v; } inline vec_int SCAL2VEC(int a0, int a1, int a2, int a3) { __vec_int temp; temp.s[0]=a0; temp.s[1]=a1; temp.s[2]=a2; temp.s[3]=a3; return temp.v; } // vector to scalar: build a scalar vector from one element of the initial vector inline vec_float VEC2SCALVEC0(vec_float a) { return a; } // return x,x,x,a0 // vec_splat(a,0) would return a0,a0,a0,a0 inline vec_float VEC2SCALVEC1(vec_float a) { return vec_splat(a,1); } // return a1,a1,a1,a1 inline vec_float VEC2SCALVEC2(vec_float a) { return vec_splat(a,2); } // return a2,a2,a2,a2 inline vec_float VEC2SCALVEC3(vec_float a) { return vec_splat(a,3); } // return a3,a3,a3,a3 inline vec_int VEC2SCALVEC0(vec_int a) { return a; } // return x,x,x,a0 // vec_splat(a,0) would return a0,a0,a0,a0 inline vec_int VEC2SCALVEC1(vec_int a) { return vec_splat(a,1); } // return a1,a1,a1,a1 inline vec_int VEC2SCALVEC2(vec_int a) { return vec_splat(a,2); } // return a2,a2,a2,a2 inline vec_int VEC2SCALVEC3(vec_int a) { return vec_splat(a,3); } // return a3,a3,a3,a3 // vector to scalar: build a single scalar from a vector inline float VEC2SCAL0(vec_float a) { float temp __attribute__ ((aligned(16))); vec_ste(vec_splat(a,0),0,&temp); return temp; } inline float VEC2SCAL1(vec_float a) { float temp __attribute__ ((aligned(16))); vec_ste(vec_splat(a,1),0,&temp); return temp; } inline float VEC2SCAL2(vec_float a) { float temp __attribute__ ((aligned(16))); vec_ste(vec_splat(a,2),0,&temp); return temp; } inline float VEC2SCAL3(vec_float a) { float temp __attribute__ ((aligned(16))); vec_ste(vec_splat(a,3),0,&temp); return temp; } inline int VEC2SCAL0(vec_int a) { int temp __attribute__ ((aligned(16))); vec_ste(vec_splat(a,0),0,&temp); return temp; } inline int VEC2SCAL1(vec_int a) { int temp __attribute__ ((aligned(16))); vec_ste(vec_splat(a,1),0,&temp); return temp; } inline int VEC2SCAL2(vec_int a) { int temp __attribute__ ((aligned(16))); vec_ste(vec_splat(a,2),0,&temp); return temp; } inline int VEC2SCAL3(vec_int a) { int temp __attribute__ ((aligned(16))); vec_ste(vec_splat(a,3),0,&temp); return temp; } // select: if( select == 0 ) then a ; else b ; inline vec_float select_vec( vec_float select, vec_float a, vec_float b) { return vec_sel(a,b,(vector bool int)select ); } inline vec_float select_scal( vec_float select, vec_float a, vec_float b) {return vec_sel(a,b,(vector bool int)select ); } inline vec_float select_vec( vec_int select, vec_float a, vec_float b) { return vec_sel(a,b,(vector bool int)select ); } inline vec_float select_scal( vec_int select, vec_float a, vec_float b) {return vec_sel(a,b,(vector bool int)select ); } inline vec_int select_vec( vec_int select, vec_int a, vec_int b) { return vec_sel(a,b,(vector bool int)select ); } inline vec_int select_scal( vec_int select, vec_int a, vec_int b) { return vec_sel(a,b,(vector bool int)select ); } // vectorial version of the "mem" Faust key-word // result = { a[2] a[1] a[0] b[3] } inline vec_float mem1_vec( vec_float a, vec_float b) { return vec_sld(b,a,12); } inline vec_int mem1_vec( vec_int a, vec_int b) { return vec_sld(b,a,12); } // result = { a[1] a[0] b[3] b[2] } inline vec_float mem2_vec( vec_float a, vec_float b) { return vec_sld(b,a,8); } inline vec_int mem2_vec( vec_int a, vec_int b) { return vec_sld(b,a,8); } // result = { a[0] b[3] b[2] b[1] } inline vec_float mem3_vec( vec_float a, vec_float b) { return vec_sld(b,a,4); } inline vec_int mem3_vec( vec_int a, vec_int b) { return vec_sld(b,a,4); } // conversion inline vec_float bool2float( vec_float a ) { return vec_and(a,(vec_float)(vec_splat_s32(int(0x00000001)))); } inline vec_float bool2float( vec_int a ) { return (vec_float)(vec_and(a,vec_splat_s32(int(0x00000001)))); } inline vec_int bool2int( vec_int a) { return (vec_int)vec_and(a,vec_splat_s32(int(0x00000001))); } inline vec_int bool2int( vec_float a ) { return (vec_int)vec_round(vec_and(a,(vec_float)(vec_splat_s32(int(0x00000001))))); } inline vec_int boolfloat2boolint( vec_float a ) { return (vector signed int)a; } inline vec_float boolint2boolfloat( vec_int a ) { return (vector float)a; } inline vec_int float2int( vec_float a) { return (vec_int)vec_round(a); } inline int float2int( float a ) { return int(a); } inline vec_float int2float( vec_int a) { return vec_ctf(a,0); } inline float int2float( int a ) { return float(a); } #endif faust-0.9.46/architecture/mathdoctexts-en.txt0000644000175000017500000001320611702130733021201 0ustar orlareyorlarey// Default texts for the math documentator of the Faust compiler. // Copyright (C) 2009 GRAME, Centre National de Creation Musicale // Karim Barkati // Remark: // double quotes are useful to visualize spaces and tabulations // at the beginning or at the end of strings. // Metadatas section. :name "name" :author "author" :copyright "copyright" :license "license" :version "version" // Notice section. :faustapply "The value of a Faust program is the result of applying the signal transformer denoted by the expression to which the \texttt{process} identifier is bound to input signals, running at the $f_S$ sampling frequency." :faustpresentation "Faust (\emph{Functional Audio Stream}) is a functional programming language designed for synchronous real-time signal processing and synthesis applications. A Faust program is a set of bindings of identifiers to expressions that denote signal transformers. A signal $s$ in $S$ is a function mapping\footnote{Faust assumes that $\forall \, s \in S, \forall \, t \in \mathbb{Z}, s(t) = 0 \mathrm{\ when\ } t < 0$.} times $t \in \mathbb{Z}$ to values $s(t) \in \mathbb{R}$, while a signal transformer is a function from $S^n$ to $S^m$, where $n,m\in \mathbb{N}$. See the Faust manual for additional information (\textsf{http://faust.grame.fr})." :causality "Every mathematical formula derived from a Faust expression is assumed, in this document, to having been normalized (in an implementation-depen\-dent manner) by the Faust compiler." :blockdiagrams "A block diagram is a graphical representation of the Faust binding of an identifier I to an expression E; each graph is put in a box labeled by I. Subexpressions of E are recursively displayed as long as the whole picture fits in one page." :faustdocdir "The \texttt{\faustdocdir/} directory may also include the following subdirectories:" "\begin{itemize}" " \item \texttt{cpp/} for Faust compiled code; " " \item \texttt{pdf/} which contains this document; " " \item \texttt{src/} for all Faust sources used (even libraries); " " \item \texttt{svg/} for block diagrams, encoded using the Scalable Vector Graphics format (\textsf{http://www.w3.org/Graphics/SVG/});" " \item \texttt{tex/} for the \LaTeX\ source of this document." "\end{itemize}" :foreignfun ""ff" prefix in some function name stands for C++ "foreign function"." :intcast "$\forall \, x \in \mathbb{R}$, " " \begin{displaymath}" " \mathrm{int}(x) =" " \left\{\begin{array}{cl}" " \lfloor x \rfloor & \mbox{if \,} x > 0 \\" " \lceil x \rceil & \mbox{if \,} x < 0 \\" " 0 & \mbox{if \,} x = 0 \\" " \end{array}\right.." " \end{displaymath}" :operators "This document uses the following integer operations:" :optabtitle "\emph{operation} & \emph{name} & \emph{semantics} \\" :intplus "$i \oplus j$ & integer addition & $\mathrm{normalize}(i+j), \mathrm{~in~} \mathbb{Z}$ \\" :intminus "$i \ominus j$ & integer substraction & $\mathrm{normalize}(i-j), \mathrm{~in~} \mathbb{Z}$ \\" :intmult "$i \odot j$ & integer multiplication & $\mathrm{normalize}(i \cdot j), \mathrm{~in~} \mathbb{Z}$ \\" :intdiv "$i \oslash j$ & integer division & $\mathrm{normalize}(\mathrm{int}(i/j)), \mathrm{~in~} \mathbb{Q}$ \\" :integerops "Integer operations in Faust are inspired by the semantics of operations on the n-bit two's complement representation of integer numbers; they are internal composition laws on the subset $[\,-2^{n-1}, 2^{n-1}\!-\!1\,]$ of $\mathbb{Z}$, with $n = 32$. For any integer binary operation $\times$ on $\mathbb{Z}$, the $\otimes$ operation is defined as: $i \otimes j = \mathrm{normalize}(i \times j)$, with " "$$\mathrm{normalize}(i) = i - N\cdot\mathrm{sign}(i) \cdot \left\lfloor \frac{|i|+N/2+(\mathrm{sign}(i)\!-\!1)/2}{N} \right\rfloor , $$" " where $N = 2^n$ and $\mathrm{sign}(i) = 0 \mathrm{\ if\ } i=0 \mathrm{\ and\ } i / |i| \mathrm{\ otherwise}.$" "Unary integer operations are defined likewise." // Auto-documentation section. :thisdoc "This document provides a mathematical description of the Faust program text stored in the \texttt{\faustfilename} file. See the notice in Section\,\ref{notice} (page\,\pageref{notice}) for details." :autoeqntitle "\section{Mathematical definition of \texttt{process}}" "\label{equation}" :autoeqntext "The \emph{\faustprogname} program evaluates the signal transformer denoted by \texttt{process}, which is mathematically defined as follows:" :autodgmtitle "\section{Block diagram of \texttt{process}}" "\label{diagram}" :autodgmtext "The block diagram of \texttt{process} is shown on Figure\,\ref{figure1} (page\,\pageref{figure1})." :autontctitle "\section{Notice}" "\label{notice}" :autontctext "This document was generated using Faust version \faustversion\ on \faustdocdate." :autolsttitle1 "\section{Faust code listing}" "\label{listing}" :autolsttext1 "This section provides the listing of the Faust code used to generate this document." :autolsttitle2 "\section{Faust code listings}" "\label{listing}" :autolsttext2 "This section provides the listings of the Faust code used to generate this document, including dependencies." // Titles for each type of formulas. :inputsigtitle1 "Input signal" :inputsigtitle2 "Input signals" :outputsigtitle1 "Output signal" :outputsigtitle2 "Output signals" :constsigtitle1 "Constant" :constsigtitle2 "Constants" :uisigtitle1 "User-interface input signal" :uisigtitle2 "User-interface input signals" :intermedsigtitle1 "Intermediate signal" :intermedsigtitle2 "Intermediate signals" :lateqcomment "% Set of Faust formulas (corresponding to an tag)." :emptyformulafield "none" :defaultvalue "default value" :suchthat "such that" :and "and" :for "for" :rootlevel "(at root level)" :dgmcaption "Block diagram of" faust-0.9.46/architecture/ms-jack-gtk.cpp0000644000175000017500000007750511702130733020161 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ /* link with */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } // g++ -O3 -lm -ljack `gtk-config --cflags --libs` ex2.cpp #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) // abs is now predefined //template T abs (T a) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<> /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) abstract interfaces ******************************************************************************* *******************************************************************************/ #include #include using namespace std; struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; struct uiItem; typedef void (*uiCallback)(float val, void* data); /** * Graphic User Interface : abstract definition */ class UI { typedef list clist; typedef map zmap; private: static list fGuiList; zmap fZoneMap; bool fStopped; public: UI() : fStopped(false) { fGuiList.push_back(this); } virtual ~UI() { // suppression de this dans fGuiList } // -- registerZone(z,c) : zone management void registerZone(float* z, uiItem* c) { if (fZoneMap.find(z) == fZoneMap.end()) fZoneMap[z] = new clist(); fZoneMap[z]->push_back(c); } // -- saveState(filename) : save the value of every zone to a file void saveState(const char* filename) { ofstream f(filename); for (zmap::iterator i=fZoneMap.begin(); i!=fZoneMap.end(); i++) { f << *(i->first) << ' '; } f << endl; f.close(); } // -- recallState(filename) : load the value of every zone from a file void recallState(const char* filename) { ifstream f(filename); if (f.good()) { for (zmap::iterator i=fZoneMap.begin(); i!=fZoneMap.end(); i++) { f >> *(i->first); } } f.close(); } void updateAllZones(); void updateZone(float* z); static void updateAllGuis() { list::iterator g; for (g = fGuiList.begin(); g != fGuiList.end(); g++) { (*g)->updateAllZones(); } } // -- active widgets virtual void addButton(const char* label, float* zone) {}; virtual void addToggleButton(const char* label, float* zone) {}; virtual void addCheckButton(const char* label, float* zone) {}; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) {}; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) {}; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) {}; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) {}; virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) {}; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) {}; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) {}; void addCallback(float* zone, uiCallback foo, void* data); // -- widget's layouts virtual void openFrameBox(const char* label) {}; virtual void openTabBox(const char* label) {}; virtual void openHorizontalBox(const char* label) {}; virtual void openVerticalBox(const char* label) {}; virtual void closeBox() {}; virtual void show() {}; virtual void run() {}; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /** * User Interface Item: abstract definition */ class uiItem { protected : UI* fGUI; float* fZone; float fCache; uiItem (UI* ui, float* zone) : fGUI(ui), fZone(zone), fCache(-123456.654321) { ui->registerZone(zone, this); } public : virtual ~uiItem() {} void modifyZone(float v) { fCache = v; if (*fZone != v) { *fZone = v; fGUI->updateZone(fZone); } } float cache() { return fCache; } virtual void reflectZone() = 0; }; /** * Callback Item */ struct uiCallbackItem : public uiItem { uiCallback fCallback; void* fData; uiCallbackItem(UI* ui, float* zone, uiCallback foo, void* data) : uiItem(ui, zone), fCallback(foo), fData(data) {} virtual void reflectZone() { float v = *fZone; fCache = v; fCallback(v, fData); } }; // en cours d'installation de call back. a finir!!!!! /** * Update all user items reflecting zone z */ inline void UI::updateZone(float* z) { float v = *z; clist* l = fZoneMap[z]; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } /** * Update all user items not up to date */ inline void UI::updateAllZones() { for (zmap::iterator m = fZoneMap.begin(); m != fZoneMap.end(); m++) { float* z = m->first; clist* l = m->second; float v = *z; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } } inline void UI::addCallback(float* zone, uiCallback foo, void* data) { new uiCallbackItem(this, zone, foo, data); }; /****************************************************************************** ******************************************************************************* MIDISHARE INTERFACE ******************************************************************************* usage : MidiShareUI midi; ... DSP.buildUserInterface(&midi); midi.open("name"); ... ******************************************************************************* *******************************************************************************/ #include class MidiShareUI : public UI { struct ctrl { float* fZone; float fMin; float fMax; ctrl(float* z, float lo, float hi) : fZone(z), fMin(lo), fMax(hi) {} }; int fRefnum; ///< MidiShare reference number map fZoneCtrl; ///< zone -> ctrl mapping ctrl* fMidiCtrl[128]; ///< midi controller number -> zone ctrl public: MidiShareUI() : fRefnum(-1) { for (int i=0; i<128; i++) fMidiCtrl[i]=0; } virtual ~MidiShareUI() { close(); } // -- user interface part virtual void addButton(const char* label, float* zone) { fZoneCtrl[zone] = new ctrl(zone, 0, 1); } virtual void addToggleButton(const char* label, float* zone) { fZoneCtrl[zone] = new ctrl(zone, 0, 1); } virtual void addCheckButton(const char* label, float* zone) { fZoneCtrl[zone] = new ctrl(zone, 0, 1); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { fZoneCtrl[zone] = new ctrl(zone, min, max); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { fZoneCtrl[zone] = new ctrl(zone, min, max); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { fZoneCtrl[zone] = new ctrl(zone, min, max); } // -- metadata part virtual void declare(float* zone, const char* key, const char* value) { int n = atoi(value); if (strcmp(key, "midictrl") == 0 && fZoneCtrl[zone] != 0 && n >= 0 && n <= 127) fMidiCtrl[n] = fZoneCtrl[zone]; } // -- MidiShare session virtual void open(const char* name) { fRefnum = MidiOpen((char*)name); MidiSetInfo(fRefnum, this); MidiSetRcvAlarm(fRefnum, midiCallback); } virtual void close() { MidiClose(fRefnum); fRefnum=-1; } // -- MidiShare event processing static void midiCallback(short refnum) { MidiShareUI* self = (MidiShareUI*)MidiGetInfo(refnum); for (MidiEvPtr e=MidiGetEv(refnum); e!=0; e=MidiGetEv(refnum)) { self->processEvent(e); MidiFreeEv(e); } } virtual void processEvent(MidiEvPtr e) { ctrl* c; if ( (EvType(e)==typeCtrlChange) && (c=fMidiCtrl[Pitch(e)]) ) *(c->fZone) = c->fMin + (c->fMax-c->fMin)*Vel(e)/127; } }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE gtk interface ******************************************************************************* *******************************************************************************/ #include #define stackSize 256 // Insertion modes #define kSingleMode 0 #define kBoxMode 1 #define kTabMode 2 class GTKUI : public UI { private : static bool fInitialized; static list fGuiList; protected : GtkWidget* fWindow; int fTop; GtkWidget* fBox[stackSize]; int fMode[stackSize]; bool fStopped; GtkWidget* addWidget(const char* label, GtkWidget* w); virtual void pushBox(int mode, GtkWidget* w); public : static const gboolean expand = TRUE; static const gboolean fill = TRUE; static const gboolean homogene = FALSE; GTKUI(char * name, int* pargc, char*** pargv); // -- layout groups virtual void openFrameBox(const char* label); virtual void openTabBox(const char* label = ""); virtual void openHorizontalBox(const char* label = ""); virtual void openVerticalBox(const char* label = ""); virtual void closeBox(); // -- active widgets virtual void addButton(const char* label, float* zone); virtual void addToggleButton(const char* label, float* zone); virtual void addCheckButton(const char* label, float* zone); virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); // -- passive display widgets virtual void addNumDisplay(const char* label, float* zone, int precision); virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max); virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); virtual void show(); virtual void run(); }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) gtk implementation ******************************************************************************* *******************************************************************************/ // global static fields bool GTKUI::fInitialized = false; list UI::fGuiList; static gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { return FALSE; } static void destroy_event( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } GTKUI::GTKUI(char * name, int* pargc, char*** pargv) { if (!fInitialized) { gtk_init(pargc, pargv); fInitialized = true; } fWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); //gtk_container_set_border_width (GTK_CONTAINER (fWindow), 10); gtk_window_set_title (GTK_WINDOW (fWindow), name); gtk_signal_connect (GTK_OBJECT (fWindow), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); gtk_signal_connect (GTK_OBJECT (fWindow), "destroy", GTK_SIGNAL_FUNC (destroy_event), NULL); fTop = 0; fBox[fTop] = gtk_vbox_new (homogene, 4); fMode[fTop] = kBoxMode; gtk_container_add (GTK_CONTAINER (fWindow), fBox[fTop]); fStopped = false; } // empilement des boites void GTKUI::pushBox(int mode, GtkWidget* w) { ++fTop; assert(fTop < stackSize); fMode[fTop] = mode; fBox[fTop] = w; } void GTKUI::closeBox() { --fTop; assert(fTop >= 0); } // les differentes boites void GTKUI::openFrameBox(const char* label) { GtkWidget * box = gtk_frame_new (label); //gtk_container_set_border_width (GTK_CONTAINER (box), 10); pushBox(kSingleMode, addWidget(label, box)); } void GTKUI::openTabBox(const char* label) { pushBox(kTabMode, addWidget(label, gtk_notebook_new ())); } void GTKUI::openHorizontalBox(const char* label) { GtkWidget * box = gtk_hbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_frame_new (label)); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } void GTKUI::openVerticalBox(const char* label) { GtkWidget * box = gtk_vbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_frame_new (label)); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } GtkWidget* GTKUI::addWidget(const char* label, GtkWidget* w) { switch (fMode[fTop]) { case kSingleMode : gtk_container_add (GTK_CONTAINER(fBox[fTop]), w); break; case kBoxMode : gtk_box_pack_start (GTK_BOX(fBox[fTop]), w, expand, fill, 0); break; case kTabMode : gtk_notebook_append_page (GTK_NOTEBOOK(fBox[fTop]), w, gtk_label_new(label)); break; } gtk_widget_show (w); return w; } // --------------------------- Press button --------------------------- struct uiButton : public uiItem { GtkButton* fButton; uiButton (UI* ui, float* zone, GtkButton* b) : uiItem(ui, zone), fButton(b) {} static void pressed( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(1.0); } static void released( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(0.0); } virtual void reflectZone() { float v = *fZone; fCache = v; if (v > 0.0) gtk_button_pressed(fButton); else gtk_button_released(fButton); } }; void GTKUI::addButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_button_new_with_label (label); addWidget(label, button); uiButton* c = new uiButton(this, zone, GTK_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "pressed", GTK_SIGNAL_FUNC (uiButton::pressed), (gpointer) c); gtk_signal_connect (GTK_OBJECT (button), "released", GTK_SIGNAL_FUNC (uiButton::released), (gpointer) c); } // --------------------------- Toggle Buttons --------------------------- struct uiToggleButton : public uiItem { GtkToggleButton* fButton; uiToggleButton(UI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addToggleButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_toggle_button_new_with_label (label); addWidget(label, button); uiToggleButton* c = new uiToggleButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (uiToggleButton::toggled), (gpointer) c); } // --------------------------- Check Button --------------------------- struct uiCheckButton : public uiItem { GtkToggleButton* fButton; uiCheckButton(UI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addCheckButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_check_button_new_with_label (label); addWidget(label, button); uiCheckButton* c = new uiCheckButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC(uiCheckButton::toggled), (gpointer) c); } // --------------------------- Adjustmenty based widgets --------------------------- struct uiAdjustment : public uiItem { GtkAdjustment* fAdj; uiAdjustment(UI* ui, float* zone, GtkAdjustment* adj) : uiItem(ui, zone), fAdj(adj) {} static void changed (GtkWidget *widget, gpointer data) { float v = GTK_ADJUSTMENT (widget)->value; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_adjustment_set_value(fAdj, v); } }; static int precision(double n) { if (n < 0.009999) return 3; else if (n < 0.099999) return 2; else if (n < 0.999999) return 1; else return 0; } // -------------------------- Vertical Slider ----------------------------------- void GTKUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_vscale_new (GTK_ADJUSTMENT(adj)); gtk_range_set_inverted (GTK_RANGE(slider), TRUE); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); gtk_widget_set_usize(slider, -1, 160); openFrameBox(label); addWidget(label, slider); closeBox(); } // -------------------------- Horizontal Slider ----------------------------------- void GTKUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_hscale_new (GTK_ADJUSTMENT(adj)); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); gtk_widget_set_usize(slider, 160, -1); openFrameBox(label); addWidget(label, slider); closeBox(); } // ------------------------------ Num Entry ----------------------------------- void GTKUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, step); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* spinner = gtk_spin_button_new (GTK_ADJUSTMENT(adj), 0.005, precision(step)); //gtk_widget_set_usize(slider, 160, -1); openFrameBox(label); addWidget(label, spinner); closeBox(); } // ========================== passive widgets =============================== // ------------------------------ Progress Bar ----------------------------------- struct uiBargraph : public uiItem { GtkProgressBar* fProgressBar; float fMin; float fMax; uiBargraph(UI* ui, float* zone, GtkProgressBar* pbar, float lo, float hi) : uiItem(ui, zone), fProgressBar(pbar), fMin(lo), fMax(hi) {} float scale(float v) { return (v-fMin)/(fMax-fMin); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_progress_bar_set_fraction(fProgressBar, scale(v)); } }; void GTKUI::addVerticalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_BOTTOM_TO_TOP); gtk_widget_set_size_request(pb, 8, -1); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); } void GTKUI::addHorizontalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_LEFT_TO_RIGHT); gtk_widget_set_size_request(pb, -1, 8); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); } // ------------------------------ Num Display ----------------------------------- struct uiNumDisplay : public uiItem { GtkLabel* fLabel; int fPrecision; uiNumDisplay(UI* ui, float* zone, GtkLabel* label, int precision) : uiItem(ui, zone), fLabel(label), fPrecision(precision) {} virtual void reflectZone() { float v = *fZone; fCache = v; char s[64]; if (fPrecision <= 0) { snprintf(s, 63, "%d", int(v)); } else if (fPrecision>3) { snprintf(s, 63, "%f", v); } else { const char* format[] = {"%.1f", "%.2f", "%.3f"}; snprintf(s, 63, format[fPrecision-1], v); } gtk_label_set_text(fLabel, s); } }; void GTKUI::addNumDisplay(const char* label, float* zone, int precision ) { GtkWidget* lw = gtk_label_new(""); new uiNumDisplay(this, zone, GTK_LABEL(lw), precision); openFrameBox(label); addWidget(label, lw); closeBox(); } // ------------------------------ Text Display ----------------------------------- struct uiTextDisplay : public uiItem { GtkLabel* fLabel; const char** fNames; float fMin; float fMax; int fNum; uiTextDisplay (UI* ui, float* zone, GtkLabel* label, const char* names[], float lo, float hi) : uiItem(ui, zone), fLabel(label), fNames(names), fMin(lo), fMax(hi) { fNum = 0; while (fNames[fNum] != 0) fNum++; } virtual void reflectZone() { float v = *fZone; fCache = v; int idx = int(fNum*(v-fMin)/(fMax-fMin)); if (idx < 0) idx = 0; else if (idx >= fNum) idx = fNum-1; gtk_label_set_text(fLabel, fNames[idx]); } }; void GTKUI::addTextDisplay(const char* label, float* zone, const char* names[], float lo, float hi ) { GtkWidget* lw = gtk_label_new(""); new uiTextDisplay (this, zone, GTK_LABEL(lw), names, lo, hi); openFrameBox(label); addWidget(label, lw); closeBox(); } void GTKUI::show() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); } /** * Update all user items reflecting zone z */ static gboolean callUpdateAllGuis(gpointer) { UI::updateAllGuis(); return TRUE; } void GTKUI::run() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); gtk_timeout_add(40, callUpdateAllGuis, 0); gtk_main (); stop(); } /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // définition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; /****************************************************************************** ******************************************************************************* JACK AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------------------- // number of input and output channels //---------------------------------------------------------------------------- int gNumInChans; int gNumOutChans; //---------------------------------------------------------------------------- // Jack ports //---------------------------------------------------------------------------- jack_port_t *input_ports[256]; jack_port_t *output_ports[256]; //---------------------------------------------------------------------------- // tables of noninterleaved input and output channels for FAUST //---------------------------------------------------------------------------- float* gInChannel[256]; float* gOutChannel[256]; //---------------------------------------------------------------------------- // Jack Callbacks //---------------------------------------------------------------------------- int srate(jack_nframes_t nframes, void *arg) { printf("the sample rate is now %u/sec\n", nframes); return 0; } void jack_shutdown(void *arg) { exit(1); } int process (jack_nframes_t nframes, void *arg) { for (int i = 0; i < gNumInChans; i++) { gInChannel[i] = (float *)jack_port_get_buffer(input_ports[i], nframes); } for (int i = 0; i < gNumOutChans; i++) { gOutChannel[i] = (float *)jack_port_get_buffer(output_ports[i], nframes); } DSP.compute(nframes, gInChannel, gOutChannel); return 0; } /****************************************************************************** ******************************************************************************* MAIN PLAY THREAD ******************************************************************************* *******************************************************************************/ //------------------------------------------------------------------------- // MAIN //------------------------------------------------------------------------- int main(int argc, char *argv[] ) { UI* interface; jack_client_t* client; char buf [256]; char rcfilename[256]; jack_status_t jackstat; const char* home; char* pname; char* jname; MidiShareUI midi; jname = basename (argv [0]); client = jack_client_open (jname, (jack_options_t) 0, &jackstat); if (client == 0) { fprintf (stderr, "Can't connect to JACK, is the server running ?\n"); exit (1); } if (jackstat & JackNameNotUnique) { jname = jack_get_client_name (client); } jack_set_process_callback(client, process, 0); jack_set_sample_rate_callback(client, srate, 0); jack_on_shutdown(client, jack_shutdown, 0); gNumInChans = DSP.getNumInputs(); gNumOutChans = DSP.getNumOutputs(); for (int i = 0; i < gNumInChans; i++) { snprintf(buf, 256, "in_%d", i); input_ports[i] = jack_port_register(client, buf, JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0); } for (int i = 0; i < gNumOutChans; i++) { snprintf(buf, 256, "out_%d", i); output_ports[i] = jack_port_register(client, buf,JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); } DSP.buildUserInterface(&midi); midi.open(jname); interface = new GTKUI (jname, &argc, &argv); DSP.init(jack_get_sample_rate(client)); DSP.buildUserInterface(interface); home = getenv ("HOME"); if (home == 0) home = "."; snprintf(rcfilename, 256, "%s/.%src", home, jname); interface->recallState(rcfilename); if (jack_activate(client)) { fprintf(stderr, "Can't activate JACK client\n"); return 1; } pname = getenv("FAUST2JACK_INPUTS"); if (pname && *pname) { for (int i = 0; i < gNumInChans; i++) { snprintf(buf, 256, pname, i + 1); jack_connect(client, buf, jack_port_name(input_ports[i])); } } pname = getenv("FAUST2JACK_OUTPUTS"); if (pname && *pname) { for (int i = 0; i < gNumOutChans; i++) { snprintf(buf, 256, pname, i + 1); jack_connect(client, jack_port_name(output_ports[i]), buf); } } interface->run(); jack_deactivate(client); for (int i = 0; i < gNumInChans; i++) { jack_port_unregister(client, input_ports[i]); } for (int i = 0; i < gNumOutChans; i++) { jack_port_unregister(client, output_ports[i]); } jack_client_close(client); interface->saveState(rcfilename); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/iPhone/0000755000175000017500000000000011702130733016551 5ustar orlareyorlareyfaust-0.9.46/architecture/iPhone/iPhone_Prefix.pch0000644000175000017500000000225111702130733022004 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This is sample code. This file is provided as an example of minimal FAUST architecture file. Redistribution and use in source and binary forms, with or without modification, in part or in full are permitted. In particular you can create a derived work of this FAUST architecture and distribute that work under terms of your choice. This sample code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ************************************************************************ ************************************************************************/ // // Prefix header for all source files of the 'FaustiPhone' target in the 'FaustiPhone' project // #ifdef __OBJC__ #import #import #endif faust-0.9.46/architecture/iPhone/iPhone-Info.plist0000644000175000017500000000157311702130733021747 0ustar orlareyorlarey CFBundleDevelopmentRegion English CFBundleDisplayName ${PRODUCT_NAME} CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier fr.grame.iGrame.${PRODUCT_NAME} CFBundleInfoDictionaryVersion 6.0 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleSignature ???? CFBundleVersion 1.0 LSRequiresIPhoneOS NSMainNibFile MainWindow faust-0.9.46/architecture/iPhone/main.m0000644000175000017500000000231111702130733017650 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This is sample code. This file is provided as an example of minimal FAUST architecture file. Redistribution and use in source and binary forms, with or without modification, in part or in full are permitted. In particular you can create a derived work of this FAUST architecture and distribute that work under terms of your choice. This sample code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ************************************************************************ ************************************************************************/ #import int main(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release]; return retVal; } faust-0.9.46/architecture/iPhone/iPhoneViewController.xib0000644000175000017500000004007011702130733023377 0ustar orlareyorlarey 784 10C540 740 1038.25 458.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin 62 YES YES com.apple.InterfaceBuilder.IBCocoaTouchPlugin YES YES YES YES IBFilesOwner IBFirstResponder 274 YES 266 {{0, 416}, {320, 44}} NO NO YES {320, 460} 3 MC43NQA 2 NO YES view 7 YES 0 -1 File's Owner -2 6 YES 39 YES YES YES -1.CustomClassName -2.CustomClassName 39.IBPluginDependency 6.IBEditorWindowLastContentRect 6.IBPluginDependency YES iPhoneViewController UIResponder com.apple.InterfaceBuilder.IBCocoaTouchPlugin {{366, 347}, {320, 480}} com.apple.InterfaceBuilder.IBCocoaTouchPlugin YES YES YES YES 42 YES iPhoneViewController UIViewController IBProjectSource Classes/iPhoneViewController.h YES NSObject IBFrameworkSource Foundation.framework/Headers/NSError.h NSObject IBFrameworkSource Foundation.framework/Headers/NSFileManager.h NSObject IBFrameworkSource Foundation.framework/Headers/NSKeyValueCoding.h NSObject IBFrameworkSource Foundation.framework/Headers/NSKeyValueObserving.h NSObject IBFrameworkSource Foundation.framework/Headers/NSKeyedArchiver.h NSObject IBFrameworkSource Foundation.framework/Headers/NSNetServices.h NSObject IBFrameworkSource Foundation.framework/Headers/NSObject.h NSObject IBFrameworkSource Foundation.framework/Headers/NSPort.h NSObject IBFrameworkSource Foundation.framework/Headers/NSRunLoop.h NSObject IBFrameworkSource Foundation.framework/Headers/NSStream.h NSObject IBFrameworkSource Foundation.framework/Headers/NSThread.h NSObject IBFrameworkSource Foundation.framework/Headers/NSURL.h NSObject IBFrameworkSource Foundation.framework/Headers/NSURLConnection.h NSObject IBFrameworkSource Foundation.framework/Headers/NSXMLParser.h NSObject IBFrameworkSource UIKit.framework/Headers/UIAccessibility.h NSObject IBFrameworkSource UIKit.framework/Headers/UINibLoading.h NSObject IBFrameworkSource UIKit.framework/Headers/UIResponder.h UIResponder NSObject UISearchBar UIView IBFrameworkSource UIKit.framework/Headers/UISearchBar.h UISearchDisplayController NSObject IBFrameworkSource UIKit.framework/Headers/UISearchDisplayController.h UIToolbar UIView IBFrameworkSource UIKit.framework/Headers/UIToolbar.h UIView IBFrameworkSource UIKit.framework/Headers/UITextField.h UIView UIResponder IBFrameworkSource UIKit.framework/Headers/UIView.h UIViewController IBFrameworkSource UIKit.framework/Headers/UINavigationController.h UIViewController IBFrameworkSource UIKit.framework/Headers/UITabBarController.h UIViewController UIResponder IBFrameworkSource UIKit.framework/Headers/UIViewController.h 0 com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 YES iPhone.xcodeproj 3 3.1 faust-0.9.46/architecture/iPhone/icon.png0000644000175000017500000000562111702130733020213 0ustar orlareyorlareyPNG  IHDR99z pHYsod CIDATh͚y|eǟdMCz&iC4mB/[DE?. X/`ݕE׵zʱ]E,R}-iiM&#L2Mw;~gyy$^*]UTn5@HDGp! ," $a9@GDr!q'bC<08"om7 e-US[RoF|퉀3j X)>H 1*' @ $NSWd_M)(&D>j]4,N^&VpQ{??a,+NOhQ]S>$rߏp0~BayP>kA`)Cy F;O1."eJ7}9Abʾ5V$:u~lqUR\Q>+e,+J/2S3ً^bm_ ەs_!Dj\Zlq=qa^F/97اm񢲾w<ۂ߻#ò'닉 hG'kmߺ v=⍷ F a]ڿ>,Dh!''UjsŠY+뼮;_^={Gg|[;475p^(*R$;WʼnbZb:j4oz/zg H:Wv2a $SГL8Nik!RE%e훷kN>%I<++v8%-)TJd9%pzdB"@`'JPQN60߅DRڻc(k"' ~>'>"4pV*sU =Cq!ɩOm"XPg8HHSe[$W˺?r98@nRbĦs/4/^aL3IENDB`faust-0.9.46/architecture/iPhone/iPhoneAppDelegate.h0000644000175000017500000000246211702130733022244 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This is sample code. This file is provided as an example of minimal FAUST architecture file. Redistribution and use in source and binary forms, with or without modification, in part or in full are permitted. In particular you can create a derived work of this FAUST architecture and distribute that work under terms of your choice. This sample code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ************************************************************************ ************************************************************************/ #import @class iPhoneViewController; @interface iPhoneAppDelegate : NSObject { UIWindow *window; iPhoneViewController *viewController; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet iPhoneViewController *viewController; @end faust-0.9.46/architecture/iPhone/MainWindow.xib0000644000175000017500000002210311702130733021327 0ustar orlareyorlarey 784 10A394 732 1027.1 430.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin 60 YES YES com.apple.InterfaceBuilder.IBCocoaTouchPlugin YES YES YES YES IBFilesOwner IBFirstResponder iPhoneViewController 292 {320, 480} 1 MSAxIDEAA NO NO YES delegate 4 viewController 11 window 14 YES 0 -1 File's Owner 3 iPhone App Delegate -2 10 12 YES YES -1.CustomClassName -2.CustomClassName 10.CustomClassName 10.IBEditorWindowLastContentRect 10.IBPluginDependency 12.IBEditorWindowLastContentRect 12.IBPluginDependency 3.CustomClassName 3.IBPluginDependency YES UIApplication UIResponder iPhoneViewController {{512, 351}, {320, 480}} com.apple.InterfaceBuilder.IBCocoaTouchPlugin {{525, 346}, {320, 480}} com.apple.InterfaceBuilder.IBCocoaTouchPlugin iPhoneAppDelegate com.apple.InterfaceBuilder.IBCocoaTouchPlugin YES YES YES YES 14 YES iPhoneAppDelegate NSObject YES YES viewController window YES iPhoneViewController UIWindow IBProjectSource Classes/iPhoneAppDelegate.h iPhoneAppDelegate NSObject IBUserSource iPhoneViewController UIViewController IBProjectSource Classes/iPhoneViewController.h 0 com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 YES iPhone.xcodeproj 3 3.1 faust-0.9.46/architecture/iPhone/iPhoneViewController.m0000644000175000017500000000473311702130733023057 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This is sample code. This file is provided as an example of minimal FAUST architecture file. Redistribution and use in source and binary forms, with or without modification, in part or in full are permitted. In particular you can create a derived work of this FAUST architecture and distribute that work under terms of your choice. This sample code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ************************************************************************ ************************************************************************/ #import "iPhoneViewController.h" @implementation iPhoneViewController /* // The designated initializer. Override to perform setup that is required before the view is loaded. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { // Custom initialization } return self; } */ // Implement loadView to create a view hierarchy programmatically, without using a nib. - (void)loadView { [super loadView]; UIScrollView* scrollview = [[[UIScrollView alloc] initWithFrame: CGRectMake(0, 0, 320, 480)] autorelease]; scrollview.backgroundColor = [UIColor lightGrayColor]; self.view = scrollview; } /* // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { [super viewDidLoad]; } */ /* // Override to allow orientations other than the default portrait orientation. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait); } */ - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } - (void)viewDidUnload { // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } - (void)dealloc { [super dealloc]; } @end faust-0.9.46/architecture/iPhone/CocoaUI.h0000644000175000017500000004310711702130733020211 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2004-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #import #import "iPhoneViewController.h" #include "misc.h" #include #include using namespace std; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) abstract interfaces ******************************************************************************* *******************************************************************************/ //typedef void (*uiCallback)(float val, void* data); //================= // COCOA part //================= class UI; @interface uiItem : NSObject { UI* fGUI; float* fZone; float fCache; } - (id)initWithValues:(UI*)ui:(float*)zone; - (void)modifyZone:(float)v; - (float)cache; - (void)reflectZone; @end /** * Graphic User Interface : abstract definition */ class UI { typedef list clist; typedef map zmap; protected: static list fGuiList; zmap fZoneMap; bool fStopped; public: UI() : fStopped(false) { fGuiList.push_back(this); } virtual ~UI() { // suppression de this dans fGuiList } // -- registerZone(z,c) : zone management void registerZone(float* z, uiItem* c) { if (fZoneMap.find(z) == fZoneMap.end()) { fZoneMap[z] = new clist(); } fZoneMap[z]->push_back(c); } // -- saveState(filename) : save the value of every zone to a file void saveState(const char* filename) { ofstream f(filename); if (!f.is_open()) { } else { for (zmap::iterator i = fZoneMap.begin(); i != fZoneMap.end(); i++) { f << *(i->first) << ' '; } } f << endl; f.close(); } // -- recallState(filename) : load the value of every zone from a file void recallState(const char* filename) { ifstream f(filename); if (f.good()) { for (zmap::iterator i = fZoneMap.begin(); i != fZoneMap.end(); i++) { f >> *(i->first); } } f.close(); updateAllZones(); } void updateAllZones(); void updateZone(float* z); static void updateAllGuis() { list::iterator g; for (g = fGuiList.begin(); g != fGuiList.end(); g++) { (*g)->updateAllZones(); } } // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; //void addCallback(float* zone, uiCallback foo, void* data); // -- widget's layouts virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; // -- extra widget's layouts virtual void openDialogBox(const char* label, float* zone) = 0; virtual void openEventBox(const char* label) = 0; virtual void openHandleBox(const char* label) = 0; virtual void openExpanderBox(const char* label, float* zone) = 0; virtual void closeBox() = 0; virtual void show() {}; virtual void run() {}; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /** * Update all user items reflecting zone z */ void UI::updateZone(float* z) { float v = *z; clist* l = fZoneMap[z]; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ([(*c) cache] != v) [(*c) reflectZone]; } } /** * Update all user items not up to date */ inline void UI::updateAllZones() { for (zmap::iterator m = fZoneMap.begin(); m != fZoneMap.end(); m++) { float* z = m->first; clist* l = m->second; float v = *z; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ([(*c) cache] != v) [(*c) reflectZone]; } } } /* inline void UI::addCallback(float* zone, uiCallback foo, void* data) { new uiCallbackItem(this, zone, foo, data); }; */ #define WIDGET_SLICE 50.f #define OFFSET_Y 80.f #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 480 @implementation uiItem - (id)initWithValues:(UI*)ui:(float*)zone { fGUI = ui; fZone = zone; fCache = -123456.654321; ui->registerZone(zone, self); return self; } - (void)modifyZone:(float)v { fCache = v; if (*fZone != v) { *fZone = v; fGUI->updateZone(fZone); } } - (float)cache { return fCache; } // To implement in subclasses - (void)reflectZone {} @end // -------------------------- Slider ----------------------------------- @interface uiSlider : uiItem { UISlider* fSlider; UITextField* fTextField; } - (void)changed:(UISlider*)sender; - (void)reflectZone; - (id)initWithValues:(int)index:(UI*)ui:(iPhoneViewController*)controler:(const char*)label:(float*)zone:(float)init:(float)min:(float)max:(float)step; @end @implementation uiSlider - (id)initWithValues:(int)index:(UI*)ui:(iPhoneViewController*)controler:(const char*)name:(float*)zone:(float)init:(float)min:(float)max:(float)step { if (self = [super initWithValues:ui:zone]) { CGRect labelFrame = CGRectMake(0.0, OFFSET_Y + WIDGET_SLICE * index - 5.f, 130.0, 30.0); UILabel *label = [[UILabel alloc] initWithFrame:labelFrame]; [label setFont:[UIFont boldSystemFontOfSize:12]]; label.textAlignment = UITextAlignmentCenter; [label setText:[[NSString alloc] initWithCString:name encoding:NSASCIIStringEncoding]]; label.textColor = [UIColor blackColor ]; label.backgroundColor = [UIColor lightGrayColor]; [controler.view addSubview:label]; CGRect frame = CGRectMake(130.0f, OFFSET_Y + WIDGET_SLICE * index, 110.0f, 7.0f); fSlider = [[UISlider alloc] initWithFrame:frame]; [fSlider addTarget:self action:@selector(changed:)forControlEvents:UIControlEventValueChanged]; fSlider.minimumValue = min; fSlider.maximumValue = max; fSlider.continuous = YES; fSlider.value = init; [controler.view addSubview:fSlider]; CGRect textFieldFrame = CGRectMake(250.0, OFFSET_Y + WIDGET_SLICE * index, 60.0, 20.0); fTextField = [[UITextField alloc] initWithFrame:textFieldFrame]; [fTextField setBorderStyle:UITextBorderStyleLine]; fTextField.textAlignment = UITextAlignmentCenter; [fTextField setEnabled:NO]; [fTextField setTextColor:[UIColor blackColor]]; [fTextField setFont:[UIFont systemFontOfSize:14]]; [fTextField setPlaceholder:[NSString stringWithFormat:@"%1.2f", init]]; [fTextField setBackgroundColor:[UIColor whiteColor]]; [fTextField setAdjustsFontSizeToFitWidth:YES]; fTextField.keyboardType = UIKeyboardTypeNumbersAndPunctuation; [controler.view addSubview:fTextField]; } return self; } - (void)changed:(UISlider*)sender { [self modifyZone:sender.value]; [fTextField setPlaceholder:[NSString stringWithFormat:@"%1.2f", sender.value]]; } - (void)reflectZone; { float v = *fZone; fCache = v; fSlider.value = v; [fTextField setPlaceholder:[NSString stringWithFormat:@"%1.2f", v]]; } - (void)dealloc { [fSlider release]; [fTextField release]; [super dealloc]; } @end // --------------------------- Press button --------------------------- #define kStdButtonWidth 100.0 #define kStdButtonHeight 40.0 @interface uiButton : uiItem { UIButton* fButton; } - (void)pressed:(UIButton*)sender; - (void)released:(UIButton*)sender; - (void)reflectZone; - (id)initWithValues:(int)index:(UI*)ui:(iPhoneViewController*)controler:(const char*)label:(float*)zone; @end @implementation uiButton - (id)initWithValues:(int)index:(UI*)ui:(iPhoneViewController*)controler:(const char*)name:(float*)zone { if (self = [super initWithValues:ui:zone]) { fButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; fButton.frame = CGRectMake(SCREEN_WIDTH/2 - kStdButtonWidth/2, OFFSET_Y + WIDGET_SLICE * index - 5.f, kStdButtonWidth, kStdButtonHeight); [fButton setTitle:[[NSString alloc] initWithCString:name encoding:NSASCIIStringEncoding] forState:UIControlStateNormal]; fButton.backgroundColor = [UIColor clearColor]; [fButton addTarget:self action:@selector(pressed:) forControlEvents:UIControlEventTouchDown]; [fButton addTarget:self action:@selector(released:) forControlEvents:UIControlEventTouchUpInside]; [controler.view addSubview:fButton]; } return self; } - (void)pressed:(UIButton*)sender { [self modifyZone:1.0f]; } - (void)released:(UIButton*)sender { [self modifyZone:0.0f]; } - (void)reflectZone { float v = *fZone; fCache = v; //if (v > 0.0) gtk_button_pressed(fButton); else gtk_button_released(fButton); } - (void)dealloc { [fButton release]; [super dealloc]; } @end // ------------------------------ Num Entry ----------------------------------- @interface uiNumEntry : uiItem { UITextField* fTextField; } - (id)initWithValues:(int)index:(UI*)ui:(iPhoneViewController*)controler:(const char*)label:(float*)zone:(float)init:(float)min:(float)max:(float)step; @end @implementation uiNumEntry - (id)initWithValues:(int)index:(UI*)ui:(iPhoneViewController*)controler:(const char*)label:(float*)zone:(float)init:(float)min:(float)max:(float)step { if (self = [super initWithValues:ui:zone]) { CGRect textFieldFrame = CGRectMake(SCREEN_WIDTH/2 - kStdButtonWidth/2, OFFSET_Y + WIDGET_SLICE * index - 5.f, kStdButtonWidth, kStdButtonHeight); fTextField = [[UITextField alloc] initWithFrame:textFieldFrame]; [fTextField setTextColor:[UIColor blackColor]]; [fTextField setFont:[UIFont systemFontOfSize:14]]; [fTextField setPlaceholder:@""]; [fTextField setBackgroundColor:[UIColor whiteColor]]; fTextField.keyboardType = UIKeyboardTypeDefault; [controler.view addSubview:fTextField]; } return self; } - (void)dealloc { [fTextField release]; [super dealloc]; } @end class CocoaUI : public UI { private: UIWindow* fWindow; iPhoneViewController* fViewController; MY_Meta* fMetadata; list fWidgetList; void insert(const char* label, uiItem* widget) { fWidgetList.push_back(widget); [fViewController.view setContentSize:CGSizeMake(320, WIDGET_SLICE * fWidgetList.size() + 100.f)]; } public: // -- Labels and metadata // virtual void declare (float* zone, const char* key, const char* value); // virtual int checkLabelOptions (GtkWidget* widget, const string& fullLabel, string& simplifiedLabel); // virtual void checkForTooltip (float* zone, GtkWidget* widget); // -- layout groups CocoaUI(UIWindow* window, iPhoneViewController* viewController, MY_Meta* metadata) { fViewController = viewController; fWindow = window; fMetadata = metadata; CGRect titleFrame = CGRectMake(0.0, 0.0f, 320.0, 75.0); UIView *titleView = [[UIView alloc] initWithFrame:titleFrame]; titleView.backgroundColor = [UIColor brownColor]; [fViewController.view addSubview:titleView]; if (fMetadata->find("name") != fMetadata->end()) { const char* name = (*fMetadata->find("name")).second; CGRect labelFrame = CGRectMake(0.0, 20.0f, 320.0, 30.0); UILabel *label = [[UILabel alloc] initWithFrame:labelFrame]; [label setFont:[UIFont boldSystemFontOfSize:18]]; label.textAlignment = UITextAlignmentCenter; [label setText:[[NSString alloc] initWithCString:name encoding:NSASCIIStringEncoding]]; label.textColor = [UIColor blackColor ]; label.backgroundColor = [UIColor brownColor]; [fViewController.view addSubview:label]; } if (fMetadata->find("author") != fMetadata->end()) { const char* name = (*fMetadata->find("author")).second; CGRect labelFrame = CGRectMake(0.0, 45.0f, 320.0, 30.0); UILabel *label = [[UILabel alloc] initWithFrame:labelFrame]; [label setFont:[UIFont boldSystemFontOfSize:14]]; label.textAlignment = UITextAlignmentCenter; [label setText:[[NSString alloc] initWithCString:name encoding:NSASCIIStringEncoding]]; label.textColor = [UIColor blackColor ]; label.backgroundColor = [UIColor brownColor]; [fViewController.view addSubview:label]; } [window addSubview:viewController.view]; [window makeKeyAndVisible]; } ~CocoaUI() { [fViewController release]; [fWindow release]; } virtual void openFrameBox(const char* label) {} virtual void openTabBox(const char* label = "") {} virtual void openHorizontalBox(const char* label = "") {} virtual void openVerticalBox(const char* label = "") {} // -- extra widget's layouts virtual void openDialogBox(const char* label, float* zone) {} virtual void openEventBox(const char* label = "") {} virtual void openHandleBox(const char* label = "") {} virtual void openExpanderBox(const char* label, float* zone) {} virtual void closeBox() {} //virtual void adjustStack(int n); // -- active widgets virtual void addButton(const char* label, float* zone) { uiItem* item = [[uiButton alloc] initWithValues:fWidgetList.size():this:fViewController:label:zone]; insert(label, item); } virtual void addToggleButton(const char* label, float* zone) {} virtual void addCheckButton(const char* label, float* zone) {} virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { uiItem* item = [[uiSlider alloc] initWithValues:fWidgetList.size():this:fViewController:label:zone:init:min:max:step]; insert(label, item); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { uiItem* item = [[uiSlider alloc] initWithValues:fWidgetList.size():this:fViewController:label:zone:init:min:max:step]; insert(label, item); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { uiItem* item = [[uiNumEntry alloc] initWithValues:fWidgetList.size():this:fViewController:label:zone:init:min:max:step]; insert(label, item); } // -- passive display widgets virtual void addNumDisplay(const char* label, float* zone, int precision) {} virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) {} virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) {} virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) {} virtual void show() {} virtual void run() {} virtual void declare(float* zone, const char* key, const char* value) {} }; // global static fields list UI::fGuiList; /* bool GTKUI::fInitialized = false; map GTKUI::fGuiSize; map GTKUI::fTooltip; */ faust-0.9.46/architecture/iPhone/iPhoneAppDelegate.mm0000644000175000017500000000462511702130733022431 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This is sample code. This file is provided as an example of minimal FAUST architecture file. Redistribution and use in source and binary forms, with or without modification, in part or in full are permitted. In particular you can create a derived work of this FAUST architecture and distribute that work under terms of your choice. This sample code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ************************************************************************ ************************************************************************/ #import "iPhoneAppDelegate.h" #import "iPhoneViewController.h" #include "iphone-faust.h" @implementation iPhoneAppDelegate @synthesize window; @synthesize viewController; TiPhoneCoreAudioRenderer* audio_device = NULL; UI* interface = NULL; MY_Meta metadata; char rcfilename[256]; - (void)applicationDidFinishLaunching:(UIApplication *)application { DSP.metadata(&metadata); interface = new CocoaUI(window, viewController, &metadata); audio_device = new TiPhoneCoreAudioRenderer(DSP.getNumInputs(), DSP.getNumOutputs()); long srate = 44100; int fpb = 256; DSP.init(long(srate)); DSP.buildUserInterface(interface); const char* home = getenv ("HOME"); const char* name = (*metadata.find("name")).second; if (home == 0) home = "."; snprintf(rcfilename, 256, "%s/Library/Caches/%s", home, name); interface->recallState(rcfilename); if (audio_device->Open(fpb, srate) < 0) { printf("Cannot open CoreAudio device\n"); goto error; } if (audio_device->Start() < 0) { printf("Cannot start CoreAudio device\n"); goto error; } return; error: delete interface; delete audio_device; } - (void)applicationWillTerminate:(UIApplication *)application { interface->saveState(rcfilename); } - (void)dealloc { audio_device->Stop(); audio_device->Close(); delete audio_device; delete interface; [super dealloc]; } @end faust-0.9.46/architecture/iPhone/iPhone.xcodeproj/0000755000175000017500000000000011702130733021767 5ustar orlareyorlareyfaust-0.9.46/architecture/iPhone/iPhone.xcodeproj/project.pbxproj0000755000175000017500000003031111702130733025044 0ustar orlareyorlarey// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 45; objects = { /* Begin PBXBuildFile section */ 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; 4B425F681136BB83008FDC7D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B425F671136BB83008FDC7D /* main.m */; }; 4B425FE21136C16E008FDC7D /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 4B425FE11136C16E008FDC7D /* icon.png */; }; 4B4BE15B113724B700866BE1 /* iPhoneViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4B4BE15A113724B700866BE1 /* iPhoneViewController.xib */; }; 4B4BE15D113724BF00866BE1 /* iPhone-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4B4BE15C113724BF00866BE1 /* iPhone-Info.plist */; }; 4BC3718C1137C53100BDEDEB /* iPhoneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3718B1137C53100BDEDEB /* iPhoneViewController.m */; }; 4BC3718E1137C53500BDEDEB /* iPhoneAppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3718D1137C53500BDEDEB /* iPhoneAppDelegate.mm */; }; 4BCB3798112D633F008C7BC1 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BCB3797112D633F008C7BC1 /* AudioToolbox.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 1D6058910D05DD3D006BFB54 /* Template.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Template.app; sourceTree = BUILT_PRODUCTS_DIR; }; 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; 4B425F671136BB83008FDC7D /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 4B425FE11136C16E008FDC7D /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = SOURCE_ROOT; }; 4B4BE15A113724B700866BE1 /* iPhoneViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = iPhoneViewController.xib; path = ../../iPhoneViewController.xib; sourceTree = BUILT_PRODUCTS_DIR; }; 4B4BE15C113724BF00866BE1 /* iPhone-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "iPhone-Info.plist"; path = "../../iPhone-Info.plist"; sourceTree = BUILT_PRODUCTS_DIR; }; 4BC371841137C50200BDEDEB /* CocoaUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CocoaUI.h; sourceTree = ""; }; 4BC371861137C50200BDEDEB /* iphone-faust.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "iphone-faust.h"; sourceTree = ""; }; 4BC371871137C50200BDEDEB /* iPhoneAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhoneAppDelegate.h; sourceTree = ""; }; 4BC371881137C50200BDEDEB /* iPhoneViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhoneViewController.h; sourceTree = ""; }; 4BC371891137C50200BDEDEB /* iPhone_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhone_Prefix.pch; sourceTree = ""; }; 4BC3718B1137C53100BDEDEB /* iPhoneViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iPhoneViewController.m; sourceTree = SOURCE_ROOT; }; 4BC3718D1137C53500BDEDEB /* iPhoneAppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = iPhoneAppDelegate.mm; sourceTree = SOURCE_ROOT; }; 4BCB3797112D633F008C7BC1 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk/System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */, 4BCB3798112D633F008C7BC1 /* AudioToolbox.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 19C28FACFE9D520D11CA2CBB /* Products */ = { isa = PBXGroup; children = ( 1D6058910D05DD3D006BFB54 /* Template.app */, ); name = Products; sourceTree = ""; }; 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( 4B425F671136BB83008FDC7D /* main.m */, 4BC3718D1137C53500BDEDEB /* iPhoneAppDelegate.mm */, 4BC3718B1137C53100BDEDEB /* iPhoneViewController.m */, 4BC371841137C50200BDEDEB /* CocoaUI.h */, 4BC371861137C50200BDEDEB /* iphone-faust.h */, 4BC371871137C50200BDEDEB /* iPhoneAppDelegate.h */, 4BC371881137C50200BDEDEB /* iPhoneViewController.h */, 4BC371891137C50200BDEDEB /* iPhone_Prefix.pch */, 29B97317FDCFA39411CA2CEA /* Resources */, 29B97323FDCFA39411CA2CEA /* Frameworks */, 19C28FACFE9D520D11CA2CBB /* Products */, ); name = CustomTemplate; sourceTree = ""; }; 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( 4B4BE15A113724B700866BE1 /* iPhoneViewController.xib */, 28AD733E0D9D9553002E5188 /* MainWindow.xib */, 4B4BE15C113724BF00866BE1 /* iPhone-Info.plist */, 4B425FE11136C16E008FDC7D /* icon.png */, ); name = Resources; sourceTree = ""; }; 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( 4BCB3797112D633F008C7BC1 /* AudioToolbox.framework */, 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, 1D30AB110D05D00D00671497 /* Foundation.framework */, 288765A40DF7441C002DB57D /* CoreGraphics.framework */, ); name = Frameworks; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 1D6058900D05DD3D006BFB54 /* iPhone */ = { isa = PBXNativeTarget; buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "iPhone" */; buildPhases = ( 1D60588D0D05DD3D006BFB54 /* Resources */, 1D60588E0D05DD3D006BFB54 /* Sources */, 1D60588F0D05DD3D006BFB54 /* Frameworks */, ); buildRules = ( ); dependencies = ( ); name = iPhone; productName = FaustiPhone; productReference = 1D6058910D05DD3D006BFB54 /* Template.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "iPhone" */; compatibilityVersion = "Xcode 3.1"; developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( English, Japanese, French, German, ); mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; projectDirPath = ""; projectRoot = ""; targets = ( 1D6058900D05DD3D006BFB54 /* iPhone */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 1D60588D0D05DD3D006BFB54 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, 4B425FE21136C16E008FDC7D /* icon.png in Resources */, 4B4BE15B113724B700866BE1 /* iPhoneViewController.xib in Resources */, 4B4BE15D113724BF00866BE1 /* iPhone-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 1D60588E0D05DD3D006BFB54 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 4B425F681136BB83008FDC7D /* main.m in Sources */, 4BC3718C1137C53100BDEDEB /* iPhoneViewController.m in Sources */, 4BC3718E1137C53500BDEDEB /* iPhoneAppDelegate.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ 1D6058940D05DD3E006BFB54 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = iPhone_Prefix.pch; GCC_THUMB_SUPPORT = NO; INFOPLIST_FILE = "iPhone-Info.plist"; PRODUCT_NAME = Template; }; name = Debug; }; 1D6058950D05DD3E006BFB54 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = YES; GCC_OPTIMIZATION_LEVEL = 3; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = iPhone_Prefix.pch; GCC_THUMB_SUPPORT = NO; INFOPLIST_FILE = "iPhone-Info.plist"; PRODUCT_NAME = Template; }; name = Release; }; C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; "CODE_SIGN_IDENTITY[sdk=iphonesimulator3.1.3]" = "iPhone Developer"; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; PREBINDING = NO; "PROVISIONING_PROFILE[sdk=iphonesimulator3.1.3]" = ""; SDKROOT = iphonesimulator3.1.3; USER_HEADER_SEARCH_PATHS = "/usr/local/lib/faust/**"; }; name = Debug; }; C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; "CODE_SIGN_IDENTITY[sdk=iphonesimulator3.1.3]" = "iPhone Developer"; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; PREBINDING = NO; "PROVISIONING_PROFILE[sdk=iphonesimulator3.1.3]" = ""; SDKROOT = iphonesimulator3.1.3; USER_HEADER_SEARCH_PATHS = "/usr/local/lib/faust/**"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "iPhone" */ = { isa = XCConfigurationList; buildConfigurations = ( 1D6058940D05DD3E006BFB54 /* Debug */, 1D6058950D05DD3E006BFB54 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; C01FCF4E08A954540054247B /* Build configuration list for PBXProject "iPhone" */ = { isa = XCConfigurationList; buildConfigurations = ( C01FCF4F08A954540054247B /* Debug */, C01FCF5008A954540054247B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; } faust-0.9.46/architecture/iPhone/iPhoneViewController.h0000644000175000017500000000207711702130733023051 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This is sample code. This file is provided as an example of minimal FAUST architecture file. Redistribution and use in source and binary forms, with or without modification, in part or in full are permitted. In particular you can create a derived work of this FAUST architecture and distribute that work under terms of your choice. This sample code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ************************************************************************ ************************************************************************/ #import @interface iPhoneViewController : UIViewController {} @end faust-0.9.46/architecture/alsa-gtk.cpp0000644000175000017500000000712011702130733017536 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include "gui/FUI.h" #include "misc.h" #include "gui/faustgtk.h" #include "audio/alsa-dsp.h" #ifdef OSCCTRL #include "gui/OSCUI.h" #endif /**************************BEGIN USER SECTION **************************/ /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; list GUI::fGuiList; //------------------------------------------------------------------------- // MAIN //------------------------------------------------------------------------- int main(int argc, char *argv[]) { char appname[256]; char rcfilename[256]; char* home = getenv("HOME"); snprintf(appname, 255, "%s", basename(argv[0])); snprintf(rcfilename, 255, "%s/.%src", home, appname); GUI* interface = new GTKUI (appname, &argc, &argv); FUI* finterface = new FUI(); DSP.buildUserInterface(interface); DSP.buildUserInterface(finterface); #ifdef OSCCTRL GUI* oscinterface = new OSCUI(appname, argc, argv); DSP.buildUserInterface(oscinterface); #endif alsaaudio audio (argc, argv, &DSP); audio.init(appname, &DSP); finterface->recallState(rcfilename); audio.start(); #ifdef OSCCTRL oscinterface->run(); #endif interface->run(); audio.stop(); finterface->saveState(rcfilename); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/max-msp.cpp0000644000175000017500000003560311702130733017424 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2004-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. MAX MSP SDK : in order to compile a MaxMSP external with this architecture file you will need the official MaxMSP SDK from cycling'74. Please check the corresponding license. ************************************************************************ ************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __APPLE__ #include #include #endif #include "gui/GUI.h" #include "audio/dsp.h" #include "misc.h" using namespace std ; // There is a bug with powf() when cross compiling with mingw // the following macro avoid the problem #ifdef WIN32 #define powf(x,y) pow(x,y) #define expf(x) exp(x) #endif #ifdef __GNUC__ //------------------------------------------------------------------- // Generic min and max using gcc extensions //------------------------------------------------------------------- #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) #else //------------------------------------------------------------------- // Generic min and max using c++ inline //------------------------------------------------------------------- inline int max(unsigned int a, unsigned int b) { return (a>b) ? a : b; } inline int max(int a, int b) { return (a>b) ? a : b; } inline long max(long a, long b) { return (a>b) ? a : b; } inline long max(int a, long b) { return (a>b) ? a : b; } inline long max(long a, int b) { return (a>b) ? a : b; } inline float max(float a, float b) { return (a>b) ? a : b; } inline float max(int a, float b) { return (a>b) ? a : b; } inline float max(float a, int b) { return (a>b) ? a : b; } inline float max(long a, float b) { return (a>b) ? a : b; } inline float max(float a, long b) { return (a>b) ? a : b; } inline double max(double a, double b) { return (a>b) ? a : b; } inline double max(int a, double b) { return (a>b) ? a : b; } inline double max(double a, int b) { return (a>b) ? a : b; } inline double max(long a, double b) { return (a>b) ? a : b; } inline double max(double a, long b) { return (a>b) ? a : b; } inline double max(float a, double b) { return (a>b) ? a : b; } inline double max(double a, float b) { return (a>b) ? a : b; } inline int min(int a, int b) { return (a> /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ /* Faust code wrapper ------- */ #include "ext.h" #include "z_dsp.h" #include #define ASSIST_INLET 1 /* should be defined somewhere ?? */ #define ASSIST_OUTLET 2 /* should be defined somewhere ?? */ class mspUI; /*--------------------------------------------------------------------------*/ typedef struct faust { t_pxobject m_ob; t_atom *m_seen,*m_want; short m_where; void** args; mspUI* dspUI; mydsp* dsp; } t_faust; void *faust_class; /*--------------------------------------------------------------------------*/ class mspUIObject { protected: string fLabel; float* fZone; float range(float min, float max, float val) {return (val < min) ? min : (val > max) ? max : val;} public: mspUIObject(const char* label, float* zone):fLabel(label),fZone(zone) {} virtual ~mspUIObject() {} virtual void SetValue(double f) {*fZone = range(0.0,1.0,f);} virtual void toString(char* buffer) {} virtual string GetName() {return fLabel;} }; /*--------------------------------------------------------------------------*/ class mspToggleButton : public mspUIObject { public: mspToggleButton(const char* label, float* zone):mspUIObject(label,zone) {} virtual ~mspToggleButton() {} void toString(char* buffer) { #ifdef WIN32 sprintf(buffer, "ToggleButton(float): %s", fLabel.c_str()); #else std::sprintf(buffer, "ToggleButton(float): %s", fLabel.c_str()); #endif } }; /*--------------------------------------------------------------------------*/ class mspCheckButton : public mspUIObject { public: mspCheckButton(const char* label, float* zone):mspUIObject(label,zone) {} virtual ~mspCheckButton() {} void toString(char* buffer) { #ifdef WIN32 sprintf(buffer, "CheckButton(float): %s", fLabel.c_str()); #else std::sprintf(buffer, "CheckButton(float): %s", fLabel.c_str()); #endif } }; /*--------------------------------------------------------------------------*/ class mspButton : public mspUIObject { public: mspButton(const char* label, float* zone):mspUIObject(label,zone) {} virtual ~mspButton() {} void toString(char* buffer) { #ifdef WIN32 sprintf(buffer, "Button(float): %s", fLabel.c_str()); #else std::sprintf(buffer, "Button(float): %s", fLabel.c_str()); #endif } }; /*--------------------------------------------------------------------------*/ class mspSlider : public mspUIObject{ private: float fInit; float fMin; float fMax; float fStep; public: mspSlider(const char* label, float* zone, float init, float min, float max, float step) :mspUIObject(label,zone),fInit(init),fMin(min),fMax(max),fStep(step) {} virtual ~mspSlider() {} void toString(char* buffer) { #ifdef WIN32 sprintf(buffer, "Slider(float): %s [%.1f:%.1f:%.1f]", fLabel.c_str(), fMin, fInit, fMax); #else std::sprintf(buffer, "Slider(float): %s [%.1f:%.1f:%.1f]", fLabel.c_str(), fMin, fInit, fMax); #endif } void SetValue(double f) {*fZone = range(fMin,fMax,f);} }; /*--------------------------------------------------------------------------*/ class mspUI : public UI { private: map fUITable; public: typedef map::iterator iterator; mspUI(){} virtual ~mspUI() { for (iterator iter = fUITable.begin(); iter != fUITable.end(); iter++) delete (iter->second); } void addButton(const char* label, float* zone) {fUITable[string(label)] = new mspButton(label, zone);} void addToggleButton(const char* label, float* zone) {fUITable[string(label)] = new mspToggleButton(label, zone);} void addCheckButton(const char* label, float* zone) {fUITable[string(label)] = new mspCheckButton(label, zone);} void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { fUITable[string(label)] = new mspSlider(label, zone, init, min, max, step); } void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { fUITable[string(label)] = new mspSlider(label, zone, init, min, max, step); } void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { fUITable[string(label)] = new mspSlider(label, zone, init, min, max, step); } void openFrameBox(const char* label) {} void openTabBox(const char* label) {} void openHorizontalBox(const char* label) {} void openVerticalBox(const char* label) {} void closeBox() {} void SetValue(string name, double f) { if(fUITable.count(name)) fUITable[name]->SetValue(f); } iterator begin() {return fUITable.begin();} iterator end() {return fUITable.end();} // To be implemented void addNumDisplay(const char* label, float* zone, int precision) {} void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) {} void addHorizontalBargraph(const char* label, float* zone, float min, float max) {} void addVerticalBargraph(const char* label, float* zone, float min, float max) {} }; //-------------------------------------------------------------------------- void faust_method(t_faust *obj, t_symbol *s, short ac, t_atom *at) { if(ac < 0) return; if(at[0].a_type != A_FLOAT) return; string name = string( (s)->s_name ); float value = at[0].a_w.w_float; // lookup du nom dans une std::map // ou une std::map // et affectation de value; obj->dspUI->SetValue(name,value); // doesn't have any effect if name is unknown } /*--------------------------------------------------------------------------*/ void *faust_new(t_symbol *s, short ac, t_atom *av) { t_faust *x = (t_faust *)newobject(faust_class); x->dsp = new mydsp(); x->dspUI= new mspUI(); x->dsp->init(long(sys_getsr())); x->dsp->buildUserInterface(x->dspUI); x->args = (void**)calloc((x->dsp->getNumInputs()+x->dsp->getNumOutputs())+2, sizeof(void*)); /* Multi in */ dsp_setup((t_pxobject *)x, x->dsp->getNumInputs()); /* Multi out */ for (int i = 0; i< x->dsp->getNumOutputs(); i++) outlet_new((t_pxobject *)x, (char*)"signal"); ((t_pxobject *)x)->z_misc = Z_NO_INPLACE; // To assure input and output buffers are actually different return x; } /*--------------------------------------------------------------------------*/ void faust_assist(t_faust *x, void *b, long msg, long a, char *dst) { if (msg == ASSIST_INLET) { if (a == 0) { if (x->dsp->getNumInputs() == 0) { #ifdef WIN32 sprintf(dst, "(signal) : Unused Input"); #else std::sprintf(dst, "(signal) : Unused Input"); #endif } else { #ifdef WIN32 sprintf(dst, "(signal) : Audio Input %ld", (a+1)); #else std::sprintf(dst, "(signal) : Audio Input %ld", (a+1)); #endif } post((char*)"------------------"); for (mspUI::iterator it = x->dspUI->begin(); it != x->dspUI->end(); ++it) { char param[64]; it->second->toString(param); post(param); } } else if (a < x->dsp->getNumInputs()) { #ifdef WIN32 sprintf(dst, "(signal) : Audio Input %ld", (a+1)); #else std::sprintf(dst, "(signal) : Audio Input %ld", (a+1)); #endif } } else if (msg == ASSIST_OUTLET) { #ifdef WIN32 sprintf(dst, "(signal) : Audio Output %ld", (a+1)); #else std::sprintf(dst, "(signal) : Audio Output %ld", (a+1)); #endif } } /*--------------------------------------------------------------------------*/ void faust_free(t_faust *x) { dsp_free((t_pxobject *)x); if (x->dsp) delete x->dsp; if (x->dspUI) delete x->dspUI; if (x->args)free(x->args); } /*--------------------------------------------------------------------------*/ t_int *faust_perform(t_int *w) { t_faust* x = (t_faust*) (w[1]); long n = w[2]; int offset = 3; AVOIDDENORMALS; x->dsp->compute(n, ((float**)&w[offset]), ((float**)&w[offset+x->dsp->getNumInputs()])); return (w + (x->dsp->getNumInputs()+x->dsp->getNumOutputs())+2+1); } /*--------------------------------------------------------------------------*/ void faust_dsp(t_faust *x, t_signal **sp, short *count) { x->args[0] = x; x->args[1] = (void*)sp[0]->s_n; for (int i = 0; i<(x->dsp->getNumInputs()+x->dsp->getNumOutputs()); i++) x->args[i+2] = sp[i]->s_vec; dsp_addv(faust_perform, (x->dsp->getNumInputs()+x->dsp->getNumOutputs())+2, x->args); } /*--------------------------------------------------------------------------*/ int main() { setup((t_messlist **)&faust_class, (method)faust_new, (method)faust_free, (short)sizeof(t_faust), 0L, A_DEFFLOAT, 0); dsp *thedsp = new mydsp(); mspUI *dspUI= new mspUI(); thedsp->buildUserInterface(dspUI); // Add the same method for every parameters and use the symbol as a selector // inside thid method for (mspUI::iterator it = dspUI->begin(); it != dspUI->end(); ++it) { char *name = const_cast(it->second->GetName().c_str()); addmess((method)faust_method, name, A_GIMME, 0); } addmess((method)faust_dsp, (char*)"dsp", A_CANT, 0); addmess((method)faust_assist, (char*)"assist", A_CANT, 0); dsp_initclass(); delete(dspUI); delete(thedsp); post((char*)"Faust DSP object"); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/jack-gtk.cpp0000644000175000017500000000725511702130733017537 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 Thomas Charbonnel and GRAME --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include "gui/FUI.h" #include "misc.h" #include "gui/faustgtk.h" #include "audio/jack-dsp.h" #ifdef OSCCTRL #include "gui/OSCUI.h" #endif /**************************BEGIN USER SECTION **************************/ /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp* DSP; list GUI::fGuiList; //------------------------------------------------------------------------- // MAIN //------------------------------------------------------------------------- int main(int argc, char *argv[]) { char appname[256]; char rcfilename[256]; char* home = getenv("HOME"); snprintf(appname, 255, "%s", basename(argv[0])); snprintf(rcfilename, 255, "%s/.%src", home, appname); DSP = new mydsp(); if (DSP==0) { cerr << "Unable to allocate Faust DSP object" << endl; exit(1); } GUI* interface = new GTKUI (appname, &argc, &argv); FUI* finterface = new FUI(); DSP->buildUserInterface(interface); DSP->buildUserInterface(finterface); #ifdef OSCCTRL GUI* oscinterface = new OSCUI(appname, argc, argv); DSP->buildUserInterface(oscinterface); #endif jackaudio audio; audio.init(appname, DSP); finterface->recallState(rcfilename); audio.start(); #ifdef OSCCTRL oscinterface->run(); #endif interface->run(); audio.stop(); finterface->saveState(rcfilename); delete DSP; return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/math.lib0000644000175000017500000001603511702130733016755 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST library file Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ************************************************************************ ************************************************************************/ declare name "Math Library"; declare author "GRAME"; declare copyright "GRAME"; declare version "1.0"; declare license "LGPL"; //-------------------------------------------------------------------------------- // Mathematic library for Faust // Implementation of the math.h file as Faust foreign functions // // History // ---------- // 28/06/2005 [YO] postfixed functions with 'f' to force float version // instead of double // [YO] removed 'modf' because it requires a pointer as argument //--------------------------------------------------------------------------------- // -- Utilities and constants SR = min(192000, max(1, fconstant(int fSamplingFreq, ))); BS = fvariable(int count, ); PI = 3.1415926535897932385; // -- neg and inv functions neg(x) = -x; inv(x) = 1/x; // -- Trigonometric Functions //acos = ffunction(float acosf (float), , ""); //asin = ffunction(float asinf (float), , ""); //atan = ffunction(float atanf (float), , ""); //atan2 = ffunction(float atan2f (float, float), , ""); //sin = ffunction(float sinf (float), , ""); //cos = ffunction(float cosf (float), , ""); //tan = ffunction(float tanf (float), ,""); // -- Exponential Functions //exp = ffunction(float expf (float), ,""); //log = ffunction(float logf (float), ,""); //log10 = ffunction(float log10f (float), ,""); //pow = ffunction(float powf (float, float), ,""); //sqrt = ffunction(float sqrtf (float), ,""); cbrt = ffunction(float cbrtf (float), ,""); hypot = ffunction(float hypotf (float, float), ,""); ldexp = ffunction(float ldexpf (float, int), ,""); scalb = ffunction(float scalbf (float, float), ,""); log1p = ffunction(float log1pf (float), ,""); logb = ffunction(float logbf (float), ,""); ilogb = ffunction(int ilogbf (float), ,""); expm1 = ffunction(float expm1f (float), ,""); // -- Hyperbolic Functions acosh = ffunction(float acoshf (float), , ""); asinh = ffunction(float asinhf (float), , ""); atanh = ffunction(float atanhf (float), , ""); sinh = ffunction(float sinhf (float), , ""); cosh = ffunction(float coshf (float), , ""); tanh = ffunction(float tanhf (float), ,""); // -- Remainder Functions //fmod = ffunction(float fmodf (float, float),,""); //remainder = ffunction(float remainderf (float, float),,""); // -- Nearest Integer Functions //floor = ffunction(float floorf (float), ,""); //ceil = ffunction(float ceilf (float), ,""); //rint = ffunction(float rintf (float), ,""); // -- Special Functions erf = ffunction(float erff(float), ,""); erfc = ffunction(float erfcf(float), ,""); gamma = ffunction(float gammaf(float), ,""); J0 = ffunction(float j0f(float), ,""); J1 = ffunction(float j1f(float), ,""); Jn = ffunction(float jnf(int, float), ,""); lgamma = ffunction(float lgammaf(float), ,""); Y0 = ffunction(float y0f(float), ,""); Y1 = ffunction(float y1f(float), ,""); Yn = ffunction(float ynf(int, float), ,""); // -- Miscellaneous Functions //fabs = ffunction(float fabsf (float), ,""); //fmax = ffunction(float max (float, float),,""); //fmin = ffunction(float min (float, float),,""); fabs = abs; fmax = max; fmin = min; isnan = ffunction(int isnan (float),,""); nextafter = ffunction(float nextafter(float, float),,""); // Pattern matching functions to count and access the elements of a list // USAGE : count ((10,20,30,40)) -> 4 // take (3,(10,20,30,40)) -> 30 // count ((xs, xxs)) = 1 + count(xxs); count (xx) = 1; take (1, (xs, xxs)) = xs; take (1, xs) = xs; take (nn, (xs, xxs)) = take (nn-1, xxs); // linear interpolation between two signals interpolate(i) = *(1.0-i),*(i) : +; // if-then-else implemented with a select2. if(cond,thn,els) = select2(cond,els,thn); //----------------------------------------------------------------- // countdown(count,trig) // start counting down from count, count-1,...,0 when trig > 0 //----------------------------------------------------------------- countdown(count, trig) = \(c).(if(trig>0, count, max(0, c-1))) ~_; //----------------------------------------------------------------- // countup(count,trig) // start counting down from 0, 1, ... count-1, count when trig > 0 //----------------------------------------------------------------- countup(count, trig) = \(c).(if(trig>0, 0, min(count, c+1))) ~_; /****************************************************************** * Hadamard matrix function * Implementation contributed by Remy Muller *****************************************************************/ // bus(n) : n parallel cables bus(2) = _,_; // avoids a lot of "bus(1)" labels in block diagrams bus(n) = par(i, n, _); // selector(i,n) : select ith cable among n selector(i,n) = par(j, n, S(i, j)) with { S(i,i) = _; S(i,j) = !; }; // interleave(m,n) : interleave m*n cables : x(0), x(m), x(2m), ..., x(1),x(1+m), x(1+2m)... //interleave(m,n) = bus(m*n) <: par(i, m, par(j, n, selector(i+j*m,m*n))); // interleave(row,col) : interleave row*col cables from column order to row order. // input : x(0), x(1), x(2) ..., x(row*col-1) // output: x(0+0*row), x(0+1*row), x(0+2*row), ..., x(1+0*row), x(1+1*row), x(1+2*row), ... interleave(row,col) = bus(row*col) <: par(r, row, par(c, col, selector(r+c*row,row*col))); // butterfly(n) : addition then substraction of interleaved signals : butterfly(n) = bus(n) <: interleave(n/2,2), interleave(n/2,2) : par(i, n/2, +), par(i, n/2, -); // hadamard(n) : hadamard matrix function of size n = 2^k hadamard(2) = butterfly(2); hadamard(n) = butterfly(n) : (hadamard(n/2) , hadamard(n/2)); faust-0.9.46/architecture/scheduler.cpp0000644000175000017500000000025711702130733020015 0ustar orlareyorlarey #define THREAD_SIZE 64 class TaskQueue; class DSPThreadPool; // Globals TaskQueue* gTaskQueueList[THREAD_SIZE] = {0}; DSPThreadPool* gThreadPool = 0; int gClientCount = 0; faust-0.9.46/architecture/oscillator.lib0000644000175000017500000002334411702130733020200 0ustar orlareyorlareydeclare name "Faust Oscillator Library"; declare author "Julius O. Smith (jos at ccrma.stanford.edu)"; declare copyright "Julius O. Smith III"; declare version "1.10"; declare license "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license) import("music.lib"); // SR, ... import("filter.lib"); // wgr, nlf2, tf2 //===================== Virtual Analog Oscillators ======================== //------------------------ Impulse Train: imptrain ------------------------ imptrain(freq) = sawpos(freq)<:-(mem)<0; //--- Pulse-Train and Square-Wave Oscillators: pulsetrainpos, squarewave[pos] // In all cases, the first pulse jumps to 1 at time 0. // Basic unit-amplitude nonnegative pulse train with duty cycle between 0 and 1: pulsetrainpos(freq,duty) = float(sawpos(freq) <= duty); // Positive square wave = pulse train with 50% duty cycle: squarewavepos(freq) = pulsetrainpos(freq,0.5); // Unit amplitude square wave = zero-mean pulse train with 50% duty cycle: squarewave(freq) = 2*squarewavepos(freq) - 1; //---------- Sawtooth: rawsaw, sawpos, saw1, saw2, sawtooth ------------- // Sawtooth waveform oscillators for virtual analog synthesis et al. // The 'simple' versions (rawsaw, sawpos, saw1), are mere samplings of // the ideal continuous-time ("analog") waveforms. While simple, the // aliasing due to sampling is quite audible. The differentiated // polynomial waveform family (saw2, // --- rawsaw --- // simple sawtooth waveform oscillator between 0 and period in samples: rawsaw(periodsamps) = (_,periodsamps : fmod) ~ +(1.0); // --- sawpos --- // simple sawtooth waveform oscillator between 0 and 1 sawpos(freq) = rawsaw(periodsamps) / periodsamps with { periodsamps = float(SR)/freq; // period in samples (not nec. integer) }; // --- saw1 --- // simple sawtooth waveform oscillator between -1 and 1 saw1(freq) = 2.0 * sawpos(freq) - 1.0; // zero-mean in [-1,1) // --- saw2 --- // Differentiated Parabolic Wave sawtooth (less aliasing) // Reference: Valimaki, IEEE Signal Processing Letters, March 2005 saw2(freq) = saw1(freq) <: * <: -(mem) : *(0.25'*SR/freq); // --- sawtooth --- sawtooth = saw2; // default choice //-------------------------- sawtooth_demo --------------------------- // USAGE: sawtooth_demo : _ sawtooth_demo = signal with { osc_group(x) = vgroup("[0] SAWTOOTH OSCILLATOR [tooltip: See Faust's oscillator.lib for documentation and references]",x); knob_group(x) = osc_group(hgroup("[1]", x)); ampdb = knob_group(vslider("[1] Amplitude [unit:dB] [style:knob] [tooltip: Sawtooth waveform amplitude]", -20,-120,10,0.1)); amp = ampdb : smooth(0.999) : db2linear; freq = knob_group( vslider("[2] Frequency [unit:PK] [style:knob] [tooltip: Sawtooth frequency as a Piano Key (PK) number (A440 = key 49)]", 49,1,88,0.01) : pianokey2hz); pianokey2hz(x) = 440.0*pow(2.0, (x-49.0)/12); // piano key 49 = A440 (also defined in effect.lib) detune1 = 1 + 0.01 * knob_group( vslider("[3] Detuning 1 [unit:%%] [style:knob] [tooltip: Percentange frequency-shift up or down for second oscillator]", -0.1,-10,10,0.01)); detune2 = 1 + 0.01 * knob_group( vslider("[4] Detuning 2 [unit:%%] [style:knob] [tooltip: Percentange frequency-shift up or down for third detuned oscillator]", +0.1,-10,10,0.01)); portamento = knob_group( vslider("[5] Portamento [unit:sec] [style:knob] [tooltip: Portamento (frequency-glide) time-constant in seconds]", 0.1,0.01,1,0.001)); sfreq = freq : smooth(tau2pole(portamento)); tone = (amp/3) * (sawtooth(sfreq) + sawtooth(sfreq*detune1) + sawtooth(sfreq*detune2)); signal = amp * select2(ei, select2(ss, tone, pink_noise), _); checkbox_group(x) = knob_group(vgroup("[6] Alternate Signals",x)); ss = checkbox_group(checkbox("[0] [tooltip: Pink Noise (or 1/f noise) is Constant-Q Noise, meaning that it has the same total power in every octave] Pink Noise Instead (uses only Amplitude control on the left)")); ei = checkbox_group(checkbox( "[1] External Input Instead (overrides Sawtooth/Noise selection above)")); }; // --- Correction-filtered versions of saw2: saw2f2, saw2f4 ---- saw2f2 = saw2 : cf2 with { cf2 = tf2(1.155704605878911, 0.745184288225518,0.040305967265900, 0.823765146386639, 0.117420665547108); }; saw2f4 = saw2 : cf4 with { cf4 = iir((1.155727435125014, 2.285861038554662, 1.430915027294021, 0.290713280893317, 0.008306401748854), (2.156834679164532, 1.559532244409321, 0.423036498118354, 0.032080681130972)); }; // --- sawN, saw3,saw4,saw5,saw6 --- // Differentiated Polynomial Wave (DPW) sawtooth (progressively less aliasing) // Reference: // "Alias-Suppressed Oscillators based on Differentiated Polynomial Waveforms", // Vesa Valimaki, Juhan Nam, Julius Smith, and Jonathan Abel, // IEEE Tr. Acoustics, Speech, and Language Processing (IEEE-ASLP), // Vol. 18, no. 5, May 2010. sawN(N,freq) = saw1 : poly(N) : D(N-1) : gate(N-1) with { p0n = SR/freq; sawpos = (_,1:fmod) ~ +(1/p0n); // sawtooth waveform in [0,1) saw1 = 2*sawpos - 1; // zero average mean, unit max amp poly(2,x) = x*x; poly(3,x) = x*x*x - x; poly(4,x) = poly(2,x)*(poly(2,x) - 2); poly(5,x) = pow(x,5) - pow(x,3)*10/3 + x*7/3; poly(6,x) = pow(x,6) - 5*pow(x,4) + 7*poly(2,x); diff1(x) = (x - x')/(2/p0n); diff(N) = seq(n,N,diff1); // N diffs in series D(1) = diff1/2; D(2) = diff(2)/6; D(3) = diff(3)/24; D(4) = diff(4)/120; D(5) = diff(5)/720; gatedelay(n,d,x) = x@(int(d)&(n-1)); // from music.lib gate(N) = * (1 : gatedelay(8,N)); // delayed step for blanking startup glitch }; saw3 = sawN(3); saw4 = sawN(4); saw5 = sawN(5); saw6 = sawN(6); //----------------------- Filter-Based Oscillators ------------------------ // Quick Guide (more complete documentation forthcoming): // // USAGE: osc[b|r|rs|rc|s|w](f), where f = frequency in Hz. // // oscb: fastest, amplitude varies with frequency, avoid dc // oscr: 2nd fastest, amplitude unchanging with frequency, dc ok, // amp slowly drifts, // sine and cosine outputs available (exact phase quadrature) // oscrs: sine output of oscr // oscrc: cosine output of oscr // oscs: 3rd fastest, amplitude varies slightly with frequency, dc ok, // no amp drift, likely optimizable to be the fastest no-drift case // oscw: 4th fastest, amplitude steady with frequency, no amp drift, // sine and cosine outputs available (exact phase quadrature), // numerical difficulty below 10 Hz, // likely optimizable to be best (above 10 Hz) for custom silicon. impulse = 1-1'; // used to start filter-based oscillators //-------------------------- oscb -------------------------------- // Sinusoidal oscillator based on the biquad // oscb(f) = impulse : tf2(1,0,0,a1,1) with { a1 = -2*cos(2*PI*f/SR); }; //-------------------------- oscr -------------------------------- // Sinusoidal oscillator based on 2D vector rotation, // = undamped "coupled-form" resonator // = lossless 2nd-order normalized ladder filter // // Reference: // https://ccrma.stanford.edu/~jos/pasp/Normalized_Scattering_Junctions.html // oscrq(f) = impulse : nlf2(f,1); // sine and cosine outputs oscrs(f) = impulse : nlf2(f,1) : _,!; // sine oscrc(f) = impulse : nlf2(f,1) : !,_; // cosine oscr = oscrs; // default = sine case //-------------------------- oscs -------------------------------- // Sinusoidal oscillator based on the state variable filter // = undamped "modified-coupled-form" resonator // oscs(f) = (*(0-1) : sint(wn) : sintp(wn,impulse)) ~ _ with { wn = 2*PI*f/SR; // approximate // wn = 2*sin(PI*f/SR); // exact sub(x,y) = y-x; sint(x) = *(x) : + ~ _ ; // frequency-scaled integrator sintp(x,y) = *(x) : +(y): + ~ _ ; // same + state input }; //----------------- oscw, oscwq, oscwc, oscws -------------------- // Sinusoidal oscillator based on the waveguide resonator wgr // // oscwc - unit-amplitude cosine oscillator // oscws - unit-amplitude sine oscillator // oscq - unit-amplitude cosine and sine (quadrature) oscillator // oscw - default = oscwc for maximum speed // // Reference: // https://ccrma.stanford.edu/~jos/pasp/Digital_Waveguide_Oscillator.html // oscwc(fr) = impulse : wgr(fr,1) : _,!; // cosine (cheapest at 1 mpy/sample) oscws(fr) = impulse : wgr(fr,1) : !,_; // sine (needs a 2nd scaling mpy) oscq(fr) = impulse : wgr(fr,1); // phase quadrature outputs oscw = oscwc; //-------------------------- oscrs_demo --------------------------- oscrs_demo = signal with { osc_group(x) = vgroup("[0] SINE WAVE OSCILLATOR oscrs [tooltip: Sine oscillator based on 2D vector rotation]",x); knob_group(x) = osc_group(hgroup("[1]", x)); // ampdb = knob_group(vslider("[1] Amplitude [unit:dB] [style:knob] ampdb = knob_group(hslider("[1] Amplitude [unit:dB] [tooltip: Sawtooth waveform amplitude]", -20,-120,10,0.1)); amp = ampdb : smooth(0.999) : db2linear; freq = knob_group( // vslider("[2] Frequency [unit:PK] [style:knob] hslider("[2] Frequency [unit:PK] [tooltip: Sine wave frequency as a Piano Key (PK) number (A440 = 49 PK)]", 49,1,88,0.01) : pianokey2hz); pianokey2hz(x) = 440.0*pow(2.0, (x-49.0)/12); // (also defined in effect.lib) portamento = knob_group( // vslider("[3] Portamento [unit:sec] [style:knob] hslider("[3] Portamento [unit:sec] [tooltip: Portamento (frequency-glide) time-constant in seconds]", 0.1,0,1,0.001)); sfreq = freq : smooth(tau2pole(portamento)); signal = amp * oscrs(sfreq); }; oscr_demo = oscrs_demo; // synonym //--------------------------- pink_noise -------------------------- // Pink noise (1/f noise) generator (third-order approximation) // // USAGE: pink_noise : _; // // Reference: // https://ccrma.stanford.edu/~jos/sasp/Example_Synthesis_1_F_Noise.html // pink_noise = noise : iir((0.049922035, -0.095993537, 0.050612699, -0.004408786), (-2.494956002, 2.017265875, -0.522189400)); faust-0.9.46/architecture/minimal.cpp0000644000175000017500000000375011702130733017466 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This is sample code. This file is provided as an example of minimal FAUST architecture file. Redistribution and use in source and binary forms, with or without modification, in part or in full are permitted. In particular you can create a derived work of this FAUST architecture and distribute that work under terms of your choice. This sample code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ************************************************************************ ************************************************************************/ #include #include "gui/GUI.h" #include "audio/dsp.h" #include "misc.h" /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> /****************************************************************************** ******************************************************************************* ABSTRACT USER INTERFACE ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------------------- // FAUST generated signal processor //---------------------------------------------------------------------------- <> faust-0.9.46/architecture/misc.h0000644000175000017500000000247411702130733016442 0ustar orlareyorlarey #ifndef __misc__ #define __misc__ #include #include // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif struct XXXX_Meta : std::map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; struct Meta { virtual void declare (const char* key, const char* value) = 0; }; struct MY_Meta : Meta, std::map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) inline int lsr (int x, int n) { return int(((unsigned int)x) >> n); } inline int int2pow2 (int x) { int r=0; while ((1< #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "wx/wx.h" #include "wx/statbox.h" #include "wx/notebook.h" #include "wx/spinctrl.h" // g++ -O3 -lm `wx-config --cflags --libs` ex2.cpp using namespace std ; #ifdef __GNUC__ //------------------------------------------------------------------- // Generic min and max using gcc extensions //------------------------------------------------------------------- #define max(x,y) ((x)>?(y)) #define min(x,y) ((x)b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a T abs (T a) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<pw_uid); param.sched_priority = 50; /* 0 to 99 */ err = sched_setscheduler(0, SCHED_RR, ¶m); setuid (uid); if (err != -1) { printf("OK : Running with realtime priority\n"); } else { printf("Warning : running with non-realtime priority\n"); } } /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> /****************************************************************************** ******************************************************************************* AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ enum { kRead = 1, kWrite = 2, kReadWrite = 3 }; // AudioParam : a convenient class to pass parameters to the AudioInterface struct AudioParam { const char* fDeviceName; int fSamplingFrequency; int fRWMode; int fSampleFormat; int fFramesPerBuffer; AudioParam() : fDeviceName("/dev/dsp"), fSamplingFrequency(44100), fRWMode(kReadWrite), fSampleFormat(AFMT_S16_LE), fFramesPerBuffer(512) {} AudioParam& device(const char * n) { fDeviceName = n; return *this; } AudioParam& frequency(int f) { fSamplingFrequency = f; return *this; } AudioParam& mode(int m) { fRWMode = m; return *this; } AudioParam& format(int f) { fSampleFormat = f; return *this; } AudioParam& buffering(int fpb) { fFramesPerBuffer = fpb; return *this; } }; class AudioInterface { private : AudioParam fParam; int fOutputDevice ; int fInputDevice ; int fNumOfOutputChannels; int fNumOfInputChannels; int fInputBufferSize; short* fInputBuffer; int fOutputBufferSize; short* fOutputBuffer; public : const char* getDeviceName() { return fParam.fDeviceName; } int getSamplingFrequency() { return fParam.fSamplingFrequency; } int getRWMode() { return fParam.fRWMode; } int getSampleFormat() { return fParam.fSampleFormat; } int getFramesPerBuffer() { return fParam.fFramesPerBuffer; } int getNumOutputs() { return fNumOfOutputChannels; } int getNumInputs() { return fNumOfInputChannels; } int getInputBufferSize() { return fInputBufferSize; } int getOutputBufferSize() { return fOutputBufferSize; } AudioInterface(const AudioParam& ap = AudioParam()) : fParam(ap) { fOutputDevice = -1; fInputDevice = -1; fNumOfOutputChannels = 0; fNumOfInputChannels = 0; fInputBufferSize = 0; fInputBuffer = 0; fOutputBufferSize = 0; fOutputBuffer = 0; } void openInputAudioDev () { int err = 0; assert( (fInputDevice = ::open(fParam.fDeviceName, O_RDONLY, 0)) > 0); assert( ioctl(fInputDevice, SNDCTL_DSP_SETFMT, &fParam.fSampleFormat) != -1); assert( ioctl(fInputDevice, SNDCTL_DSP_CHANNELS, &fNumOfInputChannels) != -1); assert( ioctl(fInputDevice, SNDCTL_DSP_SPEED, &fParam.fSamplingFrequency) != -1); int gFragFormat = (1 << 16) + int2pow2(fParam.fFramesPerBuffer * 2 * fNumOfInputChannels); assert( ioctl(fInputDevice, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) != -1); fInputBufferSize = 0; assert( ioctl(fInputDevice, SNDCTL_DSP_GETBLKSIZE, &fInputBufferSize) != -1); assert( fInputBufferSize == fParam.fFramesPerBuffer * 2 * fNumOfInputChannels ); fInputBuffer = (short*) calloc(fInputBufferSize, 1); } void openOutputAudioDev () { int err = 0; assert( (fOutputDevice = ::open(fParam.fDeviceName, O_WRONLY, 0)) > 0); assert( ioctl(fOutputDevice, SNDCTL_DSP_SETFMT, &fParam.fSampleFormat) != -1); assert( ioctl(fOutputDevice, SNDCTL_DSP_CHANNELS,&fNumOfOutputChannels)!= -1); assert( ioctl(fOutputDevice, SNDCTL_DSP_SPEED, &fParam.fSamplingFrequency) != -1); int gFragFormat = (1 << 16) + int2pow2(fParam.fFramesPerBuffer * 2 * fNumOfOutputChannels); assert( ioctl(fOutputDevice, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) != -1); fOutputBufferSize = 0; assert( ioctl(fOutputDevice, SNDCTL_DSP_GETBLKSIZE, &fOutputBufferSize) != -1); assert( fOutputBufferSize == fParam.fFramesPerBuffer * 2 * fNumOfOutputChannels ); fOutputBuffer = (short*)calloc(fOutputBufferSize, 1); } void open() { if (fParam.fRWMode & kRead) openInputAudioDev(); if (fParam.fRWMode & kWrite) openOutputAudioDev(); } void close() { if (fParam.fRWMode & kRead) ::close(fOutputDevice); if (fParam.fRWMode & kWrite) ::close(fInputDevice); } //---------------------------------------------------------------- // allocChanGroup() : allocate a group of audio buffers // chan[] : is an array of buffer pointers // n : is the number of buffers to allocate // len : is the length of each buffer //---------------------------------------------------------------- void allocChanGroup(float* chan[], int n, int len) { for (int c = 0; c < n; c++) { chan[c] = (float*) calloc (len, sizeof(float)); } } //---------------------------------------------------------------- // info() : print information on the audio device //---------------------------------------------------------------- void info() { audio_buf_info info; int err = 0; int cap; printf("Audio Interface Description :\n"); printf("Sampling Frequency : %d, Sample Format : %d, Mode : %d\n", getSamplingFrequency(), getSampleFormat(), getRWMode()); if (getRWMode() & kWrite) { assert( ioctl(fOutputDevice, SNDCTL_DSP_GETOSPACE, &info) != -1); printf("output space info: fragments=%d, fragstotal=%d, fragsize=%d, bytes=%d\n", info.fragments, info.fragstotal, info.fragsize, info.bytes); assert( ioctl(fOutputDevice,SNDCTL_DSP_GETCAPS, &cap) != -1); printf("Output capabilities - %d channels : ", fNumOfOutputChannels); if (cap & DSP_CAP_DUPLEX) printf(" DSP_CAP_DUPLEX"); if (cap & DSP_CAP_REALTIME) printf(" DSP_CAP_REALTIME"); if (cap & DSP_CAP_DUPLEX) printf(" DSP_CAP_DUPLEX"); if (cap & DSP_CAP_BATCH) printf(" DSP_CAP_BATCH"); if (cap & DSP_CAP_COPROC) printf(" DSP_CAP_COPROC"); if (cap & DSP_CAP_TRIGGER) printf(" DSP_CAP_TRIGGER"); if (cap & DSP_CAP_MMAP) printf(" DSP_CAP_MMAP"); if (cap & DSP_CAP_MULTI) printf(" DSP_CAP_MULTI"); if (cap & DSP_CAP_BIND) printf(" DSP_CAP_BIND"); printf("\n"); printf("Output block size = %d\n", fOutputBufferSize); } if (getRWMode() & kRead) { assert( ioctl(fInputDevice, SNDCTL_DSP_GETISPACE, &info) != -1); printf("input space info: fragments=%d, fragstotal=%d, fragsize=%d, bytes=%d\n", info.fragments, info.fragstotal, info.fragsize, info.bytes); assert( ioctl(fInputDevice,SNDCTL_DSP_GETCAPS, &cap) != -1); printf("Input capabilities - %d channels : ", fNumOfInputChannels); if (cap & DSP_CAP_DUPLEX) printf(" DSP_CAP_DUPLEX"); if (cap & DSP_CAP_REALTIME) printf(" DSP_CAP_REALTIME"); if (cap & DSP_CAP_DUPLEX) printf(" DSP_CAP_DUPLEX"); if (cap & DSP_CAP_BATCH) printf(" DSP_CAP_BATCH"); if (cap & DSP_CAP_COPROC) printf(" DSP_CAP_COPROC"); if (cap & DSP_CAP_TRIGGER) printf(" DSP_CAP_TRIGGER"); if (cap & DSP_CAP_MMAP) printf(" DSP_CAP_MMAP"); if (cap & DSP_CAP_MULTI) printf(" DSP_CAP_MULTI"); if (cap & DSP_CAP_BIND) printf(" DSP_CAP_BIND"); printf("\n"); printf("Input block size = %d\n", fInputBufferSize); } } //---------------------------------------------------------------- // read() : read //---------------------------------------------------------------- bool read(int frames, float* channel[]) { int bytes = frames * 2 * fNumOfInputChannels; assert(bytes <= fInputBufferSize); int count = ::read(fInputDevice, fInputBuffer, bytes); assert (bytes == count); for (int s = 0; s < frames; s++) { for (int c = 0; c < fNumOfInputChannels; c++) { channel[c][s] = float(fInputBuffer[c + s*fNumOfInputChannels])*(1.0/float(SHRT_MAX)); } } return bytes == count; } bool write(int frames, float* channel[]) { int bytes = frames * 2 * fNumOfOutputChannels; assert(bytes <= fOutputBufferSize); for (int f = 0; f < frames; f++) { for (int c = 0; c < fNumOfOutputChannels; c++) { float x = channel[c][f]; fOutputBuffer[c + f*fNumOfOutputChannels] = short( max(min(x,1.0),-1.0) * float(SHRT_MAX) ) ; } } int count = ::write(fOutputDevice, fOutputBuffer, bytes); assert (bytes == count); return bytes == count; } }; /****************************************************************************** ******************************************************************************* USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(char* label, float* zone) = 0; virtual void addToggleButton(char* label, float* zone) = 0; virtual void addCheckButton(char* label, float* zone) = 0; virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void openFrameBox(char* label) = 0; virtual void openTabBox(char* label) = 0; virtual void openHorizontalBox(char* label) = 0; virtual void openVerticalBox(char* label) = 0; virtual void closeBox() = 0; virtual void run() {}; void stop() { fStopped = true; } bool stopped() { return fStopped; } }; /****************************************************************************** ******************************************************************************* DSP ******************************************************************************* *******************************************************************************/ //--------------------------------------------------- // tableaux de buffers initialis�s par allocChannels //--------------------------------------------------- float* gInChannel[256]; float* gOutChannel[256]; void allocChannels (int size, int numInChan, int numOutChan) { assert (numInChan < 256); assert (numOutChan < 256); for (int i = 0; i < numInChan; i++) { gInChannel[i] = (float*) calloc (size, sizeof(float)); for (int j = 0; j < size; j++) { gInChannel[i][j] = 0.0; } } for (int i = 0; i < numOutChan; i++) { gOutChannel[i] = (float*) calloc (size, sizeof(float)); for (int j = 0; j < size; j++) { gOutChannel[i][j] = 0.0; } } } //---------------------------------------------------------------- // d�finition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; <> mydsp DSP; /****************************************************************************** ******************************************************************************* WXWINDOWS USER INTERFACE ******************************************************************************* *******************************************************************************/ // les modes d'insertion #define kNormalState 0 #define kNotebookState 1 #define kAutoPageState 2 #define kProp 0 #define kBorder 5 #define kFlag wxALL|wxGROW // faustButton : a wxButton for FAUST. class faustButton : public wxButton { float* fZone; public : faustButton(wxWindow* parent, const wxString& label, float* zone) : wxButton(parent, -1, label, wxPoint(-1, -1)), fZone(zone) { *fZone = 0.0; } void clickdown (wxCommandEvent& ev) { *fZone = 1.0; /*printf("click down : zone (at %p) = %f\n", fZone, *fZone);*/ ev.Skip();} void clickup (wxCommandEvent& ev) { *fZone = 0.0; /*printf("click up : zone (at %p) = %f\n", fZone, *fZone);*/ ev.Skip(); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustButton, wxButton) EVT_LEFT_DOWN(faustButton::clickdown) EVT_LEFT_UP(faustButton::clickup) END_EVENT_TABLE() class faustCheckBox : public wxCheckBox { float* fZone; public : faustCheckBox(wxWindow* parent, const wxString& label, float* zone) : wxCheckBox(parent, -1, label, wxPoint(-1, -1)), fZone(zone) { *fZone = 0.0; } void toggle (wxCommandEvent& ev) { *fZone = (ev.IsChecked()) ? 1.0 : 0.0; //printf("toogle : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustCheckBox, wxCheckBox) EVT_CHECKBOX(-1, faustCheckBox::toggle) END_EVENT_TABLE() class faustHorizontalSlider : public wxSlider { float fStep; float* fZone; public : faustHorizontalSlider(wxWindow* parent, float* zone, float init , float min, float max, float step) : wxSlider(parent, -1, int(init/step), int(min/step), int(max/step), wxDefaultPosition, wxSize(120,30), wxSL_HORIZONTAL), fStep(step), fZone(zone) { *fZone = init; } void update (wxCommandEvent& ev) { *fZone = GetValue()*fStep; //printf("horizontal slider update : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustHorizontalSlider, wxSlider) EVT_SLIDER (-1, faustHorizontalSlider::update) END_EVENT_TABLE() class faustVerticalSlider : public wxSlider { float fStep; float* fZone; public : faustVerticalSlider(wxWindow* parent, float* zone, float init , float min, float max, float step) : wxSlider(parent, -1, int((max+min-init)/step), int(min/step), int(max/step), wxDefaultPosition, wxSize(30,120), wxSL_VERTICAL), fStep(step), fZone(zone) { *fZone = init; } void update (wxCommandEvent& ev) { *fZone = (GetMin()+GetMax()-GetValue())*fStep; //printf("vertical slider update : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustVerticalSlider, wxSlider) EVT_SLIDER (-1, faustVerticalSlider::update) END_EVENT_TABLE() //-------------------------------- // faustSpinCtrl* b = new faustSpinCtrl(topPanel(), zone, init, min, max, step); // wxSpinCtrl* b = new wxSpinCtrl( topPanel(), -1, "", wxPoint(200, 160), wxSize(80, -1) ); // b->SetRange(int(min),int(max)); // b->SetValue(int(init)); class faustSpinCtrl : public wxSpinCtrl { float fStep; float* fZone; public : faustSpinCtrl(wxWindow* parent, float* zone, float init , float min, float max, float step) : wxSpinCtrl(parent), fStep(step), fZone(zone) { SetRange(int(min),int(max)); SetValue(int(init)); *fZone = init; } void update (wxCommandEvent& ev) { *fZone = GetValue(); printf("spin ctrl update : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustSpinCtrl, wxSlider) EVT_SPINCTRL (-1, faustSpinCtrl::update) END_EVENT_TABLE() class WXUI : public UI // user interface { class State { int const fType; wxWindow* const fPanel; wxSizer* const fSizer; public: State (int t, wxWindow* p, wxSizer* z) : fType(t), fPanel(p), fSizer(z) {} int type() const { return fType; } wxWindow* panel() const { return fPanel; } wxSizer* sizer() const { return fSizer; } }; stack lState; wxFrame* frame; wxSizer* fSizer; // gestion de l'etat courant du constructeur void push (int t, wxWindow* p, wxSizer* z) { printf("push %d of %d, %p, %p\n", lState.size(), t, p, z); lState.push(State(t,p,z)); } int topType() { return lState.top().type(); } wxWindow* topPanel() { return lState.top().panel(); } wxSizer* topSizer() { return lState.top().sizer(); } void pop () { printf("pop %d", lState.size()-1); lState.pop(); printf(" ok\n"); } void openAutoPage(char* label) { if (topType() == kNotebookState) { if (!label) label = ""; wxNotebook* nb = (wxNotebook*) topPanel(); wxPanel* p = new wxPanel( nb, -1 ); wxBoxSizer* z = new wxBoxSizer( wxVERTICAL ); nb->AddPage(p, label); p->SetAutoLayout(TRUE); p->SetSizer(z); push(kAutoPageState, p, z); } } void closeAutoPage() { if (topType() == kAutoPageState) pop(); } void openOrientedBox(char* label, int orientation) { openAutoPage(label); wxSizer* z = (label == 0) ? new wxBoxSizer(orientation) : new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), orientation); topSizer()->Add(z, 1, kFlag, kBorder); push(kNormalState, topPanel(), z); } public: WXUI(){} virtual ~WXUI() {} void openFrame(wxFrame* f) { frame = f; fSizer = new wxBoxSizer(wxVERTICAL); frame->SetSizer(fSizer); push(kNormalState, frame, fSizer); } wxFrame* closeFrame() { fSizer->Fit(frame); fSizer->SetSizeHints(frame); return frame; } virtual void openHorizontalBox(char* label) { openOrientedBox(label, wxHORIZONTAL); } virtual void openVerticalBox(char* label) { openOrientedBox(label, wxVERTICAL); } virtual void openTabBox(char* label) { openAutoPage(label); wxNotebook* nb = new wxNotebook( topPanel(), -1 ); wxNotebookSizer* z = new wxNotebookSizer( nb ); topSizer()->Add(z, 1, kFlag, kBorder); push(kNotebookState, nb, z); } virtual void closeBox() { pop(); closeAutoPage(); } //--------------------------------- les elements ------------------------------------------ virtual void addButton(char* label, float* zone) { openAutoPage(label); faustButton* b = new faustButton(topPanel(), label, zone); topSizer()->Add(b, kProp, kFlag, kBorder); closeAutoPage(); } virtual void addCheckButton(char* label, float* zone) { openAutoPage(label); faustCheckBox* b = new faustCheckBox(topPanel(), label, zone); topSizer()->Add(b, kProp, kFlag, kBorder); closeAutoPage(); } virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) { openAutoPage(label); if (label) { wxSizer* z = new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), wxHORIZONTAL); topSizer()->Add(z, 1, kFlag, kBorder); faustVerticalSlider* b = new faustVerticalSlider(topPanel(), zone, init, min, max, step); b->SetToolTip(label); z->Add(b, 1, kFlag|wxALIGN_CENTER_VERTICAL, kBorder); } else { faustVerticalSlider* b = new faustVerticalSlider(topPanel(), zone, init, min, max, step); topSizer()->Add(b, kProp, kFlag, kBorder); } closeAutoPage(); } virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) { openAutoPage(label); if (label) { wxSizer* z = new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), wxVERTICAL); topSizer()->Add(z, 1, kFlag, kBorder); faustHorizontalSlider* b = new faustHorizontalSlider(topPanel(), zone, init, min, max, step); b->SetToolTip(label); z->Add(b, 1, kFlag|wxALIGN_CENTER_HORIZONTAL, kBorder); } else { faustHorizontalSlider* b = new faustHorizontalSlider(topPanel(), zone, init, min, max, step); topSizer()->Add(b, kProp, kFlag, kBorder); } closeAutoPage(); } virtual void addToggleButton(char* label, float* zone) {} virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) { openAutoPage(label); if (label) { wxSizer* z = new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), wxVERTICAL); topSizer()->Add(z, 0, kFlag, kBorder); faustSpinCtrl* b = new faustSpinCtrl(topPanel(), zone, init, min, max, step); // wxSpinCtrl* b = new wxSpinCtrl( topPanel(), -1, "", wxPoint(200, 160), wxSize(80, -1) ); // b->SetRange(int(min),int(max)); // b->SetValue(int(init)); b->SetToolTip(label); z->Add(b, 0, kFlag, kBorder); } else { faustSpinCtrl* b = new faustSpinCtrl(topPanel(), zone, init, min, max, step); // wxSpinCtrl* b = new wxSpinCtrl( topPanel(), -1, "", wxPoint(200, 160), wxSize(80, -1) ); // b->SetRange(int(min),int(max)); // b->SetValue(int(init)); topSizer()->Add(b, kProp, kFlag, kBorder); } closeAutoPage(); } virtual void openFrameBox(char* label) {} }; /****************************************************************************** ******************************************************************************* WXWINDOWS APPLICATION ******************************************************************************* *******************************************************************************/ enum { ID_QUIT=1, ID_ABOUT }; class MyApp : public wxApp { virtual bool OnInit(); }; class MyFrame : public wxFrame { public: MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) : wxFrame(0, -1, title, pos, size) { wxMenu* m = new wxMenu; m->Append(ID_ABOUT, "&About..."); m->AppendSeparator(); m->Append(ID_QUIT, "E&xit"); wxMenuBar* b = new wxMenuBar; b->Append(m, "&File"); SetMenuBar(b); CreateStatusBar(); SetStatusText("hello..."); } void OnQuit(wxCommandEvent& event) { Close(TRUE); } void OnAbout(wxCommandEvent& event) { wxMessageBox("message 1", "message 2", wxOK|wxICON_INFORMATION); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(ID_QUIT, MyFrame::OnQuit) EVT_MENU(ID_ABOUT, MyFrame::OnAbout) END_EVENT_TABLE() IMPLEMENT_APP(MyApp) /****************************************************************************** ******************************************************************************* MAIN PLAY THREAD ******************************************************************************* *******************************************************************************/ // Scan Command Line Arguments long lopt (char *argv[], char *name, long def) { int i; for (i=0; argv[i]; i++) if (!strcmp(argv[i], name)) return atoi(argv[i+1]); return def; } //------------------------------------------------------------------------- // MAIN //------------------------------------------------------------------------- float* inChannel[256]; float* outChannel[256]; int fpb; pthread_t soundthread; void* run_sound(void* ptr) { AudioInterface* audio = (AudioInterface*)ptr; setRealtimePriority(); // Sound processing loop audio->write(fpb, outChannel); audio->write(fpb, outChannel); while (1) { if ( !audio->write(fpb, outChannel)) printf("w"); if ( !audio->read (fpb, inChannel)) printf("r");; DSP.compute(fpb, inChannel, outChannel); } audio->close(); return 0; } bool MyApp::OnInit() { // create and init the audio interface card AudioInterface* audio = new AudioInterface( AudioParam().frequency(lopt(argv, "--frequency", 44100)) .buffering(lopt(argv, "--buffer", 128)) //.mode( ((DSP.getNumInputs()>0)?kRead:0) | ((DSP.getNumOutputs()>0)?kWrite:0) ) ); audio->open(); audio->info(); MyFrame* frame = new MyFrame(argv[0], wxPoint(50,50), wxSize(-1, -1)); wxMenu* m = new wxMenu; m->Append(ID_ABOUT, "&About..."); m->AppendSeparator(); m->Append(ID_QUIT, "E&xit"); wxMenuBar* b = new wxMenuBar; b->Append(m, "&File"); frame->SetMenuBar(b); frame->CreateStatusBar(); frame->SetStatusText("hello..."); WXUI* ui = new WXUI(); ui->openFrame(frame); DSP.buildUserInterface((UI*)ui); ui->closeFrame(); DSP.init(audio->getSamplingFrequency()); fpb = audio->getFramesPerBuffer(); audio->allocChanGroup(inChannel, max(audio->getNumInputs(), DSP.getNumInputs()), fpb); audio->allocChanGroup(outChannel, max(audio->getNumOutputs(), DSP.getNumOutputs()), fpb); frame->Show(TRUE); SetTopWindow(frame); pthread_create(&soundthread, NULL, run_sound, audio); return TRUE; } faust-0.9.46/architecture/unsupported-arch/jack-wx.cpp0000644000175000017500000005307211702130733022711 0ustar orlareyorlarey#include #include #include #include #include #include #include #include #include #include //#include #include #include #include #include #include #include #include #include #include "wx/wx.h" #include "wx/statbox.h" #include "wx/notebook.h" #include "wx/spinctrl.h" #include #include // linux : g++ -O3 -lm -ljack `wx-config --cflags --libs` ex2.cpp // macosx: g++ karplus-strong.cpp -D__WXMAC__ -DWXMAKINGDLL -lwx_mac-2.4 -ljack -o karplus using namespace std ; #ifdef __GNUC__ //------------------------------------------------------------------- // Generic min and max using gcc extensions //------------------------------------------------------------------- #define max(x,y) ((x)>?(y)) #define min(x,y) ((x)b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a T abs (T a) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<> /****************************************************************************** ******************************************************************************* USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(char* label, float* zone) = 0; virtual void addToggleButton(char* label, float* zone) = 0; virtual void addCheckButton(char* label, float* zone) = 0; virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void openFrameBox(char* label) = 0; virtual void openTabBox(char* label) = 0; virtual void openHorizontalBox(char* label) = 0; virtual void openVerticalBox(char* label) = 0; virtual void closeBox() = 0; virtual void run() {}; void stop() { fStopped = true; } bool stopped() { return fStopped; } }; /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // définition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; <> mydsp DSP; /****************************************************************************** ******************************************************************************* JACK AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------------------- // number of input and output channels //---------------------------------------------------------------------------- int gNumInChans; int gNumOutChans; //---------------------------------------------------------------------------- // Jack ports //---------------------------------------------------------------------------- jack_port_t *input_ports[256]; jack_port_t *output_ports[256]; //---------------------------------------------------------------------------- // tables of noninterleaved input and output channels for FAUST //---------------------------------------------------------------------------- float* gInChannel[256]; float* gOutChannel[256]; //---------------------------------------------------------------------------- // Jack Callbacks //---------------------------------------------------------------------------- int srate(jack_nframes_t nframes, void *arg) { printf("the sample rate is now %lu/sec\n", nframes); return 0; } void jack_shutdown(void *arg) { exit(1); } int process (jack_nframes_t nframes, void *arg) { // ATTENTION: en vectoriel il faut s'assurer que gInChannel et gOutChannel soit align�s sur une fronti�re de 128 bits for (int i = 0; i < gNumInChans; i++) { gInChannel[i] = (float *)jack_port_get_buffer(input_ports[i], nframes); } for (int i = 0; i < gNumOutChans; i++) { gOutChannel[i] = (float *)jack_port_get_buffer(output_ports[i], nframes); } DSP.compute(nframes, gInChannel, gOutChannel); return 0; } /****************************************************************************** ******************************************************************************* WXWINDOWS USER INTERFACE ******************************************************************************* *******************************************************************************/ // les modes d'insertion #define kNormalState 0 #define kNotebookState 1 #define kAutoPageState 2 #define kProp 0 #define kBorder 5 #define kFlag wxALL|wxGROW // faustButton : a wxButton for FAUST. class faustButton : public wxButton { float* fZone; public : faustButton(wxWindow* parent, const wxString& label, float* zone) : wxButton(parent, -1, label, wxPoint(-1, -1)), fZone(zone) { *fZone = 0.0; } #ifdef MACOSX void clickdown (wxCommandEvent& ev) { *fZone = 1.0; /*printf("click down : zone (at %p) = %f\n", fZone, *fZone); ev.Skip();*/} void clickup (wxCommandEvent& ev) { *fZone = 0.0; /*printf("click up : zone (at %p) = %f\n", fZone, *fZone);ev.Skip();*/ } #else void clickdown (wxCommandEvent& ev) { *fZone = 1.0; /*printf("click down : zone (at %p) = %f\n", fZone, *fZone);*/ ev.Skip();} void clickup (wxCommandEvent& ev) { *fZone = 0.0; /*printf("click up : zone (at %p) = %f\n", fZone, *fZone);*/ ev.Skip(); } #endif private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustButton, wxButton) EVT_LEFT_DOWN(faustButton::clickdown) EVT_LEFT_UP(faustButton::clickup) END_EVENT_TABLE() class faustCheckBox : public wxCheckBox { float* fZone; public : faustCheckBox(wxWindow* parent, const wxString& label, float* zone) : wxCheckBox(parent, -1, label, wxPoint(-1, -1)), fZone(zone) { *fZone = 0.0; } void toggle (wxCommandEvent& ev) { *fZone = (ev.IsChecked()) ? 1.0 : 0.0; //printf("toogle : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustCheckBox, wxCheckBox) EVT_CHECKBOX(-1, faustCheckBox::toggle) END_EVENT_TABLE() class faustHorizontalSlider : public wxSlider { float fStep; float* fZone; public : faustHorizontalSlider(wxWindow* parent, float* zone, float init , float min, float max, float step) : wxSlider(parent, -1, int(init/step), int(min/step), int(max/step), wxDefaultPosition, wxSize(120,30), wxSL_HORIZONTAL), fStep(step), fZone(zone) { *fZone = init; } void update (wxCommandEvent& ev) { *fZone = GetValue()*fStep; //printf("horizontal slider update : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustHorizontalSlider, wxSlider) EVT_SLIDER (-1, faustHorizontalSlider::update) END_EVENT_TABLE() class faustVerticalSlider : public wxSlider { float fStep; float* fZone; public : faustVerticalSlider(wxWindow* parent, float* zone, float init , float min, float max, float step) : wxSlider(parent, -1, int((max+min-init)/step), int(min/step), int(max/step), wxDefaultPosition, wxSize(30,120), wxSL_VERTICAL), fStep(step), fZone(zone) { *fZone = init; } void update (wxCommandEvent& ev) { *fZone = (GetMin()+GetMax()-GetValue())*fStep; //printf("vertical slider update : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustVerticalSlider, wxSlider) EVT_SLIDER (-1, faustVerticalSlider::update) END_EVENT_TABLE() //-------------------------------- // faustSpinCtrl* b = new faustSpinCtrl(topPanel(), zone, init, min, max, step); // wxSpinCtrl* b = new wxSpinCtrl( topPanel(), -1, "", wxPoint(200, 160), wxSize(80, -1) ); // b->SetRange(int(min),int(max)); // b->SetValue(int(init)); class faustSpinCtrl : public wxSpinCtrl { float fStep; float* fZone; public : faustSpinCtrl(wxWindow* parent, float* zone, float init , float min, float max, float step) : wxSpinCtrl(parent), fStep(step), fZone(zone) { SetRange(int(min),int(max)); SetValue(int(init)); *fZone = init; } void update (wxCommandEvent& ev) { *fZone = GetValue(); printf("spin ctrl update : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustSpinCtrl, wxSpinCtrl) EVT_SPINCTRL (-1, faustSpinCtrl::update) END_EVENT_TABLE() class WXUI : public UI // user interface { class State { int const fType; wxWindow* const fPanel; wxSizer* const fSizer; public: State (int t, wxWindow* p, wxSizer* z) : fType(t), fPanel(p), fSizer(z) {} int type() const { return fType; } wxWindow* panel() const { return fPanel; } wxSizer* sizer() const { return fSizer; } }; stack lState; wxFrame* frame; wxSizer* fSizer; // gestion de l'etat courant du constructeur void push (int t, wxWindow* p, wxSizer* z) { printf("push %d of %d, %p, %p\n", lState.size(), t, p, z); lState.push(State(t,p,z)); } int topType() { return lState.top().type(); } wxWindow* topPanel() { return lState.top().panel(); } wxSizer* topSizer() { return lState.top().sizer(); } void pop () { printf("pop %d", lState.size()-1); lState.pop(); printf(" ok\n"); } void openAutoPage(char* label) { if (topType() == kNotebookState) { if (!label) label = ""; wxNotebook* nb = (wxNotebook*) topPanel(); wxPanel* p = new wxPanel( nb, -1 ); wxBoxSizer* z = new wxBoxSizer( wxVERTICAL ); nb->AddPage(p, label); p->SetAutoLayout(TRUE); p->SetSizer(z); push(kAutoPageState, p, z); } } void closeAutoPage() { if (topType() == kAutoPageState) pop(); } void openOrientedBox(char* label, int orientation) { openAutoPage(label); wxSizer* z = (label == 0) ? new wxBoxSizer(orientation) : new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), orientation); topSizer()->Add(z, 1, kFlag, kBorder); push(kNormalState, topPanel(), z); } public: WXUI(){} virtual ~WXUI() {} void openFrame(wxFrame* f) { frame = f; fSizer = new wxBoxSizer(wxVERTICAL); frame->SetSizer(fSizer); push(kNormalState, frame, fSizer); } wxFrame* closeFrame() { fSizer->Fit(frame); fSizer->SetSizeHints(frame); return frame; } virtual void openHorizontalBox(char* label) { openOrientedBox(label, wxHORIZONTAL); } virtual void openVerticalBox(char* label) { openOrientedBox(label, wxVERTICAL); } virtual void openTabBox(char* label) { openAutoPage(label); wxNotebook* nb = new wxNotebook( topPanel(), -1 ); wxNotebookSizer* z = new wxNotebookSizer( nb ); topSizer()->Add(z, 1, kFlag, kBorder); push(kNotebookState, nb, z); } virtual void closeBox() { pop(); closeAutoPage(); } //--------------------------------- les elements ------------------------------------------ virtual void addButton(char* label, float* zone) { openAutoPage(label); faustButton* b = new faustButton(topPanel(), label, zone); topSizer()->Add(b, kProp, kFlag, kBorder); closeAutoPage(); } virtual void addCheckButton(char* label, float* zone) { openAutoPage(label); faustCheckBox* b = new faustCheckBox(topPanel(), label, zone); topSizer()->Add(b, kProp, kFlag, kBorder); closeAutoPage(); } virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) { openAutoPage(label); if (label) { wxSizer* z = new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), wxHORIZONTAL); topSizer()->Add(z, 1, kFlag, kBorder); faustVerticalSlider* b = new faustVerticalSlider(topPanel(), zone, init, min, max, step); b->SetToolTip(label); z->Add(b, 1, kFlag|wxALIGN_CENTER_VERTICAL, kBorder); } else { faustVerticalSlider* b = new faustVerticalSlider(topPanel(), zone, init, min, max, step); topSizer()->Add(b, kProp, kFlag, kBorder); } closeAutoPage(); } virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) { openAutoPage(label); if (label) { wxSizer* z = new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), wxVERTICAL); topSizer()->Add(z, 1, kFlag, kBorder); faustHorizontalSlider* b = new faustHorizontalSlider(topPanel(), zone, init, min, max, step); b->SetToolTip(label); z->Add(b, 1, kFlag|wxALIGN_CENTER_HORIZONTAL, kBorder); } else { faustHorizontalSlider* b = new faustHorizontalSlider(topPanel(), zone, init, min, max, step); topSizer()->Add(b, kProp, kFlag, kBorder); } closeAutoPage(); } virtual void addToggleButton(char* label, float* zone) {} virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) { openAutoPage(label); if (label) { wxSizer* z = new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), wxVERTICAL); topSizer()->Add(z, 0, kFlag, kBorder); faustSpinCtrl* b = new faustSpinCtrl(topPanel(), zone, init, min, max, step); // wxSpinCtrl* b = new wxSpinCtrl( topPanel(), -1, "", wxPoint(200, 160), wxSize(80, -1) ); // b->SetRange(int(min),int(max)); // b->SetValue(int(init)); b->SetToolTip(label); z->Add(b, 0, kFlag, kBorder); } else { faustSpinCtrl* b = new faustSpinCtrl(topPanel(), zone, init, min, max, step); // wxSpinCtrl* b = new wxSpinCtrl( topPanel(), -1, "", wxPoint(200, 160), wxSize(80, -1) ); // b->SetRange(int(min),int(max)); // b->SetValue(int(init)); topSizer()->Add(b, kProp, kFlag, kBorder); } closeAutoPage(); } virtual void openFrameBox(char* label) {} }; /****************************************************************************** ******************************************************************************* WXWINDOWS TOP FRAME ******************************************************************************* *******************************************************************************/ enum { ID_QUIT=1, ID_ABOUT }; class MyFrame : public wxFrame { public: MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) : wxFrame(0, -1, title, pos, size) { wxMenu* m = new wxMenu; m->Append(ID_ABOUT, "&About..."); m->AppendSeparator(); m->Append(ID_QUIT, "E&xit"); wxMenuBar* b = new wxMenuBar; b->Append(m, "&File"); SetMenuBar(b); CreateStatusBar(); SetStatusText("hello..."); } void OnQuit(wxCommandEvent& event) { Close(TRUE); } void OnAbout(wxCommandEvent& event) { wxMessageBox("message 1", "message 2", wxOK|wxICON_INFORMATION); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(ID_QUIT, MyFrame::OnQuit) EVT_MENU(ID_ABOUT, MyFrame::OnAbout) END_EVENT_TABLE() /****************************************************************************** ******************************************************************************* WXWINDOWS MAIN APPLICATION ******************************************************************************* *******************************************************************************/ // Scan Command Line Arguments class MyApp : public wxApp { jack_client_t* client; char jackname[256]; char** physicalInPorts; char** physicalOutPorts; virtual bool OnInit() { MyFrame* frame = new MyFrame(argv[0], wxPoint(50,50), wxSize(-1, -1)); /* wxMenu* m = new wxMenu; m->Append(ID_ABOUT, "&About..."); m->AppendSeparator(); m->Append(ID_QUIT, "E&xit"); wxMenuBar* b = new wxMenuBar; b->Append(m, "&File"); frame->SetMenuBar(b); frame->CreateStatusBar(); frame->SetStatusText("Faust dsp..."); */ WXUI* ui = new WXUI(); ui->openFrame(frame); DSP.buildUserInterface((UI*)ui); ui->closeFrame(); frame->Show(TRUE); SetTopWindow(frame); snprintf(jackname, 256, "faust_%s", basename(argv[0])); if ((client = jack_client_open(jackname, JackNullOption, NULL)) == 0) { fprintf(stderr, "jack server not running?\n"); return 1; } jack_set_process_callback(client, process, 0); jack_set_sample_rate_callback(client, srate, 0); jack_on_shutdown(client, jack_shutdown, 0); gNumInChans = DSP.getNumInputs(); gNumOutChans = DSP.getNumOutputs(); for (int i = 0; i < gNumInChans; i++) { char buf[256]; snprintf(buf, 256, "in_%d", i); input_ports[i] = jack_port_register(client, buf, JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0); } for (int i = 0; i < gNumOutChans; i++) { char buf[256]; snprintf(buf, 256, "out_%d", i); output_ports[i] = jack_port_register(client, buf, JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); } DSP.init(jack_get_sample_rate(client)); physicalInPorts = (char **)jack_get_ports(client, NULL, NULL, JackPortIsPhysical|JackPortIsInput); physicalOutPorts = (char **)jack_get_ports(client, NULL, NULL, JackPortIsPhysical|JackPortIsOutput); if (jack_activate(client)) { fprintf(stderr, "cannot activate client"); return 1; } if (physicalOutPorts != NULL) { for (int i = 0; i < gNumInChans && physicalOutPorts[i]; i++) { jack_connect(client, physicalOutPorts[i], jack_port_name(input_ports[i])); } free(physicalOutPorts); } if (physicalInPorts != NULL) { for (int i = 0; i < gNumOutChans && physicalInPorts[i]; i++) { jack_connect(client, jack_port_name(output_ports[i]), physicalInPorts[i]); } free(physicalInPorts); } return TRUE; } virtual int OnExit() { jack_deactivate(client); for (int i = 0; i < gNumInChans; i++) { jack_port_unregister(client, input_ports[i]); } for (int i = 0; i < gNumOutChans; i++) { jack_port_unregister(client, output_ports[i]); } jack_client_close(client); return 0; } }; IMPLEMENT_APP(MyApp) faust-0.9.46/architecture/unsupported-arch/pa-wx.cpp0000644000175000017500000005340711702130733022403 0ustar orlareyorlarey#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "wx/wx.h" #include "wx/statbox.h" #include "wx/notebook.h" #include "wx/spinctrl.h" #include // linux : g++ -O3 -lm -lportaudio `wx-config --cflags --libs` ex2.cpp // macosx: g++ karplus-strong.cpp -D__WXMAC__ -DWXMAKINGDLL -lwx_mac-2.4 -ljack -o karplus using namespace std ; #ifdef __GNUC__ //------------------------------------------------------------------- // Generic min and max using gcc extensions //------------------------------------------------------------------- #define max(x,y) ((x)>?(y)) #define min(x,y) ((x)b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a T abs (T a) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<> /****************************************************************************** ******************************************************************************* USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(char* label, float* zone) = 0; virtual void addToggleButton(char* label, float* zone) = 0; virtual void addCheckButton(char* label, float* zone) = 0; virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void openFrameBox(char* label) = 0; virtual void openTabBox(char* label) = 0; virtual void openHorizontalBox(char* label) = 0; virtual void openVerticalBox(char* label) = 0; virtual void closeBox() = 0; virtual void run() {}; void stop() { fStopped = true; } bool stopped() { return fStopped; } }; /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // d�finition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; <> mydsp DSP; /****************************************************************************** ******************************************************************************* PORT AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------------------- // number of physical input and output channels of the PA device //---------------------------------------------------------------------------- int gDevNumInChans; int gDevNumOutChans; //---------------------------------------------------------------------------- // tables of noninterleaved input and output channels for FAUST //---------------------------------------------------------------------------- float* gInChannel[256]; float* gOutChannel[256]; //---------------------------------------------------------------------------- // allocated the noninterleaved input and output channels for FAUST //---------------------------------------------------------------------------- void allocChannels (int size, int numInChan, int numOutChan) { assert (numInChan < 256); assert (numOutChan < 256); for (int i = 0; i < numInChan; i++) { gInChannel[i] = (float*) calloc (size, sizeof(float)); for (int j = 0; j < size; j++) { gInChannel[i][j] = 0.0; } } for (int i = 0; i < numOutChan; i++) { gOutChannel[i] = (float*) calloc (size, sizeof(float)); for (int j = 0; j < size; j++) { gOutChannel[i][j] = 0.0; } } } //---------------------------------------------------------------------------- // Port Audio Callback //---------------------------------------------------------------------------- static int audioCallback(const void *ibuf, void *obuf, unsigned long frames, const PaStreamCallbackTimeInfo*, PaStreamCallbackFlags, void *) { float* fInputBuffer = (float*) ibuf; float* fOutputBuffer = (float*) obuf; // split input samples for (unsigned long s = 0; s < frames; s++) { for (int c = 0; c < gDevNumInChans; c++) { gInChannel[c][s] = fInputBuffer[c + s*gDevNumInChans]; } } // process samples DSP.compute(frames, gInChannel, gOutChannel); // merge output samples for (unsigned long s = 0; s < frames; s++) { for (int c = 0; c < gDevNumOutChans; c++) { fOutputBuffer[c + s*gDevNumOutChans] = gOutChannel[c][s]; } } return 0; } /****************************************************************************** ******************************************************************************* WXWINDOWS USER INTERFACE ******************************************************************************* *******************************************************************************/ // les modes d'insertion #define kNormalState 0 #define kNotebookState 1 #define kAutoPageState 2 #define kProp 0 #define kBorder 5 #define kFlag wxALL|wxGROW // faustButton : a wxButton for FAUST. class faustButton : public wxButton { float* fZone; public : faustButton(wxWindow* parent, const wxString& label, float* zone) : wxButton(parent, -1, label, wxPoint(-1, -1)), fZone(zone) { *fZone = 0.0; } #ifdef MACOSX void clickdown (wxCommandEvent& ev) { *fZone = 1.0; /*printf("click down : zone (at %p) = %f\n", fZone, *fZone); ev.Skip();*/} void clickup (wxCommandEvent& ev) { *fZone = 0.0; /*printf("click up : zone (at %p) = %f\n", fZone, *fZone);ev.Skip();*/ } #else void clickdown (wxCommandEvent& ev) { *fZone = 1.0; /*printf("click down : zone (at %p) = %f\n", fZone, *fZone);*/ ev.Skip();} void clickup (wxCommandEvent& ev) { *fZone = 0.0; /*printf("click up : zone (at %p) = %f\n", fZone, *fZone);*/ ev.Skip(); } #endif private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustButton, wxButton) EVT_LEFT_DOWN(faustButton::clickdown) EVT_LEFT_UP(faustButton::clickup) END_EVENT_TABLE() class faustCheckBox : public wxCheckBox { float* fZone; public : faustCheckBox(wxWindow* parent, const wxString& label, float* zone) : wxCheckBox(parent, -1, label, wxPoint(-1, -1)), fZone(zone) { *fZone = 0.0; } void toggle (wxCommandEvent& ev) { *fZone = (ev.IsChecked()) ? 1.0 : 0.0; //printf("toogle : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustCheckBox, wxCheckBox) EVT_CHECKBOX(-1, faustCheckBox::toggle) END_EVENT_TABLE() class faustHorizontalSlider : public wxSlider { float fStep; float* fZone; public : faustHorizontalSlider(wxWindow* parent, float* zone, float init , float min, float max, float step) : wxSlider(parent, -1, int(init/step), int(min/step), int(max/step), wxDefaultPosition, wxSize(120,30), wxSL_HORIZONTAL), fStep(step), fZone(zone) { *fZone = init; } void update (wxCommandEvent& ev) { *fZone = GetValue()*fStep; //printf("horizontal slider update : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustHorizontalSlider, wxSlider) EVT_SLIDER (-1, faustHorizontalSlider::update) END_EVENT_TABLE() class faustVerticalSlider : public wxSlider { float fStep; float* fZone; public : faustVerticalSlider(wxWindow* parent, float* zone, float init , float min, float max, float step) : wxSlider(parent, -1, int((max+min-init)/step), int(min/step), int(max/step), wxDefaultPosition, wxSize(30,120), wxSL_VERTICAL), fStep(step), fZone(zone) { *fZone = init; } void update (wxCommandEvent& ev) { *fZone = (GetMin()+GetMax()-GetValue())*fStep; //printf("vertical slider update : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustVerticalSlider, wxSlider) EVT_SLIDER (-1, faustVerticalSlider::update) END_EVENT_TABLE() //-------------------------------- // faustSpinCtrl* b = new faustSpinCtrl(topPanel(), zone, init, min, max, step); // wxSpinCtrl* b = new wxSpinCtrl( topPanel(), -1, "", wxPoint(200, 160), wxSize(80, -1) ); // b->SetRange(int(min),int(max)); // b->SetValue(int(init)); class faustSpinCtrl : public wxSpinCtrl { float fStep; float* fZone; public : faustSpinCtrl(wxWindow* parent, float* zone, float init , float min, float max, float step) : wxSpinCtrl(parent), fStep(step), fZone(zone) { SetRange(int(min),int(max)); SetValue(int(init)); *fZone = init; } void update (wxCommandEvent& ev) { *fZone = GetValue(); printf("spin ctrl update : zone (at %p) = %f\n", fZone, *fZone); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(faustSpinCtrl, wxSpinCtrl) EVT_SPINCTRL (-1, faustSpinCtrl::update) END_EVENT_TABLE() class WXUI : public UI // user interface { class State { int const fType; wxWindow* const fPanel; wxSizer* const fSizer; public: State (int t, wxWindow* p, wxSizer* z) : fType(t), fPanel(p), fSizer(z) {} int type() const { return fType; } wxWindow* panel() const { return fPanel; } wxSizer* sizer() const { return fSizer; } }; stack lState; wxFrame* frame; wxSizer* fSizer; // gestion de l'etat courant du constructeur void push (int t, wxWindow* p, wxSizer* z) { printf("push %d of %d, %p, %p\n", lState.size(), t, p, z); lState.push(State(t,p,z)); } int topType() { return lState.top().type(); } wxWindow* topPanel() { return lState.top().panel(); } wxSizer* topSizer() { return lState.top().sizer(); } void pop () { printf("pop %d", lState.size()-1); lState.pop(); printf(" ok\n"); } void openAutoPage(char* label) { if (topType() == kNotebookState) { if (!label) label = ""; wxNotebook* nb = (wxNotebook*) topPanel(); wxPanel* p = new wxPanel( nb, -1 ); wxBoxSizer* z = new wxBoxSizer( wxVERTICAL ); nb->AddPage(p, label); p->SetAutoLayout(TRUE); p->SetSizer(z); push(kAutoPageState, p, z); } } void closeAutoPage() { if (topType() == kAutoPageState) pop(); } void openOrientedBox(char* label, int orientation) { openAutoPage(label); wxSizer* z = (label == 0) ? new wxBoxSizer(orientation) : new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), orientation); topSizer()->Add(z, 1, kFlag, kBorder); push(kNormalState, topPanel(), z); } public: WXUI(){} virtual ~WXUI() {} void openFrame(wxFrame* f) { frame = f; fSizer = new wxBoxSizer(wxVERTICAL); frame->SetSizer(fSizer); push(kNormalState, frame, fSizer); } wxFrame* closeFrame() { fSizer->Fit(frame); fSizer->SetSizeHints(frame); return frame; } virtual void openHorizontalBox(char* label) { openOrientedBox(label, wxHORIZONTAL); } virtual void openVerticalBox(char* label) { openOrientedBox(label, wxVERTICAL); } virtual void openTabBox(char* label) { openAutoPage(label); wxNotebook* nb = new wxNotebook( topPanel(), -1 ); wxNotebookSizer* z = new wxNotebookSizer( nb ); topSizer()->Add(z, 1, kFlag, kBorder); push(kNotebookState, nb, z); } virtual void closeBox() { pop(); closeAutoPage(); } //--------------------------------- les elements ------------------------------------------ virtual void addButton(char* label, float* zone) { openAutoPage(label); faustButton* b = new faustButton(topPanel(), label, zone); topSizer()->Add(b, kProp, kFlag, kBorder); closeAutoPage(); } virtual void addCheckButton(char* label, float* zone) { openAutoPage(label); faustCheckBox* b = new faustCheckBox(topPanel(), label, zone); topSizer()->Add(b, kProp, kFlag, kBorder); closeAutoPage(); } virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) { openAutoPage(label); if (label) { wxSizer* z = new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), wxHORIZONTAL); topSizer()->Add(z, 1, kFlag, kBorder); faustVerticalSlider* b = new faustVerticalSlider(topPanel(), zone, init, min, max, step); b->SetToolTip(label); z->Add(b, 1, kFlag|wxALIGN_CENTER_VERTICAL, kBorder); } else { faustVerticalSlider* b = new faustVerticalSlider(topPanel(), zone, init, min, max, step); topSizer()->Add(b, kProp, kFlag, kBorder); } closeAutoPage(); } virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) { openAutoPage(label); if (label) { wxSizer* z = new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), wxVERTICAL); topSizer()->Add(z, 1, kFlag, kBorder); faustHorizontalSlider* b = new faustHorizontalSlider(topPanel(), zone, init, min, max, step); b->SetToolTip(label); z->Add(b, 1, kFlag|wxALIGN_CENTER_HORIZONTAL, kBorder); } else { faustHorizontalSlider* b = new faustHorizontalSlider(topPanel(), zone, init, min, max, step); topSizer()->Add(b, kProp, kFlag, kBorder); } closeAutoPage(); } virtual void addToggleButton(char* label, float* zone) {} virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) { openAutoPage(label); if (label) { wxSizer* z = new wxStaticBoxSizer(new wxStaticBox(topPanel(), -1, label), wxVERTICAL); topSizer()->Add(z, 0, kFlag, kBorder); faustSpinCtrl* b = new faustSpinCtrl(topPanel(), zone, init, min, max, step); // wxSpinCtrl* b = new wxSpinCtrl( topPanel(), -1, "", wxPoint(200, 160), wxSize(80, -1) ); // b->SetRange(int(min),int(max)); // b->SetValue(int(init)); b->SetToolTip(label); z->Add(b, 0, kFlag, kBorder); } else { faustSpinCtrl* b = new faustSpinCtrl(topPanel(), zone, init, min, max, step); // wxSpinCtrl* b = new wxSpinCtrl( topPanel(), -1, "", wxPoint(200, 160), wxSize(80, -1) ); // b->SetRange(int(min),int(max)); // b->SetValue(int(init)); topSizer()->Add(b, kProp, kFlag, kBorder); } closeAutoPage(); } virtual void openFrameBox(char* label) {} }; /****************************************************************************** ******************************************************************************* WXWINDOWS TOP FRAME ******************************************************************************* *******************************************************************************/ enum { ID_QUIT=1, ID_ABOUT }; class MyFrame : public wxFrame { public: MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) : wxFrame(0, -1, title, pos, size) { wxMenu* m = new wxMenu; m->Append(ID_ABOUT, "&About..."); m->AppendSeparator(); m->Append(ID_QUIT, "E&xit"); wxMenuBar* b = new wxMenuBar; b->Append(m, "&File"); SetMenuBar(b); CreateStatusBar(); SetStatusText("hello..."); } void OnQuit(wxCommandEvent& event) { Close(TRUE); } void OnAbout(wxCommandEvent& event) { wxMessageBox("message 1", "message 2", wxOK|wxICON_INFORMATION); } private: DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(ID_QUIT, MyFrame::OnQuit) EVT_MENU(ID_ABOUT, MyFrame::OnAbout) END_EVENT_TABLE() /****************************************************************************** ******************************************************************************* WXWINDOWS MAIN APPLICATION ******************************************************************************* *******************************************************************************/ // Scan Command Line Arguments class MyApp : public wxApp { PaStream* as; long lopt (char *name, long def) { int i; for (i=0; argv[i]; i++) if (!strcmp(argv[i], name)) return atoi(argv[i+1]); return def; } void pa_error(int err) { if (err != paNoError) { printf( "PortAudio error: %s\n", Pa_GetErrorText( err ) ); exit(1); } } virtual bool OnInit() { MyFrame* frame = new MyFrame(argv[0], wxPoint(50,50), wxSize(-1, -1)); /* wxMenu* m = new wxMenu; m->Append(ID_ABOUT, "&About..."); m->AppendSeparator(); m->Append(ID_QUIT, "E&xit"); wxMenuBar* b = new wxMenuBar; b->Append(m, "&File"); frame->SetMenuBar(b); frame->CreateStatusBar(); frame->SetStatusText("Faust dsp..."); */ WXUI* ui = new WXUI(); ui->openFrame(frame); DSP.buildUserInterface((UI*)ui); ui->closeFrame(); frame->Show(TRUE); SetTopWindow(frame); // initialize portaudio pa_error(Pa_Initialize()); const PaDeviceInfo* idev = Pa_GetDeviceInfo(Pa_GetDefaultInputDevice()); const PaDeviceInfo* odev = Pa_GetDeviceInfo(Pa_GetDefaultOutputDevice()); long srate = (long)lopt(argv, "--frequency", 44100); int fpb = lopt("--buffer", 128); gDevNumInChans = (DSP.getNumInputs() > 0) ? idev->maxInputChannels : 0 ; gDevNumOutChans = (DSP.getNumOutputs() > 0) ? odev->maxOutputChannels : 0; PaStreamParameters inputParameters; PaStreamParameters outputParameters; inputParameters.device = Pa_GetDefaultInputDevice(); inputParameters.sampleFormat = paFloat32; inputParameters.channelCount = gDevNumInChans; inputParameters.hostApiSpecificStreamInfo = 0; outputParameters.device = Pa_GetDefaultOutputDevice(); outputParameters.sampleFormat = paFloat32; outputParameters.channelCount = gDevNumOutChans; outputParameters.hostApiSpecificStreamInfo = 0; PaError err; if ((err = Pa_IsFormatSupported( ((gDevNumInChans > 0) ? &inputParameters : 0), ((gDevNumOutChans > 0) ? &outputParameters : 0), srate)) != 0) { printf("stream format is not supported err = %d\n", err); exit(1); } printf("inchan = %d, outchan = %d, freq = %f\n", gDevNumInChans, gDevNumOutChans, srate); allocChannels(fpb, max(gDevNumInChans, DSP.getNumInputs()), max(gDevNumOutChans, DSP.getNumOutputs())); DSP.init(long(srate)); pa_error(Pa_OpenDefaultStream(&as, gDevNumInChans, gDevNumOutChans, paFloat32, srate, fpb, audioCallback, 0)); Pa_StartStream(as); return TRUE; } virtual int OnExit() { Pa_StopStream(as); Pa_CloseStream(as); return 0; } }; IMPLEMENT_APP(MyApp) faust-0.9.46/architecture/puredata.cpp0000644000175000017500000005702111702130733017645 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2006-2011 Albert Graef --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ************************************************************************ ************************************************************************/ /* Pd architecture file, written by Albert Graef . This was derived from minimal.cpp included in the Faust distribution. Please note that this is to be compiled as a shared library, which is then loaded dynamically by Pd as an external. */ #include #include #include #include using namespace std; // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #warning *** puredata.cpp: NO SSE FLAG (denormals may slow things down) *** #define AVOIDDENORMALS #endif struct Meta { void declare (const char* key, const char* value) {} }; //------------------------------------------------------------------- // Generic min and max using c++ inline //------------------------------------------------------------------- inline int max (unsigned int a, unsigned int b) { return (a>b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a T abs (T a) { return (a> n); } /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } <> /****************************************************************************** ******************************************************************************* ABSTRACT USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /*************************************************************************** Pd UI interface ***************************************************************************/ enum ui_elem_type_t { UI_BUTTON, UI_TOGGLE_BUTTON, UI_CHECK_BUTTON, UI_V_SLIDER, UI_H_SLIDER, UI_NUM_ENTRY, UI_V_BARGRAPH, UI_H_BARGRAPH, UI_END_GROUP, UI_V_GROUP, UI_H_GROUP, UI_T_GROUP }; struct ui_elem_t { ui_elem_type_t type; char *label; float *zone; float init, min, max, step; }; class PdUI : public UI { public: int nelems; ui_elem_t *elems; PdUI(); PdUI(const char *s); virtual ~PdUI(); protected: string path; void add_elem(ui_elem_type_t type, const char *label = NULL); void add_elem(ui_elem_type_t type, const char *label, float *zone); void add_elem(ui_elem_type_t type, const char *label, float *zone, float init, float min, float max, float step); void add_elem(ui_elem_type_t type, const char *label, float *zone, float min, float max); public: virtual void addButton(const char* label, float* zone); virtual void addToggleButton(const char* label, float* zone); virtual void addCheckButton(const char* label, float* zone); virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumDisplay(const char* label, float* zone, int precision); virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max); virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); virtual void openFrameBox(const char* label); virtual void openTabBox(const char* label); virtual void openHorizontalBox(const char* label); virtual void openVerticalBox(const char* label); virtual void closeBox(); virtual void run(); }; static string mangle(const char *s) { const char *s0 = s; string t = ""; if (!s) return t; while (*s) if (isalnum(*s)) t += *(s++); else { const char *s1 = s; while (*s && !isalnum(*s)) ++s; if (s1 != s0 && *s) t += "-"; } return t; } static string normpath(string path) { path = string("/")+path; int pos = path.find("//"); while (pos >= 0) { path.erase(pos, 1); pos = path.find("//"); } return path; } static string pathcat(string path, string label) { if (path.empty()) return normpath(label); else if (label.empty()) return normpath(path); else return normpath(path+"/"+label); } PdUI::PdUI() { nelems = 0; elems = NULL; path = ""; } PdUI::PdUI(const char *s) { nelems = 0; elems = NULL; path = s?s:""; } PdUI::~PdUI() { if (elems) { for (int i = 0; i < nelems; i++) if (elems[i].label) free(elems[i].label); free(elems); } } inline void PdUI::add_elem(ui_elem_type_t type, const char *label) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; string s = pathcat(path, mangle(label)); elems[nelems].type = type; elems[nelems].label = strdup(s.c_str()); elems[nelems].zone = NULL; elems[nelems].init = 0.0; elems[nelems].min = 0.0; elems[nelems].max = 0.0; elems[nelems].step = 0.0; nelems++; } inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; string s = pathcat(path, mangle(label)); elems[nelems].type = type; elems[nelems].label = strdup(s.c_str()); elems[nelems].zone = zone; elems[nelems].init = 0.0; elems[nelems].min = 0.0; elems[nelems].max = 1.0; elems[nelems].step = 1.0; nelems++; } inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone, float init, float min, float max, float step) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; string s = pathcat(path, mangle(label)); elems[nelems].type = type; elems[nelems].label = strdup(s.c_str()); elems[nelems].zone = zone; elems[nelems].init = init; elems[nelems].min = min; elems[nelems].max = max; elems[nelems].step = step; nelems++; } inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone, float min, float max) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; string s = pathcat(path, mangle(label)); elems[nelems].type = type; elems[nelems].label = strdup(s.c_str()); elems[nelems].zone = zone; elems[nelems].init = 0.0; elems[nelems].min = min; elems[nelems].max = max; elems[nelems].step = 0.0; nelems++; } void PdUI::addButton(const char* label, float* zone) { add_elem(UI_BUTTON, label, zone); } void PdUI::addToggleButton(const char* label, float* zone) { add_elem(UI_TOGGLE_BUTTON, label, zone); } void PdUI::addCheckButton(const char* label, float* zone) { add_elem(UI_CHECK_BUTTON, label, zone); } void PdUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { add_elem(UI_V_SLIDER, label, zone, init, min, max, step); } void PdUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { add_elem(UI_H_SLIDER, label, zone, init, min, max, step); } void PdUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { add_elem(UI_NUM_ENTRY, label, zone, init, min, max, step); } // FIXME: addNumDisplay and addTextDisplay not implemented in Faust yet? void PdUI::addNumDisplay(const char* label, float* zone, int precision) {} void PdUI::addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) {} void PdUI::addHorizontalBargraph(const char* label, float* zone, float min, float max) { add_elem(UI_H_BARGRAPH, label, zone, min, max); } void PdUI::addVerticalBargraph(const char* label, float* zone, float min, float max) { add_elem(UI_V_BARGRAPH, label, zone, min, max); } void PdUI::openFrameBox(const char* label) { if (!path.empty()) path += "/"; path += mangle(label); } void PdUI::openTabBox(const char* label) { if (!path.empty()) path += "/"; path += mangle(label); } void PdUI::openHorizontalBox(const char* label) { if (!path.empty()) path += "/"; path += mangle(label); } void PdUI::openVerticalBox(const char* label) { if (!path.empty()) path += "/"; path += mangle(label); } void PdUI::closeBox() { int pos = path.rfind("/"); if (pos < 0) pos = 0; path.erase(pos); } void PdUI::run() {} /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // abstract definition of a signal processor //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; //---------------------------------------------------------------------------- // FAUST generated signal processor //---------------------------------------------------------------------------- <> #include #include #include "m_pd.h" #define faust_setup(name) xfaust_setup(name) #define xfaust_setup(name) name ## _tilde_setup(void) #define sym(name) xsym(name) #define xsym(name) #name // time for "active" toggle xfades in secs #define XFADE_TIME 0.1f static t_class *faust_class; struct t_faust { t_object x_obj; #ifdef __MINGW32__ /* This seems to be necessary as some as yet undetermined Pd routine seems to write past the end of x_obj on Windows. */ int fence; /* dummy field (not used) */ #endif mydsp *dsp; PdUI *ui; string *label; int active, xfade, n_xfade, rate, n_in, n_out; t_sample **inputs, **outputs, **buf; t_outlet *out; t_sample f; }; static t_symbol *s_button, *s_checkbox, *s_vslider, *s_hslider, *s_nentry, *s_vbargraph, *s_hbargraph; static inline void zero_samples(int k, int n, t_sample **out) { for (int i = 0; i < k; i++) #ifdef __STDC_IEC_559__ /* IEC 559 a.k.a. IEEE 754 floats can be initialized faster like this */ memset(out[i], 0, n*sizeof(t_sample)); #else for (int j = 0; j < n; j++) out[i][j] = 0.0f; #endif } static inline void copy_samples(int k, int n, t_sample **out, t_sample **in) { for (int i = 0; i < k; i++) memcpy(out[i], in[i], n*sizeof(t_sample)); } static t_int *faust_perform(t_int *w) { t_faust *x = (t_faust *)(w[1]); int n = (int)(w[2]); if (!x->dsp || !x->buf) return (w+3); AVOIDDENORMALS; if (x->xfade > 0) { float d = 1.0f/x->n_xfade, f = (x->xfade--)*d; d = d/n; x->dsp->compute(n, x->inputs, x->buf); if (x->active) if (x->n_in == x->n_out) /* xfade inputs -> buf */ for (int j = 0; j < n; j++, f -= d) for (int i = 0; i < x->n_out; i++) x->outputs[i][j] = f*x->inputs[i][j]+(1.0f-f)*x->buf[i][j]; else /* xfade 0 -> buf */ for (int j = 0; j < n; j++, f -= d) for (int i = 0; i < x->n_out; i++) x->outputs[i][j] = (1.0f-f)*x->buf[i][j]; else if (x->n_in == x->n_out) /* xfade buf -> inputs */ for (int j = 0; j < n; j++, f -= d) for (int i = 0; i < x->n_out; i++) x->outputs[i][j] = f*x->buf[i][j]+(1.0f-f)*x->inputs[i][j]; else /* xfade buf -> 0 */ for (int j = 0; j < n; j++, f -= d) for (int i = 0; i < x->n_out; i++) x->outputs[i][j] = f*x->buf[i][j]; } else if (x->active) { x->dsp->compute(n, x->inputs, x->buf); copy_samples(x->n_out, n, x->outputs, x->buf); } else if (x->n_in == x->n_out) { copy_samples(x->n_out, n, x->buf, x->inputs); copy_samples(x->n_out, n, x->outputs, x->buf); } else zero_samples(x->n_out, n, x->outputs); return (w+3); } static void faust_dsp(t_faust *x, t_signal **sp) { int n = sp[0]->s_n, sr = (int)sp[0]->s_sr; if (x->rate <= 0) { /* default sample rate is whatever Pd tells us */ PdUI *ui = x->ui; float *z = NULL; if (ui->nelems > 0 && (z = (float*)malloc(ui->nelems*sizeof(float)))) { /* save the current control values */ for (int i = 0; i < ui->nelems; i++) if (ui->elems[i].zone) z[i] = *ui->elems[i].zone; } /* set the proper sample rate; this requires reinitializing the dsp */ x->rate = sr; x->dsp->init(sr); if (z) { /* restore previous control values */ for (int i = 0; i < ui->nelems; i++) if (ui->elems[i].zone) *ui->elems[i].zone = z[i]; free(z); } } if (n > 0) x->n_xfade = (int)(x->rate*XFADE_TIME/n); dsp_add(faust_perform, 2, x, n); for (int i = 0; i < x->n_in; i++) x->inputs[i] = sp[i+1]->s_vec; for (int i = 0; i < x->n_out; i++) x->outputs[i] = sp[x->n_in+i+1]->s_vec; if (x->buf != NULL) for (int i = 0; i < x->n_out; i++) { x->buf[i] = (t_sample*)malloc(n*sizeof(t_sample)); if (x->buf[i] == NULL) { for (int j = 0; j < i; j++) free(x->buf[j]); free(x->buf); x->buf = NULL; break; } } } static int pathcmp(const char *s, const char *t) { int n = strlen(s), m = strlen(t); if (n == 0 || m == 0) return 0; else if (t[0] == '/') return strcmp(s, t); else if (n <= m || s[n-m-1] != '/') return strcmp(s+1, t); else return strcmp(s+n-m, t); } static void faust_any(t_faust *x, t_symbol *s, int argc, t_atom *argv) { if (!x->dsp) return; PdUI *ui = x->ui; if (s == &s_bang) { for (int i = 0; i < ui->nelems; i++) if (ui->elems[i].label && ui->elems[i].zone) { t_atom args[6]; t_symbol *_s; switch (ui->elems[i].type) { case UI_BUTTON: _s = s_button; break; case UI_TOGGLE_BUTTON: case UI_CHECK_BUTTON: _s = s_checkbox; break; case UI_V_SLIDER: _s = s_vslider; break; case UI_H_SLIDER: _s = s_hslider; break; case UI_NUM_ENTRY: _s = s_nentry; break; case UI_V_BARGRAPH: _s = s_vbargraph; break; case UI_H_BARGRAPH: _s = s_hbargraph; break; default: continue; } SETSYMBOL(&args[0], gensym(ui->elems[i].label)); SETFLOAT(&args[1], *ui->elems[i].zone); SETFLOAT(&args[2], ui->elems[i].init); SETFLOAT(&args[3], ui->elems[i].min); SETFLOAT(&args[4], ui->elems[i].max); SETFLOAT(&args[5], ui->elems[i].step); outlet_anything(x->out, _s, 6, args); } } else { const char *label = s->s_name; int count = 0; for (int i = 0; i < ui->nelems; i++) if (ui->elems[i].label && pathcmp(ui->elems[i].label, label) == 0) { if (argc == 0) { if (ui->elems[i].zone) { t_atom arg; SETFLOAT(&arg, *ui->elems[i].zone); outlet_anything(x->out, gensym(ui->elems[i].label), 1, &arg); } ++count; } else if (argc == 1 && (argv[0].a_type == A_FLOAT || argv[0].a_type == A_DEFFLOAT) && ui->elems[i].zone) { float f = atom_getfloat(argv); *ui->elems[i].zone = f; ++count; } else pd_error(x, "[faust] %s: bad control argument: %s", x->label->c_str(), label); } if (count == 0 && strcmp(label, "active") == 0) { if (argc == 0) { t_atom arg; SETFLOAT(&arg, (float)x->active); outlet_anything(x->out, gensym((char*)"active"), 1, &arg); } else if (argc == 1 && (argv[0].a_type == A_FLOAT || argv[0].a_type == A_DEFFLOAT)) { float f = atom_getfloat(argv); x->active = (int)f; x->xfade = x->n_xfade; } } } } static void faust_free(t_faust *x) { if (x->label) delete x->label; if (x->dsp) delete x->dsp; if (x->ui) delete x->ui; if (x->inputs) free(x->inputs); if (x->outputs) free(x->outputs); if (x->buf) { for (int i = 0; i < x->n_out; i++) if (x->buf[i]) free(x->buf[i]); free(x->buf); } } static void *faust_new(t_symbol *s, int argc, t_atom *argv) { t_faust *x = (t_faust*)pd_new(faust_class); int sr = -1; t_symbol *id = NULL; x->active = 1; for (int i = 0; i < argc; i++) if (argv[i].a_type == A_FLOAT || argv[i].a_type == A_DEFFLOAT) sr = (int)argv[i].a_w.w_float; else if (argv[i].a_type == A_SYMBOL || argv[i].a_type == A_DEFSYMBOL) id = argv[i].a_w.w_symbol; x->rate = sr; if (sr <= 0) sr = 44100; x->xfade = 0; x->n_xfade = (int)(sr*XFADE_TIME/64); x->inputs = x->outputs = x->buf = NULL; x->label = new string(sym(mydsp) "~"); x->dsp = new mydsp(); x->ui = new PdUI(id?id->s_name:NULL); if (!x->dsp || !x->ui || !x->label) goto error; if (id) { *x->label += " "; *x->label += id->s_name; } x->n_in = x->dsp->getNumInputs(); x->n_out = x->dsp->getNumOutputs(); if (x->n_in > 0) x->inputs = (t_sample**)malloc(x->n_in*sizeof(t_sample*)); if (x->n_out > 0) { x->outputs = (t_sample**)malloc(x->n_out*sizeof(t_sample*)); x->buf = (t_sample**)malloc(x->n_out*sizeof(t_sample*)); } if ((x->n_in > 0 && x->inputs == NULL) || (x->n_out > 0 && (x->outputs == NULL || x->buf == NULL))) goto error; for (int i = 0; i < x->n_out; i++) x->buf[i] = NULL; x->dsp->init(sr); x->dsp->buildUserInterface(x->ui); for (int i = 0; i < x->n_in; i++) inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal); x->out = outlet_new(&x->x_obj, 0); for (int i = 0; i < x->n_out; i++) outlet_new(&x->x_obj, &s_signal); return (void *)x; error: faust_free(x); x->dsp = NULL; x->ui = NULL; x->inputs = x->outputs = x->buf = NULL; return (void *)x; } extern "C" void faust_setup(mydsp) { t_symbol *s = gensym(sym(mydsp) "~"); faust_class = class_new(s, (t_newmethod)faust_new, (t_method)faust_free, sizeof(t_faust), CLASS_DEFAULT, A_GIMME, A_NULL); class_addmethod(faust_class, (t_method)faust_dsp, gensym((char*)"dsp"), A_NULL); class_addanything(faust_class, faust_any); class_addmethod(faust_class, nullfn, &s_signal, A_NULL); s_button = gensym((char*)"button"); s_checkbox = gensym((char*)"checkbox"); s_vslider = gensym((char*)"vslider"); s_hslider = gensym((char*)"hslider"); s_nentry = gensym((char*)"nentry"); s_vbargraph = gensym((char*)"vbargraph"); s_hbargraph = gensym((char*)"hbargrap"); /* give some indication that we're loaded and ready to go */ mydsp dsp = mydsp(); post("[faust] %s: %d inputs, %d outputs", sym(mydsp) "~", dsp.getNumInputs(), dsp.getNumOutputs()); } faust-0.9.46/architecture/mathdoctexts-fr.txt0000644000175000017500000001423511702130733021211 0ustar orlareyorlarey// Textes en français pour le documentateur mathématique du compilateur Faust. // Tous droits réservés (C) 2009 GRAME, Centre National de Création Musicale // Karim Barkati // Remarque: // les guillemets sont importantes pour visualiser les espaces et les tabulations // qui peuvent se trouver au début ou à la fin des chaînes de caractères. // Metadatas section. :name "nom" :author "auteur" :copyright "copyright" :license "licence" :version "version" // Section Notice. :faustapply "La valeur d'un programme Faust est le résultat de l'application aux signaux d'entrée du transformateur de signaux dénoté par l'expression liée à l'identifiant \texttt{process}. Les signaux sont échantillonnés à la fréquence $f_S$." :faustpresentation "Faust (\emph{Functional Audio Stream}) est un langage de programmation fonctionnelle conçu pour des applications synchrones de traitement du signal en temps réel et de synthèse sonore. Un programme Faust est un ensemble de liaisons entre un identifiant et une expression dénotant un transformateur de signaux. Un signal $s$ de $S$ est une fonction\footnote{Faust suppose que $\forall \, s \in S, \forall \, t \in \mathbb{Z}, s(t) = 0 \mathrm{\ quand\ } t < 0$.} du temps $t \in \mathbb{Z}$ vers des valeurs $s(t) \in \mathbb{R}$, tandis qu'un transformateur de signaux est une fonction de $S^n$ vers $S^m$, pour $n,m\in \mathbb{N}$. Se reporter au manuel de Faust pour des informations complémentaires (\textsf{http://faust.grame.fr})." :causality "Dans ce document, les équations mathématiques dérivées d'une expression Faust ont été normalisées par le compilateur Faust (d'une façon dépendante de l'implémentation)." :blockdiagrams "Un bloc-diagramme est une représentation graphique d'une liaison entre un identifiant Faust I et une expression E\,; chaque graphe est placé dans une boîte étiquetée par I. Les sous-expressions de E sont affichées récursivement tant que l'image tient sur une page." :faustdocdir "Le répertoire \texttt{\faustdocdir/} peut aussi inclure les répertoires suivants\,:" "\begin{itemize}" " \item \texttt{cpp/} pour le code Faust compilé\,; " " \item \texttt{pdf/}, qui contient ce document\,; " " \item \texttt{src/} pour toutes les sources Faust utilisées (y compris les bibliothèques)\,; " " \item \texttt{svg/} pour les blocs-diagrammes, encodés en SVG (\emph{Scalable Vector Graphics}, \textsf{http://www.w3.org/Graphics/SVG/})\,;" " \item \texttt{tex/} pour le source \LaTeX\ de ce document." "\end{itemize}" :foreignfun "Le préfixe "ff" utilisé dans certains noms de fonction indique qu'il s'agit d'une fonction C++ "étrangère" importée dans Faust (\emph{foreign function})." :intcast "$\forall \, x \in \mathbb{R}$, " " \begin{displaymath}" " \mathrm{int}(x) =" " \left\{\begin{array}{cl}" " \lfloor x \rfloor & \mbox{si \,} x > 0 \\" " \lceil x \rceil & \mbox{si \,} x < 0 \\" " 0 & \mbox{si \,} x = 0 \\" " \end{array}\right.." " \end{displaymath}" :operators "Ce document utilise les opérateurs entiers suivants\,: " :optabtitle "\emph{opérateur} & \emph{nom} & \emph{sémantique} \\" :intplus "$i \oplus j$ & addition entière & $\mathrm{normalize}(i+j), \mathrm{~dans~} \mathbb{Z}$ \\" :intminus "$i \ominus j$ & soustraction entière & $\mathrm{normalize}(i-j), \mathrm{~dans~} \mathbb{Z}$ \\" :intmult "$i \odot j$ & multiplication entière & $\mathrm{normalize}(i \cdot j), \mathrm{~dans~} \mathbb{Z}$ \\" :intdiv "$i \oslash j$ & division entière & $\mathrm{normalize}(\mathrm{int}(i/j)), \mathrm{~dans~} \mathbb{Q}$ \\" :integerops "Les opérations entières de Faust sont inspirées de la sémantique des opérations sur la représentation des nombres entiers en complément à deux sur $n$ bits; elles sont des lois de composition interne sur le sous-ensemble $[\,-2^{n-1}, 2^{n-1}\!-\!1\,]$ de $\mathbb{Z}$, avec $n = 32$. Pour toute opération entière binaire $\times$ sur $\mathbb{Z}$, l'opération $\otimes$ est définie comme~: $i \otimes j = \mathrm{normalize}(i \times j)$, avec " "$$\mathrm{normalize}(i) = i - N\cdot\mathrm{sign}(i) \cdot \left\lfloor \frac{|i|+N/2+(\mathrm{sign}(i)\!-\!1)/2}{N} \right\rfloor , $$" " où $N = 2^n$ et $\mathrm{sign}(i) = 0 \mathrm{\ si\ } i=0 \mathrm{\ et\ } i / |i| \mathrm{\ sinon}.$" "Les opérations entières unaires sont définies de la même façon." // Section Auto-documentation. :thisdoc "Ce document fournit une description mathématique du texte du programme Faust enregistré dans le fichier \texttt{\faustfilename}. Pour davantage d'informations, se reporter à la notice, section\,\ref{notice} (page\,\pageref{notice})." :autoeqntitle "\section{Définition mathématique de \texttt{process}}" "\label{equation}" :autoeqntext "Le programme \emph{\faustprogname} évalue le transformateur de signaux dénoté par \texttt{process}, mathématiquement définit comme suit\,:" :autodgmtitle "\section{Bloc-diagramme de \texttt{process}}" "\label{diagram}" :autodgmtext "La figure\,\ref{figure1} (page\,\pageref{figure1}) représente le bloc-diagramme de \texttt{process}." :autontctitle "\section{Notice}" "\label{notice}" :autontctext "Ce document a été généré par Faust version \faustversion\ (\faustdocdate)." :autolsttitle1 "\section{Code Faust}" "\label{listing}" :autolsttext1 "Cette section contient le code Faust utilisé pour générer ce document." :autolsttitle2 "\section{Code Faust}" "\label{listing}" :autolsttext2 "Cette section contient le code des différents fichiers Faust qui ont été utilisés pour générer ce document." // Section Titres des équations. :inputsigtitle1 "Signal d'entrée" :inputsigtitle2 "Signaux d'entrée" :outputsigtitle1 "Signal de sortie" :outputsigtitle2 "Signaux de sortie" :constsigtitle1 "Constante" :constsigtitle2 "Constantes" :uisigtitle1 "Signal d'interface-utilisateur entrant" :uisigtitle2 "Signaux d'interface-utilisateur entrants" :intermedsigtitle1 "Signal intermédiaire" :intermedsigtitle2 "Signaux intermédiaires" :lateqcomment "% Ensemble d'équations Faust (correspondant à une balise )." :emptyformulafield "aucun" :defaultvalue "valeur par défaut" :suchthat "avec" :and "et" :for "pour" :rootlevel "(à la racine)" :dgmcaption "Bloc-diagramme de" faust-0.9.46/architecture/pa-gtk.cpp0000644000175000017500000001104611702130733017220 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include "gui/FUI.h" #include "misc.h" #include "audio/portaudio-dsp.h" #include "gui/faustgtk.h" #ifdef OSCCTRL #include "gui/OSCUI.h" #endif /**************************BEGIN USER SECTION **************************/ /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; list GUI::fGuiList; //------------------------------------------------------------------------- // MAIN //------------------------------------------------------------------------- #if 0 int main(int argc, char *argv[] ) { gtk_init (&argc, &argv); const char* name = basename(argv[0]); char rcfilename[256]; char* home = getenv("HOME"); snprintf(rcfilename, 255, "%s/.%src", home, basename(argv[0])); GUI* interface = new GTKUI (name, &argc, &argv); DSP.buildUserInterface(interface); #ifdef OSCCTRL GUI* oscinterface = new OSCUI(jname, argc, argv); DSP.buildUserInterface(oscinterface); #endif long srate = (long)lopt(argv, "--frequency", 44100); int fpb = lopt(argv, "--buffer", 128); portaudio audio (srate, fpb); audio.init(name, &DSP); //interface->recallState(rcfilename); audio.start(); #ifdef OSCCTRL oscinterface->run(); #endif interface->run(); audio.stop(); //interface->saveState(rcfilename); return 0; } #endif long lopt(char *argv[], const char *name, long def) { int i; for (i=0; argv[i]; i++) if (!strcmp(argv[i], name)) return atoi(argv[i+1]); return def; } int main(int argc, char *argv[]) { char appname[256]; char rcfilename[256]; char* home = getenv("HOME"); snprintf(appname, 255, "%s", basename(argv[0])); snprintf(rcfilename, 255, "%s/.%src", home, appname); GUI* interface = new GTKUI (appname, &argc, &argv); FUI* finterface = new FUI(); DSP.buildUserInterface(interface); DSP.buildUserInterface(finterface); #ifdef OSCCTRL GUI* oscinterface = new OSCUI(appname, argc, argv); DSP.buildUserInterface(oscinterface); #endif long srate = (long)lopt(argv, "--frequency", 44100); int fpb = lopt(argv, "--buffer", 128); portaudio audio (srate, fpb); audio.init(appname, &DSP); finterface->recallState(rcfilename); audio.start(); #ifdef OSCCTRL oscinterface->run(); #endif interface->run(); audio.stop(); finterface->saveState(rcfilename); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/iphone-cocoa.cpp0000644000175000017500000005115511702130733020406 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ /* link with */ #include /* link with */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> /****************************************************************************** ******************************************************************************* USER INTERFACE ******************************************************************************* *******************************************************************************/ #include "CocoaUI.h" #include "audio/dsp.h" #include "misc.h" /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; /****************************************************************************** ******************************************************************************* COREAUDIO INTERFACE ******************************************************************************* *******************************************************************************/ #define MAX_CHANNELS 256 #define OPEN_ERR -1 #define NO_ERR 0 class TiPhoneCoreAudioRenderer { private: AudioUnit fAUHAL; int fDevNumInChans; int fDevNumOutChans; int fHWNumInChans; int fHWNumOutChans; AudioBufferList* fCAInputData; float* fInChannel[MAX_CHANNELS]; float* fOutChannel[MAX_CHANNELS]; static OSStatus Render(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData); static void InterruptionListener(void *inClientData, UInt32 inInterruption); public: TiPhoneCoreAudioRenderer(int input, int output) :fDevNumInChans(input), fDevNumOutChans(output), fCAInputData(NULL) { memset(fInChannel, 0, sizeof(float*) * MAX_CHANNELS); memset(fOutChannel, 0, sizeof(float*) * MAX_CHANNELS); for (int i = 0; i < fDevNumInChans; i++) { fInChannel[i] = new float[8192]; } for (int i = 0; i < fDevNumOutChans; i++) { fOutChannel[i] = new float[8192]; } } virtual ~TiPhoneCoreAudioRenderer() { for (int i = 0; i < fDevNumInChans; i++) { delete[] fInChannel[i]; } for (int i = 0; i < fDevNumOutChans; i++) { delete[] fOutChannel[i]; } if (fCAInputData) { for (int i = 0; i < fDevNumInChans; i++) { free(fCAInputData->mBuffers[i].mData); } free(fCAInputData); } } int Open(int bufferSize, int sampleRate); int Close(); int Start(); int Stop(); }; typedef TiPhoneCoreAudioRenderer * TiPhoneCoreAudioRendererPtr; static void PrintStreamDesc(AudioStreamBasicDescription *inDesc) { printf("- - - - - - - - - - - - - - - - - - - -\n"); printf(" Sample Rate:%f\n", inDesc->mSampleRate); printf(" Format ID:%.*s\n", (int) sizeof(inDesc->mFormatID), (char*)&inDesc->mFormatID); printf(" Format Flags:%lX\n", inDesc->mFormatFlags); printf(" Bytes per Packet:%ld\n", inDesc->mBytesPerPacket); printf(" Frames per Packet:%ld\n", inDesc->mFramesPerPacket); printf(" Bytes per Frame:%ld\n", inDesc->mBytesPerFrame); printf(" Channels per Frame:%ld\n", inDesc->mChannelsPerFrame); printf(" Bits per Channel:%ld\n", inDesc->mBitsPerChannel); printf("- - - - - - - - - - - - - - - - - - - -\n"); } static void printError(OSStatus err) { switch (err) { case kAudioConverterErr_FormatNotSupported: printf("error code : kAudioConverterErr_FormatNotSupported\n"); break; case kAudioConverterErr_OperationNotSupported: printf("error code : kAudioConverterErr_OperationNotSupported\n"); break; case kAudioConverterErr_PropertyNotSupported: printf("error code : kAudioConverterErr_PropertyNotSupported\n"); break; case kAudioConverterErr_InvalidInputSize: printf("error code : kAudioConverterErr_InvalidInputSize\n"); break; case kAudioConverterErr_InvalidOutputSize: printf("error code : kAudioConverterErr_InvalidOutputSize\n"); break; case kAudioConverterErr_UnspecifiedError: printf("error code : kAudioConverterErr_UnspecifiedError\n"); break; case kAudioConverterErr_BadPropertySizeError: printf("error code : kAudioConverterErr_BadPropertySizeError\n"); break; case kAudioConverterErr_RequiresPacketDescriptionsError: printf("error code : kAudioConverterErr_RequiresPacketDescriptionsError\n"); break; case kAudioConverterErr_InputSampleRateOutOfRange: printf("error code : kAudioConverterErr_InputSampleRateOutOfRange\n"); break; case kAudioConverterErr_OutputSampleRateOutOfRange: printf("error code : kAudioConverterErr_OutputSampleRateOutOfRange\n"); break; default: printf("error code : unknown\n"); break; } } OSStatus TiPhoneCoreAudioRenderer::Render(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32, UInt32 inNumberFrames, AudioBufferList *ioData) { TiPhoneCoreAudioRendererPtr renderer = (TiPhoneCoreAudioRendererPtr)inRefCon; AudioUnitRender(renderer->fAUHAL, ioActionFlags, inTimeStamp, 1, inNumberFrames, renderer->fCAInputData); float coef = float(LONG_MAX); float inv_coef = 1.f/float(LONG_MAX); if (renderer->fHWNumInChans == 1) { // Mono ==> stereo for (int chan = 0; chan < renderer->fDevNumInChans; chan++) { for (int frame = 0; frame < inNumberFrames; frame++) { renderer->fInChannel[chan][frame] = float(((int*)renderer->fCAInputData->mBuffers[0].mData)[frame]) * inv_coef; } } } else { for (int chan = 0; chan < renderer->fDevNumInChans; chan++) { for (int frame = 0; frame < inNumberFrames; frame++) { renderer->fInChannel[chan][frame] = float(((int*)renderer->fCAInputData->mBuffers[chan].mData)[frame]) * inv_coef; } } } DSP.compute((int)inNumberFrames, renderer->fInChannel, renderer->fOutChannel); for (int chan = 0; chan < renderer->fDevNumOutChans; chan++) { for (int frame = 0; frame < inNumberFrames; frame++) { ((long*)ioData->mBuffers[chan].mData)[frame] = long(renderer->fOutChannel[chan][frame] * coef); } } return 0; } void TiPhoneCoreAudioRenderer::InterruptionListener(void *inClientData, UInt32 inInterruption) { TiPhoneCoreAudioRenderer *obj = (TiPhoneCoreAudioRenderer*)inClientData; printf("Session interrupted! --- %s ---", inInterruption == kAudioSessionBeginInterruption ? "Begin Interruption" : "End Interruption"); if (inInterruption == kAudioSessionEndInterruption) { // make sure we are again the active session AudioSessionSetActive(true); AudioOutputUnitStart(obj->fAUHAL); } if (inInterruption == kAudioSessionBeginInterruption) { AudioOutputUnitStop(obj->fAUHAL); } } int TiPhoneCoreAudioRenderer::Open(int bufferSize, int samplerate) { OSStatus err1; UInt32 outSize; UInt32 enableIO; AudioStreamBasicDescription srcFormat, dstFormat; printf("OpenDefault fDevNumInChans = %ld fDevNumOutChans = %ld bufferSize = %ld samplerate = %ld\n", fDevNumInChans, fDevNumOutChans, bufferSize, samplerate); // Initialize and configure the audio session err1 = AudioSessionInitialize(NULL, NULL, InterruptionListener, this); if (err1 != noErr) { printf("Couldn't initialize audio session\n"); printError(err1); return OPEN_ERR; } err1 = AudioSessionSetActive(true); if (err1 != noErr) { printf("Couldn't set audio session active\n"); printError(err1); return OPEN_ERR; } UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord; err1 = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(audioCategory), &audioCategory); if (err1 != noErr) { printf("Couldn't set audio category\n"); printError(err1); return OPEN_ERR; } //err1 = AudioSessionAddPropertyListener(kAudioSessionProperty_AudioRouteChange, propListener, self), "couldn't set property listener"); Float64 hwSampleRate; outSize = sizeof(hwSampleRate); err1 = AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareSampleRate, &outSize, &hwSampleRate); if (err1 != noErr) { printf("Couldn't get hw sample rate\n"); printError(err1); return OPEN_ERR; } else { printf("Get hw sample rate %f\n", hwSampleRate); } Float32 hwBufferSize; outSize = sizeof(hwBufferSize); err1 = AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareIOBufferDuration, &outSize, &hwBufferSize); if (err1 != noErr) { printf("Couldn't get hw buffer duration\n"); printError(err1); return OPEN_ERR; } else { printf("Get hw buffer duration %f\n", hwBufferSize); } outSize = sizeof(fHWNumInChans); err1 = AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareInputNumberChannels, &outSize, &fHWNumInChans); if (err1 != noErr) { printf("Couldn't get hw input channels\n"); printError(err1); return OPEN_ERR; } else { printf("Get hw input channels %d\n", fHWNumInChans); } outSize = sizeof(fHWNumOutChans); err1 = AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareOutputNumberChannels, &outSize, &fHWNumOutChans); if (err1 != noErr) { printf("Couldn't get hw output channels\n"); printError(err1); return OPEN_ERR; } else { printf("Get hw output channels %d\n", fHWNumOutChans); } Float32 preferredBufferSize = float(bufferSize) / float(samplerate); printf("preferredBufferSize %f \n", preferredBufferSize); err1 = AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareIOBufferDuration, sizeof(preferredBufferSize), &preferredBufferSize); if (err1 != noErr) { printf("Couldn't set i/o buffer duration\n"); printError(err1); return OPEN_ERR; } Float64 preferredSamplerate = float(samplerate); err1 = AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareSampleRate, sizeof(preferredSamplerate), &preferredSamplerate); if (err1 != noErr) { printf("Couldn't set i/o sample rate\n"); printError(err1); return OPEN_ERR; } // AUHAL AudioComponentDescription cd = {kAudioUnitType_Output, kAudioUnitSubType_RemoteIO, kAudioUnitManufacturer_Apple, 0, 0}; AudioComponent HALOutput = AudioComponentFindNext(NULL, &cd); err1 = AudioComponentInstanceNew(HALOutput, &fAUHAL); if (err1 != noErr) { printf("Error calling OpenAComponent\n"); printError(err1); goto error; } enableIO = 1; err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output, 0, &enableIO, sizeof(enableIO)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output\n"); printError(err1); goto error; } enableIO = 1; err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input, 1, &enableIO, sizeof(enableIO)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input\n"); printError(err1); goto error; } UInt32 maxFPS; outSize = sizeof(maxFPS); err1 = AudioUnitGetProperty(fAUHAL, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 0, &maxFPS, &outSize); if (err1 != noErr) { printf("Couldn't get kAudioUnitProperty_MaximumFramesPerSlice\n"); printError(err1); goto error; } else { printf("Get kAudioUnitProperty_MaximumFramesPerSlice %d\n", maxFPS); } err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 1, (UInt32*)&bufferSize, sizeof(UInt32)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_MaximumFramesPerSlice\n"); printError(err1); goto error; } err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 0, (UInt32*)&bufferSize, sizeof(UInt32)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_MaximumFramesPerSlice\n"); printError(err1); goto error; } err1 = AudioUnitInitialize(fAUHAL); if (err1 != noErr) { printf("Cannot initialize AUHAL unit\n"); printError(err1); goto error; } // Setting format if (fDevNumInChans > 0) { outSize = sizeof(AudioStreamBasicDescription); err1 = AudioUnitGetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 1, &srcFormat, &outSize); if (err1 != noErr) { printf("Error calling AudioUnitGetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Output\n"); printError(err1); } PrintStreamDesc(&srcFormat); srcFormat.mFormatID = kAudioFormatLinearPCM; srcFormat.mFormatFlags = kAudioFormatFlagsCanonical | kLinearPCMFormatFlagIsNonInterleaved; srcFormat.mBytesPerPacket = sizeof(AudioUnitSampleType); srcFormat.mFramesPerPacket = 1; srcFormat.mBytesPerFrame = sizeof(AudioUnitSampleType); srcFormat.mChannelsPerFrame = fDevNumInChans; srcFormat.mBitsPerChannel = 32; PrintStreamDesc(&srcFormat); err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 1, &srcFormat, sizeof(AudioStreamBasicDescription)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Output\n"); printError(err1); } } if (fDevNumOutChans > 0) { outSize = sizeof(AudioStreamBasicDescription); err1 = AudioUnitGetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &dstFormat, &outSize); if (err1 != noErr) { printf("Error calling AudioUnitGetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Input\n"); printError(err1); } PrintStreamDesc(&dstFormat); dstFormat.mFormatID = kAudioFormatLinearPCM; dstFormat.mFormatFlags = kAudioFormatFlagsCanonical | kLinearPCMFormatFlagIsNonInterleaved; dstFormat.mBytesPerPacket = sizeof(AudioUnitSampleType); dstFormat.mFramesPerPacket = 1; dstFormat.mBytesPerFrame = sizeof(AudioUnitSampleType); dstFormat.mChannelsPerFrame = fDevNumOutChans; dstFormat.mBitsPerChannel = 32; PrintStreamDesc(&dstFormat); err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &dstFormat, sizeof(AudioStreamBasicDescription)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_StreamFormat kAudioUnitScope_Input\n"); printError(err1); } } if (fDevNumInChans > 0 && fDevNumOutChans == 0) { AURenderCallbackStruct output; output.inputProc = Render; output.inputProcRefCon = this; err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, 0, &output, sizeof(output)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_SetRenderCallback 1\n"); printError(err1); goto error; } } else { AURenderCallbackStruct output; output.inputProc = Render; output.inputProcRefCon = this; err1 = AudioUnitSetProperty(fAUHAL, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, 0, &output, sizeof(output)); if (err1 != noErr) { printf("Error calling AudioUnitSetProperty - kAudioUnitProperty_SetRenderCallback 0\n"); printError(err1); goto error; } } // Prepare buffers fCAInputData = (AudioBufferList*)malloc(sizeof(UInt32) + fDevNumInChans * sizeof(AudioBuffer)); fCAInputData->mNumberBuffers = fDevNumInChans; for (int i = 0; i < fDevNumInChans; i++) { fCAInputData->mBuffers[i].mNumberChannels = 1; fCAInputData->mBuffers[i].mDataByteSize = bufferSize * sizeof(int); fCAInputData->mBuffers[i].mData = malloc(bufferSize * sizeof(int)); } return NO_ERR; error: AudioUnitUninitialize(fAUHAL); AudioComponentInstanceDispose(fAUHAL); return OPEN_ERR; } int TiPhoneCoreAudioRenderer::Close() { AudioUnitUninitialize(fAUHAL); AudioComponentInstanceDispose(fAUHAL); return NO_ERR; } int TiPhoneCoreAudioRenderer::Start() { AudioSessionSetActive(true); OSStatus err = AudioOutputUnitStart(fAUHAL); if (err != noErr) { printf("Error while opening device : device open error \n"); return OPEN_ERR; } else { return NO_ERR; } } int TiPhoneCoreAudioRenderer::Stop() { OSStatus err = AudioOutputUnitStop(fAUHAL); if (err != noErr) { printf("Error while closing device : device close error \n"); return OPEN_ERR; } else { return NO_ERR; } } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/csound.cpp0000644000175000017500000002425711702130733017340 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2010-2011 V. Lazzarini and GRAME --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ //============================================================================== // // CSOUND architecture file for FAUST // Y. Orlarey & V. Lazzarini // // Usage : faust -uim -a csound.cpp .dsp -o .cpp // g++ -O3 -DOPCODE_NAME= -c .cpp -o .o // ld -E --shared .o -o .so // // History : // - 28/04/09 : first version // - 29/04/09 : dynamic allocation // //============================================================================== #include #include #include "csdl.h" /* CSOUND plugin API header */ // used to transform a symbol in a string #define sym(name) xsym(name) #define xsym(name) #name // make sure we use csound floats #define FAUSTFLOAT MYFLT // we require macro declarations #define FAUST_UIMACROS // but we will ignore most of them #define FAUST_ADDBUTTON(l,f) #define FAUST_ADDCHECKBOX(l,f) #define FAUST_ADDVERTICALSLIDER(l,f,i,a,b,s) #define FAUST_ADDHORIZONTALSLIDER(l,f,i,a,b,s) #define FAUST_ADDNUMENTRY(l,f,i,a,b,s) #define FAUST_ADDVERTICALBARGRAPH(l,f,a,b) #define FAUST_ADDHORIZONTALBARGRAPH(l,f,a,b) #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) using namespace std; // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> /** * We will ignore metadata declarations */ struct Meta { void declare (const char* key, const char* value) { } }; /** * Abstract Definition of a user interface */ class UI { public: virtual ~UI() {} // -- active widgets virtual void addButton(const char* label, FAUSTFLOAT* zone) = 0; virtual void addToggleButton(const char* label, FAUSTFLOAT* zone) = 0; virtual void addCheckButton(const char* label, FAUSTFLOAT* zone) = 0; virtual void addVerticalSlider(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step) = 0; virtual void addHorizontalSlider(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step) = 0; virtual void addNumEntry(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, FAUSTFLOAT* zone, int precision) {} virtual void addTextDisplay(const char* label, FAUSTFLOAT* zone, char* names[], FAUSTFLOAT min, FAUSTFLOAT max) {} virtual void addHorizontalBargraph(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT min, FAUSTFLOAT max) {} virtual void addVerticalBargraph(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT min, FAUSTFLOAT max) {} // -- widget's layouts virtual void openFrameBox(const char* label) {} virtual void openTabBox(const char* label) {} virtual void openHorizontalBox(const char* label) {} virtual void openVerticalBox(const char* label) {} virtual void closeBox() {} virtual void declare(FAUSTFLOAT* zone, const char* key, const char* value) {} }; /** * A UI that simply collects the active zones in a vector * and provides a method to copy the csound controls */ class CSUI : public UI { vector vZone; public: // -- active widgets virtual void addButton(const char* label, FAUSTFLOAT* zone) { vZone.push_back(zone); } virtual void addToggleButton(const char* label, FAUSTFLOAT* zone) { vZone.push_back(zone); } virtual void addCheckButton(const char* label, FAUSTFLOAT* zone) { vZone.push_back(zone); } virtual void addVerticalSlider(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step) { vZone.push_back(zone); } virtual void addHorizontalSlider(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step) { vZone.push_back(zone); } virtual void addNumEntry(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step) { vZone.push_back(zone); } void copyfrom(MYFLT* mem[]) { for (unsigned int i=0; i> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ struct dataspace { OPDS h; /* basic attributes */ MYFLT* aout[FAUST_OUTPUTS]; /* output buffers */ MYFLT* ain[FAUST_INPUTS]; /* input buffers */ MYFLT* ktl[FAUST_ACTIVES]; /* controls */ dsp* DSP; /* the Faust generated object */ CSUI* interface; /* do the mapping between CSound controls and DSP fields */ AUXCH dspmem; /* aux memory allocated once to store the DSP object */ AUXCH intmem; /* aux memory allocated once to store the interface object */ }; /** * Creates a "aaakkkk" CSound description string. Note that * these string will never be released. Potential memory leak */ static char* makeDescription(int numa, int numk=0) { char* str = (char*)malloc(numa+numk+1); // NEED TO BE CHANGED ? if (str) { for (int i=0; idspmem.auxp == NULL) csound->AuxAlloc(csound, sizeof(mydsp), &p->dspmem); if(p->intmem.auxp == NULL) csound->AuxAlloc(csound, sizeof(CSUI), &p->intmem); p->DSP = new (p->dspmem.auxp) mydsp; p->interface = new (p->intmem.auxp) CSUI; if ((p->DSP == 0) | (p->interface == 0)) return NOTOK; p->DSP->init((int)csound->GetSr(csound)); p->DSP->buildUserInterface(p->interface); return OK; } /** * CSound callback that process the samples by updating * the controls values and calling the compute() method * of the DSP object. (Assume MYFLT = FAUSTFLOAT) */ static int process32bits(CSOUND *csound, dataspace *p) { AVOIDDENORMALS; // update all the control values p->interface->copyfrom(p->ktl); p->DSP->compute(csound->GetKsmps(csound), p->ain, p->aout); return OK; } extern "C" { static OENTRY localops[] = { {(char*)sym(OPCODE_NAME), sizeof(dataspace),5,makeDescription(FAUST_OUTPUTS), makeDescription(FAUST_INPUTS,FAUST_ACTIVES), (SUBR)init, NULL,(SUBR)process32bits } }; LINKAGE } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/q.cpp0000644000175000017500000003162511702130733016302 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2006-2011 Albert Graef --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ************************************************************************ ************************************************************************/ /* Q architecture file. Derived from minimal.cpp included in the Faust distribution. Please note that this is to be compiled as a shared library, which is then loaded dynamically by Q's faust module. */ #include #include struct Meta { void declare (const char* key, const char* value) { } }; //------------------------------------------------------------------- // Generic min and max using c++ inline //------------------------------------------------------------------- inline int max (unsigned int a, unsigned int b) { return (a>b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a T abs (T a) { return (a> n); } /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } <> /****************************************************************************** ******************************************************************************* ABSTRACT USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(char* label, float* zone) = 0; virtual void addToggleButton(char* label, float* zone) = 0; virtual void addCheckButton(char* label, float* zone) = 0; virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumDisplay(char* label, float* zone, int precision) = 0; virtual void addTextDisplay(char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(char* label, float* zone, float min, float max) = 0; virtual void openFrameBox(char* label) = 0; virtual void openTabBox(char* label) = 0; virtual void openHorizontalBox(char* label) = 0; virtual void openVerticalBox(char* label) = 0; virtual void closeBox() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /*************************************************************************** Q UI interface ***************************************************************************/ enum ui_elem_type_t { UI_BUTTON, UI_TOGGLE_BUTTON, UI_CHECK_BUTTON, UI_V_SLIDER, UI_H_SLIDER, UI_NUM_ENTRY, UI_V_BARGRAPH, UI_H_BARGRAPH, UI_END_GROUP, UI_V_GROUP, UI_H_GROUP, UI_T_GROUP }; struct ui_elem_t { ui_elem_type_t type; char *label; float *zone; void *ref; float init, min, max, step; }; class QUI : public UI { public: int nelems; ui_elem_t *elems; QUI(); virtual ~QUI(); protected: void add_elem(ui_elem_type_t type, char *label = NULL); void add_elem(ui_elem_type_t type, char *label, float *zone); void add_elem(ui_elem_type_t type, char *label, float *zone, float init, float min, float max, float step); void add_elem(ui_elem_type_t type, char *label, float *zone, float min, float max); public: virtual void addButton(char* label, float* zone); virtual void addToggleButton(char* label, float* zone); virtual void addCheckButton(char* label, float* zone); virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step); virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step); virtual void addNumDisplay(char* label, float* zone, int precision); virtual void addTextDisplay(char* label, float* zone, char* names[], float min, float max); virtual void addHorizontalBargraph(char* label, float* zone, float min, float max); virtual void addVerticalBargraph(char* label, float* zone, float min, float max); virtual void openFrameBox(char* label); virtual void openTabBox(char* label); virtual void openHorizontalBox(char* label); virtual void openVerticalBox(char* label); virtual void closeBox(); virtual void run(); }; QUI::QUI() { nelems = 0; elems = NULL; } QUI::~QUI() { if (elems) free(elems); } inline void QUI::add_elem(ui_elem_type_t type, char *label) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; elems[nelems].type = type; elems[nelems].label = label; elems[nelems].zone = NULL; elems[nelems].ref = NULL; elems[nelems].init = 0.0; elems[nelems].min = 0.0; elems[nelems].max = 0.0; elems[nelems].step = 0.0; nelems++; } inline void QUI::add_elem(ui_elem_type_t type, char *label, float *zone) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; elems[nelems].type = type; elems[nelems].label = label; elems[nelems].zone = zone; elems[nelems].ref = NULL; elems[nelems].init = 0.0; elems[nelems].min = 0.0; elems[nelems].max = 0.0; elems[nelems].step = 0.0; nelems++; } inline void QUI::add_elem(ui_elem_type_t type, char *label, float *zone, float init, float min, float max, float step) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; elems[nelems].type = type; elems[nelems].label = label; elems[nelems].zone = zone; elems[nelems].ref = NULL; elems[nelems].init = init; elems[nelems].min = min; elems[nelems].max = max; elems[nelems].step = step; nelems++; } inline void QUI::add_elem(ui_elem_type_t type, char *label, float *zone, float min, float max) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; elems[nelems].type = type; elems[nelems].label = label; elems[nelems].zone = zone; elems[nelems].ref = NULL; elems[nelems].init = 0.0; elems[nelems].min = min; elems[nelems].max = max; elems[nelems].step = 0.0; nelems++; } void QUI::addButton(char* label, float* zone) { add_elem(UI_BUTTON, label, zone); } void QUI::addToggleButton(char* label, float* zone) { add_elem(UI_TOGGLE_BUTTON, label, zone); } void QUI::addCheckButton(char* label, float* zone) { add_elem(UI_CHECK_BUTTON, label, zone); } void QUI::addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) { add_elem(UI_V_SLIDER, label, zone, init, min, max, step); } void QUI::addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) { add_elem(UI_H_SLIDER, label, zone, init, min, max, step); } void QUI::addNumEntry(char* label, float* zone, float init, float min, float max, float step) { add_elem(UI_NUM_ENTRY, label, zone, init, min, max, step); } // FIXME: addNumDisplay and addTextDisplay not implemented in Faust yet? void QUI::addNumDisplay(char* label, float* zone, int precision) {} void QUI::addTextDisplay(char* label, float* zone, char* names[], float min, float max) {} void QUI::addHorizontalBargraph(char* label, float* zone, float min, float max) { add_elem(UI_H_BARGRAPH, label, zone, min, max); } void QUI::addVerticalBargraph(char* label, float* zone, float min, float max) { add_elem(UI_V_BARGRAPH, label, zone, min, max); } void QUI::openFrameBox(char* label) {} void QUI::openTabBox(char* label) { add_elem(UI_T_GROUP, label); } void QUI::openHorizontalBox(char* label) { add_elem(UI_H_GROUP, label); } void QUI::openVerticalBox(char* label) { add_elem(UI_V_GROUP, label); } void QUI::closeBox() { add_elem(UI_END_GROUP); } void QUI::run() {} /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // abstract definition of a signal processor //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; //---------------------------------------------------------------------------- // FAUST generated signal processor //---------------------------------------------------------------------------- <> /* The class factory, used to create and destroy mydsp objects in the client. Implemented using C linkage to facilitate dlopen access. */ extern "C" dsp *newdsp() { mydsp *d = new mydsp(); return d; } extern "C" void deldsp(dsp* d) { delete d; } faust-0.9.46/architecture/jack-qt.cpp0000644000175000017500000000705511702130733017374 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include "gui/FUI.h" #include "misc.h" #include "gui/faustqt.h" #include "audio/jack-dsp.h" #ifdef OSCCTRL #include "gui/OSCUI.h" #endif /**************************BEGIN USER SECTION **************************/ /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; list GUI::fGuiList; //------------------------------------------------------------------------- // MAIN //------------------------------------------------------------------------- int main(int argc, char *argv[]) { char appname[256]; char rcfilename[256]; char* home = getenv("HOME"); snprintf(appname, 255, "%s", basename(argv[0])); snprintf(rcfilename, 255, "%s/.%src", home, appname); GUI* interface = new QTGUI(argc, argv); FUI* finterface = new FUI(); DSP.buildUserInterface(interface); DSP.buildUserInterface(finterface); #ifdef OSCCTRL GUI* oscinterface = new OSCUI(appname, argc, argv); DSP.buildUserInterface(oscinterface); #endif jackaudio audio; audio.init(appname, &DSP); finterface->recallState(rcfilename); audio.start(); #ifdef OSCCTRL oscinterface->run(); #endif interface->run(); audio.stop(); finterface->saveState(rcfilename); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/music.lib0000644000175000017500000003231611702130733017144 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST library file Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ************************************************************************ ************************************************************************/ declare name "Music Library"; declare author "GRAME"; declare copyright "GRAME"; declare version "1.0"; declare license "LGPL"; import("math.lib"); //----------------------------------------------- // DELAY LINE //----------------------------------------------- frac(n) = n-int(n); index(n) = &(n-1) ~ +(1); // n = 2**i //delay(n,d,x) = rwtable(n, 0.0, index(n), x, (index(n)-int(d)) & (n-1)); delay(n,d,x) = x@(int(d)&(n-1)); fdelay(n,d,x) = delay(n,int(d),x)*(1 - frac(d)) + delay(n,int(d)+1,x)*frac(d); delay1s(d) = delay(65536,d); delay2s(d) = delay(131072,d); delay5s(d) = delay(262144,d); delay10s(d) = delay(524288,d); delay21s(d) = delay(1048576,d); delay43s(d) = delay(2097152,d); fdelay1s(d) = fdelay(65536,d); fdelay2s(d) = fdelay(131072,d); fdelay5s(d) = fdelay(262144,d); fdelay10s(d) = fdelay(524288,d); fdelay21s(d) = fdelay(1048576,d); fdelay43s(d) = fdelay(2097152,d); millisec = SR/1000.0; time1s = hslider("time", 0, 0, 1000, 0.1)*millisec; time2s = hslider("time", 0, 0, 2000, 0.1)*millisec; time5s = hslider("time", 0, 0, 5000, 0.1)*millisec; time10s = hslider("time", 0, 0, 10000, 0.1)*millisec; time21s = hslider("time", 0, 0, 21000, 0.1)*millisec; time43s = hslider("time", 0, 0, 43000, 0.1)*millisec; echo1s = vgroup("echo 1000", +~(delay(65536, int(hslider("millisecond", 0, 0, 1000, 0.10)*millisec)-1) * (hslider("feedback", 0, 0, 100, 0.1)/100.0))); echo2s = vgroup("echo 2000", +~(delay(131072, int(hslider("millisecond", 0, 0, 2000, 0.25)*millisec)-1) * (hslider("feedback", 0, 0, 100, 0.1)/100.0))); echo5s = vgroup("echo 5000", +~(delay(262144, int(hslider("millisecond", 0, 0, 5000, 0.50)*millisec)-1) * (hslider("feedback", 0, 0, 100, 0.1)/100.0))); echo10s = vgroup("echo 10000", +~(delay(524288, int(hslider("millisecond", 0, 0, 10000, 1.00)*millisec)-1) * (hslider("feedback", 0, 0, 100, 0.1)/100.0))); echo21s = vgroup("echo 21000", +~(delay(1048576, int(hslider("millisecond", 0, 0, 21000, 1.00)*millisec)-1) * (hslider("feedback", 0, 0, 100, 0.1)/100.0))); echo43s = vgroup("echo 43000", +~(delay(2097152, int(hslider("millisecond", 0, 0, 43000, 1.00)*millisec)-1) * (hslider("feedback", 0, 0, 100, 0.1)/100.0))); //--------------------------sdelay(N,it,dt)---------------------------- // s(mooth)delay : a mono delay that doesn't click and doesn't // transpose when the delay time is changed. It takes 4 input signals // and produces a delayed output signal // // USAGE : ... : sdelay(N,it,dt) : ... // // Where : // = maximal delay in samples (must be a constant power of 2, for example 65536) // = interpolation time (in samples) for example 1024 //
= delay time (in samples) // < > = input signal we want to delay //-------------------------------------------------------------------------- sdelay(N, it, dt) = ctrl(it,dt),_ : ddi(N) with { //---------------------------ddi(N,i,d0,d1)------------------------------- // DDI (Double Delay with Interpolation) : the input signal is sent to two // delay lines. The outputs of these delay lines are crossfaded with // an interpolation stage. By acting on this interpolation value one // can move smoothly from one delay to another. When is 0 we can // freely change the delay time of line 1, when it is 1 we can freely change // the delay time of line 0. // // = maximal delay in samples (must be a power of 2, for example 65536) // = interpolation value between 0 and 1 used to crossfade the outputs of the // two delay lines (0.0: first delay line, 1.0: second delay line) // = delay time of delay line 0 in samples between 0 and -1 // = delay time of delay line 1 in samples between 0 and -1 // < > = the input signal we want to delay //------------------------------------------------------------------------- ddi(N, i, d0, d1) = _ <: delay(N,d0), delay(N,d1) : interpolate(i); //----------------------------ctrl(it,dt)------------------------------------ // Control logic for a Double Delay with Interpolation according to two // // USAGE : ctrl(it,dt) // where : // an interpolation time (in samples, for example 256) //
a delay time (in samples) // // ctrl produces 3 outputs : an interpolation value and two delay // times and . These signals are used to control a ddi (Double Delay with Interpolation). // The principle is to detect changes in the input delay time dt, then to // change the delay time of the delay line currently unused and then by a // smooth crossfade to remove the first delay line and activate the second one. // // The control logic has an internal state controlled by 4 elements // : the interpolation variation (0, 1/it, -1/it) // : the interpolation value (between 0 and 1) // : the delay time of line 0 // : the delay time of line 1 // // Please note that the last stage (!,_,_,_) cut because it is only // used internally. //------------------------------------------------------------------------- ctrl(it, dt) = \(v,ip,d0,d1).( (nv, nip, nd0, nd1) with { // interpolation variation nv = if (v!=0.0, // if variation we are interpolating if( (ip>0.0) & (ip<1.0), v , 0), // should we continue or not ? if ((ip==0.0) & (dt!=d0), 1.0/it, // if true xfade from dl0 to dl1 if ((ip==1.0) & (dt!=d1), -1.0/it, // if true xfade from dl1 to dl0 0))); // nothing to change // interpolation value nip = ip+nv : min(1.0) : max(0.0); // update delay time of line 0 if needed nd0 = if ((ip >= 1.0) & (d1!=dt), dt, d0); // update delay time of line 0 if needed nd1 = if ((ip <= 0.0) & (d0!=dt), dt, d1); } ) ~ (_,_,_,_) : (!,_,_,_); }; //----------------------------------------------- // Tempo, beats and pulses //----------------------------------------------- tempo(t) = (60*SR)/t; // tempo(t) -> samples period(p) = %(int(p))~+(1); // signal en dent de scie de periode p pulse(t) = period(t)==0; // pulse (10000...) de periode p pulsen(n,t) = period(t)0. //----------------------------------------------- multirandom(n) = randomize(n) ~_ with { randomize (1) = +(12345) : *(1103515245); randomize (n) = randomize(1) <: randomize(n-1),_; }; //----------------------------------------------- // Generates multiple decorrelated noises // in parallel. Expects n>0. //----------------------------------------------- multinoise(n) = multirandom(n) : par(i,n,/(RANDMAX)) with { RANDMAX = 2147483647.0; }; //------------------------------------------------ noises(N,i) = multinoise(N) : selector(i,N); //----------------------------------------------- // osc(freq) : Sinusoidal Oscillator //----------------------------------------------- tablesize = 1 << 16; samplingfreq = SR; time = (+(1)~_ ) - 1; // 0,1,2,3,... sinwaveform = float(time)*(2.0*PI)/float(tablesize) : sin; decimal(x) = x - floor(x); phase(freq) = freq/float(samplingfreq) : (+ : decimal) ~ _ : *(float(tablesize)); osc(freq) = rdtable(tablesize, sinwaveform, int(phase(freq)) ); osci(freq) = s1 + d * (s2 - s1) with { i = int(phase(freq)); d = decimal(phase(freq)); s1 = rdtable(tablesize+1,sinwaveform,i); s2 = rdtable(tablesize+1,sinwaveform,i+1);}; //----------------------------------------------- // ADSR envelop //----------------------------------------------- // a,d,s,r = attack (#samples), decay (sec), sustain (percentage), release (sec) // t = trigger signal adsr(a,d,s,r,t) = env ~ (_,_) : (!,_) // the 2 'state' signals are fed back with { env (p2,y) = (t>0) & (p2|(y>=1)), // p2 = decay-sustain phase (y + p1*u - (p2&(y>s))*v*y - p3*w*y) // y = envelop signal *((p3==0)|(y>=eps)) // cut off tails to prevent denormals with { p1 = (p2==0) & (t>0) & (y<1); // p1 = attack phase p3 = (t<=0) & (y>0); // p3 = release phase // #samples in attack, decay, release, must be >0 na = SR*a+(a==0.0); nd = SR*d+(d==0.0); nr = SR*r+(r==0.0); // correct zero sustain level z = s+(s==0.0)*db2linear(-60); // attack, decay and (-60dB) release rates u = 1/na; v = 1-pow(z, 1/nd); w = 1-1/pow(z*db2linear(60), 1/nr); // values below this threshold are considered zero in the release phase eps = db2linear(-120); }; }; //----------------------------------------------- // Spatialisation //----------------------------------------------- panner(c) = _ <: *(1-c), *(c); bus2 = _,_; bus3 = _,_,_; bus4 = _,_,_,_; bus5 = _,_,_,_,_; bus6 = _,_,_,_,_,_; bus7 = _,_,_,_,_,_,_; bus8 = _,_,_,_,_,_,_,_; gain2(g) = *(g),*(g); gain3(g) = *(g),*(g),*(g); gain4(g) = *(g),*(g),*(g),*(g); gain5(g) = *(g),*(g),*(g),*(g),*(g); gain6(g) = *(g),*(g),*(g),*(g),*(g),*(g); gain7(g) = *(g),*(g),*(g),*(g),*(g),*(g),*(g); gain8(g) = *(g),*(g),*(g),*(g),*(g),*(g),*(g),*(g); //------------------------------------------------------ // // GMEM SPAT // n-outputs spatializer // implementation of L. Pottier // //------------------------------------------------------ // // n = number of outputs // r = rotation (between 0 et 1) // d = distance of the source (between 0 et 1) // //------------------------------------------------------ spat(n,a,d) = _ <: par(i, n, *( scaler(i, n, a, d) : smooth(0.9999) )) with { scaler(i,n,a,d) = (d/2.0+0.5) * sqrt( max(0.0, 1.0 - abs(fmod(a+0.5+float(n-i)/n, 1.0) - 0.5) * n * d) ); smooth(c) = *(1-c) : +~*(c); }; //--------------- Second Order Generic Transfert Function ------------------------- // TF2(b0,b1,b2,a1,a2) // //--------------------------------------------------------------------------------- TF2(b0,b1,b2,a1,a2) = sub ~ conv2(a1,a2) : conv3(b0,b1,b2) with { conv3(k0,k1,k2,x) = k0*x + k1*x' + k2*x''; conv2(k0,k1,x) = k0*x + k1*x'; sub(x,y) = y-x; }; /*************************** Break Point Functions *************************** bpf is an environment (a group of related definitions) tha can be used to create break-point functions. It contains three functions : - start(x,y) to start a break-point function - end(x,y) to end a break-point function - point(x,y) to add intermediate points to a break-point function A minimal break-point function must contain at least a start and an end point : f = bpf.start(x0,y0) : bpf.end(x1,y1); A more involved break-point function can contains any number of intermediate points f = bpf.start(x0,y0) : bpf.point(x1,y1) : bpf.point(x2,y2) : bpf.end(x3,y3); In any case the x_{i} must be in increasing order (for all i, x_{i} < x_{i+1}) For example the following definition : f = bpf.start(x0,y0) : ... : bpf.point(xi,yi) : ... : bpf.end(xn,yn); implements a break-point function f such that : f(x) = y_{0} when x < x_{0} f(x) = y_{n} when x > x_{n} f(x) = y_{i} + (y_{i+1}-y_{i})*(x-x_{i})/(x_{i+1}-x_{i}) when x_{i} <= x and x < x_{i+1} ******************************************************************************/ bpf = environment { // Start a break-point function start(x0,y0) = \(x).(x0,y0,x,y0); // Add a break-point point(x1,y1) = \(x0,y0,x,y).(x1, y1, x , if (x < x0, y, if (x < x1, y0 + (x-x0)*(y1-y0)/(x1-x0), y1))); // End a break-point function end (x1,y1) = \(x0,y0,x,y).(if (x < x0, y, if (x < x1, y0 + (x-x0)*(y1-y0)/(x1-x0), y1))); // definition of if if (c,t,e) = select2(c,e,t); }; faust-0.9.46/architecture/VST/0000755000175000017500000000000011702130733016003 5ustar orlareyorlareyfaust-0.9.46/architecture/VST/Info.plist0000644000175000017500000000147711702130733017764 0ustar orlareyorlarey CFBundleDevelopmentRegion English CFBundleExecutable FaustVST CFBundleGetInfoString © 2005, Grame. CFBundleIconFile CFBundleIdentifier grame.com.Faust CFBundleInfoDictionaryVersion 6.0 CFBundleName XXXX CFBundlePackageType BNDL CFBundleShortVersionString 1.0 CFBundleSignature Grme CFBundleVersion 1.0 faust-0.9.46/architecture/VST/README0000644000175000017500000000063111702130733016663 0ustar orlareyorlareyCompilation on OSX With Xcode ============================== The VSTSDK folder from the VST SDK has to be copied at the same level of the VST.xcode project (either manually or using the makefile) To compile a Faust VST plug-in: - use the vst.cpp architecture file in the faust command line and produce a vst-output.cpp file: faust -a vst.cpp foo.dsp -o vst-output.cpp - build the VST.xcode project faust-0.9.46/architecture/VST/VST.xcode/0000755000175000017500000000000011702130733017560 5ustar orlareyorlareyfaust-0.9.46/architecture/VST/VST.xcode/project.pbxproj0000644000175000017500000003420611702130733022641 0ustar orlareyorlarey// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 39; objects = { 014CEA420018CDE011CA2923 = { buildSettings = { COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; OPTIMIZATION_CFLAGS = "-O0"; ZERO_LINK = YES; }; isa = PBXBuildStyle; name = Development; }; 014CEA430018CDE011CA2923 = { buildSettings = { COPY_PHASE_STRIP = YES; GCC_ENABLE_FIX_AND_CONTINUE = NO; ZERO_LINK = NO; }; isa = PBXBuildStyle; name = Deployment; }; //010 //011 //012 //013 //014 //080 //081 //082 //083 //084 089C1669FE841209C02AAC07 = { buildSettings = { }; buildStyles = ( 014CEA420018CDE011CA2923, 014CEA430018CDE011CA2923, ); hasScannedForEncodings = 1; isa = PBXProject; mainGroup = 089C166AFE841209C02AAC07; projectDirPath = ""; targets = ( 4B42590209FF7690003FF67A, ); }; 089C166AFE841209C02AAC07 = { children = ( 33372AA708587677008D8015, B2FF4ECC0529FBBF001F90A7, 08FB77AFFE84173DC02AAC07, 089C1671FE841209C02AAC07, 19C28FB8FE9D52D311CA2CBB, 4B42594A09FF7AA2003FF67A, ); isa = PBXGroup; name = bundle_test; refType = 4; sourceTree = ""; }; 089C1671FE841209C02AAC07 = { children = ( B2F0252306F4C83200E9C25F, B2CE54B805CA517B00667293, B22EE371052900E3008EDF11, B282F7CF04CB1F3900ECBF7F, B23C897004CB1A7E00F1E491, ); isa = PBXGroup; name = "Frameworks and Libraries"; refType = 4; sourceTree = ""; }; 08FB77AFFE84173DC02AAC07 = { children = ( 4BE06BB908608F2C00B6C3EC, ); isa = PBXGroup; name = src; refType = 4; sourceTree = ""; }; //080 //081 //082 //083 //084 //190 //191 //192 //193 //194 19C28FB8FE9D52D311CA2CBB = { children = ( 4B42592409FF7690003FF67A, ); isa = PBXGroup; name = Products; refType = 4; sourceTree = ""; }; //190 //191 //192 //193 //194 //330 //331 //332 //333 //334 33372AA708587677008D8015 = { children = ( 33372AA808587677008D8015, 33372AA908587677008D8015, 33372AAA08587677008D8015, 33372AAB08587677008D8015, 33372AAC08587677008D8015, 33372AAD08587677008D8015, 33372AAE08587677008D8015, 33372AAF08587677008D8015, 33372AB008587677008D8015, 33372AB108587677008D8015, 33372AB208587677008D8015, 33372AB308587677008D8015, 33372AB408587677008D8015, 33372AB508587677008D8015, 33372AB608587677008D8015, 33372AB708587677008D8015, 33372AB808587677008D8015, ); isa = PBXGroup; path = VSTSDK; refType = 2; sourceTree = SOURCE_ROOT; }; 33372AA808587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AEffect.h; refType = 4; sourceTree = ""; }; 33372AA908587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; refType = 4; sourceTree = ""; }; 33372AAA08587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = AEffEditor.hpp; refType = 4; sourceTree = ""; }; 33372AAB08587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = aeffguieditor.cpp; refType = 4; sourceTree = ""; }; 33372AAC08587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = aeffguieditor.h; refType = 4; sourceTree = ""; }; 33372AAD08587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AudioEffect.cpp; refType = 4; sourceTree = ""; }; 33372AAE08587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = AudioEffect.hpp; refType = 4; sourceTree = ""; }; 33372AAF08587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; refType = 4; sourceTree = ""; }; 33372AB008587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; refType = 4; sourceTree = ""; }; 33372AB108587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = vstcontrols.cpp; refType = 4; sourceTree = ""; }; 33372AB208587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vstcontrols.h; refType = 4; sourceTree = ""; }; 33372AB308587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; refType = 4; sourceTree = ""; }; 33372AB408587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = vstgui.cpp; refType = 4; sourceTree = ""; }; 33372AB508587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vstgui.h; refType = 4; sourceTree = ""; }; 33372AB608587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vstplugscarbon.h; refType = 4; sourceTree = ""; }; 33372AB708587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vstplugsmac.h; refType = 4; sourceTree = ""; }; 33372AB808587677008D8015 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vstplugsmacho.h; refType = 4; sourceTree = ""; }; //330 //331 //332 //333 //334 //4B0 //4B1 //4B2 //4B3 //4B4 4B42590209FF7690003FF67A = { buildPhases = ( 4B42590309FF7690003FF67A, 4B42591009FF7690003FF67A, 4B42591209FF7690003FF67A, 4B42591909FF7690003FF67A, 4B42591E09FF7690003FF67A, 4B42591F09FF7690003FF67A, 4B42592109FF7690003FF67A, ); buildRules = ( ); buildSettings = { GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 3; GCC_PREFIX_HEADER = VSTSDK/vstplugsmacho.h; GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; HEADER_SEARCH_PATHS = ""; INFOPLIST_FILE = Info.plist; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = FaustVST; SECTORDER_FLAGS = ""; WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas"; WRAPPER_EXTENSION = vst; }; dependencies = ( ); isa = PBXNativeTarget; name = "mach-0"; productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; productName = "mach-0"; productReference = 4B42592409FF7690003FF67A; productType = "com.apple.product-type.bundle"; }; 4B42590309FF7690003FF67A = { buildActionMask = 2147483647; files = ( 4B42590409FF7690003FF67A, 4B42590509FF7690003FF67A, 4B42590609FF7690003FF67A, 4B42590709FF7690003FF67A, 4B42590809FF7690003FF67A, 4B42590909FF7690003FF67A, 4B42590A09FF7690003FF67A, 4B42590B09FF7690003FF67A, 4B42590C09FF7690003FF67A, 4B42590D09FF7690003FF67A, 4B42590E09FF7690003FF67A, 4B42590F09FF7690003FF67A, ); isa = PBXHeadersBuildPhase; runOnlyForDeploymentPostprocessing = 0; }; 4B42590409FF7690003FF67A = { fileRef = 33372AA808587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590509FF7690003FF67A = { fileRef = 33372AA908587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590609FF7690003FF67A = { fileRef = 33372AAA08587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590709FF7690003FF67A = { fileRef = 33372AAC08587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590809FF7690003FF67A = { fileRef = 33372AAE08587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590909FF7690003FF67A = { fileRef = 33372AB008587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590A09FF7690003FF67A = { fileRef = 33372AB208587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590B09FF7690003FF67A = { fileRef = 33372AB308587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590C09FF7690003FF67A = { fileRef = 33372AB508587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590D09FF7690003FF67A = { fileRef = 33372AB608587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590E09FF7690003FF67A = { fileRef = 33372AB708587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42590F09FF7690003FF67A = { fileRef = 33372AB808587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42591009FF7690003FF67A = { buildActionMask = 2147483647; files = ( 4B42591109FF7690003FF67A, 4B42594B09FF7AA2003FF67A, ); isa = PBXResourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; }; 4B42591109FF7690003FF67A = { fileRef = B2FF4ECD0529FC02001F90A7; isa = PBXBuildFile; settings = { }; }; 4B42591209FF7690003FF67A = { buildActionMask = 2147483647; files = ( 4B42591309FF7690003FF67A, 4B42591409FF7690003FF67A, 4B42591509FF7690003FF67A, 4B42591609FF7690003FF67A, 4B42591709FF7690003FF67A, 4B42591809FF7690003FF67A, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; }; 4B42591309FF7690003FF67A = { fileRef = 33372AAB08587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42591409FF7690003FF67A = { fileRef = 33372AAD08587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42591509FF7690003FF67A = { fileRef = 33372AAF08587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42591609FF7690003FF67A = { fileRef = 33372AB108587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42591709FF7690003FF67A = { fileRef = 33372AB408587677008D8015; isa = PBXBuildFile; settings = { }; }; 4B42591809FF7690003FF67A = { fileRef = 4BE06BB908608F2C00B6C3EC; isa = PBXBuildFile; settings = { }; }; 4B42591909FF7690003FF67A = { buildActionMask = 2147483647; files = ( 4B42591A09FF7690003FF67A, 4B42591B09FF7690003FF67A, 4B42591C09FF7690003FF67A, 4B42591D09FF7690003FF67A, ); isa = PBXFrameworksBuildPhase; runOnlyForDeploymentPostprocessing = 0; }; 4B42591A09FF7690003FF67A = { fileRef = B22EE371052900E3008EDF11; isa = PBXBuildFile; settings = { }; }; 4B42591B09FF7690003FF67A = { fileRef = B282F7CF04CB1F3900ECBF7F; isa = PBXBuildFile; settings = { }; }; 4B42591C09FF7690003FF67A = { fileRef = B2CE54B805CA517B00667293; isa = PBXBuildFile; settings = { }; }; 4B42591D09FF7690003FF67A = { fileRef = B2F0252306F4C83200E9C25F; isa = PBXBuildFile; settings = { }; }; 4B42591E09FF7690003FF67A = { buildActionMask = 2147483647; files = ( ); isa = PBXRezBuildPhase; runOnlyForDeploymentPostprocessing = 0; }; 4B42591F09FF7690003FF67A = { buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 7; files = ( 4B42592009FF7690003FF67A, ); isa = PBXCopyFilesBuildPhase; runOnlyForDeploymentPostprocessing = 0; }; 4B42592009FF7690003FF67A = { fileRef = B2FF4ECD0529FC02001F90A7; isa = PBXBuildFile; settings = { }; }; 4B42592109FF7690003FF67A = { buildActionMask = 2147483647; dstPath = ..; dstSubfolderSpec = 7; files = ( 4B42592209FF7690003FF67A, ); isa = PBXCopyFilesBuildPhase; runOnlyForDeploymentPostprocessing = 0; }; 4B42592209FF7690003FF67A = { fileRef = B2FF4ECD0529FC02001F90A7; isa = PBXBuildFile; settings = { }; }; 4B42592409FF7690003FF67A = { explicitFileType = wrapper.cfbundle; includeInIndex = 0; isa = PBXFileReference; path = FaustVST.vst; refType = 3; sourceTree = BUILT_PRODUCTS_DIR; }; 4B42594A09FF7AA2003FF67A = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = text.xml; path = Info.plist; refType = 2; sourceTree = SOURCE_ROOT; }; 4B42594B09FF7AA2003FF67A = { fileRef = 4B42594A09FF7AA2003FF67A; isa = PBXBuildFile; settings = { }; }; 4BE06BB908608F2C00B6C3EC = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "vst-output.cpp"; refType = 2; sourceTree = SOURCE_ROOT; }; //4B0 //4B1 //4B2 //4B3 //4B4 //B20 //B21 //B22 //B23 //B24 B22EE371052900E3008EDF11 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; refType = 0; sourceTree = ""; }; B23C897004CB1A7E00F1E491 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Jack.framework; path = /Library/Frameworks/Jack.framework; refType = 0; sourceTree = ""; }; B282F7CF04CB1F3900ECBF7F = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; refType = 0; sourceTree = ""; }; B2CE54B805CA517B00667293 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; refType = 0; sourceTree = ""; }; B2F0252306F4C83200E9C25F = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; refType = 0; sourceTree = ""; }; B2FF4ECC0529FBBF001F90A7 = { children = ( B2FF4ECD0529FC02001F90A7, ); isa = PBXGroup; name = Resources; refType = 4; sourceTree = ""; }; B2FF4ECD0529FC02001F90A7 = { fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = text; path = PkgInfo; refType = 4; sourceTree = ""; }; }; rootObject = 089C1669FE841209C02AAC07; } faust-0.9.46/architecture/VST/PkgInfo0000755000175000017500000000001011702130733017255 0ustar orlareyorlareyBNDL????faust-0.9.46/architecture/snd-rt-gtk.cpp0000644000175000017500000007105411702130733020034 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2008-2011 Kjetil Matheussen --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ************************************************************************ ************************************************************************/ /* link with */ #include #include #include #include #include #include #include #ifdef MAKE_GUI #include #include #include #include #include #include #include #include #include #include #include #include #include #endif #include #include #include // realtime memory allocation in Snd. using namespace std; struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } // g++ -O3 -lm -ljack `gtk-config --cflags --libs` ex2.cpp #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) // abs is now predefined //template T abs (T a) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<> /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) abstract interfaces ******************************************************************************* *******************************************************************************/ #include #include using namespace std; struct uiItem; typedef void (*uiCallback)(float val, void* data); #ifdef MAKE_GUI // It's enough to compile GUI code once. /** * Graphic User Interface : abstract definition */ class UI { typedef list clist; typedef map zmap; private: static list fGuiList; zmap fZoneMap; bool fStopped; public: UI() : fStopped(false) { fGuiList.push_back(this); } virtual ~UI() { // suppression de this dans fGuiList } // -- registerZone(z,c) : zone management bool containsUI; void registerZone(float* z, uiItem* c) { containsUI=true; if (fZoneMap.find(z) == fZoneMap.end()) fZoneMap[z] = new clist(); fZoneMap[z]->push_back(c); } // -- saveState(filename) : save the value of every zone to a file void saveState(const char* filename) { ofstream f(filename); for (zmap::iterator i=fZoneMap.begin(); i!=fZoneMap.end(); i++) { f << *(i->first) << ' '; } f << endl; f.close(); } // -- recallState(filename) : load the value of every zone from a file void recallState(const char* filename) { ifstream f(filename); if (f.good()) { for (zmap::iterator i=fZoneMap.begin(); i!=fZoneMap.end(); i++) { f >> *(i->first); } } f.close(); } void updateAllZones(); void updateZone(float* z); static void updateAllGuis() { list::iterator g; for (g = fGuiList.begin(); g != fGuiList.end(); g++) { (*g)->updateAllZones(); } } // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; void addCallback(float* zone, uiCallback foo, void* data); // -- widget's layouts virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void show() = 0; virtual void run() = 0; virtual void declare(float* zone, const char* key, const char* value) {} void stop() { fStopped = true; } bool stopped() { return fStopped; } }; /** * User Interface Item: abstract definition */ class uiItem { protected : UI* fGUI; float* fZone; float fCache; uiItem (UI* ui, float* zone) : fGUI(ui), fZone(zone), fCache(-123456.654321) { ui->registerZone(zone, this); } public : virtual ~uiItem() {} void modifyZone(float v) { fCache = v; if (*fZone != v) { *fZone = v; fGUI->updateZone(fZone); } } float cache() { return fCache; } virtual void reflectZone() = 0; }; /** * Callback Item */ struct uiCallbackItem : public uiItem { uiCallback fCallback; void* fData; uiCallbackItem(UI* ui, float* zone, uiCallback foo, void* data) : uiItem(ui, zone), fCallback(foo), fData(data) {} virtual void reflectZone() { float v = *fZone; fCache = v; fCallback(v, fData); } }; // en cours d'installation de call back. a finir!!!!! /** * Update all user items reflecting zone z */ inline void UI::updateZone(float* z) { float v = *z; clist* l = fZoneMap[z]; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } /** * Update all user items not up to date */ inline void UI::updateAllZones() { for (zmap::iterator m = fZoneMap.begin(); m != fZoneMap.end(); m++) { float* z = m->first; clist* l = m->second; float v = *z; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } } inline void UI::addCallback(float* zone, uiCallback foo, void* data) { new uiCallbackItem(this, zone, foo, data); }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE gtk interface ******************************************************************************* *******************************************************************************/ #include #define stackSize 256 // Insertion modes #define kSingleMode 0 #define kBoxMode 1 #define kTabMode 2 class GTKUI : public UI { private : static bool fInitialized; static list fGuiList; protected : GtkWidget* fWindow; int fTop; GtkWidget* fBox[stackSize]; int fMode[stackSize]; bool fStopped; GtkWidget* addWidget(const char* label, GtkWidget* w); virtual void pushBox(int mode, GtkWidget* w); public : static const gboolean expand = TRUE; static const gboolean fill = TRUE; static const gboolean homogene = FALSE; GTKUI(char * name, int* pargc, char*** pargv); GTKUI(){} // -- layout groups virtual void openFrameBox(const char* label); virtual void openTabBox(const char* label = ""); virtual void openHorizontalBox(const char* label = ""); virtual void openVerticalBox(const char* label = ""); virtual void closeBox(); // -- active widgets virtual void addButton(const char* label, float* zone); virtual void addToggleButton(const char* label, float* zone); virtual void addCheckButton(const char* label, float* zone); virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); // -- passive display widgets virtual void addNumDisplay(const char* label, float* zone, int precision); virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max); virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); virtual void show(); virtual void run(); virtual void declare(float* zone, const char* key, const char* value) {} }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) gtk implementation ******************************************************************************* *******************************************************************************/ // global static fields bool GTKUI::fInitialized = false; list UI::fGuiList; static gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { return FALSE; } static void destroy_event( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } GTKUI::GTKUI(char * name, int* pargc, char*** pargv) { if (!fInitialized){ gtk_init(pargc, pargv); fInitialized = true; } fWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); //gtk_container_set_border_width (GTK_CONTAINER (fWindow), 10); gtk_window_set_title (GTK_WINDOW (fWindow), name); gtk_signal_connect (GTK_OBJECT (fWindow), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); gtk_signal_connect (GTK_OBJECT (fWindow), "destroy", GTK_SIGNAL_FUNC (destroy_event), NULL); fTop = 0; fBox[fTop] = gtk_vbox_new (homogene, 4); fMode[fTop] = kBoxMode; gtk_container_add (GTK_CONTAINER (fWindow), fBox[fTop]); fStopped = false; } // empilement des boites void GTKUI::pushBox(int mode, GtkWidget* w) { ++fTop; assert(fTop < stackSize); fMode[fTop] = mode; fBox[fTop] = w; } void GTKUI::closeBox() { --fTop; assert(fTop >= 0); } // les differentes boites void GTKUI::openFrameBox(const char* label) { GtkWidget * box = gtk_frame_new (label); //gtk_container_set_border_width (GTK_CONTAINER (box), 10); pushBox(kSingleMode, addWidget(label, box)); } void GTKUI::openTabBox(const char* label) { pushBox(kTabMode, addWidget(label, gtk_notebook_new ())); } void GTKUI::openHorizontalBox(const char* label) { GtkWidget * box = gtk_hbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_frame_new (label)); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } void GTKUI::openVerticalBox(const char* label) { GtkWidget * box = gtk_vbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_frame_new (label)); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } GtkWidget* GTKUI::addWidget(const char* label, GtkWidget* w) { switch (fMode[fTop]) { case kSingleMode : gtk_container_add (GTK_CONTAINER(fBox[fTop]), w); break; case kBoxMode : gtk_box_pack_start (GTK_BOX(fBox[fTop]), w, expand, fill, 0); break; case kTabMode : gtk_notebook_append_page (GTK_NOTEBOOK(fBox[fTop]), w, gtk_label_new(label)); break; } gtk_widget_show (w); return w; } // --------------------------- Press button --------------------------- struct uiButton : public uiItem { GtkButton* fButton; uiButton (UI* ui, float* zone, GtkButton* b) : uiItem(ui, zone), fButton(b) {} static void pressed( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(1.0); } static void released( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(0.0); } virtual void reflectZone() { float v = *fZone; fCache = v; if (v > 0.0) gtk_button_pressed(fButton); else gtk_button_released(fButton); } }; void GTKUI::addButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_button_new_with_label (label); addWidget(label, button); uiButton* c = new uiButton(this, zone, GTK_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "pressed", GTK_SIGNAL_FUNC (uiButton::pressed), (gpointer) c); gtk_signal_connect (GTK_OBJECT (button), "released", GTK_SIGNAL_FUNC (uiButton::released), (gpointer) c); } // --------------------------- Toggle Buttons --------------------------- struct uiToggleButton : public uiItem { GtkToggleButton* fButton; uiToggleButton(UI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addToggleButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_toggle_button_new_with_label (label); addWidget(label, button); uiToggleButton* c = new uiToggleButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (uiToggleButton::toggled), (gpointer) c); } // --------------------------- Check Button --------------------------- struct uiCheckButton : public uiItem { GtkToggleButton* fButton; uiCheckButton(UI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addCheckButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_check_button_new_with_label (label); addWidget(label, button); uiCheckButton* c = new uiCheckButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC(uiCheckButton::toggled), (gpointer) c); } // --------------------------- Adjustmenty based widgets --------------------------- struct uiAdjustment : public uiItem { GtkAdjustment* fAdj; uiAdjustment(UI* ui, float* zone, GtkAdjustment* adj) : uiItem(ui, zone), fAdj(adj) {} static void changed (GtkWidget *widget, gpointer data) { float v = GTK_ADJUSTMENT (widget)->value; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_adjustment_set_value(fAdj, v); } }; static int precision(double n) { if (n < 0.009999) return 3; else if (n < 0.099999) return 2; else if (n < 0.999999) return 1; else return 0; } // -------------------------- Vertical Slider ----------------------------------- void GTKUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_vscale_new (GTK_ADJUSTMENT(adj)); gtk_range_set_inverted (GTK_RANGE(slider), TRUE); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); gtk_widget_set_usize(slider, -1, 160); openFrameBox(label); addWidget(label, slider); closeBox(); } // -------------------------- Horizontal Slider ----------------------------------- void GTKUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_hscale_new (GTK_ADJUSTMENT(adj)); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); gtk_widget_set_usize(slider, 160, -1); openFrameBox(label); addWidget(label, slider); closeBox(); } // ------------------------------ Num Entry ----------------------------------- void GTKUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, step); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* spinner = gtk_spin_button_new (GTK_ADJUSTMENT(adj), 0.005, precision(step)); //gtk_widget_set_usize(slider, 160, -1); openFrameBox(label); addWidget(label, spinner); closeBox(); } // ========================== passive widgets =============================== // ------------------------------ Progress Bar ----------------------------------- struct uiBargraph : public uiItem { GtkProgressBar* fProgressBar; float fMin; float fMax; uiBargraph(UI* ui, float* zone, GtkProgressBar* pbar, float lo, float hi) : uiItem(ui, zone), fProgressBar(pbar), fMin(lo), fMax(hi) {} float scale(float v) { return (v-fMin)/(fMax-fMin); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_progress_bar_set_fraction(fProgressBar, scale(v)); } }; void GTKUI::addVerticalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_BOTTOM_TO_TOP); gtk_widget_set_size_request(pb, 8, -1); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); } void GTKUI::addHorizontalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_LEFT_TO_RIGHT); gtk_widget_set_size_request(pb, -1, 8); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); } // ------------------------------ Num Display ----------------------------------- struct uiNumDisplay : public uiItem { GtkLabel* fLabel; int fPrecision; uiNumDisplay(UI* ui, float* zone, GtkLabel* label, int precision) : uiItem(ui, zone), fLabel(label), fPrecision(precision) {} virtual void reflectZone() { float v = *fZone; fCache = v; char s[64]; if (fPrecision <= 0) { snprintf(s, 63, "%d", int(v)); } else if (fPrecision>3) { snprintf(s, 63, "%f", v); } else { const char* format[] = {"%.1f", "%.2f", "%.3f"}; snprintf(s, 63, format[fPrecision-1], v); } gtk_label_set_text(fLabel, s); } }; void GTKUI::addNumDisplay(const char* label, float* zone, int precision ) { GtkWidget* lw = gtk_label_new(""); new uiNumDisplay(this, zone, GTK_LABEL(lw), precision); openFrameBox(label); addWidget(label, lw); closeBox(); } // ------------------------------ Text Display ----------------------------------- struct uiTextDisplay : public uiItem { GtkLabel* fLabel; const char** fNames; float fMin; float fMax; int fNum; uiTextDisplay (UI* ui, float* zone, GtkLabel* label, const char* names[], float lo, float hi) : uiItem(ui, zone), fLabel(label), fNames(names), fMin(lo), fMax(hi) { fNum = 0; while (fNames[fNum] != 0) fNum++; } virtual void reflectZone() { float v = *fZone; fCache = v; int idx = int(fNum*(v-fMin)/(fMax-fMin)); if (idx < 0) idx = 0; else if (idx >= fNum) idx = fNum-1; gtk_label_set_text(fLabel, fNames[idx]); } }; void GTKUI::addTextDisplay(const char* label, float* zone, const char* names[], float lo, float hi ) { GtkWidget* lw = gtk_label_new(""); new uiTextDisplay (this, zone, GTK_LABEL(lw), names, lo, hi); openFrameBox(label); addWidget(label, lw); closeBox(); } void GTKUI::show() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); } /** * Update all user items reflecting zone z */ static gboolean callUpdateAllGuis(gpointer) { UI::updateAllGuis(); return TRUE; } void GTKUI::run() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); gtk_timeout_add(40, callUpdateAllGuis, 0); gtk_main (); stop(); } #else // MAKE_GUI class UI { typedef list clist; typedef map zmap; private: static list fGuiList; zmap fZoneMap; bool fStopped; public: UI() : fStopped(false) { fGuiList.push_back(this); } virtual ~UI() { // suppression de this dans fGuiList } // -- zone management void registerZone(float* z, uiItem* c) { if (fZoneMap.find(z) == fZoneMap.end()) fZoneMap[z] = new clist(); fZoneMap[z]->push_back(c); } void updateAllZones(); void updateZone(float* z); static void updateAllGuis() { list::iterator g; for (g = fGuiList.begin(); g != fGuiList.end(); g++) { (*g)->updateAllZones(); } } // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; void addCallback(float* zone, uiCallback foo, void* data); // -- widget's layouts virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void show() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } }; /** * User Interface Item: abstract definition */ class uiItem { protected : UI* fGUI; float* fZone; float fCache; uiItem (UI* ui, float* zone) : fGUI(ui), fZone(zone), fCache(-123456.654321) { ui->registerZone(zone, this); } public : virtual ~uiItem() {} void modifyZone(float v) { fCache = v; if (*fZone != v) { *fZone = v; fGUI->updateZone(fZone); } } float cache() { return fCache; } virtual void reflectZone() = 0; }; /** * Callback Item */ struct uiCallbackItem : public uiItem { uiCallback fCallback; void* fData; uiCallbackItem(UI* ui, float* zone, uiCallback foo, void* data) : uiItem(ui, zone), fCallback(foo), fData(data) {} virtual void reflectZone() { float v = *fZone; fCache = v; fCallback(v, fData); } }; /** * Update all user items reflecting zone z */ inline void UI::updateZone(float* z) { float v = *z; clist* l = fZoneMap[z]; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } /** * Update all user items not up to date */ inline void UI::updateAllZones() { for (zmap::iterator m = fZoneMap.begin(); m != fZoneMap.end(); m++) { float* z = m->first; clist* l = m->second; float v = *z; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } } inline void UI::addCallback(float* zone, uiCallback foo, void* data) { new uiCallbackItem(this, zone, foo, data); }; #endif // MAKE_GUI /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // définition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; virtual void conclude() {} void* operator new(size_t size){ return clm_malloc_atomic(size,"faust new"); } }; //---------------------------------------------------------------------------- // FAUST generated code //---------------------------------------------------------------------------- <> #ifdef MAKE_GUI class SNDRTGTKUI : public GTKUI{ public: SNDRTGTKUI(char * name, GtkDialog *window); void localRun(); /* bool containUI; void registerZone(float* z, uiItem* c){ containUI=true; GTKUI:registerZone(z,c); } */ }; SNDRTGTKUI::SNDRTGTKUI(char * name, GtkDialog *window) { containsUI=false; fWindow = GTK_WIDGET(GTK_WINDOW(window)); fTop = 0; fBox[fTop] = window->vbox; fMode[fTop] = kBoxMode; fStopped = false; } void SNDRTGTKUI::localRun(){ assert(fTop == 0); if(!containsUI) return; gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); gtk_timeout_add(40, callUpdateAllGuis, 0); } extern "C" SNDRTGTKUI* newGTKUI(char *name, void* window){ return new SNDRTGTKUI(name,(GtkDialog*)window); } extern "C" void runGTKUI(SNDRTGTKUI* ui){ ui->localRun(); } extern "C" int containsUI(SNDRTGTKUI* ui){ return ui->containsUI==true?1:0; } #endif extern "C" dsp* newDsp() { return new mydsp(); } extern "C" void deleteDsp(dsp* self) { delete self; } extern "C" int getNumInputs(dsp* self) { return self->getNumInputs(); } extern "C" int getNumOutputs(dsp* self) { return self->getNumOutputs(); } extern "C" void buildUserInterface(dsp* self,UI* interface) { self->buildUserInterface(interface); } extern "C" void init(dsp* self, int freq) { self->init(freq); } extern "C" void compute(dsp* self, int len, float** inputs, float** outputs) { self->compute(len, inputs, outputs); } extern "C" void conclude(dsp* self) { self->conclude(); } faust-0.9.46/architecture/scheduler.h0000644000175000017500000006141411702130733017464 0ustar orlareyorlarey #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; // Globals #define THREAD_SIZE 64 #define QUEUE_SIZE 4096 #define WORK_STEALING_INDEX 0 #define LAST_TASK_INDEX 1 #ifdef __ICC #define INLINE __forceinline #else #define INLINE inline #endif // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif #ifdef __linux__ // handle 32/64 bits int size issues #ifdef __x86_64__ #define UInt32 unsigned int #define UInt64 unsigned long int #else #define UInt32 unsigned int #define UInt64 unsigned long long int #endif #endif #ifdef __APPLE__ #include #endif class TaskQueue; struct DSPThreadPool; extern TaskQueue* gTaskQueueList[THREAD_SIZE]; extern DSPThreadPool* gThreadPool; extern int gClientCount; extern UInt64 gMaxStealing; void Yield(); /** * Returns the number of clock cycles elapsed since the last reset * of the processor */ static INLINE UInt64 DSP_rdtsc(void) { union { UInt32 i32[2]; UInt64 i64; } count; __asm__ __volatile__("rdtsc" : "=a" (count.i32[0]), "=d" (count.i32[1])); return count.i64; } #if defined(__i386__) || defined(__x86_64__) #define LOCK "lock ; " static INLINE void NOP(void) { __asm__ __volatile__("nop \n\t"); } static INLINE char CAS1(volatile void* addr, volatile int value, int newvalue) { register char ret; __asm__ __volatile__ ( "# CAS \n\t" LOCK "cmpxchg %2, (%1) \n\t" "sete %0 \n\t" : "=a" (ret) : "c" (addr), "d" (newvalue), "a" (value) : "memory" ); return ret; } static INLINE int atomic_xadd(volatile int* atomic, int val) { register int result; __asm__ __volatile__ ("# atomic_xadd \n\t" LOCK "xaddl %0,%1 \n\t" : "=r" (result), "=m" (*atomic) : "0" (val), "m" (*atomic)); return result; } #endif /* static INLINE int INC_ATOMIC(volatile int* val) { int actual; do { actual = *val; } while (!CAS1(val, actual, actual + 1)); return actual; } static INLINE int DEC_ATOMIC(volatile int* val) { int actual; do { actual = *val; } while (!CAS1(val, actual, actual - 1)); return actual; } */ static INLINE int INC_ATOMIC(volatile int* val) { return atomic_xadd(val, 1); } static INLINE int DEC_ATOMIC(volatile int* val) { return atomic_xadd(val, -1); } // To be used in lock-free queue struct AtomicCounter { union { struct { short fHead; short fTail; } scounter; int fValue; }info; INLINE AtomicCounter() { info.fValue = 0; } INLINE AtomicCounter& operator=(AtomicCounter& obj) { info.fValue = obj.info.fValue; return *this; } INLINE AtomicCounter& operator=(volatile AtomicCounter& obj) { info.fValue = obj.info.fValue; return *this; } }; int get_max_cpu() { return sysconf(_SC_NPROCESSORS_ONLN); } static int GetPID() { #ifdef WIN32 return _getpid(); #else return getpid(); #endif } #define Value(e) (e).info.fValue #define Head(e) (e).info.scounter.fHead #define IncHead(e) (e).info.scounter.fHead++ #define DecHead(e) (e).info.scounter.fHead-- #define Tail(e) (e).info.scounter.fTail #define IncTail(e) (e).info.scounter.fTail++ #define DecTail(e) (e).info.scounter.fTail-- #define MASTER_THREAD 0 #define MAX_STEAL_DUR 50 // in usec #define DEFAULT_CLOCKSPERSEC 2500000000 // in cycles (2,5 Ghz) class TaskQueue { private: int fTaskList[QUEUE_SIZE]; volatile AtomicCounter fCounter; UInt64 fStealingStart; public: INLINE TaskQueue(int cur_thread) { for (int i = 0; i < QUEUE_SIZE; i++) { fTaskList[i] = -1; } gTaskQueueList[cur_thread] = this; fStealingStart = 0; } INLINE void PushHead(int item) { fTaskList[Head(fCounter)] = item; IncHead(fCounter); } INLINE int PopHead() { AtomicCounter old_val; AtomicCounter new_val; do { old_val = fCounter; new_val = old_val; if (Head(old_val) == Tail(old_val)) { return WORK_STEALING_INDEX; } else { DecHead(new_val); } } while (!CAS1(&fCounter, Value(old_val), Value(new_val))); return fTaskList[Head(old_val) - 1]; } INLINE int PopTail() { AtomicCounter old_val; AtomicCounter new_val; do { old_val = fCounter; new_val = old_val; if (Head(old_val) == Tail(old_val)) { return WORK_STEALING_INDEX; } else { IncTail(new_val); } } while (!CAS1(&fCounter, Value(old_val), Value(new_val))); return fTaskList[Tail(old_val)]; } INLINE void MeasureStealingDur() { // Takes first timetamp if (fStealingStart == 0) { fStealingStart = DSP_rdtsc(); } else if ((DSP_rdtsc() - fStealingStart) > gMaxStealing) { Yield(); } } INLINE void ResetStealingDur() { fStealingStart = 0; } static INLINE int GetNextTask(int thread, int num_threads) { int tasknum; for (int i = 0; i < num_threads; i++) { if ((i != thread) && gTaskQueueList[i] && (tasknum = gTaskQueueList[i]->PopTail()) != WORK_STEALING_INDEX) { #ifdef __linux__ //if (thread != MASTER_THREAD) gTaskQueueList[thread]->ResetStealingDur(); #endif return tasknum; // Task is found } } NOP(); #ifdef __linux__ //if (thread != MASTER_THREAD) gTaskQueueList[thread]->MeasureStealingDur(); #endif return WORK_STEALING_INDEX; // Otherwise will try "workstealing" again next cycle... } INLINE void InitTaskList(int task_list_size, int* task_list, int thread_num, int cur_thread, int& tasknum) { int task_slice = task_list_size / thread_num; int task_slice_rest = task_list_size % thread_num; if (task_slice == 0) { // Each thread directly executes one task tasknum = task_list[cur_thread]; // Thread 0 takes remaining ready tasks if (cur_thread == 0) { for (int index = 0; index < task_slice_rest - thread_num; index++) { PushHead(task_list[task_slice_rest + index]); } } } else { // Each thread takes a part of ready tasks int index; for (index = 0; index < task_slice - 1; index++) { PushHead(task_list[cur_thread * task_slice + index]); } // Each thread directly executes one task tasknum = task_list[cur_thread * task_slice + index]; // Thread 0 takes remaining ready tasks if (cur_thread == 0) { for (index = 0; index < task_slice_rest; index++) { PushHead(task_list[thread_num * task_slice + index]); } } } } static INLINE void Init() { for (int i = 0; i < THREAD_SIZE; i++) { gTaskQueueList[i] = 0; } } }; struct TaskGraph { volatile int gTaskList[QUEUE_SIZE]; TaskGraph() { for (int i = 0; i < QUEUE_SIZE; i++) { gTaskList[i] = 0; } } INLINE void InitTask(int task, int val) { gTaskList[task] = val; } void Display() { for (int i = 0; i < QUEUE_SIZE; i++) { printf("Task = %d activation = %d\n", i, gTaskList[i]); } } INLINE void ActivateOutputTask(TaskQueue& queue, int task, int& tasknum) { if (DEC_ATOMIC(&gTaskList[task]) == 1) { if (tasknum == WORK_STEALING_INDEX) { tasknum = task; } else { queue.PushHead(task); } } } INLINE void ActivateOutputTask(TaskQueue& queue, int task) { if (DEC_ATOMIC(&gTaskList[task]) == 1) { queue.PushHead(task); } } INLINE void ActivateOneOutputTask(TaskQueue& queue, int task, int& tasknum) { if (DEC_ATOMIC(&gTaskList[task]) == 1) { tasknum = task; } else { tasknum = queue.PopHead(); } } INLINE void GetReadyTask(TaskQueue& queue, int& tasknum) { if (tasknum == WORK_STEALING_INDEX) { tasknum = queue.PopHead(); } } }; #define THREAD_POOL_SIZE 16 #define JACK_SCHED_POLICY SCHED_FIFO /* use 512KB stack per thread - the default is way too high to be feasible * with mlockall() on many systems */ #define THREAD_STACK 524288 #ifdef __APPLE__ #include #include #include #define THREAD_SET_PRIORITY 0 #define THREAD_SCHEDULED_PRIORITY 1 static UInt32 GetThreadPriority(pthread_t thread, int inWhichPriority); // returns the thread's priority as it was last set by the API static UInt32 GetThreadSetPriority(pthread_t thread) { return GetThreadPriority(thread, THREAD_SET_PRIORITY); } // returns the thread's priority as it was last scheduled by the Kernel static UInt32 GetThreadScheduledPriority(pthread_t thread) { return GetThreadPriority(thread, THREAD_SCHEDULED_PRIORITY); } static int SetThreadToPriority(pthread_t thread, UInt32 inPriority, Boolean inIsFixed, UInt64 period, UInt64 computation, UInt64 constraint) { if (inPriority == 96) { // REAL-TIME / TIME-CONSTRAINT THREAD thread_time_constraint_policy_data_t theTCPolicy; theTCPolicy.period = period; theTCPolicy.computation = computation; theTCPolicy.constraint = constraint; theTCPolicy.preemptible = true; kern_return_t res = thread_policy_set(pthread_mach_thread_np(thread), THREAD_TIME_CONSTRAINT_POLICY, (thread_policy_t)&theTCPolicy, THREAD_TIME_CONSTRAINT_POLICY_COUNT); return (res == KERN_SUCCESS) ? 0 : -1; } else { // OTHER THREADS thread_extended_policy_data_t theFixedPolicy; thread_precedence_policy_data_t thePrecedencePolicy; SInt32 relativePriority; // [1] SET FIXED / NOT FIXED theFixedPolicy.timeshare = !inIsFixed; thread_policy_set(pthread_mach_thread_np(thread), THREAD_EXTENDED_POLICY, (thread_policy_t)&theFixedPolicy, THREAD_EXTENDED_POLICY_COUNT); // [2] SET PRECEDENCE // N.B.: We expect that if thread A created thread B, and the program wishes to change // the priority of thread B, then the call to change the priority of thread B must be // made by thread A. // This assumption allows us to use pthread_self() to correctly calculate the priority // of the feeder thread (since precedency policy's importance is relative to the // spawning thread's priority.) relativePriority = inPriority - GetThreadSetPriority(pthread_self()); thePrecedencePolicy.importance = relativePriority; kern_return_t res = thread_policy_set(pthread_mach_thread_np(thread), THREAD_PRECEDENCE_POLICY, (thread_policy_t)&thePrecedencePolicy, THREAD_PRECEDENCE_POLICY_COUNT); return (res == KERN_SUCCESS) ? 0 : -1; } } static UInt32 GetThreadPriority(pthread_t thread, int inWhichPriority) { thread_basic_info_data_t threadInfo; policy_info_data_t thePolicyInfo; unsigned int count; // get basic info count = THREAD_BASIC_INFO_COUNT; thread_info(pthread_mach_thread_np(thread), THREAD_BASIC_INFO, (thread_info_t)&threadInfo, &count); switch (threadInfo.policy) { case POLICY_TIMESHARE: count = POLICY_TIMESHARE_INFO_COUNT; thread_info(pthread_mach_thread_np(thread), THREAD_SCHED_TIMESHARE_INFO, (thread_info_t)&(thePolicyInfo.ts), &count); if (inWhichPriority == THREAD_SCHEDULED_PRIORITY) { return thePolicyInfo.ts.cur_priority; } else { return thePolicyInfo.ts.base_priority; } break; case POLICY_FIFO: count = POLICY_FIFO_INFO_COUNT; thread_info(pthread_mach_thread_np(thread), THREAD_SCHED_FIFO_INFO, (thread_info_t)&(thePolicyInfo.fifo), &count); if ((thePolicyInfo.fifo.depressed) && (inWhichPriority == THREAD_SCHEDULED_PRIORITY)) { return thePolicyInfo.fifo.depress_priority; } return thePolicyInfo.fifo.base_priority; break; case POLICY_RR: count = POLICY_RR_INFO_COUNT; thread_info(pthread_mach_thread_np(thread), THREAD_SCHED_RR_INFO, (thread_info_t)&(thePolicyInfo.rr), &count); if ((thePolicyInfo.rr.depressed) && (inWhichPriority == THREAD_SCHEDULED_PRIORITY)) { return thePolicyInfo.rr.depress_priority; } return thePolicyInfo.rr.base_priority; break; } return 0; } static int GetParams(pthread_t thread, UInt64* period, UInt64* computation, UInt64* constraint) { thread_time_constraint_policy_data_t theTCPolicy; mach_msg_type_number_t count = THREAD_TIME_CONSTRAINT_POLICY_COUNT; boolean_t get_default = false; kern_return_t res = thread_policy_get(pthread_mach_thread_np(thread), THREAD_TIME_CONSTRAINT_POLICY, (thread_policy_t)&theTCPolicy, &count, &get_default); if (res == KERN_SUCCESS) { *period = theTCPolicy.period; *computation = theTCPolicy.computation; *constraint = theTCPolicy.constraint; return 0; } else { return -1; } } static UInt64 period = 0; static UInt64 computation = 0; static UInt64 constraint = 0; INLINE void GetRealTime() { if (period == 0) { GetParams(pthread_self(), &period, &computation, &constraint); } } INLINE void SetRealTime() { SetThreadToPriority(pthread_self(), 96, true, period, computation, constraint); } void CancelThread(pthread_t fThread) { mach_port_t machThread = pthread_mach_thread_np(fThread); thread_terminate(machThread); } INLINE void Yield() { //sched_yield(); } #endif #ifdef __linux__ static int faust_sched_policy = -1; static struct sched_param faust_rt_param; INLINE void GetRealTime() { if (faust_sched_policy == -1) { memset(&faust_rt_param, 0, sizeof(faust_rt_param)); pthread_getschedparam(pthread_self(), &faust_sched_policy, &faust_rt_param); } } INLINE void SetRealTime() { faust_rt_param.sched_priority--; pthread_setschedparam(pthread_self(), faust_sched_policy, &faust_rt_param); } void CancelThread(pthread_t fThread) { pthread_cancel(fThread); pthread_join(fThread, NULL); } INLINE void Yield() { pthread_yield(); } #endif #define KDSPMESURE 50 static INLINE int Range(int min, int max, int val) { if (val < min) { return min; } else if (val > max) { return max; } else { return val; } } struct Runnable { UInt64 fTiming[KDSPMESURE]; UInt64 fStart; UInt64 fStop; int fCounter; float fOldMean; int fOldfDynamicNumThreads; bool fDynAdapt; virtual void computeThread(int cur_thread) = 0; Runnable():fCounter(0), fOldMean(1000000000.f), fOldfDynamicNumThreads(1) { memset(fTiming, 0, sizeof(long long int ) * KDSPMESURE); fDynAdapt = getenv("OMP_DYN_THREAD") ? strtol(getenv("OMP_DYN_THREAD"), NULL, 10) : false; } INLINE float ComputeMean() { float mean = 0; for (int i = 0; i < KDSPMESURE; i++) { mean += float(fTiming[i]); } mean /= float(KDSPMESURE); return mean; } INLINE void StartMeasure() { if (!fDynAdapt) return; fStart = DSP_rdtsc(); } INLINE void StopMeasure(int staticthreadnum, int& dynthreadnum) { if (!fDynAdapt) return; fStop = DSP_rdtsc(); fCounter = (fCounter + 1) % KDSPMESURE; if (fCounter == 0) { float mean = ComputeMean(); if (fabs(mean - fOldMean) > 5000) { if (mean > fOldMean) { // Worse... //printf("Worse %f %f\n", mean, fOldMean); if (fOldfDynamicNumThreads > dynthreadnum) { fOldfDynamicNumThreads = dynthreadnum; dynthreadnum += 1; } else { fOldfDynamicNumThreads = dynthreadnum; dynthreadnum -= 1; } } else { // Better... //printf("Better %f %f\n", mean, fOldMean); if (fOldfDynamicNumThreads > dynthreadnum) { fOldfDynamicNumThreads = dynthreadnum; dynthreadnum -= 1; } else { fOldfDynamicNumThreads = dynthreadnum; dynthreadnum += 1; } } fOldMean = mean; dynthreadnum = Range(1, staticthreadnum, dynthreadnum); //printf("dynthreadnum %d\n", dynthreadnum); } } fTiming[fCounter] = fStop - fStart; } }; struct DSPThread; struct DSPThreadPool { DSPThread* fThreadPool[THREAD_POOL_SIZE]; int fThreadCount; volatile int fCurThreadCount; DSPThreadPool(); ~DSPThreadPool(); void StartAll(int num, bool realtime); void StopAll(); void SignalAll(int num, Runnable* runnable); void SignalOne(); bool IsFinished(); static DSPThreadPool* Init(); static void Destroy(); }; struct DSPThread { pthread_t fThread; DSPThreadPool* fThreadPool; Runnable* fRunnable; sem_t* fSemaphore; char fName[128]; bool fRealTime; int fNum; DSPThread(int num, DSPThreadPool* pool) { fNum = num; fThreadPool = pool; fRunnable = NULL; fRealTime = false; sprintf(fName, "faust_sem_%d_%p", GetPID(), this); if ((fSemaphore = sem_open(fName, O_CREAT, 0777, 0)) == (sem_t*)SEM_FAILED) { printf("Allocate: can't check in named semaphore name = %s err = %s", fName, strerror(errno)); } } virtual ~DSPThread() { sem_unlink(fName); sem_close(fSemaphore); } void Run() { while (sem_wait(fSemaphore) != 0) {} fRunnable->computeThread(fNum + 1); fThreadPool->SignalOne(); } static void* ThreadHandler(void* arg) { DSPThread* thread = static_cast(arg); AVOIDDENORMALS; // One "dummy" cycle to setup thread if (thread->fRealTime) { thread->Run(); SetRealTime(); } while (true) { thread->Run(); } return NULL; } int Start(bool realtime) { pthread_attr_t attributes; struct sched_param rt_param; pthread_attr_init(&attributes); int priority = 60; // TODO int res; if (realtime) { fRealTime = true; }else { fRealTime = getenv("OMP_REALTIME") ? strtol(getenv("OMP_REALTIME"), NULL, 10) : true; } if ((res = pthread_attr_setdetachstate(&attributes, PTHREAD_CREATE_JOINABLE))) { printf("Cannot request joinable thread creation for real-time thread res = %d err = %s\n", res, strerror(errno)); return -1; } if ((res = pthread_attr_setscope(&attributes, PTHREAD_SCOPE_SYSTEM))) { printf("Cannot set scheduling scope for real-time thread res = %d err = %s\n", res, strerror(errno)); return -1; } if (realtime) { if ((res = pthread_attr_setinheritsched(&attributes, PTHREAD_EXPLICIT_SCHED))) { printf("Cannot request explicit scheduling for RT thread res = %d err = %s\n", res, strerror(errno)); return -1; } if ((res = pthread_attr_setschedpolicy(&attributes, JACK_SCHED_POLICY))) { printf("Cannot set RR scheduling class for RT thread res = %d err = %s\n", res, strerror(errno)); return -1; } memset(&rt_param, 0, sizeof(rt_param)); rt_param.sched_priority = priority; if ((res = pthread_attr_setschedparam(&attributes, &rt_param))) { printf("Cannot set scheduling priority for RT thread res = %d err = %s\n", res, strerror(errno)); return -1; } } else { if ((res = pthread_attr_setinheritsched(&attributes, PTHREAD_INHERIT_SCHED))) { printf("Cannot request explicit scheduling for RT thread res = %d err = %s\n", res, strerror(errno)); return -1; } } if ((res = pthread_attr_setstacksize(&attributes, THREAD_STACK))) { printf("Cannot set thread stack size res = %d err = %s\n", res, strerror(errno)); return -1; } if ((res = pthread_create(&fThread, &attributes, ThreadHandler, this))) { printf("Cannot create thread res = %d err = %s\n", res, strerror(errno)); return -1; } pthread_attr_destroy(&attributes); return 0; } void Signal(bool stop, Runnable* runnable) { fRunnable = runnable; sem_post(fSemaphore); } void Stop() { CancelThread(fThread); } }; DSPThreadPool::DSPThreadPool() { for (int i = 0; i < THREAD_POOL_SIZE; i++) { fThreadPool[i] = NULL; } fThreadCount = 0; fCurThreadCount = 0; } DSPThreadPool::~DSPThreadPool() { StopAll(); for (int i = 0; i < fThreadCount; i++) { delete(fThreadPool[i]); fThreadPool[i] = NULL; } fThreadCount = 0; } void DSPThreadPool::StartAll(int num, bool realtime) { if (fThreadCount == 0) { // Protection for multiple call... (like LADSPA plug-ins in Ardour) for (int i = 0; i < num; i++) { fThreadPool[i] = new DSPThread(i, this); fThreadPool[i]->Start(realtime); fThreadCount++; } } } void DSPThreadPool::StopAll() { for (int i = 0; i < fThreadCount; i++) { fThreadPool[i]->Stop(); } } void DSPThreadPool::SignalAll(int num, Runnable* runnable) { fCurThreadCount = num; for (int i = 0; i < num; i++) { // Important : use local num here... fThreadPool[i]->Signal(false, runnable); } } void DSPThreadPool::SignalOne() { DEC_ATOMIC(&fCurThreadCount); } bool DSPThreadPool::IsFinished() { return (fCurThreadCount == 0); } DSPThreadPool* DSPThreadPool::Init() { if (gClientCount++ == 0 && !gThreadPool) { gThreadPool = new DSPThreadPool(); } return gThreadPool; } void DSPThreadPool::Destroy() { if (--gClientCount == 0 && gThreadPool) { delete gThreadPool; gThreadPool = NULL; } } #ifndef PLUG_IN // Globals TaskQueue* gTaskQueueList[THREAD_SIZE] = {0}; DSPThreadPool* gThreadPool = 0; int gClientCount = 0; int clock_per_microsec = (getenv("CLOCKSPERSEC") ? strtoll(getenv("CLOCKSPERSEC"), NULL, 10) : DEFAULT_CLOCKSPERSEC) / 1000000; UInt64 gMaxStealing = getenv("OMP_STEALING_DUR") ? strtoll(getenv("OMP_STEALING_DUR"), NULL, 10) * clock_per_microsec : MAX_STEAL_DUR * clock_per_microsec; #endif faust-0.9.46/architecture/reduce.lib0000644000175000017500000000737311702130733017300 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST library file Copyright (C) 2010-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ************************************************************************ ************************************************************************/ declare name "Reduce Library"; declare author "Yann Orlarey (orlarey at grame.fr)"; declare copyright "Grame"; declare version "0.1"; declare license "LGPL"; //--------------------------------------------------------------- // Provides various operations on block of samples // using a high order 'reduce(op, n)' fold-like function : // // sumn(n) : the sum of a block of n input samples // maxn(n) : the max of a block of n input samples // minn(n) : the min of a block of n input samples // mean(n) : the mean of a block of n input samples // RMS(n) : the RMS of a block of n input samples //--------------------------------------------------------------- //--------------------------------------------------------------- // reduce (op, n, x) //--------------------------------------------------------------- // Fold-like high order function. Apply a binary operation // on a block of consecutive samples of a signal . // For example : reduce(max,128) will compute the maximun of each // block of 128 samples. Please note that the resulting // value, while produced continuously, will be constant for // the duration of a block. A new value is only produced // at the end of a block. Note also that blocks should be of at // least one sample (n>0). reduce(op, n, x) = compute ~ (_,_,_) : (!,!,_) with { compute (acc, count, val) = if(count}{}, rulecolor=\color{black} } faust-0.9.46/architecture/matlabplot.cpp0000644000175000017500000003717711702130733020211 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2007-2011 Julius O. Smith III --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ************************************************************************ ************************************************************************/ /* matlabplot.cpp = simple variation of plot.cpp */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include // g++ -O3 -lm -lsndfile myfx.cpp using namespace std; struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; //------------------------------------------------------------------- // Generic min and max using c++ inline //------------------------------------------------------------------- inline int max (unsigned int a, unsigned int b) { return (a>b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a> n); } template T abs (T a) { return (a> /****************************************************************************** ******************************************************************************* USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; // -- frames and labels virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void show() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; struct param { float* fZone; float fMin; float fMax; param(float* z, float init, float a, float b) : fZone(z), fMin(a), fMax(b) { *z = init; } }; class CMDUI : public UI { int fArgc; char** fArgv; vector fFiles; stack fPrefix; map fKeyParam; void openAnyBox(const char* label) { string prefix; if (label && label[0]) { prefix = fPrefix.top() + "-" + label; } else { prefix = fPrefix.top(); } fPrefix.push(prefix); } string simplify(const string& src) { int i=0; int level=0; string dst; while (src[i] ) { switch (level) { case 0 : case 1 : case 2 : // Skip the begin of the label "--foo-" // until 3 '-' have been read if (src[i]=='-') { level++; } break; case 3 : // copy the content, but skip non alphnum // and content in parenthesis switch (src[i]) { case '(' : case '[' : level++; break; case '-' : dst += '-'; break; default : if (isalnum(src[i])) { dst+= tolower(src[i]); } } break; default : // here we are inside parenthesis and // we skip the content until we are back to // level 3 switch (src[i]) { case '(' : case '[' : level++; break; case ')' : case ']' : level--; break; default : break; } } i++; } return dst; } public: CMDUI(int argc, char *argv[]) : UI(), fArgc(argc), fArgv(argv) { fPrefix.push("-"); } virtual ~CMDUI() {} void addOption(const char* label, float* zone, float init, float min, float max) { string fullname = "-" + simplify(fPrefix.top() + "-" + label); fKeyParam.insert(make_pair(fullname, param(zone, init, min, max))); } virtual void addButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addToggleButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addCheckButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) {} virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) {} virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) {} virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) {} virtual void openFrameBox(const char* label) { openAnyBox(label); } virtual void openTabBox(const char* label) { openAnyBox(label); } virtual void openHorizontalBox(const char* label) { openAnyBox(label); } virtual void openVerticalBox(const char* label) { openAnyBox(label); } virtual void closeBox() { fPrefix.pop(); } virtual void show() {} virtual void run() {} void printhelp() { map::iterator i; cout << fArgc << "\n"; cout << fArgv[0] << " option list : "; for (i = fKeyParam.begin(); i != fKeyParam.end(); i++) { cout << "[ " << i->first << " " << i->second.fMin << ".." << i->second.fMax <<" ] "; } cout << " infile outfile\n"; } void process_command() { map::iterator p; for (int i = 1; i < fArgc; i++) { if (fArgv[i][0] == '-') { if ( (strcmp(fArgv[i], "-help") == 0) || (strcmp(fArgv[i], "-h") == 0) || (strcmp(fArgv[i], "--help") == 0) ) { printhelp(); exit(1); } p = fKeyParam.find(fArgv[i]); if (p == fKeyParam.end()) { cout << fArgv[0] << " : unrecognized option " << fArgv[i] << "\n"; printhelp(); exit(1); } char* end; *(p->second.fZone) = float(strtod(fArgv[i+1], &end)); i++; } else { fFiles.push_back(fArgv[i]); } } } int files() { return fFiles.size(); } char* file (int n) { return fFiles[n]; } }; //---------------------------------------------------------------- // d�inition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; virtual void conclude() {} }; //---------------------------------------------------------------------------- // FAUST generated code //---------------------------------------------------------------------------- <> mydsp DSP; class channels { int fNumFrames; int fNumChannels; float* fBuffers[256]; public: channels(int nframes, int nchannels) { fNumFrames = nframes; fNumChannels = nchannels; // allocate audio channels for (int i = 0; i < fNumChannels; i++) { fBuffers[i] = (float*) calloc (fNumFrames, sizeof(float)); } } ~channels() { // free separate input channels for (int i = 0; i < fNumChannels; i++) { free(fBuffers[i]); } } float** buffers() { return fBuffers; } }; #define kFrames 512 int main(int argc, char *argv[] ) { float fStartAtSample; float fnbsamples; CMDUI* interface = new CMDUI(argc, argv); DSP.buildUserInterface(interface); interface->addOption("-s", &fStartAtSample, 0, 0.0, 100000000.0); interface->addOption("-n", &fnbsamples, 16, 0.0, 100000000.0); if (DSP.getNumInputs() > 0) { fprintf(stderr, "*** input signals not supported by architecture file matlab.cpp\n"); exit(1); } // init signal processor and the user interface values: DSP.init(44100); // modify the UI values according to the command-line options: interface->process_command(); int nouts = DSP.getNumOutputs(); channels chan (kFrames, nouts); // print usage info: printf("%% Usage: octave --persist thisfile.m\n\n"); // print matlab-compatible matrix syntax followed by a plot command: printf("faustout = [ ...\n"); // skip samples int start = int(fStartAtSample); while (start > kFrames) { DSP.compute(kFrames, 0, chan.buffers()); start -= kFrames; } if (start > 0) { DSP.compute(start, 0, chan.buffers()); } // end skip int nbsamples = int(fnbsamples); while (nbsamples > kFrames) { DSP.compute(kFrames, 0, chan.buffers()); for (int i = 0; i < kFrames; i++) { for (int c = 0; c < nouts; c++) { printf(" %g", chan.buffers()[c][i]); } if (i < kFrames-1) { printf("; ...\n"); } else { printf("; ...\n%%---- Chunk Boundary ----\n"); } } nbsamples -= kFrames; } if (nbsamples) { // Write out partial-chunk buffer: DSP.compute(nbsamples, 0, chan.buffers()); for (int i = 0; i < nbsamples; i++) { for (int c = 0; c < nouts; c++) { printf(" %g", chan.buffers()[c][i]); } printf("; ...\n"); } } printf("];\n\n"); printf("plot(faustout);\n"); printf("title('Plot generated by %s made using ''faust -a matlabplot.cpp ...''');\n",argv[0]); printf("xlabel('Time (samples)');\n"); printf("ylabel('Amplitude');\n"); if (nouts>1) { printf("legend("); for (int c = 0; c < nouts; c++) { printf("'channel %d'", c+1); if (c. EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as that this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ // Faust -> Alchemy -> ActionScript C++ Architecture File #include "AS3.h" // math.h is needed for many faust examples, so include it. // otherwise we have to hand-edit c++. #include "math.h" #ifdef __GNUC__ #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) // abs is now predefined //template T abs (T a) { return (a> n); } #else #endif /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } <> /****************************************************************************** ******************************************************************************* ABSTRACT USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { public: bool fStopped; UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(char* label, float* zone) = 0; virtual void addToggleButton(char* label, float* zone) = 0; virtual void addCheckButton(char* label, float* zone) = 0; virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void openFrameBox(char* label) = 0; virtual void openTabBox(char* label) = 0; virtual void openHorizontalBox(char* label) = 0; virtual void openVerticalBox(char* label) = 0; virtual void closeBox() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } }; ////// Implementation of UI // Faust UI hookup is straightforward // We subclass from UI and then these methods will get called by compiled // Faust which assembles controls. We handle all UI as needed, and when // things changed we need to set *zone=(some value). // This is a little more complicated when jumping between alchemy/script. // So rather than deal with marshalling pointers, just cheat and use an int:pointer map. // NOTE: I should have used an STL map but that wasn't working back when I used gcc. // I'll investigate since that would clean up the code quite a bit. // upper bound on number of controls #define MAX_CONTROLS 25 // map of unique ui control id to a float* where faust reads the corresponding value. static float* uidToZone[MAX_CONTROLS]; // Counter that assigns control IDs. static int uiMap_id = 0; // I wasn't able to properly thunk the UI actionscrpit methods to C. // Since we know the complete UI at the time of creation, a collection of // ui creation info is passed back from faust_init, and actionscript // can read it and create the UI. // This is a little messy and was done last-minute. const int TYPE_BUTTON = 0; const int TYPE_TOGGLE = 1; const int TYPE_SLIDER = 2; // max length for a label - more than 50 chars will get cut. #define LABEL_LEN 50 struct uiElemInfo { int type; int id; char label[LABEL_LEN+1]; float min; float max; float init; float step; }; uiElemInfo uielems[MAX_CONTROLS]; static int uielems_size = 0; // todo: stdio.h has strncpy, I just got paranoid about extra includes making the code bigger :) void strcopy(char *src, char *dst) { dst[LABEL_LEN] = '\0'; for (int i = 0; i < LABEL_LEN; ++i) { if (0 == (dst[i] = src[i])) return; } } void BuildUIArray(AS3_Val &array) { for (int i = 0; i < uielems_size; ++i) { AS3_Val result = AS3_Object( "type:AS3ValType,id:AS3ValType,label:AS3ValType,min:AS3ValType,max:AS3ValType,init:AS3ValType,step:AS3ValType", AS3_Int(uielems[i].type), AS3_Int(uielems[i].id), AS3_String(uielems[i].label), AS3_Number(uielems[i].min), AS3_Number(uielems[i].max), AS3_Number(uielems[i].init), AS3_Number(uielems[i].step) ); AS3_Set(array, AS3_Int(i), result); // decrease refcount? todo: this may leak memory... //AS3_Release(result); } } class ActionScriptUI : public UI { public: ActionScriptUI() { fStopped = false; } virtual ~ActionScriptUI() { } // Pass in a zone, get back a unique ID. int registerControl(float *zone) { if (!zone) return 0; uiMap_id++; uidToZone[uiMap_id] = zone; return uiMap_id; } // Called from Flash when any control is updated. // Results will take effect on the next dsp callback // since everything runs in the same thread. void updateControl(int id, float value) { *(uidToZone[id]) = value; } virtual void addButton(char* label, float* zone) { int id = registerControl(zone); uielems[uielems_size].type = TYPE_BUTTON; uielems[uielems_size].id = id; strcopy(label, uielems[uielems_size].label); uielems[uielems_size].min = 0; uielems[uielems_size].max = 0; uielems[uielems_size].init = 0; uielems[uielems_size].step = 0; uielems_size++; } virtual void addToggleButton(char* label, float* zone) { int id = registerControl(zone); uielems[uielems_size].type = TYPE_TOGGLE; uielems[uielems_size].id = id; strcopy(label, uielems[uielems_size].label); uielems[uielems_size].min = 0; uielems[uielems_size].max = 0; uielems[uielems_size].init = 0; uielems[uielems_size].step = 0; uielems_size++; } virtual void addCheckButton(char* label, float* zone) { return addToggleButton(label, zone); } virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) { return addHorizontalSlider(label, zone, init, min, max, step); } virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) { int id = registerControl(zone); uielems[uielems_size].type = TYPE_SLIDER; uielems[uielems_size].id = id; strcopy(label, uielems[uielems_size].label); uielems[uielems_size].min = min; uielems[uielems_size].max = max; uielems[uielems_size].init = init; uielems[uielems_size].step = step; uielems_size++; } virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) { return addHorizontalSlider(label, zone, init, min, max, step); } // Not implemented yet - these only affect UI layout and aren't critical. // See actionscript comments for details. virtual void openFrameBox(char* label) {} virtual void openTabBox(char* label) {} virtual void openHorizontalBox(char* label) {} virtual void openVerticalBox(char* label) {} virtual void closeBox() {} virtual void run() { } }; /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // abstract definition of a signal processor //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; //---------------------------------------------------------------------------- // FAUST generated signal processor //---------------------------------------------------------------------------- /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ /// Alchemy DSP class Faust { public: Faust() { // mydsp will be defined by faust in 'includeclass' dsp_ = new mydsp(); ui_ = new ActionScriptUI(); dsp_->buildUserInterface(ui_); dsp_->init(44100); // 44.1k, 2 channels, @ 32-bit is hardcoded into flash player 10. } ~Faust() { if (dsp_) delete dsp_; if (ui_) delete ui_; } //private: public: // we're all friends here mydsp *dsp_; ActionScriptUI *ui_; }; Faust *faust = NULL; // Alchemy wrapper interface code static AS3_Val api_init(void *thisPtr, AS3_Val args) { faust = new Faust(); AS3_Val array = AS3_Array(""); BuildUIArray(array); return array; } static AS3_Val api_shutdown(void *thisPtr, AS3_Val args) { if (faust) delete faust; return AS3_Int(0); } // args = int id, float value static AS3_Val api_onControlChange(void *thisPtr, AS3_Val args) { if (!faust) return AS3_Int(0); // Marshall the arguments in. int id = 0; AS3_Val controlVal; AS3_ArrayValue(args, "IntType, AS3ValType", &id, &controlVal); double control_double = AS3_NumberValue(controlVal); // loss of precision is ok. float value = (float)control_double; // Call the actual update function faust->ui_->updateControl(id, value); return AS3_Int(0); } #define MAX_FLASH_BUFFER 8192 // output buffers - L/R channels separate static float bufferL[MAX_FLASH_BUFFER]; static float bufferR[MAX_FLASH_BUFFER]; // output buffer - construct interleaved output static float bufferSum[2*MAX_FLASH_BUFFER]; // input buffers - L/R separate static float inputL[MAX_FLASH_BUFFER]; static float inputR[MAX_FLASH_BUFFER]; // input buffer scratch space - interleaved static float bufferInSum[2*MAX_FLASH_BUFFER]; // This is the most 'interesting' function of the file - it takes in flash sound buffers // and sends them through Faust DSP code. // args = int nsamples, float* buffer (byte[] in flash) static AS3_Val api_tick(void *thisPtr, AS3_Val args) { if (!faust) return AS3_Int(0); // Marshall arguments in. int nsamples = 0; int use_input = 0; AS3_Val buffer; AS3_Val input; AS3_ArrayValue(args, "IntType, IntType, AS3ValType, AS3ValType", &nsamples, &use_input, &input, &buffer); float* outputs[2] = {bufferL, bufferR}; float* inputs[2] = {inputL, inputR}; if (use_input) { //AS3_ByteArray_seek(input, 0, 0); // we need (#samples * sizeof(float) * 2 channels) bytes. AS3_ByteArray_readBytes((char*)bufferInSum, input, nsamples * 4 * 2); char *src = (char*)bufferInSum; char *dl = (char*)inputL, *dr = (char*)inputR; for (int i = 0; i < nsamples; ++i) { // fix endianness dl[3] = src[0]; dl[2] = src[1]; dl[1] = src[2]; dl[0] = src[3]; dr[3] = src[4]; dr[2] = src[5]; dr[1] = src[6]; dr[0] = src[7]; dl += 4; dr += 4; src += 8; } } // magic! faust->dsp_->compute(nsamples, inputs, outputs); // Post-process: interleave arrays. // Faust outputs to two separate arrays (which are probably contiguous in memory - see above) // Flash's sound callback needs this as LRLRLRLR... // For added fun, LLVM internal float seems to be the opposite endianness // as what Flash uses, so we have to do this byte-by-byte. char *copyL = (char*)bufferL; char *copyR = (char*)bufferR; char *tape_head = (char*)bufferSum; for (int i = 0; i < nsamples; ++i) { *tape_head++ = copyL[3]; *tape_head++ = copyL[2]; *tape_head++ = copyL[1]; *tape_head++ = copyL[0]; *tape_head++ = copyR[3]; *tape_head++ = copyR[2]; *tape_head++ = copyR[1]; *tape_head++ = copyR[0]; copyL+=4; copyR+=4; } AS3_ByteArray_writeBytes(buffer, bufferSum, 4 * nsamples * 2); return AS3_Int(0); } //Alchemy entry point // Here we are responsible for contructing an API object to pass back to Flash. // This must contain pointers to all functions which may be called. int main() { //define the methods exposed to ActionScript //typed as an ActionScript Function instance AS3_Val methodInit = AS3_Function( NULL, api_init ); AS3_Val methodShutdown = AS3_Function( NULL, api_shutdown ); AS3_Val methodOnControlChange = AS3_Function( NULL, api_onControlChange ); AS3_Val methodTick = AS3_Function( NULL, api_tick ); // construct an API lookup table with references to all functions // In flash we'll instantiate one of these and call methods on it // e.g. faust.api_tick(). AS3_Val result = AS3_Object( "api_init:AS3ValType, api_shutdown:AS3ValType, api_onControlChange:AS3ValType, api_tick:AS3ValType", methodInit, methodShutdown, methodOnControlChange, methodTick); AS3_Release(methodInit); AS3_Release(methodShutdown); AS3_Release(methodOnControlChange); AS3_Release(methodTick); // notify Flash of our functions and run -- this function never returns. AS3_LibInit(result); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/filter.lib0000644000175000017500000016314711702130733017320 0ustar orlareyorlarey// filter.lib - digital filters of various types useful in audio and beyond declare name "Faust Filter Library"; declare author "Julius O. Smith (jos at ccrma.stanford.edu)"; declare copyright "Julius O. Smith III"; declare version "1.29"; declare license "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license) declare reference "https://ccrma.stanford.edu/~jos/filters/"; import("music.lib"); // delay, frac and, from math.lib, SR and PI //---------------------- zero(z) -------------------------- // z = location of zero along real axis in z-plane // Difference equation: y(n) = x(n) - z * x(n-1) // Reference: https://ccrma.stanford.edu/~jos/filters/One_Zero.html zero(z) = _ <: _,mem : _,*(z) : -; //------------------------ pole(p) --------------------------- // p = pole location = feedback coefficient // Could also be called a "leaky integrator". // Difference equation: y(n) = x(n) + p * y(n-1) // Reference: https://ccrma.stanford.edu/~jos/filters/One_Pole.html pole(p) = + ~ *(p); //---------------------- integrator -------------------------- // pole(1) [implemented separately for block-diagram clarity] integrator = + ~ _ ; //----------------------- tau2pole --------------------------- // tau2pole(tau) returns a real pole giving exponential decay with // tau = time-constant in seconds // tau2pole(tau) = exp(-1.0/(tau*SR)); //---------------------- smooth(s) -------------------------- // Exponential smoothing by a unity-dc-gain one-pole lowpass // // USAGE: smooth(tau2pole(tau)), where // tau = desired smoothing time constant in seconds, // or // smooth(s), where s = smoothness between 0 and 1. // s=0 for no smoothing // s=0.999 is "very smooth" // s>1 is unstable, and s=1 yields the zero signal for all inputs. // The exponential time-constant is approximately // 1/(1-s) samples, when s is close to (but less than) 1. // Reference: // https://ccrma.stanford.edu/~jos/mdft/Convolution_Example_2_ADSR.html smooth(s) = *(1.0 - s) : + ~ *(s); //------------------- dcblockerat(fb) ----------------------- // fb = "break frequency" in Hz, i.e., -3 dB gain frequency. // The amplitude response is substantially flat above fb, // and sloped at about +6 dB/octave below fb. // Derived from the analog transfer function // H(s) = s / (s + 2*PI*fb) // by the low-frequency-matching bilinear transform method // (i.e., the standard frequency-scaling constant 2*SR). // Reference: // https://ccrma.stanford.edu/~jos/pasp/Bilinear_Transformation.html dcblockerat(fb) = *(b0) : zero(1) : pole(p) with { wn = PI*fb/SR; b0 = 1.0 / (1 + wn); p = (1 - wn) * b0; }; //---------------------- dcblocker -------------------------- // Default dc blocker has -3dB point near 35 Hz (at 44.1 kHz) // and high-frequency gain near 1.0025 (due to no scaling) // dcblocker = zero(1) : pole(0.995); //------------ notchw(width,freq), notch(freq) -------------- // width = "notch width" in Hz (approximate) // freq = "notch frequency" in Hz // Reference: // https://ccrma.stanford.edu/~jos/pasp/Phasing_2nd_Order_Allpass_Filters.html notchw(width,freq) = tf2(b0,b1,b2,a1,a2) with { fb = 0.5*width; // First design a dcblockerat(width/2) wn = PI*fb/SR; b0db = 1.0 / (1 + wn); p = (1 - wn) * b0db; // This is our pole radius. // Now place unit-circle zeros at desired angles: tn = 2*PI*freq/SR; a2 = p * p; a2p1 = 1+a2; a1 = -a2p1*cos(tn); b1 = a1; b0 = 0.5*a2p1; b2 = b0; }; //========================= Comb Filters =============================== //----------------------- ff_comb, ff_fcomb ---------------------------- // Feed-Forward Comb Filter // // USAGE: // _ : ff_comb(maxdel,intdel,b0,bM) : _ // _ : ff_fcomb(maxdel,del,b0,bM) : _ // where // maxdel = maximum delay (a power of 2) // intdel = current (integer) comb-filter delay between 0 and maxdel // del = current (float) comb-filter delay between 0 and maxdel // b0 = gain applied to delay-line input // bM = gain applied to delay-line output and then summed with input // // Note that ff_comb requires integer delays (uses delay() internally) // while ff_fcomb takes floating-point delays (uses fdelay() internally). // // REFERENCE: // https://ccrma.stanford.edu/~jos/pasp/Feedforward_Comb_Filters.html ff_comb (maxdel,M,b0,bM) = _ <: *(b0), bM * delay(maxdel,M) : + ; ff_fcomb(maxdel,M,b0,bM) = _ <: *(b0), bM * fdelay(maxdel,M) : + ; // Typical special case: ffcombfilter(maxdel,del,g) = ff_comb(maxdel,del,1,g); //----------------------- fb_comb, fb_fcomb, rev1 ----------------------- // Feed-Back Comb Filter // // USAGE: // _ : fb_comb(maxdel,intdel,b0,aN) : _ // _ : fb_fcomb(maxdel,del,b0,aN) : _ // _ : rev1(maxdel,del,-aN) : _ // where // maxdel = maximum delay (a power of 2) // intdel = current (integer) comb-filter delay between 0 and maxdel // del = current (float) comb-filter delay between 0 and maxdel // b0 = gain applied to delay-line input and forwarded to output // aN = minus the gain applied to delay-line output before // summing with the input and feeding to the delay line // // Reference: // https://ccrma.stanford.edu/~jos/pasp/Feedback_Comb_Filters.html fb_comb (maxdel,N,b0,aN) = (+ <: delay(maxdel,N),_) ~ *(-aN) : !,*(b0); fb_fcomb(maxdel,N,b0,aN) = (+ <: fdelay(maxdel,N),_) ~ *(-aN) : !,*(b0); // The "rev1 section" dates back to the 1960s in computer-music reverberation. // See the jcrev and brassrev in effect.lib for usage examples. rev1(maxdel,N,g) = fb_comb (maxdel,N,1,-g); // Typical special case: fbcombfilter(maxdel,intdel,g) = (+ : delay(maxdel,intdel)) ~ *(g); ffbcombfilter(maxdel,del,g) = (+ : fdelay(maxdel,del)) ~ *(g); //------------------- allpass_comb, allpass_fcomb, rev2 ----------------- // Schroeder Allpass Comb Filter // // USAGE: // _ : allpass_comb (maxdel,intdel,aN) : _ // _ : allpass_fcomb(maxdel,del,aN) : _ // _ : rev2(maxdel,del,-aN) : _ // where // maxdel = maximum delay (a power of 2) // intdel = current (integer) comb-filter delay between 0 and maxdel // del = current (float) comb-filter delay between 0 and maxdel // aN = minus the feedback gain // // Note that allpass_comb(maxlen,len,aN) = // ff_comb(maxlen,len,aN,1) : // fb_comb(maxlen,len-1,1,aN); // which is a direct-form-1 implementation, requiring two delay lines. // The implementation here is direct-form-2 requiring only one delay line. // // REFERENCES: // https://ccrma.stanford.edu/~jos/pasp/Allpass_Two_Combs.html // https://ccrma.stanford.edu/~jos/pasp/Schroeder_Allpass_Sections.html // https://ccrma.stanford.edu/~jos/filters/Four_Direct_Forms.html allpass_comb(maxdel,N,aN) = (+ <: delay(maxdel,N-1),*(aN)) ~ *(-aN) : mem,_ : + ; // The "rev2 section" dates back to the 1960s in computer-music reverberation: rev2(maxlen,len,g) = allpass_comb(maxlen,len,-g); //================ Direct-Form Digital Filter Sections ================ // Specified by transfer-function polynomials B(z)/A(z) as in matlab //---------------------------- iir (tfN) ------------------------------- // Nth-order Infinite-Impulse-Response (IIR) digital filter, // implemented in terms of the Transfer-Function (TF) coefficients. // Such filter structures are termed "direct form". // // USAGE: // _ : iir(order,bcoeffs,acoeffs) : _ // where // order = filter order (int) = max(#poles,#zeros) // bcoeffs = (b0,b1,...,b_order) = TF numerator coefficients // acoeffs = (a1,...,a_order) = TF denominator coeffs (a0=1) // // REFERENCE: // https://ccrma.stanford.edu/~jos/filters/Four_Direct_Forms.html iir(bv,av) = sub ~ fir(av) : fir(bv); //----------------------------- sub --------------------------------- sub(x,y) = y-x; // move to math.lib? //----------------------------- fir --------------------------------- // FIR filter (convolution of FIR filter coefficients with a signal) // // USAGE: // _ : fir(bv) : _ // where bv = b0,b1,...,bn is a parallel bank of coefficient signals. // NOTE: bv is processed using pattern-matching at compile time, // so it must have this normal form (parallel signals). // EXAMPLE: Smoothing white noise with a five-point moving average: // bv = .2,.2,.2,.2,.2; // process = noise : fir(bv); // EQUIVALENT (note double parens): // process = noise : fir((.2,.2,.2,.2,.2)); fir(bv) = conv(bv); //--------------------------- conv, convN ------------------------------- // Convolution of input signal with given coefficients // // USAGE: // _ : conv((k1,k2,k3,...,kN)) : _; // Argument = one signal bank // _ : convN(N,(k1,k2,k3,...)) : _; // Useful when N < count((k1,...)) convN(N,kv,x) = sum(i,N,take(i+1,kv) * x@i); // take() defined in math.lib conv(kv,x) = sum(i,count(kv),take(i+1,kv) * x@i); // count() from math.lib // Named special cases: //----------------------------- tf1, tf2 --------------------------------- // tfN = N'th-order direct-form digital filter tf1(b0,b1,a1) = _ <: *(b0), (mem : *(b1)) :> + ~ *(0-a1); tf2(b0,b1,b2,a1,a2) = iir((b0,b1,b2),(a1,a2)); // cf. TF2 in music.lib) //===================== Ladder/Lattice Digital Filters ====================== // Ladder and lattice digital filters generally have superior numerical // properties relative to direct-form digital filters. They can be derived // from digital waveguide filters, which gives them a physical interpretation. // REFERENCES: // F. Itakura and S. Saito: "Digital Filtering Techniques for Speech Analysis and Synthesis", // 7th Int. Cong. Acoustics, Budapest, 25 C 1, 1971. // J. D. Markel and A. H. Gray: Linear Prediction of Speech, New York: Springer Verlag, 1976. // https://ccrma.stanford.edu/~jos/pasp/Conventional_Ladder_Filters.html //------------------------------ block, crossn,crossn1 ---------------------------------- // signal block/crossing utilities // (move to math.lib?) // block - terminate n signals (goes with bus(n) in math.lib) block(n) = par(i,n,!); // crossnn - cross two bus(n)s: crossnn(n) = bus(n),bus(n) <: block(n),bus(n),bus(n),block(n); // crossn1 - cross bus(n) and bus(1): crossn1(n) = bus(n),(bus(1)<:bus(n)) <: block(n),bus(n),bus(n),block(n):bus(1),block(n-1),bus(n); //------------------------------- av2sv ----------------------------------- // Compute reflection coefficients sv from transfer-function denominator av // // USAGE: // sv = av2sv(av) // where // av = parallel signal bank a1,...,aN // sv = parallel signal bank s1,...,sN // where si = ith reflection coefficient, and // ai = coefficient of z^(-i) in the filter // transfer-function denominator A(z). // // REFERENCE: // https://ccrma.stanford.edu/~jos/filters/Step_Down_Procedure.html // (where reflection coefficients are denoted by k rather than s). av2sv(av) = par(i,M,s(i+1)) with { M = count(av); s(m) = sr(M-m+1); // m=1..M sr(m) = Ari(m,M-m+1); // s_{M-1-m} Ari(m,i) = take(i+1,Ar(m-1)); //step-down recursion for lattice/ladder digital filters: Ar(0) = (1,av); // Ar(m) is order M-m (i.e. "reverse-indexed") Ar(m) = 1,par(i,M-m, (Ari(m,i+1) - sr(m)*Ari(m,M-m-i))/(1-sr(m)*sr(m))); }; //---------------------------- bvav2nuv -------------------------------- // Compute lattice tap coefficients from transfer-function coefficients // // USAGE: // nuv = bvav2nuv(bv,av) // where // av = parallel signal bank a1,...,aN // bv = parallel signal bank b0,b1,...,aN // nuv = parallel signal bank nu1,...,nuN // where nui is the i'th tap coefficient, // bi is the coefficient of z^(-i) in the filter numerator, // ai is the coefficient of z^(-i) in the filter denominator bvav2nuv(bv,av) = par(m,M+1,nu(m)) with { M = count(av); nu(m) = take(m+1,Pr(M-m)); // m=0..M // lattice/ladder tap parameters: Pr(0) = bv; // Pr(m) is order M-m, 'r' means "reversed" Pr(m) = par(i,M-m+1, (Pri(m,i) - nu(M-m+1)*Ari(m,M-m-i+1))); Pri(m,i) = take(i+1,Pr(m-1)); Ari(m,i) = take(i+1,Ar(m-1)); //step-down recursion for lattice/ladder digital filters: Ar(0) = (1,av); // Ar(m) is order M-m (recursion index must start at constant) Ar(m) = 1,par(i,M-m, (Ari(m,i+1) - sr(m)*Ari(m,M-m-i))/(1-sr(m)*sr(m))); sr(m) = Ari(m,M-m+1); // s_{M-1-m} }; //--------------------------- iir_lat2, allpassnt ----------------------- iir_lat2(bv,av) = allpassnt(M,sv) : sum(i,M+1,*(take(M-i+1,tg))) with { M = count(av); sv = av2sv(av); // sv = vector of sin(theta) reflection coefficients tg = bvav2nuv(bv,av); // tg = vector of tap gains }; // two-multiply lattice allpass (nested order-1 direct-form-ii allpasses): allpassnt(0,sv) = _; allpassnt(n,sv) = //0: x <: ((+ <: (allpassnt(n-1,sv)),*(s))~(*(-s))) : _',_ :+ _ : ((+ <: (allpassnt(n-1,sv),*(s)))~*(-s)) : fsec(n) with { fsec(1) = crossnn(1) : _, (_<:mem,_) : +,_; fsec(n) = crossn1(n) : _, (_<:mem,_),par(i,n-1,_) : +, par(i,n,_); innertaps(n) = par(i,n,_); s = take(n,sv); // reflection coefficient s = sin(theta) }; //------------------------------- iir_kl, allpassnklt ------------------------- iir_kl(bv,av) = allpassnklt(M,sv) : sum(i,M+1,*(tghr(i))) with { M = count(av); sv = av2sv(av); // sv = vector of sin(theta) reflection coefficients tg = bvav2nuv(bv,av); // tg = vector of tap gains for 2mul case tgr(i) = take(M+1-i,tg); tghr(n) = tgr(n)/pi(n); pi(0) = 1; pi(n) = pi(n-1)*(1+take(M-n+1,sv)); // all sign parameters '+' }; // Kelly-Lochbaum ladder allpass with tap lines: allpassnklt(0,sv) = _; allpassnklt(n,sv) = _ <: *(s),(*(1+s) : (+ : allpassnklt(n-1,sv))~(*(-s))) : fsec(n) with { fsec(1) = _, (_<:mem*(1-s),_) : sumandtaps(n); fsec(n) = _, (_<:mem*(1-s),_), par(i,n-1,_) : sumandtaps(n); s = take(n,sv); sumandtaps(n) = +,par(i,n,_); }; //------------------------------- iir_lat1, allpassn1mt ------------------------- iir_lat1(bv,av) = allpassn1mt(M,sv) : sum(i,M+1,*(tghr(i+1))) with { M = count(av); sv = av2sv(av); // sv = vector of sin(theta) reflection coefficients tg = bvav2nuv(bv,av); // tg = vector of tap gains tgr(i) = take(M+2-i,tg); // i=1..M+1 (for "takability") tghr(n)=tgr(n)/pi(n); pi(1) = 1; pi(n) = pi(n-1)*(1+take(M-n+2,sv)); // all sign parameters '+' }; // one-multiply lattice allpass with tap lines: allpassn1mt(0,sv) = _; allpassn1mt(n,sv)= _ <: _,_ : ((+:*(s) <: _,_),_ : _,+ : crossnn(1) : allpassn1mt(n-1,sv),_)~(*(-1)) : fsec(n) with { //0: fsec(n) = _',_ : + fsec(1) = crossnn(1) : _, (_<:mem,_) : +,_; fsec(n) = crossn1(n) : _, (_<:mem,_),par(i,n-1,_) : +, par(i,n,_); innertaps(n) = par(i,n,_); s = take(n,sv); // reflection coefficient s = sin(theta) }; //------------------------------- iir_nl, allpassnnlt ------------------------- // Normalized ladder filter // // REFERENCES: // J. D. Markel and A. H. Gray, Linear Prediction of Speech, New York: Springer Verlag, 1976. // https://ccrma.stanford.edu/~jos/pasp/Normalized_Scattering_Junctions.html iir_nl(bv,av) = allpassnnlt(M,sv) : sum(i,M+1,*(tghr(i))) with { M = count(av); sv = av2sv(av); // sv = vector of sin(theta) reflection coefficients tg = bvav2nuv(bv,av); // tg = vector of tap gains for 2mul case tgr(i) = take(M+1-i,tg); tghr(n) = tgr(n)/pi(n); pi(0) = 1; s(n) = take(M-n+1,sv); c(n) = sqrt(max(0,1-s(n)*s(n))); // compiler crashes on sqrt(-) pi(n) = pi(n-1)*c(n); }; // Normalized ladder allpass with tap lines: allpassnnlt(0,sv) = _; allpassnnlt(n,scl*(sv)) = allpassnnlt(n,par(i,count(sv),scl*(sv(i)))); allpassnnlt(n,sv) = _ <: *(s),(*(c) : (+ : allpassnnlt(n-1,sv))~(*(-s))) : fsec(n) with { fsec(1) = _, (_<:mem*(c),_) : sumandtaps(n); fsec(n) = _, (_<:mem*(c),_), par(i,n-1,_) : sumandtaps(n); s = take(n,sv); c = sqrt(max(0,1-s*s)); sumandtaps(n) = +,par(i,n,_); }; //========================= Useful special cases ============================ //-------------------------------- tf2np ------------------------------------ // tf2np - biquad based on a stable second-order Normalized Ladder Filter // (more robust to modulation than tf2 and protected against instability) tf2np(b0,b1,b2,a1,a2) = allpassnnlt(M,sv) : sum(i,M+1,*(tghr(i))) with { smax = 0.9999; // maximum reflection-coefficient magnitude allowed s2 = max(-smax, min(smax,a2)); // Project both reflection-coefficients s1 = max(-smax, min(smax,a1/(1+a2))); // into the defined stability-region. sv = (s1,s2); // vector of sin(theta) reflection coefficients M = 2; nu(2) = b2; nu(1) = b1 - b2*a1; nu(0) = (b0-b2*a2) - nu(1)*s1; tg = (nu(0),nu(1),nu(2)); tgr(i) = take(M+1-i,tg); // vector of tap gains for 2mul case tghr(n) = tgr(n)/pi(n); // apply pi parameters for NLF case pi(0) = 1; s(n) = take(M-n+1,sv); c(n) = sqrt(1-s(n)*s(n)); pi(n) = pi(n-1)*c(n); }; //----------------------------- wgr --------------------------------- // Second-order transformer-normalized digital waveguide resonator // USAGE: // _ : wgr(f,r) : _ // where // f = resonance frequency (Hz) // r = loss factor for exponential decay // (set to 1 to make a numerically stable oscillator) // // REFERENCES: // https://ccrma.stanford.edu/~jos/pasp/Power_Normalized_Waveguide_Filters.html // https://ccrma.stanford.edu/~jos/pasp/Digital_Waveguide_Oscillator.html // wgr(f,r,x) = (*(G),_<:_,((+:*(C))<:_,_),_:+,_,_:+(x),-) ~ cross : _,*(0-gi) with { C = cos(2*PI*f/SR); gi = sqrt(max(0,(1+C)/(1-C))); // compensate amplitude (only needed when G = r*(1-1' + gi')/gi; // frequency changes substantially) cross = _,_ <: !,_,_,!; }; //----------------------------- nlf2 -------------------------------- // Second order normalized digital waveguide resonator // USAGE: // _ : nlf2(f,r) : _ // where // f = resonance frequency (Hz) // r = loss factor for exponential decay // (set to 1 to make a sinusoidal oscillator) // // REFERENCE: // https://ccrma.stanford.edu/~jos/pasp/Power_Normalized_Waveguide_Filters.html // nlf2(f,r,x) = ((_<:_,_),(_<:_,_) : (*(s),*(c),*(c),*(0-s)) :> (*(r),+(x))) ~ cross with { th = 2*PI*f/SR; c = cos(th); s = sin(th); cross = _,_ <: !,_,_,!; }; //===================== Ladder/Lattice Allpass Filters ====================== // An allpass filter has gain 1 at every frequency, but variable phase. // Ladder/lattice allpass filters are specified by reflection coefficients. // They are defined here as nested allpass filters, hence the names allpassn*. // // REFERENCES // 1. https://ccrma.stanford.edu/~jos/pasp/Conventional_Ladder_Filters.html // https://ccrma.stanford.edu/~jos/pasp/Nested_Allpass_Filters.html // 2. Linear Prediction of Speech, Markel and Gray, Springer Verlag, 1976 // // QUICK GUIDE // allpassn - two-multiply lattice - each section is two multiply-adds // allpassnn - normalized form - four multiplies and two adds per section, // but coefficients can be time varying and nonlinear without // "parametric amplification" (modulation of signal energy). // allpassnkl - Kelly-Lochbaum form - four multiplies and two adds per // section, but all signals have an immediate physical // interpretation as traveling pressure waves, etc. // allpassn1m - One-multiply form - one multiply and three adds per section. // Normally the most efficient in special-purpose hardware. // // TYPICAL USAGE // _ : allpassn(N,sv) : _ // where // N = allpass order (number of ladder or lattice sections) // sv = (s1,s2,...,sN) = reflection coefficients (between -1 and 1). // For allpassnn only, sv is replaced by tv, where sv(i) = sin(tv(i)), // where tv(i) may range between -PI and PI. // // two-multiply: allpassn(0,sv) = _; allpassn(n,sv) = _ <: ((+ <: (allpassn(n-1,sv)),*(s))~(*(-s))) : _',_ :+ with { s = take(n,sv); }; // power-normalized (reflection coefficients s = sin(t)): allpassnn(0,tv) = _; allpassnn(n,tv) = _ <: *(s), (*(c) : (+ : allpassnn(n-1,tv))~(*(-s))) : _, mem*c : + with { c=cos(take(n,tv)); s=sin(take(n,tv)); }; // power-normalized with sparse delays dv(n)>1: allpassnns(0,tv,dmax,dv) = _; allpassnns(n,tv,dmax,dv) = _ <: *(s), (*(c) : (+ : dl : allpassnns(n-1,tv,dmax,dv))~(*(-s))) : _, mem*c : + with { c=cos(take(n,tv)); s=sin(take(n,tv)); dl=delay(dmax,(take(n,dv)-1)); }; // Kelly-Lochbaum: allpassnkl(0,sv) = _; allpassnkl(n,sv) = _ <: *(s),(*(1+s) : (+ : allpassnkl(n-1,sv))~(*(-s))) : _, mem*(1-s) : + with { s = take(n,sv); }; // one-multiply: allpassn1m(0,sv) = _; allpassn1m(n,sv)= _ <: _,_ : ((+:*(s) <: _,_),_ : _,+ : cross : allpassn1m(n-1,sv),_)~(*(-1)) : _',_ : + with {s = take(n,sv); cross = _,_ <: !,_,_,!; }; //===== Digital Filter Sections Specified as Analog Filter Sections ===== // //------------------------- tf2s, tf2snp -------------------------------- // Second-order direct-form digital filter, // specified by ANALOG transfer-function polynomials B(s)/A(s), // and a frequency-scaling parameter. Digitization via the // bilinear transform is built in. // // USAGE: tf2s(b2,b1,b0,a1,a0,w1), where // // b2 s^2 + b1 s + b0 // H(s) = -------------------- // s^2 + a1 s + a0 // // and w1 is the desired digital frequency (in radians/second) // corresponding to analog frequency 1 rad/sec (i.e., s = j). // // EXAMPLE: A second-order ANALOG Butterworth lowpass filter, // normalized to have cutoff frequency at 1 rad/sec, // has transfer function // // 1 // H(s) = ----------------- // s^2 + a1 s + 1 // // where a1 = sqrt(2). Therefore, a DIGITAL Butterworth lowpass // cutting off at SR/4 is specified as tf2s(0,0,1,sqrt(2),1,PI*SR/2); // // METHOD: Bilinear transform scaled for exact mapping of w1. // REFERENCE: // https://ccrma.stanford.edu/~jos/pasp/Bilinear_Transformation.html // tf2s(b2,b1,b0,a1,a0,w1) = tf2(b0d,b1d,b2d,a1d,a2d) with { c = 1/tan(w1*0.5/SR); // bilinear-transform scale-factor csq = c*c; d = a0 + a1 * c + csq; b0d = (b0 + b1 * c + b2 * csq)/d; b1d = 2 * (b0 - b2 * csq)/d; b2d = (b0 - b1 * c + b2 * csq)/d; a1d = 2 * (a0 - csq)/d; a2d = (a0 - a1*c + csq)/d; }; // tf2snp = tf2s but using a protected normalized ladder filter for tf2: tf2snp(b2,b1,b0,a1,a0,w1) = tf2np(b0d,b1d,b2d,a1d,a2d) with { c = 1/tan(w1*0.5/SR); // bilinear-transform scale-factor csq = c*c; d = a0 + a1 * c + csq; b0d = (b0 + b1 * c + b2 * csq)/d; b1d = 2 * (b0 - b2 * csq)/d; b2d = (b0 - b1 * c + b2 * csq)/d; a1d = 2 * (a0 - csq)/d; a2d = (a0 - a1*c + csq)/d; }; //----------------------------- tf1s -------------------------------- // First-order direct-form digital filter, // specified by ANALOG transfer-function polynomials B(s)/A(s), // and a frequency-scaling parameter. // // USAGE: tf1s(b1,b0,a0,w1), where // // b1 s + b0 // H(s) = ---------- // s + a0 // // and w1 is the desired digital frequency (in radians/second) // corresponding to analog frequency 1 rad/sec (i.e., s = j). // // EXAMPLE: A first-order ANALOG Butterworth lowpass filter, // normalized to have cutoff frequency at 1 rad/sec, // has transfer function // // 1 // H(s) = ------- // s + 1 // // so b0 = a0 = 1 and b1 = 0. Therefore, a DIGITAL first-order // Butterworth lowpass with gain -3dB at SR/4 is specified as // // tf1s(0,1,1,PI*SR/2); // digital half-band order 1 Butterworth // // METHOD: Bilinear transform scaled for exact mapping of w1. // REFERENCE: // https://ccrma.stanford.edu/~jos/pasp/Bilinear_Transformation.html // tf1s(b1,b0,a0,w1) = tf1(b0d,b1d,a1d) with { c = 1/tan((w1)*0.5/SR); // bilinear-transform scale-factor d = a0 + c; b1d = (b0 - b1*c) / d; b0d = (b0 + b1*c) / d; a1d = (a0 - c) / d; }; //----------------------------- tf2sb -------------------------------- // Bandpass mapping of tf2s: In addition to a frequency-scaling parameter // w1 (set to HALF the desired passband width in rad/sec), // there is a desired center-frequency parameter wc (also in rad/s). // Thus, tf2sb implements a fourth-order digital bandpass filter section // specified by the coefficients of a second-order analog lowpass prototpe // section. Such sections can be combined in series for higher orders. // The order of mappings is (1) frequency scaling (to set lowpass cutoff w1), // (2) bandpass mapping to wc, then (3) the bilinear transform, with the // usual scale parameter 2*SR. Algebra carried out in maxima and pasted here. // tf2sb(b2,b1,b0,a1,a0,w1,wc) = iir((b0d/a0d,b1d/a0d,b2d/a0d,b3d/a0d,b4d/a0d),(a1d/a0d,a2d/a0d,a3d/a0d,a4d/a0d)) with { T = 1.0/float(SR); b0d = (4*b0*w1^2+8*b2*wc^2)*T^2+8*b1*w1*T+16*b2; b1d = 4*b2*wc^4*T^4+4*b1*wc^2*w1*T^3-16*b1*w1*T-64*b2; b2d = 6*b2*wc^4*T^4+(-8*b0*w1^2-16*b2*wc^2)*T^2+96*b2; b3d = 4*b2*wc^4*T^4-4*b1*wc^2*w1*T^3+16*b1*w1*T-64*b2; b4d = (b2*wc^4*T^4-2*b1*wc^2*w1*T^3+(4*b0*w1^2+8*b2*wc^2)*T^2-8*b1*w1*T +16*b2) + b2*wc^4*T^4+2*b1*wc^2*w1*T^3; a0d = wc^4*T^4+2*a1*wc^2*w1*T^3+(4*a0*w1^2+8*wc^2)*T^2+8*a1*w1*T+16; a1d = 4*wc^4*T^4+4*a1*wc^2*w1*T^3-16*a1*w1*T-64; a2d = 6*wc^4*T^4+(-8*a0*w1^2-16*wc^2)*T^2+96; a3d = 4*wc^4*T^4-4*a1*wc^2*w1*T^3+16*a1*w1*T-64; a4d = wc^4*T^4-2*a1*wc^2*w1*T^3+(4*a0*w1^2+8*wc^2)*T^2-8*a1*w1*T+16; }; //----------------------------- tf1sb -------------------------------- // First-to-second-order lowpass-to-bandpass section mapping, // analogous to tf2sb above. // tf1sb(b1,b0,a0,w1,wc) = tf2(b0d/a0d,b1d/a0d,b2d/a0d,a1d/a0d,a2d/a0d) with { T = 1.0/float(SR); a0d = wc^2*T^2+2*a0*w1*T+4; b0d = b1*wc^2*T^2 +2*b0*w1*T+4*b1; b1d = 2*b1*wc^2*T^2-8*b1; b2d = b1*wc^2*T^2-2*b0*w1*T+4*b1; a1d = 2*wc^2*T^2-8; a2d = wc^2*T^2-2*a0*w1*T+4; }; //====================== Simple Resonator Filters ====================== // resonlp = 2nd-order lowpass with corner resonance: resonlp(fc,Q,gain) = tf2s(b2,b1,b0,a1,a0,wc) with { wc = 2*PI*fc; a1 = 2/Q; a0 = 1; b2 = 0; b1 = 0; b0 = gain; }; // resonhp = 2nd-order highpass with corner resonance: resonhp(fc,Q,gain,x) = gain*x-resonlp(fc,Q,gain,x); // resonbp = 2nd-order bandpass resonbp(fc,Q,gain) = tf2s(b2,b1,b0,a1,a0,wc) with { wc = 2*PI*fc; a1 = 2/Q; a0 = 1; b2 = 0; b1 = gain; b0 = 0; }; //================ Butterworth Lowpass/Highpass Filters ====================== // Nth-order Butterworth lowpass or highpass filters // // USAGE: // _ : lowpass(N,fc) : _ // _ : highpass(N,fc) : _ // where // N = filter order (number of poles) [nonnegative integer] // fc = desired cut-off frequency (-3dB frequency) in Hz // REFERENCE: // https://ccrma.stanford.edu/~jos/filters/Butterworth_Lowpass_Design.html // 'butter' function in Octave ("[z,p,g] = butter(N,1,'s');") // ACKNOWLEDGMENT // Generalized recursive formulation initiated by Yann Orlarey. lowpass(N,fc) = lowpass0_highpass1(0,N,fc); highpass(N,fc) = lowpass0_highpass1(1,N,fc); lowpass0_highpass1(s,N,fc) = lphpr(s,N,N,fc) with { lphpr(s,0,N,fc) = _; lphpr(s,1,N,fc) = tf1s(s,1-s,1,2*PI*fc); lphpr(s,O,N,fc) = lphpr(s,(O-2),N,fc) : tf2s(s,0,1-s,a1s,1,w1) with { parity = N % 2; S = (O-parity)/2; // current section number a1s = -2*cos(-PI + (1-parity)*PI/(2*N) + (S-1+parity)*PI/N); w1 = 2*PI*fc; }; }; //========== Special Filter-Bank Delay-Equalizing Allpass Filters =========== // // These special allpass filters are needed by filterbank et al. below. // They are equivalent to (lowpass(N,fc) +|- highpass(N,fc))/2, but with // canceling pole-zero pairs removed (which occurs for odd N). //-------------------- lowpass_plus|minus_highpass ------------------ highpass_plus_lowpass(1,fc) = _; highpass_plus_lowpass(3,fc) = tf2s(1,-1,1,1,1,w1) with { w1 = 2*PI*fc; }; highpass_minus_lowpass(3,fc) = tf1s(-1,1,1,w1) with { w1 = 2*PI*fc; }; highpass_plus_lowpass(5,fc) = tf2s(1,-a11,1,a11,1,w1) with { a11 = 1.618033988749895; w1 = 2*PI*fc; }; highpass_minus_lowpass(5,fc) = tf1s(1,-1,1,w1) : tf2s(1,-a12,1,a12,1,w1) with { a12 = 0.618033988749895; w1 = 2*PI*fc; }; // Catch-all definitions for generality - even order is done: highpass_plus_lowpass(N,fc) = switch_odd_even(N%2,N,fc) with { switch_odd_even(0,N,fc) = highpass_plus_lowpass_even(N,fc); switch_odd_even(1,N,fc) = highpass_plus_lowpass_odd(N,fc); }; highpass_minus_lowpass(N,fc) = switch_odd_even(N%2,N,fc) with { switch_odd_even(0,N,fc) = highpass_minus_lowpass_even(N,fc); switch_odd_even(1,N,fc) = highpass_minus_lowpass_odd(N,fc); }; highpass_plus_lowpass_even(N,fc) = highpass(N,fc) + lowpass(N,fc); highpass_minus_lowpass_even(N,fc) = highpass(N,fc) - lowpass(N,fc); // FIXME: Rewrite the following, as for orders 3 and 5 above, // to eliminate pole-zero cancellations: highpass_plus_lowpass_odd(N,fc) = highpass(N,fc) + lowpass(N,fc); highpass_minus_lowpass_odd(N,fc) = highpass(N,fc) - lowpass(N,fc); //===================== Elliptic (Cauer) Lowpass Filters =================== // USAGE: // _ : lowpass3e(fc) : _ // _ : lowpass6e(fc) : _ // where fc = -3dB frequency in Hz // // REFERENCES: // http://en.wikipedia.org/wiki/Elliptic_filter // functions 'ncauer' and 'ellip' in Octave //----------------------------- lowpass3e ----------------------------- // Third-order Elliptic (Cauer) lowpass filter // DESIGN: For spectral band-slice level display (see octave_analyzer3e): // [z,p,g] = ncauer(Rp,Rs,3); % analog zeros, poles, and gain, where // Rp = 60 % dB ripple in stopband // Rs = 0.2 % dB ripple in passband // lowpass3e(fc) = tf2s(b21,b11,b01,a11,a01,w1) : tf1s(0,1,a02,w1) with { a11 = 0.802636764161030; // format long; poly(p(1:2)) % in octave a01 = 1.412270893774204; a02 = 0.822445908998816; // poly(p(3)) % in octave b21 = 0.019809144837789; // poly(z) b11 = 0; b01 = 1.161516418982696; w1 = 2*PI*fc; }; //----------------------------- lowpass6e ----------------------------- // Sixth-order Elliptic/Cauer lowpass filter // DESIGN: For spectral band-slice level display (see octave_analyzer6e): // [z,p,g] = ncauer(Rp,Rs,6); % analog zeros, poles, and gain, where // Rp = 80 % dB ripple in stopband // Rs = 0.2 % dB ripple in passband // lowpass6e(fc) = tf2s(b21,b11,b01,a11,a01,w1) : tf2s(b22,b12,b02,a12,a02,w1) : tf2s(b23,b13,b03,a13,a03,w1) with { b21 = 0.000099999997055; a21 = 1; b11 = 0; a11 = 0.782413046821645; b01 = 0.000433227200555; a01 = 0.245291508706160; b22 = 1; a22 = 1; b12 = 0; a12 = 0.512478641889141; b02 = 7.621731298870603; a02 = 0.689621364484675; b23 = 1; a23 = 1; b13 = 0; a13 = 0.168404871113589; b03 = 53.536152954556727; a03 = 1.069358407707312; w1 = 2*PI*fc; }; //===================== Elliptic Highpass Filters ===================== // USAGE: // _ : highpass3e(fc) : _ // _ : highpass6e(fc) : _ // where fc = -3dB frequency in Hz //----------------------------- highpass3e ----------------------------- // Third-order Elliptic (Cauer) highpass filter // DESIGN: Inversion of lowpass3e wrt unit circle in s plane (s <- 1/s) // highpass3e(fc) = tf2s(b01/a01,b11/a01,b21/a01,a11/a01,1/a01,w1) : tf1s(1/a02,0,1/a02,w1) with { a11 = 0.802636764161030; a01 = 1.412270893774204; a02 = 0.822445908998816; b21 = 0.019809144837789; b11 = 0; b01 = 1.161516418982696; w1 = 2*PI*fc; }; //----------------------------- highpass6e ----------------------------- // Sixth-order Elliptic/Cauer highpass filter // METHOD: Inversion of lowpass3e wrt unit circle in s plane (s <- 1/s) // highpass6e(fc) = tf2s(b01/a01,b11/a01,b21/a01,a11/a01,1/a01,w1) : tf2s(b02/a02,b12/a02,b22/a02,a12/a02,1/a02,w1) : tf2s(b03/a03,b13/a03,b23/a03,a13/a03,1/a03,w1) with { b21 = 0.000099999997055; a21 = 1; b11 = 0; a11 = 0.782413046821645; b01 = 0.000433227200555; a01 = 0.245291508706160; b22 = 1; a22 = 1; b12 = 0; a12 = 0.512478641889141; b02 = 7.621731298870603; a02 = 0.689621364484675; b23 = 1; a23 = 1; b13 = 0; a13 = 0.168404871113589; b03 = 53.536152954556727; a03 = 1.069358407707312; w1 = 2*PI*fc; }; //================== Butterworth Bandpass/Bandstop Filters ===================== // Order 2*Nh Butterworth bandpass filter made using the transformation // s <- s + wc^2/s on lowpass(Nh), where wc is the desired bandpass center // frequency. The lowpass(Nh) cutoff w1 is half the desired bandpass width. // A notch-like "bandstop" filter is similarly made from highpass(Nh). // // USAGE: // _ : bandpass(Nh,fl,fu) : _ // _ : bandstop(Nh,fl,fu) : _ // where // Nh = HALF the desired bandpass/bandstop order (which is therefore even) // fl = lower -3dB frequency in Hz // fu = upper -3dB frequency in Hz // Thus, the passband (stopband) width is fu-fl, // and its center frequency is (fl+fu)/2. // // REFERENCE: // http://cnx.org/content/m16913/latest/ // bandpass(Nh,fl,fu) = bandpass0_bandstop1(0,Nh,fl,fu); bandstop(Nh,fl,fu) = bandpass0_bandstop1(1,Nh,fl,fu); bandpass0_bandstop1(s,Nh,fl,fu) = bpbsr(s,Nh,Nh,fl,fu) with { wl = 2*PI*fl; // digital (z-plane) lower passband edge wu = 2*PI*fu; // digital (z-plane) upper passband edge c = 2.0*SR; // bilinear transform scaling used in tf2sb, tf1sb wla = c*tan(wl/c); // analog (s-splane) lower cutoff wua = c*tan(wu/c); // analog (s-splane) upper cutoff wc = sqrt(wla*wua); // s-plane center frequency w1 = wua - wc^2/wua; // s-plane lowpass prototype cutoff bpbsr(s,0,Nh,fl,fu) = _; bpbsr(s,1,Nh,fl,fu) = tf1sb(s,1-s,1,w1,wc); bpbsr(s,O,Nh,fl,fu) = bpbsr(s,O-2,Nh,fl,fu) : tf2sb(s,0,(1-s),a1s,1,w1,wc) with { parity = Nh % 2; S = (O-parity)/2; // current section number a1s = -2*cos(-PI + (1-parity)*PI/(2*Nh) + (S-1+parity)*PI/Nh); }; }; //======================= Elliptic Bandpass Filters ============================ //----------------------------- bandpass6e ----------------------------- // Order 12 elliptic bandpass filter analogous to bandpass(6) above. // bandpass6e(fl,fu) = tf2sb(b21,b11,b01,a11,a01,w1,wc) : tf1sb(0,1,a02,w1,wc) with { a11 = 0.802636764161030; // In octave: format long; poly(p(1:2)) a01 = 1.412270893774204; a02 = 0.822445908998816; // poly(p(3)) b21 = 0.019809144837789; // poly(z) b11 = 0; b01 = 1.161516418982696; wl = 2*PI*fl; // digital (z-plane) lower passband edge wu = 2*PI*fu; // digital (z-plane) upper passband edge c = 2.0*SR; // bilinear transform scaling used in tf2sb, tf1sb wla = c*tan(wl/c); // analog (s-splane) lower cutoff wua = c*tan(wu/c); // analog (s-splane) upper cutoff wc = sqrt(wla*wua); // s-plane center frequency w1 = wua - wc^2/wua; // s-plane lowpass cutoff }; //----------------------------- bandpass12e ----------------------------- bandpass12e(fl,fu) = tf2sb(b21,b11,b01,a11,a01,w1,wc) : tf2sb(b22,b12,b02,a12,a02,w1,wc) : tf2sb(b23,b13,b03,a13,a03,w1,wc) with { // octave script output: b21 = 0.000099999997055; a21 = 1; b11 = 0; a11 = 0.782413046821645; b01 = 0.000433227200555; a01 = 0.245291508706160; b22 = 1; a22 = 1; b12 = 0; a12 = 0.512478641889141; b02 = 7.621731298870603; a02 = 0.689621364484675; b23 = 1; a23 = 1; b13 = 0; a13 = 0.168404871113589; b03 = 53.536152954556727; a03 = 1.069358407707312; wl = 2*PI*fl; // digital (z-plane) lower passband edge wu = 2*PI*fu; // digital (z-plane) upper passband edge c = 2.0*SR; // bilinear transform scaling used in tf2sb, tf1sb wla = c*tan(wl/c); // analog (s-splane) lower cutoff wua = c*tan(wu/c); // analog (s-splane) upper cutoff wc = sqrt(wla*wua); // s-plane center frequency w1 = wua - wc^2/wua; // s-plane lowpass cutoff }; //================= Parametric Equalizers (Shelf, Peaking) ================== // REFERENCES // - http://en.wikipedia.org/wiki/Equalization // - Digital Audio Signal Processing, Udo Zolzer, Wiley, 1999, p. 124 // - http://www.harmony-central.com/Computer/Programming/Audio-EQ-Cookbook.txt // http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt // - https://ccrma.stanford.edu/~jos/filters/Low_High_Shelving_Filters.html // - https://ccrma.stanford.edu/~jos/filters/Peaking_Equalizers.html // - maxmsp.lib in the Faust distribution // - bandfilter.dsp in the faust2pd distribution //----------------------------- low_shelf ------------------------------------ // First-order "low shelf" filter (gain boost|cut between dc and some frequency) // USAGE: lowshelf(L0,fx), where // L0 = desired boost (dB) between dc and fx // fx = desired transition frequency (Hz) from boost to unity gain // The gain at SR/2 is constrained to be 1. // low_shelf = low_shelf3; // default low_shelf1(L0,fx,x) = x + (db2linear(L0)-1)*lowpass(1,fx,x); low_shelf1_l(G0,fx,x) = x + (G0-1)*lowpass(1,fx,x); low_shelf3(L0,fx,x) = x + (db2linear(L0)-1)*lowpass(3,fx,x); low_shelf5(L0,fx,x) = x + (db2linear(L0)-1)*lowpass(5,fx,x); //----------------------------- high_shelf ----------------------------------- // First-order "high shelf" filter (gain boost|cut above some frequency) // // USAGE: high_shelf(Lpi,fx), where // Lpi = desired boost or cut (dB) between fx and SR/2 // fx = desired transition frequency in Hz // The gain at dc is constrained to be 1 // high_shelf=high_shelf3; //default high_shelf1(Lpi,fx,x) = x + (db2linear(Lpi)-1)*highpass(1,fx,x); high_shelf1_l(Gpi,fx,x) = x + (Gpi-1)*highpass(1,fx,x); high_shelf3(Lpi,fx,x) = x + (db2linear(Lpi)-1)*highpass(3,fx,x); high_shelf5(Lpi,fx,x) = x + (db2linear(Lpi)-1)*highpass(5,fx,x); //-------------------------------- peak_eq ----------------------------------- // Second order "peaking equalizer" section // (gain boost or cut near some frequency) // Also called a "parametric equalizer" section // USAGE: _ : peak_eq(Lfx,fx,B) : _; // where // Lfx = level (dB) at fx // fx = peak frequency (Hz) // B = bandwidth (B) of peak in Hz // peak_eq(Lfx,fx,B) = tf2s(1,b1s,1,a1s,1,wx) with { T = float(1.0/SR); Bw = B*T/sin(wx*T); // prewarp s-bandwidth for more accuracy in z-plane a1 = PI*Bw; b1 = g*a1; g = db2linear(abs(Lfx)); b1s = select2(Lfx>0,a1,b1); // When Lfx>0, pole dominates bandwidth a1s = select2(Lfx>0,b1,a1); // When Lfx<0, zero dominates wx = 2*PI*fx; }; //------------------------------- peak_eq_cq --------------------------------- // Constant-Q second order peaking equalizer section // USAGE: _ : peak_eq_cq(Lfx,fx,Q) : _; // where // Lfx = level (dB) at fx // fx = boost or cut frequency (Hz) // Q = "Quality factor" = fx/B where B = bandwidth of peak in Hz // peak_eq_cq(Lfx,fx,Q) = peak_eq(Lfx,fx,fx/Q); //------------------------------- peak_eq_rm --------------------------------- // Regalia-Mitra second order peaking equalizer section // USAGE: _ : peak_eq_rm(Lfx,fx,tanPiBT) : _; // where // Lfx = level (dB) at fx // fx = boost or cut frequency (Hz) // tanPiBT = tan(PI*B/SR), where B = -3dB bandwidth (Hz) when 10^(Lfx/20) = 0 // ~ PI*B/SR for narrow bandwidths B // // REFERENCE: // P.A. Regalia, S.K. Mitra, and P.P. Vaidyanathan, // "The Digital All-Pass Filter: A Versatile Signal Processing Building Block" // Proceedings of the IEEE, 76(1):19-37, Jan. 1988. (See pp. 29-30.) // peak_eq_rm(Lfx,fx,tanPiBT) = _ <: _,A,_ : +,- : *(0.5),*(K/2.0) : + with { A = tf2(k2, k1*(1+k2), 1, k1*(1+k2), k2) <: _,_; // allpass k1 = 0.0 - cos(2.0*PI*fx/SR); k2 = (1.0 - tanPiBT)/(1.0 + tanPiBT); K = db2linear(Lfx); }; //-------------------------- parametric_eq_demo ------------------------------ // USAGE: _ : parametric_eq_demo: _ ; parametric_eq_demo = // input_signal : low_shelf(LL,FL) : peak_eq(LP,FP,BP) : high_shelf(LH,FH) // Recommended: // : mth_octave_spectral_level_demo(2) // half-octave spectrum analyzer with { eq_group(x) = hgroup("[0] PARAMETRIC EQ SECTIONS [tooltip: See Faust's filter.lib for info and pointers]",x); ls_group(x) = eq_group(vgroup("[1] Low Shelf",x)); LL = ls_group(hslider("[0] Low Boost|Cut [unit:dB] [style:knob] [tooltip: Amount of low-frequency boost or cut in decibels]", 0,-40,40,0.1)); FL = ls_group(hslider("[1] Transition Frequency [unit:Hz] [style:knob] [tooltip: Transition-frequency from boost (cut) to unity gain]", 200,1,5000,1)); pq_group(x) = eq_group(vgroup("[2] Peaking Equalizer [tooltip: Parametric Equalizer sections from filter.lib]",x)); LP = pq_group(hslider("[0] Peak Boost|Cut [unit:dB] [style:knob] [tooltip: Amount of local boost or cut in decibels]", 0,-40,40,0.1)); FP = pq_group(hslider("[1] Peak Frequency [unit:PK] [style:knob] [tooltip: Peak Frequency in Piano Key (PK) units (A-440= 49 PK)]", 49,1,100,1)) : smooth(0.999) : pianokey2hz with { pianokey2hz(x) = 440.0*pow(2.0, (x-49.0)/12); }; Q = pq_group(hslider("[2] Peak Q [style:knob] [tooltip: Quality factor (Q) of the peak = center-frequency/bandwidth]", 40,1,50,0.1)); BP = FP/Q; hs_group(x) = eq_group(vgroup("[3] High Shelf [tooltip: A high shelf provides a boost or cut above some frequency]",x)); LH = hs_group(hslider("[0] High Boost|Cut [unit:dB] [style:knob] [tooltip: Amount of high-frequency boost or cut in decibels]", 0,-40,40,.1)); FH = hs_group(hslider("[1] Transition Frequency [unit:Hz] [style:knob] [tooltip: Transition-frequency from boost (cut) to unity gain]", 8000,20,10000,1)); }; //========================= Lagrange Interpolation ======================== // Reference: // https://ccrma.stanford.edu/~jos/pasp/Lagrange_Interpolation.html // //------------------ fdelay1, fdelay2, fdelay3, fdelay4 --------------- // Delay lines interpolated using Lagrange interpolation // USAGE: _ : fdelayN(maxdelay, delay, inputsignal) : _ // (exactly like fdelay in music.lib) // where N=1,2,3, or 4 is the order of the Lagrange interpolation polynomial. // // NOTE: requested delay should not be less than (N-1)/2. // // NOTE: While the implementations below appear to use multiple delay lines, // they in fact use only one thanks to optimization by the Faust compiler. // first-order case (linear interpolation) - equivalent to fdelay in music.lib // delay d in [0,1] fdelay1(n,d,x) = delay(n,id,x)*(1 - fd) + delay(n,id+1,x)*fd with { id = int(d); fd = frac(d); }; // second-order (quadratic) case, delay in [0.5,1.5] // delay d should be at least 0.5 fdelay2(n,d,x) = delay(n,id,x)*(1-fd)*(2-fd)/2 + delay(n,id+1,x)*(2-fd)*fd + delay(n,id+2,x)*(fd-1)*fd/2 with { o = 0.49999; // offset to make life easy for interpolator dmo = d - o; // assumed nonnegative id = int(dmo); fd = o + frac(dmo); }; // third-order (cubic) case, delay in [1,2] // delay d should be at least 1 fdelay3(n,d,x) = delay(n,id,x) * (0-fdm1*fdm2*fdm3)/6 + delay(n,id+1,x) * fd*fdm2*fdm3/2 + delay(n,id+2,x) * (0-fd*fdm1*fdm3)/2 + delay(n,id+3,x) * fd*fdm1*fdm2/6 with { id = int(d-1); fd = 1+frac(d); fdm1 = fd-1; fdm2 = fd-2; fdm3 = fd-3; }; // fourth-order (quartic) case, delay in [1.5,2.5] // delay d should be at least 1.5 fdelay4(n,d,x) = delay(n,id,x) * fdm1*fdm2*fdm3*fdm4/24 + delay(n,id+1,x) * (0-fd*fdm2*fdm3*fdm4)/6 + delay(n,id+2,x) * fd*fdm1*fdm3*fdm4/4 + delay(n,id+3,x) * (0-fd*fdm1*fdm2*fdm4)/6 + delay(n,id+4,x) * fd*fdm1*fdm2*fdm3/24 with { //v1: o = 1; o = 1.49999; dmo = d - o; // assumed nonnegative id = int(dmo); fd = o + frac(dmo); fdm1 = fd-1; fdm2 = fd-2; fdm3 = fd-3; fdm4 = fd-4; }; // fifth-order case, delay in [2,3] // delay d should be at least 2 fdelay5(n,d,x) = delay(n,id,x) * -fdm1*fdm2*fdm3*fdm4*fdm5/120 + delay(n,id+1,x) * fd* fdm2*fdm3*fdm4*fdm5/24 + delay(n,id+2,x) * -fd*fdm1* fdm3*fdm4*fdm5/12 + delay(n,id+3,x) * fd*fdm1*fdm2* fdm4*fdm5/12 + delay(n,id+4,x) * -fd*fdm1*fdm2*fdm3* fdm5/24 + delay(n,id+5,x) * fd*fdm1*fdm2*fdm3*fdm4 /120 with { //v1: o = 1; o = 1.99999; dmo = d - o; // assumed nonnegative id = int(dmo); fd = o + frac(dmo); fdm1 = fd-1; fdm2 = fd-2; fdm3 = fd-3; fdm4 = fd-4; fdm5 = fd-5; }; //====================== Thiran Allpass Interpolation ===================== // Reference: // https://ccrma.stanford.edu/~jos/pasp/Thiran_Allpass_Interpolators.html // //---------------- fdelay1a, fdelay2a, fdelay3a, fdelay4a ------------- // Delay lines interpolated using Thiran allpass interpolation // USAGE: fdelayNa(maxdelay, delay, inputsignal) // (exactly like fdelay in music.lib) // where N=1,2,3, or 4 is the order of the Thiran interpolation filter, // and the delay argument is at least N - 1/2. // // (Move the following and similar notes above to filter-lib-doc.txt?) // // NOTE: The interpolated delay should not be less than N - 1/2. // (The allpass delay ranges from N - 1/2 to N + 1/2.) // This constraint can be alleviated by altering the code, // but be aware that allpass filters approach zero delay // by means of pole-zero cancellations. // The delay range [N-1/2,N+1/2] is not optimal. What is? // // NOTE: Delay arguments too small will produce an UNSTABLE allpass! // // NOTE: Because allpass interpolation is recursive, it is not as robust // as Lagrange interpolation under time-varying conditions. // (You may hear clicks when changing the delay rapidly.) // // first-order allpass interpolation, allpass delay in [0.5,1.5] // delay d should be at least 0.5 fdelay1a(n,d,x) = delay(n,id,x) : tf1(eta,1,eta) with { o = 0.49999; // offset to make life easy for allpass dmo = d - o; // assumed nonnegative id = int(dmo); fd = o + frac(dmo); eta = (1-fd)/(1+fd); // allpass coefficient }; // second-order allpass delay in [1.5,2.5] // delay d should be at least 1.5 fdelay2a(n,d,x) = delay(n,id,x) : tf2(a2,a1,1,a1,a2) with { o = 1.49999; dmo = d - o; // delay range is [order-1/2, order+1/2] id = int(dmo); fd = o + frac(dmo); a1o2 = (2-fd)/(1+fd); // share some terms (the compiler does this anyway) a1 = 2*a1o2; a2 = a1o2*(1-fd)/(2+fd); }; // third-order allpass delay in [2.5,3.5] // delay d should be at least 2.5 fdelay3a(n,d,x) = delay(n,id,x) : iir((a3,a2,a1,1),(a1,a2,a3)) with { o = 2.49999; dmo = d - o; id = int(dmo); fd = o + frac(dmo); a1o3 = (3-fd)/(1+fd); a2o3 = a1o3*(2-fd)/(2+fd); a1 = 3*a1o3; a2 = 3*a2o3; a3 = a2o3*(1-fd)/(3+fd); }; // fourth-order allpass delay in [3.5,4.5] // delay d should be at least 3.5 fdelay4a(n,d,x) = delay(n,id,x) : tf4(a4,a3,a2,a1,1,a1,a2,a3,a4) with { o = 3.49999; dmo = d - o; id = int(dmo); fd = o + frac(dmo); a1o4 = (4-fd)/(1+fd); a2o6 = a1o4*(3-fd)/(2+fd); a3o4 = a2o6*(2-fd)/(3+fd); a1 = 4*a1o4; a2 = 6*a2o6; a3 = 4*a3o4; a4 = a3o4*(1-fd)/(4+fd); }; //================ Mth-Octave Filter-Banks and Spectrum-Analyzers ============ // Mth-octave filter-banks and spectrum-analyzers split the input signal into a // bank of parallel signals, one for each spectral band. The parameters are // // M = number of band-slices per octave (>1) // N = total number of bands (>2) // ftop = upper bandlimit of the Mth-octave bands (_):attach with { display = par(i,N,dbmeter(i)); dbmeter(i) = abs : smooth(tau2pole(tau)) : linear2db : +(dB_offset) : meter(N-i-1); meter(i) = speclevel_group(vbargraph("[%2i] [unit:dB] [tooltip: Spectral Band Level in dB]", -50, 10)); // Can M be included in the label string somehow? speclevel_group(x) = hgroup("[0] CONSTANT-Q SPECTRUM ANALYZER (6E) [tooltip: See Faust's filter.lib for documentation and references]", x); }; mth_octave_spectral_level_default = mth_octave_spectral_level6e; spectral_level = mth_octave_spectral_level(2,10000,20); // simplest case //---------------------- mth_octave_spectral_level_demo ---------------------- // Demonstrate mth_octave_spectral_level in a standalone GUI. // // USAGE: _ : mth_octave_spectral_level_demo(BandsPerOctave); mth_octave_spectral_level_demo(M) = mth_octave_spectral_level_default(M,ftop,N,tau,dB_offset) with { // Span nearly 10 octaves so that lowest band-edge is at // ftop*2^(-Noct+2) = 40 Hz when ftop=10 kHz: N = int(10*M); // without 'int()', segmentation fault observed for M=1.67 ftop = 10000; ctl_group(x) = hgroup("[1] SPECTRUM ANALYZER CONTROLS", x); tau = ctl_group(hslider("[0] Level Averaging Time [unit:sec] [tooltip: band-level averaging time in seconds]", 0.1,0,1,0.01)); dB_offset = ctl_group(hslider("[1] Level dB Offset [unit:dB] [tooltip: Level offset in decibels]", 50,0,100,1)); }; spectral_level_demo = mth_octave_spectral_level_demo(1.5); // 2/3 octave //---------------- (third|half)_octave_(analyzer|filterbank) ----------------- // Named special cases of mth_octave_* with defaults filled in: third_octave_analyzer(N) = mth_octave_analyzer_default(3,10000,N); third_octave_filterbank(N) = mth_octave_filterbank_default(3,10000,N); // Third-Octave Filter-Banks have been used in audio for over a century. // See, e.g., // Acoustics [the book], by L. L. Beranek // Amer. Inst. Physics for the Acoustical Soc. America, // http://asa.aip.org/publications.html, 1986 (1st ed.1954) // Third-octave bands across the audio spectrum are too wide for current // typical computer screens, so half-octave bands are the default: half_octave_analyzer(N) = mth_octave_analyzer_default(2,10000,N); half_octave_filterbank(N) = mth_octave_filterbank_default(2,10000,N); octave_filterbank(N) = mth_octave_filterbank_default(1,10000,N); octave_analyzer(N) = mth_octave_analyzer_default(1,10000,N); //=========================== Filter-Bank Demos ============================== // Graphic Equalizer: Each filter-bank output signal routes through a fader. // // USAGE: _ : mth_octave_filterbank_demo(M) : _ // where // M = number of bands per octave mth_octave_filterbank_demo(M) = bp1(bp,mthoctavefilterbankdemo) with { bp1 = component("effect.lib").bypass1; mofb_group(x) = vgroup("CONSTANT-Q FILTER BANK (Butterworth dyadic tree) [tooltip: See Faust's filter.lib for documentation and references]", x); bypass_group(x) = mofb_group(hgroup("[0]", x)); slider_group(x) = mofb_group(hgroup("[1]", x)); N = 10*M; // total number of bands (highpass band, octave-bands, dc band) ftop = 10000; mthoctavefilterbankdemo = chan; chan = mth_octave_filterbank_default(M,ftop,N) : sum(i,N,(*(db2linear(fader(N-i))))); fader(i) = slider_group(vslider("[%2i] [unit:dB] [tooltip: Bandpass filter gain in dB]", -10, -70, 10, 0.1)) : smooth(0.999); bp = bypass_group(checkbox("[0] Bypass [tooltip: When this is checked, the filter-bank has no effect]")); }; filterbank_demo = mth_octave_filterbank_demo(1); // octave-bands = default //=========== Arbritary-Crossover Filter-Banks and Spectrum Analyzers ======== // These are similar to the Mth-octave filter-banks above, except that the // band-split frequencies are passed explicitly as arguments. // // USAGE: // _ : filterbank (O,freqs) : par(i,N,_); // Butterworth band-splits // _ : filterbanki(O,freqs) : par(i,N,_); // Inverted-dc version // _ : analyzer (O,freqs) : par(i,N,_); // No delay equalizer // // where // O = band-split filter order (ODD integer required for filterbank[i]) // freqs = (fc1,fc2,...,fcNs) [in numerically ascending order], where // Ns=N-1 is the number of octave band-splits // (total number of bands N=Ns+1). // // If frequencies are listed explicitly as arguments, enclose them in parens: // // _ : filterbank(3,(fc1,fc2)) : _,_,_ // // ACKNOWLEDGMENT // Technique for processing a variable number of signal arguments due // to Yann Orlarey (as is the entire Faust framework!) // //------------------------------ analyzer -------------------------------------- analyzer(O,lfreqs) = _ <: bsplit(nb) with { nb = count(lfreqs); fc(n) = take(n, lfreqs); lp(n) = lowpass(O,fc(n)); hp(n) = highpass(O,fc(n)); bsplit(0) = _; bsplit(i) = hp(i), (lp(i) <: bsplit(i-1)); }; //----------------------------- filterbank ------------------------------------- filterbank(O,lfreqs) = analyzer(O,lfreqs) : delayeq with { nb = count(lfreqs); fc(n) = take(n, lfreqs); ap(n) = highpass_plus_lowpass(O,fc(n)); delayeq = par(i,nb-1,apchain(nb-1-i)),_,_; apchain(0) = _; apchain(i) = ap(i) : apchain(i-1); }; //----------------------------- filterbanki ------------------------------------ filterbanki(O,lfreqs) = _ <: bsplit(nb) with { fc(n) = take(n, lfreqs); lp(n) = lowpass(O,fc(n)); hp(n) = highpass(O,fc(n)); ap(n) = highpass_minus_lowpass(O,fc(n)); bsplit(0) = *(-1.0); bsplit(i) = (hp(i) : delayeq(i-1)), (lp(i) <: bsplit(i-1)); delayeq(0) = _; // moving the *(-1) here inverts all outputs BUT dc delayeq(i) = ap(i) : delayeq(i-1); }; faust-0.9.46/architecture/netjack-qt.cpp0000644000175000017500000000741411702130733020102 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include "gui/FUI.h" #include "misc.h" #include "gui/faustqt.h" #include "audio/netjack-dsp.h" #ifdef OSCCTRL #include "gui/OSCUI.h" #endif /**************************BEGIN USER SECTION **************************/ /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; list GUI::fGuiList; //------------------------------------------------------------------------- // MAIN //------------------------------------------------------------------------- int main(int argc, char *argv[]) { char appname[256]; char rcfilename[256]; char* home = getenv("HOME"); int celt = lopt(argv, "--celt", -1); char* master_ip = lopts(argv, "--a", DEFAULT_MULTICAST_IP); int master_port = lopt(argv, "--p", DEFAULT_PORT); snprintf(appname, 255, "%s", basename(argv[0])); snprintf(rcfilename, 255, "%s/.%src", home, appname); GUI* interface = new QTGUI(argc, argv); FUI* finterface = new FUI(); DSP.buildUserInterface(interface); DSP.buildUserInterface(finterface); #ifdef OSCCTRL GUI* oscinterface = new OSCUI(appname, argc, argv); DSP.buildUserInterface(oscinterface); #endif netjackaudio audio(celt, master_ip, master_port); if (!audio.init(appname, &DSP)) { return 0; } finterface->recallState(rcfilename); if (!audio.start()) { return 0; } #ifdef OSCCTRL oscinterface->run(); #endif interface->run(); audio.stop(); finterface->saveState(rcfilename); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/dssi.cpp0000644000175000017500000011507611702130733017007 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2011 Michael J. Wilson --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. --------------------------------------------------------------------- ************************************************************************/ /******************************************************************** * dssi.cpp - Polyphonic dssi wrapper for the FAUST language. * * Usage: faust -a dssi.cpp myfaustprog.dsp * * By Michael J. Wilson (mwilson@alumni.caltech.edu) * * Made with reference to: * - vsti-mono.cpp by Julius Smith (http://ccrma.stanford.edu/~jos/) * - ladspa.cpp by GRAME, Centre National de Creation Musicale * - karplong.cpp by Chris Cannam, Steve Harris, Sean Bolton * * Because of the inclusion of code from ladspa.cpp, this architecture * file is also released under the GNU General Public Licenses version * 3. Sections which were taken from ladspa.cpp are clearly marked * below, in order to trace the GPL dependency. * As with faust2pd and vsti-mono.cpp, to obtain MIDI control via * NoteOn/Off, Velocity, and KeyNumber, there must be a button named * "gate" and sliders (or numeric entries) named "gain" and "freq" in * the Faust patch specified in myfaustprog.dsp. * * FAUST * Copyright (C) 2003-2007 GRAME, Centre National de Creation Musicale * http://www.grame.fr/ * ********************************************************************/ #include "dssi.h" #include "ladspa.h" #include #include #include #include #include #include #include #include // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #warning *** dssi.cpp: NO SSE FLAG (denormals may slow things down) *** #define AVOIDDENORMALS #endif struct Meta : std::map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) #define sym(name) xsym(name) #define xsym(name) #name inline int lsr (int x, int n) { return int(((unsigned int)x) >> n); } inline int int2pow2 (int x) { int r=0; while ((1<> //---------------------Abstract User Interface-------------------- // // Abstract definition of a User Interface to be passed to the // buildUserInterface method of a Faust Signal Processor // //---------------------------------------------------------------- class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; // -- frames and labels virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void show() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; //------------------Abstract Signal Processor--------------------- // // Abstract definition of a Faust Signal Processor // //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs)= 0; }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ //////////////////////////////////////////////////////////////////////////////// // Forward declarations //////////////////////////////////////////////////////////////////////////////// class Plugin; class DescriptorUI; class Voice; //////////////////////////////////////////////////////////////////////////////// // Global data //////////////////////////////////////////////////////////////////////////////// // Maximum polyphony, must be at least 1 (TODO make this configurable at compile / runtime?) const int MAX_POLYPHONY = 64; // Descriptor DSSI_Descriptor* g_dssi_descriptor; // Additional data for descriptor: LADSPA_Descriptor* g_ladspa_descriptor; // Program descriptor: DSSI_Program_Descriptor g_program_descriptor; // Global data for the descriptor: std::vector g_port_descriptors; std::vector g_port_range_hints; std::vector g_port_names; std::string g_name; //////////////////////////////////////////////////////////////////////////////// // The enclosed code is from ladspa.cpp // TODO groups of port names static const char* inames[] = { "input00", "input01", "input02", "input03", "input04", "input05", "input06", "input07", "input08", "input09", "input10", "input11", "input12", "input13", "input14", "input15", "input16", "input17", "input18", "input19", "input20", "input21", "input22", "input23", "input24", "input25", "input26", "input27", "input28", "input29", "input30", "input31", "input32", "input33", "input34", "input35", "input36", "input37", "input38", "input39" }; static const char* onames[] = { "output00", "output01", "output02", "output03", "output04", "output05", "output06", "output07", "output08", "output09", "output10", "output11", "output12", "output13", "output14", "output15", "output16", "output17", "output18", "output19", "output20", "output21", "output22", "output23", "output24", "output25", "output26", "output27", "output28", "output29", "output30", "output31", "output32", "output33", "output34", "output35", "output36", "output37", "output38", "output39" }; // END code from ladspa.cpp //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // Global helper functions //////////////////////////////////////////////////////////////////////////////// char* get_metadata_if_exists(const char* key, const char* default_string) { // TODO probably want to free these somehow. Currently only used for ladspa descriptor Meta meta; mydsp::metadata(&meta); if(meta.find(key) != meta.end()) { return strdup(meta[key]); } else { return strdup(default_string); } } //////////////////////////////////////////////////////////////////////////////// // The enclosed code is from ladspa.cpp std::string simplify(const std::string& src) { int i=0; int level=2; std::string dst; while (src[i] ) { switch (level) { case 0 : case 1 : case 2 : // Skip the begin of the label "--foo-" // until 3 '-' have been read if (src[i]=='-') { level++; } break; case 3 : // copy the content, but skip non alphnum // and content in parenthesis switch (src[i]) { case '(' : case '[' : level++; break; case '-' : dst += '-'; break; default : if (isalnum(src[i])) { dst+= tolower(src[i]); } } break; default : // here we are inside parenthesis and // we skip the content until we are back to // level 3 switch (src[i]) { case '(' : case '[' : level++; break; case ')' : case ']' : level--; break; default : break; } } i++; } return (dst.size() > 0) ? dst :src; } // END code from ladspa.cpp //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // Single voice; use multiple for polyphony //////////////////////////////////////////////////////////////////////////////// class Voice : public UI { public: Voice(int sampleRate); ~Voice(); // UI methods: // TODO don't hardcode these so hard maybe void setFreq(float val); void setGate(float val); void setGain(float val); virtual void addButton(const char* label, float* zone); virtual void addToggleButton(const char* label, float* zone); virtual void addCheckButton(const char* label, float* zone); virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumDisplay(const char* label, float* zone, int precision); virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max); virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); virtual void openFrameBox(const char* label); virtual void openTabBox(const char* label); virtual void openHorizontalBox(const char* label); virtual void openVerticalBox(const char* label); virtual void closeBox(); virtual void show(); virtual void run(); // Internal control (to Faust DSP) std::vector m_controls; // TODO maybe don't make this public eventually mydsp* m_mydsp; private: // Helpers for UI building: // TODO organize this a bit better later... bool ckAnyMatch(const char* label, const char* indexName, float **zone, float* newZone); bool ckAllMatches(const char* label, float* zone); void addZone(float* zone); int m_samplerate; float* m_freq_zone; float* m_gate_zone; float* m_gain_zone; }; //////////////////////////////////////////////////////////////////////////////// // Plugin class to handle DSSI methods: //////////////////////////////////////////////////////////////////////////////// class Plugin : public UI { public: // LADSPA methods: static LADSPA_Handle instantiate(const LADSPA_Descriptor *, unsigned long); static void connectPort(LADSPA_Handle, unsigned long, LADSPA_Data *); static void activate(LADSPA_Handle); static void run(LADSPA_Handle, unsigned long); static void cleanup(LADSPA_Handle); // DSSI methods: static const DSSI_Program_Descriptor* getProgram(LADSPA_Handle, unsigned long); static void selectProgram(LADSPA_Handle, unsigned long, unsigned long); static int getMidiController(LADSPA_Handle, unsigned long); static void runSynth(LADSPA_Handle, unsigned long, snd_seq_event_t *, unsigned long); // UI methods: // TODO don't hardcode these so hard maybe void setFreq(float val, int voice = 0); void setGate(float val, int voice = 0); void setGain(float val, int voice = 0); virtual void addButton(const char* label, float* zone); virtual void addToggleButton(const char* label, float* zone); virtual void addCheckButton(const char* label, float* zone); virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumDisplay(const char* label, float* zone, int precision); virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max); virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); virtual void openFrameBox(const char* label); virtual void openTabBox(const char* label); virtual void openHorizontalBox(const char* label); virtual void openVerticalBox(const char* label); virtual void closeBox(); virtual void show(); virtual void run(); private: Plugin(int sampleRate); ~Plugin(); // Helper methods: void updateControlZones(); void runImpl(unsigned long, snd_seq_event_t *, unsigned long); void addSamples(int); // Helpers for UI building: // TODO organize this a bit better later... bool ckAnyMatch(const char* label, const char* indexName); bool ckAllMatches(const char* label); void add_control_with_default(float default_value); int m_samplerate; // Voice allocation memebers (TODO maybe break voice allocator into separate class later) // Note each voice is playing std::vector voice_notes; // Queue of free voices std::list voice_free; // Voices for polyphony std::vector m_voices; // Top-level inputs (from DSSI host) std::vector m_inputs; // Top-level outputs (to DSSI host) std::vector m_outputs; // Temp vector for collecting outputs TODO this is an ugly way to do it... std::vector > m_temp_outputs; // External control (from DSSI host) std::vector m_controls; // Control default values std::vector m_control_defaults; }; //////////////////////////////////////////////////////////////////////////////// // UI class to build descriptor, analogous to ladspa.cpp's portCollector //////////////////////////////////////////////////////////////////////////////// const int ICONTROL = LADSPA_PORT_INPUT|LADSPA_PORT_CONTROL; const int OCONTROL = LADSPA_PORT_OUTPUT|LADSPA_PORT_CONTROL; class DescriptorUI : public UI { public: DescriptorUI(int ins, int outs); virtual void addButton(const char* label, float* zone) { if (!ckAnyMatch(label, "gate")) { addPortDescr(ICONTROL, label, LADSPA_HINT_TOGGLED); } } virtual void addToggleButton(const char* label, float* zone) { addPortDescr(ICONTROL, label, LADSPA_HINT_TOGGLED); } virtual void addCheckButton(const char* label, float* zone) { addPortDescr(ICONTROL, label, LADSPA_HINT_TOGGLED); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { if (!ckAllMatches(label)) { addPortDescr(ICONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { if (!ckAllMatches(label)) { addPortDescr(ICONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { if (!ckAllMatches(label)) { addPortDescr(ICONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } } virtual void addNumDisplay(const char* label, float* zone, int precision) { addPortDescr(OCONTROL, label, 0, -10000, +10000); } virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) { addPortDescr(OCONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) { addPortDescr(OCONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } virtual void addVerticalBargraph(const char* label, float* zone, float min, float max){ addPortDescr(OCONTROL, label, LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, min, max); } virtual void openFrameBox(const char* label) { openAnyBox(label); } virtual void openTabBox(const char* label) { openAnyBox(label); } virtual void openHorizontalBox(const char* label) { openAnyBox(label); } virtual void openVerticalBox(const char* label) { openAnyBox(label); } virtual void closeBox() { fPrefix.pop(); } virtual void show() {} virtual void run() {} private: std::stack fPrefix; void addPortDescr(int type, const char* label, int hint, float min=0.0, float max=0.0); void openAnyBox(const char* label); bool ckAnyMatch(const char* label, const char* indexName) { // TODO do case-insensitive here... if (strcmp(label,indexName)==0) { // Don't set values in the DescriptorUI // TODO consolidate this later return true; } return false; } bool ckAllMatches(const char* label) { bool result = false; result = result || ckAnyMatch(label,"gain"); result = result || ckAnyMatch(label,"gate"); result = result || ckAnyMatch(label,"freq"); return result; } }; //////////////////////////////////////////////////////////////////////////////// // DescriptorUI methods //////////////////////////////////////////////////////////////////////////////// DescriptorUI::DescriptorUI(int ins, int outs) { // Note inputs and outputs for (int i = 0; i < ins; i++) { g_port_descriptors.push_back(LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO); LADSPA_PortRangeHint temp; temp.HintDescriptor = 0; temp.LowerBound = 0; temp.UpperBound = 0; g_port_range_hints.push_back(temp); g_port_names.push_back(inames[i]); } for (int j = 0; j < outs; j++) { g_port_descriptors.push_back(LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO); LADSPA_PortRangeHint temp; temp.HintDescriptor = 0; temp.LowerBound = 0; temp.UpperBound = 0; g_port_range_hints.push_back(temp); g_port_names.push_back(onames[j]); } } void DescriptorUI::addPortDescr(int type, const char* label, int hint, float min, float max) { //////////////////////////////////////////////////////////////////////////////// // The enclosed code is derived from ladspa.cpp std::string fullname = simplify(fPrefix.top() + "-" + label); // TODO for debugging, I'm just using the label for now instead of the full name (since fullname can get long) // char * str = strdup(fullname.c_str()); char * str = strdup(label); // END code from ladspa.cpp //////////////////////////////////////////////////////////////////////////////// g_port_descriptors.push_back(type); LADSPA_PortRangeHint temp; temp.HintDescriptor = hint; temp.LowerBound = min; temp.UpperBound = max; g_port_range_hints.push_back(temp); g_port_names.push_back(str); // TODO memory leak; need to free } void DescriptorUI::openAnyBox(const char* label) { //////////////////////////////////////////////////////////////////////////////// // The enclosed code is from ladspa.cpp if (fPrefix.size() == 0) { // top level label is used as plugin name g_name = label; fPrefix.push(label); } else { std::string s; if (label && label[0]) { s = fPrefix.top() + "-" + label; } else { s = fPrefix.top(); } fPrefix.push(s); } // END code from ladspa.cpp //////////////////////////////////////////////////////////////////////////////// } //////////////////////////////////////////////////////////////////////////////// // Plugin methods //////////////////////////////////////////////////////////////////////////////// Plugin::Plugin(int sampleRate) : m_samplerate(sampleRate) { int i; mydsp temp_mydsp; for (i = 0; i < MAX_POLYPHONY; i++) { m_voices.push_back(new Voice(m_samplerate)); // Voice parameters: voice_free.push_back(i); // TODO using -1 to represent nothing; think of a more clear way to do this voice_notes.push_back(-1); } for (i = 0; i < temp_mydsp.getNumInputs(); i++) { m_inputs.push_back(0); } for (i = 0; i < temp_mydsp.getNumOutputs(); i++) { m_outputs.push_back(0); std::vector temp; temp.push_back(0.0); m_temp_outputs.push_back(temp); } } Plugin::~Plugin() { size_t i; for (i = 0; i < m_voices.size(); i++) { delete m_voices[i]; } } LADSPA_Handle Plugin::instantiate(const LADSPA_Descriptor *, unsigned long rate) { Plugin *plugin = new Plugin(rate); size_t i; mydsp* temp_mydsp = new mydsp(); temp_mydsp->buildUserInterface(plugin); delete temp_mydsp; for (i = 0; i < plugin->m_voices.size(); i++) { plugin->m_voices[i]->m_mydsp->buildUserInterface(plugin->m_voices[i]); } return plugin; } void Plugin::connectPort(LADSPA_Handle handle, unsigned long port, LADSPA_Data *location) { Plugin *plugin = (Plugin *)handle; // Map inputs, then outputs, then controls: if (port < plugin->m_inputs.size()) { *(&plugin->m_inputs[port]) = (float *)location; } else if (port < plugin->m_inputs.size() + plugin->m_outputs.size()) { *(&plugin->m_outputs[port - plugin->m_inputs.size()]) = (float *)location; } else { plugin->m_controls[port - plugin->m_inputs.size() - plugin->m_outputs.size()] = (float *)location; } } void Plugin::activate(LADSPA_Handle handle) { Plugin *plugin = (Plugin *)handle; for (size_t i = 0; i < plugin->m_voices.size(); i++) { plugin->m_voices[i]->m_mydsp->init(plugin->m_samplerate); } } void Plugin::run(LADSPA_Handle handle, unsigned long samples) { runSynth(handle, samples, 0, 0); } void Plugin::cleanup(LADSPA_Handle handle) { delete (Plugin *)handle; } const DSSI_Program_Descriptor* Plugin::getProgram(LADSPA_Handle handle, unsigned long index) { if (index == 0) { return &g_program_descriptor; } else { return NULL; } } void Plugin::selectProgram(LADSPA_Handle handle, unsigned long bank, unsigned long program) { Plugin *plugin = (Plugin *)handle; for (size_t i = 0; i < plugin->m_controls.size(); i++) { *(plugin->m_controls[i]) = plugin->m_control_defaults[i]; } } int Plugin::getMidiController(LADSPA_Handle, unsigned long port) { // TODO this is where we need to map MIDI controllers to ports return DSSI_NONE; } void Plugin::updateControlZones() { for (size_t i = 0; i < m_controls.size(); i++) { for (size_t j = 0; j < m_voices.size(); j++) { *(m_voices[j]->m_controls[i]) = *(m_controls[i]); } } } void Plugin::runSynth(LADSPA_Handle handle, unsigned long samples, snd_seq_event_t *events, unsigned long eventCount) { Plugin *plugin = (Plugin *)handle; plugin->updateControlZones(); plugin->runImpl(samples, events, eventCount); } void Plugin::runImpl(unsigned long sampleCount, snd_seq_event_t *events, unsigned long eventCount) { unsigned long pos; unsigned long count; unsigned long eventPos; snd_seq_ev_note_t n; size_t voice_index; pos = 0; eventPos = 0; while (pos < sampleCount) { while ((eventPos < eventCount) && (pos >= events[eventPos].time.tick)) { switch (events[eventPos].type) { case SND_SEQ_EVENT_NOTEON: n = events[eventPos].data.note; if (n.velocity > 0) { // Look for the next free voice: if (!voice_free.empty()) { // Get the index of the first free string and remove it from the list voice_index = voice_free.front(); voice_free.pop_front(); // Play the note on that voice voice_notes[voice_index] = n.note; float freq = 440.0f * powf(2.0f,(((float)n.note)-69.0f)/12.0f); float gain = n.velocity/127.0f; setFreq(freq, voice_index); // Hz - requires Faust control-signal "freq" setGain(gain, voice_index); // 0-1 - requires Faust control-signal "gain" setGate(1.0f, voice_index); // 0 or 1 - requires Faust button-signal "gate" } } break; case SND_SEQ_EVENT_NOTEOFF: for (voice_index = 0; voice_index < voice_notes.size(); voice_index++) { if (voice_notes[voice_index] == events[eventPos].data.note.note) { setGate(0, voice_index); // TODO using -1 to represent nothing; think of a more clear way to do this voice_notes[voice_index] = -1; voice_free.push_back(voice_index); } } break; default: break; } ++eventPos; } if ((eventPos < eventCount) && (events[eventPos].time.tick < sampleCount)) { count = events[eventPos].time.tick - pos; } else { count = sampleCount - pos; } addSamples(count); pos += count; } } void Plugin::addSamples(int samples) { size_t i; int j; size_t v; // TODO this isn't very efficient right now... // Grow temp buffers to appropriate size / zero them: for (i = 0; i < m_temp_outputs.size(); i++) { for (j = 0; j < samples; j++) { if (m_temp_outputs[i].size() < (j+1)) { m_temp_outputs[i].push_back(0.0); } else { m_temp_outputs[i][j] = 0.0; } } } AVOIDDENORMALS; // Add all voices together for (v = 0; v < m_voices.size(); v++) { m_voices[v]->m_mydsp->compute(samples, &m_inputs[0], &m_outputs[0]); // Accumulate in temp buffer for (i = 0; i < m_outputs.size(); i++) { for (j = 0; j < samples; j++) { m_temp_outputs[i][j] += m_outputs[i][j]; } } } // Transfer accumulator to actual outputs for (i = 0; i < m_outputs.size(); i++) { for (j = 0; j < samples; j++) { // TODO find a better way to protect against clipping. m_outputs[i][j] = m_temp_outputs[i][j] / (float)MAX_POLYPHONY; } } } void Plugin::setFreq(float val, int voice) { m_voices[voice]->setFreq(val); } void Plugin::setGate(float val, int voice) { m_voices[voice]->setGate(val); } void Plugin::setGain(float val, int voice) { m_voices[voice]->setGain(val); } void Plugin::addButton(const char* label, float* zone) { if (!ckAnyMatch(label, "gate")) { add_control_with_default(0); } } void Plugin::addToggleButton(const char* label, float* zone) { add_control_with_default(0); } void Plugin::addCheckButton(const char* label, float* zone) { add_control_with_default(0); } void Plugin::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { if (!ckAllMatches(label)) { add_control_with_default(init); } } void Plugin::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { if (!ckAllMatches(label)) { add_control_with_default(init); } } void Plugin::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { if (!ckAllMatches(label)) { add_control_with_default(init); } } void Plugin::addNumDisplay(const char* label, float* zone, int precision) { add_control_with_default(0); } void Plugin::addTextDisplay(const char* label, float* zone, char* names[], float min, float max) { add_control_with_default(0); } void Plugin::addHorizontalBargraph(const char* label, float* zone, float min, float max) { add_control_with_default(min); } void Plugin::addVerticalBargraph(const char* label, float* zone, float min, float max) { add_control_with_default(min); } void Plugin::openFrameBox(const char* label) { } void Plugin::openTabBox(const char* label) { } void Plugin::openHorizontalBox(const char* label) { } void Plugin::openVerticalBox(const char* label) { } void Plugin::closeBox() { } void Plugin::show() { } void Plugin::run() { } bool Plugin::ckAnyMatch(const char* label, const char* indexName) { // TODO do case-insensitive here... if (strcmp(label,indexName)==0) { return true; } return false; } bool Plugin::ckAllMatches(const char* label) { bool result = false; result = result || ckAnyMatch(label,"gain"); result = result || ckAnyMatch(label,"gate"); result = result || ckAnyMatch(label,"freq"); return result; } void Plugin::add_control_with_default(float default_value) { // TODO may need to consider different things for input and output controls... m_controls.push_back(0); m_control_defaults.push_back(default_value); } //////////////////////////////////////////////////////////////////////////////// // Voice methods //////////////////////////////////////////////////////////////////////////////// Voice::Voice(int sampleRate) : m_samplerate(sampleRate), m_freq_zone(0), m_gate_zone(0), m_gain_zone(0) { m_mydsp = new mydsp(); } Voice::~Voice() { delete m_mydsp; } void Voice::setFreq(float val) { if (m_freq_zone) { *m_freq_zone = val; } } void Voice::setGate(float val) { if (m_gate_zone) { *m_gate_zone = val; } } void Voice::setGain(float val) { if (m_gain_zone) { *m_gain_zone = val; } } void Voice::addButton(const char* label, float* zone) { if (!ckAnyMatch(label, "gate", &m_gate_zone, zone)) { addZone(zone); } } void Voice::addToggleButton(const char* label, float* zone) { addZone(zone); } void Voice::addCheckButton(const char* label, float* zone) { addZone(zone); } void Voice::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { if (!ckAllMatches(label, zone)) { addZone(zone); } } void Voice::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { if (!ckAllMatches(label, zone)) { addZone(zone); } } void Voice::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { if (!ckAllMatches(label, zone)) { addZone(zone); } } void Voice::addNumDisplay(const char* label, float* zone, int precision) { addZone(zone); } void Voice::addTextDisplay(const char* label, float* zone, char* names[], float min, float max) { addZone(zone); } void Voice::addHorizontalBargraph(const char* label, float* zone, float min, float max) { addZone(zone); } void Voice::addVerticalBargraph(const char* label, float* zone, float min, float max) { addZone(zone); } void Voice::openFrameBox(const char* label) { } void Voice::openTabBox(const char* label) { } void Voice::openHorizontalBox(const char* label) { } void Voice::openVerticalBox(const char* label) { } void Voice::closeBox() { } void Voice::show() { } void Voice::run() { } bool Voice::ckAnyMatch(const char* label, const char* indexName, float **zone, float* newZone) { // TODO do case-insensitive here... if (strcmp(label,indexName)==0) { *zone = newZone; return true; } return false; } bool Voice::ckAllMatches(const char* label, float* zone) { bool result = false; result = result || ckAnyMatch(label,"gain", &m_gain_zone, zone); result = result || ckAnyMatch(label,"gate", &m_gate_zone, zone); result = result || ckAnyMatch(label,"freq", &m_freq_zone, zone); return result; } void Voice::addZone(float* zone) { m_controls.push_back(zone); } //////////////////////////////////////////////////////////////////////////////// // Shared object hooks //////////////////////////////////////////////////////////////////////////////// extern "C" { #ifdef __GNUC__ __attribute__((constructor)) void init(void) #else void _init(void) #endif { AVOIDDENORMALS; if (g_dssi_descriptor == 0) { g_ladspa_descriptor = new LADSPA_Descriptor(); g_dssi_descriptor = new DSSI_Descriptor(); mydsp* temp_mydsp = new mydsp(); DescriptorUI* temp_descriptor_ui = new DescriptorUI(temp_mydsp->getNumInputs(), temp_mydsp->getNumOutputs()); temp_mydsp->buildUserInterface(temp_descriptor_ui); // Fill the descriptors: // TODO figure out strdup with const strings g_ladspa_descriptor->UniqueID = 0; g_ladspa_descriptor->Label = get_metadata_if_exists("name", g_name.c_str()); g_ladspa_descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; g_ladspa_descriptor->Name = get_metadata_if_exists("name", g_name.c_str()); g_ladspa_descriptor->Maker = get_metadata_if_exists("author", "Maker"); g_ladspa_descriptor->Copyright = get_metadata_if_exists("copyright", "Copyright"); g_ladspa_descriptor->PortCount = g_port_descriptors.size(); g_ladspa_descriptor->PortDescriptors = &g_port_descriptors[0]; g_ladspa_descriptor->PortNames = &g_port_names[0]; g_ladspa_descriptor->PortRangeHints = &g_port_range_hints[0]; g_ladspa_descriptor->ImplementationData = 0; g_ladspa_descriptor->instantiate = Plugin::instantiate; g_ladspa_descriptor->connect_port = Plugin::connectPort; g_ladspa_descriptor->activate = Plugin::activate; g_ladspa_descriptor->run = Plugin::run; g_ladspa_descriptor->run_adding = 0; g_ladspa_descriptor->set_run_adding_gain = 0; g_ladspa_descriptor->deactivate = 0; g_ladspa_descriptor->cleanup = Plugin::cleanup; g_dssi_descriptor->DSSI_API_Version = 1; g_dssi_descriptor->LADSPA_Plugin = g_ladspa_descriptor; g_dssi_descriptor->configure = 0; g_dssi_descriptor->get_program = Plugin::getProgram; g_dssi_descriptor->select_program = Plugin::selectProgram; g_dssi_descriptor->get_midi_controller_for_port = Plugin::getMidiController; g_dssi_descriptor->run_synth = Plugin::runSynth; g_dssi_descriptor->run_synth_adding = 0; g_dssi_descriptor->run_multiple_synths = 0; g_dssi_descriptor->run_multiple_synths_adding = 0; // Program description (TODO if we eventually support multiple programs we will need to handle this differently) g_program_descriptor.Bank = 0; g_program_descriptor.Program = 0; g_program_descriptor.Name = get_metadata_if_exists("name", g_name.c_str()); delete temp_mydsp; delete temp_descriptor_ui; } } #ifdef __GNUC__ __attribute__((destructor)) void fini(void) #else void _fini() #endif { if (g_ladspa_descriptor) { delete g_ladspa_descriptor; } if (g_dssi_descriptor) { delete g_dssi_descriptor; } } const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) { return 0; } const DSSI_Descriptor *dssi_descriptor(unsigned long index) { if (index == 0) { return g_dssi_descriptor; } else { return NULL; } } } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/osclib/0000755000175000017500000000000011702130733016602 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/Makefile0000644000175000017500000000134011702130733020240 0ustar orlareyorlarey############################################################### # # Build liboscpack.a and libOSCFaust.a the 2 # static libraries needed to provide support # for Open Sound Control in Faust generated # applications. # ############################################################### .PHONY: all clean depend all : liboscpack.a libOSCFaust.a liboscpack.a : oscpack/liboscpack.a cp oscpack/liboscpack.a $@ libOSCFaust.a : faust/libOSCFaust.a cp faust/libOSCFaust.a $@ oscpack/liboscpack.a: make -C oscpack faust/libOSCFaust.a: make -C faust clean : rm -f liboscpack.a rm -f libOSCFaust.a make -C oscpack clean make -C faust clean depend : make -C oscpack depend make -C faust depend faust-0.9.46/architecture/osclib/.gitignore0000644000175000017500000000003311702130733020566 0ustar orlareyorlareylibOSCFaust.a liboscpack.a faust-0.9.46/architecture/osclib/faust/0000755000175000017500000000000011702130733017724 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/faust/include/0000755000175000017500000000000011702130733021347 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/faust/include/OSCControler.h0000644000175000017500000000604711702130733024043 0ustar orlareyorlarey/* Faust Project Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __OSCControler__ #define __OSCControler__ #include namespace oscfaust { class OSCIO; class OSCSetup; class FaustFactory; //-------------------------------------------------------------------------- /*! \brief the main Faust OSC Lib API The OSCControler is essentially a glue between the memory representation (in charge of the FaustFactory), and the network services (in charge of OSCSetup). */ class OSCControler { int fUDPPort, fUDPOut, fUPDErr; // the udp ports numbers std::string fDestAddress; // the osc messages destination address FaustFactory * fFactory; // a factory to build the memory represetnatin OSCSetup* fOsc; // the network manager (handles the udp sockets) OSCIO* fIO; // hack for OSC IO support (actually only relayed to the factory) public: /* base udp port is chosen in an unassigned range from IANA PORT NUMBERS (last updated 2011-01-24) see at http://www.iana.org/assignments/port-numbers 5507-5552 Unassigned */ enum { kUDPBasePort = 5510}; OSCControler (int argc, char *argv[], OSCIO* io=0); virtual ~OSCControler (); //-------------------------------------------------------------------------- // addnode, opengroup and closegroup are simply relayed to the factory //-------------------------------------------------------------------------- void addnode (const char* label, float* zone, float init, float min, float max); void addfullpathnode (const std::string& fullpath, float* zone, float imin, float imax, float init, float min, float max); void opengroup (const char* label); void closegroup (); //-------------------------------------------------------------------------- void run (); // starts the network services void quit (); // stop the network services int getUDPPort() { return fUDPPort; } int getUDPOut() { return fUDPOut; } int getUDPErr() { return fUPDErr; } const char* getDesAddress() { return fDestAddress.c_str(); } const char* getRootName(); // probably useless, introduced for UI extension experiments static float version(); // the Faust OSC library version number static const char* versionstr(); // the Faust OSC library version number as a string }; } #endif faust-0.9.46/architecture/osclib/faust/include/OSCIO.h0000644000175000017500000000363611702130733022404 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __OSCIO__ #define __OSCIO__ #include namespace oscfaust { //-------------------------------------------------------------------------- // build in support //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- /*! \brief build in support for osc audio input / output */ class OSCIO { std::string fDest; // the output destination osc address public: OSCIO(const char *dst) : fDest(dst) {} virtual ~OSCIO() {} virtual void receive( int nframes, float * val ) = 0; virtual int numOutputs() const = 0; virtual int numInputs() const = 0; /*! \brief send audio frames on osc out \param nframes the frames count \param val a pointer to the frames values \param chan the current channel number (used as part of the dest osc address) */ virtual void send ( int nframes, float * val, int chan ) const; const char* dest () const { return fDest.c_str(); } void setDest (const char *dst) { fDest = dst; } }; } // end namespoace #endif faust-0.9.46/architecture/osclib/faust/src/0000755000175000017500000000000011702130733020513 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/faust/src/msg/0000755000175000017500000000000011702130733021301 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/faust/src/msg/Message.cpp0000644000175000017500000000541411702130733023375 0ustar orlareyorlarey/* INScore Project Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #include #include #include "Message.h" #include "OSCFError.h" using namespace std; namespace oscfaust { //-------------------------------------------------------------------------- // Message implementation //-------------------------------------------------------------------------- Message::Message(const Message& msg) { setAddress (msg.address()); fArguments = msg.params(); } //-------------------------------------------------------------------------- static string escape (const string& str) { string out; const char *ptr = str.c_str(); while (*ptr) { char c = *ptr++; if (c == '"') out += "\\\""; else out += c; } return out; } //-------------------------------------------------------------------------- void Message::print(std::ostream& out) const { out << address() << " " ; argslist::const_iterator i = params().begin(); ios::fmtflags f = out.flags ( ios::showpoint ); while (i != params().end()) { MsgParam* s = dynamic_cast*>((baseparam*)(*i)); if (s) out << "\"" << escape(s->getValue()) << "\" "; MsgParam* ip = dynamic_cast*>((baseparam*)(*i)); if (ip) out << ip->getValue() << " "; MsgParam* f = dynamic_cast*>((baseparam*)(*i)); if (f) out << f->getValue() << " "; i++; } out.flags ( f ); } //-------------------------------------------------------------------------- void Message::print(OSCStream& out) const { out << OSCStart(address().c_str()); printArgs(out); out << OSCEnd(); } //-------------------------------------------------------------------------- void Message::printArgs(OSCStream& out) const { for (int i=0; i < size(); i++) { string str; float fv; int iv; if (param(i, fv)) out << fv; else if (param(i, iv)) out << iv; else if (param(i, str)) out << str; else OSCFErr << "Message::print(OSCStream& out): unknown message parameter type" << OSCFEndl; } } } // end namespoace faust-0.9.46/architecture/osclib/faust/src/msg/MessageProcessor.h0000644000175000017500000000234711702130733024744 0ustar orlareyorlarey/* Copyright (C) 2010 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __MessageProcessor__ #define __MessageProcessor__ namespace oscfaust { class Message; //-------------------------------------------------------------------------- /*! \brief an abstract class for objects able to process OSC messages */ class MessageProcessor { public: virtual ~MessageProcessor() {} virtual void processMessage( const Message* msg ) = 0; }; } // end namespoace #endif faust-0.9.46/architecture/osclib/faust/src/msg/Message.h0000644000175000017500000001772211702130733023047 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __Message__ #define __Message__ #include #include #include #include "smartpointer.h" namespace oscfaust { class OSCStream; template class MsgParam; class baseparam; typedef SMARTP Sbaseparam; //-------------------------------------------------------------------------- /*! \brief base class of a message parameters */ class baseparam : public smartable { public: virtual ~baseparam() {} /*! \brief utility for parameter type checking */ template bool isType() const { return dynamic_cast*> (this) != 0; } /*! \brief utility for parameter convertion \param errvalue the returned value when no conversion applies \return the parameter value when the type matches */ template X value(X errvalue) const { const MsgParam* o = dynamic_cast*> (this); return o ? o->getValue() : errvalue; } /*! \brief utility for parameter comparison */ template bool equal(const baseparam& p) const { const MsgParam* a = dynamic_cast*> (this); const MsgParam* b = dynamic_cast*> (&p); return a && b && (a->getValue() == b->getValue()); } /*! \brief utility for parameter comparison */ bool operator==(const baseparam& p) const { return equal(p) || equal(p) || equal(p); } bool operator!=(const baseparam& p) const { return !equal(p) && !equal(p) && !equal(p); } virtual SMARTP copy() const = 0; }; //-------------------------------------------------------------------------- /*! \brief template for a message parameter */ template class MsgParam : public baseparam { T fParam; public: MsgParam(T val) : fParam(val) {} virtual ~MsgParam() {} T getValue() const { return fParam; } virtual SMARTP copy() const { return new MsgParam(fParam); } }; //-------------------------------------------------------------------------- /*! \brief a message description A message is composed of an address (actually an OSC address), a message string that may be viewed as a method name and a list of message parameters. */ class Message { public: typedef SMARTP argPtr; ///< a message argument ptr type typedef std::vector argslist; ///< args list type private: unsigned long fSrcIP; ///< the message source IP number std::string fAddress; ///< the message osc destination address argslist fArguments; ///< the message arguments public: /*! \brief an empty message constructor */ Message() {} /*! \brief a message constructor \param address the message destination address */ Message(const std::string& address) : fAddress(address) {} /*! \brief a message constructor \param address the message destination address \param args the message parameters */ Message(const std::string& address, const argslist& args) : fAddress(address), fArguments(args) {} /*! \brief a message constructor \param msg a message */ Message(const Message& msg); virtual ~Message() {} //{ freed++; std::cout << "running messages: " << (allocated - freed) << std::endl; } /*! \brief adds a parameter to the message \param val the parameter */ template void add(T val) { fArguments.push_back(new MsgParam(val)); } /*! \brief adds a float parameter to the message \param val the parameter value */ void add(float val) { add(val); } /*! \brief adds an int parameter to the message \param val the parameter value */ void add(int val) { add(val); } /*! \brief adds a string parameter to the message \param val the parameter value */ void add(const std::string& val) { add(val); } /*! \brief adds a parameter to the message \param val the parameter */ void add( argPtr val ) { fArguments.push_back( val ); } /*! \brief sets the message address \param addr the address */ void setSrcIP(unsigned long addr) { fSrcIP = addr; } /*! \brief sets the message address \param addr the address */ void setAddress(const std::string& addr) { fAddress = addr; } /*! \brief print the message \param out the output stream */ void print(std::ostream& out) const; /*! \brief send the message to OSC \param out the OSC output stream */ void print(OSCStream& out) const; /*! \brief print message arguments \param out the OSC output stream */ void printArgs(OSCStream& out) const; /// \brief gives the message address const std::string& address() const { return fAddress; } /// \brief gives the message parameters list const argslist& params() const { return fArguments; } /// \brief gives the message parameters list argslist& params() { return fArguments; } /// \brief gives the message source IP unsigned long src() const { return fSrcIP; } /// \brief gives the message parameters count int size() const { return fArguments.size(); } bool operator == (const Message& other) const; /*! \brief gives a message float parameter \param i the parameter index (0 <= i < size()) \param val on output: the parameter value when the parameter type matches \return false when types don't match */ bool param(int i, float& val) const { val = params()[i]->value(val); return params()[i]->isType(); } /*! \brief gives a message int parameter \param i the parameter index (0 <= i < size()) \param val on output: the parameter value when the parameter type matches \return false when types don't match */ bool param(int i, int& val) const { val = params()[i]->value(val); return params()[i]->isType(); } /*! \brief gives a message int parameter \param i the parameter index (0 <= i < size()) \param val on output: the parameter value when the parameter type matches \return false when types don't match */ bool param(int i, unsigned int& val) const { val = params()[i]->value(val); return params()[i]->isType(); } /*! \brief gives a message int parameter \param i the parameter index (0 <= i < size()) \param val on output: the parameter value when the parameter type matches \return false when types don't match \note a boolean value is handled as integer */ bool param(int i, bool& val) const { int ival = 0; ival = params()[i]->value(ival); val = ival!=0; return params()[i]->isType(); } /*! \brief gives a message int parameter \param i the parameter index (0 <= i < size()) \param val on output: the parameter value when the parameter type matches \return false when types don't match */ bool param(int i, long int& val) const { val = long(params()[i]->value(val)); return params()[i]->isType(); } /*! \brief gives a message string parameter \param i the parameter index (0 <= i < size()) \param val on output: the parameter value when the parameter type matches \return false when types don't match */ bool param(int i, std::string& val) const { val = params()[i]->value(val); return params()[i]->isType(); } }; } // end namespoace #endif faust-0.9.46/architecture/osclib/faust/src/lib/0000755000175000017500000000000011702130733021261 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/faust/src/lib/deelx.h0000755000175000017500000026104011702130733022541 0ustar orlareyorlarey// deelx.h // // DEELX Regular Expression Engine (v1.2) // // Copyright 2006 (c) RegExLab.com // All Rights Reserved. // // http://www.regexlab.com/deelx/ // // Author: ʷΰ (sswater shi) // sswater@gmail.com // // $Revision: 1.1.2.26 $ // #ifndef __DEELX_REGEXP__H__ #define __DEELX_REGEXP__H__ #include #include #include #include #include // // Data Reference // template class CBufferRefT { public: CBufferRefT(const ELT * pcsz, int length); CBufferRefT(const ELT * pcsz); public: int nCompare (const ELT * pcsz) const; int nCompareNoCase(const ELT * pcsz) const; int Compare (const ELT * pcsz) const; int CompareNoCase(const ELT * pcsz) const; int Compare (const CBufferRefT &) const; int CompareNoCase(const CBufferRefT &) const; ELT At (int nIndex, ELT def = 0) const; ELT operator [] (int nIndex) const; const ELT * GetBuffer() const; int GetSize() const; public: virtual ~CBufferRefT(); // Content protected: const ELT * m_pRef; int m_nSize; }; // // Implemenation // template CBufferRefT :: CBufferRefT(const ELT * pcsz, int length) { m_pRef = pcsz; m_nSize = length; } template CBufferRefT :: CBufferRefT(const ELT * pcsz) { m_pRef = pcsz; m_nSize = 0; if(pcsz != 0) while(m_pRef[m_nSize] != 0) m_nSize ++; } template int CBufferRefT :: nCompare(const ELT * pcsz) const { for(int i=0; i int CBufferRefT :: nCompareNoCase(const ELT * pcsz) const { for(int i=0; i inline int CBufferRefT :: Compare(const ELT * pcsz) const { return nCompare(pcsz) ? 1 : (int)pcsz[m_nSize]; } template inline int CBufferRefT :: CompareNoCase(const ELT * pcsz) const { return nCompareNoCase(pcsz) ? 1 : (int)pcsz[m_nSize]; } template inline int CBufferRefT :: Compare(const CBufferRefT & cref) const { return m_nSize == cref.m_nSize ? nCompare(cref.GetBuffer()) : 1; } template inline int CBufferRefT :: CompareNoCase(const CBufferRefT & cref) const { return m_nSize == cref.m_nSize ? nCompareNoCase(cref.GetBuffer()) : 1; } template inline ELT CBufferRefT :: At(int nIndex, ELT def) const { return nIndex >= m_nSize ? def : m_pRef[nIndex]; } template inline ELT CBufferRefT :: operator [] (int nIndex) const { return nIndex >= m_nSize ? 0 : m_pRef[nIndex]; } template const ELT * CBufferRefT :: GetBuffer() const { static const ELT _def[] = {0}; return m_pRef ? m_pRef : _def; } template inline int CBufferRefT :: GetSize() const { return m_nSize; } template CBufferRefT :: ~CBufferRefT() { } // // Data Buffer // template class CBufferT : public CBufferRefT { public: CBufferT(const ELT * pcsz, int length); CBufferT(const ELT * pcsz); CBufferT(); public: ELT & operator [] (int nIndex); const ELT & operator [] (int nIndex) const; void Append(const ELT * pcsz, int length, int eol = 0); void Append(ELT el, int eol = 0); public: void Push(ELT el); int Pop (ELT & el); int Peek(ELT & el) const; public: const ELT * GetBuffer() const; ELT * GetBuffer(); ELT * Detach(); void Release(); void Prepare(int index, int fill = 0); void Restore(int size); public: virtual ~CBufferT(); // Content protected: ELT * m_pBuffer; int m_nMaxLength; }; // // Implemenation // template CBufferT :: CBufferT(const ELT * pcsz, int length) : CBufferRefT (0, length) { m_nMaxLength = CBufferRefT :: m_nSize + 1; CBufferRefT :: m_pRef = m_pBuffer = new ELT[m_nMaxLength]; memcpy(m_pBuffer, pcsz, sizeof(ELT) * CBufferRefT :: m_nSize); m_pBuffer[CBufferRefT :: m_nSize] = 0; } template CBufferT :: CBufferT(const ELT * pcsz) : CBufferRefT (pcsz) { m_nMaxLength = CBufferRefT :: m_nSize + 1; CBufferRefT :: m_pRef = m_pBuffer = new ELT[m_nMaxLength]; memcpy(m_pBuffer, pcsz, sizeof(ELT) * CBufferRefT :: m_nSize); m_pBuffer[CBufferRefT :: m_nSize] = 0; } template CBufferT :: CBufferT() : CBufferRefT (0, 0) { m_nMaxLength = 0; m_pBuffer = 0; } template inline ELT & CBufferT :: operator [] (int nIndex) { return m_pBuffer[nIndex]; } template inline const ELT & CBufferT :: operator [] (int nIndex) const { return m_pBuffer[nIndex]; } template void CBufferT :: Append(const ELT * pcsz, int length, int eol) { int nNewLength = m_nMaxLength; // Check length if(nNewLength < 8) nNewLength = 8; if(CBufferRefT :: m_nSize + length + eol > nNewLength) nNewLength *= 2; if(CBufferRefT :: m_nSize + length + eol > nNewLength) { nNewLength = CBufferRefT :: m_nSize + length + eol + 11; nNewLength -= nNewLength % 8; } // Realloc if(nNewLength > m_nMaxLength) { ELT * pNewBuffer = new ELT[nNewLength]; if(m_pBuffer != 0) { memcpy(pNewBuffer, m_pBuffer, sizeof(ELT) * CBufferRefT :: m_nSize); delete [] m_pBuffer; } CBufferRefT :: m_pRef = m_pBuffer = pNewBuffer; m_nMaxLength = nNewLength; } // Append memcpy(m_pBuffer + CBufferRefT :: m_nSize, pcsz, sizeof(ELT) * length); CBufferRefT :: m_nSize += length; if(eol > 0) m_pBuffer[CBufferRefT :: m_nSize] = 0; } template inline void CBufferT :: Append(ELT el, int eol) { Append(&el, 1, eol); } template void CBufferT :: Push(ELT el) { // Realloc if(CBufferRefT :: m_nSize >= m_nMaxLength) { int nNewLength = m_nMaxLength * 2; if( nNewLength < 8 ) nNewLength = 8; ELT * pNewBuffer = new ELT[nNewLength]; if(m_pBuffer != 0) { memcpy(pNewBuffer, m_pBuffer, sizeof(ELT) * CBufferRefT :: m_nSize); delete [] m_pBuffer; } CBufferRefT :: m_pRef = m_pBuffer = pNewBuffer; m_nMaxLength = nNewLength; } // Append m_pBuffer[CBufferRefT :: m_nSize++] = el; } template inline int CBufferT :: Pop(ELT & el) { if(CBufferRefT :: m_nSize > 0) { el = m_pBuffer[--CBufferRefT :: m_nSize]; return 1; } else { return 0; } } template inline int CBufferT :: Peek(ELT & el) const { if(CBufferRefT :: m_nSize > 0) { el = m_pBuffer[CBufferRefT :: m_nSize - 1]; return 1; } else { return 0; } } template const ELT * CBufferT :: GetBuffer() const { static const ELT _def[] = {0}; return m_pBuffer ? m_pBuffer : _def; } template ELT * CBufferT :: GetBuffer() { static const ELT _def[] = {0}; return m_pBuffer ? m_pBuffer : (ELT *)_def; } template ELT * CBufferT :: Detach() { ELT * pBuffer = m_pBuffer; CBufferRefT :: m_pRef = m_pBuffer = 0; CBufferRefT :: m_nSize = m_nMaxLength = 0; return pBuffer; } template void CBufferT :: Release() { ELT * pBuffer = Detach(); if(pBuffer != 0) delete [] pBuffer; } template void CBufferT :: Prepare(int index, int fill) { int nNewSize = index + 1; // Realloc if(nNewSize > m_nMaxLength) { int nNewLength = m_nMaxLength; if( nNewLength < 8 ) nNewLength = 8; if( nNewSize > nNewLength ) nNewLength *= 2; if( nNewSize > nNewLength ) { nNewLength = nNewSize + 11; nNewLength -= nNewLength % 8; } ELT * pNewBuffer = new ELT[nNewLength]; if(m_pBuffer != 0) { memcpy(pNewBuffer, m_pBuffer, sizeof(ELT) * CBufferRefT :: m_nSize); delete [] m_pBuffer; } CBufferRefT :: m_pRef = m_pBuffer = pNewBuffer; m_nMaxLength = nNewLength; } // size if( CBufferRefT :: m_nSize < nNewSize ) { memset(m_pBuffer + CBufferRefT :: m_nSize, fill, sizeof(ELT) * (nNewSize - CBufferRefT :: m_nSize)); CBufferRefT :: m_nSize = nNewSize; } } template inline void CBufferT :: Restore(int size) { CBufferRefT :: m_nSize = size; } template CBufferT :: ~CBufferT() { if(m_pBuffer != 0) delete [] m_pBuffer; } // // Context // class CContext { public: CBufferT m_stack; CBufferT m_capturestack, m_captureindex; public: int m_nCurrentPos; int m_nBeginPos; int m_nLastBeginPos; int m_nParenZindex; void * m_pMatchString; int m_pMatchStringLength; }; // // Interface // class ElxInterface { public: virtual int Match (CContext * pContext) const = 0; virtual int MatchNext(CContext * pContext) const = 0; public: virtual ~ElxInterface() {}; }; // // Alternative // template class CAlternativeElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CAlternativeElxT(); public: CBufferT m_elxlist; }; typedef CAlternativeElxT <0> CAlternativeElx; // // Assert // template class CAssertElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CAssertElxT(ElxInterface * pelx, int byes = 1); public: ElxInterface * m_pelx; int m_byes; }; typedef CAssertElxT <0> CAssertElx; // // Back reference elx // template class CBackrefElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CBackrefElxT(int nnumber, int brightleft, int bignorecase); public: int m_nnumber; int m_brightleft; int m_bignorecase; CBufferT m_szNamed; }; // // Implementation // template CBackrefElxT :: CBackrefElxT(int nnumber, int brightleft, int bignorecase) { m_nnumber = nnumber; m_brightleft = brightleft; m_bignorecase = bignorecase; } template int CBackrefElxT :: Match(CContext * pContext) const { // check number, for named if( m_nnumber < 0 || m_nnumber >= pContext->m_captureindex.GetSize() ) return 0; int index = pContext->m_captureindex[m_nnumber]; if( index < 0 ) return 0; // check enclosed int pos1 = pContext->m_capturestack[index + 1]; int pos2 = pContext->m_capturestack[index + 2]; if( pos2 < 0 ) pos2 = pContext->m_nCurrentPos; // info int lpos = pos1 < pos2 ? pos1 : pos2; int rpos = pos1 < pos2 ? pos2 : pos1; int slen = rpos - lpos; const CHART * pcsz = (const CHART *)pContext->m_pMatchString; int npos = pContext->m_nCurrentPos; int tlen = pContext->m_pMatchStringLength; // compare int bsucc; CBufferRefT refstr(pcsz + lpos, slen); if( m_brightleft ) { if(npos < slen) return 0; if(m_bignorecase) bsucc = ! refstr.nCompareNoCase(pcsz + (npos - slen)); else bsucc = ! refstr.nCompare (pcsz + (npos - slen)); if( bsucc ) { pContext->m_stack.Push(npos); pContext->m_nCurrentPos -= slen; } } else { if(npos + slen > tlen) return 0; if(m_bignorecase) bsucc = ! refstr.nCompareNoCase(pcsz + npos); else bsucc = ! refstr.nCompare (pcsz + npos); if( bsucc ) { pContext->m_stack.Push(npos); pContext->m_nCurrentPos += slen; } } return bsucc; } template int CBackrefElxT :: MatchNext(CContext * pContext) const { int npos = 0; pContext->m_stack.Pop(npos); pContext->m_nCurrentPos = npos; return 0; } // RCHART #ifndef RCHART #define RCHART(ch) ((CHART)ch) #endif // BOUNDARY_TYPE enum BOUNDARY_TYPE { BOUNDARY_FILE_BEGIN, // begin of whole text BOUNDARY_FILE_END , // end of whole text BOUNDARY_LINE_BEGIN, // begin of line BOUNDARY_LINE_END , // end of line BOUNDARY_WORD_BEGIN, // begin of word BOUNDARY_WORD_END , // end of word BOUNDARY_WORD_EDGE , }; // // Boundary Elx // template class CBoundaryElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CBoundaryElxT(int ntype, int byes = 1); protected: static int IsWordChar(CHART ch); public: int m_ntype; int m_byes; }; // // Implementation // template CBoundaryElxT :: CBoundaryElxT(int ntype, int byes) { m_ntype = ntype; m_byes = byes; } template int CBoundaryElxT :: Match(CContext * pContext) const { const CHART * pcsz = (const CHART *)pContext->m_pMatchString; int npos = pContext->m_nCurrentPos; int tlen = pContext->m_pMatchStringLength; CHART chL = npos > 0 ? pcsz[npos - 1] : 0; CHART chR = npos < tlen ? pcsz[npos ] : 0; int bsucc = 0; switch(m_ntype) { case BOUNDARY_FILE_BEGIN: bsucc = (npos <= 0); break; case BOUNDARY_FILE_END: bsucc = (npos >= tlen); break; case BOUNDARY_LINE_BEGIN: bsucc = (npos <= 0 ) || (chL == RCHART('\n')) || ((chL == RCHART('\r')) && (chR != RCHART('\n'))); break; case BOUNDARY_LINE_END: bsucc = (npos >= tlen) || (chR == RCHART('\r')) || ((chR == RCHART('\n')) && (chL != RCHART('\r'))); break; case BOUNDARY_WORD_BEGIN: bsucc = ! IsWordChar(chL) && IsWordChar(chR); break; case BOUNDARY_WORD_END: bsucc = IsWordChar(chL) && ! IsWordChar(chR); break; case BOUNDARY_WORD_EDGE: bsucc = IsWordChar(chL) ? ! IsWordChar(chR) : IsWordChar(chR); break; } return bsucc; } template int CBoundaryElxT :: MatchNext(CContext *) const { return 0; } template inline int CBoundaryElxT :: IsWordChar(CHART ch) { return (ch >= RCHART('A') && ch <= RCHART('Z')) || (ch >= RCHART('a') && ch <= RCHART('z')) || (ch >= RCHART('0') && ch <= RCHART('9')) || (ch == RCHART('_')); } // // Bracket // template class CBracketElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CBracketElxT(int nnumber, int bright); public: int m_nnumber; int m_bright; CBufferT m_szNamed; }; template CBracketElxT :: CBracketElxT(int nnumber, int bright) { m_nnumber = nnumber; m_bright = bright; } template int CBracketElxT :: Match(CContext * pContext) const { // check, for named if(m_nnumber < 0) return 0; if( ! m_bright ) { pContext->m_captureindex.Prepare(m_nnumber, -1); int index = pContext->m_captureindex[m_nnumber]; // check if(index > 0 && index < pContext->m_capturestack.GetSize() && pContext->m_capturestack[index+2] < 0) { pContext->m_capturestack[index+3] --; return 1; } // save pContext->m_captureindex[m_nnumber] = pContext->m_capturestack.GetSize(); pContext->m_capturestack.Push(m_nnumber); pContext->m_capturestack.Push(pContext->m_nCurrentPos); pContext->m_capturestack.Push(-1); pContext->m_capturestack.Push( 0); // z-index } else { // check int index = pContext->m_captureindex[m_nnumber]; if(pContext->m_capturestack[index + 3] < 0) { pContext->m_capturestack[index + 3] ++; return 1; } // save pContext->m_capturestack[index + 2] = pContext->m_nCurrentPos; pContext->m_capturestack[index + 3] = pContext->m_nParenZindex ++; } return 1; } template int CBracketElxT :: MatchNext(CContext * pContext) const { int index = pContext->m_captureindex[m_nnumber]; if( ! m_bright ) { if(pContext->m_capturestack[index + 3] < 0) { pContext->m_capturestack[index + 3] ++; return 0; } pContext->m_capturestack.Restore(pContext->m_capturestack.GetSize() - 4); // to find index = pContext->m_capturestack.GetSize() - 4; while(index >= 0 && pContext->m_capturestack[index] != m_nnumber) index -= 4; // new index pContext->m_captureindex[m_nnumber] = index; } else { if(pContext->m_capturestack[index + 3] < 0) { pContext->m_capturestack[index + 3] --; return 0; } pContext->m_capturestack[index + 2] = -1; pContext->m_capturestack[index + 3] = 0; } return 0; } // // Deletage // template class CDelegateElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CDelegateElxT(int ndata = 0); public: ElxInterface * m_pelx; int m_ndata; // +0 : recursive to // -3 : named recursive CBufferT m_szNamed; }; template CDelegateElxT :: CDelegateElxT(int ndata) { m_pelx = 0; m_ndata = ndata; } template int CDelegateElxT :: Match(CContext * pContext) const { if(m_pelx != 0) return m_pelx->Match(pContext); else return 1; } template int CDelegateElxT :: MatchNext(CContext * pContext) const { if(m_pelx != 0) return m_pelx->MatchNext(pContext); else return 0; } // // Empty // template class CEmptyElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CEmptyElxT(); }; typedef CEmptyElxT <0> CEmptyElx; // // Global // template class CGlobalElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CGlobalElxT(); }; typedef CGlobalElxT <0> CGlobalElx; // // Repeat // template class CRepeatElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CRepeatElxT(ElxInterface * pelx, int ntimes); protected: int MatchFixed (CContext * pContext) const; int MatchNextFixed(CContext * pContext) const; public: ElxInterface * m_pelx; int m_nfixed; }; typedef CRepeatElxT <0> CRepeatElx; // // Greedy // template class CGreedyElxT : public CRepeatElxT { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CGreedyElxT(ElxInterface * pelx, int nmin = 0, int nmax = INT_MAX); protected: int MatchVart (CContext * pContext) const; int MatchNextVart(CContext * pContext) const; public: int m_nvart; }; typedef CGreedyElxT <0> CGreedyElx; // // Independent // template class CIndependentElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CIndependentElxT(ElxInterface * pelx); public: ElxInterface * m_pelx; }; typedef CIndependentElxT <0> CIndependentElx; // // List // template class CListElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CListElxT(int brightleft); public: CBufferT m_elxlist; int m_brightleft; }; typedef CListElxT <0> CListElx; // // Posix Elx // template class CPosixElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CPosixElxT(const char * posix, int brightleft); protected: static int misblank(int c); public: int (*m_posixfun)(int); int m_brightleft; int m_byes; }; // // Implementation // template CPosixElxT :: CPosixElxT(const char * posix, int brightleft) { m_brightleft = brightleft; if(posix[1] == '^') { m_byes = 0; posix += 2; } else { m_byes = 1; posix += 1; } if (!strncmp(posix, "alnum:", 6)) m_posixfun = isalnum ; else if(!strncmp(posix, "alpha:", 6)) m_posixfun = isalpha ; else if(!strncmp(posix, "ascii:", 6)) m_posixfun = isascii ; else if(!strncmp(posix, "cntrl:", 6)) m_posixfun = iscntrl ; else if(!strncmp(posix, "digit:", 6)) m_posixfun = isdigit ; else if(!strncmp(posix, "graph:", 6)) m_posixfun = isgraph ; else if(!strncmp(posix, "lower:", 6)) m_posixfun = islower ; else if(!strncmp(posix, "print:", 6)) m_posixfun = isprint ; else if(!strncmp(posix, "punct:", 6)) m_posixfun = ispunct ; else if(!strncmp(posix, "space:", 6)) m_posixfun = isspace ; else if(!strncmp(posix, "upper:", 6)) m_posixfun = isupper ; else if(!strncmp(posix, "xdigit:",7)) m_posixfun = isxdigit; else if(!strncmp(posix, "blank:", 6)) m_posixfun = misblank; else m_posixfun = 0 ; } template int CPosixElxT :: misblank(int c) { return c == 0x20 || c == '\t'; } template int CPosixElxT :: Match(CContext * pContext) const { if(m_posixfun == 0) return 0; int tlen = pContext->m_pMatchStringLength; int npos = pContext->m_nCurrentPos; // check int at = m_brightleft ? npos - 1 : npos; if( at < 0 || at >= tlen ) return 0; CHART ch = ((const CHART *)pContext->m_pMatchString)[at]; int bsucc = (*m_posixfun)(ch); if( ! m_byes ) bsucc = ! bsucc; if( bsucc ) pContext->m_nCurrentPos += m_brightleft ? -1 : 1; return bsucc; } template int CPosixElxT :: MatchNext(CContext * pContext) const { pContext->m_nCurrentPos -= m_brightleft ? -1 : 1; return 0; } // // Possessive // template class CPossessiveElxT : public CGreedyElxT { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CPossessiveElxT(ElxInterface * pelx, int nmin = 0, int nmax = INT_MAX); }; typedef CPossessiveElxT <0> CPossessiveElx; // // Range Elx // template class CRangeElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CRangeElxT(int brightleft, int byes); public: CBufferT m_ranges; CBufferT m_chars; CBufferT m_embeds; public: int m_brightleft; int m_byes; }; // // Implementation // template CRangeElxT :: CRangeElxT(int brightleft, int byes) { m_brightleft = brightleft; m_byes = byes; } template int CRangeElxT :: Match(CContext * pContext) const { int tlen = pContext->m_pMatchStringLength; int npos = pContext->m_nCurrentPos; // check int at = m_brightleft ? npos - 1 : npos; if( at < 0 || at >= tlen ) return 0; CHART ch = ((const CHART *)pContext->m_pMatchString)[at]; int bsucc = 0, i; // compare for(i=0; !bsucc && iMatch(pContext)) { pContext->m_nCurrentPos = npos; bsucc = 1; } } if( ! m_byes ) bsucc = ! bsucc; if( bsucc ) pContext->m_nCurrentPos += m_brightleft ? -1 : 1; return bsucc; } template int CRangeElxT :: MatchNext(CContext * pContext) const { pContext->m_nCurrentPos -= m_brightleft ? -1 : 1; return 0; } // // Reluctant // template class CReluctantElxT : public CRepeatElxT { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CReluctantElxT(ElxInterface * pelx, int nmin = 0, int nmax = INT_MAX); protected: int MatchVart (CContext * pContext) const; int MatchNextVart(CContext * pContext) const; public: int m_nvart; }; typedef CReluctantElxT <0> CReluctantElx; // // String Elx // template class CStringElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CStringElxT(const CHART * fixed, int nlength, int brightleft, int bignorecase); public: CBufferT m_szPattern; int m_brightleft; int m_bignorecase; }; // // Implementation // template CStringElxT :: CStringElxT(const CHART * fixed, int nlength, int brightleft, int bignorecase) : m_szPattern(fixed, nlength) { m_brightleft = brightleft; m_bignorecase = bignorecase; } template int CStringElxT :: Match(CContext * pContext) const { const CHART * pcsz = (const CHART *)pContext->m_pMatchString; int npos = pContext->m_nCurrentPos; int tlen = pContext->m_pMatchStringLength; int slen = m_szPattern.GetSize(); int bsucc; if(m_brightleft) { if(npos < slen) return 0; if(m_bignorecase) bsucc = ! m_szPattern.nCompareNoCase(pcsz + (npos - slen)); else bsucc = ! m_szPattern.nCompare (pcsz + (npos - slen)); if( bsucc ) pContext->m_nCurrentPos -= slen; } else { if(npos + slen > tlen) return 0; if(m_bignorecase) bsucc = ! m_szPattern.nCompareNoCase(pcsz + npos); else bsucc = ! m_szPattern.nCompare (pcsz + npos); if( bsucc ) pContext->m_nCurrentPos += slen; } return bsucc; } template int CStringElxT :: MatchNext(CContext * pContext) const { int slen = m_szPattern.GetSize(); if(m_brightleft) pContext->m_nCurrentPos += slen; else pContext->m_nCurrentPos -= slen; return 0; } // // CConditionElx // template class CConditionElxT : public ElxInterface { public: int Match (CContext * pContext) const; int MatchNext(CContext * pContext) const; public: CConditionElxT(); public: // backref condition int m_nnumber; CBufferT m_szNamed; // elx condition ElxInterface * m_pelxask; // selection ElxInterface * m_pelxyes, * m_pelxno; }; template CConditionElxT :: CConditionElxT() { m_nnumber = -1; } template int CConditionElxT :: Match(CContext * pContext) const { // status int nbegin = pContext->m_nCurrentPos; int nsize = pContext->m_stack.GetSize(); int ncsize = pContext->m_capturestack.GetSize(); // condition result int condition_yes = 0; // backref type if( m_nnumber >= 0 ) { do { if(m_nnumber >= pContext->m_captureindex.GetSize()) break; int index = pContext->m_captureindex[m_nnumber]; if( index < 0) break; // else valid condition_yes = 1; } while(0); } else { if( m_pelxask == 0 ) condition_yes = 1; else condition_yes = m_pelxask->Match(pContext); pContext->m_stack.Restore(nsize); pContext->m_nCurrentPos = nbegin; } // elx result int bsucc; if( condition_yes ) bsucc = m_pelxyes == 0 ? 1 : m_pelxyes->Match(pContext); else bsucc = m_pelxno == 0 ? 1 : m_pelxno ->Match(pContext); if( bsucc ) { pContext->m_stack.Push(ncsize); pContext->m_stack.Push(condition_yes); } else { pContext->m_capturestack.Restore(ncsize); } return bsucc; } template int CConditionElxT :: MatchNext(CContext * pContext) const { // pop int ncsize, condition_yes; pContext->m_stack.Pop(condition_yes); pContext->m_stack.Pop(ncsize); // elx result int bsucc; if( condition_yes ) bsucc = m_pelxyes == 0 ? 0 : m_pelxyes->MatchNext(pContext); else bsucc = m_pelxno == 0 ? 0 : m_pelxno ->MatchNext(pContext); if( bsucc ) { pContext->m_stack.Push(ncsize); pContext->m_stack.Push(condition_yes); } else { pContext->m_capturestack.Restore(ncsize); } return bsucc; } // // MatchResult // template class MatchResultT { public: int IsMatched() const; public: int GetStart() const; int GetEnd () const; public: int MaxGroupNumber() const; int GetGroupStart(int nGroupNumber) const; int GetGroupEnd (int nGroupNumber) const; public: MatchResultT(CContext * pContext, int nMaxNumber = -1); MatchResultT & operator = (const MatchResultT &); inline operator int() const { return IsMatched(); } public: CBufferT m_result; }; typedef MatchResultT <0> MatchResult; // Stocked Elx IDs enum STOCKELX_ID_DEFINES { STOCKELX_EMPTY = 0, /////////////////////// STOCKELX_DOT_ALL, STOCKELX_DOT_NOT_ALL, STOCKELX_WORD, STOCKELX_WORD_NOT, STOCKELX_SPACE, STOCKELX_SPACE_NOT, STOCKELX_DIGITAL, STOCKELX_DIGITAL_NOT, ////////////////////// STOCKELX_DOT_ALL_RIGHTLEFT, STOCKELX_DOT_NOT_ALL_RIGHTLEFT, STOCKELX_WORD_RIGHTLEFT, STOCKELX_WORD_RIGHTLEFT_NOT, STOCKELX_SPACE_RIGHTLEFT, STOCKELX_SPACE_RIGHTLEFT_NOT, STOCKELX_DIGITAL_RIGHTLEFT, STOCKELX_DIGITAL_RIGHTLEFT_NOT, ///////////////////// STOCKELX_COUNT }; // REGEX_FLAGS #ifndef _REGEX_FLAGS_DEFINED enum REGEX_FLAGS { NO_FLAG = 0, SINGLELINE = 0x01, MULTILINE = 0x02, GLOBAL = 0x04, IGNORECASE = 0x08, RIGHTTOLEFT = 0x10, EXTENDED = 0x20, }; #define _REGEX_FLAGS_DEFINED #endif // // Builder T // template class CBuilderT { public: typedef CDelegateElxT CDelegateElx; typedef CBracketElxT CBracketElx; typedef CBackrefElxT CBackrefElx; typedef CConditionElxT CConditionElx; // Methods public: ElxInterface * Build(const CBufferRefT & pattern, int flags); int GetNamedNumber(const CBufferRefT & named) const; void Clear(); public: CBuilderT(); ~CBuilderT(); // Public Attributes public: ElxInterface * m_pTopElx; int m_nFlags; int m_nMaxNumber; int m_nNextNamed; int m_nGroupCount; CBufferT m_objlist; CBufferT m_grouplist; CBufferT m_recursivelist; CBufferT m_namedlist; CBufferT m_namedbackreflist; CBufferT m_namedconditionlist; // CHART_INFO protected: struct CHART_INFO { public: CHART ch; int type; int pos; int len; public: CHART_INFO(CHART c, int t, int p = 0, int l = 0) { ch = c; type = t; pos = p; len = l; } inline int operator == (const CHART_INFO & ci) { return ch == ci.ch && type == ci.type; } inline int operator != (const CHART_INFO & ci) { return ! operator == (ci); } }; protected: static unsigned int Hex2Int(const CHART * pcsz, int length, int & used); static int ReadDec(char * & str, unsigned int & dec); void MoveNext(); int GetNext2(); ElxInterface * BuildAlternative(int vaflags); ElxInterface * BuildList (int & flags); ElxInterface * BuildRepeat (int & flags); ElxInterface * BuildSimple (int & flags); ElxInterface * BuildCharset (int & flags); ElxInterface * BuildRecursive (int & flags); ElxInterface * BuildBoundary (int & flags); ElxInterface * BuildBackref (int & flags); ElxInterface * GetStockElx (int nStockId); ElxInterface * Keep(ElxInterface * pElx); // Private Attributes protected: CBufferRefT m_pattern; CHART_INFO prev, curr, next, nex2; int m_nNextPos; int m_nCharsetDepth; int m_bQuoted; int (*m_quote_fun)(int); ElxInterface * m_pStockElxs[STOCKELX_COUNT]; }; // // Implementation // template CBuilderT :: CBuilderT() : m_pattern(0, 0), prev(0, 0), curr(0, 0), next(0, 0), nex2(0, 0) { Clear(); } template CBuilderT :: ~CBuilderT() { Clear(); } template int CBuilderT :: GetNamedNumber(const CBufferRefT & named) const { for(int i=0; im_elxlist[0])->m_szNamed.CompareNoCase(named) ) return ((CBracketElx *)m_namedlist[i]->m_elxlist[0])->m_nnumber; } return -3; } template ElxInterface * CBuilderT :: Build(const CBufferRefT & pattern, int flags) { // init m_pattern = pattern; m_nNextPos = 0; m_nCharsetDepth = 0; m_nMaxNumber = 0; m_nNextNamed = 0; m_nFlags = flags; m_bQuoted = 0; m_quote_fun = 0; m_grouplist .Restore(0); m_recursivelist .Restore(0); m_namedlist .Restore(0); m_namedbackreflist .Restore(0); m_namedconditionlist.Restore(0); int i; for(i=0; i<3; i++) MoveNext(); // build m_pTopElx = BuildAlternative(flags); // group 0 m_grouplist.Prepare(0); m_grouplist[0] = m_pTopElx; // append named to unnamed m_nGroupCount = m_grouplist.GetSize(); m_grouplist.Prepare(m_nMaxNumber + m_namedlist.GetSize()); for(i=0; im_elxlist[0]; CBracketElx * pright = (CBracketElx *)m_namedlist[i]->m_elxlist[2]; // append m_grouplist[m_nGroupCount ++] = m_namedlist[i]; if( pleft->m_nnumber > 0 ) continue; // same name int find_same_name = GetNamedNumber(pleft->m_szNamed); if( find_same_name >= 0 ) { pleft ->m_nnumber = find_same_name; pright->m_nnumber = find_same_name; } else { m_nMaxNumber ++; pleft ->m_nnumber = m_nMaxNumber; pright->m_nnumber = m_nMaxNumber; } } for(i=1; im_elxlist[0]; if( pleft->m_nnumber > m_nMaxNumber ) m_nMaxNumber = pleft->m_nnumber; } // connect recursive for(i=0; im_ndata == -3 ) m_recursivelist[i]->m_ndata = GetNamedNumber(m_recursivelist[i]->m_szNamed); if( m_recursivelist[i]->m_ndata >= 0 && m_recursivelist[i]->m_ndata < m_grouplist.GetSize() ) m_recursivelist[i]->m_pelx = m_grouplist[m_recursivelist[i]->m_ndata]; } // named backref for(i=0; im_nnumber = GetNamedNumber(m_namedbackreflist[i]->m_szNamed); } // named condition for(i=0; im_szNamed); if( nn >= 0 ) { m_namedconditionlist[i]->m_nnumber = nn; m_namedconditionlist[i]->m_pelxask = 0; } } return m_pTopElx; } template void CBuilderT :: Clear() { for(int i=0; i unsigned int CBuilderT :: Hex2Int(const CHART * pcsz, int length, int & used) { unsigned int result = 0; int & i = used; for(i=0; i= RCHART('0') && pcsz[i] <= RCHART('9')) result = (result << 4) + (pcsz[i] - RCHART('0')); else if(pcsz[i] >= RCHART('A') && pcsz[i] <= RCHART('F')) result = (result << 4) + (0x0A + (pcsz[i] - RCHART('A'))); else if(pcsz[i] >= RCHART('a') && pcsz[i] <= RCHART('f')) result = (result << 4) + (0x0A + (pcsz[i] - RCHART('a'))); else break; } return result; } template inline ElxInterface * CBuilderT :: Keep(ElxInterface * pelx) { m_objlist.Push(pelx); return pelx; } template void CBuilderT :: MoveNext() { // forwards prev = curr; curr = next; next = nex2; // get nex2 while( ! GetNext2() ) {}; } template int CBuilderT :: GetNext2() { // check length if(m_nNextPos >= m_pattern.GetSize()) { nex2 = CHART_INFO(0, 1, m_nNextPos, 0); return 1; } int delta = 1; CHART ch = m_pattern[m_nNextPos]; // if quoted if(m_bQuoted) { if(ch == RCHART('\\')) { if(m_pattern[m_nNextPos + 1] == RCHART('E')) { m_quote_fun = 0; m_bQuoted = 0; m_nNextPos += 2; return 0; } } if(m_quote_fun != 0) nex2 = CHART_INFO((CHART)(*m_quote_fun)((int)ch), 0, m_nNextPos, delta); else nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); m_nNextPos += delta; return 1; } // common switch(ch) { case RCHART('\\'): { CHART ch1 = m_pattern[m_nNextPos+1]; // backref if(ch1 >= RCHART('0') && ch1 <= RCHART('9')) { nex2 = CHART_INFO(ch, 1, m_nNextPos, delta); break; } // escape delta = 2; switch(ch1) { case RCHART('A'): case RCHART('Z'): case RCHART('w'): case RCHART('W'): case RCHART('s'): case RCHART('S'): case RCHART('B'): case RCHART('d'): case RCHART('D'): case RCHART('k'): case RCHART('g'): nex2 = CHART_INFO(ch1, 1, m_nNextPos, delta); break; case RCHART('b'): if(m_nCharsetDepth > 0) nex2 = CHART_INFO('\b', 0, m_nNextPos, delta); else nex2 = CHART_INFO(ch1, 1, m_nNextPos, delta); break; /* case RCHART('<'): case RCHART('>'): if(m_nCharsetDepth > 0) nex2 = CHART_INFO(ch1, 0, m_nNextPos, delta); else nex2 = CHART_INFO(ch1, 1, m_nNextPos, delta); break; */ case RCHART('x'): if(m_pattern[m_nNextPos+2] != '{') { int red = 0; unsigned int ch2 = Hex2Int(m_pattern.GetBuffer() + m_nNextPos + 2, 2, red); delta += red; if(red > 0) nex2 = CHART_INFO(RCHART(ch2), 0, m_nNextPos, delta); else nex2 = CHART_INFO(ch1, 0, m_nNextPos, delta); break; } case RCHART('u'): if(m_pattern[m_nNextPos+2] != '{') { int red = 0; unsigned int ch2 = Hex2Int(m_pattern.GetBuffer() + m_nNextPos + 2, 4, red); delta += red; if(red > 0) nex2 = CHART_INFO(RCHART(ch2), 0, m_nNextPos, delta); else nex2 = CHART_INFO(ch1, 0, m_nNextPos, delta); } else { int red = 0; unsigned int ch2 = Hex2Int(m_pattern.GetBuffer() + m_nNextPos + 3, sizeof(int) * 2, red); delta += red; while(m_nNextPos + delta < m_pattern.GetSize() && m_pattern.At(m_nNextPos + delta) != RCHART('}')) delta ++; delta ++; // skip '}' nex2 = CHART_INFO(RCHART(ch2), 0, m_nNextPos, delta); } break; case RCHART('a'): nex2 = CHART_INFO(RCHART('\a'), 0, m_nNextPos, delta); break; case RCHART('f'): nex2 = CHART_INFO(RCHART('\f'), 0, m_nNextPos, delta); break; case RCHART('n'): nex2 = CHART_INFO(RCHART('\n'), 0, m_nNextPos, delta); break; case RCHART('r'): nex2 = CHART_INFO(RCHART('\r'), 0, m_nNextPos, delta); break; case RCHART('t'): nex2 = CHART_INFO(RCHART('\t'), 0, m_nNextPos, delta); break; case RCHART('v'): nex2 = CHART_INFO(RCHART('\v'), 0, m_nNextPos, delta); break; case RCHART('e'): nex2 = CHART_INFO(RCHART( 27 ), 0, m_nNextPos, delta); break; case RCHART('G'): // skip '\G' if(m_nCharsetDepth > 0) { m_nNextPos += 2; return 0; } else { nex2 = CHART_INFO(ch1, 1, m_nNextPos, delta); break; } case RCHART('L'): if( ! m_quote_fun ) m_quote_fun = ::tolower; case RCHART('U'): if( ! m_quote_fun ) m_quote_fun = ::toupper; case RCHART('Q'): { m_bQuoted = 1; m_nNextPos += 2; return 0; } case RCHART('E'): { m_quote_fun = 0; m_bQuoted = 0; m_nNextPos += 2; return 0; } case 0: if(m_nNextPos+1 >= m_pattern.GetSize()) { delta = 1; nex2 = CHART_INFO(ch , 0, m_nNextPos, delta); } else nex2 = CHART_INFO(ch1, 0, m_nNextPos, delta); // common '\0' char break; default: nex2 = CHART_INFO(ch1, 0, m_nNextPos, delta); break; } } break; case RCHART('*'): case RCHART('+'): case RCHART('?'): case RCHART('.'): case RCHART('{'): case RCHART('}'): case RCHART(')'): case RCHART('|'): case RCHART('$'): if(m_nCharsetDepth > 0) nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); else nex2 = CHART_INFO(ch, 1, m_nNextPos, delta); break; case RCHART('-'): if(m_nCharsetDepth > 0) nex2 = CHART_INFO(ch, 1, m_nNextPos, delta); else nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); break; case RCHART('('): { CHART ch1 = m_pattern[m_nNextPos+1]; CHART ch2 = m_pattern[m_nNextPos+2]; // skip remark if(ch1 == RCHART('?') && ch2 == RCHART('#')) { m_nNextPos += 2; while(m_nNextPos < m_pattern.GetSize()) { if(m_pattern[m_nNextPos] == RCHART(')')) break; m_nNextPos ++; } if(m_pattern[m_nNextPos] == RCHART(')')) { m_nNextPos ++; // get next nex2 return 0; } } else { if(m_nCharsetDepth > 0) nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); else nex2 = CHART_INFO(ch, 1, m_nNextPos, delta); } } break; case RCHART('#'): if(m_nFlags & EXTENDED) { // skip remark m_nNextPos ++; while(m_nNextPos < m_pattern.GetSize()) { if(m_pattern[m_nNextPos] == RCHART('\n') || m_pattern[m_nNextPos] == RCHART('\r')) break; m_nNextPos ++; } // get next nex2 return 0; } else { nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); } break; case RCHART(' '): case RCHART('\f'): case RCHART('\n'): case RCHART('\r'): case RCHART('\t'): case RCHART('\v'): if(m_nFlags & EXTENDED) { m_nNextPos ++; // get next nex2 return 0; } else { nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); } break; case RCHART('['): m_nCharsetDepth ++; nex2 = CHART_INFO(ch, 1, m_nNextPos, delta); break; case RCHART(']'): if(m_nCharsetDepth > 0) { m_nCharsetDepth --; nex2 = CHART_INFO(ch, 1, m_nNextPos, delta); } else { nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); } break; case RCHART(':'): if(next == CHART_INFO(RCHART('['), 1)) nex2 = CHART_INFO(ch, 1, m_nNextPos, delta); else nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); break; case RCHART('^'): if(m_nCharsetDepth == 0 || next == CHART_INFO(RCHART('['), 1) || (curr == CHART_INFO(RCHART('['), 1) && next == CHART_INFO(RCHART(':'), 1))) nex2 = CHART_INFO(ch, 1, m_nNextPos, delta); else nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); break; case 0: if(m_nNextPos >= m_pattern.GetSize()) nex2 = CHART_INFO(ch, 1, m_nNextPos, delta); // end of string else nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); // common '\0' char break; default: nex2 = CHART_INFO(ch, 0, m_nNextPos, delta); break; } m_nNextPos += delta; return 1; } template ElxInterface * CBuilderT :: GetStockElx(int nStockId) { ElxInterface ** pStockElxs = m_pStockElxs; // check if(nStockId < 0 || nStockId >= STOCKELX_COUNT) return GetStockElx(0); // create if no if(pStockElxs[nStockId] == 0) { switch(nStockId) { case STOCKELX_EMPTY: pStockElxs[nStockId] = Keep(new CEmptyElx()); break; case STOCKELX_WORD: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (0, 1)); pRange->m_ranges.Push(RCHART('A')); pRange->m_ranges.Push(RCHART('Z')); pRange->m_ranges.Push(RCHART('a')); pRange->m_ranges.Push(RCHART('z')); pRange->m_ranges.Push(RCHART('0')); pRange->m_ranges.Push(RCHART('9')); pRange->m_chars .Push(RCHART('_')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_WORD_NOT: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (0, 0)); pRange->m_ranges.Push(RCHART('A')); pRange->m_ranges.Push(RCHART('Z')); pRange->m_ranges.Push(RCHART('a')); pRange->m_ranges.Push(RCHART('z')); pRange->m_ranges.Push(RCHART('0')); pRange->m_ranges.Push(RCHART('9')); pRange->m_chars .Push(RCHART('_')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_DOT_ALL: pStockElxs[nStockId] = Keep(new CRangeElxT (0, 0)); break; case STOCKELX_DOT_NOT_ALL: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (0, 0)); pRange->m_chars .Push(RCHART('\n')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_SPACE: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (0, 1)); pRange->m_chars .Push(RCHART(' ')); pRange->m_chars .Push(RCHART('\t')); pRange->m_chars .Push(RCHART('\r')); pRange->m_chars .Push(RCHART('\n')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_SPACE_NOT: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (0, 0)); pRange->m_chars .Push(RCHART(' ')); pRange->m_chars .Push(RCHART('\t')); pRange->m_chars .Push(RCHART('\r')); pRange->m_chars .Push(RCHART('\n')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_DIGITAL: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (0, 1)); pRange->m_ranges.Push(RCHART('0')); pRange->m_ranges.Push(RCHART('9')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_DIGITAL_NOT: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (0, 0)); pRange->m_ranges.Push(RCHART('0')); pRange->m_ranges.Push(RCHART('9')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_WORD_RIGHTLEFT: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (1, 1)); pRange->m_ranges.Push(RCHART('A')); pRange->m_ranges.Push(RCHART('Z')); pRange->m_ranges.Push(RCHART('a')); pRange->m_ranges.Push(RCHART('z')); pRange->m_ranges.Push(RCHART('0')); pRange->m_ranges.Push(RCHART('9')); pRange->m_chars .Push(RCHART('_')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_WORD_RIGHTLEFT_NOT: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (1, 0)); pRange->m_ranges.Push(RCHART('A')); pRange->m_ranges.Push(RCHART('Z')); pRange->m_ranges.Push(RCHART('a')); pRange->m_ranges.Push(RCHART('z')); pRange->m_ranges.Push(RCHART('0')); pRange->m_ranges.Push(RCHART('9')); pRange->m_chars .Push(RCHART('_')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_DOT_ALL_RIGHTLEFT: pStockElxs[nStockId] = Keep(new CRangeElxT (1, 0)); break; case STOCKELX_DOT_NOT_ALL_RIGHTLEFT: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (1, 0)); pRange->m_chars .Push(RCHART('\n')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_SPACE_RIGHTLEFT: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (1, 1)); pRange->m_chars .Push(RCHART(' ')); pRange->m_chars .Push(RCHART('\t')); pRange->m_chars .Push(RCHART('\r')); pRange->m_chars .Push(RCHART('\n')); pRange->m_chars .Push(RCHART('\f')); pRange->m_chars .Push(RCHART('\v')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_SPACE_RIGHTLEFT_NOT: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (1, 0)); pRange->m_chars .Push(RCHART(' ')); pRange->m_chars .Push(RCHART('\t')); pRange->m_chars .Push(RCHART('\r')); pRange->m_chars .Push(RCHART('\n')); pRange->m_chars .Push(RCHART('\f')); pRange->m_chars .Push(RCHART('\v')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_DIGITAL_RIGHTLEFT: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (1, 1)); pRange->m_ranges.Push(RCHART('0')); pRange->m_ranges.Push(RCHART('9')); pStockElxs[nStockId] = pRange; } break; case STOCKELX_DIGITAL_RIGHTLEFT_NOT: { CRangeElxT * pRange = (CRangeElxT *)Keep(new CRangeElxT (1, 0)); pRange->m_ranges.Push(RCHART('0')); pRange->m_ranges.Push(RCHART('9')); pStockElxs[nStockId] = pRange; } break; } } // return return pStockElxs[nStockId]; } template ElxInterface * CBuilderT :: BuildAlternative(int vaflags) { if(curr == CHART_INFO(0, 1)) return GetStockElx(STOCKELX_EMPTY); // flag instance int flags = vaflags; // first part ElxInterface * pAlternativeOne = BuildList(flags); // check alternative if(curr == CHART_INFO(RCHART('|'), 1)) { CAlternativeElx * pAlternative = (CAlternativeElx *)Keep(new CAlternativeElx()); pAlternative->m_elxlist.Push(pAlternativeOne); // loop while(curr == CHART_INFO(RCHART('|'), 1)) { // skip '|' itself MoveNext(); pAlternativeOne = BuildList(flags); pAlternative->m_elxlist.Push(pAlternativeOne); } return pAlternative; } return pAlternativeOne; } template ElxInterface * CBuilderT :: BuildList(int & flags) { if(curr == CHART_INFO(0, 1) || curr == CHART_INFO(RCHART('|'), 1) || curr == CHART_INFO(RCHART(')'), 1)) return GetStockElx(STOCKELX_EMPTY); // first ElxInterface * pListOne = BuildRepeat(flags); if(curr != CHART_INFO(0, 1) && curr != CHART_INFO(RCHART('|'), 1) && curr != CHART_INFO(RCHART(')'), 1)) { CListElx * pList = (CListElx *)Keep(new CListElx(flags & RIGHTTOLEFT)); pList->m_elxlist.Push(pListOne); while(curr != CHART_INFO(0, 1) && curr != CHART_INFO(RCHART('|'), 1) && curr != CHART_INFO(RCHART(')'), 1)) { pListOne = BuildRepeat(flags); // add pList->m_elxlist.Push(pListOne); } return pList; } return pListOne; } template ElxInterface * CBuilderT :: BuildRepeat(int & flags) { // simple ElxInterface * pSimple = BuildSimple(flags); if(curr.type == 0) return pSimple; // is quantifier or not int bIsQuantifier = 1; // quantifier range unsigned int nMin = 0, nMax = 0; switch(curr.ch) { case RCHART('{'): { CBufferT re; // skip '{' MoveNext(); // copy while(curr != CHART_INFO(0, 1) && curr != CHART_INFO(RCHART('}'), 1)) { re.Append(((curr.ch & (CHART)0xff) == curr.ch) ? (char)curr.ch : 0, 1); MoveNext(); } // skip '}' MoveNext(); // read int red; char * str = re.GetBuffer(); if( ! ReadDec(str, nMin) ) red = 0; else if( *str != ',' ) red = 1; else { str ++; if( ! ReadDec(str, nMax) ) red = 2; else red = 3; } // check if(red <= 1 ) nMax = nMin; if(red == 2 ) nMax = INT_MAX; if(nMax < nMin) nMax = nMin; } break; case RCHART('?'): nMin = 0; nMax = 1; // skip '?' MoveNext(); break; case RCHART('*'): nMin = 0; nMax = INT_MAX; // skip '*' MoveNext(); break; case RCHART('+'): nMin = 1; nMax = INT_MAX; // skip '+' MoveNext(); break; default: bIsQuantifier = 0; break; } // do quantify if(bIsQuantifier) { // 0 times if(nMax == 0) return GetStockElx(STOCKELX_EMPTY); // fixed times if(nMin == nMax) { if(curr == CHART_INFO(RCHART('?'), 1) || curr == CHART_INFO(RCHART('+'), 1)) MoveNext(); return Keep(new CRepeatElx(pSimple, nMin)); } // range times if(curr == CHART_INFO(RCHART('?'), 1)) { MoveNext(); return Keep(new CReluctantElx(pSimple, nMin, nMax)); } else if(curr == CHART_INFO(RCHART('+'), 1)) { MoveNext(); return Keep(new CPossessiveElx(pSimple, nMin, nMax)); } else { return Keep(new CGreedyElx(pSimple, nMin, nMax)); } } return pSimple; } template ElxInterface * CBuilderT :: BuildSimple(int & flags) { CBufferT fixed; while(curr != CHART_INFO(0, 1)) { if(curr.type == 0) { if(next == CHART_INFO(RCHART('{'), 1) || next == CHART_INFO(RCHART('?'), 1) || next == CHART_INFO(RCHART('*'), 1) || next == CHART_INFO(RCHART('+'), 1)) { if(fixed.GetSize() == 0) { fixed.Append(curr.ch, 1); MoveNext(); } break; } else { fixed.Append(curr.ch, 1); MoveNext(); } } else if(curr.type == 1) { CHART vch = curr.ch; // end of simple if(vch == RCHART(')') || vch == RCHART('|')) break; // has fixed already if(fixed.GetSize() > 0) break; // left parentheses if(vch == RCHART('(')) { return BuildRecursive(flags); } // char set if( vch == RCHART('[') || vch == RCHART('.') || vch == RCHART('w') || vch == RCHART('W') || vch == RCHART('s') || vch == RCHART('S') || vch == RCHART('d') || vch == RCHART('D') ) { return BuildCharset(flags); } // boundary if( vch == RCHART('^') || vch == RCHART('$') || vch == RCHART('A') || vch == RCHART('Z') || vch == RCHART('b') || vch == RCHART('B') || vch == RCHART('G') // vch == RCHART('<') || vch == RCHART('>') ) { return BuildBoundary(flags); } // backref if(vch == RCHART('\\') || vch == RCHART('k') || vch == RCHART('g')) { return BuildBackref(flags); } // treat vchar as char fixed.Append(curr.ch, 1); MoveNext(); } } if(fixed.GetSize() > 0) return Keep(new CStringElxT (fixed.GetBuffer(), fixed.GetSize(), flags & RIGHTTOLEFT, flags & IGNORECASE)); else return GetStockElx(STOCKELX_EMPTY); } template ElxInterface * CBuilderT :: BuildCharset(int & flags) { // char CHART ch = curr.ch; // skip MoveNext(); switch(ch) { case RCHART('.'): return GetStockElx( flags & RIGHTTOLEFT ? ((flags & SINGLELINE) ? STOCKELX_DOT_ALL_RIGHTLEFT : STOCKELX_DOT_NOT_ALL_RIGHTLEFT) : ((flags & SINGLELINE) ? STOCKELX_DOT_ALL : STOCKELX_DOT_NOT_ALL) ); case RCHART('w'): return GetStockElx(flags & RIGHTTOLEFT ? STOCKELX_WORD_RIGHTLEFT : STOCKELX_WORD); case RCHART('W'): return GetStockElx(flags & RIGHTTOLEFT ? STOCKELX_WORD_RIGHTLEFT_NOT : STOCKELX_WORD_NOT); case RCHART('s'): return GetStockElx(flags & RIGHTTOLEFT ? STOCKELX_SPACE_RIGHTLEFT : STOCKELX_SPACE); case RCHART('S'): return GetStockElx(flags & RIGHTTOLEFT ? STOCKELX_SPACE_RIGHTLEFT_NOT : STOCKELX_SPACE_NOT); case RCHART('d'): return GetStockElx(flags & RIGHTTOLEFT ? STOCKELX_DIGITAL_RIGHTLEFT : STOCKELX_DIGITAL); case RCHART('D'): return GetStockElx(flags & RIGHTTOLEFT ? STOCKELX_DIGITAL_RIGHTLEFT_NOT : STOCKELX_DIGITAL_NOT); case RCHART('['): { CRangeElxT * pRange; // create if(curr == CHART_INFO(RCHART(':'), 1)) { CBufferT posix; do { posix.Append(((curr.ch & (CHART)0xff) == curr.ch) ? (char)curr.ch : 0, 1); MoveNext(); } while(curr.ch != RCHART(0) && curr != CHART_INFO(RCHART(']'), 1)); MoveNext(); // skip ']' // posix return Keep(new CPosixElxT (posix.GetBuffer(), flags & RIGHTTOLEFT)); } else if(curr == CHART_INFO(RCHART('^'), 1)) { MoveNext(); // skip '^' pRange = (CRangeElxT *)Keep(new CRangeElxT (flags & RIGHTTOLEFT, 0)); } else { pRange = (CRangeElxT *)Keep(new CRangeElxT (flags & RIGHTTOLEFT, 1)); } // parse while(curr != CHART_INFO(0, 1) && curr != CHART_INFO(RCHART(']'), 1)) { ch = curr.ch; if(curr.type == 1 && ( ch == RCHART('.') || ch == RCHART('w') || ch == RCHART('W') || ch == RCHART('s') || ch == RCHART('S') || ch == RCHART('d') || ch == RCHART('D') || (ch == RCHART('[') && next == CHART_INFO(RCHART(':'), 1)) )) { pRange->m_embeds.Push(BuildCharset(flags)); } else if(next == CHART_INFO(RCHART('-'), 1) && nex2.type == 0) { pRange->m_ranges.Push(ch); pRange->m_ranges.Push(nex2.ch); // next MoveNext(); MoveNext(); MoveNext(); } else { pRange->m_chars.Push(ch); // next MoveNext(); } } // skip ']' MoveNext(); return pRange; } } return GetStockElx(STOCKELX_EMPTY); } template ElxInterface * CBuilderT :: BuildRecursive(int & flags) { // skip '(' MoveNext(); if(curr == CHART_INFO(RCHART('?'), 1)) { ElxInterface * pElx = 0; // skip '?' MoveNext(); int bNegative = 0; CHART named_end = RCHART('>'); switch(curr.ch) { case RCHART('!'): bNegative = 1; case RCHART('='): { MoveNext(); // skip '!' or '=' pElx = Keep(new CAssertElx(BuildAlternative(flags & ~RIGHTTOLEFT), !bNegative)); } break; case RCHART('<'): switch(next.ch) { case RCHART('!'): bNegative = 1; case RCHART('='): MoveNext(); // skip '<' MoveNext(); // skip '!' or '=' { pElx = Keep(new CAssertElx(BuildAlternative(flags | RIGHTTOLEFT), !bNegative)); } break; default: // named group break; } // break if assertion // else named if(pElx != 0) break; case RCHART('P'): if(curr.ch == RCHART('P')) MoveNext(); // skip 'P' case RCHART('\''): if (curr.ch == RCHART('<' )) named_end = RCHART('>' ); else if(curr.ch == RCHART('\'')) named_end = RCHART('\''); MoveNext(); // skip '<' or '\'' { // named number int nThisBackref = m_nNextNamed ++; CListElx * pList = (CListElx *)Keep(new CListElx(flags & RIGHTTOLEFT)); CBracketElx * pleft = (CBracketElx *)Keep(new CBracketElx(-1, flags & RIGHTTOLEFT ? 1 : 0)); CBracketElx * pright = (CBracketElx *)Keep(new CBracketElx(-1, flags & RIGHTTOLEFT ? 0 : 1)); // save name CBufferT & name = pleft->m_szNamed; CBufferT num; while(curr.ch != RCHART(0) && curr.ch != named_end) { name.Append(curr.ch, 1); num .Append(((curr.ch & (CHART)0xff) == curr.ch) ? (char)curr.ch : 0, 1); MoveNext(); } MoveNext(); // skip '>' or '\'' // check unsigned int number; char * str = num.GetBuffer(); if( ReadDec(str, number) ? ( *str == '\0') : 0 ) { pleft ->m_nnumber = number; pright->m_nnumber = number; name.Release(); } // left, center, right pList->m_elxlist.Push(pleft); pList->m_elxlist.Push(BuildAlternative(flags)); pList->m_elxlist.Push(pright); // for recursive m_namedlist.Prepare(nThisBackref); m_namedlist[nThisBackref] = pList; pElx = pList; } break; case RCHART('>'): { MoveNext(); // skip '>' pElx = Keep(new CIndependentElx(BuildAlternative(flags))); } break; case RCHART('R'): MoveNext(); // skip 'R' while(curr.ch != RCHART(0) && isspace(curr.ch)) MoveNext(); // skip space if(curr.ch == RCHART('<') || curr.ch == RCHART('\'')) { named_end = curr.ch == RCHART('<') ? RCHART('>') : RCHART('\''); CDelegateElx * pDelegate = (CDelegateElx *)Keep(new CDelegateElx(-3)); MoveNext(); // skip '<' or '\\' // save name CBufferT & name = pDelegate->m_szNamed; CBufferT num; while(curr.ch != RCHART(0) && curr.ch != named_end) { name.Append(curr.ch, 1); num .Append(((curr.ch & (CHART)0xff) == curr.ch) ? (char)curr.ch : 0, 1); MoveNext(); } MoveNext(); // skip '>' or '\'' // check unsigned int number; char * str = num.GetBuffer(); if( ReadDec(str, number) ? ( *str == '\0') : 0 ) { pDelegate->m_ndata = number; name.Release(); } m_recursivelist.Push(pDelegate); pElx = pDelegate; } else { CBufferT rto; while(curr.ch != RCHART(0) && curr.ch != RCHART(')')) { rto.Append(((curr.ch & (CHART)0xff) == curr.ch) ? (char)curr.ch : 0, 1); MoveNext(); } unsigned int rtono = 0; char * str = rto.GetBuffer(); ReadDec(str, rtono); CDelegateElx * pDelegate = (CDelegateElx *)Keep(new CDelegateElx(rtono)); m_recursivelist.Push(pDelegate); pElx = pDelegate; } break; case RCHART('('): { CConditionElx * pConditionElx = (CConditionElx *)Keep(new CConditionElx()); // condition ElxInterface * & pCondition = pConditionElx->m_pelxask; if(next == CHART_INFO(RCHART('?'), 1)) { pCondition = BuildRecursive(flags); } else // named, assert or number { MoveNext(); // skip '(' int pos0 = curr.pos; // save elx condition pCondition = Keep(new CAssertElx(BuildAlternative(flags), 1)); // save name pConditionElx->m_szNamed.Append(m_pattern.GetBuffer() + pos0, curr.pos - pos0, 1); // save number CBufferT numstr; while(pos0 < curr.pos) { CHART ch = m_pattern[pos0]; numstr.Append(((ch & (CHART)0xff) == ch) ? (char)ch : 0, 1); pos0 ++; } unsigned int number; char * str = numstr.GetBuffer(); // valid group number if( ReadDec(str, number) ? ( *str == '\0') : 0 ) { pConditionElx->m_nnumber = number; pCondition = 0; } else // maybe elx, maybe named { pConditionElx->m_nnumber = -1; m_namedconditionlist.Push(pConditionElx); } MoveNext(); // skip ')' } // alternative { int newflags = flags; pConditionElx->m_pelxyes = BuildList(newflags); } if(curr.ch == RCHART('|')) { MoveNext(); // skip '|' pConditionElx->m_pelxno = BuildAlternative(flags); } else { pConditionElx->m_pelxno = 0; } pElx = pConditionElx; } break; default: while(curr.ch != RCHART(0) && isspace(curr.ch)) MoveNext(); // skip space if(curr.ch >= RCHART('0') && curr.ch <= RCHART('9')) // recursive (?1) => (?R1) { CBufferT rto; while(curr.ch != RCHART(0) && curr.ch != RCHART(')')) { rto.Append(((curr.ch & (CHART)0xff) == curr.ch) ? (char)curr.ch : 0, 1); MoveNext(); } unsigned int rtono = 0; char * str = rto.GetBuffer(); ReadDec(str, rtono); CDelegateElx * pDelegate = (CDelegateElx *)Keep(new CDelegateElx(rtono)); m_recursivelist.Push(pDelegate); pElx = pDelegate; } else { // flag int newflags = flags; while(curr != CHART_INFO(0, 1) && curr.ch != RCHART(':') && curr.ch != RCHART(')') && curr != CHART_INFO(RCHART('('), 1)) { int tochange = 0; switch(curr.ch) { case RCHART('i'): case RCHART('I'): tochange = IGNORECASE; break; case RCHART('s'): case RCHART('S'): tochange = SINGLELINE; break; case RCHART('m'): case RCHART('M'): tochange = MULTILINE; break; case RCHART('g'): case RCHART('G'): tochange = GLOBAL; break; case RCHART('-'): bNegative = 1; break; } if(bNegative) newflags &= ~tochange; else newflags |= tochange; // move to next char MoveNext(); } if(curr.ch == RCHART(':') || curr == CHART_INFO(RCHART('('), 1)) { // skip ':' if(curr.ch == RCHART(':')) MoveNext(); pElx = BuildAlternative(newflags); } else { // change parent flags flags = newflags; pElx = GetStockElx(STOCKELX_EMPTY); } } break; } MoveNext(); // skip ')' return pElx; } else { // group and number CListElx * pList = (CListElx *)Keep(new CListElx(flags & RIGHTTOLEFT)); int nThisBackref = ++ m_nMaxNumber; // left, center, right pList->m_elxlist.Push(Keep(new CBracketElx(nThisBackref, flags & RIGHTTOLEFT ? 1 : 0))); pList->m_elxlist.Push(BuildAlternative(flags)); pList->m_elxlist.Push(Keep(new CBracketElx(nThisBackref, flags & RIGHTTOLEFT ? 0 : 1))); // for recursive m_grouplist.Prepare(nThisBackref); m_grouplist[nThisBackref] = pList; // right MoveNext(); // skip ')' return pList; } } template ElxInterface * CBuilderT :: BuildBoundary(int & flags) { // char CHART ch = curr.ch; // skip MoveNext(); switch(ch) { case RCHART('^'): return Keep(new CBoundaryElxT ((flags & MULTILINE) ? BOUNDARY_LINE_BEGIN : BOUNDARY_FILE_BEGIN)); case RCHART('$'): return Keep(new CBoundaryElxT ((flags & MULTILINE) ? BOUNDARY_LINE_END : BOUNDARY_FILE_END)); case RCHART('b'): return Keep(new CBoundaryElxT (BOUNDARY_WORD_EDGE)); case RCHART('B'): return Keep(new CBoundaryElxT (BOUNDARY_WORD_EDGE, 0)); case RCHART('A'): return Keep(new CBoundaryElxT (BOUNDARY_FILE_BEGIN)); case RCHART('Z'): return Keep(new CBoundaryElxT (BOUNDARY_FILE_END)); case RCHART('G'): if(flags & GLOBAL) return Keep(new CGlobalElx()); else return GetStockElx(STOCKELX_EMPTY); default: return GetStockElx(STOCKELX_EMPTY); } } template ElxInterface * CBuilderT :: BuildBackref(int & flags) { // skip '\\' or '\k' or '\g' MoveNext(); if(curr.ch == RCHART('<') || curr.ch == RCHART('\'')) { CHART named_end = curr.ch == RCHART('<') ? RCHART('>') : RCHART('\''); CBackrefElxT * pbackref = (CBackrefElxT *)Keep(new CBackrefElxT (-1, flags & RIGHTTOLEFT, flags & IGNORECASE)); MoveNext(); // skip '<' or '\'' // save name CBufferT & name = pbackref->m_szNamed; CBufferT num; while(curr.ch != RCHART(0) && curr.ch != named_end) { name.Append(curr.ch, 1); num .Append(((curr.ch & (CHART)0xff) == curr.ch) ? (char)curr.ch : 0, 1); MoveNext(); } MoveNext(); // skip '>' or '\'' // check unsigned int number; char * str = num.GetBuffer(); if( ReadDec(str, number) ? ( *str == '\0') : 0 ) { pbackref->m_nnumber = number; name.Release(); } else { m_namedbackreflist.Push(pbackref); } return pbackref; } else { unsigned int nbackref = 0; for(int i=0; i<3; i++) { if(curr.ch >= RCHART('0') && curr.ch <= RCHART('9')) nbackref = nbackref * 10 + (curr.ch - RCHART('0')); else break; MoveNext(); } return Keep(new CBackrefElxT (nbackref, flags & RIGHTTOLEFT, flags & IGNORECASE)); } } template int CBuilderT :: ReadDec(char * & str, unsigned int & dec) { int s = 0; while(str[s] != 0 && isspace(str[s])) s++; if(str[s] < '0' || str[s] > '9') return 0; dec = 0; unsigned int i; for(i = s; i= '0' && str[i] <= '9') dec = dec * 10 + (str[i] - '0'); else break; } while(str[i] != 0 && isspace(str[i])) i++; str += i; return 1; } // // Regexp // template class CRegexpT { public: CRegexpT(const CHART * pattern = 0, int flags = 0); CRegexpT(const CHART * pattern, int length, int flags); void Compile(const CHART * pattern, int flags = 0); void Compile(const CHART * pattern, int length, int flags); public: MatchResult MatchExact(const CHART * tstring, CContext * pContext = 0) const; MatchResult MatchExact(const CHART * tstring, int length, CContext * pContext = 0) const; MatchResult Match(const CHART * tstring, int start = -1, CContext * pContext = 0) const; MatchResult Match(const CHART * tstring, int length, int start, CContext * pContext = 0) const; MatchResult Match(CContext * pContext) const; CContext * PrepareMatch(const CHART * tstring, int start = -1, CContext * pContext = 0) const; CContext * PrepareMatch(const CHART * tstring, int length, int start, CContext * pContext = 0) const; CHART * Replace(const CHART * tstring, const CHART * replaceto, int start = -1, int ntimes = -1, MatchResult * result = 0, CContext * pContext = 0) const; CHART * Replace(const CHART * tstring, int string_length, const CHART * replaceto, int to_length, int & result_length, int start = -1, int ntimes = -1, MatchResult * result = 0, CContext * pContext = 0) const; int GetNamedGroupNumber(const CHART * group_name) const; public: static void ReleaseString (CHART * tstring ); static void ReleaseContext(CContext * pContext); public: CBuilderT m_builder; }; // // Implementation // template CRegexpT :: CRegexpT(const CHART * pattern, int flags) { Compile(pattern, CBufferRefT(pattern).GetSize(), flags); } template CRegexpT :: CRegexpT(const CHART * pattern, int length, int flags) { Compile(pattern, length, flags); } template inline void CRegexpT :: Compile(const CHART * pattern, int flags) { Compile(pattern, CBufferRefT(pattern).GetSize(), flags); } template void CRegexpT :: Compile(const CHART * pattern, int length, int flags) { m_builder.Clear(); if(pattern != 0) m_builder.Build(CBufferRefT(pattern, length), flags); } template inline MatchResult CRegexpT :: MatchExact(const CHART * tstring, CContext * pContext) const { return MatchExact(tstring, CBufferRefT(tstring).GetSize(), pContext); } template MatchResult CRegexpT :: MatchExact(const CHART * tstring, int length, CContext * pContext) const { if(m_builder.m_pTopElx == 0) return 0; // info int endpos = 0; CContext context; if(pContext == 0) pContext = &context; pContext->m_stack.Restore(0); pContext->m_capturestack.Restore(0); pContext->m_captureindex.Restore(0); pContext->m_nParenZindex = 0; pContext->m_nLastBeginPos = -1; pContext->m_pMatchString = (void*)tstring; pContext->m_pMatchStringLength = length; if(m_builder.m_nFlags & RIGHTTOLEFT) { pContext->m_nBeginPos = length; pContext->m_nCurrentPos = length; endpos = 0; } else { pContext->m_nBeginPos = 0; pContext->m_nCurrentPos = 0; endpos = length; } pContext->m_captureindex.Prepare(m_builder.m_nMaxNumber, -1); pContext->m_captureindex[0] = 0; pContext->m_capturestack.Push(0); pContext->m_capturestack.Push(pContext->m_nCurrentPos); pContext->m_capturestack.Push(-1); pContext->m_capturestack.Push(-1); // match if( ! m_builder.m_pTopElx->Match( pContext ) ) return 0; else { while( pContext->m_nCurrentPos != endpos ) { if( ! m_builder.m_pTopElx->MatchNext( pContext ) ) return 0; else { if( pContext->m_nLastBeginPos == pContext->m_nBeginPos && pContext->m_nBeginPos == pContext->m_nCurrentPos ) return 0; else pContext->m_nLastBeginPos = pContext->m_nCurrentPos; } } // end pos pContext->m_capturestack[2] = pContext->m_nCurrentPos; return MatchResult( pContext, m_builder.m_nMaxNumber ); } } template MatchResult CRegexpT :: Match(const CHART * tstring, int start, CContext * pContext) const { return Match(tstring, CBufferRefT(tstring).GetSize(), start, pContext); } template MatchResult CRegexpT :: Match(const CHART * tstring, int length, int start, CContext * pContext) const { if(m_builder.m_pTopElx == 0) return 0; CContext context; if(pContext == 0) pContext = &context; pContext->m_nParenZindex = 0; pContext->m_nLastBeginPos = -1; pContext->m_pMatchString = (void*)tstring; pContext->m_pMatchStringLength = length; if(start < 0) { if(m_builder.m_nFlags & RIGHTTOLEFT) { pContext->m_nBeginPos = length; pContext->m_nCurrentPos = length; } else { pContext->m_nBeginPos = 0; pContext->m_nCurrentPos = 0; } } else { pContext->m_nBeginPos = start; pContext->m_nCurrentPos = start; } return Match( pContext ); } template MatchResult CRegexpT :: Match(CContext * pContext) const { if(m_builder.m_pTopElx == 0) return 0; int endpos, delta; if(m_builder.m_nFlags & RIGHTTOLEFT) { endpos = -1; delta = -1; } else { endpos = pContext->m_pMatchStringLength + 1; delta = 1; } while(pContext->m_nCurrentPos != endpos) { pContext->m_captureindex.Restore(0); pContext->m_stack .Restore(0); pContext->m_capturestack.Restore(0); pContext->m_captureindex.Prepare(m_builder.m_nMaxNumber, -1); pContext->m_captureindex[0] = 0; pContext->m_capturestack.Push(0); pContext->m_capturestack.Push(pContext->m_nCurrentPos); pContext->m_capturestack.Push(-1); pContext->m_capturestack.Push(-1); if( m_builder.m_pTopElx->Match( pContext ) ) { // zero width if( pContext->m_nLastBeginPos == pContext->m_nBeginPos && pContext->m_nBeginPos == pContext->m_nCurrentPos ) { pContext->m_nCurrentPos += delta; continue; } // save pos pContext->m_nLastBeginPos = pContext->m_nBeginPos; pContext->m_nBeginPos = pContext->m_nCurrentPos; pContext->m_capturestack[2] = pContext->m_nCurrentPos; // return return MatchResult( pContext, m_builder.m_nMaxNumber ); } else { pContext->m_nCurrentPos += delta; } } return 0; } template inline CContext * CRegexpT :: PrepareMatch(const CHART * tstring, int start, CContext * pContext) const { return PrepareMatch(tstring, CBufferRefT(tstring).GetSize(), start, pContext); } template CContext * CRegexpT :: PrepareMatch(const CHART * tstring, int length, int start, CContext * pContext) const { if(m_builder.m_pTopElx == 0) return 0; if(pContext == 0) pContext = new CContext(); pContext->m_nParenZindex = 0; pContext->m_nLastBeginPos = -1; pContext->m_pMatchString = (void*)tstring; pContext->m_pMatchStringLength = length; if(start < 0) { if(m_builder.m_nFlags & RIGHTTOLEFT) { pContext->m_nBeginPos = length; pContext->m_nCurrentPos = length; } else { pContext->m_nBeginPos = 0; pContext->m_nCurrentPos = 0; } } else { pContext->m_nBeginPos = start; pContext->m_nCurrentPos = start; } return pContext; } template inline int CRegexpT :: GetNamedGroupNumber(const CHART * group_name) const { return m_builder.GetNamedNumber(group_name); } template CHART * CRegexpT :: Replace(const CHART * tstring, const CHART * replaceto, int start, int ntimes, MatchResult * result, CContext * pContext) const { int result_length = 0; return Replace(tstring, CBufferRefT(tstring).GetSize(), replaceto, CBufferRefT(replaceto).GetSize(), result_length, start, ntimes, result, pContext); } template CHART * CRegexpT :: Replace(const CHART * tstring, int string_length, const CHART * replaceto, int to_length, int & result_length, int start, int ntimes, MatchResult * remote_result, CContext * oContext) const { typedef CBufferRefT StringRef; MatchResult local_result(0), * result = remote_result ? remote_result : & local_result; if(m_builder.m_pTopElx == 0) return 0; // Prepare CContext * pContext = PrepareMatch(tstring, string_length, start, oContext); int flags = m_builder.m_nFlags; int lastIndex = (flags & RIGHTTOLEFT) ? string_length : 0; int endpos = (flags & RIGHTTOLEFT) ? 0 : string_length; int toIndex = 0, toLastIndex = 0; int i, ntime; CBufferT buffer, buf; static const CHART rtoptn[] = { RCHART('\\'), RCHART('$' ), RCHART('('), RCHART('?'), RCHART(':'), RCHART('[' ), RCHART('$' ), RCHART('&' ), RCHART('`' ), RCHART('\''), RCHART('+'), RCHART('_' ), RCHART('\\'), RCHART('d'), RCHART(']'), RCHART('|'), RCHART('\\'), RCHART('{'), RCHART('.'), RCHART('*'), RCHART('?'), RCHART('\\'), RCHART('}'), RCHART(')' ), RCHART('\0') }; static int rtoptnlen = StringRef(rtoptn).GetSize(); static CRegexpT rtoreg(rtoptn, rtoptnlen, 0); // Match for(ntime = 0; ntimes < 0 || ntime < ntimes; ntime ++) { (*result) = Match(pContext); if( ! result->IsMatched() ) break; toIndex = toLastIndex; // before if( flags & RIGHTTOLEFT ) { int distance = lastIndex - result->GetEnd(); if( distance ) { buffer.Push(new StringRef(tstring + result->GetEnd(), distance)); toIndex -= distance; } lastIndex = result->GetStart(); } else { int distance = result->GetStart() - lastIndex; if( distance ) { buffer.Push(new StringRef(tstring + lastIndex, distance)); toIndex += distance; } lastIndex = result->GetEnd(); } toLastIndex = toIndex; // middle CContext * pCtx = rtoreg.PrepareMatch(replaceto, to_length, -1); int lastI = 0; buf.Restore(0); while(1) { MatchResult res = rtoreg.Match(pCtx); if( ! res.IsMatched() ) break; // before int distance = res.GetStart() - lastI; if( distance ) { buf.Push(new StringRef(replaceto + lastI, distance)); } lastI = res.GetStart(); // middle int delta = 2, nmatch = 0; switch(replaceto[res.GetStart() + 1]) { case RCHART('$'): buf.Push(new StringRef(rtoptn + 1, 1)); // '$' itself break; case RCHART('&'): buf.Push(new StringRef(tstring + result->GetStart(), result->GetEnd() - result->GetStart())); break; case RCHART('`'): buf.Push(new StringRef(tstring, result->GetStart())); break; case RCHART('\''): buf.Push(new StringRef(tstring + result->GetEnd(), string_length - result->GetEnd())); break; case RCHART('+'): for(nmatch = result->MaxGroupNumber(); nmatch >= 0; nmatch --) { if(result->GetGroupStart(nmatch) >= 0) break; } buf.Push(new StringRef(tstring + result->GetGroupStart(nmatch), result->GetGroupEnd(nmatch) - result->GetGroupStart(nmatch))); break; case RCHART('_'): buf.Push(new StringRef(tstring, string_length)); break; case RCHART('{'): delta = res.GetEnd() - res.GetStart(); nmatch = m_builder.GetNamedNumber(StringRef(replaceto + (res.GetStart() + 2), delta - 3)); if(nmatch > 0 && nmatch <= m_builder.m_nMaxNumber) buf.Push(new StringRef(tstring + result->GetGroupStart(nmatch), result->GetGroupEnd(nmatch) - result->GetGroupStart(nmatch))); else buf.Push(new StringRef(replaceto + res.GetStart(), delta)); break; default: nmatch = 0; for(delta=1; delta<=3; delta++) { CHART ch = replaceto[lastI + delta]; if(ch < RCHART('0') || ch > RCHART('9')) break; nmatch = nmatch * 10 + (ch - RCHART('0')); } if(nmatch > m_builder.m_nMaxNumber) { while(nmatch > m_builder.m_nMaxNumber) { nmatch /= 10; delta --; } if(nmatch == 0) { delta = 1; } } if(delta == 1) buf.Push(new StringRef(rtoptn + 1, 1)); // '$' itself else buf.Push(new StringRef(tstring + result->GetGroupStart(nmatch), result->GetGroupEnd(nmatch) - result->GetGroupStart(nmatch))); break; } lastI += delta; } // after if(lastI < to_length) buf.Push(new StringRef(replaceto + lastI, to_length - lastI)); // append to buffer if(flags & RIGHTTOLEFT) { for(i=buf.GetSize()-1; i>=0; i--) { buffer.Push(buf[i]); toLastIndex -= buf[i]->GetSize(); } } else { for(i=0; iGetSize(); } } rtoreg.ReleaseContext(pCtx); } // after if(flags & RIGHTTOLEFT) { if(endpos < lastIndex) buffer.Push(new StringRef(tstring + endpos, lastIndex - endpos)); } else { if(lastIndex < endpos) buffer.Push(new StringRef(tstring + lastIndex, endpos - lastIndex)); } if(oContext == 0) ReleaseContext(pContext); // join string result_length = 0; for(i=0; iGetSize(); CBufferT result_string; result_string.Prepare(result_length); result_string.Restore(0); if(flags & RIGHTTOLEFT) { for(i=buffer.GetSize()-1; i>=0; i--) { result_string.Append(buffer[i]->GetBuffer(), buffer[i]->GetSize()); delete buffer[i]; } } else { for(i=0; iGetBuffer(), buffer[i]->GetSize()); delete buffer[i]; } } result_string[result_length] = 0; result->m_result.Append(toIndex < toLastIndex ? toIndex : toLastIndex, 2); result->m_result.Append(toIndex > toLastIndex ? toIndex : toLastIndex); result->m_result.Append(ntime); return result_string.Detach(); } template inline void CRegexpT :: ReleaseString(CHART * tstring) { if(tstring != 0) delete [] tstring; } template inline void CRegexpT :: ReleaseContext(CContext * pContext) { if(pContext != 0) delete pContext; } // // All implementations // template CAlternativeElxT :: CAlternativeElxT() { } template int CAlternativeElxT :: Match(CContext * pContext) const { if(m_elxlist.GetSize() == 0) return 1; // try all for(int n = 0; n < m_elxlist.GetSize(); n++) { if(m_elxlist[n]->Match(pContext)) { pContext->m_stack.Push(n); return 1; } } return 0; } template int CAlternativeElxT :: MatchNext(CContext * pContext) const { if(m_elxlist.GetSize() == 0) return 0; int n = 0; // recall prev pContext->m_stack.Pop(n); // prev if(m_elxlist[n]->MatchNext(pContext)) { pContext->m_stack.Push(n); return 1; } else { // try rest for(n++; n < m_elxlist.GetSize(); n++) { if(m_elxlist[n]->Match(pContext)) { pContext->m_stack.Push(n); return 1; } } return 0; } } // assertx.cpp: implementation of the CAssertElx class. // template CAssertElxT :: CAssertElxT(ElxInterface * pelx, int byes) { m_pelx = pelx; m_byes = byes; } template int CAssertElxT :: Match(CContext * pContext) const { int nbegin = pContext->m_nCurrentPos; int nsize = pContext->m_stack.GetSize(); int ncsize = pContext->m_capturestack.GetSize(); int bsucc; // match if( m_byes ) bsucc = m_pelx->Match(pContext); else bsucc = ! m_pelx->Match(pContext); // status pContext->m_stack.Restore(nsize); pContext->m_nCurrentPos = nbegin; if( bsucc ) pContext->m_stack.Push(ncsize); else pContext->m_capturestack.Restore(ncsize); return bsucc; } template int CAssertElxT :: MatchNext(CContext * pContext) const { int ncsize = 0; pContext->m_stack.Pop(ncsize); pContext->m_capturestack.Restore(ncsize); return 0; } // emptyelx.cpp: implementation of the CEmptyElx class. // template CEmptyElxT :: CEmptyElxT() { } template int CEmptyElxT :: Match(CContext *) const { return 1; } template int CEmptyElxT :: MatchNext(CContext *) const { return 0; } // globalx.cpp: implementation of the CGlobalElx class. // template CGlobalElxT ::CGlobalElxT() { } template int CGlobalElxT :: Match(CContext * pContext) const { return pContext->m_nCurrentPos == pContext->m_nBeginPos; } template int CGlobalElxT :: MatchNext(CContext *) const { return 0; } // greedelx.cpp: implementation of the CGreedyElx class. // template CGreedyElxT :: CGreedyElxT(ElxInterface * pelx, int nmin, int nmax) : CRepeatElxT (pelx, nmin) { m_nvart = nmax - nmin; } template int CGreedyElxT :: Match(CContext * pContext) const { if( ! CRepeatElxT :: MatchFixed(pContext) ) return 0; while( ! MatchVart(pContext) ) { if( ! CRepeatElxT :: MatchNextFixed(pContext) ) return 0; } return 1; } template int CGreedyElxT :: MatchNext(CContext * pContext) const { if( MatchNextVart(pContext) ) return 1; if( ! CRepeatElxT :: MatchNextFixed(pContext) ) return 0; while( ! MatchVart(pContext) ) { if( ! CRepeatElxT :: MatchNextFixed(pContext) ) return 0; } return 1; } template int CGreedyElxT :: MatchVart(CContext * pContext) const { int n = 0; int nbegin = pContext->m_nCurrentPos; while(n < m_nvart && CRepeatElxT :: m_pelx->Match(pContext)) { while(pContext->m_nCurrentPos == nbegin) { if( ! CRepeatElxT :: m_pelx->MatchNext(pContext) ) break; } if(pContext->m_nCurrentPos == nbegin) break; n ++; nbegin = pContext->m_nCurrentPos; } pContext->m_stack.Push(n); return 1; } template int CGreedyElxT :: MatchNextVart(CContext * pContext) const { int n = 0; pContext->m_stack.Pop(n); if(n == 0) return 0; if( ! CRepeatElxT :: m_pelx->MatchNext(pContext) ) { n --; } pContext->m_stack.Push(n); return 1; } // indepelx.cpp: implementation of the CIndependentElx class. // template CIndependentElxT :: CIndependentElxT(ElxInterface * pelx) { m_pelx = pelx; } template int CIndependentElxT :: Match(CContext * pContext) const { int nbegin = pContext->m_nCurrentPos; int nsize = pContext->m_stack.GetSize(); int ncsize = pContext->m_capturestack.GetSize(); // match int bsucc = m_pelx->Match(pContext); // status pContext->m_stack.Restore(nsize); if( bsucc ) { pContext->m_stack.Push(nbegin); pContext->m_stack.Push(ncsize); } return bsucc; } template int CIndependentElxT :: MatchNext(CContext * pContext) const { int nbegin = 0, ncsize = 0; pContext->m_stack.Pop(ncsize); pContext->m_stack.Pop(nbegin); pContext->m_capturestack.Restore(ncsize); pContext->m_nCurrentPos = nbegin; return 0; } // listelx.cpp: implementation of the CListElx class. // template CListElxT :: CListElxT(int brightleft) { m_brightleft = brightleft; } template int CListElxT :: Match(CContext * pContext) const { if(m_elxlist.GetSize() == 0) return 1; // prepare int bol = m_brightleft ? m_elxlist.GetSize() : -1; int stp = m_brightleft ? -1 : 1; int eol = m_brightleft ? -1 : m_elxlist.GetSize(); // from first int n = bol + stp; // match all while(n != eol) { if(m_elxlist[n]->Match(pContext)) { n += stp; } else { n -= stp; while(n != bol && ! m_elxlist[n]->MatchNext(pContext)) n -= stp; if(n != bol) n += stp; else return 0; } } return 1; } template int CListElxT :: MatchNext(CContext * pContext) const { if(m_elxlist.GetSize() == 0) return 0; // prepare int bol = m_brightleft ? m_elxlist.GetSize() : -1; int stp = m_brightleft ? -1 : 1; int eol = m_brightleft ? -1 : m_elxlist.GetSize(); // from last int n = eol - stp; while(n != bol && ! m_elxlist[n]->MatchNext(pContext)) n -= stp; if(n != bol) n += stp; else return 0; // match rest while(n != eol) { if(m_elxlist[n]->Match(pContext)) { n += stp; } else { n -= stp; while(n != bol && ! m_elxlist[n]->MatchNext(pContext)) n -= stp; if(n != bol) n += stp; else return 0; } } return 1; } // mresult.cpp: implementation of the MatchResult class. // template MatchResultT :: MatchResultT(CContext * pContext, int nMaxNumber) { if(pContext != 0) { m_result.Prepare(nMaxNumber * 2 + 3, -1); // matched m_result[0] = 1; m_result[1] = nMaxNumber; for(int n = 0; n <= nMaxNumber; n++) { int index = pContext->m_captureindex[n]; if( index < 0 ) continue; // check enclosed int pos1 = pContext->m_capturestack[index + 1]; int pos2 = pContext->m_capturestack[index + 2]; // info m_result[n*2 + 2] = pos1 < pos2 ? pos1 : pos2; m_result[n*2 + 3] = pos1 < pos2 ? pos2 : pos1; } } } template inline int MatchResultT :: IsMatched() const { return m_result.At(0, 0); } template inline int MatchResultT :: MaxGroupNumber() const { return m_result.At(1, 0); } template inline int MatchResultT :: GetStart() const { return m_result.At(2, -1); } template inline int MatchResultT :: GetEnd() const { return m_result.At(3, -1); } template inline int MatchResultT :: GetGroupStart(int nGroupNumber) const { return m_result.At(2 + nGroupNumber * 2, -1); } template inline int MatchResultT :: GetGroupEnd(int nGroupNumber) const { return m_result.At(2 + nGroupNumber * 2 + 1, -1); } template MatchResultT & MatchResultT :: operator = (const MatchResultT & result) { m_result.Restore(0); if(result.m_result.GetSize() > 0) m_result.Append(result.m_result.GetBuffer(), result.m_result.GetSize()); return *this; } // posselx.cpp: implementation of the CPossessiveElx class. // template CPossessiveElxT :: CPossessiveElxT(ElxInterface * pelx, int nmin, int nmax) : CGreedyElxT (pelx, nmin, nmax) { } template int CPossessiveElxT :: Match(CContext * pContext) const { int nbegin = pContext->m_nCurrentPos; int nsize = pContext->m_stack.GetSize(); int ncsize = pContext->m_capturestack.GetSize(); int bsucc = 1; // match if( ! CRepeatElxT :: MatchFixed(pContext) ) { bsucc = 0; } else { while( ! CGreedyElxT :: MatchVart(pContext) ) { if( ! CRepeatElxT :: MatchNextFixed(pContext) ) { bsucc = 0; break; } } } // status pContext->m_stack.Restore(nsize); if( bsucc ) { pContext->m_stack.Push(nbegin); pContext->m_stack.Push(ncsize); } return bsucc; } template int CPossessiveElxT :: MatchNext(CContext * pContext) const { int nbegin = 0, ncsize = 0; pContext->m_stack.Pop(ncsize); pContext->m_stack.Pop(nbegin); pContext->m_capturestack.Restore(ncsize); pContext->m_nCurrentPos = nbegin; return 0; } // reluctx.cpp: implementation of the CReluctantElx class. // template CReluctantElxT :: CReluctantElxT(ElxInterface * pelx, int nmin, int nmax) : CRepeatElxT (pelx, nmin) { m_nvart = nmax - nmin; } template int CReluctantElxT :: Match(CContext * pContext) const { if( ! CRepeatElxT :: MatchFixed(pContext) ) return 0; while( ! MatchVart(pContext) ) { if( ! CRepeatElxT :: MatchNextFixed(pContext) ) return 0; } return 1; } template int CReluctantElxT :: MatchNext(CContext * pContext) const { if( MatchNextVart(pContext) ) return 1; if( ! CRepeatElxT :: MatchNextFixed(pContext) ) return 0; while( ! MatchVart(pContext) ) { if( ! CRepeatElxT :: MatchNextFixed(pContext) ) return 0; } return 1; } template int CReluctantElxT :: MatchVart(CContext * pContext) const { pContext->m_stack.Push(0); return 1; } template int CReluctantElxT :: MatchNextVart(CContext * pContext) const { int n = 0, nbegin = pContext->m_nCurrentPos; pContext->m_stack.Pop(n); if(n < m_nvart && CRepeatElxT :: m_pelx->Match(pContext)) { while(pContext->m_nCurrentPos == nbegin) { if( ! CRepeatElxT :: m_pelx->MatchNext(pContext) ) break; } if(pContext->m_nCurrentPos != nbegin) { n ++; pContext->m_stack.Push(nbegin); pContext->m_stack.Push(n); return 1; } } while(n > 0) { pContext->m_stack.Pop(nbegin); while( CRepeatElxT :: m_pelx->MatchNext(pContext) ) { if(pContext->m_nCurrentPos != nbegin) { pContext->m_stack.Push(nbegin); pContext->m_stack.Push(n); return 1; } } n --; } return 0; } // repeatx.cpp: implementation of the CRepeatElx class. // template CRepeatElxT :: CRepeatElxT(ElxInterface * pelx, int ntimes) { m_pelx = pelx; m_nfixed = ntimes; } template int CRepeatElxT :: Match(CContext * pContext) const { return MatchFixed(pContext); } template int CRepeatElxT :: MatchNext(CContext * pContext) const { return MatchNextFixed(pContext); } template int CRepeatElxT :: MatchFixed(CContext * pContext) const { if(m_nfixed == 0) return 1; int n = 0; while(n < m_nfixed) { if(m_pelx->Match(pContext)) { n ++; } else { n --; while(n >= 0 && ! m_pelx->MatchNext(pContext)) n --; if(n >= 0) n ++; else return 0; } } return 1; } template int CRepeatElxT :: MatchNextFixed(CContext * pContext) const { if(m_nfixed == 0) return 0; // from last int n = m_nfixed - 1; while(n >= 0 && ! m_pelx->MatchNext(pContext)) n --; if(n >= 0) n ++; else return 0; // match rest while(n < m_nfixed) { if(m_pelx->Match(pContext)) { n ++; } else { n --; while(n >= 0 && ! m_pelx->MatchNext(pContext)) n --; if(n >= 0) n ++; else return 0; } } return 1; } // Regexp typedef CRegexpT CRegexpA; typedef CRegexpT CRegexpW; #if defined(_UNICODE) || defined(UNICODE) typedef CRegexpW CRegexp; #else typedef CRegexpA CRegexp; #endif #endif//__DEELX_REGEXP__H__ faust-0.9.46/architecture/osclib/faust/src/lib/OSCFError.cpp0000644000175000017500000000240411702130733023531 0ustar orlareyorlarey/* Copyright (c) Grame 2010 This library is free software; you can redistribute it and modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation version 2 of the License, or any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Grame Research Laboratory, 9, rue du Garet 69001 Lyon - France research@grame.fr */ #include "OSCFError.h" #include "Message.h" namespace oscfaust { OSCFError OSCFErr; // static OSC error output stream OSCFErrEnd OSCFEndl; // static OSC error output stream end OSCFError& operator << (OSCFError& err, const Message* arg) { arg->print (std::cerr); #ifndef NO_OSC if (!err.oscpending) { oscerr << OSCErr(); err.oscpending = true; } oscerr << arg->address().c_str(); arg->printArgs(oscerr); #endif return err; } } // end namespace faust-0.9.46/architecture/osclib/faust/src/lib/OSCRegexp.cpp0000644000175000017500000000335411702130733023571 0ustar orlareyorlarey/* Copyright (C) 2010 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #include "OSCRegexp.h" namespace oscfaust { //-------------------------------------------------------------------------- OSCRegexp::OSCRegexp (const char* oscre) : fRegexp (OSCRe2Re(oscre).c_str()) {} //-------------------------------------------------------------------------- // translates an OSC regexp into a regexp // see OSC documentation std::string OSCRegexp::OSCRe2Re (const char* re) { std::string outstr; bool inlist = false; while (*re) { switch (*re) { case '{': outstr += '('; inlist = true; break; case ',': outstr += (inlist ? '|' : ','); break; case '}': outstr += ')'; inlist = false; break; case '*': outstr += ".*"; break; case '?': outstr += '.'; break; default: outstr += *re; } re++; } return outstr; } //-------------------------------------------------------------------------- bool OSCRegexp::match (const char* str) const { return fRegexp.MatchExact(str); } } faust-0.9.46/architecture/osclib/faust/src/lib/OSCFError.h0000644000175000017500000000350611702130733023202 0ustar orlareyorlarey/* Copyright (c) Grame 2010 This library is free software; you can redistribute it and modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation version 2 of the License, or any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Grame Research Laboratory, 9, rue du Garet 69001 Lyon - France research@grame.fr */ #ifndef __OSCFError__ #define __OSCFError__ #include #include "OSCStream.h" namespace oscfaust { //-------------------------------------------------------------------------- /*! \brief OSC error stream Combines the \c cerr and \c oscerr streams */ typedef struct OSCFError { bool oscpending; OSCFError() { oscpending = false; } } OSCFError; typedef struct OSCFErrorEnd { } OSCFErrEnd; inline OSCFError& operator << (OSCFError& err, OSCFErrEnd end) { std::cerr << std::endl; #ifndef NO_OSC oscerr << OSCEnd(); err.oscpending = false; #endif return err; } template OSCFError& operator << (OSCFError& err, const T& arg) { std::cerr << arg; #ifndef NO_OSC if (!err.oscpending) { oscerr << OSCErr(); err.oscpending = true; } oscerr << arg; #endif return err; } class Message; OSCFError& operator << (OSCFError& err, const Message* arg); extern OSCFError OSCFErr; // static OSC error output stream extern OSCFErrEnd OSCFEndl; // static OSC error output stream end } // end namespace #endif faust-0.9.46/architecture/osclib/faust/src/lib/smartpointer.h0000644000175000017500000001115011702130733024157 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __smartpointer__ #define __smartpointer__ #include namespace oscfaust { /*! \brief the base class for smart pointers implementation Any object that want to support smart pointers should inherit from the smartable class which provides reference counting and automatic delete when the reference count drops to zero. */ class smartable { private: unsigned refCount; public: //! gives the reference count of the object unsigned refs() const { return refCount; } //! addReference increments the ref count and checks for refCount overflow void addReference() { refCount++; assert(refCount != 0); } //! removeReference delete the object when refCount is zero void removeReference() { if (--refCount == 0) delete this; } protected: smartable() : refCount(0) {} smartable(const smartable&): refCount(0) {} //! destructor checks for non-zero refCount virtual ~smartable() { assert (refCount == 0); } smartable& operator=(const smartable&) { return *this; } }; /*! \brief the smart pointer implementation A smart pointer is in charge of maintaining the objects reference count by the way of pointers operators overloading. It supports class inheritance and conversion whenever possible. \n Instances of the SMARTP class are supposed to use \e smartable types (or at least objects that implements the \e addReference and \e removeReference methods in a consistent way). */ template class SMARTP { private: //! the actual pointer to the class T* fSmartPtr; public: //! an empty constructor - points to null SMARTP() : fSmartPtr(0) {} //! build a smart pointer from a class pointer SMARTP(T* rawptr) : fSmartPtr(rawptr) { if (fSmartPtr) fSmartPtr->addReference(); } //! build a smart pointer from an convertible class reference template SMARTP(const SMARTP& ptr) : fSmartPtr((T*)ptr) { if (fSmartPtr) fSmartPtr->addReference(); } //! build a smart pointer from another smart pointer reference SMARTP(const SMARTP& ptr) : fSmartPtr((T*)ptr) { if (fSmartPtr) fSmartPtr->addReference(); } //! the smart pointer destructor: simply removes one reference count ~SMARTP() { if (fSmartPtr) fSmartPtr->removeReference(); } //! cast operator to retrieve the actual class pointer operator T*() const { return fSmartPtr; } //! '*' operator to access the actual class pointer T& operator*() const { // checks for null dereference assert (fSmartPtr != 0); return *fSmartPtr; } //! operator -> overloading to access the actual class pointer T* operator->() const { // checks for null dereference assert (fSmartPtr != 0); return fSmartPtr; } //! operator = that moves the actual class pointer template SMARTP& operator=(T2 p1_) { *this=(T*)p1_; return *this; } //! operator = that moves the actual class pointer SMARTP& operator=(T* p_) { // check first that pointers differ if (fSmartPtr != p_) { // increments the ref count of the new pointer if not null if (p_ != 0) p_->addReference(); // decrements the ref count of the old pointer if not null if (fSmartPtr != 0) fSmartPtr->removeReference(); // and finally stores the new actual pointer fSmartPtr = p_; } return *this; } //! operator < to support SMARTP map with Visual C++ bool operator<(const SMARTP& p_) const { return fSmartPtr < ((T *) p_); } //! operator = to support inherited class reference SMARTP& operator=(const SMARTP& p_) { return operator=((T *) p_); } //! dynamic cast support template SMARTP& cast(T2* p_) { return operator=(dynamic_cast(p_)); } //! dynamic cast support template SMARTP& cast(const SMARTP& p_) { return operator=(dynamic_cast(p_)); } }; } #endif faust-0.9.46/architecture/osclib/faust/src/lib/OSCRegexp.h0000644000175000017500000000251311702130733023232 0ustar orlareyorlarey/* Copyright (C) 2010 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __OSCRegexp__ #define __OSCRegexp__ #include #include "deelx.h" namespace oscfaust { //-------------------------------------------------------------------------- /*! \brief a wrapper over the deelx regexp library */ class OSCRegexp { CRegexpT fRegexp; static std::string OSCRe2Re (const char* oscre); // translates an OSC regexp into a regexp public: OSCRegexp (const char* oscre); virtual ~OSCRegexp() {} bool match (const char* str) const; }; } #endif faust-0.9.46/architecture/osclib/faust/src/threads/0000755000175000017500000000000011702130733022145 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/faust/src/threads/TThreads.h0000644000175000017500000000350411702130733024036 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __TThreads__ #define __TThreads__ #ifdef WIN32 #include #define ThreadAPI(proc, arg) DWORD WINAPI proc (LPVOID arg) typedef LPTHREAD_START_ROUTINE ThreadProcPtr; typedef HANDLE ThreadHandle; #else #include #define ThreadAPI(proc, arg) void * proc (void * arg) typedef void * ( * ThreadProcPtr) (void * ptr); typedef pthread_t ThreadHandle; #endif //___________________________________________________________________ /*! \brief cross platform threads support Based on pthread on linux and mac and Windows native threads on Windows */ class TThreads { public: enum { kNormalPriority=0 }; TThreads (); virtual ~TThreads () { quit (); } virtual void run() = 0; bool start (int priority = kNormalPriority); bool isRunning () const { return fRunning; } void quit(); void running (bool state) { fRunning = state; } private: int SetPriority (int priority); bool fRunning; ThreadHandle fThread; // the thread handler }; #endif faust-0.9.46/architecture/osclib/faust/src/threads/winthreads_impl.cpp0000644000175000017500000000360311702130733026044 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifdef WIN32 #include #include "TThreads.h" //_____________________________________________________________________ static DWORD WINAPI baseThreadProc (LPVOID ptr) { TThreads* thread = (TThreads*)ptr; thread->running (true); thread->run(); thread->running (false); return 0; } //_____________________________________________________________________ TThreads::TThreads () : fThread(0) {} //_____________________________________________________________________ int TThreads::SetPriority (int priority) { if (!SetThreadPriority (fThread, priority)) return TRUE; return FALSE; } //_____________________________________________________________________ bool TThreads::start (int priority) { DWORD id; fThread = CreateThread(NULL, 0, baseThreadProc, this, 0, &id); if (fThread) { SetPriority (priority); return true; } return false; } //_____________________________________________________________________ void TThreads::quit () { if (fThread) { WaitForSingleObject (fThread, 1000); CloseHandle (fThread); fThread = 0; } } #endif faust-0.9.46/architecture/osclib/faust/src/threads/pthreads_impl.cpp0000644000175000017500000000410011702130733025477 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifdef WIN32 #else #include #include #include #include #include "TThreads.h" //_____________________________________________________________________ static void * baseThreadProc (void * ptr) { TThreads* thread = (TThreads*)ptr; thread->running (true); thread->run(); thread->running (false); return 0; } //_____________________________________________________________________ TThreads::TThreads () : fRunning(false), fThread(0) {} //_____________________________________________________________________ int TThreads::SetPriority (int priority) { if (fThread) { struct sched_param param; param.sched_priority = priority; if (!pthread_setschedparam (fThread, SCHED_OTHER, ¶m)) return true; } return false; } //_____________________________________________________________________ bool TThreads::start (int priority) { int ret = pthread_create(&fThread, NULL, baseThreadProc, this); if (!ret) { SetPriority (priority); return true; } return false; } //_____________________________________________________________________ void TThreads::quit () { if (fThread) { void *threadRet; pthread_cancel (fThread); pthread_join (fThread, &threadRet); fThread = 0; } } #endif faust-0.9.46/architecture/osclib/faust/src/OSCControler.cpp0000644000175000017500000001265211702130733023541 0ustar orlareyorlarey/* Faust Project Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #include #include #include "OSCControler.h" #include "FaustFactory.h" #include "OSCSetup.h" #include "OSCFError.h" #include "RootNode.h" #include "OSCIO.h" using namespace std; namespace oscfaust { #define kVersion 0.91f #define kVersionStr "0.91" static const char* kUDPPortOpt = "-port"; static const char* kUDPOutOpt = "-outport"; static const char* kUDPErrOpt = "-errport"; static const char* kUDPDestOpt = "-dest"; //-------------------------------------------------------------------------- // utilities for command line arguments //-------------------------------------------------------------------------- static int getPortOption (int argc, char *argv[], const std::string& option, int defaultValue) { for (int i=0; i < argc-1; i++) { if (option == argv[i]) { int val = strtol( argv[i+1], 0, 10); if (val) return val; } } return defaultValue; } static const char* getDestOption (int argc, char *argv[], const std::string& option, const char* defaultValue) { for (int i=0; i < argc-1; i++) { if (option == argv[i]) return argv[i+1]; } return defaultValue; } //-------------------------------------------------------------------------- OSCControler::OSCControler (int argc, char *argv[], OSCIO* io) : fUDPPort(kUDPBasePort), fUDPOut(kUDPBasePort+1), fUPDErr(kUDPBasePort+2), fIO(io) { fUDPPort = getPortOption (argc, argv, kUDPPortOpt, fUDPPort); fUDPOut = getPortOption (argc, argv, kUDPOutOpt, fUDPOut); fUPDErr = getPortOption (argc, argv, kUDPErrOpt, fUPDErr); fDestAddress = getDestOption (argc, argv, kUDPDestOpt, "localhost"); fFactory = new FaustFactory(io); fOsc = new OSCSetup(); } OSCControler::~OSCControler () { quit(); delete fFactory; delete fOsc; } //-------------------------------------------------------------------------- float OSCControler::version() { return kVersion; } const char* OSCControler::versionstr() { return kVersionStr; } //-------------------------------------------------------------------------- // Add a node in the current group (top of the group stack) void OSCControler::addnode (const char* label, float* zone, float init, float min, float max) { fFactory->addnode (label, zone, init, min, max); } //-------------------------------------------------------------------------- // Add a node using its fullpath from the root instead of the current group // This method is used for alias messages. The arguments imin and imax allow // to map incomming values from the alias input range to the actual range void OSCControler::addfullpathnode (const string& fullpath, float* zone, float imin, float imax, float init, float min, float max) { fFactory->addfullpathnode (fullpath, zone, imin, imax, init, min, max); } //-------------------------------------------------------------------------- void OSCControler::opengroup (const char* label) { fFactory->opengroup (label); } //-------------------------------------------------------------------------- void OSCControler::closegroup () { fFactory->closegroup (); } //-------------------------------------------------------------------------- static std::string quote (const char* str) { std::string outstr ( str ); outstr.insert (0, 1, '\''); outstr += '\''; return outstr; } //-------------------------------------------------------------------------- // start the network services void OSCControler::run () { SMessageDriven root = fFactory->root(); // first get the root node if (root) { // and cast it to a RootNode RootNode * rootnode = dynamic_cast ((MessageDriven*)root); // informs the root node of the udp ports numbers (required to handle the 'hello' message if (rootnode) rootnode->setPorts (&fUDPPort, &fUDPOut, &fUPDErr); // starts the network services fOsc->start (root, fUDPPort, fUDPOut, fUPDErr, getDesAddress()); // and outputs a message on the osc output port oscout << OSCStart("Faust OSC version") << versionstr() << "-" << quote(root->getName()).c_str() << "is running on UDP ports " << fUDPPort << fUDPOut << fUPDErr; if (fIO) oscout << " using OSC IO - in chans: " << fIO->numInputs() << " out chans: " << fIO->numOutputs(); oscout << OSCEnd(); // that should not occur unless a derivative changes the root node type if (!rootnode) OSCFErr << root->getName() << ": is not a root node, 'hello' message won't be supported" << OSCFEndl; } } //-------------------------------------------------------------------------- const char* OSCControler::getRootName() { return fFactory->root()->getName(); } //-------------------------------------------------------------------------- void OSCControler::quit () { fOsc->stop(); } } faust-0.9.46/architecture/osclib/faust/src/nodes/0000755000175000017500000000000011702130733021623 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/faust/src/nodes/FaustFactory.cpp0000644000175000017500000001125711702130733024747 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #include #include #include "FaustFactory.h" #include "FaustNode.h" #include "RootNode.h" #include "MessageDriven.h" #include "OSCAddress.h" using namespace std; namespace oscfaust { /** * Add a node to the OSC UI tree in the current group at the top of the stack */ void FaustFactory::addnode (const char* label, float* zone, float init, float min, float max) { SMessageDriven top = fNodes.size() ? fNodes.top() : fRoot; if (top) { string prefix = top->getOSCAddress(); top->add( FaustNode::create (label, zone, init, min, max, prefix.c_str()) ); } } /** * Add a node to the OSC UI tree using its fullpath directly from the root and bypassing the current group. * The argument fullpath = "/foo/fii/faa [imin [imax]]" can contain optional imin and imax values */ void FaustFactory::addfullpathnode (const string& fullpath, float* zone, float imin, float imax, float init, float min, float max) { istringstream ss(fullpath); string realpath; string remainingpath; // Extract realpath and optional imin and imax fields. Note that if no values for imin and imax // are specified in the fullpath string, the values passed as parameters will be used. ss >> realpath >> imin >> imax; // Note that realpath is prefixed before being added in the tree : /root/alias/realpath SMessageDriven node = followPath(fRoot, string("/alias") + realpath, remainingpath); createNodeChain(node, remainingpath, zone, imin, imax, init, min, max); } /** * Follows fullpath as much as possible. Return the deepest node reached and * the remaining path. We have path(node)++remainingpath = fullpath */ SMessageDriven FaustFactory::followPath(SMessageDriven node, const string& fullpath, string& remainingpath) { if (fullpath.size()>0) { string label = OSCAddress::addressFirst (fullpath); for (int i = 0; i < node->size(); i++) { if (node->subnode(i)->name() == label) { return followPath(node->subnode(i), OSCAddress::addressTail(fullpath), remainingpath); } } } remainingpath = fullpath; return node; } /** * Creates a chain of nodes starting at node and following pathtoleaf */ void FaustFactory::createNodeChain(SMessageDriven node, const string& pathtoleaf, float* zone, float imin, float imax, float init, float min, float max) { if (pathtoleaf.size() > 0) { string label = OSCAddress::addressFirst (pathtoleaf); string tail = OSCAddress::addressTail (pathtoleaf); if (tail.size() == 0) { string prefix = node->getOSCAddress(); node->add( FaustNode::create (label.c_str(), zone, imin, imax, init, min, max, prefix.c_str()) ); } else { SMessageDriven group = MessageDriven::create (label.c_str(), node->getOSCAddress().c_str()); node->add(group); createNodeChain(group, tail, zone, imin, imax, init, min, max); } } else { cerr << "osc address too short" << endl; } } /** * Open a group in the current group and place it on the top of the stack. * Takes into account that due to alias, a group can been previously created. */ void FaustFactory::opengroup (const char* label) { if (fNodes.size() == 0) { // the stack is empty: creates a root node // and gives the root node a possible OSCIO controler fRoot = RootNode::create (label, fIO); fNodes.push (fRoot); } else { // only create a group if not previously created SMessageDriven node = fNodes.top(); int i=0; while ( (i < node->size()) && (node->subnode(i)->name() != label) ) i++; if (i < node->size()) { // found, make it top of stack fNodes.push(node->subnode(i)); } else { // not found, create a new group and make it top of stack SMessageDriven group = MessageDriven::create (label, node->getOSCAddress().c_str()); node->add( group ); fNodes.push (group); } } } //-------------------------------------------------------------------------- void FaustFactory::closegroup () { fNodes.pop (); } } // end namespoace faust-0.9.46/architecture/osclib/faust/src/nodes/FaustNode.cpp0000644000175000017500000000410311702130733024215 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #include "FaustNode.h" #include "Message.h" #include "OSCStream.h" namespace oscfaust { //-------------------------------------------------------------------------- bool FaustNode::store( float val ) { *fZone = fMapping.scale(val); return true; } //-------------------------------------------------------------------------- bool FaustNode::accept( const Message* msg ) { if (msg->size() == 1) { // checks for the message parameters count // messages with a param count other than 1 are rejected int ival; float fval; if (msg->param(0, fval)) return store (fval); // accepts float values else if (msg->param(0, ival)) return store (float(ival)); // but accepts also int values } return MessageDriven::accept(msg); } //-------------------------------------------------------------------------- void FaustNode::get (unsigned long ipdest ) const { unsigned long savedip = oscout.getAddress(); // saves the current destination IP oscout.setAddress(ipdest); // sets the osc stream dest IP // send a state message on 'get' request oscout << OSCStart(getOSCAddress().c_str()) << *fZone << fMapping.fMinOut << fMapping.fMaxOut << OSCEnd(); oscout.setAddress(savedip); // and restores the destination IP } } // end namespoace faust-0.9.46/architecture/osclib/faust/src/nodes/FaustNode.h0000644000175000017500000000555711702130733023700 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __FaustNode__ #define __FaustNode__ #include #include #include "MessageDriven.h" namespace oscfaust { class FaustNode; typedef class SMARTP SFaustNode; /** * map (rescale) input values to output values */ struct mapping { const float fMinIn; const float fMaxIn; const float fMinOut; const float fMaxOut; const float fScale; mapping(float imin, float imax, float omin, float omax) : fMinIn(imin), fMaxIn(imax), fMinOut(omin), fMaxOut(omax), fScale( (fMaxOut-fMinOut)/(fMaxIn-fMinIn) ) {} float scale (float x) { float z = (x < fMinIn) ? fMinIn : (x > fMaxIn) ? fMaxIn : x; return fMinOut + (z - fMinIn) * fScale; } }; //-------------------------------------------------------------------------- /*! \brief a faust node is a terminal node and represents a faust parameter controler */ class FaustNode : public MessageDriven { float * fZone; // the parameter memory zone mapping fMapping; bool store (float val); protected: FaustNode(const char *name, float* zone, float init, float min, float max, const char* prefix) : MessageDriven (name, prefix), fZone(zone), fMapping(min, max, min, max) { *zone = init; } FaustNode(const char *name, float* zone, float imin, float imax, float init, float min, float max, const char* prefix) : MessageDriven (name, prefix), fZone(zone), fMapping(imin, imax, min, max) { *zone = init; } virtual ~FaustNode() {} public: static SFaustNode create (const char* name, float* zone, float init, float min, float max, const char* prefix) { return new FaustNode(name, zone, init, min, max, prefix); } static SFaustNode create (const char* name, float* zone, float imin, float imax, float init, float min, float max, const char* prefix) { return new FaustNode(name, zone, imin, imax, init, min, max, prefix); } virtual bool accept( const Message* msg ); ///< handler for the 'accept' message virtual void get (unsigned long ipdest) const; ///< handler for the 'get' message }; } // end namespoace #endif faust-0.9.46/architecture/osclib/faust/src/nodes/RootNode.h0000644000175000017500000000371011702130733023526 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __RootNode__ #define __RootNode__ #include #include #include "MessageDriven.h" namespace oscfaust { class OSCIO; class RootNode; typedef class SMARTP SRootNode; //-------------------------------------------------------------------------- /*! \brief a faust root node A Faust root node handles the \c 'hello' message and provides support for incoming osc signal data. */ class RootNode : public MessageDriven { int *fUPDIn, *fUDPOut, *fUDPErr; // the osc port numbers (required by the hello method) OSCIO * fIO; // an OSC IO controler protected: RootNode(const char *name, OSCIO* io=0) : MessageDriven (name, ""), fUPDIn(0), fUDPOut(0), fUDPErr(0), fIO(io) {} virtual ~RootNode() {} public: static SRootNode create (const char* name, OSCIO* io=0) { return new RootNode(name, io); } virtual bool accept( const Message* msg ); bool acceptSignal( const Message* msg ); ///< handler for signal data void hello (unsigned long ipdest) const; ///< handler for the 'hello' message void setPorts (int* in, int* out, int* err); }; } // end namespoace #endif faust-0.9.46/architecture/osclib/faust/src/nodes/MessageDriven.cpp0000644000175000017500000000761311702130733025072 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #include #include #include "Message.h" #include "MessageDriven.h" #include "OSCAddress.h" #include "OSCFError.h" #include "OSCRegexp.h" using namespace std; namespace oscfaust { static const char * kGetMsg = "get"; //-------------------------------------------------------------------------- void MessageDriven::processMessage( const Message* msg ) { const string addr = msg->address(); // create a regular expression OSCRegexp r (OSCAddress::addressFirst(addr).c_str()); // and call propose with this regexp and with the dest osc address tail propose (msg, &r, OSCAddress::addressTail (addr)); if (addr != "/*") { // search for alias root (fixme : could be stored in a field) MessageDriven * aliasroot = 0; for (int i=0; iname() == "alias") { aliasroot = subnode(i); } } // if we have aliases in the tree // we need to check if the message if for an alias address if (aliasroot != 0) { OSCRegexp r2 ("alias"); if (msg->size() == 1) { aliasroot->propose (msg, &r2, addr); } else if (msg->size() > 1) { // we simulated several messages for (int i=0; i< msg->size(); i++) { ostringstream as; as << addr << '/' << i; string a(as.str()); Message m(a); float v; msg->param(i, v); m.add(v); aliasroot->propose (&m, &r2, a); } } } } } //-------------------------------------------------------------------------- // the full OSC address is simply the prefix + '/' + name string MessageDriven::getOSCAddress() const { string address(fOSCPrefix); address += "/"; address += fName; return address; } //-------------------------------------------------------------------------- // terminal nodes should override the get method void MessageDriven::get (unsigned long ipdest) const { // basic get handler propagates the get call to subnodes for (vector::const_iterator i = fSubNodes.begin(); i != fSubNodes.end(); i++) (*i)->get (ipdest); } //-------------------------------------------------------------------------- bool MessageDriven::accept( const Message* msg ) { string val; // the basic accept method only checks for the 'get' message if ((msg->size() == 1) && (msg->param(0, val)) && (val == kGetMsg)) { get (msg->src()); return true; } return false; } //-------------------------------------------------------------------------- void MessageDriven::propose( const Message* msg, const OSCRegexp* r, const std::string addrTail) { if (r->match(getName())) { // try to match the regular expression with the object name. if (addrTail.empty()) { // it matches and the tail is empty accept(msg); // then call accept() } else { // it matches but the tail is not empty OSCRegexp rtail (OSCAddress::addressFirst(addrTail).c_str()); for (vector::iterator i = fSubNodes.begin(); i != fSubNodes.end(); i++) { // then propagate propose() to subnodes with a new regexp and a new tail (*i)->propose (msg, &rtail, OSCAddress::addressTail(addrTail)); } } } } } // end namespoace faust-0.9.46/architecture/osclib/faust/src/nodes/RootNode.cpp0000644000175000017500000000734211702130733024066 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #include #include #include "RootNode.h" #include "Message.h" #include "OSCStream.h" #include "OSCControler.h" #include "OSCIO.h" #ifdef WIN32 # include "winsock2.h" #else # include "ip/NetworkingUtils.h" #endif using namespace std; namespace oscfaust { static const char * kHelloMsg = "hello"; //-------------------------------------------------------------------------- // ip address utility //-------------------------------------------------------------------------- static string getHostName() { char name[512]; int ret = gethostname(name, 512); if (ret == -1) return ""; return name; } string getIP() { string name = getHostName(); stringstream ipStr; if (name.size()) { unsigned long ip = GetHostByName(name.c_str()); ipStr << ((ip >> 24) & 0xff) << '.' << ((ip >> 16) & 0xff) << '.' << ((ip >> 8) & 0xff) << '.' << (ip & 0xff); } return ipStr.str(); } //-------------------------------------------------------------------------- // signal data handler //-------------------------------------------------------------------------- bool RootNode::acceptSignal( const Message* msg ) { bool ret = true; int n = msg->size(); if (n) { float val, * buff = new float[n]; for (int i = 0; i < n ; i++) { if (msg->param(i, val)) // assumes that it receives float values only buff[i] = val; else { // in case not ret = false; // set return code to false break; // and stops reading data } } if (ret) fIO->receive (n, buff); // call the IO controler receive method with the float data delete buff; } else ret = false; return ret; } //-------------------------------------------------------------------------- bool RootNode::accept( const Message* msg ) { string val; // checks for the 'hello' message first if ((msg->size() == 1) && (msg->param(0, val)) && (val == kHelloMsg) ) { hello (msg->src()); return true; } else if (MessageDriven::accept (msg)) // next checks for standard handlers ('get' for example) return true; else if (fIO) // when still not handled and if a IO controler is set return acceptSignal (msg); // try to read signal data return false; } //-------------------------------------------------------------------------- void RootNode::setPorts (int* in, int* out, int* err) { fUPDIn = in; fUDPOut = out; fUDPErr = err; } //-------------------------------------------------------------------------- void RootNode::hello (unsigned long ipdest ) const { if (fUPDIn && fUDPOut && fUDPErr) { // on 'hello' request unsigned long savedip = oscout.getAddress(); // saves the current dest IP oscout.setAddress(ipdest); // set the destination IP // and sends its address + the udp port numbers (in, out and err) oscout << OSCStart(getOSCAddress().c_str()) << getIP() << *fUPDIn << *fUDPOut << *fUDPErr << OSCEnd(); oscout.setAddress(savedip); // and restores the dest IP } } } // end namespoace faust-0.9.46/architecture/osclib/faust/src/nodes/MessageDriven.h0000644000175000017500000001026211702130733024531 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __MessageDriven__ #define __MessageDriven__ #include #include #include "MessageProcessor.h" #include "smartpointer.h" namespace oscfaust { class Message; class OSCRegexp; class MessageDriven; typedef class SMARTP SMessageDriven; //-------------------------------------------------------------------------- /*! \brief a base class for objects accepting OSC messages Message driven objects are hierarchically organized in a tree. They provides the necessary to dispatch an OSC message to its destination node, according to the message OSC address. The principle of the dispatch is the following: - first the processMessage() method should be called on the top level node - next processMessage call propose */ class MessageDriven : public MessageProcessor, public smartable { std::string fName; ///< the node name std::string fOSCPrefix; ///< the node OSC address prefix (OSCAddress = fOSCPrefix + '/' + fName) std::vector fSubNodes; ///< the subnodes of the current node protected: MessageDriven(const char *name, const char *oscprefix) : fName (name), fOSCPrefix(oscprefix) {} virtual ~MessageDriven() {} public: static SMessageDriven create (const char* name, const char *oscprefix) { return new MessageDriven(name, oscprefix); } /*! \brief OSC message processing method. \param msg the osc message to be processed The method should be called on the top level node. */ virtual void processMessage( const Message* msg ); /*! \brief propose an OSc message at a given hierarchy level. \param msg the osc message currently processed \param regexp a regular expression based on the osc address head \param addrTail the osc address tail The method first tries to match the regular expression with the object name. When it matches: - it calls \c accept when \c addrTail is empty - or it \c propose the message to its subnodes when \c addrTail is not empty. In this case a new \c regexp is computed with the head of \c addrTail and a new \c addrTail as well. */ virtual void propose( const Message* msg, const OSCRegexp* regexp, const std::string addrTail); /*! \brief accept an OSC message. \param msg the osc message currently processed \return true when the message is processed by the node The method is called only for the destination nodes. The real message acceptance is the node responsability and may depend on the message content. */ virtual bool accept( const Message* msg ); /*! \brief handler for the \c 'get' message \param ipdest the output message destination IP The \c 'get' message is supported by every node: - it is propagated to the subnodes until it reaches terminal nodes - a terminal node send its state on \c 'get' request to the IP address given as parameter. The \c get method is basically called by the accept method. */ virtual void get (unsigned long ipdest) const; ///< handler for the 'get' message void add ( SMessageDriven node ) { fSubNodes.push_back (node); } const char* getName() const { return fName.c_str(); } std::string getOSCAddress() const; int size () const { return fSubNodes.size (); } const std::string& name() const { return fName; } SMessageDriven subnode (int i) { return fSubNodes[i]; } }; } // end namespoace #endif faust-0.9.46/architecture/osclib/faust/src/nodes/FaustFactory.h0000644000175000017500000000441411702130733024411 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __FaustFactory__ #define __FaustFactory__ #include #include #include "MessageDriven.h" namespace oscfaust { class OSCIO; class MessageDriven; typedef class SMARTP SMessageDriven; //-------------------------------------------------------------------------- /*! \brief a factory to build a OSC UI hierarchy Actually, makes use of a stack to build the UI hierarchy. It includes a pointer to a OSCIO controler, but just to give it to the root node. */ class FaustFactory { std::stack fNodes; ///< maintains the current hierarchy level SMessageDriven fRoot; ///< keep track of the root node OSCIO * fIO; ///< hack to support audio IO via OSC, actually the field is given to the root node private: SMessageDriven followPath (SMessageDriven fRoot, const std::string& fullpath, std::string& pathtoleaf); void createNodeChain (SMessageDriven node, const std::string& pathtoleaf, float* zone, float imin, float imax, float init, float min, float max); public: FaustFactory(OSCIO * io=0) : fIO(io) {} virtual ~FaustFactory() {} void addnode (const char* label, float* zone, float init, float min, float max); void addfullpathnode (const std::string& fullpath, float* zone, float imin, float imax, float init, float min, float max); void opengroup (const char* label); void closegroup (); SMessageDriven root() const { return fRoot; } }; } // end namespoace #endif faust-0.9.46/architecture/osclib/faust/src/osc/0000755000175000017500000000000011702130733021277 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/faust/src/osc/OSCStream.cpp0000644000175000017500000000633011702130733023605 0ustar orlareyorlarey/* Copyright (c) Grame 2009 This library is free software; you can redistribute it and modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation version 2 of the License, or any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Grame Research Laboratory, 9, rue du Garet 69001 Lyon - France research@grame.fr */ #include #include "OSCStream.h" using namespace std; namespace oscfaust { OSCStream* _oscout = 0; // OSC standard output stream OSCStream* _oscerr = 0; // OSC standard input stream static UdpSocket* _socket = 0; // a shared transmit socket //-------------------------------------------------------------------------- OSCStream::OSCStream () : fState(kIdle), fPort(1024), fAddress(kLocalhost), fOutStream(fBuffer, kOutBufferSize), fSocket(_socket) { if (!fSocket) cerr << "warning: incorrect OSCStream, _socket not initialized" << endl; } //-------------------------------------------------------------------------- bool OSCStream::start () { _socket = new UdpSocket; _oscout = new OSCStream(_socket); _oscerr = new OSCStream(_socket); return (_socket && _oscout && _oscerr); } //-------------------------------------------------------------------------- void OSCStream::stop () { delete _socket; delete _oscout; delete _oscerr; _oscout = _oscerr = 0; _socket = 0; } //-------------------------------------------------------------------------- void OSCStream::setAddress (const string& address) { IpEndpointName dst (address.c_str()); setAddress (dst.address); } //-------------------------------------------------------------------------- OSCStream& OSCStream::start(const char * address) { stream().Clear(); if (!stream().IsReady()) cerr << "OSCStream OutboundPacketStream not ready" << endl; stream() << osc::BeginMessage( address ) ; fState = kInProgress; return *this; } //-------------------------------------------------------------------------- OSCStream& OSCStream::end() { if (state() == kInProgress) { stream() << osc::EndMessage; if (fSocket) fSocket->SendTo (IpEndpointName (fAddress, fPort), stream().Data(), stream().Size() ); fState = kIdle; } return *this; } //-------------------------------------------------------------------------- OSCStream& operator <<(OSCStream& s, const string& val) { s.stream() << val.c_str(); return s; } //-------------------------------------------------------------------------- OSCStream& operator <<(OSCStream& s, const OSCErr& val) { return s.start(val.fAddress); } OSCStream& operator <<(OSCStream& s, const OSCWarn& val) { return s.start(val.fAddress); } OSCStream& operator <<(OSCStream& s, const OSCStart& val) { return s.start(val.fAddress); } OSCStream& operator <<(OSCStream& s, const OSCEnd val) { return s.end(); } } // end namespace faust-0.9.46/architecture/osclib/faust/src/osc/OSCAddress.h0000644000175000017500000000350211702130733023402 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __OSCAddress__ #define __OSCAddress__ #include namespace oscfaust { //-------------------------------------------------------------------------- /*! \brief OSC addresses utilities */ class OSCAddress { public: /*! \brief address decoding utility. An address has a form similar to a unix path. \param address the osc address to be processed \return the first part of the address (without leading '/') */ static std::string addressFirst (const std::string& address); /*! \brief address decoding utility. \param address the osc address to be processed \return the last part of an address. */ static std::string addressLast (const std::string& address); /*! \brief address decoding utility. An address has a form similar to a unix path. \param address the osc address to be processed \return the tail of an address after its first part. */ static std::string addressTail (const std::string& address); }; } // end namespoace #endif faust-0.9.46/architecture/osclib/faust/src/osc/OSCAddress.cpp0000644000175000017500000000335011702130733023736 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #include "OSCAddress.h" using namespace std; namespace oscfaust { #define kAddressSep '/' //-------------------------------------------------------------------------- string OSCAddress::addressFirst (const string& a) { if (a[0] == kAddressSep) { size_t n = a.find_first_of(kAddressSep, 1); if (n == string::npos) n = a.size(); return a.substr(1, n-1); } return ""; } //-------------------------------------------------------------------------- string OSCAddress::addressLast (const string& a) { size_t n = a.find_last_of(kAddressSep); if (n == string::npos) return ""; return a.substr(n+1); } //-------------------------------------------------------------------------- string OSCAddress::addressTail (const string& a) { if (a[0] == kAddressSep) { size_t n = a.find_first_of(kAddressSep, 1); if (n != string::npos) { return a.substr(n, a.size() - n); } } return ""; } } // end namespoace faust-0.9.46/architecture/osclib/faust/src/osc/OSCListener.h0000644000175000017500000000444411702130733023610 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __OSCListener__ #define __OSCListener__ #include "smartpointer.h" #include "MessageProcessor.h" // oscpack include files #include "ip/UdpSocket.h" #include "osc/OscPacketListener.h" namespace oscfaust { //-------------------------------------------------------------------------- /*! \brief an OSC listener that converts OSC input to Messages OSCListener makes the glue between the oscpack library and the faust lib osc messages representation \see Message in Message.h */ class OSCListener : public osc::OscPacketListener, public smartable { UdpListeningReceiveSocket *fSocket; ///< the udp socket listener MessageProcessor * fMsgHandler; bool fRunning; int fPort; public: static SMARTP create(MessageProcessor * mp, int port) { return new OSCListener(mp, port); } /*! \brief process OSC messages \param m the OSC message (pre-processed by the base class) \param remoteEndpoint the sender IP address */ virtual void ProcessMessage( const osc::ReceivedMessage& m, const IpEndpointName& remoteEndpoint ); virtual void run(); virtual void stop() { fRunning=false; if (fSocket) fSocket->AsynchronousBreak(); } virtual void setPort(int port) { fPort = port; } virtual void restart(int port) { fPort = port; if (fSocket) fSocket->AsynchronousBreak(); } protected: OSCListener(MessageProcessor * mp, int port); virtual ~OSCListener(); }; typedef class SMARTP SOSCListener; } // end namespoace #endif faust-0.9.46/architecture/osclib/faust/src/osc/OSCStream.h0000644000175000017500000000655211702130733023260 0ustar orlareyorlarey/* Copyright (c) Grame 2009 This library is free software; you can redistribute it and modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation version 2 of the License, or any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Grame Research Laboratory, 9, rue du Garet 69001 Lyon - France research@grame.fr */ #ifndef __OSCStream__ #define __OSCStream__ #include #include #include "osc/OscOutboundPacketStream.h" #include "ip/UdpSocket.h" namespace oscfaust { //-------------------------------------------------------------------------- typedef struct OSCStart { const char* fAddress; OSCStart() {} OSCStart(const char* a) : fAddress(a) {} } OSCStart; typedef struct OSCErr : public OSCStart { OSCErr() : OSCStart("error:") {} } OSCErr; typedef struct OSCWarn : public OSCStart { OSCWarn() : OSCStart("warning:") {} } OSCWarn; typedef struct OSCEnd {} OSCEnd; #define kLocalhost 0x7f000001 //-------------------------------------------------------------------------- /*! \brief OSC output streams */ class OSCStream { enum { kOutBufferSize = 16384 }; enum state { kIdle, kInProgress }; state fState; int fPort; // the destination UDP port unsigned long fAddress; // the destination IP address char fBuffer[kOutBufferSize]; osc::OutboundPacketStream fOutStream; UdpSocket* fSocket; // void initSocket(); public: static bool start(); static void stop(); OSCStream(); OSCStream(UdpSocket* socket) : fState(kIdle), fPort(1024), fAddress(kLocalhost), fOutStream(fBuffer, kOutBufferSize), fSocket(socket) {} virtual ~OSCStream() {} osc::OutboundPacketStream& stream() { return fOutStream; } int getPort () const { return fPort; } unsigned long getAddress () const { return fAddress; } UdpSocket* socket() { return fSocket; } int state() const { return fState; } OSCStream& start(const char * address); OSCStream& end(); void setPort (int port) { fPort = port; } void setAddress (unsigned long address) { fAddress = address; } void setAddress (const std::string& address); }; OSCStream& operator <<(OSCStream& s, OSCEnd val); OSCStream& operator <<(OSCStream& s, const OSCStart& val); OSCStream& operator <<(OSCStream& s, const OSCErr& val); OSCStream& operator <<(OSCStream& s, const OSCWarn& val); OSCStream& operator <<(OSCStream& s, const std::string& val); template OSCStream& operator <<(OSCStream& s, T val) { s.stream() << val; return s; } template OSCStream& operator <<(OSCStream& s, const std::vector& val) { for (unsigned int i =0; i < val.size(); i++) s << val[i]; return s; } extern OSCStream* _oscout; // OSC standard output stream extern OSCStream* _oscerr; // OSC standard input stream #define oscout (*_oscout) #define oscerr (*_oscerr) } // end namespace #endif faust-0.9.46/architecture/osclib/faust/src/osc/OSCSetup.h0000644000175000017500000000267411702130733023126 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #ifndef __OSCSetup__ #define __OSCSetup__ #include #include #include "OSCStream.h" namespace oscfaust { class OscThread; class MessageProcessor; //-------------------------------------------------------------------------- /*! \brief network management utility */ class OSCSetup { OscThread* fOSCThread; // a thread that is listening to the osc in socket public: OSCSetup() : fOSCThread(0) {} virtual ~OSCSetup(); bool start(MessageProcessor* mp, int& inPort, int outPort, int errPort, const char* address); void stop(); bool running() const; }; } // end namespoace #endif faust-0.9.46/architecture/osclib/faust/src/osc/OSCSetup.cpp0000644000175000017500000000507711702130733023461 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #include #include #include "OSCSetup.h" #include "TThreads.h" #include "OSCListener.h" namespace oscfaust { //-------------------------------------------------------------------------- /*! \brief a specific thread to listen incoming osc packets */ class OscThread : public TThreads { public: SOSCListener fListener; OscThread(MessageProcessor* mp, int udpport) { fListener = OSCListener::create (mp, udpport); } virtual ~OscThread() { stop(); } /// \brief starts the osc listener void run () { fListener->run(); } void stop () { fListener->stop(); quit(); } SOSCListener& listener() { return fListener; } }; //-------------------------------------------------------------------------- OSCSetup::~OSCSetup() { stop(); } bool OSCSetup::running() const { return fOSCThread ? fOSCThread->isRunning() : false; } //-------------------------------------------------------------------------- bool OSCSetup::start(MessageProcessor* mp, int& inPort, int outPort, int errPort, const char* address ) { int port = inPort; bool done = false; do { try { OSCStream::start(); oscout.setPort(outPort); oscerr.setPort (errPort); oscout.setAddress(address); oscerr.setAddress(address); fOSCThread = new OscThread (mp, port); fOSCThread->start(); done = true; } catch (std::runtime_error e) { if ( port - inPort > 1000) return false; do { port++; } while ((port == outPort) || (port == errPort)); } } while (!done); inPort = port; return true; } //-------------------------------------------------------------------------- void OSCSetup::stop() { if (fOSCThread) { fOSCThread->stop(); OSCStream::stop(); delete fOSCThread; fOSCThread = 0; } } } // end namespoace faust-0.9.46/architecture/osclib/faust/src/osc/OSCIO.cpp0000644000175000017500000000260411702130733022661 0ustar orlareyorlarey/* Copyright (C) 2011 Grame This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France research@grame.fr */ #include #include "OSCIO.h" #include "OSCStream.h" namespace oscfaust { //-------------------------------------------------------------------------- void OSCIO::send ( int nframes, float * val, int chan ) const { std::stringstream dst; dst << dest() << chan; // first set the destination osc address oscout << OSCStart(dst.str().c_str()); // then starts the osc out stream for (int n=0; n #include "OSCListener.h" #include "Message.h" #include "osc/OscReceivedElements.h" #include "ip/IpEndpointName.h" using namespace std; using namespace osc; namespace oscfaust { //-------------------------------------------------------------------------- OSCListener::OSCListener(MessageProcessor *mp, int port) : fSocket(0), fMsgHandler(mp), fRunning(false), fPort(port) { fSocket = new UdpListeningReceiveSocket(IpEndpointName( IpEndpointName::ANY_ADDRESS, fPort ), this); fPort = 0; } OSCListener::~OSCListener() { stop(); delete fSocket; } //-------------------------------------------------------------------------- void OSCListener::run() { fRunning = true; while (fRunning) { try { if (fPort) { delete fSocket; fSocket = new UdpListeningReceiveSocket(IpEndpointName( IpEndpointName::ANY_ADDRESS, fPort ), this); fPort = 0; } fSocket->Run(); } catch (osc::Exception e) { cerr << "osc error: " << e.what() << endl; } } } //-------------------------------------------------------------------------- void OSCListener::ProcessMessage( const osc::ReceivedMessage& m, const IpEndpointName& src ) { Message* msg = new Message(m.AddressPattern()); msg->setSrcIP (src.address); ReceivedMessageArgumentIterator i = m.ArgumentsBegin(); while (i != m.ArgumentsEnd()) { if (i->IsString()) { msg->add(i->AsStringUnchecked()); } else if (i->IsInt32()) { msg->add(i->AsInt32Unchecked()); } else if (i->IsFloat()) { msg->add(i->AsFloatUnchecked()); } i++; } fMsgHandler->processMessage (msg); delete msg; } } // end namespoace faust-0.9.46/architecture/osclib/faust/Makefile0000644000175000017500000001225611702130733021372 0ustar orlareyorlareysubprojects := include src src/lib src/msg src/nodes src/osc src/threads sources = $(wildcard src/*.cpp) $(wildcard src/*/*.cpp) objects = $(sources:.cpp=.o) VPATH = $(subprojects) system ?= $(shell uname -s) ifeq ($(system), Darwin) ARCHFLAGS := -arch i386 -arch x86_64 else ARCHFLAGS := endif CXXFLAGS ?= -O3 -Wall -Wuninitialized $(ARCHFLAGS) CXXFLAGS += -Wno-parentheses -I../oscpack -I../oscpack/osc $(addprefix -I, $(subprojects)) -DINSTALL_PREFIX='"$(prefix)"' all : libOSCFaust.a libOSCFaust.a : $(objects) rm -f $@ ar cq $@ $(objects) ranlib $@ depend : makedepend -fMakefile -w120 -Y -- $(CXXFLAGS) -- $(sources) clean : rm -f $(objects) rm -f libOSCFaust.a # DO NOT DELETE src/OSCControler.o: include/OSCControler.h src/nodes/FaustFactory.h src/nodes/MessageDriven.h src/OSCControler.o: src/msg/MessageProcessor.h src/lib/smartpointer.h src/osc/OSCSetup.h src/osc/OSCStream.h src/OSCControler.o: ../oscpack/osc/OscOutboundPacketStream.h ../oscpack/osc/OscTypes.h ../oscpack/osc/OscException.h src/OSCControler.o: ../oscpack/ip/UdpSocket.h ../oscpack/ip/NetworkingUtils.h ../oscpack/ip/IpEndpointName.h src/OSCControler.o: src/lib/OSCFError.h src/nodes/RootNode.h include/OSCIO.h src/lib/OSCFError.o: src/lib/OSCFError.h src/osc/OSCStream.h ../oscpack/osc/OscOutboundPacketStream.h src/lib/OSCFError.o: ../oscpack/osc/OscTypes.h ../oscpack/osc/OscException.h ../oscpack/ip/UdpSocket.h src/lib/OSCFError.o: ../oscpack/ip/NetworkingUtils.h ../oscpack/ip/IpEndpointName.h src/msg/Message.h src/lib/OSCFError.o: src/lib/smartpointer.h src/lib/OSCRegexp.o: src/lib/OSCRegexp.h src/lib/deelx.h src/msg/Message.o: src/msg/Message.h src/lib/smartpointer.h src/lib/OSCFError.h src/osc/OSCStream.h src/msg/Message.o: ../oscpack/osc/OscOutboundPacketStream.h ../oscpack/osc/OscTypes.h ../oscpack/osc/OscException.h src/msg/Message.o: ../oscpack/ip/UdpSocket.h ../oscpack/ip/NetworkingUtils.h ../oscpack/ip/IpEndpointName.h src/nodes/FaustFactory.o: src/nodes/FaustFactory.h src/nodes/MessageDriven.h src/msg/MessageProcessor.h src/nodes/FaustFactory.o: src/lib/smartpointer.h src/nodes/FaustNode.h src/nodes/RootNode.h src/osc/OSCAddress.h src/nodes/FaustNode.o: src/nodes/FaustNode.h src/nodes/MessageDriven.h src/msg/MessageProcessor.h src/nodes/FaustNode.o: src/lib/smartpointer.h src/msg/Message.h src/osc/OSCStream.h src/nodes/FaustNode.o: ../oscpack/osc/OscOutboundPacketStream.h ../oscpack/osc/OscTypes.h ../oscpack/osc/OscException.h src/nodes/FaustNode.o: ../oscpack/ip/UdpSocket.h ../oscpack/ip/NetworkingUtils.h ../oscpack/ip/IpEndpointName.h src/nodes/MessageDriven.o: src/msg/Message.h src/lib/smartpointer.h src/nodes/MessageDriven.h src/nodes/MessageDriven.o: src/msg/MessageProcessor.h src/osc/OSCAddress.h src/lib/OSCFError.h src/osc/OSCStream.h src/nodes/MessageDriven.o: ../oscpack/osc/OscOutboundPacketStream.h ../oscpack/osc/OscTypes.h src/nodes/MessageDriven.o: ../oscpack/osc/OscException.h ../oscpack/ip/UdpSocket.h ../oscpack/ip/NetworkingUtils.h src/nodes/MessageDriven.o: ../oscpack/ip/IpEndpointName.h src/lib/OSCRegexp.h src/lib/deelx.h src/nodes/RootNode.o: src/nodes/RootNode.h src/nodes/MessageDriven.h src/msg/MessageProcessor.h src/lib/smartpointer.h src/nodes/RootNode.o: src/msg/Message.h src/osc/OSCStream.h ../oscpack/osc/OscOutboundPacketStream.h src/nodes/RootNode.o: ../oscpack/osc/OscTypes.h ../oscpack/osc/OscException.h ../oscpack/ip/UdpSocket.h src/nodes/RootNode.o: ../oscpack/ip/NetworkingUtils.h ../oscpack/ip/IpEndpointName.h include/OSCControler.h src/nodes/RootNode.o: include/OSCIO.h ../oscpack/ip/NetworkingUtils.h src/osc/OSCAddress.o: src/osc/OSCAddress.h src/osc/OSCIO.o: include/OSCIO.h src/osc/OSCStream.h ../oscpack/osc/OscOutboundPacketStream.h ../oscpack/osc/OscTypes.h src/osc/OSCIO.o: ../oscpack/osc/OscException.h ../oscpack/ip/UdpSocket.h ../oscpack/ip/NetworkingUtils.h src/osc/OSCIO.o: ../oscpack/ip/IpEndpointName.h src/osc/OSCListener.o: src/osc/OSCListener.h src/lib/smartpointer.h src/msg/MessageProcessor.h src/osc/OSCListener.o: ../oscpack/ip/UdpSocket.h ../oscpack/ip/NetworkingUtils.h ../oscpack/ip/IpEndpointName.h src/osc/OSCListener.o: ../oscpack/osc/OscPacketListener.h ../oscpack/osc/OscReceivedElements.h src/osc/OSCListener.o: ../oscpack/osc/OscTypes.h ../oscpack/osc/OscException.h ../oscpack/ip/PacketListener.h src/osc/OSCListener.o: src/msg/Message.h ../oscpack/osc/OscReceivedElements.h ../oscpack/ip/IpEndpointName.h src/osc/OSCSetup.o: src/osc/OSCSetup.h src/osc/OSCStream.h ../oscpack/osc/OscOutboundPacketStream.h src/osc/OSCSetup.o: ../oscpack/osc/OscTypes.h ../oscpack/osc/OscException.h ../oscpack/ip/UdpSocket.h src/osc/OSCSetup.o: ../oscpack/ip/NetworkingUtils.h ../oscpack/ip/IpEndpointName.h src/threads/TThreads.h src/osc/OSCSetup.o: src/osc/OSCListener.h src/lib/smartpointer.h src/msg/MessageProcessor.h src/osc/OSCSetup.o: ../oscpack/osc/OscPacketListener.h ../oscpack/osc/OscReceivedElements.h src/osc/OSCSetup.o: ../oscpack/ip/PacketListener.h src/osc/OSCStream.o: src/osc/OSCStream.h ../oscpack/osc/OscOutboundPacketStream.h ../oscpack/osc/OscTypes.h src/osc/OSCStream.o: ../oscpack/osc/OscException.h ../oscpack/ip/UdpSocket.h ../oscpack/ip/NetworkingUtils.h src/osc/OSCStream.o: ../oscpack/ip/IpEndpointName.h src/threads/pthreads_impl.o: src/threads/TThreads.h faust-0.9.46/architecture/osclib/faust/Doxyfile0000644000175000017500000017407511702130733021450 0ustar orlareyorlarey# Doxyfile 1.5.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "FAUST OSC Library" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 0.91 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, # Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, # Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, # Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = YES # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it parses. # With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this tag. # The format is ext=language, where ext is a file extension, and language is one of # the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, # Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat # .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = YES # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = NO # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by # doxygen. The layout file controls the global structure of the generated output files # in an output format independent way. The create the layout file that represents # doxygen's defaults, run doxygen with the -l option. You can optionally specify a # file name after the option, if omitted DoxygenLayout.xml will be used as the name # of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = NO # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ./src/msg \ ./src/nodes \ ./src/osc \ ./src/threads \ ./include # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.h # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER # are set, an additional index file will be generated that can be used as input for # Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated # HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. # For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's # filter section matches. # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to FRAME, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. Other possible values # for this tag are: HIERARCHIES, which will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list; # ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which # disables this behavior completely. For backwards compatibility with previous # releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE # respectively. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = gif # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Options related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO faust-0.9.46/architecture/osclib/faust/cmake/0000755000175000017500000000000011702130733021004 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/faust/cmake/.gitignore0000644000175000017500000000015111702130733022771 0ustar orlareyorlareyCMakeCache.txt CMakeFiles/ CMakeScripts/ Debug/ OSCFaust.* Release/ build/ cmake_install.cmake Makefile faust-0.9.46/architecture/osclib/faust/cmake/CMakeLists.txt0000644000175000017500000000541311702130733023547 0ustar orlareyorlareycmake_minimum_required(VERSION 2.6) project(OSCFaust) ####################################### # cmake build types configuration set (CMAKE_CONFIGURATION_TYPES Debug Release) set (TARGET OSCFaust) ####################################### # versions management set (version 0.50) ####################################### if(WIN32) add_definitions(-DWINVER=0x0400 -DWIN32) if(MSVC) add_definitions(-DMSVC) endif(MSVC) else(WIN32) add_definitions(-Wall) endif(WIN32) if(APPLE AND (${CMAKE_GENERATOR} STREQUAL Xcode) ) if (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0) set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk) else (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0) set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk) endif (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0) set (CMAKE_OSX_ARCHITECTURES "i386 x86_64") set (CMAKE_C++_FLAGS -mmacosx-version-min=10.4) endif(APPLE AND (${CMAKE_GENERATOR} STREQUAL Xcode) ) ####################################### # set directories, src and headers. set (ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../src) set (LIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/../..) set (SRCFOLDERS lib ../include msg osc nodes) set (OSC_PATH "${ROOT}/../../oscpack") set(SRC ${SRC} "${ROOT}/*.cpp") # add source files foreach(folder ${SRCFOLDERS}) set(SRC ${SRC} "${ROOT}/${folder}/*.cpp") # add source files endforeach(folder) if (WIN32) set(SRC ${SRC} "${ROOT}/threads/win*.cpp") # add threads src per platform else (WIN32) set(SRC ${SRC} "${ROOT}/threads/pthread*.cpp") # add threads src per platform endif (WIN32) file (GLOB SRCFILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SRC}) foreach(folder ${SRCFOLDERS}) set(HEADERS ${HEADERS} "${ROOT}/${folder}/*.h") # add header files endforeach(folder) set(HEADERS ${HEADERS} "${ROOT}/threads/*.h") # add header files file (GLOB HEADERFILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${HEADERS}) foreach(folder ${SRCFOLDERS}) set(INCL ${INCL} "${ROOT}/${folder}") # add include folders endforeach(folder) set(INCL ${INCL} "${ROOT}/threads") # add other include folders ####################################### # set libraries if(WIN32) set(OSCPACK ${ROOT}/../../oscpack.lib) else(WIN32) set(OSCPACK ${ROOT}/../../liboscpack.a) endif(WIN32) ####################################### # set targets include_directories (${INCL} ${OSC_PATH} ) add_library ( ${TARGET} STATIC ${SRCFILES} ${HEADERFILES} ${OSCPACK} ) set_source_files_properties (${HEADERFILES} PROPERTIES HEADER_FILE_ONLY TRUE) set_target_properties (${TARGET} PROPERTIES VERSION ${version} ARCHIVE_OUTPUT_DIRECTORY "${ROOT}/../.." ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${ROOT}/../.." ) if(WIN32) target_link_libraries ( ${TARGET} ws2_32.lib ) endif(WIN32) if (WIN32) set (OUTLIB "${TARGET}.lib") else (WIN32) set (OUTLIB "lib${TARGET}.a") endif (WIN32) faust-0.9.46/architecture/osclib/faust/license.txt0000644000175000017500000005764611702130733022131 0ustar orlareyorlarey GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS faust-0.9.46/architecture/osclib/faust/changelog.txt0000644000175000017500000000105211702130733022412 0ustar orlareyorlarey==================================================== FAUST OSC Library ---------------------------------------------------- GRAME - Centre national de creation musicale http://www.grame.fr research@grame.fr ==================================================== Copyright GRAME (c) 2011 ---------------------------------------------------- Version 0.91 [Feb 25 2011] - OSC data input/output support added ---------------------------------------------------- Version 0.90 [Jan 28 2011] - first release faust-0.9.46/architecture/osclib/faust/readme.txt0000644000175000017500000000516511702130733021731 0ustar orlareyorlarey================================================================= FAUST OSC Library Copyright (c) 2011 Grame ================================================================= ----------------------------------------------------------------- Note about the OSC messages and address space ----------------------------------------------------------------- The OSC address space adheres strictly to the hierarchy defined by the 'addnode' and 'opengroup' calls. A node expects to receive OSC messages with a single float value as parameter. This policy is strict for the parameters count, but relaxed for the parameter type: OSC int values are accepted and casted to float. *** 'get' message *** The library provides a simple support for querying the system with a 'get' message that can be sent to any valid OSC address. The 'get' message is propagated to every terminal node that responds with its osc address and current values (value, min and max). *** 'hello' message *** The library provides a simple support for modules discovery with a 'hello' message that can be sent to any module root address. The module responds with its root address, followed by its IP address, followed by the UDP ports numbers (listening port, output port, error port). See the note about network management below for ports numbering scheme. ----------------------------------------------------------------- Note about network management ----------------------------------------------------------------- The default UDP ports are chosen in an unassigned range see IANA PORT NUMBERS (last updated 2011-01-24) at http://www.iana.org/assignments/port-numbers As of today (jan. 27 2011), the range 5507-5552 is unassigned and the default ports numbers are: - 5510 for listening UDP port - 5511 for the osc output port - 5512 for the osc error port *** Changing the ports numbers with the command line *** An OSCControler object takes the command line arguments as constructor parameters. It supports the following options to change the UDP ports numbers: [-port | -outport | -errport] number *** Dynamic UDP listening port allocation *** When the UDP listening port number is busy, the system automatically looks for the next available port number. Unless otherwise specified by the command line, the UDP output port numbers are unchanged and the system sends the allocated ports numbers on the osc output port on startup. *** Destination address *** The default UDP output streams destination is 'localhost'. It can be changed with a command line option: -dest address where address is a host name os an IP number. faust-0.9.46/architecture/osclib/oscpack/0000755000175000017500000000000011702130733020225 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/oscpack/Makefile0000644000175000017500000000316411702130733021671 0ustar orlareyorlareylibname := liboscpack.a system ?= $(shell uname -s) ifeq ($(system), Darwin) subprojects := ip ip/posix osc sources := $(wildcard ip/*.cpp) $(wildcard ip/posix/*.cpp) $(wildcard osc/*.cpp) ARCHFLAGS := -arch i386 -arch x86_64 else ifeq ($(system), Linux) subprojects := ip ip/posix osc sources := $(wildcard ip/*.cpp) $(wildcard ip/posix/*.cpp) $(wildcard osc/*.cpp) ARCHFLAGS := else subprojects := ip ip/win32 osc sources := $(wildcard ip/*.cpp) $(wildcard ip/win32/*.cpp) $(wildcard osc/*.cpp) ARCHFLAGS := endif endif VPATH = $(subprojects) CXXFLAGS ?= -O3 -Wall -Wuninitialized $(ARCHFLAGS) CXXFLAGS += -Wno-parentheses -I. $(addprefix -I, $(subprojects)) objects := $(sources:.cpp=.o) ## TARGETS all: $(libname) $(libname): $(objects) rm -f $@ ar cq $@ $(objects) ranlib $@ depend : makedepend -fMakefile -w120 -Y -- $(CXXFLAGS) -- $(sources) clean : rm -f $(objects) rm -f $(libname) # DO NOT DELETE ip/IpEndpointName.o: ip/IpEndpointName.h ip/NetworkingUtils.h ip/posix/NetworkingUtils.o: ip/NetworkingUtils.h ip/posix/UdpSocket.o: ip/UdpSocket.h ip/NetworkingUtils.h ip/IpEndpointName.h ip/PacketListener.h ip/TimerListener.h osc/OscOutboundPacketStream.o: osc/OscOutboundPacketStream.h osc/OscTypes.h osc/OscException.h osc/OscHostEndianness.h osc/OscPrintReceivedElements.o: osc/OscPrintReceivedElements.h osc/OscReceivedElements.h osc/OscTypes.h osc/OscPrintReceivedElements.o: osc/OscException.h osc/OscReceivedElements.o: osc/OscReceivedElements.h osc/OscTypes.h osc/OscException.h osc/OscHostEndianness.h osc/OscTypes.o: osc/OscTypes.h faust-0.9.46/architecture/osclib/oscpack/README0000644000175000017500000000663711702130733021121 0ustar orlareyorlareyoscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/code/oscpack Copyright (c) 2004-2005 Ross Bencina A simple C++ library for packing and unpacking OSC packets. Oscpack is simply a set of C++ classes for packing and unpacking OSC packets. Oscpack includes a minimal set of UDP networking classes for windows and posix which are sufficient for writing many OSC applications and servers, but you are encouraged to use another networking framework if it better suits your needs. Oscpack is not an OSC application framework, it doesn't include infrastructure for constructing or routing OSC namespaces, just classes for easily constructing, sending, receiving and parsing OSC packets. The library should also be easy to use for other transport methods (eg serial). The key goals of the oscpack library are: - to be a simple and complete implementation of OSC - to be portable to a wide variety of platforms - to allow easy development of robust OSC applications (for example it should be impossible to crash a server by sending it malformed packets, and difficult to create malformed packets.) Here's a summary of the key files: osc/OscReceivedElements -- classes for parsing a packet osc/OscPrintRecievedElements -- iostream << operators for printing packet elements osc/OscOutboundPacket -- a class for packing messages into a packet osc/OscPacketListener -- base class for listening to OSC packets on a UdpSocket tests/OscUnitTests -- unit test program for the OSC modules tests/OscSendTests -- examples of how to send messages tests/OscReceiveTest -- example of how to receive the messages sent by OSCSendTests examples/OscDump -- a program that prints received OSC packets Building -------- In general the idea is that you will embed this source code in your projects as you see fit. The Makefile has an install rule for building a shared library and installing headers in usr/local. The Makefile works for Linux and MaxOS X except that if you are on a big endian machine such as PowerPC Macintosh you need to edit the line which sets the endianness to OSC_HOST_BIG_ENDIAN (see the makefile comment for details) or it won't work. If you want to build and install liboscpack as a library on OS X you also need to edit the $(LIBFILENAME) rule by commenting out the Linux case and uncommenting the OS X case since OS X uses different gcc flags for shared libraries. On Windows there is a batch file for doing a simple test build with MinGW gcc called make.MinGW32.bat. This will build the test executables and oscdump in ./bin and run the unit tests. -- If you fix anything or write a set of TCP send/recieve classes please consider sending me a patch. Thanks :) For more information about Open Sound Control, see: http://www.cnmat.berkeley.edu/OpenSoundControl/ Thanks to Till Bovermann for helping with POSIX networking code and Mac compatibility, and to Martin Kaltenbrunner and the rest of the reacTable team for giving me a reason to finish this library. Thanks to Merlijn Blaauw for reviewing the interfaces. Thanks to Xavier Oliver for additional help with Linux builds and POSIX implementation details. Portions developed at the Music Technology Group, Audiovisual Institute, University Pompeu Fabra, Barcelona, during my stay as a visiting researcher, November 2004 - September 2005. See the file LICENSE for information about distributing and using this code. faust-0.9.46/architecture/osclib/oscpack/CHANGES0000644000175000017500000000633011702130733021222 0ustar orlareyorlareySeptember 28, 2005 ------------------ Compared to the previous official snapshot (November 2004) the current version of oscpack includes a re-written set of network classes and some changes to the syntax of the networking code. It no longer uses threads, which means that you don't need to use sleep() if you are writing a simple single-threaded server, or you need to spawn your own threads in a more complex application. The list below summarises the changes if you are porting code from the previous release. - there are no longer any threads in oscpack. if you need to set up an asynchronous listener you can create your own thread and call Run on an instance of SocketReceiveMultiplexer or UdpListeningReceiveSocket (see ip/UdpSocket.h) yourself. - host byte order is now used for network (IP) addresses - functions which used to take two parameters now take an instance of IpEndpointName (see ip/IpEndpointName.h) this class has a number of convenient constructors for converting numbers and strings to internet addresses. For example there is one which takes a string and another that take the dotted address components as separate parameters. - The UdpTransmitPort class, formerly in UdpTransmitPort.h, is now called UdpTransmitSocket, which is simply a convenience class derived from UdpSocket (see ip/UdpSocket.h). Where you used to use the constructor UdpTransmitPort( address, port) now you can use UdpTransmitSocket( IpEndpointName( address, port ) ) or you can any of the other possible ctors to IpEndpointName () (see above). The Send() method is unchanged. - The packet listener base class is now located in ip/PacketListener.h instead of PacketListenerPort.h. The ProcessPacket method now has an additional parameter indicating the remote endpoint - The preferred way to set up listeners is with SocketReceiveMultiplexer (in ip/UdpSocket.h), this also allows attaching periodic timers. For simple applications which only listen to a single socket with no timers you can use UdpListeningReceiveSocket (also in UdpSocket.h) See osc/OscReceiveTest.cpp or osc/OscDump.cpp for examples of this. This is more or less equivalent to the UdpPacketListenerPort object in the old oscpack versions except that you need to explicitly call Run() before it will start receiving packets and it runs in the same thread, not a separate thread so Run() won't usually return. - Explicit calls to InitializeNetworking() and TerminateNetworking() are no longer required for simple applications (more complex windows applications should instantiate NetworkInitializer in main() or WinMain (see ip/NetworkingUtils.h/.cpp) - The OscPacketListener base class (OscPacketListener.h) was added to make traversing OSC packets easier, it handles bundle traversal automatically so you only need to process messages in your derived classes. - On Windows be sure to link with ws2_32.lib or you will see a linker error about WSAEventSelect not being found. Also you will need to link with winmm.lib for timeGetTime() faust-0.9.46/architecture/osclib/oscpack/cmake/0000755000175000017500000000000011702130733021305 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/oscpack/cmake/.gitignore0000644000175000017500000000020011702130733023265 0ustar orlareyorlareyCMakeCache.txt CMakeFiles/ CMakeScripts/ Debug/ Release/ build/ cmake_install.cmake oscpack.build/ oscpack.xcodeproj/ Makefile faust-0.9.46/architecture/osclib/oscpack/cmake/CMakeLists.txt0000644000175000017500000000517011702130733024050 0ustar orlareyorlarey# CMAKE oscpack project(oscpack) cmake_minimum_required(VERSION 2.6) if(WIN32) add_definitions(-DWINVER=0x0500) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) else(WIN32) add_definitions(-Wall -fPIC) endif(WIN32) if (${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL powerpc OR ${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL ppc) message(STATUS "OSC host is big endian") add_definitions(-DOSC_HOST_BIG_ENDIAN=1) elseif (${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL i386 OR ${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL x86 OR ${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL x86_64 OR ${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL i686) message(STATUS "OSC host is little endian") add_definitions(-DOSC_HOST_LITTLE_ENDIAN=1) else(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL powerpc) message(SEND_ERROR "${CMAKE_HOST_SYSTEM_PROCESSOR} unknown endianess") endif (${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL powerpc OR ${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL ppc) if(APPLE AND (${CMAKE_GENERATOR} STREQUAL Xcode) ) set (CMAKE_OSX_ARCHITECTURES "x86_64 i386") set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk) set(CMAKE_C++_FLAGS -mmacosx-version-min=10.4) endif(APPLE AND (${CMAKE_GENERATOR} STREQUAL Xcode) ) # SET MAIN DIRECTORY. set(OSCPACK ${CMAKE_CURRENT_SOURCE_DIR}/..) set(IP_PATH ${OSCPACK}/ip) set(IP_WIN32_PATH ${OSCPACK}/ip/win32) set(IP_POSIX_PATH ${OSCPACK}/ip/posix) set(SRC_PATH ${OSCPACK}/osc) set(EX_PATH ${OSCPACK}/examples) # SET INCLUDES include_directories( .. ) # SET SOURCES FILE(GLOB OSC_SRC "${SRC_PATH}/*.cpp") FILE(GLOB IP_SRC "${IP_PATH}/*.cpp") if (CMAKE_HOST_WIN32) FILE(GLOB IP_IMPL_SRC "${IP_WIN32_PATH}/*.cpp") else (CMAKE_HOST_WIN32) FILE(GLOB IP_IMPL_SRC "${IP_POSIX_PATH}/*.cpp") endif (CMAKE_HOST_WIN32) ADD_LIBRARY( oscpack STATIC ${OSC_SRC} ${IP_SRC} ${IP_IMPL_SRC} ) if (CMAKE_HOST_WIN32) TARGET_LINK_LIBRARIES( oscpack ws2_32 winmm) endif (CMAKE_HOST_WIN32) set_target_properties (oscpack PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${OSCPACK}/.. ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${OSCPACK}/..) if (${GENTOOLS}) message (STATUS "Generating tools. Use -DGENTOOLS=0 to change") ####################################### # set sample targets set (TOOLS examples/SimpleReceive examples/SimpleSend examples/OscDump tests/OscReceiveTest tests/OscSendTests tests/OscUnitTests ) foreach(tool ${TOOLS}) add_executable( ${tool} ${OSCPACK}/${tool}.cpp ) target_link_libraries( ${tool} oscpack) add_dependencies(${tool} oscpack) endforeach(tool) set_target_properties( examples/OscDump PROPERTIES CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk) else (${GENTOOLS}) message (STATUS "Don't generates tools. Use -DGENTOOLS=1 to change") endif (${GENTOOLS}) faust-0.9.46/architecture/osclib/oscpack/tests/0000755000175000017500000000000011702130733021367 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/oscpack/tests/OscReceiveTest.cpp0000644000175000017500000002275511702130733024775 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "OscReceiveTest.h" #include #include #include #include "osc/OscReceivedElements.h" #include "ip/UdpSocket.h" #include "osc/OscPacketListener.h" namespace osc{ class OscReceiveTestPacketListener : public OscPacketListener{ protected: void ProcessMessage( const osc::ReceivedMessage& m, const IpEndpointName& remoteEndpoint ) { // a more complex scheme involving std::map or some other method of // processing address patterns could be used here // (see MessageMappingOscPacketListener.h for example). however, the main // purpose of this example is to illustrate and test different argument // parsing methods try { // argument stream, and argument iterator, used in different // examples below. ReceivedMessageArgumentStream args = m.ArgumentStream(); ReceivedMessage::const_iterator arg = m.ArgumentsBegin(); if( strcmp( m.AddressPattern(), "/test1" ) == 0 ){ // example #1: // parse an expected format using the argument stream interface: bool a1; osc::int32 a2; float a3; const char *a4; args >> a1 >> a2 >> a3 >> a4 >> osc::EndMessage; std::cout << "received '/test1' message with arguments: " << a1 << " " << a2 << " " << a3 << " " << a4 << "\n"; }else if( strcmp( m.AddressPattern(), "/test2" ) == 0 ){ // example #2: // parse an expected format using the argument iterator interface // this is a more complicated example of doing the same thing // as above. bool a1 = (arg++)->AsBool(); int a2 = (arg++)->AsInt32(); float a3 = (arg++)->AsFloat(); const char *a4 = (arg++)->AsString(); if( arg != m.ArgumentsEnd() ) throw ExcessArgumentException(); std::cout << "received '/test2' message with arguments: " << a1 << " " << a2 << " " << a3 << " " << a4 << "\n"; }else if( strcmp( m.AddressPattern(), "/test3" ) == 0 ){ // example #3: // parse a variable argument format using the argument iterator // interface. this is where it is necessary to use // argument iterators instead of streams. // When messages may contain arguments of varying type, you can // use the argument iterator interface to query the types at // runtime. this is more flexible that the argument stream // interface, which requires each argument to have a fixed type if( arg->IsBool() ){ bool a = (arg++)->AsBoolUnchecked(); std::cout << "received '/test3' message with bool argument: " << a << "\n"; }else if( arg->IsInt32() ){ int a = (arg++)->AsInt32Unchecked(); std::cout << "received '/test3' message with int32 argument: " << a << "\n"; }else if( arg->IsFloat() ){ float a = (arg++)->AsFloatUnchecked(); std::cout << "received '/test3' message with float argument: " << a << "\n"; }else if( arg->IsString() ){ const char *a = (arg++)->AsStringUnchecked(); std::cout << "received '/test3' message with string argument: '" << a << "'\n"; }else{ std::cout << "received '/test3' message with unexpected argument type\n"; } if( arg != m.ArgumentsEnd() ) throw ExcessArgumentException(); }else if( strcmp( m.AddressPattern(), "/no_arguments" ) == 0 ){ args >> osc::EndMessage; std::cout << "received '/no_arguments' message\n"; }else if( strcmp( m.AddressPattern(), "/a_bool" ) == 0 ){ bool a; args >> a >> osc::EndMessage; std::cout << "received '/a_bool' message: " << a << "\n"; }else if( strcmp( m.AddressPattern(), "/nil" ) == 0 ){ std::cout << "received '/nil' message\n"; }else if( strcmp( m.AddressPattern(), "/inf" ) == 0 ){ std::cout << "received '/inf' message\n"; }else if( strcmp( m.AddressPattern(), "/an_int" ) == 0 ){ osc::int32 a; args >> a >> osc::EndMessage; std::cout << "received '/an_int' message: " << a << "\n"; }else if( strcmp( m.AddressPattern(), "/a_float" ) == 0 ){ float a; args >> a >> osc::EndMessage; std::cout << "received '/a_float' message: " << a << "\n"; }else if( strcmp( m.AddressPattern(), "/a_char" ) == 0 ){ char a; args >> a >> osc::EndMessage; char s[2] = {0}; s[0] = a; std::cout << "received '/a_char' message: '" << s << "'\n"; }else if( strcmp( m.AddressPattern(), "/an_rgba_color" ) == 0 ){ osc::RgbaColor a; args >> a >> osc::EndMessage; std::cout << "received '/an_rgba_color' message: " << a.value << "\n"; }else if( strcmp( m.AddressPattern(), "/a_midi_message" ) == 0 ){ osc::MidiMessage a; args >> a >> osc::EndMessage; std::cout << "received '/a_midi_message' message: " << a.value << "\n"; }else if( strcmp( m.AddressPattern(), "/an_int64" ) == 0 ){ osc::int64 a; args >> a >> osc::EndMessage; std::cout << "received '/an_int64' message: " << a << "\n"; }else if( strcmp( m.AddressPattern(), "/a_time_tag" ) == 0 ){ osc::TimeTag a; args >> a >> osc::EndMessage; std::cout << "received '/a_time_tag' message: " << a.value << "\n"; }else if( strcmp( m.AddressPattern(), "/a_double" ) == 0 ){ double a; args >> a >> osc::EndMessage; std::cout << "received '/a_double' message: " << a << "\n"; }else if( strcmp( m.AddressPattern(), "/a_string" ) == 0 ){ const char *a; args >> a >> osc::EndMessage; std::cout << "received '/a_string' message: '" << a << "'\n"; }else if( strcmp( m.AddressPattern(), "/a_symbol" ) == 0 ){ osc::Symbol a; args >> a >> osc::EndMessage; std::cout << "received '/a_symbol' message: '" << a.value << "'\n"; }else if( strcmp( m.AddressPattern(), "/a_blob" ) == 0 ){ osc::Blob a; args >> a >> osc::EndMessage; std::cout << "received '/a_blob' message\n"; }else{ std::cout << "unrecognised address pattern: " << m.AddressPattern() << "\n"; } }catch( Exception& e ){ std::cout << "error while parsing message: " << m.AddressPattern() << ": " << e.what() << "\n"; } } }; void RunReceiveTest( int port ) { osc::OscReceiveTestPacketListener listener; UdpListeningReceiveSocket s( IpEndpointName( IpEndpointName::ANY_ADDRESS, port ), &listener ); std::cout << "listening for input on port " << port << "...\n"; std::cout << "press ctrl-c to end\n"; s.RunUntilSigInt(); std::cout << "finishing.\n"; } } // namespace osc #ifndef NO_OSC_TEST_MAIN int main(int argc, char* argv[]) { if( argc >= 2 && strcmp( argv[1], "-h" ) == 0 ){ std::cout << "usage: OscReceiveTest [port]\n"; return 0; } int port = 7000; if( argc >= 2 ) port = atoi( argv[1] ); osc::RunReceiveTest( port ); return 0; } #endif /* NO_OSC_TEST_MAIN */ faust-0.9.46/architecture/osclib/oscpack/tests/OscSendTests.cpp0000644000175000017500000001466011702130733024463 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "OscSendTests.h" #include #include #include #include "osc/OscOutboundPacketStream.h" #include "ip/UdpSocket.h" #include "ip/IpEndpointName.h" #define IP_MTU_SIZE 1536 namespace osc{ void RunSendTests( const IpEndpointName& host ) { char buffer[IP_MTU_SIZE]; osc::OutboundPacketStream p( buffer, IP_MTU_SIZE ); UdpTransmitSocket socket( host ); p.Clear(); p << osc::BeginMessage( "/test1" ) << true << 23 << (float)3.1415 << "hello" << osc::EndMessage; socket.Send( p.Data(), p.Size() ); // test1 message with too few arguments p.Clear(); p << osc::BeginMessage( "/test1" ) << true << osc::EndMessage; socket.Send( p.Data(), p.Size() ); // test1 message with too many arguments p.Clear(); p << osc::BeginMessage( "/test1" ) << true << 23 << (float)3.1415 << "hello" << 42 << osc::EndMessage; socket.Send( p.Data(), p.Size() ); // test1 message with wrong argument type p.Clear(); p << osc::BeginMessage( "/test1" ) << true << 1.0 << (float)3.1415 << "hello" << osc::EndMessage; socket.Send( p.Data(), p.Size() ); p.Clear(); p << osc::BeginMessage( "/test2" ) << true << 23 << (float)3.1415 << "hello" << osc::EndMessage; socket.Send( p.Data(), p.Size() ); // send four /test3 messages, each with a different type of argument p.Clear(); p << osc::BeginMessage( "/test3" ) << true << osc::EndMessage; socket.Send( p.Data(), p.Size() ); p.Clear(); p << osc::BeginMessage( "/test3" ) << 23 << osc::EndMessage; socket.Send( p.Data(), p.Size() ); p.Clear(); p << osc::BeginMessage( "/test3" ) << (float)3.1415 << osc::EndMessage; socket.Send( p.Data(), p.Size() ); p.Clear(); p << osc::BeginMessage( "/test3" ) << "hello" << osc::EndMessage; socket.Send( p.Data(), p.Size() ); // send a bundle p.Clear(); p << osc::BeginBundle(); p << osc::BeginMessage( "/no_arguments" ) << osc::EndMessage; p << osc::BeginMessage( "/a_bool" ) << true << osc::EndMessage; p << osc::BeginMessage( "/a_bool" ) << false << osc::EndMessage; p << osc::BeginMessage( "/a_bool" ) << (bool)1234 << osc::EndMessage; p << osc::BeginMessage( "/nil" ) << osc::Nil << osc::EndMessage; p << osc::BeginMessage( "/inf" ) << osc::Infinitum << osc::EndMessage; p << osc::BeginMessage( "/an_int" ) << 1234 << osc::EndMessage; p << osc::BeginMessage( "/a_float" ) << 3.1415926f << osc::EndMessage; p << osc::BeginMessage( "/a_char" ) << 'c' << osc::EndMessage; p << osc::BeginMessage( "/an_rgba_color" ) << osc::RgbaColor(0x22334455) << osc::EndMessage; p << osc::BeginMessage( "/a_midi_message" ) << MidiMessage(0x7F) << osc::EndMessage; p << osc::BeginMessage( "/an_int64" ) << (int64)(0xFFFFFFF) << osc::EndMessage; p << osc::BeginMessage( "/a_time_tag" ) << osc::TimeTag(0xFFFFFFFUL) << osc::EndMessage; p << osc::BeginMessage( "/a_double" ) << (double)3.1415926 << osc::EndMessage; p << osc::BeginMessage( "/a_string" ) << "hello world" << osc::EndMessage; p << osc::BeginMessage( "/a_symbol" ) << osc::Symbol("foobar") << osc::EndMessage; // blob { char blobData[] = "abcd"; p << osc::BeginMessage( "/a_blob" ) << osc::Blob( blobData, 4 ) << osc::EndMessage; } p << osc::EndBundle; socket.Send( p.Data(), p.Size() ); // nested bundles, and multiple messages in bundles... p.Clear(); p << osc::BeginBundle( 1234 ) << osc::BeginMessage( "/an_int" ) << 1 << osc::EndMessage << osc::BeginMessage( "/an_int" ) << 2 << osc::EndMessage << osc::BeginMessage( "/an_int" ) << 3 << osc::EndMessage << osc::BeginMessage( "/an_int" ) << 4 << osc::EndMessage << osc::BeginBundle( 12345 ) << osc::BeginMessage( "/an_int" ) << 5 << osc::EndMessage << osc::BeginMessage( "/an_int" ) << 6 << osc::EndMessage << osc::EndBundle << osc::EndBundle; socket.Send( p.Data(), p.Size() ); } } // namespace osc #ifndef NO_OSC_TEST_MAIN int main(int argc, char* argv[]) { if( argc >= 2 && strcmp( argv[1], "-h" ) == 0 ){ std::cout << "usage: OscSendTests [hostname [port]]\n"; return 0; } char *hostName = "localhost"; int port = 7000; if( argc >= 2 ) hostName = argv[1]; if( argc >= 3 ) port = atoi( argv[2] ); IpEndpointName host( hostName, port ); char hostIpAddress[ IpEndpointName::ADDRESS_STRING_LENGTH ]; host.AddressAsString( hostIpAddress ); std::cout << "sending test messages to " << hostName << " (" << hostIpAddress << ") on port " << port << "...\n"; osc::RunSendTests( host ); } #endif /* NO_OSC_TEST_MAIN */ faust-0.9.46/architecture/osclib/oscpack/tests/OscReceiveTest.h0000644000175000017500000000305311702130733024430 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_OSCRECEIVETEST_H #define INCLUDED_OSCRECEIVETEST_H namespace osc{ void RunReceiveTest( int port ); } // namespace osc #endif /* INCLUDED_OSCSENDTESTS_H */ faust-0.9.46/architecture/osclib/oscpack/tests/OscUnitTests.h0000644000175000017500000000303211702130733024145 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_OSCUNITTESTS_H #define INCLUDED_OSCUNITTESTS_H namespace osc{ void RunUnitTests(); } // namespace osc #endif /* INCLUDED_OSCUNITTESTS_H */ faust-0.9.46/architecture/osclib/oscpack/tests/OscUnitTests.cpp0000644000175000017500000003261711702130733024513 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "OscUnitTests.h" #include #include #include #include "osc/OscReceivedElements.h" #include "osc/OscPrintReceivedElements.h" #include "osc/OscOutboundPacketStream.h" namespace osc{ static int passCount_=0, failCount_=0; void PrintTestSummary() { std::cout << (passCount_+failCount_) << " tests run, " << passCount_ << " passed, " << failCount_ << " failed.\n"; } void pass_equality( const char *slhs, const char *srhs, const char *file, int line ) { ++passCount_; std::cout << file << "(" << line << "): PASSED : " << slhs << " == " << srhs << "\n"; } void fail_equality( const char *slhs, const char *srhs, const char *file, int line ) { ++failCount_; std::cout << file << "(" << line << "): FAILED : " << slhs << " != " << srhs << "\n"; } template void assertEqual_( const T& lhs, const T& rhs, const char *slhs, const char *srhs, const char *file, int line ) { if( lhs == rhs ) pass_equality( slhs, srhs, file, line ); else fail_equality( slhs, srhs, file, line ); } template void assertEqual_( const T* lhs, const T* rhs, const char *slhs, const char *srhs, const char *file, int line ) { if( lhs == rhs ) pass_equality( slhs, srhs, file, line ); else fail_equality( slhs, srhs, file, line ); } template <> void assertEqual_( const char* lhs, const char* rhs, const char *slhs, const char *srhs, const char *file, int line ) { if( strcmp( lhs, rhs ) == 0 ) pass_equality( slhs, srhs, file, line ); else fail_equality( slhs, srhs, file, line ); } #define assertEqual( a, b ) assertEqual_( (a), (b), #a, #b, __FILE__, __LINE__ ) //--------------------------------------------------------------------------- char * AllocateAligned4( unsigned long size ) { char *s = new char[ size + 4 ]; //allocate on stack to get 4 byte alignment return (char*)((long)(s-1) & (~0x03L)) + 4; } // allocate a 4 byte aligned copy of s char * NewMessageBuffer( const char *s, unsigned long length ) { char *p = AllocateAligned4( length ); memcpy( p, s, length ); return p; } void test1() { const char s[] = "/test\0\0\0,fiT\0\0\0\0\0\0\0\0\0\0\0A"; char *buffer = NewMessageBuffer( s, sizeof(s)-1 ); // test argument iterator interface bool unexpectedExceptionCaught = false; try{ ReceivedMessage m( ReceivedPacket(buffer, sizeof(s)-1) ); assertEqual( strcmp( m.AddressPattern(), "/test" ), 0 ); assertEqual( strcmp( m.TypeTags(), "fiT" ), 0 ); ReceivedMessage::const_iterator i = m.ArgumentsBegin(); ++i; ++i; ++i; assertEqual( i, m.ArgumentsEnd() ); i = m.ArgumentsBegin(); float f = (i++)->AsFloat(); (void)f; int n = (i++)->AsInt32(); (void)n; bool b = (i++)->AsBool(); (void)b; i = m.ArgumentsBegin(); bool exceptionThrown = false; try{ int n = (i++)->AsInt32(); (void)n; }catch( Exception& ){ exceptionThrown = true; } assertEqual( exceptionThrown, true ); }catch( Exception& e ){ std::cout << "unexpected exception: " << e.what() << "\n"; unexpectedExceptionCaught = true; } assertEqual( unexpectedExceptionCaught, false ); // test argument stream interface unexpectedExceptionCaught = false; try{ ReceivedMessage m( ReceivedPacket(buffer, sizeof(s)-1) ); ReceivedMessageArgumentStream args = m.ArgumentStream(); assertEqual( args.Eos(), false ); float f; long n; bool b; args >> f >> n >> b; (void) f; (void) n; (void) b; assertEqual( args.Eos(), true ); }catch( Exception& e ){ std::cout << "unexpected exception: " << e.what() << "\n"; unexpectedExceptionCaught = true; } assertEqual( unexpectedExceptionCaught, false ); } //--------------------------------------------------------------------------- #define TEST2_PRINT( ss )\ {\ const char s[] = ss;\ ReceivedPacket p( NewMessageBuffer( s, sizeof(s)-1 ), sizeof(s)-1 ); \ ReceivedMessage m( p );\ std::cout << m << "\n";\ } void test2() { bool unexpectedExceptionCaught = false; try{ // 012301230 1 2 3 TEST2_PRINT( "/no_args\0\0\0\0" ); // 012301230 1 2 3 01 2 3 TEST2_PRINT( "/no_args\0\0\0\0,\0\0\0" ); // 01230123 012 3 0 1 2 3 TEST2_PRINT( "/an_int\0,i\0\0\0\0\0A" ); // 012301230 1 2 3 012 3 0 1 2 3 TEST2_PRINT( "/a_float\0\0\0\0,f\0\0\0\0\0\0" ); // 0123012301 2 3 012 3 012301230123 TEST2_PRINT( "/a_string\0\0\0,s\0\0hello world\0" ); // 01230123 012 3 0 1 2 3 0 1 2 3 TEST2_PRINT( "/a_blob\0,b\0\0\0\0\0\x4\x0\x1\x2\x3" ); // 0123012301 2 3 012 3 0 1 2 3 0 1 2 3 TEST2_PRINT( "/an_int64\0\0\0,h\0\0\0\0\0\0\0\0\0\x1" ); // 01230123012 3 012 3 0 1 2 3 0 1 2 3 TEST2_PRINT( "/a_timetag\0\0,t\0\0\0\0\0\0\0\0\0\x1" ); // 0123012301 2 3 012 3 0 1 2 3 0 1 2 3 TEST2_PRINT( "/a_double\0\0\0,d\0\0\0\0\0\0\0\0\0\0" ); // 0123012301 2 3 012 3 012301230123 TEST2_PRINT( "/a_symbol\0\0\0,S\0\0hello world\0" ); // 01230123 012 3 0 1 2 3 TEST2_PRINT( "/a_char\0,c\0\0\0\0\0A" ); // 012301230 1 2 3 012 3 0 1 2 3 TEST2_PRINT( "/a_color\0\0\0\0,r\0\0\0\0\0\0" ); // 012301230123012 3 012 3 0 1 2 3 TEST2_PRINT( "/a_midimessage\0\0,m\0\0\0\0\0\0" ); // 01230123 012 3 TEST2_PRINT( "/a_bool\0,T\0\0" ); // 01230123 012 3 TEST2_PRINT( "/a_bool\0,F\0\0" ); // 01230 1 2 3 012 3 TEST2_PRINT( "/Nil\0\0\0\0,N\0\0" ); // 01230 1 2 3 012 3 TEST2_PRINT( "/Inf\0\0\0\0,I\0\0" ); TEST2_PRINT( "/test\0\0\0,fiT\0\0\0\0\0\0\0\0\0\0\0A" ); bool exceptionThrown = false; try{ TEST2_PRINT( "/a_char\0,x\0\0\0\0\0A" ); // unknown type tag 'x' }catch( Exception& ){ exceptionThrown = true; } assertEqual( exceptionThrown, true ); }catch( Exception& e ){ std::cout << "unexpected exception: " << e.what() << "\n"; unexpectedExceptionCaught = true; } assertEqual( unexpectedExceptionCaught, false ); } //----------------------------------------------------------------------- // pack a message and then unpack it and check that the result is the same // also print each message // repeat the process inside a bundle #define TEST_PACK_UNPACK0( addressPattern, argument, value, recieveGetter ) \ { \ memset( buffer, 0x74, bufferSize ); \ OutboundPacketStream ps( buffer, bufferSize ); \ ps << BeginMessage( addressPattern ) \ << argument \ << EndMessage;\ assertEqual( ps.IsReady(), true );\ ReceivedMessage m( ReceivedPacket(ps.Data(), ps.Size()) );\ std::cout << m << "\n";\ assertEqual( m.ArgumentsBegin()-> recieveGetter () , value );\ } \ { \ memset( buffer, 0x74, bufferSize ); \ OutboundPacketStream ps( buffer, bufferSize ); \ ps << BeginBundle( 1234 ) \ << BeginMessage( addressPattern ) \ << argument \ << EndMessage \ << EndBundle;\ assertEqual( ps.IsReady(), true );\ ReceivedBundle b( ReceivedPacket(ps.Data(), ps.Size()) );\ ReceivedMessage m( *b.ElementsBegin() );\ std::cout << m << "\n";\ assertEqual( m.ArgumentsBegin()-> recieveGetter () , value );\ } #define TEST_PACK_UNPACK( addressPattern, argument, type, recieveGetter ) \ { \ memset( buffer, 0x74, bufferSize ); \ OutboundPacketStream ps( buffer, bufferSize ); \ ps << BeginMessage( addressPattern ) \ << argument \ << EndMessage;\ assertEqual( ps.IsReady(), true );\ ReceivedMessage m( ReceivedPacket(ps.Data(), ps.Size()) );\ std::cout << m << "\n";\ assertEqual( m.ArgumentsBegin()-> recieveGetter () , ( type ) argument );\ } \ { \ memset( buffer, 0x74, bufferSize ); \ OutboundPacketStream ps( buffer, bufferSize ); \ ps << BeginBundle( 1234 ) \ << BeginMessage( addressPattern ) \ << argument \ << EndMessage \ << EndBundle;\ assertEqual( ps.IsReady(), true );\ ReceivedBundle b( ReceivedPacket(ps.Data(), ps.Size()) );\ ReceivedMessage m( *b.ElementsBegin() );\ std::cout << m << "\n";\ assertEqual( m.ArgumentsBegin()-> recieveGetter () , ( type ) argument );\ } void test3() { int bufferSize = 1000; char *buffer = AllocateAligned4( bufferSize ); // single message tests // empty message { memset( buffer, 0x74, bufferSize ); OutboundPacketStream ps( buffer, bufferSize ); ps << BeginMessage( "/no_arguments" ) << EndMessage; assertEqual( ps.IsReady(), true ); ReceivedMessage m( ReceivedPacket(ps.Data(), ps.Size()) ); std::cout << m << "\n";\ } TEST_PACK_UNPACK( "/a_bool", true, bool, AsBool ); TEST_PACK_UNPACK( "/a_bool", false, bool, AsBool ); TEST_PACK_UNPACK( "/a_bool", (bool)1, bool, AsBool ); TEST_PACK_UNPACK0( "/nil", Nil, true, IsNil ); TEST_PACK_UNPACK0( "/inf", Infinitum, true, IsInfinitum ); TEST_PACK_UNPACK( "/an_int", (int32)1234, int32, AsInt32 ); TEST_PACK_UNPACK( "/a_float", 3.1415926f, float, AsFloat ); TEST_PACK_UNPACK( "/a_char", 'c', char, AsChar ); TEST_PACK_UNPACK( "/an_rgba_color", RgbaColor(0x22334455), uint32, AsRgbaColor ); TEST_PACK_UNPACK( "/a_midi_message", MidiMessage(0x7F), uint32, AsMidiMessage ); TEST_PACK_UNPACK( "/an_int64", (int64)(0xFFFFFFFF), int64, AsInt64 ); TEST_PACK_UNPACK( "/a_time_tag", TimeTag(0xFFFFFFFF), uint64, AsTimeTag ); TEST_PACK_UNPACK( "/a_double", (double)3.1415926, double, AsDouble ); // blob { char blobData[] = "abcd"; memset( buffer, 0x74, bufferSize ); OutboundPacketStream ps( buffer, bufferSize ); ps << BeginMessage( "/a_blob" ) << Blob( blobData, 4 ) << EndMessage; assertEqual( ps.IsReady(), true ); ReceivedMessage m( ReceivedPacket(ps.Data(), ps.Size()) ); std::cout << m << "\n"; const void *value; unsigned long size; m.ArgumentsBegin()->AsBlob( value, size ); assertEqual( size, (unsigned long)4 ); assertEqual( (memcmp( value, blobData, 4 ) == 0), true ); } TEST_PACK_UNPACK( "/a_string", "hello world", const char*, AsString ); TEST_PACK_UNPACK( "/a_symbol", Symbol("foobar"), const char*, AsSymbol ); // nested bundles, and multiple messages in bundles... { memset( buffer, 0x74, bufferSize ); OutboundPacketStream ps( buffer, bufferSize ); ps << BeginBundle() << BeginMessage( "/message_one" ) << 1 << 2 << 3 << 4 << EndMessage << BeginMessage( "/message_two" ) << 1 << 2 << 3 << 4 << EndMessage << BeginMessage( "/message_three" ) << 1 << 2 << 3 << 4 << EndMessage << BeginMessage( "/message_four" ) << 1 << 2 << 3 << 4 << EndMessage << EndBundle; assertEqual( ps.IsReady(), true ); ReceivedBundle b( ReceivedPacket(ps.Data(), ps.Size()) ); std::cout << b << "\n"; } } void RunUnitTests() { test1(); test2(); test3(); PrintTestSummary(); } } // namespace osc #ifndef NO_OSC_TEST_MAIN int main(int argc, char* argv[]) { (void)argc; (void)argv; osc::RunUnitTests(); } #endif faust-0.9.46/architecture/osclib/oscpack/tests/OscSendTests.h0000644000175000017500000000307311702130733024124 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_OSCSENDTESTS_H #define INCLUDED_OSCSENDTESTS_H namespace osc{ void RunSendTests( unsigned long address, int port ); } // namespace osc #endif /* INCLUDED_OSCSENDTESTS_H */ faust-0.9.46/architecture/osclib/oscpack/LICENSE0000644000175000017500000000253711702130733021241 0ustar orlareyorlareyoscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/code/oscpack Copyright (c) 2004 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. faust-0.9.46/architecture/osclib/oscpack/osc/0000755000175000017500000000000011702130733021011 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/oscpack/osc/OscReceivedElements.h0000644000175000017500000003137511702130733025063 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_OSCRECEIVEDELEMENTS_H #define INCLUDED_OSCRECEIVEDELEMENTS_H #include "OscTypes.h" #include "OscException.h" namespace osc{ class MalformedMessageException : public Exception{ public: MalformedMessageException( const char *w="malformed message" ) : Exception( w ) {} }; class MalformedBundleException : public Exception{ public: MalformedBundleException( const char *w="malformed bundle" ) : Exception( w ) {} }; class WrongArgumentTypeException : public Exception{ public: WrongArgumentTypeException( const char *w="wrong argument type" ) : Exception( w ) {} }; class MissingArgumentException : public Exception{ public: MissingArgumentException( const char *w="missing argument" ) : Exception( w ) {} }; class ExcessArgumentException : public Exception{ public: ExcessArgumentException( const char *w="too many arguments" ) : Exception( w ) {} }; class ReceivedPacket{ public: ReceivedPacket( const char *contents, int32 size ) : contents_( contents ) , size_( size ) {} bool IsMessage() const { return !IsBundle(); } bool IsBundle() const; int32 Size() const { return size_; } const char *Contents() const { return contents_; } private: const char *contents_; int32 size_; }; class ReceivedBundleElement{ public: ReceivedBundleElement( const char *size ) : size_( size ) {} friend class ReceivedBundleElementIterator; bool IsMessage() const { return !IsBundle(); } bool IsBundle() const; int32 Size() const; const char *Contents() const { return size_ + 4; } private: const char *size_; }; class ReceivedBundleElementIterator{ public: ReceivedBundleElementIterator( const char *sizePtr ) : value_( sizePtr ) {} ReceivedBundleElementIterator operator++() { Advance(); return *this; } ReceivedBundleElementIterator operator++(int) { ReceivedBundleElementIterator old( *this ); Advance(); return old; } const ReceivedBundleElement& operator*() const { return value_; } const ReceivedBundleElement* operator->() const { return &value_; } friend bool operator==(const ReceivedBundleElementIterator& lhs, const ReceivedBundleElementIterator& rhs ); private: ReceivedBundleElement value_; void Advance() { value_.size_ = value_.Contents() + value_.Size(); } bool IsEqualTo( const ReceivedBundleElementIterator& rhs ) const { return value_.size_ == rhs.value_.size_; } }; inline bool operator==(const ReceivedBundleElementIterator& lhs, const ReceivedBundleElementIterator& rhs ) { return lhs.IsEqualTo( rhs ); } inline bool operator!=(const ReceivedBundleElementIterator& lhs, const ReceivedBundleElementIterator& rhs ) { return !( lhs == rhs ); } class ReceivedMessageArgument{ public: ReceivedMessageArgument( const char *typeTag, const char *argument ) : typeTag_( typeTag ) , argument_( argument ) {} friend class ReceivedMessageArgumentIterator; const char TypeTag() const { return *typeTag_; } // the unchecked methods below don't check whether the argument actually // is of the specified type. they should only be used if you've already // checked the type tag or the associated IsType() method. bool IsBool() const { return *typeTag_ == TRUE_TYPE_TAG || *typeTag_ == FALSE_TYPE_TAG; } bool AsBool() const; bool AsBoolUnchecked() const; bool IsNil() const { return *typeTag_ == NIL_TYPE_TAG; } bool IsInfinitum() const { return *typeTag_ == INFINITUM_TYPE_TAG; } bool IsInt32() const { return *typeTag_ == INT32_TYPE_TAG; } int32 AsInt32() const; int32 AsInt32Unchecked() const; bool IsFloat() const { return *typeTag_ == FLOAT_TYPE_TAG; } float AsFloat() const; float AsFloatUnchecked() const; bool IsChar() const { return *typeTag_ == CHAR_TYPE_TAG; } char AsChar() const; char AsCharUnchecked() const; bool IsRgbaColor() const { return *typeTag_ == RGBA_COLOR_TYPE_TAG; } uint32 AsRgbaColor() const; uint32 AsRgbaColorUnchecked() const; bool IsMidiMessage() const { return *typeTag_ == MIDI_MESSAGE_TYPE_TAG; } uint32 AsMidiMessage() const; uint32 AsMidiMessageUnchecked() const; bool IsInt64() const { return *typeTag_ == INT64_TYPE_TAG; } int64 AsInt64() const; int64 AsInt64Unchecked() const; bool IsTimeTag() const { return *typeTag_ == TIME_TAG_TYPE_TAG; } uint64 AsTimeTag() const; uint64 AsTimeTagUnchecked() const; bool IsDouble() const { return *typeTag_ == DOUBLE_TYPE_TAG; } double AsDouble() const; double AsDoubleUnchecked() const; bool IsString() const { return *typeTag_ == STRING_TYPE_TAG; } const char* AsString() const; const char* AsStringUnchecked() const { return argument_; } bool IsSymbol() const { return *typeTag_ == SYMBOL_TYPE_TAG; } const char* AsSymbol() const; const char* AsSymbolUnchecked() const { return argument_; } bool IsBlob() const { return *typeTag_ == BLOB_TYPE_TAG; } void AsBlob( const void*& data, unsigned long& size ) const; void AsBlobUnchecked( const void*& data, unsigned long& size ) const; private: const char *typeTag_; const char *argument_; }; class ReceivedMessageArgumentIterator{ public: ReceivedMessageArgumentIterator( const char *typeTags, const char *arguments ) : value_( typeTags, arguments ) {} ReceivedMessageArgumentIterator operator++() { Advance(); return *this; } ReceivedMessageArgumentIterator operator++(int) { ReceivedMessageArgumentIterator old( *this ); Advance(); return old; } const ReceivedMessageArgument& operator*() const { return value_; } const ReceivedMessageArgument* operator->() const { return &value_; } friend bool operator==(const ReceivedMessageArgumentIterator& lhs, const ReceivedMessageArgumentIterator& rhs ); private: ReceivedMessageArgument value_; void Advance(); bool IsEqualTo( const ReceivedMessageArgumentIterator& rhs ) const { return value_.typeTag_ == rhs.value_.typeTag_; } }; inline bool operator==(const ReceivedMessageArgumentIterator& lhs, const ReceivedMessageArgumentIterator& rhs ) { return lhs.IsEqualTo( rhs ); } inline bool operator!=(const ReceivedMessageArgumentIterator& lhs, const ReceivedMessageArgumentIterator& rhs ) { return !( lhs == rhs ); } class ReceivedMessageArgumentStream{ friend class ReceivedMessage; ReceivedMessageArgumentStream( const ReceivedMessageArgumentIterator& begin, const ReceivedMessageArgumentIterator& end ) : p_( begin ) , end_( end ) {} ReceivedMessageArgumentIterator p_, end_; public: // end of stream bool Eos() const { return p_ == end_; } ReceivedMessageArgumentStream& operator>>( bool& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs = (*p_++).AsBool(); return *this; } // not sure if it would be useful to stream Nil and Infinitum // for now it's not possible ReceivedMessageArgumentStream& operator>>( int32& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs = (*p_++).AsInt32(); return *this; } ReceivedMessageArgumentStream& operator>>( float& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs = (*p_++).AsFloat(); return *this; } ReceivedMessageArgumentStream& operator>>( char& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs = (*p_++).AsChar(); return *this; } ReceivedMessageArgumentStream& operator>>( RgbaColor& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs.value = (*p_++).AsRgbaColor(); return *this; } ReceivedMessageArgumentStream& operator>>( MidiMessage& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs.value = (*p_++).AsMidiMessage(); return *this; } ReceivedMessageArgumentStream& operator>>( int64& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs = (*p_++).AsInt64(); return *this; } ReceivedMessageArgumentStream& operator>>( TimeTag& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs.value = (*p_++).AsTimeTag(); return *this; } ReceivedMessageArgumentStream& operator>>( double& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs = (*p_++).AsDouble(); return *this; } ReceivedMessageArgumentStream& operator>>( Blob& rhs ) { if( Eos() ) throw MissingArgumentException(); (*p_++).AsBlob( rhs.data, rhs.size ); return *this; } ReceivedMessageArgumentStream& operator>>( const char*& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs = (*p_++).AsString(); return *this; } ReceivedMessageArgumentStream& operator>>( Symbol& rhs ) { if( Eos() ) throw MissingArgumentException(); rhs.value = (*p_++).AsSymbol(); return *this; } ReceivedMessageArgumentStream& operator>>( MessageTerminator& ) { if( !Eos() ) throw ExcessArgumentException(); return *this; } }; class ReceivedMessage{ void Init( const char *bundle, unsigned long size ); public: explicit ReceivedMessage( const ReceivedPacket& packet ); explicit ReceivedMessage( const ReceivedBundleElement& bundleElement ); const char *AddressPattern() const { return addressPattern_; } // Support for non-standad SuperCollider integer address patterns: bool AddressPatternIsUInt32() const; uint32 AddressPatternAsUInt32() const; unsigned long ArgumentCount() const { return static_cast(typeTagsEnd_ - typeTagsBegin_); } const char *TypeTags() const { return typeTagsBegin_; } typedef ReceivedMessageArgumentIterator const_iterator; ReceivedMessageArgumentIterator ArgumentsBegin() const { return ReceivedMessageArgumentIterator( typeTagsBegin_, arguments_ ); } ReceivedMessageArgumentIterator ArgumentsEnd() const { return ReceivedMessageArgumentIterator( typeTagsEnd_, 0 ); } ReceivedMessageArgumentStream ArgumentStream() const { return ReceivedMessageArgumentStream( ArgumentsBegin(), ArgumentsEnd() ); } private: const char *addressPattern_; const char *typeTagsBegin_; const char *typeTagsEnd_; const char *arguments_; }; class ReceivedBundle{ void Init( const char *message, unsigned long size ); public: explicit ReceivedBundle( const ReceivedPacket& packet ); explicit ReceivedBundle( const ReceivedBundleElement& bundleElement ); uint64 TimeTag() const; unsigned long ElementCount() const { return elementCount_; } typedef ReceivedBundleElementIterator const_iterator; ReceivedBundleElementIterator ElementsBegin() const { return ReceivedBundleElementIterator( timeTag_ + 8 ); } ReceivedBundleElementIterator ElementsEnd() const { return ReceivedBundleElementIterator( end_ ); } private: const char *timeTag_; const char *end_; unsigned long elementCount_; }; } // namespace osc #endif /* INCLUDED_OSCRECEIVEDELEMENTS_H */ faust-0.9.46/architecture/osclib/oscpack/osc/OscPrintReceivedElements.h0000644000175000017500000000373611702130733026100 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_OSCPRINTRECEIVEDELEMENTS_H #define INCLUDED_OSCPRINTRECEIVEDELEMENTS_H #include #ifndef INCLUDED_OSCRECEIVEDELEMENTS_H #include "OscReceivedElements.h" #endif /* INCLUDED_OSCRECEIVEDELEMENTS_H */ namespace osc{ std::ostream& operator<<( std::ostream & os, const ReceivedPacket& p ); std::ostream& operator<<( std::ostream & os, const ReceivedMessageArgument& arg ); std::ostream& operator<<( std::ostream & os, const ReceivedMessage& m ); std::ostream& operator<<( std::ostream & os, const ReceivedBundle& b ); } // namespace osc #endif /* INCLUDED_OSCPRINTRECEIVEDELEMENTS_H */ faust-0.9.46/architecture/osclib/oscpack/osc/OscHostEndianness.h0000644000175000017500000000466511702130733024567 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef OSC_HOSTENDIANNESS_H #define OSC_HOSTENDIANNESS_H /* Make sure either OSC_HOST_LITTLE_ENDIAN or OSC_HOST_BIG_ENDIAN is defined If you know a way to enhance the detection below for Linux and/or MacOSX please let me know! I've tried a few things which don't work. */ #if defined(OSC_HOST_LITTLE_ENDIAN) || defined(OSC_HOST_BIG_ENDIAN) // you can define one of the above symbols from the command line // then you don't have to edit this file. #elif defined(__WIN32__) || defined(WIN32) // assume that __WIN32__ is only defined on little endian systems #define OSC_HOST_LITTLE_ENDIAN 1 #undef OSC_HOST_BIG_ENDIAN #elif defined(__LITTLE_ENDIAN__) || (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) #define OSC_HOST_LITTLE_ENDIAN 1 #undef OSC_HOST_BIG_ENDIAN #elif defined(__BIG_ENDIAN__) || (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) #define OSC_HOST_BIG_ENDIAN 1 #undef OSC_HOST_LITTLE_ENDIAN #else #error please edit OSCHostEndianness.h to configure endianness or use -DOSC_HOST_LITTLE_ENDIAN | -DOSC_HOST_BIG_ENDIAN #endif #endif /* OSC_HOSTENDIANNESS_H */ faust-0.9.46/architecture/osclib/oscpack/osc/OscException.h0000644000175000017500000000374011702130733023571 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_OSC_EXCEPTION_H #define INCLUDED_OSC_EXCEPTION_H #include namespace osc{ class Exception : public std::exception { const char *what_; public: Exception() throw() {} Exception( const Exception& src ) throw() : what_( src.what_ ) {} Exception( const char *w ) throw() : what_( w ) {} Exception& operator=( const Exception& src ) throw() { what_ = src.what_; return *this; } virtual ~Exception() throw() {} virtual const char* what() const throw() { return what_; } }; } // namespace osc #endif /* INCLUDED_OSC_EXCEPTION_H */ faust-0.9.46/architecture/osclib/oscpack/osc/OscOutboundPacketStream.h0000644000175000017500000001144411702130733025736 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_OSCOUTBOUNDPACKET_H #define INCLUDED_OSCOUTBOUNDPACKET_H #include "OscTypes.h" #include "OscException.h" namespace osc{ class OutOfBufferMemoryException : public Exception{ public: OutOfBufferMemoryException( const char *w="out of buffer memory" ) : Exception( w ) {} }; class BundleNotInProgressException : public Exception{ public: BundleNotInProgressException( const char *w="call to EndBundle when bundle is not in progress" ) : Exception( w ) {} }; class MessageInProgressException : public Exception{ public: MessageInProgressException( const char *w="opening or closing bundle or message while message is in progress" ) : Exception( w ) {} }; class MessageNotInProgressException : public Exception{ public: MessageNotInProgressException( const char *w="call to EndMessage when message is not in progress" ) : Exception( w ) {} }; class OutboundPacketStream{ public: OutboundPacketStream( char *buffer, unsigned long capacity ); ~OutboundPacketStream(); void Clear(); unsigned int Capacity() const; // invariant: size() is valid even while building a message. unsigned int Size() const; const char *Data() const; // indicates that all messages have been closed with a matching EndMessage // and all bundles have been closed with a matching EndBundle bool IsReady() const; bool IsMessageInProgress() const; bool IsBundleInProgress() const; OutboundPacketStream& operator<<( const BundleInitiator& rhs ); OutboundPacketStream& operator<<( const BundleTerminator& rhs ); OutboundPacketStream& operator<<( const BeginMessage& rhs ); OutboundPacketStream& operator<<( const MessageTerminator& rhs ); OutboundPacketStream& operator<<( bool rhs ); OutboundPacketStream& operator<<( const NilType& rhs ); OutboundPacketStream& operator<<( const InfinitumType& rhs ); OutboundPacketStream& operator<<( int32 rhs ); #ifndef x86_64 OutboundPacketStream& operator<<( int rhs ) { *this << (int32)rhs; return *this; } #endif OutboundPacketStream& operator<<( float rhs ); OutboundPacketStream& operator<<( char rhs ); OutboundPacketStream& operator<<( const RgbaColor& rhs ); OutboundPacketStream& operator<<( const MidiMessage& rhs ); OutboundPacketStream& operator<<( int64 rhs ); OutboundPacketStream& operator<<( const TimeTag& rhs ); OutboundPacketStream& operator<<( double rhs ); OutboundPacketStream& operator<<( const char* rhs ); OutboundPacketStream& operator<<( const Symbol& rhs ); OutboundPacketStream& operator<<( const Blob& rhs ); private: char *BeginElement( char *beginPtr ); void EndElement( char *endPtr ); bool ElementSizeSlotRequired() const; void CheckForAvailableBundleSpace(); void CheckForAvailableMessageSpace( const char *addressPattern ); void CheckForAvailableArgumentSpace( long argumentLength ); char *data_; char *end_; char *typeTagsCurrent_; // stored in reverse order char *messageCursor_; char *argumentCurrent_; // elementSizePtr_ has two special values: 0 indicates that a bundle // isn't open, and elementSizePtr_==data_ indicates that a bundle is // open but that it doesn't have a size slot (ie the outermost bundle) uint32 *elementSizePtr_; bool messageIsInProgress_; }; } // namespace osc #endif /* INCLUDED_OSC_OUTBOUND_PACKET_H */ faust-0.9.46/architecture/osclib/oscpack/osc/OscReceivedElements.cpp0000644000175000017500000004250411702130733025412 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "OscReceivedElements.h" #include #include "OscHostEndianness.h" namespace osc{ // return the first 4 byte boundary after the end of a str4 // be careful about calling this version if you don't know whether // the string is terminated correctly. static inline const char* FindStr4End( const char *p ) { if( p[0] == '\0' ) // special case for SuperCollider integer address pattern return p + 4; p += 3; while( *p ) p += 4; return p + 1; } // return the first 4 byte boundary after the end of a str4 // returns 0 if p == end or if the string is unterminated static inline const char* FindStr4End( const char *p, const char *end ) { if( p >= end ) return 0; if( p[0] == '\0' ) // special case for SuperCollider integer address pattern return p + 4; p += 3; end -= 1; while( p < end && *p ) p += 4; if( *p ) return 0; else return p + 1; } static inline unsigned long RoundUp4( unsigned long x ) { unsigned long remainder = x & 0x3UL; if( remainder ) return x + (4 - remainder); else return x; } static inline int32 ToInt32( const char *p ) { #ifdef OSC_HOST_LITTLE_ENDIAN union{ osc::int32 i; char c[4]; } u; u.c[0] = p[3]; u.c[1] = p[2]; u.c[2] = p[1]; u.c[3] = p[0]; return u.i; #else return *(int32*)p; #endif } static inline uint32 ToUInt32( const char *p ) { #ifdef OSC_HOST_LITTLE_ENDIAN union{ osc::uint32 i; char c[4]; } u; u.c[0] = p[3]; u.c[1] = p[2]; u.c[2] = p[1]; u.c[3] = p[0]; return u.i; #else return *(uint32*)p; #endif } int64 ToInt64( const char *p ) { #ifdef OSC_HOST_LITTLE_ENDIAN union{ osc::int64 i; char c[8]; } u; u.c[0] = p[7]; u.c[1] = p[6]; u.c[2] = p[5]; u.c[3] = p[4]; u.c[4] = p[3]; u.c[5] = p[2]; u.c[6] = p[1]; u.c[7] = p[0]; return u.i; #else return *(int64*)p; #endif } uint64 ToUInt64( const char *p ) { #ifdef OSC_HOST_LITTLE_ENDIAN union{ osc::uint64 i; char c[8]; } u; u.c[0] = p[7]; u.c[1] = p[6]; u.c[2] = p[5]; u.c[3] = p[4]; u.c[4] = p[3]; u.c[5] = p[2]; u.c[6] = p[1]; u.c[7] = p[0]; return u.i; #else return *(uint64*)p; #endif } //------------------------------------------------------------------------------ bool ReceivedPacket::IsBundle() const { return (Size() > 0 && Contents()[0] == '#'); } //------------------------------------------------------------------------------ bool ReceivedBundleElement::IsBundle() const { return (Size() > 0 && Contents()[0] == '#'); } int32 ReceivedBundleElement::Size() const { return ToUInt32( size_ ); } //------------------------------------------------------------------------------ bool ReceivedMessageArgument::AsBool() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == TRUE_TYPE_TAG ) return true; else if( *typeTag_ == FALSE_TYPE_TAG ) return false; else throw WrongArgumentTypeException(); } bool ReceivedMessageArgument::AsBoolUnchecked() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == TRUE_TYPE_TAG ) return true; else return false; } int32 ReceivedMessageArgument::AsInt32() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == INT32_TYPE_TAG ) return AsInt32Unchecked(); else throw WrongArgumentTypeException(); } int32 ReceivedMessageArgument::AsInt32Unchecked() const { #ifdef OSC_HOST_LITTLE_ENDIAN union{ osc::int32 i; char c[4]; } u; u.c[0] = argument_[3]; u.c[1] = argument_[2]; u.c[2] = argument_[1]; u.c[3] = argument_[0]; return u.i; #else return *(int32*)argument_; #endif } float ReceivedMessageArgument::AsFloat() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == FLOAT_TYPE_TAG ) return AsFloatUnchecked(); else throw WrongArgumentTypeException(); } float ReceivedMessageArgument::AsFloatUnchecked() const { #ifdef OSC_HOST_LITTLE_ENDIAN union{ float f; char c[4]; } u; u.c[0] = argument_[3]; u.c[1] = argument_[2]; u.c[2] = argument_[1]; u.c[3] = argument_[0]; return u.f; #else return *(float*)argument_; #endif } char ReceivedMessageArgument::AsChar() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == CHAR_TYPE_TAG ) return AsCharUnchecked(); else throw WrongArgumentTypeException(); } char ReceivedMessageArgument::AsCharUnchecked() const { return (char)ToInt32( argument_ ); } uint32 ReceivedMessageArgument::AsRgbaColor() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == RGBA_COLOR_TYPE_TAG ) return AsRgbaColorUnchecked(); else throw WrongArgumentTypeException(); } uint32 ReceivedMessageArgument::AsRgbaColorUnchecked() const { return ToUInt32( argument_ ); } uint32 ReceivedMessageArgument::AsMidiMessage() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == MIDI_MESSAGE_TYPE_TAG ) return AsMidiMessageUnchecked(); else throw WrongArgumentTypeException(); } uint32 ReceivedMessageArgument::AsMidiMessageUnchecked() const { return ToUInt32( argument_ ); } int64 ReceivedMessageArgument::AsInt64() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == INT64_TYPE_TAG ) return AsInt64Unchecked(); else throw WrongArgumentTypeException(); } int64 ReceivedMessageArgument::AsInt64Unchecked() const { return ToInt64( argument_ ); } uint64 ReceivedMessageArgument::AsTimeTag() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == TIME_TAG_TYPE_TAG ) return AsTimeTagUnchecked(); else throw WrongArgumentTypeException(); } uint64 ReceivedMessageArgument::AsTimeTagUnchecked() const { return ToUInt64( argument_ ); } double ReceivedMessageArgument::AsDouble() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == DOUBLE_TYPE_TAG ) return AsDoubleUnchecked(); else throw WrongArgumentTypeException(); } double ReceivedMessageArgument::AsDoubleUnchecked() const { #ifdef OSC_HOST_LITTLE_ENDIAN union{ double d; char c[8]; } u; u.c[0] = argument_[7]; u.c[1] = argument_[6]; u.c[2] = argument_[5]; u.c[3] = argument_[4]; u.c[4] = argument_[3]; u.c[5] = argument_[2]; u.c[6] = argument_[1]; u.c[7] = argument_[0]; return u.d; #else return *(double*)argument_; #endif } const char* ReceivedMessageArgument::AsString() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == STRING_TYPE_TAG ) return argument_; else throw WrongArgumentTypeException(); } const char* ReceivedMessageArgument::AsSymbol() const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == SYMBOL_TYPE_TAG ) return argument_; else throw WrongArgumentTypeException(); } void ReceivedMessageArgument::AsBlob( const void*& data, unsigned long& size ) const { if( !typeTag_ ) throw MissingArgumentException(); else if( *typeTag_ == BLOB_TYPE_TAG ) AsBlobUnchecked( data, size ); else throw WrongArgumentTypeException(); } void ReceivedMessageArgument::AsBlobUnchecked( const void*& data, unsigned long& size ) const { size = ToUInt32( argument_ ); data = (void*)(argument_+4); } //------------------------------------------------------------------------------ void ReceivedMessageArgumentIterator::Advance() { if( !value_.typeTag_ ) return; switch( *value_.typeTag_++ ){ case '\0': // don't advance past end --value_.typeTag_; break; case TRUE_TYPE_TAG: case FALSE_TYPE_TAG: case NIL_TYPE_TAG: case INFINITUM_TYPE_TAG: // zero length break; case INT32_TYPE_TAG: case FLOAT_TYPE_TAG: case CHAR_TYPE_TAG: case RGBA_COLOR_TYPE_TAG: case MIDI_MESSAGE_TYPE_TAG: value_.argument_ += 4; break; case INT64_TYPE_TAG: case TIME_TAG_TYPE_TAG: case DOUBLE_TYPE_TAG: value_.argument_ += 8; break; case STRING_TYPE_TAG: case SYMBOL_TYPE_TAG: // we use the unsafe function FindStr4End(char*) here because all of // the arguments have already been validated in // ReceivedMessage::Init() below. value_.argument_ = FindStr4End( value_.argument_ ); break; case BLOB_TYPE_TAG: { uint32 blobSize = ToUInt32( value_.argument_ ); value_.argument_ = value_.argument_ + 4 + RoundUp4( blobSize ); } break; default: // unknown type tag // don't advance --value_.typeTag_; break; // not handled: // [ Indicates the beginning of an array. The tags following are for // data in the Array until a close brace tag is reached. // ] Indicates the end of an array. } } //------------------------------------------------------------------------------ ReceivedMessage::ReceivedMessage( const ReceivedPacket& packet ) : addressPattern_( packet.Contents() ) { Init( packet.Contents(), packet.Size() ); } ReceivedMessage::ReceivedMessage( const ReceivedBundleElement& bundleElement ) : addressPattern_( bundleElement.Contents() ) { Init( bundleElement.Contents(), bundleElement.Size() ); } bool ReceivedMessage::AddressPatternIsUInt32() const { return (addressPattern_[0] == '\0'); } uint32 ReceivedMessage::AddressPatternAsUInt32() const { return ToUInt32( addressPattern_ ); } void ReceivedMessage::Init( const char *message, unsigned long size ) { if( size == 0 ) throw MalformedMessageException( "zero length messages not permitted" ); if( (size & 0x03L) != 0 ) throw MalformedMessageException( "message size must be multiple of four" ); const char *end = message + size; typeTagsBegin_ = FindStr4End( addressPattern_, end ); if( typeTagsBegin_ == 0 ){ // address pattern was not terminated before end throw MalformedMessageException( "unterminated address pattern" ); } if( typeTagsBegin_ == end ){ // message consists of only the address pattern - no arguments or type tags. typeTagsBegin_ = 0; typeTagsEnd_ = 0; arguments_ = 0; }else{ if( *typeTagsBegin_ != ',' ) throw MalformedMessageException( "type tags not present" ); if( *(typeTagsBegin_ + 1) == '\0' ){ // zero length type tags typeTagsBegin_ = 0; typeTagsEnd_ = 0; arguments_ = 0; }else{ // check that all arguments are present and well formed arguments_ = FindStr4End( typeTagsBegin_, end ); if( arguments_ == 0 ){ throw MalformedMessageException( "type tags were not terminated before end of message" ); } ++typeTagsBegin_; // advance past initial ',' const char *typeTag = typeTagsBegin_; const char *argument = arguments_; do{ switch( *typeTag ){ case TRUE_TYPE_TAG: case FALSE_TYPE_TAG: case NIL_TYPE_TAG: case INFINITUM_TYPE_TAG: // zero length break; case INT32_TYPE_TAG: case FLOAT_TYPE_TAG: case CHAR_TYPE_TAG: case RGBA_COLOR_TYPE_TAG: case MIDI_MESSAGE_TYPE_TAG: if( argument == end ) throw MalformedMessageException( "arguments exceed message size" ); argument += 4; if( argument > end ) throw MalformedMessageException( "arguments exceed message size" ); break; case INT64_TYPE_TAG: case TIME_TAG_TYPE_TAG: case DOUBLE_TYPE_TAG: if( argument == end ) throw MalformedMessageException( "arguments exceed message size" ); argument += 8; if( argument > end ) throw MalformedMessageException( "arguments exceed message size" ); break; case STRING_TYPE_TAG: case SYMBOL_TYPE_TAG: if( argument == end ) throw MalformedMessageException( "arguments exceed message size" ); argument = FindStr4End( argument, end ); if( argument == 0 ) throw MalformedMessageException( "unterminated string argument" ); break; case BLOB_TYPE_TAG: { if( argument + 4 > end ) MalformedMessageException( "arguments exceed message size" ); uint32 blobSize = ToUInt32( argument ); argument = argument + 4 + RoundUp4( blobSize ); if( argument > end ) MalformedMessageException( "arguments exceed message size" ); } break; default: throw MalformedMessageException( "unknown type tag" ); // not handled: // [ Indicates the beginning of an array. The tags following are for // data in the Array until a close brace tag is reached. // ] Indicates the end of an array. } }while( *++typeTag != '\0' ); typeTagsEnd_ = typeTag; } } } //------------------------------------------------------------------------------ ReceivedBundle::ReceivedBundle( const ReceivedPacket& packet ) : elementCount_( 0 ) { Init( packet.Contents(), packet.Size() ); } ReceivedBundle::ReceivedBundle( const ReceivedBundleElement& bundleElement ) : elementCount_( 0 ) { Init( bundleElement.Contents(), bundleElement.Size() ); } void ReceivedBundle::Init( const char *bundle, unsigned long size ) { if( size < 16 ) throw MalformedBundleException( "packet too short for bundle" ); if( (size & 0x03L) != 0 ) throw MalformedBundleException( "bundle size must be multiple of four" ); if( bundle[0] != '#' || bundle[1] != 'b' || bundle[2] != 'u' || bundle[3] != 'n' || bundle[4] != 'd' || bundle[5] != 'l' || bundle[6] != 'e' || bundle[7] != '\0' ) throw MalformedBundleException( "bad bundle address pattern" ); end_ = bundle + size; timeTag_ = bundle + 8; const char *p = timeTag_ + 8; while( p < end_ ){ if( p + 4 > end_ ) throw MalformedBundleException( "packet too short for elementSize" ); uint32 elementSize = ToUInt32( p ); if( (elementSize & 0x03L) != 0 ) throw MalformedBundleException( "bundle element size must be multiple of four" ); p += 4 + elementSize; if( p > end_ ) throw MalformedBundleException( "packet too short for bundle element" ); ++elementCount_; } if( p != end_ ) throw MalformedBundleException( "bundle contents " ); } uint64 ReceivedBundle::TimeTag() const { return ToUInt64( timeTag_ ); } } // namespace osc faust-0.9.46/architecture/osclib/oscpack/osc/OscPacketListener.h0000644000175000017500000000505411702130733024550 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_OSCPACKETLISTENER_H #define INCLUDED_OSCPACKETLISTENER_H #include "OscReceivedElements.h" #include "../ip/PacketListener.h" namespace osc{ class OscPacketListener : public PacketListener{ protected: virtual void ProcessBundle( const osc::ReceivedBundle& b, const IpEndpointName& remoteEndpoint ) { // ignore bundle time tag for now for( ReceivedBundle::const_iterator i = b.ElementsBegin(); i != b.ElementsEnd(); ++i ){ if( i->IsBundle() ) ProcessBundle( ReceivedBundle(*i), remoteEndpoint ); else ProcessMessage( ReceivedMessage(*i), remoteEndpoint ); } } virtual void ProcessMessage( const osc::ReceivedMessage& m, const IpEndpointName& remoteEndpoint ) = 0; public: virtual void ProcessPacket( const char *data, int size, const IpEndpointName& remoteEndpoint ) { osc::ReceivedPacket p( data, size ); if( p.IsBundle() ) ProcessBundle( ReceivedBundle(p), remoteEndpoint ); else ProcessMessage( ReceivedMessage(p), remoteEndpoint ); } }; } // namespace osc #endif /* INCLUDED_OSCPACKETLISTENER_H */ faust-0.9.46/architecture/osclib/oscpack/osc/OscPrintReceivedElements.cpp0000644000175000017500000001545511702130733026434 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "OscPrintReceivedElements.h" #include #include #include #include namespace osc{ std::ostream& operator<<( std::ostream & os, const ReceivedMessageArgument& arg ) { switch( arg.TypeTag() ){ case TRUE_TYPE_TAG: os << "bool:true"; break; case FALSE_TYPE_TAG: os << "bool:false"; break; case NIL_TYPE_TAG: os << "(Nil)"; break; case INFINITUM_TYPE_TAG: os << "(Infinitum)"; break; case INT32_TYPE_TAG: os << "int32:" << arg.AsInt32Unchecked(); break; case FLOAT_TYPE_TAG: os << "float32:" << arg.AsFloatUnchecked(); break; case CHAR_TYPE_TAG: { char s[2] = {0}; s[0] = arg.AsCharUnchecked(); os << "char:'" << s << "'"; } break; case RGBA_COLOR_TYPE_TAG: { uint32 color = arg.AsRgbaColorUnchecked(); os << "RGBA:0x" << std::hex << std::setfill('0') << std::setw(2) << (int)((color>>24) & 0xFF) << std::setw(2) << (int)((color>>16) & 0xFF) << std::setw(2) << (int)((color>>8) & 0xFF) << std::setw(2) << (int)(color & 0xFF) << std::setfill(' '); os.unsetf(std::ios::basefield); } break; case MIDI_MESSAGE_TYPE_TAG: { uint32 m = arg.AsMidiMessageUnchecked(); os << "midi (port, status, data1, data2):<<" << std::hex << std::setfill('0') << "0x" << std::setw(2) << (int)((m>>24) & 0xFF) << " 0x" << std::setw(2) << (int)((m>>16) & 0xFF) << " 0x" << std::setw(2) << (int)((m>>8) & 0xFF) << " 0x" << std::setw(2) << (int)(m & 0xFF) << std::setfill(' ') << ">>"; os.unsetf(std::ios::basefield); } break; case INT64_TYPE_TAG: os << "int64:" << arg.AsInt64Unchecked(); break; case TIME_TAG_TYPE_TAG: { os << "OSC-timetag:" << arg.AsTimeTagUnchecked(); std::time_t t = (unsigned long)( arg.AsTimeTagUnchecked() >> 32 ); // strip trailing newline from string returned by ctime const char *timeString = std::ctime( &t ); size_t len = strlen( timeString ); char *s = new char[ len + 1 ]; strcpy( s, timeString ); if( len ) s[ len - 1 ] = '\0'; os << " " << s; } break; case DOUBLE_TYPE_TAG: os << "double:" << arg.AsDoubleUnchecked(); break; case STRING_TYPE_TAG: os << "OSC-string:`" << arg.AsStringUnchecked() << "'"; break; case SYMBOL_TYPE_TAG: os << "OSC-string (symbol):`" << arg.AsSymbolUnchecked() << "'"; break; case BLOB_TYPE_TAG: { unsigned long size; const void *data; arg.AsBlobUnchecked( data, size ); os << "OSC-blob:<<" << std::hex << std::setfill('0'); unsigned char *p = (unsigned char*)data; for( unsigned long i = 0; i < size; ++i ){ os << "0x" << std::setw(2) << int(p[i]); if( i != size-1 ) os << ' '; } os.unsetf(std::ios::basefield); os << ">>" << std::setfill(' '); } break; default: os << "unknown"; } return os; } std::ostream& operator<<( std::ostream & os, const ReceivedMessage& m ) { os << "[" << m.AddressPattern(); bool first = true; for( ReceivedMessage::const_iterator i = m.ArgumentsBegin(); i != m.ArgumentsEnd(); ++i ){ if( first ){ os << " "; first = false; }else{ os << ", "; } os << *i; } os << "]"; return os; } std::ostream& operator<<( std::ostream & os, const ReceivedBundle& b ) { static int indent = 0; for( int j=0; j < indent; ++j ) os << " "; os << "{ ( "; if( b.TimeTag() == 1 ) os << "immediate"; else os << b.TimeTag(); os << " )\n"; ++indent; for( ReceivedBundle::const_iterator i = b.ElementsBegin(); i != b.ElementsEnd(); ++i ){ if( i->IsBundle() ){ ReceivedBundle b(*i); os << b << "\n"; }else{ ReceivedMessage m(*i); for( int j=0; j < indent; ++j ) os << " "; os << m << "\n"; } } --indent; for( int j=0; j < indent; ++j ) os << " "; os << "}"; return os; } std::ostream& operator<<( std::ostream & os, const ReceivedPacket& p ) { if( p.IsBundle() ){ ReceivedBundle b(p); os << b << "\n"; }else{ ReceivedMessage m(p); os << m << "\n"; } return os; } } // namespace osc faust-0.9.46/architecture/osclib/oscpack/osc/OscTypes.h0000644000175000017500000000765411702130733022747 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_OSCTYPES_H #define INCLUDED_OSCTYPES_H namespace osc{ // basic types #if defined(__BORLANDC__) || defined(_MSC_VER) typedef __int64 int64; typedef unsigned __int64 uint64; #else typedef long long int64; typedef unsigned long long uint64; #endif #ifdef x86_64 typedef signed int int32; typedef unsigned int uint32; #else typedef signed long int32; typedef unsigned long uint32; #endif enum TypeTagValues { TRUE_TYPE_TAG = 'T', FALSE_TYPE_TAG = 'F', NIL_TYPE_TAG = 'N', INFINITUM_TYPE_TAG = 'I', INT32_TYPE_TAG = 'i', FLOAT_TYPE_TAG = 'f', CHAR_TYPE_TAG = 'c', RGBA_COLOR_TYPE_TAG = 'r', MIDI_MESSAGE_TYPE_TAG = 'm', INT64_TYPE_TAG = 'h', TIME_TAG_TYPE_TAG = 't', DOUBLE_TYPE_TAG = 'd', STRING_TYPE_TAG = 's', SYMBOL_TYPE_TAG = 'S', BLOB_TYPE_TAG = 'b' }; // i/o manipulators used for streaming interfaces struct BundleInitiator{ explicit BundleInitiator( uint64 timeTag_ ) : timeTag( timeTag_ ) {} uint64 timeTag; }; extern BundleInitiator BeginBundleImmediate; inline BundleInitiator BeginBundle( uint64 timeTag=1 ) { return BundleInitiator(timeTag); } struct BundleTerminator{ }; extern BundleTerminator EndBundle; struct BeginMessage{ explicit BeginMessage( const char *addressPattern_ ) : addressPattern( addressPattern_ ) {} const char *addressPattern; }; struct MessageTerminator{ }; extern MessageTerminator EndMessage; // osc specific types. they are defined as structs so they can be used // as separately identifiable types with the streaming operators. struct NilType{ }; extern NilType Nil; struct InfinitumType{ }; extern InfinitumType Infinitum; struct RgbaColor{ RgbaColor() {} explicit RgbaColor( uint32 value_ ) : value( value_ ) {} uint32 value; operator uint32() const { return value; } }; struct MidiMessage{ MidiMessage() {} explicit MidiMessage( uint32 value_ ) : value( value_ ) {} uint32 value; operator uint32() const { return value; } }; struct TimeTag{ TimeTag() {} explicit TimeTag( uint64 value_ ) : value( value_ ) {} uint64 value; operator uint64() const { return value; } }; struct Symbol{ Symbol() {} explicit Symbol( const char* value_ ) : value( value_ ) {} const char* value; operator const char *() const { return value; } }; struct Blob{ Blob() {} explicit Blob( const void* data_, unsigned long size_ ) : data( data_ ), size( size_ ) {} const void* data; unsigned long size; }; } // namespace osc #endif /* INCLUDED_OSCTYPES_H */ faust-0.9.46/architecture/osclib/oscpack/osc/OscOutboundPacketStream.cpp0000644000175000017500000003456311702130733026300 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "OscOutboundPacketStream.h" #include #include #include #if defined(__WIN32__) || defined(WIN32) #include // for alloca #endif #include "OscHostEndianness.h" namespace osc{ static void FromInt32( char *p, int32 x ) { #ifdef OSC_HOST_LITTLE_ENDIAN union{ osc::int32 i; char c[4]; } u; u.i = x; p[3] = u.c[0]; p[2] = u.c[1]; p[1] = u.c[2]; p[0] = u.c[3]; #else *reinterpret_cast(p) = x; #endif } static void FromUInt32( char *p, uint32 x ) { #ifdef OSC_HOST_LITTLE_ENDIAN union{ osc::uint32 i; char c[4]; } u; u.i = x; p[3] = u.c[0]; p[2] = u.c[1]; p[1] = u.c[2]; p[0] = u.c[3]; #else *reinterpret_cast(p) = x; #endif } static void FromInt64( char *p, int64 x ) { #ifdef OSC_HOST_LITTLE_ENDIAN union{ osc::int64 i; char c[8]; } u; u.i = x; p[7] = u.c[0]; p[6] = u.c[1]; p[5] = u.c[2]; p[4] = u.c[3]; p[3] = u.c[4]; p[2] = u.c[5]; p[1] = u.c[6]; p[0] = u.c[7]; #else *reinterpret_cast(p) = x; #endif } static void FromUInt64( char *p, uint64 x ) { #ifdef OSC_HOST_LITTLE_ENDIAN union{ osc::uint64 i; char c[8]; } u; u.i = x; p[7] = u.c[0]; p[6] = u.c[1]; p[5] = u.c[2]; p[4] = u.c[3]; p[3] = u.c[4]; p[2] = u.c[5]; p[1] = u.c[6]; p[0] = u.c[7]; #else *reinterpret_cast(p) = x; #endif } static inline long RoundUp4( long x ) { return ((x-1) & (~0x03L)) + 4; } OutboundPacketStream::OutboundPacketStream( char *buffer, unsigned long capacity ) : data_( buffer ) , end_( data_ + capacity ) , typeTagsCurrent_( end_ ) , messageCursor_( data_ ) , argumentCurrent_( data_ ) , elementSizePtr_( 0 ) , messageIsInProgress_( false ) { } OutboundPacketStream::~OutboundPacketStream() { } char *OutboundPacketStream::BeginElement( char *beginPtr ) { if( elementSizePtr_ == 0 ){ elementSizePtr_ = reinterpret_cast(data_); return beginPtr; }else{ // store an offset to the old element size ptr in the element size slot // we store an offset rather than the actual pointer to be 64 bit clean. *reinterpret_cast(beginPtr) = (uint32)(reinterpret_cast(elementSizePtr_) - data_); elementSizePtr_ = reinterpret_cast(beginPtr); return beginPtr + 4; } } void OutboundPacketStream::EndElement( char *endPtr ) { assert( elementSizePtr_ != 0 ); if( elementSizePtr_ == reinterpret_cast(data_) ){ elementSizePtr_ = 0; }else{ // while building an element, an offset to the containing element's // size slot is stored in the elements size slot (or a ptr to data_ // if there is no containing element). We retrieve that here uint32 *previousElementSizePtr = (uint32*)(data_ + *reinterpret_cast(elementSizePtr_)); // then we store the element size in the slot, note that the element // size does not include the size slot, hence the - 4 below. uint32 elementSize = (endPtr - reinterpret_cast(elementSizePtr_)) - 4; FromUInt32( reinterpret_cast(elementSizePtr_), elementSize ); // finally, we reset the element size ptr to the containing element elementSizePtr_ = previousElementSizePtr; } } bool OutboundPacketStream::ElementSizeSlotRequired() const { return (elementSizePtr_ != 0); } void OutboundPacketStream::CheckForAvailableBundleSpace() { unsigned long required = Size() + ((ElementSizeSlotRequired())?4:0) + 16; if( required > Capacity() ) throw OutOfBufferMemoryException(); } void OutboundPacketStream::CheckForAvailableMessageSpace( const char *addressPattern ) { // plus 4 for at least four bytes of type tag unsigned long required = Size() + ((ElementSizeSlotRequired())?4:0) + RoundUp4(strlen(addressPattern) + 1) + 4; if( required > Capacity() ) throw OutOfBufferMemoryException(); } void OutboundPacketStream::CheckForAvailableArgumentSpace( long argumentLength ) { // plus three for extra type tag, comma and null terminator unsigned long required = (argumentCurrent_ - data_) + argumentLength + RoundUp4( (end_ - typeTagsCurrent_) + 3 ); if( required > Capacity() ) throw OutOfBufferMemoryException(); } void OutboundPacketStream::Clear() { typeTagsCurrent_ = end_; messageCursor_ = data_; argumentCurrent_ = data_; elementSizePtr_ = 0; messageIsInProgress_ = false; } unsigned int OutboundPacketStream::Capacity() const { return end_ - data_; } unsigned int OutboundPacketStream::Size() const { unsigned int result = argumentCurrent_ - data_; if( IsMessageInProgress() ){ // account for the length of the type tag string. the total type tag // includes an initial comma, plus at least one terminating \0 result += RoundUp4( (end_ - typeTagsCurrent_) + 2 ); } return result; } const char *OutboundPacketStream::Data() const { return data_; } bool OutboundPacketStream::IsReady() const { return (!IsMessageInProgress() && !IsBundleInProgress()); } bool OutboundPacketStream::IsMessageInProgress() const { return messageIsInProgress_; } bool OutboundPacketStream::IsBundleInProgress() const { return (elementSizePtr_ != 0); } OutboundPacketStream& OutboundPacketStream::operator<<( const BundleInitiator& rhs ) { if( IsMessageInProgress() ) throw MessageInProgressException(); CheckForAvailableBundleSpace(); messageCursor_ = BeginElement( messageCursor_ ); memcpy( messageCursor_, "#bundle\0", 8 ); FromUInt64( messageCursor_ + 8, rhs.timeTag ); messageCursor_ += 16; argumentCurrent_ = messageCursor_; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const BundleTerminator& rhs ) { (void) rhs; if( !IsBundleInProgress() ) throw BundleNotInProgressException(); if( IsMessageInProgress() ) throw MessageInProgressException(); EndElement( messageCursor_ ); return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const BeginMessage& rhs ) { if( IsMessageInProgress() ) throw MessageInProgressException(); CheckForAvailableMessageSpace( rhs.addressPattern ); messageCursor_ = BeginElement( messageCursor_ ); strcpy( messageCursor_, rhs.addressPattern ); unsigned long rhsLength = strlen(rhs.addressPattern); messageCursor_ += rhsLength + 1; // zero pad to 4-byte boundary unsigned long i = rhsLength + 1; while( i & 0x3 ){ *messageCursor_++ = '\0'; ++i; } argumentCurrent_ = messageCursor_; typeTagsCurrent_ = end_; messageIsInProgress_ = true; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const MessageTerminator& rhs ) { (void) rhs; if( !IsMessageInProgress() ) throw MessageNotInProgressException(); int typeTagsCount = end_ - typeTagsCurrent_; if( typeTagsCount ){ char *tempTypeTags = (char*)alloca(typeTagsCount); memcpy( tempTypeTags, typeTagsCurrent_, typeTagsCount ); // slot size includes comma and null terminator int typeTagSlotSize = RoundUp4( typeTagsCount + 2 ); uint32 argumentsSize = argumentCurrent_ - messageCursor_; memmove( messageCursor_ + typeTagSlotSize, messageCursor_, argumentsSize ); messageCursor_[0] = ','; // copy type tags in reverse (really forward) order for( int i=0; i < typeTagsCount; ++i ) messageCursor_[i+1] = tempTypeTags[ (typeTagsCount-1) - i ]; char *p = messageCursor_ + 1 + typeTagsCount; for( int i=0; i < (typeTagSlotSize - (typeTagsCount + 1)); ++i ) *p++ = '\0'; typeTagsCurrent_ = end_; // advance messageCursor_ for next message messageCursor_ += typeTagSlotSize + argumentsSize; }else{ // send an empty type tags string memcpy( messageCursor_, ",\0\0\0", 4 ); // advance messageCursor_ for next message messageCursor_ += 4; } argumentCurrent_ = messageCursor_; EndElement( messageCursor_ ); messageIsInProgress_ = false; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( bool rhs ) { CheckForAvailableArgumentSpace(0); *(--typeTagsCurrent_) = (char)((rhs) ? TRUE_TYPE_TAG : FALSE_TYPE_TAG); return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const NilType& rhs ) { (void) rhs; CheckForAvailableArgumentSpace(0); *(--typeTagsCurrent_) = NIL_TYPE_TAG; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const InfinitumType& rhs ) { (void) rhs; CheckForAvailableArgumentSpace(0); *(--typeTagsCurrent_) = INFINITUM_TYPE_TAG; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( int32 rhs ) { CheckForAvailableArgumentSpace(4); *(--typeTagsCurrent_) = INT32_TYPE_TAG; FromInt32( argumentCurrent_, rhs ); argumentCurrent_ += 4; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( float rhs ) { CheckForAvailableArgumentSpace(4); *(--typeTagsCurrent_) = FLOAT_TYPE_TAG; #ifdef OSC_HOST_LITTLE_ENDIAN union{ float f; char c[4]; } u; u.f = rhs; argumentCurrent_[3] = u.c[0]; argumentCurrent_[2] = u.c[1]; argumentCurrent_[1] = u.c[2]; argumentCurrent_[0] = u.c[3]; #else *reinterpret_cast(argumentCurrent_) = rhs; #endif argumentCurrent_ += 4; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( char rhs ) { CheckForAvailableArgumentSpace(4); *(--typeTagsCurrent_) = CHAR_TYPE_TAG; FromInt32( argumentCurrent_, rhs ); argumentCurrent_ += 4; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const RgbaColor& rhs ) { CheckForAvailableArgumentSpace(4); *(--typeTagsCurrent_) = RGBA_COLOR_TYPE_TAG; FromUInt32( argumentCurrent_, rhs ); argumentCurrent_ += 4; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const MidiMessage& rhs ) { CheckForAvailableArgumentSpace(4); *(--typeTagsCurrent_) = MIDI_MESSAGE_TYPE_TAG; FromUInt32( argumentCurrent_, rhs ); argumentCurrent_ += 4; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( int64 rhs ) { CheckForAvailableArgumentSpace(8); *(--typeTagsCurrent_) = INT64_TYPE_TAG; FromInt64( argumentCurrent_, rhs ); argumentCurrent_ += 8; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const TimeTag& rhs ) { CheckForAvailableArgumentSpace(8); *(--typeTagsCurrent_) = TIME_TAG_TYPE_TAG; FromUInt64( argumentCurrent_, rhs ); argumentCurrent_ += 8; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( double rhs ) { CheckForAvailableArgumentSpace(8); *(--typeTagsCurrent_) = DOUBLE_TYPE_TAG; #ifdef OSC_HOST_LITTLE_ENDIAN union{ double f; char c[8]; } u; u.f = rhs; argumentCurrent_[7] = u.c[0]; argumentCurrent_[6] = u.c[1]; argumentCurrent_[5] = u.c[2]; argumentCurrent_[4] = u.c[3]; argumentCurrent_[3] = u.c[4]; argumentCurrent_[2] = u.c[5]; argumentCurrent_[1] = u.c[6]; argumentCurrent_[0] = u.c[7]; #else *reinterpret_cast(argumentCurrent_) = rhs; #endif argumentCurrent_ += 8; return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const char *rhs ) { CheckForAvailableArgumentSpace( RoundUp4(strlen(rhs) + 1) ); *(--typeTagsCurrent_) = STRING_TYPE_TAG; strcpy( argumentCurrent_, rhs ); unsigned long rhsLength = strlen(rhs); argumentCurrent_ += rhsLength + 1; // zero pad to 4-byte boundary unsigned long i = rhsLength + 1; while( i & 0x3 ){ *argumentCurrent_++ = '\0'; ++i; } return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const Symbol& rhs ) { CheckForAvailableArgumentSpace( RoundUp4(strlen(rhs) + 1) ); *(--typeTagsCurrent_) = SYMBOL_TYPE_TAG; strcpy( argumentCurrent_, rhs ); unsigned long rhsLength = strlen(rhs); argumentCurrent_ += rhsLength + 1; // zero pad to 4-byte boundary unsigned long i = rhsLength + 1; while( i & 0x3 ){ *argumentCurrent_++ = '\0'; ++i; } return *this; } OutboundPacketStream& OutboundPacketStream::operator<<( const Blob& rhs ) { CheckForAvailableArgumentSpace( 4 + RoundUp4(rhs.size) ); *(--typeTagsCurrent_) = BLOB_TYPE_TAG; FromUInt32( argumentCurrent_, rhs.size ); argumentCurrent_ += 4; memcpy( argumentCurrent_, rhs.data, rhs.size ); argumentCurrent_ += rhs.size; // zero pad to 4-byte boundary unsigned long i = rhs.size; while( i & 0x3 ){ *argumentCurrent_++ = '\0'; ++i; } return *this; } } // namespace osc faust-0.9.46/architecture/osclib/oscpack/osc/MessageMappingOscPacketListener.h0000644000175000017500000000506711702130733027375 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_MESSAGEMAPPINGOSCPACKETLISTENER_H #define INCLUDED_MESSAGEMAPPINGOSCPACKETLISTENER_H #include #include #include "OscPacketListener.h" namespace osc{ template< class T > class MessageMappingOscPacketListener : public OscPacketListener{ public: typedef void (T::*function_type)(const osc::ReceivedMessage&, const IpEndpointName&); protected: void RegisterMessageFunction( const char *addressPattern, function_type f ) { functions_.insert( std::make_pair( addressPattern, f ) ); } virtual void ProcessMessage( const osc::ReceivedMessage& m, const IpEndpointName& remoteEndpoint ) { typename function_map_type::iterator i = functions_.find( m.AddressPattern() ); if( i != functions_.end() ) (dynamic_cast(this)->*(i->second))( m, remoteEndpoint ); } private: struct cstr_compare{ bool operator()( const char *lhs, const char *rhs ) const { return strcmp( lhs, rhs ) < 0; } }; typedef std::map function_map_type; function_map_type functions_; }; } // namespace osc #endif /* INCLUDED_MESSAGEMAPPINGOSCPACKETLISTENER_H */faust-0.9.46/architecture/osclib/oscpack/osc/OscTypes.cpp0000644000175000017500000000307611702130733023274 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "OscTypes.h" namespace osc{ BundleInitiator BeginBundleImmediate(1); BundleTerminator EndBundle; MessageTerminator EndMessage; NilType Nil; InfinitumType Infinitum; } // namespace osc faust-0.9.46/architecture/osclib/oscpack/make.MinGW32.bat0000644000175000017500000000237511702130733022766 0ustar orlareyorlareydel bin\OscUnitTests.exe del bin\OscDump.exe del bin\OscSendTests.exe del bin\OscReceiveTest.exe mkdir bin g++ tests\OscUnitTests.cpp osc\OscTypes.cpp osc\OscReceivedElements.cpp osc\OscPrintReceivedElements.cpp osc\OscOutboundPacketStream.cpp -Wall -I. -lws2_32 -o bin\OscUnitTests.exe g++ examples\OscDump.cpp osc\OscTypes.cpp osc\OscReceivedElements.cpp osc\OscPrintReceivedElements.cpp ip\win32\NetworkingUtils.cpp ip\win32\UdpSocket.cpp -Wall -I. -lws2_32 -lwinmm -o bin\OscDump.exe g++ examples\SimpleSend.cpp osc\OscTypes.cpp osc\OscOutboundPacketStream.cpp ip\win32\NetworkingUtils.cpp ip\win32\UdpSocket.cpp ip\IpEndpointName.cpp -Wall -I. -lws2_32 -lwinmm -o bin\SimpleSend.exe g++ examples\SimpleReceive.cpp osc\OscTypes.cpp osc\OscReceivedElements.cpp ip\win32\NetworkingUtils.cpp ip\win32\UdpSocket.cpp -Wall -I. -lws2_32 -lwinmm -o bin\SimpleReceive.exe g++ tests\OscSendTests.cpp osc\OscTypes.cpp osc\OscOutboundPacketStream.cpp ip\win32\NetworkingUtils.cpp ip\win32\UdpSocket.cpp ip\IpEndpointName.cpp -Wall -I. -lws2_32 -lwinmm -o bin\OscSendTests.exe g++ tests\OscReceiveTest.cpp osc\OscTypes.cpp osc\OscReceivedElements.cpp ip\win32\NetworkingUtils.cpp ip\win32\UdpSocket.cpp -Wall -I. -lws2_32 -lwinmm -o bin\OscReceiveTest.exe .\bin\OscUnitTests.exefaust-0.9.46/architecture/osclib/oscpack/examples/0000755000175000017500000000000011702130733022043 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/oscpack/examples/SimpleSend.cpp0000644000175000017500000000141411702130733024612 0ustar orlareyorlarey/* Simple example of sending an OSC message using oscpack. */ #include "osc/OscOutboundPacketStream.h" #include "ip/UdpSocket.h" #define ADDRESS "127.0.0.1" #define PORT 7000 #define OUTPUT_BUFFER_SIZE 1024 int main(int argc, char* argv[]) { UdpTransmitSocket transmitSocket( IpEndpointName( ADDRESS, PORT ) ); char buffer[OUTPUT_BUFFER_SIZE]; osc::OutboundPacketStream p( buffer, OUTPUT_BUFFER_SIZE ); p << osc::BeginBundleImmediate << osc::BeginMessage( "/test1" ) << true << 23 << (float)3.1415 << "hello" << osc::EndMessage << osc::BeginMessage( "/test2" ) << true << 24 << (float)10.8 << "world" << osc::EndMessage << osc::EndBundle; transmitSocket.Send( p.Data(), p.Size() ); } faust-0.9.46/architecture/osclib/oscpack/examples/OscDump.cpp0000644000175000017500000000500411702130733024120 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* OscDump prints incoming Osc packets. Unlike the Berkeley dumposc program OscDump uses a different printing format which indicates the type of each message argument. */ #include #include #include #include "osc/OscReceivedElements.h" #include "osc/OscPrintReceivedElements.h" #include "ip/UdpSocket.h" #include "ip/PacketListener.h" class OscDumpPacketListener : public PacketListener{ public: virtual void ProcessPacket( const char *data, int size, const IpEndpointName& remoteEndpoint ) { std::cout << osc::ReceivedPacket( data, size ); } }; int main(int argc, char* argv[]) { if( argc >= 2 && strcmp( argv[1], "-h" ) == 0 ){ std::cout << "usage: OscDump [port]\n"; return 0; } int port = 7000; if( argc >= 2 ) port = atoi( argv[1] ); OscDumpPacketListener listener; UdpListeningReceiveSocket s( IpEndpointName( IpEndpointName::ANY_ADDRESS, port ), &listener ); std::cout << "listening for input on port " << port << "...\n"; std::cout << "press ctrl-c to end\n"; s.RunUntilSigInt(); std::cout << "finishing.\n"; return 0; } faust-0.9.46/architecture/osclib/oscpack/examples/SimpleReceive.cpp0000644000175000017500000000511211702130733025302 0ustar orlareyorlarey/* Example of two different ways to process received OSC messages using oscpack. Receives the messages from the SimpleSend.cpp example. */ #include #include #include "osc/OscReceivedElements.h" #include "osc/OscPacketListener.h" #include "ip/UdpSocket.h" #define PORT 7000 class ExamplePacketListener : public osc::OscPacketListener { protected: virtual void ProcessMessage( const osc::ReceivedMessage& m, const IpEndpointName& remoteEndpoint ) { try{ // example of parsing single messages. osc::OsckPacketListener // handles the bundle traversal. if( strcmp( m.AddressPattern(), "/test1" ) == 0 ){ // example #1 -- argument stream interface osc::ReceivedMessageArgumentStream args = m.ArgumentStream(); bool a1; osc::int32 a2; float a3; const char *a4; args >> a1 >> a2 >> a3 >> a4 >> osc::EndMessage; std::cout << "received '/test1' message with arguments: " << a1 << " " << a2 << " " << a3 << " " << a4 << "\n"; }else if( strcmp( m.AddressPattern(), "/test2" ) == 0 ){ // example #2 -- argument iterator interface, supports // reflection for overloaded messages (eg you can call // (*arg)->IsBool() to check if a bool was passed etc). osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin(); bool a1 = (arg++)->AsBool(); int a2 = (arg++)->AsInt32(); float a3 = (arg++)->AsFloat(); const char *a4 = (arg++)->AsString(); if( arg != m.ArgumentsEnd() ) throw osc::ExcessArgumentException(); std::cout << "received '/test2' message with arguments: " << a1 << " " << a2 << " " << a3 << " " << a4 << "\n"; } }catch( osc::Exception& e ){ // any parsing errors such as unexpected argument types, or // missing arguments get thrown as exceptions. std::cout << "error while parsing message: " << m.AddressPattern() << ": " << e.what() << "\n"; } } }; int main(int argc, char* argv[]) { ExamplePacketListener listener; UdpListeningReceiveSocket s( IpEndpointName( IpEndpointName::ANY_ADDRESS, PORT ), &listener ); std::cout << "press ctrl-c to end\n"; s.RunUntilSigInt(); return 0; } faust-0.9.46/architecture/osclib/oscpack/ip/0000755000175000017500000000000011702130733020635 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/oscpack/ip/IpEndpointName.cpp0000644000175000017500000000465311702130733024223 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "IpEndpointName.h" #include #include "NetworkingUtils.h" unsigned long IpEndpointName::GetHostByName( const char *s ) { return ::GetHostByName(s); } void IpEndpointName::AddressAsString( char *s ) const { if( address == ANY_ADDRESS ){ sprintf( s, "" ); }else{ sprintf( s, "%d.%d.%d.%d", (int)((address >> 24) & 0xFF), (int)((address >> 16) & 0xFF), (int)((address >> 8) & 0xFF), (int)(address & 0xFF) ); } } void IpEndpointName::AddressAndPortAsString( char *s ) const { if( port == ANY_PORT ){ if( address == ANY_ADDRESS ){ sprintf( s, ":" ); }else{ sprintf( s, "%d.%d.%d.%d:", (int)((address >> 24) & 0xFF), (int)((address >> 16) & 0xFF), (int)((address >> 8) & 0xFF), (int)(address & 0xFF) ); } }else{ if( address == ANY_ADDRESS ){ sprintf( s, ":%d", port ); }else{ sprintf( s, "%d.%d.%d.%d:%d", (int)((address >> 24) & 0xFF), (int)((address >> 16) & 0xFF), (int)((address >> 8) & 0xFF), (int)(address & 0xFF), (int)port ); } } } faust-0.9.46/architecture/osclib/oscpack/ip/UdpSocket.h0000644000175000017500000001243211702130733022711 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_UDPSOCKET_H #define INCLUDED_UDPSOCKET_H #ifndef INCLUDED_NETWORKINGUTILITIES_H #include "NetworkingUtils.h" #endif /* INCLUDED_NETWORKINGUTILITIES_H */ #ifndef INCLUDED_IPENDPOINTNAME_H #include "IpEndpointName.h" #endif /* INCLUDED_IPENDPOINTNAME_H */ class PacketListener; class TimerListener; class UdpSocket; class SocketReceiveMultiplexer{ class Implementation; Implementation *impl_; friend class UdpSocket; public: SocketReceiveMultiplexer(); ~SocketReceiveMultiplexer(); // only call the attach/detach methods _before_ calling Run // only one listener per socket, each socket at most once void AttachSocketListener( UdpSocket *socket, PacketListener *listener ); void DetachSocketListener( UdpSocket *socket, PacketListener *listener ); void AttachPeriodicTimerListener( int periodMilliseconds, TimerListener *listener ); void AttachPeriodicTimerListener( int initialDelayMilliseconds, int periodMilliseconds, TimerListener *listener ); void DetachPeriodicTimerListener( TimerListener *listener ); void Run(); // loop and block processing messages indefinitely void RunUntilSigInt(); void Break(); // call this from a listener to exit once the listener returns void AsynchronousBreak(); // call this from another thread or signal handler to exit the Run() state }; class UdpSocket{ class Implementation; Implementation *impl_; friend class SocketReceiveMultiplexer::Implementation; public: // ctor throws std::runtime_error if there's a problem // initializing the socket. UdpSocket(); virtual ~UdpSocket(); // the socket is created in an unbound, unconnected state // such a socket can only be used to send to an arbitrary // address using SendTo(). To use Send() you need to first // connect to a remote endpoint using Connect(). To use // ReceiveFrom you need to first bind to a local endpoint // using Bind(). // retrieve the local endpoint name when sending to 'to' IpEndpointName LocalEndpointFor( const IpEndpointName& remoteEndpoint ) const; // Connect to a remote endpoint which is used as the target // for calls to Send() void Connect( const IpEndpointName& remoteEndpoint ); void Send( const char *data, int size ); void SendTo( const IpEndpointName& remoteEndpoint, const char *data, int size ); // Bind a local endpoint to receive incoming data. Endpoint // can be 'any' for the system to choose an endpoint void Bind( const IpEndpointName& localEndpoint ); bool IsBound() const; int ReceiveFrom( IpEndpointName& remoteEndpoint, char *data, int size ); }; // convenience classes for transmitting and receiving // they just call Connect and/or Bind in the ctor. // note that you can still use a receive socket // for transmitting etc class UdpTransmitSocket : public UdpSocket{ public: UdpTransmitSocket( const IpEndpointName& remoteEndpoint ) { Connect( remoteEndpoint ); } }; class UdpReceiveSocket : public UdpSocket{ public: UdpReceiveSocket( const IpEndpointName& localEndpoint ) { Bind( localEndpoint ); } }; // UdpListeningReceiveSocket provides a simple way to bind one listener // to a single socket without having to manually set up a SocketReceiveMultiplexer class UdpListeningReceiveSocket : public UdpSocket{ SocketReceiveMultiplexer mux_; PacketListener *listener_; public: UdpListeningReceiveSocket( const IpEndpointName& localEndpoint, PacketListener *listener ) : listener_( listener ) { Bind( localEndpoint ); mux_.AttachSocketListener( this, listener_ ); } ~UdpListeningReceiveSocket() { mux_.DetachSocketListener( this, listener_ ); } // see SocketReceiveMultiplexer above for the behaviour of these methods... void Run() { mux_.Run(); } void RunUntilSigInt() { mux_.RunUntilSigInt(); } void Break() { mux_.Break(); } void AsynchronousBreak() { mux_.AsynchronousBreak(); } }; #endif /* INCLUDED_UDPSOCKET_H */ faust-0.9.46/architecture/osclib/oscpack/ip/posix/0000755000175000017500000000000011702130733021777 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/oscpack/ip/posix/UdpSocket.cpp0000644000175000017500000003534011702130733024411 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "ip/UdpSocket.h" #include #include #include #include #include #include #include #include // for memset #include #include #include #include #include #include #include #include #include // for sockaddr_in #include "ip/PacketListener.h" #include "ip/TimerListener.h" #if defined(__APPLE__) && !defined(_SOCKLEN_T) // pre system 10.3 didn have socklen_t typedef ssize_t socklen_t; #endif static void SockaddrFromIpEndpointName( struct sockaddr_in& sockAddr, const IpEndpointName& endpoint ) { memset( (char *)&sockAddr, 0, sizeof(sockAddr ) ); sockAddr.sin_family = AF_INET; sockAddr.sin_addr.s_addr = (endpoint.address == IpEndpointName::ANY_ADDRESS) ? INADDR_ANY : htonl( endpoint.address ); sockAddr.sin_port = (endpoint.port == IpEndpointName::ANY_PORT) ? 0 : htons( endpoint.port ); } static IpEndpointName IpEndpointNameFromSockaddr( const struct sockaddr_in& sockAddr ) { return IpEndpointName( (sockAddr.sin_addr.s_addr == INADDR_ANY) ? IpEndpointName::ANY_ADDRESS : ntohl( sockAddr.sin_addr.s_addr ), (sockAddr.sin_port == 0) ? IpEndpointName::ANY_PORT : ntohs( sockAddr.sin_port ) ); } class UdpSocket::Implementation{ bool isBound_; bool isConnected_; int socket_; struct sockaddr_in connectedAddr_; struct sockaddr_in sendToAddr_; public: Implementation() : isBound_( false ) , isConnected_( false ) , socket_( -1 ) { if( (socket_ = socket( AF_INET, SOCK_DGRAM, 0 )) == -1 ){ throw std::runtime_error("unable to create udp socket\n"); } memset( &sendToAddr_, 0, sizeof(sendToAddr_) ); sendToAddr_.sin_family = AF_INET; } ~Implementation() { if (socket_ != -1) close(socket_); } IpEndpointName LocalEndpointFor( const IpEndpointName& remoteEndpoint ) const { assert( isBound_ ); // first connect the socket to the remote server struct sockaddr_in connectSockAddr; SockaddrFromIpEndpointName( connectSockAddr, remoteEndpoint ); if (connect(socket_, (struct sockaddr *)&connectSockAddr, sizeof(connectSockAddr)) < 0) { throw std::runtime_error("unable to connect udp socket\n"); } // get the address struct sockaddr_in sockAddr; memset( (char *)&sockAddr, 0, sizeof(sockAddr ) ); socklen_t length = sizeof(sockAddr); if (getsockname(socket_, (struct sockaddr *)&sockAddr, &length) < 0) { throw std::runtime_error("unable to getsockname\n"); } if( isConnected_ ){ // reconnect to the connected address if (connect(socket_, (struct sockaddr *)&connectedAddr_, sizeof(connectedAddr_)) < 0) { throw std::runtime_error("unable to connect udp socket\n"); } }else{ // unconnect from the remote address struct sockaddr_in unconnectSockAddr; memset( (char *)&unconnectSockAddr, 0, sizeof(unconnectSockAddr ) ); unconnectSockAddr.sin_family = AF_UNSPEC; // address fields are zero int connectResult = connect(socket_, (struct sockaddr *)&unconnectSockAddr, sizeof(unconnectSockAddr)); if ( connectResult < 0 && errno != EAFNOSUPPORT ) { throw std::runtime_error("unable to un-connect udp socket\n"); } } return IpEndpointNameFromSockaddr( sockAddr ); } void Connect( const IpEndpointName& remoteEndpoint ) { SockaddrFromIpEndpointName( connectedAddr_, remoteEndpoint ); if (connect(socket_, (struct sockaddr *)&connectedAddr_, sizeof(connectedAddr_)) < 0) { throw std::runtime_error("unable to connect udp socket\n"); } isConnected_ = true; } void Send( const char *data, int size ) { assert( isConnected_ ); send( socket_, data, size, 0 ); } void SendTo( const IpEndpointName& remoteEndpoint, const char *data, int size ) { sendToAddr_.sin_addr.s_addr = htonl( remoteEndpoint.address ); sendToAddr_.sin_port = htons( remoteEndpoint.port ); sendto( socket_, data, size, 0, (sockaddr*)&sendToAddr_, sizeof(sendToAddr_) ); } void Bind( const IpEndpointName& localEndpoint ) { struct sockaddr_in bindSockAddr; SockaddrFromIpEndpointName( bindSockAddr, localEndpoint ); if (bind(socket_, (struct sockaddr *)&bindSockAddr, sizeof(bindSockAddr)) < 0) { throw std::runtime_error("unable to bind udp socket\n"); } isBound_ = true; } bool IsBound() const { return isBound_; } int ReceiveFrom( IpEndpointName& remoteEndpoint, char *data, int size ) { assert( isBound_ ); struct sockaddr_in fromAddr; socklen_t fromAddrLen = sizeof(fromAddr); int result = recvfrom(socket_, data, size, 0, (struct sockaddr *) &fromAddr, (socklen_t*)&fromAddrLen); if( result < 0 ) return 0; remoteEndpoint.address = ntohl(fromAddr.sin_addr.s_addr); remoteEndpoint.port = ntohs(fromAddr.sin_port); return result; } int Socket() { return socket_; } }; UdpSocket::UdpSocket() { impl_ = new Implementation(); } UdpSocket::~UdpSocket() { delete impl_; } IpEndpointName UdpSocket::LocalEndpointFor( const IpEndpointName& remoteEndpoint ) const { return impl_->LocalEndpointFor( remoteEndpoint ); } void UdpSocket::Connect( const IpEndpointName& remoteEndpoint ) { impl_->Connect( remoteEndpoint ); } void UdpSocket::Send( const char *data, int size ) { impl_->Send( data, size ); } void UdpSocket::SendTo( const IpEndpointName& remoteEndpoint, const char *data, int size ) { impl_->SendTo( remoteEndpoint, data, size ); } void UdpSocket::Bind( const IpEndpointName& localEndpoint ) { impl_->Bind( localEndpoint ); } bool UdpSocket::IsBound() const { return impl_->IsBound(); } int UdpSocket::ReceiveFrom( IpEndpointName& remoteEndpoint, char *data, int size ) { return impl_->ReceiveFrom( remoteEndpoint, data, size ); } struct AttachedTimerListener{ AttachedTimerListener( int id, int p, TimerListener *tl ) : initialDelayMs( id ) , periodMs( p ) , listener( tl ) {} int initialDelayMs; int periodMs; TimerListener *listener; }; static bool CompareScheduledTimerCalls( const std::pair< double, AttachedTimerListener > & lhs, const std::pair< double, AttachedTimerListener > & rhs ) { return lhs.first < rhs.first; } SocketReceiveMultiplexer *multiplexerInstanceToAbortWithSigInt_ = 0; extern "C" /*static*/ void InterruptSignalHandler( int ); /*static*/ void InterruptSignalHandler( int ) { multiplexerInstanceToAbortWithSigInt_->AsynchronousBreak(); signal( SIGINT, SIG_DFL ); } class SocketReceiveMultiplexer::Implementation{ std::vector< std::pair< PacketListener*, UdpSocket* > > socketListeners_; std::vector< AttachedTimerListener > timerListeners_; volatile bool break_; int breakPipe_[2]; // [0] is the reader descriptor and [1] the writer double GetCurrentTimeMs() const { struct timeval t; gettimeofday( &t, 0 ); return ((double)t.tv_sec*1000.) + ((double)t.tv_usec / 1000.); } public: Implementation() { if( pipe(breakPipe_) != 0 ) throw std::runtime_error( "creation of asynchronous break pipes failed\n" ); } ~Implementation() { close( breakPipe_[0] ); close( breakPipe_[1] ); } void AttachSocketListener( UdpSocket *socket, PacketListener *listener ) { assert( std::find( socketListeners_.begin(), socketListeners_.end(), std::make_pair(listener, socket) ) == socketListeners_.end() ); // we don't check that the same socket has been added multiple times, even though this is an error socketListeners_.push_back( std::make_pair( listener, socket ) ); } void DetachSocketListener( UdpSocket *socket, PacketListener *listener ) { std::vector< std::pair< PacketListener*, UdpSocket* > >::iterator i = std::find( socketListeners_.begin(), socketListeners_.end(), std::make_pair(listener, socket) ); assert( i != socketListeners_.end() ); socketListeners_.erase( i ); } void AttachPeriodicTimerListener( int periodMilliseconds, TimerListener *listener ) { timerListeners_.push_back( AttachedTimerListener( periodMilliseconds, periodMilliseconds, listener ) ); } void AttachPeriodicTimerListener( int initialDelayMilliseconds, int periodMilliseconds, TimerListener *listener ) { timerListeners_.push_back( AttachedTimerListener( initialDelayMilliseconds, periodMilliseconds, listener ) ); } void DetachPeriodicTimerListener( TimerListener *listener ) { std::vector< AttachedTimerListener >::iterator i = timerListeners_.begin(); while( i != timerListeners_.end() ){ if( i->listener == listener ) break; ++i; } assert( i != timerListeners_.end() ); timerListeners_.erase( i ); } void Run() { break_ = false; // configure the master fd_set for select() fd_set masterfds, tempfds; FD_ZERO( &masterfds ); FD_ZERO( &tempfds ); // in addition to listening to the inbound sockets we // also listen to the asynchronous break pipe, so that AsynchronousBreak() // can break us out of select() from another thread. FD_SET( breakPipe_[0], &masterfds ); int fdmax = breakPipe_[0]; for( std::vector< std::pair< PacketListener*, UdpSocket* > >::iterator i = socketListeners_.begin(); i != socketListeners_.end(); ++i ){ if( fdmax < i->second->impl_->Socket() ) fdmax = i->second->impl_->Socket(); FD_SET( i->second->impl_->Socket(), &masterfds ); } // configure the timer queue double currentTimeMs = GetCurrentTimeMs(); // expiry time ms, listener std::vector< std::pair< double, AttachedTimerListener > > timerQueue_; for( std::vector< AttachedTimerListener >::iterator i = timerListeners_.begin(); i != timerListeners_.end(); ++i ) timerQueue_.push_back( std::make_pair( currentTimeMs + i->initialDelayMs, *i ) ); std::sort( timerQueue_.begin(), timerQueue_.end(), CompareScheduledTimerCalls ); const int MAX_BUFFER_SIZE = 4098; char *data = new char[ MAX_BUFFER_SIZE ]; IpEndpointName remoteEndpoint; struct timeval timeout; while( !break_ ){ tempfds = masterfds; struct timeval *timeoutPtr = 0; if( !timerQueue_.empty() ){ double timeoutMs = timerQueue_.front().first - GetCurrentTimeMs(); if( timeoutMs < 0 ) timeoutMs = 0; // 1000000 microseconds in a second timeout.tv_sec = (long)(timeoutMs * .001); timeout.tv_usec = (long)((timeoutMs - (timeout.tv_sec * 1000)) * 1000); timeoutPtr = &timeout; } if( select( fdmax + 1, &tempfds, 0, 0, timeoutPtr ) < 0 && errno != EINTR ){ throw std::runtime_error("select failed\n"); } if ( FD_ISSET( breakPipe_[0], &tempfds ) ){ // clear pending data from the asynchronous break pipe char c; read( breakPipe_[0], &c, 1 ); } if( break_ ) break; for( std::vector< std::pair< PacketListener*, UdpSocket* > >::iterator i = socketListeners_.begin(); i != socketListeners_.end(); ++i ){ if( FD_ISSET( i->second->impl_->Socket(), &tempfds ) ){ int size = i->second->ReceiveFrom( remoteEndpoint, data, MAX_BUFFER_SIZE ); if( size > 0 ){ i->first->ProcessPacket( data, size, remoteEndpoint ); if( break_ ) break; } } } // execute any expired timers currentTimeMs = GetCurrentTimeMs(); bool resort = false; for( std::vector< std::pair< double, AttachedTimerListener > >::iterator i = timerQueue_.begin(); i != timerQueue_.end() && i->first <= currentTimeMs; ++i ){ i->second.listener->TimerExpired(); if( break_ ) break; i->first += i->second.periodMs; resort = true; } if( resort ) std::sort( timerQueue_.begin(), timerQueue_.end(), CompareScheduledTimerCalls ); } delete [] data; } void Break() { break_ = true; } void AsynchronousBreak() { break_ = true; // Send a termination message to the asynchronous break pipe, so select() will return write( breakPipe_[1], "!", 1 ); } }; SocketReceiveMultiplexer::SocketReceiveMultiplexer() { impl_ = new Implementation(); } SocketReceiveMultiplexer::~SocketReceiveMultiplexer() { delete impl_; } void SocketReceiveMultiplexer::AttachSocketListener( UdpSocket *socket, PacketListener *listener ) { impl_->AttachSocketListener( socket, listener ); } void SocketReceiveMultiplexer::DetachSocketListener( UdpSocket *socket, PacketListener *listener ) { impl_->DetachSocketListener( socket, listener ); } void SocketReceiveMultiplexer::AttachPeriodicTimerListener( int periodMilliseconds, TimerListener *listener ) { impl_->AttachPeriodicTimerListener( periodMilliseconds, listener ); } void SocketReceiveMultiplexer::AttachPeriodicTimerListener( int initialDelayMilliseconds, int periodMilliseconds, TimerListener *listener ) { impl_->AttachPeriodicTimerListener( initialDelayMilliseconds, periodMilliseconds, listener ); } void SocketReceiveMultiplexer::DetachPeriodicTimerListener( TimerListener *listener ) { impl_->DetachPeriodicTimerListener( listener ); } void SocketReceiveMultiplexer::Run() { impl_->Run(); } void SocketReceiveMultiplexer::RunUntilSigInt() { assert( multiplexerInstanceToAbortWithSigInt_ == 0 ); /* at present we support only one multiplexer instance running until sig int */ multiplexerInstanceToAbortWithSigInt_ = this; signal( SIGINT, InterruptSignalHandler ); impl_->Run(); signal( SIGINT, SIG_DFL ); multiplexerInstanceToAbortWithSigInt_ = 0; } void SocketReceiveMultiplexer::Break() { impl_->Break(); } void SocketReceiveMultiplexer::AsynchronousBreak() { impl_->AsynchronousBreak(); } faust-0.9.46/architecture/osclib/oscpack/ip/posix/NetworkingUtils.cpp0000644000175000017500000000357711702130733025667 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "ip/NetworkingUtils.h" #include #include #include #include #include NetworkInitializer::NetworkInitializer() {} NetworkInitializer::~NetworkInitializer() {} unsigned long GetHostByName( const char *name ) { unsigned long result = 0; struct hostent *h = gethostbyname( name ); if( h ){ struct in_addr a; memcpy( &a, h->h_addr_list[0], h->h_length ); result = ntohl(a.s_addr); } return result; } faust-0.9.46/architecture/osclib/oscpack/ip/TimerListener.h0000644000175000017500000000311211702130733023571 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_TIMERLISTENER_H #define INCLUDED_TIMERLISTENER_H class TimerListener{ public: virtual ~TimerListener() {} virtual void TimerExpired() = 0; }; #endif /* INCLUDED_TIMERLISTENER_H */ faust-0.9.46/architecture/osclib/oscpack/ip/IpEndpointName.h0000644000175000017500000000536511702130733023671 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_IPENDPOINTNAME_H #define INCLUDED_IPENDPOINTNAME_H class IpEndpointName{ static unsigned long GetHostByName( const char *s ); public: static const unsigned long ANY_ADDRESS = 0xFFFFFFFF; static const int ANY_PORT = -1; IpEndpointName() : address( ANY_ADDRESS ), port( ANY_PORT ) {} IpEndpointName( int port_ ) : address( ANY_ADDRESS ), port( port_ ) {} IpEndpointName( unsigned long ipAddress_, int port_ ) : address( ipAddress_ ), port( port_ ) {} IpEndpointName( const char *addressName, int port_=ANY_PORT ) : address( GetHostByName( addressName ) ) , port( port_ ) {} IpEndpointName( int addressA, int addressB, int addressC, int addressD, int port_=ANY_PORT ) : address( ( (addressA << 24) | (addressB << 16) | (addressC << 8) | addressD ) ) , port( port_ ) {} // address and port are maintained in host byte order here unsigned long address; int port; enum { ADDRESS_STRING_LENGTH=17 }; void AddressAsString( char *s ) const; enum { ADDRESS_AND_PORT_STRING_LENGTH=23}; void AddressAndPortAsString( char *s ) const; }; inline bool operator==( const IpEndpointName& lhs, const IpEndpointName& rhs ) { return (lhs.address == rhs.address && lhs.port == rhs.port ); } inline bool operator!=( const IpEndpointName& lhs, const IpEndpointName& rhs ) { return !(lhs == rhs); } #endif /* INCLUDED_IPENDPOINTNAME_H */ faust-0.9.46/architecture/osclib/oscpack/ip/NetworkingUtils.h0000644000175000017500000000365211702130733024164 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_NETWORKINGUTILS_H #define INCLUDED_NETWORKINGUTILS_H // in general NetworkInitializer is only used internally, but if you're // application creates multiple sockets from different threads at runtime you // should instantiate one of these in main just to make sure the networking // layer is initialized. class NetworkInitializer{ public: NetworkInitializer(); ~NetworkInitializer(); }; // return ip address of host name in host byte order unsigned long GetHostByName( const char *name ); #endif /* INCLUDED_NETWORKINGUTILS_H */ faust-0.9.46/architecture/osclib/oscpack/ip/PacketListener.h0000644000175000017500000000325511702130733023730 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDED_PACKETLISTENER_H #define INCLUDED_PACKETLISTENER_H class IpEndpointName; class PacketListener{ public: virtual ~PacketListener() {} virtual void ProcessPacket( const char *data, int size, const IpEndpointName& remoteEndpoint ) = 0; }; #endif /* INCLUDED_PACKETLISTENER_H */ faust-0.9.46/architecture/osclib/oscpack/ip/win32/0000755000175000017500000000000011702130733021577 5ustar orlareyorlareyfaust-0.9.46/architecture/osclib/oscpack/ip/win32/UdpSocket.cpp0000644000175000017500000003507111702130733024212 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "ip/UdpSocket.h" #include // this must come first to prevent errors with MSVC7 #include #include // for timeGetTime() #include #include #include #include #include #include "ip/NetworkingUtils.h" #include "ip/PacketListener.h" #include "ip/TimerListener.h" typedef int socklen_t; static void SockaddrFromIpEndpointName( struct sockaddr_in& sockAddr, const IpEndpointName& endpoint ) { memset( (char *)&sockAddr, 0, sizeof(sockAddr ) ); sockAddr.sin_family = AF_INET; sockAddr.sin_addr.s_addr = (endpoint.address == IpEndpointName::ANY_ADDRESS) ? INADDR_ANY : htonl( endpoint.address ); sockAddr.sin_port = (endpoint.port == IpEndpointName::ANY_PORT) ? (short)0 : htons( (short)endpoint.port ); } static IpEndpointName IpEndpointNameFromSockaddr( const struct sockaddr_in& sockAddr ) { return IpEndpointName( (sockAddr.sin_addr.s_addr == INADDR_ANY) ? IpEndpointName::ANY_ADDRESS : ntohl( sockAddr.sin_addr.s_addr ), (sockAddr.sin_port == 0) ? IpEndpointName::ANY_PORT : ntohs( sockAddr.sin_port ) ); } class UdpSocket::Implementation{ NetworkInitializer networkInitializer_; bool isBound_; bool isConnected_; SOCKET socket_; struct sockaddr_in connectedAddr_; struct sockaddr_in sendToAddr_; public: Implementation() : isBound_( false ) , isConnected_( false ) , socket_( INVALID_SOCKET ) { if( (socket_ = socket( AF_INET, SOCK_DGRAM, 0 )) == INVALID_SOCKET ){ throw std::runtime_error("unable to create udp socket\n"); } memset( &sendToAddr_, 0, sizeof(sendToAddr_) ); sendToAddr_.sin_family = AF_INET; } ~Implementation() { if (socket_ != INVALID_SOCKET) closesocket(socket_); } IpEndpointName LocalEndpointFor( const IpEndpointName& remoteEndpoint ) const { assert( isBound_ ); // first connect the socket to the remote server struct sockaddr_in connectSockAddr; SockaddrFromIpEndpointName( connectSockAddr, remoteEndpoint ); if (connect(socket_, (struct sockaddr *)&connectSockAddr, sizeof(connectSockAddr)) < 0) { throw std::runtime_error("unable to connect udp socket\n"); } // get the address struct sockaddr_in sockAddr; memset( (char *)&sockAddr, 0, sizeof(sockAddr ) ); socklen_t length = sizeof(sockAddr); if (getsockname(socket_, (struct sockaddr *)&sockAddr, &length) < 0) { throw std::runtime_error("unable to getsockname\n"); } if( isConnected_ ){ // reconnect to the connected address if (connect(socket_, (struct sockaddr *)&connectedAddr_, sizeof(connectedAddr_)) < 0) { throw std::runtime_error("unable to connect udp socket\n"); } }else{ // unconnect from the remote address struct sockaddr_in unconnectSockAddr; SockaddrFromIpEndpointName( unconnectSockAddr, IpEndpointName() ); if( connect(socket_, (struct sockaddr *)&unconnectSockAddr, sizeof(unconnectSockAddr)) < 0 && WSAGetLastError() != WSAEADDRNOTAVAIL ){ throw std::runtime_error("unable to un-connect udp socket\n"); } } return IpEndpointNameFromSockaddr( sockAddr ); } void Connect( const IpEndpointName& remoteEndpoint ) { SockaddrFromIpEndpointName( connectedAddr_, remoteEndpoint ); if (connect(socket_, (struct sockaddr *)&connectedAddr_, sizeof(connectedAddr_)) < 0) { throw std::runtime_error("unable to connect udp socket\n"); } isConnected_ = true; } void Send( const char *data, int size ) { assert( isConnected_ ); send( socket_, data, size, 0 ); } void SendTo( const IpEndpointName& remoteEndpoint, const char *data, int size ) { sendToAddr_.sin_addr.s_addr = htonl( remoteEndpoint.address ); sendToAddr_.sin_port = htons( (short)remoteEndpoint.port ); sendto( socket_, data, size, 0, (sockaddr*)&sendToAddr_, sizeof(sendToAddr_) ); } void Bind( const IpEndpointName& localEndpoint ) { struct sockaddr_in bindSockAddr; SockaddrFromIpEndpointName( bindSockAddr, localEndpoint ); if (bind(socket_, (struct sockaddr *)&bindSockAddr, sizeof(bindSockAddr)) < 0) { throw std::runtime_error("unable to bind udp socket\n"); } isBound_ = true; } bool IsBound() const { return isBound_; } int ReceiveFrom( IpEndpointName& remoteEndpoint, char *data, int size ) { assert( isBound_ ); struct sockaddr_in fromAddr; socklen_t fromAddrLen = sizeof(fromAddr); int result = recvfrom(socket_, data, size, 0, (struct sockaddr *) &fromAddr, (socklen_t*)&fromAddrLen); if( result < 0 ) return 0; remoteEndpoint.address = ntohl(fromAddr.sin_addr.s_addr); remoteEndpoint.port = ntohs(fromAddr.sin_port); return result; } SOCKET& Socket() { return socket_; } }; UdpSocket::UdpSocket() { impl_ = new Implementation(); } UdpSocket::~UdpSocket() { delete impl_; } IpEndpointName UdpSocket::LocalEndpointFor( const IpEndpointName& remoteEndpoint ) const { return impl_->LocalEndpointFor( remoteEndpoint ); } void UdpSocket::Connect( const IpEndpointName& remoteEndpoint ) { impl_->Connect( remoteEndpoint ); } void UdpSocket::Send( const char *data, int size ) { impl_->Send( data, size ); } void UdpSocket::SendTo( const IpEndpointName& remoteEndpoint, const char *data, int size ) { impl_->SendTo( remoteEndpoint, data, size ); } void UdpSocket::Bind( const IpEndpointName& localEndpoint ) { impl_->Bind( localEndpoint ); } bool UdpSocket::IsBound() const { return impl_->IsBound(); } int UdpSocket::ReceiveFrom( IpEndpointName& remoteEndpoint, char *data, int size ) { return impl_->ReceiveFrom( remoteEndpoint, data, size ); } struct AttachedTimerListener{ AttachedTimerListener( int id, int p, TimerListener *tl ) : initialDelayMs( id ) , periodMs( p ) , listener( tl ) {} int initialDelayMs; int periodMs; TimerListener *listener; }; static bool CompareScheduledTimerCalls( const std::pair< double, AttachedTimerListener > & lhs, const std::pair< double, AttachedTimerListener > & rhs ) { return lhs.first < rhs.first; } SocketReceiveMultiplexer *multiplexerInstanceToAbortWithSigInt_ = 0; extern "C" /*static*/ void InterruptSignalHandler( int ); /*static*/ void InterruptSignalHandler( int ) { multiplexerInstanceToAbortWithSigInt_->AsynchronousBreak(); signal( SIGINT, SIG_DFL ); } class SocketReceiveMultiplexer::Implementation{ NetworkInitializer networkInitializer_; std::vector< std::pair< PacketListener*, UdpSocket* > > socketListeners_; std::vector< AttachedTimerListener > timerListeners_; volatile bool break_; HANDLE breakEvent_; double GetCurrentTimeMs() const { return timeGetTime(); // FIXME: bad choice if you want to run for more than 40 days } public: Implementation() { breakEvent_ = CreateEvent( NULL, FALSE, FALSE, NULL ); } ~Implementation() { CloseHandle( breakEvent_ ); } void AttachSocketListener( UdpSocket *socket, PacketListener *listener ) { assert( std::find( socketListeners_.begin(), socketListeners_.end(), std::make_pair(listener, socket) ) == socketListeners_.end() ); // we don't check that the same socket has been added multiple times, even though this is an error socketListeners_.push_back( std::make_pair( listener, socket ) ); } void DetachSocketListener( UdpSocket *socket, PacketListener *listener ) { std::vector< std::pair< PacketListener*, UdpSocket* > >::iterator i = std::find( socketListeners_.begin(), socketListeners_.end(), std::make_pair(listener, socket) ); assert( i != socketListeners_.end() ); socketListeners_.erase( i ); } void AttachPeriodicTimerListener( int periodMilliseconds, TimerListener *listener ) { timerListeners_.push_back( AttachedTimerListener( periodMilliseconds, periodMilliseconds, listener ) ); } void AttachPeriodicTimerListener( int initialDelayMilliseconds, int periodMilliseconds, TimerListener *listener ) { timerListeners_.push_back( AttachedTimerListener( initialDelayMilliseconds, periodMilliseconds, listener ) ); } void DetachPeriodicTimerListener( TimerListener *listener ) { std::vector< AttachedTimerListener >::iterator i = timerListeners_.begin(); while( i != timerListeners_.end() ){ if( i->listener == listener ) break; ++i; } assert( i != timerListeners_.end() ); timerListeners_.erase( i ); } void Run() { break_ = false; // prepare the window events which we use to wake up on incoming data // we use this instead of select() primarily to support the AsyncBreak() // mechanism. std::vector events( socketListeners_.size() + 1, 0 ); int j=0; for( std::vector< std::pair< PacketListener*, UdpSocket* > >::iterator i = socketListeners_.begin(); i != socketListeners_.end(); ++i, ++j ){ HANDLE event = CreateEvent( NULL, FALSE, FALSE, NULL ); WSAEventSelect( i->second->impl_->Socket(), event, FD_READ ); // note that this makes the socket non-blocking which is why we can safely call RecieveFrom() on all sockets below events[j] = event; } events[ socketListeners_.size() ] = breakEvent_; // last event in the collection is the break event // configure the timer queue double currentTimeMs = GetCurrentTimeMs(); // expiry time ms, listener std::vector< std::pair< double, AttachedTimerListener > > timerQueue_; for( std::vector< AttachedTimerListener >::iterator i = timerListeners_.begin(); i != timerListeners_.end(); ++i ) timerQueue_.push_back( std::make_pair( currentTimeMs + i->initialDelayMs, *i ) ); std::sort( timerQueue_.begin(), timerQueue_.end(), CompareScheduledTimerCalls ); const int MAX_BUFFER_SIZE = 4098; char *data = new char[ MAX_BUFFER_SIZE ]; IpEndpointName remoteEndpoint; while( !break_ ){ double currentTimeMs = GetCurrentTimeMs(); DWORD waitTime = INFINITE; if( !timerQueue_.empty() ){ waitTime = (DWORD)( timerQueue_.front().first >= currentTimeMs ? timerQueue_.front().first - currentTimeMs : 0 ); } DWORD waitResult = WaitForMultipleObjects( (DWORD)socketListeners_.size() + 1, &events[0], FALSE, waitTime ); if( break_ ) break; if( waitResult != WAIT_TIMEOUT ){ for( int i = waitResult - WAIT_OBJECT_0; i < (int)socketListeners_.size(); ++i ){ int size = socketListeners_[i].second->ReceiveFrom( remoteEndpoint, data, MAX_BUFFER_SIZE ); if( size > 0 ){ socketListeners_[i].first->ProcessPacket( data, size, remoteEndpoint ); if( break_ ) break; } } } // execute any expired timers currentTimeMs = GetCurrentTimeMs(); bool resort = false; for( std::vector< std::pair< double, AttachedTimerListener > >::iterator i = timerQueue_.begin(); i != timerQueue_.end() && i->first <= currentTimeMs; ++i ){ i->second.listener->TimerExpired(); if( break_ ) break; i->first += i->second.periodMs; resort = true; } if( resort ) std::sort( timerQueue_.begin(), timerQueue_.end(), CompareScheduledTimerCalls ); } delete [] data; // free events j = 0; for( std::vector< std::pair< PacketListener*, UdpSocket* > >::iterator i = socketListeners_.begin(); i != socketListeners_.end(); ++i, ++j ){ WSAEventSelect( i->second->impl_->Socket(), events[j], 0 ); // remove association between socket and event CloseHandle( events[j] ); unsigned long enableNonblocking = 0; ioctlsocket( i->second->impl_->Socket(), FIONBIO, &enableNonblocking ); // make the socket blocking again } } void Break() { break_ = true; } void AsynchronousBreak() { break_ = true; SetEvent( breakEvent_ ); } }; SocketReceiveMultiplexer::SocketReceiveMultiplexer() { impl_ = new Implementation(); } SocketReceiveMultiplexer::~SocketReceiveMultiplexer() { delete impl_; } void SocketReceiveMultiplexer::AttachSocketListener( UdpSocket *socket, PacketListener *listener ) { impl_->AttachSocketListener( socket, listener ); } void SocketReceiveMultiplexer::DetachSocketListener( UdpSocket *socket, PacketListener *listener ) { impl_->DetachSocketListener( socket, listener ); } void SocketReceiveMultiplexer::AttachPeriodicTimerListener( int periodMilliseconds, TimerListener *listener ) { impl_->AttachPeriodicTimerListener( periodMilliseconds, listener ); } void SocketReceiveMultiplexer::AttachPeriodicTimerListener( int initialDelayMilliseconds, int periodMilliseconds, TimerListener *listener ) { impl_->AttachPeriodicTimerListener( initialDelayMilliseconds, periodMilliseconds, listener ); } void SocketReceiveMultiplexer::DetachPeriodicTimerListener( TimerListener *listener ) { impl_->DetachPeriodicTimerListener( listener ); } void SocketReceiveMultiplexer::Run() { impl_->Run(); } void SocketReceiveMultiplexer::RunUntilSigInt() { assert( multiplexerInstanceToAbortWithSigInt_ == 0 ); /* at present we support only one multiplexer instance running until sig int */ multiplexerInstanceToAbortWithSigInt_ = this; signal( SIGINT, InterruptSignalHandler ); impl_->Run(); signal( SIGINT, SIG_DFL ); multiplexerInstanceToAbortWithSigInt_ = 0; } void SocketReceiveMultiplexer::Break() { impl_->Break(); } void SocketReceiveMultiplexer::AsynchronousBreak() { impl_->AsynchronousBreak(); } faust-0.9.46/architecture/osclib/oscpack/ip/win32/NetworkingUtils.cpp0000644000175000017500000000566311702130733025465 0ustar orlareyorlarey/* oscpack -- Open Sound Control packet manipulation library http://www.audiomulch.com/~rossb/oscpack Copyright (c) 2004-2005 Ross Bencina Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "ip/NetworkingUtils.h" #include // this must come first to prevent errors with MSVC7 #include #include #include static LONG initCount_ = 0; static bool winsockInitialized_ = false; NetworkInitializer::NetworkInitializer() { if( InterlockedIncrement( &initCount_ ) == 1 ){ // there is a race condition here if one thread tries to access // the library while another is still initializing it. // i can't think of an easy way to fix it so i'm telling you here // incase you need to init the library from two threads at once. // this is why the header file advises to instantiate one of these // in main() so that the initialization happens globally // initialize winsock WSAData wsaData; int nCode = WSAStartup(MAKEWORD(1, 1), &wsaData); if( nCode != 0 ){ //std::cout << "WSAStartup() failed with error code " << nCode << "\n"; }else{ winsockInitialized_ = true; } } } NetworkInitializer::~NetworkInitializer() { if( InterlockedDecrement( &initCount_ ) == 0 ){ if( winsockInitialized_ ){ WSACleanup(); winsockInitialized_ = false; } } } unsigned long GetHostByName( const char *name ) { NetworkInitializer networkInitializer; unsigned long result = 0; struct hostent *h = gethostbyname( name ); if( h ){ struct in_addr a; memcpy( &a, h->h_addr_list[0], h->h_length ); result = ntohl(a.s_addr); } return result; } faust-0.9.46/architecture/osclib/oscpack/TODO0000644000175000017500000000453011702130733020717 0ustar orlareyorlareyTODO: - consider adding the local endpoint name to PacketListener::PacketReceived() params - consider adding ListenerThread class to support old seperate thread listener functionality, something like: class UdpSocketListenerThread{ public: UdpSocketListenerThread( UdpSocket& socket, Listener *listener ); UdpSocketListenerThread( UdpSocketReceiveMultiplexer *mux ); ~UdpSocketListenerThread(); void Run(); void Stop(); }; - provide some kind of automatic endianness configuration (hopefully there are gcc symbols for this) - work out a way to make the parsing classes totally safe. at a minimum this means adding functions to test for invalid float/doublevalues, making sure the iterators never pass the end of the message, ... (passing end of message can happen if: - too many args in type tags a. typetags overflow message size b. args fulfilling typetags overflow message size - strings too long or not terminated correctly - blobs too long or not terminated correctly if the message was fully checked during construction, the end() iterator could be moved back until only arguments which fit withing size() may be interated (this could be none). A flag could be set to indicate that something was wrong. - other packet badness could include: - time tags too far into the future (the scheduler should deal with that i guess). - message address patterns which aren't correctly terminated - improve the ability to parse messages without tags (SC uses methods which get the data and advance the iterator in one step.) - Check* could be modified to do this - ie if typetags are not present it could check that reading the field won't escape the message size and return the data, or return false if some consistency constraint is violated. (or alternately drop support for messages without type tags) - add a method to discard an inprogress message if it gets half constructed and the buffer is full in OutboundPacket - write a stress testing app which can send garbage packets to try to flush out other bugs in the parsing code. faust-0.9.46/architecture/osclib/readme.txt0000644000175000017500000000503011702130733020576 0ustar orlareyorlarey====================================================================== FAUST OSC Library ====================================================================== ---------------------------------------------------------------------- Compiling the library ---------------------------------------------------------------------- The Faust OSC library project depends on the oscpack library, which is included in this distribution. You should first compile the oscpack library before compiling the FAUST OSC library. Both libraries rely on CMake, a cross-platform, open-source build system (see at http://www.cmake.org). 1) Compiling oscpack ----------------------------------- To compile: change to oscpack/cmake directory type: cmake -G "your target generator" run your project/makefile and compile Typically on linux systems: > cd oscpack/cmake > cmake -G "Unix Makefiles" > make The compiler output is a static library named liboscpack.a and placed in the 'osclib' folder. Note that when 'Release' and 'Debug' targets apply, only the 'Release' output goes to the 'osclib' folder. 2) Compiling the FAUST OSC library ----------------------------------- To compile: change to faust/cmake directory type: cmake -G "your target generator" run your project/makefile and compile Typically on linux systems: > cd faust/cmake > cmake -G "Unix Makefiles" > make The compiler output is a static library named libOSCFaust.a and placed in the 'osclib' folder. Note that when 'Release' and 'Debug' targets apply, only the 'Release' output goes to the 'osclib' folder. ---------------------------------------------------------------------- Using the library ---------------------------------------------------------------------- The library provides a single interface file: OSCControler.h The following options should be used to compile: -Iosclib/faust/include -Losclib -loscpack -lOSCFaust See the faust/readme.txt file for more details about the library. ---------------------------------------------------------------------- Examples ---------------------------------------------------------------------- The FAUST OSC architecture should be typically combined with other architectures. The file 'OSCUI.h' provides the basis for such combination and the file 'jack-console-osc.cpp' provides an example of combination. ====================================================================== In case of trouble, contact me: ---------------------------------------------------------------------- Copyright 2011 (c) Grame faust-0.9.46/architecture/effect.lib0000644000175000017500000015522611702130733017266 0ustar orlareyorlareydeclare name "Faust Audio Effect Library"; declare author "Julius O. Smith (jos at ccrma.stanford.edu)"; declare copyright "Julius O. Smith III"; declare version "1.33"; declare license "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license) declare reference "https://ccrma.stanford.edu/realsimple/faust_strings/"; import("filter.lib"); // dcblocker*, lowpass, filterbank, ... // The following utilities (or equivalents) could go in music.lib: //----------------------- midikey2hz,pianokey2hz ------------------------ midikey2hz(x) = 440.0*pow(2.0, (x-69.0)/12); // MIDI key 69 = A440 pianokey2hz(x) = 440.0*pow(2.0, (x-49.0)/12); // piano key 49 = A440 //---------------- cross2, bypass1, bypass2, select2stereo -------------- // cross2 = _,_,_,_ <: _,!,_,!,!,_,!,_; bypass1(bpc,e) = _ <: select2(bpc,(inswitch:e),_) with {inswitch = select2(bpc,_,0);}; bypass2(bpc,e) = _,_ <: ((inswitch:e),_,_) : select2stereo(bpc) with { inswitch = _,_ : (select2(bpc,_,0), select2(bpc,_,0)) : _,_; }; select2stereo(bpc) = cross2 : select2(bpc), select2(bpc) : _,_; //---------------------- levelfilter, levelfilterN ---------------------- // Dynamic level lowpass filter: // // USAGE: levelfilter(L,freq), where // L = desired level (in dB) at Nyquist limit (SR/2), e.g., -60 // freq = corner frequency (-3dB point) usually set to fundamental freq // // REFERENCE: // https://ccrma.stanford.edu/realsimple/faust_strings/Dynamic_Level_Lowpass_Filter.html // levelfilter(L,freq,x) = (L * L0 * x) + ((1.0-L) * lp2out(x)) with { L0 = pow(L,1/3); Lw = PI*freq/SR; // = w1 T / 2 Lgain = Lw / (1.0 + Lw); Lpole2 = (1.0 - Lw) / (1.0 + Lw); lp2out = *(Lgain) : + ~ *(Lpole2); }; levelfilterN(N,freq,L) = seq(i,N,levelfilter((L/N),freq)); //------------------------- speakerbp ------------------------------- // Dirt-simple speaker simulator (overall bandpass eq with observed // roll-offs above and below the passband). // // Low-frequency speaker model = +12 dB/octave slope breaking to // flat near f1. Implemented using two dc blockers in series. // // High-frequency model = -24 dB/octave slope implemented using a // fourth-order Butterworth lowpass. // // Example based on measured Celestion G12 (12" speaker): // speakerbp(130,5000); // // Requires filter.lib // speakerbp(f1,f2) = dcblockerat(f1) : dcblockerat(f1) : lowpass(4,f2); //--------------------- cubicnl(drive,offset) ----------------------- // Cubic nonlinearity distortion // // USAGE: cubicnl(drive,offset), where // drive = distortion amount, between 0 and 1 // offset = constant added before nonlinearity to give even harmonics // Note: offset can introduce a nonzero mean - feed // cubicnl output to dcblocker to remove this. // // REFERENCES: // https://ccrma.stanford.edu/~jos/pasp/Cubic_Soft_Clipper.html // https://ccrma.stanford.edu/~jos/pasp/Nonlinear_Distortion.html // cubicnl(drive,offset) = *(pregain) : +(offset) : clip(-1,1) : cubic with { pregain = pow(10.0,2*drive); clip(lo,hi) = min(hi) : max(lo); cubic(x) = x - x*x*x/3; postgain = max(1.0,1.0/pregain); // unity gain when nearly linear }; cubicnl_nodc(drive,offset) = cubicnl(drive,offset) : dcblocker; //--------------------------- cubicnl_demo -------------------------- // USAGE: _ : cubicnl_demo : _; // cubicnl_demo = bypass1(bp, cubicnl_nodc(drive:smooth(0.999),offset:smooth(0.999))) with { cnl_group(x) = vgroup("CUBIC NONLINEARITY cubicnl [tooltip: Reference: https://ccrma.stanford.edu/~jos/pasp/Cubic_Soft_Clipper.html]", x); // bypass_group(x) = cnl_group(hgroup("[0]", x)); slider_group(x) = cnl_group(hgroup("[1]", x)); // bp = bypass_group(checkbox("[0] Bypass bp = slider_group(checkbox("[0] Bypass [tooltip: When this is checked, the nonlinearity has no effect]")); // drive = slider_group(vslider("[1] Drive [style: knob] drive = slider_group(hslider("[1] Drive [tooltip: Amount of distortion]", 0, 0, 1, 0.01)); // offset = slider_group(vslider("[2] Offset [style: knob] offset = slider_group(hslider("[2] Offset [tooltip: Brings in even harmonics]", 0, 0, 1, 0.01)); }; //------------------------- moog_vcf(res,fr) --------------------------- // Moog "Voltage Controlled Filter" (VCF) in "analog" form // // USAGE: moog_vcf(res,fr), where // fr = corner-resonance frequency in Hz ( less than SR/6.3 or so ) // res = Normalized amount of corner-resonance between 0 and 1 // (0 is no resonance, 1 is maximum) // Requires filter.lib. // // DESCRIPTION: Moog VCF implemented using the same logical block diagram // as the classic analog circuit. As such, it neglects the one-sample // delay associated with the feedback path around the four one-poles. // This extra delay alters the response, especially at high frequencies // (see reference [1] for details). // See moog_vcf_2b below for a more accurate implementation. // // REFERENCES: // [1] https://ccrma.stanford.edu/~stilti/papers/moogvcf.pdf // [2] https://ccrma.stanford.edu/~jos/pasp/vegf.html // moog_vcf(res,fr) = (+ : seq(i,4,pole(p)) : *(unitygain(p))) ~ *(mk) with { p = 1.0 - fr * 2.0 * PI / SR; // good approximation for fr << SR unitygain(p) = pow(1.0-p,4.0); // one-pole unity-gain scaling mk = -4.0*max(0,min(res,0.999999)); // need mk > -4 for stability }; //----------------------- moog_vcf_2b[n] --------------------------- // Moog "Voltage Controlled Filter" (VCF) as two biquads // // USAGE: // moog_vcf_2b(res,fr) // moog_vcf_2bn(res,fr) // where // fr = corner-resonance frequency in Hz // res = Normalized amount of corner-resonance between 0 and 1 // (0 is min resonance, 1 is maximum) // // DESCRIPTION: Implementation of the ideal Moog VCF transfer // function factored into second-order sections. As a result, it is // more accurate than moog_vcf above, but its coefficient formulas are // more complex when one or both parameters are varied. Here, res // is the fourth root of that in moog_vcf, so, as the sampling rate // approaches infinity, moog_vcf(res,fr) becomes equivalent // to moog_vcf_2b[n](res^4,fr) (when res and fr are constant). // // moog_vcf_2b uses two direct-form biquads (tf2) // moog_vcf_2bn uses two protected normalized-ladder biquads (tf2np) // // REQUIRES: filter.lib // moog_vcf_2b(res,fr) = tf2s(0,0,b0,a11,a01,w1) : tf2s(0,0,b0,a12,a02,w1) with { s = 1; // minus the open-loop location of all four poles frl = max(20,min(10000,fr)); // limit fr to reasonable 20-10k Hz range w1 = 2*PI*frl; // frequency-scaling parameter for bilinear xform // Equivalent: w1 = 1; s = 2*PI*frl; kmax = sqrt(2)*0.999; // 0.999 gives stability margin (tf2 is unprotected) k = min(kmax,sqrt(2)*res); // fourth root of Moog VCF feedback gain b0 = s^2; s2k = sqrt(2) * k; a11 = s * (2 + s2k); a12 = s * (2 - s2k); a01 = b0 * (1 + s2k + k^2); a02 = b0 * (1 - s2k + k^2); }; moog_vcf_2bn(res,fr) = tf2snp(0,0,b0,a11,a01,w1) : tf2snp(0,0,b0,a12,a02,w1) with { s = 1; // minus the open-loop location of all four poles w1 = 2*PI*max(fr,20); // frequency-scaling parameter for bilinear xform k = sqrt(2)*0.999*res; // fourth root of Moog VCF feedback gain b0 = s^2; s2k = sqrt(2) * k; a11 = s * (2 + s2k); a12 = s * (2 - s2k); a01 = b0 * (1 + s2k + k^2); a02 = b0 * (1 - s2k + k^2); }; //------------------------- moog_vcf_demo --------------------------- // Illustrate and compare all three Moog VCF implementations above // (called by /examples/vcf_wah_pedals.dsp). // // USAGE: _ : moog_vcf_demo : _; moog_vcf_demo = bypass1(bp,vcf) with { mvcf_group(x) = hgroup("MOOG VCF (Voltage Controlled Filter) [tooltip: See Faust's effect.lib for info and references]",x); meter_group(x) = mvcf_group(vgroup("[0]",x)); cb_group(x) = meter_group(hgroup("[0]",x)); bp = cb_group(checkbox("[0] Bypass [tooltip: When this is checked, the Moog VCF has no effect]")); archsw = cb_group(checkbox("[1] Use Biquads [tooltip: Select moog_vcf_2b (two-biquad) implementation, instead of the default moog_vcf (analog style) implementation]")); bqsw = cb_group(checkbox("[2] Normalized Ladders [tooltip: If using biquads, make them normalized ladders (moog_vcf_2bn)]")); freq = mvcf_group(hslider("[1] Corner Frequency [unit:PK] [style:knob] [tooltip: The VCF resonates at the corner frequency (specified in PianoKey (PK) units, with A440 = 49 PK). The VCF response is flat below the corner frequency, and rolls off -24 dB per octave above.]", 25, 1, 88, 0.01) : pianokey2hz) : smooth(0.999); res = mvcf_group(hslider("[2] Corner Resonance [style:knob] [tooltip: Amount of resonance near VCF corner frequency (specified between 0 and 1)]", 0.9, 0, 1, 0.01)); outgain = meter_group(hslider("[1] VCF Output Level [unit:dB] [tooltip: output level in decibels]", 5, -60, 20, 0.1)) : smooth(0.999) : component("music.lib").db2linear; vcfbq = _ <: select2(bqsw, moog_vcf_2b(res,freq), moog_vcf_2bn(res,freq)); vcfarch = _ <: select2(archsw, moog_vcf(res^4,freq), vcfbq); vcf = vcfarch : *(outgain); }; //-------------------------- wah4(fr) ------------------------------- // Wah effect, 4th order // USAGE: wah4(fr), where fr = resonance frequency in Hz // REFERENCE "https://ccrma.stanford.edu/~jos/pasp/vegf.html"; // wah4(fr) = 4*moog_vcf((3.2/4),fr:smooth(0.999)); //------------------------- wah4_demo --------------------------- // USAGE: _ : wah4_demo : _; wah4_demo = bypass1(bp, wah4(fr)) with { wah4_group(x) = hgroup("WAH4 [tooltip: Fourth-order wah effect made using moog_vcf]", x); bp = wah4_group(checkbox("[0] Bypass [tooltip: When this is checked, the wah pedal has no effect]")); fr = wah4_group(hslider("[1] Resonance Frequency [tooltip: wah resonance frequency in Hz]", 200,100,2000,1)); // Avoid dc with the moog_vcf (amplitude too high when freq comes up from dc) // Also, avoid very high resonance frequencies (e.g., 5kHz or above). }; //------------------------ autowah(level) ----------------------------- // Auto-wah effect // USAGE: _ : autowah(level) : _; // where level = amount of effect desired (0 to 1). // autowah(level,x) = level * crybaby(amp_follower(0.1,x),x) + (1.0-level)*x; //-------------------------- crybaby(wah) ----------------------------- // Digitized CryBaby wah pedal // USAGE: _ : crybaby(wah) : _; // where wah = "pedal angle" from 0 to 1. // REFERENCE: https://ccrma.stanford.edu/~jos/pasp/vegf.html // crybaby(wah) = *(gs) : tf2(1,-1,0,a1s,a2s) with { Q = pow(2.0,(2.0*(1.0-wah)+1.0)); // Resonance "quality factor" fr = 450.0*pow(2.0,2.3*wah); // Resonance tuning g = 0.1*pow(4.0,wah); // gain (optional) // Biquad fit using z = exp(s T) ~ 1 + sT for low frequencies: frn = fr/SR; // Normalized pole frequency (cycles per sample) R = 1 - PI*frn/Q; // pole radius theta = 2*PI*frn; // pole angle a1 = 0-2.0*R*cos(theta); // biquad coeff a2 = R*R; // biquad coeff // dezippering of slider-driven signals: s = 0.999; // smoothing parameter (one-pole pole location) a1s = a1 : smooth(s); a2s = a2 : smooth(s); gs = g : smooth(s); tf2 = component("filter.lib").tf2; }; //------------------------- crybaby_demo --------------------------- // USAGE: _ : crybaby_demo : _ ; crybaby_demo = bypass1(bp, crybaby(wah)) with { crybaby_group(x) = hgroup("CRYBABY [tooltip: Reference: https://ccrma.stanford.edu/~jos/pasp/vegf.html]", x); bp = crybaby_group(checkbox("[0] Bypass [tooltip: When this is checked, the wah pedal has no effect]")); wah = crybaby_group(hslider("[1] Wah parameter [tooltip: wah pedal angle between 0 (rocked back) and 1 (rocked forward)]",0.8,0,1,0.01)); }; //------------ apnl(a1,a2) --------------- // Passive Nonlinear Allpass: // switch between allpass coefficient a1 and a2 at signal zero crossings // REFERENCE: // "A Passive Nonlinear Digital Filter Design ..." // by John R. Pierce and Scott A. Van Duyne, // JASA, vol. 101, no. 2, pp. 1120-1126, 1997 // Written by Romain Michon and JOS based on Pierce switching springs idea: apnl(a1,a2,x) = nonLinFilter with{ condition = _>0; nonLinFilter = (x - _ <: _*(condition*a1 + (1-condition)*a2),_')~_ :> +; }; //------------ piano_dispersion_filter(M,B,f0) --------------- // Piano dispersion allpass filter in closed form // // ARGUMENTS: // M = number of first-order allpass sections (compile-time only) // Keep below 20. 8 is typical for medium-sized piano strings. // B = string inharmonicity coefficient (0.0001 is typical) // f0 = fundamental frequency in Hz // // INPUT: // Signal to be filtered by the allpass chain // // OUTPUTS: // 1. MINUS the estimated delay at f0 of allpass chain in samples, // provided in negative form to facilitate subtraction // from delay-line length (see USAGE below). // 2. Output signal from allpass chain // // USAGE: // piano_dispersion_filter(1,B,f0) : +(totalDelay),_ : fdelay(maxDelay) // // REFERENCE: // "Dispersion Modeling in Waveguide Piano Synthesis // Using Tunable Allpass Filters", // by Jukka Rauhala and Vesa Valimaki, DAFX-2006, pp. 71-76 // URL: http://www.dafx.ca/proceedings/papers/p_071.pdf // NOTE: An erratum in Eq. (7) is corrected in Dr. Rauhala's // encompassing dissertation (and below). // See also: http://www.acoustics.hut.fi/research/asp/piano/ // piano_dispersion_filter(M,B,f0) = -Df0*M,seq(i,M,tf1(a1,1,a1)) with { a1 = (1-D)/(1+D); // By Eq. 3, have D >= 0, hence a1 >= 0 also D = exp(Cd - Ikey(f0)*kd); trt = pow(2.0,1.0/12.0); // 12th root of 2 logb(b,x) = log(x) / log(b); // log-base-b of x Ikey(f0) = logb(trt,f0*trt/27.5); Bc = max(B,0.000001); kd = exp(k1*log(Bc)*log(Bc) + k2*log(Bc)+k3); Cd = exp((m1*log(M)+m2)*log(Bc)+m3*log(M)+m4); k1 = -0.00179; k2 = -0.0233; k3 = -2.93; m1 = 0.0126; m2 = 0.0606; m3 = -0.00825; m4 = 1.97; wT = 2*PI*f0/SR; polydel(a) = atan(sin(wT)/(a+cos(wT)))/wT; Df0 = polydel(a1) - polydel(1.0/a1); }; //===================== Phasing and Flanging Effects ==================== //--------------- flanger_mono, flanger_stereo, flanger_demo ------------- // Flanging effect // // USAGE: // _ : flanger_mono(dmax,curdel,depth,fb,invert) : _; // _,_ : flanger_stereo(dmax,curdel1,curdel2,depth,fb,invert) : _,_; // _,_ : flanger_demo : _,_; // // ARGUMENTS: // dmax = maximum delay-line length (power of 2) - 10 ms typical // curdel = current dynamic delay (not to exceed dmax) // depth = effect strength between 0 and 1 (1 typical) // fb = feedback gain between 0 and 1 (0 typical) // invert = 0 for normal, 1 to invert sign of flanging sum // // REFERENCE: // https://ccrma.stanford.edu/~jos/pasp/Flanging.html // flanger_mono(dmax,curdel,depth,fb,invert) = _ <: _, (-:fdelay(dmax,curdel)) ~ *(fb) : _, *(select2(invert,depth,0-depth)) : + : *(0.5); flanger_stereo(dmax,curdel1,curdel2,depth,fb,invert) = flanger_mono(dmax,curdel1,depth,fb,invert), flanger_mono(dmax,curdel2,depth,fb,invert); //------------------------- flanger_demo --------------------------- // USAGE: _,_ : flanger_demo : _,_; // flanger_demo = bypass2(fbp,flanger_stereo_demo) with { flanger_group(x) = vgroup("FLANGER [tooltip: Reference: https://ccrma.stanford.edu/~jos/pasp/Flanging.html]", x); meter_group(x) = flanger_group(hgroup("[0]", x)); ctl_group(x) = flanger_group(hgroup("[1]", x)); del_group(x) = flanger_group(hgroup("[2] Delay Controls", x)); lvl_group(x) = flanger_group(hgroup("[3]", x)); fbp = meter_group(checkbox( "[0] Bypass [tooltip: When this is checked, the flanger has no effect]")); invert = meter_group(checkbox("[1] Invert Flange Sum")); // FIXME: This should be an amplitude-response display: flangeview = lfor(freq) + lfol(freq) : meter_group(hbargraph( "[2] Flange LFO [style: led] [tooltip: Display sum of flange delays]", -1.5,+1.5)); flanger_stereo_demo(x,y) = attach(x,flangeview),y : *(level),*(level) : flanger_stereo(dmax,curdel1,curdel2,depth,fb,invert); lfol = component("oscillator.lib").oscrs; // sine for left channel lfor = component("oscillator.lib").oscrc; // cosine for right channel dmax = 2048; dflange = 0.001 * SR * del_group(hslider("[1] Flange Delay [unit:ms] [style:knob]", 10, 0, 20, 0.001)); odflange = 0.001 * SR * del_group(hslider("[2] Delay Offset [unit:ms] [style:knob]", 1, 0, 20, 0.001)); freq = ctl_group(hslider("[1] Speed [unit:Hz] [style:knob]", 0.5, 0, 10, 0.01)); depth = ctl_group(hslider("[2] Depth [style:knob]", 1, 0, 1, 0.001)); fb = ctl_group(hslider("[3] Feedback [style:knob]", 0, -0.999, 0.999, 0.001)); level = lvl_group(hslider("Flanger Output Level [unit:dB]", 0, -60, 10, 0.1)) : db2linear; curdel1 = odflange+dflange*(1 + lfol(freq))/2; curdel2 = odflange+dflange*(1 + lfor(freq))/2; }; //------- phaser2_mono, phaser2_stereo, phaser2_demo ------- // Phasing effect // // USAGE: // _ : phaser2_mono(Notches,width,frqmin,fratio,frqmax,speed,depth,fb,invert) : _; // _,_ : phaser2_stereo(") : _,_; // _,_ : phaser2_demo : _,_; // // ARGUMENTS: // Notches = number of spectral notches (MACRO ARGUMENT - not a signal) // width = approximate width of spectral notches in Hz // frqmin = approximate minimum frequency of first spectral notch in Hz // fratio = ratio of adjacent notch frequencies // frqmax = approximate maximum frequency of first spectral notch in Hz // speed = LFO frequency in Hz (rate of periodic notch sweep cycles) // depth = effect strength between 0 and 1 (1 typical) (aka "intensity") // when depth=2, "vibrato mode" is obtained (pure allpass chain) // fb = feedback gain between -1 and 1 (0 typical) // invert = 0 for normal, 1 to invert sign of flanging sum // // REFERENCES: // https://ccrma.stanford.edu/~jos/pasp/Phasing.html // http://www.geofex.com/Article_Folders/phasers/phase.html // 'An Allpass Approach to Digital Phasing and Flanging', Julius O. Smith III, // Proc. Int. Computer Music Conf. (ICMC-84), pp. 103-109, Paris, 1984. // CCRMA Tech. Report STAN-M-21: https://ccrma.stanford.edu/STANM/stanms/stanm21/ vibrato2_mono(sections,phase01,fb,width,frqmin,fratio,frqmax,speed) = (+ : seq(i,sections,ap2p(R,th(i)))) ~ *(fb) with { tf2 = component("filter.lib").tf2; // second-order resonant digital allpass given pole radius and angle: ap2p(R,th) = tf2(a2,a1,1,a1,a2) with { a2 = R^2; a1 = -2*R*cos(th); }; SR = component("music.lib").SR; R = exp(-pi*width/SR); cososc = component("oscillator.lib").oscrc; sinosc = component("oscillator.lib").oscrs; osc = cososc(speed) * phase01 + sinosc(speed) * (1-phase01); lfo = (1-osc)/2; // in [0,1] pi = 4*atan(1); thmin = 2*pi*frqmin/SR; thmax = 2*pi*frqmax/SR; th1 = thmin + (thmax-thmin)*lfo; th(i) = (fratio^(i+1))*th1; }; phaser2_mono(Notches,phase01,width,frqmin,fratio,frqmax,speed,depth,fb,invert) = _ <: *(g1) + g2mi*vibrato2_mono(Notches,phase01,fb,width,frqmin,fratio,frqmax,speed) with { // depth=0 => direct-signal only g1 = 1-depth/2; // depth=1 => phaser mode (equal sum of direct and allpass-chain) g2 = depth/2; // depth=2 => vibrato mode (allpass-chain signal only) g2mi = select2(invert,g2,-g2); // inversion negates the allpass-chain signal }; phaser2_stereo(Notches,width,frqmin,fratio,frqmax,speed,depth,fb,invert) = phaser2_mono(Notches,0,width,frqmin,fratio,frqmax,speed,depth,fb,invert), phaser2_mono(Notches,1,width,frqmin,fratio,frqmax,speed,depth,fb,invert); //------------------------- phaser2_demo --------------------------- // USAGE: _,_ : phaser2_demo : _,_; // phaser2_demo = bypass2(pbp,phaser2_stereo_demo) with { phaser2_group(x) = vgroup("PHASER2 [tooltip: Reference: https://ccrma.stanford.edu/~jos/pasp/Flanging.html]", x); meter_group(x) = phaser2_group(hgroup("[0]", x)); ctl_group(x) = phaser2_group(hgroup("[1]", x)); nch_group(x) = phaser2_group(hgroup("[2]", x)); lvl_group(x) = phaser2_group(hgroup("[3]", x)); pbp = meter_group(checkbox( "[0] Bypass [tooltip: When this is checked, the phaser has no effect]")); invert = meter_group(checkbox("[1] Invert Internal Phaser Sum")); vibr = meter_group(checkbox("[2] Vibrato Mode")); // In this mode you can hear any "Doppler" // FIXME: This should be an amplitude-response display: //flangeview = phaser2_amp_resp : meter_group(hspectrumview("[2] Phaser Amplitude Response", 0,1)); //phaser2_stereo_demo(x,y) = attach(x,flangeview),y : ... phaser2_stereo_demo = *(level),*(level) : phaser2_stereo(Notches,width,frqmin,fratio,frqmax,speed,mdepth,fb,invert); Notches = 4; // Compile-time parameter: 2 is typical for analog phaser stomp-boxes // FIXME: Add tooltips speed = ctl_group(hslider("[1] Speed [unit:Hz] [style:knob]", 0.5, 0, 10, 0.001)); depth = ctl_group(hslider("[2] Notch Depth (Intensity) [style:knob]", 1, 0, 1, 0.001)); fb = ctl_group(hslider("[3] Feedback Gain [style:knob]", 0, -0.999, 0.999, 0.001)); width = nch_group(hslider("[1] Notch width [unit:Hz] [style:knob]", 1000, 10, 5000, 1)); frqmin = nch_group(hslider("[2] Min Notch1 Freq [unit:Hz] [style:knob]", 100, 20, 5000, 1)); frqmax = nch_group(hslider("[3] Max Notch1 Freq [unit:Hz] [style:knob]", 800, 20, 10000, 1)) : max(frqmin); fratio = nch_group(hslider("[4] Notch Freq Ratio: NotchFreq(n+1)/NotchFreq(n) [style:knob]", 1.5, 1.1, 4, 0.001)); level = lvl_group(hslider("Phaser Output Level [unit:dB]", 0, -60, 10, 0.1)) : component("music.lib").db2linear; mdepth = select2(vibr,depth,2); // Improve "ease of use" }; //------------------------- stereo_width(w) --------------------------- // Stereo Width effect using the Blumlein Shuffler technique. // // USAGE: "_,_ : stereo_width(w) : _,_", where // w = stereo width between 0 and 1 // // At w=0, the output signal is mono ((left+right)/2 in both channels). // At w=1, there is no effect (original stereo image). // Thus, w between 0 and 1 varies stereo width from 0 to "original". // // REFERENCE: // "Applications of Blumlein Shuffling to Stereo Microphone Techniques" // Michael A. Gerzon, JAES vol. 42, no. 6, June 1994 // stereo_width(w) = shuffle : *(mgain),*(sgain) : shuffle with { shuffle = _,_ <: +,-; // normally scaled by 1/sqrt(2) for orthonormality, mgain = 1-w/2; // but we pick up the needed normalization here. sgain = w/2; }; //--------------------------- amp_follower --------------------------- // Classic analog audio envelope follower with infinitely fast rise and // exponential decay. The amplitude envelope instantaneously follows // the absolute value going up, but then floats down exponentially. // // USAGE: // _ : amp_follower(rel) : _ // // where // rel = release time = amplitude-envelope time-constant (sec) going down // // REFERENCES: // Musical Engineer's Handbook, Bernie Hutchins, Ithaca NY, 1975 // Elecronotes Newsletter, Bernie Hutchins amp_follower(rel) = abs : env with { p = tau2pole(rel); env(x) = x * (1.0 - p) : + ~ max(x,_) * p; }; //--------------------------- amp_follower_ud --------------------------- // Envelope follower with different up and down time-constants // // USAGE: // _ : amp_follower_ud(att,rel) : _ // // where // att = attack time = amplitude-envelope time constant (sec) going up // rel = release time = amplitude-envelope time constant (sec) going down // // For audio, att should be faster (smaller) than rel (e.g., 0.001 and 0.01) amp_follower_ud(att,rel) = amp_follower(rel) : smooth(tau2pole(att)); //=============== Gates, Limiters, and Dynamic Range Compression ============ //----------------- gate_mono, gate_stereo ------------------- // Mono and stereo signal gates // // USAGE: // _ : gate_mono(thresh,att,hold,rel) : _ // or // _,_ : gate_stereo(thresh,att,hold,rel) : _,_ // // where // thresh = dB level threshold above which gate opens (e.g., -60 dB) // att = attack time = time constant (sec) for gate to open (e.g., 0.0001 s = 0.1 ms) // hold = hold time = time (sec) gate stays open after signal level < thresh (e.g., 0.1 s) // rel = release time = time constant (sec) for gate to close (e.g., 0.020 s = 20 ms) // // REFERENCES: // - http://en.wikipedia.org/wiki/Noise_gate // - http://www.soundonsound.com/sos/apr01/articles/advanced.asp // - http://en.wikipedia.org/wiki/Gating_(sound_engineering) gate_mono(thresh,att,hold,rel,x) = x * gate_gain_mono(thresh,att,hold,rel,x); gate_stereo(thresh,att,hold,rel,x,y) = ggm*x, ggm*y with { ggm = gate_gain_mono(thresh,att,hold,rel,abs(x)+abs(y)); }; gate_gain_mono(thresh,att,hold,rel,x) = extendedrawgate : amp_follower_ud(att,rel) with { extendedrawgate = max(rawgatesig,holdsig); rawgatesig = inlevel(x) > db2linear(thresh); inlevel(x) = amp_follower_ud(att/2,rel/2,x); holdsig = ((max(holdreset & holdsamps,_) ~-(1)) > 0); holdreset = rawgatesig > rawgatesig'; // reset hold when raw gate falls holdsamps = int(hold*SR); }; //-------------------- compressor_mono, compressor_stereo ---------------------- // Mono and stereo dynamic range compressor_s // // USAGE: // _ : compressor_mono(ratio,thresh,att,rel) : _ // or // _,_ : compressor_stereo(ratio,thresh,att,rel) : _,_ // // where // ratio = compression ratio (1 = no compression, >1 means compression") // thresh = dB level threshold above which compression kicks in // att = attack time = time constant (sec) when level & compression going up // rel = release time = time constant (sec) coming out of compression // // REFERENCES: // - http://en.wikipedia.org/wiki/Dynamic_range_compression // - https://ccrma.stanford.edu/~jos/filters/Nonlinear_Filter_Example_Dynamic.html // - Albert Graef's /examples/synth/compressor_.dsp // compressor_mono(ratio,thresh,att,rel,x) = x * compression_gain_mono(ratio,thresh,att,rel,x); compressor_stereo(ratio,thresh,att,rel,x,y) = cgm*x, cgm*y with { cgm = compression_gain_mono(ratio,thresh,att,rel,abs(x)+abs(y)); }; compression_gain_mono(ratio,thresh,att,rel) = amp_follower_ud(att,rel) : linear2db : outminusindb(ratio,thresh) : kneesmooth(att) : db2linear with { // kneesmooth(att) installs a "knee" in the dynamic-range compression, // where knee smoothness is set equal to half that of the compression-attack. // A general 'knee' parameter could be used instead of tying it to att/2: kneesmooth(att) = smooth(tau2pole(att/2.0)); // compression gain in dB: outminusindb(ratio,thresh,level) = max(level-thresh,0) * (1/float(ratio)-1); // Note: "float(ratio)" REQUIRED when ratio is an integer > 1! }; //---------------------------- gate_demo ------------------------- // USAGE: _,_ : gate_demo : _,_; // gate_demo = bypass2(gbp,gate_stereo_demo) with { gate_group(x) = vgroup("GATE [tooltip: Reference: http://en.wikipedia.org/wiki/Noise_gate]", x); meter_group(x) = gate_group(hgroup("[0]", x)); knob_group(x) = gate_group(hgroup("[1]", x)); gbp = meter_group(checkbox("[0] Bypass [tooltip: When this is checked, the gate has no effect]")); gateview = gate_gain_mono(gatethr,gateatt,gatehold,gaterel) : linear2db : meter_group(hbargraph("[1] Gate Gain [unit:dB] [tooltip: Current gain of the gate in dB]", -50,+10)); // [style:led] gate_stereo_demo(x,y) = attach(x,gateview(abs(x)+abs(y))),y : gate_stereo(gatethr,gateatt,gatehold,gaterel); gatethr = knob_group(hslider("[1] Threshold [unit:dB] [style:knob] [tooltip: When the signal level falls below the Threshold (expressed in dB), the signal is muted]", -30, -120, 0, 0.1)); gateatt = knob_group(hslider("[2] Attack [unit:us] [style:knob] [tooltip: Time constant in MICROseconds (1/e smoothing time) for the gate gain to go (exponentially) from 0 (muted) to 1 (unmuted)]", 10, 10, 10000, 1)) : *(0.000001) : max(1/SR); gatehold = knob_group(hslider("[3] Hold [unit:ms] [style:knob] [tooltip: Time in ms to keep the gate open (no muting) after the signal level falls below the Threshold]", 200, 0, 1000, 1)) : *(0.001) : max(1/SR); gaterel = knob_group(hslider("[4] Release [unit:ms] [style:knob] [tooltip: Time constant in ms (1/e smoothing time) for the gain to go (exponentially) from 1 (unmuted) to 0 (muted)]", 100, 0, 1000, 1)) : *(0.001) : max(1/SR); }; //---------------------------- compressor_demo ------------------------- // USAGE: _,_ : compressor_demo : _,_; // compressor_demo = bypass2(cbp,compressor_stereo_demo) with { comp_group(x) = vgroup("COMPRESSOR [tooltip: Reference: http://en.wikipedia.org/wiki/Dynamic_range_compression]", x); meter_group(x) = comp_group(hgroup("[0]", x)); knob_group(x) = comp_group(hgroup("[1]", x)); cbp = meter_group(checkbox("[0] Bypass [tooltip: When this is checked, the compressor has no effect]")); gainview = compression_gain_mono(ratio,threshold,attack,release) : linear2db : meter_group(hbargraph("[1] Compressor Gain [unit:dB] [tooltip: Current gain of the compressor in dB]", -50,+10)); displaygain = _,_ <: _,_,(abs,abs:+) : _,_,gainview : _,attach; compressor_stereo_demo = displaygain(compressor_stereo(ratio,threshold,attack,release)) : *(makeupgain), *(makeupgain); ctl_group(x) = knob_group(hgroup("[3] Compression Control", x)); ratio = ctl_group(hslider("[0] Ratio [style:knob] [tooltip: A compression Ratio of N means that for each N dB increase in input signal level above Threshold, the output level goes up 1 dB]", 5, 1, 20, 0.1)); threshold = ctl_group(hslider("[1] Threshold [unit:dB] [style:knob] [tooltip: When the signal level exceeds the Threshold (in dB), its level is compressed according to the Ratio]", -30, -100, 10, 0.1)); env_group(x) = knob_group(hgroup("[4] Compression Response", x)); attack = env_group(hslider("[1] Attack [unit:ms] [style:knob] [tooltip: Time constant in ms (1/e smoothing time) for the compression gain to approach (exponentially) a new lower target level (the compression `kicking in')]", 50, 0, 500, 0.1)) : *(0.001) : max(1/SR); release = env_group(hslider("[2] Release [unit:ms] [style: knob] [tooltip: Time constant in ms (1/e smoothing time) for the compression gain to approach (exponentially) a new higher target level (the compression 'releasing')]", 500, 0, 1000, 0.1)) : *(0.001) : max(1/SR); makeupgain = comp_group(hslider("[5] Makeup Gain [unit:dB] [tooltip: The compressed-signal output level is increased by this amount (in dB) to make up for the level lost due to compression]", 40, -96, 96, 0.1)) : db2linear; }; //------------------------------- limiter_* ------------------------------------ // USAGE: // _ : limiter_1176_R4_mono : _; // _,_ : limiter_1176_R4_stereo : _,_; // // DESCRIPTION: // A limiter guards against hard-clipping. It can be can be // implemented as a compressor having a high threshold (near the // clipping level), fast attack and release, and high ratio. Since // the ratio is so high, some knee smoothing is // desirable ("soft limiting"). This example is intended // to get you started using compressor_* as a limiter, so all // parameters are hardwired to nominal values here. // // REFERENCE: http://en.wikipedia.org/wiki/1176_Peak_Limiter // Ratios: 4 (moderate compression), 8 (severe compression), // 12 (mild limiting), or 20 to 1 (hard limiting) // Att: 20-800 MICROseconds (Note: scaled by ratio in the 1176) // Rel: 50-1100 ms (Note: scaled by ratio in the 1176) // Mike Shipley likes 4:1 (Grammy-winning mixer for Queen, Tom Petty, etc.) // Faster attack gives "more bite" (e.g. on vocals) // He hears a bright, clear eq effect as well (not implemented here) // limiter_1176_R4_mono = compressor_mono(4,-6,0.0008,0.5); limiter_1176_R4_stereo = compressor_stereo(4,-6,0.0008,0.5); //========================== Schroeder Reverberators ====================== //------------------------------ jcrev,satrev ------------------------------ // USAGE: // _ : jcrev : _,_,_,_ // _ : satrev : _,_ // // DESCRIPTION: // These artificial reverberators take a mono signal and output stereo // (satrev) and quad (jcrev). They were implemented by John Chowning // in the MUS10 computer-music language (descended from Music V by Max // Mathews). They are Schroeder Reverberators, well tuned for their size. // Nowadays, the more expensive freeverb is more commonly used (see the // Faust examples directory). // The reverb below was made from a listing of "RV", dated April 14, 1972, // which was recovered from an old SAIL DART backup tape. // John Chowning thinks this might be the one that became the // well known and often copied JCREV: jcrev = *(0.06) : allpass_chain <: comb_bank :> _ <: mix_mtx with { rev1N = component("filter.lib").rev1; rev12(len,g) = rev1N(2048,len,g); rev14(len,g) = rev1N(4096,len,g); allpass_chain = rev2(512,347,0.7) : rev2(128,113,0.7) : rev2( 64, 37,0.7); comb_bank = rev12(1601,.802), rev12(1867,.773), rev14(2053,.753), rev14(2251,.733); mix_mtx = _,_,_,_ <: psum, -psum, asum, -asum : _,_,_,_ with { psum = _,_,_,_ :> _; asum = *(-1),_,*(-1),_ :> _; }; }; // The reverb below was made from a listing of "SATREV", dated May 15, 1971, // which was recovered from an old SAIL DART backup tape. // John Chowning thinks this might be the one used on his // often-heard brass canon sound examples, one of which can be found at // https://ccrma.stanford.edu/~jos/wav/FM_BrassCanon2.wav satrev = *(0.2) <: comb_bank :> allpass_chain <: _,*(-1) with { rev1N = component("filter.lib").rev1; rev11(len,g) = rev1N(1024,len,g); rev12(len,g) = rev1N(2048,len,g); comb_bank = rev11( 778,.827), rev11( 901,.805), rev11(1011,.783), rev12(1123,.764); rev2N = component("filter.lib").rev2; allpass_chain = rev2N(128,125,0.7) : rev2N( 64, 42,0.7) : rev2N( 16, 12,0.7); }; //-------------------------------- freeverb -------------------------------- // Freeverb is a widely used, free, open-source Schroeder reverb contributed // by ``Jezar at Dreampoint.'' See /examples/freeverb.dsp //=============== Feedback Delay Network (FDN) Reverberators ============== //-------------------------------- fdnrev0 --------------------------------- // Pure Feedback Delay Network Reverberator (generalized for easy scaling). // // USAGE: // <1,2,4,...,N signals> <: // fdnrev0(MAXDELAY,delays,BBSO,freqs,durs,loopgainmax,nonl) :> // <1,2,4,...,N signals> // // WHERE // N = 2, 4, 8, ... (power of 2) // MAXDELAY = power of 2 at least as large as longest delay-line length // delays = N delay lines, N a power of 2, lengths perferably coprime // BBSO = odd positive integer = order of bandsplit desired at freqs // freqs = NB-1 crossover frequencies separating desired frequency bands // durs = NB decay times (t60) desired for the various bands // loopgainmax = scalar gain between 0 and 1 used to "squelch" the reverb // nonl = nonlinearity (0 to 0.999..., 0 being linear) // // REFERENCE: // https://ccrma.stanford.edu/~jos/pasp/FDN_Reverberation.html // // DEPENDENCIES: filter.lib (filterbank) fdnrev0(MAXDELAY, delays, BBSO, freqs, durs, loopgainmax, nonl) = (bus(2*N) :> bus(N) : delaylines(N)) ~ (delayfilters(N,freqs,durs) : feedbackmatrix(N)) with { N = count(delays); NB = count(durs); //assert(count(freqs)+1==NB); delayval(i) = take(i+1,delays); dlmax(i) = MAXDELAY; // must hardwire this from argument for now //dlmax(i) = 2^max(1,nextpow2(delayval(i))) // try when slider min/max is known // with { nextpow2(x) = ceil(log(x)/log(2.0)); }; // -1 is for feedback delay: delaylines(N) = par(i,N,(delay(dlmax(i),(delayval(i)-1)))); delayfilters(N,freqs,durs) = par(i,N,filter(i,freqs,durs)); feedbackmatrix(N) = bhadamard(N); vbutterfly(n) = bus(n) <: (bus(n):>bus(n/2)) , ((bus(n/2),(bus(n/2):par(i,n/2,*(-1)))) :> bus(n/2)); bhadamard(2) = bus(2) <: +,-; bhadamard(n) = bus(n) <: (bus(n):>bus(n/2)) , ((bus(n/2),(bus(n/2):par(i,n/2,*(-1)))) :> bus(n/2)) : (bhadamard(n/2) , bhadamard(n/2)); // Experimental nonlinearities: // nonlinallpass = apnl(nonl,-nonl); // s = nonl*PI; // nonlinallpass(x) = allpassnn(3,(s*x,s*x*x,s*x*x*x)); // filter.lib nonlinallpass = _; // disabled by default (rather expensive) filter(i,freqs,durs) = filterbank(BBSO,freqs) : par(j,NB,*(g(j,i))) :> *(loopgainmax) / sqrt(N) : nonlinallpass with { dur(j) = take(j+1,durs); n60(j) = dur(j)*SR; // decay time in samples g(j,i) = exp(-3.0*log(10.0)*delayval(i)/n60(j)); // ~ 1.0 - 6.91*delayval(i)/(SR*dur(j)); // valid for large dur(j) }; }; // ---------- prime_power_delays ----- // Prime Power Delay Line Lengths // // USAGE: // bus(N) : prime_power_delays(N,pathmin,pathmax) : bus(N); // // WHERE // N = positive integer up to 16 // (for higher powers of 2, extend 'primes' array below.) // pathmin = minimum acoustic ray length in the reverberator (in meters) // pathmax = maximum acoustic ray length (meters) - think "room size" // // DEPENDENCIES: // math.lib (SR, selector, take) // music.lib (db2linear) // // REFERENCE: // https://ccrma.stanford.edu/~jos/pasp/Prime_Power_Delay_Line.html // prime_power_delays(N,pathmin,pathmax) = par(i,N,delayvals(i)) with { Np = 16; primes = 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53; prime(n) = primes : selector(n,Np); // math.lib // Prime Power Bounds [matlab: floor(log(maxdel)./log(primes(53)))] maxdel=8192; // more than 63 meters at 44100 samples/sec & 343 m/s ppbs = 13,8,5,4, 3,3,3,3, 2,2,2,2, 2,2,2,2; // 8192 is enough for all ppb(i) = take(i+1,ppbs); // Approximate desired delay-line lengths using powers of distinct primes: c = 343; // soundspeed in m/s at 20 degrees C for dry air dmin = SR*pathmin/c; dmax = SR*pathmax/c; dl(i) = dmin * (dmax/dmin)^(i/float(N-1)); // desired delay in samples ppwr(i) = floor(0.5+log(dl(i))/log(prime(i))); // best prime power delayvals(i) = prime(i)^ppwr(i); // each delay a power of a distinct prime }; //--------------------- stereo_reverb_tester -------------------- // Handy test inputs for reverberator demos below. stereo_reverb_tester(revin_group,x,y) = inx,iny with { ck_group(x) = revin_group(vgroup("[1] Input Config",x)); mutegain = 1 - ck_group(checkbox("[1] Mute Ext Inputs [tooltip: When this is checked, the stereo external audio inputs are disabled (good for hearing the impulse response or pink-noise response alone)]")); pinkin = ck_group(checkbox("[2] Pink Noise [tooltip: Pink Noise (or 1/f noise) is Constant-Q Noise (useful for adjusting the EQ sections)]")); impulsify = _ <: _,mem : - : >(0); imp_group(x) = revin_group(hgroup("[2] Impulse Selection",x)); pulseL = imp_group(button("[1] Left [tooltip: Send impulse into LEFT channel]")) : impulsify; pulseC = imp_group(button("[2] Center [tooltip: Send impulse into LEFT and RIGHT channels]")) : impulsify; pulseR = imp_group(button("[3] Right [tooltip: Send impulse into RIGHT channel]")) : impulsify; inx = x*mutegain + (pulseL+pulseC) + pn; iny = y*mutegain + (pulseR+pulseC) + pn; pn = 0.1*pinkin*component("oscillator.lib").pink_noise; }; //------------------------- fdnrev0_demo --------------------------- // USAGE: _,_ : fdnrev0_demo(N,NB,BBSO) : _,_ // WHERE // N = Feedback Delay Network (FDN) order // = number of delay lines used = order of feedback matrix // = 2, 4, 8, or 16 [extend primes array below for 32, 64, ...] // NB = number of frequency bands // = number of (nearly) independent T60 controls // = integer 3 or greater // BBSO = Butterworth band-split order // = order of lowpass/highpass bandsplit used at each crossover freq // = odd positive integer fdnrev0_demo(N,NB,BBSO,x,y) = stereo_reverb_tester(revin_group,x,y) <: fdnrev0(MAXDELAY,delays,BBSO,freqs,durs,loopgainmax,nonl) :> *(gain),*(gain) with { MAXDELAY = 8192; // sync w delays and prime_power_delays above defdurs = (8.4,6.5,5.0,3.8,2.7); // NB default durations (sec) deffreqs = (500,1000,2000,4000); // NB-1 default crossover frequencies (Hz) deflens = (56.3,63.0); // 2 default min and max path lengths fdn_group(x) = vgroup("FEEDBACK DELAY NETWORK (FDN) REVERBERATOR, ORDER 16 [tooltip: See Faust's effect.lib for documentation and references]", x); freq_group(x) = fdn_group(vgroup("[1] Band Crossover Frequencies", x)); t60_group(x) = fdn_group(hgroup("[2] Band Decay Times (T60)", x)); path_group(x) = fdn_group(vgroup("[3] Room Dimensions", x)); revin_group(x) = fdn_group(hgroup("[4] Input Controls", x)); nonl_group(x) = revin_group(vgroup("[4] Nonnlinearity",x)); quench_group(x) = revin_group(vgroup("[3] Reverb State",x)); nonl = nonl_group(hslider("[style:knob] [tooltip: nonlinear mode coupling]", 0, -0.999, 0.999, 0.001)); loopgainmax = 1.0-0.5*quench_group(button("[1] Quench [tooltip: Hold down 'Quench' to clear the reverberator]")); pathmin = path_group(hslider("[1] min acoustic ray length [unit:m] [tooltip: This length (in meters) determines the shortest delay-line used in the FDN reverberator. Think of it as the shortest wall-to-wall separation in the room.]", 46, 0.1, 63, 0.1)); pathmax = path_group(hslider("[2] max acoustic ray length [unit:m] [tooltip: This length (in meters) determines the longest delay-line used in the FDN reverberator. Think of it as the largest wall-to-wall separation in the room.]", 63, 0.1, 63, 0.1)); durvals(i) = t60_group(vslider("[%i] %i [unit:s] [tooltip: T60 is the 60dB decay-time in seconds. For concert halls, an overall reverberation time (T60) near 1.9 seconds is typical [Beranek 2004]. Here we may set T60 independently in each frequency band. In real rooms, higher frequency bands generally decay faster due to absorption and scattering.]", take(i+1,defdurs), 0.1, 10, 0.1)); durs = par(i,NB,durvals(NB-1-i)); freqvals(i) = freq_group(hslider("[%i] Band %i upper edge in Hz [unit:Hz] [tooltip: Each delay-line signal is split into frequency-bands for separate decay-time control in each band]", take(i+1,deffreqs), 100, 10000, 1)); freqs = par(i,NB-1,freqvals(i)); delays = prime_power_delays(N,pathmin,pathmax); gain = hslider("[3] Output Level (dB) [unit:dB] [tooltip: Output scale factor]", -40, -70, 20, 0.1) : db2linear; // (can cause infinite loop:) with { db2linear(x) = pow(10, x/20.0); }; }; //------------------------------- zita_rev_fdn ------------------------------- // Internal 8x8 late-reverberation FDN used in the FOSS Linux reverb zita-rev1 // by Fons Adriaensen . This is an FDN reverb with // allpass comb filters in each feedback delay in addition to the // damping filters. // // USAGE: // bus(8) : zita_rev_fdn(f1,f2,t60dc,t60m,fsmax) : bus(8) // // WHERE // f1 = crossover frequency (Hz) separating dc and midrange frequencies // f2 = frequency (Hz) above f1 where T60 = t60m/2 (see below) // t60dc = desired decay time (t60) at frequency 0 (sec) // t60m = desired decay time (t60) at midrange frequencies (sec) // fsmax = maximum sampling rate to be used (Hz) // // REFERENCES: // http://www.kokkinizita.net/linuxaudio/zita-rev1-doc/quickguide.html // https://ccrma.stanford.edu/~jos/pasp/Zita_Rev1.html // // DEPENDENCIES: // filter.lib (allpass_comb, lowpass, smooth) // math.lib (hadamard, take, etc.) zita_rev_fdn(f1,f2,t60dc,t60m,fsmax) = ((bus(2*N) :> allpass_combs(N) : feedbackmatrix(N)) ~ (delayfilters(N,freqs,durs) : fbdelaylines(N))) with { N = 8; // Delay-line lengths in seconds: apdelays = (0.020346, 0.024421, 0.031604, 0.027333, 0.022904, 0.029291, 0.013458, 0.019123); // feedforward delays in seconds tdelays = ( 0.153129, 0.210389, 0.127837, 0.256891, 0.174713, 0.192303, 0.125000, 0.219991); // total delays in seconds tdelay(i) = floor(0.5 + SR*take(i+1,tdelays)); // samples apdelay(i) = floor(0.5 + SR*take(i+1,apdelays)); fbdelay(i) = tdelay(i) - apdelay(i); // NOTE: Since SR is not bounded at compile time, we can't use it to // allocate delay lines; hence, the fsmax parameter: tdelaymaxfs(i) = floor(0.5 + fsmax*take(i+1,tdelays)); apdelaymaxfs(i) = floor(0.5 + fsmax*take(i+1,apdelays)); fbdelaymaxfs(i) = tdelaymaxfs(i) - apdelaymaxfs(i); nextpow2(x) = ceil(log(x)/log(2.0)); maxapdelay(i) = int(2.0^max(1.0,nextpow2(apdelaymaxfs(i)))); maxfbdelay(i) = int(2.0^max(1.0,nextpow2(fbdelaymaxfs(i)))); apcoeff(i) = select2(i&1,0.6,-0.6); // allpass comb-filter coefficient allpass_combs(N) = par(i,N,(allpass_comb(maxapdelay(i),apdelay(i),apcoeff(i)))); // filter.lib fbdelaylines(N) = par(i,N,(delay(maxfbdelay(i),(fbdelay(i))))); freqs = (f1,f2); durs = (t60dc,t60m); delayfilters(N,freqs,durs) = par(i,N,filter(i,freqs,durs)); feedbackmatrix(N) = hadamard(N); // math.lib staynormal = 10.0^(-20); // let signals decay well below LSB, but not to zero special_lowpass(g,f) = smooth(p) with { // unity-dc-gain lowpass needs gain g at frequency f => quadratic formula: p = mbo2 - sqrt(max(0,mbo2*mbo2 - 1.0)); // other solution is unstable mbo2 = (1.0 - gs*c)/(1.0 - gs); // NOTE: must ensure |g|<1 (t60m finite) gs = g*g; c = cos(2.0*PI*f/float(SR)); }; filter(i,freqs,durs) = lowshelf_lowpass(i)/sqrt(float(N))+staynormal with { lowshelf_lowpass(i) = gM*low_shelf1_l(g0/gM,f(1)):special_lowpass(gM,f(2)); low_shelf1_l(G0,fx,x) = x + (G0-1)*lowpass(1,fx,x); // filter.lib g0 = g(0,i); gM = g(1,i); f(k) = take(k,freqs); dur(j) = take(j+1,durs); n60(j) = dur(j)*SR; // decay time in samples g(j,i) = exp(-3.0*log(10.0)*tdelay(i)/n60(j)); }; }; // Stereo input delay used by zita_rev1 in both stereo and ambisonics mode: zita_in_delay(rdel) = zita_delay_mono(rdel), zita_delay_mono(rdel) with { zita_delay_mono(rdel) = delay(8192,SR*rdel*0.001) * 0.3; }; // Stereo input mapping used by zita_rev1 in both stereo and ambisonics mode: zita_distrib2(N) = _,_ <: fanflip(N) with { fanflip(4) = _,_,*(-1),*(-1); fanflip(N) = fanflip(N/2),fanflip(N/2); }; //--------------------------- zita_rev_fdn_demo ------------------------------ // zita_rev_fdn_demo = zita_rev_fdn (above) + basic GUI // // USAGE: // bus(8) : zita_rev_fdn_demo(f1,f2,t60dc,t60m,fsmax) : bus(8) // // WHERE // (args and references as for zita_rev_fdn above) zita_rev_fdn_demo = zita_rev_fdn(f1,f2,t60dc,t60m,fsmax) with { fsmax = 48000.0; fdn_group(x) = hgroup( "Zita_Rev Internal FDN Reverb [tooltip: ~ Zita_Rev's internal 8x8 Feedback Delay Network (FDN) & Schroeder allpass-comb reverberator. See Faust's effect.lib for documentation and references]",x); t60dc = fdn_group(vslider("[1] Low RT60 [unit:s] [style:knob] [style:knob] [tooltip: T60 = time (in seconds) to decay 60dB in low-frequency band]", 3, 1, 8, 0.1)); f1 = fdn_group(vslider("[2] LF X [unit:Hz] [style:knob] [tooltip: Crossover frequency (Hz) separating low and middle frequencies]", 200, 50, 1000, 1)); t60m = fdn_group(vslider("[3] Mid RT60 [unit:s] [style:knob] [tooltip: T60 = time (in seconds) to decay 60dB in middle band]", 2, 1, 8, 0.1)); f2 = fdn_group(vslider("[4] HF Damping [unit:Hz] [style:knob] [tooltip: Frequency (Hz) at which the high-frequency T60 is half the middle-band's T60]", 6000, 1500, 0.49*fsmax, 1)); }; //---------------------------- zita_rev1_stereo --------------------------- // Extend zita_rev_fdn to include zita_rev1 input/output mapping in stereo mode. // // USAGE: // _,_ : zita_rev1_stereo(rdel,f1,f2,t60dc,t60m,fsmax) : _,_ // // WHERE // rdel = delay (in ms) before reverberation begins (e.g., 0 to ~100 ms) // (remaining args and refs as for zita_rev_fdn above) zita_rev1_stereo(rdel,f1,f2,t60dc,t60m,fsmax) = zita_in_delay(rdel) : zita_distrib2(N) : zita_rev_fdn(f1,f2,t60dc,t60m,fsmax) : output2(N) with { N = 8; output2(N) = outmix(N) : *(t1),*(t1); t1 = 0.37; // zita-rev1 linearly ramps from 0 to t1 over one buffer outmix(4) = !,butterfly(2),!; // probably the result of some experimenting! outmix(N) = outmix(N/2),par(i,N/2,!); }; //----------------------------- zita_rev1_ambi --------------------------- // Extend zita_rev_fdn to include zita_rev1 input/output mapping in // "ambisonics mode", as provided in the Linux C++ version. // // USAGE: // _,_ : zita_rev1_ambi(rgxyz,rdel,f1,f2,t60dc,t60m,fsmax) : _,_,_,_ // // WHERE // rgxyz = relative gain of lanes 1,4,2 to lane 0 in output (e.g., -9 to 9) // (remaining args and references as for zita_rev1_stereo above) zita_rev1_ambi(rgxyz,rdel,f1,f2,t60dc,t60m,fsmax) = zita_in_delay(rdel) : zita_distrib2(N) : zita_rev_fdn(f1,f2,t60dc,t60m,fsmax) : output4(N) // ambisonics mode with { N=8; output4(N) = select4 : *(t0),*(t1),*(t1),*(t1); select4 = _,_,_,!,_,!,!,! : _,_,cross with { cross(x,y) = y,x; }; t0 = 1.0/sqrt(2.0); t1 = t0 * 10.0^(0.05 * rgxyz); }; //---------------------------------- zita_rev1 ------------------------------ // Example GUI for zita_rev1_stereo (mostly following the Linux zita-rev1 GUI). // // Only the dry/wet and output level parameters are "dezippered" here. If // parameters are to be varied in real time, use "smooth(0.999)" or the like // in the same way. // // REFERENCE: // http://www.kokkinizita.net/linuxaudio/zita-rev1-doc/quickguide.html // // DEPENDENCIES: // filter.lib (peak_eq_rm) zita_rev1(x,y) = zita_rev1_stereo(rdel,f1,f2,t60dc,t60m,fsmax,x,y) : out_eq : dry_wet(x,y) : out_level with { fsmax = 48000.0; // highest sampling rate that will be used fdn_group(x) = hgroup( "[0] Zita_Rev1 [tooltip: ~ ZITA REV1 FEEDBACK DELAY NETWORK (FDN) & SCHROEDER ALLPASS-COMB REVERBERATOR (8x8). See Faust's effect.lib for documentation and references]", x); in_group(x) = fdn_group(hgroup("[1] Input", x)); rdel = in_group(vslider("[1] In Delay [unit:ms] [style:knob] [tooltip: Delay in ms before reverberation begins]", 60,20,100,1)); freq_group(x) = fdn_group(hgroup("[2] Decay Times in Bands (see tooltips)", x)); f1 = freq_group(vslider("[1] LF X [unit:Hz] [style:knob] [tooltip: Crossover frequency (Hz) separating low and middle frequencies]", 200, 50, 1000, 1)); t60dc = freq_group(vslider("[2] Low RT60 [unit:s] [style:knob] [style:knob] [tooltip: T60 = time (in seconds) to decay 60dB in low-frequency band]", 3, 1, 8, 0.1)); t60m = freq_group(vslider("[3] Mid RT60 [unit:s] [style:knob] [tooltip: T60 = time (in seconds) to decay 60dB in middle band]", 2, 1, 8, 0.1)); f2 = freq_group(vslider("[4] HF Damping [unit:Hz] [style:knob] [tooltip: Frequency (Hz) at which the high-frequency T60 is half the middle-band's T60]", 6000, 1500, 0.49*fsmax, 1)); out_eq = pareq_stereo(eq1f,eq1l,eq1q) : pareq_stereo(eq2f,eq2l,eq2q); // Zolzer style peaking eq (not used in zita-rev1) (filter.lib): // pareq_stereo(eqf,eql,Q) = peak_eq(eql,eqf,eqf/Q), peak_eq(eql,eqf,eqf/Q); // Regalia-Mitra peaking eq with "Q" hard-wired near sqrt(g)/2 (filter.lib): pareq_stereo(eqf,eql,Q) = peak_eq_rm(eql,eqf,tpbt), peak_eq_rm(eql,eqf,tpbt) with { tpbt = wcT/sqrt(max(0,g)); // tan(PI*B/SR), B bw in Hz (Q^2 ~ g/4) wcT = 2*PI*eqf/SR; // peak frequency in rad/sample g = db2linear(eql); // peak gain }; eq1_group(x) = fdn_group(hgroup("[3] RM Peaking Equalizer 1", x)); eq1f = eq1_group(vslider("[1] Eq1 Freq [unit:Hz] [style:knob] [tooltip: Center-frequency of second-order Regalia-Mitra peaking equalizer section 1]", 315, 40, 2500, 1)); eq1l = eq1_group(vslider("[2] Eq1 Level [unit:dB] [style:knob] [tooltip: Peak level in dB of second-order Regalia-Mitra peaking equalizer section 1]", 0, -15, 15, 0.1)); eq1q = eq1_group(vslider("[3] Eq1 Q [style:knob] [tooltip: Q = centerFrequency/bandwidth of second-order peaking equalizer section 1]", 3, 0.1, 10, 0.1)); eq2_group(x) = fdn_group(hgroup("[4] RM Peaking Equalizer 2", x)); eq2f = eq2_group(vslider("[1] Eq2 Freq [unit:Hz] [style:knob] [tooltip: Center-frequency of second-order Regalia-Mitra peaking equalizer section 2]", 315, 40, 2500, 1)); eq2l = eq2_group(vslider("[2] Eq2 Level [unit:dB] [style:knob] [tooltip: Peak level in dB of second-order Regalia-Mitra peaking equalizer section 2]", 0, -15, 15, 0.1)); eq2q = eq2_group(vslider("[3] Eq2 Q [style:knob] [tooltip: Q = centerFrequency/bandwidth of second-order peaking equalizer section 2]", 3, 0.1, 10, 0.1)); out_group(x) = fdn_group(hgroup("[5] Output", x)); dry_wet(x,y) = *(wet) + dry*x, *(wet) + dry*y with { wet = 0.5*(drywet+1.0); dry = 1.0-wet; }; drywet = out_group(vslider("[1] Dry/Wet Mix [style:knob] [tooltip: -1 = dry, 1 = wet]", 0, -1.0, 1.0, 0.01)) : smooth(0.999); out_level = *(gain),*(gain); gain = out_group(vslider("[2] Level [unit:dB] [style:knob] [tooltip: Output scale factor]", -20, -70, 40, 0.1)) : smooth(0.999) : db2linear; }; //---------------------------------- mesh_square ------------------------------ // Square Rectangular Digital Waveguide Mesh // // USAGE: // bus(4*N) : mesh_square(N) : bus(4*N); // // WHERE // N = number of nodes along each edge - a power of two (1,2,4,8,...) // // EXAMPLE: Reflectively terminated mesh impulsed at one corner: // mesh_square_test(N,x) = mesh_square(N)~(busi(4*N,x)) // input to corner // with { busi(N,x) = bus(N) : par(i,N,*(-1)) : par(i,N-1,_), +(x); }; // process = 1-1' : mesh_square_test(4); // all modes excited forever // // REQUIRES: math.lib. // // REFERENCE: // https://ccrma.stanford.edu/~jos/pasp/Digital_Waveguide_Mesh.html // four-port scattering junction: mesh_square(1) = bus(4) <: par(i,4,*(-1)), (bus(4) :> (*(.5)) <: bus(4)) :> bus(4); // rectangular NxN square waveguide mesh: mesh_square(N) = bus(4*N) : (route_inputs(N/2) : par(i,4,mesh_square(N/2))) ~(prune_feedback(N/2)) : prune_outputs(N/2) : route_outputs(N/2) : bus(4*N) with { block(N) = par(i,N,!); // select block i of N, block size = M: s(i,N,M) = par(j, M*N, Sv(i, j)) with { Sv(i,i) = bus(N); Sv(i,j) = block(N); }; // prune mesh outputs down to the signals which make it out: prune_outputs(N) = bus(16*N) : block(N), bus(N), block(N), bus(N), block(N), bus(N), bus(N), block(N), bus(N), block(N), block(N), bus(N), bus(N), block(N), bus(N), block(N) : bus(8*N); // collect mesh outputs into standard order (N,W,E,S): route_outputs(N) = bus(8*N) <: s(4,N,8),s(5,N,8), s(0,N,8),s(2,N,8), s(3,N,8),s(7,N,8), s(1,N,8),s(6,N,8) : bus(8*N); // collect signals used as feedback: prune_feedback(N) = bus(16*N) : bus(N), block(N), bus(N), block(N), bus(N), block(N), block(N), bus(N), block(N), bus(N), bus(N), block(N), block(N), bus(N), block(N), bus(N) : bus(8*N); // route mesh inputs (feedback, external inputs): route_inputs(N) = bus(8*N), bus(8*N) <:s(8,N,16),s(4,N,16), s(12,N,16),s(3,N,16), s(9,N,16),s(6,N,16), s(1,N,16),s(14,N,16), s(0,N,16),s(10,N,16), s(13,N,16),s(7,N,16), s(2,N,16),s(11,N,16), s(5,N,16),s(15,N,16) : bus(16*N); }; faust-0.9.46/architecture/jack-console.cpp0000644000175000017500000000712611702130733020411 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include "gui/console.h" #include "misc.h" #include "audio/jack-dsp.h" #ifdef OSCCTRL #include "gui/OSCUI.h" #endif using namespace std; /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> /****************************************************************************** ******************************************************************************* USER INTERFACE ******************************************************************************* /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; list GUI::fGuiList; //------------------------------------------------------------------------- // MAIN //------------------------------------------------------------------------- int main(int argc, char *argv[] ) { char jackname[256]; snprintf(jackname, 255, "%s", basename(argv[0])); CMDUI* interface = new CMDUI(argc, argv); DSP.buildUserInterface(interface); #ifdef OSCCTRL GUI* oscinterface = new OSCUI(jackname, argc, argv); DSP.buildUserInterface(oscinterface); #endif jackaudio audio; audio.init(jackname, &DSP); interface->process_command(); audio.start(); #ifdef OSCCTRL oscinterface->run(); #endif interface->run(); audio.stop(); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/mathdoctexts-default.txt0000644000175000017500000001320611702130733022223 0ustar orlareyorlarey// Default texts for the math documentator of the Faust compiler. // Copyright (C) 2009 GRAME, Centre National de Creation Musicale // Karim Barkati // Remark: // double quotes are useful to visualize spaces and tabulations // at the beginning or at the end of strings. // Metadatas section. :name "name" :author "author" :copyright "copyright" :license "license" :version "version" // Notice section. :faustapply "The value of a Faust program is the result of applying the signal transformer denoted by the expression to which the \texttt{process} identifier is bound to input signals, running at the $f_S$ sampling frequency." :faustpresentation "Faust (\emph{Functional Audio Stream}) is a functional programming language designed for synchronous real-time signal processing and synthesis applications. A Faust program is a set of bindings of identifiers to expressions that denote signal transformers. A signal $s$ in $S$ is a function mapping\footnote{Faust assumes that $\forall \, s \in S, \forall \, t \in \mathbb{Z}, s(t) = 0 \mathrm{\ when\ } t < 0$.} times $t \in \mathbb{Z}$ to values $s(t) \in \mathbb{R}$, while a signal transformer is a function from $S^n$ to $S^m$, where $n,m\in \mathbb{N}$. See the Faust manual for additional information (\textsf{http://faust.grame.fr})." :causality "Every mathematical formula derived from a Faust expression is assumed, in this document, to having been normalized (in an implementation-depen\-dent manner) by the Faust compiler." :blockdiagrams "A block diagram is a graphical representation of the Faust binding of an identifier I to an expression E; each graph is put in a box labeled by I. Subexpressions of E are recursively displayed as long as the whole picture fits in one page." :faustdocdir "The \texttt{\faustdocdir/} directory may also include the following subdirectories:" "\begin{itemize}" " \item \texttt{cpp/} for Faust compiled code; " " \item \texttt{pdf/} which contains this document; " " \item \texttt{src/} for all Faust sources used (even libraries); " " \item \texttt{svg/} for block diagrams, encoded using the Scalable Vector Graphics format (\textsf{http://www.w3.org/Graphics/SVG/});" " \item \texttt{tex/} for the \LaTeX\ source of this document." "\end{itemize}" :foreignfun ""ff" prefix in some function name stands for C++ "foreign function"." :intcast "$\forall \, x \in \mathbb{R}$, " " \begin{displaymath}" " \mathrm{int}(x) =" " \left\{\begin{array}{cl}" " \lfloor x \rfloor & \mbox{if \,} x > 0 \\" " \lceil x \rceil & \mbox{if \,} x < 0 \\" " 0 & \mbox{if \,} x = 0 \\" " \end{array}\right.." " \end{displaymath}" :operators "This document uses the following integer operations:" :optabtitle "\emph{operation} & \emph{name} & \emph{semantics} \\" :intplus "$i \oplus j$ & integer addition & $\mathrm{normalize}(i+j), \mathrm{~in~} \mathbb{Z}$ \\" :intminus "$i \ominus j$ & integer substraction & $\mathrm{normalize}(i-j), \mathrm{~in~} \mathbb{Z}$ \\" :intmult "$i \odot j$ & integer multiplication & $\mathrm{normalize}(i \cdot j), \mathrm{~in~} \mathbb{Z}$ \\" :intdiv "$i \oslash j$ & integer division & $\mathrm{normalize}(\mathrm{int}(i/j)), \mathrm{~in~} \mathbb{Q}$ \\" :integerops "Integer operations in Faust are inspired by the semantics of operations on the n-bit two's complement representation of integer numbers; they are internal composition laws on the subset $[\,-2^{n-1}, 2^{n-1}\!-\!1\,]$ of $\mathbb{Z}$, with $n = 32$. For any integer binary operation $\times$ on $\mathbb{Z}$, the $\otimes$ operation is defined as: $i \otimes j = \mathrm{normalize}(i \times j)$, with " "$$\mathrm{normalize}(i) = i - N\cdot\mathrm{sign}(i) \cdot \left\lfloor \frac{|i|+N/2+(\mathrm{sign}(i)\!-\!1)/2}{N} \right\rfloor , $$" " where $N = 2^n$ and $\mathrm{sign}(i) = 0 \mathrm{\ if\ } i=0 \mathrm{\ and\ } i / |i| \mathrm{\ otherwise}.$" "Unary integer operations are defined likewise." // Auto-documentation section. :thisdoc "This document provides a mathematical description of the Faust program text stored in the \texttt{\faustfilename} file. See the notice in Section\,\ref{notice} (page\,\pageref{notice}) for details." :autoeqntitle "\section{Mathematical definition of \texttt{process}}" "\label{equation}" :autoeqntext "The \emph{\faustprogname} program evaluates the signal transformer denoted by \texttt{process}, which is mathematically defined as follows:" :autodgmtitle "\section{Block diagram of \texttt{process}}" "\label{diagram}" :autodgmtext "The block diagram of \texttt{process} is shown on Figure\,\ref{figure1} (page\,\pageref{figure1})." :autontctitle "\section{Notice}" "\label{notice}" :autontctext "This document was generated using Faust version \faustversion\ on \faustdocdate." :autolsttitle1 "\section{Faust code listing}" "\label{listing}" :autolsttext1 "This section provides the listing of the Faust code used to generate this document." :autolsttitle2 "\section{Faust code listings}" "\label{listing}" :autolsttext2 "This section provides the listings of the Faust code used to generate this document, including dependencies." // Titles for each type of formulas. :inputsigtitle1 "Input signal" :inputsigtitle2 "Input signals" :outputsigtitle1 "Output signal" :outputsigtitle2 "Output signals" :constsigtitle1 "Constant" :constsigtitle2 "Constants" :uisigtitle1 "User-interface input signal" :uisigtitle2 "User-interface input signals" :intermedsigtitle1 "Intermediate signal" :intermedsigtitle2 "Intermediate signals" :lateqcomment "% Set of Faust formulas (corresponding to an tag)." :emptyformulafield "none" :defaultvalue "default value" :suchthat "such that" :and "and" :for "for" :rootlevel "(at root level)" :dgmcaption "Block diagram of" faust-0.9.46/architecture/windowsdll.cpp0000644000175000017500000000577711702130733020241 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include #include #include #include #include #include using namespace std; #include "gui/GUI.h" #include "misc.h" #include "audio/dsp.h" /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ #define EXPORT __declspec(dllexport) extern "C" EXPORT dsp* newDsp() { return new mydsp(); } extern "C" EXPORT void EXPORT deleteDsp(dsp* self) { delete self; } extern "C" EXPORT int getNumInputs(dsp* self) { return self->getNumInputs(); } extern "C" EXPORT int getNumOutputs(dsp* self) { return self->getNumOutputs(); } extern "C" EXPORT void buildUserInterface(dsp* self,UI* interface) { self->buildUserInterface(interface); } extern "C" EXPORT void init(dsp* self, int freq) { self->init(freq); } extern "C" EXPORT void compute(dsp* self, int len, float** inputs, float** outputs) { self->compute(len, inputs, outputs); } /***END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/alsa-qt.cpp0000644000175000017500000000704011702130733017376 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include "gui/FUI.h" #include "misc.h" #include "gui/faustqt.h" #include "audio/alsa-dsp.h" #ifdef OSCCTRL #include "gui/OSCUI.h" #endif /**************************BEGIN USER SECTION **************************/ /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; list GUI::fGuiList; //------------------------------------------------------------------------- // MAIN //------------------------------------------------------------------------- int main(int argc, char *argv[] ) { char* appname = basename (argv [0]); char rcfilename[256]; char* home = getenv("HOME"); snprintf(rcfilename, 255, "%s/.%src", home, appname); GUI* interface = new QTGUI(argc, argv); FUI* finterface = new FUI(); DSP.buildUserInterface(interface); DSP.buildUserInterface(finterface); #ifdef OSCCTRL GUI* oscinterface = new OSCUI(appname, argc, argv); DSP.buildUserInterface(oscinterface); #endif alsaaudio audio (argc, argv, &DSP); audio.init(appname, &DSP); finterface->recallState(rcfilename); audio.start(); #ifdef OSCCTRL oscinterface->run(); #endif interface->run(); audio.stop(); finterface->saveState(rcfilename); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/oscio-gtk.cpp0000644000175000017500000000764211702130733017743 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include "gui/FUI.h" #include "gui/faustgtk.h" #include "gui/OSCUI.h" #include "misc.h" #include "audio/oscdsp.h" /**************************BEGIN USER SECTION **************************/ /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; list GUI::fGuiList; /****************************************************************************** ******************************************************************************* MAIN PLAY THREAD ******************************************************************************* *******************************************************************************/ int main( int argc, char *argv[] ) { char name[256], dst[258]; char rcfilename[256]; float oscio = 0; char* home = getenv("HOME"); snprintf(name, 255, "%s", basename(argv[0])); snprintf(dst, 257, "/%s/", name); snprintf(rcfilename, 255, "%s/.%src", home, name); GUI* interface = new GTKUI (name, &argc, &argv); FUI* finterface = new FUI(); DSP.buildUserInterface(interface); DSP.buildUserInterface(finterface); oscdsp osca (dst, argc, argv); OSCUI* oscinterface = new OSCUI(name, argc, argv, &osca); DSP.buildUserInterface(oscinterface); oscinterface->addToggleButton("OSC IO", &oscio); snprintf(dst, 257, "/%s/", oscinterface->getRootName()); osca.setDest (dst); osca.init (name, &DSP); finterface->recallState(rcfilename); osca.start (); oscinterface->run(); interface->run(); finterface->saveState(rcfilename); osca.stop(); delete oscinterface; return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/supercollider.cpp0000644000175000017500000005300511702130733020712 0ustar orlareyorlarey// If other than 'faust2sc --prefix Faust' is used, sed this as well: #define SC_FAUST_PREFIX "Faust" //------------------------------------------------------------------- // FAUST architecture file for SuperCollider. // Copyright (C) 2005-2008 Stefan Kersten. // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation; either version 2 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA // 02111-1307 USA //------------------------------------------------------------------- #include #include #include #include #include #include #if defined(__GNUC__) && __GNUC__ >= 4 # define FAUST_EXPORT __attribute__((visibility("default"))) #else # define FAUST_EXPORT /* NOP */ #endif //------------------------------------------------------------------- // Generic min and max using C++ inline //------------------------------------------------------------------- inline int max (unsigned int a, unsigned int b) { return (a>b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<> /****************************************************************************** ******************************************************************************* META DATA ******************************************************************************* *******************************************************************************/ struct Meta : std::map { void declare(const char* key, const char* value) { (*this)[key] = value; } }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------------------- // Abstract user interface //---------------------------------------------------------------------------- class UI { public: virtual ~UI() { } // active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; // layout widgets virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void declare(float* zone, const char* key, const char* value) {} }; //---------------------------------------------------------------------------- // Control counter //---------------------------------------------------------------------------- class ControlCounter : public UI { public: ControlCounter() : mNumControlInputs(0), mNumControlOutputs(0) { } size_t getNumControls() const { return getNumControlInputs(); } size_t getNumControlInputs() const { return mNumControlInputs; } size_t getNumControlOutputs() const { return mNumControlOutputs; } // active widgets virtual void addButton(const char* label, float* zone) { addControlInput(); } virtual void addToggleButton(const char* label, float* zone) { addControlInput(); } virtual void addCheckButton(const char* label, float* zone) { addControlInput(); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { addControlInput(); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { addControlInput(); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { addControlInput(); } // passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) { addControlOutput(); } virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) { addControlOutput(); } virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) { addControlOutput(); } virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) { addControlOutput(); } // layout widgets virtual void openFrameBox(const char* label) { } virtual void openTabBox(const char* label) { } virtual void openHorizontalBox(const char* label) { } virtual void openVerticalBox(const char* label) { } virtual void closeBox() { } protected: void addControlInput() { mNumControlInputs++; } void addControlOutput() { mNumControlOutputs++; } private: size_t mNumControlInputs; size_t mNumControlOutputs; }; //---------------------------------------------------------------------------- // UI control //---------------------------------------------------------------------------- struct Control { typedef void (*UpdateFunction)(Control* self, float value); UpdateFunction updateFunction; float min, max, step; float* zone; inline void update(float value) { (*updateFunction)(this, value); } static void simpleUpdate(Control* self, float value) { *self->zone = value; } static void boundedUpdate(Control* self, float value) { *self->zone = sc_clip(value, self->min, self->max); } }; //---------------------------------------------------------------------------- // Control allocator //---------------------------------------------------------------------------- class ControlAllocator : public UI { public: ControlAllocator(Control* controls) : mControls(controls) { } // active widgets virtual void addButton(const char* label, float* zone) { addSimpleControl(zone); } virtual void addToggleButton(const char* label, float* zone) { addSimpleControl(zone); } virtual void addCheckButton(const char* label, float* zone) { addSimpleControl(zone); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { addBoundedControl(zone, min, max, step); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { addBoundedControl(zone, min, max, step); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { addBoundedControl(zone, min, max, step); } // passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) { } virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) { } virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) { } virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) { } // layout widgets virtual void openFrameBox(const char* label) { } virtual void openTabBox(const char* label) { } virtual void openHorizontalBox(const char* label) { } virtual void openVerticalBox(const char* label) { } virtual void closeBox() { } private: void addControl(Control::UpdateFunction updateFunction, float* zone, float min, float max, float step) { Control* ctrl = mControls++; ctrl->updateFunction = updateFunction; ctrl->min = min; ctrl->max = max; ctrl->step = step; ctrl->zone = zone; } void addSimpleControl(float* zone) { addControl(Control::simpleUpdate, zone, 0.f, 0.f, 0.f); } void addBoundedControl(float* zone, float min, float max, float step) { addControl(Control::boundedUpdate, zone, min, max, step); } private: Control* mControls; }; /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------------------- // Abstract DSP interface //---------------------------------------------------------------------------- class dsp { public: virtual ~dsp(); virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; protected: int fSamplingFreq; }; dsp::~dsp() { } //---------------------------------------------------------------------------- // FAUST generated code //---------------------------------------------------------------------------- <> /****************************************************************************** ******************************************************************************* SUPERCOLLIDER DSP INTERFACE ******************************************************************************* *******************************************************************************/ struct Faust : public Unit { // Faust dsp instance mydsp mDSP; // Buffers for control to audio rate conversion float** mInBufCopy; float* mInBufValue; // Controls size_t mNumControls; // NOTE: This needs to be the last field! // // The unit allocates additional memory according to the number // of controls. Control mControls[0]; int getNumAudioInputs() { return mDSP.getNumInputs(); } }; // Global state static size_t g_numControls; // Number of controls static const char* g_unitName; // Unit name // Initialize the global state with unit name and sample rate. void initState(const std::string& name, int sampleRate); // Return the unit size in bytes, including static fields and controls. static size_t unitSize(); // Convert a file name to a valid unit name. static std::string fileNameToUnitName(const std::string& fileName); // Convert the XML unit name to a valid class name. static std::string normalizeClassName(const std::string& name); void initState(const std::string& name, int sampleRate) { g_unitName = strdup(name.c_str()); mydsp* dsp = new mydsp; ControlCounter* cc = new ControlCounter; dsp->classInit(sampleRate); dsp->buildUserInterface(cc); g_numControls = cc->getNumControls(); delete dsp; delete cc; } size_t unitSize() { return sizeof(Faust) + g_numControls * sizeof(Control); } std::string fileNameToUnitName(const std::string& fileName) { // Extract basename size_t lpos = fileName.rfind('/', fileName.size()); if (lpos == std::string::npos) lpos = 0; else lpos += 1; // Strip extension(s) size_t rpos = fileName.find('.', lpos); // Return substring return fileName.substr(lpos, rpos > lpos ? rpos - lpos : 0); } // Globals static InterfaceTable *ft; // The SuperCollider UGen class name generated here must match // that generated by faust2sc: static std::string normalizeClassName(const std::string& name) { std::string s; char c; unsigned int i=0; bool upnext=true; while (c=name[i++]) { if (upnext) { c = toupper(c); upnext=false; } if ( (c == '_') || (c == '-') || isspace(c)) { upnext=true; continue; } s += c; if (i > 31) { break; } } return s; } extern "C" { void load(InterfaceTable*); void Faust_next(Faust*, int); void Faust_next_copy(Faust*, int); void Faust_next_clear(Faust*, int); void Faust_Ctor(Faust*); void Faust_Dtor(Faust*); }; inline static void fillBuffer(float* dst, int n, float v) { Fill(n, dst, v); } inline static void fillBuffer(float* dst, int n, float v0, float v1) { Fill(n, dst, v0, (v1 - v0) / n); } inline static void copyBuffer(float* dst, int n, float* src) { Copy(n, dst, src); } inline static void Faust_updateControls(Faust* unit) { Control* controls = unit->mControls; int numControls = unit->mNumControls; int curControl = unit->mDSP.getNumInputs(); for (int i=0; i < numControls; ++i) { float value = IN0(curControl); (controls++)->update(value); curControl++; } } void Faust_next(Faust* unit, int inNumSamples) { // update controls Faust_updateControls(unit); // dsp computation unit->mDSP.compute(inNumSamples, unit->mInBuf, unit->mOutBuf); } void Faust_next_copy(Faust* unit, int inNumSamples) { // update controls Faust_updateControls(unit); // Copy buffers for (int i = 0; i < unit->getNumAudioInputs(); ++i) { float* b = unit->mInBufCopy[i]; if (INRATE(i) == calc_FullRate) { // Audio rate: copy buffer copyBuffer(b, inNumSamples, unit->mInBuf[i]); } else { // Control rate: linearly interpolate input float v1 = IN0(i); fillBuffer(b, inNumSamples, unit->mInBufValue[i], v1); unit->mInBufValue[i] = v1; } } // dsp computation unit->mDSP.compute(inNumSamples, unit->mInBufCopy, unit->mOutBuf); } void Faust_next_clear(Faust* unit, int inNumSamples) { ClearUnitOutputs(unit, inNumSamples); } void Faust_Ctor(Faust* unit) // module constructor { // init dsp unit->mDSP.instanceInit((int)SAMPLERATE); // allocate controls unit->mNumControls = g_numControls; ControlAllocator ca(unit->mControls); unit->mDSP.buildUserInterface(&ca); unit->mInBufCopy = 0; unit->mInBufValue = 0; // check input/output channel configuration const size_t numInputs = unit->mDSP.getNumInputs() + unit->mNumControls; const size_t numOutputs = unit->mDSP.getNumOutputs(); bool channelsValid = (numInputs == unit->mNumInputs) && (numOutputs == unit->mNumOutputs); if (channelsValid) { bool rateValid = true; for (int i = 0; i < unit->getNumAudioInputs(); ++i) { if (INRATE(i) != calc_FullRate) { rateValid = false; break; } } if (rateValid) { SETCALC(Faust_next); } else { unit->mInBufCopy = (float**)RTAlloc(unit->mWorld, unit->getNumAudioInputs()*sizeof(float*)); // Allocate memory for input buffer copies (numInputs * bufLength) // and linear interpolation state (numInputs) // = numInputs * (bufLength + 1) unit->mInBufValue = (float*)RTAlloc(unit->mWorld, unit->getNumAudioInputs()*sizeof(float)); float* mem = (float*)RTAlloc(unit->mWorld, unit->getNumAudioInputs()*BUFLENGTH*sizeof(float)); // Aquire memory for interpolator state. for (int i=0; i < unit->getNumAudioInputs(); ++i) { // Initialize interpolator. unit->mInBufValue[i] = IN0(i); // Aquire buffer memory. unit->mInBufCopy[i] = mem; mem += BUFLENGTH; } SETCALC(Faust_next_copy); } #if !defined(NDEBUG) Print("Faust[%s]:\n", g_unitName); Print(" Inputs: %d\n" " Outputs: %d\n" " Callback: %s\n", numInputs, numOutputs, unit->mCalcFunc == (UnitCalcFunc)Faust_next ? "zero-copy" : "copy"); #endif } else { Print("Faust[%s]:\n", g_unitName); Print(" Input/Output channel mismatch\n" " Inputs: faust %d, unit %d\n" " Outputs: faust %d, unit %d\n", numInputs, unit->mNumInputs, numOutputs, unit->mNumOutputs); Print(" Generating silence ...\n"); SETCALC(Faust_next_clear); } } void Faust_Dtor(Faust* unit) // module destructor { if (unit->mInBufValue) { RTFree(unit->mWorld, unit->mInBufValue); } if (unit->mInBufCopy) { if (unit->mInBufCopy[0]) { RTFree(unit->mWorld, unit->mInBufCopy[0]); } RTFree(unit->mWorld, unit->mInBufCopy); } } FAUST_EXPORT void load(InterfaceTable* inTable) { ft = inTable; Meta meta; mydsp::metadata(&meta); std::string name = meta["name"]; if (name.empty()) { name = fileNameToUnitName(__FILE__); } name = normalizeClassName(name); if (name.empty()) { // Catch empty name Print("*** Faust: supercollider.cpp: " "Could not create unit-generator module name from filename\n" " bailing out ...\n"); return; } if (strncmp(name.c_str(),SC_FAUST_PREFIX,strlen(SC_FAUST_PREFIX))!=0){ name = SC_FAUST_PREFIX + name; } // Initialize global data // TODO: Use correct sample rate initState(name, 48000); // Register ugen (*ft->fDefineUnit)( (char*)name.c_str(), unitSize(), (UnitCtorFunc)&Faust_Ctor, (UnitDtorFunc)&Faust_Dtor, kUnitDef_CantAliasInputsToOutputs ); #if !defined(NDEBUG) Print("Faust: %s numControls=%d\n", name.c_str(), g_numControls); #endif // NDEBUG } // EOF faust-0.9.46/architecture/pa-qt.cpp0000644000175000017500000001004311702130733017053 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include "gui/FUI.h" #include "gui/faustqt.h" #include "misc.h" #include "audio/portaudio-dsp.h" #ifdef OSCCTRL #include "gui/OSCUI.h" #endif /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; list GUI::fGuiList; /****************************************************************************** ******************************************************************************* MAIN PLAY THREAD ******************************************************************************* *******************************************************************************/ long lopt(char *argv[], const char *name, long def) { int i; for (i=0; argv[i]; i++) if (!strcmp(argv[i], name)) return atoi(argv[i+1]); return def; } int main(int argc, char *argv[]) { char appname[256]; char rcfilename[256]; char* home = getenv("HOME"); snprintf(appname, 255, "%s", basename(argv[0])); snprintf(rcfilename, 255, "%s/.%src", home, appname); GUI* interface = new QTGUI(argc, argv); FUI* finterface = new FUI(); DSP.buildUserInterface(interface); DSP.buildUserInterface(finterface); #ifdef OSCCTRL GUI* oscinterface = new OSCUI(appname, argc, argv); DSP.buildUserInterface(oscinterface); #endif long srate = (long)lopt(argv, "--frequency", 44100); int fpb = lopt(argv, "--buffer", 128); portaudio audio (srate, fpb); audio.init(appname, &DSP); finterface->recallState(rcfilename); audio.start(); #ifdef OSCCTRL oscinterface->run(); #endif interface->run(); audio.stop(); finterface->saveState(rcfilename); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/module.cpp0000644000175000017500000000451411702130733017324 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This is sample code. This file is provided as an example of minimal FAUST architecture file. Redistribution and use in source and binary forms, with or without modification, in part or in full are permitted. In particular you can create a derived work of this FAUST architecture and distribute that work under terms of your choice. This sample code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ************************************************************************ ************************************************************************/ #include #include #include #include #include #include #include #include #include #include "gui/GUI.h" #include "misc.h" #include "audio/dsp.h" using namespace std; /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> //---------------------------------------------------------------- // Signal processor definition //---------------------------------------------------------------- <> extern "C" dsp* newDsp() { return new mydsp(); } extern "C" void deleteDsp(dsp* self) { delete self; } extern "C" int getNumInputs(dsp* self) { return self->getNumInputs(); } extern "C" int getNumOutputs(dsp* self) { return self->getNumOutputs(); } extern "C" void buildUserInterface(dsp* self,UI* interface) { self->buildUserInterface(interface); } extern "C" void init(dsp* self, int freq) { self->init(freq); } extern "C" void compute(dsp* self, int len, float** inputs, float** outputs) { self->compute(len, inputs, outputs); } faust-0.9.46/architecture/sndfile.cpp0000644000175000017500000002616711702130733017473 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "gui/GUI.h" #include "audio/dsp.h" #include "misc.h" /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> /****************************************************************************** ******************************************************************************* USER INTERFACE ******************************************************************************* *******************************************************************************/ struct param { float* fZone; float fMin; float fMax; param(float* z, float init, float a, float b) : fZone(z), fMin(a), fMax(b) { *z = init; } }; class CMDUI : public UI { int fArgc; char** fArgv; vector fFiles; stack fPrefix; map fKeyParam; void openAnyBox(const char* label) { string prefix; if (label && label[0]) { prefix = fPrefix.top() + "-" + label; } else { prefix = fPrefix.top(); } fPrefix.push(prefix); } string simplify(const string& src) { int i=0; int level=0; string dst; while (src[i] ) { switch (level) { case 0 : case 1 : case 2 : // Skip the begin of the label "--foo-" // until 3 '-' have been read if (src[i]=='-') { level++; } break; case 3 : // copy the content, but skip non alphnum // and content in parenthesis switch (src[i]) { case '(' : case '[' : level++; break; case '-' : dst += '-'; break; default : if (isalnum(src[i])) { dst+= tolower(src[i]); } } break; default : // here we are inside parenthesis and // we skip the content until we are back to // level 3 switch (src[i]) { case '(' : case '[' : level++; break; case ')' : case ']' : level--; break; default : break; } } i++; } return dst; } public: CMDUI(int argc, char *argv[]) : UI(), fArgc(argc), fArgv(argv) { fPrefix.push("-"); } virtual ~CMDUI() {} void addOption(const char* label, float* zone, float init, float min, float max) { string fullname = "-" + simplify(fPrefix.top() + "-" + label); fKeyParam.insert(make_pair(fullname, param(zone, init, min, max))); } virtual void addButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addToggleButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addCheckButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) {} virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) {} virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) {} virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) {} virtual void openFrameBox(const char* label) { openAnyBox(label); } virtual void openTabBox(const char* label) { openAnyBox(label); } virtual void openHorizontalBox(const char* label) { openAnyBox(label); } virtual void openVerticalBox(const char* label) { openAnyBox(label); } virtual void closeBox() { fPrefix.pop(); } virtual void show() {} virtual void run() {} void printhelp() { map::iterator i; cout << fArgc << "\n"; cout << fArgv[0] << " option list : "; for (i = fKeyParam.begin(); i != fKeyParam.end(); i++) { cout << "[ " << i->first << " " << i->second.fMin << ".." << i->second.fMax <<" ] "; } cout << " infile outfile\n"; } void process_command() { map::iterator p; for (int i = 1; i < fArgc; i++) { if (fArgv[i][0] == '-') { if ( (strcmp(fArgv[i], "-help") == 0) || (strcmp(fArgv[i], "-h") == 0) || (strcmp(fArgv[i], "--help") == 0) ) { printhelp(); exit(1); } p = fKeyParam.find(fArgv[i]); if (p == fKeyParam.end()) { cout << fArgv[0] << " : unrecognized option " << fArgv[i] << "\n"; printhelp(); exit(1); } char* end; *(p->second.fZone) = float(strtod(fArgv[i+1], &end)); i++; } else { fFiles.push_back(fArgv[i]); } } } int files() { return fFiles.size(); } char* file (int n) { return fFiles[n]; } char* input_file () { cout << "input file " << fFiles[0]; return fFiles[0]; } char* output_file() { cout << "output file " << fFiles[1]; return fFiles[1]; } void process_init() { map::iterator p; for (int i = 1; i < fArgc; i++) { if (fArgv[i][0] == '-') { p = fKeyParam.find(fArgv[i]); if (p == fKeyParam.end()) { cout << fArgv[0] << " : unrecognized option " << fArgv[i] << "\n"; exit(1); } char* end; *(p->second.fZone) = float(strtod(fArgv[i+1], &end)); i++; } } } }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; class Separator { int fNumFrames; int fNumInputs; int fNumOutputs; float* fInput; float* fOutputs[256]; public: Separator(int numFrames, int numInputs, int numOutputs) { fNumFrames = numFrames; fNumInputs = numInputs; fNumOutputs = max(numInputs, numOutputs); // allocate interleaved input channel fInput = (float*) calloc(fNumFrames*fNumInputs, sizeof(float)); // allocate separate output channels for (int i = 0; i < fNumOutputs; i++) { fOutputs[i] = (float*) calloc (fNumFrames, sizeof(float)); } } ~Separator() { // free interleaved input channel free(fInput); // free separate output channels for (int i = 0; i < fNumOutputs; i++) { free(fOutputs[i]); } } float* input() { return fInput; } float** outputs() { return fOutputs; } void separate() { for (int s = 0; s < fNumFrames; s++) { for (int c = 0; c < fNumInputs; c++) { fOutputs[c][s] = fInput[c + s*fNumInputs]; } } } }; class Interleaver { int fNumFrames; int fNumInputs; int fNumOutputs; float* fInputs[256]; float* fOutput; public: Interleaver(int numFrames, int numInputs, int numOutputs) { fNumFrames = numFrames; fNumInputs = max(numInputs, numOutputs); fNumOutputs = numOutputs; // allocate separate input channels for (int i = 0; i < fNumInputs; i++) { fInputs[i] = (float*) calloc (fNumFrames, sizeof(float)); } // allocate interleaved output channel fOutput = (float*) calloc(fNumFrames*fNumOutputs, sizeof(float)); } ~Interleaver() { // free separate input channels for (int i = 0; i < fNumInputs; i++) { free(fInputs[i]); } // free interleaved output channel free(fOutput); } float** inputs() { return fInputs; } float* output() { return fOutput; } void interleave() { for (int s = 0; s < fNumFrames; s++) { for (int c = 0; c < fNumOutputs; c++) { fOutput[c + s*fNumOutputs] = fInputs[c][s]; } } } }; #define kFrames 512 int main(int argc, char *argv[] ) { SNDFILE* in_sf; SNDFILE* out_sf; SF_INFO in_info; SF_INFO out_info; CMDUI* interface = new CMDUI(argc, argv); DSP.buildUserInterface(interface); interface->process_command(); // open input file in_info.format = 0; in_sf = sf_open (interface->input_file(), SFM_READ, &in_info); if (in_sf == NULL) { sf_perror(in_sf); exit(0); } // open output file out_info = in_info; out_info.format = in_info.format; out_info.channels = DSP.getNumOutputs(); out_sf = sf_open(interface->output_file(), SFM_WRITE, &out_info); if (out_sf == NULL) { sf_perror(out_sf); exit(0); } // create separator and interleaver Separator sep (kFrames, in_info.channels, DSP.getNumInputs()); Interleaver ilv (kFrames, DSP.getNumOutputs(), DSP.getNumOutputs()); // init signal processor DSP.init(in_info.samplerate); //DSP.buildUserInterface(interface); interface->process_init(); // process all samples int nbf; do { nbf = sf_readf_float(in_sf, sep.input(), kFrames); sep.separate(); DSP.compute(nbf, sep.outputs(), ilv.inputs()); ilv.interleave(); sf_writef_float(out_sf, ilv.output(), nbf); //sf_write_raw(out_sf, ilv.output(), nbf); } while (nbf == kFrames); // close the input and output files sf_close(in_sf); sf_close(out_sf); } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/jack-internal.cpp0000644000175000017500000006047611702130733020572 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) // abs is now predefined //template T abs (T a) { return (a> n); } /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } <> /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) abstract interfaces ******************************************************************************* *******************************************************************************/ using namespace std; struct uiItem; typedef void (*uiCallback)(float val, void* data); /** * Graphic User Interface : abstract definition */ class UI { typedef list clist; typedef map zmap; private: static list fGuiList; zmap fZoneMap; bool fStopped; public: UI() : fStopped(false) { fGuiList.push_back(this); } virtual ~UI() { // suppression de this dans fGuiList } // -- zone management void registerZone(float* z, uiItem* c) { if (fZoneMap.find(z) == fZoneMap.end()) fZoneMap[z] = new clist(); fZoneMap[z]->push_back(c); } void updateAllZones(); void updateZone(float* z); static void updateAllGuis() { list::iterator g; for (g = fGuiList.begin(); g != fGuiList.end(); g++) { (*g)->updateAllZones(); } } // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; void addCallback(float* zone, uiCallback foo, void* data); // -- widget's layouts virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void declare(float* zone, const char* key, const char* value) {} }; class OSCUI : public UI { public: OSCUI() : UI() {} virtual ~OSCUI() { // suppression de this dans fGuiList } // -- active widgets virtual void addButton(const char* label, float* zone) {} virtual void addToggleButton(const char* label, float* zone) {} virtual void addCheckButton(const char* label, float* zone) {} virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) {} virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) {} virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) {} // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) {} virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) {} virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) {} virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) {} void addCallback(float* zone, uiCallback foo, void* data); // -- widget's layouts virtual void openFrameBox(const char* label) {} virtual void openTabBox(const char* label) {} virtual void openHorizontalBox(const char* label) {} virtual void openVerticalBox(const char* label) {} virtual void closeBox() {} virtual void declare(float* zone, const char* key, const char* value) {} }; list UI::fGuiList; /** * User Interface Item: abstract definition */ class uiItem { protected : UI* fGUI; float* fZone; float fCache; uiItem (UI* ui, float* zone) : fGUI(ui), fZone(zone), fCache(-123456.654321) { ui->registerZone(zone, this); } public : virtual ~uiItem() {} void modifyZone(float v) { fCache = v; if (*fZone != v) { *fZone = v; fGUI->updateZone(fZone); } } float cache() { return fCache; } virtual void reflectZone() = 0; }; /** * Callback Item */ struct uiCallbackItem : public uiItem { uiCallback fCallback; void* fData; uiCallbackItem(UI* ui, float* zone, uiCallback foo, void* data) : uiItem(ui, zone), fCallback(foo), fData(data) {} virtual void reflectZone() { float v = *fZone; fCache = v; fCallback(v, fData); } }; /** * Update all user items reflecting zone z */ inline void UI::updateZone(float* z) { float v = *z; clist* l = fZoneMap[z]; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } /** * Update all user items not up to date */ inline void UI::updateAllZones() { for (zmap::iterator m = fZoneMap.begin(); m != fZoneMap.end(); m++) { float* z = m->first; clist* l = m->second; float v = *z; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } } inline void UI::addCallback(float* zone, uiCallback foo, void* data) { new uiCallbackItem(this, zone, foo, data); }; //---------------------------------------------------------------- // definition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; virtual void conclude() {} }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ /****************************************************************************** ******************************************************************************* JACK AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ #define JACK_DRIVER_NAME_MAX 15 #define JACK_DRIVER_PARAM_NAME_MAX 15 #define JACK_DRIVER_PARAM_STRING_MAX 63 #define JACK_DRIVER_PARAM_DESC 255 #define JACK_PATH_MAX 511 /** Driver parameter types */ typedef enum { JackDriverParamInt = 1, JackDriverParamUInt, JackDriverParamChar, JackDriverParamString, JackDriverParamBool } jack_driver_param_type_t; /** Driver parameter value */ typedef union { uint32_t ui; int32_t i; char c; char str[JACK_DRIVER_PARAM_STRING_MAX + 1]; } jack_driver_param_value_t; /** A driver parameter descriptor */ typedef struct { char name[JACK_DRIVER_NAME_MAX + 1]; /**< The parameter's name */ char character; /**< The parameter's character (for getopt, etc) */ jack_driver_param_type_t type; /**< The parameter's type */ jack_driver_param_value_t value; /**< The parameter's (default) value */ char short_desc[64]; /**< A short (~30 chars) description for the user */ char long_desc[1024]; /**< A longer description for the user */ } jack_driver_param_desc_t; /** A driver parameter */ typedef struct { char character; jack_driver_param_value_t value; } jack_driver_param_t; /** A struct for describing a jack driver */ typedef struct { char name[JACK_DRIVER_NAME_MAX + 1]; /**< The driver's canonical name */ char desc[JACK_DRIVER_PARAM_DESC + 1]; /**< The driver's extended description */ char file[JACK_PATH_MAX + 1]; /**< The filename of the driver's shared object file */ uint32_t nparams; /**< The number of parameters the driver has */ jack_driver_param_desc_t * params; /**< An array of parameter descriptors */ } jack_driver_desc_t; // class JackArgParser *************************************************** class JackArgParser { private: std::string fArgString; int fArgc; std::vector fArgv; public: JackArgParser (const char* arg); ~JackArgParser(); std::string GetArgString(); int GetNumArgv(); int GetArgc(); int GetArgv (std::vector& argv); int GetArgv (char** argv); void DeleteArgv (const char** argv); void ParseParams (jack_driver_desc_t* desc, JSList** param_list); void FreeParams (JSList* param_list); }; JackArgParser::JackArgParser (const char* arg) { printf ("JackArgParser::JackArgParser, arg_string : '%s' \n", arg); fArgc = 0; //if empty string if (strlen(arg) == 0) return; fArgString = string(arg); //else parse the arg string const size_t arg_len = fArgString.length(); unsigned int i = 0; size_t pos = 0; size_t start = 0; size_t copy_start = 0; size_t copy_length = 0; //we need a 'space terminated' string fArgString += " "; //first fill a vector with args do { //find the first non-space character from the actual position start = fArgString.find_first_not_of (' ', start); //get the next quote or space position pos = fArgString.find_first_of (" \"" , start); //no more quotes or spaces, consider the end of the string if (pos == string::npos) pos = arg_len; //if double quote if (fArgString[pos] == '\"') { //first character : copy the substring if (pos == start) { copy_start = start + 1; pos = fArgString.find ('\"', ++pos); copy_length = pos - copy_start; start = pos + 1; } //else there is someting before the quote, first copy that else { copy_start = start; copy_length = pos - copy_start; start = pos; } } //if space if (fArgString[pos] == ' ') { //short option descriptor if ((fArgString[start] == '-') && (fArgString[start + 1] != '-')) { copy_start = start; copy_length = 2; start += copy_length; } //else copy all the space delimitated string else { copy_start = start; copy_length = pos - copy_start; start = pos + 1; } } //then push the substring to the args vector fArgv.push_back (fArgString.substr (copy_start, copy_length)); printf("JackArgParser::JackArgParser, add : '%s' \n", (*fArgv.rbegin()).c_str()); } while (start < arg_len); //finally count the options for (i = 0; i < fArgv.size(); i++) if (fArgv[i].at(0) == '-') fArgc++; } JackArgParser::~JackArgParser() {} string JackArgParser::GetArgString() { return fArgString; } int JackArgParser::GetNumArgv() { return fArgv.size(); } int JackArgParser::GetArgc() { return fArgc; } int JackArgParser::GetArgv(vector& argv) { argv = fArgv; return 0; } int JackArgParser::GetArgv(char** argv) { //argv must be NULL if (argv) return -1; //else allocate and fill it argv = (char**)calloc(fArgv.size(), sizeof(char*)); for (unsigned int i = 0; i < fArgv.size(); i++) { argv[i] = (char*)calloc(fArgv[i].length(), sizeof(char)); fill_n(argv[i], fArgv[i].length() + 1, 0); fArgv[i].copy(argv[i], fArgv[i].length()); } return 0; } void JackArgParser::DeleteArgv(const char** argv) { unsigned int i; for (i = 0; i < fArgv.size(); i++) free((void*)argv[i]); free((void*)argv); } void JackArgParser::ParseParams(jack_driver_desc_t* desc, JSList** param_list) { string options_list; unsigned long i = 0; unsigned int param = 0; size_t param_id = 0; JSList* params = NULL; jack_driver_param_t* intclient_param; for (i = 0; i < desc->nparams; i++) options_list += desc->params[i].character; for (param = 0; param < fArgv.size(); param++) { if (fArgv[param][0] == '-') { //valid option if ((param_id = options_list.find_first_of(fArgv[param].at(1))) != string::npos) { intclient_param = static_cast(calloc(1, sizeof(jack_driver_param_t))); intclient_param->character = desc->params[param_id].character; switch (desc->params[param_id].type) { case JackDriverParamInt: if (param + 1 < fArgv.size()) // something to parse intclient_param->value.i = atoi(fArgv[param + 1].c_str()); break; case JackDriverParamUInt: if (param + 1 < fArgv.size()) // something to parse intclient_param->value.ui = strtoul(fArgv[param + 1].c_str(), NULL, 10); break; case JackDriverParamChar: if (param + 1 < fArgv.size()) // something to parse intclient_param->value.c = fArgv[param + 1][0]; break; case JackDriverParamString: if (param + 1 < fArgv.size()) // something to parse fArgv[param + 1].copy(intclient_param->value.str, min(static_cast(fArgv[param + 1].length()), JACK_DRIVER_PARAM_STRING_MAX)); break; case JackDriverParamBool: intclient_param->value.i = true; break; } //add to the list params = jack_slist_append(params, intclient_param); } //invalid option else printf("Invalid option '%c'\n", fArgv[param][1]); } } assert(param_list); *param_list = params; } void JackArgParser::FreeParams(JSList* param_list) { JSList *node_ptr = param_list; JSList *next_node_ptr; while (node_ptr) { next_node_ptr = node_ptr->next; free(node_ptr->data); free(node_ptr); node_ptr = next_node_ptr; } } struct JackFaustInternal { //---------------------------------------------------------------------------- // number of input and output channels //---------------------------------------------------------------------------- int fNumInChans; int fNumOutChans; //---------------------------------------------------------------------------- // Jack ports //---------------------------------------------------------------------------- jack_port_t* fInputPorts[256]; jack_port_t* fOutputPorts[256]; //---------------------------------------------------------------------------- // tables of noninterleaved input and output channels for FAUST //---------------------------------------------------------------------------- float* fInChannel[256]; float* fOutChannel[256]; jack_client_t* fClient; UI* fInterface; mydsp fDSP; JackFaustInternal(jack_client_t* client, const JSList* params) :fClient(client) {} ~JackFaustInternal() { delete fInterface; } int Open() { char** physicalInPorts; char** physicalOutPorts; fInterface = new OSCUI(); fDSP.buildUserInterface(fInterface); jack_set_process_callback(fClient, process, this); jack_set_sample_rate_callback(fClient, srate, this); fNumInChans = fDSP.getNumInputs(); fNumOutChans = fDSP.getNumOutputs(); for (int i = 0; i < fNumInChans; i++) { char buf[256]; snprintf(buf, 256, "in_%d", i); fInputPorts[i] = jack_port_register(fClient, buf, JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0); } for (int i = 0; i < fNumOutChans; i++) { char buf[256]; snprintf(buf, 256, "out_%d", i); fOutputPorts[i] = jack_port_register(fClient, buf, JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); } fDSP.init(jack_get_sample_rate(fClient)); physicalInPorts = (char **)jack_get_ports(fClient, NULL, NULL, JackPortIsPhysical|JackPortIsInput); physicalOutPorts = (char **)jack_get_ports(fClient, NULL, NULL, JackPortIsPhysical|JackPortIsOutput); if (jack_activate(fClient)) { fprintf(stderr, "cannot activate client"); return -1; } if (physicalOutPorts != NULL) { for (int i = 0; i < fNumInChans && physicalOutPorts[i]; i++) { jack_connect(fClient, physicalOutPorts[i], jack_port_name(fInputPorts[i])); } } if (physicalInPorts != NULL) { for (int i = 0; i < fNumOutChans && physicalInPorts[i]; i++) { jack_connect(fClient, jack_port_name(fOutputPorts[i]), physicalInPorts[i]); } } return 0; } //---------------------------------------------------------------------------- // Jack Callbacks //---------------------------------------------------------------------------- static int srate(jack_nframes_t nframes, void *arg) { printf("the sample rate is now %u/sec\n", nframes); return 0; } static int process(jack_nframes_t nframes, void *arg) { JackFaustInternal* obj = (JackFaustInternal*)arg; AVOIDDENORMALS; for (int i = 0; i < obj->fNumInChans; i++) { obj->fInChannel[i] = (float *)jack_port_get_buffer(obj->fInputPorts[i], nframes); } for (int i = 0; i < obj->fNumOutChans; i++) { obj->fOutChannel[i] = (float *)jack_port_get_buffer(obj->fOutputPorts[i], nframes); } obj->fDSP.compute(nframes, obj->fInChannel, obj->fOutChannel); return 0; } }; #ifdef __cplusplus extern "C" { #endif jack_driver_desc_t* jack_get_descriptor() { jack_driver_desc_t *desc; unsigned int i; desc = (jack_driver_desc_t*)calloc(1, sizeof(jack_driver_desc_t)); strcpy(desc->name, "faust"); // size MUST be less then JACK_DRIVER_NAME_MAX + 1 strcpy(desc->desc, " Faust generated internal"); // size MUST be less then JACK_DRIVER_PARAM_DESC + 1 desc->nparams = 0; /* desc->nparams = 2; desc->params = (jack_driver_param_desc_t*)calloc(desc->nparams, sizeof(jack_driver_param_desc_t)); i = 0; strcpy(desc->params[i].name, "channels"); desc->params[i].character = 'c'; desc->params[i].type = JackDriverParamInt; desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "Maximum number of channels"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); i++; strcpy(desc->params[i].name, "inchannels"); desc->params[i].character = 'i'; desc->params[i].type = JackDriverParamInt; desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "Maximum number of input channels"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); */ return desc; } int jack_internal_initialize(jack_client_t* client, const JSList* params) { try { JackFaustInternal* internal = new JackFaustInternal(client, params); if (internal->Open() == 0) { return 0; } else { delete internal; return 1; } } catch (...) { return 1; } } int jack_initialize(jack_client_t* client, const char* load_init) { JSList* params = NULL; jack_driver_desc_t *desc = jack_get_descriptor(); JackArgParser parser(load_init); if (parser.GetArgc() > 0) parser.ParseParams(desc, ¶ms); int res = jack_internal_initialize(client, params); parser.FreeParams(params); return res; } void jack_finish(void* arg) { JackFaustInternal* internal = static_cast(arg); if (internal) { printf("Unloading internal\n"); delete internal; } } #ifdef __cplusplus } #endif /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/plot.cpp0000644000175000017500000003363011702130733017016 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include // g++ -O3 -lm -lsndfile myfx.cpp using namespace std; struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; //------------------------------------------------------------------- // Generic min and max using c++ inline //------------------------------------------------------------------- inline int max (unsigned int a, unsigned int b) { return (a>b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a> n); } template T abs (T a) { return (a> /****************************************************************************** ******************************************************************************* USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; // -- frames and labels virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void show() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; struct param { float* fZone; float fMin; float fMax; param(float* z, float init, float a, float b) : fZone(z), fMin(a), fMax(b) { *z = init; } }; class CMDUI : public UI { int fArgc; char** fArgv; vector fFiles; stack fPrefix; map fKeyParam; void openAnyBox(const char* label) { string prefix; if (label && label[0]) { prefix = fPrefix.top() + "-" + label; } else { prefix = fPrefix.top(); } fPrefix.push(prefix); } string simplify(const string& src) { int i=0; int level=0; string dst; while (src[i] ) { switch (level) { case 0 : case 1 : case 2 : // Skip the begin of the label "--foo-" // until 3 '-' have been read if (src[i]=='-') { level++; } break; case 3 : // copy the content, but skip non alphnum // and content in parenthesis switch (src[i]) { case '(' : case '[' : level++; break; case '-' : dst += '-'; break; default : if (isalnum(src[i])) { dst+= tolower(src[i]); } } break; default : // here we are inside parenthesis and // we skip the content until we are back to // level 3 switch (src[i]) { case '(' : case '[' : level++; break; case ')' : case ']' : level--; break; default : break; } } i++; } return dst; } public: CMDUI(int argc, char *argv[]) : UI(), fArgc(argc), fArgv(argv) { fPrefix.push("-"); } virtual ~CMDUI() {} void addOption(const char* label, float* zone, float init, float min, float max) { string fullname = "-" + simplify(fPrefix.top() + "-" + label); fKeyParam.insert(make_pair(fullname, param(zone, init, min, max))); } virtual void addButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addToggleButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addCheckButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) {} virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) {} virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) {} virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) {} virtual void openFrameBox(const char* label) { openAnyBox(label); } virtual void openTabBox(const char* label) { openAnyBox(label); } virtual void openHorizontalBox(const char* label) { openAnyBox(label); } virtual void openVerticalBox(const char* label) { openAnyBox(label); } virtual void closeBox() { fPrefix.pop(); } virtual void show() {} virtual void run() {} void printhelp() { map::iterator i; cout << fArgc << "\n"; cout << fArgv[0] << " option list : "; for (i = fKeyParam.begin(); i != fKeyParam.end(); i++) { cout << "[ " << i->first << " " << i->second.fMin << ".." << i->second.fMax <<" ] "; } cout << " infile outfile\n"; } void process_command() { map::iterator p; for (int i = 1; i < fArgc; i++) { if (fArgv[i][0] == '-') { if ( (strcmp(fArgv[i], "-help") == 0) || (strcmp(fArgv[i], "-h") == 0) || (strcmp(fArgv[i], "--help") == 0) ) { printhelp(); exit(1); } p = fKeyParam.find(fArgv[i]); if (p == fKeyParam.end()) { cout << fArgv[0] << " : unrecognized option " << fArgv[i] << "\n"; printhelp(); exit(1); } char* end; *(p->second.fZone) = float(strtod(fArgv[i+1], &end)); i++; } else { fFiles.push_back(fArgv[i]); } } } int files() { return fFiles.size(); } char* file (int n) { return fFiles[n]; } }; //---------------------------------------------------------------- // d�inition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; virtual void conclude() {} }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; class channels { int fNumFrames; int fNumChannels; float* fBuffers[256]; public: channels(int nframes, int nchannels) { fNumFrames = nframes; fNumChannels = nchannels; // allocate audio channels for (int i = 0; i < fNumChannels; i++) { fBuffers[i] = (float*) calloc (fNumFrames, sizeof(float)); } } ~channels() { // free separate input channels for (int i = 0; i < fNumChannels; i++) { // free(fBuffers[i]); } } float** buffers() { return fBuffers; } }; #define kFrames 512 int main(int argc, char *argv[] ) { float fnbsamples; CMDUI* interface = new CMDUI(argc, argv); DSP.buildUserInterface(interface); interface->addOption("-n", &fnbsamples, 16, 0.0, 100000000.0); if (DSP.getNumInputs() > 0) { fprintf(stderr, "no inputs allowed\n"); exit(1); } // init signal processor and the user interface values DSP.init(44100); // modifie the UI valuez according to the command line options interface->process_command(); int nouts = DSP.getNumOutputs(); channels chan (kFrames, nouts); int nbsamples = int(fnbsamples); while (nbsamples > kFrames) { DSP.compute(kFrames, 0, chan.buffers()); for (int i = 0; i < kFrames; i++) { for (int c = 0; c < nouts; c++) { printf("%8f\t", chan.buffers()[c][i]); } cout << endl; } nbsamples -= kFrames; } DSP.compute(nbsamples, 0, chan.buffers()); for (int i = 0; i < nbsamples; i++) { for (int c = 0; c < nouts; c++) { printf("%8f\t", chan.buffers()[c][i]); } cout << endl; } return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/mathdoctexts-de.txt0000644000175000017500000001271511702130733021173 0ustar orlareyorlarey// Default texts for the math documentator of the Faust compiler. // Copyright (C) 2009 GRAME, Centre National de Creation Musicale // Karim Barkati // German translation by Albert Gräf, Dept. of Music Informatics, // Johannes Gutenberg University Mainz, Feb 15, 2010. (UTF8) // Remark: // double quotes are useful to visualize spaces and tabulations // at the beginning or at the end of strings. // Metadatas section. :name "Name" :author "Autor" :copyright "Copyright" :license "Licenz" :version "Version" // Notice section. :faustapply "Der Wert eines Faust-Programms ist das Resultat der Anwendung des Signalumwandlers, der durch den an den Bezeichner \texttt{process} gebundenen Ausdruck gegeben ist, auf Eingabe-Signale mit der durch $f_S$ gegebenen Abtastfrequenz." :faustpresentation "Faust (\emph{Functional Audio Stream}) ist eine funktionale Programmiersprache, die für die synchrone Echtzeit-Verarbeitung und Synthese-Anwendungen entworfen wurde. Ein Faust-Programm ist eine Menge von Bindungen von Bezeichnern an Ausdrücke, die Signalumwandler bezeichnen. Ein Signal $s$ in $S$ bildet diskrete Zeitwerte $t \in \mathbb{Z}$ auf Werte $s(t) \in \mathbb{R}$ ab\footnote{Faust nimmt an, dass $\forall \, s \in S, \forall \, t \in \mathbb{Z}, s(t) = 0 \mathrm{\ falls\ } t < 0$.}, während ein Signalumwandler eine Funktion von $S^n$ in $S^m$ ist, wobei $n,m\in \mathbb{N}$. Siehe das Faust-Handbuch für weitere Informationen (\textsf{http://faust.grame.fr})." :causality "Für jede aus einem Faust-Ausdruck abgeleitete mathematische Formel wird in diesem Dokument angenommen, das sie (in einer im\-ple\-men\-tie\-rungs\-ab\-hän\-gi\-gen Weise) durch den Faust-Compiler normalisiert wurde." :blockdiagrams "Ein Blockdiagramm ist eine graphische Repräsentation der Faust-Bindung eines Bezeichners I an einen Ausdruck E; jeder Graph wird in eine mit I etikettierte Box gesetzt. Unterausdrücke von E werden rekursiv angezeigt, solange das gesamte Bild auf eine Seite passt." :faustdocdir "Das \texttt{\faustdocdir/}-Verzeichnis kann auch die folgenden Unterverzeichnisse enthalten:" "\begin{itemize}" " \item \texttt{cpp/} für Faust-kompilierten Code; " " \item \texttt{pdf/} enthält dieses Dokument; " " \item \texttt{src/} für alle verwendeten Faust-Quellen (auch Bibliotheken); " " \item \texttt{svg/} für Blockdiagramme, die im Scalable Vector Graphics-Format kodiert sind (\textsf{http://www.w3.org/Graphics/SVG/});" " \item \texttt{tex/} für die \LaTeX-Quellen dieses Dokuments." "\end{itemize}" :foreignfun "die "ff"-Präfix in einem Funktionsnamen steht für C++ "foreign function"." :intcast "$\forall \, x \in \mathbb{R}$, " " \begin{displaymath}" " \mathrm{int}(x) =" " \left\{\begin{array}{cl}" " \lfloor x \rfloor & \mbox{falls \,} x > 0 \\" " \lceil x \rceil & \mbox{falls \,} x < 0 \\" " 0 & \mbox{falls \,} x = 0 \\" " \end{array}\right.." " \end{displaymath}" :operators "Dieses Dokument verwendet die folgenden Ganzzahl-Operatoren: " :optabtitle "\emph{Operator} & \emph{Name} & \emph{Semantik} \\" :intplus "$\oplus$ & umkreistes Plus & ganzzahlige Addition \\" :intminus "$\ominus$ & umkreistes Minus & ganzzahlige Substraktion \\" :intmult "$\odot$ & umkreister Punkt & ganzzahlige Multiplikation \\" :intdiv "$\oslash$ & umkreister Schrägstrich & ganzzahlige Division \\" :intand "$\wedge$ & Wedge & bitweises \texttt{\&} (und) \\" :intor "$\vee$ & Vee & bitweises \texttt{|} (oder) \\" :intxor "$\veebar$ & unterstrichenes Vee & bitweises \texttt{\^} (exklusives oder) \\" // Auto-documentation section. :thisdoc "Dieses Dokument bietet eine mathematische Beschreibung des in der \texttt{\faustfilename}-Datei gespeicherten Faust-Programmtextes. Siehe die Anmerkungen in Abschnitt\,\ref{notice} (Seite\,\pageref{notice}) für weitere Einzelheiten." :autoeqntitle "\section{Mathematische Definition von \texttt{process}}" "\label{equation}" :autoeqntext "Das \emph{\faustprogname}-Programm wertet den durch \texttt{process} bezeichneten Signalumwandler aus, der wie folgt mathematisch definiert ist:" :autodgmtitle "\section{Blockdiagramm von \texttt{process}}" "\label{diagram}" :autodgmtext "Das Blockdiagramm von \texttt{process} wird in Abbildung\,\ref{figure1} (Seite\,\pageref{figure1}) gezeigt." :autontctitle "\section{Anmerkungen}" "\label{notice}" :autontctext "Dieses Dokument wurde mit Faust Version \faustversion\ am \faustdocdate\ generiert." :autolsttitle1 "\section{Liste des Faust-Programmcodes}" "\label{listing}" :autolsttext1 "Dieser Abschnitt enthält die Auflistung des Faust-Programmcodes, der zur Generierung dieses Dokuments verwendet wurde." :autolsttitle2 "\section{Listen des Faust-Programmcodes}" "\label{listing}" :autolsttext2 "Dieser Abschnitt enthält die Auflistungen des Faust-Programmcodes, der zur Generierung dieses Dokuments verwendet wurde, inklusive Abhängigkeiten." // Titles for each type of formulas. :inputsigtitle1 "Eingabe-Signal" :inputsigtitle2 "Eingabe-Signale" :outputsigtitle1 "Ausgabe-Signal" :outputsigtitle2 "Ausgabe-Signale" :constsigtitle1 "Konstante" :constsigtitle2 "Konstanten" :uisigtitle1 "Benutzerschnittstellen-Eingabe-Signal" :uisigtitle2 "Benutzerschnittstellen-Eingabe-Signale" :intermedsigtitle1 "Zwischen-Signal" :intermedsigtitle2 "Zwischen-Signale" :lateqcomment "% Menge von Faust-Formeln (entsprechend einer -Markierung)." :emptyformulafield "keines" :defaultvalue "Defaultwert" :suchthat "mit" :and "und" :for "für" :rootlevel "(auf Top-Ebene)" :dgmcaption "Blockdiagramm von" faust-0.9.46/architecture/vst.cpp0000644000175000017500000005440411702130733016656 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2004-2011 Remy Muller All rights reserved. ----------------------------BSD License------------------------------ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Remy Muller nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------VST SDK---------------------------------- In order to compile a VST (TM) plugin with this architecture file you will need the proprietary VST SDK from Steinberg. Please check the corresponding license. ************************************************************************ ************************************************************************/ /******************************************************************** * VST wrapper for the FAUST language. * Author: remy muller remy.muller@ircam.fr * http://www.smartelectronix.com/~mdsp/ * * FAUST * Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale * http://www.grame.fr/ * ********************************************************************/ #include #include #include #include #include #include #include #include //#include #include #include #include #include #include using namespace std ; // There is a bug with powf() when cross compiling with mingw // the following macro avoid the problem #ifdef WIN32 #define powf(x,y) pow(x,y) #define expf(x) exp(x) #endif // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif struct Meta { void declare (const char* key, const char* value) { } }; #ifdef __GNUC__ //------------------------------------------------------------------- // Generic min and max using gcc extensions //------------------------------------------------------------------- #define max(x,y) ((x)>?(y)) #define min(x,y) ((x)b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a T abs (T a) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<> /****************************************************************************** ******************************************************************************* * * USER INTERFACE * ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(char* label, float* zone) = 0; virtual void addToggleButton(char* label, float* zone) = 0; virtual void addCheckButton(char* label, float* zone) = 0; virtual void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumDisplay(char* label, float* zone, int precision) = 0; virtual void addTextDisplay(char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(char* label, float* zone, float min, float max) = 0; virtual void openFrameBox(char* label) = 0; virtual void openTabBox(char* label) = 0; virtual void openHorizontalBox(char* label) = 0; virtual void openVerticalBox(char* label) = 0; virtual void closeBox() = 0; virtual void run() {}; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /****************************************************************************** ******************************************************************************* * * FAUST DSP * ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // definition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ /****************************************************************************** * * VST wrapper * ******************************************************************************/ #include "audioeffectx.h" class vstUI; class Faust : public AudioEffectX { public: Faust(audioMasterCallback audioMaster); virtual ~Faust(); virtual void process(float **inputs, float **outputs, long sampleFrames); virtual void processReplacing(float **inputs, float **outputs, long sampleFrames); virtual void setProgramName(char *name); virtual void setProgram(long index); virtual void getProgramName(char *name); virtual void setParameter(long index, float value); virtual float getParameter(long index); virtual void getParameterLabel(long index, char *label); virtual void getParameterDisplay(long index, char *text); virtual void getParameterName(long index, char *text); virtual void setSampleRate(float sampleRate); virtual bool getEffectName (char* name); virtual bool getVendorString (char* text); virtual bool getProductString (char* text); virtual bool getInputProperties (long index, VstPinProperties* properties); virtual bool getOutputProperties (long index, VstPinProperties* properties); private: mydsp* dsp; vstUI* dspUI; }; /*--------------------------------------------------------------------------*/ class vstUIObject { protected: string fLabel; float* fZone; float range(float min, float max, float val) { // VST parameters are normalized in the range [0;1] val = min + val * (max - min); return (val < min) ? min : (val > max) ? max : val; } public: vstUIObject(char* label, float* zone):fLabel(label),fZone(zone) {} virtual ~vstUIObject() {} virtual void GetName(char *text){std::strcpy(text,fLabel.c_str());} virtual void SetValue(double f) {*fZone = range(0.0f,1.0f,(float)f);} virtual float GetValue() {return *fZone;} virtual void GetDisplay(char *text){std::sprintf(text,"%f",*fZone);} virtual long GetID() { /* returns the sum of all the ASCII characters contained in the parameter's label */ int i; long acc; for(i=0,acc = 0;i0.5f)?1.0f:0.0f;} virtual void GetDisplay(char *text){(*fZone>0.5f)? std::strcpy(text,"ON"): std::strcpy(text,"OFF");} }; /*--------------------------------------------------------------------------*/ class vstCheckButton : public vstUIObject { public: vstCheckButton(char* label, float* zone):vstUIObject(label,zone) {} virtual ~vstCheckButton() {} virtual float GetValue() {return *fZone;} virtual void SetValue(double f) {*fZone = (f>0.5f)?1.0f:0.0f;} virtual void GetDisplay(char *text){(*fZone>0.5f)? std::strcpy(text,"ON"): std::strcpy(text,"OFF");} }; /*--------------------------------------------------------------------------*/ class vstButton : public vstUIObject { public: vstButton(char* label, float* zone):vstUIObject(label,zone) {} virtual ~vstButton() {} virtual float GetValue() {return *fZone;} virtual void SetValue(double f) {*fZone = (f>0.5f)?1.0f:0.0f;} virtual void GetDisplay(char *text){(*fZone>0.5f)? std::strcpy(text,"ON"): std::strcpy(text,"OFF");} }; /*--------------------------------------------------------------------------*/ class vstSlider : public vstUIObject{ private: float fInit; float fMin; float fMax; float fStep; public: vstSlider(char* label, float* zone, float init, float min, float max, float step) :vstUIObject(label,zone), fInit(init), fMin(min), fMax(max),fStep(step) {} virtual ~vstSlider() {} virtual float GetValue() {return (*fZone-fMin)/(fMax-fMin);} // normalize virtual void SetValue(double f) {*fZone = range(fMin,fMax,(float)f);} // expand }; /*--------------------------------------------------------------------------*/ class vstUI : public UI { private: vector fUITable; public: vstUI(){} virtual ~vstUI() { for (vector::iterator iter = fUITable.begin(); iter != fUITable.end(); iter++) delete *iter; } void addButton(char* label, float* zone) {fUITable.push_back(new vstButton(label, zone));} void addToggleButton(char* label, float* zone) {fUITable.push_back(new vstToggleButton(label, zone));} void addCheckButton(char* label, float* zone) {fUITable.push_back(new vstCheckButton(label, zone));} void addVerticalSlider(char* label, float* zone, float init, float min, float max, float step) { fUITable.push_back(new vstSlider(label, zone, init, min, max, step)); } void addHorizontalSlider(char* label, float* zone, float init, float min, float max, float step) { fUITable.push_back(new vstSlider(label, zone, init, min, max, step)); } void addNumEntry(char* label, float* zone, float init, float min, float max, float step) {} void openFrameBox(char* label) {} void openTabBox(char* label) {} void openHorizontalBox(char* label) {} void openVerticalBox(char* label) {} void closeBox() {} void SetValue(int index, double f) {assert(indexSetValue(f);} float GetValue(long index) {assert(indexGetValue();} void GetDisplay(long index, char *text) {assert(indexGetDisplay(text);} void GetName(long index, char *text) {assert(indexGetName(text);} long GetNumParams() {return fUITable.size();} long makeID() /* Creates a (unique?)id by summing all the parameter's labels, * then wrapping it in the range [0;maxNumberOfId] and adding * this number to the offset made by the Four Character ID: 'FAUS' */ { const long maxNumberOfId = 128; long baseid = 'FAUS'; long id=0; for(int i=0;iGetID(); return baseid + id % maxNumberOfId; } // To be implemented void addNumDisplay(char* label, float* zone, int precision){} void addTextDisplay(char* label, float* zone, char* names[], float min, float max){} void addHorizontalBargraph(char* label, float* zone, float min, float max){} void addVerticalBargraph(char* label, float* zone, float min, float max){} }; //----------------------------------------------------------------------------- #define NUM_PROGRAMS 0 #define FAKE_NUM_PARAMS 16 Faust::Faust(audioMasterCallback audioMaster) :AudioEffectX(audioMaster, NUM_PROGRAMS,FAKE_NUM_PARAMS) { dsp = new mydsp(); dspUI= new vstUI(); dsp->buildUserInterface(dspUI); dsp->init(long(getSampleRate())); /* we override here the fake number of parameters with the real one*/ this->cEffect.numParams = this->numParams = dspUI->GetNumParams(); setNumInputs(dsp->getNumInputs()); setNumOutputs(dsp->getNumOutputs()); setUniqueID(dspUI->makeID()); canProcessReplacing();//? } //---------------------------------------------------------------------------- Faust::~Faust() { if (dsp) delete dsp; if (dspUI) delete dspUI; } //----------------------------------------------------------------------------- void Faust::setParameter(long index, float value) { if(indexSetValue(index,value); } //----------------------------------------------------------------------------- float Faust::getParameter(long index) { if(indexGetValue(index); else return 0.0f; } //----------------------------------------------------------------------------- void Faust::getParameterName(long index, char *label) { if(indexGetName(index,label); else strcpy(label,""); } //----------------------------------------------------------------------------- void Faust::getParameterDisplay(long index, char *text) { if(indexGetDisplay(index,text); else strcpy(text,""); } //----------------------------------------------------------------------------- void Faust::getParameterLabel(long index, char *label) { strcpy(label,""); } //----------------------------------------------------------------------------- void Faust::setProgramName(char *name) { // this template does not use programs yet } //----------------------------------------------------------------------------- void Faust::setProgram(long index) { // this template does not use programs yet }; //----------------------------------------------------------------------------- void Faust::getProgramName(char *name) { // this template does not use programs yet strcpy(name, ""); } //----------------------------------------------------------------------------- void Faust::process(float **inputs, float **outputs, long sampleFrames) { AVOIDDENORMALS; dsp->compute(sampleFrames, inputs, outputs); } //----------------------------------------------------------------------------- void Faust::processReplacing(float **inputs, float **outputs, long sampleFrames) { AVOIDDENORMALS; dsp->compute(sampleFrames, inputs, outputs); } //----------------------------------------------------------------------------- void Faust::setSampleRate(float sampleRate) { // allways call this AudioEffect::setSampleRate(sampleRate); dsp->init(long(getSampleRate())); } //----------------------------------------------------------------------------------------- bool Faust::getEffectName (char* name) { return false; } //----------------------------------------------------------------------------------------- bool Faust::getVendorString (char* text) { strcpy (text, "Grame"); return true; } //----------------------------------------------------------------------------------------- bool Faust::getProductString (char* text) { strcpy (text, "Faust DSP"); return true; } //----------------------------------------------------------------------------------------- bool Faust::getInputProperties (long index, VstPinProperties* properties) { if(index>=0 && indexgetNumOutputs()) { sprintf (properties->label , "Grame Faust DSP: %d",index); sprintf (properties->shortLabel, "Faust: %d",index); properties->flags = kVstPinIsActive; return true; } else return false; } //----------------------------------------------------------------------------------------- bool Faust::getOutputProperties (long index, VstPinProperties* properties) { if(index>=0 && indexgetNumInputs()) { sprintf (properties->label , "Grame Faust DSP: %d",index); sprintf (properties->shortLabel, "Faust: %d",index); properties->flags = kVstPinIsActive; return true; } else return false; } /***************************************************************************** * * DLL Entry Point * ******************************************************************************/ bool oome = false; #if MAC #pragma export on #endif // prototype of the export function main #if BEOS #define main main_plugin extern "C" __declspec(dllexport) AEffect *main_plugin (audioMasterCallback audioMaster); #elif MACX #define main main_macho extern "C" AEffect *main_macho (audioMasterCallback audioMaster); #else AEffect *main (audioMasterCallback audioMaster); #endif AEffect *main (audioMasterCallback audioMaster) { // get vst version if (!audioMaster (0, audioMasterVersion, 0, 0, 0, 0)) return 0; // old version AudioEffect* effect = new Faust(audioMaster); if (!effect) return 0; if (oome) { delete effect; return 0; } return effect->getAeffect (); } #if MAC #pragma export off #endif #if WIN32 #include void* hInstance; BOOL WINAPI DllMain (HINSTANCE hInst, DWORD dwReason, LPVOID lpvReserved) { hInstance = hInst; return 1; } #endif /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/gui/0000755000175000017500000000000011702130733016113 5ustar orlareyorlareyfaust-0.9.46/architecture/gui/faustgtk.h0000644000175000017500000013115011702130733020115 0ustar orlareyorlarey#ifndef FAUST_GTKUI_H #define FAUST_GTKUI_H #include "GUI.h" /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE gtk interface ******************************************************************************* *******************************************************************************/ #include #include #include #include #include #include #include #include using namespace std; #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) #define stackSize 256 // Insertion modes #define kSingleMode 0 #define kBoxMode 1 #define kTabMode 2 //------------ calculate needed precision static int precision(double n) { if (n < 0.009999) return 3; else if (n < 0.099999) return 2; else if (n < 0.999999) return 1; else return 0; } namespace gtk_knob { class GtkKnob { private: double start_x, start_y, max_value; public: GtkRange parent; int last_quadrant; GtkKnob(); ~GtkKnob(); GtkWidget *gtk_knob_new_with_adjustment(GtkAdjustment *_adjustment); }; #define GTK_TYPE_KNOB (gtk_knob_get_type()) #define GTK_KNOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_KNOB, GtkKnob)) #define GTK_IS_KNOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_KNOB)) #define GTK_KNOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_KNOB, GtkKnobClass)) #define GTK_IS_KNOB_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_KNOB)) GtkKnob::GtkKnob() // GtkKnob constructor { } GtkKnob::~GtkKnob() { // Nothing specific to do... } struct GtkKnobClass { GtkRangeClass parent_class; int knob_x; int knob_y; int knob_step; int button_is; }; //------forward declaration GType gtk_knob_get_type (); /**************************************************************** ** calculate the knop pointer with dead zone */ const double scale_zero = 20 * (M_PI/180); // defines "dead zone" for knobs static void knob_expose(GtkWidget *widget, int knob_x, int knob_y, GdkEventExpose *event, int arc_offset) { /** check resize **/ int grow; if(widget->allocation.width > widget->allocation.height) { grow = widget->allocation.height; } else { grow = widget->allocation.width; } knob_x = grow-4; knob_y = grow-4; /** get values for the knob **/ GtkAdjustment *adj = gtk_range_get_adjustment(GTK_RANGE(widget)); int knobx = (widget->allocation.x+2 + (widget->allocation.width-4 - knob_x) * 0.5); int knoby = (widget->allocation.y+2 + (widget->allocation.height-4 - knob_y) * 0.5); int knobx1 = (widget->allocation.x+2 + (widget->allocation.width-4)* 0.5); int knoby1 = (widget->allocation.y+2 + (widget->allocation.height-4) * 0.5); double knobstate = (adj->value - adj->lower) / (adj->upper - adj->lower); double angle = scale_zero + knobstate * 2 * (M_PI - scale_zero); double knobstate1 = (0. - adj->lower) / (adj->upper - adj->lower); double pointer_off = knob_x/6; double radius = min(knob_x-pointer_off, knob_y-pointer_off) / 2; double lengh_x = (knobx+radius+pointer_off/2) - radius * sin(angle); double lengh_y = (knoby+radius+pointer_off/2) + radius * cos(angle); double radius1 = min(knob_x, knob_y) / 2 ; /** get widget forground color convert to cairo **/ GtkStyle *style = gtk_widget_get_style (widget); double r = min(0.6,style->fg[gtk_widget_get_state(widget)].red/65535.0), g = min(0.6,style->fg[gtk_widget_get_state(widget)].green/65535.0), b = min(0.6,style->fg[gtk_widget_get_state(widget)].blue/65535.0); /** paint focus **/ if (GTK_WIDGET_HAS_FOCUS(widget)== TRUE) { gtk_paint_focus(widget->style, widget->window, GTK_STATE_NORMAL, NULL, widget, NULL, knobx-2, knoby-2, knob_x+4, knob_y+4); } /** create clowing knobs with cairo **/ cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(widget->window)); GdkRegion *region; region = gdk_region_rectangle (&widget->allocation); gdk_region_intersect (region, event->region); gdk_cairo_region (cr, region); cairo_clip (cr); cairo_arc(cr,knobx1+arc_offset, knoby1+arc_offset, knob_x/2.1, 0, 2 * M_PI ); cairo_pattern_t*pat = cairo_pattern_create_radial (knobx1+arc_offset-knob_x/6,knoby1+arc_offset-knob_x/6, 1,knobx1+arc_offset,knoby1+arc_offset,knob_x/2.1 ); if(adj->lower<0 && adj->value>0.) { cairo_pattern_add_color_stop_rgb (pat, 0, r+0.4, g+0.4 + knobstate-knobstate1, b+0.4); cairo_pattern_add_color_stop_rgb (pat, 0.7, r+0.15, g+0.15 + (knobstate-knobstate1)*0.5, b+0.15); cairo_pattern_add_color_stop_rgb (pat, 1, r, g, b); } else if(adj->lower<0 && adj->value<=0.) { cairo_pattern_add_color_stop_rgb (pat, 0, r+0.4 +knobstate1- knobstate, g+0.4, b+0.4); cairo_pattern_add_color_stop_rgb (pat, 0.7, r+0.15 +(knobstate1- knobstate)*0.5, g+0.15, b+0.15); cairo_pattern_add_color_stop_rgb (pat, 1, r, g, b); } else { cairo_pattern_add_color_stop_rgb (pat, 0, r+0.4, g+0.4 +knobstate, b+0.4); cairo_pattern_add_color_stop_rgb (pat, 0.7, r+0.15, g+0.15 + knobstate*0.5, b+0.15); cairo_pattern_add_color_stop_rgb (pat, 1, r, g, b); } cairo_set_source (cr, pat); cairo_fill_preserve (cr); gdk_cairo_set_source_color(cr, gtk_widget_get_style (widget)->fg); cairo_set_line_width(cr, 2.0); cairo_stroke(cr); /** create a rotating pointer on the kob**/ cairo_set_source_rgb(cr, 0.1, 0.1, 0.1); cairo_set_line_width(cr,max(3, min(7, knob_x/15))); cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); cairo_set_line_join(cr, CAIRO_LINE_JOIN_BEVEL); cairo_move_to(cr, knobx+radius1, knoby+radius1); cairo_line_to(cr,lengh_x,lengh_y); cairo_stroke(cr); cairo_set_source_rgb(cr, 0.9, 0.9, 0.9); cairo_set_line_width(cr,min(5, max(1,knob_x/30))); cairo_move_to(cr, knobx+radius1, knoby+radius1); cairo_line_to(cr,lengh_x,lengh_y); cairo_stroke(cr); cairo_pattern_destroy (pat); gdk_region_destroy (region); cairo_destroy(cr); } /**************************************************************** ** general expose events for all "knob" controllers */ //----------- draw the Knob when moved static gboolean gtk_knob_expose (GtkWidget *widget, GdkEventExpose *event) { g_assert(GTK_IS_KNOB(widget)); GtkKnobClass *klass = GTK_KNOB_CLASS(GTK_OBJECT_GET_CLASS(widget)); knob_expose(widget, klass->knob_x, klass->knob_y, event, 0); return TRUE; } /**************************************************************** ** set initial size for GdkDrawable per type */ static void gtk_knob_size_request (GtkWidget *widget, GtkRequisition *requisition) { g_assert(GTK_IS_KNOB(widget)); GtkKnobClass *klass = GTK_KNOB_CLASS(GTK_OBJECT_GET_CLASS(widget)); requisition->width = klass->knob_x; requisition->height = klass->knob_y; } /**************************************************************** ** set value from key bindings */ static void gtk_knob_set_value (GtkWidget *widget, int dir_down) { g_assert(GTK_IS_KNOB(widget)); GtkAdjustment *adj = gtk_range_get_adjustment(GTK_RANGE(widget)); int oldstep = (int)(0.5f + (adj->value - adj->lower) / adj->step_increment); int step; int nsteps = (int)(0.5f + (adj->upper - adj->lower) / adj->step_increment); if (dir_down) step = oldstep - 1; else step = oldstep + 1; float value = adj->lower + step * double(adj->upper - adj->lower) / nsteps; gtk_widget_grab_focus(widget); gtk_range_set_value(GTK_RANGE(widget), value); } /**************************************************************** ** keyboard bindings */ static gboolean gtk_knob_key_press (GtkWidget *widget, GdkEventKey *event) { g_assert(GTK_IS_KNOB(widget)); GtkAdjustment *adj = gtk_range_get_adjustment(GTK_RANGE(widget)); switch (event->keyval) { case GDK_Home: gtk_range_set_value(GTK_RANGE(widget), adj->lower); return TRUE; case GDK_End: gtk_range_set_value(GTK_RANGE(widget), adj->upper); return TRUE; case GDK_Up: gtk_knob_set_value(widget, 0); return TRUE; case GDK_Right: gtk_knob_set_value(widget, 0); return TRUE; case GDK_Down: gtk_knob_set_value(widget, 1); return TRUE; case GDK_Left: gtk_knob_set_value(widget, 1); return TRUE; } return FALSE; } /**************************************************************** ** alternative (radial) knob motion mode (ctrl + mouse pressed) */ static void knob_pointer_event(GtkWidget *widget, gdouble x, gdouble y, int knob_x, int knob_y, bool drag, int state) { static double last_y = 2e20; GtkKnob *knob = GTK_KNOB(widget); GtkAdjustment *adj = gtk_range_get_adjustment(GTK_RANGE(widget)); double radius = min(knob_x, knob_y) / 2; int knobx = (widget->allocation.width - knob_x) / 2; int knoby = (widget->allocation.height - knob_y) / 2; double posx = (knobx + radius) - x; // x axis right -> left double posy = (knoby + radius) - y; // y axis top -> bottom double value; if (!drag) { if (state & GDK_CONTROL_MASK) { last_y = 2e20; return; } else { last_y = posy; } } if (last_y < 1e20) { // in drag started with Control Key const double scaling = 0.005; double scal = (state & GDK_SHIFT_MASK ? scaling*0.1 : scaling); value = (last_y - posy) * scal; last_y = posy; gtk_range_set_value(GTK_RANGE(widget), adj->value - value * (adj->upper - adj->lower)); return; } double angle = atan2(-posx, posy) + M_PI; // clockwise, zero at 6 o'clock, 0 .. 2*M_PI if (drag) { // block "forbidden zone" and direct moves between quadrant 1 and 4 int quadrant = 1 + int(angle/M_PI_2); if (knob->last_quadrant == 1 && (quadrant == 3 || quadrant == 4)) { angle = scale_zero; } else if (knob->last_quadrant == 4 && (quadrant == 1 || quadrant == 2)) { angle = 2*M_PI - scale_zero; } else { if (angle < scale_zero) { angle = scale_zero; } else if (angle > 2*M_PI - scale_zero) { angle = 2*M_PI - scale_zero; } knob->last_quadrant = quadrant; } } else { if (angle < scale_zero) { angle = scale_zero; } else if (angle > 2*M_PI - scale_zero) { angle = 2*M_PI - scale_zero; } knob->last_quadrant = 0; } angle = (angle - scale_zero) / (2 * (M_PI-scale_zero)); // normalize to 0..1 gtk_range_set_value(GTK_RANGE(widget), adj->lower + angle * (adj->upper - adj->lower)); } /**************************************************************** ** mouse button pressed set value */ static gboolean gtk_knob_button_press (GtkWidget *widget, GdkEventButton *event) { g_assert(GTK_IS_KNOB(widget)); GtkKnobClass *klass = GTK_KNOB_CLASS(GTK_OBJECT_GET_CLASS(widget)); switch (event->button) { case 1: // left button gtk_widget_grab_focus(widget); gtk_widget_grab_default (widget); gtk_grab_add(widget); klass->button_is = 1; knob_pointer_event(widget, event->x, event->y, klass->knob_x, klass->knob_y, false, event->state); break; case 2: //wheel klass->button_is = 2; break; case 3: // right button klass->button_is = 3; break; default: // do nothing break; } return TRUE; } /**************************************************************** ** mouse button release */ static gboolean gtk_knob_button_release (GtkWidget *widget, GdkEventButton *event) { g_assert(GTK_IS_KNOB(widget)); GTK_KNOB_CLASS(GTK_OBJECT_GET_CLASS(widget))->button_is = 0; if (GTK_WIDGET_HAS_GRAB(widget)) gtk_grab_remove(widget); return FALSE; } /**************************************************************** ** set the value from mouse movement */ static gboolean gtk_knob_pointer_motion (GtkWidget *widget, GdkEventMotion *event) { g_assert(GTK_IS_KNOB(widget)); GtkKnobClass *klass = GTK_KNOB_CLASS(GTK_OBJECT_GET_CLASS(widget)); gdk_event_request_motions (event); if (GTK_WIDGET_HAS_GRAB(widget)) { knob_pointer_event(widget, event->x, event->y, klass->knob_x, klass->knob_y, true, event->state); } return FALSE; } /**************************************************************** ** set value from mouseweel */ static gboolean gtk_knob_scroll (GtkWidget *widget, GdkEventScroll *event) { usleep(5000); gtk_knob_set_value(widget, event->direction); return FALSE; } /**************************************************************** ** init the GtkKnobClass */ static void gtk_knob_class_init (GtkKnobClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); /** set here the sizes and steps for the used knob **/ //--------- small knob size and steps klass->knob_x = 30; klass->knob_y = 30; klass->knob_step = 86; //--------- event button klass->button_is = 0; //--------- connect the events with funktions widget_class->expose_event = gtk_knob_expose; widget_class->size_request = gtk_knob_size_request; widget_class->button_press_event = gtk_knob_button_press; widget_class->button_release_event = gtk_knob_button_release; widget_class->motion_notify_event = gtk_knob_pointer_motion; widget_class->key_press_event = gtk_knob_key_press; widget_class->scroll_event = gtk_knob_scroll; } /**************************************************************** ** init the Knob type/size */ static void gtk_knob_init (GtkKnob *knob) { GtkWidget *widget = GTK_WIDGET(knob); GtkKnobClass *klass = GTK_KNOB_CLASS(GTK_OBJECT_GET_CLASS(widget)); GTK_WIDGET_SET_FLAGS (GTK_WIDGET(knob), GTK_CAN_FOCUS); GTK_WIDGET_SET_FLAGS (GTK_WIDGET(knob), GTK_CAN_DEFAULT); widget->requisition.width = klass->knob_x; widget->requisition.height = klass->knob_y; } /**************************************************************** ** redraw when value changed */ static gboolean gtk_knob_value_changed(gpointer obj) { GtkWidget *widget = (GtkWidget *)obj; gtk_widget_queue_draw(widget); return FALSE; } /**************************************************************** ** create small knob */ GtkWidget *GtkKnob::gtk_knob_new_with_adjustment(GtkAdjustment *_adjustment) { GtkWidget *widget = GTK_WIDGET( g_object_new (GTK_TYPE_KNOB, NULL )); GtkKnob *knob = GTK_KNOB(widget); knob->last_quadrant = 0; if (widget) { gtk_range_set_adjustment(GTK_RANGE(widget), _adjustment); g_signal_connect(GTK_OBJECT(widget), "value-changed", G_CALLBACK(gtk_knob_value_changed), widget); } return widget; } /**************************************************************** ** get the Knob type */ GType gtk_knob_get_type (void) { static GType kn_type = 0; if (!kn_type) { static const GTypeInfo kn_info = { sizeof(GtkKnobClass), NULL, NULL, (GClassInitFunc)gtk_knob_class_init, NULL, NULL, sizeof (GtkKnob), 0, (GInstanceInitFunc)gtk_knob_init }; kn_type = g_type_register_static(GTK_TYPE_RANGE, "GtkKnob", &kn_info, (GTypeFlags)0); } return kn_type; } }/* end of gtk_knob namespace */ gtk_knob::GtkKnob myGtkKnob; /** * rmWhiteSpaces(): Remove the leading and trailing white spaces of a string * (but not those in the middle of the string) */ static string rmWhiteSpaces(const string& s) { size_t i = s.find_first_not_of(" \t"); size_t j = s.find_last_not_of(" \t"); if (i != string::npos & j != string::npos) { return s.substr(i, 1+j-i); } else { return ""; } } /** * Extracts metdata from a label : 'vol [unit: dB]' -> 'vol' + metadata */ static void extractMetadata(const string& fulllabel, string& label, map& metadata) { enum {kLabel, kEscape1, kEscape2, kEscape3, kKey, kValue}; int state = kLabel; int deep = 0; string key, value; for (unsigned int i=0; i < fulllabel.size(); i++) { char c = fulllabel[i]; switch (state) { case kLabel : assert (deep == 0); switch (c) { case '\\' : state = kEscape1; break; case '[' : state = kKey; deep++; break; default : label += c; } break; case kEscape1 : label += c; state = kLabel; break; case kEscape2 : key += c; state = kKey; break; case kEscape3 : value += c; state = kValue; break; case kKey : assert (deep > 0); switch (c) { case '\\' : state = kEscape2; break; case '[' : deep++; key += c; break; case ':' : if (deep == 1) { state = kValue; } else { key += c; } break; case ']' : deep--; if (deep < 1) { metadata[rmWhiteSpaces(key)] = ""; state = kLabel; key=""; value=""; } else { key += c; } break; default : key += c; } break; case kValue : assert (deep > 0); switch (c) { case '\\' : state = kEscape3; break; case '[' : deep++; value += c; break; case ']' : deep--; if (deep < 1) { metadata[rmWhiteSpaces(key)]=rmWhiteSpaces(value); state = kLabel; key=""; value=""; } else { value += c; } break; default : value += c; } break; default : cerr << "ERROR unrecognized state " << state << endl; } } label = rmWhiteSpaces(label); } class GTKUI : public GUI { private : static bool fInitialized; static map fGuiSize; // map widget zone with widget size coef static map fTooltip; // map widget zone with tooltip strings static set fKnobSet; // set of widget zone to be knobs string gGroupTooltip; bool isKnob(float* zone){return fKnobSet.count(zone) > 0;} protected : GtkWidget* fWindow; int fTop; GtkWidget* fBox[stackSize]; int fMode[stackSize]; bool fStopped; GtkWidget* addWidget(const char* label, GtkWidget* w); virtual void pushBox(int mode, GtkWidget* w); public : static const gboolean expand = TRUE; static const gboolean fill = TRUE; static const gboolean homogene = FALSE; GTKUI(char * name, int* pargc, char*** pargv); // -- Labels and metadata virtual void declare (float* zone, const char* key, const char* value); virtual int checkLabelOptions (GtkWidget* widget, const string& fullLabel, string& simplifiedLabel); virtual void checkForTooltip (float* zone, GtkWidget* widget); // -- layout groups virtual void openFrameBox(const char* label); virtual void openTabBox(const char* label = ""); virtual void openHorizontalBox(const char* label = ""); virtual void openVerticalBox(const char* label = ""); // -- extra widget's layouts virtual void openDialogBox(const char* label, float* zone); virtual void openEventBox(const char* label = ""); virtual void openHandleBox(const char* label = ""); virtual void openExpanderBox(const char* label, float* zone); virtual void closeBox(); virtual void adjustStack(int n); // -- active widgets virtual void addButton(const char* label, float* zone); virtual void addToggleButton(const char* label, float* zone); virtual void addCheckButton(const char* label, float* zone); virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addKnob(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); // -- passive display widgets virtual void addNumDisplay(const char* label, float* zone, int precision); virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max); virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); virtual void show(); virtual void run(); }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) gtk implementation ******************************************************************************* *******************************************************************************/ // global static fields bool GTKUI::fInitialized = false; map GTKUI::fGuiSize; map GTKUI::fTooltip; set GTKUI::fKnobSet; // set of widget zone to be knobs /** * Format tooltip string by replacing some white spaces by * return characters so that line width doesn't exceed n. * Limitation : long words exceeding n are not cut */ static string formatTooltip(int n, const string& tt) { string ss = tt; // ss string we are going to format int lws = 0; // last white space encountered int lri = 0; // last return inserted for (int i=0; i= n) && (lws > lri)) { // insert return here ss[lws] = '\n'; lri = lws; } } cout << ss; return ss; } static gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { return FALSE; } static void destroy_event( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } GTKUI::GTKUI(char * name, int* pargc, char*** pargv) { if (!fInitialized) { gtk_init(pargc, pargv); fInitialized = true; } fWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); //gtk_container_set_border_width (GTK_CONTAINER (fWindow), 10); gtk_window_set_title (GTK_WINDOW (fWindow), name); gtk_signal_connect (GTK_OBJECT (fWindow), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); gtk_signal_connect (GTK_OBJECT (fWindow), "destroy", GTK_SIGNAL_FUNC (destroy_event), NULL); fTop = 0; fBox[fTop] = gtk_vbox_new (homogene, 4); fMode[fTop] = kBoxMode; gtk_container_add (GTK_CONTAINER (fWindow), fBox[fTop]); fStopped = false; } // empilement des boites void GTKUI::pushBox(int mode, GtkWidget* w) { ++fTop; assert(fTop < stackSize); fMode[fTop] = mode; fBox[fTop] = w; } /** * Remove n levels from the stack S before the top level * adjustStack(n): S -> S' with S' = S(0),S(n+1),S(n+2),... */ void GTKUI::adjustStack(int n) { if (n > 0) { assert(fTop >= n); fTop -= n; fMode[fTop] = fMode[fTop+n]; fBox[fTop] = fBox[fTop+n]; } } void GTKUI::closeBox() { --fTop; assert(fTop >= 0); } /** * Analyses the widget zone metadata declarations and takes * appropriate actions */ void GTKUI::declare(float* zone, const char* key, const char* value) { if (zone == 0) { // special zone 0 means group metadata if (strcmp(key,"tooltip")==0) { // only group tooltip are currently implemented gGroupTooltip = formatTooltip(30, value); } } else { if (strcmp(key,"size")==0) { fGuiSize[zone]=atof(value); } else if (strcmp(key,"tooltip")==0) { fTooltip[zone] = formatTooltip(30,value) ; } else if (strcmp(key,"style")==0) { if (strcmp(value,"knob") == 0) { fKnobSet.insert(zone); } } } } /** * Analyses a full label and activates the relevant options. returns a simplified * label (without options) and an amount of stack adjustement (in case additional * containers were pushed on the stack). */ int GTKUI::checkLabelOptions(GtkWidget* widget, const string& fullLabel, string& simplifiedLabel) { map metadata; extractMetadata(fullLabel, simplifiedLabel, metadata); if (metadata.count("tooltip")) { gtk_tooltips_set_tip (gtk_tooltips_new (), widget, metadata["tooltip"].c_str(), NULL); } if (metadata["option"] == "detachable") { openHandleBox(simplifiedLabel.c_str()); return 1; } //--------------------- if (gGroupTooltip != string()) { gtk_tooltips_set_tip (gtk_tooltips_new (), widget, gGroupTooltip.c_str(), NULL); gGroupTooltip = string(); } //---------------------- // no adjustement of the stack needed return 0; } /** * Check if a tooltip is associated to a zone and add it to the corresponding widget */ void GTKUI::checkForTooltip(float* zone, GtkWidget* widget) { if (fTooltip.count(zone)) { gtk_tooltips_set_tip (gtk_tooltips_new (), widget, fTooltip[zone].c_str(), NULL); } } // les differentes boites void GTKUI::openFrameBox(const char* label) { GtkWidget * box = gtk_frame_new (label); //gtk_container_set_border_width (GTK_CONTAINER (box), 10); pushBox(kSingleMode, addWidget(label, box)); } void GTKUI::openTabBox(const char* fullLabel) { string label; GtkWidget* widget = gtk_notebook_new(); int adjust = checkLabelOptions(widget, fullLabel, label); pushBox(kTabMode, addWidget(label.c_str(), widget)); // adjust stack because otherwise Handlebox will remain open adjustStack(adjust); } void GTKUI::openHorizontalBox(const char* fullLabel) { string label; GtkWidget* box = gtk_hbox_new (homogene, 4); int adjust = checkLabelOptions(box, fullLabel, label); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label.c_str(), gtk_frame_new (label.c_str())); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label.c_str(), box)); } // adjust stack because otherwise Handlebox will remain open adjustStack(adjust); } void GTKUI::openVerticalBox(const char* fullLabel) { string label; GtkWidget * box = gtk_vbox_new (homogene, 4); int adjust = checkLabelOptions(box, fullLabel, label); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label.c_str(), gtk_frame_new (label.c_str())); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label.c_str(), box)); } // adjust stack because otherwise Handlebox will remain open adjustStack(adjust); } void GTKUI::openHandleBox(const char* label) { GtkWidget * box = gtk_hbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 2); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_handle_box_new ()); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } void GTKUI::openEventBox(const char* label) { GtkWidget * box = gtk_hbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 2); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_event_box_new ()); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } struct uiExpanderBox : public uiItem { GtkExpander* fButton; uiExpanderBox(GUI* ui, float* zone, GtkExpander* b) : uiItem(ui, zone), fButton(b) {} static void expanded (GtkWidget *widget, gpointer data) { float v = gtk_expander_get_expanded (GTK_EXPANDER(widget)); if (v == 1.000000) { v = 0; } else v = 1; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_expander_set_expanded(GTK_EXPANDER(fButton), v); } }; void GTKUI::openExpanderBox(const char* label, float* zone) { *zone = 0.0; GtkWidget * box = gtk_hbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 2); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_expander_new (label)); gtk_container_add (GTK_CONTAINER(frame), box); uiExpanderBox* c = new uiExpanderBox(this, zone, GTK_EXPANDER(frame)); gtk_signal_connect (GTK_OBJECT (frame), "activate", GTK_SIGNAL_FUNC (uiExpanderBox::expanded), (gpointer)c); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } GtkWidget* GTKUI::addWidget(const char* label, GtkWidget* w) { switch (fMode[fTop]) { case kSingleMode : gtk_container_add (GTK_CONTAINER(fBox[fTop]), w); break; case kBoxMode : gtk_box_pack_start (GTK_BOX(fBox[fTop]), w, expand, fill, 0); break; case kTabMode : gtk_notebook_append_page (GTK_NOTEBOOK(fBox[fTop]), w, gtk_label_new(label)); break; } gtk_widget_show (w); return w; } // --------------------------- Press button --------------------------- struct uiButton : public uiItem { GtkButton* fButton; uiButton (GUI* ui, float* zone, GtkButton* b) : uiItem(ui, zone), fButton(b) {} static void pressed( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(1.0); } static void released( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(0.0); } virtual void reflectZone() { float v = *fZone; fCache = v; if (v > 0.0) gtk_button_pressed(fButton); else gtk_button_released(fButton); } }; void GTKUI::addButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_button_new_with_label (label); addWidget(label, button); uiButton* c = new uiButton(this, zone, GTK_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "pressed", GTK_SIGNAL_FUNC (uiButton::pressed), (gpointer) c); gtk_signal_connect (GTK_OBJECT (button), "released", GTK_SIGNAL_FUNC (uiButton::released), (gpointer) c); checkForTooltip(zone, button); } // --------------------------- Toggle Buttons --------------------------- struct uiToggleButton : public uiItem { GtkToggleButton* fButton; uiToggleButton(GUI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addToggleButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_toggle_button_new_with_label (label); addWidget(label, button); uiToggleButton* c = new uiToggleButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (uiToggleButton::toggled), (gpointer) c); checkForTooltip(zone, button); } void show_dialog(GtkWidget *widget, gpointer data) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget)) == TRUE) { gtk_widget_show(GTK_WIDGET(data)); gint root_x, root_y; gtk_window_get_position (GTK_WINDOW(data), &root_x, &root_y); root_y -= 120; gtk_window_move(GTK_WINDOW(data), root_x, root_y); } else gtk_widget_hide(GTK_WIDGET(data)); } static gboolean deleteevent( GtkWidget *widget, gpointer data ) { return TRUE; } void GTKUI::openDialogBox(const char* label, float* zone) { // create toplevel window and set properties GtkWidget * dialog = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_decorated(GTK_WINDOW(dialog), TRUE); gtk_window_set_deletable(GTK_WINDOW(dialog), FALSE); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_window_set_gravity(GTK_WINDOW(dialog), GDK_GRAVITY_SOUTH); gtk_window_set_transient_for (GTK_WINDOW(dialog), GTK_WINDOW(fWindow)); gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); gtk_window_set_keep_below (GTK_WINDOW(dialog), FALSE); gtk_window_set_title (GTK_WINDOW (dialog), label); g_signal_connect (G_OBJECT (dialog), "delete_event", G_CALLBACK (deleteevent), NULL); gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE); GtkWidget * box = gtk_hbox_new (homogene, 4); *zone = 0.0; GtkWidget* button = gtk_toggle_button_new (); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (show_dialog), (gpointer) dialog); gtk_container_add (GTK_CONTAINER(fBox[fTop]), button); gtk_container_add (GTK_CONTAINER(dialog), box); gtk_widget_show (button); gtk_widget_show(box); pushBox(kBoxMode, box); } // --------------------------- Check Button --------------------------- struct uiCheckButton : public uiItem { GtkToggleButton* fButton; uiCheckButton(GUI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addCheckButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_check_button_new_with_label (label); addWidget(label, button); uiCheckButton* c = new uiCheckButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC(uiCheckButton::toggled), (gpointer) c); checkForTooltip(zone, button); } // --------------------------- Adjustmenty based widgets --------------------------- struct uiAdjustment : public uiItem { GtkAdjustment* fAdj; uiAdjustment(GUI* ui, float* zone, GtkAdjustment* adj) : uiItem(ui, zone), fAdj(adj) {} static void changed (GtkWidget *widget, gpointer data) { float v = GTK_ADJUSTMENT (widget)->value; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_adjustment_set_value(fAdj, v); } }; // --------------------------- format knob value display --------------------------- struct uiValueDisplay : public uiItem { GtkLabel* fLabel; int fPrecision ; uiValueDisplay(GUI* ui, float* zone, GtkLabel* label, int precision) : uiItem(ui, zone), fLabel(label), fPrecision(precision) {} virtual void reflectZone() { float v = *fZone; fCache = v; char s[64]; if (fPrecision <= 0) snprintf(s, 63, "%d", int(v)); else if (fPrecision > 3) snprintf(s, 63, "%f", v); else if (fPrecision == 1) { const char* format[] = {"%.1f", "%.2f", "%.3f"}; snprintf(s, 63, format[1-1], v); } else if (fPrecision == 2) { const char* format[] = {"%.1f", "%.2f", "%.3f"}; snprintf(s, 63, format[2-1], v); } else { const char* format[] = {"%.1f", "%.2f", "%.3f"}; snprintf(s, 63, format[3-1], v); } gtk_label_set_text(fLabel, s); } }; // ------------------------------- Knob ----------------------------------------- void GTKUI::addKnob(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_vbox_new (FALSE, 0); GtkWidget* fil = gtk_vbox_new (FALSE, 0); GtkWidget* rei = gtk_vbox_new (FALSE, 0); GtkWidget* re =myGtkKnob.gtk_knob_new_with_adjustment(GTK_ADJUSTMENT(adj)); GtkWidget* lw = gtk_label_new(""); new uiValueDisplay(this, zone, GTK_LABEL(lw),precision(step)); gtk_container_add (GTK_CONTAINER(rei), re); if(fGuiSize[zone]) { float size = 30 * fGuiSize[zone]; gtk_widget_set_size_request(rei, size, size ); gtk_box_pack_start (GTK_BOX(slider), fil, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX(slider), rei, FALSE, FALSE, 0); } else { gtk_container_add (GTK_CONTAINER(slider), fil); gtk_container_add (GTK_CONTAINER(slider), rei); } gtk_container_add (GTK_CONTAINER(slider), lw); gtk_widget_show_all(slider); if (label && label[0]!=0) { openFrameBox(label); addWidget(label, slider); closeBox(); } else { addWidget(label, slider); } checkForTooltip(zone, slider); } // -------------------------- Vertical Slider ----------------------------------- void GTKUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { if (isKnob(zone)) { addKnob(label, zone, init, min, max, step); return; } *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_vscale_new (GTK_ADJUSTMENT(adj)); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); float size = 160; if(fGuiSize[zone]) { size = 160 * fGuiSize[zone]; } gtk_widget_set_size_request(slider, -1, size); gtk_range_set_inverted (GTK_RANGE(slider), TRUE); if (label && label[0]!=0) { openFrameBox(label); addWidget(label, slider); closeBox(); } else { addWidget(label, slider); } checkForTooltip(zone, slider); } // -------------------------- Horizontal Slider ----------------------------------- void GTKUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { if (isKnob(zone)) { addKnob(label, zone, init, min, max, step); return; } *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_hscale_new (GTK_ADJUSTMENT(adj)); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); float size = 160; if(fGuiSize[zone]) { size = 160 * fGuiSize[zone]; } gtk_widget_set_size_request(slider, size, -1); if (label && label[0]!=0) { openFrameBox(label); addWidget(label, slider); closeBox(); } else { addWidget(label, slider); } checkForTooltip(zone, slider); } // ------------------------------ Num Entry ----------------------------------- void GTKUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { if (isKnob(zone)) { addKnob(label, zone, init, min, max, step); return; } *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, step); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* spinner = gtk_spin_button_new (GTK_ADJUSTMENT(adj), 0.005, precision(step)); openFrameBox(label); addWidget(label, spinner); closeBox(); checkForTooltip(zone, spinner); } // ========================== passive widgets =============================== // ------------------------------ Progress Bar ----------------------------------- struct uiBargraph : public uiItem { GtkProgressBar* fProgressBar; float fMin; float fMax; uiBargraph(GUI* ui, float* zone, GtkProgressBar* pbar, float lo, float hi) : uiItem(ui, zone), fProgressBar(pbar), fMin(lo), fMax(hi) {} float scale(float v) { return (v-fMin)/(fMax-fMin); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_progress_bar_set_fraction(fProgressBar, scale(v)); } }; void GTKUI::addVerticalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_BOTTOM_TO_TOP); gtk_widget_set_size_request(pb, 8, -1); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); checkForTooltip(zone, pb); } void GTKUI::addHorizontalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_LEFT_TO_RIGHT); gtk_widget_set_size_request(pb, -1, 8); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); checkForTooltip(zone, pb); } // ------------------------------ Num Display ----------------------------------- struct uiNumDisplay : public uiItem { GtkLabel* fLabel; int fPrecision; uiNumDisplay(GUI* ui, float* zone, GtkLabel* label, int precision) : uiItem(ui, zone), fLabel(label), fPrecision(precision) {} virtual void reflectZone() { float v = *fZone; fCache = v; char s[64]; if (fPrecision <= 0) { snprintf(s, 63, "%d", int(v)); } else if (fPrecision>3) { snprintf(s, 63, "%f", v); } else { const char* format[] = {"%.1f", "%.2f", "%.3f"}; snprintf(s, 63, format[fPrecision-1], v); } gtk_label_set_text(fLabel, s); } }; void GTKUI::addNumDisplay(const char* label, float* zone, int precision ) { GtkWidget* lw = gtk_label_new(""); new uiNumDisplay(this, zone, GTK_LABEL(lw), precision); openFrameBox(label); addWidget(label, lw); closeBox(); checkForTooltip(zone, lw); } // ------------------------------ Text Display ----------------------------------- struct uiTextDisplay : public uiItem { GtkLabel* fLabel; const char** fNames; float fMin; float fMax; int fNum; uiTextDisplay (GUI* ui, float* zone, GtkLabel* label, const char* names[], float lo, float hi) : uiItem(ui, zone), fLabel(label), fNames(names), fMin(lo), fMax(hi) { fNum = 0; while (fNames[fNum] != 0) fNum++; } virtual void reflectZone() { float v = *fZone; fCache = v; int idx = int(fNum*(v-fMin)/(fMax-fMin)); if (idx < 0) idx = 0; else if (idx >= fNum) idx = fNum-1; gtk_label_set_text(fLabel, fNames[idx]); } }; void GTKUI::addTextDisplay(const char* label, float* zone, const char* names[], float lo, float hi ) { GtkWidget* lw = gtk_label_new(""); new uiTextDisplay (this, zone, GTK_LABEL(lw), names, lo, hi); openFrameBox(label); addWidget(label, lw); closeBox(); checkForTooltip(zone, lw); } void GTKUI::show() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); } /** * Update all user items reflecting zone z */ static gboolean callUpdateAllGuis(gpointer) { GUI::updateAllGuis(); return TRUE; } void GTKUI::run() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); gtk_timeout_add(40, callUpdateAllGuis, 0); gtk_main (); stop(); } #endif faust-0.9.46/architecture/gui/GUI.h0000644000175000017500000000603411702130733016713 0ustar orlareyorlarey#ifndef FAUST_GUI_H #define FAUST_GUI_H #include "UI.h" #include #include using namespace std; /******************************************************************************* * GUI : Abstract Graphic User Interface * Provides additional macchanismes to synchronize widgets and zones. Widgets * should both reflect the value of a zone and allow to change this value. ******************************************************************************/ struct uiItem; typedef void (*uiCallback)(float val, void* data); class GUI : public UI { typedef list clist; typedef map zmap; private: static list fGuiList; zmap fZoneMap; bool fStopped; public: GUI() : fStopped(false) { fGuiList.push_back(this); } virtual ~GUI() { // suppression de this dans fGuiList } // -- registerZone(z,c) : zone management void registerZone(float* z, uiItem* c) { if (fZoneMap.find(z) == fZoneMap.end()) fZoneMap[z] = new clist(); fZoneMap[z]->push_back(c); } void updateAllZones(); void updateZone(float* z); static void updateAllGuis() { list::iterator g; for (g = fGuiList.begin(); g != fGuiList.end(); g++) { (*g)->updateAllZones(); } } void addCallback(float* zone, uiCallback foo, void* data); virtual void show() {}; virtual void run() {}; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* , const char* , const char* ) {} }; /** * User Interface Item: abstract definition */ class uiItem { protected : GUI* fGUI; float* fZone; float fCache; uiItem (GUI* ui, float* zone) : fGUI(ui), fZone(zone), fCache(-123456.654321) { ui->registerZone(zone, this); } public : virtual ~uiItem() {} void modifyZone(float v) { fCache = v; if (*fZone != v) { *fZone = v; fGUI->updateZone(fZone); } } float cache() { return fCache; } virtual void reflectZone() = 0; }; /** * Callback Item */ struct uiCallbackItem : public uiItem { uiCallback fCallback; void* fData; uiCallbackItem(GUI* ui, float* zone, uiCallback foo, void* data) : uiItem(ui, zone), fCallback(foo), fData(data) {} virtual void reflectZone() { float v = *fZone; fCache = v; fCallback(v, fData); } }; // en cours d'installation de call back. a finir!!!!! /** * Update all user items reflecting zone z */ inline void GUI::updateZone(float* z) { float v = *z; clist* l = fZoneMap[z]; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } /** * Update all user items not up to date */ inline void GUI::updateAllZones() { for (zmap::iterator m = fZoneMap.begin(); m != fZoneMap.end(); m++) { float* z = m->first; clist* l = m->second; float v = *z; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } } inline void GUI::addCallback(float* zone, uiCallback foo, void* data) { new uiCallbackItem(this, zone, foo, data); }; #endif faust-0.9.46/architecture/gui/faustqt.h0000644000175000017500000015246711702130733017772 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . ************************************************************************ ************************************************************************/ #ifndef __faustqt__ #define __faustqt__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "GUI.h" //---------------------------------- // for compatibility #define minValue minimum #define maxValue maximum using namespace std; //==============================BEGIN QSYNTHKNOB===================================== // // qsynthknob and qsynthDialVokiStyle borrowed from qsynth-0.3.3 by Rui Nuno Capela // This widget is based on a design by Thorsten Wilms, // implemented by Chris Cannam in Rosegarden, // adapted for QSynth by Pedro Lopez-Cabanillas, // improved for Qt4 by David Garcia Garzon. // #define DIAL_MIN (0.25 * M_PI) #define DIAL_MAX (1.75 * M_PI) #define DIAL_RANGE (DIAL_MAX - DIAL_MIN) class qsynthDialVokiStyle : public QCommonStyle { public: qsynthDialVokiStyle() {}; virtual ~qsynthDialVokiStyle() {}; virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p, const QWidget *widget = 0) const { if (cc != QStyle::CC_Dial) { QCommonStyle::drawComplexControl(cc, opt, p, widget); return; } const QStyleOptionSlider *dial = qstyleoption_cast(opt); if (dial == NULL) return; double angle = DIAL_MIN // offset + (DIAL_RANGE * (double(dial->sliderValue - dial->minimum) / (double(dial->maximum - dial->minimum)))); int degrees = int(angle * 180.0 / M_PI); int side = dial->rect.width() < dial->rect.height() ? dial->rect.width() : dial->rect.height(); int xcenter = dial->rect.width() / 2; int ycenter = dial->rect.height() / 2; int notchWidth = 1 + side / 400; int pointerWidth = 2 + side / 30; int scaleShadowWidth = 1 + side / 100; int knobBorderWidth = 0; int ns = dial->tickInterval; int numTicks = 1 + (dial->maximum + ns - dial->minimum) / ns; int indent = int(0.15 * side) + 2; int knobWidth = side - 2 * indent; int shineFocus = knobWidth / 4; int shineCenter = knobWidth / 5; int shineExtension = shineCenter * 4; int shadowShift = shineCenter * 2; int meterWidth = side - 2 * scaleShadowWidth; QPalette pal = opt->palette; QColor knobColor = pal.mid().color(); QColor borderColor = knobColor.light(); QColor meterColor = (dial->state & State_Enabled) ? QColor("orange") : pal.mid().color(); // pal.highlight().color() : pal.mid().color(); QColor background = pal.window().color(); p->save(); p->setRenderHint(QPainter::Antialiasing, true); // The bright metering bit... QConicalGradient meterShadow(xcenter, ycenter, -90); meterShadow.setColorAt(0, meterColor.dark()); meterShadow.setColorAt(0.5, meterColor); meterShadow.setColorAt(1.0, meterColor.light().light()); p->setBrush(meterShadow); p->setPen(Qt::transparent); p->drawPie(xcenter - meterWidth / 2, ycenter - meterWidth / 2, meterWidth, meterWidth, (180 + 45) * 16, -(degrees - 45) * 16); // Knob projected shadow QRadialGradient projectionGradient( xcenter + shineCenter, ycenter + shineCenter, shineExtension, xcenter + shadowShift, ycenter + shadowShift); projectionGradient.setColorAt(0, QColor( 0, 0, 0, 100)); projectionGradient.setColorAt(1, QColor(200, 0, 0, 10)); QBrush shadowBrush(projectionGradient); p->setBrush(shadowBrush); p->drawEllipse(xcenter - shadowShift, ycenter - shadowShift, knobWidth, knobWidth); // Knob body and face... QPen pen; pen.setColor(knobColor); pen.setWidth(knobBorderWidth); p->setPen(pen); QRadialGradient gradient( xcenter - shineCenter, ycenter - shineCenter, shineExtension, xcenter - shineFocus, ycenter - shineFocus); gradient.setColorAt(0.2, knobColor.light().light()); gradient.setColorAt(0.5, knobColor); gradient.setColorAt(1.0, knobColor.dark(150)); QBrush knobBrush(gradient); p->setBrush(knobBrush); p->drawEllipse(xcenter - knobWidth / 2, ycenter - knobWidth / 2, knobWidth, knobWidth); // Tick notches... p->setBrush(Qt::NoBrush); if (dial->subControls & QStyle::SC_DialTickmarks) { pen.setColor(pal.dark().color()); pen.setWidth(notchWidth); p->setPen(pen); double hyp = double(side - scaleShadowWidth) / 2.0; double len = hyp / 4; for (int i = 0; i < numTicks; ++i) { int div = numTicks; if (div > 1) --div; bool internal = (i != 0 && i != numTicks - 1); double angle = DIAL_MIN + (DIAL_MAX - DIAL_MIN) * i / div; double dir = (internal ? -1 : len); double sinAngle = sin(angle); double cosAngle = cos(angle); double x0 = xcenter - (hyp - len) * sinAngle; double y0 = ycenter + (hyp - len) * cosAngle; double x1 = xcenter - (hyp + dir) * sinAngle; double y1 = ycenter + (hyp + dir) * cosAngle; p->drawLine(QLineF(x0, y0, x1, y1)); } } // Shadowing... // Knob shadow... if (knobBorderWidth > 0) { QLinearGradient inShadow(xcenter - side / 4, ycenter - side / 4, xcenter + side / 4, ycenter + side / 4); inShadow.setColorAt(0.0, borderColor.light()); inShadow.setColorAt(1.0, borderColor.dark()); p->setPen(QPen(QBrush(inShadow), knobBorderWidth * 7 / 8)); p->drawEllipse(xcenter - side / 2 + indent, ycenter - side / 2 + indent, side - 2 * indent, side - 2 * indent); } // Scale shadow... QLinearGradient outShadow(xcenter - side / 3, ycenter - side / 3, xcenter + side / 3, ycenter + side / 3); outShadow.setColorAt(0.0, background.dark().dark()); outShadow.setColorAt(1.0, background.light().light()); p->setPen(QPen(QBrush(outShadow), scaleShadowWidth)); p->drawArc(xcenter - side / 2 + scaleShadowWidth / 2, ycenter - side / 2 + scaleShadowWidth / 2, side - scaleShadowWidth, side - scaleShadowWidth, -45 * 16, 270 * 16); // Pointer notch... double hyp = double(side) / 2.0; double len = hyp - indent - 1; double x = xcenter - len * sin(angle); double y = ycenter + len * cos(angle); QColor pointerColor = pal.dark().color(); pen.setColor((dial->state & State_Enabled) ? pointerColor.dark(140) : pointerColor); pen.setWidth(pointerWidth + 2); p->setPen(pen); p->drawLine(QLineF(xcenter, ycenter, x, y)); pen.setColor((dial->state & State_Enabled) ? pointerColor.light() : pointerColor.light(140)); pen.setWidth(pointerWidth); p->setPen(pen); p->drawLine(QLineF(xcenter - 1, ycenter - 1, x - 1, y - 1)); // done p->restore(); } }; // //===============================END QSYNTHKNOB====================================== //==============================BEGIN DISPLAYS=================================== // // This section constains displays, passive QT widgets that displays values in // different ways, in particular bargraphs // /** * An abstract widget that display a value in a range */ class AbstractDisplay : public QWidget { protected : float fMin; float fMax; float fValue; public: AbstractDisplay (float lo, float hi) : fMin(lo), fMax(hi), fValue(lo) { } /** * set the range of displayed values */ virtual void setRange(float lo, float hi) { fMin = lo; fMax = hi; } /** * set the value to be displayed */ virtual void setValue(float v) { if (v < fMin) v = fMin; else if (v > fMax) v = fMax; if (v != fValue) { fValue = v; update(); } } }; /** * Displays dB values using a scale of colors */ class dbAbstractDisplay : public AbstractDisplay { protected : float fScaleMin; float fScaleMax; vector fLevel; vector fBrush; /** * Convert a dB value into a scale between 0 and 1 (following IEC standard ?) */ float dB2Scale ( float dB ) const { float fScale = 1.0f; /*if (dB < -70.0f) fScale = 0.0f; else*/ if (dB < -60.0f) fScale = (dB + 70.0f) * 0.0025f; else if (dB < -50.0f) fScale = (dB + 60.0f) * 0.005f + 0.025f; else if (dB < -40.0) fScale = (dB + 50.0f) * 0.0075f + 0.075f; else if (dB < -30.0f) fScale = (dB + 40.0f) * 0.015f + 0.15f; else if (dB < -20.0f) fScale = (dB + 30.0f) * 0.02f + 0.3f; else if (dB < -0.001f || dB > 0.001f) /* if (dB < 0.0f) */ fScale = (dB + 20.0f) * 0.025f + 0.5f; return fScale; } /** * Create the scale of colors used to paint the bargraph in relation to the levels * The parameter x indicates the direction of the gradient. x=1 means an horizontal * gradient typically used by a vertical bargraph, and x=0 a vertical gradient. */ void initLevelsColors(int x) { int alpha = 200; { // level until -10 dB QColor c(40, 160, 40, alpha); QLinearGradient g(0,0,x,1-x); g.setCoordinateMode(QGradient::ObjectBoundingMode); g.setColorAt(0.0, c.lighter()); g.setColorAt(0.2, c); g.setColorAt(0.8, c); g.setColorAt(0.9, c.darker(120)); fLevel.push_back(-10); fBrush.push_back(QBrush(g)); } { // level until -6 dB QColor c(160, 220, 20, alpha); QLinearGradient g(0,0,x,1-x); g.setCoordinateMode(QGradient::ObjectBoundingMode); g.setColorAt(0.0, c.lighter()); g.setColorAt(0.2, c); g.setColorAt(0.8, c); g.setColorAt(0.9, c.darker(120)); fLevel.push_back(-6); fBrush.push_back(QBrush(g)); } { // level until -3 dB QColor c(220, 220, 20, alpha); QLinearGradient g(0,0,x,1-x); g.setCoordinateMode(QGradient::ObjectBoundingMode); g.setColorAt(0.0, c.lighter()); g.setColorAt(0.2, c); g.setColorAt(0.8, c); g.setColorAt(0.9, c.darker(120)); fLevel.push_back(-3); fBrush.push_back(QBrush(g)); } { // level until -0 dB QColor c(240, 160, 20, alpha); QLinearGradient g(0,0,x,1-x); g.setCoordinateMode(QGradient::ObjectBoundingMode); g.setColorAt(0.0, c.lighter()); g.setColorAt(0.2, c); g.setColorAt(0.8, c); g.setColorAt(0.9, c.darker(120)); fLevel.push_back(0); fBrush.push_back(QBrush(g)); } { // until 10 dB (and over because last one) QColor c(240, 0, 20, alpha); // ColorOver QLinearGradient g(0,0,x,1-x); g.setCoordinateMode(QGradient::ObjectBoundingMode); g.setColorAt(0.0, c.lighter()); g.setColorAt(0.2, c); g.setColorAt(0.8, c); g.setColorAt(0.9, c.darker(120)); fLevel.push_back(+10); fBrush.push_back(QBrush(g)); } } public: dbAbstractDisplay(float lo, float hi) : AbstractDisplay(lo,hi) { } /** * set the range of displayed values */ virtual void setRange(float lo, float hi) { AbstractDisplay::setRange(lo, hi); fScaleMin = dB2Scale(fMin); fScaleMax = dB2Scale(fMax); } }; /** * Small rectangular LED display which color changes with the level in dB */ class dbLED : public dbAbstractDisplay { protected: /** * Draw the LED using a color depending of its value in dB */ virtual void paintEvent ( QPaintEvent *) { QPainter painter(this); painter.drawRect(rect()); if (fValue <= fLevel[0]) { // interpolate the first color on the alpha channel QColor c(40, 160, 40) ; float a = (fValue-fMin)/(fLevel[0]-fMin); c.setAlphaF(a); painter.fillRect(rect(), c); } else { // find the minimal level > value int l = fLevel.size()-1; while (fValue < fLevel[l] && l > 0) l--; painter.fillRect(rect(), fBrush[l]); } } public: dbLED(float lo, float hi) : dbAbstractDisplay(lo,hi) { setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); initLevelsColors(1); } virtual QSize sizeHint () const { return QSize(16, 8); } }; /** * Small rectangular LED display which intensity (alpha channel) changes according to the value */ class LED : public AbstractDisplay { QColor fColor; protected: /** * Draw the LED using a transparency depending of its value */ virtual void paintEvent ( QPaintEvent *) { QPainter painter(this); painter.drawRect(rect()); // interpolate the first color on the alpha channel QColor c = fColor ; float a = (fValue-fMin)/(fMax-fMin); c.setAlphaF(a); painter.fillRect(rect(), c); } public: LED(float lo, float hi) : AbstractDisplay(lo,hi), fColor("yellow") { setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); } virtual QSize sizeHint () const { return QSize(16, 8); } }; /** * A simple bargraph that detect automatically its direction */ class linBargraph : public AbstractDisplay { protected : QBrush fBrush; /** * No scale implemented yet */ void paintScale(QPainter* painter) const { painter->drawRect(0,0,width(),height()); } /** * The length of the rectangle is proportional to the value */ void paintContent (QPainter* painter) const { int w = width(); int h = height(); float v = (fValue-fMin)/(fMax-fMin); if (h>w) { // draw vertical rectangle painter->fillRect(0,(1-v)*h,w, v*h, fBrush); } else { // draw horizontal rectangle painter->fillRect(0, 0, h, v*w, fBrush); } } virtual void paintEvent ( QPaintEvent *) { QPainter painter(this); paintContent(&painter); paintScale(&painter); } public: linBargraph(float lo, float hi) : AbstractDisplay(lo,hi) { // compute the brush that will be used to // paint the value QColor c(0xffa500); // orange int x = int(height() < width()); // gradient direction QLinearGradient g(0,0,x,1-x); g.setCoordinateMode(QGradient::ObjectBoundingMode); g.setColorAt(0.0, c.lighter()); g.setColorAt(0.2, c); g.setColorAt(0.8, c); g.setColorAt(0.9, c.darker(120)); fBrush = QBrush(g); } }; /** * A simple vertical bargraph */ class linVerticalBargraph : public linBargraph { public: linVerticalBargraph(float lo, float hi) : linBargraph(lo,hi) { setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); } virtual QSize sizeHint () const { return QSize(16, 128); } }; /** * A simple horizontal bargraph */ class linHorizontalBargraph : public linBargraph { public: linHorizontalBargraph(float lo, float hi) : linBargraph(lo,hi) { setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); } virtual QSize sizeHint () const { return QSize(128, 16); } }; /** * A dB Bargraph with a scale of colors */ class dbBargraph : public dbAbstractDisplay { QBrush fBackColor; protected : // These two abstract methods are implemented // according to the vertical or horizontal direction // in dbVerticalBargraph and dbHorizontalBargraph virtual void paintMark(QPainter* painter, float v) const = 0; virtual int paintSegment (QPainter* painter, int pos, float v, const QBrush& b) const = 0; /** * Draw the logarithmic scale */ void paintScale(QPainter* painter) const { painter->fillRect(0,0,width(),height(), fBackColor); painter->save(); painter->setPen(QColor(0x6699aa)); //0xffa500)); for (float v = -10; v > fMin; v -= 10) paintMark(painter, v); for (float v = -6; v < fMax; v += 3) paintMark(painter, v); painter->restore(); } /** * Draw the content using colored segments */ void paintContent (QPainter* painter) const { int l = fLevel.size(); float p = -1; // fake value indicates to start from border int n = 0; // paint all the full segments < fValue for (n=0; (n < l) && (fValue > fLevel[n]); n++) { p = paintSegment(painter, p, fLevel[n], fBrush[n]); } // paint the last segment if (n == l) n = n-1; p=paintSegment(painter, p, fValue, fBrush[n]); painter->drawRect(0,0,width(),height()); } virtual void paintEvent ( QPaintEvent *) { QPainter painter(this); paintScale(&painter); paintContent(&painter); } public: dbBargraph(float lo, float hi) : dbAbstractDisplay(lo,hi) { QFont f = this->font(); f.setPointSize(6); this->setFont(f); fBackColor = QBrush(QColor(20,20,20)); } }; /** * Vertical dB Bargraph */ class dbVerticalBargraph : public dbBargraph { protected: /** * Convert a dB value into a vertical position */ float dB2y (float dB) const { float s0 = fScaleMin; float s1 = fScaleMax; float sx = dB2Scale(dB); int h = height(); return h - h*(s0-sx)/(s0-s1); } /** * Paint a vertical graduation mark */ virtual void paintMark(QPainter* painter, float v) const { int n = 10; int y = dB2y(v); QRect r(0,y-n,width()-1,2*n); if (v > 0.0) { painter->drawText(r, Qt::AlignRight|Qt::AlignVCenter, QString::number(v).prepend('+')); } else { painter->drawText(r, Qt::AlignRight|Qt::AlignVCenter, QString::number(v)); } } /** * Paint a color segment */ virtual int paintSegment (QPainter* painter, int pos, float v, const QBrush& b) const { if (pos == -1) pos = height(); float y = dB2y(v); painter->fillRect(0, y, width(), pos-y+1, b); return y; } public: dbVerticalBargraph(float lo, float hi) : dbBargraph(lo,hi) { setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); initLevelsColors(1); } virtual QSize sizeHint () const { return QSize(18, 256); } }; /** * Horizontal dB Bargraph */ class dbHorizontalBargraph : public dbBargraph { protected: /** * Convert a dB value into an horizontal position */ float dB2x (float dB) const { float s0 = fScaleMin; float s1 = fScaleMax; float sx = dB2Scale(dB); int w = width(); return w - w*(s1-sx)/(s1-s0); } /** * Paint an horizontal graduation mark */ void paintMark(QPainter* painter, float v) const { int n = 10; int x = dB2x(v); QRect r(x-n,0,2*n, height()); painter->drawText(r, Qt::AlignHCenter|Qt::AlignVCenter, QString::number(v)); } /** * Paint a horizontal color segment */ int paintSegment (QPainter* painter, int pos, float v, const QBrush& b) const { if (pos == -1) pos = 0; float x = dB2x(v); painter->fillRect(pos, 0, x-pos, height(), b); return x; } public: dbHorizontalBargraph(float lo, float hi) : dbBargraph(lo,hi) { setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); initLevelsColors(0); } virtual QSize sizeHint () const { return QSize(256, 18); } }; // //===============================END DISPLAYS==================================== //============================= BEGIN GROUP LABEL METADATA=========================== // Unlike widget's label, metadata inside group's label are not extracted directly by // the Faust compiler. Therefore they must be extracted within the architecture file //----------------------------------------------------------------------------------- // /** * rmWhiteSpaces(): Remove the leading and trailing white spaces of a string * (but not those in the middle of the string) */ static string rmWhiteSpaces(const string& s) { size_t i = s.find_first_not_of(" \t"); size_t j = s.find_last_not_of(" \t"); if ( (i != string::npos) && (j != string::npos) ) { return s.substr(i, 1+j-i); } else { return ""; } } /** * Extracts metdata from a label : 'vol [unit: dB]' -> 'vol' + metadata(unit=dB) */ static void extractMetadata(const string& fulllabel, string& label, map& metadata) { enum {kLabel, kEscape1, kEscape2, kEscape3, kKey, kValue}; int state = kLabel; int deep = 0; string key, value; for (unsigned int i=0; i < fulllabel.size(); i++) { char c = fulllabel[i]; switch (state) { case kLabel : assert (deep == 0); switch (c) { case '\\' : state = kEscape1; break; case '[' : state = kKey; deep++; break; default : label += c; } break; case kEscape1 : label += c; state = kLabel; break; case kEscape2 : key += c; state = kKey; break; case kEscape3 : value += c; state = kValue; break; case kKey : assert (deep > 0); switch (c) { case '\\' : state = kEscape2; break; case '[' : deep++; key += c; break; case ':' : if (deep == 1) { state = kValue; } else { key += c; } break; case ']' : deep--; if (deep < 1) { metadata[rmWhiteSpaces(key)] = ""; state = kLabel; key=""; value=""; } else { key += c; } break; default : key += c; } break; case kValue : assert (deep > 0); switch (c) { case '\\' : state = kEscape3; break; case '[' : deep++; value += c; break; case ']' : deep--; if (deep < 1) { metadata[rmWhiteSpaces(key)]=rmWhiteSpaces(value); state = kLabel; key=""; value=""; } else { value += c; } break; default : value += c; } break; default : cerr << "ERROR unrecognized state " << state << endl; } } label = rmWhiteSpaces(label); } // //============================= END GROUP LABEL METADATA=========================== /****************************************************************************** ******************************************************************************* IMPLEMENTATION OF GUI ITEMS (QT 4.3 for FAUST) ******************************************************************************* *******************************************************************************/ class uiButton : public QObject, public uiItem { Q_OBJECT public : QAbstractButton* fButton; uiButton (GUI* ui, float* zone, QAbstractButton* b) : uiItem(ui, zone), fButton(b) {} virtual void reflectZone() { float v = *fZone; fCache = v; fButton->setDown( v > 0.0 ); } public slots : void pressed() { modifyZone(1.0); } void released() { modifyZone(0.0); } }; class uiCheckButton : public QObject, public uiItem { Q_OBJECT public : QCheckBox* fCheckBox; uiCheckButton (GUI* ui, float* zone, QCheckBox* b) : uiItem(ui, zone), fCheckBox(b) {} virtual void reflectZone() { float v = *fZone; fCache = v; fCheckBox->setCheckState( (v < 0.5) ? Qt::Unchecked : Qt::Checked ); } public slots : void setState(int v) { modifyZone(float(v>0)); } }; class uiSlider : public QObject, public uiItem { Q_OBJECT int faust2qt(float x) { return int(0.5 + (x-fMin)/fStep); } float qt2faust (int v) { return fMin + v*fStep; } int optimalTick() { float x=fStep; while((fMax-fMin)/x > 50) x*=10; while((fMax-fMin)/x < 10) x/=2; return faust2qt(fMin+x); } public : QSlider* fSlider; float fCur; float fMin; float fMax; float fStep; uiSlider (GUI* ui, float* zone, QSlider* slider, float cur, float lo, float hi, float step) : uiItem(ui, zone), fSlider(slider), fCur(cur), fMin(lo), fMax(hi), fStep(step) { fSlider->setMinimum(0); fSlider->setMaximum(faust2qt(fMax)); fSlider->setValue(faust2qt(fCur)); fSlider->setTickInterval(optimalTick()); *fZone = fCur; } virtual void reflectZone() { float v = *fZone; fCache = v; fSlider->setValue(faust2qt(v)); } public slots : void setValue(int v) { modifyZone(qt2faust(v)); } }; class uiKnob : public QObject, public uiItem { Q_OBJECT int faust2qt(float x) { return int(0.5 + (x-fMin)/fStep); } float qt2faust (int v) { return fMin + v*fStep; } int optimalTick() { float x=fStep; while((fMax-fMin)/x > 50) x*=10; while((fMax-fMin)/x < 10) x/=2; return faust2qt(fMin+x); } public : QAbstractSlider* fSlider; float fCur; float fMin; float fMax; float fStep; uiKnob (GUI* ui, float* zone, QAbstractSlider* slider, float cur, float lo, float hi, float step) : uiItem(ui, zone), fSlider(slider), fCur(cur), fMin(lo), fMax(hi), fStep(step) { fSlider->setMinimum(0); fSlider->setMaximum(faust2qt(fMax)); fSlider->setValue(faust2qt(fCur)); //fSlider->setTickInterval(optimalTick()); *fZone = fCur; } virtual void reflectZone() { float v = *fZone; fCache = v; fSlider->setValue(faust2qt(v)); } public slots : void setValue(int v) { modifyZone(qt2faust(v)); } }; class uiBargraph : public QObject, public uiItem { Q_OBJECT int faust2qt(float x) { return int(0.5 + (x-fMin)/(fMax-fMin)*fStep); } public : QProgressBar* fBar; float fMin; float fMax; int fStep; uiBargraph (GUI* ui, float* zone, QProgressBar* bar, float lo, float hi) : uiItem(ui, zone), fBar(bar), fMin(lo), fMax(hi), fStep(1024) { fBar->setRange(0, fStep); fBar->setValue(0); *fZone = 0; } virtual void reflectZone() { float v = *fZone; fCache = v; int x = faust2qt(v); //std::cout << "update *" << fBar << " = " << x << std::endl; fBar->setValue(x); } }; class uiBargraph2 : public QObject, public uiItem { Q_OBJECT public : AbstractDisplay* fBar; uiBargraph2 (GUI* ui, float* zone, AbstractDisplay* bar, float lo, float hi) : uiItem(ui, zone), fBar(bar) { fBar->setRange(lo, hi); fBar->setValue(lo); *fZone = lo; } virtual void reflectZone() { float v = *fZone; fCache = v; fBar->setValue(v); } }; class uiNumEntry : public QObject, public uiItem { Q_OBJECT public : QDoubleSpinBox* fNumEntry; float fCur; float fMin; float fMax; float fStep; int fDecimals; uiNumEntry (GUI* ui, float* zone, QDoubleSpinBox* numEntry, float cur, float lo, float hi, float step) : uiItem(ui, zone), fNumEntry(numEntry), fCur(cur), fMin(lo), fMax(hi), fStep(step) { fDecimals = (fStep >= 1.0) ? 0 : int(0.5+log10(1.0/fStep)); fNumEntry->setMinimum(fMin); fNumEntry->setMaximum(fMax); fNumEntry->setSingleStep(fStep); fNumEntry->setDecimals(fDecimals); fNumEntry->setValue(fCur); *fZone = fCur; } virtual void reflectZone() { float v = *fZone; fCache = v; fNumEntry->setValue(v); } public slots : void setValue(double v) { modifyZone(float(v)); } }; /****************************************************************************** ******************************************************************************* IMPLEMENTATION OF THE USER INTERFACE (QT 4.3 for FAUST) ******************************************************************************* *******************************************************************************/ class QTGUI : public QObject, public GUI { Q_OBJECT QApplication fAppl; QTimer* fTimer; QStyle* fStyle; string gGroupTooltip; stack fGroupStack; map fGuiSize; // map widget zone with widget size coef map fTooltip; // map widget zone with tooltip strings map fUnit; // map widget zone to unit string (i.e. "dB") set fKnobSet; // set of widget zone to be knobs set fLedSet; // set of widget zone to be LEDs /** * Format tooltip string by replacing some white spaces by * return characters so that line width doesn't exceed n. * Limitation : long words exceeding n are not cut */ virtual string formatTooltip(int n, const string& tt) { string ss = tt; // ss string we are going to format int lws = 0; // last white space encountered int lri = 0; // last return inserted for (int i=0; i< (int)tt.size(); i++) { if (tt[i] == ' ') lws = i; if (((i-lri) >= n) && (lws > lri)) { // insert return here ss[lws] = '\n'; lri = lws; } } return ss; } /** * Analyses the widget zone metadata declarations and takes * appropriate actions */ virtual void declare(float* zone, const char* key, const char* value) { if (zone == 0) { // special zone 0 means group metadata if (strcmp(key,"tooltip")==0) { // only group tooltip are currently implemented gGroupTooltip = formatTooltip(30, value); } } else { if (strcmp(key,"size")==0) { fGuiSize[zone]=atof(value); } else if (strcmp(key,"tooltip")==0) { fTooltip[zone] = formatTooltip(30, value) ; } else if (strcmp(key,"unit")==0) { fUnit[zone] = value ; } else if (strcmp(key,"style")==0) { // else if ((strcmp(key,"style")==0) || (strcmp(key,"type")==0)) { if (strcmp(value,"knob") == 0) { fKnobSet.insert(zone); } else if (strcmp(value,"led") == 0) { fLedSet.insert(zone); } } } } bool isTabContext() { return fGroupStack.empty() || ((!fGroupStack.empty()) && (dynamic_cast(fGroupStack.top()) != 0)); } void insert(const char* label, QWidget* widget) { if (fStyle) widget->setStyle(fStyle); if (!fGroupStack.empty()) { QWidget* mother = fGroupStack.top(); QTabWidget* tab = dynamic_cast(mother); if (tab) { tab->addTab(widget,label); } else { widget->setParent(mother); mother->layout()->addWidget(widget); } } } /** * Analyses a full label and activates the relevant options. returns a simplified * label (without options) and an amount of stack adjustement (in case additional * containers were pushed on the stack). */ int checkLabelOptions(QWidget* widget, const string& fullLabel, string& simplifiedLabel) { map metadata; extractMetadata(fullLabel, simplifiedLabel, metadata); if (metadata.count("tooltip")) { widget->setToolTip(metadata["tooltip"].c_str()); } if (metadata["option"] == "detachable") { //openHandleBox(simplifiedLabel.c_str()); return 1; } // no adjustement of the stack needed return 0; } /** * Check if a tooltip is associated to a zone and add it to the corresponding widget */ void checkForTooltip(float* zone, QWidget* widget) { if (fTooltip.count(zone)) { widget->setToolTip(fTooltip[zone].c_str()); } } /** * Check if a knob is required */ bool isKnob(float* zone) { return fKnobSet.count(zone) > 0; } void openBox(const char* fulllabel, QLayout* layout) { map metadata; string label; extractMetadata(fulllabel, label, metadata); layout->setMargin(5); QWidget* box; if (isTabContext()) { box = new QWidget(); // set background color QPalette pal = box->palette(); pal.setColor(box->backgroundRole(), QColor::fromRgb(150, 150, 150) ); box->setPalette(pal); } else if (label.size()>0) { QGroupBox* group = new QGroupBox(); group->setTitle(label.c_str()); box = group; } else { // no label here we use simple widget layout->setMargin(0); box = new QWidget(); } box->setLayout(layout); /* if (metadata.count("tooltip")) { box->setToolTip(metadata["tooltip"].c_str()); }*/ if (gGroupTooltip != string()) { box->setToolTip(gGroupTooltip.c_str()); gGroupTooltip = string(); } insert(label.c_str(), box); fGroupStack.push(box); } void openTab(const char* label) { QTabWidget* group = new QTabWidget(); if (fStyle) group->setStyle(fStyle); insert(label, group); fGroupStack.push(group); } public slots : void update() { //std::cout << '.' << std::endl; updateAllZones(); } public: QTGUI(int argc, char* argv[], QStyle* style = 0) : fAppl(argc, argv), fTimer(0), fStyle(style){ //fGroupStack.push(new QMainWindow()); } virtual ~QTGUI() {} virtual void run() { if (fTimer == 0) { fTimer = new QTimer(this); QObject::connect(fTimer, SIGNAL(timeout()), this, SLOT(update())); fTimer->start(100); } #if 1 fAppl.setStyleSheet( // BUTTONS "QPushButton {" "background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1," "stop: 0 #B0B0B0, stop: 1 #404040);" "border: 2px solid grey;" "border-radius: 6px;" "margin-top: 1ex;" "}" "QPushButton:hover {" "border: 2px solid orange;" "}" "QPushButton:pressed {" //"border: 1px solid orange;" "background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," "stop: 0 #404040, stop: 1 #B0B0B0);" "}" // GROUPS "QGroupBox {" "background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1," "stop: 0 #A0A0A0, stop: 1 #202020);" "border: 2px solid gray;" "border-radius: 5px;" "margin-top: 1ex;" "font-size:7pt;" "font-weight:bold;" //"color: dark grey;" "color: white;" "}" "QGroupBox::title {" "subcontrol-origin: margin;" "subcontrol-position: top center;" /* position at the top center */ "padding: 0 5px;" "}" // SLIDERS // horizontal sliders "QSlider::groove:vertical {" "background: red;" "position: absolute;" /* absolutely position 4px from the left and right of the widget. setting margins on the widget should work too... */ "left: 13px; right: 13px;" "}" "QSlider::handle:vertical {" "height: 40px;" "width: 30px;" "background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," "stop: 0 #AAAAAA, stop : 0.05 #0A0A0A, stop: 0.3 #101010, stop : 0.90 #AAAAAA, stop: 0.91 #000000);" "margin: 0 -5px; /* expand outside the groove */" "border-radius: 5px;" "}" "QSlider::add-page:vertical {" "background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0," "stop: 0 yellow, stop : 0.5 orange);" "}" "QSlider::sub-page:vertical {" "background: grey;" "}" // horizontal sliders "QSlider::groove:horizontal {" "background: red;" "position: absolute;" /* absolutely position 4px from the left and right of the widget. setting margins on the widget should work too... */ "top: 14px; bottom: 14px;" "}" "QSlider::handle:horizontal {" "width: 40px;" "background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0," "stop: 0 #AAAAAA, stop : 0.05 #0A0A0A, stop: 0.3 #101010, stop : 0.90 #AAAAAA, stop: 0.91 #000000);" "margin: -5px 0; /* expand outside the groove */" "border-radius: 5px;" "}" "QSlider::sub-page:horizontal {" "background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," "stop: 0 yellow, stop : 0.5 orange);" "}" "QSlider::add-page:horizontal {" "background: grey;" "}" // TABS //TabWidget and TabBar "QTabWidget::pane {" /* The tab widget frame */ //"border-top: 2px solid #C2C7CB;" "border-top: 2px solid orange;" "background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," "stop: 0 #A0A0A0, stop: 1 #202020);" "}" "QTabWidget::tab-bar {" "left: 5px;" /* move to the right by 5px */ "}" /* Style the tab using the tab sub-control. Note that it reads QTabBar _not_ QTabWidget */ "QTabBar::tab {" "background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," "stop: 0 #909090, stop: 0.4 #888888," "stop: 0.5 #808080, stop: 1.0 #909090);" "border: 2px solid #808080;" //"border-bottom-color: #C2C7CB;" /* same as the pane color */ "border-bottom-color: orange;" /* same as the pane color */ "border-top-left-radius: 4px;" "border-top-right-radius: 4px;" "min-width: 8ex;" "padding: 2px;" "}" "QTabBar::tab:selected, QTabBar::tab:hover {" "background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," "stop: 0 #D0D0D0, stop: 0.4 #A0A0A0," "stop: 0.5 #808080, stop: 1.0 #A0A0A0);" //"stop: 0.5 #A0A0A0, stop: 1.0 #C0C0C0);" //"stop: 0 #fafafa, stop: 0.4 #f4f4f4," //"stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);" //"border-bottom-color: orange;" /* same as the pane color */ "}" "QTabBar::tab:selected {" "border-color: orange;" "border-bottom-color: #A0A0A0;" /* same as pane color */ "}" "QTabBar::tab:!selected {" " margin-top: 2px;" /* make non-selected tabs look smaller */ "}" ); #endif fAppl.exec(); stop(); } // ------------------------- Groups ----------------------------------- virtual void openHorizontalBox(const char* label) { openBox(label, new QHBoxLayout()); } virtual void openVerticalBox(const char* label) { openBox(label, new QVBoxLayout()); } virtual void openFrameBox(const char* ) { } virtual void openTabBox(const char* label) { openTab(label); } virtual void closeBox() { QWidget* group = fGroupStack.top(); fGroupStack.pop(); if (fGroupStack.empty()) { group->show(); } } // ------------------------- active widgets ----------------------------------- virtual void addButton(const char* label , float* zone) { QAbstractButton* w = new QPushButton(label); uiButton* c = new uiButton(this, zone, w); insert(label, w); QObject::connect(w, SIGNAL(pressed()), c, SLOT(pressed())); QObject::connect(w, SIGNAL(released()), c, SLOT(released())); checkForTooltip(zone, w); } virtual void addToggleButton(const char* , float* ) {} virtual void addCheckButton(const char* label , float* zone) { QCheckBox* w = new QCheckBox(label); uiCheckButton* c = new uiCheckButton(this, zone, w); insert(label, w); QObject::connect(w, SIGNAL(stateChanged(int)), c, SLOT(setState(int))); checkForTooltip(zone, w); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { if (isKnob(zone)) { addVerticalKnob(label, zone, init, min, max, step); return; } //insert(label, new QDoubleSpinBox()); if (label && label[0]) openVerticalBox(label); QDoubleSpinBox* w = new QDoubleSpinBox(); uiNumEntry* c = new uiNumEntry(this, zone, w, init, min, max, step); insert(label, w); w->setSuffix(fUnit[zone].c_str()); QObject::connect(w, SIGNAL(valueChanged(double)), c, SLOT(setValue(double))); if (label && label[0]) closeBox(); checkForTooltip(zone, w); } // special num entry without buttons virtual void addNumDisplay(const char* label, float* zone, float init, float min, float max, float step) { //insert(label, new QDoubleSpinBox()); if (label && label[0]) openVerticalBox(label); QDoubleSpinBox* w = new QDoubleSpinBox(); w->setAlignment(Qt::AlignHCenter); #if 1 w->setStyleSheet( "QDoubleSpinBox {" "border: 2px solid orange;" "border-radius: 5px;" "}" ); #endif uiNumEntry* c = new uiNumEntry(this, zone, w, init, min, max, step); insert(label, w); w->setButtonSymbols(QAbstractSpinBox::NoButtons); w->setSuffix(fUnit[zone].c_str()); QObject::connect(w, SIGNAL(valueChanged(double)), c, SLOT(setValue(double))); if (label && label[0]) closeBox(); checkForTooltip(zone, w); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// // // KNOBS // ////////////////////////////////////////////////////////////////////////////////////////////////////////// virtual void addVerticalKnob(const char* label , float* zone, float init, float min, float max, float step) { openVerticalBox(label); QAbstractSlider* w = new QDial(); //qsynthKnob(); uiKnob* c = new uiKnob(this, zone, w, init, min, max, step); insert(label, w); w->setStyle(new qsynthDialVokiStyle()); QObject::connect(w, SIGNAL(valueChanged(int)), c, SLOT(setValue(int))); addNumDisplay(0, zone, init, min, max, step); // compute the size of the knob+display int width = int(64*pow(2,fGuiSize[zone])); int height = int(100*pow(2,fGuiSize[zone])); fGroupStack.top()->setMinimumSize(width,height); fGroupStack.top()->setMaximumSize(width,height); closeBox(); checkForTooltip(zone, w); } virtual void addHorizontalKnob(const char* label , float* zone, float init, float min, float max, float step) { openHorizontalBox(label); QAbstractSlider* w = new QDial(); //new qsynthKnob(); uiKnob* c = new uiKnob(this, zone, w, init, min, max, step); insert(label, w); w->setStyle(new qsynthDialVokiStyle()); QObject::connect(w, SIGNAL(valueChanged(int)), c, SLOT(setValue(int))); addNumDisplay(0, zone, init, min, max, step); closeBox(); checkForTooltip(zone, w); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// // // SLIDERS // ////////////////////////////////////////////////////////////////////////////////////////////////////////// virtual void addVerticalSlider(const char* label , float* zone, float init, float min, float max, float step) { if (isKnob(zone)) { addVerticalKnob(label, zone, init, min, max, step); return; } openVerticalBox(label); QSlider* w = new QSlider(Qt::Vertical); w->setMinimumHeight(160); w->setMinimumWidth(34); //w->setTickPosition(QSlider::TicksBothSides); uiSlider* c = new uiSlider(this, zone, w, init, min, max, step); insert(label, w); QObject::connect(w, SIGNAL(valueChanged(int)), c, SLOT(setValue(int))); addNumDisplay(0, zone, init, min, max, step); closeBox(); checkForTooltip(zone, w); } virtual void addHorizontalSlider(const char* label , float* zone, float init, float min, float max, float step) { if (isKnob(zone)) { addHorizontalKnob(label, zone, init, min, max, step); return; } openHorizontalBox(label); QSlider* w = new QSlider(Qt::Horizontal); w->setMinimumHeight(34); w->setMinimumWidth(160); //w->setTickPosition(QSlider::TicksBothSides); uiSlider* c = new uiSlider(this, zone, w, init, min, max, step); insert(label, w); QObject::connect(w, SIGNAL(valueChanged(int)), c, SLOT(setValue(int))); addNumDisplay(0, zone, init, min, max, step); closeBox(); checkForTooltip(zone, w); } // ------------------------- passive widgets ----------------------------------- virtual void addNumDisplay(const char*, float*, int) {} virtual void addTextDisplay(const char*, float*, const char* [], float, float) {} virtual void addHorizontalBargraph(const char* label , float* zone, float min, float max) { AbstractDisplay* bargraph; openVerticalBox(label); bool db = (fUnit[zone] == "dB"); if (fLedSet.count(zone)) { if (db) { bargraph = new dbLED(min, max); } else { bargraph = new LED(min,max); } } else { if (db) { bargraph = new dbHorizontalBargraph(min, max); } else { bargraph = new linHorizontalBargraph(min, max); } } new uiBargraph2(this, zone, bargraph, min, max); insert(label, bargraph); closeBox(); checkForTooltip(zone, bargraph); } virtual void addVerticalBargraph(const char* label , float* zone, float min, float max) { AbstractDisplay* bargraph; openVerticalBox(label); bool db = (fUnit[zone] == "dB"); if (fLedSet.count(zone)) { if (db) { bargraph = new dbLED(min, max); } else { bargraph = new LED(min,max); } } else { if (db) { bargraph = new dbVerticalBargraph(min, max); } else { bargraph = new linVerticalBargraph(min, max); } } new uiBargraph2(this, zone, bargraph, min, max); insert(label, bargraph); closeBox(); checkForTooltip(zone, bargraph); } }; #endif faust-0.9.46/architecture/gui/mocfaustqt.cpp0000644000175000017500000003241711702130733021014 0ustar orlareyorlarey/**************************************************************************** ** Meta object code from reading C++ file 'faustqt.h' ** ** Created: Fri Feb 25 08:07:38 2011 ** by: The Qt Meta Object Compiler version 62 (Qt 4.7.0) ** ** WARNING! All changes made in this file will be lost! *****************************************************************************/ #include "faustqt.h" #if !defined(Q_MOC_OUTPUT_REVISION) #error "The header file 'faustqt.h' doesn't include ." #elif Q_MOC_OUTPUT_REVISION != 62 #error "This file was generated using the moc from 4.7.0. It" #error "cannot be used with the include files from this version of Qt." #error "(The moc has changed too much.)" #endif QT_BEGIN_MOC_NAMESPACE static const uint qt_meta_data_uiButton[] = { // content: 5, // revision 0, // classname 0, 0, // classinfo 2, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags 0, // signalCount // slots: signature, parameters, type, tag, flags 10, 9, 9, 9, 0x0a, 20, 9, 9, 9, 0x0a, 0 // eod }; static const char qt_meta_stringdata_uiButton[] = { "uiButton\0\0pressed()\0released()\0" }; const QMetaObject uiButton::staticMetaObject = { { &QObject::staticMetaObject, qt_meta_stringdata_uiButton, qt_meta_data_uiButton, 0 } }; #ifdef Q_NO_DATA_RELOCATION const QMetaObject &uiButton::getStaticMetaObject() { return staticMetaObject; } #endif //Q_NO_DATA_RELOCATION const QMetaObject *uiButton::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; } void *uiButton::qt_metacast(const char *_clname) { if (!_clname) return 0; if (!strcmp(_clname, qt_meta_stringdata_uiButton)) return static_cast(const_cast< uiButton*>(this)); if (!strcmp(_clname, "uiItem")) return static_cast< uiItem*>(const_cast< uiButton*>(this)); return QObject::qt_metacast(_clname); } int uiButton::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: pressed(); break; case 1: released(); break; default: ; } _id -= 2; } return _id; } static const uint qt_meta_data_uiCheckButton[] = { // content: 5, // revision 0, // classname 0, 0, // classinfo 1, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags 0, // signalCount // slots: signature, parameters, type, tag, flags 17, 15, 14, 14, 0x0a, 0 // eod }; static const char qt_meta_stringdata_uiCheckButton[] = { "uiCheckButton\0\0v\0setState(int)\0" }; const QMetaObject uiCheckButton::staticMetaObject = { { &QObject::staticMetaObject, qt_meta_stringdata_uiCheckButton, qt_meta_data_uiCheckButton, 0 } }; #ifdef Q_NO_DATA_RELOCATION const QMetaObject &uiCheckButton::getStaticMetaObject() { return staticMetaObject; } #endif //Q_NO_DATA_RELOCATION const QMetaObject *uiCheckButton::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; } void *uiCheckButton::qt_metacast(const char *_clname) { if (!_clname) return 0; if (!strcmp(_clname, qt_meta_stringdata_uiCheckButton)) return static_cast(const_cast< uiCheckButton*>(this)); if (!strcmp(_clname, "uiItem")) return static_cast< uiItem*>(const_cast< uiCheckButton*>(this)); return QObject::qt_metacast(_clname); } int uiCheckButton::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: setState((*reinterpret_cast< int(*)>(_a[1]))); break; default: ; } _id -= 1; } return _id; } static const uint qt_meta_data_uiSlider[] = { // content: 5, // revision 0, // classname 0, 0, // classinfo 1, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags 0, // signalCount // slots: signature, parameters, type, tag, flags 12, 10, 9, 9, 0x0a, 0 // eod }; static const char qt_meta_stringdata_uiSlider[] = { "uiSlider\0\0v\0setValue(int)\0" }; const QMetaObject uiSlider::staticMetaObject = { { &QObject::staticMetaObject, qt_meta_stringdata_uiSlider, qt_meta_data_uiSlider, 0 } }; #ifdef Q_NO_DATA_RELOCATION const QMetaObject &uiSlider::getStaticMetaObject() { return staticMetaObject; } #endif //Q_NO_DATA_RELOCATION const QMetaObject *uiSlider::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; } void *uiSlider::qt_metacast(const char *_clname) { if (!_clname) return 0; if (!strcmp(_clname, qt_meta_stringdata_uiSlider)) return static_cast(const_cast< uiSlider*>(this)); if (!strcmp(_clname, "uiItem")) return static_cast< uiItem*>(const_cast< uiSlider*>(this)); return QObject::qt_metacast(_clname); } int uiSlider::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: setValue((*reinterpret_cast< int(*)>(_a[1]))); break; default: ; } _id -= 1; } return _id; } static const uint qt_meta_data_uiKnob[] = { // content: 5, // revision 0, // classname 0, 0, // classinfo 1, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags 0, // signalCount // slots: signature, parameters, type, tag, flags 10, 8, 7, 7, 0x0a, 0 // eod }; static const char qt_meta_stringdata_uiKnob[] = { "uiKnob\0\0v\0setValue(int)\0" }; const QMetaObject uiKnob::staticMetaObject = { { &QObject::staticMetaObject, qt_meta_stringdata_uiKnob, qt_meta_data_uiKnob, 0 } }; #ifdef Q_NO_DATA_RELOCATION const QMetaObject &uiKnob::getStaticMetaObject() { return staticMetaObject; } #endif //Q_NO_DATA_RELOCATION const QMetaObject *uiKnob::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; } void *uiKnob::qt_metacast(const char *_clname) { if (!_clname) return 0; if (!strcmp(_clname, qt_meta_stringdata_uiKnob)) return static_cast(const_cast< uiKnob*>(this)); if (!strcmp(_clname, "uiItem")) return static_cast< uiItem*>(const_cast< uiKnob*>(this)); return QObject::qt_metacast(_clname); } int uiKnob::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: setValue((*reinterpret_cast< int(*)>(_a[1]))); break; default: ; } _id -= 1; } return _id; } static const uint qt_meta_data_uiBargraph[] = { // content: 5, // revision 0, // classname 0, 0, // classinfo 0, 0, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags 0, // signalCount 0 // eod }; static const char qt_meta_stringdata_uiBargraph[] = { "uiBargraph\0" }; const QMetaObject uiBargraph::staticMetaObject = { { &QObject::staticMetaObject, qt_meta_stringdata_uiBargraph, qt_meta_data_uiBargraph, 0 } }; #ifdef Q_NO_DATA_RELOCATION const QMetaObject &uiBargraph::getStaticMetaObject() { return staticMetaObject; } #endif //Q_NO_DATA_RELOCATION const QMetaObject *uiBargraph::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; } void *uiBargraph::qt_metacast(const char *_clname) { if (!_clname) return 0; if (!strcmp(_clname, qt_meta_stringdata_uiBargraph)) return static_cast(const_cast< uiBargraph*>(this)); if (!strcmp(_clname, "uiItem")) return static_cast< uiItem*>(const_cast< uiBargraph*>(this)); return QObject::qt_metacast(_clname); } int uiBargraph::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; return _id; } static const uint qt_meta_data_uiBargraph2[] = { // content: 5, // revision 0, // classname 0, 0, // classinfo 0, 0, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags 0, // signalCount 0 // eod }; static const char qt_meta_stringdata_uiBargraph2[] = { "uiBargraph2\0" }; const QMetaObject uiBargraph2::staticMetaObject = { { &QObject::staticMetaObject, qt_meta_stringdata_uiBargraph2, qt_meta_data_uiBargraph2, 0 } }; #ifdef Q_NO_DATA_RELOCATION const QMetaObject &uiBargraph2::getStaticMetaObject() { return staticMetaObject; } #endif //Q_NO_DATA_RELOCATION const QMetaObject *uiBargraph2::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; } void *uiBargraph2::qt_metacast(const char *_clname) { if (!_clname) return 0; if (!strcmp(_clname, qt_meta_stringdata_uiBargraph2)) return static_cast(const_cast< uiBargraph2*>(this)); if (!strcmp(_clname, "uiItem")) return static_cast< uiItem*>(const_cast< uiBargraph2*>(this)); return QObject::qt_metacast(_clname); } int uiBargraph2::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; return _id; } static const uint qt_meta_data_uiNumEntry[] = { // content: 5, // revision 0, // classname 0, 0, // classinfo 1, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags 0, // signalCount // slots: signature, parameters, type, tag, flags 14, 12, 11, 11, 0x0a, 0 // eod }; static const char qt_meta_stringdata_uiNumEntry[] = { "uiNumEntry\0\0v\0setValue(double)\0" }; const QMetaObject uiNumEntry::staticMetaObject = { { &QObject::staticMetaObject, qt_meta_stringdata_uiNumEntry, qt_meta_data_uiNumEntry, 0 } }; #ifdef Q_NO_DATA_RELOCATION const QMetaObject &uiNumEntry::getStaticMetaObject() { return staticMetaObject; } #endif //Q_NO_DATA_RELOCATION const QMetaObject *uiNumEntry::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; } void *uiNumEntry::qt_metacast(const char *_clname) { if (!_clname) return 0; if (!strcmp(_clname, qt_meta_stringdata_uiNumEntry)) return static_cast(const_cast< uiNumEntry*>(this)); if (!strcmp(_clname, "uiItem")) return static_cast< uiItem*>(const_cast< uiNumEntry*>(this)); return QObject::qt_metacast(_clname); } int uiNumEntry::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: setValue((*reinterpret_cast< double(*)>(_a[1]))); break; default: ; } _id -= 1; } return _id; } static const uint qt_meta_data_QTGUI[] = { // content: 5, // revision 0, // classname 0, 0, // classinfo 1, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags 0, // signalCount // slots: signature, parameters, type, tag, flags 7, 6, 6, 6, 0x0a, 0 // eod }; static const char qt_meta_stringdata_QTGUI[] = { "QTGUI\0\0update()\0" }; const QMetaObject QTGUI::staticMetaObject = { { &QObject::staticMetaObject, qt_meta_stringdata_QTGUI, qt_meta_data_QTGUI, 0 } }; #ifdef Q_NO_DATA_RELOCATION const QMetaObject &QTGUI::getStaticMetaObject() { return staticMetaObject; } #endif //Q_NO_DATA_RELOCATION const QMetaObject *QTGUI::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; } void *QTGUI::qt_metacast(const char *_clname) { if (!_clname) return 0; if (!strcmp(_clname, qt_meta_stringdata_QTGUI)) return static_cast(const_cast< QTGUI*>(this)); if (!strcmp(_clname, "UI")) return static_cast< UI*>(const_cast< QTGUI*>(this)); return QObject::qt_metacast(_clname); } int QTGUI::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: update(); break; default: ; } _id -= 1; } return _id; } QT_END_MOC_NAMESPACE faust-0.9.46/architecture/gui/OSCUI.h0000644000175000017500000001070011702130733017144 0ustar orlareyorlarey/* Copyright (C) 2011 Grame - Lyon All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted. */ #include "OSCControler.h" #include "GUI.h" #include /****************************************************************************** ******************************************************************************* OSC (Open Sound Control) USER INTERFACE ******************************************************************************* *******************************************************************************/ /* Note about the OSC addresses and the Faust UI names: ---------------------------------------------------- There are potential conflicts between the Faust UI objects naming scheme and the OSC address space. An OSC symbolic names is an ASCII string consisting of printable characters other than the following: space # number sign * asterisk , comma / forward ? question mark [ open bracket ] close bracket { open curly brace } close curly brace a simple solution to address the problem consists in replacing space or tabulation with '_' (underscore) all the other osc excluded characters with '-' (hyphen) This solution is implemented in the proposed OSC UI; */ using namespace std; //class oscfaust::OSCIO; class OSCUI : public GUI { oscfaust::OSCControler* fCtrl; vector fAlias; const char* tr(const char* label) const; // add all accumulated alias void addalias(float* zone, float init, float min, float max) { for (unsigned int i=0; iaddfullpathnode(fAlias[i], zone, 0, 1, init, min, max); } fAlias.clear(); } public: OSCUI(char* /*applicationname*/, int argc, char *argv[], oscfaust::OSCIO* io=0) : GUI() { fCtrl = new oscfaust::OSCControler(argc, argv, io); // fCtrl->opengroup(applicationname); } virtual ~OSCUI() { delete fCtrl; } // -- active widgets virtual void addButton(const char* label, float* zone) { addalias(zone, 0, 0, 1); fCtrl->addnode( tr(label), zone, 0, 0, 1); } virtual void addToggleButton(const char* label, float* zone) { addalias(zone, 0, 0, 1); fCtrl->addnode( tr(label), zone, 0, 0, 1); } virtual void addCheckButton(const char* label, float* zone) { addalias(zone, 0, 0, 1); fCtrl->addnode( tr(label), zone, 0, 0, 1); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float /*step*/) { addalias(zone, init, min, max); fCtrl->addnode( tr(label), zone, init, min, max); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float /*step*/) { addalias(zone, init, min, max); fCtrl->addnode( tr(label), zone, init, min, max); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float /*step*/) { addalias(zone, init, min, max); fCtrl->addnode( tr(label), zone, init, min, max); } // -- passive widgets virtual void addNumDisplay(const char* /*label*/, float* /*zone*/, int /*precision*/) {} virtual void addTextDisplay(const char* /*label*/, float* /*zone*/, const char* /*names*/[], float /*min*/, float /*max*/) {} virtual void addHorizontalBargraph(const char* /*label*/, float* /*zone*/, float /*min*/, float /*max*/) {} virtual void addVerticalBargraph(const char* /*label*/, float* /*zone*/, float /*min*/, float /*max*/) {} virtual void openFrameBox(const char* label) { fCtrl->opengroup( tr(label)); } virtual void openTabBox(const char* label) { fCtrl->opengroup( tr(label)); } virtual void openHorizontalBox(const char* label) { fCtrl->opengroup( tr(label)); } virtual void openVerticalBox(const char* label) { fCtrl->opengroup( tr(label)); } virtual void closeBox() { fCtrl->closegroup(); } virtual void declare(float* , const char* key , const char* alias) { if (strcasecmp(key,"OSC")==0) fAlias.push_back(alias); } virtual void show() {} void run() { fCtrl->run(); } const char* getRootName() { return fCtrl->getRootName(); } }; const char* OSCUI::tr(const char* label) const { static char buffer[1024]; char * ptr = buffer; int n=1; while (*label && (n++ < 1024)) { switch (*label) { case ' ': case ' ': *ptr++ = '_'; break; case '#': case '*': case ',': case '/': case '?': case '[': case ']': case '{': case '}': *ptr++ = '_'; break; default: *ptr++ = *label; } label++; } *ptr = 0; return buffer; } faust-0.9.46/architecture/gui/UI.h0000644000175000017500000000337511702130733016611 0ustar orlareyorlarey#ifndef FAUST_UI_H #define FAUST_UI_H /******************************************************************************* * UI : Faust User Interface * This abstract class contains only the method that the faust compiler can * generate to describe a DSP interface. ******************************************************************************/ class UI { public: UI() { } virtual ~UI() { } // -- widget's layouts virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; // -- metadata declarations virtual void declare(float* , const char* , const char* ) {} }; #endif faust-0.9.46/architecture/gui/console.h0000644000175000017500000001322211702130733017726 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #ifndef __faustconsole__ #define __faustconsole__ #include "GUI.h" #include #include #include #include #include #include #include using namespace std; /****************************************************************************** ******************************************************************************* USER INTERFACE ******************************************************************************* *******************************************************************************/ struct param { float* fZone; float fMin; float fMax; param(float* z, float a, float b) : fZone(z), fMin(a), fMax(b) {} }; class CMDUI : public GUI { int fArgc; char** fArgv; stack fPrefix; map fKeyParam; void addOption(const char* label, float* zone, float min, float max) { string fullname = fPrefix.top() + label; fKeyParam.insert(make_pair(fullname, param(zone, min, max))); } void openAnyBox(const char* label) { string prefix; if (label && label[0]) { prefix = fPrefix.top() + "-" + label; } else { prefix = fPrefix.top(); } fPrefix.push(prefix); } public: CMDUI(int argc, char *argv[]) : GUI(), fArgc(argc), fArgv(argv) { fPrefix.push("--"); } virtual ~CMDUI() {} virtual void openFrameBox(const char* label) { openAnyBox(label); } virtual void openTabBox(const char* label) { openAnyBox(label); } virtual void openHorizontalBox(const char* label) { openAnyBox(label); } virtual void openVerticalBox(const char* label) { openAnyBox(label); } virtual void closeBox() { fPrefix.pop(); } virtual void addButton(const char* label, float* zone) {}; virtual void addToggleButton(const char* label, float* zone) {}; virtual void addCheckButton(const char* label, float* zone) {}; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,min,max); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,min,max); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,min,max); } // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) {} virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) {} virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) {} virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) {} virtual void show() {} virtual void run() { char c; printf("Type 'q' to quit\n"); while ((c = getchar()) != 'q') { sleep(1); } } void print() { map::iterator i; cout << fArgc << "\n"; cout << fArgv[0] << " option list : "; for (i = fKeyParam.begin(); i != fKeyParam.end(); i++) { cout << "[ " << i->first << " " << i->second.fMin << ".." << i->second.fMax <<" ] "; } } void process_command() { map::iterator p; for (int i = 1; i < fArgc; i++) { if (fArgv[i][0] == '-') { p = fKeyParam.find(fArgv[i]); if (p == fKeyParam.end()) { cout << fArgv[0] << " : unrecognized option " << fArgv[i] << "\n"; print(); exit(1); } char* end; *(p->second.fZone) = float(strtod(fArgv[i+1], &end)); i++; } } } void process_init() { map::iterator p; for (int i = 1; i < fArgc; i++) { if (fArgv[i][0] == '-') { p = fKeyParam.find(fArgv[i]); if (p == fKeyParam.end()) { cout << fArgv[0] << " : unrecognized option " << fArgv[i] << "\n"; exit(1); } char* end; *(p->second.fZone) = float(strtod(fArgv[i+1], &end)); i++; } } } }; #endif /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/gui/FUI.h0000644000175000017500000000776311702130733016724 0ustar orlareyorlarey#ifndef FAUST_FUI_H #define FAUST_FUI_H #include "UI.h" #include #include #include #include #include #include #include using namespace std; #if 1 /******************************************************************************* * FUI : used to save and recall the state of the user interface * This class provides essentially two new methods saveState() and recallState() * used to save on file and recall from file the state of the user interface. * The file is human readble and editable ******************************************************************************/ class FUI : public UI { stack fGroupStack; vector fNameList; map fName2Zone; protected: // labels are normalized by replacing white spaces by underscores and by // removing parenthesis string normalizeLabel(const char* label) { string s; char c; while ((c=*label++)) { if (isspace(c)) { s += '_'; } //else if ((c == '(') | (c == ')') ) { } else { s += c; } } return s; } // add an element by relating its full name and memory zone virtual void addElement (const char* label, float* zone) { string fullname (fGroupStack.top() + '/' + normalizeLabel(label)); fNameList.push_back(fullname); fName2Zone[fullname] = zone; } // keep track of full group names in a stack virtual void pushGroupLabel(const char* label) { if (fGroupStack.empty()) { fGroupStack.push(normalizeLabel(label)); } else { fGroupStack.push(fGroupStack.top() + '/' + normalizeLabel(label)); } } virtual void popGroupLabel() { fGroupStack.pop(); }; public: FUI() {} virtual ~FUI() {} // -- Save and recall methods // save the zones values and full names virtual void saveState(const char* filename) { ofstream f(filename); for (unsigned int i=0; i> v >> n; if (fName2Zone.count(n)>0) { *(fName2Zone[n]) = v; } else { cerr << "recallState : parameter not found : " << n << " with value : " << v << endl; } } f.close(); } // -- widget's layouts (just keep track of group labels) virtual void openFrameBox(const char* label) { pushGroupLabel(label); } virtual void openTabBox(const char* label) { pushGroupLabel(label); } virtual void openHorizontalBox(const char* label) { pushGroupLabel(label); } virtual void openVerticalBox(const char* label) { pushGroupLabel(label); } virtual void closeBox() { popGroupLabel(); }; // -- active widgets (just add an element) virtual void addButton(const char* label, float* zone) { addElement(label, zone); } virtual void addToggleButton(const char* label, float* zone) { addElement(label, zone); } virtual void addCheckButton(const char* label, float* zone) { addElement(label, zone); } virtual void addVerticalSlider(const char* label, float* zone, float , float , float , float ) { addElement(label, zone); } virtual void addHorizontalSlider(const char* label, float* zone, float , float , float , float ) { addElement(label, zone); } virtual void addNumEntry(const char* label, float* zone, float , float , float , float ) { addElement(label, zone); } // -- passive widgets (are ignored) virtual void addNumDisplay(const char* , float* , int ) {}; virtual void addTextDisplay(const char* , float* , const char*[], float , float ) {}; virtual void addHorizontalBargraph(const char* , float* , float , float ) {}; virtual void addVerticalBargraph(const char* , float* , float , float ) {}; // -- metadata are not used virtual void declare(float* , const char* , const char* ) {} }; #endif #endif faust-0.9.46/architecture/bench.cpp0000644000175000017500000003201511702130733017113 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ /* link with */ /* link with : "" */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #include using namespace std; // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; float* gBuffer = 0; // a buffer of NV*VSize samples unsigned int COUNT = 2000; // number of measures unsigned int NV = 4096; // number of vectors in BIG buffer (should exceed cache) unsigned int ITER = 10; // number of iterations per measure unsigned int VSIZE = 4096; // size of a vector in samples unsigned int IDX = 0; // current vector number (0 <= VIdx < NV) //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } // g++ -Wall -O3 -lm -lpthread -lasound `gtk-config --cflags --libs` test.cpp -o test //------------------------------------------------------------------- // Generic min and max using c++ inline //------------------------------------------------------------------- inline int max (unsigned int a, unsigned int b) { return (a>b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a> n); } bool setRealtimePriority () { struct passwd * pw; int err; uid_t uid; int policy; struct sched_param param; uid = getuid (); pw = getpwnam ("root"); setuid (pw->pw_uid); pthread_getschedparam(pthread_self(), &policy, ¶m); policy = SCHED_RR; param.sched_priority = 50; err = pthread_setschedparam(pthread_self(), policy, ¶m); setuid (uid); return (err != -1); } #include double mysecond() { struct timeval tp; struct timezone tzp; int i; i = gettimeofday(&tp,&tzp); return ( (double) tp.tv_sec + (double) tp.tv_usec * 1.e-6 ); } /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> /****************************************************************************** ******************************************************************************* ABSTRACT USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /****************************************************************************** ******************************************************************************* DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // definition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; #if 0 static __inline__ unsigned long long int rdtsc(void) { unsigned long long int x; __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); return x; } #endif /** * Bench by calling COUNT times the compute() method for * the computation of vsize samples */ #define MEGABYTE 1048576.0 void statistic(const char* name, double* timing) { double lo, hi, tot; double mega = double(VSIZE*ITER)/MEGABYTE; // mega samples // skip first 10 values to avoid cache bias ??? lo = hi = tot = mega/(timing[11] - timing[10]); for (int i = 11; i hi) { hi = delta; } tot += delta; } cout << '\t' << hi << '\t' << hi*4*DSP.getNumInputs() << '\t' << "MB/s inputs" << '\t' << hi*4*DSP.getNumOutputs() << '\t' << "MB/s outputs" << '\t' << tot/(COUNT-11) << '\t' << lo << endl; } void allocBuffer() { unsigned int BSIZE = NV * VSIZE; gBuffer = (float*) calloc (BSIZE, sizeof(float)); int R0_0 = 0; for (int j = 0; j < BSIZE; j++) { int R0temp0 = (12345 + (1103515245 * R0_0)); gBuffer[j] = 4.656613e-10f*R0temp0; R0_0 = R0temp0; } } float* nextVect() { IDX = (1+IDX)%NV; return &gBuffer[IDX*VSIZE]; } void bench(const char* name) { int numInChan = DSP.getNumInputs(); int numOutChan = DSP.getNumOutputs(); assert (numInChan < 256); assert (numOutChan < 256); float* inChannel[256]; float* outChannel[256]; // allocate input buffers (initialized with white noise) allocBuffer(); // allocate output channels (not initialized) for (int i = 0; i < numOutChan; i++) outChannel[i] = (float*) calloc (VSIZE, sizeof(float)); // init the dsp with a resoneable sampling rate) DSP.init(48000); double* timing = (double*) calloc (COUNT, sizeof(double)); for (int i = 0; i // URL : http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt // //------------------------------------------------------------------------- filtercoeff(f0, dBgain, Q) = environment { //---------------------------------------- // biquad coeffs for various filters // usage : filtercoeff(f0, dBgain, Q).LPF //---------------------------------------- LPF = rbjcoef( a0, a1, a2, b0, b1, b2 ) with { b0 = (1 - cos(w0))/2; b1 = 1 - cos(w0); b2 = (1 - cos(w0))/2; a0 = 1 + alpha; a1 = -2*cos(w0); a2 = 1 - alpha; }; HPF = rbjcoef( a0, a1, a2, b0, b1, b2 ) with { b0 = (1 + cos(w0))/2; b1 = -1 - cos(w0); b2 = (1 + cos(w0))/2; a0 = 1 + alpha; a1 = -2*cos(w0); a2 = 1 - alpha; }; BPF = rbjcoef( a0, a1, a2, b0, b1, b2 ) // constant 0 dB peak gain with { b0 = alpha; b1 = 0; b2 = -alpha; a0 = 1 + alpha; a1 = -2*cos(w0); a2 = 1 - alpha; }; notch = rbjcoef( a0, a1, a2, b0, b1, b2 ) with { b0 = 1; b1 = -2*cos(w0); b2 = 1; a0 = 1 + alpha; a1 = -2*cos(w0); a2 = 1 - alpha; }; APF = rbjcoef( a0, a1, a2, b0, b1, b2 ) with { b0 = 1 - alpha; b1 = -2*cos(w0); b2 = 1 + alpha; a0 = 1 + alpha; a1 = -2*cos(w0); a2 = 1 - alpha; }; peakingEQ = rbjcoef( a0, a1, a2, b0, b1, b2 ) with { b0 = 1 + alpha*A; b1 = -2*cos(w0); b2 = 1 - alpha*A; a0 = 1 + alpha/A; a1 = -2*cos(w0); a2 = 1 - alpha/A; }; peakNotch = rbjcoef( a0, a1, a2, b0, b1, b2 ) with { b0 = 1 + alpha*G; b1 = -2*cos(w0); b2 = 1 - alpha*G; a0 = 1 + alpha/G; a1 = -2*cos(w0); a2 = 1 - alpha/G; }; lowShelf = rbjcoef( a0, a1, a2, b0, b1, b2 ) with { b0 = A*( (A+1) - (A-1)*cos(w0) + 2*sqrt(A)*alpha ); b1 = 2*A*( (A-1) - (A+1)*cos(w0) ); b2 = A*( (A+1) - (A-1)*cos(w0) - 2*sqrt(A)*alpha ); a0 = (A+1) + (A-1)*cos(w0) + 2*sqrt(A)*alpha; a1 = -2*( (A-1) + (A+1)*cos(w0) ); a2 = (A+1) + (A-1)*cos(w0) - 2*sqrt(A)*alpha; }; highShelf = rbjcoef( a0, a1, a2, b0, b1, b2 ) with { b0 = A*( (A+1) + (A-1)*cos(w0) + 2*sqrt(A)*alpha ); b1 = -2*A*( (A-1) + (A+1)*cos(w0) ); b2 = A*( (A+1) + (A-1)*cos(w0) - 2*sqrt(A)*alpha ); a0 = (A+1) - (A-1)*cos(w0) + 2*sqrt(A)*alpha; a1 = 2*( (A-1) - (A+1)*cos(w0) ); a2 = (A+1) - (A-1)*cos(w0) - 2*sqrt(A)*alpha; }; // --------------------- implementation ------------------------------ // convert rbj coeffs to biquad coeffs rbjcoef(a0,a1,a2,b0,b1,b2) = (b0/a0, b1/a0, b2/a0,-a1/a0,-a2/a0); // common values // alpha = sin(w0)/(2*Q); // w0 = 2*PI*f0/Fs; alpha = sin(w0)/(2*max(0.001,Q)); w0 = 2*PI*max(0,f0)/Fs; Fs = SR; A = 10^(dBgain/40); // (for peaking and shelving EQ filters only) G = sqrt(max(0.00001, dBgain)); // When gain is a linear values (i.e. not in dB) }; //------------------------------------------------------------------------- // Implementation of MaxMSP biquad~ // y[n] = a0 * x[n] + a1 * x[n-1] + a2 * x[n-2] + b1 * y[n-1] + b2 * y[n-2] //------------------------------------------------------------------------- biquad(x,a0,a1,a2,b1,b2) = x : conv3(a0, a1, a2) : + ~ conv2(b1, b2) with { conv2(c0,c1,x) = c0*x+c1*x'; conv3(c0,c1,c2,x) = c0*x+c1*x'+c2*x''; }; //------------------------------------------------------------------------- // // Filters using filtercoeff and biquad // //------------------------------------------------------------------------- // Low Pass Filter LPF(x, f0, gain, Q) = x , filtercoeff(f0,gain,Q).LPF : biquad; // High Pass Filter HPF(x, f0, gain, Q) = x , filtercoeff(f0,gain,Q).HPF : biquad; // Band Pass Filter BPF(x, f0, gain, Q) = x , filtercoeff(f0,gain,Q).BPF : biquad; // notch Filter notch(x, f0, gain, Q) = x , filtercoeff(f0,gain,Q).notch : biquad; // All Pass Filter APF(x, f0, gain, Q) = x , filtercoeff(f0,gain,Q).APF : biquad; // ???? peakingEQ(x, f0, gain, Q) = x , filtercoeff(f0,gain,Q).peakingEQ : biquad; // Max peakNotch is like peakingEQ but with a linear gain peakNotch(x, f0, gain, Q) = x , filtercoeff(f0,gain,Q).peakNotch : biquad; // ???? lowShelf(x, f0, gain, Q) = x , filtercoeff(f0,gain,Q).lowShelf : biquad; // ???? highShelf(x, f0, gain, Q) = x , filtercoeff(f0,gain,Q).highShelf : biquad; //------------------------------------------------------------------------- // Implementation of Max/MSP line~. Generate signal ramp or envelope // // USAGE : line(value, time) // value : the desired output value // time : the interpolation time to reach this value (in milliseconds) // // NOTE : the interpolation process is restarted every time the desired // output value changes. The interpolation time is sampled only then. //------------------------------------------------------------------------- line (value, time) = state ~ ( _ , _ ) : ! , _ with { state (t , c) = nt , if( nt <= 0 , value , c + (value - c) / nt) with { nt = if( value != value' , samples, t - 1) ; samples = time * SR / 1000.0 ; } ; } ; faust-0.9.46/architecture/pure.cpp0000644000175000017500000004331111702130733017010 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST Architecture File Copyright (C) 2009-2011 Albert Graef --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ************************************************************************ ************************************************************************/ /* Pure architecture for Faust. This is similar to the Q architecture, but uses double precision for the audio buffers and control variables. See http://pure-lang.googlecode.com for a Pure module which can load these extensions. */ #include #include #include #include using namespace std; typedef pair strpair; struct Meta { list< strpair > data; void declare (const char* key, const char* value) { data.push_back(strpair(key, value)); } }; //------------------------------------------------------------------- // Generic min and max using c++ inline //------------------------------------------------------------------- inline int max (unsigned int a, unsigned int b) { return (a>b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a T abs (T a) { return (a> n); } /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } <> /****************************************************************************** ******************************************************************************* ABSTRACT USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} virtual void addButton(const char* label, double* zone) = 0; virtual void addToggleButton(const char* label, double* zone) = 0; virtual void addCheckButton(const char* label, double* zone) = 0; virtual void addVerticalSlider(const char* label, double* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, double* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, double* zone, float init, float min, float max, float step) = 0; virtual void addNumDisplay(const char* label, double* zone, int precision) = 0; virtual void addTextDisplay(const char* label, double* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, double* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, double* zone, float min, float max) = 0; virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(double* zone, const char* key, const char* value) {} }; /*************************************************************************** Pure UI interface ***************************************************************************/ enum ui_elem_type_t { UI_BUTTON, UI_TOGGLE_BUTTON, UI_CHECK_BUTTON, UI_V_SLIDER, UI_H_SLIDER, UI_NUM_ENTRY, UI_V_BARGRAPH, UI_H_BARGRAPH, UI_END_GROUP, UI_V_GROUP, UI_H_GROUP, UI_T_GROUP }; struct ui_elem_t { ui_elem_type_t type; const char *label; double *zone; void *ref; float init, min, max, step; }; class PureUI : public UI { public: int nelems; ui_elem_t *elems; map< int, list > metadata; PureUI(); virtual ~PureUI(); protected: void add_elem(ui_elem_type_t type, const char *label = NULL); void add_elem(ui_elem_type_t type, const char *label, double *zone); void add_elem(ui_elem_type_t type, const char *label, double *zone, float init, float min, float max, float step); void add_elem(ui_elem_type_t type, const char *label, double *zone, float min, float max); public: virtual void addButton(const char* label, double* zone); virtual void addToggleButton(const char* label, double* zone); virtual void addCheckButton(const char* label, double* zone); virtual void addVerticalSlider(const char* label, double* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(const char* label, double* zone, float init, float min, float max, float step); virtual void addNumEntry(const char* label, double* zone, float init, float min, float max, float step); virtual void addNumDisplay(const char* label, double* zone, int precision); virtual void addTextDisplay(const char* label, double* zone, char* names[], float min, float max); virtual void addHorizontalBargraph(const char* label, double* zone, float min, float max); virtual void addVerticalBargraph(const char* label, double* zone, float min, float max); virtual void openFrameBox(const char* label); virtual void openTabBox(const char* label); virtual void openHorizontalBox(const char* label); virtual void openVerticalBox(const char* label); virtual void closeBox(); virtual void run(); virtual void declare(double* zone, const char* key, const char* value); }; PureUI::PureUI() { nelems = 0; elems = NULL; } PureUI::~PureUI() { if (elems) free(elems); } void PureUI::declare(double* zone, const char* key, const char* value) { map< int, list >::iterator it = metadata.find(nelems); if (it != metadata.end()) it->second.push_back(strpair(key, value)); else metadata[nelems] = list(1, strpair(key, value)); } inline void PureUI::add_elem(ui_elem_type_t type, const char *label) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; elems[nelems].type = type; elems[nelems].label = label; elems[nelems].zone = NULL; elems[nelems].ref = NULL; elems[nelems].init = 0.0; elems[nelems].min = 0.0; elems[nelems].max = 0.0; elems[nelems].step = 0.0; nelems++; } inline void PureUI::add_elem(ui_elem_type_t type, const char *label, double *zone) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; elems[nelems].type = type; elems[nelems].label = label; elems[nelems].zone = zone; elems[nelems].ref = NULL; elems[nelems].init = 0.0; elems[nelems].min = 0.0; elems[nelems].max = 0.0; elems[nelems].step = 0.0; nelems++; } inline void PureUI::add_elem(ui_elem_type_t type, const char *label, double *zone, float init, float min, float max, float step) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; elems[nelems].type = type; elems[nelems].label = label; elems[nelems].zone = zone; elems[nelems].ref = NULL; elems[nelems].init = init; elems[nelems].min = min; elems[nelems].max = max; elems[nelems].step = step; nelems++; } inline void PureUI::add_elem(ui_elem_type_t type, const char *label, double *zone, float min, float max) { ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); if (elems1) elems = elems1; else return; elems[nelems].type = type; elems[nelems].label = label; elems[nelems].zone = zone; elems[nelems].ref = NULL; elems[nelems].init = 0.0; elems[nelems].min = min; elems[nelems].max = max; elems[nelems].step = 0.0; nelems++; } void PureUI::addButton(const char* label, double* zone) { add_elem(UI_BUTTON, label, zone); } void PureUI::addToggleButton(const char* label, double* zone) { add_elem(UI_TOGGLE_BUTTON, label, zone); } void PureUI::addCheckButton(const char* label, double* zone) { add_elem(UI_CHECK_BUTTON, label, zone); } void PureUI::addVerticalSlider(const char* label, double* zone, float init, float min, float max, float step) { add_elem(UI_V_SLIDER, label, zone, init, min, max, step); } void PureUI::addHorizontalSlider(const char* label, double* zone, float init, float min, float max, float step) { add_elem(UI_H_SLIDER, label, zone, init, min, max, step); } void PureUI::addNumEntry(const char* label, double* zone, float init, float min, float max, float step) { add_elem(UI_NUM_ENTRY, label, zone, init, min, max, step); } // FIXME: addNumDisplay and addTextDisplay not implemented in Faust yet? void PureUI::addNumDisplay(const char* label, double* zone, int precision) {} void PureUI::addTextDisplay(const char* label, double* zone, char* names[], float min, float max) {} void PureUI::addHorizontalBargraph(const char* label, double* zone, float min, float max) { add_elem(UI_H_BARGRAPH, label, zone, min, max); } void PureUI::addVerticalBargraph(const char* label, double* zone, float min, float max) { add_elem(UI_V_BARGRAPH, label, zone, min, max); } void PureUI::openFrameBox(const char* label) {} void PureUI::openTabBox(const char* label) { add_elem(UI_T_GROUP, label); } void PureUI::openHorizontalBox(const char* label) { add_elem(UI_H_GROUP, label); } void PureUI::openVerticalBox(const char* label) { add_elem(UI_V_GROUP, label); } void PureUI::closeBox() { add_elem(UI_END_GROUP); } void PureUI::run() {} /****************************************************************************** ******************************************************************************* FAUST DSP ******************************************************************************* *******************************************************************************/ //---------------------------------------------------------------- // abstract definition of a signal processor //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: // internal freelist for custom voice allocation dsp *prev, *next; dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, double** inputs, double** outputs) = 0; }; //---------------------------------------------------------------------------- // FAUST generated signal processor //---------------------------------------------------------------------------- /* Define FAUSTFLOAT so that audio buffers and control values are always represented as double pointers. This probably requires a recent Faust version (0.9.9.6 or later should be ok). */ #define FAUSTFLOAT double <> #include // Define this to get some debugging output. //#define DEBUG #ifdef DEBUG #include #define FAUST_CN "mydsp" #endif /* Dynamic voice allocation. We go to some lengths here to make this as realtime-friendly as possible. The idea is that we keep a pool of allocated mydsp instances. When a dsp is freed with deldsp(), it's in fact never deleted, but put at the end of a freelist from where it may eventually be reused by a subsequent call to newdsp(). By these means, the number of actual calls to malloc() can be kept to a minimum. In addition, a small number of voices are preallocated in static memory (1 by default in the present implementation, but you can set this at compile time by redefining the NVOICES constant accordingly). If you choose a suitable NVOICES value, chances are that your application may never need to allocate dsp instances on the heap at all. Also, even if dsp instances have to be created dynamically, they are allocated in chunks of NVOICES units, in order to reduce the calls to malloc(). Thus we generally recommend to set NVOICES to a value >1 which best suits your application. */ #ifndef NVOICES #define NVOICES 1 #endif // Make sure that NVOICES is at least 1. #if NVOICES<1 #undefine NVOICES #define NVOICES 1 #endif struct dspmem_t { char x[sizeof(mydsp)]; }; struct mem_t { dspmem_t mem[NVOICES]; mem_t *next; }; // statically and dynamically allocated dsp instances static mem_t mem0, *mem; // beginning and end of the freelist static mydsp *first, *last; /* This is supposed to be executed when the module gets unloaded. You'll need a recent gcc version (or compatible) to make this work. */ void __attribute__ ((destructor)) mydsp_fini(void) { if (!mem) return; mem = mem->next; while (mem) { mem_t *mem1 = mem->next; free(mem); mem = mem1; } } /* The class factory, used to create and destroy mydsp objects in the client. This is implemented using C linkage to facilitate dlopen access. */ #include extern "C" mydsp *newdsp() { if (!mem) { mem = &mem0; mem->next = 0; // initialize the freelist with the statically allocated voices mydsp *prev = 0, *next = (mydsp*)&mem->mem[0]; first = next; for (int i = 0; i < NVOICES; i++) { void *p = &mem->mem[i]; mydsp *d = new(p) mydsp; d->prev = prev; prev = d; d->next = ++next; } last = prev; last->next = 0; #ifdef DEBUG fprintf(stderr, ">>> %s: preallocated %d voices\n", FAUST_CN, NVOICES); #endif } assert(mem); if (!first) { // allocate a new chunk of voices and add them to the freelist mem_t *block = (mem_t*)calloc(1, sizeof(mem_t)); block->next = mem->next; mem->next = block; mydsp *prev = 0, *next = (mydsp*)&block->mem[0]; first = next; for (int i = 0; i < NVOICES; i++) { void *p = &block->mem[i];; mydsp *d = new(p) mydsp; d->prev = prev; prev = d; d->next = ++next; } last = prev; last->next = 0; #ifdef DEBUG fprintf(stderr, ">>> %s: allocated %d voices\n", FAUST_CN, NVOICES); #endif } assert(first && last); mydsp *d = first; if (first == last) { // freelist is now empty first = last = 0; } else { // remove d from the freelist first = (mydsp*)first->next; } d->prev = d->next = 0; #ifdef DEBUG fprintf(stderr, ">>> %s: allocating instance %p\n", FAUST_CN, d); #endif return d; } extern "C" void deldsp(mydsp* d) { #ifdef DEBUG fprintf(stderr, ">>> %s: freeing instance %p\n", FAUST_CN, d); #endif // add d to the freelist assert(!d->prev && !d->next); if (last) { last->next = d; d->prev = last; last = d; } else first = last = d; } extern "C" Meta *newmeta() { Meta *m = new Meta; mydsp::metadata(m); return m; } extern "C" void delmeta(Meta* m) { delete m; } faust-0.9.46/architecture/ca-qt.cpp0000644000175000017500000000753011702130733017045 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include "gui/FUI.h" #include "gui/faustqt.h" #include "misc.h" #include "audio/coreaudio-dsp.h" #ifdef OSCCTRL #include "gui/OSCUI.h" #endif /**************************BEGIN USER SECTION **************************/ /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; list GUI::fGuiList; /****************************************************************************** ******************************************************************************* MAIN PLAY THREAD ******************************************************************************* *******************************************************************************/ int main(int argc, char *argv[]) { char name[256]; char rcfilename[256]; char* home = getenv("HOME"); snprintf(name, 255, "%s", basename(argv[0])); snprintf(rcfilename, 255, "%s/.%src", home, basename(argv[0])); long srate = (long)lopt(argv, "--frequency", 44100); int fpb = lopt(argv, "--buffer", 512); GUI* interface = new QTGUI(argc, argv); DSP.buildUserInterface(interface); FUI* finterface = new FUI(); DSP.buildUserInterface(finterface); #ifdef OSCCTRL GUI* oscinterface = new OSCUI(name, argc, argv); DSP.buildUserInterface(oscinterface); #endif coreaudio audio(srate, fpb); audio.init(name, &DSP); finterface->recallState(rcfilename); audio.start(); #ifdef OSCCTRL oscinterface->run(); #endif interface->run(); audio.stop(); finterface->saveState(rcfilename); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/mathdoctexts-it.txt0000644000175000017500000001125211702130733021212 0ustar orlareyorlarey// Testi standard per opzione di documentazione del compilatore Faust. // Copyright (C) 2009 GRAME, Centre National de Creation Musicale // Karim Barkati // Note: // sono usate le doppie virgolette per visualizzare spazi e tabulazioni // all'inizio o alla fine delle stringhe. // Sezione Metadati. :name "nome" :author "autore" :copyright "copyright" :license "licenza" :version "versione" // Sezione Note. :compilstamp1 "Documentazione generata con il compilatore Faust versione " :compilstamp2 ", on " :compilstamp3 "." :causality "$\forall \, s(t) \in \mathbb{S}$, $s(t\!<\!0) = 0$." :svgdir "Eventuali sotto-diagrammi a blocchi possono essere trovati nella sotto-cartella "svg" (solo i diagrammi di piu' alto livello sono rappresentati in questa documentazione)." :nameconflicts "Attenzione: nomi simbolici eventualmente usati all'interno di diagrammi a blocchi NON hanno relazione diretta con i nomi dei segnali usati nelle formule ("$x(t)$", "$y(t)$", ...). Inoltre, il calcolo puo' essere semplificato e riorganizzato." :fsamp "$f_S$ e' la frequenza di campionamento." :foreignfun "Il prefisso "ff" nel nome di alcune funzioni sta per "foreign function" del C++." :cdot "L'operatore punto "$\cdot$" rappresenta la moltiplicazione nelle formule." :intcast "$\forall \, x \in \mathbb{R}$, " " \begin{displaymath}" " \mathrm{int}(x) =" " \left\{\begin{array}{cl}" " \lfloor x \rfloor & \mbox{if \,} x > 0 \\" " \lceil x \rceil & \mbox{if \,} x < 0 \\" " 0 & \mbox{if \,} x = 0 \\" " \end{array}\right.." " \end{displaymath}" :intplus "L'operatore piu' cerchiato "$\oplus$" rappresenta una addizione tra interi." :intminus "L'operatore meno cerchiato "$\ominus$" rappresenta una sottrazione tra interi." :intmult "L'operatore punto cerchiato "$\odot$" rappresenta una moltiplicazione tra interi." :intdiv "L'operatore barra cerchiato "$\oslash$" rappresenta una divisione tra interi." :inputsig "$x(t)$ rappresenta un segnale di ingresso." :inputsigs "$x_i(t)$ rappresentano segnali di ingresso multipli." :outputsig "$y(t)$ rappresenta un segnale di uscita." :outputsigs "$y_i(t)$ rappresentano segnali di uscita multipli." :constsigs "$k_i$ rappresentano segnali costanti." :paramsigs "$p_i(t)$ rappresentano dei segnali di parametro (alla frequenza del blocco)." :storedsigs "$s_i(t)$ rappresentano dei segnali memorizzati (alla frequenza di campionamento)." :buttonsigs "${u_b}_i(t)$ rappresentano i segnali dell'interfaccia utente per i bottoni." :checkboxsigs "${u_c}_i(t)$ rappresentano i segnali dell'interfaccia utente per le caselle di spunta." :slidersigs "${u_s}_i(t)$ rappresentano i segnali dell'interfaccia utente per i cursori." :nentrysigs "${u_n}_i(t)$ rappresentano i segnali dell'interfaccia utente per gli input numerici." :tablesigs "$v_i(t)$ e $w_i(t)$ rappresentano tabelle di segnale ($i(t)$ per le indici)." :recursigs "$r_i(t)$ rappresentano segnali ricorsivi (ritardati di $r_i(t\!-\!d)$)." :prefixsigs "$m_i(t)$ rappresentano segnali ritardati con prefisso." :selectionsig "$q_i(t)$ rappresenta un segnali di selezione." :selectionsigs "$q_i(t)$ rappresentano segnali di selezione." // Sezione di Auto-documentazione. :autoeqntitle "\section{Equazioni del processo}" :autoeqntext "Questo programma chiama \emph{process}, segue la relativa descrizione matematica:" :autodgmtitle "\section{Diagramma a blocchi del processo}" :autodgmtext "Il diagramma a blocchi di \emph{process} e' mostrato nella figura \ref{figure1}." :autontctitle "\section{Informazioni sulla documentazione}" :autontctext "Prestare attenzione ad alcune informazioni e convenzioni di nomenclatura usate nella presente documentazione." :autolsttitle1 "\section{Listato completo del codice in ingresso}" :autolsttext1 "Il seguente listato mostra il codice sorgente, in linguaggio Faust, usato per compilare la presente documentazione." :autolsttitle2 "\section{Listati completi del codice in ingresso}" :autolsttext2 "Il seguenti listati mostrano il codice sorgente, in linguaggio Faust, usato per compilare la presente documentazione." // Titoli per ogni tipo di formula. :inputsigtitle1 "Segnale di ingresso" :inputsigtitle2 "Segnali di ingresso" :outputsigtitle1 "Segnale di uscita" :outputsigtitle2 "Segnali di uscita" :constsigtitle1 "Segnale costante" :constsigtitle2 "Segnali costanti" :uisigtitle1 "Elemento dell'interfaccia utente" :uisigtitle2 "Elementi dell'interfaccia utente" :paramsigtitle1 "Segnale parametro" :paramsigtitle2 "Segnali parametro" :internalsigtitle1 "Segnale interno" :internalsigtitle2 "Segnali interni" :lateqcomment "% Insieme di formule di Faust (corrispondenti all'identificqtivo di )." :emptyformulafield "vuoto" :defaultvalue "valore standard" faust-0.9.46/architecture/synthfile.cpp0000644000175000017500000003134211702130733020043 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include // g++ -O3 -lm -lsynthfile myfx.cpp using namespace std; struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; #define max(x,y) (((x)>(y)) ? (x) : (y)) #define min(x,y) (((x)<(y)) ? (x) : (y)) // abs is now predefined //template T abs (T a) { return (a> n); } /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ <> /****************************************************************************** ******************************************************************************* USER INTERFACE ******************************************************************************* *******************************************************************************/ class UI { bool fStopped; public: UI() : fStopped(false) {} virtual ~UI() {} // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; // -- frames and labels virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void show() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; struct param { float* fZone; float fMin; float fMax; param(float* z, float init, float a, float b) : fZone(z), fMin(a), fMax(b) { *z = init; } }; class CMDUI : public UI { int fArgc; char** fArgv; char* fOutFile; long fNumframes; stack fPrefix; map fKeyParam; void openAnyBox(const char* label) { string prefix; if (label && label[0]) { prefix = fPrefix.top() + "-" + label; } else { prefix = fPrefix.top(); } fPrefix.push(prefix); } string simplify(const string& src) { int i=0; int level=0; string dst; while (src[i] ) { switch (level) { case 0 : case 1 : case 2 : // Skip the begin of the label "--foo-" // until 3 '-' have been read if (src[i]=='-') { level++; } break; case 3 : // copy the content, but skip non alphnum // and content in parenthesis switch (src[i]) { case '(' : case '[' : level++; break; case '-' : dst += '-'; break; default : if (isalnum(src[i])) { dst+= tolower(src[i]); } } break; default : // here we are inside parenthesis and // we skip the content until we are back to // level 3 switch (src[i]) { case '(' : case '[' : level++; break; case ')' : case ']' : level--; break; default : break; } } i++; } return dst; } public: CMDUI(int argc, char *argv[]) : UI(), fArgc(argc), fArgv(argv), fNumframes(44100), fOutFile("out.wav") { fPrefix.push("-"); } virtual ~CMDUI() {} void addOption(const char* label, float* zone, float init, float min, float max) { string fullname = "-" + simplify(fPrefix.top() + "-" + label); fKeyParam.insert(make_pair(fullname, param(zone, init, min, max))); } virtual void addButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addToggleButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addCheckButton(const char* label, float* zone) { addOption(label,zone,0,0,1); } virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { addOption(label,zone,init,min,max); } // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) {} virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) {} virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) {} virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) {} virtual void openFrameBox(const char* label) { openAnyBox(label); } virtual void openTabBox(const char* label) { openAnyBox(label); } virtual void openHorizontalBox(const char* label) { openAnyBox(label); } virtual void openVerticalBox(const char* label) { openAnyBox(label); } virtual void closeBox() { fPrefix.pop(); } virtual void show() {} virtual void run() {} void printhelp() { cerr << "usage: " << fArgv[0] << " [options]" << endl; cerr << " [options]: " << endl; cerr << " samples: number of samples to generate, default is 44100 (1 second of sound)" << endl; cerr << " -o outfile: name of the output file, default is 'out.wav'" << endl; if (fKeyParam.size()) { map::iterator i; cerr << " [faust module options]: \n"; for (i = fKeyParam.begin(); i != fKeyParam.end(); i++) { cout << " " << i->first << " [" << i->second.fMin << ".." << i->second.fMax <<" ] \n"; } } exit(1); } void process_command() { map::iterator p; for (int i = 1; i < fArgc; i++) { if (fArgv[i][0] == '-') { if ( (strcmp(fArgv[i], "-help") == 0) || (strcmp(fArgv[i], "-h") == 0) || (strcmp(fArgv[i], "--help") == 0) ) { printhelp(); } if (strcmp(fArgv[i], "-o") == 0) { fOutFile = fArgv[i+1]; } else { p = fKeyParam.find(fArgv[i]); if (p == fKeyParam.end()) { cout << fArgv[0] << ": unrecognized option " << fArgv[i] << "\n"; printhelp(); } *(p->second.fZone) = float(strtod(fArgv[i+1], NULL)); } i++; } else { fNumframes = strtol(fArgv[i], NULL, 10); if (fNumframes <= 0 ) printhelp(); } } } char* output_file() { return fOutFile; } long num_frames() { return fNumframes; } void process_init() { map::iterator p; for (int i = 1; i < fArgc; i++) { if (fArgv[i][0] == '-') { p = fKeyParam.find(fArgv[i]); if (p != fKeyParam.end()) { *(p->second.fZone) = float(strtod(fArgv[i+1], NULL)); i++; } } } } }; //---------------------------------------------------------------- // d�inition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; virtual void conclude() {} }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; class Interleaver { int fNumFrames; int fNumInputs; int fNumOutputs; float* fInputs[256]; float* fOutput; public: Interleaver(int numFrames, int numInputs, int numOutputs) { fNumFrames = numFrames; fNumInputs = max(numInputs, numOutputs); fNumOutputs = numOutputs; // allocate separate input channels for (int i = 0; i < fNumInputs; i++) { fInputs[i] = (float*) calloc (fNumFrames, sizeof(float)); } // allocate interleaved output channel fOutput = (float*) calloc(fNumFrames*fNumOutputs, sizeof(float)); } ~Interleaver() { // free separate input channels for (int i = 0; i < fNumInputs; i++) { free(fInputs[i]); } // free interleaved output channel free(fOutput); } float** inputs() { return fInputs; } float* output() { return fOutput; } void interleave() { for (int s = 0; s < fNumFrames; s++) { for (int c = 0; c < fNumOutputs; c++) { fOutput[c + s*fNumOutputs] = fInputs[c][s]; } } } }; #define kFrames 512 #define kSampleRate 44100 int main(int argc, char *argv[] ) { CMDUI* interface = new CMDUI(argc, argv); DSP.buildUserInterface(interface); interface->process_command(); // open output file SNDFILE* out_sf; SF_INFO out_info = { interface->num_frames(), kSampleRate, DSP.getNumOutputs(), SF_FORMAT_WAV|SF_FORMAT_PCM_16|SF_ENDIAN_LITTLE, 0, 0}; out_sf = sf_open(interface->output_file(), SFM_WRITE, &out_info); if (out_sf == NULL) { cerr << "Error: "; sf_perror(out_sf); exit(1); } // create interleaver Interleaver ilv (kFrames, DSP.getNumOutputs(), DSP.getNumOutputs()); // init signal processor DSP.init(kSampleRate); interface->process_init(); // process all samples int frames = interface->num_frames(); int nbf; do { if (frames > kFrames) { nbf = kFrames; frames -= kFrames; } else { nbf = frames; frames = 0; } DSP.compute(nbf, 0, ilv.inputs()); ilv.interleave(); sf_writef_float(out_sf, ilv.output(), nbf); } while (nbf); sf_close(out_sf); } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/architecture/oss-gtk.cpp0000644000175000017500000014644211702130733017435 0ustar orlareyorlarey/************************************************************************ IMPORTANT NOTE : this file contains two clearly delimited sections : the ARCHITECTURE section (in two parts) and the USER section. Each section is governed by its own copyright and license. Please check individually each section for license and copyright information. *************************************************************************/ /*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ /************************************************************************ FAUST Architecture File Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; If not, see . EXCEPTION : As a special exception, you may create a larger work that contains this FAUST architecture section and distribute that work under terms of your choice, so long as this FAUST architecture section is not modified. ************************************************************************ ************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; struct Meta : map { void declare (const char* key, const char* value) { (*this)[key]=value; } }; // g++ -O3 -lm -lpthread `gtk-config --cflags --libs` ex2.cpp // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) // flags to avoid costly denormals #ifdef __SSE__ #include #ifdef __SSE2__ #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) #else #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) #endif #else #define AVOIDDENORMALS #endif //#define BENCHMARKMODE //------------------------------------------------------------------- // Generic min and max using c++ inline //------------------------------------------------------------------- inline int max (unsigned int a, unsigned int b) { return (a>b) ? a : b; } inline int max (int a, int b) { return (a>b) ? a : b; } inline long max (long a, long b) { return (a>b) ? a : b; } inline long max (int a, long b) { return (a>b) ? a : b; } inline long max (long a, int b) { return (a>b) ? a : b; } inline float max (float a, float b) { return (a>b) ? a : b; } inline float max (int a, float b) { return (a>b) ? a : b; } inline float max (float a, int b) { return (a>b) ? a : b; } inline float max (long a, float b) { return (a>b) ? a : b; } inline float max (float a, long b) { return (a>b) ? a : b; } inline double max (double a, double b) { return (a>b) ? a : b; } inline double max (int a, double b) { return (a>b) ? a : b; } inline double max (double a, int b) { return (a>b) ? a : b; } inline double max (long a, double b) { return (a>b) ? a : b; } inline double max (double a, long b) { return (a>b) ? a : b; } inline double max (float a, double b) { return (a>b) ? a : b; } inline double max (double a, float b) { return (a>b) ? a : b; } inline int min (int a, int b) { return (a> n); } inline int int2pow2 (int x) { int r=0; while ((1<pw_uid); param.sched_priority = 50; /* 0 to 99 */ err = sched_setscheduler(0, SCHED_RR, ¶m); setuid (uid); if (err != -1) { printf("OK : Running with realtime priority\n"); } else { printf("Warning : running with non-realtime priority\n"); } } /****************************************************************************** ******************************************************************************* VECTOR INTRINSICS ******************************************************************************* *******************************************************************************/ //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((unsigned)(calloc((nmemb*size)+15,sizeof(char)))+15 & 0xfffffff0); } //inline void *aligned_calloc(size_t nmemb, size_t size) { return (void*)((size_t)(calloc((nmemb*size)+15,sizeof(char)))+15 & ~15); } <> #ifdef BENCHMARKMODE // mesuring jack performances static __inline__ unsigned long long int rdtsc(void) { unsigned long long int x; __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); return x; } #define KSKIP 10 #define KMESURE 1024 int mesure = 0; unsigned long long int starts[KMESURE]; unsigned long long int stops [KMESURE]; #define STARTMESURE starts[mesure%KMESURE] = rdtsc(); #define STOPMESURE stops[mesure%KMESURE] = rdtsc(); mesure = mesure+1; void printstats() { unsigned long long int low, hi, tot; low = hi = tot = (stops[KSKIP] - starts[KSKIP]); if (mesure < KMESURE) { for (int i = KSKIP+1; ihi) hi = m; tot += m; } cout << low << ' ' << tot/(mesure-KSKIP) << ' ' << hi << endl; } else { for (int i = KSKIP+1; ihi) hi = m; tot += m; } cout << low << ' ' << tot/(KMESURE-KSKIP) << ' ' << hi << endl; } } #else #define STARTMESURE #define STOPMESURE #endif /****************************************************************************** ******************************************************************************* AUDIO INTERFACE ******************************************************************************* *******************************************************************************/ enum { kRead = 1, kWrite = 2, kReadWrite = 3 }; // AudioParam : a convenient class to pass parameters to the AudioInterface struct AudioParam { const char* fDeviceName; int fSamplingFrequency; int fRWMode; int fSampleFormat; int fFramesPerBuffer; AudioParam() : fDeviceName("/dev/dsp"), fSamplingFrequency(44100), fRWMode(kReadWrite), fSampleFormat(AFMT_S16_LE), fFramesPerBuffer(512) {} AudioParam& device(const char * n) { fDeviceName = n; return *this; } AudioParam& frequency(int f) { fSamplingFrequency = f; return *this; } AudioParam& mode(int m) { fRWMode = m; return *this; } AudioParam& format(int f) { fSampleFormat = f; return *this; } AudioParam& buffering(int fpb) { fFramesPerBuffer = fpb; return *this; } }; class AudioInterface { private : AudioParam fParam; int fOutputDevice ; int fInputDevice ; int fNumOfOutputChannels; int fNumOfInputChannels; int fInputBufferSize; short* fInputBuffer; int fOutputBufferSize; short* fOutputBuffer; public : const char* getDeviceName() { return fParam.fDeviceName; } int getSamplingFrequency() { return fParam.fSamplingFrequency; } int getRWMode() { return fParam.fRWMode; } int getSampleFormat() { return fParam.fSampleFormat; } int getFramesPerBuffer() { return fParam.fFramesPerBuffer; } int getNumOutputs() { return fNumOfOutputChannels; } int getNumInputs() { return fNumOfInputChannels; } int getInputBufferSize() { return fInputBufferSize; } int getOutputBufferSize() { return fOutputBufferSize; } AudioInterface(const AudioParam& ap = AudioParam()) : fParam(ap) { fOutputDevice = -1; fInputDevice = -1; fNumOfOutputChannels = 0; fNumOfInputChannels = 0; fInputBufferSize = 0; fInputBuffer = 0; fOutputBufferSize = 0; fOutputBuffer = 0; } void openInputAudioDev () { assert( (fInputDevice = ::open(fParam.fDeviceName, O_RDONLY, 0)) > 0); assert( ioctl(fInputDevice, SNDCTL_DSP_SETFMT, &fParam.fSampleFormat) != -1); assert( ioctl(fInputDevice, SNDCTL_DSP_CHANNELS, &fNumOfInputChannels) != -1); assert( ioctl(fInputDevice, SNDCTL_DSP_SPEED, &fParam.fSamplingFrequency) != -1); int gFragFormat = (1 << 16) + int2pow2(fParam.fFramesPerBuffer * 2 * fNumOfInputChannels); assert( ioctl(fInputDevice, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) != -1); fInputBufferSize = 0; assert( ioctl(fInputDevice, SNDCTL_DSP_GETBLKSIZE, &fInputBufferSize) != -1); assert( fInputBufferSize == fParam.fFramesPerBuffer * 2 * fNumOfInputChannels ); fInputBuffer = (short*) calloc(fInputBufferSize, 1); } void openOutputAudioDev () { assert( (fOutputDevice = ::open(fParam.fDeviceName, O_WRONLY, 0)) > 0); assert( ioctl(fOutputDevice, SNDCTL_DSP_SETFMT, &fParam.fSampleFormat) != -1); assert( ioctl(fOutputDevice, SNDCTL_DSP_CHANNELS,&fNumOfOutputChannels)!= -1); assert( ioctl(fOutputDevice, SNDCTL_DSP_SPEED, &fParam.fSamplingFrequency) != -1); int gFragFormat = (1 << 16) + int2pow2(fParam.fFramesPerBuffer * 2 * fNumOfOutputChannels); assert( ioctl(fOutputDevice, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) != -1); fOutputBufferSize = 0; assert( ioctl(fOutputDevice, SNDCTL_DSP_GETBLKSIZE, &fOutputBufferSize) != -1); assert( fOutputBufferSize == fParam.fFramesPerBuffer * 2 * fNumOfOutputChannels ); fOutputBuffer = (short*)calloc(fOutputBufferSize, 1); } void open() { if (fParam.fRWMode & kRead) openInputAudioDev(); if (fParam.fRWMode & kWrite) openOutputAudioDev(); } void close() { if (fParam.fRWMode & kRead) ::close(fOutputDevice); if (fParam.fRWMode & kWrite) ::close(fInputDevice); } //---------------------------------------------------------------- // allocChanGroup() : allocate a group of audio buffers // chan[] : is an array of buffer pointers // n : is the number of buffers to allocate // len : is the length of each buffer //---------------------------------------------------------------- void allocChanGroup(float* chan[], int n, int len) { for (int c = 0; c < n; c++) { chan[c] = (float*) calloc (len, sizeof(float)); } } //---------------------------------------------------------------- // info() : print information on the audio device //---------------------------------------------------------------- void info() { audio_buf_info info; int cap; printf("Audio Interface Description :\n"); printf("Sampling Frequency : %d, Sample Format : %d, Mode : %d\n", getSamplingFrequency(), getSampleFormat(), getRWMode()); if (getRWMode() & kWrite) { assert( ioctl(fOutputDevice, SNDCTL_DSP_GETOSPACE, &info) != -1); printf("output space info: fragments=%d, fragstotal=%d, fragsize=%d, bytes=%d\n", info.fragments, info.fragstotal, info.fragsize, info.bytes); assert( ioctl(fOutputDevice,SNDCTL_DSP_GETCAPS, &cap) != -1); printf("Output capabilities - %d channels : ", fNumOfOutputChannels); if (cap & DSP_CAP_DUPLEX) printf(" DSP_CAP_DUPLEX"); if (cap & DSP_CAP_REALTIME) printf(" DSP_CAP_REALTIME"); if (cap & DSP_CAP_DUPLEX) printf(" DSP_CAP_DUPLEX"); if (cap & DSP_CAP_BATCH) printf(" DSP_CAP_BATCH"); if (cap & DSP_CAP_COPROC) printf(" DSP_CAP_COPROC"); if (cap & DSP_CAP_TRIGGER) printf(" DSP_CAP_TRIGGER"); if (cap & DSP_CAP_MMAP) printf(" DSP_CAP_MMAP"); if (cap & DSP_CAP_MULTI) printf(" DSP_CAP_MULTI"); if (cap & DSP_CAP_BIND) printf(" DSP_CAP_BIND"); printf("\n"); printf("Output block size = %d\n", fOutputBufferSize); } if (getRWMode() & kRead) { assert( ioctl(fInputDevice, SNDCTL_DSP_GETISPACE, &info) != -1); printf("input space info: fragments=%d, fragstotal=%d, fragsize=%d, bytes=%d\n", info.fragments, info.fragstotal, info.fragsize, info.bytes); assert( ioctl(fInputDevice,SNDCTL_DSP_GETCAPS, &cap) != -1); printf("Input capabilities - %d channels : ", fNumOfInputChannels); if (cap & DSP_CAP_DUPLEX) printf(" DSP_CAP_DUPLEX"); if (cap & DSP_CAP_REALTIME) printf(" DSP_CAP_REALTIME"); if (cap & DSP_CAP_DUPLEX) printf(" DSP_CAP_DUPLEX"); if (cap & DSP_CAP_BATCH) printf(" DSP_CAP_BATCH"); if (cap & DSP_CAP_COPROC) printf(" DSP_CAP_COPROC"); if (cap & DSP_CAP_TRIGGER) printf(" DSP_CAP_TRIGGER"); if (cap & DSP_CAP_MMAP) printf(" DSP_CAP_MMAP"); if (cap & DSP_CAP_MULTI) printf(" DSP_CAP_MULTI"); if (cap & DSP_CAP_BIND) printf(" DSP_CAP_BIND"); printf("\n"); printf("Input block size = %d\n", fInputBufferSize); } } //---------------------------------------------------------------- // read() : read //---------------------------------------------------------------- bool read(int frames, float* channel[]) { int bytes = frames * 2 * fNumOfInputChannels; assert(bytes <= fInputBufferSize); int count = ::read(fInputDevice, fInputBuffer, bytes); //assert (bytes == count); for (int s = 0; s < frames; s++) { for (int c = 0; c < fNumOfInputChannels; c++) { channel[c][s] = float(fInputBuffer[c + s*fNumOfInputChannels])*(1.0/float(SHRT_MAX)); } } return bytes == count; } bool write(int frames, float* channel[]) { int bytes = frames * 2 * fNumOfOutputChannels; assert(bytes <= fOutputBufferSize); for (int f = 0; f < frames; f++) { for (int c = 0; c < fNumOfOutputChannels; c++) { float x = channel[c][f]; fOutputBuffer[c + f*fNumOfOutputChannels] = short( max(min(x,1.0),-1.0) * float(SHRT_MAX) ) ; } } int count = ::write(fOutputDevice, fOutputBuffer, bytes); assert (bytes == count); return bytes == count; } }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) abstract interfaces ******************************************************************************* *******************************************************************************/ #include #include using namespace std; struct uiItem; typedef void (*uiCallback)(float val, void* data); /** * Graphic User Interface : abstract definition */ class UI { typedef list clist; typedef map zmap; private: static list fGuiList; zmap fZoneMap; bool fStopped; public: UI() : fStopped(false) { fGuiList.push_back(this); } virtual ~UI() { // suppression de this dans fGuiList } // -- registerZone(z,c) : zone management void registerZone(float* z, uiItem* c) { if (fZoneMap.find(z) == fZoneMap.end()) fZoneMap[z] = new clist(); fZoneMap[z]->push_back(c); } // -- saveState(filename) : save the value of every zone to a file void saveState(char* filename) { ofstream f(filename); for (zmap::iterator i=fZoneMap.begin(); i!=fZoneMap.end(); i++) { f << *(i->first) << ' '; } f << endl; f.close(); } // -- recallState(filename) : load the value of every zone from a file void recallState(char* filename) { ifstream f(filename); if (f.good()) { for (zmap::iterator i=fZoneMap.begin(); i!=fZoneMap.end(); i++) { f >> *(i->first); } } f.close(); } void updateAllZones(); void updateZone(float* z); static void updateAllGuis() { list::iterator g; for (g = fGuiList.begin(); g != fGuiList.end(); g++) { (*g)->updateAllZones(); } } // -- active widgets virtual void addButton(const char* label, float* zone) = 0; virtual void addToggleButton(const char* label, float* zone) = 0; virtual void addCheckButton(const char* label, float* zone) = 0; virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; // -- passive widgets virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max) = 0; virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; void addCallback(float* zone, uiCallback foo, void* data); // -- widget's layouts virtual void openFrameBox(const char* label) = 0; virtual void openTabBox(const char* label) = 0; virtual void openHorizontalBox(const char* label) = 0; virtual void openVerticalBox(const char* label) = 0; virtual void closeBox() = 0; virtual void show() = 0; virtual void run() = 0; void stop() { fStopped = true; } bool stopped() { return fStopped; } virtual void declare(float* zone, const char* key, const char* value) {} }; /** * User Interface Item: abstract definition */ class uiItem { protected : UI* fGUI; float* fZone; float fCache; uiItem (UI* ui, float* zone) : fGUI(ui), fZone(zone), fCache(-123456.654321) { ui->registerZone(zone, this); } public : virtual ~uiItem() {} void modifyZone(float v) { fCache = v; if (*fZone != v) { *fZone = v; fGUI->updateZone(fZone); } } float cache() { return fCache; } virtual void reflectZone() = 0; }; /** * Callback Item */ struct uiCallbackItem : public uiItem { uiCallback fCallback; void* fData; uiCallbackItem(UI* ui, float* zone, uiCallback foo, void* data) : uiItem(ui, zone), fCallback(foo), fData(data) {} virtual void reflectZone() { float v = *fZone; fCache = v; fCallback(v, fData); } }; // en cours d'installation de call back. a finir!!!!! /** * Update all user items reflecting zone z */ inline void UI::updateZone(float* z) { float v = *z; clist* l = fZoneMap[z]; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } /** * Update all user items not up to date */ inline void UI::updateAllZones() { for (zmap::iterator m = fZoneMap.begin(); m != fZoneMap.end(); m++) { float* z = m->first; clist* l = m->second; float v = *z; for (clist::iterator c = l->begin(); c != l->end(); c++) { if ((*c)->cache() != v) (*c)->reflectZone(); } } } inline void UI::addCallback(float* zone, uiCallback foo, void* data) { new uiCallbackItem(this, zone, foo, data); }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE gtk interface ******************************************************************************* *******************************************************************************/ #include #define stackSize 256 // Insertion modes #define kSingleMode 0 #define kBoxMode 1 #define kTabMode 2 /** * rmWhiteSpaces(): Remove the leading and trailing white spaces of a string * (but not those in the middle of the string) */ static string rmWhiteSpaces(const string& s) { size_t i = s.find_first_not_of(" \t"); size_t j = s.find_last_not_of(" \t"); if (i != string::npos & j != string::npos) { return s.substr(i, 1+j-i); } else { return ""; } } /** * Extracts metdata from a label : 'vol [unit: dB]' -> 'vol' + metadata */ static void extractMetadata(const string& fulllabel, string& label, map& metadata) { enum {kLabel, kEscape1, kEscape2, kEscape3, kKey, kValue}; int state = kLabel; int deep = 0; string key, value; for (unsigned int i=0; i < fulllabel.size(); i++) { char c = fulllabel[i]; switch (state) { case kLabel : assert (deep == 0); switch (c) { case '\\' : state = kEscape1; break; case '[' : state = kKey; deep++; break; default : label += c; } break; case kEscape1 : label += c; state = kLabel; break; case kEscape2 : key += c; state = kKey; break; case kEscape3 : value += c; state = kValue; break; case kKey : assert (deep > 0); switch (c) { case '\\' : state = kEscape2; break; case '[' : deep++; key += c; break; case ':' : if (deep == 1) { state = kValue; } else { key += c; } break; case ']' : deep--; if (deep < 1) { metadata[rmWhiteSpaces(key)] = ""; state = kLabel; key=""; value=""; } else { key += c; } break; default : key += c; } break; case kValue : assert (deep > 0); switch (c) { case '\\' : state = kEscape3; break; case '[' : deep++; value += c; break; case ']' : deep--; if (deep < 1) { metadata[rmWhiteSpaces(key)]=rmWhiteSpaces(value); state = kLabel; key=""; value=""; } else { value += c; } break; default : value += c; } break; default : cerr << "ERROR unrecognized state " << state << endl; } } label = rmWhiteSpaces(label); } class GTKUI : public UI { private : static bool fInitialized; static list fGuiList; static map fGuiSize; // map widget zone with widget size coef static map fTooltip; // map widget zone with tooltip strings protected : GtkWidget* fWindow; int fTop; GtkWidget* fBox[stackSize]; int fMode[stackSize]; bool fStopped; GtkWidget* addWidget(const char* label, GtkWidget* w); virtual void pushBox(int mode, GtkWidget* w); public : static const gboolean expand = TRUE; static const gboolean fill = TRUE; static const gboolean homogene = FALSE; GTKUI(char * name, int* pargc, char*** pargv); // -- Labels and metadata virtual void declare (float* zone, const char* key, const char* value); virtual int checkLabelOptions (GtkWidget* widget, const string& fullLabel, string& simplifiedLabel); virtual void checkForTooltip (float* zone, GtkWidget* widget); // -- layout groups virtual void openFrameBox(const char* label); virtual void openTabBox(const char* label = ""); virtual void openHorizontalBox(const char* label = ""); virtual void openVerticalBox(const char* label = ""); // -- extra widget's layouts virtual void openDialogBox(const char* label, float* zone); virtual void openEventBox(const char* label = ""); virtual void openHandleBox(const char* label = ""); virtual void openExpanderBox(const char* label, float* zone); virtual void closeBox(); virtual void adjustStack(int n); // -- active widgets virtual void addButton(const char* label, float* zone); virtual void addToggleButton(const char* label, float* zone); virtual void addCheckButton(const char* label, float* zone); virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); // -- passive display widgets virtual void addNumDisplay(const char* label, float* zone, int precision); virtual void addTextDisplay(const char* label, float* zone, const char* names[], float min, float max); virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); virtual void show(); virtual void run(); }; /****************************************************************************** ******************************************************************************* GRAPHIC USER INTERFACE (v2) gtk implementation ******************************************************************************* *******************************************************************************/ // global static fields list UI::fGuiList; bool GTKUI::fInitialized = false; map GTKUI::fGuiSize; map GTKUI::fTooltip; static gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { return FALSE; } static void destroy_event( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } GTKUI::GTKUI(char * name, int* pargc, char*** pargv) { if (!fInitialized) { gtk_init(pargc, pargv); fInitialized = true; } fWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); //gtk_container_set_border_width (GTK_CONTAINER (fWindow), 10); gtk_window_set_title (GTK_WINDOW (fWindow), name); gtk_signal_connect (GTK_OBJECT (fWindow), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); gtk_signal_connect (GTK_OBJECT (fWindow), "destroy", GTK_SIGNAL_FUNC (destroy_event), NULL); fTop = 0; fBox[fTop] = gtk_vbox_new (homogene, 4); fMode[fTop] = kBoxMode; gtk_container_add (GTK_CONTAINER (fWindow), fBox[fTop]); fStopped = false; } // empilement des boites void GTKUI::pushBox(int mode, GtkWidget* w) { ++fTop; assert(fTop < stackSize); fMode[fTop] = mode; fBox[fTop] = w; } /** * Remove n levels from the stack S before the top level * adjustStack(n): S -> S' with S' = S(0),S(n+1),S(n+2),... */ void GTKUI::adjustStack(int n) { if (n > 0) { assert(fTop >= n); fTop -= n; fMode[fTop] = fMode[fTop+n]; fBox[fTop] = fBox[fTop+n]; } } void GTKUI::closeBox() { --fTop; assert(fTop >= 0); } /** * Analyses the widget zone metadata declarations and takes * appropriate actions */ void GTKUI::declare(float* zone, const char* key, const char* value) { if (strcmp(key,"size")==0) { fGuiSize[zone]=atof(value); } else if (strcmp(key,"tooltip")==0) { fTooltip[zone] = value ; } } /** * Analyses a full label and activates the relevant options. returns a simplified * label (without options) and an amount of stack adjustement (in case additional * containers were pushed on the stack). */ int GTKUI::checkLabelOptions(GtkWidget* widget, const string& fullLabel, string& simplifiedLabel) { map metadata; extractMetadata(fullLabel, simplifiedLabel, metadata); if (metadata.count("tooltip")) { gtk_tooltips_set_tip (gtk_tooltips_new (), widget, metadata["tooltip"].c_str(), NULL); } if (metadata["option"] == "detachable") { openHandleBox(simplifiedLabel.c_str()); return 1; } // no adjustement of the stack needed return 0; } /** * Check if a tooltip is associated to a zone and add it to the corresponding widget */ void GTKUI::checkForTooltip(float* zone, GtkWidget* widget) { if (fTooltip.count(zone)) { gtk_tooltips_set_tip (gtk_tooltips_new (), widget, fTooltip[zone].c_str(), NULL); } } // les differentes boites void GTKUI::openFrameBox(const char* label) { GtkWidget * box = gtk_frame_new (label); //gtk_container_set_border_width (GTK_CONTAINER (box), 10); pushBox(kSingleMode, addWidget(label, box)); } void GTKUI::openTabBox(const char* fullLabel) { string label; GtkWidget* widget = gtk_notebook_new(); int adjust = checkLabelOptions(widget, fullLabel, label); pushBox(kTabMode, addWidget(label.c_str(), widget)); // adjust stack because otherwise Handlebox will remain open adjustStack(adjust); } void GTKUI::openHorizontalBox(const char* fullLabel) { string label; GtkWidget* box = gtk_hbox_new (homogene, 4); int adjust = checkLabelOptions(box, fullLabel, label); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label.c_str(), gtk_frame_new (label.c_str())); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label.c_str(), box)); } // adjust stack because otherwise Handlebox will remain open adjustStack(adjust); } void GTKUI::openVerticalBox(const char* fullLabel) { string label; GtkWidget * box = gtk_vbox_new (homogene, 4); int adjust = checkLabelOptions(box, fullLabel, label); gtk_container_set_border_width (GTK_CONTAINER (box), 10); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label.c_str(), gtk_frame_new (label.c_str())); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label.c_str(), box)); } // adjust stack because otherwise Handlebox will remain open adjustStack(adjust); } void GTKUI::openHandleBox(const char* label) { GtkWidget * box = gtk_hbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 2); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_handle_box_new ()); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } void GTKUI::openEventBox(const char* label) { GtkWidget * box = gtk_hbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 2); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_event_box_new ()); gtk_container_add (GTK_CONTAINER(frame), box); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } struct uiExpanderBox : public uiItem { GtkExpander* fButton; uiExpanderBox(UI* ui, float* zone, GtkExpander* b) : uiItem(ui, zone), fButton(b) {} static void expanded (GtkWidget *widget, gpointer data) { float v = gtk_expander_get_expanded (GTK_EXPANDER(widget)); if (v == 1.000000) { v = 0; } else v = 1; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_expander_set_expanded(GTK_EXPANDER(fButton), v); } }; void GTKUI::openExpanderBox(const char* label, float* zone) { *zone = 0.0; GtkWidget * box = gtk_hbox_new (homogene, 4); gtk_container_set_border_width (GTK_CONTAINER (box), 2); if (fMode[fTop] != kTabMode && label[0] != 0) { GtkWidget * frame = addWidget(label, gtk_expander_new (label)); gtk_container_add (GTK_CONTAINER(frame), box); uiExpanderBox* c = new uiExpanderBox(this, zone, GTK_EXPANDER(frame)); gtk_signal_connect (GTK_OBJECT (frame), "activate", GTK_SIGNAL_FUNC (uiExpanderBox::expanded), (gpointer)c); gtk_widget_show(box); pushBox(kBoxMode, box); } else { pushBox(kBoxMode, addWidget(label, box)); } } GtkWidget* GTKUI::addWidget(const char* label, GtkWidget* w) { switch (fMode[fTop]) { case kSingleMode : gtk_container_add (GTK_CONTAINER(fBox[fTop]), w); break; case kBoxMode : gtk_box_pack_start (GTK_BOX(fBox[fTop]), w, expand, fill, 0); break; case kTabMode : gtk_notebook_append_page (GTK_NOTEBOOK(fBox[fTop]), w, gtk_label_new(label)); break; } gtk_widget_show (w); return w; } // --------------------------- Press button --------------------------- struct uiButton : public uiItem { GtkButton* fButton; uiButton (UI* ui, float* zone, GtkButton* b) : uiItem(ui, zone), fButton(b) {} static void pressed( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(1.0); } static void released( GtkWidget *widget, gpointer data ) { uiItem* c = (uiItem*) data; c->modifyZone(0.0); } virtual void reflectZone() { float v = *fZone; fCache = v; if (v > 0.0) gtk_button_pressed(fButton); else gtk_button_released(fButton); } }; void GTKUI::addButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_button_new_with_label (label); addWidget(label, button); uiButton* c = new uiButton(this, zone, GTK_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "pressed", GTK_SIGNAL_FUNC (uiButton::pressed), (gpointer) c); gtk_signal_connect (GTK_OBJECT (button), "released", GTK_SIGNAL_FUNC (uiButton::released), (gpointer) c); checkForTooltip(zone, button); } // --------------------------- Toggle Buttons --------------------------- struct uiToggleButton : public uiItem { GtkToggleButton* fButton; uiToggleButton(UI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addToggleButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_toggle_button_new_with_label (label); addWidget(label, button); uiToggleButton* c = new uiToggleButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (uiToggleButton::toggled), (gpointer) c); checkForTooltip(zone, button); } void show_dialog(GtkWidget *widget, gpointer data) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget)) == TRUE) { gtk_widget_show(GTK_WIDGET(data)); gint root_x, root_y; gtk_window_get_position (GTK_WINDOW(data), &root_x, &root_y); root_y -= 120; gtk_window_move(GTK_WINDOW(data), root_x, root_y); } else gtk_widget_hide(GTK_WIDGET(data)); } static gboolean deleteevent( GtkWidget *widget, gpointer data ) { return TRUE; } void GTKUI::openDialogBox(const char* label, float* zone) { // create toplevel window and set properties GtkWidget * dialog = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_decorated(GTK_WINDOW(dialog), TRUE); gtk_window_set_deletable(GTK_WINDOW(dialog), FALSE); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_window_set_gravity(GTK_WINDOW(dialog), GDK_GRAVITY_SOUTH); gtk_window_set_transient_for (GTK_WINDOW(dialog), GTK_WINDOW(fWindow)); gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); gtk_window_set_keep_below (GTK_WINDOW(dialog), FALSE); gtk_window_set_title (GTK_WINDOW (dialog), label); g_signal_connect (G_OBJECT (dialog), "delete_event", G_CALLBACK (deleteevent), NULL); gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE); GtkWidget * box = gtk_hbox_new (homogene, 4); *zone = 0.0; GtkWidget* button = gtk_toggle_button_new (); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (show_dialog), (gpointer) dialog); gtk_container_add (GTK_CONTAINER(fBox[fTop]), button); gtk_container_add (GTK_CONTAINER(dialog), box); gtk_widget_show (button); gtk_widget_show(box); pushBox(kBoxMode, box); } // --------------------------- Check Button --------------------------- struct uiCheckButton : public uiItem { GtkToggleButton* fButton; uiCheckButton(UI* ui, float* zone, GtkToggleButton* b) : uiItem(ui, zone), fButton(b) {} static void toggled (GtkWidget *widget, gpointer data) { float v = (GTK_TOGGLE_BUTTON (widget)->active) ? 1.0 : 0.0; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_toggle_button_set_active(fButton, v > 0.0); } }; void GTKUI::addCheckButton(const char* label, float* zone) { *zone = 0.0; GtkWidget* button = gtk_check_button_new_with_label (label); addWidget(label, button); uiCheckButton* c = new uiCheckButton(this, zone, GTK_TOGGLE_BUTTON(button)); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC(uiCheckButton::toggled), (gpointer) c); checkForTooltip(zone, button); } // --------------------------- Adjustmenty based widgets --------------------------- struct uiAdjustment : public uiItem { GtkAdjustment* fAdj; uiAdjustment(UI* ui, float* zone, GtkAdjustment* adj) : uiItem(ui, zone), fAdj(adj) {} static void changed (GtkWidget *widget, gpointer data) { float v = GTK_ADJUSTMENT (widget)->value; ((uiItem*)data)->modifyZone(v); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_adjustment_set_value(fAdj, v); } }; static int precision(double n) { if (n < 0.009999) return 3; else if (n < 0.099999) return 2; else if (n < 0.999999) return 1; else return 0; } // -------------------------- Vertical Slider ----------------------------------- void GTKUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_vscale_new (GTK_ADJUSTMENT(adj)); gtk_range_set_inverted (GTK_RANGE(slider), TRUE); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); float size = 160 * pow(2, fGuiSize[zone]); gtk_widget_set_usize(slider, -1, size); if (label && label[0]!=0) { openFrameBox(label); addWidget(label, slider); closeBox(); } else { addWidget(label, slider); } checkForTooltip(zone, slider); } // -------------------------- Horizontal Slider ----------------------------------- void GTKUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, 0); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* slider = gtk_hscale_new (GTK_ADJUSTMENT(adj)); gtk_scale_set_digits(GTK_SCALE(slider), precision(step)); float size = 160 * pow(2, fGuiSize[zone]); gtk_widget_set_usize(slider, size, -1); if (label && label[0]!=0) { openFrameBox(label); addWidget(label, slider); closeBox(); } else { addWidget(label, slider); } checkForTooltip(zone, slider); } // ------------------------------ Num Entry ----------------------------------- void GTKUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) { *zone = init; GtkObject* adj = gtk_adjustment_new(init, min, max, step, 10*step, step); uiAdjustment* c = new uiAdjustment(this, zone, GTK_ADJUSTMENT(adj)); gtk_signal_connect (GTK_OBJECT (adj), "value-changed", GTK_SIGNAL_FUNC (uiAdjustment::changed), (gpointer) c); GtkWidget* spinner = gtk_spin_button_new (GTK_ADJUSTMENT(adj), 0.005, precision(step)); //gtk_widget_set_usize(slider, 160, -1); openFrameBox(label); addWidget(label, spinner); closeBox(); checkForTooltip(zone, spinner); } // ========================== passive widgets =============================== // ------------------------------ Progress Bar ----------------------------------- struct uiBargraph : public uiItem { GtkProgressBar* fProgressBar; float fMin; float fMax; uiBargraph(UI* ui, float* zone, GtkProgressBar* pbar, float lo, float hi) : uiItem(ui, zone), fProgressBar(pbar), fMin(lo), fMax(hi) {} float scale(float v) { return (v-fMin)/(fMax-fMin); } virtual void reflectZone() { float v = *fZone; fCache = v; gtk_progress_bar_set_fraction(fProgressBar, scale(v)); } }; void GTKUI::addVerticalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_BOTTOM_TO_TOP); gtk_widget_set_size_request(pb, 8, -1); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); checkForTooltip(zone, pb); } void GTKUI::addHorizontalBargraph(const char* label, float* zone, float lo, float hi) { GtkWidget* pb = gtk_progress_bar_new(); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(pb), GTK_PROGRESS_LEFT_TO_RIGHT); gtk_widget_set_size_request(pb, -1, 8); new uiBargraph(this, zone, GTK_PROGRESS_BAR(pb), lo, hi); openFrameBox(label); addWidget(label, pb); closeBox(); checkForTooltip(zone, pb); } // ------------------------------ Num Display ----------------------------------- struct uiNumDisplay : public uiItem { GtkLabel* fLabel; int fPrecision; uiNumDisplay(UI* ui, float* zone, GtkLabel* label, int precision) : uiItem(ui, zone), fLabel(label), fPrecision(precision) {} virtual void reflectZone() { float v = *fZone; fCache = v; char s[64]; if (fPrecision <= 0) { snprintf(s, 63, "%d", int(v)); } else if (fPrecision>3) { snprintf(s, 63, "%f", v); } else { const char* format[] = {"%.1f", "%.2f", "%.3f"}; snprintf(s, 63, format[fPrecision-1], v); } gtk_label_set_text(fLabel, s); } }; void GTKUI::addNumDisplay(const char* label, float* zone, int precision ) { GtkWidget* lw = gtk_label_new(""); new uiNumDisplay(this, zone, GTK_LABEL(lw), precision); openFrameBox(label); addWidget(label, lw); closeBox(); checkForTooltip(zone, lw); } // ------------------------------ Text Display ----------------------------------- struct uiTextDisplay : public uiItem { GtkLabel* fLabel; const char** fNames; float fMin; float fMax; int fNum; uiTextDisplay (UI* ui, float* zone, GtkLabel* label, const char* names[], float lo, float hi) : uiItem(ui, zone), fLabel(label), fNames(names), fMin(lo), fMax(hi) { fNum = 0; while (fNames[fNum] != 0) fNum++; } virtual void reflectZone() { float v = *fZone; fCache = v; int idx = int(fNum*(v-fMin)/(fMax-fMin)); if (idx < 0) idx = 0; else if (idx >= fNum) idx = fNum-1; gtk_label_set_text(fLabel, fNames[idx]); } }; void GTKUI::addTextDisplay(const char* label, float* zone, const char* names[], float lo, float hi ) { GtkWidget* lw = gtk_label_new(""); new uiTextDisplay (this, zone, GTK_LABEL(lw), names, lo, hi); openFrameBox(label); addWidget(label, lw); closeBox(); checkForTooltip(zone, lw); } void GTKUI::show() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); } /** * Update all user items reflecting zone z */ static gboolean callUpdateAllGuis(gpointer) { UI::updateAllGuis(); return TRUE; } void GTKUI::run() { assert(fTop == 0); gtk_widget_show (fBox[0]); gtk_widget_show (fWindow); gtk_timeout_add(40, callUpdateAllGuis, 0); gtk_main (); stop(); } /****************************************************************************** ******************************************************************************* DSP ******************************************************************************* *******************************************************************************/ //--------------------------------------------------- // tableaux de buffers initialis� par allocChannels //--------------------------------------------------- float* gInChannel[256]; float* gOutChannel[256]; void allocChannels (int size, int numInChan, int numOutChan) { assert (numInChan < 256); assert (numOutChan < 256); for (int i = 0; i < numInChan; i++) { gInChannel[i] = (float*) calloc (size, sizeof(float)); for (int j = 0; j < size; j++) { gInChannel[i][j] = 0.0; } } for (int i = 0; i < numOutChan; i++) { gOutChannel[i] = (float*) calloc (size, sizeof(float)); for (int j = 0; j < size; j++) { gOutChannel[i][j] = 0.0; } } } //---------------------------------------------------------------- // d�inition du processeur de signal //---------------------------------------------------------------- class dsp { protected: int fSamplingFreq; public: dsp() {} virtual ~dsp() {} virtual int getNumInputs() = 0; virtual int getNumOutputs() = 0; virtual void buildUserInterface(UI* interface) = 0; virtual void init(int samplingRate) = 0; virtual void compute(int len, float** inputs, float** outputs) = 0; }; /********************END ARCHITECTURE SECTION (part 1/2)****************/ /**************************BEGIN USER SECTION **************************/ <> /***************************END USER SECTION ***************************/ /*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ mydsp DSP; /****************************************************************************** ******************************************************************************* MAIN PLAY THREAD ******************************************************************************* *******************************************************************************/ // Scan Command Line Arguments long lopt (char *argv[], const char *name, long def) { int i; for (i=0; argv[i]; i++) if (!strcmp(argv[i], name)) return atoi(argv[i+1]); return def; } //------------------------------------------------------------------------- // MAIN //------------------------------------------------------------------------- pthread_t guithread; void* run_ui(void* ptr) { UI* interface = (UI*) ptr; interface->run(); pthread_exit(0); return 0; } int main(int argc, char *argv[] ) { UI* interface = new GTKUI(argv[0], &argc, &argv); // compute rcfilename to (re)store application state char rcfilename[256]; char* home = getenv("HOME"); snprintf(rcfilename, 255, "%s/.%src", home, basename(argv[0])); AudioInterface audio ( AudioParam().frequency(lopt(argv, "--frequency", 44100)) .buffering(lopt(argv, "--buffer", 128)) //.mode( ((DSP.getNumInputs()>0)?kRead:0) | ((DSP.getNumOutputs()>0)?kWrite:0) ) ); audio.open(); audio.info(); DSP.init(audio.getSamplingFrequency()); DSP.buildUserInterface(interface); interface->recallState(rcfilename); pthread_create(&guithread, NULL, run_ui, interface); float* inChannel[256]; float* outChannel[256]; int fpb = audio.getFramesPerBuffer(); audio.allocChanGroup(inChannel, max(audio.getNumInputs(), DSP.getNumInputs()), fpb); audio.allocChanGroup(outChannel, max(audio.getNumOutputs(), DSP.getNumOutputs()), fpb); setRealtimePriority(); AVOIDDENORMALS; // Sound processing loop audio.write(fpb, outChannel); audio.write(fpb, outChannel); while(!interface->stopped()) { if ( !audio.write(fpb, outChannel)) printf("w"); if ( !audio.read (fpb, inChannel)) printf("r");; STARTMESURE DSP.compute(fpb, inChannel, outChannel); STOPMESURE } audio.close(); interface->saveState(rcfilename); #ifdef BENCHMARKMODE printstats(); #endif //wait(0); return 0; } /********************END ARCHITECTURE SECTION (part 2/2)****************/ faust-0.9.46/compiler/0000755000175000017500000000000011702130733014457 5ustar orlareyorlareyfaust-0.9.46/compiler/patternmatcher/0000755000175000017500000000000011702130733017500 5ustar orlareyorlareyfaust-0.9.46/compiler/patternmatcher/patternmatcher.hh0000644000175000017500000000153311702130733023044 0ustar orlareyorlarey #ifndef __PATTERNMATCHER__ #define __PATTERNMATCHER__ using namespace std; #include #include "tlib.hh" struct Automaton; /* Create a pattern matching automaton from the given list of rules. */ Automaton *make_pattern_matcher(Tree R); /* Apply the pattern matcher to a single argument, starting from a given state s. Returns the resulting state, modifies the variable bindings E accordingly, and sets C to the resulting closure if a final state is reached. Result will be -1 to indicate a matching failure, and C will be set to nil if no final state has been reached yet. */ int apply_pattern_matcher(Automaton *A, // automaton int s, // start state Tree X, // arg to be matched Tree& C, // output closure (if any) vector& E); // modified output environments #endif faust-0.9.46/compiler/patternmatcher/patternmatcher.cpp0000644000175000017500000004774111702130733023242 0ustar orlareyorlarey /* compiler/patternmatcher/patternmatcher.cpp: implementation of the Faust rewriting engine */ #include "tlib.hh" #include "list.hh" #include "boxes.hh" #include "ppbox.hh" #include "eval.hh" #include "patternmatcher.hh" using namespace std; #include #include #include #include /* Uncomment for debugging output. */ //#define DEBUG /* Additional Tree deconstruction operations. */ /* Check for cons (nonempty list) nodes. */ static inline bool isCons(Tree x, Tree& h, Tree& t) { if (isList(x)) { h = hd(x); t = tl(x); return true; } else return false; } /* Deconstruct a (BDA) op pattern (YO). */ static inline bool isBoxPatternOp(Tree box, Node& n, Tree& t1, Tree& t2) { if ( isBoxPar(box, t1, t2) || isBoxSeq(box, t1, t2) || isBoxSplit(box, t1, t2) || isBoxMerge(box, t1, t2) || isBoxHGroup(box, t1, t2) || isBoxVGroup(box, t1, t2) || isBoxTGroup(box, t1, t2) || isBoxRec(box, t1, t2) ) { n = box->node(); return true; } else { return false; } } /* TA data structures. */ /* subterm paths */ typedef vector Path; /* Subterm at given path in given term tree. */ static Tree subtree(Tree X, int i, const Path& p) { int n = p.size(); Node op(0); Tree x0, x1; if (i < n && isBoxPatternOp(X, op, x0, x1)) return subtree((p[i]==0)?x0:x1, i+1, p); else return X; } /* rule markers */ struct Rule { int r; // rule number Tree id; // matched variable (NULL if none) Path p; // subterm path indicating where variable value is found Rule(int _r, Tree _id) : r(_r), id(_id), p(Path()) {} Rule(int _r, Tree _id, const Path& _p) : r(_r), id(_id), p(_p) {} Rule(const Rule& rule) : r(rule.r), id(rule.id), p(rule.p) {} Rule& operator = (const Rule& rule) { r = rule.r; id = rule.id; p = rule.p; return *this; } bool operator == (const Rule& rule) const { return r == rule.r; } bool operator < (const Rule& rule) const { return r < rule.r; } #ifdef DEBUG ostream& print(ostream& fout) const; #endif }; struct State; /* transitions */ struct Trans { Tree x; // symbol or constant (NULL for variable) Node n; // operator symbol (if arity>0) int arity; // symbol arity State *state; // successor state Trans(Tree _x); Trans(const Node& _n, int _arity); Trans(const Trans& trans); ~Trans(); Trans& operator = (const Trans& trans); bool is_var_trans() const { return arity == 0 && x == NULL; } bool is_cst_trans(Tree &_x) const { _x = x; return arity == 0 && x != NULL; } bool is_op_trans(Node &_n) const { _n = n; return arity > 0; } bool operator == (const Trans& trans) const { return arity == trans.arity && x == trans.x && n == trans.n; } bool operator < (const Trans& trans) const { return (arity < trans.arity) ? 1 : (arity > trans.arity) ? 0 : (arity == 0) ? (x < trans.x) : (n.getSym() < trans.n.getSym()); } #ifdef DEBUG ostream& print(ostream& fout) const; #endif }; /* states */ struct State { int s; // state number bool match_num; // whether state has a transition on a numeric constant list rules; // rule markers list trans; // transitions (1st transition is on variable if available) State() : s(0), match_num(false), rules(list()), trans(list()) {} State(const State& state) : s(state.s), match_num(state.match_num), rules(state.rules), trans(state.trans) {} State& operator = (const State& state) { s = state.s; match_num = state.match_num; rules = state.rules; trans = state.trans; return *this; } #ifdef DEBUG ostream& print(ostream& fout) const; #endif }; // these need to come here so that the storage size of struct State is known Trans::Trans(Tree _x) : x(_x), n(0), arity(0), state(new State) { } Trans::Trans(const Node& _n, int _arity) : x(NULL), n(_n), arity(_arity), state(new State) { } Trans::Trans(const Trans& trans) : x(trans.x), n(trans.n), arity(trans.arity) { state = new State(*trans.state); } Trans::~Trans() { delete state; } Trans& Trans::operator = (const Trans& trans) { x = trans.x; n = trans.n; arity = trans.arity; state = new State(*trans.state); return *this; } /* the automaton */ struct Automaton { vector state; vector rhs; Automaton() : state(vector()), rhs(vector()), s(0) {} // number of rules int n_rules() { return rhs.size(); } // markers of rules still active in state s const list& rules(int s) { return state[s]->rules; } // transitions in state s const list& trans(int s) { return state[s]->trans; } // is s a final state? bool final(int s) { return trans(s).empty(); } // assign state numbers and build the state table int s; void build(State *st); #ifdef DEBUG ostream& print(ostream& fout) const; #endif }; void Automaton::build(State *st) { state.push_back(st); st->s = s++; list::const_iterator t; for (t = st->trans.begin(); t != st->trans.end(); t++) { Tree x; double f; int i; if (t->is_cst_trans(x) && (isBoxInt(x, &i) || isBoxReal(x, &f))) st->match_num = true; build(t->state); } } /* Debugging output. */ #ifdef DEBUG inline ostream& operator << (ostream& s, const Rule& x) { return x.print(s); } inline ostream& operator << (ostream& s, const Trans& x) { return x.print(s); } inline ostream& operator << (ostream& s, const State& x) { return x.print(s); } inline ostream& operator << (ostream& s, const Automaton& x) { return x.print(s); } ostream& Rule::print(ostream& fout) const { if (id != NULL) fout << "#" << r << "(" << *id << ")"; else fout << "#" << r; return fout; } ostream& Trans::print(ostream& fout) const { if (arity > 0) fout << "\top " << n << ": state " << state->s << endl; else if (x == NULL) fout << "\tvar _: state " << state->s << endl; else fout << "\tcst " << *x << ": state " << state->s << endl; return fout; } ostream& State::print(ostream& fout) const { fout << "state " << s << ":"; list::const_iterator r; for (r = rules.begin(); r != rules.end(); r++) fout << " " << *r; fout << endl; list::const_iterator t; for (t = trans.begin(); t != trans.end(); t++) fout << *t; return fout; } ostream& Automaton::print(ostream& fout) const { int i, n = rhs.size(); for (i = 0; i < n; i++) fout << "rule #" << i << ": " << *rhs[i] << endl; n = state.size(); for (i = 0; i < n; i++) fout << *state[i]; return fout; } #endif /* Construction algorithm for the pattern matching automaton. * * We employ the incremental technique described in Graef: Left-To-Right Tree * Pattern Matching, Proc. RTA 1991, Springer 1991 (LNCS 488) to construct a * tree automaton (TA) for the given patterns. The basic outline of the * technique is as follows. Initially, the automaton is empty. From each * pattern we produce a trie (considering the pattern as a string of variable * and function symbols and constants). This trie is then merged with the TA * obtained so far. The latter process is similar to merging two deterministic * finite automata, but it also takes into account the variables (see the * merge_state() routine below). */ /* Construct a trie from a term tree. Takes the "start" and returns the "end" state of the (sub-)trie. */ static State *make_state(State *state, int r, Tree x, Path& p) { Tree id, x0, x1; Node op(0); if (isBoxPatternVar(x, id)) { /* variable */ Rule rule(r, id, p); state->rules.push_back(rule); Trans trans(NULL); state->trans.push_back(trans); return state->trans.begin()->state; } else if (isBoxPatternOp(x, op, x0, x1)) { /* composite pattern */ Rule rule(r, NULL); state->rules.push_back(rule); Trans trans(op, 2); state->trans.push_back(trans); State *next = state->trans.begin()->state; p.push_back(0); next = make_state(next, r, x0, p); p.pop_back(); p.push_back(1); next = make_state(next, r, x1, p); p.pop_back(); return next; } else { /* constant */ Rule rule(r, NULL); state->rules.push_back(rule); Trans trans(x); state->trans.push_back(trans); return state->trans.begin()->state; } } /* Take a copy of a state and prefix it with n variable transitions. */ static State *make_var_state(int n, State *state) { if (n <= 0) return new State(*state); listrules = state->rules; list::iterator r; for (r = rules.begin(); r != rules.end(); r++) { r->id = NULL; r->p = Path(); } State *prefix = new State, *current = prefix; while (n-- > 0) { current->rules = rules; Trans trans(NULL); current->trans.push_back(trans); current = current->trans.begin()->state; } *current = *state; return prefix; } /* Merge two tree automata. Merges the tree automaton rooted at state2 into the automaton rooted at state1. We assume that state2 is in "trie" form, i.e., each state has at most one transition, which is always guaranteed here and simplifies the algorithm. */ static void merge_state(State *state1, State *state2); static void inline merge_rules(list& rules1, list& rules2) { list cprules2 = rules2; rules1.merge(cprules2); } static void merge_trans_var(list& trans, State *state) { if (!trans.begin()->is_var_trans()) { /* If we don't have a variable transition in this state yet then create a new one. */ Trans tr(NULL); trans.push_front(tr); } list::const_iterator t; Tree x; Node op(0); for (t = trans.begin(); t != trans.end(); t++) { if (t->is_var_trans()) merge_state(t->state, state); else if (t->is_cst_trans(x)) { /* add the completion of the given state for a constant */ merge_state(t->state, state); } else if (t->is_op_trans(op)) { /* add the completion of the given state for an arity>0 op */ State *state1 = make_var_state(t->arity, state); merge_state(t->state, state1); delete state1; } } } static void merge_trans_cst(list& trans, Tree x, State *state) { list::iterator t0 = trans.begin(), t1 = t0, t; Tree x1; if (t0->is_var_trans()) t1++; for (t = t1; t != trans.end(); t++) { if (t->is_cst_trans(x1)) { if (x == x1) { merge_state(t->state, state); return; } else if (x < x1) break; } } /* no matching transition has been found; add a new one */ Trans tr(x); trans.insert(t, tr); t--; State *state1 = t->state; *state1 = *state; if (t1 != t0) { /* if we have a variable transition in the current state, we also need to merge its completion for the current symbol/constant */ merge_state(state1, t0->state); } } static void merge_trans_op(list& trans, const Node& op, int arity, State *state) { /* analogous to merge_trans_cst above, but handles the arity>0 case */ list::iterator t0 = trans.begin(), t1 = t0, t; Node op1(0); if (t0->is_var_trans()) t1++; for (t = t1; t != trans.end(); t++) { if (t->is_op_trans(op1)) { if (op == op1) { merge_state(t->state, state); return; } else if (op.getSym() < op1.getSym()) break; } } Trans tr(op, arity); trans.insert(t, tr); t--; State *state1 = t->state; *state1 = *state; if (t1 != t0) { State *state2 = make_var_state(arity, t0->state); merge_state(state1, state2); delete state2; } } static void merge_trans(list& trans1, list& trans2) { Tree x; Node op(0); if (trans2.empty()) ; else if (trans1.empty()) { list cptrans2 = trans2; /* append a copy of trans2 to trans1 */ trans1.splice(trans1.end(), cptrans2); } else if (trans2.begin()->is_var_trans()) /* merge a variable transition */ merge_trans_var(trans1, trans2.begin()->state); else if (trans2.begin()->is_cst_trans(x)) /* merge a constant transition */ merge_trans_cst(trans1, x, trans2.begin()->state); else if (trans2.begin()->is_op_trans(op)) /* merge a BDA op transition */ merge_trans_op(trans1, op, trans2.begin()->arity, trans2.begin()->state); } static void merge_state(State *state1, State *state2) { merge_rules(state1->rules, state2->rules); merge_trans(state1->trans, state2->trans); } /* Take the rules of a BoxCase expression and return a pointer to the corresponding TA automaton (interface operation). */ Automaton *make_pattern_matcher(Tree R) /* Tree R encodes the rules of a case box expressions as a Tree object, as follows: Rules ::= cons Rule (cons Rule ... nil) Rule ::= cons Lhs Rhs Lhs ::= cons Pattern (cons Pattern ... nil) Pattern ::= Tree (parameter pattern) Rhs ::= Tree NOTE: The lists of rules and patterns are actually delivered in reverse order by the parser, so we have to reverse them on the fly. */ { Automaton *A = new Automaton; int n = len(R), r = n; State *start = new State; Tree rule, rest; vector rules(n, (Tree)NULL); vector< vector > testpats(n); while (isCons(R, rule, rest)) { rules[--r] = rule; R = rest; } for (r = 0; r < n; r++) { Tree lhs, rhs; if (isCons(rules[r], lhs, rhs)) { Tree pat, rest; int m = len(lhs), i = m; vector pats(len(lhs), (Tree)NULL); State *state0 = new State, *state = state0; A->rhs.push_back(rhs); while (isCons(lhs, pat, rest)) { pats[--i] = pat; lhs = rest; } testpats[r] = pats; for (i = 0; i < m; i++) { Path p; state = make_state(state, r, pats[i], p); } Rule rule(r, NULL); state->rules.push_back(rule); merge_state(start, state0); delete state0; } } A->build(start); /* Check for shadowed rules. Note that because of potential nonlinearities it is *not* enough to just check the rule lists of final states and determine whether they have multiple matched rules. */ for (r = 0; r < n; r++) { int s = 0, m = testpats[r].size(); Tree C; vector E(n, nil); /* try to match the lhs of rule #r */ for (int i = 0; i < m; i++) { s = apply_pattern_matcher(A, s, testpats[r][i], C, E); if (s < 0) break; } if (A->final(s)) { list::const_iterator ru; for (ru = A->rules(s).begin(); ru != A->rules(s).end(); ru++) if (!isBoxError(E[ru->r])) if (ru->r < r) { /* Lhs of rule #r matched a higher-priority rule, so rule #r may be shadowed. */ Tree lhs1, rhs1, lhs2, rhs2; if (isCons(rules[ru->r], lhs1, rhs1) && isCons(rules[r], lhs2, rhs2)) { cerr << "WARNING : shadowed pattern-matching rule: " << boxpp(reverse(lhs2)) << " => " << boxpp(rhs2) << ";" << " previous rule was: " << boxpp(reverse(lhs1)) << " => " << boxpp(rhs1) << ";" << endl; } else { cerr << "INTERNAL ERROR : " << __FILE__ << ":" << __LINE__ << endl; exit(1); } } else if (ru->r >= r) break; } } #ifdef DEBUG cerr << "automaton " << A << endl << *A << "end automaton" << endl; #endif return A; } /* Helper type to represent variable substitutions which are recorded during matching. Each variable is associated with the path pointing at the subterm of the argument where the substitution of the matched variable is to be found. */ struct Assoc { Tree id; Path p; Assoc(Tree _id, const Path& _p) : id(_id), p(_p) {} }; typedef list Subst; /* add all substitutions for a given state */ static void add_subst(vector& subst, Automaton *A, int s) { list rules = A->rules(s); list::const_iterator r; for (r = rules.begin(); r != rules.end(); r++) if (r->id != NULL) subst[r->r].push_back(Assoc(r->id, r->p)); } /* Process a given term tree X starting from state s, modify variable substitutions accordingly. Returns the resulting state, or -1 if no match. This does all the grunt work of matching. */ static int apply_pattern_matcher_internal(Automaton *A, int s, Tree X, vector& subst) { /* FIXME: rewrite this non-recursively? */ if (s >= 0) { list::const_iterator t; if (A->state[s]->match_num) /* simplify possible numeric argument on the fly */ X = simplifyPattern(X); /* first check for applicable non-variable transitions */ for (t = A->trans(s).begin(); t != A->trans(s).end(); t++) { Tree x; Node op(0), op1(0); if (t->is_var_trans()) continue; else if (t->is_cst_trans(x)) { if (X==x) { /* transition on constant */ #ifdef DEBUG cerr << "state " << s << ", " << *x << ": goto state " << t->state->s << endl; #endif add_subst(subst, A, s); s = t->state->s; return s; } } else if (t->is_op_trans(op)) { Tree x0, x1; if (isBoxPatternOp(X, op1, x0, x1) && op == op1) { /* transition on operation symbol */ #ifdef DEBUG cerr << "state " << s << ", " << op << ": goto state " << t->state->s << endl; #endif add_subst(subst, A, s); s = t->state->s; if (s >= 0) s = apply_pattern_matcher_internal(A, s, x0, subst); if (s >= 0) s = apply_pattern_matcher_internal(A, s, x1, subst); return s; } } } /* check for variable transition (is always first in the list of transitions) */ t = A->trans(s).begin(); if (t->is_var_trans()) { #ifdef DEBUG cerr << "state " << s << ", _: goto state " << t->state->s << endl; #endif add_subst(subst, A, s); s = t->state->s; } else { #ifdef DEBUG cerr << "state " << s << ", *** match failed ***" << endl; #endif s = -1; } } return s; } /* Apply the pattern matcher to a single argument, starting from a given state (interface operation). Returns the resulting state, modifies the variable bindings E accordingly, and sets C to the resulting closure if a final state is reached. Result will be -1 to indicate a matching failure, and C will be set to nil if no final state has been reached yet. */ int apply_pattern_matcher(Automaton *A, // automaton int s, // start state Tree X, // arg to be matched Tree& C, // output closure (if any) vector& E) // modified output environments { int n = A->n_rules(); vector subst(n, Subst()); /* perform matching, record variable substitutions */ #ifdef DEBUG cerr << "automaton " << A << ", state " << s << ", start match on arg: " << *X << endl; #endif s = apply_pattern_matcher_internal(A, s, X, subst); C = nil; if (s < 0) /* failed match */ return s; /* process variable substitutions */ list::const_iterator r; for (r = A->rules(s).begin(); r != A->rules(s).end(); r++) { // all rules still active in state s if (!isBoxError(E[r->r])) { // and still viable Subst::const_iterator assoc; for (assoc = subst[r->r].begin(); assoc != subst[r->r].end(); assoc++) { Tree Z, Z1 = subtree(X, 0, assoc->p); if (searchIdDef(assoc->id, Z, E[r->r])) { if (Z != Z1) { /* failed nonlinearity, add to the set of nonviable rules */ #ifdef DEBUG cerr << "state " << s << ", rule #" << r->r << ": " << *assoc->id << " := " << *Z1 << " *** failed *** old value: " << *Z << endl; #endif E[r->r] = boxError(); } } else { /* bind a variable for the current rule */ #ifdef DEBUG cerr << "state " << s << ", rule #" << r->r << ": " << *assoc->id << " := " << *Z1 << endl; #endif E[r->r] = pushValueDef(assoc->id, Z1, E[r->r]); } } } } if (A->final(s)) { /* if in a final state then return the right-hand side together with the corresponding variable environment */ for (r = A->rules(s).begin(); r != A->rules(s).end(); r++) // all rules matched in state s if (!isBoxError(E[r->r])) { // and still viable /* return the rhs of the matched rule */ C = closure(A->rhs[r->r], nil, nil, E[r->r]); #ifdef DEBUG cerr << "state " << s << ", complete match yields rhs #" << r->r << ": " << *A->rhs[r->r] << endl; #endif return s; } /* if none of the rules were matched then declare a failed match */ #ifdef DEBUG cerr << "state " << s << ", *** match failed ***" << endl; #endif return -1; } #ifdef DEBUG cerr << "state " << s << ", successful incomplete match" << endl; #endif return s; } faust-0.9.46/compiler/main.cpp0000644000175000017500000005514211702130733016116 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ #define FAUSTVERSION "0.9.46" #include #include #include #ifndef WIN32 #include #include "libgen.h" #endif #include "compatibility.hh" #include "signals.hh" #include "sigtype.hh" #include "sigtyperules.hh" #include "sigprint.hh" #include "simplify.hh" #include "privatise.hh" #include "compile_scal.hh" #include "compile_vect.hh" #include "compile_sched.hh" #include "propagate.hh" #include "errormsg.hh" #include "ppbox.hh" #include "enrobage.hh" #include "eval.hh" #include "description.hh" #include "floats.hh" #include "doc.hh" #include #include #include #include #include #include #ifndef WIN32 #include #endif #include "sourcereader.hh" // construction des representations graphiques #include "schema.h" #include "drawschema.hh" #include "timing.hh" using namespace std ; /**************************************************************** Parser variables *****************************************************************/ int yyparse(); int yyerr; extern int yydebug; extern FILE* yyin; Tree gResult; Tree gResult2; SourceReader gReader; map > gMetaDataSet; extern vector gDocVector; extern string gDocLang; /**************************************************************** Command line tools and arguments *****************************************************************/ //-- globals string gFaustSuperSuperDirectory; string gFaustSuperDirectory; string gFaustDirectory; string gMasterDocument; string gMasterDirectory; string gMasterName; string gDocName; Tree gExpandedDefList; //-- command line arguments bool gHelpSwitch = false; bool gVersionSwitch = false; bool gDetailsSwitch = false; bool gDrawSignals = false; bool gShadowBlur = false; // note: svg2pdf doesn't like the blur filter bool gGraphSwitch = false; bool gDrawPSSwitch = false; bool gDrawSVGSwitch = false; bool gPrintXMLSwitch = false; bool gPrintDocSwitch = false; bool gLatexDocSwitch = true; // Only LaTeX outformat is handled for the moment. bool gStripDocSwitch = false; // Strip content from doc listings. int gBalancedSwitch = 0; int gFoldThreshold = 25; int gMaxNameSize = 40; bool gSimpleNames = false; bool gSimplifyDiagrams = false; bool gLessTempSwitch = false; int gMaxCopyDelay = 16; string gArchFile; string gOutputFile; list gInputFiles; bool gPatternEvalMode = false; bool gVectorSwitch = false; bool gDeepFirstSwitch= false; int gVecSize = 32; int gVectorLoopVariant = 0; bool gOpenMPSwitch = false; bool gOpenMPLoop = false; bool gSchedulerSwitch = false; bool gGroupTaskSwitch= false; bool gUIMacroSwitch = false; bool gDumpNorm = false; int gTimeout = 600; // time out to abort compiler (in seconds) int gFloatSize = 1; bool gPrintFileListSwitch = false; string gClassName = "mydsp"; //-- command line tools static bool isCmd(const char* cmd, const char* kw1) { return (strcmp(cmd, kw1) == 0); } static bool isCmd(const char* cmd, const char* kw1, const char* kw2) { return (strcmp(cmd, kw1) == 0) || (strcmp(cmd, kw2) == 0); } bool process_cmdline(int argc, char* argv[]) { int i=1; int err=0; while (i\t\tload --mathdoc-lang if translation file exists ( = en, fr, ...)\n"; cout << "-stripdoc \t\tapply --strip-mdoc-tags when printing Faust -mdoc listings\n"; cout << "-sd \t\ttry to further --simplify-diagrams before drawing them\n"; cout << "-f \t\t--fold threshold during block-diagram generation (default 25 elements) \n"; cout << "-mns \t--max-name-size threshold during block-diagram generation (default 40 char)\n"; cout << "-sn \t\tuse --simple-names (without arguments) during block-diagram generation\n"; cout << "-xml \t\tgenerate an --xml description file\n"; cout << "-blur \t\tadd a --shadow-blur to SVG boxes\n"; cout << "-lb \t\tgenerate --left-balanced expressions\n"; cout << "-mb \t\tgenerate --mid-balanced expressions (default)\n"; cout << "-rb \t\tgenerate --right-balanced expressions\n"; cout << "-lt \t\tgenerate --less-temporaries in compiling delays\n"; cout << "-mcd \t--max-copy-delay threshold between copy and ring buffer implementation (default 16 samples)\n"; cout << "-a \tC++ architecture file\n"; cout << "-cn \t--class-name specify the name of the dsp class to be used instead of mydsp \n"; cout << "-o \tC++ output file\n"; cout << "-vec \t--vectorize generate easier to vectorize code\n"; cout << "-vs \t--vec-size size of the vector (default 32 samples)\n"; cout << "-lv \t--loop-variant [0:fastest (default), 1:simple] \n"; cout << "-omp \t--openMP generate OpenMP pragmas, activates --vectorize option\n"; cout << "-pl \t--par-loop generate parallel loops in --openMP mode\n"; cout << "-sch \t--scheduler generate tasks and use a Work Stealing scheduler, activates --vectorize option\n"; cout << "-dfs \t--deepFirstScheduling schedule vector loops in deep first order\n"; cout << "-g \t\t--groupTasks group single-threaded sequential tasks together when -omp or -sch is used\n"; cout << "-uim \t--user-interface-macros add user interface macro definitions in the C++ code\n"; cout << "-single \tuse --single-precision-floats for internal computations (default)\n"; cout << "-double \tuse --double-precision-floats for internal computations\n"; cout << "-quad \t\tuse --quad-precision-floats for internal computations\n"; cout << "-flist \t\tuse --file-list used to eval process\n"; cout << "-norm \t\t--normalized-form prints signals in normalized form and exits\n"; cout << "\nexample :\n"; cout << "---------\n"; cout << "faust -a jack-gtk.cpp -o myfx.cpp myfx.dsp\n"; } void printheader(ostream& dst) { // defines the metadata we want to print as comments at the begin of in the C++ file set selectedKeys; selectedKeys.insert(tree("name")); selectedKeys.insert(tree("author")); selectedKeys.insert(tree("copyright")); selectedKeys.insert(tree("license")); selectedKeys.insert(tree("version")); dst << "//-----------------------------------------------------" << endl; for (map >::iterator i = gMetaDataSet.begin(); i != gMetaDataSet.end(); i++) { if (selectedKeys.count(i->first)) { dst << "// " << *(i->first); const char* sep = ": "; for (set::iterator j = i->second.begin(); j != i->second.end(); ++j) { dst << sep << **j; sep = ", "; } dst << endl; } } dst << "//" << endl; dst << "// Code generated with Faust " << FAUSTVERSION << " (http://faust.grame.fr)" << endl; dst << "//-----------------------------------------------------" << endl; } /**************************************************************** MAIN *****************************************************************/ /** * transform a filename "faust/example/noise.dsp" into * the corresponding fx name "noise" */ static string fxname(const string& filename) { // determine position right after the last '/' or 0 unsigned int p1 = 0; for (unsigned int i=0; i::iterator s; gResult2 = nil; yyerr = 0; if (gInputFiles.begin() == gInputFiles.end()) { cerr << "ERROR: no files specified; for help type \"faust --help\"" << endl; exit(1); } for (s = gInputFiles.begin(); s != gInputFiles.end(); s++) { if (s == gInputFiles.begin()) gMasterDocument = *s; gResult2 = cons(importFile(tree(s->c_str())), gResult2); } if (yyerr > 0) { //fprintf(stderr, "Erreur de parsing 2, count = %d \n", yyerr); exit(1); } gExpandedDefList = gReader.expandlist(gResult2); endTiming("parser"); /**************************************************************** 3 - evaluate 'process' definition *****************************************************************/ startTiming("evaluation"); Tree process = evalprocess(gExpandedDefList); if (gErrorCount > 0) { // cerr << "Total of " << gErrorCount << " errors during evaluation of : process = " << boxpp(process) << ";\n"; cerr << "Total of " << gErrorCount << " errors during the compilation of " << gMasterDocument << ";\n"; exit(1); } if (gDetailsSwitch) { cerr << "process = " << boxpp(process) << ";\n"; } if (gDrawPSSwitch || gDrawSVGSwitch) { string projname = gMasterDocument; if( gMasterDocument.substr(gMasterDocument.length()-4) == ".dsp" ) { projname = gMasterDocument.substr(0, gMasterDocument.length()-4); } if (gDrawPSSwitch) { drawSchema( process, subst("$0-ps", projname).c_str(), "ps" ); } if (gDrawSVGSwitch) { drawSchema( process, subst("$0-svg", projname).c_str(), "svg" ); } } int numInputs, numOutputs; if (!getBoxType(process, &numInputs, &numOutputs)) { cerr << "ERROR during the evaluation of process : " << boxpp(process) << endl; exit(1); } if (gDetailsSwitch) { cerr <<"process has " << numInputs <<" inputs, and " << numOutputs <<" outputs" << endl; } endTiming("evaluation"); /**************************************************************** 3.5 - output file list is needed *****************************************************************/ if (gPrintFileListSwitch) { cout << "******* "; // print the pathnames of the files used to evaluate process vector pathnames = gReader.listSrcFiles(); for (unsigned int i=0; i< pathnames.size(); i++) cout << pathnames[i] << ' '; cout << endl; } /**************************************************************** 4 - compute output signals of 'process' *****************************************************************/ startTiming("propagation"); Tree lsignals = boxPropagateSig(nil, process , makeSigInputList(numInputs) ); if (gDetailsSwitch) { cerr << "output signals are : " << endl; printSignal(lsignals, stderr); } endTiming("propagation"); /**************************************************************** 5 - translate output signals into C++ code *****************************************************************/ startTiming("compilation"); Compiler* C; if (gSchedulerSwitch) C = new SchedulerCompiler(gClassName, "dsp", numInputs, numOutputs); else if (gVectorSwitch) C = new VectorCompiler(gClassName, "dsp", numInputs, numOutputs); else C = new ScalarCompiler(gClassName, "dsp", numInputs, numOutputs); if (gPrintXMLSwitch) C->setDescription(new Description()); if (gPrintDocSwitch) C->setDescription(new Description()); C->compileMultiSignal(lsignals); endTiming("compilation"); /**************************************************************** 6 - generate XML description (if required) *****************************************************************/ if (gPrintXMLSwitch) { Description* D = C->getDescription(); assert(D); //ostream* xout = new ofstream(subst("$0.xml", gMasterDocument).c_str()); ofstream xout(subst("$0.xml", gMasterDocument).c_str()); if(gMetaDataSet.count(tree("name"))>0) D->name(tree2str(*(gMetaDataSet[tree("name")].begin()))); if(gMetaDataSet.count(tree("author"))>0) D->author(tree2str(*(gMetaDataSet[tree("author")].begin()))); if(gMetaDataSet.count(tree("copyright"))>0) D->copyright(tree2str(*(gMetaDataSet[tree("copyright")].begin()))); if(gMetaDataSet.count(tree("license"))>0) D->license(tree2str(*(gMetaDataSet[tree("license")].begin()))); if(gMetaDataSet.count(tree("version"))>0) D->version(tree2str(*(gMetaDataSet[tree("version")].begin()))); D->inputs(C->getClass()->inputs()); D->outputs(C->getClass()->outputs()); D->print(0, xout); } /**************************************************************** 7 - generate documentation from Faust comments (if required) *****************************************************************/ if (gPrintDocSwitch) { if (gLatexDocSwitch) { string projname = gMasterDocument; if( gMasterDocument.substr(gMasterDocument.length()-4) == ".dsp" ) { projname = gMasterDocument.substr(0, gMasterDocument.length()-4); } printDoc( subst("$0-mdoc", projname).c_str(), "tex", FAUSTVERSION ); } } /**************************************************************** 8 - generate output file *****************************************************************/ ostream* dst; istream* enrobage; //istream* intrinsic; if (gOutputFile != "") { dst = new ofstream(gOutputFile.c_str()); } else { dst = &cout; } if (gArchFile != "") { if ( (enrobage = open_arch_stream(gArchFile.c_str())) ) { printheader(*dst); C->getClass()->printLibrary(*dst); C->getClass()->printIncludeFile(*dst); C->getClass()->printAdditionalCode(*dst); streamCopyUntil(*enrobage, *dst, "<>"); // if ( gVectorSwitch && (intrinsic = open_arch_stream("intrinsic.hh")) ) { // streamCopyUntilEnd(*intrinsic, *dst); // } if (gSchedulerSwitch) { istream* scheduler_include = open_arch_stream("scheduler.h"); if (scheduler_include) { streamCopy(*scheduler_include, *dst); } } streamCopyUntil(*enrobage, *dst, "<>"); printfloatdef(*dst); C->getClass()->println(0,*dst); streamCopyUntilEnd(*enrobage, *dst); } else { cerr << "ERROR : can't open architecture file " << gArchFile << endl; return 1; } } else { printheader(*dst); printfloatdef(*dst); C->getClass()->printLibrary(*dst); C->getClass()->printIncludeFile(*dst); C->getClass()->printAdditionalCode(*dst); C->getClass()->println(0,*dst); } /**************************************************************** 9 - generate the task graph file in dot format *****************************************************************/ if (gGraphSwitch) { ofstream dotfile(subst("$0.dot", gMasterDocument).c_str()); C->getClass()->printGraphDotFormat(dotfile); } delete C; return 0; } faust-0.9.46/compiler/tlib/0000755000175000017500000000000011702130733015411 5ustar orlareyorlareyfaust-0.9.46/compiler/tlib/shlysis.cpp0000644000175000017500000001051711702130733017617 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ /***************************************************************************** ****************************************************************************** Tree Sharing Analysis Y. Orlarey, (c) Grame 2002 ------------------------------------------------------------------------------ The sharing analysis of tree t is the annotation of all its subtrees t' with their number of occurences in t. As this annotation of t' depends of a context (the tree t for which t' is a subtree) a specific property key unique to each sharing analysis must be generated. API: ---- shprkey(t) -> k = unique sharing property key of t shcount(k,t') -> n = returns the number of occurences of t' in t (where k = shprkey(t)) shlysis(t) -> k = annotated the subtrees of t with prop (key sharing-count) (0 if t' is not a subtree of t) History : --------- 2002-04-08 : First version 2006-03-25 : Modifications for new symbolic rec trees ****************************************************************************** *****************************************************************************/ /** * @file shlysis.cpp * The sharing analysis of tree t is the annotation of all its subtrees t' * with their number of occurences in t. As this annotation of t' depends of * a context (the tree t for which t' is a subtree) a specific property key * unique to each sharing analysis must be generated. */ #include #include #include #include "shlysis.hh" #include "compatibility.hh" /** * Create a specific property key for the sharing count of subtrees of t */ Tree shprkey(Tree t) { char name[256]; snprintf(name, 256, "SHARED IN %p : ", (CTree*)t); return tree(unique(name)); } /** * Return the value of sharing count or 0 */ int shcount(Tree key, Tree t) { Tree c; if (getProperty(t, key, c)) { return c->node().getInt(); } else { return 0; } } //------------------------------------------------------------------------------ // Create a specific property key for the sharing count of subtrees of t //------------------------------------------------------------------------------ static void annotate(Tree k, Tree t, barrier foo); static bool nobarrier (const Tree& t) { return false; } /** * Do a sharing analysis : annotates all the subtrees of t * with there occurences */ Tree shlysis(Tree t, barrier foo) { Tree k = shprkey(t); annotate(k, t, foo); return k; } /** * Do a sharing analysis : annotates all the subtrees of t * with there occurences */ Tree shlysis(Tree t) { Tree k = shprkey(t); annotate(k, t, nobarrier); return k; } /** * Recursively increment the occurences count * of t and its subtrees */ static void annotate(Tree k, Tree t, barrier foo) { cerr << "Annotate " << *t << endl; int c = shcount(k,t); if (c==0) { // First visit Tree var, body; if (isRec(t, var, body)) { // special case for recursive trees setProperty(t, k, tree(1)); annotate(k, body, foo); return; } else { int n = t->arity(); if (n>0 && ! foo(t)) { for (int i=0; ibranch(i), foo); } } } else { //printf(" annotate %p with %d\n", (CTree*)t, c+1); } setProperty(t, k, tree(c+1)); } faust-0.9.46/compiler/tlib/occurrences.cpp0000644000175000017500000000450111702130733020430 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ /** * @file occurrences.cpp * Count the number of occurences of each subtree of a root tree. */ // construction des representations graphiques #include "occurrences.hh" #include "compatibility.hh" /** * Count the number of occurrences of each subtree of root */ Occurrences::Occurrences(Tree root) { fKey = specificKey(root); countOccurrences(root); setCount(root,0); // root as no occurences in itself } /** * Get the number of occurrences of t */ int Occurrences::getCount(Tree t) { Tree c; return (getProperty(t, fKey, c)) ? c->node().getInt() : 0; } /** * Set the number of occurrences of t */ void Occurrences::setCount(Tree t, int c) { setProperty(t, fKey, tree(c)); } /** * Creates a specific property key for occurrences count in root */ Tree Occurrences::specificKey(Tree root) { char keyname[256]; snprintf(keyname, 256, "OCCURRENCES COUNT IN %p : ", (CTree*)root); return tree(unique(keyname)); } /** * Increment the occurrences count of t and its subtrees */ void Occurrences::countOccurrences(Tree t) { setCount(t, getCount(t)+1); // increment t occurrences count for (int i=0; iarity(); i++) { countOccurrences(t->branch(i)); } } faust-0.9.46/compiler/tlib/list.cpp0000644000175000017500000003272211702130733017076 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ /***************************************************************************** ****************************************************************************** LIST Y. Orlarey, (c) Grame 2002 ------------------------------------------------------------------------------ This file contains several extensions to the tree library : - lists : based on a operations like cons, hd , tl, ... - environments : list of associations (key value) - property list : used to annotate trees API: ---- List : ----- nil = predefined empty list cons (x,l) = create a nex list of head x and tail l hd(cons(x,l)) = x, tl (cons(x,l)) = l nth(l,i) = ith element of l (or nil) replace(l,i,e) = a copy of l where the ith element is e len(l) = number of elements of l isNil(nil) = true (false otherwise) isList(cons(x,l)) = true (false otherwise) list(a,b,..) = cons(a, list(b,...)) lmap(f, cons(x,l)) = cons(f(x), lmap(f,l)) reverse([a,b,..,z]) = [z,..,b,a] reverseall([a,b,..,z]) = [ra(z),..,ra(b),ra(a)] where ra is reverseall Set : ----- (Sets are implemented as ordered lists of elements without duplication) isElement(e,s) = true if e is an element of set s, false otherwise addElement(e,s) = s U {e} remElement(e,s) = s - {e} singleton(e) = {e} list2set(l) = convert a list into a set setUnion(s1,s2) = s1 U s2 setIntersection(s1,s2) = s1 intersection s2 setDifference(s1,s2) = s1 - s2 Environment : ------------- An 'environment' is a stack of pairs (key x value) used to keep track of lexical bindings pushEnv (key, val, env) -> env' create a new environment searchEnv (key,&v,env) -> bool search for key in env and set v accordingly search(k1,&v, push(k2,x,env)) = true and v is set to x if k1==k2 = search(k1,&v,env) if k1 != k2 Property list : --------------- Every tree can be annotated with an 'attribut' field. This attribute field can be used to manage a property list (pl). A property list is a list of pairs key x value, with three basic operations : setProperty (t, key, val) -> t add the association (key x val) to the pl of t getProperty (t, key, &val) -> bool search the pp of t for the value associated to key remProperty (t, key) -> t remove any association (key x ?) from the pl of t Warning : --------- Since reference counters are used for garbage collecting, one must be careful not to create cycles in trees. The only possible source of cycles is by setting the attribut of a tree t to a tree t' that contains t as a subtree. History : --------- 2002-02-08 : First version 2002-02-20 : New description of the API, non recursive lmap and reverse 2002-03-29 : Added function remElement(e,set), corrected comment error ****************************************************************************** *****************************************************************************/ #include #include "list.hh" #include "compatibility.hh" #include #include // predefined symbols CONS and NIL Sym CONS = symbol("cons"); Sym NIL = symbol("nil"); // predefined nil tree Tree nil = tree(NIL); //------------------------------------------------------------------------------ // Printing of trees with special case for lists //------------------------------------------------------------------------------ static bool printlist (Tree l, FILE* out) { if (isList(l)) { char sep = '('; do { fputc(sep, out); sep = ','; print(hd(l)); l = tl(l); } while (isList(l)); if (! isNil(l)) { fprintf(out, " . "); print(l, out); } fputc(')', out); return true; } else if (isNil(l)) { fprintf(out, "nil"); return true; } else { return false; } } void print (Tree t, FILE* out) { int i; double f; Sym s; void* p; if (printlist(t, out)) return; Node n = t->node(); if (isInt(n, &i)) fprintf (out, "%d", i); else if (isDouble(n, &f)) fprintf (out, "%f", f); else if (isSym(n, &s)) fprintf (out, "%s", name(s)); else if (isPointer(n, &p)) fprintf (out, "#%p", p); int k = t->arity(); if (k > 0) { char sep = '['; for (int i=0; ibranch(i), out); } fputc(']', out); } } //------------------------------------------------------------------------------ // Elements of list //------------------------------------------------------------------------------ Tree nth (Tree l, int i) { while (isList(l)) { if (i == 0) return hd(l); l = tl(l); i--; } return nil; } Tree replace(Tree l, int i, Tree e) { return (i==0) ? cons(e,tl(l)) : cons( hd(l), replace(tl(l),i-1,e) ); } int len (Tree l) { int n = 0; while (isList(l)) { l = tl(l); n++; } return n; } //------------------------------------------------------------------------------ // Mapping and reversing //------------------------------------------------------------------------------ Tree rconcat (Tree l, Tree q) { while (isList(l)) { q = cons(hd(l),q); l = tl(l); } return q; } Tree concat (Tree l, Tree q) { return rconcat(reverse(l), q); } Tree lrange (Tree l, int i, int j) { Tree r = nil; int c = j; while (c>i) r = cons( nth(l,--c), r); return r; } //------------------------------------------------------------------------------ // Mapping and reversing //------------------------------------------------------------------------------ static Tree rmap (tfun f, Tree l) { Tree r = nil; while (isList(l)) { r = cons(f(hd(l)),r); l = tl(l); } return r; } Tree reverse (Tree l) { Tree r = nil; while (isList(l)) { r = cons(hd(l),r); l = tl(l); } return r; } Tree lmap (tfun f, Tree l) { return reverse(rmap(f,l)); } Tree reverseall (Tree l) { return isList(l) ? rmap(reverseall, l) : l; } //------------------------------------------------------------------------------ // Sets : implemented as ordered list //------------------------------------------------------------------------------ bool isElement (Tree e, Tree l) { while (isList(l)) { if (hd(l) == e) return true; if (hd(l) > e) return false; l = tl(l); } return false; } Tree addElement(Tree e, Tree l) { if (isList(l)) { if (e < hd(l)) { return cons(e,l); } else if (e == hd(l)) { return l; } else { return cons(hd(l), addElement(e,tl(l))); } } else { return cons(e,nil); } } Tree remElement(Tree e, Tree l) { if (isList(l)) { if (e < hd(l)) { return l; } else if (e == hd(l)) { return tl(l); } else { return cons(hd(l), remElement(e,tl(l))); } } else { return nil; } } Tree singleton (Tree e) { return list1(e); } Tree list2set (Tree l) { Tree s = nil; while (isList(l)) { s = addElement(hd(l),s); l = tl(l); } return s; } Tree setUnion (Tree A, Tree B) { if (isNil(A)) return B; if (isNil(B)) return A; if (hd(A) == hd(B)) return cons(hd(A), setUnion(tl(A),tl(B))); if (hd(A) < hd(B)) return cons(hd(A), setUnion(tl(A),B)); /* hd(A) > hd(B) */ return cons(hd(B), setUnion(A,tl(B))); } Tree setIntersection (Tree A, Tree B) { if (isNil(A)) return A; if (isNil(B)) return B; if (hd(A) == hd(B)) return cons(hd(A), setIntersection(tl(A),tl(B))); if (hd(A) < hd(B)) return setIntersection(tl(A),B); /* (hd(A) > hd(B)*/ return setIntersection(A,tl(B)); } Tree setDifference (Tree A, Tree B) { if (isNil(A)) return A; if (isNil(B)) return A; if (hd(A) == hd(B)) return setDifference(tl(A),tl(B)); if (hd(A) < hd(B)) return cons(hd(A), setDifference(tl(A),B)); /* (hd(A) > hd(B)*/ return setDifference(A,tl(B)); } //------------------------------------------------------------------------------ // Environments //------------------------------------------------------------------------------ Tree pushEnv (Tree key, Tree val, Tree env) { return cons (cons(key,val), env); } bool searchEnv (Tree key, Tree& v, Tree env) { while (isList(env)) { if (hd(hd(env)) == key) { v = tl(hd(env)); return true; } env = tl(env); } return false; } //------------------------------------------------------------------------------ // Property list //------------------------------------------------------------------------------ static bool findKey (Tree pl, Tree key, Tree& val) { if (isNil(pl)) return false; if (left(hd(pl)) == key) { val= right(hd(pl)); return true; } /* left(hd(pl)) != key */ return findKey (tl(pl), key, val); } static Tree updateKey (Tree pl, Tree key, Tree val) { if (isNil(pl)) return cons ( cons(key,val), nil ); if (left(hd(pl)) == key) return cons ( cons(key,val), tl(pl) ); /* left(hd(pl)) != key */ return cons ( hd(pl), updateKey( tl(pl), key, val )); } static Tree removeKey (Tree pl, Tree key) { if (isNil(pl)) return nil; if (left(hd(pl)) == key) return tl(pl); /* left(hd(pl)) != key */ return cons (hd(pl), removeKey(tl(pl), key)); } #if 0 void setProperty (Tree t, Tree key, Tree val) { CTree* pl = t->attribut(); if (pl) t->attribut(updateKey(pl, key, val)); else t->attribut(updateKey(nil, key, val)); } void remProperty (Tree t, Tree key) { CTree* pl = t->attribut(); if (pl) t->attribut(removeKey(pl, key)); } bool getProperty (Tree t, Tree key, Tree& val) { CTree* pl = t->attribut(); if (pl) return findKey(pl, key, val); else return false; } #else // nouvelle implementation void setProperty (Tree t, Tree key, Tree val) { t->setProperty(key, val); } bool getProperty (Tree t, Tree key, Tree& val) { CTree* pl = t->getProperty(key); if (pl) { val = pl; return true; } else { return false; } } void remProperty (Tree t, Tree key) { exit(1); // fonction not implemented } #endif //------------------------------------------------------------------------------ // Bottom Up Tree Mapping //------------------------------------------------------------------------------ Tree tmap (Tree key, tfun f, Tree t) { //printf("start tmap\n"); Tree p; if (getProperty(t, key, p)) { return (isNil(p)) ? t : p; // truc pour eviter les boucles } else { Tree r1=nil; switch (t->arity()) { case 0 : r1 = t; break; case 1 : r1 = tree(t->node(), tmap(key,f,t->branch(0))); break; case 2 : r1 = tree(t->node(), tmap(key,f,t->branch(0)), tmap(key,f,t->branch(1))); break; case 3 : r1 = tree(t->node(), tmap(key,f,t->branch(0)), tmap(key,f,t->branch(1)), tmap(key,f,t->branch(2))); break; case 4 : r1 = tree(t->node(), tmap(key,f,t->branch(0)), tmap(key,f,t->branch(1)), tmap(key,f,t->branch(2)), tmap(key,f,t->branch(3))); break; } Tree r2 = f(r1); if (r2 == t) { setProperty(t, key, nil); } else { setProperty(t, key, r2); } return r2; } } //------------------------------------------------------------------------------ // substitute :remplace toutes les occurences de 'id' par 'val' dans 't' //------------------------------------------------------------------------------ // genere une clef unique propre � cette substitution static Tree substkey(Tree t, Tree id, Tree val) { char name[256]; snprintf(name, 255, "SUBST<%p,%p,%p> : ", (CTree*)t, (CTree*)id, (CTree*)val); return tree(unique(name)); } // realise la substitution proprement dite tout en mettant � jour la propriete // pour ne pas avoir � la calculer deux fois static Tree subst (Tree t, Tree propkey, Tree id, Tree val) { Tree p; if (t==id) { return val; } else if (t->arity() == 0) { return t; } else if (getProperty(t, propkey, p)) { return (isNil(p)) ? t : p; } else { Tree r=nil; switch (t->arity()) { case 1 : r = tree(t->node(), subst(t->branch(0), propkey, id, val)); break; case 2 : r = tree(t->node(), subst(t->branch(0), propkey, id, val), subst(t->branch(1), propkey, id, val)); break; case 3 : r = tree(t->node(), subst(t->branch(0), propkey, id, val), subst(t->branch(1), propkey, id, val), subst(t->branch(2), propkey, id, val)); break; case 4 : r = tree(t->node(), subst(t->branch(0), propkey, id, val), subst(t->branch(1), propkey, id, val), subst(t->branch(2), propkey, id, val), subst(t->branch(3), propkey, id, val)); break; } if (r == t) { setProperty(t, propkey, nil); } else { setProperty(t, propkey, r); } return r; } } // remplace toutes les occurences de 'id' par 'val' dans 't' Tree substitute (Tree t, Tree id, Tree val) { return subst (t, substkey(t,id,val), id, val); } faust-0.9.46/compiler/tlib/tree.hh0000644000175000017500000002701611702130733016677 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ /***************************************************************************** ******************************************************************************/ /** \file tree.hh * A tree library with hashconsing and maximal sharing capabilities. * * A tree library with hashconsing and maximal sharing capabilities. * * API: * * \li tree (n) : tree of node n with no branch * \li tree (n, t1) : tree of node n with a branch t * \li tree (n, t1,...,tm) : tree of node n with m branches t1,...,tm * * Useful conversions : * * \li int tree2int (t) : if t has a node of type int, return it otherwise error * \li float tree2float (t) : if t has a node of type float, return it otherwise error * \li const char* tree2str (t) : if t has a node of type symbol, return its name otherwise error * \li void* tree2ptr (t) : if t has a node of type ptr, return it otherwise error * * Pattern matching : * * \li if (isTree (t, n)) ... : t has node n and no branches; * \li if (isTree (t, n, &t1) ... : t has node n and 1 branch, t1 is set accordingly; * \li if (isTree (t, n, &t1...&tm)... : t has node n and m branches, ti's are set accordingly; * * Accessors : * * \li t->node() : the node of t { return fNode; } * \li t->height() : lambda height such that H(x)=0, H(\x.e)=1+H(e), H(e*f)=max(H(e),H(f)) * \li t->arity() : the number of branches of t { return fArity; } * \li t->branch(i) : the ith branch of t * * Attributs : * * \li t->attribut() : return the attribut (also a tree) of t * \li t->attribut(t') : set the attribut of t to t' * * * Properties: * * If p and q are two CTree pointers : * p != q <=> *p != *q * **/ /***************************************************************************** ******************************************************************************/ #ifndef __TREE__ #define __TREE__ #include "symbol.hh" #include "node.hh" #include #include #include //---------------------------------API--------------------------------------- class CTree; typedef CTree* Tree; typedef map plist; typedef vector tvec; /** * A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches. * A CTree = (Node x [CTree]) is the association of a content Node and a list of subtrees * called branches. In order to maximize the sharing of trees, hashconsing techniques are used. * Ctrees at different addresses always have a different content. A first consequence of this * approach is that a fast equality test on pointers can be used as an equality test on CTrees. * A second consequence is that a CTree can NEVER be modified. But a property list is associated * to each CTree that can be used to attach arbitrary information to it. Due to the maximal * sharing property it is therefore easy to do memoization using these property lists. * * Means are also provided to do maximal sharing on recursive trees. The idea is to start from * a deBruijn representation and progressively build a classical representation such that * alpha-equivalent recursive CTrees are necesseraly identical (and therefore shared). * * WARNING : in the current implementation CTrees are allocated but never deleted **/ class CTree { private: static const int kHashTableSize = 2000000; //510511; ///< size of the hash table used for "hash consing" static Tree gHashTable[kHashTableSize]; ///< hash table used for "hash consing" public: static bool gDetails; ///< Ctree::print() print with more details when true static unsigned int gVisitTime; ///< Should be incremented for each new visit to keep track of visited tree. private: // fields Tree fNext; ///< next tree in the same hashtable entry Node fNode; ///< the node content of the tree void* fType; ///< the type of a tree plist fProperties; ///< the properties list attached to the tree unsigned int fHashKey; ///< the hashtable key int fAperture; ///< how "open" is a tree (synthezised field) unsigned int fVisitTime; ///< keep track of visits tvec fBranch; ///< the subtrees CTree (unsigned int hk, const Node& n, const tvec& br); ///< construction is private, uses tree::make instead bool equiv (const Node& n, const tvec& br) const; ///< used to check if an equivalent tree already exists static unsigned int calcTreeHash (const Node& n, const tvec& br); ///< compute the hash key of a tree according to its node and branches static int calcTreeAperture (const Node& n, const tvec& br); ///< compute how open is a tree public: ~CTree (); static Tree make (const Node& n, int ar, Tree br[]); ///< return a new tree or an existing equivalent one static Tree make(const Node& n, const tvec& br); ///< return a new tree or an existing equivalent one // Accessors const Node& node() const { return fNode; } ///< return the content of the tree int arity() const { return fBranch.size();} ///< return the number of branches (subtrees) of a tree Tree branch(int i) const { return fBranch[i]; } ///< return the ith branch (subtree) of a tree unsigned int hashkey() const { return fHashKey; } ///< return the hashkey of the tree int aperture() const { return fAperture; } ///< return how "open" is a tree in terms of free variables void setAperture(int a) { fAperture=a; } ///< modify the aperture of a tree // Print a tree and the hash table (for debugging purposes) ostream& print (ostream& fout) const; ///< print recursively the content of a tree on a stream static void control (); ///< print the hash table content (for debug purpose) // type information void setType(void* t) { fType = t; } void* getType() { return fType; } // Keep track of visited trees (WARNING : non reentrant) static void startNewVisit() { ++gVisitTime; } bool isAlreadyVisited() { return fVisitTime==gVisitTime; } void setVisited() { /*assert(fVisitTime!=gVisitTime);*/ fVisitTime=gVisitTime; } // Property list of a tree void setProperty(Tree key, Tree value) { fProperties[key] = value; } void clearProperty(Tree key) { fProperties.erase(key); } void clearProperties() { fProperties = plist(); } void exportProperties(vector& keys, vector& values); Tree getProperty(Tree key) { plist::iterator i = fProperties.find(key); if (i==fProperties.end()) { return 0; } else { return i->second; } } }; //---------------------------------API--------------------------------------- // to build trees inline Tree tree (const Node& n) { Tree br[1]; return CTree::make(n, 0, br); } inline Tree tree (const Node& n, const Tree& a) { Tree br[]= {a}; return CTree::make(n, 1, br); } inline Tree tree (const Node& n, const Tree& a, const Tree& b) { Tree br[]= {a,b}; return CTree::make(n, 2, br); } inline Tree tree (const Node& n, const Tree& a, const Tree& b, const Tree& c) { Tree br[]= {a,b,c}; return CTree::make(n, 3, br); } inline Tree tree (const Node& n, const Tree& a, const Tree& b, const Tree& c, const Tree& d) { Tree br[]= {a,b,c,d}; return CTree::make(n, 4, br); } inline Tree tree (const Node& n, const Tree& a, const Tree& b, const Tree& c, const Tree& d, const Tree& e) { Tree br[]= {a,b,c,d,e}; return CTree::make(n, 5, br); } // useful conversions int tree2int (Tree t); ///< if t has a node of type int, return it otherwise error double tree2float (Tree t); ///< if t has a node of type float, return it otherwise error double tree2double (Tree t); ///< if t has a node of type float, return it otherwise error const char* tree2str (Tree t); ///< if t has a node of type symbol, return its name otherwise error void* tree2ptr (Tree t); ///< if t has a node of type ptr, return it otherwise error void* getUserData(Tree t); ///< if t has a node of type symbol, return the associated user data // pattern matching bool isTree (const Tree& t, const Node& n); bool isTree (const Tree& t, const Node& n, Tree& a); bool isTree (const Tree& t, const Node& n, Tree& a, Tree& b); bool isTree (const Tree& t, const Node& n, Tree& a, Tree& b, Tree& c); bool isTree (const Tree& t, const Node& n, Tree& a, Tree& b, Tree& c, Tree& d); bool isTree (const Tree& t, const Node& n, Tree& a, Tree& b, Tree& c, Tree& d, Tree& e); //printing inline ostream& operator << (ostream& s, const CTree& t) { return t.print(s); } //----------------------------------------------------------------------------- // recursive trees //----------------------------------------------------------------------------- // creation a recursive trees Tree rec(Tree body); ///< create a de Bruijn recursive tree Tree rec(Tree id, Tree body); ///< create a symbolic recursive tree bool isRec(Tree t, Tree& body); ///< is t a de Bruijn recursive tree bool isRec(Tree t, Tree& id, Tree& body); ///< is t a symbolic recursive tree // creation of recursive references Tree ref(int level); ///< create a de Bruijn recursive reference Tree ref(Tree id); ///< create a symbolic recursive reference bool isRef(Tree t, int& level); ///< is t a de Bruijn recursive reference bool isRef(Tree t, Tree& id); ///< is t a symbolic recursive reference // Open vs Closed regarding de Bruijn references inline bool isOpen(Tree t) { return t->aperture() > 0; } ///< t contains free de Bruijn references inline bool isClosed(Tree t) { return t->aperture() <= 0;} ///< t dont contain free de Bruijn ref // lift by 1 the free de Bruijn references Tree lift(Tree t); ////< add 1 to the free de bruijn references of t Tree deBruijn2Sym (Tree t); ////< transform a tree from deBruijn to symbolic notation void updateAperture (Tree t); ////< update aperture field of a tree in symbolic notation //--------------------------------------------------------------------------- class Tabber { int fIndent; int fPostInc; public: Tabber(int n=0) : fIndent(n), fPostInc(0) {} Tabber& operator++() { fPostInc++; return *this;} Tabber& operator--() { assert(fIndent > 0); fIndent--; return *this; } ostream& print (ostream& fout) { for (int i=0; i k = unique sharing property key of t shcount(k,t') -> n = returns the number of occurences of t' in t (where k = shprkey(t)) shlysis(t) -> k = annotated the subtrees of t with prop (key sharing-count) (0 if t' is not a subtree of t) History : --------- 2002-04-08 : First version ****************************************************************************** *****************************************************************************/ #include #include #include #include "list.hh" typedef bool (*barrier)(const Tree& t); //------------------------------------------------------------------------------ // shprkey : Create a specific property key for the sharing count of subtrees of t Tree shprkey(Tree t); //------------------------------------------------------------------------------ // shcount : returns the sharing count of t within the tree T of key k int shcount(Tree key, Tree t); #if 0 //------------------------------------------------------------------------------ // shlysis : create a specific property key for the sharing count of subtrees of t Tree shlysis(Tree t); Tree shlysis(Tree t, barrier foo); #endif #endif faust-0.9.46/compiler/tlib/num.hh0000644000175000017500000001230611702130733016533 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ /***************************************************************************** ****************************************************************************** NUM Y. Orlarey, (c) Grame 2002 ------------------------------------------------------------------------------ Nums are tagged unions of ints and floats. Nums are completly described by the num.h file, there is no num.cpp file. API: ---- num(10); : num with int content num(3.14159); : num with double content num op num : op is any C binary operator type(num) : 0 = int, 1 = double int(num); : int content of num or conversion double(num); : double content of num or conversion History : --------- 2002-02-08 : First version ****************************************************************************** *****************************************************************************/ #ifndef __NUM__ #define __NUM__ //------------------------------------------------------------------------- // Class num = (int x (int + double)) //------------------------------------------------------------------------- class num { int fType; union { int i; double f; } fData; public: // constructeurs num (int x=0) : fType(0) { fData.i = x; } //num (double x) : fType(1) { fData.f = (double)x; } num (double x) : fType(1) { fData.f = x; } num (const num& n) : fType(n.fType) { fData.i = n.fData.i; } num& operator = (int n) { fType = 0; fData.i = n; return *this; } num& operator = (double n) { fType = 1; fData.f = n; return *this; } // predicats bool operator == (const num& n) const { return fType == n.fType && fData.i == n.fData.i; } bool operator != (const num& n) const { return fType != n.fType || fData.i != n.fData.i; } // accessors int type() const { return fType; } operator int() const { return (fType) ? int(fData.f) : fData.i; } operator double() const { return (fType) ? fData.f : double(fData.i); } }; inline int isfloat (const num& n) { return n.type(); } inline const num operator+ (const num& x, const num& y) { return (isfloat(x)|isfloat(y)) ? num(double(x)+double(y)) : num(int(x)+int(y)); } inline const num operator- (const num& x, const num& y) { return (isfloat(x)|isfloat(y)) ? num(double(x)-double(y)) : num(int(x)-int(y)); } inline const num operator* (const num& x, const num& y) { return (isfloat(x)|isfloat(y)) ? num(double(x)*double(y)) : num(int(x)*int(y)); } inline const num operator/ (const num& x, const num& y) { return (isfloat(x)|isfloat(y)) ? num(double(x)/double(y)) : num(int(x)/int(y)); } inline const num operator% (const num& x, const num& y) { return num(int(x)%int(y)); } // operations sur les bits inline const num operator<< (const num& x, const num& y) { return num(int(x)<> (const num& x, const num& y) { return num(int(x)>>int(y)); } // operations boolennes sur les bits inline const num operator& (const num& x, const num& y) { return num(int(x)&int(y)); } inline const num operator| (const num& x, const num& y) { return num(int(x)|int(y)); } inline const num operator^ (const num& x, const num& y) { return num(int(x)^int(y)); } // operations de comparaison inline const num operator> (const num& x, const num& y) { return (isfloat(x)|isfloat(y)) ? num(double(x)>double(y)) : num(int(x)>int(y)); } inline const num operator< (const num& x, const num& y) { return (isfloat(x)|isfloat(y)) ? num(double(x)= (const num& x, const num& y) { return (isfloat(x)|isfloat(y)) ? num(double(x)>=double(y)) : num(int(x)>=int(y)); } inline const num operator<= (const num& x, const num& y) { return (isfloat(x)|isfloat(y)) ? num(double(x)<=double(y)) : num(int(x)<=int(y)); } inline const num operator== (const num& x, const num& y) { return (isfloat(x)|isfloat(y)) ? num(double(x)==double(y)) : num(int(x)==int(y)); } inline const num operator!= (const num& x, const num& y) { return (isfloat(x)|isfloat(y)) ? num(double(x)!=double(y)) : num(int(x)!=int(y)); } #endif faust-0.9.46/compiler/tlib/symbol.hh0000644000175000017500000001067211702130733017245 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ /** \file symbol.hh * A library to create and manipulate symbols with a unique name. * A library of functions to create and manipulate symbols with a unique name. * * API: * * - Sym q = symbol("abcd"); returns the symbol of name "abcd" * - const char* s = name(q); returns the name of symbol q * - Sym q = unique("TOTO"); returns a new unique symbol of name "TOTOnnn" * * Properties: * * If p and q are two symbols then : * p != q <=> name(p) != name(q) * */ #ifndef __SYMBOL__ #define __SYMBOL__ #include #include using namespace std; //--------------------------------SYMBOL------------------------------------- /** * Symbols are unique objects with a name stored in a hash table. */ class Symbol { private: static const int kHashTableSize = 511; ///< Size of the hash table (a prime number is recommended) static Symbol* gSymbolTable[kHashTableSize]; ///< Hash table used to store the symbols // Fields char* fName; ///< Name of the symbol unsigned int fHash; ///< Hash key computed from the name and used to determine the hash table entry Symbol* fNext; ///< Next symbol in the hash table entry void* fData; ///< Field to user disposal to store additional data // Constructors & destructors Symbol (const char* str, unsigned int hsh, Symbol* nxt); ///< Constructs a new symbol ready to be placed in the hash table ~Symbol (); ///< The Destructor is never used // Others bool equiv (unsigned int hash, const char* str) const ; ///< Check if the name of the symbol is equal to string \p str static unsigned int calcHashKey (const char* str); ///< Compute the 32-bits hash key of string \p str // Static methods static Symbol* get (const string& str); ///< Get the symbol of name \p str static Symbol* get (const char* str); ///< Get the symbol of name \p str static Symbol* prefix (const char* str); ///< Creates a new symbol of name prefixed by \p str static bool isnew (const char* str); ///< Returns \b true if no symbol of name \p str exists public: ostream& print (ostream& fout) const; ///< print a symbol on a stream friend Symbol* symbol (const char* str); friend Symbol* symbol (const string& str); friend Symbol* unique (const char* str); friend const char* name (Symbol* sym); friend void* getUserData (Symbol* sym); friend void setUserData (Symbol* sym, void* d); }; inline Symbol* symbol (const char* str) { return Symbol::get(str); } ///< Returns (and creates if new) the symbol of name \p str inline Symbol* symbol (const string& str) { return Symbol::get(str); } ///< Returns (and creates if new) the symbol of name \p str inline Symbol* unique (const char* str) { return Symbol::prefix(str);} ///< Returns a new unique symbol of name strxxx inline const char* name (Symbol* sym) { return sym->fName; } ///< Returns the name of a symbol inline void* getUserData (Symbol* sym) { return sym->fData; } ///< Returns user data inline void setUserData (Symbol* sym, void* d) { sym->fData=d; } ///< Set user data inline ostream& operator << (ostream& s, const Symbol& n) { return n.print(s); } typedef Symbol* Sym; #endif faust-0.9.46/compiler/tlib/smartpointer.hh0000644000175000017500000000460111702130733020462 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ #ifndef _SMARTPOINTER_H #define _SMARTPOINTER_H //#include #include #include template class P { private: T* p; public: P() : p(0) { } P(T* rawptr) : p(rawptr) { } P(const P& ptr) : p((T*)ptr) { } template P(const P& ptr) : p((T*)ptr) { } ~P() { } operator T*() const { return p; } T& operator*() const { if (p == 0) { //throw std::runtime_error("Null dereference in P::operator*() const "); fprintf(stderr, "Null dereference in P::operator*() const \n "); exit(1); } return *p; } T* operator->() const { if (p == 0) { fprintf(stderr, "Null dereference in P::operator->() const \n "); //throw std::runtime_error("Null dereference in P::operator->() const "); //std::cerr << "Null dereference in P::operator->() const " << std::endl; exit(1); } return p; } T* pointee() const { return p;} P& operator=(T* p_) { p = p_; return *this;} P& operator=(const P& p_) { return operator=((T *) p_); } template P& cast(T2* p_) { return operator=(dynamic_cast(p_)); } template P& cast(const P& p_) { return operator=(dynamic_cast(p_)); } }; #endif faust-0.9.46/compiler/tlib/tree.cpp0000644000175000017500000002213511702130733017057 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ /***************************************************************************** ****************************************************************************** TREE Y. Orlarey, (c) Grame 2002 ------------------------------------------------------------------------------ Trees are made of a Node associated with a list of branches : (Node x [CTree]). Up to 4 branches are allowed in this implementation. A hash table is used to maximize the sharing of trees during construction : trees at different addresses always have a different content. Reference counting is used for garbage collection, and smart pointers P should be used for permanent storage of trees. API: ---- tree (n) : tree of node n with no branch tree (n, t1) : tree of node n with a branch t tree (n, t1,...,tm) : tree of node n with m branches t1,...,tm Pattern matching : if (isTree (t, n)) ... : t has node n and no branches; if (isTree (t, n, &t1) ... : t has node n and 1 branch, t1 is set accordingly; if (isTree (t, n, &t1...&tm)...: t has node n and m branches, ti's are set accordingly; Accessors : t->node() : the node of t { return fNode; } t->arity() : the number of branches of t return fArity; } t->branch(i) : the ith branch of t Attributs : t->attribut() : return the attribut (also a tree) of t t->attribut(t') : set the attribut of t to t' Warning : --------- Since reference counters are used for garbage collecting, one must be careful not to create cycles in trees The only possible source of cycles is by setting the attribut of a tree t to a tree t' that contains t as a subtree. Properties: ----------- If p and q are two CTree pointers : p != q <=> *p != *q History : --------- 2002-02-08 : First version 2002-10-14 : counts for height and recursiveness added ****************************************************************************** *****************************************************************************/ #include #include #include #include #include "tree.hh" #include #include Tabber TABBER(1); extern Tabber TABBER; static void error(const char * s, Tree t) { //fprintf(stderr, "ERROR : %s (%p)\n", s, t); cerr << "ERROR : " << s << " : " << *t << endl; } #define ERROR(s,t) { error(s,t); exit(1); } Tree CTree::gHashTable[kHashTableSize]; bool CTree::gDetails = false; unsigned int CTree::gVisitTime = 0; // Constructor : add the tree to the hash table CTree::CTree (unsigned int hk, const Node& n, const tvec& br) : fNode(n), fType(0), fHashKey(hk), fAperture(calcTreeAperture(n,br)), fVisitTime(0), fBranch(br) { // link dans la hash table int j = hk % kHashTableSize; fNext = gHashTable[j]; gHashTable[j] = this; } // Destructor : remove the tree form the hash table CTree::~CTree () { int i = fHashKey % kHashTableSize; Tree t = gHashTable[i]; //printf("Delete of "); this->print(); printf("\n"); if (t == this) { gHashTable[i] = fNext; } else { Tree p; while (t != this) { p = t; t = t->fNext; } p->fNext = fNext; } } // equivalence bool CTree::equiv (const Node& n, const tvec& br) const { return (fNode == n) && (fBranch == br); } Sym PROCESS = symbol("process"); unsigned int CTree::calcTreeHash( const Node& n, const tvec& br ) { unsigned int hk = n.type() ^ n.getInt(); tvec::const_iterator b = br.begin(); tvec::const_iterator z = br.end(); while (b != z) { hk = (hk << 1) ^ (hk >> 20) ^ ((*b)->fHashKey); ++b; } return hk; } Tree CTree::make(const Node& n, int ar, Tree* tbl) { tvec br(ar); for (int i=0; iequiv(n, br)) { t = t->fNext; } return (t) ? t : new CTree(hk, n, br); } Tree CTree::make(const Node& n, const tvec& br) { unsigned int hk = calcTreeHash(n, br); Tree t = gHashTable[hk % kHashTableSize]; while (t && !t->equiv(n, br)) { t = t->fNext; } return (t) ? t : new CTree(hk, n, br); } ostream& CTree::print (ostream& fout) const { if (gDetails) { // print the adresse of the tree fout << "<" << this << ">@"; } fout << node(); int a = arity(); if (a > 0) { int i; char sep; for (sep = '[', i = 0; i < a; sep = ',', i++) { fout << sep; branch(i)->print(fout); } fout << ']'; } return fout; } void CTree::control () { printf("\ngHashTable Content :\n\n"); for (int i = 0; i < kHashTableSize; i++) { Tree t = gHashTable[i]; if (t) { printf ("%4d = ", i); while (t) { /*t->print();*/ printf(" => "); t = t->fNext; } printf("VOID\n"); } } printf("\nEnd gHashTable\n"); } // if t has a node of type int, return it otherwise error int tree2int (Tree t) { double x; int i; if (isInt(t->node(), &i)) { // nothing to do } else if (isDouble(t->node(), &x)) { i = int(x); } else { ERROR("the node of the tree is not an int nor a float", t); } return i; } // if t has a node of type float, return it otherwise error double tree2float (Tree t) { double x; int i; if (isInt(t->node(), &i)) { x = double(i); } else if (isDouble(t->node(), &x)) { //nothing to do } else { ERROR("the node of the tree is not a float nor an int", t); } return x; } // if t has a node of type float, return it as a double otherwise error double tree2double (Tree t) { double x; int i; if (isInt(t->node(), &i)) { x = double(i); } else if (isDouble(t->node(), &x)) { //nothing to do } else { ERROR("the node of the tree is not a float nor an int", t); } return double(x); } // if t has a node of type symbol, return its name otherwise error const char* tree2str (Tree t) { Sym s; if (!isSym(t->node(), &s)) { ERROR("the node of the tree is not a symbol", t); } return name(s); } // if t has a node of type ptr, return it otherwise error void* tree2ptr (Tree t) { void* x; if (! isPointer(t->node(), &x)) { ERROR("the node of the tree is not a pointer", t); } return x; } /* bool isTree (const Tree& t, const Node& n) { return (t->node() == n) && (t->arity() == 0); } */ // Si ca ne pose pas de probl�es, c'est plus pratique bool isTree (const Tree& t, const Node& n) { return (t->node() == n); } bool isTree (const Tree& t, const Node& n, Tree& a) { if ((t->node() == n) && (t->arity() == 1)) { a=t->branch(0); return true; } else { return false; } } bool isTree (const Tree& t, const Node& n, Tree& a, Tree& b) { if ((t->node() == n) && (t->arity() == 2)) { a=t->branch(0); b=t->branch(1); return true; } else { return false; } } bool isTree (const Tree& t, const Node& n, Tree& a, Tree& b, Tree& c) { if ((t->node() == n) && (t->arity() == 3)) { a=t->branch(0); b=t->branch(1); c=t->branch(2); return true; } else { return false; } } bool isTree (const Tree& t, const Node& n, Tree& a, Tree& b, Tree& c, Tree& d) { if ((t->node() == n) && (t->arity() == 4)) { a=t->branch(0); b=t->branch(1); c=t->branch(2); d=t->branch(3); return true; } else { return false; } } bool isTree (const Tree& t, const Node& n, Tree& a, Tree& b, Tree& c, Tree& d, Tree& e) { if ((t->node() == n) && (t->arity() == 5)) { a=t->branch(0); b=t->branch(1); c=t->branch(2); d=t->branch(3); e=t->branch(4); return true; } else { return false; } } // July 2005, support for symbol user data void* getUserData(Tree t) { Sym s; if (isSym(t->node(), &s)) { return getUserData(s); } else { return 0; } } /** * export the properties of a CTree as two vectors, one for the keys * and one for the associated values */ void CTree::exportProperties(vector& keys, vector& values) { for (plist::const_iterator p = fProperties.begin(); p != fProperties.end(); p++) { keys.push_back(p->first); values.push_back(p->second); } } faust-0.9.46/compiler/tlib/compatibility.hh0000644000175000017500000000414711702130733020611 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ #ifndef __COMPATIBILITY__ #define __COMPATIBILITY__ #if defined (WIN32) #include #ifdef WIN32 #undef min #undef max #endif bool chdir(const char* path); int mkdir(const char* path, unsigned int attribute); char* getcwd(char* str, unsigned int size); int isatty(int file); void getFaustPathname(char* str, unsigned int size); void getFaustPathname(char* str, unsigned int size); #include #ifdef NDEBUG #undef assert #define assert(_Expression) do { bool bTest = (_Expression) != 0; } while (0) #endif #define snprintf _snprintf //#define rintf(x) floor((x)+(((x) < 0 ) ? -0.5f :0.5f)) #define FAUST_PATH_MAX 1024 #if !defined(__MINGW32__) double remainder(double numerator, double denominator); #define S_IRWXU 0 #endif #define S_IRWXG 0 #define S_IROTH 0 #define S_IXOTH 0 #define DIRSEP '\\' #else #include #define DIRSEP '/' #define FAUST_PATH_MAX 1024 void getFaustPathname(char* str, unsigned int size); #endif #endif faust-0.9.46/compiler/tlib/recursive-tree.cpp0000644000175000017500000002105211702130733021061 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ #include #include #include #include #include "tlib.hh" // Declaration of implementation static Tree calcDeBruijn2Sym (Tree t); static Tree substitute(Tree t, int n, Tree id); static Tree calcsubstitute(Tree t, int level, Tree id); static Tree liftn(Tree t, int threshold); static Tree calcliftn(Tree t, int threshold); // recursive trees Sym DEBRUIJN = symbol ("DEBRUIJN"); Sym DEBRUIJNREF = symbol ("DEBRUIJNREF"); Sym SUBSTITUTE = symbol ("SUBSTITUTE"); Sym SYMREC = symbol ("SYMREC"); Sym SYMRECREF = symbol ("SYMRECREF"); Sym SYMLIFTN = symbol ("LIFTN"); //Tree NOVAR = tree("NOVAR"); //----------------------------------------------------------------------------------------- // rec, isRec : declare recursive trees //----------------------------------------------------------------------------------------- // de Bruijn declaration of a recursive tree Tree rec(Tree body) { return tree(DEBRUIJN, body); } bool isRec(Tree t, Tree& body) { return isTree(t, DEBRUIJN, body); } Tree ref(int level) { assert(level > 0); return tree(DEBRUIJNREF, tree(level)); // reference to enclosing recursive tree starting from 1 } bool isRef(Tree t, int& level) { Tree u; if (isTree(t, DEBRUIJNREF, u)) { return isInt(u->node(), &level); } else { return false; } } //----------------------------------------------------------------------------------------- // Recursive tree in symbolic notation (using a recursive definition property) //----------------------------------------------------------------------------------------- Tree RECDEF = tree(symbol("RECDEF")); // declaration of a recursive tree using a symbolic variable Tree rec(Tree var, Tree body) { Tree t = tree(SYMREC, var); t->setProperty(RECDEF, body); return t; } bool isRec(Tree t, Tree& var, Tree& body) { if (isTree(t, SYMREC, var)) { body = t->getProperty(RECDEF); return true; } else { return false; } } Tree ref(Tree id) { return tree(SYMREC, id); // reference to a symbolic id } bool isRef(Tree t, Tree& v) { return isTree(t, SYMREC, v); } //----------------------------------------------------------------------------------------- // L'aperture d'un arbre est la plus profonde reference de Bruijn qu'il contienne. // Les references symboliques compte pour zero ce qui veut dire qu'un arbre d'aperture // 0 ne compte aucun reference de bruijn libres. int CTree::calcTreeAperture( const Node& n, const tvec& br ) { int x; if (n == DEBRUIJNREF) { if (isInt(br[0]->node(), &x)) { return x; } else { return 0; } } else if (n == DEBRUIJN) { return br[0]->fAperture - 1; } else { // return max aperture of branches int rc = 0; tvec::const_iterator b = br.begin(); tvec::const_iterator z = br.end(); while (b != z) { if ((*b)->aperture() > rc) rc = (*b)->aperture(); ++b; } return rc; } } Tree lift(Tree t) { return liftn(t, 1); } void printSignal(Tree sig, FILE* out, int prec=0); // lift (t) : increase free references by 1 #if 0 static Tree _liftn(Tree t, int threshold); static Tree liftn(Tree t, int threshold) { fprintf(stderr, "call of liftn("); printSignal(t, stderr); fprintf(stderr, ", %d)\n", threshold); Tree r = _liftn(t, threshold); fprintf(stderr, "return of liftn("); printSignal(t, stderr); fprintf(stderr, ", %d) -> ", threshold); printSignal(r, stderr); fprintf(stderr, "\n"); return r; } #endif static Tree liftn(Tree t, int threshold) { Tree L = tree( Node(SYMLIFTN), tree(Node(threshold)) ); Tree t2 = t->getProperty(L); if (!t2) { t2 = calcliftn(t, threshold); t->setProperty(L, t2); } return t2; } static Tree calcliftn(Tree t, int threshold) { int n; Tree u; if (isClosed(t)) { return t; } else if (isRef(t,n)) { if (n < threshold) { // it is a bounded reference return t; } else { // it is a free reference return ref(n+1); } } else if (isRec(t,u)) { return rec(liftn(u, threshold+1)); } else { int n = t->arity(); //Tree br[4]; tvec br(n); for (int i = 0; i < n; i++) { br[i] = liftn(t->branch(i), threshold); } //return CTree::make(t->node(), n, br); return CTree::make(t->node(), br); } } //----------------------------------------------------------- // Transform a tree from deBruijn to symbolic representation //----------------------------------------------------------- Tree DEBRUIJN2SYM = tree(symbol("deBruijn2Sym")); Tree deBruijn2Sym (Tree t) { assert(isClosed(t)); Tree t2 = t->getProperty(DEBRUIJN2SYM); if (!t2) { t2 = calcDeBruijn2Sym(t); t->setProperty(DEBRUIJN2SYM, t2); } return t2; } static Tree calcDeBruijn2Sym (Tree t) { Tree body, var; int i; if (isRec(t,body)) { var = tree(unique("W")); return rec(var, deBruijn2Sym(substitute(body,1,ref(var)))); } else if (isRef(t,var)) { return t; } else if (isRef(t,i)) { fprintf(stderr, "ERREUR, une reference de Bruijn touvee ! : "); printSignal(t, stderr); fprintf(stderr, ")\n"); exit(1); return t; } else { //Tree br[4]; int a = t->arity(); tvec br(a); for (int i = 0; i < a; i++) { br[i] = deBruijn2Sym(t->branch(i)); } //return CTree::make(t->node(), a, br); return CTree::make(t->node(), br); } } static Tree substitute(Tree t, int level, Tree id) { Tree S = tree( Node(SUBSTITUTE), tree(Node(level)), id ); Tree t2 = t->getProperty(S); if (!t2) { t2 = calcsubstitute(t, level, id); t->setProperty(S, t2); } return t2; } static Tree calcsubstitute(Tree t, int level, Tree id) { int l; Tree body; if (t->aperture()aperture(), level); return t; } if (isRef(t,l)) return (l == level) ? id : t; if (isRec(t,body)) return rec(substitute(body, level+1, id)); int ar = t->arity(); //Tree br[4]; tvec br(ar); for (int i = 0; i < ar; i++) { br[i] = substitute(t->branch(i), level, id); } //return CTree::make(t->node(), ar, br); return CTree::make(t->node(), br); } //-------------------------------------------------------------------------- // UpdateAperture (t) : recursively mark open and closed terms. // closed term : fAperture == 0, open term fAperture == -1 struct Env { Tree fTree; Env* fNext; Env(Tree t, Env* nxt) : fTree(t), fNext(nxt) {} }; static void markOpen(Tree t); static int recomputeAperture(Tree t, Env* p); static int orderof (Tree t, Env* p); void updateAperture(Tree t) { markOpen(t); recomputeAperture(t, NULL); } //----------------------implementation-------------------------------- static void markOpen(Tree t) { if (t->aperture() == INT_MAX) return; t->setAperture(INT_MAX); int ar = t->arity(); for (int i = 0; i < ar; i++) { markOpen(t->branch(i)); } } static int recomputeAperture(Tree t, Env* env) { Tree var, body; if (t->aperture() == 0) return 0; if (isRef(t, var)) { return orderof(var, env); } else if (isRec(t, var, body)) { Env e(var,env); int a = recomputeAperture(body, &e) - 1; if (a<=0) { /*print(t, stderr);*/ t->setAperture(0); } return a; } else { // return max aperture of branches int ma = 0; int ar = t->arity(); for (int i = 0; ibranch(i), env); if (ma < a) ma = a; } if (ma <= 0) { /*print(t, stderr);*/ t->setAperture(0); } return ma; } } static int orderof (Tree t, Env* p) { if (p == NULL) return 0; if (t == p->fTree) return 1; int pos = 1; while (p != NULL) { if (t == p->fTree) return pos; p = p->fNext; pos++; } return 0; } faust-0.9.46/compiler/tlib/occurrences.hh0000644000175000017500000000341711702130733020252 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ #ifndef __OCCURENCES__ #define __OCCURENCES__ #include "tlib.hh" /** * Count subtree occurences * Count the number of occurences of each subtree of a root tree. */ class Occurrences { Tree fKey; // specific property key public: Occurrences(Tree root); // count the occurrences of each subtree of root int getCount(Tree t); // return the number of occurrences of t in root private: Tree specificKey(Tree root); // specific key for occurences counting in root void countOccurrences(Tree t); // increment the occurrences of t and its subtrees void setCount(Tree t, int c); // set the number of occurrences of t }; #endif faust-0.9.46/compiler/tlib/compatibility.cpp0000644000175000017500000001052711702130733020773 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ #if defined( __MINGW32__) || defined (WIN32) // Simulate some Unix fonctions on Windows #include #include "math.h" #if defined(_MBCS) || __MINGW32__ bool chdir(const char* path) { return !SetCurrentDirectory(path); } int mkdir(const char* path, unsigned int attribute) { return CreateDirectory(path,NULL); } char* getcwd(char* str, unsigned int size) { GetCurrentDirectory(size, str); return str; } void getFaustPathname(char* str, unsigned int size) { GetModuleFileName(NULL, str, size); } #else bool chdir(const char* path) { wchar_t wstr[2048]; mbstowcs(wstr,path,2048); return !SetCurrentDirectory(wstr); } int mkdir(const char* path, unsigned int attribute) { wchar_t wstr[2048]; mbstowcs(wstr,path,2048); return CreateDirectory(wstr,NULL); } char* getcwd(char* str, unsigned int size) { wchar_t wstr[2048]; GetCurrentDirectory(2048, wstr); wcstombs(str,wstr,size); return str; } void getFaustPathname(char* str, unsigned int size) { wchar_t wstr[2048]; GetModuleFileName(NULL, wstr, 2048); wcstombs(str,wstr,size); } #endif int isatty(int file) { return 0; } #if !defined(__MINGW32__) typedef union { double value; struct { unsigned int lsw; unsigned int msw; } parts; } ieee_double_shape_type; #define EXTRACT_WORDS(ix0,ix1,d) \ do { \ ieee_double_shape_type ew_u; \ ew_u.value = (d); \ (ix0) = ew_u.parts.msw; \ (ix1) = ew_u.parts.lsw; \ } while (0) /* Get the more significant 32 bit int from a double. */ #define GET_HIGH_WORD(i,d) \ do { \ ieee_double_shape_type gh_u; \ gh_u.value = (d); \ (i) = gh_u.parts.msw; \ } while (0) /* Get the less significant 32 bit int from a double. */ #define GET_LOW_WORD(i,d) \ do { \ ieee_double_shape_type gl_u; \ gl_u.value = (d); \ (i) = gl_u.parts.lsw; \ } while (0) #define SET_HIGH_WORD(d,v) \ do { \ ieee_double_shape_type sh_u; \ sh_u.value = (d); \ sh_u.parts.msw = (v); \ (d) = sh_u.value; \ } while (0) double remainder(double x, double p) { int hx,hp; unsigned int sx,lx,lp; double p_half; EXTRACT_WORDS(hx,lx,x); EXTRACT_WORDS(hp,lp,p); sx = hx&0x80000000; hp &= 0x7fffffff; hx &= 0x7fffffff; /* purge off exception values */ if((hp|lp)==0) return (x*p)/(x*p); /* p = 0 */ if((hx>=0x7ff00000)|| /* x not finite */ ((hp>=0x7ff00000)&& /* p is NaN */ (((hp-0x7ff00000)|lp)!=0))) return (x*p)/(x*p); static const double zero = 0.0; if (hp<=0x7fdfffff) x = fmod(x,p+p); /* now x < 2p */ if (((hx-hp)|(lx-lp))==0) return zero*x; x = fabs(x); p = fabs(p); if (hp<0x00200000) { if(x+x>p) { x-=p; if(x+x>=p) x -= p; } } else { p_half = 0.5*p; if(x>p_half) { x-=p; if(x>=p_half) x -= p; } } GET_HIGH_WORD(hx,x); SET_HIGH_WORD(x,hx^sx); return x; } #endif #else // Linux #include #include void getFaustPathname(char* str, unsigned int size) { char* path = getenv("_"); if (path) { strncpy(str, path, size); } else { // prevent the case of _ undefined strncpy(str, "/usr/local/bin/faust", size); } } #endif faust-0.9.46/compiler/tlib/node.hh0000644000175000017500000002114311702130733016660 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ /***************************************************************************** ******************************************************************************/ /** \file node.hh * A Node is a tagged unions of int, double, symbol and void* used in the implementation of CTrees. * Nodes are completly described by the node.h file, there is no node.cpp file. * * API: * * Node(symbol("abcd")); : node with symbol content * Node(10); : node with int content * Node(3.14159); : node with double content * * n->type(); : kIntNode or kDoubleNode or kSymNode * * n->getInt(); : int content of n * n->getDouble(); : double content of n * n->getSym(); : symbol content of n * * if (isInt(n, &i)) ... : int i = int content of n * if (isDouble(n, &f)) ... : double f = double content of n * if (isSym(n, &s)) ... : Sym s = Sym content of n * */ /****************************************************************************** *****************************************************************************/ #ifndef __NODE__ #define __NODE__ #include #include "symbol.hh" using namespace std; /** * Tags used to define the type of a Node */ enum { kIntNode, kDoubleNode, kSymNode, kPointerNode }; /** * Class Node = (type x (int + double + Sym + void*)) */ class Node { int fType; union { int i; double f; Sym s; void* p; } fData; public: // constructeurs (assume size of field f is the biggest) Node (int x) : fType(kIntNode) { fData.f = 0; fData.i = x; } Node (double x) : fType(kDoubleNode) { fData.f = x; } Node (const char* name) : fType(kSymNode) { fData.f = 0; fData.s = symbol(name); } Node (const string& name) : fType(kSymNode) { fData.f = 0; fData.s = symbol(name); } Node (Sym x) : fType(kSymNode) { fData.f = 0; fData.s = x; } Node (void* x) : fType(kPointerNode) { fData.f = 0; fData.p = x; } Node (const Node& n) : fType(n.fType) { fData = n.fData; } // predicats bool operator == (const Node& n) const { return fType == n.fType && fData.f == n.fData.f; } bool operator != (const Node& n) const { return fType != n.fType || fData.f != n.fData.f; } // accessors int type() const { return fType; } int getInt() const { return fData.i; } double getDouble() const { return fData.f; } Sym getSym() const { return fData.s; } void* getPointer() const { return fData.p; } // conversions and promotion for numbers operator int() const { return (fType == kIntNode) ? fData.i : (fType == kDoubleNode) ? int(fData.f) : 0 ; } operator double() const { return (fType == kIntNode) ? double(fData.i) : (fType == kDoubleNode) ? fData.f : 0.0 ; } ostream& print (ostream& fout) const; ///< print a node on a stream }; //printing inline ostream& operator << (ostream& s, const Node& n) { return n.print(s); } //------------------------------------------------------------------------- // Perdicates and pattern matching //------------------------------------------------------------------------- // integers inline bool isInt (const Node& n) { return (n.type() == kIntNode); } inline bool isInt (const Node& n, int* x) { if (n.type() == kIntNode) { *x = n.getInt(); return true; } else { return false; } } // floats inline bool isDouble (const Node& n) { return (n.type() == kDoubleNode); } inline bool isDouble (const Node& n, double* x) { if (n.type() == kDoubleNode) { *x = n.getDouble(); return true; } else { return false; } } inline bool isZero (const Node& n) { return (n.type() == kDoubleNode) && (n.getDouble() == 0.0) || (n.type() == kIntNode) && (n.getInt() == 0); } inline bool isGEZero (const Node& n) { return (n.type() == kDoubleNode) && (n.getDouble() >= 0.0) || (n.type() == kIntNode) && (n.getInt() >= 0); } inline bool isGTZero (const Node& n) { return (n.type() == kDoubleNode) && (n.getDouble() > 0.0) || (n.type() == kIntNode) && (n.getInt() > 0); } inline bool isOne (const Node& n) { return (n.type() == kDoubleNode) && (n.getDouble() == 1.0) || (n.type() == kIntNode) && (n.getInt() == 1); } inline bool isMinusOne (const Node& n) { return (n.type() == kDoubleNode) && (n.getDouble() == -1.0) || (n.type() == kIntNode) && (n.getInt() == -1); } // numbers in general inline bool isNum (const Node& n) { return isInt(n)||isDouble(n); } // symbols inline bool isSym (const Node& n) { return (n.type() == kSymNode); } inline bool isSym (const Node& n, Sym* x) { if (n.type() == kSymNode) { *x = n.getSym(); return true; } else { return false; } } // void pointer inline bool isPointer (const Node& n) { return (n.type() == kPointerNode); } inline bool isPointer (const Node& n, void** x) { if (n.type() == kPointerNode) { *x = n.getPointer(); return true; } else { return false; } } //------------------------------------------------------------------------- // Mathematical operations on nodes //------------------------------------------------------------------------- // arithmetic operations inline const Node addNode (const Node& x, const Node& y) { return (isDouble(x)||isDouble(y)) ? Node(double(x)+double(y)) : Node(int(x)+int(y)); } inline const Node subNode (const Node& x, const Node& y) { return (isDouble(x)||isDouble(y)) ? Node(double(x)-double(y)) : Node(int(x)-int(y)); } inline const Node mulNode (const Node& x, const Node& y) { return (isDouble(x)||isDouble(y)) ? Node(double(x)*double(y)) : Node(int(x)*int(y)); } inline const Node divNode (const Node& x, const Node& y) { return (isDouble(x)||isDouble(y)) ? Node(double(x)/double(y)) : Node(int(x)/int(y)); } inline const Node divExtendedNode (const Node& x, const Node& y) { return (isDouble(x)||isDouble(y)) ? Node(double(x)/double(y)) : (double(int(x)/int(y))==double(x)/double(y)) ? Node(int(x)/int(y)) : Node(double(x)/double(y)); } inline const Node remNode (const Node& x, const Node& y) { return Node(int(x)%int(y)); } // inverse functions inline const Node minusNode (const Node& x) { return subNode(0, x); } inline const Node inverseNode (const Node& x) { return divNode(1.0f, x); } // bit shifting operations inline const Node lshNode (const Node& x, const Node& y) { return Node(int(x)<>int(y)); } // boolean operations on bits inline const Node andNode (const Node& x, const Node& y) { return Node(int(x)&int(y)); } inline const Node orNode (const Node& x, const Node& y) { return Node(int(x)|int(y)); } inline const Node xorNode (const Node& x, const Node& y) { return Node(int(x)^int(y)); } // compare operations inline const Node gtNode (const Node& x, const Node& y) { return (isDouble(x)||isDouble(y)) ? Node(double(x)>double(y)) : Node(int(x)>int(y)); } inline const Node ltNode (const Node& x, const Node& y) { return (isDouble(x)||isDouble(y)) ? Node(double(x)=double(y)) : Node(int(x)>=int(y)); } inline const Node leNode (const Node& x, const Node& y) { return (isDouble(x)||isDouble(y)) ? Node(double(x)<=double(y)) : Node(int(x)<=int(y)); } #if 1 inline const Node eqNode (const Node& x, const Node& y) { return (isDouble(x)||isDouble(y)) ? Node(double(x)==double(y)) : Node(int(x)==int(y)); } inline const Node neNode (const Node& x, const Node& y) { return (isDouble(x)||isDouble(y)) ? Node(double(x)!=double(y)) : Node(int(x)!=int(y)); } #endif #endif faust-0.9.46/compiler/tlib/tlib.hh0000644000175000017500000001315211702130733016666 0ustar orlareyorlarey#ifndef __TLIB__ #define __TLIB__ /************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ /***************************************************************************** ****************************************************************************** TLIB : tree library Y. Orlarey, (c) Grame 2002 ------------------------------------------------------------------------------ Tlib is a simple tree library inspired by the ATerm library. It is made of five elements : symbols, nodes, smartpointers, trees and lists : +------------------------+ | shlysis | +------------------------+ | rec | |------------------------| | list | |------------------------| | tree | |------------------------| | nodes | | |---------| smartpointer | | symbol | | +---------+--------------+ API: ---- 1) Symbols : ------------ Sym q = symbol("abcd"); : returns a symbol q of name "abcd" const char* s = name(q); : returns the name of symbol q 2) Nodes : ---------- Node(symbol("abcd")); : node with symbol content Node(10); : node with int content Node(3.14159); : node with float content n->type(); : kIntNode or kFloatNode or kSymNode n->getInt(); : int content of n n->getFloat(); : float content of n n->getSym(); : symbol content of n - Pattern matching : if (isInt(n, &i)) ... : int i = int content of n if (isFloat(n, &f)) ... : float f = float content of n if (isSym(n, &s)) ... : Sym s = Sym content of n 3) Trees : ---------- tree (n) : tree of node n with no branch tree (n, t1) : tree of node n with a branch t tree (n, t1,...,tm) : tree of node n with m branches t1,...,tm - Pattern matching : if (isTree (t, n)) ... : t has node n and no branches; if (isTree (t, n, &t1) ... : t has node n and 1 branch, t1 is set accordingly; if (isTree (t, n, &t1...&tm)...: t has node n and m branches, ti's are set accordingly; - Accessors : t->node() : the node of t t->arity() : the number of branches of t t->branch(i) : the ith branch of t 4) List : --------- nil = predefined empty list cons (x,l) = create a new list of head x and tail l list(a,b,..) = cons(a, list(b,...)) hd(cons(x,l)) = x, tl (cons(x,l)) = l nth(l,i) = ith element of l (or nil) len(l) = number of elements of l isNil(nil) = true (false otherwise) isList(cons(x,l)) = true (false otherwise) lmap(f, cons(x,l)) = cons(f(x), lmap(f,l)) reverse([a,b,..,z]) = [z,..,b,a] reverseall([a,b,..,z]) = [ra(z),..,ra(b),ra(a)] where ra is reverseall - Set : (Sets are implemented as ordered lists of elements without duplication) isElement(e,s) = true if e is an element of set s, false otherwise addElement(e,s) = s U {e} singleton(e) = {e} list2set(l) = convert a list into a set setUnion(s1,s2) = s1 U s2 setIntersection(s1,s2) = s1 intersection s2 setIntersection(s1,s2) = s1 - s2 - Environment : pushEnv (key, val, env) -> env' create a new environment searchEnv (key,&v,env) -> bool search for key in env and set v accordingly - Property list : setProperty (t, key, val) -> t add the association (key x val) to the pl of t getProperty (t, key, &val) -> bool search the pp of t for the value associated to key remProperty (t, key) -> t remove any association (key x ?) from the pl of t 5) Recursive trees ------------------ rid() = a unique ID (a tree) used to identify recursive trees rec(id, t) = a tree containing recursive references 'ref(id)' ref(id) = a reference to a surrounding 'rec(id,t)' isRec(t, id, t') = true if t = rec(id,t') isRef(t, id) = true if t = ref(id) areEquiv(t,t') = alpha equivalence of trees shmax(t) = maximize the sharing of recursive subtrees 6) Sharing Analysis : --------------------- shprkey(t) -> k = unique sharing property key of t shcount(k,t') -> n = returns the number of occurences of t' in t (where k = shprkey(t)) shlysis(t) -> k = annotated the subtrees of t with prop (key sharing-count) (0 if t' is not a subtree of t) History : --------- 2002-02-08 : First version 2002-02-20 : New description of the API 2002-04-07 : Added Sharing Analysis 'shlysis.h' ****************************************************************************** *****************************************************************************/ #include "symbol.hh" #include "node.hh" #include "tree.hh" #include "num.hh" #include "list.hh" #include "shlysis.hh" //#include "recness.hh" #endif faust-0.9.46/compiler/tlib/node.cpp0000644000175000017500000000057011702130733017044 0ustar orlareyorlarey#include "node.hh" ostream& Node::print (ostream& fout) const ///< print a node on a stream { switch (fType) { case kIntNode : return fout << fData.i; case kDoubleNode : return fout << fData.f; case kSymNode : return fout << *(fData.s); case kPointerNode : return fout << "ptr:" << fData.p; default : return fout << "badnode"; } // return fout; } faust-0.9.46/compiler/tlib/symbol.cpp0000644000175000017500000001102311702130733017417 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ #include #include #include #include "symbol.hh" #include "compatibility.hh" #include #include #include using namespace std; /** * Hash table used to store the symbols */ Symbol* Symbol::gSymbolTable[kHashTableSize]; /** * Search the hash table for the symbol of name \p str or returns a new one. * \param str the name of the symbol * \return a symbol of name str */ Symbol* Symbol::get(const string& str) { char buf[1024]; int i; int n = str.length(); if (n>1023) n = 1023; for (i = 0; i < n; i++) { buf[i] = str[i]; } buf[i] = 0; return Symbol::get(buf); } /** * Search the hash table for the symbol of name \p str or returns a new one. * \param str the name of the symbol * \return a symbol of name str */ Symbol* Symbol::get(const char* str) { unsigned int hsh = calcHashKey(str); int bckt = hsh % kHashTableSize; Symbol* item = gSymbolTable[bckt]; while ( item && !item->equiv(hsh,str) ) item = item->fNext; Symbol* r = item ? item : gSymbolTable[bckt] = new Symbol(str, hsh, gSymbolTable[bckt]); return r; } /** * Static method that searches the symbol table for a string. * \param str string to search * \return true if the string is NOT in the table (it is a new string) */ bool Symbol::isnew(const char* str) { unsigned int hsh = calcHashKey(str); int bckt = hsh % kHashTableSize; Symbol* item = gSymbolTable[bckt]; while ( item && !item->equiv(hsh,str) ) item = item->fNext; return item == 0; } /** * Creates a new symbol with a name obtained by concatenating the \p str prefix with a number in order to make it unique * \param str the prefix of the name * \return a symbol of name \p prefix++n */ Symbol* Symbol::prefix (const char* str) { char name[256]; static map gPrefixCounters; for (int n = 0; n<10000; n++) { snprintf(name, 256, "%s%d", str, gPrefixCounters[str]++); if (isnew(name)) return get(name); } assert(false); return get("UNIQUEOVERFLOW"); } /** * Check if the name of the symbol is equal to string \p str * This method is used by isnew() and make() when searching the hashtable * for an existing symbol. * * \param hash the hash key of the string (used to speedup the comparison) * \param str the string to compare * \return \p true if the name of the symbol and \p str are the same */ bool Symbol::equiv (unsigned int hash, const char *str) const { return (fHash == hash) && (strcmp(fName,str) == 0); } /** * Compute the 32-bits hash key of string \p str * \param str the string * \return a 32-bits hash key */ unsigned int Symbol::calcHashKey (const char* str) { unsigned int h = 0; while (*str) h = (h << 1) ^ (h >> 20) ^ (*str++); return h; } /** * Constructs a symbol ready to be placed in the hash table. * It makes a private copy of its name. * \param str the name of the symbol * \param hsh the hash key of the symbol * \param nxt a pointer to the next symbol in the hash table entry */ Symbol::Symbol(const char* str, unsigned int hsh, Symbol* nxt) { int len = strlen(str); fName = new char [len+1]; memcpy(fName, str, len+1); fHash = hsh; fNext = nxt; fData = 0; } Symbol::~Symbol () { delete [] fName; } ostream& Symbol::print (ostream& fout) const ///< print a symbol on a stream { return fout << fName; } faust-0.9.46/compiler/tlib/list.hh0000644000175000017500000001450511702130733016712 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ /***************************************************************************** ****************************************************************************** LIST Y. Orlarey, (c) Grame 2002 ------------------------------------------------------------------------------ This file contains several extensions to the tree library : - lists : based on a operations like cons, hd , tl, ... - environments : list of associations (key value) - property list : used to annotate trees API: ---- List : ----- nil = predefined empty list cons (x,l) = create a nex list of head x and tail l hd(cons(x,l)) = x, tl (cons(x,l)) = l nth(l,i) = ith element of l (or nil) replace(l,i,e) = a copy of l where the ith element is e len(l) = number of elements of l isNil(nil) = true (false otherwise) isList(cons(x,l)) = true (false otherwise) list(a,b,..) = cons(a, list(b,...)) lmap(f, cons(x,l)) = cons(f(x), lmap(f,l)) reverse([a,b,..,z]) = [z,..,b,a] reverseall([a,b,..,z]) = [ra(z),..,ra(b),ra(a)] where ra is reverseall Set : ----- (Sets are implemented as ordered lists of elements without duplication) isElement(e,s) = true if e is an element of set s, false otherwise addElement(e,s) = s U {e} remElement(e,s) = s - {e} singleton(e) = {e} list2set(l) = convert a list into a set setUnion(s1,s2) = s1 U s2 setIntersection(s1,s2) = s1 intersection s2 setDifference(s1,s2) = s1 - s2 Environment : ------------- An 'environment' is a stack of pairs (key x value) used to keep track of lexical bindings pushEnv (key, val, env) -> env' create a new environment searchEnv (key,&v,env) -> bool search for key in env and set v accordingly search(k1,&v, push(k2,x,env)) = true and v is set to x if k1==k2 = search(k1,&v,env) if k1 != k2 Property list : --------------- Every tree can be annotated with an 'attribut' field. This attribute field can be used to manage a property list (pl). A property list is a list of pairs key x value, with three basic operations : setProperty (t, key, val) -> t add the association (key x val) to the pl of t getProperty (t, key, &val) -> bool search the pp of t for the value associated to key remProperty (t, key) -> t remove any association (key x ?) from the pl of t Warning : --------- Since reference counters are used for garbage collecting, one must be careful not to create cycles in trees. The only possible source of cycles is by setting the attribut of a tree t to a tree t' that contains t as a subtree. History : --------- 2002-02-08 : First version 2002-02-20 : New description of the API, non recursive lmap and reverse 2002-03-29 : Added function remElement(e,set), corrected comment error ****************************************************************************** *****************************************************************************/ #ifndef __LIST__ #define __LIST__ #include "symbol.hh" #include "tree.hh" #include // Basic List Operations implemented on trees extern Sym CONS; extern Sym NIL; extern Tree nil; typedef Tree (*tfun)(Tree); void print (Tree t, FILE* out=stdout); //bool printlist (const CTree* lc); // to create new lists inline Tree cons (Tree a, Tree b) { return tree (CONS, a, b); } inline Tree list0 () { return nil; } inline Tree list1 (Tree a) { return cons (a, list0()); } inline Tree list2 (Tree a, Tree b) { return cons (a, list1(b)); } inline Tree list3 (Tree a, Tree b, Tree c) { return cons (a, list2(b, c)); } inline Tree list4 (Tree a, Tree b, Tree c, Tree d) { return cons (a, list3(b, c, d)); } // to access the head and the tail of a list inline Tree hd (Tree l) { return l->branch(0); } inline Tree tl (Tree l) { return l->branch(1); } // predicates inline bool isNil (Tree l) { return (l->node() == Node(NIL)) && (l->arity() == 0) ; } inline bool isList (Tree l) { return (l->node() == Node(CONS)) && (l->arity() == 2) ; } // predicates Tree nth(Tree l, int i); Tree replace(Tree l, int i, Tree e); int len(Tree l); // reversing Tree reverse (Tree l); Tree reverseall (Tree l); // operations Tree rconcat(Tree l1, Tree l2); Tree concat(Tree l1, Tree l2); Tree lrange(Tree l, int i, int j); // de i a j exclu // mapping Tree lmap (tfun f, Tree l); // Sets bool isElement (Tree e, Tree l); Tree addElement (Tree e, Tree l1); Tree remElement (Tree e, Tree l1); Tree singleton (Tree l); Tree list2set (Tree l); Tree setUnion (Tree l1, Tree l2); Tree setIntersection (Tree l1, Tree l2); Tree setDifference (Tree l1, Tree l2); // Pairs //inline Tree pair (Tree t1, Tree t2) { return cons(t1,t2); } inline Tree left (Tree t) { return t->branch(0); } inline Tree right (Tree t) { return t->branch(1); } // Environment : stack of pairs key value) Tree pushEnv (Tree key, Tree val, Tree env=nil); bool searchEnv (Tree key, Tree& v, Tree env); // Operations on the property list of a tree t void setProperty (Tree t, Tree key, Tree val); bool getProperty (Tree t, Tree key, Tree& val); void remProperty (Tree t, Tree key); // Mapping sur les arbres Tree tmap (Tree k, tfun f, Tree t); // remplacement Tree substitute (Tree t, Tree id, Tree val); #endif faust-0.9.46/compiler/tlib/property.hh0000644000175000017500000000500311702130733017614 0ustar orlareyorlarey#ifndef __PROPERTY__ #define __PROPERTY__ #include "tree.hh" template class property { Tree fKey; P* access(Tree t) { Tree d = t->getProperty(fKey); return d ? (P*)(d->node().getPointer()) : 0; } public: property () : fKey(tree(Node(unique("property_")))) {} property (const char* keyname) : fKey(tree(Node(keyname))) {} void set(Tree t, const P& data) { P* p = access(t); if (p) { *p = data; } else { t->setProperty(fKey, tree(Node(new P(data)))); } } bool get(Tree t, P& data) { P* p = access(t); if (p) { data = *p; return true; } else { return false; } } void clear(Tree t) { P* p = access(t); if (p) { delete p; } t->clearProperty(fKey); } }; template<> class property { Tree fKey; public: property () : fKey(tree(Node(unique("property_")))) {} property (const char* keyname) : fKey(tree(Node(keyname))) {} void set(Tree t, Tree data) { t->setProperty(fKey, data); } bool get(Tree t, Tree& data) { Tree d = t->getProperty(fKey); if (d) { data = d; return true; } else { return false; } } void clear(Tree t) { t->clearProperty(fKey); } }; template<> class property { Tree fKey; public: property () : fKey(tree(Node(unique("property_")))) {} property (const char* keyname) : fKey(tree(Node(keyname))) {} void set(Tree t, int i) { t->setProperty(fKey, tree(Node(i))); } bool get(Tree t, int& i) { Tree d = t->getProperty(fKey); if (d) { i = d->node().getInt(); return true; } else { return false; } } void clear(Tree t) { t->clearProperty(fKey); } }; template<> class property { Tree fKey; public: property () : fKey(tree(Node(unique("property_")))) {} property (const char* keyname) : fKey(tree(Node(keyname))) {} void set(Tree t, double x) { t->setProperty(fKey, tree(Node(x))); } bool get(Tree t, double& x) { Tree d = t->getProperty(fKey); if (d) { x = d->node().getDouble(); return true; } else { return false; } } void clear(Tree t) { t->clearProperty(fKey); } }; #endif faust-0.9.46/compiler/propagate/0000755000175000017500000000000011702130733016441 5ustar orlareyorlareyfaust-0.9.46/compiler/propagate/labels.hh0000644000175000017500000000021411702130733020221 0ustar orlareyorlarey#ifndef __LABELS__ #define __LABELS__ #include "tlib.hh" #include "boxes.hh" #include "signals.hh" Tree normalizePath(Tree path); #endif faust-0.9.46/compiler/propagate/propagate.cpp0000644000175000017500000002723011702130733021133 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ #include "propagate.hh" #include "prim2.hh" #include #include "ppbox.hh" #include "xtended.hh" #include "labels.hh" #include "Text.hh" #include "ppsig.hh" #include "names.hh" //extern bool gPrintDocSwitch; //static siglist realPropagate (Tree slotenv, Tree path, Tree box, const siglist& lsig); //////////////////////////////////////////////////////////////////////// /** * propagate : box listOfSignal-> listOfSignal' * * Propage une liste de signaux de l'entrée vers la sortie d'une boite * La boite a été annotée aec son type */ /////////////////////////////////////////////////////////////////////// //! mix une liste de signaux sur n bus siglist mix(const siglist& lsig, int nbus) { int nlines = lsig.size(); siglist dst(nbus); for (int b=0; b signal " << i << " : " << *(lsig[i]) << endl; } cerr << endl; return realpropagate (slotenv, path, box, lsig); } */ /** * Old try for names propagation. */ //siglist propagate (Tree slotenv, Tree path, Tree box, const siglist& lsig) //{ // siglist S = realPropagate(slotenv, path, box, lsig); // // if (gPrintDocSwitch) { // Tree id; // if (lsig.size()==0 && getDefNameProperty(box, id)) { // string nickname = defName2NickName(tree2str(id)); // //setSigListNickName(S, nickname); // } // } // // return S; //} //siglist realPropagate (Tree slotenv, Tree path, Tree box, const siglist& lsig) siglist propagate (Tree slotenv, Tree path, Tree box, const siglist& lsig) { int i; double r; prim0 p0; prim1 p1; prim2 p2; prim3 p3; prim4 p4; prim5 p5; Tree t1, t2, ff, label, cur, min, max, step, type, name, file, slot, body; xtended* xt = (xtended*)getUserData(box); // Extended Primitives if (xt) { assert(lsig.size() == xt->arity()); return makeList(xt->computeSigOutput(lsig)); } // Numbers and Constants else if (isBoxInt(box, &i)) { assert(lsig.size()==0); return makeList(sigInt(i)); } else if (isBoxReal(box, &r)) { assert(lsig.size()==0); return makeList(sigReal(r)); } else if (isBoxFConst(box, type, name, file)) { assert(lsig.size()==0); return makeList(sigFConst(type, name, file)); } else if (isBoxFVar(box, type, name, file)) { assert(lsig.size()==0); return makeList(sigFVar(type, name, file)); } // Wire and Cut else if (isBoxCut(box)) { assert(lsig.size()==1); return siglist(); } else if (isBoxWire(box)) { assert(lsig.size()==1); return lsig; } // Slots and Symbolic Boxes else if (isBoxSlot(box)) { Tree sig; assert(lsig.size()==0); if (!searchEnv(box,sig,slotenv)) { // test YO simplification des diagrames //fprintf(stderr, "propagate : internal error (slot undefined)\n"); //exit(1); sig = sigInput(++gDummyInput); } return makeList(sig); } else if (isBoxSymbolic(box, slot, body)) { assert(lsig.size()>0); return propagate(pushEnv(slot,lsig[0],slotenv), path, body, listRange(lsig, 1, lsig.size())); } // Primitives else if (isBoxPrim0(box, &p0)) { assert(lsig.size()==0); return makeList( p0() ); } else if (isBoxPrim1(box, &p1)) { assert(lsig.size()==1); return makeList( p1(lsig[0]) ); } else if (isBoxPrim2(box, &p2)) { // printf("prim2 recoit : "); print(lsig); printf("\n"); assert(lsig.size()==2); return makeList( p2(lsig[0],lsig[1]) ); } else if (isBoxPrim3(box, &p3)) { assert(lsig.size()==3); return makeList( p3(lsig[0],lsig[1],lsig[2]) ); } else if (isBoxPrim4(box, &p4)) { assert(lsig.size()==4); return makeList( p4(lsig[0],lsig[1],lsig[2],lsig[3]) ); } else if (isBoxPrim5(box, &p5)) { assert(lsig.size()==5); return makeList( p5(lsig[0],lsig[1],lsig[2],lsig[3],lsig[4]) ); } else if (isBoxFFun(box, ff)) { //cerr << "propagate en boxFFun of arity " << ffarity(ff) << endl; assert(int(lsig.size())==ffarity(ff)); return makeList(sigFFun(ff, listConvert(lsig))); } // User Interface Widgets else if (isBoxButton(box, label)) { assert(lsig.size()==0); return makeList(sigButton(normalizePath(cons(label, path)))); } else if (isBoxCheckbox(box, label)) { assert(lsig.size()==0); return makeList(sigCheckbox(normalizePath(cons(label, path)))); } else if (isBoxVSlider(box, label, cur, min, max, step)) { assert(lsig.size()==0); return makeList(sigVSlider(normalizePath(cons(label, path)), cur, min, max, step)); } else if (isBoxHSlider(box, label, cur, min, max, step)) { assert(lsig.size()==0); return makeList(sigHSlider(normalizePath(cons(label, path)), cur, min, max, step)); } else if (isBoxNumEntry(box, label, cur, min, max, step)) { assert(lsig.size()==0); return makeList(sigNumEntry(normalizePath(cons(label, path)), cur, min, max, step)); } else if (isBoxVBargraph(box, label, min, max)) { assert(lsig.size()==1); return makeList(sigVBargraph(normalizePath(cons(label, path)), min, max, lsig[0])); } else if (isBoxHBargraph(box, label, min, max)) { assert(lsig.size()==1); return makeList(sigHBargraph(normalizePath(cons(label, path)), min, max, lsig[0])); } // User Interface Groups else if (isBoxVGroup(box, label, t1)) { return propagate(slotenv,cons(cons(tree(0),label), path), t1, lsig); } else if (isBoxHGroup(box, label, t1)) { return propagate(slotenv, cons(cons(tree(1),label), path), t1, lsig); } else if (isBoxTGroup(box, label, t1)) { return propagate(slotenv, cons(cons(tree(2),label), path), t1, lsig); } // Block Diagram Composition Algebra else if (isBoxSeq(box, t1, t2)) { int in1, out1, in2, out2; getBoxType(t1, &in1, &out1); getBoxType(t2, &in2, &out2); assert(out1==in2); if (out1 == in2) { return propagate(slotenv, path, t2, propagate(slotenv, path,t1,lsig)); } else if (out1 > in2) { siglist lr = propagate(slotenv, path, t1,lsig); return listConcat(propagate(slotenv, path, t2, listRange(lr, 0, in2)), listRange(lr, in2, out1)); } else { return propagate(slotenv, path, t2, listConcat( propagate(slotenv, path, t1, listRange(lsig,0,in1)), listRange(lsig,in1,in1+in2-out1) ) ); } } else if (isBoxPar(box, t1, t2)) { int in1, out1, in2, out2; getBoxType(t1, &in1, &out1); getBoxType(t2, &in2, &out2); return listConcat( propagate(slotenv, path, t1, listRange(lsig, 0, in1)), propagate(slotenv, path, t2, listRange(lsig, in1, in1+in2)) ); } else if (isBoxSplit(box, t1, t2)) { int in1, out1, in2, out2; getBoxType(t1, &in1, &out1); getBoxType(t2, &in2, &out2); siglist l1 = propagate(slotenv, path, t1, lsig); siglist l2 = split(l1, in2); return propagate(slotenv, path, t2, l2); } else if (isBoxMerge(box, t1, t2)) { int in1, out1, in2, out2; getBoxType(t1, &in1, &out1); getBoxType(t2, &in2, &out2); siglist l1 = propagate(slotenv, path, t1, lsig); siglist l2 = mix(l1, in2); return propagate(slotenv, path, t2, l2); } /* else if (isBoxRec(box, t1, t2)) { int in1, out1, in2, out2; getBoxType(t1, &in1, &out1); getBoxType(t2, &in2, &out2); siglist l0 = makeSigProjList(ref(1), in2); siglist l1 = propagate(slotenv, path, t2, l0); siglist l2 = propagate(slotenv, path, t1, listConcat(l1,listLift(lsig))); Tree g = rec(listConvert(l2)); return makeSigProjList(g, out1); } */ else if (isBoxRec(box, t1, t2)) { // Bug Corrected int in1, out1, in2, out2; getBoxType(t1, &in1, &out1); getBoxType(t2, &in2, &out2); Tree slotenv2 = lift(slotenv); // the environment must also be lifted siglist l0 = makeMemSigProjList(ref(1), in2); siglist l1 = propagate(slotenv2, path, t2, l0); siglist l2 = propagate(slotenv2, path, t1, listConcat(l1,listLift(lsig))); Tree g = rec(listConvert(l2)); return makeSigProjList(g, out1); } cout << "ERROR in file " << __FILE__ << ':' << __LINE__ << ", unrecognised box expression : " << boxpp(box) << endl; exit(1); return siglist(); } Tree boxPropagateSig (Tree path, Tree box, const siglist& lsig) { return listConvert(propagate(nil, path, box, lsig)); } faust-0.9.46/compiler/propagate/propagate.hh0000644000175000017500000000422411702130733020746 0ustar orlareyorlarey/************************************************************************ ************************************************************************ FAUST compiler Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale --------------------------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************ ************************************************************************/ #ifndef _PROPAGATE_ #define _PROPAGATE_ #include #include "boxes.hh" #include "signals.hh" //////////////////////////////////////////////////////////////////////// /** * boxPropagateSig : box listOfSignal-> listOfSignal' * * Propage une liste de signaux de l'entrÈe vers la sortie d'une boite * La boite ‡ ÈtÈ annotÈe aec son type */ /////////////////////////////////////////////////////////////////////// using namespace std; typedef vector siglist; siglist makeSigInputList (int n); Tree boxPropagateSig (Tree path, Tree box, const siglist& lsig); //bool getSigListNickName (Tree t, Tree& id); //void setSigListNickName (const siglist& lsig, const string& nickname); //siglist makeSigProjList (Tree t, int n); //siglist lrepeat(int n, const siglist& l); //siglist lmerge(int nbelems, int nblignes, Tree src); /* exemple : Pour calculer 'lsig' la liste des signaux de sortie d'une boite 'box' ‡ n entrÈes on utilisera : lsig = boxPropagateSig(box, makeSigInputList(n)); */ #endif faust-0.9.46/compiler/propagate/labels.cpp0000644000175000017500000000675311702130733020422 0ustar orlareyorlarey#include "labels.hh" #include "compatibility.hh" //=========================== PATHNAME =============================== /** * Grammar for labels with pathnames *----------------------------------- *

~Ӕ z ^uKGHT;dm e<5E)bGs,B㻔н:bGiى:pP=ނo(fU#}}Qr/WB ߟ<~r{~>ީ6͙LcJ쑲I[d cT(zd_iR\ zaDž,]KQ ?gz1 {VKt~Ph+~sO49 :pJJh^1r_RV:2%T}6/iy~>SNNuz_ptn:r<2\NcdO!sQՖzcnN\-7II;UI]۩:G7l-OO.ĆSs௠H&(C($tnHJUo!hMO;6o${ӻecm#iW;(Ȓ)E*,lL6EZc蝣$ԟ?h!tm']]ۻT[MJ-&-cqrzIU I};?_vh[iNox%6R3\ԭKE.g]/ӷF|*WBV9/lI&NK\=ۏ;2\hBIM- g42"ˊ5%ŞFi$55P6f FPL%r^j1ĕNלiVKJG RmBL:6Y)GVAlPk`+r@iM˳:9.F'c;C/(]=Tl)SR&qtѵ8u,ZI2gӍ;T.}uer[+=ePnܗ/~]xrSaU]=:%Jr<8M9_&2mVCmYjJ7JVGzTg5p;a"ϡܙe@7fg%,ŗ~@ќORqnLÊْz2bH(95Gș"\Ocry 1.PFas8ıOxfv;Q^O8S*v)򐜲lWvpqbjZfn_{l:1o5#ڊiGg{?ܻSU kvݶװ&lƚP8χ%cKHa\a=\LeKU%REqQh<{CLM)v8J3ə$s}c*kɘ"?qU(Ƣj6.y*ȳyļ'bX--ow9>4n;䩮YRѓ` !f]W!ŨhIUuuMrlgU ___^`/I~~,(rιunV}:hE?9~d1U_ZpnmLʆ8~n%W 6Sg1ܘuc}Q`CdEbihή ,怘Bsa [d- &Oܛ"H`ʔ)[4\dXJXmV d]>h~wKe]Tt}O$To-F}K|~W׆?3''w>npu'wʵr>r=￸zws^X+@Vkݧl;E^x5f)gZ>>QO>>~,F~zAf!h"B5җ\- ILYʕ0qAl4 xfi ?$䛋ⴄsO2F/ F NeFQ4@-s8g0ݜ{:9]G?zy23A,VbKe8-9Vӗ陑/;} yk/dnCߏ\v7dQ S ׺Z6_"f 5hFEy:OC4l&V~<]?g_&r̫]72A/pWa*zSF,7`;̼֣gG#$PG_Ryf 99lu7:si~AQG_a^̞GC^x07w>#^lhf* fQ0{z6Jb,w 2ohnOԏA֛iwisq=L0CwVnjdin+c Fu껾߃j)lzꣃ,"*du^4z/CvXtCfq!6Q #},Y݌VA{nG9: KbX/[Y/J02FbJߎ<1(Ђ%ߌ ܼx1n;$=Y6ΒkJQ|&G.6HEĹpԦ+Z|VKrQ}y =ϴhњHwk'Fw=ѻn3Djh:i|iќBefiiʨ{#35-B٪f#W3LˑFʞUUhx 2șcgBO\zVG>?KC1-bV^;.y.JcvHQH^ygeƢ3^՟PT@t=_=+|{6ا:}~Dg{;3:Z3O.}z}3(ia~G '4&PUPa WoUx.Fh qtTqIgU|'wXiEc>OuiʃJyAd)^Wnʕ&5BTj-Zla6Jǣwz-G[ +Pأ}vP3K+6 x ta](V˸v{@iڠߦxr%_w_UCJE7nP֪AHioS+PyG5!~eiJ_uӹnLYAիݮG R~˭*^\ B;o1%"ORE_ T7z20<k@.\vܮCRplߍa5x]]ҔQwp0ٔF A DxQm(Pڅİ\aH{G4558Ctks @Xj~B߰ǃ$zш{w8dK  j+*FGGy–AO`7*]x9eQ̓\MY}U˪ƆUkV+kZKV56Ь4\yu{b\b\ABLc ѳl1t=cʘwtlC>(~MXtC rf(M' Q+qCg!kL8:C3DwT̂"Na"GN٦a3L `.W6+|ˍE̕+6:WuӜ*]J~-ݧ9q$eȘQ,=w`A]:܃?7mᱪofqzm =+sp`;=4FruFR ;SkDXaugbLrή=Wv`-ظoKj(5-Zb؊̅UUa[F^lɲĸ/u_i! H.GN8ym1Δ_"GXY?A O8 q'?A O8 OD7 ^/F!:>gb&{Y2^#u1vdcz9Z9|+X6MJ=G{ #R(9iv~7?G0XY%* C>{d7˨X#Kߥ\wOY> )p)BlO,vNe+Xjz+k\~ׅܞ;hρZ_H+&ikŶz`"q6 $ +BKSP5dZ{i$!7w"7$\?EcdSuup}7s5|7;;!c>>ey򲖦4ݼ#պvFIЄ ؝ ͚uCG衹JJvn۠l8BGKgk^ObiSgg+ar̿z*_09rv&ie(`gr e\!+|\^1rGMv{DQ&sTc""2"3LeFGEʙ%ȺLIV8n+k;&Ͱq~Ͱ'f//(&P}E(޾:RaLe“J_ueQ L:ى|aҡ$CYW^{> endobj 8 0 obj <> stream x]MO  aeݏCCbiê(L+B^>VM<@y_t@^=Xi mwκDE} endstream endobj 9 0 obj <> endobj 10 0 obj <> stream x|yx[Ź;sVo. :bDZ5N˱H$&v ,˱RĄ-aC!eې-RLN)t6RZ4]bߌ7m<_̙̼w9Hi?) y$3ex?RLjLk;"oPNd8w:"mS5X=OL_myΗ /iR8ڠ̴و{q1$p8a;ĝ8?JTY?8QQ Ry mc oJi\Q F2G_g Zjk&j?J&Vz㞸΢%4?H26Gϳ<۠ni̷+͆gi#]@4B}ev+o26Mm_REt {JH}ptc_ߠlzYSYCWYLՈfkYybƊ<~%Ry*vX( -!i9-=$^-Aj~Q*%[1(Kn~%L*Gߪ6XP-j1k023;+b5X {  nxXh_KjDwɣT {.)5[}|IRFz~k ,y 9mpDaî]Jߩl C 5~AEҮZ.}a5q ;fjQ~x/e6Zϖ+4S7ӊ5ܧjGlk+B']ԋUY=bfjf&{?33 qg쨹x_-'u`m|Ĵ71l;.uGm[炳9f6w)\x"gQ2ZFY}QE)!j9/q~(fd(t+k|uɣ Uy[煣snpjF{FݓN=Z{f:Ƃ膛[[[m޸šhaΦI$:դN33 \y7vi8ٰ׆M'} Ӌp`X)S ixs)eNjVTlZzn0yvN:IOL#[j&#ϲӒ؎xOarX<ӳl{YVFsY1*wIRR3y˙9,ɵ9y>8v7lֿ^#{cC 'qIëN3W]zeMعĘ2 {\*n^wΪh{c7mǕpޭ\t;wxF!»md^myɓ77 ob{<9  kJ:&xdzS~OAR^~WqͶl:NWWl.gU0Y(;Ke嬬YV8ub{2o/G?M?wm!QVuF\%w%u Rѕ:PdG2%9$I>Zn21*h-!Re XTK2}fP3lT̔Iܕ~6;#lQ"ȩMl۔HkCa`HnjvEWa[k мsJ]-ޮhzhOGszR⿜HIoTPe+kMM4.>cyVkңݲ 1˯Fffs &^ƻMw5XJRseJf& ngE1I(rRdU$u z)<'yɍxlq[M,dE2r7_aADj;"^V)3߀;u/M}a{/?I!`|vQ}kSؤ6=f6ej@ؒm%^PB61͖4Umfȿ%me)+m,9/'' eמtbC:]x!VpzF}J`5E /ӳFeu9WJ [ugԽ:˙VV>~2-j(Zy[PڏHL4r,uceierGa쳌aMN?`4Vn*fKZ5ؐؓuƍ˄ 6K^EoEMvc}.)37BYTYbnI{f0bq)5ŘYqCH]Xdi'vf&'bRRG cLn`ټ,{G+0m'Xnre˕,vO2n|y[GkگM;{7\{|t/usxGZ<|z7 :eZ%δnz35=~lohWCtm=݆1ĘVcr~Cb|Txq|xz!& .FwT\m僟<*ggDYRV) 贁r6N6S1贅F:mUh:D_t2[t:xNiϾ'tVӜT:VhmNd 봁m:m^6S:mtN[;c:Dՙ~2:\өT%LQOͽSU >*~OFs*e.iK:\%mx=SUt[Ӑרo޹: y47o:FuA߂O44]ȯ:.]VeijY$gJgI:YRQaN_iD$mrni!狒1/yVH:KSs=%oH:Y˙N-ϖt_JYyN ݒ.5VF ,Gҋ=u,\=/Kzo4j`ے.)Miħ4ag J:Cegi_*,*=_A''^2/eꤽ /<52Z' Hzi-si-n$A+@qRReu`f" }$"#-*jreD%^X*9f4x$~է{XB\)%Fӣ=IYQ۞Yemk. ɺ ' =ҫlnLɌROX-z\%h*;ŌagyDP!P"axFz@А7gl׾0Z ]!rwǀ\K@ yYvHdbY1 ^<-w⺿'-W 8~\bGQJЊ&9I)xSVS4͎'I"=s5]23#WdVgvoKhn9{fH_;(VkM=^;{5J DdfΑɫ8lMs^*Γ2Oק_Eʝ1aua]2Lz0RԪ8U&v1uC퐾|nmg ~1+{EY~\kqx6W$}2ҾyW{yu;wH 놤/7"Kfs}8o5"#.k~u;j"Ucn]XC\}l{/qwh o{ xIɻՈO\{w?gF^P<;5hݱzSLu?d\Oհz"~ƵgFx>iē@ k_8+Ǔb-ZOGQYjtDմ  ص2U~ zνoվuxMaCZ?aX z*w?0U aZ0"FBaqКᐶx>z`ߌ̵rDCk/CBtMŚds,9h)CZgrwi\ zwBaoۧ0XuhVunҶWh>; bV| {y{7S`}o ћ};BH<> jMM8j!7@>oȷsx.CW ap'? }{z=Pu!7G<O% {_x@ahA0 w8"[Hxn;CO9 e"ޠ4?28R C~( EBaj(w;?ZCB78A.u~O wb x_ ¡ ya@0{POK^g{5B CAްB>^-BIhzwGːaQ'p=E( ){R0D{Þ { LKL BB`C~)b   V]Wvbx1ꕐ[:7nԹqfmjMnmmԺ3Śb@Xg&B,rCAXF4KL:# YܻWGT,Q,QF_,aw^QZ7`nW,# 9"ɋyE^OyG)JYR퍄!f9,4c y6`Qm`݋ sP!ڶaY{gO΅vkæs8,M`}}>QʠܕW᠌\0j7AwE*QGFz}B~*WKd<69'voHuݒ94 a yG) >dҋonfɍ˱p̭[zYuA :p(YS[\^S^U[Uelk`Uuum-u+봺իWէX?d}bgyrqի$[, S<|Sy |mpk3_g68 |mpk3_g68_~~d!1qjˑSgϕFhz𿉱:,_O+qnII';/iׯ痫r>G1uzڬVר.M}~37#mUgh~ogkʼn*7?;[GՕ_F?ӼV4R>?a˪qM*wMeָlԎ)l)4N~Vڇ+9" kj 7M1+@ߺy&RRk,QfDfDj*VJ #@*EFQfVy37R@ 1D$Q;"a{c͟ 챌LfHNi|Z 4Jteń@1K2B9"O+d$D8g8":e_c^_&?:-I#kZ_t(ΟBIa9?B_y#W"V]$@gsJpDnNd4ogiD R)ZvS@ @$" G z葈 zG"=@HD;@.@DDDDp%. \@pI . * $ * *    M"4 4 4 4ЀЀ$ 6aM"l2?481 qL"q c@c@W6} 䨄( G9*!G9 Q G\m?N;S;%+&Q @DJD(Q " DT"ƀb 1b 1 $bLnM Sïb]f\\~\-_I tPղd?BŲ<هaf1G]ZS-h;h= IR/ -Wi-L1534}G TS>n}8 %k*ky+Rb){=Zn)eM~.SN|Y+xe3[Xj${*-w m huh5hhEh9V .]Sh 4rrponv)ķR",+ز*te[=[hh b_CFh9Dw(E=Ee/8R6rک[[c v~̱]YlY.".g]"4snIQ/ʹL$\g@2xu̕8@`Q?&Ut/M \VS_s#d>}T_s,qdw9*7O1}Ts\M]*G5G1۱ձ1ŎͺÏ9!p#(9-&npuS"&!)Ih_MV7]LMg%LMY ͜jN6[fѬYc2+ Ȩ*iG9}JoXڢSjբt8' zh5emh]Y[~Q8c7wc4?=ɨkuwZ]#Xu&{ΞF{cƺ -9Dz}>8zG[GWAwEr֖# W֖qM}B%k?e{>'N DB)3r[-ZU=-S96nNƧ0Y#XXT+C]VVg?rR> endobj 13 0 obj <> stream x]N <Ƥ!YWX} JbPz;of^:i> endobj 15 0 obj <> stream x|y`Ǖ>>%XdOȶ _`piX,2V-!vf 97!i6mMBC@4W}A4 -Modiv~H~{3͛޼a*Q TPXzN lO$ Ֆ}#=/mt ^2w^^I,/N'a-,g=yw_#i`b:H~w6b9PUbyz>?H\u쓈 Guf1}MEߧdP>b'F8IRaɆax8 xtC4@ Fh9~%Hpx$c*2'>"4z%,V#!k*P~=Z IjH%p\Heŋ[: ;8*1n?&jAh iP q78rQuC2X  yЇ? ɛ1ᯢV'UT-9ʠ g 7-%J?m"ȳa[I C6ѯעk! NWÏg'Q"RB"/)#SABGKa-\p%0?Bka!"~$mIKQ x^F,G?ׅ 'q&i{gQ:^u8y'ݰ>//Mx"[1r|Jt~4BM*,&<%JL{> u=uo+ߊ>IW?@$6(z+k;Z!x:ou@dYOH"7[/hgR 'a &T?[UkŗGlx B8?z_NH,ыnz& a72A1+i1ѻ1OCO0.~[1{j .0a =@ |Fs xDB'п!{I]p\I'"ur6LNr|%s9^&E^hI5Hh"9b/$ajRQN)<;و&77>"[`/1,!E{)hPɴ52"Bn;ҺlvDH[}D,">cӁoH{ 0Ngb}Y{Dpw1R8ncİ=L6jF>GGwJCkgZٵe`_9ڌCh,FEl*򤼶&VU)g~bڏS4nFjͶwct];22l),ثO7YI t8;ZN0l1 "GBMm8*vV AW5tz?ۤѓnR՟F0l3p4#Q%\^X04I7z Z۱[ǢbʼIta!cM\<bgGvC9YˎXtNx='͛3ҚzEH4{u5KMm[(Um E4xDEK-aĭU*\+ u5 f!S,pQMKfD&KUH}2oϤF;dL7eJE3ˋ(]⨀y3ښ1G6ۤQdtGMFaa4d7̑:pdQ!enИkQftA%>*@F|@Vz S5լREZ/ J)֔\$:R@(@Wxa!7uzĞ;Mt{փ[Osvwg}=Ŵ_x1%ڌױ9dM3kEތ_gƫuΐe$I4-#iIH2tCb&I7elfK ސRtNŬM7I.CbWtjwRRbb\\Ҩ+&Vi\\kqIIdͣ8]?O 8Ý=jx-lfqzB&Ԅqщtn[yӟsۉ6R˯GU:kO1Z ;UEΝ"#C$%t,(![7ieB96`K 6U]p Wk}SGVտ!,~g&Nmcoɔp4zrjX z O'?@Awdq'NХ(hJP3INOLNtz2jCI'&:ca-պ% oFtUk%m6Ui'IˣDvHDBW|w\'/^/w}eܼw줭}~Snu =_nѣ ՀƿO>Ymq#l$VMEEYiFmgexɳSUoK{n~W}ݑK$ؾv 1ْ߽7uwpoc߲gxQ\0iďkVrdm!d.JHfs~x}J13ɂ,an&5Cr&I˔U du$KeEC iD!)DNfr.c[*.\]m==TMǻhI!5žVvՅ:+Z!j4D?WK2צ2ЀtDթtv_x:jrWm&)1 DCfisJ;Wdq>9~z+[a-~Ѝ&zc?{R J`FJW|5 WbֳIJt5ϮWRY,X+_?䃩c% O9SwBS+;19_/^.TAju=%}{u4[krNH6\TT]5FN.,$-oHdbZa[2oC3,2"f]jx|B-Qâ֊@5sw-57]VnTٝEUiUNUaRjLLH$*H4&,%dc9a~)S]☣oO׃*Cr@%Cta%g&Myf.\ c .AJ8  iH&ܕp0D&ae 9+/R)Rʉ1CBy %lְzq=z:x={Pg٪jSs zaw#VdAcݛʼn "/5Rxډ_O{cΫYoHoZ_u #C%]KR!D> :> oS56j/8Hnm)Xcʒgg%t))Ygos|27z+~mqJ4>Iw%d-Ύf$188e]%N$cNUb68 t^L&Nl qN|a@ l0̰J!01njL6A=6N(IF&<#2#zD_-?D٭Y@*w495Z%ܺR+߾+뺩eoi:zŜha{ӕu]0~l_LͥW9ۧǗXѱIWsR叚~`E֨gjf*h~TgsFLbFO PeofY 9J.*Ϲ\ 4S uۉ q\VIdO>ů#+hZ2WEGQhɽ BkIB(}^ş:FNmL$# 3m M@+4}X(oWhSBcTՐ?UhQHiP8hJ٠ԝrB'o :I4Sp=)*7KZ< N>Ph$50VhQrRh&3k2)41(4״HQ.F~_ 5M)4A)47+_BFZoVhB#ghN'`}6dNdsB$c i=s+Ei&trDZ|q|Ш sBNgqc :9mfz:(4, $(mK0)9}az)4Y  ?t!zcF 8UخЬ~щ2] 4K1yQhz ܏^g%aFCivucsHXӇji$X-}08º a>kf!{Ey! Fz>F75>y!".;f4«(%Ѓ #qgt3ov7cou{OIXEP0q"u=zQVޟej{̍2 LZ9tÏ2;r^./J7̵<=OB~R^[zEݨMA\k;r,24pM1Q Jqq"u5;"<,7׍޽8~?([_Zxr :(OY#Ń^nSyv1haV13۰0;+˒ǎ+(:/2*>IJlR3-"j&ʚt+Y!5eWzFCʨ>eJefЃL\;cWb]2xq kfdLE֭sҘͺ؛yܟ0^JVbmY澒C6(qq_{r4LfGo:ʿ\L?׆f,yoZ~^QψM/VN[Ŷgz=<%sۆx܅uJ֐WSH)sa/kzxLɣwsk*El3Y["֐l08&=c͘nE| c"܉Q.qg~k~M<dMscG#zg 3} y^lhż k&AM]k h #֤zy (6/x&c~#?8=g:<Ζrɣ)93\w:'ڡVKw#yX&;WYqVsWl2ygIYg׭,xfR<3H>|VgZJgG#rbn~u}CJ9f&ώ rʘ}撳k)'/sIŁY-6.$ҾYHp `;8+ng/Ӯˏŕ y[7gCcqӏ u[W2lyUɼgh&>ً9^&F>yW>=#9Oʽaa{?&/|ʝҹNqgQ̉ecs=#mg|ggjUNa{bIwx_xg&B\PzhQ8ٿ\- X ({LlYoz?l x{tVa?RS$5T̄I}&$-~ K RZ$Ik}{!i7 y>w_[Zv<1ыx4eѐ7bUJ+}? ?s,FXm>-[$NJ z7Bao-0_'RԶRZS$%o_;܋lEӒAwwdvWj }Y_ZPZBѫ|^;T}[ZJao?-8"h`G| $rJT_nN >Om߇ o(؄(+Ql^ifYoFaTăF ށϋ$#E=Pp?6A 9* !u8o{0S G-9F}#߂bݨgso^ Efߐ3Rm7 ;<^D6K^H,J1v~_7oXYc!e<J! )nMA젇_Q"N*fqSza tSMm { dan_(aCP@ՐU BL0c~.7,*..W/ DClEKvawYmy򆺶WI74Z$-]ԴiU[R|R|[/5f5fbTg=a5"YO63_GrXbpE@v"Hnn [F3|2,:Y8yq^fF?gb.or~ޮ0F5fM)| ߣ7g$~bf V;[ڗ_3|wlIjNuK`MsQ;!v\z{g,v2ͱD_DZS fg2#¯iYE\". Jt-b5H k\b~!} 6IQuj;v>W{ k# X!%q~iQpyo>?`>xQ90}# ^s|KX9Q\VV/)chi\lKe-f8.ㄤR]a%lG#x]pBAN'Q^.2eW].t %NK =@(nnW##zP}PCh;5tz:NWQGգqܕhz؄BA Ŵ#PՂjjV#܄p'A-+|1MJ(K\V9aҬZլNXzVu!7cs1 #ώM5h*g +H+).)rl\5cAzBXf̩ӌjjƲ5T^MkZVR-h'G\Wj=Cj]EN)x-IZh˺HeR]tD_iKȮV9䁖.)rjmį4ՓHj #Imd~F;:`ꀌZcm꒔s\:scE;[ZGcx7Thc8Ɗ-#dwDJh\N}?5ҌPG~qֲzq]pw3"0|ZHZGw|j`| !p>'Ʒ'55$cq f' rrd&E6b\'d#K,sAvYgX ˦iM"<c@?o'-{Pp3%<22c>/ A#o$p5:5x#vNNQĈ4Lbk"DNR X> endobj 18 0 obj <> stream x]n E|,E&DCu.R Vtf蹽D0`8%(GcIAj95 )6ǰIv.nTY9!-CS, GEW(iT4 hWAzs!eV)1~y|ܘg~(\W7>e7>c>&ne<{Z|v y endstream endobj 19 0 obj <> endobj 20 0 obj <> stream x:yTǙ3?I ġ2[0\j.!v65BR$s)%qqR'i|tmݦqSn{iGwt۷M6{ucM 7otN37|N&%R@N}ujB?B 8[ Pb# o~E!*hxzŇ'Qk J{:mhx0@Oe'N$?נ_}Go&T/Nƥ'IRZ2!`јT,Ä/BU JY1Bb己x)v);, 7q>^/ӋA.sΑ]D||o3d姖+|IQ4W~4cD?Fѭ ? [iG~D$n;򗤒(CL^P%9K.Q#maZ]hI;h53O@kkx<[46lwָ6mPU޹!+ld,6uڢ‚|M:7GTdIGekp8jyte?ܑ$éoLcV*[/_կH{Ęvvt2ʗI&IqmC+v`ES'&q#/|MC֐˚|eڽ" twm,uamMJ ]%gpv%)//<=E`Y *!Hb(%Yr:2<*8#:x(*}L] Ťce+(9:CP;;a-a8!ǂ-i+w%wƎos]%!u۟=`@ 0<@kD)q2q؞c>gט8wVB^F+ = Ĺ+ t$}ؐC(#hsqQPCwϾƛi-#0Е@RI ͬɜ1@a՞̪R~Ety'+G||$R+ng\S/v:垞h캧V/p֖~x  m~l@'%U[(hvL"(@ >n3HjNsг^2 r_$ö{ Ԍ9I/r._SДTW:sqWp[gZ 0 CM 5iq\#L\IUGu@! 0w=/ x\H.!}CPbWE~KD;;vȻc׈K'~+FyԂ.^WVWZiYR~+V{-7[7H[kk[[|6;Licق ۲ʹ.G OũSO$RlGw/Յ^WI߾Co$ t6vu[7M/;.8Gu FD>~h4SR.D.8U^|\[Wiݳ9оUw&tooU]eEOh]z?~ o)? #F/JAi$’|{=Ja=ԳYw?OW/ݯuwvUW?CUU;;K7Ԕ譕mBz V5FeߥG@ۊpު#BLƂEf`b/P( jb\0f hC snl]lmhp[܄^kۍ} Qԃ g1] ƭƆڽg.=uꅥҿ,=i^Ws)%U;!%%D$^F:'R2pOyNb:_hnSJf4 YG3h(D9!lZÌzT9J0 q4( J$ DT曯oV>vd/U- Uj]?{*en:?5rgQ)H/<:s('0$pk+_z?<bѣc PhKOL ufQNhX(.,,ӠP2p/%|'RVLVK}4KK3{ï'[c{w wU/g'TMK^z:_zׯ^9m.2Y~+ JH>:+f?V=rd?H NhO v'ܰ u{9NQCsPigna[z}dKӭ&E>5tPٞ u[q&$BbdHa2M D1~vx5 /N"PPN (E4dXAIw)Q}X"fͤC['ۀ0qIJN!72&a< 1OQc0!#aE ̨MC;+GkuU~acdy92Rj#$cv+Ukou9lN,^KBxӤwV)r"8A b8BzJ=;qHuA_#HA1ь`#mO,cQ : s5|$EKUA} $j}YDY}]aAC~ecʾr;y$~Cq1zrHŅr|\ⲉשs7s2D.L@=ڔtk >%h9ܯϑG-6iyvcrޅr "}('(f8f ȫ+scc)u9 Ԃkҏ<D PseH駳VɿdVMbYW'A'r_컋G p'yh zy(>?Md.]'> endobj 23 0 obj <> stream x]n E|t%YDCu.R  ^> endobj 25 0 obj <> endobj 26 0 obj <> endobj 1 0 obj <>/Contents 2 0 R>> endobj 4 0 obj <> endobj 27 0 obj <> endobj 28 0 obj < /Producer /CreationDate(D:20090302091344+01'00')>> endobj xref 0 29 0000000000 65535 f 0000038792 00000 n 0000000019 00000 n 0000000871 00000 n 0000038935 00000 n 0000000891 00000 n 0000009507 00000 n 0000009528 00000 n 0000009726 00000 n 0000010054 00000 n 0000010244 00000 n 0000020252 00000 n 0000020274 00000 n 0000020469 00000 n 0000020793 00000 n 0000020980 00000 n 0000031499 00000 n 0000031522 00000 n 0000031726 00000 n 0000032045 00000 n 0000032234 00000 n 0000037929 00000 n 0000037951 00000 n 0000038146 00000 n 0000038480 00000 n 0000038675 00000 n 0000038737 00000 n 0000039034 00000 n 0000039118 00000 n trailer < <65ADCE0FF4471330963ECF4AE3B77CC9> ] /DocChecksum /9A4289BE4F36B2982081BD64A432B8EA >> startxref 39297 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/filter2.dsp0000644000175000017500000000012411702130733026014 0ustar orlareyorlareyfilter ( c ) = *(1 - c ) : + ~ *( c ); process = filter (0.9) , filter (0.9) : +; faust-0.9.46/documentation/faust-quick-reference-src/images/par1.pdf0000644000175000017500000002707111702130733025305 0ustar orlareyorlarey%PDF-1.4 %쏢 5 0 obj <> stream xVn1 *^6@].ÇvP]9i Xm<2$7/dY#p >ikLm@?; ;M >TY( {ɹCeucK/IU]Qf`g]Ի"tT"GI5wN}UC$9?@}ˋ$#h0+4EF{5xc_7(kI%TDy#x^#O`((F+&^ĭGAye8D(>LCAιñ %3o-K&!&!0 (&p#IDZ7! PgX$ Pimm]#UDr}.iZc%8"%!FargE6iƘ/94&QgIoʘF;7ZZCGFW[L!{m3{gfPK;h#81 r/eajL]cKE%ڦݯ+S͠:WWXJh ˕"*C 8+6L]ُM젒!ȷظ jyRuЩEEn:DA1˿}\9k> oCfk\dI?t?.|vԙfPl<"*m#>endstream endobj 6 0 obj 713 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 10 0 obj <> endobj 11 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 12 0 obj <>stream x{ xSו9i. .y6l 6`Yz$' &! qH ICCI@2MCLh2d:.%.0[<-zt曯{{ d$p0p-=zm G= + v_o6f{'o[J9/0 7E%}Dl!@K| _!K&\7F 'Iyh'[W- _)N!ٯ>[$(<aQcJaevL;dINs-S{,dLۓh4vq[+}x?U/].::׮]jeϊΎeKm׵,YP_[S]UYl~iu^07ۜb2:!TtZ||h\7U)խ."qH+y_ 8 CD3-|'qÚ!wwXyn\ɠJq1; }|GθsosKKm p,5`k.hE10eHj\i[3QT\<\YϴvM.FY$Lc4hyq]?\w뜚#]_h/B\WX;:Ԟ*1/5[ܱJKJީ)wNNNNOYyuXzT" }CkwŝQ.Vu8gN" Y<}  ŴXrJ|r͐Ra88ˇlTj9hZ&-ZQ+fOT\WvRr'(HCa53STl7W˼l^T⟍~m~+! ΩAaD:(oX,MgUl]܀M^)PqTU*΀3[b] n-0\8bF\ÚM*A>b= *6@b#mR po8lTq4閨8ݧ 8Buttݒx\TwHx)DMAj Bv[E ,]Vɼ:yK}kR*/w ]_u ACp(`4#~O!*D 42/[C?Ղ VE a-z!FֹS)e8b# k\Lן_%WS PIwݕ86PPt"^U,UVIiܼZndQMBb=!X'DRڪz*?ZRSwmR~rOD ꐔ]4oD M}rvEdQpeك/s:yTypk{I8wˣt˲yH\x~ ߢRN'Mqy Wd+](VAw%A~sBP]A?u"CfȖXݒ(s')\kENv9dvQr~Q.\(D%fTs|VQ+-pd4A;vTT3dE;4Q+fXANp/*^%˜dŝa#D ̈́*8A+R({W"qB;$RQrHC\'&aP"'R&94;d{tI}ܲX|dx5=uDzZZ:hݐ2Ikrznv A_ kOϿAZ j#\# 6JGa/? >Oc0Ȑ%>axއ_o3| )_p7gZo[%E ޡ!;iJY, NFHϣs';F >'ӰVރ_kh@#0S1 >KY0fG{,ę8 p6;=ZbV,Re", *| kцvzlFlf\KЁKqcvcv c Wc/\8?wq=0nx=&܌1tG/Џ[p+op0(o o;]푿 g&w$[V܋x;q »p?ލ<}x?a>'!<0G| |§|?|^qx_ėe|OI|_ÿy|O%[2=~_ïi<7-&?/.~g?W) </E7;ow{~N308z33S Kei,eLENla,VfYfs\f7b6YY +eY[qx-b e _[p< *Y|`լ>j쬎ճYkf®cՖeu> xcNzs9O㬛`=l%[V^ְ AgClm`lmb(s1f&qe>g[V`,B,̶2vv]F1vflUv;cw)vf ga {}=ĎOQ4 {=gO'Sic,诩YfSK>Fzl\:rGBAK) K"#1¸4 FRwlb< ܐ澌S=!QZ~b[KQBAUة(" AN A) DA.Җ'M2jeY^ /h¥VI$9X5|t3tG0حzW=V<+Vm+%^[V$r$[M +](r2/T1T J^a?_??8 }rBkU*·" z]D3B5Zņbd"6Ul(E+*iIa&q Y,m@#*TtPҘ2W1իAū\#WWxKաf};py6( xPM]*٢4h\ک.AVo4MO[R\z1 E3<~zKTK]\2LqCpO&dSwT;TS{'”'+te]e/wFUn8ңI=pESfbbblu fB~w bF ӻ,RTx쮐pןp77veWnLr+9eTevI.I$LUv)4e/dJ'U/&tQU۬K%N,ytB褸ښ=k5d: kACjPs5hHѐQ[ɫդjRj5)6MMb,i4y6>&٦Iid&ٮIk1k:îk:욎:MGNQt\KNQ騻gG֣AѠhz4jV5j4j4j4j5ɍFMr&Iܤۤht4i:4M&MGIѬht4k:5͚fMG$tPܭkNCjP4t\oMވֱJ^Y_vEĴOّ@aq\HOSq7<*Ք!A52BGpۉ$x x nzȤ7 F\@{R6:ue Qyd 65W cPkcZBT(xRh}颏6M 'pzL W$EbT?W=AD_ kh,*PDI +'i¶+ ݂E K ]Z/S%fs@ kpL4;i@ j4`O[%@S4'@C4&@ rl  [bKr% 3lHh%k TPQ)MH%LӘi~%$%kjrd c{FR*J-0Qgznl˔q @Eij딢^&Rs(F.o, *e` mܑV pXRRCa!~JZ[<ۮUh,hnhlԹ1OpR5A/m"UsOLtҒ6 졭ZSkWFl2y;þ%=>149*hIZc)ϣ,(>[`sߜ,v_`Yz/lp ixG?tZ~:-?8紼y 89{~:n,r-YXa"_OX7/L}'''Or'O9Oΰ9-'N}N9?eǃ/cezMY/xEn2~0S\ m/G?N=smeGSϼ }Ӭo<=C%0t8s,?T`}C\ͽ{>0y<u߼?9m9z"F,Q lYX88^8hsy6uֲqCe9z 88vaXSt)]|1ЇNE2:/8٤my٘5he 2AXڲ6geeUgfd͚2BG=ă{Nč}/^/k6 0a1{onX6'n{8$0I,b\:P GBVˣLlQ1J1ѨQQD8QtE$o"t(GpM80Bl A9s:jl;S}G_mMNqvqNvqC+3=ح@38dfVG*~B6e&n7t.ctxVˬNmKe)72` >e\Y=d鑑2cNOo(hc569;~M~Gv~駕O]ȦwݷoŅr Y! .2gbn]x.0 ܞ}{6ۙqgKK44id۹ۥt}$.lKԙ,5 mΓg;2|mͦsY&ZU!ъv\aby,/w.Zκ궗ƽoޕ'ֵR]7ҽ<[ξKxvŊg0;XD{~Sgokl쓟K}#,Tb 4 x33fd]Guj:`0䘭n/c{Hz6R{vq^"z?k3~P'㾦[MQ94tCi`JBXnk, ?u};~-:oʍ8g=%C}sWԳb:o @t,3ql{l;gO3]zn:KK)Jai"=M\4X8Y%5%X"9KΞ--&4q<)kz'Zb3z{Ǘ~ޱƹo~llo~|lA{/'V|X f&_sp #9r]ݖa 6aq#eX2Y;; f|Ѭ3-ւᖃ-҂-x\ ]7ϜUdjӬn82m[$B3͖@9^.'s&<:˶fSY0`X|JtHO{LZ-Ȃ h[5;q/)dn|5K\ʺ,JJguW{fHiwD/> > :jX^^qyJj\ f.>l̂< wggʶl<ҥ<%G]Ni3j涮oŵ[lqA֍K&k>~yEcP[Byq[a^Ycis沒n|NM;HN&YEeښ܌9}<3%9O?Nci&2W( .Mm*?ٍ-1ƹ( n*AfAz%G>Y5h.gYژs^|{gRj:vK7 4ck8+-ט˖Զ-d/_u衛]lZS\6ǜ6ZlHWϾѵW361/9}(7y]5& endstream endobj 13 0 obj <>stream 2009-09-28T15:30:29+02:00 2009-09-28T15:30:29+02:00 inkscape 0.46 Untitled endstream endobj 2 0 obj <>endobj xref 0 14 0000000000 65535 f 0000001027 00000 n 0000011252 00000 n 0000000968 00000 n 0000000817 00000 n 0000000015 00000 n 0000000798 00000 n 0000001092 00000 n 0000001193 00000 n 0000001528 00000 n 0000001133 00000 n 0000001163 00000 n 0000001761 00000 n 0000009861 00000 n trailer << /Size 14 /Root 1 0 R /Info 2 0 R /ID [<16DC09003AF6F19BD0AD28D47F714B33><16DC09003AF6F19BD0AD28D47F714B33>] >> startxref 11399 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/compiler-stack.pdf0000644000175000017500000006321011702130733027352 0ustar orlareyorlarey%PDF-1.4 %äüöß 2 0 obj <> stream xTn1+XЅ| رT3 EJ nɣNp.6@KrvkiYǔh|f>ߙ;Ll2>\LS9 4uPVex^4iy8=G0eoaޢNF?baz4Nӆ/;>(W.aQgbe`oӜ6˗v@Mk}d~)1QMxSXd&F`3rcv0-A03#ȹבwĴ |;"rSl`iC(a? HR:aH:Eہ--u'/&Q#z)_[dY`AHզ:jo)gV 4@ʴ2݈Tm(Rn bM j]C;8;WGk'Ř"N$Ym$+Mjz"$|b$=x5 ä&A> stream x|y|TE{oIҝ7tB:If$Da3#i:%I!8`DaqGDܛM3l:(8:~t<ܪSUN}RU}BA/Vs.(ų!$;{~@5egNhތu?'I5-sRk:!.h͖DGu RsRlDϟiE?mr+$p0DN4FG lH?A`ZPDk0\KA x^'$RpiPKqxܥ**9x6Ch+QQg$GU} 2pa]/VDYp$-dC#+C\LJDO&8\L(ZhA\3 gdr~@P 19a!~ k` "v7wFO>J]UU+b&)$$2#q*>?eq[߄F]!mD7FEOG!.1mp=@m݅a(S+x ?KH5"d#y''ȫ\;~Ľ;U8za~HEdgpQcH1Dӎg! ^wc)-#Db%d',!-d&!2LEn!.&GQgoȟGcDa s3<.+nn;{;=׸_sop7g!/o $y·DŽW [T{UWzG jQ}zG}zT״h4ihy\ Za8qW:釻_A>{,'#ou&dl  |Ad?<[mL a_ (<V Ӣ?G^џ+".!"d]1,[^01r]WcGH4s3`WԸmhf\V_RUYQ>xvQaA~3wVLnj >=}ZZj͚`1&c|Aj*T"Gc َi USyRcr+.$T yRC RFɪVowIs^h!ⱐ=[O&RCqCHCG=wؠsyypXo@ҀT8Ls #8kCa(U8QNqS|V3>-#-?/L5i$Z.Nn͠i[}ƎFz'EVPREy j)ss\݁ I #ѷ!AYפ9').)ejK~a,yhRɄ7(N18 ȱ ,y$Ձ F<Ȇ?m{;Q cDX%:O8R?JRa3KBSD \c@0C`I+vk*D32VouZ,e ֦W-uЖ3-I+hX1v"L kcLbrBCOU$f޴ԲUjPmZ>$W*Pʧq ť-3-ƅ,f9Ѣ)"5ŎrڦF^,覈rN-_2ʳP-%xQHO}q5YGe+D+:3yI+]zU)W'5yIjg0$ ͮӘD;ghZc(|x,#EyW/ow֮~R4w)[[nzq5QNp$d :.aLQisfd)E\ixʳ)x63 nOBZ*b6Cvã}ܼԞrݛȦiq;GD3\Dl~fy1Ef'[nE7{UheJjg)99ޚ@)F[\%D-ǪαtͦKIi!.9Ygb%vkuUJJ\1Q%qҮ ]''KklNXtV;3r;s|Rt)Mk,K`بj3ϡnn78U׊8*gheuZd+3I[^9YI VjeŎNp3f7_cy=o>XyuG\pߞuYWa;ל]}EOrV%Vu../&XI|`WkQq9s6n8*b抯'b5x! Z7:bm%+j`1mg ֕hNXhl=f4nWbuRijۈZ@ʆ$Rn|^P)éw$(~p`Sm{S9iAMot ':w^eZsEF_f^O?}^9r RDc4q<޸M>n!jS9NgeKAG"~SDF!2.<֗NjT4Ϗ2d4s zhbF FϸtFk YhG[j {Sv g6!@dmv8V !w/-[b 77oyhƯ#"+iT]Q siW|28B.VjJr BaNvnizd{ۍ,qk2]8b u*%DyUk<(>ྫ:Õe`nuig9Ab!NALW!).hb.nK;2<ɥaMȐ)vx(hZQzllw~r<~TޱǪk̕JEUH'8Kw K{]Ev*ÛY{gฎ$k#;>,=iU“Xt#i?ӌOr0rK1m9u 55To$1,{˷V>u` H i%>&k#U<!Z曎#"*XUPO*p<86:4C|?,Pw*p[э9p*{+#8lsksf%r,%`bqΜQ.lyWL6EGѡ}v_|@ )!exS7}/O!>wh2JZgRU%ͱ7L TYBəT.TT"ޟ\-xFmdv#>Pز*|- b1s|3PEјKh0Q'BT.upe6[A-+:CAN䉼OY&ƣMxUy< =cA;Ob GL^w$Rr}пӾ)lh??`ON j5']痸f<7,:}(<=\ qk]w7Rn3'(=aAꑸvp0^h ; |n\f GE  Ě42 jOШ K$bJBTi4H+Ae}LMМ9dm O|Z>w.}l;sl8+XK hblLzHP[[dIJdg8^mƍY?տp_WO総nF;j ss7Ͽ:Vg*]6WF7=?y?]u[uxPO.Su[ <*>hI5*&GAth 2JA-A9LビBp-*@95 4P4P"9V(V  Z:ァaWbC5MOQUWk bs=)/ѐ489#8+| dH WbyӓEej4w5ϥqweǔގ!#Ө52yr|'o`PȡmtsF ?{+u&c$Ji4IdKSWݴ䄴iBo"Ox]jbYQ,wnUuK9HRQ+/˦tY#A ̉L]OH ]bGl{#Mŏo?M\ sbWJ,P`;1ʭ) ݒdG^`csd'.k l_;}B7|%5g*R.qF~s<5cxjo.Sթ/>7r/Zm?6zhPʾiJ;] 7ZjJbRZgN5Y@ԌT+^kFRnFDݡPoUվiv"MxEgsP1cPCj{l?g_+5r!(N=ϗjGކ[y#p,\wȞk'WWtPZp2r}j'֏=,dv5YfR\$FָA bPTdaTzDJDWQq*-WB ڵZz]+hE-WlmG]Y.8tj(U.ʙn};n%Ǵz82ɒGëMɥ-szl=v;~ysgkL՟jSU佁-I;Ɠ_"t~f͔Ijd*/N|z9sB=櫐'#y(K{ՕAXZ XC~!>R> #*;uvR+9k (CZ L;+n\dŒ=J CZԄMg?O5>ߠSV*y8 ]{ \} ~e%>?JZ 2+e]&co0/8:4nSu+{XT/Ǭj|{ (6ǔzmyt%[0(12{5J&[/fY7*cPܠwzcr҄c>2Z6 Csmza=֏#Km[amFm](OdSe)QCbeSncq&_a&`^2[,fv7C"A}HF1K<>>7e+`{c۪p-q駀qM,:!G^gR05^;;ifqOlħ-ҋ^f6/Ý?Xr}3k ^֤X'2 6v ͌Gq=e?m=OG9&>%ffxc1zk2 J,]ۍ9C9N^1RK 51Q&:ZZe*WFfUMEJ[36Y{J )+f" rʘ|撣I4)'osIIm|^I:ҾIH`Y:/d{GJ+1mN> N?'A8'YݧDT٫Sm߭h>s M^|0E=1rV鉤Sه6L>]/|ʝB(5qb1quI ϟa~?U"r 3>Ԃ|3|)=Lt6&YOoOV@YTˡګ ]>t^ ^l?\>--swR:Ge KA7Noݟ' ۇ}Wsp{pXywmt>T.~.ȍzz$2]`Wz }~'Mi;xx]hyۃ``@bH7xn(uv dTkI&+NI|[j04띌 3F=8NOۇzs;n/c`nzϋ<"/N"`Iލ>oﰄk 1| ސXAe>XhR MA*젇/uq8".*vKxQ!4 TS!c>w{` <žP_oa_na_p.V~C^.͋/h\PW|fiqte ReK54/ QNPP\A!zcL׼vXҞjm3#,8~z%HmحǍf_K{CsH qe,Lű~޵!GMZPh1(bIܽha ZҊ~f5) -W.!h_wgZeE]NuAH=J`ǒCCEQUÒl BS'bx,X^A6 =7Я ͘=N >[>CMz1tNQ,X= Ӆ.<,9A{e  +&SQZ>K*]_TZTӭhʢٳKK1-/)TΩ[gBE\5<Q$x2ϔ . + . + . + . W[$XS bz҂:!=U-k-[=̬B\r ]t0" uK*ɷsiJ}~3Ob3~ E>Q|S[vF/> >36Op1|N!>a5Ul ˎ6o勊Y5_rwhFZ>pJ.Ζ˙Y[jE&L g >N~hRMH{45t9~2uٲXX}X[Nt Kװ,5)4Kci!KkX~2~r?=e<v"N\ye''^ ً).angs|{>>ro_ZZQ35J>?=tHZS # %Vؿ%+?jq%?SBO"Grr7ٗpg~5f`2=iU*{4Jgi,q X;JvF{I>ZL>nm l'fiwNfA4k5/.잣]]N$j-ZQkiZV?"MFM9ou8`!&i<>てRD߲*r#aK4-g W8F5ѥrgSXduaBni0cQBnHoIj 74G)ߣ4C>PCF:`|hv2_HM'P\!m[ߞw1>)sJ+\Xvdɰ3t;c4N+,16O&x2O4Ogr~FDydm MF0 :b endstream endobj 6 0 obj 11240 endobj 7 0 obj <> endobj 8 0 obj <> stream x]Mn0>"&$$BJIXG=R1! n_'m.@c95ɫU 3 \e2ڨ^ŷ:ǒmiX,y {:,yWP7`;sʒkC=w$ѵnt6?‧E&)+(yQ%,^}v>He 2pyAq%"sZGZ}=rE DLԤ9)9%NȔ}$wq /aq?F|缙 endstream endobj 9 0 obj <> endobj 10 0 obj <> stream x|{@T{޻<\]X%%"***Xay$Ҧ46/64m7OSmy51iLjmbߙw~ssf̙3|{Ѱ xp5w(o |[6v m> ٴɋbNj[ 0.1 +n|m͏t,JzǛ&cuwL,˝.7c]@2P{w=]]iEXGK?HF(9,RLHIcҶ{h4%kb'f8Ka/ U-i$9.dP9"A ߇`-|(. ٰXDj,#S{…O9P $Qӫy|4n A a~O q.b ]8p%pa+|p6t9P VḍpGGs{5-z耟/ViDЎ? /)VZU1VcNB(5p? S$rG-skwŸ51j4lM;ÚٜcE)v׋7# Yҷ[{H/i6.8,LR&ROl'u$ H["9=S,B4yA0!0n |=Bte=!~[@0,H |Ø2Z$ a [s5jQ'<wp MB@жooY7>U! B g01d$\.|2[I Γ}Ǖ}nE%p`X$ܭY)^&<f(Hn囄c5]A>ܜw!q3I 0B=-*H wb,|:![cY/bDaw~ Dc/Y0 &n|} ?0 bp%Vi܏Qy7  "^b\IxF0Mqw1Ƈ$tch'{0^x2FS&|knx#P+5? }Fp pψŵt2"Wp OI)A'kI\yW͝SZ2{VqQaܜlcF=3#6*[MMKMI6'$& 1(V5fW4ɡ̦i[(mnpOh X|9]%N$F rjz&V#}[A2z)LVՊ=js["MruhAo@uSۧUzra_I=R$[>40Km jJUUmUTQn ծJZrCٶ!!@%&$V$6Ӂ:b M[{]}w718nU(隓" >56{eZ.j׆}M p[yUNEVMk)to6CRB::džjyf Uia`epKN>%'{1NXJDL&O2k[1j``M^04 o`xnx$|;6$ȜAc>͑( շ&\xЛʓ'I#ܺ>>n|ˮߞk2< 14MwE/7񸑓8BΙx} Q(3G ‡ j8'IɳY>d/'~Nf423ͅliq4.JgнYSBTX@w_{=ݞY\4{ɴgڦSL;%QM! sgL1s_}=^x1m)yZ| [dFviΩI&yM;Ιj/go=Hr-DK*wGtoصܵ57/RL"są&8JEO!6̫O z2-ró(ޣqaB!vCxeXcǦL5dd4Mxft^{y+', V$Q@ŧ2QЪ$z6HcE5,Z5t]u62s7KRȮ u[>m)CTMl0ۜuSʷSoL (C!_R~s-)ϦL)Ÿ;l|m'ωoƷ%_|Iy{J򩔿?2'iX)5NGɕJJ;v"Mf5D9 93`2G"g4w"ϱ',Bq<@ +bJiu!JVbuTeFiܴڕ226p`0dC!lРBB9͎$WyqcOr%Kz;IHJ.ىk}sQJόÕZХ3J Jvc &Pݤ./#qE&a--XO2fBzfE!bYtaQ@lTT̚M;p$a{?N(o x/T/Yͭou_~_j՜y j~y]eĔ+ ˛t="~91ZWhd͠fJ! P7]QYYo< ϐWSS^ $>6eZbWp@H!`v*kI7\2k8݅ĊqLg |vGL .#H4FJo ȌɋS#7.q;yybcxwXatqKp_+ `n< A"oŵ"1Xe9B&NHMƑؕC<cFCA12Ǔ#TXf/)-DK#Z:y7e=J$ED;;oa={k 2خGF |,d{|)q5ėDcVG$B&؈SSHC%YuHzc~߭;.`̃y6TI Я!ayNB(/^s"?]}QχFt 1M1]1| Q^_+6]( 9!RFL+̣n1 cюGǖ9f(M~tZm5D|2Ikc2f>6/$r#fF.DWUwopI17ĎQgӴ)Q9.yJ%^nj-սVKQ;sF(-Uj9jMLk5͖[-Lwc!1kQߗ>~&Sqig,&gZFOxYk>$2sG$ F\\-A<"O'HZ@3h+cg'Oe3͆ے87}ۯ_k[{ ˚;!uc9$iCnnޘ,bf | c)5 f[8IЧᒨ&Τ$wJ{b۩'IQx[zMvkAxD{(yZޯyTmKCS{n ֛7m68=ZXu SLlL˙i1 k5'&$ɛ Qq\\3A/zT"K a3i\}=""cģҠD IDz[g8-݉ iTO4LMæ3& w%)t3Ɠc;s$M7N- 0ѣW^ ac{L|P0pv_(x;5N'VYtovh}cv•9K5xySc/UY3 =m3=c`;X4C>Og|s) ή͊'/_\*lN9tH׋.Գ]XdcE#Ht-,]{c"(aQ,֊E8Bj\&9%m*Mq=ObuJS Ml?F+ZS:=3MPgBD;;OnO;i⍱7IjZ gpcWFn[(~:5^S_h[^ýgاn5rQ&N :ސw\pq¥8[%lD#H0bf;a-ר/k]4^Gdl Q|k0'[Fȝ֨Dғ_4&v*{>.l:rmSYPӟ"ˎrSB4&ky~/=0yWn_"dv,cC'՟Riwp6btGJ Pl@mجhN4GHreJ>N3MT"FN:Uu1:<Ҩ3FOȖU1o]g3:=Ҩg/`/494UZZfqe4WNJ^JG+T?h旜S* < nh\1A:1U.#Hӫ뽌Cƚv쟋Tw%k&*liq-\o&7rTV`vWbCZЋc91Z /k=gR}0~'2#Q ^eBǏ-Loא'z<_I<1Pk<[ ~؄uTd_a{OP(C-OqV17~J}zRiIAǥ:u!o%< iq|\ lP^ZژEݨM~e^/L rn~EF.`^fKN6dD4L7ڳIzLb}if5PZn6G_R=a 0*xȭFxچIh>&K;RX;ZYEj 0x1Wd75=QkҭF ӔCUG3UV*0aVҔ zUԙx+Mx5Pδ8&"90>MȠd[3J#6kacodJ¼غR1+]ѽ {JAlج˼xSz*3n8߬ziCJiף&>160 =-aX,v [e̶x3iepO\GXKwxWc*Rl RV[1xFSCS"XuXKF.6HDykG1chrT"DU֯WuModR<1u4{Xa|7R ~e"o<:yǴŏ[U<^^UH-$eb_8^Rn`QzNU|ޏ?ztS܅~T5qbmf2/\dVp5 = ;,<l3JC=/0}jTN3HgC!&kMTm/Yo|?򴺛=r]G^J|~w딻ڛs*w/0yŝofii~^ rvywc[0 <^OKnko9A2Ё rK 䬥f/k θs$F֘CUuntd_WNJ{6zA"{; ^%׺r\T^ښ+;[dO{׆l~wW[*\wy;7Ҿ^|ҷE/6݁l*mUZtPrFz[O3[V ь\n/6v݉mnosߋ z=r6٫}`3CB{S"h@. z=݌D?Wf'v`܃pS=~BkO{;LWÇx;[zA6@3:d~&F{p Ł-^FmkCm.O0"r;C:;=8bn/5ٌv*TX@{l=*L/p(' R{n <ۉ=lhؽjw!hNO_݅!K `uܶ`kN^^___n f_G^[=#H,#ϥ_Ck=˲u,[|||e劅+V/kCFFML} ̢Ybl2t~_LцvfH%a˯Eb܀gQ&|5gzH *ǖM@ƥZצIR'XY箋(38?} G_,M\ߍ\~7rw#ߍ\~7rw#ߍ\~7rw#ߍ\~7rsFƟ|xAGH.y% }bf Z;Y_"rwUdIZci|W-Y5/=GWDrlȽoDNjqi5j|'˸8"˞}UO=VOٚ,OFO;*|E'*YBjRq X75'qW=4ׂa狵62?MOzu痬U|l_x/&<73y~мB W/V8ty T8C~)l&LaLvrL4=`8~peeCb؉mL\'wH<$q{ŽS)qg jb=? 4 4g9r>Z|>4bڋ00&YZ0њrL1!LZ؋W"-o,oԋ S.&&;&+ˇnټafiWVL;0 |lX0 lK%Nt?Q2?y?)SeiH(%[de鯘^ԇZLWbtbL ğ EA:HJu=ʙq yPCYqW%axY$ݘCc>~35,桬|CYC[*td-صTp{0_=lՐ3"aP = ^n򦂝 Y>dOgSr_#ZrG\K/X^`y2+/r,O t&ZvX@0b5kc Ep> {~ɎFò6wd YV0x%Ձ:*9db](R-WXOZs;Zf枴Ֆ^eu.F7{p\?J~ip4X$ INi0S̐ISDm֨FkZ#lWf@Е#Z@|(jV8kFlgMH[}@kCfdmD*'oq7G7qwIT5oh?1$rsyU4W Dh|,@(>\]O x6s4B:r+\H#"]+dvdɵ3v&NKUeigid,N8~wߍ,3ڻj>ߧ dǐ<ԃ" (ކi,#yVB70#J!$LT\ԃhQr*r*hb66kM=HPX^l @\qQsJ1  'P]?A 9VՄJV\UOCˍ<ۧajg'12Ӆ\x^pa'\pv}ۅ w]QX endstream endobj 11 0 obj 11289 endobj 12 0 obj <> endobj 13 0 obj <> stream x]j >Ask!),zi$cy:zB73/3#k^=:j<,v6(2ܢtY8¢ߖsgF[UFwWe#+Lt1W`('uM' ,e} 7Lq[V/⼦UW+x >J(r#ω c%95'?"?||yu-Fr>I߿p֡+o endstream endobj 14 0 obj <> endobj 15 0 obj <> endobj 16 0 obj <> endobj 1 0 obj <>/Contents 2 0 R>> endobj 4 0 obj <> endobj 17 0 obj <> endobj 18 0 obj < /Producer /CreationDate(D:20090302151034+01'00')>> endobj xref 0 19 0000000000 65535 f 0000025159 00000 n 0000000019 00000 n 0000000728 00000 n 0000025302 00000 n 0000000748 00000 n 0000012073 00000 n 0000012095 00000 n 0000012293 00000 n 0000012677 00000 n 0000012916 00000 n 0000024292 00000 n 0000024315 00000 n 0000024519 00000 n 0000024856 00000 n 0000025062 00000 n 0000025104 00000 n 0000025401 00000 n 0000025485 00000 n trailer < <01AEB2C16E7C109A274ED961A967027A> ] /DocChecksum /694FAF0F0497FE8C1487F2A3E19367CE >> startxref 25664 %%EOF faust-0.9.46/documentation/faust-quick-reference-src/images/noise-diagram.png0000644000175000017500000027660411702130733027204 0ustar orlareyorlareyPNG  IHDRw A8sBIT|d pHYs.#.#x?vtEXtSoftwarewww.inkscape.org< IDATxwxeW*@h)E@齈~W]QEUA]"EDH(EAޤL)$/ps{yϤpdX,<($Eݻѹ]pwPZ җ.]ʲ.<@diP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@q]pwP@qka'cXt)>>^+WVd:7i&y{{APB$&&jϞ=r劒TdIQFrqq1ObbN> .(..NUTQpp*T ''ż|:hL2UW^wܩ9shʕJIIɲTRz4d-Z4xEK,ԩSu!Y,,}kirww)CiԩZ|n߾eBCC5tP;ςtFFVXiӦi޽UΝ5rHթSǦ<Px,U8~֭kO>믿N:og: +Wo߾aիWh߸qCʕ+m:"EhҤI:th}5l0͚5˦ʕڵkըQ\zU=zО={l.ۂ&OwyǦԪU+}wvjjڵk;vYǏos=,)>-v]k׮tW^=hBڽ{oO~WwǎѣGgGzta}MhB+00Pǎɓ'agذa:uj眖v駟~ (88X.\޽{uMc@@ݫ+f-[6'''UVMuԑۧ3gX-QmfUԾ[Sn]U^]KVllNomj֬ʗ//]tIիW7oe'<wQwPxq}jݺ{G25Jcǎn"E"ECر]+V_~6lѷsڸqҧ~_|j*脄ꫯ{…ׯ_<~x5h-ZTSNիj;**JoVXal{ǵ~xzꩧsNc[HH,XPQQQzec[pp8 oo,q/I ԲeˬæM /(66ضyfi&K;^zi֬Y ꗜ>ZlY]ppP}DeW-SvءlTƍN>eD]IÇUzuruw}ݻ*T^j<>3 2h+VLwiիWOF۷~PuVcۯƍO?T~'uz5c c| &X;p4;vГO>5ضmU1~/1B};rss15{l߫]v9Sq9xȽ{9v;Ew}h'''kܹ6Ş4iR®$+jT$M0!®$kܹNHH߂ ®$9v%E3gδڶxb댌 M2h{zzj…nuvvjժfϞd~?U;y~iըQCeʔQhh/1TkaWs]]]]UJi&KxpP}Ĕ)SF ʳ߫ҥKuykH9rh׬YS/b;clٲ,}Wovqkժ;M62dHѴ.\0߬9qssڼys>w5kVq?(/ݜbڵjԭ[W))) ͛FTBqӷo_yxxSm۶5ڇ֥Kr=YfVkfgVoyZj/>z:qn׮lqFm޼Yf_WcJzܻݻwO,Y+gю;m̻iҤuFFBCC5~x={6c k]`FDDnݺe:J*e:-NPR%sT|׬Y3ϘUjժ6#I+W֎;$IE'N0֩߭ޛA۷Ϫ}Mmڴɦco߾-'''#;ݿ/ڵkmժUZjԮ];uI:tP2elzAi̙JII$jԨQ5jUΝ;cǎjٲeSK\xqJ.%J \]]{(_|||LHLL[xxxw3,,,۵I*U2hS1;k+WT Ţg*33T'''UZjJznܸa*df:lȯHݼyt,WRR.^h:E*((t .X-PP4#..NQQQs3-m yzȮJ(a5[LA+,,UPΪ^LŹtMŐ̸2pӹJ*T3*T oooS1teӹxyybŊ;w.=zV2\j̙3;;M4QFY_|RJ\srr4l2f˙3gyժUww\czzzZ:wl7o%..u*]oHH|}Y}[.:u2}m7nl\,N2ŋvmjڔ*U.)Rr-S_۵:u\,v%00T.K/ڬ^T.899%-[6O>ݮMrf^7}m*Vh\,Ѧr2eݮѣMr֭#G۵MaqqqK.۽ˮ]KM_{޻or˫j%11T.ܻlv6w8v>۴hi۶ݮ{k-]r~qkrKzLb4֭[K^L_Gw)RH&G߿?ˋgV=FHSi>Y۶<]{SR={,IHH07 *+vvTCiĈZpaO:[,MOOÇ?\\\Sl=yd5o\ʕ]&IjڴUI^l2ٳGQQQYOKKөSfر#Xӿo͜9jD۷O-˗s.]hڵj۶=33S'O XYhbbbi&Nٳgg/%%EӞ={m{VVÇ;{l9RO?m5jyYFJҋ/ *+WjĈ9>s dէO>cƌjO8QӦM2n޼;*22֭[,EӻәzgmLΈڻG:99W^F]ݻw7;3cĮ_jUc-&NVZi…:~c}G_vmӒ%KCѢE_hGz駵h">}Z ڻw>=c~wTU.]hFzնm[-YD'OTRR?ӧ+88XѿbŊ^Î;Z7UVM<7n(!!A'N_|uZM3ϫN:V1Gi5zwjԨVXӧO+99YW^վ}4|p=JMM5?.o\ ;ڶmݻw+))IK.ҥKs[|ymذAe˖{/#`gϹoV+V̱O˖-5|JKK$رC;v5{ァgy&}ӧOWBB/^llۺunݚkLV+VI&:$ڵkzws)I7ܹslQ-[.]85jzg?F>bڷoݻw+(((~mڴў={T^￯k*$$$Ͼ...zuA5j(Ӗ-[c7((H+WĉsZ|ʔ)gLgggW{ucmٲE}m :T[lW}:t蠵kת~yƓҥKk…YY{Lܹszj;wN Q 4h =znڴisڵ:ukڽ{^$UXQAAAjժ r+v-t![ΈTVZjҤE_w\R6mjժ /lڵ+W֒%K4f͙3GgϞUDDum-[VAAAرzetY;wֺuzjEDD(""B/^ʔ){LݺuS׮]cS(*UM6vLb]j IDATpwP`JPPJ.%Jv*5'b)$w=zTiiiY3r]pwP@q]pwP@q(%%Eobbb ;}3gj݅ Gq>X,V .8(b(**x%&&vJ7|S酝C.P`FU)޽{5sLv*5LX,VAq]pՕ+WW!f]999lٲpL xd bQr*??LOO׾}ƍU@@6mzߧWNJJٳguƪdɒ*W5j$wwMKKӯH]~]~~~P6m"E wЈT:u޽{G?ԦMfuڵk_Wu M2E+VPbbbEQ۶m(444XT~;۾E7nԩSm۶lxyym۶1b6mj9?^cǎ՚5kmܮ]j̘1 9.iT||ٳոqc[.KaW3JuÆ jذ͛{dddhܸqWϟmaWRSS~z5kL/RSSsiXNNN{9u%®tgD5kCby^ӦMS͚5W_e[#eTN?3&싑xh-_\cǎ5...^<<|VXaլY3UXQ~~~r</}>.]Z~aq,Z???խ[W uMIw~3f|?ܽ$)7fY,(QB}tIhjJΝ?K?ך5k3gZM8Q111]jUaU?;v/ԏ?x}VkΜ9SK.-9 :GUVՒ%KԮ]NǏkVI 0@_U!tN|;hh՚2eJѸ6l~'ϟ~@qqTr,oX嚔 6d雔W^yh;;;kӦM7nUa}Ԯ]TdIc믿[n?w>}Xşkر q3<:xEFFfGY1=zO=_yV:j7[ٹs+kniݺe֬YsZ|]Woߞkr?;wfjԨ|zek.SOv=}L_ %www˥KLW_%33o\|}} nƍ۵;w\._l)Z]rS\,o߾v6[l1/bqqqK.]t1}mx j9uꔩ\w_7}mʕ+g\,r4iݮԩSMgK.rX,^{nfݺur9q.nԩ]rqrr9rT.>7}m풋%&&T.}~'L`*[nYKR,yvmkS;wn\{;wŞ.{6}muf 7=]}]nׯH>}Sy(9rIJ,/F.RSSeXԯ_?5kT+#?8B V킎k޼=C_ln߾[j֭z뭷Էo_M8QV1~3J*?]Fԭ[tQFm۶xzzZM]M6_|a oϣYӦMof:NUlYS1:wٳgetjLXp.^h*tgfOҥK6...޽?]FEըQt#G'4H"jڴ?Νk-.P'O|}}UJS1:v9setj֭MŐ)Sݿ*V]FբE2zc :.բE S1BBB_e4vXutoooѼys͙3TIjٲ}Ξ=k:Nɒ%Mz|gl6;w6C-RTT8TR%ӳ 2D:vh*F*Uw0&44Tsε@O<3fM)^xk׮vlc^mڴђ%Kro9Y>`B!""j-QFiرy|r^jzigϞEy۷OM41Æ ԩSv\\ՔoMk˗/oƍs\g~ٲesNUV6g 4h׭[Wʕ5j(0@:zh<2rý\p!_GDDX.Sr4l0 6Lھ}֮]UVeY.**J/klwmg}V?MǹtNiߩ-*UtNwPڲeKſ:d{>< qrss3߿?_۷Ϫ]v|p->}ZN?lujݺW_N8 H4h`uNW>;wTrrErww/4 FyThh>~V^mӱNˍv Դi|' o߾/l:K.V[n_-Zjp-]Ԧ7oT=Ծ}{TRJLLX֭^i w 2Ī=j(effyѣa{-''|wڵUJb %%%yɓ'wǐ_ݪ=|p%$$wʔ)5O[TT.]Ti w4ǏW׮]ulW^[dI;zg}:<<\/U^gϞմiӌvٲeռy,1"ʕ+ҥK5`;h;997׹`(6pqq7|cƍՠA͚5K{Qbb>ٳg+44Tsε1|+W@?tP/_h/[LuѢEo)))I׮]ӡC4f5iDqqqF?0˺...Zl<<H۷oW\\.]^]tK/$b WյuV=SCWG6ڭZڵk[wں9߼yݫUVi۶mTllʔ) 5lP/ի-Z5kc͛kΝ駟d+""BrssSٲeUfMuUݻw W9oڴIК5kuVEDDڵk*QVUu۷\\\l q09uj֬իWG}͟?_ (tOW5lٲNwQeδ( .N>])<(.|||TX1v*m޼Y5kԥK ;ka'_.WW~5IIIX,JLL,Tj܅P( .U\Y*U*4 N@[zua<0r]pwP@q>*_4iNs-f>>>ڻwoa!]pwP@qv &(**SJwa111?SVZ Uٲe ;ka'b/_ ;#wP@q]7olRi w<Ə5jN ֬Y4o޼Np-~zN>m333 1lE@. .8(Gܹ ;}t%mܸQ*T88NEGGU%JŢX]k^)))n:[tE*U*_k۷o+&&F*QJ*%G||\RJߦct-ٙgtxTPP\\za~wI… ռys_0abccsjҤUdIլYSUV|}}ձcG͞=[t n߾-IUfMyzzz Zls*===__]V5kȑvZ-))I~z)B ]viΜ9y^I:{lҥK1bʕ+'???լYS%Kseu_>>> PժU O>Qfff8'b)$VNR͚5zjѣӹkCÇk֭>|xDEEW^Ѻul~@\R5vժU+Q/^kڵkk ʵ_ffhƌ3˔)ŋkO7oޔWǭXB sCs=>3u9>{UhhNNN͛տݸq#+5k詧$M4I|AEƍk͚5*W\FZlYa;zҲlg.8~F>///h_xQ͛7RurrRɒ%j۶mi˖-޽{®S'NP6mr-^޾}[}ѴiӲva^ݻkqgRuvvVnݺi6dž ԳgOnv#!!A=z5n8{V&cۧw}\㡸 ] ;c}&ggg .ൃW^ ƍwƮ$}!$%%%iĉmJرcCk.PN %ӡCp :stGaϧ4nX~{$$$Զ,KσZ^kFv\zGJ#IO?L؏_9kֵ^[=zjxذajҤI7jH.+8^n]9@| !+trM77ܹs5gΜ׮];d|Сt)X ޴iVZ8PիW/nǎ]+I+VО={AYf%֖SN9%-[hÆ ٳg ;tPi*%%%8޿);aM IDAT;<OuN ~6lؠoV Y9+)=&iU?sȸEaՕviE>?۷ovg̘j޼yiӦĚ!p^Ǻujƍ%W#rp8u 4vvCV|eY͍: %zQIHHk}qN[G0Kd-t.zbڜLd>~L߱W(hUժUcK5jhz*6\ZbV\sժUZn]Կ$LMM 뾂{_ڵ+djIJw!pG +Zj՗ xO0 Qj޼yg}?~|Y$O>Q~J=ܹsXۑW_}U꣏>:?P;w.4ƆE9ӴtҨTRE6mRZJ]_RڣF*|ϧF3* 6֭[c顇:$k→}:|pYwސqqn%Ujܸq!TV˖-q5רN:QqQ57c*333<]vwܡN;-:UTQVѥK3&&+?k\rJuUN:'IsW^QxlٲTVM׏ƹ瞫z*&+w/䒨k7N7oK@ Ѕ^X}[?䨞pc(4wRӧNcHRD[}嗺Ktuݻ.R?믿+H%5S 6"m\XrbVe0 xvԩST+Jcrn;FguC+VU{A]v.2cH{#ѣt5!(---c8Nr-vٳgoʕ+kȑv۷kw Iy!juj, :A-[;J4HVJʼ 6D"`u= R4w "h![OKSL)q{cq\inٲ q~,( ]7o6mnZgϖ.qmBў1:׮]ܒWZ*`V^2NMMh>@$";`T$lo إ`K/ {a-Y$ډlK.G};w8OSN!򦧧Qk׮ ߲e˓ IP>-CM4ѢEtE W\9ycƌ v"4`߳5v?^*ák&8?VAšPZ4wؙg)0s!?PӶɓ'駟.t='ˆ#T^^"7oju]!7xCNsyM<98Z ]СjժϺꫵ{B\R7|zU{)ӬU^=Y{ͻw֓O>?O:rHX5kz*8zuk͚5,Kl2_wuW$+j֬Y&@hDBBx㍐kjѢ:, 2D}UZZ4i$IRݺu5a„y˗/?a2dز,3F 4PղeKիWO<~ r8#GM7rwQ6mTzuuUժUSN4cƌ=aUW]4w3{ Y͈_Gy$d#GhѢEJOO׬YrcW\q~r-jڴi~xBs5f+JHHqF_>8v:zկ_kO4Iƍ+tqFF.]̐5kԧ~G} @v@pAhڴiKSn;8n޼ysz*k߾}!7lP^xnVu%xo?Iy+V٣:u^zH뇕I&!TRÇWwѮ]n>~?~HmQl{G\s^z%}'ZlY.KݺuӍ7ި?%fMNNy {TTRstlx7iҤ.@ eX,D ܹS 4o뮻8eQ{9yvlj~z9իWO 4;RD8u)99YM4QRRRLkܹSTÆ RbWR.,[L^uV3eU5tiY5jImAc]4w ĥʕ={(##(] BIIIZjժew/ժU+m۶(Pn\q5j1P x]ժU; Paeffʲ,>|(Pn>|X;]hD q.e^19ehݺu袋W_@[|>$)''$]4w 8@s@T~f͚ewr.bzJKKSVl֬Y۷6mdwriw|>IRNNI7V@ q.@)ڶm1P"t!1BӧO; PaOWzFϞ=յkWcNƲ,IR 9 PqnZK,;+/PV@ q.hT ZpQpuMC QƍR9 ?;F]4w 8@L3=a؜upew (nS6lؠK'OVRRq\xԬY3]uUvG@hJNNֳ>/(r_YJْ;l2}'ڼyڶmkw(Om8JaȑvG@Ùh@ qnڿڵk+V@ dfe*33,c iwlZj֬Y4kd9!N=Th@ q. -0t:ljӦ:dwrNbf͚/Իwo[n֬Y;vZjv)h"f.#2@ q.P vG@CsPvv4hɓ'*U$Ir6'#11Q.(@աCsNV>}7ߨyvGrwQժUbá=zʕm%`[f4w 8eZj2MSժU; P}47x|v@Q5InjР6oެG~9v@iְ]@\a[2Fc@,8@s]? cw \rþ}t+==] ;j˖-'&&nݺ6$UV-9UR(]ĄeY̴; iϞ='''K7oVFR-3-{4w 8@sw~̙cw (WV^[Š Drjܸ5kfwš5kM6ʍZ>1P xrec$؜ǣlc8@s]4wP ĉewqnZviΜ9vGh!˲$I>$]4w 8@s@TꫯܣU]'ؗ_~#FhڵvG)לv@r6,KmNRr]4w "4rH^(@vÇsϩiӦjӦq62Tp';yy޺/z;)2.yD'KUǨ\M~lEf2:G֮M/!ɲ/Um)g Li#%Uo[W7})qzJ+SfJ% WӟD4q%2,s{g&yrJ~39@SzɨH,uhk/zjįyq:g+A`_Y;75⼯R~1I,\TLݺubw(7FŠ DȲ?a}[2*WQTȷe$U Kur }PFrЇ*Wr0Vw7/]/Uy%ג٬rI d6n4w 3W)9o\}2u%[V1]I|CfL"F}<:J&K%a*|\˭pamN/S*."tc@%`[fRpISzŦa(᮷d] 5v =]R%Þ ٴ^]vnu+5aVB%)û7n}E3K_ٸ]8^04VC3/c]9l:d6ur0V~Ĭ^-j.SwVy= l[i}0\1R?7"Uj(2(χڼ\VV̔6r" v_mk .A2N Þ_a6m/9]1Jnj%}N ^vogS Y2j6z\W-U}kg|_tT}IWbe%jԍأ-9{^]Z ث*5ߢ[)am}No?q'lx\Ỷ})^-_iY#o[qg;v;ևqnQFRo(W_fSCٷtV` }+RBտyy#kV>6*߂)rr]{^>LewF/9ݑ˧krW6~>2!㏕+GLYcl}&,+I#%WBpn~9)c#\W떖"[ZlQFgϞvGd$ג{JTfWx]I-Qy*W b|_WV`O)8p$yHk}?dlp#_C0ndY)##&( Ci_7~@T$kP=%ޒyސ=r5oɷpZD6Zm2p84vXծ](v=:.-+:'zRқkhXpbI/T9-]gHOk^&Q;Efk7n++P ȿ% *ik`b2u<6wa$Yy~~O9vұm2,_ּu!jFrmh{>xT5?=??3Q%p.@eT[ه}~y?{EF՚k:k9 Ϥ!x#h#dXeX|+\q}m隊E1Qڱ,Y5ZeT[ԍUs7ɲdj(27ѲR|3I2j6{U;y\8QAkqyhē-:6|%>"g/;YYDU+[+;և5/qY ?fӢ[.SټeEW*՞YΜ(ԧeueܞ׏qI2j5 Ú%)'S.<咔kP4w`d;Yyu`W2y.U0[t>V'[%*lRts7\Ffr \x7 *y_d,Iee쓵y|̐myw3.U#S:'S-+%w^)e5|?Y19yN =c׿jIs- q^R i0-J|Aigy0;ivlø汐Kӊc:pᅢ[\l]-7=2j]9/Qx?̊0?Q6h"&< jٲe4wKGSNӵsNլYS-[;*ao{c97JύF~&ϛLzO͚5;JFs"-\PSL i^~4h#ewLT`F ّW̔\ 77#8d*~%5=JW+'+i,lQS;6r[VX1ԐQqr#ySlA =EYGdO5c|^y&Yr_ylN 7Gxbe FLLQ`/lVfSrd:1Lo'+`[x_͚5Oܣ @>@@ ,ݱc ]!c+6 VNFB%Ya6wE3*w"W_zysÅs?Ko4~[dVX0w*tL[VVFPl:x-7m]JqF?%o#(Ǣ'%VV¨$G2S; $W;BVo}Zk[^Q l[u,ʷ@ ~IO?z޽{>_YfiΝz7uEY1l0y?|\(MJZr]1R|-V7kZ$?;aqRv9vcIr3ǂ\;/?+I}kF+A!:~J|`JI+I/&K渵k\Ǐ;] BUTԩSէOB.HK>eY֭͛m۶jڴiT}>_F0բE %%E( W_?I*UR $?V8o Y|3'Ʀ2SO ͆-XCꗕ2[t-ߔ<ѕߑ罇K0-ɵ2lE=I2ؼ\fѠ![N˖-ەlw(/^Š € Jt𧻓Mܹs5{l}wZdN?t J_zݘ-ks+q\K GSz)wpxpt.>v{Uq{س!#e^sFɯ @EFsPլYS Ѐ~-^XӨQt=I/J9ڟ%I2F5j2jaڸL\cΩrcS<_77͆-̼x99c=gbКmΐqZߐc܍584?ԬYSC՜9s}v˪T^{?~lbwT }eF2*5QYj?}*5d㴾r]zg,77t$H*~fcg)C]eBHV"k6 ?$M iZ{='TEFf2ۜ.3s%_'s X[~1[Çk׮]裏4e{!+z ƍr^4,o`2۟%3K;dXmHI?΍lEK> ;٬c8JO#*=ʺ655߇=7Fj4`plۮ `#_DnaK%>9[F:ǞkFB(w| #c6n?3d[f+$U~H23jeU֐zl\+eh׮]jѢΝN;8*!t9]K^LF+69QW^Hw:u^m޼Y/Q}$ 9Y<_X]gK <9 Z}De6l)I2wQKm6l)f8m|܌}mQ$ɨTfamlb67Yw8/CvoQfj6Z\q[99m݅w0*WW/C_?)K5>9$9ALύ'[mke˟\[fa5iCvoQ`ۚT4l\8Lm۶(* i*nR&++yR^=1Bs5zh#9MӢ:!+3/2v 0cRhͷxF5kKrkdKWÚ+o xoX#&lMwDRsozbeI%wbp=KxDsʩC98mc^zjذ&p"x;6p'*/dԨ{Fg_wDsg_8A Sk9K֑~l[}&j_x -pl;̉f}5EO0L}\S/Y;7ŤB:z\&كwxr⸍o$ yEO0 |P/xڻȆ7a[f(S#vlNYtH^CƲ3Ni k/~324[SA3]( 7¼ƛ;QS(7eԨ"Zvmgr_XZSh>&+HEÔټ_Y X7Y3^늑k ޓ,yc8̦RHcW><㯓<'+W;w,ѾO5߇>XYf 7v1CF>~aKO_%k:d6j-mB]N@oަSٹc+7Ѥ+j^ ըQCC+W; իWWժUb"zzu!ڝǽɂ'8 @ݻ6mڤ@1uT%$$Š K4v ԩcw3w 8\nnn6yekY}-CkVJ԰aCz4i$M4̞#M7u{[2TvmeddpUǎ%I9xedʤ6ɀn ӰaCIm$2(]4w3ӧOÇK4ww駟'XJJ*W5j\sC $y<D֭:$awrFc8@s]@ҤIʂ |rc4wUZUzRΝTX_~nf[(Pnyzꩧb8á ,˒$|>@ pc.h@[<~۷(ԩSwPA-C7nSO= YYY6m:uhz v(, 4sLM:U233բE vm-] .$%%iJOOݻ5uT"tkɒ%vGpTTI ivE/voR$eN2 #O@ *I0;~9f!! @%$,JQ¯V?֏mkXjK҂bHqk*YHf?? c2<93u5ss?\p=wV^9csG@+z<̬]6zk&O\t,zƅɵ/&Lt%{O|jZ\Wt:֛|{QtAK.رcf(w` 6,guV1W?ܼ'VK7g$oک|Θ1c#eyfb%=,L'V'ǽԖ|-IweJfV~T[ƥR$0=r>6YYrM6-W^yeN8ᄢRckreVp`;y8*rN9аucϟԿYr뒯q'M.حl .0$2.!Y[Jݓf x,枻5kd}ɷs1EɛG'?Z<2y=1*9f̺]W;J n]ĪU2o޼̙3G mI>1s|k_Ӌ2)wԔ}CEs (wrUtP T__444*>.-_bE:;; H %Qw}93gΜ38駟}7狎&(w ;|pQR^Ǘ>d֬Y3iV ,ȪUd.@;wnf(waqEG`@PTn??~A=wѼy2eʔq9c0(U*Y0+I'T*^3fLFYt ^Y``(wիՕe˖`PZsy䶫ꕞ$K>CiejAcǎ-:[J /o7*vd҅ O[@2]NۚykStorLRɯY1(w:?|G:Zlq\G<r|s2m7o޼# z]Ĉ#2lذ;(v~ ;3y,\(ZmF (0b̤YhпVXX"Kq-+w3]`L/c`GL13M#lq\12c$7}0uSkX7i@Q6;rʢc6f?SJTZT*e-}.cvۯзjfժU9sf\tEEǁ!i9KWG[V,$5nfWäI2|NEG4&M &PB/uuuR(o2zE+V\.`и]t 6C @URԸ̿r (w{'f˴iӊ__tvvmt駟. ՠ.~4jԨs饗`뮻{-:U䥗^ʬY؁.@PT.@PB/gƌ\trT*`(^WvpEjvͨ-:T<ә8qbQ`Z|ybŊ.E/__~lrIc[f*~v=@S{.GuT㎢UNۏۓ$k׮-8 P픻U@ PU@ l(:ƠܥOdc=={v> EGjؘs'I֮][p]*]*܅mp楗^*:CrziŊ 2k֬5}>7n\Q7 9fMRItuu?OяfΜ9EGA /r9vXc@T#wefŢoH=~Gg/:XfMxd=, @9䐜vi4iRQ5.f]$_|=^0;xly)5PSTP0y?(:Ơg[fMtw[yb^xrȌ9DfΜٳggڴiEG4j)wE>~xe;;ztwܟW=77SWWmET<#e֬#FkuC-]+;*. /oI{-[@"`[(w6ꦬX4EۏFRÇ,{cc`{`04iRyL:(6liuVm5~6j܋R r{ᔔk8i[ -?JR䘚rm:Cmh`@(w3O=T:;;<6o<ּ=u7g ҥK]t Q[tKf 7ܐ388۾9˳YhNʵiGV`ޜq9묳rG{`577T*pIKhooOWWWVZUt`3Jyy@袋ܜ뮻._W3qDE/c3<ɓ'ePPN<\s5YhQn֜p 򖷼%[.?u3RScSU>rJZE/0h)wAE V @թT*{rQG uKKKˀ^wʳ>k8c79?x{կ%oM?)c]hB/B2vآ ]aÆeرu]۬E`*Ԟc0͞=;rJv=Yt]|s=eq[=풢@:x꫋&(wp”墣6vY1Ĕ$ڵk&Ma}kz]466nm]<.0lн+zF T=.0(wQR_w]ihh(: : ݷ ~R[a~ٕ5r=39ss-SO-:@,hM~$y`e֝:*s2}xѭ\2˟yfGΘ1c H fJvlYrFLJ V@`+0d_&X|>c=$䯞\@qjjJ.I5y%'I zY</<ac3>I/Rp"wծ-$]`8tl(]{`EaLZO-(0 ;|;):ƠܥO3&w\:蠢aY֏]ދ@jјiIhE,[Sp"vDv[=y-;pdrTZr7I;س NCrz@6^ÓkNJ (Ic21I/D0)w*J>7MQ_O~|D&G$MuEQ'&8:{D)apOo9mmmEG[2?`Kf(\mڬ\2gN;K.):Rru{;*fJsssN;uY9Pt4֌3rI'eҤIEGA}6?~iu`WKJgjK]o7pC\p;sie9؄)SG?QFYt7g)c$ɼ+ ND\xE`3`R)GuT/^P;rM)I N$]QfKf(wvP^H31I],,8 $EJRе`.^xavikԩ;vl,Yo1]w]jjj'e7/}`̙Yti8=Irek,X ƌQ62uY9oek05=F3<3OsϞ=;'|r|n$9l_񖖖L:D 455e]v): 0(wvP*tO;nCCC1A69.I|ukD(wv ]hNu>}BO P0.#9v}]D[[[8|ρXt*~3k,.C8tIJe]Rgr>lٲz93K]tQ;<.PGdQIg習[ N@8ꨣrgEGԔ;㊎Ėlc_r1c8l߉~&^rԖkr]$k[;%'~rǸ46CO/LWwDSB/$IT*8 %qs'NU8=Ȣ}'̑GUVoow(KsUWPB/927s9؂q; ϮFeqs}'}ݗ ?~8ù/~뮻fyWtSw٢#[`.@PT.@Pŋgy衇>=wݼEW~t,^8s-: Jcƌɽޛ38#ƍ9眣ڢGeM>_0m|MͼW7ۧ'O~2/3k֬̚5+_}FSO=5g}vN>455`)wZ'd;oMW(?<_~ynPmAw%9sr}pݣVVP~ynM>eu-]Zɱ|;Ύ,XɈ#R__󷶶qV]]]YreΝU{hѢ$ɂ ҲJGGGjjjR.욋/N̟?@;kooOWW׀]/U* T*EG&2v|#G><#[07pC ;.rJ: BKhllL\NCCCQ!䦟>w׼ܝ3YeDo}>EԮ\s56osW?~bڜqWtڵks-[n吷_\t$~,YTc#evI'~:G.:ΠܥOρXto;/ҺL0aT*yꩧ{T*m\jinn÷j3<)Snc+J}L6m{cgĈinnk>W.2`}2s^_?~|rW~>l䬳GgMk{q6K **t;.@QUO ] .̸qR.0vmw ]`SB/]6{G-}{U<6o@{>טI)ƤylJSY< Խ|er4>5Ni}T^9wko_#sS\J455]uU{FuJ]$_z.]iGFRE Cբŋ3KRƏ_P"rz=mmmYlYQ*S$m}[SNM闤f^L'~/K׽j!ǧO),?J~ނ߿2Ut)5+K?ٷA5yꅗѕ$yvر{y2y䢣P:--- ]7prʬY(vu֍#Zrϸ=.(EZ`A{]C ybw[힆'RgnNO\)M#ץ?AǦoHW.Le͊mNz*no[a<}.ܺf΃*rͿ*:OJRכHF]t4&NXtzaKg]k]<[ޓ=;t@Q0 G# |~ii8I_{ɼL=Jĭ_H)ϜtunbR=Jw7/>tw)Zվ)9:in5z4\m>f|.թ=S] / IDAT1P2)ww7s}Rv>o=?Iׯ~s`M9uԟ7Io89ud:7;wݹNMi~꾞SOC>vmj&n3S~ݧ*פ4j̶ݎHlU Oo,{i㺻:/'rS[ .Kݻb)=VVWTV-xpwW:nty$7;)$g<\ʗ{ /W/K'OLOi뷥GSӺo?YM[׽R>m>jn(w+/K՗n|V4g.zѣАc`LC{$y~W]kt=p[:n wl4|;ں sc[NS-lfR7̻|qHz~ƽE5+gȵ+$_`@)wѸqlٲ}EG0/KӗK^?^Y,6Y>t[u^/shL[~ 8o\uʳi&Iۿws$Ið]Q #GO#FOLR0R# ?xvIit=tG'l?Vc=hLkO:tq]*kWnqm\ּՙ~mei׋{uL90)m]e[?vžh @,_l:nפRIyz?I{k^pFOLi^m_\yמ^]јgٽT~͊$,{:6ug|'v oUzjfzNp?nں}φǕt=pVZޒK~mMWQjnny,[ZcwK49KC^`Q*dI{f}>mkVr43ܥ~9mE C\現,io-6HM9us_޺}skצ|[ V^gWb{#iƧ/Ξg~ѩ;/S{E) o93]ܕ?GڮΝQFeEGv1>,xT?2ax5vAKXdIN8|9St@=Tt$IlCvOrmjOISS?Oi s>­߾>v?N:{wJ5 w+MIiب_MS>tڴ}>}xgO?] lQ]8trloKɩk^t4 &1EGԔ􉮮u lkk+8 @RԽگ^wuY'פ뗦:}qOܐJG{j&NK^znWYdݵ[mtn Ki]SΎA|5kV>䢋.̙3sYg)z-)צeԢc0Ľo̲eXtAЗj&NKG_K׃~=޸MRY ]"xCK& ~3ޭ/:F^s KY{uֿ~F+ˇ is7OO~yO3L.\|0aBN:G.]ZtT$nS0hLJnKiu?˴ś9ks oNiNIg{*/K*i]a9?CO5O_:x`jju~zC=Ї>gڛȨɇajW{{{n馜s9EG4ތ3&ӦM+: ܅^1bD?EGԾDMϼ#URI~65A&IJƤK t?pyjvw)K}m=T^ҘIIRL3 ;+,^H7ؔJ|yp䡟P.0D̞=;{n8L:8‡?p7-.RmmmᄁcI=.T/ox-}'?[\ǬSjRMNYjڰTInYsv~ɔ[&Ii.Ig|f&LI&m|[5gάYr7gժU}sg欳n`@tw}GGGIPP}jѫR{{_'~IWgR^Wiiϕ< K[?y4}+wڮUY4灆a}67}oS>uY9#S N '.U4" {)r|~27|~&)'][7=݋f{QF7&ۗa\=[YJAIؔСz737m3mt^OWީ{R3qjJLM}}s7r95;$muݚR{Go]s[}kWRIesR[Gr%dԨN`H*צ~gۺ&;3]ަ)+}׾.wk&MO?^_w|KuRWR>uZՋ߰_M\*/p[]F휚S6LSYWY{ԧ|G{g#P)ws=O9sigS~IWVOg9+Oe)$vhj&MOgxni[{d|wY^]Jw_|rc<)[{r@zשe붟Ο]߫'Z lQMJ$.8 @u+{'6Lߞ]vqmu̘S?I9β*zjkں͞V>R{7LtkG>+"o|&Y _HJޏYIMM-Bet?pcbjO0'IK.IQ{Sᗒpt/|WYW]ڷ?-IoHåLi*n4 z1QC+ϘqsR{9៦3{Y/^kO|ʇWSlOʹR13眿qڿ׽β*sw_c㬮2: BR-?̲{s-,rZKRW咚(h"/cb`d9gÇ} pyuWK/ەEuuuviq'r/5j|y3{No.~\,^o|(һ"=jBz Hg"bq_O)_|""XLhM 7_Df#Hu1Wɻ#?`G}4.>GN:Nܥ(t\wuI:[uNif[לb濸sǘ?+rg! @lNҹY(wJr(w㓟dL>=(JR-[V IG:.ի㦛nG}4(:| 6,(ƙgSLI:F#{{キ(.%qWDeeeQ:3<3=ؤct gqF,^8n9r(.@3N>뮻@(wڑ(.N M:@gN7uT*$5֔m.4nUVmxf'?)xX~}̝;7.䒸⋣gޓ_Wh;5jTG?#<2(6삏l/O?@TTTĘ1cb=rpxWcՑ磬,v}PRT*sN1v/xcԩqwDzebO:N<8C;7<OΘ_@SwqGs;eʔBwíD N@1)wH .Enݺ8蠃k'& Jk׮IǠTVV&.|+ v0jhiēϻ'1@GT*pMKQZ*fΜgV)R3fL1t'ĉCQYϮ񡉣#"b `SGyd'?=3(rN:FrmmWO0 o׭[tN{Hեy{՚毗XVg{l3wpt.e1}qW7?|:gL:xtuZU/Y,оt8-VGDĄ1c˜1GR~1rpLgrNͲJeeed"Hʴibl7o夓NK.$lڸ/c΂e#"bA#jz|bw]M}<9c~}cyQ`NA+u5z衘0aBQ`5XdI,Y$خ^z)isA8^zmi҈Ƙa)iom]C\qb `k C.]$v 5 _.јǺ(}*vإ(w>Q1FD]~ZD4c;hS)w7]j]|3'^.'vn;[lYJք1"NEDĵw#jj"mODCc.""50T%vl: {?p|I(9W1ck|.2tr辻hQ__K,I: @zWg_l-<@HeJr(wJ{@'P_<==ʲ-uRXjU/Z( Tv5kā H: tjof?rڵkTVVF^ckm…HDGץЙzlj?%ogI:tZ>huQ E;nEѽ{x|t̡cF..`{>qg5/^%9sO/ʯu˖-X|r)w).@rU;DeyT*ǏO(UЭ[d2?Ko(]hiӦźu뒎.=w֬Yx`\uUqg$kС瓎A )++K:l"ztN:t A |]JF~Pt~cQUUtN㮻tBr(ʤ#>P%@ Ph1tc=l:޽{ǫt 0s(wJr(w)|>W]uU,_<( #<\.(@'ܥ(,Y}Q QկAYg?NoĈ1|ׯ_Q:5.E#"1$;/リO.N0))wQk ]mQBhtf֭O}Sp¤;5\ SN9%^y啸 c̙1sַvk 7sL{IخqE>O:T*J:Nq lfͲ1bŢ~[ѣߐ=ht0)UI#+ZǎUULe]R)h1~cǬL\C}󾥯K_{!^X7;dL ID>6&-eh'^GoZZvQvNN".@;h[?xvY3%O V,|%֯ޡcߜxRR^dy;|lC}M]@;[`A|򓟌tj]bq%?@d[y|Y;%SOM7sI:JֺW؆o|IG=vزʮѥgvLtfvFi@ 26'2eJr2&&| Q^}G#[Q=w}{_\|q'vItgSmπ`ǥidϐbGc墹~[ѽ{Ш2H3IGJrZiڵ裏3<y(FtNfcʫ&'(q]JNnsI:@r1$p](]mGdN:n;1bDI&%(q٤tvw\N](].i)w)իWGcQ#""$sSRk׮UVł N/5jTQ:g$ IDAT5.P8c)wJr(w(I+WL:@nݺhhhH:۠܅VڵkQ`cEcIG4986d*fΜÆ K: z뭨˗ǀ)>4)w Ftv1e(]mg.]O=T⥗^^z)?u|t[QLJRrǤIb1dȐtZ]K.tҤc@ߨ[?kV}]v'Ҷ`X|yd26jժx{{,bɓ'GsJ#"b͚5 'ܔ@֧OӧO[bEq1u>E]'xb3&"">8#:wzclF /[+to(tvi ]T(w =֭[tҥqN+hsԩS#4N*)Sİa믿>,YRPQF 'P>lw}gIq駷iٖ jjj뮋իW砃#<1zVp83c[qM7EmmmyDŽ  ;YfO>|&RTx[o-N=ܳqnXhQAcDD 6,>4ƌ3{|>_8t:N=Ԩnuuuquʕ+ G]_+8Kyyyy]jժ/5559bĉqs=Wp=zg?قӴhѢ eIR|$ƍW8rK1hР8S _?ST|1hР6_}[e{#HAc?gfqgD=<ƚ5k/ʽ>8C ^ . ?E]]Bu*l+D.W~+RB+544~/x}'>񉨬lw}w|_.8KDD޽3hWs=(Ǹq .wo\pL&oL4c̝;79眢9 .wƽ[p8#c}iӦM;7#"ϟ_p}-^xᅂ#?ׯ_Ǹd2q8Rp 2$LRP}-w󝂳>|xtImcѢEqy sa\^qq-<=8< /{nQߧvZx' ҽ{8c * }Ѹ B|>~gO|Ͷnjn-%JnVPټt8sR`?rꫯ_gf1a„8#=D]CcLڭQZ6h֬Y1v~{lq(Ƣteee٠( P7#Nvg7pCX"(?ć>xcO:@M}pFxcthקg߸O 'JG =ulرc ^94 wqGwq/D0f Xfz 60a毧Z`(m]MeE6QKWL8..f=wl$3Fێ zhIGHĄ;] &3֭[<#IH̆rx楅 f.bp1O꛱.DPڔc, Ť]lX9"bڬ &AKQ466\O: e3jmme 'G\.tܥ(.]?sQ#<g|>D}'?mvK.$?'N`˜۝~Y~e͋ɮ]F:]_=o߾Ѽ˗Ǜo\sM\y啑dkN;-x;@\{q7'N N~FD5̈́uLv;ϷQEEEv3w1GxEиk-#zTDZn=6vҥK:xcԩqwIJebqgĉ'zh3KroIf Bwʔ)d).E3a̠毧z#$QPU}#"bb5 '#S趞r\2=/~#GL:@z^"jڒlτ 矏Ɣ)S⤓NC9D vpxW%i.(m.KfFD74,N8G?Ѥ#8sH٭2""fYu 'G @&oڃr~oڃrfnfZUc+kV$_;,֬YtN-t:~M7{lQ[Uy""b ! 3gΌG}4^3fLq:-.Es''Hek7?t P%@ P@G:B`o~^zi̚5+8_k@\~qE%`ZbE 2$oرcc}Urw1f̘cTƍ{'/^_}q饗*zK zzjs=dE/a)wE td٤cʕIhHRdZ}~xZ*x{K..(krJqIi FUUUիq.]O=T8#ngzQ]r`[+t7IP<.P ͼybwL&tخ%Kč7޸Y{UWq:tVXG;(C-Z_W{x86?XdIʲ%@ P%@ PI̖.]x`y睱&؉***k׮IǠd2#Ё)wҥKc޼y1g.b:@'bYf(](]"t'gaÆ˓ҩe@лwx衇bĉIG`';wnkxݻwq:-.Es衇&:-2.@ P6HUu#Huu+F?G~ќDG32>w^Q62ңףqEވi=#A7"%|^3rIIu#=xtz[oDnK\cGnY/EnȯZZlеkרH:۠VsX41w?ٹ+DצFzpuMsWEwGzĝ,w9>*\:7oFvrYET~H'""un*}2>zA!勢.~Q_۶%(g(?~->'r_;^պ;'Gǿ7<'۾+;`n)ut A ;"[gOd'CSG>!r _ Tb=bw3eEYyO-wJUu oA}\Q~"{ǣ#6]ds|T\𫈊.[=&(•y Q"zvMu_A|\T|\4]̈Ɔ|ȑុ=tT|כK?EWDGn-O/*H )1ONd'}(Y6vq;eǞ˖ufnn3௢656?s|T~ٲ6_dqHT|n~h|h _Z?**zVgo3*/{|b7fy4N?*rl1;:OGTY&tnfvM>3qG]MꢨZz :R"""wpT|֨90S.}.ѣ_TV?+~,"0\aRDy7DR?٣Ni/[6vw{+*λyVszQ~ʷ_nu;T]~ya-J^o"-Woou/r|.nFw[U*2?4X&t8]ؖ(;ҍ|\tt4>ovAQus qc;W{8==u-fxwk8qUnyƨYo𨨺jF3-gI76DEq_$j>)*E~#"OE}n:2޽{G6>}$64hx[-v7ȯXryaSgO{tzd&uZ,.{tzv.j8d5u[u~p#n4/[&#3V]sgzftQvRg{?߼e-;w_bY>uמ(NwIێ oFzIG2>bޫwעuP2zWT^m;ynތhx]'""=hϨOȷ$m7*pevQϵj=?mޮVPM|g܋OlrQZuR9Huټ]l&ܜg7cT^h̯|3R?fy߶q؉ͳQ'ݸEՙ;vbcC^q^+*ξ62n܉_4h׉L6*ʮMxhxvLT\]W+4N{DD4>yW4]㤺m9-ND2*rk(n#w|vɟ|n3k7q!{5ߟy=GU4of>4S|^zXoR㞻 D>EtQnݴ˯_"7oF]sN4>]GzwEDӒu?=Tه?=mnxow~.̸DĿ9cK^mv4DD~힓+ʦ|5 ->wy4>H]vlOy6ky3^qQ"7ōnq|v8Sμ};|> .lC~kѸV0Žzs _)fy6o4ۈ|cGDǼ;>Uo:zS.iί[uWgI: ۵?9=+lSܜg"zYc}/+lbw踨"sXT漨cK!T^WKm/jYt{ӤY IDAT=[lc8=;|.2S4_fKV ʎ?v)صsF;kb7Uխi9t&""e4EΦO~jޮ+ R%*|sD,""6 ~MTQq#գ3Q~-8h|<**/{E_"tcԨȽ'QGى_jUTЈTy;xs~Ж2} M'={ѭ ]bҥ7n喘2eJq}LMd ڢ.dڒ3/E/.I/?y;hNwMǩe<:"fJ]sN{Wd:%""2U׼w,r<~u7GQ4?+j- o&%d?ڟ|&o-xܟnl:|g?m'm'+,݆oК>nUӲ]vl2=""|QY9Q-;]uuuEݷ0mܥ(""vyQ#2ȷai$d>.8i!jpr3elк۾Ъ12pd7ƨ)_p\^h|(H䋷||C]{M|qW-eN㛷S\4y3pm_?|,"dߏ -~=7clDy֏mlh{ѥG]A#k ~GFݯ:cZll>af;[vǢEO>?6S@UD7lQ^u7o`R}v/^ۼ]w˷#7{ꡑ=t [ 7n^Qqu}/_k"Fs{h}{+r<ܲb7RqVq~ݪi-"_k4~SyǡΦRt]fnMى_2xTf]Ć~mnDDfg(;;QGo}Ig- @R?bd["ͻVEGԬM0J'eǝr?hkg_^ٲ8ƨ͊W#lzD#=snMm9h~'Q٭v]Vo<>U^}vG>eǞՙ!{5:?i @ JUuK5˯_5_/%lǕ} uM1riJueNoί|N>32pF]M(VW^߼~*F{;gXڞQs-x9R=m6lfνGʽLDqX0o/޳e:=xE9 (쏣F#=xT)_Mo7o>9l>n}@),3 wPT^roG׼/~u|탭*풔:.?uמSJaS"*6o7sYv//-_qD5o^G\49+8.~M4>uoϫ#{MF3*xM\z|{rDa;+_6Rmjѧ"2[/]#߭{ۛK+oϦoe:҃GxNe;Ŭι78#oʹvErfbcƌ{G:-X ˣIGi~:[@i{{1|]hwD%F+4| &klyT|ʈh}Qwʥ3bᡛwlYSO)iѲG oQ_?fn uFz̻"=xtDDd&ܼo{ηm]g|F.wl1`z7B͐d޴KM.$6[Ml%@%@L1j 6TGCa,ٖ,{Fxs󞣙f=yhzϝmolC+w [/wӵ+GExQEÿ/a_џ;O|"&Nv(w`$;!ʮ#U}25/WrQzw2.oa:㍊~n~zHXM%,7V4~/&ԲX^E#ܵ#Mw|$z,7>h^0cj_{e9⓯\i~}Rm>#vknWqi$*zmkYov]}H(9 -vK7]hzEy-Y C 7lYWTT^{m T*Wrgk+ZMMMQ__t@ ۩ODFz>}F1Ks즅(۷~'Do6 95mow9m횵EsE]'>moiYysym: DavJyǶAų,-#2.fAC"Q4pxDyU-U[[4f gu:WW)Nl@}!=rCFɥ״,Q |vGf9&ͧfm~Noް&DbȖ5,7p4&^ k"bq$ ĠΟ+h}ڞP͛˭%DA~ HK ֊ݦO},HGr#3 f|o;6ʫoV36\a?zi!h^is؃"shCێ3sj2rZ731s R/~':qB_ۢmߢo)Qn}HUl6BܩW_~.s]zcQ@}#J7fg;X{4%e۵MOɜG7Sp?gK׮onz61w̉A"꼺e \lZNNMScGiy}gѼbQk9Wq7MM{(>Qδmn -\r5D$tN;""y^M =r ͞=;/gyf P9^6?ۻQsjϵqYNr7lANMo{թ)>cho>Q!3ˢΟEW9v)>YnnSD'9nG9rhL!zDyu$:ea~6c]4HN:fSw 2w?>lnnsvTo}6mQ݁]y63b%6+u|^M4GSY'].[-JF~QpQr7[ c6xӿE F^voY,HN%eQ/txj7-$w%1hTM6;]@ɹWEbr#+[^XZviUGDz-!i!0hWgf~?"*Οlui򀓢싿()\xYź0>DD=? K"yؙ<̭^<>%ҫu8n̩G?$sYG緻Mӓ|<"Tlι (}R#8+ٹ݈?{}Hxf릗-_~.uzEGoʬ^S I;aSQˢ῾unG; өi}hr߻0p6]kݺu,;z 3wɉ]v%;8C g^| ~\ZXuFz]1[GvmfYvkώ(.mݵ+kԫEˏEn{Grh5 $kWDzHh|:"մ]c7/?"ˑ<(x$ DEH,s"hPD݆5.EC#K9^v^}<So<_88E{EbH,ųyN{Xo{,8b=wKKN$ɸ KލԒwF#nH-33Xۓ]=R3zyoD7rfK55%wthzֈn͑P=qȹf67;uVWrXf(](?4hPc._җmpXf(]BEE-7H9 P蔻]hرqG(@+w,H5\@`.@P.@Pq /(t1H9IϦ%'֬YӦM3f; ck6F(=Zqwq5;Fg.@P.@P<|+uuu@(](.<%@.(w{.QBk֬XdIN P@ P@jkkSQZZzw3<e˖;JV {3gѣnVSSr4hPXf3]:](]bѷo|w>.ؙk |G`(w r(wРAb1bĈ|G \qd˗; P@ P̍7k֬w 葔IJebʔ)%Qf[ 4((=Zq3477GDDSSSoXticxf.@P.?pL>=1@q@{ʾqKDC;ԔDN3(<_c„ q7; ;{mEizt:T*12.@Pn/~QSS(@+wlqguV&Lt:-H;Lۅ>(U\/>|(w r(wɉD"|x,Y$/FSSSh]rb=;|G=qǜ9sG+wz뮻.ȃt:t 3w r(w rD"D"1@qo~3 t@ \l2.@Pn*))"Ȏֱ 3&n8(p]r%f.@P.9~4hP}s=dW_M$9s%L_~嬲w}9=]yY=#'Y***˗/*Yeٸqc:'Y Ut:򗿜}s-deܹd9#7w^NNU{,gK/4}{$Kiiiz…Yeo}o~3,|һwo~󛬲,Z(]VV,&L*K:NO2%'YDkVYrW7q IDAT3zxҾÇ$K.޻G?پ˚5kҕC=4^>`:"ӧOߪUկ~(NꮻJGDz̙#iӦm_"k֬Y1~뮻V֭[ow;*++9jjj{qqq 801"Zɜhhh+Wf,8+VFP[[YHѻwYlYN=hРH$Y~իWVA#r.**j֬YYӷo߬fG̦[|yYJJJ+Wdv$1bYgjjjj"Je=ΠAiaÆXn]Y:1t,[ly~]6'3l+vmVZYӿfF)  s˳.duk׮:KYtiNf<8,z3mL&c]vjKcccX",ѿޥ}޻l]!wx衇SOӧ~׭ lիWG~WU|3w`'tw93gΌq;N{׶aə^zE^#"Zt72JKK>S.@ʕ?|ϥ\yϕ\6=铓/ww.>D͕j\\LJݻwN>΅j͕GwM d%L=r(w r;=GCSS3=lp1a\c.9z|`t]2.@Pn{ǣ)1W=ٳ㏏|0N9|iԭ]-KDYUU:< "5ȗ6Ă wѷo<$`s.ݺ<'9S1٧btsu Iջ S:d2I*IybOlQFD]8bݲ%yH;?.ҷgvNs)^hNmYrn1:޺eKc] r.nNźeK;war-J#<=r.װqc4:~ݺ]\{Oy;Jܥ˕UʪNk.L@55LsMK7bv; @aR-*T<;cVN͗d2%1owd3tH4 fe^~DD2nlTf{b ޅgbD+WǬ1lh ߥ^~,ZuCg_N71Q&62MM̛3(?qԤ W;zܣED?ƬhJmep1n9FDUDĻ/˖g1EEү_ ?  QfmZNOŐb1XW5kE}ccmz`(w,f'bh1|ܯOleƬECSSV~}cC]]Ԭnَݕ6 ?k7nn͇ÇcGGD]O?ߩ8c}Ƹ7ƪ:&@)w>'o-\r&GY?5Msr39kX~CWtl_@Rw{m)K>{)1t@u=?DK>tg~p-/-COf^Da+O9!O?e,oב ><WDDЖEexgY ώҒvc}hGŗ/8+3yGGL}4on"q>{?r| w7f~,^[H$+N:6 o~5.98xqa}M낄]9w`%D"RnӀ޽"zWVeoM۔jY ދ)f-\uW\9IcƵM۔jY muU//CuEy)vR/;ޏtzS}zw>v;S9h'U~)'luF5]j^͊r|iqCc-Wcca(J|~r=QнsD3;,ư]yʉq1yKտ)Y$>{Ʃ8YW_z~\_tk>wGc]3o8Mm\YV32^.-)/ 駿U[ڿ_\ ū;M;7k7fiCvDmCC3?ee鏞?zfU?l||9c"e&M}maxͮKzN*8@fSSfuf82,z??)v#"޸6m۫:=n,1oA|9^7n#zqzm[|QTT}wr켣҈x7c[]oa6˭Gfm.іڽ&9Gś~u[S:rK2{m.}D%2˿kht:6ɑH$~wSU_KFCSVM57OnMG?1N> Vc_tܑyorViS*v@ؔrWmKkd}&/ϙ¹<|f|a(wСCcqq; 9ԫ"<_Moww,kp^W[5k0%@aZn,f־;<zcS*~b-_^Zwfy۳%T*j5{HmUWš,[H\mCC衃c94ngo\r^⾻di<̬W359]`8n1D0./rݺX~C׫:WojъΨ3lH1ns_/3wC,{EߪKvxn ?{8 +ً֭ޏߜ*NQ#cQ1w./kcsc;5Nʊ*45bҖ⠪,gXv]X0^|kv7#-v_*^{w^AI%ŻKf~tP' ,~\%b1c1oH&bu1c{sq돟$c=**!V[o_Ι͍:8rƲץ%1iQ1b>p@7uy b;|1ÆācĠ}wee6NJ⵹y2_ka1|>`@$k6l+Vs;, ~x-)i5;4 XY&6g2i{f'1yuokÇ{]ޕ>]Ιo_ЩסԮ79n每 jj)Cg{os(1:Ə;x1lh7fҿ_ rݺxsxmn矻('MCDʊX~C,YSg+֮j56+b䠖_VچXzGM ޕiov/Ϟtdfr1q\v1ÆDiɦ׃dwY>r*smⓧUwSg٢7x#Y{Ν]3'U;fcp&G:=D}?ɇGY?83lHL98l[=tԝ{o /owd2N?져wUVGN5=Θx+:̈h`4snqEW{CfJ"q!f3:5ԺX_[צj=swҚ---.§3_?ı|mf>qS;]\#cdns q3OMtqG޽+#=mDĆ㎿o?pqqGNl}ѥǷ7=T{:<.:vr>~:goOs3,9򰸠{t]Ń/\~a SR{?✐9z҄EdooUԶK$"gb|ch~[]g uO{"6}% MMq5ۡ|9bX|9,O>{rEii߿]\^PW7?"ܹI3yqŹ38{V'hL1+=oxhhlҒ☿ffm{uNmvXXŹqw, uÇlΖcwn_,EuEyDtdm;~єJEq2]8dY+svߙUEۿWuǦs=->|?S=ic%+sMwl̕߼636W]^_8=tB;һ"%:Tޮ o]~aM{{6w9h`YmKZyjqSYVWrB9<{m`e ώ#&mWƥ'O|pe%%,u6׭*/N8:&=.:!,*/wFÐOUe|SI_ofM}T|)QRc ⢸g}t'xWI_'Oet\Iq2v9qԤ \9Ǒ{Ox[\;|h|SzߞpD"?8;\,>u1no[YV_L)ёʲr1E)Nŷ\:D);&Ǜwqw, m^t[,1,w!#"ߡ8okKVʔ#dQQWl_Q|5RW'ɗZtKt|oVvvKV=*ZQw' MMbmLJd@S*5f6d%qcO48c:6H #JMLL}qߤ6J{B|MnqD IDATS*O6#漿$V[18}c`7.9/>_lp:tܞ)f;R2x1W7rx3zH3WƏm>?%oa0!BޛYmI_4MWF6mCفLHHきaYG-ɶ,dޯ$G2_?^choZ5'e1=bdMr;GH|~ Vy;*7"1.gժ/Ib٬q:T֎Nb90s5*n\\VGڟ8@Yu<{2{p٣ߎo63ؿ?^_=Ͽ//HF df4mG[̺s 艅K]nV:%Gk#ͶOrŜl{ȡڸw>ZznQ׊ @1#|ݦf?ѮCy-j}7*á]yGڙs}yG7 'o1ܽ9`VzC}aKmӒ7\x[P=pS/) 퓘C/vu_~n^=66#]_^&4pCP_ǻ[xxyhzMXA  1FvX8 d6z:F]EMmܴ~9O/C^WҒ_&Ig6*%"BC/ZĭʴJ#\:u}^d {k`|ϫ"Y//jꉅK^ŏ>k5D:Z|\w_6Z:vt~zzC{Ɇ떼V+oLv1$6t޾3CRJj"4rJ۞9uwx+LX Ty6@{8bǹ=臘B hgvL&CifU%W1m޻|_>nQ&DoRS[m*I~23;6;Ѻ>^Jo˛h6q PSW7nv]q8#c{骚ZC(ޚ-j8>&P])vxH͝mbٙj ^co/ҿ?eua gΓy( Vph=s0_*߽O]_=xvϡW>$+gr۟5fᶍm5mxUSWg n͆=tıC <_7)LنQUM亲Qc7;:8MfJҦ}&krbl''r [Eذg>ȮOgǷ :qޅvuڹl1Nes\ZAj IIwX׷~v#8οp:cmj|ermTz? QItm܂C7)A.q=Or5+)]):Q沽^>WU[R][cM྽f{vm$)62p->ض1 7,qQ~ygNWűPͧsዧLГܮ˧O6Thp8T8՜Bv=n CCȏnW_#(2sOotȦͫTEs## C_KS{oR\T1ضON|q]#:Ԛfn֏Mx|mܳgɤAY'KykwM}v A%\OEu RKwIcxݴso 12*q{uJ-6kY/DgrƢ<يjܶ6 Vwگ  e&iTYS {im >o$ïv:+,=KN4\N[ϙdTDhhKl1-jaKtAmXT~7)[-ƽeAC0/9I7G7Gm]{iBxCa2{q=<oJSd+lUtaoh9Zsw0HY9>oxazarCH!Ic3 mk/xx|;c2٪*Z?iS!=vM-p}dI+]9RzF%eƠu}ȷǮ7wгG6|mo+XC;BjV4՛fNUVUյMsmRW{x;xǻVVTBu0lI?VQ]-u>8߱]Kd7>&&Fqq飯Jyyy߿͛;p:X2ڣImmg~bhlh!m-V9|vwMsf6)C25eH$[[/6m w ܄Ux{+:"pDg!mS%GE'~9/Hp7ԙsѶ p⢺:{.<^N:߽O_lܢg$t^CxIi[ ښ}}Gf WխVa }e>߰Pm>]Q?:o$=*61VXqh\PR ՚p~$J-[_=_!BKNԪ;gcqk^'~ujSso/55j*pYx+55MYYr[]琴fw;C|WUcwq64hU]U闟_XX藟 hw>]EEj̀tT4e O׵^hrdMh]^Zr%Msfh'+|{o )wl(b#OL:+U[TE8uWI\=xYe}?qΝ0F)缆X,48CgT|o4lsjhMn31|HXntD]:u߹KOB6k9гF 7Qaa88ðse\͒mwx[k:oXIbg~_ocשz֏][sY pI-wfHZ0;M̟*{uo"O* ά-޾?-d&ZwU; Ok]{9Юt3 JJK̒5z@Hט[A<13C}H<@{).+ךݚ4x$iڰzrR3F 1vojr>ƿ۞9v7HoJum[Z{b4.c$)5n9{_i<:ݱ۽ӱ[͉6ݜ{; ]$B-xqBl7y{)WOIvYu[ӴNG+ clmTV4&q>>L&`^'U5>})y9ޜw*q,$p9Ѱ<Wu /*Va!ʯ+(6;6gXҞZ@aYLG*p!~kc[9Rd8g rj6Κ79)=$)19 *Z}}ysz zTxg _v%:g[Ɲ*htӣGk':فY ߔyڷTJUY]c?^_nlՎ c 7Ǯ7UIN>v!$ YRŢ~M3{Э#8$tW=W_zv 1цb2={{Dw3Tp׸L> m:=]b6$KRIEǜBC zTYY~c]΁#ꅩl!C׭ݵV=5gH͛;[7ܓwX-|Ǟ=en߳fpd4ng 2|ʎlcEܐZgq4*L&nޢc/Ƚw?^%˃zz5uUO{.>^Ԓ:}i^s=㛪 KOSߤf[sѺܳtq?hj_JCtݬK[DZn bcׁF2b҄́Rjզ9 uӮEk:oXHmdZCnc{vP٧We. 9z;mŶنLFyt!}{{2#mܷPq麇ktz $w;cNmM;#:;$]k}=uo?xh ޙ:޽[wqVX~c]c %hXZ53+/3i< pJ+* 7=/'tJҜ#η+.+7Wiɉ:k̈Vndh޺n tgz<Ν\/f5YM3#BCu)n`jSY^~m1顛 &9G{tGUE3nbb6h"usu)k.:~LK2]ԬQ5z@ZWXջ8Y8 ӈimYn)kFntn#n?l]=s~vՕNhժ'[bx]:uzyIGp&ڴomNiCF IM>QQ{ۗjIg%-lmy9N'pׇخJ˗{@dX~|92,)tכl2t٣Kt瓵6[jlHE͚Ѿ;;Gݜ*+\߹y,<{}xDAAܳ }yyyU!3 ]Sܟ\/fa-L^=sf*u?Z|e_Yui-͆je.?bz਱̑4v`S뽛ޒV˧OVĄVoc2I7P5>;QαkO{EKNr{ŒΙm.+sPd 93 u3<ń6c<ڑ[y=s0tu9ʎetdjsǏ1|/g~atH IDAT9;nd[iC>[Թ!>&ZnwKNRZr{|)͹UyVN` p *w۲ظ`?d6|w4wruK_׆{擵 3&ff7]Mhr\q׭nF_nj Կ~[4GGw7\epaVmqB/j+h6{n؁.OwޢQ.*Ӧm?[R3wh{%.ǎ}W]j\[WN'\9 2?WeM{%S'ꞋϳK/_߭iqߟml}qe/Wj߷f7[굆=s~XΘ;?~RZtX[DLcG/K+*WPCCݰwJ%5b"#TR^ѡ?# jП]wRV!?he  mJK=GKuθv G{ :{(CcCUavogxzǷ)":`8MOnԡB(SldRziJpXz| gh _nA%ZZ{eޗVb#Vlܡ?-ORvՎ\;|TMLq Q]}[U44XbI4o/sUZRfNlZ;Zm۝>oeN;wkMJ8~UʾeR;z=x{'kDZG;sr?%Y2/wG\b%d;Wn/Ǔvd稺]{XI!{Z5_mڦD]0J6;sț ۶h/?rTzKR\.:QLlMhÞ}U.,ֽ-n`PIӆ nOU+dfWR5o}}gP][}U=xhI48Cgxu;5VUPO}& 5Lg>ZonwյW?Pj=\Dmjq_/o?|nQiޮ\}*r*uņ͚;n2%e'81Uպzk cXE.B^aUؕV늓n3gUS98*kjϿtdҤ ".*֟5/TWΘD%Dgmv~~Z "7y٫{%P-@~U-VwGyGx=4NKJTZR:cۼ|Ö\fڙG\__{=NOInu3K>ַg_xW Orkui{o.ֽW\lLճ1O,\bHcc 'z9vSթq,taV0{Mjѫ˿^}%UzarWZH{_g7lW^W}+8;p$_<[N W֭}RY\T?;_=@TϾ̒[6lכ>O<.;Қ=7[fRWߠe߯C-ޙsH۪kOR-9flAEv~ǟ0QtL>@/~*Vlج񴡥sg{m Lg>^VU/,[q;QQE=O>q+IնV74hu}-OhhJ^aƻz֭ڭ_{l¿fv+=|D}cvnOwX_r;ͺܾg}/:ğx"Q}C+3QEE:\X { (%[U|׽yU^y{+OϠ+uO*L&aaiSԿg-XېSGWbl#UZ^#Voqk+~O ք́JSblbeZU\VC m6iH=bpQI/:WMo|郏x|NдJQblEJ'ʴ#'Wkxz ӄA-sY%:\Tv.j\TOގǸd }j,!3GI׌C;>^a*(-Cj[sy`8+*]W>l7_`;W{&k ?^^܂Be-;i[iZ)j뭮^9CgU5>ĬohЖ^?+Jo9k+kG[| Vx|8󏗴8n?+aϾvn=';@v3UR\}~m{ٛwD{<JOI= KmaN.Vy gvzZ~0μ۷5#;j|?%IUM:44X;3-9\X>-铘`vV/鈥W<,AЖ/UhѪdΛ0~TYݶn m.RqݎָJ[Pq*nP/㝝+ \o;u(%@ @,vKҔ#dTz7U^ !&Z7>Cƭ^F򌩒l'UD]:u$@105<^'9H:TP eUUZlUO#-)Q]uƽs_]'1AGϾ<9O)㔝_\%y$&2BszDwӮ<-/KcwܬبHm;e?YcF*5Y{a?<]/WjaJs'~c^NA7ΙzguŎp34_orҒej:ݯ4g,f3.}^_nڪ~Izz2WuڶSQӒBkv~Z*RAI6٧*l MsΔ$U%yE]ڨV=v2sf~)i JJOpNo]{:yEj>E!ώ|s_Z, [r݁yǻ.>YݻEI^3yE2['[PN}{yEw򏗸~=zcjź ﶋԕgLd;Ly]Whd4%Y$Y*,-m<5v%)+Vlجduבb}n>[I ^W!sJi \6m*,="]کVwY/i}^Goe {685 /څw}d2mEC }ݧS{)3w}l6G2tT@ @ p@L&eڴi~{)] z衇~@ p.]w @ z/@@CGULL֮]p>T\\r{).]w[}}h~A*((R4]풗 ]#@ p.]w @ @ pׇ/@{]Y||JKKe6]#w @ @ ]RSS8/K{URR"tiTh7]#@ p @n555:p@/ .:9(H#5J -3]w}FoTTTp/+ۿyM4I_|7:t6X Tof>dZ ?]L&{@@-3]wKAA~{)].vYj{1ٳKwj5A p.]w @ @ pׇf$d2y% 8Pל9stuw} r.]bHL&WҵhYfg.l;.]w @ @ p.];t萿 \W|󍿗 PYYUXXpw @ n^Bg^𙿗< @/tYg)77W)))^NE T2`#fL @IITRRBCe@ p.`֖HJJiX7ib_UaEwh_tbA&gi0v?cǚ]H  p_!M^<ؕlռO.[+Y;ip@ Ƭ*׷E"p8m.VyS|A ֗xmNTP㻵u> 0K\ʫnCUYܳ{]YLL EûymIʌZ:*wXbl11R(Nc)үbeitiN|l,59]4$-'=9T)5vi7K3K_O%@ pj߉:)JJ|/8edd(33S^JF EU@2dرh p.]w @ @ pׇu*77Kw}(''Go֮]pw @ @ ]uWKwo^JF p.]w @ >}IDAT@ pI,W Б:PZZ-[>Kw}ste@ p3wS̾IT[}EȔ {ZC԰s-SA J(StmyհoS *,,Ld?.dx$aFշ!5%+Ƈd{dn 9;TI.{VZrΏ$sj5TݒT| n5`/K-3S;n[\r.]I =X!W_}Oضr?Wߦ*88Xs2<]4ˌ۵i u),~D_Țи o2Ua~?]|#Toi1h &8eYf^{_(dm)&A@ _W7}QC{Ab$I摳|Sly'޴WP[1;c~Lqɶ}kP~N?T8*'O+%Kpvu/d_~.վH Y߫W W'SLBg2un\OT柛{U;M֣n{A2'wROVۻغ3Oϵ㗼we(DLՖBjZVn3d-;+mY3aˮv:tTiU()NBRX^Є8 !qB9vl߳x&889{|>9_"?[هrg&EqPNg׈Ǘnoe Qwg7N?:}cwF~G0>V?|e0OE\Nώܭ](rz?s6=ʸ D7_xI7,J1ixm踚 b5>c9暛Furdޏ?Y绗SwΖȎyo/k~Cٻу>n6+=?}?[zreO?]ڻ}s1laۅƉQr_Dge0‘yrw+100P1ӿ/FO]FD7G G}nvpϰ3K# C˩].p6Hcwމŋ+= \J7E*[^iQ<sbhĩh<+gGowdGGrw FDDwww'I63Q8B}Ӱώދ;.p .P g=]{쩓C7`v܍z.0:]:5N}q ؐ3 /\K Tź:P7ٟ |Q;t9#(Vz<>|ž'j},W=+rq?_8lӦMQWwY:::bĉ1iҤ?h7'eYlذ!,YRQrNg-w82_|eZ>{0?JefƍL^:ؽ{w477WzRvȰ¤i?X3(=]ó'_9bO>8LYoqblQ__+'>@.N Tz 2;H?cC Tlaۅ++(:w{D>0"͉1r2ʩ=g9[ZZP5`,dG#vaf˨ϭ1؁m~@ωʞQl(wUڽ5?6 Yhx[n݋F p>]j lZsBӤwۨΫyG7n0X&C'Ei:@ T󷃟7zN͜yQ{'Ooa_aDVʾ]u]3p!]jeߋ??]7'Ǹz}sV?;#798.7gYGgPUb]4׵QϜ{`}S4E>'h꨽s aށ ?9FRcssQ7c\c4v(zﻤ? @+ D^6F>.+EmJezȺ^8{?-J{SO}*nJIOor!Y)_3QwGʹ9qQzGdb`sQzwecDMQ<o^|6?RXfMeG˓uXÈ~Xs_Qċ?*{62$@ .@ Pzqܹs+=JU+Vz m---cT=O$@ .@ P$@ .@ P$@;bűm۶J$N;JlݺңS$@ .@ P[hѢ8vXGj] ~;^}(UM .@ P$@ .@ P$@ .@chĉQ(bH\Ts[o .(@<;@9(wHr ] ɓ'GPJRՔ@.˖-hii(UM R(cT=.@ P$@ .@ P$@ ʲ,x(@┻c=|Xn]GCR)""*< :.@ P$@ OO^Q+=@51cF>|8+= 8O1.P](w3ws=ϝs5]wݕ+#^zȲ,WNMMM\2.9T*E[[[;v,,7xctM2~xsR__\}3Doooyθrelڴ)mۖ{)S=ܓ+ѣf͚ȕS(b1cƌ\9/btttʈ;wn,]4W]( &\rFev8|pY"",Xv[;wƫ{x3g~1\[l[eĉq}8~x^:s Xti̙3'WΆ bݹ2""f͚˖-˕qX~}Y~瞘+s}zyկe~e֭YP(,wqGkOl_5K[[[f,\,ffwSk=,}}}YSSSYf4iRV*r#|5˞={ڲrM7%˲s\ٮs /m+V6rKYf) Y{{{Y<ùf)Jٔ)S2˸q\=M+7vڕŘ7o^={ĉ'r̙3'&M+{垥!9;v}wDDKKK4668|pY.1qĘ;wn,ˢ,wzJ!"3:+#bӧ닝;wy庋9bM xƬYbʔ)2w=K}}}\{svUךsݩ1xWu9b0aB\uUsmۖ;b𩉺\> ,W\qE'cǎe{qRWW2"ʷv;wnL81WʵvWƑ#G=K.߼a2kUɓϠ-[%+w.##[ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$@ .@ P$޹o߾+0GZ__y#b;;::z.2$@ .@ O͋iƦ-IENDB`faust-0.9.46/documentation/faust-quick-reference-src/rail.sty0000644000175000017500000007151611702130733024175 0ustar orlareyorlarey% rail.sty - style file to support railroad diagrams % % 09-Jul-90 L. Rooijakkers % 08-Oct-90 L. Rooijakkers fixed centering bug when \rail@tmpc<0. % 07-Feb-91 L. Rooijakkers added \railoptions command, indexing % 08-Feb-91 L. Rooijakkers minor fixes % 28-Jun-94 K. Barthelmann turned into LaTeX2e package % 08-Dec-96 K. Barthelmann replaced \@writefile % 13-Dec-96 K. Barthelmann cleanup % 22-Feb-98 K. Barthelmann fixed catcodes of special characters % 18-Apr-98 K. Barthelmann fixed \par handling % 19-May-98 J. Olsson Added new macros to support arrow heads. % 26-Jul-98 K. Barthelmann changed \par to output newlines % % This style file needs to be used in conjunction with the 'rail' % program. Running LaTeX as 'latex file' produces file.rai, which should be % processed by Rail with 'rail file'. This produces file.rao, which will % be picked up by LaTeX on the next 'latex file' run. % % LaTeX will warn if there is no file.rao or it's out of date. % % The macros in this file thus consist of two parts: those that read and % write the .rai and .rao files, and those that do the actual formatting % of the railroad diagrams. \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{rail}[1998/05/19] % railroad diagram formatting parameters (user level) % all of these are copied into their internal versions by \railinit % % \railunit : \unitlength within railroad diagrams % \railextra : extra length at outside of diagram % \railboxheight : height of ovals and frames % \railboxskip : vertical space between lines % \railboxleft : space to the left of a box % \railboxright : space to the right of a box % \railovalspace : extra space around contents of oval % \railframespace : extra space around contents of frame % \railtextleft : space to the left of text % \railtextright : space to the right of text % \railtextup : space to lift text up % \railjoinsize : circle size of join/split arcs % \railjoinadjust : space to adjust join % % \railnamesep : separator between name and rule body \newlength\railunit \newlength\railextra \newlength\railboxheight \newlength\railboxskip \newlength\railboxleft \newlength\railboxright \newlength\railovalspace \newlength\railframespace \newlength\railtextleft \newlength\railtextright \newlength\railtextup \newlength\railjoinsize \newlength\railjoinadjust \newlength\railnamesep % initialize the parameters \setlength\railunit{1sp} \setlength\railextra{4ex} \setlength\railboxleft{1ex} \setlength\railboxright{1ex} \setlength\railovalspace{2ex} \setlength\railframespace{2ex} \setlength\railtextleft{1ex} \setlength\railtextright{1ex} \setlength\railjoinadjust{0pt} \setlength\railnamesep{1ex} \DeclareOption{10pt}{ \setlength\railboxheight{16pt} \setlength\railboxskip{24pt} \setlength\railtextup{5pt} \setlength\railjoinsize{16pt} } \DeclareOption{11pt}{ \setlength\railboxheight{16pt} \setlength\railboxskip{24pt} \setlength\railtextup{5pt} \setlength\railjoinsize{16pt} } \DeclareOption{12pt}{ \setlength\railboxheight{20pt} \setlength\railboxskip{28pt} \setlength\railtextup{6pt} \setlength\railjoinsize{20pt} } \ExecuteOptions{10pt} \ProcessOptions % internal versions of the formatting parameters % % \rail@extra : \railextra % \rail@boxht : \railboxheight % \rail@boxsp : \railboxskip % \rail@boxlf : \railboxleft % \rail@boxrt : \railboxright % \rail@boxhht : \railboxheight / 2 % \rail@ovalsp : \railovalspace % \rail@framesp : \railframespace % \rail@textlf : \railtextleft % \rail@textrt : \railtextright % \rail@textup : \railtextup % \rail@joinsz : \railjoinsize % \rail@joinhsz : \railjoinsize / 2 % \rail@joinadj : \railjoinadjust % % \railinit : internalize all of the parameters. \newcount\rail@extra \newcount\rail@boxht \newcount\rail@boxsp \newcount\rail@boxlf \newcount\rail@boxrt \newcount\rail@boxhht \newcount\rail@ovalsp \newcount\rail@framesp \newcount\rail@textlf \newcount\rail@textrt \newcount\rail@textup \newcount\rail@joinsz \newcount\rail@joinhsz \newcount\rail@joinadj \newcommand\railinit{ \rail@extra=\railextra \divide\rail@extra by \railunit \rail@boxht=\railboxheight \divide\rail@boxht by \railunit \rail@boxsp=\railboxskip \divide\rail@boxsp by \railunit \rail@boxlf=\railboxleft \divide\rail@boxlf by \railunit \rail@boxrt=\railboxright \divide\rail@boxrt by \railunit \rail@boxhht=\railboxheight \divide\rail@boxhht by \railunit \divide\rail@boxhht by 2 \rail@ovalsp=\railovalspace \divide\rail@ovalsp by \railunit \rail@framesp=\railframespace \divide\rail@framesp by \railunit \rail@textlf=\railtextleft \divide\rail@textlf by \railunit \rail@textrt=\railtextright \divide\rail@textrt by \railunit \rail@textup=\railtextup \divide\rail@textup by \railunit \rail@joinsz=\railjoinsize \divide\rail@joinsz by \railunit \rail@joinhsz=\railjoinsize \divide\rail@joinhsz by \railunit \divide\rail@joinhsz by 2 \rail@joinadj=\railjoinadjust \divide\rail@joinadj by \railunit } \AtBeginDocument{\railinit} % \rail@param : declarations for list environment % % \railparam{TEXT} : sets \rail@param to TEXT % % \rail@reserved : characters reserved for grammar \newcommand\railparam[1]{ \def\rail@param{ \setlength\leftmargin{0pt}\setlength\rightmargin{0pt} \setlength\labelwidth{0pt}\setlength\labelsep{0pt} \setlength\itemindent{0pt}\setlength\listparindent{0pt} #1 } } \railparam{} \newtoks\rail@reserved \rail@reserved={:;|*+?[]()'"} % \rail@termfont : format setup for terminals % % \rail@nontfont : format setup for nonterminals % % \rail@annofont : format setup for annotations % % \rail@rulefont : format setup for rule names % % \rail@indexfont : format setup for index entry % % \railtermfont{TEXT} : set terminal format setup to TEXT % % \railnontermfont{TEXT} : set nonterminal format setup to TEXT % % \railannotatefont{TEXT} : set annotation format setup to TEXT % % \railnamefont{TEXT} : set rule name format setup to TEXT % % \railindexfont{TEXT} : set index entry format setup to TEXT \def\rail@termfont{\ttfamily\upshape} \def\rail@nontfont{\rmfamily\upshape} \def\rail@annofont{\rmfamily\itshape} \def\rail@namefont{\rmfamily\itshape} \def\rail@indexfont{\rmfamily\itshape} \newcommand\railtermfont[1]{ \def\rail@termfont{#1} } \newcommand\railnontermfont[1]{ \def\rail@nontfont{#1} } \newcommand\railannotatefont[1]{ \def\rail@annofont{#1} } \newcommand\railnamefont[1]{ \def\rail@namefont{#1} } \newcommand\railindexfont[1]{ \def\rail@indexfont{#1} } % railroad read/write macros % % \begin{rail} TEXT \end{rail} : TEXT is written out to the .rai file, % as \rail@i{NR}{TEXT}. Then the matching % \rail@o{NR}{FMT} from the .rao file is % executed (if defined). % % \railoptions{OPTIONS} : OPTIONS are written out to the .rai file, % as \rail@p{OPTIONS}. % % \railterm{IDENT,IDENT,...} : format IDENT as terminals. writes out % \rail@t{IDENT} to the .rai file % % \railalias{IDENT}{TEXT} : format IDENT as TEXT. defines \rail@t@IDENT as % TEXT. % % \railtoken{IDENT}{TEXT} : abbreviates \railalias{IDENT}{TEXT}\railterm{IDENT} % (for backward compatibility) % % \rail@setcodes : guards special characters % % \rail@makeother{CHARACTER} : sets \catcode of CHARACTER to "other" % used inside a loop for \rail@setcodes % % \rail@nr : railroad diagram counter % % \ifrail@match : current \rail@i{NR}{TEXT} matches % % \rail@first : actions to be done first. read in .rao file, % open .rai file if \@filesw true, undefine \rail@first. % executed from \begin{rail}, \railoptions and \railterm. % % \rail@i{NR}{TEXT} : defines \rail@i@NR as TEXT. written to the .rai % file by \rail, read from the .rao file by % \rail@first % % \rail@t{IDENT} : tells Rail that IDENT is to be custom formatted, % written to the .rai file by \railterm. % % \rail@o{NR}{TEXT} : defines \rail@o@NR as TEXT, read from the .rao % file by \rail@first. % % \rail@p{OPTIONS} : pass options to rail, written to the .rai file by % \railoptions % % \rail@write{TEXT} : write TEXT to the .rai file % % \rail@warn : warn user for mismatching diagrams % % \rail@endwarn : either \relax or \rail@warn % % \ifrail@all : checked at the end of the document \def\rail@makeother#1{ \expandafter\catcode\expandafter`\csname\string #1\endcsname=12 } \def\rail@setcodes{ \let\par=\relax \let\\=\relax \expandafter\@tfor\expandafter\rail@symbol\expandafter:\expandafter=% \the\rail@reserved \do{\expandafter\rail@makeother\rail@symbol} } \newcount\rail@nr \newif\ifrail@all \rail@alltrue \newif\ifrail@match \def\rail@first{ \begingroup \makeatletter \rail@setcodes \InputIfFileExists{\jobname.rao}{}{\PackageInfo{rail}{No file \jobname.rao}} \makeatother \endgroup \if@filesw \newwrite\tf@rai \immediate\openout\tf@rai=\jobname.rai \fi \global\let\rail@first=\relax } \long\def\rail@body#1\end{ { \newlinechar=`^^J \def\par{\string\par^^J} \rail@write{\string\rail@i{\number\rail@nr}{#1}} } \xdef\rail@i@{#1} \end } \newenvironment{rail}{ \global\advance\rail@nr by 1 \rail@first \begingroup \rail@setcodes \rail@body }{ \endgroup \rail@matchtrue \@ifundefined{rail@o@\number\rail@nr}{\rail@matchfalse}{} \expandafter\ifx\csname rail@i@\number\rail@nr\endcsname\rail@i@ \else \rail@matchfalse \fi \ifrail@match \csname rail@o@\number\rail@nr\endcsname \else \PackageWarning{rail}{Railroad diagram {\number\rail@nr} doesn't match} \global\let\rail@endwarn=\rail@warn \begin{list}{}{\rail@param} \rail@begin{1}{} \rail@setbox{\bfseries ???} \rail@oval \rail@end \end{list} \fi } \newcommand\railoptions[1]{ \rail@first \rail@write{\string\rail@p{#1}} } \newcommand\railterm[1]{ \rail@first \@for\rail@@:=#1\do{ \rail@write{\string\rail@t{\rail@@}} } } \newcommand\railalias[2]{ \expandafter\def\csname rail@t@#1\endcsname{#2} } \newcommand\railtoken[2]{\railalias{#1}{#2}\railterm{#1}} \long\def\rail@i#1#2{ \expandafter\gdef\csname rail@i@#1\endcsname{#2} } \def\rail@o#1#2{ \expandafter\gdef\csname rail@o@#1\endcsname{ \begin{list}{}{\rail@param} #2 \end{list} } } \def\rail@t#1{} \def\rail@p#1{} \long\def\rail@write#1{\@ifundefined{tf@rai}{}{\immediate\write\tf@rai{#1}}} \def\rail@warn{ \PackageWarningNoLine{rail}{Railroad diagram(s) may have changed. Use 'rail' and rerun} } \let\rail@endwarn=\relax \AtEndDocument{\rail@endwarn} % index entry macro % % \rail@index{IDENT} : add index entry for IDENT \def\rail@index#1{ \index{\rail@indexfont#1} } % railroad formatting primitives % % \rail@x : current x % \rail@y : current y % \rail@ex : current end x % \rail@sx : starting x for \rail@cr % \rail@rx : rightmost previous x for \rail@cr % % \rail@tmpa : temporary count % \rail@tmpb : temporary count % \rail@tmpc : temporary count % % \rail@put : put at (\rail@x,\rail@y) % \rail@vput : put vector at (\rail@x,\rail@y) % % \rail@eline : end line by drawing from \rail@ex to \rail@x % % \rail@vreline : end line by drawing a vector from \rail@x to \rail@ex % % \rail@vleline : end line by drawing a vector from \rail@ex to \rail@x % % \rail@sety{LEVEL} : set \rail@y to level LEVEL \newcount\rail@x \newcount\rail@y \newcount\rail@ex \newcount\rail@sx \newcount\rail@rx \newcount\rail@tmpa \newcount\rail@tmpb \newcount\rail@tmpc \def\rail@put{\put(\number\rail@x,\number\rail@y)} \def\rail@vput{\put(\number\rail@ex,\number\rail@y)} \def\rail@eline{ \rail@tmpb=\rail@x \advance\rail@tmpb by -\rail@ex \rail@put{\line(-1,0){\number\rail@tmpb}} } \def\rail@vreline{ \rail@tmpb=\rail@x \advance\rail@tmpb by -\rail@ex \rail@vput{\vector(1,0){\number\rail@tmpb}} } \def\rail@vleline{ \rail@tmpb=\rail@x \advance\rail@tmpb by -\rail@ex \rail@put{\vector(-1,0){\number\rail@tmpb}} } \def\rail@sety#1{ \rail@y=#1 \multiply\rail@y by -\rail@boxsp \advance\rail@y by -\rail@boxht } % \rail@begin{HEIGHT}{NAME} : begin a railroad diagram of height HEIGHT % % \rail@end : end a railroad diagram % % \rail@expand{IDENT} : expand IDENT \def\rail@begin#1#2{ \item \begin{minipage}[t]{\linewidth} \ifx\@empty#2\else {\rail@namefont \rail@expand{#2}}\\*[\railnamesep] \fi \unitlength=\railunit \rail@tmpa=#1 \multiply\rail@tmpa by \rail@boxsp \begin{picture}(0,\number\rail@tmpa)(0,-\number\rail@tmpa) \rail@ex=0 \rail@rx=0 \rail@x=\rail@extra \rail@sx=\rail@x \rail@sety{0} } \def\rail@end{ \advance\rail@x by \rail@extra \rail@eline \end{picture} \end{minipage} } \def\rail@vend{ \advance\rail@x by \rail@extra \rail@vreline \end{picture} \end{minipage} } \def\rail@expand#1{\@ifundefined{rail@t@#1}{#1}{\csname rail@t@#1\endcsname}} % \rail@token{TEXT}[ANNOT] : format token TEXT with annotation % \rail@ltoken{TEXT}[ANNOT] : format token TEXT with annotation, arrow left % \rail@rtoken{TEXT}[ANNOT] : format token TEXT with annotation, arrow right % % \rail@ctoken{TEXT}[ANNOT] : format token TEXT centered with annotation % \rail@lctoken{TEXT}[ANNOT] : format token TEXT centered with annotation, arrow left % \rail@rctoken{TEXT}[ANNOT] : format token TEXT centered with annotation, arrow right % % \rail@nont{TEXT}[ANNOT] : format nonterminal TEXT with annotation % \rail@lnont{TEXT}[ANNOT] : format nonterminal TEXT with annotation, arrow left % \rail@rnont{TEXT}[ANNOT] : format nonterminal TEXT with annotation. arrow right % % \rail@cnont{TEXT}[ANNOT] : format nonterminal TEXT centered with annotation % \rail@lcnont{TEXT}[ANNOT] : format nonterminal TEXT centered with annotation, % arrow left % \rail@rcnont{TEXT}[ANNOT] : format nonterminal TEXT centered with annotation, % arrow right % % \rail@term{TEXT}[ANNOT] : format terminal TEXT with annotation % \rail@lterm{TEXT}[ANNOT] : format terminal TEXT with annotation, arrow left % \rail@rterm{TEXT}[ANNOT] : format terminal TEXT with annotation, arrow right % % \rail@cterm{TEXT}[ANNOT] : format terminal TEXT centered with annotation % \rail@lcterm{TEXT}[ANNOT] : format terminal TEXT centered with annotation, arrow left % \rail@rcterm{TEXT}[ANNOT] : format terminal TEXT centered with annotation, % arrow right % % \rail@annote[TEXT] : format TEXT as annotation \def\rail@token#1[#2]{ \rail@setbox{% {\rail@termfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@oval } \def\rail@ltoken#1[#2]{ \rail@setbox{% {\rail@termfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vloval } \def\rail@rtoken#1[#2]{ \rail@setbox{% {\rail@termfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vroval } \def\rail@ctoken#1[#2]{ \rail@setbox{% {\rail@termfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@coval } \def\rail@lctoken#1[#2]{ \rail@setbox{% {\rail@termfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vlcoval } \def\rail@rctoken#1[#2]{ \rail@setbox{% {\rail@termfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vrcoval } \def\rail@nont#1[#2]{ \rail@setbox{% {\rail@nontfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@frame } \def\rail@lnont#1[#2]{ \rail@setbox{% {\rail@nontfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vlframe } \def\rail@rnont#1[#2]{ \rail@setbox{% {\rail@nontfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vrframe } \def\rail@cnont#1[#2]{ \rail@setbox{% {\rail@nontfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@cframe } \def\rail@lcnont#1[#2]{ \rail@setbox{% {\rail@nontfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vlcframe } \def\rail@rcnont#1[#2]{ \rail@setbox{% {\rail@nontfont \rail@expand{#1}}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vrcframe } \def\rail@term#1[#2]{ \rail@setbox{% {\rail@termfont #1}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@oval } \def\rail@lterm#1[#2]{ \rail@setbox{% {\rail@termfont #1}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vloval } \def\rail@rterm#1[#2]{ \rail@setbox{% {\rail@termfont #1}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vroval } \def\rail@cterm#1[#2]{ \rail@setbox{% {\rail@termfont #1}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@coval } \def\rail@lcterm#1[#2]{ \rail@setbox{% {\rail@termfont #1}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vlcoval } \def\rail@rcterm#1[#2]{ \rail@setbox{% {\rail@termfont #1}\ifx\@empty#2\else\ {\rail@annofont #2}\fi } \rail@vrcoval } \def\rail@annote[#1]{ \rail@setbox{\rail@annofont #1} \rail@text } % \rail@box : temporary box for \rail@oval and \rail@frame % % \rail@setbox{TEXT} : set \rail@box to TEXT, set \rail@tmpa to width % % \rail@oval : format \rail@box of width \rail@tmpa inside an oval % \rail@vloval : format \rail@box of width \rail@tmpa inside an oval, vector left % \rail@vroval : format \rail@box of width \rail@tmpa inside an oval, vector right % % \rail@coval : same as \rail@oval, but centered between \rail@x and % \rail@mx % \rail@vlcoval : same as \rail@oval, but centered between \rail@x and % \rail@mx, vector left % \rail@vrcoval : same as \rail@oval, but centered between \rail@x and % \rail@mx, vector right % % \rail@frame : format \rail@box of width \rail@tmpa inside a frame % \rail@vlframe : format \rail@box of width \rail@tmpa inside a frame, vector left % \rail@vrframe : format \rail@box of width \rail@tmpa inside a frame, vector right % % \rail@cframe : same as \rail@frame, but centered between \rail@x and % \rail@mx % \rail@vlcframe : same as \rail@frame, but centered between \rail@x and % \rail@mx, vector left % \rail@vrcframe : same as \rail@frame, but centered between \rail@x and % \rail@mx, vector right % % \rail@text : format \rail@box of width \rail@tmpa above the line \newbox\rail@box \def\rail@setbox#1{ \setbox\rail@box\hbox{\strut#1} \rail@tmpa=\wd\rail@box \divide\rail@tmpa by \railunit } \def\rail@oval{ \advance\rail@x by \rail@boxlf \rail@eline \advance\rail@tmpa by \rail@ovalsp \ifnum\rail@tmpa<\rail@boxht\rail@tmpa=\rail@boxht\fi \rail@tmpb=\rail@tmpa \divide\rail@tmpb by 2 \advance\rail@y by -\rail@boxhht \rail@put{\makebox(\number\rail@tmpa,\number\rail@boxht){\box\rail@box}} \advance\rail@y by \rail@boxhht \advance\rail@x by \rail@tmpb \rail@put{\oval(\number\rail@tmpa,\number\rail@boxht)} \advance\rail@x by \rail@tmpb \rail@ex=\rail@x \advance\rail@x by \rail@boxrt } \def\rail@vloval{ \advance\rail@x by \rail@boxlf \rail@eline \advance\rail@tmpa by \rail@ovalsp \ifnum\rail@tmpa<\rail@boxht\rail@tmpa=\rail@boxht\fi \rail@tmpb=\rail@tmpa \divide\rail@tmpb by 2 \advance\rail@y by -\rail@boxhht \rail@put{\makebox(\number\rail@tmpa,\number\rail@boxht){\box\rail@box}} \advance\rail@y by \rail@boxhht \advance\rail@x by \rail@tmpb \rail@put{\oval(\number\rail@tmpa,\number\rail@boxht)} \advance\rail@x by \rail@tmpb \rail@ex=\rail@x \advance\rail@x by \rail@boxrt \rail@vleline } \def\rail@vroval{ \advance\rail@x by \rail@boxlf \rail@vreline \advance\rail@tmpa by \rail@ovalsp \ifnum\rail@tmpa<\rail@boxht\rail@tmpa=\rail@boxht\fi \rail@tmpb=\rail@tmpa \divide\rail@tmpb by 2 \advance\rail@y by -\rail@boxhht \rail@put{\makebox(\number\rail@tmpa,\number\rail@boxht){\box\rail@box}} \advance\rail@y by \rail@boxhht \advance\rail@x by \rail@tmpb \rail@put{\oval(\number\rail@tmpa,\number\rail@boxht)} \advance\rail@x by \rail@tmpb \rail@ex=\rail@x \advance\rail@x by \rail@boxrt } \def\rail@coval{ \rail@tmpb=\rail@tmpa \advance\rail@tmpb by \rail@ovalsp \ifnum\rail@tmpb<\rail@boxht\rail@tmpb=\rail@boxht\fi \advance\rail@tmpb by \rail@boxlf \advance\rail@tmpb by \rail@boxrt \rail@tmpc=\rail@mx \advance\rail@tmpc by -\rail@x \advance\rail@tmpc by -\rail@tmpb \divide\rail@tmpc by 2 \ifnum\rail@tmpc>0 \advance\rail@x by \rail@tmpc \fi \rail@oval } \def\rail@vlcoval{ \rail@tmpb=\rail@tmpa \advance\rail@tmpb by \rail@ovalsp \ifnum\rail@tmpb<\rail@boxht\rail@tmpb=\rail@boxht\fi \advance\rail@tmpb by \rail@boxlf \advance\rail@tmpb by \rail@boxrt \rail@tmpc=\rail@mx \advance\rail@tmpc by -\rail@x \advance\rail@tmpc by -\rail@tmpb \divide\rail@tmpc by 2 \ifnum\rail@tmpc>0 \advance\rail@x by \rail@tmpc \fi \rail@vloval } \def\rail@vrcoval{ \rail@tmpb=\rail@tmpa \advance\rail@tmpb by \rail@ovalsp \ifnum\rail@tmpb<\rail@boxht\rail@tmpb=\rail@boxht\fi \advance\rail@tmpb by \rail@boxlf \advance\rail@tmpb by \rail@boxrt \rail@tmpc=\rail@mx \advance\rail@tmpc by -\rail@x \advance\rail@tmpc by -\rail@tmpb \divide\rail@tmpc by 2 \ifnum\rail@tmpc>0 \advance\rail@x by \rail@tmpc \fi \rail@vroval } \def\rail@frame{ \advance\rail@x by \rail@boxlf \rail@eline \advance\rail@tmpa by \rail@framesp \ifnum\rail@tmpa<\rail@boxht\rail@tmpa=\rail@boxht\fi \advance\rail@y by -\rail@boxhht \rail@put{\framebox(\number\rail@tmpa,\number\rail@boxht){\box\rail@box}} \advance\rail@y by \rail@boxhht \advance\rail@x by \rail@tmpa \rail@ex=\rail@x \advance\rail@x by \rail@boxrt } \def\rail@vlframe{ \advance\rail@x by \rail@boxlf \rail@eline \advance\rail@tmpa by \rail@framesp \ifnum\rail@tmpa<\rail@boxht\rail@tmpa=\rail@boxht\fi \advance\rail@y by -\rail@boxhht \rail@put{\framebox(\number\rail@tmpa,\number\rail@boxht){\box\rail@box}} \advance\rail@y by \rail@boxhht \advance\rail@x by \rail@tmpa \rail@ex=\rail@x \advance\rail@x by \rail@boxrt \rail@vleline } \def\rail@vrframe{ \advance\rail@x by \rail@boxlf \rail@vreline \advance\rail@tmpa by \rail@framesp \ifnum\rail@tmpa<\rail@boxht\rail@tmpa=\rail@boxht\fi \advance\rail@y by -\rail@boxhht \rail@put{\framebox(\number\rail@tmpa,\number\rail@boxht){\box\rail@box}} \advance\rail@y by \rail@boxhht \advance\rail@x by \rail@tmpa \rail@ex=\rail@x \advance\rail@x by \rail@boxrt } \def\rail@cframe{ \rail@tmpb=\rail@tmpa \advance\rail@tmpb by \rail@framesp \ifnum\rail@tmpb<\rail@boxht\rail@tmpb=\rail@boxht\fi \advance\rail@tmpb by \rail@boxlf \advance\rail@tmpb by \rail@boxrt \rail@tmpc=\rail@mx \advance\rail@tmpc by -\rail@x \advance\rail@tmpc by -\rail@tmpb \divide\rail@tmpc by 2 \ifnum\rail@tmpc>0 \advance\rail@x by \rail@tmpc \fi \rail@frame } \def\rail@vlcframe{ \rail@tmpb=\rail@tmpa \advance\rail@tmpb by \rail@framesp \ifnum\rail@tmpb<\rail@boxht\rail@tmpb=\rail@boxht\fi \advance\rail@tmpb by \rail@boxlf \advance\rail@tmpb by \rail@boxrt \rail@tmpc=\rail@mx \advance\rail@tmpc by -\rail@x \advance\rail@tmpc by -\rail@tmpb \divide\rail@tmpc by 2 \ifnum\rail@tmpc>0 \advance\rail@x by \rail@tmpc \fi \rail@vlframe } \def\rail@vrcframe{ \rail@tmpb=\rail@tmpa \advance\rail@tmpb by \rail@framesp \ifnum\rail@tmpb<\rail@boxht\rail@tmpb=\rail@boxht\fi \advance\rail@tmpb by \rail@boxlf \advance\rail@tmpb by \rail@boxrt \rail@tmpc=\rail@mx \advance\rail@tmpc by -\rail@x \advance\rail@tmpc by -\rail@tmpb \divide\rail@tmpc by 2 \ifnum\rail@tmpc>0 \advance\rail@x by \rail@tmpc \fi \rail@vrframe } \def\rail@text{ \advance\rail@x by \rail@textlf \advance\rail@y by \rail@textup \rail@put{\box\rail@box} \advance\rail@y by -\rail@textup \advance\rail@x by \rail@tmpa \advance\rail@x by \rail@textrt } % alternatives % % \rail@jx \rail@jy : current join point % % \rail@gx \rail@gy \rail@gex \rail@grx : global versions of \rail@x etc, % to pass values over group closings % % \rail@mx : maximum x so far % % \rail@sy : starting \rail@y for alternatives % % \rail@jput : put at (\rail@jx,\rail@jy) % % \rail@joval[PART] : put \oval[PART] with adjust \newcount\rail@jx \newcount\rail@jy \newcount\rail@gx \newcount\rail@gy \newcount\rail@gex \newcount\rail@grx \newcount\rail@sy \newcount\rail@mx \def\rail@jput{ \put(\number\rail@jx,\number\rail@jy) } \def\rail@joval[#1]{ \advance\rail@jx by \rail@joinadj \rail@jput{\oval(\number\rail@joinsz,\number\rail@joinsz)[#1]} \advance\rail@jx by -\rail@joinadj } % \rail@barsplit : incoming split for '|' % % \rail@plussplit : incoming split for '+' % \def\rail@barsplit{ \advance\rail@jy by -\rail@joinhsz \rail@joval[tr] \advance\rail@jx by \rail@joinhsz } \def\rail@plussplit{ \advance\rail@jy by -\rail@joinhsz \advance\rail@jx by \rail@joinsz \rail@joval[tl] \advance\rail@jx by -\rail@joinhsz } % \rail@alt{SPLIT} : start alternatives with incoming split SPLIT % \def\rail@alt#1{ \rail@sy=\rail@y \rail@jx=\rail@x \rail@jy=\rail@y \advance\rail@x by \rail@joinsz \rail@mx=0 \let\rail@list=\@empty \let\rail@comma=\@empty \let\rail@split=#1 \begingroup \rail@sx=\rail@x \rail@rx=0 } % \rail@nextalt{FIX}{Y} : start next alternative at vertical position Y % and fix-up FIX % \def\rail@nextalt#1#2{ \global\rail@gx=\rail@x \global\rail@gy=\rail@y \global\rail@gex=\rail@ex \global\rail@grx=\rail@rx \endgroup #1 \ifnum\rail@gx>\rail@mx\rail@mx=\rail@gx\fi \ifnum\rail@grx>\rail@mx\rail@mx=\rail@grx\fi \edef\rail@list{\rail@list\rail@comma\number\rail@gex:\number\rail@gy} \def\rail@comma{,} \rail@split \let\rail@split=\@empty \rail@sety{#2} \rail@tmpa=\rail@jy \advance\rail@tmpa by -\rail@y \advance\rail@tmpa by -\rail@joinhsz \rail@jput{\line(0,-1){\number\rail@tmpa}} \rail@jy=\rail@y \advance\rail@jy by \rail@joinhsz \advance\rail@jx by \rail@joinhsz \rail@joval[bl] \advance\rail@jx by -\rail@joinhsz \rail@ex=\rail@x \begingroup \rail@sx=\rail@x \rail@rx=0 } % \rail@barjoin : outgoing join for first '|' alternative % % \rail@plusjoin : outgoing join for first '+' alternative % % \rail@altjoin : join for subsequent alternative % \def\rail@barjoin{ \ifnum\rail@y<\rail@sy \global\rail@gex=\rail@jx \else \global\rail@gex=\rail@ex \fi \advance\rail@jy by -\rail@joinhsz \rail@joval[tl] \advance\rail@jx by -\rail@joinhsz \ifnum\rail@y<\rail@sy \rail@altjoin \fi } \def\rail@plusjoin{ \global\rail@gex=\rail@ex \advance\rail@jy by -\rail@joinhsz \advance\rail@jx by -\rail@joinsz \rail@joval[tr] \advance\rail@jx by \rail@joinhsz } \def\rail@altjoin{ \rail@eline \rail@tmpa=\rail@jy \advance\rail@tmpa by -\rail@y \advance\rail@tmpa by -\rail@joinhsz \rail@jput{\line(0,-1){\number\rail@tmpa}} \rail@jy=\rail@y \advance\rail@jy by \rail@joinhsz \advance\rail@jx by -\rail@joinhsz \rail@joval[br] \advance\rail@jx by \rail@joinhsz } % \rail@eltsplit EX:Y; : split EX:Y into \rail@ex \rail@y % % \rail@endalt{JOIN} : end alternatives with outgoing join JOIN \def\rail@eltsplit#1:#2;{\rail@ex=#1\rail@y=#2} \def\rail@endalt#1{ \global\rail@gx=\rail@x \global\rail@gy=\rail@y \global\rail@gex=\rail@ex \global\rail@grx=\rail@rx \endgroup \ifnum\rail@gx>\rail@mx\rail@mx=\rail@gx\fi \ifnum\rail@grx>\rail@mx\rail@mx=\rail@grx\fi \edef\rail@list{\rail@list\rail@comma\number\rail@gex:\number\rail@gy} \rail@x=\rail@mx \rail@jx=\rail@x \rail@jy=\rail@sy \advance\rail@jx by \rail@joinsz \let\rail@join=#1 \@for\rail@elt:=\rail@list\do{ \expandafter\rail@eltsplit\rail@elt; \rail@join \let\rail@join=\rail@altjoin } \rail@x=\rail@mx \rail@y=\rail@sy \rail@ex=\rail@gex \advance\rail@x by \rail@joinsz } % \rail@bar : start '|' alternatives % % \rail@nextbar : next '|' alternative % % \rail@endbar : end '|' alternatives % \def\rail@bar{ \rail@alt\rail@barsplit } \def\rail@nextbar{ \rail@nextalt\relax } \def\rail@endbar{ \rail@endalt\rail@barjoin } % \rail@plus : start '+' alternatives % % \rail@nextplus: next '+' alternative % % \rail@endplus : end '+' alternatives % \def\rail@plus{ \rail@alt\rail@plussplit } \def\rail@nextplus{ \rail@nextalt\rail@fixplus } \def\rail@fixplus{ \ifnum\rail@gy<\rail@sy \begingroup \rail@x=\rail@gx \rail@y=\rail@gy \rail@ex=\rail@gex \rail@rx=\rail@grx \ifnum\rail@x<\rail@rx \rail@x=\rail@rx \fi \rail@eline \rail@jx=\rail@x \rail@jy=\rail@y \advance\rail@jy by \rail@joinhsz \rail@joval[br] \advance\rail@jx by \rail@joinhsz \rail@tmpa=\rail@sy \advance\rail@tmpa by -\rail@joinhsz \advance\rail@tmpa by -\rail@jy \rail@jput{\line(0,1){\number\rail@tmpa}} \rail@jy=\rail@sy \advance\rail@jy by -\rail@joinhsz \advance\rail@jx by \rail@joinhsz \rail@joval[tl] \advance\rail@jy by \rail@joinhsz \global\rail@gx=\rail@jx \global\rail@gy=\rail@jy \global\rail@gex=\rail@gx \global\rail@grx=\rail@rx \endgroup \fi } \def\rail@endplus{ \rail@endalt\rail@plusjoin } % \rail@cr{Y} : carriage return to vertical position Y \def\rail@cr#1{ \rail@tmpa=\rail@sx \advance\rail@tmpa by \rail@joinsz \ifnum\rail@x<\rail@tmpa\rail@x=\rail@tmpa\fi \rail@eline \rail@jx=\rail@x \rail@jy=\rail@y \advance\rail@x by \rail@joinsz \ifnum\rail@x>\rail@rx\rail@rx=\rail@x\fi \advance\rail@jy by -\rail@joinhsz \rail@joval[tr] \advance\rail@jx by \rail@joinhsz \rail@sety{#1} \rail@tmpa=\rail@jy \advance\rail@tmpa by -\rail@y \advance\rail@tmpa by -\rail@boxsp \advance\rail@tmpa by -\rail@joinhsz \rail@jput{\line(0,-1){\number\rail@tmpa}} \rail@jy=\rail@y \advance\rail@jy by \rail@boxsp \advance\rail@jy by \rail@joinhsz \advance\rail@jx by -\rail@joinhsz \rail@joval[br] \advance\rail@jy by -\rail@joinhsz \rail@tmpa=\rail@jx \advance\rail@tmpa by -\rail@sx \advance\rail@tmpa by -\rail@joinhsz \rail@jput{\line(-1,0){\number\rail@tmpa}} \rail@jx=\rail@sx \advance\rail@jx by \rail@joinhsz \advance\rail@jy by -\rail@joinhsz \rail@joval[tl] \advance\rail@jx by -\rail@joinhsz \rail@tmpa=\rail@boxsp \advance\rail@tmpa by -\rail@joinsz \rail@jput{\line(0,-1){\number\rail@tmpa}} \advance\rail@jy by -\rail@tmpa \advance\rail@jx by \rail@joinhsz \rail@joval[bl] \rail@x=\rail@jx \rail@ex=\rail@x } faust-0.9.46/documentation/lac07_slides_graef.pdf0000644000175000017500000155060511702130733021642 0ustar orlareyorlarey%PDF-1.4 %äüöß 2 0 obj << /Length 3 0 R /Filter /FlateDecode >> stream xVj@ u6իL`֐&8!~ޤ91L^88LB'CN|?mmGSƙ01m<_?Q__30.8>L9^dhװ𮅡FBSĈ_aZȡyR靥F^?>)1py۞~2w?"=^pтhH%&=xo*I]0hpA3QX:mm@&kX9ZJF?+|# u%XļK!C?aU*e0 FC#a f$"C ݰ k ~䤠zJuɈm6+@ArsCMּn.0b')mjӶ2.KXroeYAXRB[^Ü95tL".S7 A[.Lk2_bVea > stream JFIFC     C   }}" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?yFV=h^?J_?XN*'([RxF{8_ᗄ~ E{CiR詒wpxt±,ry5,RU%9P\)I4羽qc2O=5 ῏~]C?USExlA': Z_ xb n|M LBBr{O(RW%i~X~%1Q6]CčV?#@rHX_h׼S3.o F<*ʤ*H>~5xwWKᕓ-6VPݛ B nsk.n)̿p SIeh{;|^u_}?KA!?$IY_ySXJuW \IXq F:r+ࡿ x;C57Gm#b͍c8n!v*2z+)m5-~{Y*gWJ\-k;>Ul\0 h7.eaj~|/On5)^XUZV3&^Qp*Wys`n_,oBym[V*9aOVˤ6?3x^7]bMOBҮZZԒV1j:~ug d`0,r@5'17ū5~WcɯcZoWj*:;a)ݺܕ#<}WK{A?C^5|7G8K/mk5eZ|]CPb@ۉb>dC!N&[ن0. 0 JwA޿!n?ux75[Xmlqyc<^>J.q3zXL\(FtCK$Nm_ b*իh7?Fa|)o-.Ckw:D nc_/kcvomGF57~!jbwH&n~x_} P(by,1)*ø:ŐKK39by$ӫR:J}p/ c3 '^6 4iee׮F|:++Y/RKos&׺܌"۱覭;4π4zגɹ29Ggz0_[WҼA5^&׬=4? }\n?^ ~I@m??}3n!0j6qH1Kܕ}}SåÕrإҟ;ߗ{]6Wʯfw>5n+m67/{ۭKZYMwDٰJs*x=uv }OYC[jлkӱWᬷ9)eyf#96Ӓm꺷r?d]_|Tv]<VRq ji RXidݻ߁~Yx~ \Ymv]})9''Mei\͜}H51ե:pZt1ge.;9ss(+7e[}de5*FK<7y3MH3^e{kxY:5{kR1?i}ͱ~AI=MO{9SV+GzX9|i*RIY={~Wf^k@.B?8__ bڐ7Bͧ{ۙ4Jd}р; ?fӹ`տ/TkiṞ.bXb{9bjZˏe㇨:luo[D~/ŝ>f$)ss?uV|Kk][$A[N+httdfHXhsh~y;}&ưZw-ncG"\(`pyEskb*8:u糑>&^6Uo[F}>{:_/SpNf5f!>tڄ<Ab/'׋MP-rF2Ig%>+ c$_-3 $ײ;.ߡTmSK[E{mg|`yuQxoIt5l_Hr<2rJ.x&¿Cj,81j'*&꜆!q^k-G5v?>9G^kCQi}^흗.{nƁԩ ɻ2xѫ^uJ/E~[/ʰTse.6a$}kSźO?im.Mͥݾ5έ#MqBKWj+d߱MmgGO̿kͿ;~]0"?f9{z7,=W'9_Qj 7[+}`Ӿ"-隈Ւ:x۱]9f~F=Vإ3E*ϧ? _;_߱?^ŖSW7rK D$rGs_I/|ImS$ ]Ox;V]cSw\ q^ƌ+?~S3\-]$Kv&??H1a?JWahC| nwi)hJo'T?φM-/|K}x:A)@6 ˑ;Wc>j-t]O{ַ}~w?WZaYC vQuS |?8E࿂x4qݞ{')PTn@'_N|?үl]mAomu4dՐ20a9\T(TxzW}s|<(%uG\Kmu诣Cc%|=6 ,4Ov+IɅ6G5[?GP͔^ѵI.-uo3-˓8'""-Sߧ  pR|ɵI{ꬷgP?#_8+ͯr;OmJGaVe9T}2k?f᥇eR{.Frw@nG'#|a"kTWWL"Uls?{u$NVmN(\uåz59|BA뚆<˥VIM}#%hF;cVmI-؞h]N7H5 ZY8UM~4'\Ϧ|Z 6 H޾xi_~]mˏ9\X$WJW~|fReE7ʣrh{mmս59oFֵ19ka`peo&Ev|<&; |EYu݌۹#LHk:N9$#AboBICg$8ALvjekYdF〸aT)<axv>$=Sv]9<[^Z_Z}NS8ѯ̑#;}sZZu*JkxFC.2+|%~jڇ4o_Iqq,w:-G0SL\ Ӵm;ᮧq71* JfϦ\ sOiヒktXGb>/fX%A 㞧m/]FNf~:}WC^5q W۩151t15iJi>[+km3F /ɸ\ZC5ͧ_0WKMW3,%q?LOoaX@>(x&ұ_Y1?CbL']JV#ƇQ%^mQ>+W?|>/S&." (t;Y11^FUkog->-!/+X%JPJO35 M,#hs8 >m/7%6ld&nyrAFPzduiQNZz/fuఘeJQQ◽&Rf }7F3k܋2A@pڣ\5>\;9^~x_Mh]֢O.o3{"`y 62|xd!'#8zbe:020/2"W5eve˦n}G|O_Bd4SjS\X^Ҍ̓O^MVڦ#V4NO#p>|A9#?j'* ,r7O''+[k;7DO>P՗WcQvD7A|rwd#6Y/X4IpUxk?{ghELz?`|>|!i)_eNNvZ].M.п+[8'R3Ι {|Ueڹ5'59.MI1<.N<y/"s)G{~0|N:NؤZi{ݧmwiijH|Cx{q[wg{;;&Yb{YF(>Z90r=@KJ:m-ƴ,['1䐥I+|C?[,|㈖!Ajy8? W%K+S2v[nڻkwc>T|i!刵g"j:=֡;NGb&/e`+ӿ'?U*tN/7vc3v_W#wi "[oj\2=t?U?jdl/\t c5?V.,VJ^xCvGiw8V+n/?> endstream endobj 5 0 obj << /Type /XObject /Subtype /Image /Width 1644 /Height 1191 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Length 246932 >> stream JFIFC     C   l" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?kʎn< zUv^2ูV:{׌E #Bz*Ix~G&2TS'I&1d'&GH4lWaPB>5$ /$,ŒEV8u~V]K{eI-Q3}`1R֝keww y5ywAt40@˸OX{cb*+z5҄v8{Bš]W1|Q4ޞ')Hj'kBoo V$:{Mmm;|9JSnF]In[MKCH# 4 G Z'?|֖dﳞ>6k{3OZ~[ia]5y< w&y qzΊiTK: [_[2n֍s $asWAYEI8ڈHPI+'g>Jw)ZjvfeسǎNe9S:CRTp¶i¢ARVmN-[1ww>>_ A(A~jdZgdV| xO7(1WD=#][c+Эjivqp"NIj0jslnak%oiehɲ%*_1krQR3:}vRI\u.k=wR@qݐEZvWo ucRSdeFFV"f&?K Q[jEYmb$XޕW>[mB(((((((((((((((((((+7:&5 ZUGXt$%VAƪ6\ w^nxmP sZKqlD}~U76I{U׵jqS֤85Zח4޻wrKji2G>5#ZBd ~fcgY')UI)4gZƍF0;xkځּy<#hSE{[iq]- ,p#JjԩN\3>'hG J#k{מ|[$73x ktQ[6s2kc/'ieƵ~xVyl̕FsԏCY&-Ղ-8kxsxxw~R9v\d1\?4k{%|*ζI *"GVk >(G-סC($|ܠ ڂnawH#,̨9$ZԔ$&)sJ!<T]ˎ'sCj uiʽ1|7hD.uk 6*jYѲZB" ։ÑNE*)bMH/R[v%_T9(xP֤q p>C\Bʁ$ Pqީ>]^[zFo%OT{h]w gurQ@eYҥZqG*+uVZM\Om OxKg,mAȭ=*{ OU&t (aEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPshdc*wg+Dba &-n}3[]V207zDzQH-2JE{8zNnLb E^&#ּWΣ09c0p˓>==#K~Hj^'[:BT\8X}߭Gx_Rimx(Ca9sp˯ح FAz0MepʍўA]EĭRbqFeUӚs*}r"p;+WQoW6V;cxZ;K$*5S\^-Hjϊ:Da^kix+5kqoUi *8yB|NjVh2Aեejo<܇I+5G1mAd߱b!jќ>5^*5Zs+U'DRc#¹D%7Ak:+eN|D5ZV`ၯp ]7Ga"dzdv*ܬJ䃌үMִ%ԎƗXrHkvx%'zW]6gHG$>iHda$}kJ)P4ߺZYy0L&=Oc j<;]C]R|W2RՍzP7~$i H'y-Ibb)ʰ^Ο `~U5kMYZIeU9*5J.3ZprwGC\KwM8į-ZƖm S޲t1Op#Q墜oc9t4ѳqyO ;;T/ ג2ZTNZus  oXl4D&IHW^䶦|繿P^Y񌺡 {⹍OFa? ~ 2Z27Q+ 3ƮuyA6s{?ѭ&+ gQDhk|6wkqUb@ 0=zaQ%g8qR4 $%dfXuPzڋPO.;A*ʤT ndFUdyE5tD,ضE{ci4qon^[5=0s@ ڴY.DDԽ\o_0[H`Տֺ+ĚvH00*}ZjJ'qTA)h.e2|j"Mw&ֺ#c4^TE%ef%?Z)'nŠ(0(u9-Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@!ih12x' pf½5z hp3Q\Gi +Qf< ڤV"1KEe^#t:u\`֥dӋ);QE!Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@;aVnQ@z湛.{y"2kgR.78ikVż#24אR<~kLu{okS;TR*RreA^ fO*f$él5䚎q]5f)WqEZjRF\ۘ9D20U;4Fv*rrJH4Vp\ՍœHIR* QU#m;kF+KCCeOqtU&R$[[%Gҏ*rw*\+4iZlsqr3r+&KiZ9Qz LF5$kxSX.nFp3Y4V VGFwcU'VMb w)` ^NOJOY |m[^a\5pҜVd^1.|K}$n áV0Zljn(F20w+9g u-SVoޱDx\:`}1L\|L61ڼkN/t-ipi:ᮮlt+ꏟ{_v)-nS;facT8'ޥymqYXV*Fw!EI\K>(]³+N𧉮|U{&s[e:WΓ)hyHYz׽ڳFA*7}kKV\(KH>sJC nrVXA{5y=yvA!%;TuX- Dcm>?Oޓmsq Fd8e .iQYe38Nwq#zoV,%9 W+|RMNB)yy|Lv{ǤWXO$v:Y=V߅|: W`T7EMhʺQssպ+y'q 1\Ekxby"c?gswSi|(QRZ5LZ+?Xt;S5^:]+^ r1³ B9.dŅ.lΑ3!Nφ7W p<*G_hc!4Cv4TQ(iWv'%94o+>V[j=H~pUлcxljVGN>tc3֖NWI[`J(ݦ027~U=HŠ((((((((((a=+2咒WVq쇫f5ut- wfm>B)(cQYm0'&tq* ,p]l uts#JquD[Ms:mY<$DpOzm3VR1 8W+e*H#pi*eN3 WAOi$a 2RO??mծdi_>aC.Fj|AQv %nzV7{]g[iGB#sRTugWk|2IKrLdk״+k2zF$SN-+zO$[xWMwW{- 53BX%se[\Oi;fb 3w>XM8yƳ6Zbln39}t#96%~mޟAR#zwU4չ+Tr帹%k;v>,dⲼi-B[I=kmm8cF ޚukEkM1ޙ]5_+NG\|.U[˓CRӭx&7G=^@aDcwnx獵X5~Yh Jgst>$$8;zҳ92Ou#Fm !{T;QfX;2UCk͙LlU 5w&6Dc/4 PLO"=xx94y9e/m[ xn>F0F퍷QƏpJH #{ 4$!ב RH̵IpEb*jS%)Ed4z_H& s.$J⼾K,#rkaK8XGgQ$Ww(M 8z^s^鍡k3##o)=Mzn/qƧ"h>+$mr@=f:kaKJjg:bV\(q]=ZE EW1mj)HO Y/*@)O//V6 8'Y_5K+؜*ns²XIrNxF9zzeŎ43D=@Ҥ 3Jj;)U:OZp MNpN3> [є %JpJMhZn/k?J rgkTNMkxzL  ƪIWiXQfh"H.msr2:Vs*nE))l-QYQEQEQEQEQEQEQEQEQE_[$2D=kiC kZu9s"eecU[^;13W}MTTU =:II9W*QEAEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPkq^" g=J~i\w#ּE1) {Bi26Wf5rIUXtW[mѶjy L䫵o--=.v#F3UxI|74On}++pfZk/ :Ve:42V? `;HΧ>ԧRRL#63m>l^?;,)l!Mf_xNCzȬ'J&3$XLOjL1X#]ͷ_>![;ҝxS`sV 0B -7%c݆BW|+n U'ֻ[}*+xp6":TpYٰIY`+xnZV y? Ũ>4%Or:p&@^ӢjXmJd@Yzp-QWUUogHaFZ- D%U~41UW<^Y0vŜc<zX0è,2*|t5F8:kn&ydG9f'5nOK e=wfjbdY8A#6$dwcݵȯH[8!@Gp[v}s_m2FduuĒxwOFAVڥ/p5{k2I[%vR{>U8X&gi紝XX`F+uY6 N/@Ҫ8B< M6csRj rK,$kj>cW8>wh]$C< Qh噇rKx9xϫk3WDg]W ޵xQr%'޹F}3r|9qY%/, U扯j xnܢrr[wZ? j[Ѡlo#kcuJXvRU/Ηv' nqizt[Jqt7޺}q{;N(=*ZXSJtw1LRDr:l׊M^qTVMhft`8=FzWw$j6gVxI_tUc1{^G#a\lǥ_6 ,!LxQ^sJA2~5WޛXVZFGW'=[;q1ʷ kcӭb@oQaRQu=Kj$'^VHkSWom?P FN{W4YE*fl{iBNݫWDF\)ImjWqȖdguՌOjv-AC:57cz5@[ BK=3Iv_&K^kv d?Js,='{ MOghԯu(3gqWD\HiǞ/ԚVcsRj[XvTIwA֡]';@Yp=Ezr5Z2.3RؒCrZ{ :۬o>ӆu8q6먪j6\s Պ(((((((((6Y78_y1sMBgZ]A=ȭCs޽C $-j;3ϙJA1В5gv1w~8ލst!H!]E'yT'D5@Ӄ7|OK,eEuZU-&mRYe@2MpVA F1a)ȯGn\nqcio-A-K P+4 mK͍zð'UP=mx7LUנl4{;3jhP:}**Wajk_úAmtk dYeRqJkEԮ FLJTQJlX4pT0z'ki$Tu}]EDE%ܲcce,JNKc?mì.2Y^5k KE+lYrƸsw D;֊8˜Nrk!KG U$Vsj+WSft4(EHvOpxV4Xv*z!UkF[⹮u1D}5r+"F)6fp xf꺌N*1Ҧ*M6%:Zƛ=`ʅr yV[W?[ =1xw MXY8Bʪ<9wM5 l\ RH?75&km,%Wãe9A#IoRNĹ{?uOC;"CGkYp..)i]BMO@ap}q׮eV+3GRU+: KXb-NQR 0dלOgmN;]̰gob}k>[K*;yp群:v;?m^,X|nGOZ77 nH}kCA23K\y/$oq>T7qjrG""kީ\y2ƮUc]MvP[[2@2uXyS=U)B_3O#=݊t2-+X d>v#*O ʕ2 l")PjW&2S8]+qdAzD 8b\OĽnLCX^1Sy&쩫>7si8rÌuϪ<:Eze7φjSWܑp '5N$NQQ1N&M&4zCZ·F>_9d,H$Ww-Jm[AV;lƬ7Vsxj6Lq{ [B"Tk?SYWs[ʩ;{׍iڅ:7H9psi R^m$v8mΧ-}9:NO j!w(ﶽ2Z5'4d`ӆ*PJ6I7s̼ mI7Y15|aoĖvyxUOlW7;뗑m+C̕r@] Fo %C^ze-Gj6R+b@YϖźM+i6I" os^'T$R">Xu=/a8.keF:D9IpF+xpxzYSA޿GM--, O$.Ҹ^3[r4JX¤q7E8vgtFhD3zS/mCE.?\-?i4wC%?3;=J f#¡6?շ׀G:toSialzX.m)1 =녟f/>,, {fk拹|;t%Y9SP+?dӑk_z+Qp4NET(((((*YIkpqۨ>QM6ׇ c}]}~6^iR>O^g]u3n0GQ[AfPJThQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE|%IJ^8+ۥQWRGgE_kVH%sB?PUzZC+1p})ԒA-YWVsYLOE 1][@)o(aOr)Ƽ/$ 8Jֵv\OEQG@/-M6IqPiKJX4Ub 6ε_`#vWiq.~(h%QJjVobė` 69vT$MnK)<IM#\[ ʖkcl4ʙ7Oֽ[ͣݭ_+9,:qֱsPq̯s<=[\ ã}ۡ"-E9eCZ #<Jt֦jN/Z[zSu *FR{+׼n*I'x-ò[D퓇\Eu<*|ھkT{kfsU}kgÞ屎ߑlU=]]2ß4Dqu'4ކ;؊o"KȒcBjE{nȢH`׀J1rK=s^I.$ձᐹj޵J*I ;2*N)F< XӲW=ƹ_ \ݷyURfQWHقb$a)ɪƉi[7QXuڼ ~[[ ҭ7BJ̘˝jck$n&82:c┷b$BP={榜]iٱ-JTwFSXztZ3DVCtBBcfhtfX+M]`HaAH0vr3L!np8N]WWiZiEʹ3ӞJ}E),k4l# {%tu3)kyly$dtvOpkΡuRk~Ʋ<< 6ֵ(:؇4u$M352 ުhFNT0*UY#{؂ 5 <*L{vl ʺ޸oq]5v`p?s:.C*&5nU|D'q|1㙖H188MSBm:yg9GSkܫe$TW2>]42dD >(j eǜ 'ґ#Oq!$>V<_LPU#0k| d6f!od|һ85 /h֗s4rv $+&%ңfzc .IjҦ@ѼqwDLJ~1X'ron^OeFsF;_/;:|\UWդ7'OJ cp[_,എ+eDjEvWѴS}HXֵiЙ~:xoJ#LVSSL.[d  x;G*L1ҝZЂ#Ϭ..u(^'l|f/&<+d3#pRxGaQ:` R3[ e9(=ǒN'JwW#h]:9Ly/ j{nko0-ЃZ jL Xٚ9X+zZ·kcW5jr)k((((g5ݾ;nd*Bn 9GEktѴ^mQ^U,6|ĕZz֤rܘM^EVQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@?I}q$B7FbGNR`+vZ]k=N'u@s5$(*&aj4HK #5_J/tY :WP3:өϭxeFn/4T.j޳q]e~}ih ԵLР,pV0'/ _hlT(@ /CJGF+z+U[b{kZ]>>SW$"B;. /vL .nW?RMtxVNf xɈS~ ,?=׵sPEXbxs׭*RJ(AI]ms5 CGjԼW U֦UHHRU+ILtvʵ8~jλ+rWe7q$g[~t+OR*Uy-q:/ Lv蜘dfxMʿv5fj*C{jewίMasyi\,,!1hW aI1L^ΌAR2 f˸ u>yԩfϋDp`3WMĻy<6wv>A/CZq8+4Dd6 {0rP.3[zl|#m7HM,QOrSo43Y{: Evfsl#ce)0'Z*k!KHXtZTHP :Td7aAH|a? ' Knyu "&=^QR*58-7Am&'wH4Z I8Vwյ 1)nLydYX6? K3&X?ƥt'#sĠ=u*M/CDm EA(,>X* r!CA1'}+ܵ7ٴ\,/uUR]\1#u…9RoS9)Xx&R .u]\yXҮ@ ~ .t[ء!@5Rmr_Cg~k6đ:"czh.-IkWS z_»ifZ믇!(NRx?HDHdr kDQ)ȧ@KlJt^wMhE}wO6]$殺,Ue<{ׅvwl&Y=6k!W=qm^ՙkm.෎&nS\Ei K4kf8Wwh-94kՅe$z- RRBַ 8v4\%$5|5/g`DV*qE+DQ{N%XV9zZ15׮u1WFjJbV>_S>wcФ%\:+F` Z+Ԏ["˫XIz #C5tm&+;™VbqZr% iA66B"0# >~++"6]*^G`#7,@14dniztN}דhj"'RkN-Z1@60o;M'ujvڵQ,gՙ3Le3K Yb|0n-.f2E)w5ڃ){_4 d\GXH A5Df1Ր5MNxfn!xJ5[u5fu\_y$͡?-~`G\ՈKޒW~hi\Υr6ҦiBN0z! JZ> ѐ -!To"\OnI bpG5qXM?Kl sZХN9"r]~ lU1Gp7mެhb$_0\c𽄺fio8T_ե82ԩU*Wz('9 ω}Ɛ0S^$=]U0Prj7+3(Π(( 0PQ[E|<ؠf.ws:R?,w"32mlB!1ɧVEQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@+x+T,>4?, JA Wxd<[9iR>2sV8zy' #HGB<-ˏf]e8.z\z_ïŦ+R 7ޕyJ|S ɻεsv>-gϓ4gF"?.tff(rzte) $i&[Wl 2>}†6z?vKp.v ج rN1{3i7Z.PSb-o\x9qޱ+7Sͭt5Z5/$lwCטA ]WWil ܣvZh:|[Ļъo>*\5bx:|Ic&[E2D:x$ HHVjpqgψE$đE9Ǟlt:4vL5 {Zo~'¶1+L\Ƌ:jBӂj?F5($jQ 6SH-i8=vQNT#JVG#!dyTvucԢFZ hp*y8EytSI˫ +Q#r/5Hn'x)ܮ7tj /yOeK97^o'󥴍ua;UbH j{\ $l^e۲l鵶8ߊpy S, p\H`֬clu xޏwev@@pSҽcZLNpF/ֻҧ'!)7foQdVUe:up8bWkmGj፜xN'hm>h1+n,5_!"kZфeh;`Zb*AsTAEmW ·76j%*Y3Rv$ZF})޴+n4 ~Ձ,`9+5Bp bzUf2AD#e73^OwUTR5hYӕ3r_ Ȳ ;P@JvPA4 ެW;CBAٽ;^J]%`)/eti-8 W/麨Q %]7M=Lۗ2KcC 4*)hcC _񅏇H$31-/Sߘ>:S՚)=+V.S޻net5$2N\kC'KX$Cn'ڥskjϥs_SFyֽck%\d@֭U5$|D GG^ tu8W.扣YJץN4sRr:-O'csT"2(ne?wB2jDzAQJ$W=X(E>Eq% Եlr7T-zEdx/7z,J`Ҷ5Y<˛TwʬUX@RV[-uI3CWIAKVx˕8t=O/Tk8۾^}+swyM"XuHQWs;z(,#<ĀNo>D{Ƹ kI;6֡UuF .KĝIU=M{Gh!8[zx'ҜrJ[Z |okwfIO1t5~ fe^Lqgk+Zфeh2 ZQ\EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP o]CAX5xxzD Q־jZv%ݜ!N޸.+֞T֎fe Meu}梟 w5~sfzM|^YeL+AA^߈vٱGzӅozG\[  ^ G-=Gfȹ"VhGz< ְ#:=OҼhz7JGqWO+Jw"6#.M)S[y6*j&v|nbqzToy,r1jaq8ն>wjk|<ԓ!"|=Β}=L '!~lcKs2FJkC&t[vB&NӹԔyOV(RT⧱7A+5,e3[.5M vfkՔSg2Wgx3I#j.ܒ}kmic88b{ct&w&zj)|vJ+y w_ݽWi'5M_[b{Yl5{&0$;q*=;jtúh 89xwֺD^{)X*]z ɯ<o8pd¸smSLM:tgy̒WMr (lM#Wڵ:.~gu ^ni|0q P]ҴŨ]rM+]8H#$(UQ(yBO;C*J Fxֻ["0<HE,*uWW`4I]m$ ]B~u mEoB²ʪ{B-a 1[?b+ qчq߀+[0Dn!wʲa? ˠ,XmUT}~mN3" ^k+wLkc־@X~0[KCe;=ϥyy68KOwa $$z_ZqH^7mZ{nmZ>p]Z2t-TDs]xM[ʛܵYbng(MiVn؛ir;/2|5_J#uǭnV)ce9+z/3Q |Cingvxꚣ[L,.:洣y3淺u.wY=A+i٣oX5X|mJrpc\NAn$kQp܏vz}ڸ]71=¼۶WE/es= FG"R)qfwM!S83~0O ?JOOH#1x" dQ,>^WU{/{GOEW)j6}Elds[Xduk:JίJ(Q(¨V\%s]I ^^5snskk<1'lgʽ&vqrm!C"(ʣ${ָf5> kM z߃/[ZvVw3^9,O 6a]W<`=j9;Mz|V=9YzpClF;P+|E["oE-Z&Xb.=;ֶae r5'h9UȳP [if#!*jkeX`j̣ƯIMhm/z6G#`JE{_/$ύzjpic^eko¬#%X׊ (̩Eݖ@uWZ5{#T+m>Q7+My zuigΆb[Ogq>TZ.t]Nϖ<0&d:^W߾CA9=qڻG:N?5Pn֫j\xx%c2*~R{닙Y&vv9'qf7Zta"8A^qyW1385-5vhkW7\ZNTFcW/ Y-˯$9 =3V:4w^A|r^ңtֆb~ ɰ!"wSGy,"z2~{f+f Ҥ#wy/s.{V sc|!NR,ש:-U)U X8]ZLլX繊'nGs 5Եeq0_xz^oό+mQ]U:ᰠ^W3oHM1 3 骆ZEPr8"rZ+;hKm;z?G4+s RrI9$Тn.M`dw=k>$jCSg۫"+{bErw ۋ-"6(Vl~x_vP}rc'>խxJ-`evzֱ;XWSBFYx^!y4H5x%ƱjCX;zW5g]$ &]VXzN[U%ωneuč,lnJ 3(eU6b> hi`IJW6"s奛7o.Yc M5֮njÞ+qoXY`1<k>XZb(V44:Թs6Nr)h[^(ֱ%Š7.{ִ*Wr+GlLJ:QU|5_J0+2׼dԹ訢59wVzD6f^ tpʳD)ʺ67XK1ZDXQ@ {V\%s]us;< ]WEU ;9m]0ELcjǀI$I^E6O~U-#کoxxܼ]9-bBs^"e AN OǾ'ApL G"H2{?<3,7c8 N*icy]7..u ÐkktS&pF)4 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((eemwӢc J^)t*d:.汝fFUpE} H3;;MId G ^GWMvX`ni?  4(Y\mz;OŽUH^NTFjŮudouv˕ݭ%[BHz)vrORi+HXKww:/4 ;?n ݫ٫甑utb:>:Mn|ߝqס*RL֝EfI T0 {\9ݤrŘOZmvBo4v7TznIKYho@Y*zJՙMe$0Gn+$rI]׿u,C!'Qyw[$TgҦyĶ;$%\b 6dΜ/2g]R+g­5r/xuֺ<1gzcyUz 72ZeN."##J<љ.NYu,eN7Aw¥Ë(YZ_)!j򢽤8-8RI CHEY^$G%";Q{hl;Wcpμpz~IIy:(sޮWi>2;:fnJfH,޹cMhc7 vԺ|Dl`0;M{:1gvymWė'zL'ix$nיꖓwV9]!Aj5dĚwtV3ݣ(=JZoCT9$5inDSBNF}FNnQZӚJ yO2DBʾ+}KLᤆLRע+ 09R2 G04qhN1M^6LkƥP2IL7*Jr+:^è%l6$n?ZX3K rAuڶeƩwo=?L-4x3UN>.7]η;ضg_LJs֟O.v!| 8H״JsQݘ1YU5qR gtL*3$zEgLգ".¹*\Sj](-FK<|giRngʅܕQU*yW70_K>R(iZZ\-hx'N:WxPSn ǔ/zJ'$%7%`Q_i2ZoQ:H_a<.-̶H:2ZUcLe{;ERI?J;VkɤOHJ?.G+ Yυ|K;LEߑVi}]9I9{F2mxhԃ@Wx>nAs8*~X|Bl-"F1L}j+C J*wR=*jÝy+V3:mv?QwVA}n>YK3N9 QJkxT&OIǧZJΒ?:vsH?Ӗ"\qY?O [\UwU|E\" FRִ»072EtB(BOTCF뢓7ןk^2^ai [|+35tQ#kЩQbBխ?6{s5z}kl5[&θ'Ҽx\IzddRwE,L9l2T{H+& 2iTc=kw> bpIknw"A? 祆DՑ^I-/!f&8JL5WJ\eY/. rwY {|=-)">YxaMIF\ 3I3׫'ȑ)Q鞴GRP5^|BեEP̫۰R.y\榬MX9WZKYN Z5ɧ2ޕxQ-IgT0Bbgޣ5:;.#S< ҏ■)xbd@nx*=L۵1ư˚r~Z' ة/Q^^G"Vhթ->$ylˁ̼֕ELK#rhJ|0H'-OZ }]H b=508լpJlz6~Kw|(W3yi !-klHRQo,hn#h^6;B#* ԽZ3nCPù≧c@YS^.GG:{U9„T[x*y.<7fd"kT H-ܜDT/tb[Lu_yyԤGKпѷl<+ l7kytmvc vk 0FE"FB@)֦N0F:kNL= X-fE6r+ ;\#h\FBrw ~44'x⺛R!cBDNªc]1 t,e|t)*=\tĻ1l@+& ;% 9#E$8޼]y_J:Lڂ@'I`VL5hY0}zlWPJ8;XTZkaeO~UF~| QVwo jVV~d+x=M_:jQN2zůjGGgc6%dό~QSjv4 3JT`m܂x@[w@'\żRE8*Tt8 O}:O*.đ(5դ0ۻŸyUhCuڏ4ۏa[:#ELkv )UKUGEҖYWrUtUtxD",:ݵ,fyT{xi:AQ ȥN 2(1h +d]i6"(OofE$"k[ H(}+#tR.,i򻞩GKe<0;G+9>`+(F8xjm͔|)wlFݫèe!Oʩ6$?U k ?Ib-8?gGs]6ky8ҼҺ XKh.q$nb͒Gw_t_'B:T+d< C\+e;ČR+B~?ڬuю59+E+//ex:*Z%m.8'? 47A.I-Pz[GUr_UR3CZ$q:"1UQx>NQ{420G Zad59\GgO/ L׬yk߅#'{b~)Mu Pu=7ziT~V3yjN(ڙq4)aI)+v u}:{[ ULՔKqvmP΃J5*w=~(Bʒ*TB^+Ɖ+J/wH޼)R1zRse:xIIR)]]^}xNrccr3XJ#^:0pg|JA1;y9TG,3s\ZWFgbqIraaGtp҈.b5w,5 [q *} y/<7q*_&%V>HEJQ$<{5I +?{W/Wtm*mkQzצEK[O-̍/y`R($kݜo8ϥuGku]O7S: 4ַ)#ܴ>?B+xiMj$$K}n$BϥUm8PkٟM|Qe&1aSPZ_ҍn/ Ā +{ % *5:ڬᡷF*x;ǁSqp$3-NOM*茪):xn?7 %?!5x|>H_YO$ 7d=2SUdG[6YBNy>7#PZG k\f\x٧ Qi~vÀR7ҽ hdWAPMu,gQsl"5Z2>Ml'i!Q~p>[Hk{ZE.[HZ8_LD!#m J_|;' :F0bOZ=֍2]#nQC'OEY/K"XZ-ZC$gIչz MI"Ҥ As^9l<;g lrA퓚:eh5(t).88jQHCVuOWM<] to-@v=]9 Rk&8VBk2m skCAq0,O 9JUe~PFxSw!o8T (aEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPxۺjEo>QW]"msP9=kcҎ#&Q xo ݼƲSxsfH8:H9~XL5/k:֣-?uz E[Q5{ "*WOxK$5̲b =)J1[94Q]hkHc։J1݂MaY=SǍa[($ ıǹjԚ +kY@=j׉|/qṣYXIq犗-'Dk:`R75P#ghT裕)suݬVΏ=C\NqVDN)ԓm&Au 6(03cCE(SwV֐I ,}= U4I{ $8⣢Xͨon 4H x;GÞdSFe~pA=SJѯJr*D 6M[)1SѡGV Wh q;.]gAXp+;G[lY'-9zb>e%ͤBo:OX:KZuιDm9AT$᥍eyxearzWj rph{#Rewmbmdr'Us-d1/5xz k;dk΢R3.NgxNAO68ٱ '{l^"I83T˻aHF[*Ŷm>4 hW|Lס(8r={ d.$2n9F 3kZXeN\͓*ȆpAK ņ nwyճY|lTEt¬j_Es<cXBW2یWEhhZDl%aQ$M+^@ռۅ.K;1-&y$ndazjT^--Ӄ;SӾgJ(MWN%Q2}*kQsa"}o#ՑIf &$IPG+ty[y!X<4[@teJI&;2s'L⼯ctU4%k "}bBoݵqOyIZ \I.0(\ z}?MkGU%p?k BH#X3ZQZĩ8^%RMBV݊]| vm<e=}hS#ǭhӄ P\ǃkwFX me H K!$d]xG:^<`xS YjhOBIfʺ և|)~u{{ah PGCPj"y- `V_ZbNTC5].MgF;׍_k7rO$nx8^],淸}6k- S}\W]\|P-irX>krnwnRt&|׊>4b_>#{Mx +o`::WGHI=9ÑN?V״m&uzcڣX}k4aadP=9Ѵ))c"W/v;J*zW0"b((((((((((((((((((((((((((((((((((((((((((((((((((((((((((ޯhڼ%]둆AAt4yVXWp,^*F]mxW^%xH>}k f;B&qխ?Twf]Wj_DL2Bn2Hlf.ʼn'$PMzFE[J+|MJ!.[oҷƚhM@m>JǼ6ws@X1wCVY$ +G`5k{F-dl4v,7lXJ/v5/F.4;幷 8 #Ҭ~#j"4="Hs[Rn`J_I%2F!B9"U'R]GX&]9Ss#bKM%MNCI%jjMwL}}kWA=PEO'%g`'{'rʰWu}!ve.1ҼxSVk YIgv? ;V,&skk=͹UEs xsLeS}}%I z1AG,cw^WkTmR")9 W>4Skη6p ч'G}T3 9$ RQN1E:qnңKy!H'oȭ-d0)MשO޳a7v(td9r&8^xXx`gnՈhg :a5ڨ(wJsjF3et@~)ܛ1<}kgw;=2uQ8S*2mhhZcq^=^ n|f3OJ)tv3S Cqqk#ӤA;Ew ;gE=bfFڊMiY3>O[+SJ9֏-f4 `0010zg}jVedO#qǵqVm{Iq\m"T&6;x$h08bu]^ tO)&83^ F?~uR{W+3RJA:~= #8=ÿI]v]|蘨u4a*x& EX/[YZ>2:cY&ae\LСUԗ6% q<I$I3kkƾҴ}e)rZ ~ϩcHb*6Tc 9⥖%'UW\ I]t Qw;^[{2< bCԏz5̙Nv͖X_v>ݛmrt k/ڄVus<_֩U(2#xdHJF ڔ]_9 ڽM7}6UYOHՆ4űsǥiR@Q':ڼV0Z Ėa;VqR4)rߋ<]coG<U>Myz|#cin_=+JX\廨=C+k=:;[UdکC͞\ځJ~U&Ŭx?];x\<H6I $p>潳OՅ[hH-HҊAx?\] Xi3ֽr^d ndy5>ѵa`)Wv~ m{i6(;Ҏ!)?txrv)GSz-;t_i7-yLyVpOC7p# VlՁ_j[Op/Hs4%(sJ\|q_=R}'o͡K%(j{gQ\a@2UK=r$ qh 0 xmu 72#n ڽ_ڬƇ /*N:⪮TأQI¾aos<4Pn1YGck $jT_iXGmHֳfV.΂:L:݄d+y.mVg{3F Ky~rQAqFjg1[h7j34 +Ox@m@dg߭4OmQ%DrO/Mowhc֪qiQtm?+Lݻ]j>|al˚FUiu( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (^:Uk*M&*0s;k-.hXr;]vģQzɝ9E;X}Fj:2iBo`U;]_'޴>&hVp[OI JY:Tv/9 _Хghoq]5ԆIsUhUW]ׇim㸖Bw=+61$/c sp] qL5k썚8nLyQSYDj;c $4Gֽ;l7$HrIטt*EَGܹ'4*k73!f9+VINt]vf{f n {u5SцՍ:E]6g]n[D|={PAk[f~¨DE= HMA֦)AnTWwlkPfGhloĻAp0[7U>,:r+iBبk`w;koYE_5~k qB0]jI>\hr~ՕJ6*0GiuR 8d0o}VryU>*lFe*_Op5BT" 3e`Լc"!SQR_x+V[ݧ-]xCy19n#F5Xqӵ{)'hX5 VT=3 m@TE$kxr\WkHLX Wx' 3nfz V 3 Re`^MzpuB +X) Q}m$(xa׉{I,8@mWxRA1^IGcQR8ImwbF ,ޕGŸU+)**=Mc)ʣ\̵ Gyh'BG_j|'^+opHܐGܯIeBK]D<;V𮣢%ldp9AM w6z߉AY(#'QҼ2:3|yN\AUlh3U<eogZN ;5Uj*VByެvY-G"0A͵-*_YgoZNpq^}N*8)IvLj7^ LIU{z]Q/o;dJgkhi0J!*s^\:O ^#"AA*Jׯ&􋫈t+OzŚko11A*teU9&m)FOb,C5KY| `-uJr yЮU{\f"_W8 E"LTWR׮RV!"r_3.$ ah2KZ=2U/+ ,XƠ}+t`\FtW,Njf)j<WqY)З:S@6=3^cV\IuXܪ $;WuEeb'~ckT]([Q5A?3g9F‘}>Z6 gCLO5;*j}vk$)ʰꦼI 4 ;Ü^QR;\M:? d;;rMi*D2=X^GM~XA:puf&=f9RU:Ȭ+1ܨ]ۈ2oq ze)TdŠ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (<"ڎ qk$qb*um+E(k.\v*B教淶t+)fkMFcx+%RA v^VrA%-ԷdKjV+Y@U( ~{HY|^tR*.QX~b&F=FKi|Av֘08zZi6:8i"v8 W/K65{i"F8χE"2ޯEd^}aC'vsԮQA"{-iy544RFSR:֫7w3Lc,zUJ+3,iZ0#ңSѴrS֧BW_j-Zʛq?rƻu];8Z<8]N7H.$q qijNIM%>d3nǧzZǥn o#B\/WxI =zɀ_eó1\k:cIG-HINKp*RIzJ| 5"ʄ _n'!+S[Klؖ'zī=Wt{ٌ)Wt{H5bW`znwZB?p;UJ?lti }HLEj9Ǚ#PMs @ܭWWYcY,I?W#w3>>\LywZ>i}4Ȋmx5NzEHAʡ9PkQd>mT)tGI5bBXQE !Bk ]qmrRx&:ƧcBﰜ+X3օP=hSQ d s4-GOD_k˨8,=o,hb}9P; ӕrs_M"'G.@p~%dž%u$WZ>&ď0ePz֒Τ"ӖZw$MFBW6D`oΕ5Y&Tk#u]&Z0]'z+? m|Y遚4+(ClV1:zE⥫G9{{xHDTm#5IԮxZ'~%hw76er\z\^jZQCe}붝*u)Ie)J2;kB%*8>󸸀ux}kأ]NHfqqd ±&qi=QNYLJh<~IOw^$HL~L273Ȏ]Xtcw$lU;`mLa6G͠i&6+WB)W{vp3ϥ-q2&j-pU*6 VĈ`Y~%=-<ɛF:گ+ nlf?޴Rv3|+x٣🿃{W3mk-ܢ8ci\Qv\)Dr 3wZVUyVp6Yɲx&a`lmϥ`1yycs9I)î^/ hZ<3gșmfo#5my/nz3'!IykU{ȾƓat`.hg{o 62׀Ώβ=s^']2|뭇8s&e R:A$sSH֬lP2qwˤK3z\QfEtS^oڲ0XA}jpbY=WYMuw0ef@ko+J4Zpft{HZ[9GZqufIXwc\Z m@;UtwV﷙%_U9k~C\0N'l7#Q@ZОEѝL#C "njzdMG/y5 pk5[5[V󋟽iF'9r-tF!Ե|=n;U=@4QE ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (>|iQwAYh^ ц@2Dž]mnN4 >M =n'vI&~̶)7SVdij"O^AYМBEN*/AO$WiՎkkVr-a2g,? Ty潣nXt@,n)b'*qNpoSuC6+ta* y3!+z[2aRE@ki8'% YmW|=Mus|23 "yϔcxWRI'M+`}z,]G!}s׫RJ(Ҝc%, jI'POԮVdRIbjv-ufF\a~j׈|}Y&,6>Z՝]ZJ#Rtk|B׬[C{D%FT9S\rQVKCU\nemHѷSdbԜmccJN bUsEm̖c5~Nq p4Qtv^{Z c]ymth7{rRRUd5bf&#Ha{R(Ի@iA4^E8-m/x#UM԰-FX QX {-)4].cX;9b}MsМ:sW9f,}j{ :SCmM! *uu]e;`[MŸwj:eΓqDɌ*;[e[8|AuZ| AgڹPnqNHm$5ڵĒnI+Ozr-s;s\/.Ė2HB{q^#ԕ6]8+=#ΖvC&(ؽ艠ty+N&C1F{y<==ǒ,ߜⲡNDޥNR=7IWRdQIß.5L1Z=mD@ >zl<#Kx\9ŸxU]˭@ s-"]BaMɽHmZQ\n0 nۻP2Mf 7T Ģg+[CL^I={y/t[Pc3GE{yċ|@V2ƁX+}tH`n-XM]f $mYc9 ĖS-սlJsTJoMfzUӧAɻXIGԉ#\VO[,%cE񅗈hDcfӨEtޥkMr~(Xg;'KXtn)m/i$R>Mѭm"^8838JM:BqKMw.qFkت?g[6gZ"ܥUӨcOu-.t?1{[˖NW^0KxyVi -MrNT}EzčR} K)f^y5zypYd+91cNkм{ "A}1^_hFGl;шE7z΍s_5ʀãQQjv4pI0Cq]7ĝbQ!ܬH^ҸқsrDgir뺜VĻw5 YFyf#p4U$RM{p AEpN2Rj5_ ؉%F\He 5&8p=MK3GC*C꼑}:Q0H)s4 JVGk~Em/)4}qT4i=݆fd 1}kkC{ "Oa[Vu ܩz 㱆3o|_s^bnM)=[Tsr|S[͋o#Ayl-c W5'gn9{/&|=m 9b{Wf")8S8He4Fiu B ..\GMYkǺLR7qsI)3WЗG񶛭]}d񬋵: xsRZ" !8vwZڽ8ӒQdNKQđ "*Ewv>dK&V'^{jZ_9Y@d*j)F3KC5mn\ZF>b[8&uy!GqљA"xvAӤ-emkQQz ]H;XI,h71JԾ4q3mYI=r"32^(MjIiylsֺpQ>mIū`ijDhG9uP5qQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@g0O3ZEJ*Ez"ti.p}kYcԜ׷AiC|vc%5xK Xx1"/2MQpt:q(Yx@KiH Tr*bC^Z_Y}O4מӠ)} fHs=MzEShi#$0+m.^)Ӈ ?zUՏ%>h߆ϵgHېj/s˼CˠjRZw80Wic xkM|P0]0q\ۙ;_Ck_CQ ނwVtO#(= %}?g` kilaqnPÁt3վb-,1˼W*3ըdټJ&t'ַ>|<Ѧtg3;zWU^=U6򫙺*湍JjZ]@ r3|So/lLV=h?ub{ ,sJޔi:os99)+E RZxv47?Ej֍[k.pAҹBo3ڰ] =g43}Ɵ~nEHziiCCs?Z* oj*ffItBlé42/(.=֕Zpȣ'/x_:Cژ&I1(<ּP,1|88kڮ[[+y&tTdxcV9S6+XSo yӮXnn[rk˰@kh[oXaQZbS= SHV%%,^/ٯd+uXz|4K! rX׉0.ł J 篩UxSaze]ƙit淎G^y<=qyxѕY$*1N:5tm:[bsҼ(ߛ b !돭zli7d\ڼבF'8>W)'ϸ9'>u jexkG!'s>\R3^ڙ޳b3GV>Z뷢B0 gcbN kͩYCsh39} ߕ+ۋcV-^Mv赜Tm[2jFXH0N?̢78կS\n?w\ʺaYH?e%F 9cQg͸V€Y滋\il"9w*ck}z8H.Bx&{2#o%m6jݿKUDETw ATs":{u "9hdkUa* (MbXdxJՊGl]<Ǿ+V% 0$?e V Ȥ7o( 2x#ү|Cdפ#yS{#R GZB|caiEG# EB#ED ؠxq$5y}ճC[65 W-χZ-݉B&;]]|0|7dG45ERN;'>mv6͍0FeQXal$'aԟJg>l,c捜6ƯEH&bs=3]!#*>jf?*G 6Yg?JHGxӋ^Λ cG[{xķ 7W[\!u-yy?J ~Ý^ $,#Qºo?'U9 +) W|L4qzj+߇hher=o ^^予m)Wػ:RF!;5vR|mE* ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (>w^׮f&z{ž)W.?6)3ƾPu25\vQww2 ZQ ^Ŭa1G ûH$ PSPʛ~70>ngC37oa^MʟB+ĘR'sd^I#Qr)G3}B>ߊM/oVFAQ=Mbm$g%%v5-l}\ 9MfmŢF0v}s^G蚄WqY*zW}qN?t0?kKcJn)jydu6+VI;Q+bx6Iwxd*vyz,^! <0o0o $f[iH>Yk;H!b ;pO+Q5NgJ]RX R#մ?tZr< bHۑڸOh TzhO^@4kY?3\|EF1PvJ5F籬9UލibYuUTFaqWdw2[zVNO+j )!޼XR20)R2:[ڔ^~]1'$ê?h\]D_[;UP=\~1][7ZP BqZSp|6xN? Ś^>c[ҹZ?,]pޭV#'*qO#i;rDR bG S Җkƾ'Ö yI xV+1t~'>%;Cv>GY€0{&d먢58xt-K21]&ǫ ;OQY:,s+:k˱m\-r '14|2\ۙ'zެi]x{NhdapExkD) dWKm8؍gh<>ֶSIW5-UK;XBfذ$M{Zi m9*2x e%p5i* obơXЁOܒP){Zd q]Cўk7g +^՟l&H&YpQ暗ÝN쭲 c=<3[Suv|:Ư,dsԏz_Ö0k~ފ=+71 6?srqsn*s]eמi%Ѯ\KnF0=5&=sLBT>0ñ\n|]\!Fz*J Or&ucUaЌ*Z68moj YAGa6*n ^īgn׍3̒v2YkEk1ψI[n+s55akTl İ]H?&Sy;敲qR\pZeR3ӭ趷7w\Ժg}e,s[T'<ⱼS9[=:پ+._%J8yi HI]צ<474#*_z<=߁,6S:Hr/פrx~ & #һq.4u-T=ڀ̃j*Ǟ*` 綎Uī^\mtɼCyM؆W#^^<ɹ&w3W-el6)zQG3*|3^%pV}M|{⩴"ԅVRIUV_QGoʷwJʦ򻏺q~֣oGX)dJw}Fk=oQFb+d;t̎V%E>dJxjrc(-^ w 'YNkW %A,2M,7'7RM}i䴼`*WXWk\O|%>$WVU;]}bE~^wɰ~]Hu;Ӭ..X"B^0./Ⱥt!zW\ۥݼ2H5]z/hطc[aN7"DMEZSK]3OBu+]ceET((((((((((((((((((((((((((((((((((((((((((((((((((((((( :L#bּakGzhȂ6mk(yF 2M{)Κ|✔^iMq);Gyޟs`@HIo\V|_y$LmNeR5LЭ-⾆10QלLj|Sy9!bOBMo$u(J.ӭ]#RǰqlmlżvшsGBOB0Ama`0}Ee:*w2mãoՃVoov&q֦A`䳙!뼯v)ICնᾏmjRr r޾A(ЪH\[0W#9?K#m+nv䟧qեRU4fr2'#.sFGzmMki=;xiɩ/t˽5[=3][MB$2F{5v^ƩoOj5㛯Ð~$M׉&C0T<{WhU.1jfT@h-%1Օr*-g1ʇnI,a+ɯNFqo0r>'Gy- +搗Cq U!&g(+]CDn4kXi%&;);G֮;qj_ =t934gxv7:4 A4+]F? :u_BCՕ7}k8VڊY`3YЄeNIu ]7 E\3#FJ#IotIKLc'A*FSɋIꍯxjAL3kzs\2}zkiu[D%HG(g߼u )'r"mO@jә$`+x:`O5VFRe}Ny-tb]"޼En;Q,Z3` 0 YӭvUҩ&qJ-fhE-#0@I b%GWs\Ƈė}6vaF]U Ne`=ּ=gBG!?G-4;o&=ԒrO]N=%25~HHuSSujp܅z  Rj5ԣl>osTuZṖ6Wc nguթNqJ+S(FIZ(W>I$׵viԧ[k+wn/D9ܚ׺gvmr *AW~W?v>{fws̨{g׉f39ŷsTZ%gH;OQ\+k0]H>VޙՅ4HY{ڦo42}޷*:eCln&0w?8qޓqZbHу[#m?Wj]i=5> RN8qQ7縎3$p) 0Ȳ!TW%ǝZmmekhFJj< :A,wzFsFSWl`m1KEtʤ53Q,S%.7|gh'ESBizj4twڤ&kv|Tf X%]aÉ-?Y% n6GG ;V{)cڿyK4cC> [>o)mx_h[C)6k,;,rif)w]DE'jҼ3AG N:O} u?K!n 8Q]+9K:-/\ՑS]]K}s$6$9cJl.V/4 u${u_ ouydCSr5]Z6R"?C֧opz05仱h]pNq jNqcfqQeE9 BqR[O}.cy vdhfՕ5mJ*د̤zW G:R=𽥼s2DYdC_/}}{}P;kNE=Z%O暲(E3 xܣ{$-'J3i ?>$vp$jBFdU!;(%!\k[32Cڨ3^mt!9  s^-2as 95ci.rZ]rKխ I#&r+o^%)Q:gm_nxo@+ڴvL/UKwQ>^-%̳w2ֽwMgF rpHRkȼGvWBqjh4g>6$Cy,wvQ@b`fI.;ji擷W7lZRҖ(((((((((((((((((((((((((((((((((((((((((((((((((((((((((޻[Iyt_i 6Q\->θ8V#Qe ))U`par Y1wlWC\T-ʃj]W vEgJFX^i@IϽy^h3۟ri4~KB/S\!.G:?[G@a &hɗoxq%ķs4;K#rYI/f! W8f 6wm! In' qj)"Ic(SҼxT='6pp}k UY&r("ծ!!5oOӮu{ m4osZMMx'{5j,bhbTTŰ0U[Br>{Vmo, |++6VIMɕ9s av[c\vW!xkP^9os-HdhćUh5J|(n/}끩'S$4zRY\jq3N}[3iȒ_[lf@ kcEHTa@xͬ3ys9;m啤0INcKlE)U9(35t{$N#%H=TԡaxWSwz拫C[=XK h2O\T{%(J&ҏ5dIPHJZ*8"REf^MNKdP r>%+\ "v1ēcD=UAR !EY*N/.kP]gH: @:ȇS\{Yu։;ezyw}#ݖf BHۛ kyG6:oPqS$kE `(%UJ3QjWTà^5QN.ct-D8OOhчkx&D|H%|5;&hg1)l*𖔷Y3l iG&kU *9JdW.!53XdV46VGXNu?޽ʨYhv:knHܣxOp.; ɭ*\GjZM؋>a+6w}kݴ}v]i&:#+/Rܙ&',#8UQn3Byх)x?g#=7WU; :F[ưģ$œ2 .޴ܢl> q%6`vK rB% A[Yҭ.A׍(Lf|-\T^ 6ݧbzVv7Xm6e0>dӒZ-7B3Zmʑзzmǖ^jpWPpMk Ľ9?Z^ڙr>nb!cW nիKoYIta\ױǎEsI"| ^ቮ'>s/$5rm:A$J㣺EXP` WEJpQKb#Ţ.j&g1=(C=%rvBn_G Ax>"H B rʭZN9)=/ᝍtInaÌv4#Г =J1X:N\A _dT@PTsJ݋3$֝;V 2ҜmN)IzKj7ҽxXŸC@thVSjy-u3El.HұEiT'ȭa/9;U{)Mpt׿ +K<ux>ae&JM|2+Kr9#(oltdL,םiZ+52~ n^ksyr;¹}듔Z^u{^ mA]].s|^o+j7EAc;rDtmrfMtvcDtO$yMy:-NKCM8_oԮ2GPZԗ:4R”KMqwWB\ f 6ce?6iMd8bI͒3"O(ʄ<_sǭZv}Ay{3ֳKr?g6+)vozĒ&+٭Y>|6yzU ]n[K' 5. f [xCVey8VO>/ -kA𭇆-&>i_ұo(Z^iS8j魇ݯxS<WbK{M"aVtHGۄysBhE89٣kE.M;ݞ^(tŠ(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP[(;FЀ,k$Җ$`qkCCn"F@18 +ݥMP8'7^ nVp'7 y vS SIt*phc^ω֧Jz50Qy:Y^w/#s՘Z͘USDp6[l*zI-^'hW>=ŽFUFN;ⅢIcn5i*4vf׎mCWk׀p2@Cy5FѬ^vAv׳9{yyoޱAQnM)Vp q9ie~U`z0?h+,`=maRH$lj'>fb Gch#!y/J6;(W0xY6XH\.]wM{9NhY0g}> *IfCC\ Oeg&wCt6^mJKxk۱ᆊeYwD_ -HI%cOm`~ m$wb Hhr8י%*s:lok)㉶HBC^wkz0xbBwKV  -(Up7Š0ivqr8שz'uB]y(V|ku{Ľ*mWth3ϭ[o^iȎuQZv#ss6@J0H8mov2reaHV\>ud3ZtݏtmBZhI%g` ^i4+Hn3`{V'%F}qMxaye`1oRr+cq{VcneQ)!x!"B8XH#")QCgxNV$n%،+iGN+3_mnUT5d(AjkWD'kuw~ Uhn1+zkh%$3NITZ3\VKrrx kiDH"FsZ ;Ikf3)Ҕܫ͸V6u%.ѐ x\E1a 8G5Vd675#X35=Z VX$}\IO=74Ur5 ms Bkq0۔;P~UzºIFAu4U*Վ4]٫^yZVW*AF#~#- nTgh9 =ZÚmtq<دZ)Txv4L\Acu4lSuTutM2IʅW tω:$"ZF:f:"YRE-rQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@;U_е JG2ߌWr\tg!2=~᳃=/0$O,4x'CHG!=+[b9o!ے9S\)&pgY _KS RI=-{(grze !`ݮ}8 ~9$g ]]t]j 1q+As7gx^1 MSF߷\wqSRkI3p6\Dcf}޲GWg$[B2z^w>+#CpNAjZ&BR\ y7nRkxĖ46S&u(OJq)c-Հ85Cڅ^_8|)k+_2OlYd8֊:z{ CLAql+|íjh<0{-SZZPG`SQ 0,Zarn_T^3q/VQ<=bOxmi E@Tv6+5I[Emkh`hwF?_JPӒF4cI $ X2p/x:E{!QQ[9ꊥVQN `kR㲉n\d+WZwG"ҝ4ĥ;_kRmD[5A^eoKHao-!Oirvg:l\WO jCsj<Ƅ#UoH}CQKkR4]OJZxy<]rah!$A^Eq>.跦%y99g5ڑ?/QUቮ"+c]]#L+9nt+=ITzjm۝:n9iac)\UiXksZ>!u"Nu> }6(ܪtX4xcSx9{?7ncّZy@=?jM2M{XYXϴVp{9sTs+$gW,WIeP+vZUD,prO\ukgE$>3 GgtNOJE{K ԁYZ9Lhk?/ 4!n>%4G^]nR,.֌|>il0"jgRHH8% [CN֛۸~k4Y] "'T.4`Տ^%-7L7QؐAd{K{GAsU tkuazU^U.H"Pm0+ɯ<}\]cāV|Ihz?4u_\C2 8^_]꺴Q4F ˀ_ 0cT>j΂t;HP06 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (<\%xZ ɢOxr2-&T3(8-„[[7sg7]i ]F6Mhv:^4hn>Ny k4ӥ4PU:n=!#5RB)*³b䓓I]ï }w˵NG+c>IxFrh#4"1 1G<㴾c B0dxk]cls1kE.GRqTAONnܢTWOcw ~& ? mhEIJ .\(`>K(WI8 UkY$WY`wכkյ+|=R hɮPJ# cS(Q993D/+5wnl)n"pWב^ڵAhة"*CF=_,t-KK$ +~i 4.+< 7ӡ`%ڥdz=wvYwlhٳq\-h-|K\YpXpc`p{WZVUY0ie%h~I=F++RTRUU3'Ö 0kN\ں8ϥeT}DfD\&yRXmi^|Zy?4S#y{؊8$פoEoQu8Gl |E=ޝuC&py9Y^ z6S4J~nH'ީa(s:K.5 A,J)ˣ|+ݬc.%%E蠚Zr#إMRu:Վ*^ITy#hcV;OWx#]]<6w Jl5'c? uoy[Pßۆ1^X3NwsV:J!Pv:XT56+m" =++~>ԵTTekЩ5<<{D|qcqk͆H@X 69bV ,&FSۡ As,`#קJhy+.'m95^<+D@eT5oZ+ycNqRAO>V1?Ij0ܢ6vz'NӴ 0;r~|Mx/aQHJ>1 ܧM]%=kUI/I ?u|l7]w}.CYy&Pܪ}sUB@Ә6* 69$2ѠNp2z{DY WZlZ_.am!f&]?y~!XXi0=i1ԚJFxY=ڵ0mFpfw>lo &AC{8#EDRS/Ww4;O<}+﵍4{ݬz>9Tǡ%|XݲC#m3׮%OT+ sךzJxY8UEsРk\ ]uW4.fj (aEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPk>EF½Kľe.1m&4,W vH׋\~!CwMsaK)+ҾRݼi5}qڜhBNlR +Ik$k5S,On[T $R6k|EZ:TpPr>k*Nj*4ܕ/$Ho!PpA)噴 cyc5Ǻv#%lA˞ړaC$4goE4VF! :WJํRIi1}+⎗knQ"SYB³z ѧ7$roFE݃ެ隔MWP6{W:t6"2JռV0ܤ/9⳥YVlTfv?YfRnfʊdw9&]>id 68(m&&[ymѓߋ6]b ,/ɍQ^=2ByQCƛ5DJ.Fnxŷ~$(r#N5mk58ci_j*pGTw69S%B9j>"-Wz|E$Ct?:rᢐT^4Nk0x~Nƭ=ﺞa-4r.2?C^t>}i[;h$dɵKc8ƹA&ie4 KXa#Pkzƅ K+l?\OϮGo,sܮszQ)5zN[궭orH5CD𥆀|zVOBp^ym341lvjMnQU'٭ *~snSP" 0<)hc@wH[&!cU-bWɦa lUHZ=zR-T0#WO=nEfȹYq^^A"(+j1lz|* ux3[mdyRVđzrDcwc YQ7H05ῇ2iwWs$#;zj}Pi'NOŚf0, _Ji{oHFWG;1$ctդ 0Us'2VcWQ\7-І&9(W8WYhh6 m rzZ5G[H2=ԝD٪wsUմu -gGQ^!z.|Iݻq^ݢwM0ďf⵫EдLf=6%/ں`Sr=܅ zU%莑 וQO%In5^.$W34m''Mt13̩ 6=xeU+ÚFnu DXd՝W ZKde=>]kp5ʢ]Y}ApoPkXVe{^Yc*k;f0_56tyKs[TVly F >4ﲃ;vy|خ^]S DA=HzYH.I$iNI;DՒ y5j{#>zWQp7qSW r=5j x5rG'Sxmȃ;Ƽ ^A?= Rr綧g%ek!IAU;(4I,s3Ԟ/֬Ky ? 0UCMZyzW~% ~^5ҹI:CuR}MpzL+A{ZEp@>tDjGݑ |1u5UބmtQA"A11^;>N>9A3:[ykϖ>֫/5y2ZC2@ɛj[~-;LᱸTTC 5BRQF=h@7+/!kK?g'rX ibk^]k@ @51PHgV%}t(n$Tv#PkrE'݌z<;|ylHp>|1Ԩo gM"P< <93.$tQ+rSc8n5=Ć($p2UIRYvy IsQNLISI#*D+H '0»u+|`-\ Aٞ ,Gz/ۓSEx@WMx^2fvU*R=K՝(JNe2sRnnȺhN)? cƋm!o@`${TWH1zVU~6^=]-_5Q|v'ޠԕQE!8uNfڄ)kc 1RcVVGJo_^Mw N<ֱ=Vj=nTW>6[ku5@AkHH9E 9x,1=?Z?a4ǭ/G?G,A֏mǭ1|J ǭ~$p7cWG-ly#4 b֥'<ǙSw[$M_ۃID꣆W5!P6?xWj,?+]#ۧUqGHmUG?ZJ4IU-tNyVQr7'QL`95#`C6h"<ࢊ(((((((((((((((((((((((((ꚥ|FFhocE HѤsTd+Xmrd7}y{j8Rrvln,-,ޤUe*CʚOlt-3o954y yk]xU{TVze&TUGZa?[s4\q;ibR#FX`m>"j֖_gܒ`adq{◑ncgׯ&<$-`L[YX+zWޥ {IxC)l׵HcX_++&P2g麕ƓvRE}m?Ե{3l!bOבmvTɩ5kD6:uΥ8&EKh<.hߝw W*;잣Wro?/5,CUy-yyց#GY"?' }*kn;~/ J͢"mLktිD^qUZ6*#WY[B6D[q3m&6H7z]n (r3Z^!ݹYDi%3c.g鲎v1fHg8?Mj:EȞVǧB= z5*? K^?ܢy eJ~.GgZiE# 4F,ǀ4|>uW7G)v=Y2b Z|O{&_zuާ Xn'?ι:#j+ћuf A|kNឧkm"m+|w^WYR<|ygkY 5ީh'gY f_]UBޕ4V`|[}usf;Gs\oTdk`Ӎ'(9+;^{/"*Dᾕ&_Zm,5MrvqQ.^[USt qsljŵWȲz2j{RK&]wS} =dj^VXfM:N>z ϙcpv5/vIW I;@n%;A篽w Lky j\#%Lv{mFH(U@Dz<]Ks+5lWRԖYjVڊn%E!a? qǟ$==+*tghvRҴ{]ɵFKu ,I6=0ԇxwmn]3!J ˑh{96mq2$vχbkfVJIM2VMJI6ZbYێCR0csލU7{XsgXA[41bnk7F[L8w9 z ׷`Yn㚒\id #$,H;EgjE*?p?-cp\I,~=+8t{K:C2wo= ɍWAo C ?ߓ ޤl8+ VޅE;ڕ%78~W_l-f/y-nZUI;ܘϙb H[\ysږ] o*)2좴4bfHF^ xk9cCUWUo^>瞝^Hen=A ܘ۠WK>v]W 9R~?r.QG5呟:%"a^ikZ<%U= }a⋋TnZw_${hT.ϻy*2>(dsǎF6W\VwN<5]ޟzÅEٌwׅ쟺~^eGS~H/`$3*=nu SGԷ"O*^{,˨܋vw^?{jU*=dYPSX_Mxbfbwyd+U=6A $5*q8i97lxp+~^Š(`G;BkDe\yPÀVVGTyuy ޹դ'5)=Ꟑ[&0hezu0Z.<{Sʙ)73ƥ&>D)h%}@Msں;kt(+^qWxY0qzWBW=m{)Wx֭H7zpդΗW^Z˯Mz8-Aפeqr -sP>ctMg%RqGѶ U D\BftjM2fǷM>+կ?uƷ{9JNz ǭl[Q,k᾵?Jb1jqE>RW_)\g?'һ)??!/3up5Z oԕ:Hy؇"+jɟkWG$eZm)5's'FV>>h5? yƨ'9P~sSH5"6ᚎY#~:dLާ"7z׷xTJ-w>^N!~2u)ֽS2k ^PXw}v>xR>8T>C zOY FD`6$5zbMbI~Ʉ}mf<j_N[oHsm] H歌EGyQzW Ju#+Oc#9;3t=k$!5kiz~cB.;/i^ЧA|XQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEz-&ܸY#Q~sxّB^4.y.] < r؁M{Xz28EGaS]6yՎj֓rYe*28W{Z[{VV~mVNn(3մKU/)dsi,5,0B+Y^Aok]NvJTA9r$w1Wi$c15|?VuSpʫ6 ΖK"DpYOq^iZ]٭SC;X׫*VES\[epJ9P \:fkLcan*ߍ/ԼCs= ;+c$z:U[{h̲okgW&}eF_aZQcج޹E&kc\*~"j֜*(`na- 5kU]I97EvY^^FΉ-C^p Ɖwqb29W|=խgСWTByֱ>)m I$Ӝ i܍hj/s4tqUn U,]$52HWWe1OU-1Ǯ+ ^m˦O +unB q\*ʣjJ5TRL8')(ʒ:PrW81Uj JolSRNi:-9/1d?]ÿPov'pEYJ1n*qI3Դ"uAC5Tm "(gmOz\ԡ6^8PpI9jiu^>F@N»%\5uyHX[1^ȓdR yN EkoZAgkiS5|T /m0b#޳~#jVڎJ#MWs\oJ%dJmKF}oq KY!r"T]?sLD*@du'us'84{ÒpgZе/p熯1S`DF~{V_֫#kfQwNUR\Ǥ>ӵp+15nKӼ"|yj۬jͼ_ G;W)Zz %Z0Q c8O# 㼁eAEx#)q4 snӜ״Vm;B~%Uz{WF")gNnNNܲ0k k kRETq$1SyT't*I]XLGɮJ՟{Gyw)fw^ylak\DU8bitK="0~j=_v_Ͱ@':ψz%kMrкFvW (ٴ*]'Y֠3ZI&px%i0?Z5\#E*q]MDͨ1+h4bl03u>#ir"p7` , Bz񠤜cJB5b&g9#Xf]HdaGqP&kzƲ|(g> 9dlj6ZuJIk^Ngh`GEqj]jd n #/E $xuӣ RsoS)MYui F)Yc=UE6=$+b㻵gw6~'늵jZ|A%FJ(ElxC4EQlCMRROS%)sZ+[DFoh<53fo{GE.y[/ ogzh6FX,{!gwB-11duP r~7Oӥqk=+~1iw .cmR1XYILiQ4xo5=VEspdg].u_9hL,ּlDT*Yxus 2WXj60.'H3^%t'5Q"G$8=^ v?:=ꚝc9ҳ[ -4>|9Э<ⷾ }Xdd#w~.,4[]YeM9}7*sPQ?"1r&xV" HE s59^*>w]P"AgeyǍs470ߨ }#^EB7Fa%;M`*FS.R>_i왖7dOdI9+q޹ʙOKGfu=~sj$Ƿw^qm=ErF0B_oibA»^u$~ga#J|4u )cO}1F9hW$5mtfCZO֗Ew7jؿ^~YFroRry/i;Hghh}ER;K7xWj>uL_<1VX]`}+"IcZrUo±'Sh~ԟt+9Z`=_!}+{Gz(/UXf᾵6k8x]|(fNq[:mnsZw!w\Ӛ8iD\O|-ֽ6a" يD|=^s^fGJhپTk~ ׯ]9_~N|W>[^. }kȏ~[ PJSW O?{Psfy=x~׿b7?BȾ&81eZ dFw[ojQkr14kƵNq{guʀxuչ9Ɇd[җ,xٞb)s#>MS5xcT'͚fm^wGiu,/+?Z\/?E }k/J_Z 𞈟Ҹ?q1PC^G.jfq8׉? zmBn~Q^?UR>zm"J X9WatQE[Zz>ԟd|=BQjVkAO({Nȇ)=#5^<) צ5>+Xx?g/pZӓ̘fkVKMd˚_~O:M*9D, 3w=mRSSTgyشΗ ,¸{> 6LyR&ih;Y1>5s|QOUciUWQ/ 2+6*IV-BMR[B$9!U^ڈ+GM Z۴2 ήAށKi #I2^+_S*U#pEJF5 qQ!Fv9f$joDjl~󷠯J_8U7$ךg[mU]Gq^6њM~]U%˱>[jq^$e}.`VM*QAy)wQ+zzuuo.F{:qF#V H擖 iz%݀;*֕h=]1HOMZv[^& 3Q{h8jtJ-Z+NQpZ[ZI-mmıfI]LpAzZު7".Ww/l\hϮ)L>{rp%BkoTu U6?3{dZ[^O˕JmWNwPtҴ-T]ǹ :OSs;M"M|^wbum{x4˛-zIc"9d.:Za9 RVyziRڽ>pY E]gc%]& ]l$dS#?JdA"2bs^~cʱۼ3# rG$=ž)˞?Av? iq]NNwca|=ƋK0'p=뱬5 MTn׼S(4{.g;bA~U|OHdhcf$'8ftymmp{dW~&Q' -#”ޤM=^0r z>TvW_Zn5T3rԞ%ZXAG^3k o~"[YqWS/exCB21\+CL2<[kȽk9`7)Bm^I-9!ZNsƸ'QrmܿUbӭd5b|Cl3چ8>f4{ha?,KMcv<5I\ƍPMMlpDۋ)ltt)&4Ӂru1ǍG:֣Ҧ@TxQ^_.ִi/Iaׂ|퓟~ӃՏ`Oë8U\ _Did}}+_Z7k7QNO󛺚 @5󯊵Xд%=5;lDJ>X{-Z־0nl|½kD7~X%q הKJ‡zi1)Ңu'=Me[']w=>Tbx}!_ow~'_Z:ڮ?B>x%v¥ASdJG>5Ya~u"ԅԌAPP$mĬu_!aSԯ*?S^E3O4/ п/Ҷ+[؄V6x!ij|c0?53vFJ^ҢGxV^_#:5xQ3N6=HIPw~dH^?/v+_oy/%zW|BV? ᾵Σ޲_olLf>/VIGQ1^١YjiĖ{W|A]ޕAj~w#2:x3u_omxK>X|7ֶ% *?}oC3B}+O\o?'һ)?Ccg>=TZ|ֽǿꞼ ]ם "'t1=?J@ynRkESE\74++5>5зF-xlmnOWsX\뻖5-^ Ȗ߯jds5Aqj;Nds꤯?k޼vx.\ϥȾdž>%|O}_ U?ODOC\?`ҸB X?#/<]\=xsQř\薞fƻM/P(9|Bgw^)L]*GfoJYVNr|'{nj<&d.ʙ+5Io#|jieVct]upz>㭊^;%7CKjcQW>ҼkAqQc8q:倏u~9deZ#`} 2j`s^oP\s]͍΀]،,;IRZ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (8Kᦞ,-Yfl>ξ[q^|K[(we©\>Gf<9k,S썮^{Y"XzJAZ<tKFIdcZV4bu#v{f;N5[_Q-ђv_': _]%q7 +8W6o} hZ/ƣ{Yidlf-jXo9 xS?jh1˱<=g]%H)Q`.{om&ưFR0GRRdbz9>222>⻌OGwg<Ts]*Yx^Ux ,Y7:Źû-#wLWm:'!@8$f:{Ꚍ9$v2=@f&Cu߉ǯzvo|<<&F!nkWjlF@t'c^}*K=ْA|7.%]Q}W>}r[C+9 eKxˆ1nՆQRq[~<i !bDWeNnWɹ5<_Qڭմ$ u~޸],kG9v~ڸʊ8EW$ծeӣi3lS;N(|:mGkWpD>DTtb.JW}nI =z jyVבM&3[q;oc Y?|_yo=,nuN*_,6r4ᔲ;uW<]uyi*$uqަo@{I' ElGۯEs+:[^վGf4<mt̳Ē!8 }S:nxW1c88ֶcbQUQaZÕrԕ{g@$U'Lzf*ìXk88}j#e%Ͱ~6W.31^=WKhEa4v5srjF> ޼2 W-)Uy<2ZJm'ת^]˨=}XIø9?hMDԏgyF/^Fi.ɜmXvYW| W/OXԶz>"ni@"z^E*k[U0Q?xv>IB*)iw.ovE^ne#Ƹj%klj&4 .Kc}{J+k)+mVA wc%n>_mu,g(q]%32cEW)xLJAe,xթ?l@\znX# p}SžO Y{d!uK{%oskQ* $ԔbYxeX`)@! 6=kU$9Vbhy۷m^CF*Һk{-=9Ҽv_f'yu0ǿˑ5_+7^'m^$ W?׏ij~m&If]@ VlּZl~ˀW}jR\k DTqXWMx %;3^_w~shQ2tq<]XּI׵";Oq/\tҼV.^qͨGu$[g~υpR_9)|v[ 5qf"M6{8 z5t5x7q-r\2kݣ).SI:F(h|žIJHDcg'Ҳe|7tmq"܎;%̲b?:1 =bxx$Aڈ; ntRQIny835Eŗ;kiJS"-2xrQW=\,J-nvEr>EVY滛K.M.xUAW*LJu#d_PEb6 S^JF$ڷ-nvVݼ:|ֳ2I ǃ^>>g"W8{Xc%#U>W-{OyxF#C ޺KV "xciFkF+Ttn:UΣ ;Fק>3>x˭f0O{:hQ(ЩB |l94x' /?ʽ/CE?*v'i4j1_LF rt 3`W%ZJ'y/SbQ^^[RԬG_lV>~űoxu|H5xO6W\ec2\7<ԙi۞ḃN~i7HMiiwgq^Rzԃ| I:Ww ¾y!}*+|'fQdxf }kUׄ>G?U}l:RH۱j?'].h&#J?(UzI++E6#^;йr#kp{s^eHH#YbٞMs̷jYİ1+шuH\[{V ,O2~/OrG>>I7] 3z-w>_^O^kn~ WuJ#Se|qjs ޾[^Q *-tV'{:}6܎q{€oZNխnO Q.WcȕJmȚَ{W~隶.-9ZmVw2iZ2߆>%|O}_ Za<=?q1PC]Jc '`]\GLWWz3xٰS7m5Vta/ج2=+ش&~QWe**Jf2>r| X~~SW׾p~QW)x.9UqO&xR>iH 6'7B1bcsď7Wx??in=)G5Xճ^wG#&(dQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE|^֗\D8}d.;q_,Z-xo xo FZ'p}E{ Zjd\j]GxB_=Nh=ufailTt8?hUFJ70^sJ ˜ב^X\iaxdb EƗb.cǽvvXd֟f6qȯu bdu?U6ʵ"r~Q\u%$ᱥ9E-NY;`ۄl@>Jnif${jlk%ͤtfWjvoSCsVF4k4fᝠV׋?i4JDE#86>#2ڱ6SZ(ZE1}kZamq< ;.4+X^O[^Y6Z<Zd{6Iⷼ4==VBF~(~ 'sKO'a?.=kwu($az^4jb[x~㕛J>umN[i`nel}9H.$'_Zj_^/CՍv^,Ҭ~- 38>ˈ)˖8#}h@q$(ӕ<ͤ|Ѻ3^ouYy oBqN ;`ZIyq1 9KK.UذV c5IƙvUՠ&ЃV__k[>9P`/A]-I8 լ﹝SZ]csPN3#F+Gْ{rv0:8YEaoARѮӱrt/tx췔 x38p5&4"r88=|76va\ί;EɎC|W_ii6Z>H>iRpJ R n귟uR4,w#YQeaz[ly Xj3;&` 'ڽr|RLcr!{x.7$ q ]NvFPR_x^BCیK+l]ȯX7MWImwF1X$rZ/|U_VFRۛף.k3 h\Cl3$Վ*J3.7nA8]^2?dQDSTX&C/=kϵiwW\-dPU lj[wu!$MyּN׬t;5`{xy\*ɸvCZ j7F %!}+vc+v#.zXVtq^&LU5|I|^6#`_[ue#9K_s~F4Bi#m[șyTH$ Q"[iAߊd~[c')đ6$p7,[qQ=\v6FW[[-[WQ'i'$=ɯMU|h|*ܮ^RUBk2Ƒ;\k|X&,75QJɞ]֔ԥd޼^#C >Ʈ"ʦM5[rjbIpW̥9T?T#cCZ\(xMF5>;q?1X⻿x ezWPISi=Ow:4ZEVfc)m1_&|YN.zƥ9,X-mf̺d3W+rchMZxzk>6$וI8.y9IvCʸgR-}Z/C/026ד/_AW+*^9&1gJ 5RbS+kL`۲1PG_<9zI 㧭|Mn7a޼DABisz׍[jHu[yr"s\_}^k;ChJѹ$dnJ~v!q{i~78UUq__yzOkg׏<&Բ\/%4"Fdn9H v3'z.2J=|N)P CN ǡ/+`Y(x$c%@MSÐRtZ4Bn;˧̑w[^0i=wG7 .?mej Pvq^ PvO0D׵ 1%g3x'4 +\^+"m\>$8yZqajA`S:ꑍ߭y ꎥcfmWE2>еXV?{i:Z!%pВՏOB<¼$Bx]zsCÃ{TO1y<{J=w>_^㋁$Ax'$ p޸1u&\IJ ?_x caW)&ѫNwHhD@>^I\TXg8#ymt~JUr3k;jf$'5#(rCΛ_Z {=OJn|~𞈟Ҹ?q1PC^pG.n>]'z-e 0$'#>SlzVrtMݴ1 Ƚ=kң4癶J=_QI/6Ufjm爲C'y)|^XZhAH?:XY^*'r)`0㚳&\iΎ7: —9H5|o^ R aE^3[Muh£Yњ;szdm~0X|Wxq. j"gy؆r8T[eA34|0ץșc8\#%E ۧҺAҰ|=nJ+ێXzZ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (";wU =+Q"bm![t-SP>#kuo}#Dn Vz0RJvBC%U.[v%5xg }i&ƪ}=(IjwlLҐcw'Ҽ5,Jr/AN<j"&Vcڪ}-6)>yhP!Sc@q^op@Fc+o.43:۳FrEEzRg:rQd,u@y3\ZKjsk~Ov~f>R[EQQԗy65Z[%&Ak/X ae!txn^hWH*jGl_gVJyΧ2zBj19۵HXP9 }QU'F֮D6n粏zOQW}@Ŝyrhަ6{ mY6;ְ&A&r8+|?Un!OUCH~$9XԋZW'wMj6qBeDc^\N Q]Qգޕ*pk;_D&(P1\W0uߒC\\MrP:rr椬 b]I5*[0+u1+eTߊ1XEReX~=뚊xw.i?/t_0_衯'y8j bQ. }׷ƒ_[}HeX5NܳXk=|Awo%Sin;7 n/ZX^Y停{Tђ54״%37HITJ3u6ğZoB"vNŸ&\%ZNPZ]A$ٍF%MrUxlw5+fG=zռ5h7EzԚT$9mlOk[Zw<+tcWxHabU\RTv:*Oq$:bEMJ.ԯF|+U=^Уo0r>+FYaz-&DпU>JݴF*>WVnqt"$-^m|LXgn-Ѱu$'$1$fw]f<gBfzODF p{W3|>ttemȍƺӧ&AI|A\ FaW FF`V|M5ucż-[kvC#ɞw{KVm2-R9OY#%j\̱ Mm^$⊡FMؿ}$ rGuKyVюpQ\|u y 7yrN~ı\=[#ܭ?i$i;F s٫wL}7RʔzN3%-ye$}l?jk{tŖ㇐Q^bZ^^@*zƾ`H5앦C-ҵ`l*噝IM]_ gtմ}gqF gWg=*ݦhw:q_V{k:ʃ9SR|@tדJdaAhV#cڼ@NDkk!=pk<6-T^ %I08xμ'*qz/$Jd)VpV}ںݴ"^2qṵާsA `CX·~|-՗PXzֽ,Rga{nc[&& Gy-$czlѴoG 3^9G#t}.\9=9lͼ̟0:򟉾1\| 573Q+N*nkƕIEݟt9!<_w_FT"ea?R?]Ҹ@"+'Z:ʾ?byP`|&o}c^ -z)/X 6јkҭu}=^h __Sc%=O8)GIZ+n^4(j,~bvFki.}GxQi7=sS-ea\|[]gm^x!ꬬyO[,UO]"'oXb!@1+לy޵?]`/zMIJHϘ.LʼPJƜSksOr{=Ư!;Ծ*Ǩ:paȯ!Rh3JWr5y&l{χoNm (8=EunAkۈ̑D72/JOKWEFjI4 "PQȯ3m03G:cĊR\.\\%aeW ~v{(̊=YG5ϊGC%L[$`O)zڿ|*Fx[%w.UUBOC-pXlJ6wy9^w7K=Pui3!D8-Ygھ|o<=`j\EG NKM' rZ63 oj?rʼjj5x.d>{ǞΙ4i3ֹ+Z%`Gq^Mϕβ`>> T @8168ҧh\TLW/?h :TRMVҤ?xIA~X-8?~vNQrf'z\8gj{}3IzkYu,՜O/m,Be1ǣ~Ӷc {bFu!sv&GZo'&/c빥s3N˽rj{2sڼKŗ~\s޽`$xx%Ο"m\(!Sϊ.=`RabERxݔkZy@Upy'g].R#c,>$ݸ r/N O } |Z;˽&e1HZ<VԱ2Pqn>>sȯ<&t-ma&<6SO}}R榓G\Qt/Ҹ[bC\GFkթ#y+bwbo7Ts_;xK{FYe PS}q5KY9>x(7, jdpXZ[:m-f{+J{cּ*G4> aWU]D꒷!DooUYsi9rewZ9. Jh?G?U~zų2(ƼE = OȤueud Κ>[tvs;n+ּ5H@Xl>K?~~Y"_dGUsW Veχ_NAY#ɐV>:t=٥\t_A$~wL<+=B/$/j CL'~ƟpwNW<Nwڱ7v^t3*?*m/.4%xdeN+ܟ."1g%vkAcj~pҁOOʶ/I>,f' qJpXh7697Q^ Ê0A vLB/6`N ":ߊ A!3k*:^V&o!TzpG* V#1ATwnVt Ls=FU{onb刍+z\&}*m u#kN/47AF8{tި1i F]v*Mx95sQ5YwNF< ժܗ[x_}0GA4nR7tr%'Y#ar+õ~EFZJ2\W REWѝZu@` q^}N%|Y=MtcEV~|}+X(Њd۱s᾵mjpadn&^69=J1`43^N?*1ZpM:u<[=odL}녺i; p=[g5jӯ79=YcQ:jAnRVZI;}}Mw#e,b`G>?cVik/Oʿ-PN>T٪ꖱKy:b!fq]jS7l?}v=6ϏlW)tDZ\w?e+o)lnyg-Z+"bȈ >7 rO3ye ?tʗ~m 6KQksWԟdM+I,A{6X6u:(QxWĶ7lmarF~c, z'{Ōj#Z0}+IEܣrF=dXBHk1d*( q~s6)NO/`h&9׽~2*؂y65x$O~W._rlY6~c\d묮|JrI.&FzyՏtE~Z#_^=QJYDɠE8 y~|dOxS(J9n¾C;FE¿K{/X|2 SjÝ6o5#i?TWx/&dXe.Wok*:h~ %$ה~Csgcֽdt SsnyIE`?+lfaIY'=ܓO K{ Gjn}kk#ƛ3gÛ[ z}kp'@D ?fm;).BPs_O˩֦Y_-ʔ A7Tng[+@xN_~Uc|}zG칭l[+ n X0@^o"ami 0vat%*NGJX|B=D%_Ro|Iȩ[ct/C6:_xk[Xe75~i-: kuMb2wC"p?\rTf4LN;UASh8ePmʲE*VUK@s_  /=kOiyl_k?8/˷OC<vcJ~^.1n5&58+o 8ONLχ1'[3W\Y:jS?>n?ҾNl_~_-]WOy/Wyw#(*zϾ'I~kQ?Vk?'kozM?6k?'kvGDyۮ5ˮm$g2׭|[# U*(CaUtM:+$r;gv2I`O+/x2kXAҺ[OJ4n~![i$N|Wb2zW)r-VJFA¿@~B q^ J|.}S)|V"X?& ?ٛ['t~xؠ1Wz]%+ku#&}U½ի$u-+yVFEVq_a'iYr(ŠޞUF ;V/q]Y9;O +ڼ`~±Ҽ4 -%tJ5|]+3;ⵧټ[&1\~E%zu  e_roWlcA\ay38Jm'F'+1f.|k!]6(f)WM' Tiόg-zdkyp>, +μQT{fA&2s8Ҽ_ëY#6R 5`x|Y5*PG ŻB"b+yd)e }ׯ\$hU"vg|LmDL3i+MmJU`G~/D ̚m ayj.~xH? ok/BsW̟/c H"OE MeJL#FZ|/OɀʧG۲@5jM4ř$Ma38_+Jܙw`!qҞ9M;BT8IUI?J_MgiǢW >Yhpo. xǙ)3s-@qwθZcDso k]< @?v?*zyE$W?q%;/#+ŏC w,*,"+FUmcUE͇coZ=?-1ށ6~GλW5kY$4eO.JVO[>_W<-dwPQN/clWUBScӼv.<~6rFb$#mQV?7kUJ. ~O(ΏbثO#)WE68qʻeAT AT$rT̪en +U#0)bJǗ9n(faEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-CVycۑzׅ^N..T v$)<Ϋ3t~ $,;EoQ{4 )3RuH+׾jz6gs^*z]rc.+i-tR4m85RQ`=g&omKṋ4@y#y2wF;r&KGse"3,wBq[Z 3.3?5i n/e Oy/է8,sp+A4tH:OA61\vjR1Azg/HأEj9ns*5f ;eq#BaIb}+5:o k[||PK_#<e\_=G~+J:]D(ǯ hnj  t8YG勉Bcw~Us Ԓ#ztTR76)葙]Rg07w#]W vr5܏:U\ j H9WSpkNhb Ml]sPӴuT@ xCOK5 YG@Hwiuy~Leܱk88X'MCԀ##5[7b#c_İ=ĥ9;WEԱ<*G{ 7Iz?(XeۗYp++Kq_By6+D$ƢV{9{=;vlf cxhAR:^[ ZhB LJvŬ["T p+J&*Qd^ʹIrǗcfW/ i4QY6Xٮ֏q$Q$#V'"#%M]wBL Adn#;OlEuYmca#EΣ`W-ijH&#Te5PB/|D$%#N B}n@;UףU˖/G1xm2ZX_mhO1mUA)9-خ` k+kp~G`{Ԛgu-WN{b 2 +ѣb hn5Ǫ=^N1ۆyĭV-C\΅# <$uBSAxwKV; XqڸQudy7/e6ݧqn@ko]wZi-a~,9=eoQr2_ؗZԾU,<53 2I]'<;>[ZA;~Qvy;e7!iZ^qu{/flx<xkHKhxKX-¯k,jby ^MI{:ͱVnOvuR23^A{=OVDXwrDzC6."Ln2k>&/[GvK+IzՍȷ'pΨT#پ.;NTdY_oo<3³\J.xMmoI lCKo \g3{q# ,>*I=]Nt`7E{ha\N@_/&bC^K&Z7?E? $ 4& }+_$:c&LBL~8{+vSTkn~!|k=S"n~k-ZLs)>?ꖠ׵tp:YWl386˷Ҽޑ= u.#RנiߑunF sLW|I>kFt5hrYX 5TsȮZ5i<9 8oym4GC^[jz`oNn֖kSI2sW}#7%S^UwL$kJ#2+iZ| j`3_3~Հ5*$p9q3gis8}jƵk:]_X+>R!?Oo5V>q_ %xJq#2T0?½GtX#<@_cRI)H{N86}8 jb:oڟDS5MI&HпȌ|JJ) *3+T5kUE1 ޾/#Ss]q;77k07ҾURWno|Iȥ|w{<+O~g:2͂-ZZU ~l?`M3/y幍Ih7yy0{h&Y1k> xE5o[tiƢ<,.cM< -V,s~#?X*)IQXsӎJс2߳/G^?}(vxgSϕc0Vv&{WΟ)υuA5:..tx& j˴ >j/7!f3[U4}Ws?>[?_?e/+}'<+<?xF=Yo~kQY?#_o~kQY?#^6s?A#W|bŋ/׍%v%DOSڇOhXDn%lpcxT~#ʷ ckWrTz?[iu $W>2]KXO,$qVHTո(aOy|n$㈒QK.SGePs0v3a4eyTfiO /IY~1(8)?56B `1 ǜ_y%hz3ki׳~?=_ xizy'/:A!_ h,_~՗Mlb\k ~КV vׯb!E>gc8((d}kð|ۃ_ESh}o tO5}*h2?Wv ē";ju0B ~,i;}:w8rT=,e*2MF;1*nZm%Dzk>$ǜJ+{6 ynm%WM_r?6~4o+IߍzƏ5y[%?ZYz?*s=xI9/m_dS>.'|_%Ekkf澇)E0515W"IorGJ?g#|hc%19 ּ/oi,3Ca( = q']J騳ƾ5Gs+TW̟mk̲I$bǩ&YY$Ue&4$tӤլR^Y .mjb gk:Zih!#ɏUtٯ(? jƄ_ÿz٬`W?_RRهvm69y_f~.Cs4_W HU{/k z;Xp_ 4U#dCFiSI|GTbe)=c!4+WVI-\+W ̣*P(C}lg)\3:=?D{zO<^ 'rUC5^ ΦOr609ޠJw<*7fKEUQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@;g/G%+ p3].KeNN׎gRE{q11q8tgx63iY,k0(4/m ډm1ޝkQ uVJaq0J|o#O{mhFyb:+7⢚MvgxL_hr2+n/Lc{Iu ykbm޹=++Tn9UUp+;[$W8?S]]ƹam K%Adr?5IQ!.H=@ך'&䝮KQaufkФmPzq͆ .&HR9QuC7Pj29^ul-V@ kc:Dє`"'%F*N7z׈4Nhَai{K빧IWsX\3ȧ04gȬ{bI F#&ixn%pFP9cSj-nCmnnŬHQa^}/^k{Ky&,pt$~5-"-w\f"2 :v4_oa:~[#Դ.6Xo iio#8QμHuX9NsjV{”\,D>$iQYHWMs^U堸N gWe;א}r> M7LOj3 Ea}Й}/Ěhz,1 . ;fn[Rs+5NX+S\xHs<-Wt(F[YLݦ#K 3*&vjjP8Vxkjʪ{/t/ !!cVq_RWŸ~F 3N0k6ތA@]T/P`m;%&B0.[Y´Z4Es?i^fH,0tGs_L|#fRZpIs(b]Ni-38>&W%H?|}gz\f$6FۂI#=B>U|BH]6o >xj7w' ޥW٘n#:]݇~:;n#TJuǿI5R1'9~Wɕ5/cR)0qWz 0zf6NjVG.+)Fɫ/l 5E?BsjJ籔B?=~8ג^=k,߶RW1e'okxj^l5R_?!#:3?߆We1&5|G}rUE0+2N]x%>nUH6vpT}+Lj$>oPzWe_a'=I*vZ4VoZ q{֭"k$UK|[ǿk>`zWBMWL/Yn3[ Ďy}kniQ컩çx;RHnAtVk,_"bIUDݎܚ]rD{wв/*n>oҏZԌ1+ۧėN1Gtq_IK]1'NfRY[C1_^!Xێk+9FSw+YCwГPkU'h%f~!6*~h}_<=+}+Aun=fOM},~-%'{u?;$5ퟴw^)r7HkL_윏ʗW$2(.QZk\Gk݂&L?ި1؆(:s®zU Œ^9od'K_'aƝWi7?WkտǗirIi7 ȵ:whvO?f߆tKao, xcY9E1 uzh>Ҹ/һ>ʶڸOZMX)5#]'cGvu˚Yz3(t"{KzV:Ԫ>~uil\ ӋKr a;}Yu=[?Z6-Μ듃YDQm-1=d״/)ue?ѭ2 Ndooj[+xh zlVEfWJ=ϓL^+s~ᯀ[x-XaaQf+1omcn+8iAF6Gna^s}O.Ypk;ijn%rI,Ē{wŸ~R_"B {/bAko[36oAk"Qi.ڂq6QJ0ƍw[vgB3yˀS zWt0!`.8tLxߙkOj:kwVk3{G~J~2__:ߙOn x5-lk'%'kƶM#ec1>$)2-{_𖄥(G'w|K>HO4n/WzY+Ұu4<\3F(B(((((((((((((((((((((((((((('V`M :/y{ُV94^̫4d/{|AZv<t$kK-jNu䩮ǞG( +iPT66zmIg`ģ# `z ѯdy2H5,+ 8~5D‰Ee9,*Qi:xV]"7]*wU[ `M3t fR}'Dnfy IU rķ93G%MY@}gM{u'r3ԱyWKIi0XQ]R,?ޡȪ{49emVYPt6'/fXn=kQ2j|y-3alEz.<:UF]cI<8Vmt_Ofj'g  0^A FSn$r9PExl|'l%T屋w}Nk9ѡ`vsmb+ eu ׸ZͭGԌt)W%Os&[%cIVF?ZMJ]Rk2H8*Xӭm$5 Pv'-kss [ &mM%~\!o.#*F]Qpgg|IM?f.0{zW?Z+>xz[&e z8at7fy%MdQڬ:?TwS|JЭSNQэךTLL.=ͳYŲ?3VB;yeVdWQ*1^M6@ƌ,H4(᠔P$=Y ޢn<5v2A'F$ ם ]n" U 5NTaZbSpg4(LjGRy?: 5aĶnqG⽔ έoahEs͜-3Bѭ,nM|9qV|{)ּX 5[wl~uNa'hX1K}q#CKŒe(0 ~ֲrώI`|Nѭa5X-nBu9,'N1=D49ZVmjK.`vRFHЩ--Hmf&{iX`} {. &('2 fI$v.DI:ѪQRLݽyyD;.טw¼SM7Ҵj慢&Gk#쌂jnұ974|L7Z dڈ*ҿG>8$ִvCy z]֑< Tds:RQgʞ+SimmA|wDM/Bs_KM2`!8?ڋWu ۓ_+Q̻NeWyAc޽'ݢqsלM1#]iV>4S/?H:eP5m=:#ה˨G;$&0)MX`vJw*?Q,O.H5KbbE|xe5:꼮Z䔲Mv: N I#_? VKH9 Wtȸ8~~+]Oú\3ĻrymǸiTkx7>|^J9WQk5ʲE|w.9):Wwoګ=+~16UW S]qv? ׾}kp%Ggҿ҇/ękQvqP+YsOk WG_#ӏJlvzWџ'ZPo/"+-kCWɿ:0/z3Oς5U,c(zPiwPQҝsG:zW_w?+_kl'٣_yӌ/*Q}Ni~AcʽE(ƿs!AWMc` Q6 x#U%W:35eŻ}+oKE-_}U|Iȥ?)zc¿W|5TQ?E~o_>WwmFLN3k_t<01+,#S:yFOj4Z2?u sU>!qnsk/ž'c+k12?b Ox8U}VoUN@&!KS^׭5\HnZ>ћtb׏?E5Rzt\Oխ(Q\W=`})ȷv_c?A_~_-]WOy/Ww#'q*zϾ&ǤJ#f_RFJ>&ǤJ#f_RFld~GJ u;$# &?֏{7 u*hN8*+|e(:zWcqc_Gt@/ۥ~N\OLv:k3/5dxє2 |9ck-~X"R-z+٤:31Fn7_?ч8#1R'>zIRzG¯Xޤ#2~o+nnhw־N&?mЅz֍XO8z`J <ӝ`Wqt5;*?tg#׋3!h{q?Z~+?O__;[ihG qDž}Po(WO>N Iˏ15(򾆭6ݏʧ X-|,tw_ZDY{p6& tݎF)W*䩌Ses,W|H9~3ݚ/Ңμ޼O͟%|48qaS Z<ϛ~"[{$p:~%f/-gBBX{ߋ<5ovi?ekG#O*GE xW+cH(V7׋,g2lFK ye~\4kzSt椺pP9l^VٯO m q=fd32zƾͲWXZ5$g `R[3'Y-㱯/hӼC[Bq".}~;qg5GwpqHki7>cjJ/~WᾹM:,s.uS*sɯ' &14z.fԿm: [YDЎ{W?Eg"G׍Zi2Y\Ϥb~)e({X߰ӌ>g.͚K4ǿEij3fY-Ҿ-`Do/fc2h_Zd!'=п-QGO֯h_nFTw~,+M+R+E"})_~O~%|*(Š(((((((((((((((((((((((((((( ΥںŎX KҳZ*yeM{e֓ 1;t+gM&߻^5$qgkNkC\nNupo8ÁY^v:ֺ!F5=Gk-0%N,>Yܬ:)`t~.t/3;ֵ+NܪZPuK-=ċ J0_HN9KYH? KnO#Gj>&fgO5 4eO:JǡzN-CR23Z}o:B:}+z+7V5Pw1$;>Cڜ^)&裒w;q֯=Q0.t-B/6kIcN*XpG ВFF`CvPiոխ մ3.u׋5;_.c5R, zo+AeLJ" w59𼐥$I.fgv2H$I5sHB&_[ ,"ic22z8jƶ#K"O]?ZMatB9lks E3Uč>t4(ML'[²Sh`Laj>]M4rH<=hݣLQzgëX2$lryR=F{yT2Hr:{,N3嶈Rosȴ/ * UM{w~"d` *'VlM"ugiܡ%Vc4WxM>E9%)p/;< 7qYB-N6Ii=t!l#Vr=s 4Rsҵ/$vLW b=jKyX"Sȯ|q!H@x=⠹G1 hQh6x=Rcݏ8=a4gn aymy$Fׇ`ZIl~YTe'hbit`a^W}߂u# 9&pBxR95$[a1tt黦zSxZ-.7EWu|CrE5u%G|- ŷ,5ԖzֽlgWQ9 aki/Fg}5`P~glMtZ8*'Bw Dͣw7N?J dj*ys.#p5}5YXx|ۧh@ bSGї<_]OiU[Cf^cG}즼g;yo5aT}k_~xcv!aIGQt7e.F~[XݯBm_Ҝ*zx棋r> ~ 09@(xH>3cVTF"Fe |Y_OjsL),mjc?ZBGW3'uE>?> zLyaû~Ҥ.S3o9ֿKɰJGw|tFVYߧZZߛjvw{g(awwɃ`'צWR.b"GPTk珌:]#esJ_,eɏ;ۏ\Wſ^]1$5V=9;}^E.\LXl뀒x{1GD#Ne_4f@~~:sOkH) ?_/vzRGE)_F~2̝kCWɿ:0 iCVsf㿃/F} S_6jUiOk*'(_= jϬfy4-՘ytW>1۠~cxc:i0KnA{^#Q80ь~PME6{Us,DŭO1/J> A=_FsRӢԥ-|IȧLm}@%ny<1\}53YZj='hQiKE~o_>VC_ˏ ZWЍ}tWwc&qo2s;Wߴc[퉒 ,?_j%C^U â >\U`/)q1^խLNxB_],em~aЊrF+jNN/⡋٢֮̂ձ ;__Rn?Ҿ~:)JI%Ww#$*zϾ&ǤJ#f_RFJ~&M Yԟ9x{v+> g+) $rUk@g{w*Fk(Sc%X-W?x:zYs:ݯDQc+Io>7 K`b5Ҿ9mf~+[*֫Gؿ+ZZYM$)j9foWğ3,ND~p,s^ $WOdzp+ťpq_@~ ׼C,Gvl 8y;ï\XzNEs\m<ufGؿ e[E#EQǠk5?-TcUo,Go3k8״K׊\$5/gIWv%ܞ30d޿6FK x2+tό @"U1]dp=y {r5]m/RgbuȟPߥ@x-{9ٟ?ǰ1ǘjx+qϽ~iAx0ߥj(l罍繎9B,浧ӓJ"9M5_?ByVͤJΪn픖EbAW9^?98#Ƴ]-ߍzƅ?k? zYzW?MǺA!~8>(O-s/}>K_K1= g"^|=*ƾ/2 cyg}\[M b*qg:XLTg?)]7i)Ps^§--2y-CWȆ9+Ztؘ*PHϠfībmrx:~c?/j9+z^mu m)5)cű:=mzz_SWtCN=削Ub]ڷȯh Y-wlLqz?P+B.m~+񟆖>\Wbh_S|1]g䞱r7˂+ _Rz'6{>[ƒ=C޾o4+FT&#+4Jon;yi/4gaj/ǛMj(3.v=E|&oJ԰$uerAS mO r>k}Z]Ս$3FO]4>4`+ß._ξ=ёUIW5ӗw0K jH\~]aarNyLnaN7w19~"5j+$}Қп-cGϽmhhC;?:7zE SJTJ h/WZX+pÉoď~4h (9|C𯃮bMwZVn3U A񕴷k?$mw% W<Nqی^ sTxk۞_`V/WcwM*|> 2{Kn1MXܤ9ze)>^лf")RE)+Um sYw4RA@W5Jytg\IkFaV2oۚXxΟ3bed{VYywQGWT?i hQrW["@x(>*zdj(tGXTdVڤkYVhSҼǺEZ  p3ۥt l!r6'uN#K=LەtZja-pMSO65յA=X5BYthB|ߥeIBOBMM H?M`iZ]牵?.<#H݇rk2̢dn*^hAWlw*W߿V]bLݍ'P"g4|TnF.JYA^'AM[opz c?yے8o&(R3z7;P}JU 'O@MH?E\He Wmmһ'ExNi-t)VNOzTu7ȽX 92y!}#Y? ,g77X+MΣt&7Q\񼌭Bݣ^FkfFF Һ}N!Ct*?*[/ [In۴)Єk6=IpzׇZE1onc:ҹ?1Gp]5ONKmmX=2zVcgNоU-Z0M^dKj8Ev@OXMW]_ݺ4t^p: zS+H༌0iҧ*|zRR:Fiu ŀ)?ZG؜y1e]\ Vo-C̑!WMgOQI)= 8C-5K<8x#c5YŘbrIУ`CjX™?J9<w0HU}M)XcOJ}Zx+aP<aYm5kJ*)jM')m>4cҨG"v8 :mt>2]Tt z^[%j̽WAҕMջD8cҹ-rXr^k9p(`I>,aJn/$ngM[ 712)' _κ@Tf{s9ăzkۛtOZkZ[nle-V7x|T?-u/ \s+8|<Εt5):M=ċ >g8Ro2LCW-^Hꃧh|1/lC [ZQ}OYxt s7|w~KgdI}=+iEp0u=c{Q޸QX9s)ͪUZn~'tڴk*C\cTq_rk$XU EbG0i5r%LM>"[N?{x^*8gl|d-Sҕ^M}M'uzIcX{eheK)m_^2˱ ۗ>qNY%i?>s>c ^oVqz,8?ν{6^AqXς/ĂKEz{񯦾|,,z[ڿraW>Ac[6q۠XxeFx挫={e<9jWq,?Ҿ_1ΠJ?v7A):X"2YbpMUKܦgh% Vz ߲gnֆo-֕u VWǭxT$&浣IV䜹,=k^ A618xqwG`[.C^mx8şA ?&58 eil%ʾe>]1_k*s1';ϑ|$LR\S7}{RQF;dW0%xieUW2H[ :k4O"5+rU9qGyN:8\djdO}WMgsj=;Meq_nꟲezw(opGv5U\k=WXx:peB5HT{W5qe2+ -ыX䜞Mz>R %'Jb#qbUmrM[XctZ*풺>VGNI#xEݹ2Á=+SF`6G~ | gK0xziXF.%`2NI<}+s ULㅸ ķn= Tu_Csw ҉X+vt\\_6~_ݜr:ܷQ4|T o[?&}Voƴɪ.u |p|w].KT:.sʿC4Ȋ(=Wiq+[m_uh0]MVF{YȯͿzkc:]?_Z.a04 cSq#JLq+s$ (}+rt?/A=WgYH?ֺ ܯtB+u$Ji/?>. R]*(c-O_ƾi:71L-ʒ@gu~f3Tkj廻ޞ\seV8ޏʬ-ָ[MYďٲ9_-h@++dѣ2"Gg\H #\|3ô1ժGk[\A*o+}nw: xĺX$2[J}cneT&*I+Ph˯r;٣xs=Ś%yۈAgSX)KRpSz4#+8Q=M| y5fԡ{cv;12E}vwaEY4|]:ʲqUݧOIQ8'8=Vx䝊b08oυZe_xjo1cnqWḼ]z<+F p9xs 8D5x%$}}?Cm>{XP7N2EqKbOy\cut1Ce#sbq~h|iqq⇈<-p,ߊ25\5ʬѶ;U5?ʺ7K'EYlZ0JzAk&DUlhcЅ}쭢<5h>i}{yT&SdVtrњzx0BQMݧ mwBsn=T~_?VMSKOLFѩ,S91k 752oӴlo*T7 B?q5Our/hg'-2Ԩx׫o$OÙ~+ WmJZI=Ƙ.,vSOMIqG -wbTr=k R<B *1kӿR^$Qnº o$"\g:tQ`v9RM6/R |cX?Y'6O3$k/i3|3 >,xk jF7b:O}ݿFA?1,mw|*FE(_'&nt`yX3ӽ|?ŝ6fȰҟUeKqI5x+KFx-t2C_g1\=On6.ww#LghZEljm -auWk_ٛ&> Ԯ4`e P3DRɻo? f|,BDF $9d*\?xf_-w菧3n_l<('ѶW֫|V\iK|__a8b =\ό?[9"u5(D?RHgQ oZ|b}dXl"Ez֮%^+~|oc^z+Jm̈i<^?? WR8Uzi]zU,eD4{tBѭgs6TG\sҺMehȓ nJϋ1lcYS[n3? Kp  3\\d@1#J<\l,&{ŷy$-V_cw汞idi,`RX|i'Mlz2~3r7SuZxy0cځOͽs3ӽWPtF,Fwಞ?_Ys|{_-Ϝx9OcU{>gˤ~|:xGZ5n9>]|l n9 Kcoe#7'Yx/^Zwsۥd~߲^+״V] <n7:91b .~8'Vg?ЅkyL_w֞ -nu4xJF8@^ou*o x|GkVyT7y3\sM[O_ߴQE|'_*wqx_Xֆy%_32s{=k $u6:j]KB?膿?MڵhT[w-t_M0lG´]4ԓr?j~X]ZMAsazuH ml8jQw|m?h.qp4 ~a~]\9 `z:䕖^cDwg?xV/5k(b6%@zuy'A~_ [g-7FmEY'n=s^ugcg]_c{?BA4B?"d"MC~CA5=OsM+Yn|\n؅?⾩C$n1jA9m'Xc_ȻS%=sk ⛏1c q]WۿTC:{?BA5o_h~;Ӭ.4-[.ZDrc'E|7uot:>ƪu8mij}͌yzf z˕%G_m{z4QEx'8QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEË&cnB \R<+u9uW~8ҿ'K{Uڨ=y9<׹BS_GSK׺ sw,ѩVA*.m>_,Zߢ!dAC]cmULGB¼ZTn#mF m xƜ&M-JComV#\b18A6'Rm*dBZi|9yci)<0Rl*JQnQ  Fs.LAd;glW$RiljZ5^ ȼ`u&]3u57;U}Gqham1M#÷ڝp$79\mF9Sr3r0Ph @ҙ^LǜP=*J70GO WXO|G 4IFEs|){]Ewfq :jі{@c=Gֺ){.keysۡxJ.L~\|kyh0FG9{FVI6tK@'TlW۾L]N.kd.{t./I14wа:+~ \YCc:)$M*E`H)Ol#Si!k. eghtZڳᖑQc9;_^ᄊ+xU$Wm|EΣ$WEh33<'I.(o,j `ux_Nuvpk%KbIx`0J޺9gk(iZm XջωQi[Ao>s]x)yjsȑ<1uuM#~ѓ6/|KlL挞}'h#3W>wvRw:4QUn {נVURڃШ6m!ڈ71-Φ 6[mvz͛j]ͺ4@>>VѠt`s kB9L(zĺnoka1Hg?|\O,n,IB H?*!"~?W#~`WGY'3KKé*-&YTmInmc1]sEgkI>AaR}{-i1?IBKj\L{H<9x'N-早h][I"yeV_ȚV>6k>k].n4ANזC0#cFVT:55wMe~%j4+|N,ң>E|ѼG<o[W2>K[Y_;M[wfʎ.4RK8gw'+;,A_'-;^!Hk 1b4C\U@.jQ?6*?>"Zʗ&ViJMlvʿ:?_VxG%}>"Y '# (\ /W,? WlL@%.c#=>u_1XLL*̣k~d/#C῎7u[?YG}HoGa?;50ڶ#d{ko9YHeEɟP;~: XV06P%/D*W?>-O{ٴ?,K/ 4yXU@z#7"k޲|*Xd"Jc',Dd3]nW!x?:)h iMq %p;G*YZWoIF'M:JEE_G%j?oYn-˧U%>//{Zx=uA.RhڈF$,n {UrT:2pqvgW0< 4v &uaO\'dXN/wx2R=k57lcztW%PE#NJqN @\ů ki&.ªyLKg1{ x5 gx|C0.>:k G{ F?3|<l<IXѸ$@$Xc83NݙF2:n2':uw]R?~5~Ŀ.DxRԬ:ͨ_HVȶlaԨ?**[ks(; $H[i|0&?Jh=7V\OyH' YQWHm٭iiZl4I$ Uc:g'k#Yѵok:viuk|%LSA" ݖ:xܽ/ft)ZtO[qҨOE'Tg?S@V#_oKD Q_pW3+Z/xze-܅7mRUG6{U5 ̏*ƅO7گ6AA ܏oa^ k.խC *lb܃v>T澕iпFkxY̮8y˶;*O_j<]T^NZEem#}9$8:x8nڿ?hO7~5-Fmk)!ݰ>}v2W?/-(}AŦR/L@q>|'./:6"pKv#zW̾rBOVo]Dz|Z[Bs%.R+N{&ejk"subZQ_[i?NO~7OHbU`B_c(, ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (>w~O߸m]ͷr=E$[-_AWnpW;WƝ= `Lr /[2;r7>'yM[Js^-%U =+ )4˨)i fy"v ĐA_}:wY^&qъ׏x[:yohHɬ1M).])^ڌh䕰5FK68 &B.Qԩ m%ǽFSNS$ӌ%Ctl-+)DCՂ?<9bv 4s5FFGj64x$h<.zzOj1GxHd`U]W3'0Y9Prw}נA Mr[K'͹=?ьP-yǗ6YX |Xq\cq-=uiEEn dvTzḳg5a=m/c[`?$}+ե@56Ìוxww-onԏA^a@Uɪs.ASmHBbWk<٠aH޽rx㽶=ԩ kY]h|*5X^F>},v~}έ#^2UOQ]sRN{0V6@'k _R-%#]Ƽokvp~}>蚭zuū P}+?\jؾ^gpOQ잧jE$\=jP:*Aiݍq~v%kljaᔉ1,Oz x߲\ıe}ߌ"|IRB;zUMr+JD>Gk>~o#+|A DkU8rG"t$k[Wk$2+GҺ'LG A>QR\ǚ wX t.:5DTxS?xu|GUNtlzgҕMq:i3Wknԗ4ٌsȧ H57u].^`/Ckڔ8<uXI_ -]<~ݑI+ʗ-Ю>#W1F@b:jxtK M:p+/ YIؙ +Ƹr˓AYӞD8=YW)U& rޮWN@3Xnoj|)ݐ^IU|?Es4lʹ s^i**^Fĩv4kkkR-M=& ]6ѫ)PÆixK{v}H2Ok~@Q(/#6毚]QX>,BxjeW8A/L~M  <*|Mm(hTCUFIfq]K{-~#/{ ##jpڿĵ7Mm8']GXuܐdJᵯ]5Jۘ?UGSHӡcϭuUTW&Q滹vKYg8Ա5=VlRO*8ekj≛QX-=#FktŪ+:56WJuP]׳27 b d-k+~\[WUY=*hs;5%e-; hktz9 7d]^_WT|7guuaG^T|uϴ}ʽ;;zuvʼKgn6݅]0䞇xwY]{J.n} ig8Кݯ>i)>]{jQEAAEPEPEPEPEPEPEPEPEPEPEPEP__xR膯++n93?RH&? W+ici߿kKGIYUhu Ó}.-ʿ?^+fi3*ٶ=ɇ~n}(Ә)Nk_DELug?|\]Xҿ+w@Q[?o ktO$m+ow.>oڷNc=j9_2_N4?R0?_a/4%y?u_ WzTQm5Ł9~mG_hc5'R2PGq^<V?ǙƣhZz;u~CG lp[sk1R{ Aվ'o_w'V-uLtyXqw'y'hg\ |S헞0ɜ'#y֩GGfG5"D|*|/G-~7'-;\Ehz~b>$|@_W ~b~w O-~GYɡx?: ]:U֨e wpWQk"/0|:쩫xTF!^9>YT~?_醦DêN;_`{_Ig7?SeeU1 at&d\,plG=X(J ?>)޿^?`4O7_?/{&ҙk)z%ߨȭ/kϿ?Uw`Hzנb?Ve_5H*;$=kiȑS+o+?ӣS ,%+q5-lV 1w<`'nLZ|Rpcqؕ5}Gh֐GMJ?SA YX_cQ_|=~'|'<#I35c$WM fױ1:K}(r? ~3%O.ʢO RH4OP1ok&ikM{ÚN1,Ra bk>;L8R~kz_j5ӀYy5ߖepQ:8yt&9?|BV}1jPCnȁ3 oI>~j yk9[Q쒒,fkʓt8'I4|B M] s@7.SW4>$JubZQ_ƛi'__S+BNtSt #_?,EgQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE"uegqi$,+9 +k> m $ ɜj[V(Q $׻EN18ߺ0uZ_v'P2>wW-ջ[[.GOoz ,+HiBڹ1SSc$$qqh[F\i}۲8^mX$l S\-»t19Ta wSюr)\Y[`V9=m;؝cq#*)uК)ct̏k$'&>m|.EԎnڽU!deuGMaqpFLuM &ՎO70N˱@}3Vi(`RF}+wW>[ZJ7=s> WS50RϡƾoR.#Fχ_q~R2cC)ʊinsOCo 1C&};Fc8P2Es$񆝪ZYMHy$-8I;hk)+5s˲Mv d dBOX H| tVkG1\שMЋGhT0^IKMփ@6 WqQ5M^6)WLMwQ̣2%dkQ8H^=N]OuQ sK(~首lgж+/K]u"T+`/ҽHxF#ڼR]ro8sxiӍɨc>``q]Mck@Úѷ;sWhgEfS5Rқp7I\.H^wxUcynxhc=+{N{YNܫ)09.<`kF Mje5'+ntPdGsn˹AQxŷ]BY;5vs psIxst 0\9{KB@ik_eͶ[CU˩XAtJ{W'5PԚ91ntW]cf}V GJ8M̠wO׏E dV!F2OS^\|"+qmwScO5 4t<xhxW)CsGQ楥F$x)4=rAg+ta^#Z?xqmF-c#/|Ggڑ'"4gֱ:ҤiG&В/:x7\kݴ}6'N%UUQS׃+`kt_bh6+ .RIEWEo-xVeW-ڹ_*D}6KQo$*Vԓ4Drv=+:DHK_ һJOir =@z:W+jb{ z<-ۍoW$*#Plv5#|1i7 =VZנ5+QEbY:晨;7,'/g/e9i]F ǎEhhg{`q=INIKcJQ O!*JFSSn>6yX_ZKuY0W,~iJv'Ċ00ҧ+{4e%~ax:bCv[kFg*êZʛrع]6%aG)[PW ɑ%pzYIzҼ)^)% ^q^jMcg!Xé5"x\>0gyM o+uspKnV|!mwG2 #zzTמ1ln5҉3>TIhW\mGyיi0"K&R4lMzZKhKU=q:_;5D{#{XwyoJބF Or&ڱ*w(>4`:RQEMi^4 -RmA;"N{R?ƺo>I^#^}_YSoxڗ4q0=TXWGnϮ3?PCB}0+RLv̖r@O;?z|z~ʤv\(u Wn嵚Jb;{D׾xZ_xcR -'sWDry{Yu%.iy_Dmq/j_' Lj=\XWt/xmsNMsQx5ek ykL1__WFQ:);QExE<㇌nt->Oጯ$.Qԟt׎q/j_'կ >$t&:l^^O\}^iIN)I Lj=\^;Z妡Rh˹C=爏<]axN!gf˃Q#&uqGuٓh@ s a=5WnNt=_ waӵ'EpOk/.j/~4Km~ߡ 6wzg8q x7~qomxEe@ȑ|W0ׇowuOLRkG ҋRh|gZ#HS ~w?]go6-Փ/rQ% 1ڛ࿄0xb7\3ݤl5'^?WjSOlg98;@2I hpxg74bKRA?ϟm5n~'Mr|t=R)޿~krՖle 2؆C #54NS|;w>[X~ /Kg w.~xڗ5U?|'2[Ζ)P/_<צ}XAԓݞMFa~ g>:{44cGɒkrw(̟|HAKm=>n)0A>w5r vwݷaЩG_~Ʃ?/hOuHe$i3Dv;ӂrxz ^Wgu#eO9o1ߚ+xK^xO]O,"",Įu+ )VO#/)~7G45"XՈWh;{q~]Ŭ[O+,LUn8#>Y\Zu;\Ƕ(Pzk?scS%-$Ϊcu$`W=*nԧ'5Oo{a杝I {|?G?넿ʾk%WKiI46S?z7G_\{W ƓBih$ɕhNw"|6X> Xm-Q.˶0 ĺw{oէ֠ [l[8^2 _IՌ`uj/fb~ؿ )#`ΥȒ\43(%H$U@  vnn,n> 66Aq߂=5[->?=ܩ ~f:v~Cᆩ i:%}i)[Gu$׭*4U5fTnq/j_' Lj=\Q'*慩iZ}լYd\dRIWxgS{ZݮmwE5úLd쏩ͣ^쥍'W6}o^X]j_X,[b5!~!r{8E  xO_Ƒ$L3Υ$Zͫ'޽YWkM㫴o̅wK_^'s?^i7&bլcGnI3V3)s#uyx_ZPf{>hAIbg^?EϚ֬¤9s %O|^?Wwvw}X?`?U+u!$I%tF3UHڻO$5 h_ִmCHyl5x n3J: '߀#q۴ enx>khRTCtqgt:xŸ x7׾!k=X^CbȈ!uS;?tAe߅u%g*0H5`ch*ivT{DWm7wZ7<8DQIW}kFO.TtT+QK| cOύk ˷յĻ+}1b|W}nCºƹ Bs8C遏R+rcQ]m6(|g(>5?W 󐈟ȕ~ך9:9c.|Jz(vzU|cXC^-I ?>)޿^?`4O7_ߵj_wOkVH!'t C+r_?ޛy_,'U&D?h־8^OYYj((?;+|2$o?V k^(xmVxo/Lcl!8=}+PĞI43ш,d>z)ut]?QE|a|#~|Ѭ. : 1ÌBQ_sqonS $(c^Дrܱ~oܟϯ G!~ql_.oB=@-3  %>i>-WDm ?d @'Or6W5 ݬ7[\D̆9"e]Hwކ"t*ƪ{1N-3[N:~^/i{^ƱiW,,&9-爆 A;A_?-gƅmM6L״rjT02+WgZS~Oꎺ4"sO?|GhHmʪ %GtZQ_ _w⿞M 2+(20|)F^Ͽvb]OEWƜAEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP #CtzWoGg+E_Ú|ַqK>+^p8YJ*_\N[QOeSA`X2ڸtRmueR@+¯ǚIOWjm &+yxӔḧp Bi7΂qrJP\ ]Ǹ+tă w TiT i>i6Y6оdyw-q4ZFs*cXQ]ibC~U x4YUdW޽7g2.cgԶ 0RGZ ;(Tຜ ͽ"DF%Mht6L_A'™|3@O6|Y9+hNճA] yċ DbZ->(iB9!ǘݪ%ocA9 =랕M:ƒ) /&7XԴ `I'\gI.u9φrL~v0i,6,Qu/zTEʉ{g?M!uj|q}5$9D$p*j:֫pfME yUI%&);,yO56vpۤ0 H`+2ѾyVS4Oڈo`7E)։}li7'!bF$kK,ḉ }9捩Ǭ6w}˘P=233*vzXEWny'U\Hf̟Ҽ2Oߎ/BaŪ~wc0ĶҴMA##ۿUk~;h#M\Wدt2/ m6SӌJ? I /vs<޻[^CO Η+n'Z.N?O+߫1tVS ( Ƚ׬Ƚ׬>wA_V|;CTU}YDmSU_ÏRݝxs+kh9Wx5 H'~h1xYf8t*߁5N.Oȕݎ/~k>pxs5'/N^/}e6y=nxZúզl{o }aOeqr_QU4B _Nm"ȴӳ;"i?^^C/F"::/?A\%U}y9FԾ+6 (K1Ojώ.օLb+w=|lEOߺcׂ׽{i|j(+]ft#L!n{'ڹG׵K{ 8ˉjԟ`9?Jžo[Dc2I?_]8G,wdӏ3,HF(:Š(((((((((((((((((((((((((((((((((((((((]`q:Wxc7 [Kao:o:*]jLA5U|ohSskcp3޽DBպxÅcu3N܈װjx+SOYYۏ\WCݞs^`?z6]5Đv9mִ}]8Mbs D+s1A}l[F#zQKv]Fkܒ4Vb"fҮ3׌iR_AcEϘ39s*1m}$?]*5kR3ǦJ)nYֹkZ\Tuc+k%¬G8ߑǽgSQNIhxo^sN՗ol׭ Cy&etpG{=2.dq^ѭ +\ jP&3vSiavE+9dQZim#FD]$һ*b#RݙFN߯9j#l&x9um퇏v,Hy{Nt$%nJkC^S'#VfnO0 %I>Y?Z,+P1Ɯ`V*=Iy5׊x+GwK6W{-r-b4p9S[߆u\ǗQȼXo?}%yW?y-^Xl4 y䚭Ln"8V^~"ߗ>S` Q27>g۳9u5Km^n-dFޝA5OQ𦗪%V(UQmIΕcTw kv[ OwURJ;Ua% hecy9E Z &_M}v7^qUmrn+\bHm:͋AqԪ⮝g PXGV[F}:z~x-=™15).d-'c4_ܷ6{\FFM\UЬUeCЏƦm. Kc^.jEa0tY3L߭i_éZŻ\JhktݎK'lg;2Dk!.aC'nԔUΧ:J FͰ4#wv}qR-/!eFaُsôJYb.Lh.c1JT"*W=vkSѲdF\cxOہgM뛥$dX@o>hReS6=MW4hs0QvWyYzFm-`H>YVM.:5U<\W*IVnFyns׫jDgb*gьB$-nEEqsFIXwcXg5'Y2X[b'ٶa1s޺?i:Fq]T$цiUB.*;Z\êHS_B\V>}7H<(qZ~oڥŻ"nЫv7H79{׹@\Bv=j$ӭc̶O A$jʭbaQkn§u 7*U95n:c޽ir!hU5X*j u$֕fDr-Y\& |/QlWEVտk(zYFN5̊$W0iVxB ޯYʱ]]$27EcNz!aKI[&v%RA_@C}lU i>I|&9Ikxӏ,g'tlq}7f*pWwm-(3/>I^#^}^G??kϫ0?:~|pbnv>V@5οuߤ?=t?tCE/Qs%:oO^cF3ffL|G_;MOϖ|_CR僨]݂ex+N,ҧ'`~׀I|[XM3~`c񯫀YU>kԪK|f߂3ط_676uo,2.R_5:\ 5YmK}Ukr/PIm`;fdCk+QWmoa9%H=+$~qFc?isAT]I:(t3G"^B|G"^B{,dsU}YDmSWugÿ?OW>KvtU_W~h_o_W~h_o#j|,Fo +kӿg?Ϳ4{ zoׅo#: O}ɫPxDnB,>Ll&,9 ⹰>G;ņX4 ۘܓ?2g?c-f##}RoK95sdt>y<[?֔y IAz7vAOpW*>#j_QE`vg&Hb'$=>Ҥ<84Rpk?~7k$L˧;x;bpo=v[\=FW./n2Nrj<)<7I rr~&WJ֧^Qx#W^2$pz D4幍J5YB6SD646F@,{T-/#" ^y|T.m-Q'&VnJ;|UIFj>IkbIcOm2Je9"(Ij\2-xF7A <֥mE8,^q^[jmk8N@1._K#?(}%>eHt+YlddX0O{c F݇@zΡiֹI1$xaX!K6+W*ZYrlelCPvn Wi/$IV?pGcQGоh([^P[ѡ|V K7(թxmC@rxy&󳍘5>a9cS<λu*qhCT Mh6\QձYoq9$V5`ox v#=XN|я/6NC"İq^wi: vÌZr {+h`$FORkjxN"Tƥ#U'$ W⯈RizYƎVfOHRrvԲ+ \B 2dW-wK6H[iG+teF*ø% E^H$8=7zٔ}H_LWQQ:[B#QǰITjࢣ%rfS#BI1VM;XkX]@p}+~FIxVU^Q ;X>mY k|7S[;9LP3nWkAlx犴[Mf],d{MӴi ”_ru_(o2yK`+uH(XSQ|ĵSU[6[dU qR{VX m@5E*OȌdV2RR xKVrIۤ-#ֽV]ϒGR}*Ti-"yO}*kf62׎-Cv&@7(cºGEa0#5P Qhy 2[Q*}q^H`sZϏt8YycyՠΚ~ԯO:9~zCsnۢqj*u%FWA(3útVom3֝2iVG8T< hv7dǭ:ʹCFz5sor-bXQE?$x>A#5oeHz[NW.fUqDfu[!k籮؉5#|oyjW1$24l=U6ɣjwe8|k7cT!+V?30? ^(6?k"I;Tn𯟵5+eF$^F %it7+G#eglBQ +NVlq*ĿRq_^ci *(QcEeRP]EI].;?ݏF-|_O|\8yZ-hx{Cg}EACsfJ (Ǟ!8Sd>7 ¼xJ+v$WnSNJ$NIE} At8[쿳5@ ?sνzx~u0=3Gy.G7/ jrX'zx~u%,XyL}:|ח #H0SN КA*]g5+)~6{+¹:+ќ'gs+qI|3Sɘ޼x?t񳋄_C;#{TY_!W׾#{TY_!W|29w"6^:z̿P:*/+?4?7J+?4/7Jp?F>xzw#uy5߳ןWh|HCׄžnY@|Ww4XqWqH˕OAz7vA_xWÚn=G29xeMPIeT }_8|/6W-q+@{lm}SrQջ+-öOE=Q?.yYbrXFUU,pFI>(PGkxSw>,m`AI1;.kiv}~] GsO\¿he;c?J=c𣦜yUŠ(8((((((((((((((((((((((((((((((((((((((((LͭJ4Y +=icKL4Q<ȝ3FkǵO궗GOoDEmŷsj aw)7#?U>4ԧBs Хt.s{ں+}cbxFRSXZUdWfAsmPExn\i/ lҽ)hD; {+{c]Ѻ9|3 Ysn] _ƚbi !Z6Bf[*\˹#.q]SêTZ6qiڼӘŖECYѮu}F቙CόZM.=gI\H#=C,c"E֥5^7rXE Z:>!񞡩^# D8]euyz,/d3oF=7#RjM֛rO zM{潸F0ǭvrhwezhdn2#SUO*KpT]hW|RӮ%k{(0Jn|qrҭ3{WxSXD\FpFA4{9ᚨ2O '+ټ ˦xvdrd*G#5-0ai /+Qk i H^ZJZVU>9Վ=F~.u;?{*ȸe ,,Ҫ<7Bѯ5[V` 1s* V6ʨK5gk\=K<[${?h,ޥsj޴)lҩ?, q#K!c>N;ܫ*/FдxmY>=ߵy49%3 AQ S܆䡡?Ю5*1l7K+ R%3H^Mo{H%+[4iҋ O@0)k~ Pڀ'޸GSVVە=+8Q̊sIٙ6ݮ<[w+ =l8ݝ\)R0Mz KZI)XP" Oh}oB>эךר109^lĭ* hw*(kYN)9= 5Xl5YyI^5:ey$S9XWSw\pŗ 1_cH x:qt]Шr1Z׏tu*H[usNt΋)5 Î 3{SV<5{ۻĦ)cnާG^??c L"=)4]6Db,{E'987r*YOnvT*k!ãjmhsĄcWOjj1]C$8%&III&mܲģoMmnNLQ'*R5H}:kAegh}ZeZd k:8`ǦEsđ mqn j:uJ3%}ƚ|KQeۡd"^Q\UD5ڞҳ즭3Xv? }=sI1k2?_C|+(Gfߴ| 7a_LDžO^us6آC#$>#d}˝ ~\9B+xP-mpBHg׽|t+ZUė2zk-W)0y5G?|#i8o_OQ^7^$| ۰tcB?Z3WRҫ~?=% ou7Fd9t5N6ͧk1 =G)~Br}53K^#&uJ߻_6!95K6z?-Yȍת*q [Bs4mBs47kSgW~7^כi^c^?y^m{ؿKď(#O~mۦ \&O]FQ5&}U@[clt8=Z<<=~G-Hܖ]ry4v6'+?(Q$1;?A\%U}|?G?넿ʾ:|%{t9dX @|=~kܶ[OA=OZ3֮m2&mr^Yqն^#]}W3+z/ ͼ,E7A^Wgqw mcy^g{MǍNF(rRW0_KUB ּS=XKUB ֏Ps(k1EԢ79kQE((((((((((((((((((((((((((((((((((((((M}uDmղێzʨE :uq۝&m\ºFI*jeחUcVWM}cs#5V԰Ҫ<>uf-Ѻֽ זk? 'H$XZO&uM\;Ys+,n pj'Ui${9Sz;2줵kJJm{NvI/`F^\dV7-^]/D'k7WYz]Tps6g:f %{DiP|dwg/+ż<Gs]?( #:[Ow2fm6FȐ.H;0^y7Z+(ݣ\]O ϐNA0Ҝy)Qvk\IS$"nPK(bz<'9eKiz=cE~(NЮWeVuQP_Q_)#Y:m,3^}sj67Q/$^I$2S%TN\>:΢vO;<>Ÿ1kb[)Y* RN[PMB{i3U*pq^IxVIchc ƽιtr{ҥJLQZ.MDnګd0Gҽ8q\O>0ڒ͓Rr"J,-j_X(>%H#9Y=kʹ_Vzm$|OfJKVI{ъ~-5IoK[ h9՛[tVu(NTTf};@s ;Ӭc,b8Z/g6sJJ)l RJ-=Rȵ mfI2:65gzWi&vLZԥ*6djz~4I.g6 ֻ+ψ'4{qmS$㲂:Z-Ej"*:x7,$ԕb#JJ' Q&/ xNh&i&[l`SuykM (~TPqpy&[tKY Ƹ/U[&qcҩ4n?N$$2)e sکs☕+!#QP%E9&mԘGg)Yӥ**RQ*+io۽C`kŠ(9'{y}W|=/ YaX /^,}:tsTw8ngi_;GVbϏ3۱}qyXW8`UW_t#xUR!QrO VsCr )iqi!%yrޮ#il:qqύ$Yn5F"1˟?U}ch*uK/V2g IOSwM</'t]"/v,@c?ZҾkEKX9I 6ӌg]Ea,EvEBQ^qQEx^O hI$1. 08 5mr? )wq,*܉$<&.8t=gmQ} 3ğ}:F{W9S8< ^K.H0Gj^*Nט Eܽ?O@5}qoݼL :#W% /Y`PæN[1՟F?gŸKSMvVH$/ DTb^/+?4/7J4 ً6z UTjd\2>LNn6ҽ;??"_.h^{2Z\3W_N7s(i(΀ @8{5Umbk+D.#lÑ[ЪS&QV>;???"_.*]g?_~KOxU*$H"J1U^<{B.*'?tO/Z> ѼV>gv=dŸK~N% 'uw37's:+S8?OC%Jg>GtWӟ!@qtŸKK?=诧?OC%?Jg{)ȅ׸fzi=6V6Ю;GV%)9.JVV (aEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPg5h .9WTיx'Z^dyVĞ=kk9P2SG9o\k=ʐT.& JYb&vGAy5̼/.,<;s-D#'\:փjjkR9EYUKXmex=smtG4(lkt \a#Qtl9ן W5 ZzŇ4$4s]x5u,AiJX72J;#Ec2^xWX> ڵdv3WWg]HZҧQ~I ;hSWW*+|s $0~ER@#ֹbg4mSG6jvRL7G"5wuH.-g?+|;ҜdVnHԞN(N*L|Fl%gAԋ:T,I}9 Q *8ܢK&9wGۯi7|= "%8#q'ֹ#v7=Ϟq=k_W^xve%C:+LӖ2;)"Q^x2J(ٮ_d Kw2}+ugڋvb²v ar]KJǣx![5d0𵿆eޑ +ԛ#zr܎i#q/wj237;MzmRтHxuCaa`ۑG5Tڏ[vtc]QAcibczc֩.KrCH~Tv(a2mwmDLbDE,r3zuk:>zV{yI[u=[OsH>7-QI 3GqZShxGLꈥݎɩ˻ ż]Hz6]jBJ`-56ErrOWW]džIQۿ߈Oa\"y '^]{w4kQ-o!06kzaS{zM9<Ĺ8IɏkNcT›џʟ^4NjgZZR2Z{vVO6qΪCSfU$zfz)s1Y# ~uͿ%c|SwMGkܢuUܩI3Ui Eec, ͱ^ܘ V8X-*8<ǰ`J9u8eR͙Χ+>|/u=g5|NIZ[F\Z+εAzD#b vFuk6CB+IQ"*i#V(K ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ((ZhVcSJ9uMλFvUOrL!)!>Z3=k=&g7ȴ;Zn/% S>w g^WE YyxL\i^pd\RhMB4{ꖖEPlf5kbC=(weN\C#e@<uχvz\$o#Qj\8H<ޘTj3j,jWgu={YK`w_?ߋ=,?UuJ*Nza)8#.[V[Hmn8t?icxwww*(X] IvuRN/CHI)2YHt&T#k:Lx1Sc=꾬=|ܶ;"N&W5 [xhJ-p+oXԻle йEoc?S'{j4]nzs^$-W$Peٮ!9GF97ftt{ߴr#cp-T>s_|yR\;/:y/F@CtvLuJV^`b5k oR$ȋTy /c.cw!qԺG㰞- 1~/OҼ\V]^0*|kuS[{=bz熼]kEeL3FVeʹs2fז:yeH#+~#Zi7MoFE8b+ ~ӏʼ$e`s>0ԣU!T5 ;-H `䯸o%ns=諂³cr|N1TRR'={MP̰[D1Y>75 w;\ jϦ[2d¯c̣dPߟsUKSw4[]rȺMOP<hSFi;ZzHiw-w}qV돞QN)md(jZ厑w n55o&f5?_҆Y=1V.>un׶+ҥ/NY݆pepߝM,;XI?SW) >^i5} l1/> i6Wgi8.*?tlB[J2='@DAvO<ő[ej(La7'f[6Ǔ!+wH9'K\׏.o<="ګ3+`s'*JL*vaLU<Ջ }FK4gXf{&ȏ1#GzUh*SX.eOOm4)kB'h=s>ULtD5^+s1ם|=ЦObh"Q BĜaq~ZOr^2\Xfϖwbn6(ڢ}ö> `\ޡR {DMӊ5x].%Le(XGxzjr' (}}aL6p]Mi:cDת̡zkҙ)f (ڮiR$4HAIs3ϴzz||/ntA{fvZз3k#pC{fWQ^X\6L,y8y9YӧSl=_Uҭ6]ѷQ\n|ǚI#!:~q8+E=^4m,){U-tmdo p~8'A7˟=KuAu^pt9I)|4R{kY gں]GbZU,{u~WXI푣!HWNiBOC~UQXJ[ D$iPC)_=HsֽCᆣ=ޝq]!`eN<ə§3;j(MŠ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((UNjN~ygQ4YqdN5)(m.N1׳KMIЭ ;W^xIIoi-]ȣr޳5ݴhHgcj%Hv +b9}iPmÛV$-"FLy=VDԜ=ʹs8 Úotb+,)'ҽbJʃrp] ,0D8Wj_C-k Z-ݴg" xuŜ֓2""SKjɩ':t|GS'Lg­笿AE &RQzwYըƛqzθ<鑂YyUtbV#xXY}ɓTKu XGj&HR N)I]JQmh|KTǩJV&\E1Tz+Sj2zrݤsc⭱W?y9`7+Ls [%vӦh''$jR:rvfCn |V|RR͸Ck8["«&3&ڍ_IzooV6cpW޻MO^Yv^3ck-P¥v^a&9d@N&1ӆʛr1_JЬXZB#nMg^6Ӵ9I/uA +_\k&dm9unƄiv\=oFm5s-Q*};[>纴S~-W-7Z*PcyF25|gCQIܤREB ttK_s(8yO%m5Bi&]V(ÏUctn"_39 }*i9Ԥ{f $ҕlGm6YePZ+}jm79ʟƲ>&hw2}b gº=kF٘` v)R{rSwms Jp–OGo DU+λrz+="ۤmpÕ< m~϶'+uz-݆p+$Mw_ {:y'۵`wiƒzrr:td뽐V㶄4$*dږujBMm].]Cp]H!W Uںo5P[8!fȁK܌rUEO~ڽhn.bu'U>&7Z)!-8汥9ɗ'eti;&?p8եzZPaч~5>//rHy{Em^ #" { *DaoAf#J(/ p[y屟u/qhׄK#G"u8*{Vzqw=I'${+snSSO4Vs4LM?Z]c=<J =뷮ymA/z*GY7sq-J/.Kٙ15VϴCן׭Fӂ՜M#s~o_eC#w+ĞlOkR~тjgl gXRn! yf#s#w52DQԫs]jp¤ZGu+}+B}Ŗ: _z)Z늤Tf6Mu^ n :\\_lejICV s^Mo,]z4 Ƥd{6;ŰAr+$g= CMn~ԡT}C2 JJҜf?ʹIFOCUkS־'M ")_nxOQr9%md-xGC+b]>y[:3(&_|%Tvu^Xl\n׼Ru}:{$K^l>'jBR3oXHˋF;|>O]Dv<~\zFRigSKeqm-*)Z5aMޛMiIr)t ,hD叙LqjJ}VmEjs_Hk+$ 2FڙM]+ c>Օ ^N[xSO'/#bC Iʫuc]}9OH0{Ъ N'_f$hcmz['pcu;]= q ms6$,[;X]o?3s>W5ɹy6L([vjŢ͝:vKwG_c6 q\iEƠ[09+-$n:0"ᦠ.JG%^b(E 鮩7'm+9<-!Ȁ+ I\fǙ_K(c%wK{x,3ϥy r7O_~nb FnTimXS1/Iʭ!T z~)yG{tm`z4+8a9Ey]FF1n깮JJC@ϩʗ*{CX& ~7 cډ+LJd-n";OzšRع^'yp,QvSy7Ϩ1x#`ŏSWVӌ"^EO}y猼ywg,|;Mz-y~vXu?|*^~ a"gUw6q4֑#ָ*oաOz c'Z+]*\AX("\p1\?S?ܑ]t6E>65yRB"82*FMSrN=Bt c^;nm"+klM9X(5̧(?qiʚJ]&ki%Hu,:ltQ9m|B-A4FrH׻E6q5{ΫYΪd^eϱR.{xτ enƭKX(KH^O2j|=l>kQ&&֦_5==&0\ |Sh"1gi-MsFx`8xL<+5݆Nq|ۘԔ-#S]cf9 q :Q,Vp%i.ayW885 ?W,T<0=pf _j]DnY֭xKWNY&o1YG52+(2H5S9&h~sD2,W6mHbIŒqQX@PSEN^7_x@q$ipv*>sϮQPܭݍKTɢYxe W7<.H {{zWzƗ,ȹ++KCt؜M좵\c5^TW&0RMω$@Īz 7<9,D,[ܯ\TӞƒ<þ8SVnnh$`3^9ÿ NeFw" >؉S!Ԓsƾ Ե-P8^^g]vw2ʞXW?xUSkC3so {u39]ڤ޼-5n40|Ŀ~+>.{֫j*zG't]"S{F8ּ?y8e1=+յ55v )*^܇!@F/qIwWklm6=2*zdQ,1$h6O-}?C }kɮagn2v#fѻz+k񏃿$+YQS\; w,)6z<%5Ю ̋56_zps6K#FoAxQԥa31q+ȯ;YoT#n(Mi#'MDs [9\$<=veXn͕͞Ca{ 71 6PI?cUSn>Gz($ĩu vq;ȵgxnU$ɢ󫄔iMk ҁ4I ~7Qxxm#jB2Ԝve4?g r|!}Rٝz)Yjyv,sPhmD̸W Vq$ԏlV f6ajDOwcp"F A5d*u(fvɀ0=3[sY^_{, 1ZRPok0m!;Q{[5] }ߟ.4c C]&"Bw D^MJUHꌣy:fxUYKiݬ~EaǠj7kEi#F ]G|t^^aQ[5zUeF.mKdV =EeWtaWŕ9cUfTń>!"^4Ur{hy%>8ּ-rq (F<1\uMtm9oS޻.ƚ4kK"(-\,q]k񏅇mSc"G%4籬qw7RN$rX o%KgklY[c']UŸ݀q:Tb3_v4Odע?/ V`v¯?o"3fM#h{,j&ywаQ޼Ww6^8ǥ{ *p7 }qnQ8_\SR 7tۣ}aopWimUNEgu+7M񦕪\"!c5$yEh]ўuuwo*#L*/~ol)\+F9>A=6:%7u?R)Z |*L.ҭn%]Hc7>/.Q0 "XWEJbc8Ŧc#ZF= ZUSޯ[jVlV aU54$RE^oUx Ś*X>>@z]$;%F*˺2zxW?iVr^z Ճ{dLFK 1wM6#8=QP3{-DL޼(tms?2B+u_zMH>CWy[樝\w[ڤp !MzFj6 i~Vq^%ͳ"= t:}CP0*$ׯN0TlVT +9 dRE>om58cidcFjơ^.'H뭮b{(0ҡׯ$"2T{ ߉)g`3c "޺)hc[hߩJ+hv+&x\J%Q乳b]랋Rj [B(Rq~ͣ6n^C޺W:vFPͺn6qn@ FqP+nnvֵnm@[ʽ\sZud|S[jq$fl2#PBF7(8+~ipYrY8rpo^*5Ȉ%y]vS .]ݞe1[{aTT|G[OFvRTd^ڳ%NwӒyy崺o2XVN{i\!Y H0XU\\ۆÂijQEbXQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEl"09z׽i2I6l 4` ?Ɨar,y !ϯJ.n|,H;EXղ88nO^34ag-u$-m2L]dx""R|Q{ШO̴rnH$u/Z?Xc8?gIJz3u ,wg9 xZ;*pw!A͚7n'ҲUPf*qh_<kzgڦ&xTQVƐ/;wcֹl6t9oyqlb۳q^hpת-͆v;ܲA]Ա>W06ttLgI)l⧬MŖ>ڳ<2#N{ ~_&=p9m so,xJUqrZ"IP@ӵu2znk[6p;"2mLuuĆNLقR͸!+SWV,gfDw#/\bF{f4O[5_iry)#ffqZ$rnaYQ(L4,!a = >,e݂"V%tϳGsp kFR#kTH |C\Vܟw^k7Q cTo iKhxMvBcKژ7+4Ah/ j!bǢ5cOHֳ,{W[C$ *9nkZ fe\&3=<k$%W4}@{Ay& c:|4ڕ*VYw!Gs iVwfݤfe8fQ t6qGzpl䍓OcȬO)YFo8LWJ5vLeH#Y%}lH#zjUZ卉ywe?M9 7yAK񶗫]J~{XlȂ]ſoaTNA%δ<3;e9èE{Ech)L4N=)׊t.ečExn/u˳pNRBH u*3YϞKt**2|'u|+70cl8=f.YZ #X!@Yq0,HG}蒖"nP@ُ1"_/1FP<Ź<(Q}('ӓm#{y%߇c"jtMvV?6T>h"ע-k&YzpEyU`VK"BU|ȫz.sjPEn_x;׻FGG0dFO]Җ#֕>gq񂱨<5۩?w-D{o|pmM9OT^~&K;Dr2чz4m䟻s|#y OuYpI%Xo >6>VXcTE 0+lEhUIDpqz2O J^4Ѭ?J!VG"djՏ Ůj /qkAl7 =G+uj}neX\Zk=qlkvڤ"[YTSSOoe%EOf9{9Is+#_qy5Иۂ63q]GvшE4JUWVtE\OW}MxAPЌNjW +o|pl#euVĀsJ.Btɯ7> jZ䶍o+L*Ϛ*ȇ5f`j"1}8-i^\Jƥck_CUm~=c$}kQlWzw¨m7RArx\z .Mk+C *{UW_*^W$^{j%[ձ+-ZkEB8ݝ%y[˘, lt'm[G2p_vq]]텗e 47++*T&4hښi3 F\ȣ zҽrTgh^aZCJkZjrTrOU^%ȅ-M*xX눖SFX+4v[LuS&?U&IdNk:RT䜗ɴmv#КMUT`NER(((((((((((((((((((((((((((((((((((((((((((((((((((((((((⅕ŝ+<(N𣧹zWċ Nm- \&VL?}jaكǵzm5QPaT(/q$2'SNR;JԱTi4QGW^YwX @G;I3LdEWf}br -mNyE'zRYa`0X~V$dKBsRMjjC:%pgh\uxwfG忛1}+4BV+tr oj|"?34R-fV G|V0=EhVf&|p:cL C=78p{fTQ9W2 [y& Vomrmy`?/a޽QlB]@'PH} G~FO]k>[jd>kѢ|B]-Jy=W,ı>1OތztֆEC+4RHtTdcڽ0][6wFk+H2)$u؀2IgR Q+l}bxQ[R;Ǘ↝وA+<ь~UE{nDqjygIIZ&x^ausE twxX1>Զ7."1@5[W-KCqr:+J]vDN1Nr"wJRȣ)PheVA^ֺۡlN H`û-]jHS:8v3F.YYbpsѽzTGf .HQf"q5%{hW!,Idzּ\$$*st'ўu]\vэzUGIF+վ$XinrPNiI6Zlkoi76@5W=ɷA.poZVZKrJ7ccBrTEU*ҡx)AOSwOXK5ʘ䜂޺,N5,k=ƵlH5<"xuƸhϓ \> ndׄQHvT/5'x xQ?䶤?{T77PM"ğcKmuBHdYPe9gkOLפufnU|uy# red_FGoyQQ$߬gmL=r!^u{RHJZ)Xƻ] Y^ӣ=TW< FjN ksxTvf?t רbEs€O*i$h2X:dݓWU奴6q5hBkńJʹHHֻHcdC2*BjRBvg|.Fwn#ƽ>8#c1Q_j6l^e̫25'gt+ku}SSk)H@vݧֻ{Y"q$mejZMӕRV!G$Ȫ7eqn?BNOArᑭlꕈa^k^/g4Ɖ%BOU੮C\bmmk b&91Nh>z3pm#" 5ݵq$NÜ5(ބT\O$:/Ef$VpjW"3V!r 3%ncw$Z>'6jnρ~<[:RoR9]w~|7f!*J4 )xʨ' u%Z\<%<}CP QO;HT3\ ={]?ԡ |\vᖜщG35a$tyW Y:8A34Aαak#[ʝ&ýѯzE:ވrG1^e6I(*IN֓o:JܩV$Xɜ|Q&:*w#VIY0j>%ԷawmEaXǛ ;Qhyo;K֌ɹms jhlQkOfX$&b3FH5$)AjmTZZot 47 (Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@/KSaV ;` dTAuq;4egLWsH{j딧I$yoĝ*qt<2 }*-i}/n͆fzeavwz?ۥ-^M%cBx kW:YX#8Sm!MYj/n)S^1}-R$`2.AUŸ+U;]GL*uen6 EOST>)2gnV~Ǣi] l(km&+xU-ڔiN䡡A5}o(:/R(ǵwqWX^GYqܑC ڪJ.;ZA5cִ?\գ4ɮ8ZU 0PЮ[tͷ, XG\ z ܪT{&[RD `GKRcN5GxzPqIKx|5 *%O=)JU綠:p@1)hw 7|2ziTG#AѬ%v<0NZ xjɩMBk[QFvrMZO.rCϡjH!]Jnxrݘ+][ܨR)Tz涊,i&:n]Ea1xv_Ȑ&('/^YEܭqo!7u\(K4SUxVח`FJ5\h/Nw @zѝH93|Axv8 K@Z+wm-tJC(#} W [KqJ湟x|=p@cik1xύ lk!ht@M}Oڎ|i$Ji7F#]n+ Ԏ4fcQZJyZ"4]U-gN][LcJr; l]2RFƺTںi-"ΪoDL# &1^m rBgƾ*o D!@nzֲ DW:jok٥U#Nk;;WWVw5-Nu4dx_GBⵖO2E$z+ZM4Q\' (gTFq8uοqͫ]"fdCdO r@Ғ9xVo {5NM].VBB$uw> =͂^ D={GC/<M ÑۘḎ%7VF r_>[^iyb8dD7?\IB \i}G 'E"r}(˄?p^>÷Ϧ2gmBiZpP^uu4W#KQ:܄r {t߽sK %=Uc<5KT$,y`+ڕv C>8o%K$nb牒I %Mjv:ז@QOVσr߈~%ar 2wzWj6z&K'`si:QE_q]-V. ~<s^>D}Vܠ{yrt"0R2RǾ0oŕT38sV[iȑ=@\ܦPЕ6I,#=úXG+ ݨ/nEӜ8JEAbOY W[g'n>yv` |UүF[\@tF`V 5GUH8l^knBE k'-i nsIDIF3/ Ko;oc\ǃ|oqi{)c3TצҔg4Dr>SxzgQ$pM͕Y"~`MH= [wmH{VπG?,eHXHfJS&즮Vblⶄb8%E蠓^IB&gʁ[@8#ފtYvt1ngvu$duM{o"Ya+HzxQ\lD9Ojxr4 pG5{")B:9t)i;\aU4ZIJ;[K { .|a]Jkhky[p)\տxBu(ﮡ0*MzE)@u [A$d"w!jǴ OjtžYT^+WZ+HUһz\K!0<֪XiS=W~&s"-6r,tLUڠ\*ʭ#8+cpuDƠ2:Pg$$rqWy=RmkEvD G$WTa,==LܕOt xnT &'H#`c54EA>x6EbK9(9bfEE*kSg_yr$TGUO<10jt'VF.u/M!6?Jߢ?!淴aPN,GTahu$KvoۡWD+ΜyQ5"*`Sq;=Y670 m~ҕ Fтo"K0HA9w=lQYqoBRw dcd=kGu$+#7z l/,D)I$ݎ:v\}hmy(ITkĕX9 ڳtQօۈX}kjt$WSGi*?s]xƷ5ಳd ݆q'-)M{v^ n7K)V<8QEu JE+M ‘  IEr^'zKs49Ghj+P6 Rw;Ό O.GuWv>-fS]k/rHty7B|;uzLC4̿,x>7P}X+ZB1U+9Ğ)yIugО5Vl&ᐠVϋ|+gȑ$W1F:v53Jj/ jmn+ah3gW+0o\^=^]_CV6XER.)e$/z SI,,+;AѢд#;XxCu.:<_.1YU8aڼjSn#U:.rl%5 + [ER9s7uu*GGMvtqc.2UV"N1np\7N\el'ífk)ipIV9WTu)xno"`0N2>>t}Sd.6lgV^n<ЮT,R6DYcd` ҼCYAЭש'PԼ=92 wjPtrcQIŗmnY-ϕkKH#14]aRw/${WtozuZe( ZwĶsry+Sz݋dݟ^٧NVM"w@̧m:Rõ$ɌKޭܫ,:G/4KXИ̤P>+;μoR:KOJ'i }*vX^1!eaֻO잨42xzo[vƴzZk׮ciDR@cUN)IA$BF p7 [xo!1-FN8I{ kwl9O yjݚ4u߆zer[A]BVW/f+T8#}שQ*lH8-x-{ox)s 6s^V68ú#܊U:V{W}jsߖ К zw7}9$ۯ9)aE7*T Z #ypr߀&𕷉6)Pa]y^,Q)!"7o{Y!&Fn'mZȄ[hH#O4cJ(= :{i^ ܇1yٽMPGW)?֯2 Q:n[ Ӵ6믤ͤ &T4(mliպlR6`2@'W>7՗[i_hqN7f)IBǯFfTUf@BHQe4 @5QtemH]ð5>,yi{[;tH&e)ry{VΈYdwӵkYN fic2+STMjP&wD;_]e%g/+HN^[^ a9I#M#;CD2U=Ȯ:]*ewzZ_i,(#z(JJ627%sͼqBַ([z?|Et|6p3(I]TC 0rkGB\9%bXmb"=Z'!V^2B0,kE'gx1ֲ%J%7#Ĩ, a]9)sxalW]7ȣİT(SDB攽+O3kVww OZdvwm֝b@"@xu՝v΅ MEdGc(,76Q=cP(((((((((((((((((((((((((((((((((((((((((((((((((((((((_A.'8SZռwmR}FhZspuK ZPX^H2槹4Z-B!ݴQn[i$,#56Jux6G]-&Q!5;_×׺{6;u Z˹/pkuo7sd\g -s޽~*/G1=o Y:FřV5xG['`p韭Wu%ivH5㵥*>9͊SAynUׂab [*ҟF1hf[n]r7*m,I6K!w'UKMbFK{u8![& s'eۏ7Wy붿d a5: D+XmOJ7QJxjA Huf9?j Z敹ofj!}`z(]'^By{Vb|L{s%K{Gcy^G]s*5[[Eg F9IZL$#֛$k22:F*z^u/JyF@Pg=jK;Rr/h]BĆ? ھҭL,Q/5jLbe C=U ֚2inK img㪞 ]K*z0x6~@b^U^$ZCg$F=Hgωy2} َQJ+cURV +;R8{uw%@]¶#/Ԋd94^V(mt2R1\ n>_M<3q8ݏL׎W] )Nn.[HV̒!kA ^HorK&DYLW_X"S\--<ɥZ[4n|A֭ͼh-oU-g?s^ե\4!%&5M/#DD']rE k :W)7I-VW|?Mk:}]-+U\]uSNRG+oc09qoij!98ZψBQY=1,Lf3vUu=^2:5=XU[V] +>,~&#'cLbOeB\Ro@!E>kmʉ%D,pf(kzᑖCn<2@Jvlr|CՁ{o im~/ =zȏ]TJդxO/fӷ>_x]z_d?02nGqwi: "qR+ M&  ]d{c][kze&YBu_ہ>Ė;dX{Wg՗羦>XgV_Ź)fXiem1UC\\ͫ_Ck+kJY1O4OK|!34 #دUɡZ5|[ԣ}Ȍ@$[Z}qZKY>) y8+}+y/Ej[궭os6{WxCRԿXIw$V':ҭ7FI\˝/4f2e&dO3!|fYFIEIgvUס\l$1iIȵF|<m6;w)*+SVfܕ02 +/gcvҠQ3jM鵢.iUޯ?kJ}jαCCw iYpfŷo}^j%Ư%5TӍ8;Qlc[W8+Y"5׈VIݍz =i]w#?JT̖NN.:I)-gu8 gk;xelvWiG6z{-g7g^JPfp:2|9K?#y9f~z>=zwcp ceɨ-^z$,9K۝ 7쐅pIRU@FFqhl8^V> oo8?|sWN.Sԥ&u0T"m [^ %3eG]ԥM'n%Hc-5$-kq:9WⅬi0F][xa'llt+]PI9V=(3`((((((((((((((((((((((((((((((((((((((((((((((((((((((~3 &KB_x]$k[;˛!`RdoTJ2䏺x\'!KX𞝮6q'Ӄןx×kVO -fjdOl ܗfi:ЄsƸklEg rć5 u*@尼 kL4#VMVMF╎W>1LAk)=[ 4.VFi%U9 p> N !;KٯlRAJx>Xh"%ATt[xM<7܍GѮm:NkO S"A$m Zƕ(ԋZI@#{}6᷊'n5aA 9 rikvZh6uGV5G@񝇈h'\; d@ Vgֹ\] Xs8]С RoS6cԵ iVԚ7ltǴrrMisxdU8b\|k^7|B/~Ϲ!k'đ8ʰ^i7K`_X\i;(žFY&Ύxyep1IX8{ %KH\q\I7er;_wfI18˅?n\}hhXdWA$ H!l׽iJwH|WV"iYřSV<=aKuVj1'! /]v@, ȼⱂJL>U;k[oʳFE:kxƒ:uw2NZiT7̮ƪ*.@b0tIKKR1>zWxOЧ/!esс5jɩ2*Ih{嗈=k\ d]KdF{f[esHé*qJi9#NnlvF1/fo$Rp'z>)NomBon湯 iw:kF#gzJI[4&wW Lg2iBIt>kR J ȽEW|chI)}jߪڂ<3}B=qV+r_Ar5|IӬWit][kvkqlۣ<`&7DJȯIYe<67S")X:B̌a9JVgi-ër:gPHxEUmB'x+ZnfFjQ.vg5еKN3m!{m:)dHX]UFY${mk#FqSOs]y8MV/^Gc75ҍ䖦3֨7d( WQ-&(}\|~4jC7v 0,&yu4K7k³tZo4baHK%-#6hZ@))FNNNw#KnQ}!)|G O iga{y'm.\啚 UQo>o֞#ޑ2Q׸:#z:}\Fħs\^ -FP PeYHP5^3kh2`/8ZΔ#9ZNÓihD09ԛFVNW$0oFXT[J2I"S)o{9 k=SMp RE +LF'X%X$gkIfsRoS_ƹi%`'+%˗ʞ#ЏzSWkA$gjE{p?N A/ IK#nv? ,R6$%uI.*ZpT ok]H`OakhvלIWGӨrݗ{wu ). (;]Glc|:e4fy]ey5RSj;QSSalƃwFej jchK#7B}+[:3DI I\_[j](\6[8pnoR$̬zDU2#9Ak*$ ?6'LHȮcSϵ޼613#w=o2<x¼XnFxf88GֺφzPkchE*7^JTJ匤fzCC "BOR&M0 הuFB [c,JY`b6tmSC^Q/Qod \DJYcmAE+ I=@U,-2f\$|ଔfv7Madq & _Z۵$v ?JWjf忇MqՏsFoޭ}9YϪu.>7Ѵ;KQpCT5F9rSs4b*^yQh:lRxUj4/Rju$RMu>(Wc[ ;~jS]vU[IRoss+tBa4']Ca#Ep` x2R=F+٭jtƷXrҺ=/SWݷFטjuD&4^|,W, ho o#͎V2zAFsjivRqc&V_4Q;Xٵ}^zoěxs]~5OwQE62 ynR҉A lA z ޼iůfȃ^RHصpUpk't;m ?h~Nƾ :gS(Na;Wa}N~2s3\_ \urHgvTc6Z\%Hpb}u0 @̹$Wk'QҮm;\s^ui- cNa]XZpܵfudʹz5uI%&9sªC{-mwe?s~"SH̷;8@$եVJЈ({۞=42Z\4r)T8 Q$ȃ?Un.\J]T1:0^ye0ۡې9cZ>*z]r$|l9ǮjÏZf,R,XiS-īUNqZRey.(.t-o;fn5##5\skuQs^s40׳1עtSkGe͉Q~ZW,K$9A0W|Hm;`q"3^ueR:'ݶY"XtPoQxmC7B5k᮵-#ۦ}+j s8|Ji4 NwHUxPegڶ<\G}o,av^JRJD3^}}iH/-%Ow3A{dD8a^;o Ꚕ/4Pc{2v&rZ+ei(r#o]X7/W]^M/ _ǫq /<36PdjT# K= " ãuSZ;Ώo513VUTc6qmfnLlVpr8y<@n#5~waIlwR)kȮ.#啂F,ǰZW,uq)NTΘƛ59A ڰ#Fe<mFT9oRwcB"ȧȢc$h0IEdYGmi[з4q %eֳ;$p{ױ̩wm"]Jr+o[+\!ۏ\E3},KiϯPA#v''- OP-9La ׉ړih2cl+,|S^ fWS¥˭&4 &[pz^mmVK$Hɏh+ҼC'4-fڼ/\t#݃&xTa+ܪ-6u(nPadPUWL]6e;j>jl?4[Xa;$?h-tI2$Ez?.|GfSC\>SPE#eWBTsOCU"95}ܹ=-f'MgGs\GRRp,:%A?y+amZj|q*^wsC,e-}+t>=. X)˕{=̡wZ~56;|{5fH_Q94t $մe-'F sg8Vk<Kx~(*=ȭ++wQƉq'!Ozd7J>S\~)Ķ<8tVdxwÖh%Y۩z'6ڑL-V" Wk>0uKqq$1v".!x?xλCIu<Ж;r+ w͹[:ޱ<\#ֻ_M?n߱A+Y$#=Zc$[LRBJw)mNGuAebǻlc چrd=od98XOPld=qYoP1 ; 4dr=u9Su ?[;H`\b5 S׌d8e ե> @Uy8ѣ.{Z\q^#;OayOWx7ڵ#@DyB$h0+q涤|Yw_[T;sҽ%;X7FaANعݭ _TK+3+kҫfүԼqlp ER&w?݄.J($ט/P;0%^@a pڿ^{{!\d+}׺t>ׇt)@veOR3Y$YRkDHCð5v-^ڔbDk!I=z{V8SV \6*Jg )&kB,rIry4ḥ|_fh*x}^)mn|U,}u}KybUӖ0}kk^,Ġdԕ'Fs*JzMR5tdD;U5M>=VkY~䫂Gjk|-7%[VJ;TjgWf!i{3*|hSiOrrB5T5 vn3 :\2yqj"1kmt r$3p֕w0RK /-5QyrBn^-}n$e8"/7{hMjVGEIq]Ikh:il,!-cvDQwZÞ}t}5<hWl vbZz 2'r\ۜR3qxQ\BGزE2){ןx3ăúkt>NCWd+CV9mF D8i[=pI0;Fjƕ>t-n^9י􈭄oHB97N4 bKtbcO\WZIq.?m?ZokRkڜN6SpיoSSF\15 ִ8fU%}4˹P2Zz0BA]&.D9/]•t*Fz |u⩼=1 '1mRrڼN*icW5]zޕruҽ =]qȠ` 89~ba̗5"=y:5ШF#9oJuO Wj? oQso*wbnWw~U9zzޙc#օgZBhzdVwlZ+s>]Z4*FA\և]kSіVUۥռ2)VƹVz.v; igK溱QEfOBl=j`XDeRkkǼ᫹#F6TrWpiN2P\8SuJڜc/[Wa;~C5S>,`y2WOoʷ.Y, * ;{ uf"^p}IJ*;l#Fcf펎"y z;Z֢ck:ʽ+v涇Mǐw+Α@Q:ƣ3bm#wGQ]MІ91Jm -my$'ujMF&t,`7ܠ`dwRooi.a@{>J*.h7]n._p?GUn-YSS7^ ڊ އtT6XW=ʼnFj39oZ=ԑ%tw.?ZzW/Vcy9RjTކqq\@m$%/27vb:6wm[ic!hXѬڡ@_Z_h9]1ָ? xO 3[9ݰ}j>!6fֶ?rH:TcJ<80iGMg L_m)dd eŬ3m7@sFcBl#(P32ָ/Z7P*2/>oGY,w<"zWľ$wW#AOA^uUcR:'(GX'8v!g;Gd1;~ukB$()һ朢w1N6{q$QE`*^e^:ͿoqZ=A}$?k?Ϝ˟\Uҕ8ߝ\;rv)#}  Z43Thde  Y kgYaI?/B+TD _Mx;Hcj9kRZwBQYy_X߭f^ g޵>kZtFzⶵ WQ0NNi[y6ǹ>JnZ(˚нEPl,%Our-\d572NAk54(Š(((((((((((((((((((((((((((((((((((((((((((((((((((/UgFOJN&0!I{+g[rDFREd^Ӓ!KC|;wum[Rk8AZEўZ:ulqE'yܥJFX?I(""՗]oχo,e{^!]˟–}LB-8Qt@MMuQڣtũx)chP@q'|+Q2I HEPo1@b3}aZ^ S^|VE5r$^w $lQ0]2GK8??I5gOV#]],TR srOs9ErzEh9_ al!5' Uf+dג:ƫu[@|`Zuj"촊lW_,I2C$6[&ȣXvQN*%O+*Y\ymf2h0=%gϓi2g,wg׽z«ɤš@AMmVkSIѬ9b6F>gw nBr+t-^ŌWUׅO(D$}h/ۿo]f&6xaUzkkw4=ħOk_7eȁ#tsƌTfH#IRX2N{G\mM%!{FѓYkM}cRnihtKᾧxy4m%|0o#wymw^NEmxKn0AZ'znkZvW1⠐zk 2q:{bvtDUftIw4T6qJ.V,XJA$ |UCCY\#P0ak{FNH$hW!ְ~kwX#IV9KRh.bYbn© XBusɮՂ֦n-5(:FsӚ5u^H3S8uf.dLS?Bga!%ǵu`#(nevSWVEm*K:yʖD j xMeٗ2I9E9_=4;W+j4Ӽ92)zW;[N3Km'aPdIɴ]u_k4k[Xn$uVn"}2.-*Gٛv1Ĭ05Nԓ&3Dd ޣ5 hi1-rXՍkºQ-Ȯx}L^ ֍țRk+uh;#Oq:Q$JR\0T_pqG5W:屑Z>YKsڮ^ 5{aq *"?tcwҳ/p5^)efhd8D+۷h+_e mXm> k kyw~uoig&Q&ܙ椒Ez7O1m@'ҹ^L޵ư(U O>?3޻*瓻mE]nkM&htȄ4YE\֧otgș̞@=Fhw\mn-2R`Zq @9<UiuϜ\J?wXE&3{V/Ug,PwִaE+-JIWKSWlEqKGO7# M֮;RXo1uў4 L-G!.[ twp$]jKB)\յ%mMs kv?޽EƆ{n`{7=/Ú~[U8:mjO#5(->adQxv^ 1IWoָy2{wgٰKyݳ w/wn-vH@=Fhnv/-e[(rdhI}7M[{II޸֔r$Ft"IũXϏFYJ8 djݻ'n{V.󥲅븯5&[hv q9pW]j(!zo^O :UvWcv`F}ᇨ{J.j?6ɨK&KMmj@z>3RIZ\cʬ-axZ[XF7Ϟ[i"ʡ)i|j譧e! 7՚+OGOUwq@* U'%Sf\4)8ӾN͸ +f_ڬV~v& yb`'6C\AVT'=+k笽D=Go isv_c[K,TQVbxԆE#Qmgo5GK$P̈́*y>]NnA|qNUMrnД%'s>Z=mfm&[1C6Fn. -'<}tmf7!T=:~[O evsZ~xF|9T}jwf>DEk&3*Z8Sqr=E'hb>\k0t52čOcZ>_#@#)iLn晭x@Ek $Yi+:a/*qx&p$z5>iepA"@ӯ./Ymdc̏R.{h>e{.9^T<5h.<e g8'ֵV$tWE"!Mݎq>xm~o~.;xn~aȮ[J 64C}J D#>q`q׬V5LP끊5,(ISUaO"`$1v]>L6:`qS 0@?ZT乕c엯ooݙ::qYaI6թ^Hg\ ̌~n91ZνOo$+ݯS͕'zBmQ#ujGnk*St&R:Kz*(DpƱF]E/ ".jr:C!p}a$ qp%cc?ʽ~;d.shUҺJ<g-#I8k>~rArJIQw+x;ٴ $Nq+ 6鮃']]&1Z%i㶌+H: H."I *"R7=:[}hGXt 9s٭lfu/ lJ°{m/ƅvӥ]N PSw9]ƙp6=@x]OOO1?V~4Sw$RCi3zC㈦wFl*pEXyX]@1޽!,l|Q[\][۔0cV4-Ь ն֏%ؕOz}c|^ 헟0,O]vD* gsdֱaw;VO7!\cF^u p=b+yңn8Mwʔq?t]-q2 X Wm"mn;XOe_|-i\EὫyU6 .Z[ᾫo>arvƝq'ƚ ]<[ W '(XղI O.H,g5'kvd([{ ;Wna|k}À» \yR'×ACV3ׯS]6GA$זk? oY6sVQY^ m*/VܪA%jחxƸD1M9]չEp 4K坬xϥ%֓i [ʒ :Y5k?Ko{ELᦙ5,d2lƻTWO'3S'vgPǦA^jv}O*=׆Yɧ^Ko'DI2yL:.{*f4b@i3k[&x)9OZAKsgul$Xv1>3[;(e~㷝]X4 *+7Q*|fkr"pWk3eg Oúvތ7#UF.2+}rOf23WxUWf 0,w dFVWW\+Cn*N o?u%mX9 ]5~\ϠU ]A[VxѶ7~hUA \TIM[SM#i6gc^%iʱ4Zuчp5wZ5v[Uن u)ExyŝQ9W޹' S|5QEAEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP϶s^NI#*ֽO&ol@˜ 8#F >)mM-hac9#9T黖E!X&qj$m|d0m~Gh}d'׶@b-a\:;KaTp_ t[n& pء7{ףTSH!U׍-NN)3޲Q*n[uIX_O]WMc*ϥxτ5[{oGsp}_bԞex[J}CEԜֵg뺧6=3\Iw&u5m+5:)FgBnRpk y_V f"tʂTԝ^=:+xH(>KcpZTF%r8-s%N=+̣vy31kZXwQsD( YvU%I8 uយ4ѻ*V(ԑ^i[Q=*=rG `fxQr%>_yR!r/ %gḂc>L<.f\fp uñfrz MM#NqC]ԆuqEz՝kEECRs3xOTܙ}kӾ%j'RC8G1^ Z% ВlUG ieTSsž/O $j#󧓐Է:Jꆱkҗ6k3~.ıȥ<=kjTgjHdq1$j0)Y>$mzxYV!#+Z4]f&s::3l;فV4bw'<8OD~@q4}=0Sf .y5ULDռyi< <̧b/y~6OhͿ<7Y«S%MXtdw=Xi7}" Usy#)A3&HGRxv\hA$m'c$yVBV.7?3WJIT|4Ѧd17q]gkZ-ӮUGsW |MRT +48Nu W֫}g5,W>i g#iխm˷}kЕ#VPMGN*Z`>,<v nVWX%D_\W{Y.c 4Vs*)t 4ִ lzko[(}P{+VܠڰRGIjkdՄQX(úa+ڋiS%}Ē6+vqX,nUxiq.WʛS?0h|:s" S^cCKX(6ڦN0׾_ɩ5aˌMu~$!t#xy44r~v9gq +wQ֬vy@ =R7(6̏NlÖ'k^#frQsZ?uKm z [UI ώ@-E%];ZhRj A\yK+6B#7CգY.52L6!FCIri<<\ƦyBc3 J1q$pV袲|}"$#vҚBS1~<Ӯkt\:7q\'F+(\,^olx^SmXk1 ;VMw 4XnUW1d{j0rFr^q_Gm LǞ:ZZCF!N(y{wiIgbV4$,,TT:'ӵy^c\ kZW]IGQǭwrFPЌE =JiTZወ5I 0ܱ+ T2Jd¹ozE N#T u+:;ƺ))ewKCu{=26*ҼZbxǭu? A>w,dh@dv9$zWq\s7keQ&WVpXV&5]8#j:vP$ Q94SlzAՓ_4Vi8,FQP%eY^Er2yE1'xK ,b9뷡^\Оe~So/O8>7F9x~Ae[ %`Gn+ӴXdFVNpTȓ-2x%k}G<Ŏ^^e `CiT*Vrf? $Xnav,CEwv6ci cPbksh7nv+l C5h+>!Z_ڡE=VjQE# ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (9#/I/Ka~a\׉KIdߌG^/?7r?^4\r;3/ 705~ 7:n;tUo8⮓kU=tӳe\;Wƻ0-TnOxаQ޳UfRź: յŴ-8U N𷏯u}]m.-}Z.lJ{It{9\I Xq]O2SHg<U=GN[MJQw#HpTW8ӍѬvχoyDJu?CY:4˫FZxSȀ+S EŢM{L^3f 5xwZ%Ibۜc^^[@$c\m(=3~ }_2U_ᮺH"ĞqR׌X5CmDemSxxo\vr*TE<ڷv3`Wsx_qjBJxn][)4]x: s_uir$x+{K$c; kQY&j3tφW ܑt9mLP#@ AN: k`MTtx쩫ՕT[chP}7:6k<d' {׭|YZxvGkL U]F.'EȅǺWM/ nJ'nauM${-]u&.0Ў\83DQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE|5X3ˊud+Ҽuik?np軣cux{wGgi?V-I d}*~ì=7pOy\.Rde%X0 -m '$*R69 x=SJ' ( ZZa >>DN1ǖKmicw\(}bNSa'բ{bZ h\Gm_yŹ9f>I8eEs/ ڢ"%  )E-0,;e{M[lʟ)Eyj C$2y'pT躱rJ|=B|w&f1[QKu fX)&ɻH$R+~5"<vWx$[׌Vzj"jI]_jER6/,OvkE4Ůf^~n+5m%ַhp+|CV4"@Q0=+ohW?g|wXvk9qּ]y[9zQ1u$,x_jmp˶06ƞxqm!x/^S9G }+< h cWuZʅcsz>~.`lmenW_|R3YmNˆgG$aew')êQRL!>gfmK!bA!F:mV<$f=O\79M2!wW=8II>Ur wUCek`cysMB9좫ײ _a^Q۹5K ns+z5wKoGrz Om"FPiaJW$cWSI5̯+1,[k*XŻRYdLOq5^#oq5X:;O̳34hwv,<ڋ4GHkn\ FA<Y mq7p۷k3rz#:maI ,t0A7}qV+q TPpc$a+Eaӵ2@b@.;jFpM:W3]i4mR*37ju|"+x$Tx>wk[OQmt<۩$=ꁺӼaoDa|6>R /oP[Q$1!z{?i}w1u=SIjh#~yҽBѡt9,{k'W7[ ^YִdQPlf?f#5\L`y{$ir5U{$ b-ITjL▹V: 5Af :#9(-UsсEIȝEy5+Q H>`czkR=1jhl:7 #5zVӶ!pk0RiڌRHx@=+5ȆN$.1`x[o^X!y@K޻#Fj]\CT]֯"{^O&q +tV"@|cW; L,({X>V-J7i'\@'d\+g\.5qpG袳S>dhA7JTNHϙ59Jv7MOFT* onư_IŢO]2ƣ'Ph8,0Ιrj+1I4A BHM޹Qm&+j6trX8ßm4*k2F6EzȌ&Ǖw!{?ysBKKٻt_Me0?|?[7PKL|}l[`?z׶-H4i-NKASK\ʵ= &GtU_E0gu l;95(}aTbzDkiIʲ>/’.Fo3}>lUQO>Wڱs 8ARJi6VLpĻFOAQk7pG#P76KE^aa$^Жvja9rX gDm~tPGP}k? hM1'a[hc-+Irw+_j6l&[cPiz YH:JFR ް<7w=hᔩ_S'RұZǁf2I~mXii^ULbH2I)%5Z"9ׁ7;z{Wx&\ H]p*W"59Bp2zR9٬|;;@J5IGvW6#-%KOxRhyh_"ufYc-vk`$oTg򮚴e{DFc:37Ey1jޞ+d,K^O.{yremGC^"v)MhTV,# d^y0[ƓONKi?©^rqw@{iaXYTWf_-"BrXEۓ-+hQE!Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@xP-ţ!zvq]%fIXw? . RH!' W7V\ҳe᜖wSsF W[xNYcQ'Z gs^u42DjZJpqVVM7W3R\¸'ѹ=xN'BmA~7htK/ ]ka ߖ$@;u't{x! GxT=Q5k]ݑRNQ=XYa,2*;mgX㑎K湯3IcӽvQ{98ky&.!ybFK5g*uy6bN}#*Ib7堵ȑ\ð]Ft3ڕm3ѬE26[ f)kcc#]=%ƜzO,2 RXW ?I,.{U| eqsf0T9g=+Xx{.{sk5¤yݢ+9U+zWS6$`n ` hHB+W7[BOCNUR-ZLkhny֥xku6P#{ud\傀OUz*Vbܷ#Eb@cԁ$v'Smqs[peNV4f\Cꓼ6),ESC˘U^o6}~GEFսX /jONL*^R0dnE`xO5 HWKC"_ۑnKe+Do3kyf+Y%Jaԣ)A,m)-O/'%%gVQwIh`7\ c]_vScf~ҵX)M]r\Z&;φڝ4rS|.BGI^Ib5z>X)+4?nἃ [׼q>!?y#*פmfq:_$disׁo"؜=[]F /nn|Z3,hvmo8G$xJIOGJs +kZtS?Ju#đ8WosM0ȁc{ս\uXçۤ 4U-WvW rkV;Irڷ.pOq j3*rZiwl@,.8#x{Ni㴉e';6貴Udt`bk,$؄=TVKoXId2^=iZkʲ^v}e$ ]>Ǟs~[-v%[Â?KᘥqN+fMg%{_3z挤 h3sN+HHK=.!!q x3FX`pA+~+ e!N17'flG"+- sW.~ڗ9׭:4k0,=܀ s>no @C8ՄO !" O*sJf'B@̲GtȂ7h?udX_.%dVhPkŅl-շ+.N'OLe6d{n0P#~5SK^F~q[0zOC^U{z }}/nJѫ%=f Ď vލ>ZbzT)vrRn>j ʬXw] [W"Kl#+;(qma#sұIs.6f X|¹NA]7k-} J7@qr1M& tOInL`emu-,24r/BRYDAI$ ** J Ɣe;}:Kc|giflɜ6 :Wkե&Tʒev+Y{LWSޘӺ8TN2}rv_#%š8${֋673y]wt-, s I*DNcQie=Z<;kYƽMCY"VU(H{N{oumNPd}* _ZjfTW,Mv*t52=si l$}fJsI hZxA 1\ij-Iy)"8UxŲ[{ ^cWoo:u=Z>K&-! = =׭NG,%.k3VܺĊ:{0E,$s7zdbާQg .\;Wяmȯ:оX1< +)½p+jZw&M{R$;W>ðܒYiֽq|/uy7x =i(iM96KOBlJn}QTOkEX3j[kQ =/ĉm@BUnr}%p:Ex&k-J9k N3gVN+Cbj~=cYT/,Ft a?o񏔚w[ik*lVnzאۙEXxk^F"!%vx5wxkBź"0G5Mn!ݸRIjcOɥljEkc$3;zgK($`/׷XZ+( -щ)3ܓ)^ӴVfTsD9O^ pû "SZΗo7r&8 a~uOHa".Pe9ϸ:񕦂9Yy^yE}" IqLF0 rlDX8dW"0RcֺmZZD*8s _gm߷洡NdR{\2,rڜCzuz-iU6W= Q#Ac kZsi:˰֍wKҮ-7l2 |9,M0m #86ޤnT.P{4pzug5/Zxz[o< F֮xo$Ѻv{.Y^[Okm%vg^[W!5ȃm{[Km6Dk.#+Bz%^}ԮG ٴ`X1{Z4#Q=Y5V=O/#HAc$zMFc?\PB{15Սxtq,M#TQOa\=;xGj[|}uݳi7p!A}:. ݼjPnDԓ{sǶHe,VA.$?P+'l^o Tշ\KcU+_[4^j=3W!m&YTpqU/h/,$S 3j-?ϑ] j0w[}[jPw0år~)fkOon!%]eK(t$I&XT68#In2J\~ͻos]M8Exφ5}Lw._#5RR{z8)ʰ>Usiao jVkQH((((((((((((((((((((((((((((((((((((((((((((($kCBѥ׵("!wrXPd+}Eix{[}SKA&Opk~W˹_St4nZFnec#ڸon-S#+Vմ洷0$f9W'XU9xTog]sqs3k1C'z9:Ť!JrGJӨv=JÌËRN&ּohwbm/X:z\6M[X;D2IACI9%wr }@ !@'f}6rP}jd} 0Y8N#$vڊzg޸/mU6T`o$ۗ= ឨqp!H>Ǒa>~mUĈ* өİ‘ªJ}p>6wwx#d5uU_#A7SN'u b ү'7&/ M12s׽W_!-Xtǵ'Ϝ.ݎrCr z恫&v72 |cHC;}+zr]#{+2[vOa\_Tj[!1em#ڹ6zFwvSSj_>u4QEbY[P-VGj^Y]Y"hk{LJ`^ ḤXy޵JF6GF4hмg dQ ai gF n»kLK]]} y=Mn\f|}+N>YQ\CY ֣4.p}+N|O J!\DZ s.m&#Eh1ERA^]|4F]1eljPpBftkyt;ghf۹=+' \[6O;hVG8Ώ'?S#weկaHϽvSX[\`FuxJԅ1FMwyMUnE?݊A4irH,Q)b1;ڎhϞWۥ崐)"85? oEXfҮwϛNS4R-f+spzjm/M3T-!4M2+D;[:07啹.ƫmN*b .%޲<+M_RKK6dOQGoB'8 ѽ#?o]Cr>d﹓c+'-7#귆DJd2 SjV儗1!Qy7X>h`]5U"l9HjxoBIl1v[^Geu- F|ܯsZơK=*10g+nmZ;bhXcq/FƮz)` eTGĚTEwQ{=+?b^~=vg>^zti5‏1uNB0(gQ=h𾾞!.kb?ziڹrQ^M5dV_"5{sp=Vع5+k0},Qr,DUFbY؟Rh𰫺; OHK!cҽ.+hiI&_=&{Gs^kxV]N7o6'p"8=0(6ѝI5-[đ2)Q^YyğZco#Bw3)>՗^êi,5s WGmr|QEƷڣY`X,:& ^hp|QEԧBs:)7ػk>(ja쉮mb[ya]/B=(ʕ&hΈr[EWs YipM Kq*,8ՙöVwC0pQExkߩ<{xu|,&bkrW0ďD$7j'hbqEaRu5:*i|A{]N)bAel-@b+d跪-WZQPD@x3eVvBx/Tm)X$ОWEĹQ׵tnw {Wĝ[RgN8袴ӄܕȫ&iXrT EIZM+c#:hz<((>h_5(hdmc~Q^%MzjZI#ј4Q^ax|c{_HL[+a 58֤Z]9F=qE֧EpowTk2n% c֊+ɂg[oOuw v|qJ"OM1h \#&w.%OOqÅSOz;q盉<ݸEr6aU=NM_CR0WQ%6tZF-܀3ޱ'$+,cv:3E)Te7MM#:47аQ\WLx]䷓I43,IRZ{jB&+%ŴyVz巁t-D-l$$|ǒk+*9iIjm;mzMIaFؤ࢔$gjCs1VCvzj(\c+#:MW7zmo$ ڊ*0RU /^hÃ5QEF"*5CێMN?N ҼjzھŠ+ ѕVՏ_/R-_ZѢ&ж (aEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP endstream endobj 4 0 obj << /Type /XObject /Subtype /Image /Width 293 /Height 102 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Length 10578 >> stream JFIFC     C   f%" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?S(((9Xbiɮb.7+?qᯝ%C^TiV>gTB@P3\/H\qMd|[k:@41ޢ"~RZ`?Wx\u;_f1[ڻێG5ׂ~!"AKOZOMj_յt88 VƟ20kTO 3W& i>J  EJ#9n)YAdGVo8ʋ$1K; mwJ_ O6k&J2?ym\wu{ vIbJ2p=*5,FW>Ե7AX񵇉'x[,jܭ߃&B yW ?7^Q-a4ן|C;w" ևMgKs-ޥET 57+kU%Q䴧E7=\3sppsŖ~&ղsI)NA ]2%TǕ 9e?;#Ko Ð⳿qUxFu^|%Ѯ%q:ye_Rr-O漗Cߌ,|N썝j]zc-u2yׅxmkƍm: KGhi(zu1^$1b_>k ץQ(W3Ȱ4Z7kj= uZId'}?kh쫌 Z>xABڅCS"ΰ(TsN GEofO1_f9VÃ!foo{ϋ^=jjS )T\[m,xx:U\Ƨz؉P>e3ⶱ]hr\zokikH"#ҹtkJWGG.T&( (0ckozԂ8`fn ſbf-YI/oeno{nrm'p_:B'_9ּgW1" 9?|eRxJEi dRtM<% xZSRWB}NEtOڜ:W6vI,4ou*zn#g7  r=(47z67_+tr2䜝M,ËL;QJi{mzO@bZ_':Hz퍩 _\C'׍-/$p%#=| x&ӯ-k*#l?J&v+\`cҾCek~<֙\Cܛ )%x'9\ 5~yaU8Jkږof֙r6ܯ_\fBJwBy¾=5{?W˾Y' ^kqnnQGwïU>]<%V8r05$zzðx?ۑ]M ÿ5|pH폆z݄L" yh<~U_W]Zz:U[pU.g_/NǽB.E9sWf|[~(ɶ@IWC? Fkþ ¯ ɦir\3?F 1^Suvxb-.w}C]'2xXIk/&_&=7&qT?)Cqj{H/Pǣh?Χcgç2&=`SEV~VyUU}c.]/m̜ U.gvJ4@|`2k6=|?ּKυ>/U[v{0H?Ҿ?ojv>P8z?UQkcq++Qvkw_O)|79d6I ab )վ0Wv7n. gڪYgߍ_C}73&ͨqN6(b~͗x)ȱgYIm׊~K{s)xG8=}Oxk/= JS[,4,C8wǎI>|-轢%(xo} R*MZa;,Lz8z63+DvM2KwQφ_&XǪ]Om0ލ8,|vMq -(nwrX/ĿuHC NHXzq9׮7ͳ 5G PNߙl'4Y0(,*7?n+^]#dng5CR90g̿_LíGlւFe^[Sm(l)E=շ}41>2ёAMzV_٬Vxzt19'jQEyEP~> mI-P=@9#|["|Ta 9wn?)>ܑ_1j6A*G _aVWLH_1jƪW~YX &e.XOg}!x'❴7ybWiqaĐE4a18/$66K,_~[Hu-V*C gl5bjkR :gKmW>ٯg J[ˊ78 `Y{Z 6n8Tޗt;ıIԎ# !ů-&ɓ{PF1|fY~7.dتmu|G񦗡?P5!g$`+#tRMC ?v5$ӵg5'?[kjv'+=pOR}k*VdG2JxԩQY(>B)W%ͫh t+ڗuwkh+qi"29Ez%*1W>3q0&^WmGA_P&#^_W~wi#9ႀy:~?< Y3Fsɪ g(Õbx'$Zυ|=ڱmm ʡ|V_dhf}ŅW rJb~}hO + j$Aw?_~5ZxM[%m.F-Žė ]uC]~Snfz\#x^Okc?:Enmd :LiS1"Sʚkͻ+wAgoa)VE}:[S/EҵSAC K(#;ֿA,XMӄA:U+n~-:dp޵̶$<@H@7}߅_ ;S;yP8xC+{*}#-/5XK}?{|6bU{nZ+|Vyb}E|u:Ѿ!U,㻉! EW_|Fů |Qoi%_lۏdmK>.趃97mN6H'نN!gt^\ƣQoyEnKVMϞ|6Uj>[_[[[ Hb5<}_r||X-r) 75࿷<gŸپ(ԯfѾֲIG^h~T ;ן|+PYuYX!ž s$Uɱ ӊpvWbsuR}skσۈdӯAr %j3\W?Ή Я֪w]kz_^Wƞ6φn|wCUN:wl!Twdzƾ"UiJ? n]Y񝮭x=iSL l M^Πg>4pk/(T}EpaxFMC >EĺQ# _1\_OKV)-""kX[J rĉPJw}˜ѬPQO9(?JRJmҊ%A?Ju (e 0@?Z>6jWzWk+&\kA!F ^K?kzgtR{%iّ'XIU晛+DSZSKwY@U ݀qwm-,T}(r(^y?Sռ'u5ד A$`6=5ZÚ'ݶGp+9pJPfDBCH =d Ѷω.-/Ok7`C2c8޻O_C~=ydx{ź%:߇vkq NTz;k*Dv"~ <5Jň+i? s͗? K{mCVnK]DO n|O|=)cld2YҾ]h,k7WFrBI vRRq|O]L*s'Hfqmm %Kn|씔 yٿWaԾ'|n];Ik-rhލ^V3"ww9e^F4-cvkD,C1|~Y . _N+dsҹtN-EIYz?/"$<"|i&Xg(͟kWO_Onj/_} b0 OUt/7 ^}g4RTKQ8S?_گƿ_NzoIl|Ʀ8>'?ট 0?JQ#?7_Y2wZՏ2bLmߕon~fx/ eΑ˝*^b.Tf\y.6WC! aԹK~Wڒ6c6@JGX?3}p?8Q i!|vI $"W;g@\V('LZr:߸v>^sR? /iR6f|OX$~G?G\2DU\s};["alasTќ9 NaE>[ IMs_M?]?K+< ?K|HM׶ X+#oɺ/wVUo=MX^=mY~0A'CҺ*ZY{JR7#^kkX4Bxrxk?g:_ T?a/|E$TfwڒMyOc^ketό^9PVM:"P>F>@ #F*@+w#Рӭe)$=[,u]F#%7Q2dW&-FV^e((((((((((( xFƺ8Ӯg1*˾,njOx^hI> stream xYێ6}7s*SnѾmk &-MK~C.i'4RgSxC߱?`N 1}3?'U|%_WA~f4}"/dΓ>;lƛg~T08KAn' yµ&KHBf^ж3R3.qx9)0eN ɗ{(ԝg ?yd)<<}HSIg&Hf$ނC>d"`:d;t#McCdrR% L$':Kс0O,Mπ'M@äH#G 2NSubZk(jU'. Sp?h=`wPm}畟:Y$υ`$)B$((cwک! :r-uLne0i> stream x˖( y x:w秒!AV1v){O\?/%SL;YߡP$\C6ۼ ;+wC_ TNj?W:f9-4j4ҿ3h[a -)v{2V53O%KW_ 2QNu?$@ ϕ ?cV5ڋnryMm#^S^ڄh"+ ?}?.,* (^SL-b}]k9ķJz W+L"X I7+mfFv-ʞ;+ŦfTO sAY~|igO'ZsjW̷|Nv^*0fnn{vv3!zjz|piZp˿ߨŽΥJ~*nWrOϿ KV—d;gArcW=s$WwJ?m'BuުVrpO'2߃>{xd}"MW68|8L- JnCy&_Th8o G'C""D:|D0U(uONQ?VW KivM~Ta8rH,?|ƺ a2Gn3mړ2@-ގuʏzfA~_~~4! "?CO`y p83JjM!lUltg彤p 锿v.2_@ GhmWRcO~ ?\KxG]铣><_+z*BoߖT69PtYiG1- F宅 򧇼ri=- '1+bIn`Uo_^ޏi=x,Ӎõ6 dZ_o> stream x[ێ6 }`AXw ۶ڦE"yW%rhYff)"IӲGֲm#Lw; x,|xP^YzN>Û~߷VϞZذu&><'ɷA0ҍVhibљ#YUΑ$^ <\yb1$Ԙhm[y?, }qmz|fÓO4s\51ʦ1?p\1F >yBlxO[KΟʹ9Цh .LM׸!եR]u9 JX2@ ׀d+}\4ך ]/۾ A[vw@A+\R#p . wJ_HN] 8Ay*2뱾/I.nBL.u0Ev9Hdr]ᒯ\_1T"C$.l(cDbd[^\$@ѩ@}1{U.EPs;9(ԎfJllI1 $4E޷{M}-{@8DA+rg.P ݆#jNYT"[*}  H&2dW?/ѫ;HXJ1S5f?9t&HDʫ2c`80ݭ `[GpmfO&拺Lt$dCk*e{pJ˜7uMUj[ј0.mc} '3wI.W\t6a3aem.zDUփGr*ml9zw&D8@+ܔgG+l) WxT..){W#ϧIg /W< Q-=O,⁐Ehjֻ3kإ=qGі='mr){:@yP[m(BrpHC L@bd'3Q|l@k.˯&@ȁ% AǺFG{OW* n D8&5|ɌC#zMɀ D,󂓘ԶD%##KS_X?’)T\#[7eW2]^_<+}5Dy"rkWjd)H6J燕(rEeCDo[6Zu%(ˑ3(j4 T_オy&uGZe!dsCy+@|ޣؖ#MUYL5H1$j|lBž. džMƬKϫ(GklNbz[E0taZ҂VLa¯cyak [C|=qT4٭0IT@53 !O)^`_A?WA$dLA Zġ2vu_p)WX@OP8d2؆a:Vc]WAU -zO&?{IQUَ>OE=7v4\=왫nsRyU,y endstream endobj 14 0 obj 1677 endobj 16 0 obj << /Length 17 0 R /Filter /FlateDecode >> stream xn7.@s2-ͭ|@(%jɥ9eA ,gy(%w?(i pWN~g>}G$E|է埅Q߽GZO2FE~2.b84λB%I$ҁI04~.S@4H;"?Zq8_9'd.$C^+8oQ#Po!HA قd3ȝAS@'Sn(r3n RGgk YN%Nk VK 0b 4[]%u.`"zhJ xrkINjEZPm<&d.4,rUuMPTZ|!,1*V!c5 ĻGk~: f'5f&tgBG Q{$bAJAFdS$h$1Ii@ D:t7]  L]N4+D/3_3ͩm:$mtM>\vr: m YI ς+j((c{]?Bl9a;-1 O(!YMe%ISϽ$m5U.^/*]u`ƂJ~r Voaź0;Y0ЎSsG4DrͬBjo0<5q (=ڷai;݊{)_r*=[F> y[ɚ8gfW>`epnZA"q\8Ibkc8<5UuWc. =mv}_=኱4!$zUN!^hmn }<9L Rϯ[)z*_OL_xITHop9=r2PQBXgҩ&]b!URokL'ZI+LfN8E]`z&endstream endobj 17 0 obj 1487 endobj 22 0 obj << /Type /XObject /Subtype /Image /Width 292 /Height 42 /BitsPerComponent 8 /Length 23 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream xX[:7- dDqL-O^Y( /}QUWث9ǙxByQG3*Y%LlDX>@Sʔwb'58OuCyN%XhYU >?K@K0LBB9B/ӺB.cCY'/@4qu\3iz9@E ʾkH|-W_˙7W$>AQE5^()OWKVA-UÖxNVG}u4t8%uM@ջt7A·k̸׻V]BPȏl2sN[+5UfDbbG~t/Xpir5 Zḧ _s}kZ+G>Q߫qA >.bHV )cdMu8XPS/}|FSeF/^&/d e(C p82՝ZxSv/]E]̉ħ3KVM`ۖ, j 9r"ú̉Dm "81p+>1^a4/T=A]aiD˶ İhP.Kޱ0\lsqՇ^Tfqtq*UM0O ƂeA4D/iI`LhZUg^qUw!y Be\ٞrg)alAhwѓĂӵk!m|)8,w݁o- Rk+gмNg>TJpmMձ|2V5Puu 3[|_k2_;AfRT&,A`7>7Lˣ98|.Hq>g8ʩ FoA7 "8/+>4+7Ο[*MfG' 2g03 1> stream x8 _v$bXݥCٙHj $l/'\ m>έo5z_?LL>\oURg9^忿_sk9"?+~C~9=ܿ_ߞ)_bg9^7S|Nyۖ ÉuPP/fspZzz@~Hiuunν>YW .ò<&h8 6D'銫t v AME/W~=!+}ʀ 3oRGwǛO+=x˂,Kw9iH';w;|kzvDx8}Q#/ɿ.C"/e.E^9c;B=N=);A#J~Į ;y!؈_Sx>X/ "P~C^?677F~bH_jv@﯏g'?{A'*o!?Q iNJ8Oq(,eA~Xe'?o 9]W~t_ԦO=Q$m@_/Dgxx38x"J_KIlsӜ"Jt? ̇~_)bI+?@oח0OsҜN0v6+ʌHp7g=G߬ .ͣR$:SE.ó=Jf'?{/mʐ +4ݥ__m'VC""йȟ*7%+ߩoI5#f'?{\RfY:ڣT;9@VɧǗg6+\)=3%O_TVu?=,[4ǘs@V~ ?, òyoN3 ݢNIyC,{?wx7!#_Kȟ*B|o.(q6$/qwF> +8|3 VcNpg QgMM=swjk*'05AT߬Np7yّW4g'|yvL8^ ò ?, ò4Ao N>s;m|6h%c3\y`嗂u#< +?,K?K~0]W~̄˯}X^Aו2oN3 ~rjeܣG~]X?2g!#*ZYu*w ?cJ?.4[vN!nD~c;Voqg=JS;(&ۂV/tu+&;GwYO׭4%+ȟ9_TRL{mAc+3DsGz"4g'|yvL8^ ò ?, ò wd0+?@?Gua =V~-y8M'tsZ,-(~0eA~X~C> stream xA E{+wawhHZK.b5Bz\Wn\SW.wQPĢwelq E(&R㰗yVAqE)siz٢HA"hP A޵'Y$.v (..r a3bW|Q,m z0촦DNq|Zt?b?hY" PdatDLlj$Eȁ"hP A4v)sEO]t"?54p"\/]s^揋;b0-1yQKD2HIt:"A)t5Dt#iP9 B!>p+ endstream endobj 25 0 obj 349 endobj 19 0 obj << /Type /XObject /Subtype /Image /Width 101 /Height 88 /BitsPerComponent 8 /Length 26 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream x V{/ 3!j)IDV绘??%B$%. tIK]@$%. tI<˂p tIK]@W,55$L|r 1ʌmi7-@i?:Jg.o;XtL볃>o}UC"43vsHʌ\ǝ tI;Iu=UұA床sLt2ǎ4'BXh]3H ]%+IBIH\f{{ t@$%. tIK]@WSM"tv%?ƂkH^*!8CWá8uFs+YMF]40=:4-*r$%.v=SB"ol endstream endobj 26 0 obj 458 endobj 18 0 obj << /Type /XObject /Subtype /Image /Width 112 /Height 78 /BitsPerComponent 8 /Length 27 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream xA EsK]QQ[e2>fR MXiY;TZ|Ob_׏'T,dz:ߍtyءGN'&̧{j@u;; B4iŶ^>{;٫b;!r _T'dO!R{pvKx q'>T.| (yu&K$q ;j}Zl&Z0fu RH됒9[!%aRd!eacR{9!%/KFkftH781.GWZQphyY\O_csRSy$*S]P9e,Uׂ^aW!Zt>ٛanoFuG#O砺wܩ~ QY.y^x>}ߔy> stream xWn1}J] [!RPg쵝]6h>{3GF+H!x!?O?8*gQ?Fe,,|z_g?_MU!>o7wG$\).3y'؁[y%NgWL!x l\R*,\Iey;6.dSPvJ oayo/4Medvm^)+D HI{;ivUIׯpM:WKhR5fWjYC|`M`l034LPY5֑Sfi56#$U  ɲd\1f!a_875+^d\ʵ8 GVQ(,ǕhްZwER9 gg|oYBgԙy52:ԦpBD}xD-DFsno8=I0!+7&r\;np> stream xXjI }@:U;:7o~uuCHIJj]-Ốⵜ6Z<(>_%`rOC8*۝Y|9>"=MFg;(̿C<,;%Y^`Ӫ@glӨOB.qM}0ל%b6v6{L36r-Fl $65xhI3@c!d,2u@fG* .oyNbs=(uS~ڽ|N%."gXv @cGگ*͋Ȍ+9VKȀ L6&"4ĬiTL/fe|g#&{g`7+sr[چoJEKpyZih1ZK TeGNqpn4F# [-nۡ>̷F [-mv:nžn-܀shGwTnpcy.Jj,S)k3Ffn7(aG9vmj +!I:{.ثY@IMKUl_~Xkwkcaxƛ㔀'" FzZUKZd ϲlF{ߥeH1ӒLv#Ѩ&byL*=k.)onF$;t1G(cg4mGDᶚ%eJ%\nX\oj;e}Ol}v`;Fv\`LRꖱxcdC=QEy燮QhDq(`fjg7R9s:&Uo+CG+/Q`endstream endobj 33 0 obj 1108 endobj 34 0 obj << /Type /XObject /Subtype /Image /Width 255 /Height 473 /BitsPerComponent 8 /Length 35 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream xѲ8_MmBm$awkpl.:Vm:z<oaY p$B~ C,+{c?kcl!?d(pS=-鶏߆'=6fWWXEEyy<}xՈԿ6) JZ5/Q;anzZm-r>"?+!.X=#ȿ /~ʿ)ie8[k|.{/@̇ pP)/fcpZ8{z@~HBuri^{GY m{Xe&xǁ/AiU[.vAEE/g~=B/pv93?!N俩[đV~}%Ѹ˯,vD:@߱Cw|2#9?ݬz?w/Oi~*Oc?Us_xt7/Ķڨg䟽9/wթ˔!:Aٛr)qBNИ/tk]"%*PŴEgov3< 1-&'y_Gbo~nG'y vL%9$^ ò ?, ò<(?Y$B]^O{tƞ}'WG_Ӿhirx_ nڑ.)ӘqDߘk3YStw#hò ?, u9w};'o yc37gڽGYunv4wETE~)}c?U_ OlC~Koɞhu۵  W~1<ۘgof>#䟽eXt KU&%k_D~KL,MpG'?{37yڑΞ019Xx5˂,˒Jh|(? A׾s;] :}]hk׌#\n3`旊yq 6AjGJf~#B~Y#B;eA~Xw0K}sr;"mN>y~LX3^#-iKk fkyZt$7v]Rk ^%8=9OtzM< 75A,˭4 _3b>wvOb3D'߬dXF= F%*P7EY!^I@" PV3K}s;:' `cr,!jaYaY]l=z`<3Cr<_>#ae6. 2.r1Й2`oNnGfR̀_KoYukE=Z"Mo3b8Z2E'߬x/mɧW^~2%c[o+!⣥z[<9>Hq8LK+}lM\_uX3I8MzRcj ?$h{u{q[`e9['mc%N;n#?đV%D.bFboNnG9koΊxs7k};~$t]~ﱧy^ބ u,j.K'i{^N%jQ~Q@@[5B+|?"2 ?XS}ѾKPډ5t(U2]<"":Aٛū@|^ٿ3(:Aٛ핉.\mv_Nf?sQN+vb-脟4/ɱ$«A~XeA~X8o|:D:[1'__;Bdog~FʯguA~x3މJұ? g,>ó<"mS3?˿A2,tcֱ͛f37gGYunveS u,j.˨4N% yJgoKSGF'?{_<2:A[ڙg`ht7G3=b ?Ѽ/^:bOwEZz .!?ьM^85]܎NIKrH,eA~Xe\ ! a_Ӿ`O/Pa kڞnAƐM~&F6.ɰ7'#ݼ[!olL?w7=.#.x<9[h]""؞Ҝ3:Aٛbxb[goguN+\^ -n?V go|sXO\-O+:Aٛ]̙G~Z;{&O;ٳ7?~Ҽ;&ǒ aYaYŧ6#n!apԎ=84^"?a̯;4Sv֎[܉,.^óXꛓ}nSugbRߜkM[_17=.#-ȿ_R#)z=~&@L="]Kf /fWCb)O/|.YEbE{H)9^3Nl5 kڨgohX/^j7^"b(?k4K9 Uϟjwbo~nG'y vL%9$^ ò ?,Q~ܳz#@\VR&w?_G#@W8fkVGq坵,d5O`0'2ʹzɟʷT'l࿌ߡvkmI8 \A| |,g[LRߜ܎H;vui'O=K}sf䯥7m Tߎɿ.]Ս"~-_Kd?1xRv-٢okX3銻d)Ezl 75A,3~?" {:ohX2kNY bxx{Ґ/e$ PV??(K019Xx5˂,F.Q~"gm_k}>Ef=EB/Jio\A~h\p=&BtS| ]8eA~Xw/0K}sr;"772gGZzӖ@Lz_-HoJ#^=S})Hoג-:Af&K~)c'FRӵ ;KV~Q#RA ̯!:Af&%Ú65 /Wȟ!/Ϛ- RfNegXꛟ ?i^cIW,˂,1xeqWzqcq83I~͠Sa8$Z9N;䟽y/Ol Q~ {V'VT[> stream xYn6}_`3  ݢ}sk 6 EP"%fDi(I$C!ݡQwOx0*}>1㼗!K<(ͧIz'gx.ѯן}N}_hӶ i}~yV 4#- ,ݘE =;&bIWe`SУr ;$ib5n9O\H·yz1 l׫O6?'ȓ/tA8b2l&2ơX= \(!(8:LRw\{Ci9O nJ \vmtd%9c,8? r٪\h,9 c>dQ/F+ p S12.#AXWe@-7ZTh]TH>ez$,nyZys\S@KzW:Z2q!cKR!s|,Jd,X]}l6فm:AUv'5̠ M*f[;r%ޠ"z^T "_e]S83s A1*-ϼ^gfj5ycQ1& L`J ol]*׭h[(g.胲fܠL6ho ;eΠO\] ݣG } ԏoH`wr'܀Qb~qRvn5%F bqFƟ=mp?~cK!bj`NgpX*KjZ} 2j|jb\lXHEe۠9UTb@aYuwMVԮ(1~jxj? P.Ы].pդ s0ĭwLJU7,x//& ]BrF[Z[/{=ʉy/@&^C˿w-ϥ ݁2 PcV<3M掲m&NzrkT5%N;YM>0 9'UdW#eE(kl0/G>NH_R,!!K:V 1y*$KNHo[Iba 0&=]'k7$`{:d)g|5"`_JrMP7i|] V əGwTlR$ 7#t$Z0>9zń%Lq΋ђ-EmK*"-0r_S_hu9Dtc߾岙P|Wa-9T puxf7Fl%ʎﬞECP#َ &I엓?-@B~_q2d bAk3/Wyo|~nPLJٴxmnTD+Lij6S9FknDPՔM}c+ (d0KWsM_C rcendstream endobj 38 0 obj 1499 endobj 40 0 obj << /Length 41 0 R /Filter /FlateDecode >> stream xW͎7 ; Au.۶mӢشH.yPcQe6!0;ſIVJzj?ջWp<gTucxV_e=LNwJI{bP<ߎɚ4+#xjP&ʸ0yYG#&>G .M~G+JSNW .f!NA]Po.FWoA]1X[ 7%e\=Ho\D@t x7 /ߗq1Uі| #Eقm$P0[r4u]Euiµ3B$-P@k-Mэx:Է"9ң̍ 3+u:3=ghՋ,fIC^z< GfK$3[qҙ.\0(e)ĵ& /Acш,nsfvPp3σq, 7Vw5U)M.$6t;h@N ؅ cR4b;Egt]ՉV]k]N4pmvXg{VnJm|ۦ/۔C J% lP]r,MvnR]\b¦J˴%'L] 3@%e^!k]̻,#2hgm} z%C tRy.<FΊ%O1LyRuoSqI}WCf-0n2afv(-y 3DXO gv'endstream endobj 41 0 obj 1124 endobj 45 0 obj << /Length 46 0 R /Filter /FlateDecode /Length1 39680 >> stream xܽy|E8\U}LOw}%d&!L I+\r r DQTX/dQWc<_Yuu]eakUqn/y~~tSUO=\UYYȎV#Y3N_[7 D;gXˏ|!jگrdҋZrz9Ϭ gdܚ9.pr_+NvUqNl/4@-R]~me=}n0I 44AR܀Hp؟# >~l#HnǢyWi eɿm -t<?|a2##r|w xBwj }QCX$:o$.܆ZWK0'-8= ~KGW#>➁!F'7u%&W!O@q8pU\o> MUO ʹ b }B;h *LBC2=F>K߿8ϣ{h,jܞy 8Jt)V~o;#n c4&dhNf^@4]JZǏjpaC~}kk{gEGYi"^+F ¡`z.inSY#U i&[DKztl:dL!i4bKZPr/JZْْ؈4HAH;|llɓ"76p;|y~gVI\ U ʩg ${+?vId982h$6M.-Wϫ}#18|e_8,ţqh<8ggS YyC9 ~:{V FqXd3E%%Ӟ9x[uM9A cv[xɓq0n招vI"Y,\I@14rY *2XzF;F,Oa4d|<>g<g27!ia{m΀oX~{eEl6qe9v>5?H?ELOM,oy?G=8Xi3Mrz vҷ#^3oB<}?p;OPAGq >T%ysr`Pjl4밳WW4UV%):BXW!8,_S-(jNd̚D"V,z^a# |%˞dDu^ͮ(d#`ER)&jڒX5sk(I]aΦŨkθg$y2YZ"6I<"vU:$`tQTp!ߵQ#FPJY8a(n%_QJ<}v>G`[NvtXvuj9j^U(8cʼnD6bMe W.喽el3z̸K wAhxK(݃ XW2K )em7_X̲ɞL u9 4,u/>{99G/ qN \\Vs0tm.rްnCaUBSg1bCŗ1m>KkaUv_Q,jRZ^Ӫa-XDKocc S`GqMFCٙ54h16LQDY$8CYf NjjkæC9Ğm\W\65ԯ僎e~͐·!W~f6K/P_ӪP4<{huZOP}*-oڨNSFmw)VBO*xy>,yq!%"D`am{5BE"_R1AnJΖ&W_480oTzGi= =•F]mC9촇^`ICai8aNKA2nLG"xa*%%llPNIG  òוqC\NXR %D$QؕҘIgπ^4(#;TG:E􉾸EHFmhw24Nj\Ѡ/{;;4S-';LnC9q3*v::`V˷@\::nAZ%jkˎ$'=n/DAvzaKj WpʂVnxj_|e y4Qp!OfۡKꢞ6[nnMkO^{a?aY(QyIQ^\btK(:'&Tj7Xaj.}wm vx$ sJ_4^Ig5T@@XX_ y{@{xk_gpib&1PM=XAnC8ucKi| m𰰧䈄$92 @W&ϱZ39PܯsdRv HO$:[S^8Lq\ow,үn}E7M̻=w`Lz$4oүv{5$tغBC`Iٮ*"eZٖ:dHLH<#QyUV'xRl,_oaGWXtCDG]eZJo'Q^J[8*.*yQ?gtHoG`ӧa$pqj=X.H+m-#]݄jKqTq acH@ƤTk7cj.Fȵ5g ~^E래'nX1)8&{侭b|gxڧz͗_}05G{Y|7n wO1yPw8_HL*ml!t9 b 3Sy TB9DM)n@ݨ8\-S9!0f9FM)zG&=6X N]Asϧ7M٣Q, 1`;dJx-h4]HƩdž"3Y wsP;>sWೂE"oQQ2m.)T$]@J VNkC UgޟI=f(\D 㨉 2&_l"F&#r,M?Ɣ?[AI苙YtDXH|")ffcЌ%F""e7t0K&e85dF-ڬc{p7rzw[*vEzow\#c0qE|x؛P[DHxO '_U?*Pmϼfgȏ)b^}'rY2-VM#;hXUjvbnb«҄7Mɇ6NEccN-" ō*Ԝbirfbjp<ƏMR1]pzK )#^)64sKa9d+pT.'5V;qCEK! ԇ:;K3嫜+xZ)eL+uJw?yNg ;l,Aǟw///'şM5,,tR:D,qI;qa{lw4Loа%63&qTshsv9TtL?6:/d9A $ T4rF3ì٪lJrD2Τ Ar@?5[2 *v$+rvƪvY$B)Tݧ 7kTvFFxzJv2RFxyILnN)שlFL] 5qf4dCz@s.jB~7F@+h'9h6-b2A:mJ8FqܯixkXqrn LY3wKlr Y.RVR e. K"&B"6B6^CIQrV2)R#:Ϊ()c?ꉲsHkhgfCn8]ՅG@AI"Fovk.\"vD#jodTcTs2eKǺw֫sS}4ھa %% Yl f|,}D`JpQ:r2g0Q(#%t7t1m!c keQdN4x{iB׀D-}(5zF6h̘;풅j]{5tػ6:00j P糮ʥʠ ųW)w*!DbƪOo*WEKk{M{MzS bD,x P JDJtY@Q㐲}`aL,F4 ̍@sӀhȜ+ X<){@\aTu],*:9w ga i8 Z$2)!uB8j*C(9I5l@SpK-h&>C|Ʃ+;FOBc7FZ#(+]pqȦ\]4$OOM ͓ }C"o?|QxNOM?gq{tv&EMd]odAFkEY]4c^lƦA_sa #U+GE" %䇇zbN]33\#Ӏ 1PRAe0jS Y7]P"LIuV U' IƳ\yr-_CV*רzU oTB[gУsnuGzG7T=NՏjJ}QRrzkPIjrMGt`X:41 %`8''Q% )~$qEu+֛)25$URc{lYZ!J;b!K ۾NjuΎT:kufWىs?5K.w/'} ̐[Z؜C8eMq Aˤ 1 1Ħq 75,B̰gCy^Dcq|a:DhG^Or[#o.9ڴqOd B堯p*J}Z+Qu{B}{_˄Dp;QxZTESp4w/\L{ X|h/ 2xg<~4W#*#$$@xL$d#@x|;*oZCq.i RDZ-Xj',-q1mTwy/@y~.us@o Y'h.@u<Е@fxxkC8nR||ږ QPH54&gQZs^ZՅrä  *R:kL,%3Y y4Xf gxHRB2-QBJx&6(>rrdBl||m61=˿vv~quɲ:nVm~fmSc= g(T=pA'߻WF2tk^gai@GžJacMV*Q*;G/qh6!.( ɒKbPϠEi vzQOqGh܌-*vjzWWC/UA'PYރVM6ᄓ.XBq+kƔGdDS:GR+*E'гk]RݑV#O0\} sѹ[ +UJSӦO=zW=N8?~I[w}?~Xtċ |U7=Y0skݹfʨeȲ_QJ=zt=nI btڅp};VƕSk=>,{)3sn6 Usk~l˭6`hvPM<^w9gN PLBbȤ~Di5]&e58/,n GI'/زqNw&]ZZn]G*t+$f dӵNbUNHv0p"mkT#.Oufg@ v ,#rDx2bOuz wzTqLLHqN4j&I$5)7+WſWOǩxB%lL9 KYY*1Al/l!o:ت<2ME#lmsKJMMys?}7cp2}mk}:fjɪ#Slt镬|^P"29F Wpr GfЕ9:E.(h`O ohw.Ǡ$<9t=^}`"h-'BpN9?] >:J j6᧾J/~~&pkzELRt]z ׁ\tiz vD BcQk)**W/ub.ڸ{Y0%Iz{Ep@/. *z~w,O׿}|Vz"B^uKL-|l  Q ;l6l,[m.ᰱ56mlƳ-Ul娕l+rlV\Sٽ\Kίhϻ ܅܅?]gBw]X8Z9tRa㹵ceg @R;gMO-}+_Oj߽^Pk]^6Cxˋo;W)6XHҜu8qo򍿀> yɺL4p: !Ca(c*Gɓ<̐)mx|>IB9{INN!:Co[1g&Jo1qcLE2]HJNאFNakheI'@HיäXa9'['\B/9#Fw!< DGdqn,Rr_@G6AYcCgCr)J2PN/:L'pؓ).!s ni)6e:EB.doBʟd#0I{b, TG=eeң]XrfN7_uʃT> SE#h+PUL* $GhݎBА"3;H[J艽pܖ>;;dozk 2b&Qi5B[-o\vuwp\Xf#EC  9띷9<;r6I%PU׵)ۧ_?]cf~I!QrtWt mL2=L&`*inHVjٞA#'~anvkN>,@Gz2pP(IlB< HnmwVBQ760G?潩?ZEJQ5: ;ÆdP޺ϸeWEϓ @?`ibΈ>aږеLOn6&uΦNfu"&!_a_g>>Lzq1¯Юud:c ,yvCJH[ܓ$Q%< dV%;אlpy@G.R7ٰ 4ҁmpďRt"ds9܌ko'k].DG N 4:;ϟ?Ֆ[{dϜ|tjke̫e~Pi.+Z:GE9zeྞ3C.ma:h .45c&(V\TyxOOؕ$<ݗ~;ӵD/Hx=8:x>n# +Tʩܗ| v}{񓠍3`.DP[#=TQݹ)=) g7H, *nM@6LÆY>dS5`Ao{Zr/&4XU!Cx^y1z- t <FWs9Qvo-l@wAx8' ÇHEg7:sTCV_]ө".vN ݮMulnJ(lIe0 }:rqi940u\Tzaˊثh{NPbo!m*)y]-IA?~dGN NP<=_nC84 j0M]'aW?wC7kWcL"-Of)]ƩdCBt6;nȅq҂[r?žd'RO[{_at!)AWd:H 72vq9*uC!iZ]QQ,mv_Ir%%rtC]7v PdaifTa@ A ;;T KPe*@5Lj}>>YgB]VMn?%TA61#L K32R4 u$RଝiPBf+l'ScEv%j~rɅd(`Iu.pRI^ŀ?'MʉrbE_߱_~89Sz(\_wCx̃HؾwT~`P8EE JsD"x9 *8 gĎt':Wd}Z?ӏ=+vt=ZC0V+%΄1}PsshNrN[:jIOPc$ ٧xf 3=˅=օSFNd[RBV!dz',`)d;ȫa۝&Y]&:% ˅;Rq41LbA7 ;"P%d6iHk\1(zഐPvȊ``D]@-w n&t<=@bS˚ q,gfsFr-iKST9C K?KTobស^|RN. ߷q !u{dӏTGBZ@ yn$^i'R&އ?gOs <g3bBx,j>71qZq 鐠=Mi}a h;q첂!wCK ;uH5ڠR.}.Z(*/p\DJ G:U5k9,]]K lC $rx?0R=Lázȳ+mQ `''Q|"kQ]Q(vE$H (@^M hpd_9[ky^/`RG=n'OO,+}tlxsbW׾tMzL :t|ڮjjcna+WOMur@aǺFߟ '+b10!:5w0l;ېFt қ:_ȶH2DgGGu{T֭"K]z~<+.7sh [vGKlwNedSPxah/lm>ohE}v[7Ѯ3.{b׊K%r,mOĝ?=|~5y2_M0JB֗+ s¯^ X bA Ϲ"&Rd@M2B]2.>S4}9sǯ'9wH-~P4ZhT5-kws2$ vph*(|Hݦ1FG =-̺Qm:R=fc<䑽s3td>>|6,4b2P 7qk"x&x3ʃ_4pQUpS>>-B*eE8K3k72 $ Sl'*[Fc5U(ǿE(#ǼOd~ rDvt}#%!`;Z]6o]Oo5҅7Ec@R-P鶋w?+XUFixаVǤHExp :4P ݚZ! +F`F`mܶ>l1ϦS"tuL=]WCЫtz|W`!/ 5ͧ1)F̖4GFs 󞔝^V?짒YjQ6swg&FF2ǑN':t핼lm_wd<ƹz.͗fxC+5 uzqx+k@2Qqh(DTd.C1A􃕛 }n:߅~b̶ c o42hoھb+>sժ;o\uiy|33n}?xutDvY != deDUz+;0 N ӛT-CUmkԝu`W}>|줽0̜.Yr/~\Sg~HC!Y'+VodbUP/"-eh=%'OGh4~ mbqaz!kH iR8 )[m"sV5uAS3`qyJG<epX8B:4@C³.Ӄף 8ۨځo# wC,.?>>+mKQll7w97vz|wB=Csb>j_~W\$zMq(才(YPrĄKK뱦{9ף~tEhX)J!HDJir>8v9CW`o摊`0J9X[r^`%Ȝ/qlCWJr͖r&ɏ`O8KK7{r0F+$}r0* s0e`ٍ,Br4n2r` 6~*n6˵!v7``b} Y X^ ~ #[9 } CG9(0&C`59(?C`r0Qѳ9(`9Uڮҵ Ѷ`;giж` `gk v23Þ,{S 38D˔eV@˔1I}\ Yd2۳+Lۂ֢qh%Zfh:qsh1Z\ph)4sY,/h˟IgkAct2 oBupT97˽XpUPy\V@8J-ӡ$rcGm뻕l=p'eg[wQ] Z `#,,6 LF•(5<}>o[x4&θ;S|MӬthӆuuNCSR缻d{߽?s}X;;!Ɇ.F<$Uz( 뿄>c-KٰgkԳy1wtO0irgel @/ٔ,++UڽG+OH3ǀ5{*dZ:m<#MUiWˈy>YJ̨Ye &ϟRZmiHB ^i[V:|UYfωU| ˫ʠᒲPIJ˘%Y$i*)^w9#JZS @Bu78VAvHT4x٘噁'mW2Vs*2rsJ`IWU5{D}J8K3Eig_F6Ups[r/[\Yy>^igw 8Rher,΁ [ Θתr ;@GyB/,g%q 9ɽ#OD#M2&+: )̫9bȔwrytN\QGk=SkzX=VF{J㕻Qd{g;YjYvyzP^UHY5RxRX="Uj1R4+j.m|55 ݄YT%)[cdmu81*5{[Y/$IFڮ5g=n&oF˰r^988XtP8OU QUSQyGyT͏ȕ^tϱ -&8}1pû**H>4g=]ggNqKU=,s:.G̸_*K5,/RXz>II`'ݢZ>\b7S[bPqvwVv{# ؏g"~;cy>*Ñ5a9I'G7縆o;YK_A䰓S'Od1o_oo^]2N3d˳)+pm#}ƚ̧ , wJ{)HAW{mLv;Npq1KҙHkMڞoVRY 1W Vַ-phvH;Sk ־k~C4#)Y.0Od[>@M=]UeGZ,7cgu.A<LƤC0)+",f7dpȌ첶 v#cִ$&Xi ,XMcrPVO,/MLP^ ?H g <ݳK;s곃ܷe#={<`}beC<:GrzDpPc=$ҡ-z=4MеП_y/V^鯼_yJ+W+W^鯼_yJWm{9֢wV2Ӝ5u-u=wڃ${SZIuA'IydӃ%Twy?w̌4&6{PHDQv@@AW@Dq@/n~#І/=GyIw\->dPl#AcOP7o*RVb}hn~2RF4j7B%Zzm+7CuB ! Fnنu]5~O4_O's뺒c MPH1>w&PnGPh :@} +{z(ӯsI>e==;he7:T#]56lR]?~+:l%eoCBN.rUhE(zTœss+:AqiPX,oƎDNl=ѿ?Qk%*k1.0 uBmх:&@@AdBn;aY>,gQ䘤"vqP\Wbz#`vn zmhVV<-V|I+>֊mZ1[b\+EZVVbL+n׊۴zp5\w5-@t z Mo*&5` v9'ۘxa-~Cn#nCzz#>-=h\6.^bst(u(JV|[⛛"MmMO.GmeEׅk W??oWb3EU_pst^lF4)EKN1m;"[Dp9W0-h"R=Տ?ZU~K}~sCOׄUẰ+^_ZGet*Mt-ψү#`)e鿇[5O+}Vj#GJΔzKstF^CoIyMk RQ:om_DΗ06&6|x]epEͥGKyEcGi?~:MkPp }>dn ||1|ۨb;m_4 l<pdo平<۷3OÇZgљqP@?6wtw"]Ttu^FiM,3CIW!]Y?=:GƎ9}M[Ǝo=e @X6VdR&&hkBw¡-ko&tk="ty<(ۼ`l7=_RߓFg{\*,];0p+lGA *^?j9-ޢn,Tjѱύ^qn6+`WL~^YJVw endstream endobj 46 0 obj 22827 endobj 47 0 obj << /Type /FontDescriptor /FontName /BAAAAA+ArialMT /Flags 4 /FontBBox [ -664 -324 2027 1005 ] /ItalicAngle 0 /Ascent 905 /Descent -211 /CapHeight 1005 /StemV 80 /FontFile2 45 0 R >> endobj 48 0 obj << /Length 477 /Filter /FlateDecode >> stream x]Mo0HCJRJ)6 HA9׭V{I%)с>(O >,|Ч}g@aNa^M >^5>>J }S0>>91̡OdTҚj0O } }rL'GOƓ00r>0`r&`&GsJ`z?;lW8 _ endstream endobj 49 0 obj << /Type /Font /Subtype /TrueType /BaseFont /BAAAAA+ArialMT /FirstChar 0 /LastChar 57 /Widths [ 750 277 556 277 556 333 277 556 500 222 556 277 666 556 722 556 610 556 500 556 222 500 556 833 500 333 666 333 666 277 333 500 556 500 277 722 583 222 833 277 277 277 500 333 333 722 777 583 943 610 777 556 556 190 556 556 556 277 ] /FontDescriptor 47 0 R /ToUnicode 48 0 R >> endobj 50 0 obj << /Length 51 0 R /Filter /FlateDecode /Length1 24632 >> stream x|x[E-*,][,q,8K0 veYEl˖d'Kld!tHNJ( -o B l3s\{ߋ;̙33gN3$i."ӿWFPX|/{~!~egWRCg]=Ý<D:t#{e݀f%?zVwoxnы+@'<`-Է^,}^u?p o TB 'j}w+EHq)0|G JZ ɜl7Jr|@ޓǤm2w߁H'IA;̡43/h݋nGQ@~?M`IԏEŘFD@Fz mD7Į&A6T8"fc܀RQZc?Fs>oC#576$TB~y{FF`at:^3>f9Ⱦo(H*BhM.k|9ՠz4y~Ep'bֳuŒcGtT÷ m@m{2]h9|no`,| rֿ d6`sR~%d*˙Xͅo{=}[mShbXwl{l_dO S;E+` Eچ.GWA[w.݇CQt@Do?߰p=x;~Ï/V˼:M0Aquj.bMVLYL(6Ҵ̳A` !tE{$؂\\p^M 0_;87OS9Hh=cg2|)dV2]nf/0syo0b~yk`dsإrB6ngٝC Ww8r|}auCW|jEET[%\TT^B x(tƇ݃~FoCyfǷbkE[&&Π vqI=Vf;pr8c1Gaن Eu^t7cF0A n z0K}ab |3m<>:aVyO4n l@M̕ JqNbs"lv#zMs}]R^g{9G.Jj4EmDId9Zq4Ȟ\gi!s\0o]IJu kwlMeG~TGFvkg:Hc@_&mCh-Fd)Ң|ziX#BRF"hc,%}<JG7;Tg.mԌFE얂Q IsTmL7F!JNƵSĄ#20f', 42`5#ڶa!>[p#_ PsQd _ 20h+GBY (SDxfֲdp^uvDvi"jOC"WKi#--IHˮxT6'Q&ET9SB{a'f޸ٸfSX?&˶q^1&CSm3V IYᏂZrGTS,6DRْp|Nا}Mwٌ,tͮ7>= s9LM##  48ņO4) Α}}#mqFc'M4iEt` Z'c fjfA[q"-2SXRI 5b1FERE[9uo#Sqy(>d& -e2V%S>x. (AIcT 3ŵGԛVMTT5MTjW08 P`ġDWn}D{O V"nP)BR-PZBՂ6-fD`1C5+ZFq,cfa#Qa;a :+ N8E*+ld U]5 JCeBK]hu]*<2++nAsiv +v&'`͙Pe%?J?|hrs>;i2a,toh*~Ϫ/|W2,DLj+QlR1|FȲ^G.ܭ1nrIdٸrkk h-8Vc5N9Ƚ([ʡf΅褨#rmɑ;К>GһQj}4:ծY8 jWyvDq@p>Dɱɟ)2bpKA2&D_;SD4cU`҈Aqb(:{IƤ$fLd6iYnb'Ff\ݮP@~V^iUJ$OKn-R3I ]&SmbDFR1K/.ە§֠kGӟX$wHm #iڂQ8i1 -l0Z*g^1jŭ.H-+_yufQ%e9LRQrݸg-/ z-:/~|.b̪~ÿRf^}U8enA n73ѩ{ǭ v(ԚAjEnkmն$QcmpzlKٝ!BRSk}:`chVu\jJaq19ѮUZentEU3]Ի-b) ~zN(+gյRki"Gi"qceQ+1uHKK.bE [)gA1JMP$QaG$2vu$g򓧆[>b㫷Obʏz߸QdG\kr#M{ k ny%jT79Ebr! ܟ&eR8]:=L/YЀ)Q*;ȭJ8DT Q i3S0=YQq\VjhA[,ɒX{,CSEs1ڸRqH Hu`iXEIֽ`]kV-/b&.緗 y WmS(1s#JAW;CuwWGN}`J@ȦGFMAYSCO a bhD2v&%(sH6,n-2)hx/iO yDVK;k23lPlIr=~<~{Mkoo'G `㝧.o-OiM~rhO'N˶֬[}Ӳ~ }5jczgp =CּbCQf: ֮.GؿցSq[f&SlySƌ@R]Q0d$eGQOsJ]ы]PTr6)eU2s|RGΘNT<;xx8Hs,BRDN ɜdLXIWTj11skH|Cʘؠ3xƠS'$dhtfFG$3ck&FDb ~ZFAIHE*:Ac<91Q|tU AjWt$*lvWAF+ְe5(\`FsZ ~yޖ$Yjixd.@׎O[Iv,xBHli # @]x0N]QJ[o~&ssZ \QBhMɖr8:Me&; |vsɟ=sou[OdV۬'Z7O{7~һV}(oIx}PPnR%VE>.* \j8mdPyd;6VUfUPTTHeKV,\ج |JnM fȍNjll[lg2I3M?Nӊ<~gjm§$T<#͕4~fvx$"0wBc!x>UT) &3Y;ɞHNxm]g\d ~Grz۱?v`|-jX>_w ӕ S"\>&OhG͒d-w:d[5h9 ~mPp{P"kְy,GBˉZ ʄ7-YkM( )vդn aOj,LrP@OU"OO斢d!yLg9j::q ag}86X ND\p 鑬3k95@+$L&$3݌r6+|Yٓʭ{?F]ud\FF _jV5]bX۴mKJrR6۶͛7r>l/YK ƾ~rjEԻoYHO}X}RS+qa6Q*6(x2#iS Ǒ0. })7#4gٸh%k+2TXů8rE7]q֜ )5K"mIɕGHm˱ݎU2~&3%?#t `أ1X;zcoq㯽'dTǝP])8+1 2Zsa_zXC+Z4,: *Fmh/`V53S]I7#ct3&SJ^B-YGL>Ұcu_{1w+M/D0yyTPMpEH"E4f0cɜmWZtȳg (;ѬW2 &[݉t!Y]3v#Fk iDnLDԢ^MPHL9,Г*00+ l W+iX֎b6\ֱl߾VUIkxrM<9vPSř~.FEޝy뙧7fVobym~Ʉs78npŖyA]j}*u؛~84N \4q 嬿"~cM*B:AJ6k_@PCߡ m!9ޤ jI_k!zWuu\GEJ٣zVݛ07Mrͽښ9מ`]$"đv Zp;5|&i~ F`iJYCv sȊw02@i8"J~UU`d{eXFd8)a jW12ENTU,:t~甖.NAB 3H!\$,*:dCZG2|HɰC.*d2dʰp1a g$op"\-:Th8 s(?(S'2LV[-2 2:)dPXE[dRXMkRAem0v CVA)2 M/àߔU2 M507RA0WJA2 u40F 0VJkޜ{ sH̕d%{\9uW+@ƟeƟ0SLd5w |J%QA&).&(l3IJ"(A|HbsP/q [HfFBzR@Q h-P4^8Evmb$ZߌYVB_{b<`y^X4@JbK`'oŮGp"zjMo5q /$~Y6vi#r\uN6ɞRqT_3COwQ|S1xk<!9OFҜ!x6|l:HGXNI^q/$eڋϞC(q.kO44j|U=s<(桹f푥cȷM0qv,],cf%Eo娟J/g:El}3b[|^I:3v\::8n-)]/?nWYmJ93iJ 8{j=_3W%c:ζiXF~s|r&FT}_Ak9DUt͍xA9go֣$K<ۏ|M֝%n| ,6 {O|r>AI rRT0yP+3V)<ňܞl@2e1΃R.G!8 _;ckқ:=^'6a@` }bP= QL\$ͫ,.P!q/ :j~Oϲ•kƅ}Xm{P3==:`_,DWQR z oa1b/{@'vz} z !XOa~?BLGݢ_,~'n󇻩zқvPCq\x/pH%=p BɈ.}AB`OW7:CaPx7SzCd_G)0D;i 2}= Q!@v}~/{} >&'}a1a!c{xòcУ'4}A/%Èp ,=4@M!5Oz<;}0/͗;0m {5 :Zaw8ܿh۶mzEޞ0zC[4mY'tID7F`VoxZdaoXyJK,_.-\P-^/ԊdvP.&.[4~얭3zM%f>>a3ifq's?A O~8Ĺ q's?A O~8?A|[7 oQj>yJVͧXZxMW+8g8ec|ZHw5B'YV8¥p*Tz3;u&,j>_/I7wijg3݊3s$<áb(WCcwGᵅ\SW4к{NHһx>;x~;G<_t`G TFՄU~M8,9)D,"'s&2#.ʠtwfЍp׍:NPX*JbNIUĎJ0MR NҙX.WQZR{NQ'ݗzi\-ƹUW[?FRCsXw~Rk(7Ԑ&^Ҥ#dy#~@nm9fYuSBgP~Qc$o]czͦQ>nk\qGc$d! epjLxlU>^eB+D3%o endstream endobj 51 0 obj 12056 endobj 52 0 obj << /Type /FontDescriptor /FontName /CAAAAA+Arial-ItalicMT /Flags 68 /FontBBox [ -517 -324 1080 997 ] /ItalicAngle -30 /Ascent 905 /Descent -211 /CapHeight 997 /StemV 80 /FontFile2 50 0 R >> endobj 53 0 obj << /Length 336 /Filter /FlateDecode >> stream x]Mn0HtaR$QI@!Te/$Q {8*Cmgчdu(pu.ڄomDF}my0} w[p'\|w 6*Zj@3EtkkXu,r,M FJp@," xCs'[tD i!-!JJ d1Gx& ap=/F@nG#i*4' MPlp˳C IByRGP)O*6ﷶ\,չybdpRˌdzE J endstream endobj 54 0 obj << /Type /Font /Subtype /TrueType /BaseFont /CAAAAA+Arial-ItalicMT /FirstChar 0 /LastChar 23 /Widths [ 750 666 222 556 556 333 277 277 777 556 277 722 556 277 556 833 556 500 222 500 277 556 833 556 ] /FontDescriptor 52 0 R /ToUnicode 53 0 R >> endobj 55 0 obj << /Length 56 0 R /Filter /FlateDecode /Length1 31060 >> stream xyxTDZ8wͮe4hB #,44Al^paىw' cy'7$qnH/$`Ws`rYCꮮ# }!C;`Sw~!aKow~/)lyѿDH[7< gʮiteǼv^;nV(-ݭ>P)tez_(]PcwAJz~rbB{B=Yˠ|!S7a Z&/(*F&%j;.wbRrGLMC$EIb'R4;IhN>a%Ǔ3BYXDȁc.@K>k9&Ȋ=؂ґAK18~t ~ 9 }={_{oG倿G1v?RHU؎mx݅~;Z_@cP'~݁ŊXk,RPCcC>Ԉx_R&tڏ]ܫݍXGJi)Zڃ@?\'#}3v )P#\y]lQ=tG?pUTY㴠ЋuW7=-Aad,bHm"6M4f(9Eσl~N'+p Hy{; o/ QX?Go`uߋO|ʫI=,T^Q9Eh$: K$]OA @gA n3R\k25|5Nm??x IHv[#;4p༜+r븫.${&w; Zs)  (p  ႂ(܊$EP*u_)[Ճpp.k0*Ѝ Aw>ހ:H#H;~ >E_Cm05 5dT*4'<6aA0^2 \aȆW*Mz|ee /)͝e{REOJrRtmd4uZZT%5{j`[@E7" U|~!o5iQ{{|TAxrW{Doc*Yu%[r6=l0ʀN?M1Svմd1Ȼ ""I4>Bў?"mpD]ټǴSa{?&((2LGv2mj>GHN5e%x\Źs6yՁl @T{$Ȏ ZGof21b[C[vLL7{-M3 "%͡x{jou bfYd(P%"kzt>)QE80JVŚyI٨IM4cJ,JŲ2/N~y_g梶p@{xŚ={c-^3N%nRXH-0vŇx޵z]ø NoF&͋C[8"%ӵ$`#DŚ%vVUrFN5UQיXBB/v}%Z|B9Fʥ$Qi|#J!D !5NΕM-7-[6Y6]GA~9՜  3$Dz/A79Kr+ WSS q|CTr Vq%q|-j|}QMjh\,75 R 9'ʀ"s-{ӓ I'9!&^gB++ݪ$!"qIҌߘ~gVsոmםG㉯S(6eTd]Cfiū wM$9簓88_ة*da>*/4@ -;]fb+]~ 5b&&_1:$3o ozJ*_җ]״|{py"pI<{tEuն>xWYO$~_ޝyUkD\h}{mo7Ŗڛ"OCr8!\lFeCNnCK;,ĊZQTFvD\3dw0?bVp-FwɠӪ4yp )5rA!+lag=n=cdVro൑յ#klb~c2[Vi::'3h6oܭ8Efr̈́63) g˷T:}')ZY]p7~ěߏ lo %$K+՗& UHTU4Z:)HJ*ɮ¹ґrs`L\m#VoaN.7[v4sV6H e}3hjDM 6 ! l3!ͼ+~qLn_=mh֍x߁E'֬};>tlc'V%lIY Xm  Y  Qu]ӑr э!)[H& M|uW[Zzv!q o1! ف>\qB([f:mo#\˨6QZE/8::k RiD%Pҙ+x+Tnjn-\TUOD R_0G={%SO>bq .5i4MXkotK+Ս"W;%R|7=˪Wu jFghTV^i-U{I! q=/;=lS]6nNS⦄fݦ2fiv՞Ł|;,u]][bO5Ǿc{Ɗѕ|3re(yg2=7wEp%26Z3f7m27O,fͩWkM:4At9:}u೜XR_m0/bVa`7#͖BǘI3& TkS:]lv^ `5ITjq7B>7Sil_yOEz1QO1J)MJlacؘck!S^18p9&X xEp tWvd$M}m /xV.yp捷jP9ߖj/~-}}l6<݇چb?6/G &BgSu. 8*RvVyu"Zݜ#`*=xZ>}"ۀe+^YQPJwٸFR 4͙IIL x>g1K늛͸یa5HFw/9 꺓psN# A(Srh.35ST)=3)-,F29c'sG&2X&cԖW_v `\o P*fɘdblo8hJ9 ɭh ЕyL [zb| esn}o Evq~_cF3J|86·-G‡E!_ !ϟwM4);'o `'n1dDhHPq'w7 o6g (Do/Hef1 =%7SEpz]yƿU۞hw7^C+xX8fOcamK-uz `|>)Ҩh+SW{Rv\@p]U鮰US,(ӺY|U`GAcшܷCfJC;ɲ?x"b{NώRG[,i(|0YuD?4r=vMZ qcW5L vELz?A`O|e #5,r𑒺NMv# q_ԂGݬޮ S(s0; G'cJ^C>̳]65=T/_15/LEG ]8H91hiÖZV׽^ݫW6H꣄l ۮ\aq6:K CƝݮ,-GjC?m EzZJ hai@I$CE00F<4%pS@wWTEAuO„~8g>ܐ!`Dz}μAV6;_uE6aE_|R'?pUwޏ^ қ;`u6T&8֩Ua6UdҠWZ0Y}vjA'_rW3=VM_.61̾hfe S+KiͦWxHSu7D=p8R~7L0u8Q Y>n,(_/y6i5+4fKZjW vHF]1"0]Wn\v DZ^+EFCK).lKũ zy3zSMj{n.I߃!2ՑL$A Q Dd')Yp+Y9«-JK%~[YҖ9xbﱒtSml/1 Z aY:K6-iJ 5U:hDOo]揼q,lTQC~T!T8AUU R)T_ẗ J'Ftbꪉ4L+él~l<3l>3GƖ1>{<9 ağ7GIxË&p *'j Fd2$`d"Vʨ1-RQ`1~ &3е"QVT*˔g^o&fzY7$u=O؉ƫp4[I8.Zo>BS&W9DoJ ';'u(opKreſeWw_1gtǑVM_N ;0!"Y. C-Na4"V[p5.9KҒ3Ob~~aBqb5_MN B΀awO Zbɔ \ißy8_wb^t)Zk'[Pg'v]?R4:9~aX7nM+z*{W5 99CDH19,Q[k%7;FL#bp$;9qC7UB$kF{rT5 (CHsJ)8Oukt_zj'5Gg5O~«iBF=)<[2NHmNP{`T$6ZrMmE )_N;!8 Y!(PjaR(JmUԼV+x+_HܓSaΗ4yRG/%HӐ/zk<ƧIveMq_o²׾s|?}:sVKTLqC8X1=Ή}?[3 G|6mMш7b.Yx?Z)؅t`n7 ْY fĒ9Z4vJ,5_Xۦ#+>qʿ~6H^'nwꢛ3~r+ĕtEO"]OA ]W\O`0Ct% 8bp]NpW҇>;ʸVD^kPJP f6C$y,$m6N]l ,/$+YP&FK\ye}E/tJ̦@}LgO)/nY'M ,[cSmĴ6`庆ބ`W9̙|idwBCɠ7'\81G11* 7-38ʌʯm[ܵ.$ oxSei A7H9 d ,p.pIJڞ$G~I.e~ߝ#u p& {!dR"lTc mTFN=i DCv%^Mt'+3pW*K :̸{Ӿh? jObDx Zq5=rvQV'Ld\.y=S5qqq222yn#I*[DYYtҝt7gk]$?DB@L.Hޜ|c䷓U V[ td\\b1(:J^.OGtIx='y+͗>z?|= _?`k\䏿KMK)#FIS)2 *3fs7[DW"ILj{)Kir+G( RrO`γ|NOv' O~_jlhWE?taի|YQv,D? skk7>?lm8[a z+8}-\*NM|NWBZ @U5I& anٔ$k:;tZA~=Vtށ.M|-k t=4:)7P6Jޜ3~tCtcHYsaiuwJp'ZMkjFerr{kVqryf>{̏+_m7$6ʰUjԁt;,tq K5rcʧ}+rD5Z2rR}>+B)9'gGpB9Cr{'SĈeIyw~]ns"U8+s3@*YC<)?HZspjnW2*-!rȼv3[[w&n...nҢ*6vʄ\ڕ왇44"*>$Y·bdlFnL&}އ4NظNM lL+ q(7EEG?>> {F ]߉vq?.Y?mT<eWT c_&+T&mS'Er4> ^TDh)BO@Rh^.|ze2MN[kH NVGSy+RBmh3@ ȋk$I(CVԃBh VE8zeuADݨ` B}aPsb˞9jh@8Px>(W YmPt@ h6jmg`A{01ھY84?5rU# AK? W%{W}~VdڠN&e.BmoTF")΀Ї|le\co`> ATC6< Rzw 1xCeeZF-2YK;b3{k 3K] Au\#qd 0)Oɭx+(bܢLm¨ufU+xGw;zK_d\x6-~YA68iek5bgݔ2l40)S}5PnW|dʖ3Ĥ:Yiz>#n~-A&鶋l3z~JԶ[gٶl` m?i:=d_Mxxk'H]\~[Y댥Gocad,b>$1KqOq<{N7xh[{jK?sl;yNhgkNBԏ3k|4# 1f<}=5*(jP+Y}5Ԭ'a'2V[pYS%lMD{d迷hf#O鹅n1[}[ܞg29fh|e/鍬дOQͲ/mލc|d|дw +.4m} yl* efq6y_Mjf/"$Gc2zdr\mkoz6&]oV47Gx3=TI b*(*)ۑ5V̇h p *Db8 D{uq-sқ6[Cb}{H\=Ubew_Ow_p %tRL\1Hkť]@WPZ ¹bEG*}_\mU;ڦ\jDZ`mv]84_Zn0=2沾Xl u6s/1? .qP׬O_&ذajCv@;̹{c_}쪐X wmao^nmϡ[Aqup &_X5ꤼm ETxo# X04vv`/0 ([a.ڶA=0Pk BbXN~+$ڙ:(5`?U70sE&͡ {/&J::遼Q= ;:d0HmM`kGh$QB}.׽ 0P\mn>2C= nqcxs!0 3 z'bj qqLgcs}t;x/ -!qLI3;Hl7tÔGz_>j1bgpcpth{:[+4 Xӎ)zO_wg7mn@ςmkߙٿ>H'>VC 1+,_bFrieb嫪U/kvԨNQ% 5d:疭AJJ Q,8~auzpc_(D-qdA0r"fuQs BT} _TC xT28]ݰfM()0iQLSk7;-`a~s5]fN${.0j Eb6Jlk Sc^ycesLu;tB07Rf{`KG} zq%t@LK7LzP?^kKA7Coh59/L&Cf\-X[ftL'pn;q (š dd%sjZ/(YRT"+.-.kŪHKy2{lq5$I4ԙ}rqz >gv[kjK-r{{{g_Tk^|_6W zmk^|_6W ?` BJj/bk_5UW>&t?o.n/LZƉ,a[w٪}ْ2="~!__˗ƾd{%otfjk0xM--6S[+Ǧ>zlF`%ڧ]7eoev%ѯÖ]j-o׈V a0IX*4A܀0zB)yN}d,2\.?#?7NsDnC, O؟ X$ >{/TLœa5óA3 *'7 vH; ]xx^雐ZV3ia=@=@(z胐(E3P4E3P43fhfhffhfu@Qu@Q(ꀢ(ꀢQEP1 ($BbPH@!($Bb@@("("QE>P3 (DBd"P@!(DBd&0 (L&0Q~!Q@q(N Fq(N 8(N 8As+~ $ǁ8g$ǁ8806H!Di'vh'vN0Di#@PDE("@E("b(b(0P 0P 3af((Ǫ!ldfv ˷wX~-:oGXMt=˯A%,B>C,@+V@ZAH Iɠ7 RKiQByPyHR8<$F A! ℂD(t;{n_ &r?[ H_r9|(ߞ+r3O>q-ė䛓1Fm|M6K93}ʫ ^e2E,*ʠҩ4*JUDTV~V,g'=-*@Ԯ^k#E[Ú"w1XjQm|2*R⯍(j8mP!0o1ZuS"ctӭcM66"}sܲ\ZSuG8gɑ{jW7DHnR XKHU@ƆqWzN24fLj1) t9 4zcx>~G:, 'w;hX VW  7xEX6\CulH JR;~SJ <#K\eW21;\B#Pyn#yph?%QaG{E=˽GqxphP&a BjZ endstream endobj 56 0 obj 16836 endobj 57 0 obj << /Type /FontDescriptor /FontName /FAAAAA+Arial-BoldMT /Flags 4 /FontBBox [ -627 -376 2032 1010 ] /ItalicAngle 0 /Ascent 905 /Descent -211 /CapHeight 1010 /StemV 80 /FontFile2 55 0 R >> endobj 58 0 obj << /Length 378 /Filter /FlateDecode >> stream x]Mk@a!FB>!~P`t *sȿ)ٝq&[w*xsMKN\+E\[FUu=R`OZ.}Ov&9_]%g5 գ0T>@' } > 4}f}>L5}"YFkMC8}q!sjnQys_ l0gXM< endstream endobj 59 0 obj << /Type /Font /Subtype /TrueType /BaseFont /FAAAAA+Arial-BoldMT /FirstChar 0 /LastChar 34 /Widths [ 750 610 556 610 556 333 277 610 389 610 610 889 556 333 666 610 277 556 610 556 777 333 277 610 943 610 556 610 556 583 777 277 556 722 777 ] /FontDescriptor 57 0 R /ToUnicode 58 0 R >> endobj 60 0 obj << /Length 61 0 R /Filter /FlateDecode /Length1 20268 >> stream x|{|Tյ眙Ƀ!^s!ȓbj&$ `699I&qXVxZmUEd6-/O >o[j^5s{3yǜ^{^kϙ EuFH&G dDD%bٞȏپꉨ"J=Fd]|K֭k ;Q n6 ؈TuDNGLf5HѮ nϬݎګgr0wh0xiQϼ?҃ǾP }]9ah LjmI?60_r^jlc=^rI3ôγ FzjutNt`!TOǨ9H,t/DPޠsTH ˆ7i6Ie#ݒ8 4)g; zaCQC%^D~z-J z`,ZB)зAEA}הGtPY &ҕ5LS ?F=/ #nqJ:Ri1}ޏKl[.Kk)IߒmУ6PF?mVq\/[^n뱷G$[ΖKs9ZJ;wbaz5V6ʾ)$f&f%~H2j雘-V eT Kxv̖zU?quX BZMh73G 3ʳ-wi-t }^`YL*V-l;bl^Rt9&G~YbITAlZyt5uzѳ'tT!||Hysc{71H6D:!J_fCl נt9SvʫZYno}%W~f`,mX 'g +ZBŴ*?/+D4HAAG8}byه{u7ທ=ʾɞeϱW;qJWH5R uI7Kz^+yp= ?)( KG߱:R_~ؼ{cLJ @*Rhz31xWOҷ*t}ÎaNDC1Vֱ 6mv⺚ƥ֍k?;>nc=XQe$S~β_߰7%$# %R+I[Gay\ Ț||UG_I)VʔjeҥܨQ^P^T޵8,nK3\JN=_Y߳YmM>ۏldúʬgX2SN:}#-7UjgX:yYe?cOޛxHn,.4˗*n;.*%RŚ_Bפ\'YE^2KтsN)UI7QYFש;ky@zT4bW,}/ԢK>˖`﫤[2Gγ56*JkqdBbOb$MbU~$Q+ב-f&鼴S~1dLf初gz M~*(>|凴!RԱ/Gq漆Q5M*ZEf#.\0nWa7)yN }86L||Q|=qc %L\C]#q /+fKRD}+Σ"o! B,OѠSΚĭ,#): Z/Ҋ-PA:K$,~dާ͂sZ"vɵvg檏T_YfuVX^^VZR\liyc̙=sFvVftբb]-n)חSADh 5L剩Mg.52j.)VN5z:vok~[UN~0@ut׫1֮c }݃zJOsi%44Xl38\"qW IbRyzwlk ܚ7ִ]ZRcugGkcE41k]&Q}|5tP*u$:ڋy^횖90o}lL4!<ɽ;ǧjȶɽylmT>؀o wK%n„*__:=j,չ=7yy\'h[lnqjrZ4}`xK;x(30 f}k>nW5rn@8T MZXj^iгl2y_,}0 L>>f)toݿOh&Z6qGx?NJb˖*^UR7"ŜLGMZUqqQZJqrƤv3왵How"$b)22gpwW֍m[T`i)-x1)'BoNVu-rj`R,D!~-Ӹ,*;bKA Sb덲5-/CID51\Shj))MXjl=86jp6 j#N59xRn[Gnm"YB[CNv˶!ex켥%.1}m"TUTN 7paWĥ{Et@* ڞF1H-3I@S Kg1 6Vk ?%Y\x!=%}6t,ʈeJq FsSHfK)ew߯ޒVx{(ee`8S\zw

6, xؠےh7bnC Ki0I4ݞ;+5g/"ҹF~ӷ\gV0S(}0EWG֌k3_瞩:,EdX1 jkIA}CW '7*1}=YQL1&MnPO8LU^~C{T"*R +&uZg䮷"emȚěv:&7Lf$^US,J΁C;zpGN\u/Ȭ0d؃KIֺCʷж5בK^]d,l]'͔9M\)jwN:<Hi PaPjR"Wˊ&HcD_匙kT>5bk$mT{F%Ƥ EcMs|ϭ< Si<iEDÏhژ쇷I8 &W*'#L)1zVJA;ڨ嗬[_&aVg+3_pOĭnAdP/dx-%|I,heRY} *r!+7_dp ۏw;kۿrC8Q û0͵\{3+@17sA3j!ү#>-a=$~OqD1{_ܨl0F N7EYRvr?5GUA T4gR~$Gt2.4wDdmkR':ܓ[-OTP.ez6w(gdA-bZWqe[nD8Rߍ,eN!Jqzf\mG J l쾱Uhܓh44IB~`iF|B- YY>~Y^Iu1ʳJ51Zb孹g+Yv2!&n(4͠7c ڤs6|SEpAʨQJ%WRq)]7sW%u2fԠ<U3e~RjT//v§{48 YwE{dFm/' ?ƢּIp&dHE: ;aW_.3HjCLhaB'P:i4h˴DS5z [*[8=Iyk9WbB;h~LdQ ZEZHԵw,#d'. o=ĿSB$stЛ_B4ƈ+Ҋ>`$.5YdN(kX)m٨;i]^5$c N0Ʋ0I5Pמ^Epִr.in؄?[tn .*spd+i+">]Wk1tK<%c/'9JzHKlk@2~H IGW4rA GH5iYK" IpmZ!6&0ۖ3Nkm0R,=>OvKgTydR1~^fcC{Xz.-݉N Yhޖ@Nd.B`-3S 4 mQ6oUa떷 ߥ,4QƔ0 t{ޅ jUM/-pyjfuڋ& MK~>=cjـ\mpXס-/w^}"7kB2cw&դ&2 jH` >sPw)> jpSTD8$%RW]ހ`vV$ٵͰmhd 'Yxl4s1F}H9%c1evjrL'iwX^Or*SqkBI) ? Qp3ͮ9F+fu,wDT̯p^N9Uu.BSǛkXf*S j_(Xѽ:%bTY"N1OF#T]Ϊ"$:WKeܦKZ0**vz dsNp4Ѭ~($ݜo- R9Go-E{ k[z[fLL4mBb*["QA-)_q;׵xY-HvVЀ{lAG1&S1Vai8w$Wz;Rލ2][S 7,>h&bY-_ooK5adt#*HhX(s=\a#T;aP9zug:m45AW_("Kz4ci6_V}P^A YL0'`iphU/ss4*vL>r쿐jw}+R_#qDי+|2NSjAo>v_:1cW+Җ)m4H~>,/iAO2-6,*"Ƽ|-1G&d ln̉ LMFú3LH 'o0s KWǣ_rA-k2)_ApHX1ѓZX>؁$_z߅x'Of@5J :jx,}kRns-6S"Xk3e%'8R|ƕm_'_ 0>j[oQD'xio$W[VKAUj=d]x˯D!8b5#NB%*s'K UIrϋixMp: |3AʊU[uSK7LiK8$2vǿF)oيw5ż <;{i!x2h5@rL֮5K+ߠ2ԓZc ^2}@eR\OuB5vLoΈ\w[ԅ('f/KE0ڽr+FL68Y&qL>AZyf%VX&B4|u?AJ]QkBʎQSݍ~y_19fί̀-uڍ[O#L a[1>̹nUz 5B+ˆQߕ'$A1T$X߷4_$~$գ)N<+>e!krHypb -MCNwO5o.')O6t;ԀΚ 7F3%dAưM)pL.1+{P,ƾć.pW&p)Oe›U\%D޾8;,cu:Qp8ʨ\3؏~,a3Zm9c; {lmKOsj7C8=rf-!HbpRz ;uWL&gP~4V}[NWw!榮K0y(jnv#H[a,2Bnuj+L`i75)aj×Ws~"ޅkC#Y#Ao \;;[kFT5ϱ/KYvYL]e@A)YH:ίЀ '̭0Ly[*ƇwNkl+ԓUeS4fY`|d@ eÛǦ4O%YagM_pRA͢A-`Zzg°+?7ĉ?ߚ'ljNsd^s :V&C|?.*S%J9=~c[:5Ū61๛:6]nMPmb*C.j$C.;UJ/:g3^~VZ&n˻pMrOGHۧzwEH -3Ya|FiM^*w+@M="!<wTA.;=8+7}l;u4]qdб8T o*KkBx |Η_T{W\$,}er16=TrWnq|$'G `YN`d&sSh&Eq$!JxM4T~:WXv 0qN]͛rR˅oZ } 7dcc ʇL-jy9F/|{eM"(E_U^s~8sezfj|87[!T:uRI^IVR4DUG*Iͥzզfio烄:q+藤I-d$>%铐޶y\zH$~6q岪sX7|)`zOyROD[X5F-.0qݭyyru.ẢVz>em f: x2uN5XA9u\5uO5[Jɽ<}.߁ ˃mio\'hϐC)`1|me3a-Gz:{<sB8۫m= 7 {re/k8Ҙ(+ MTٴ: 慉ՉXKEjS]FOS.|)-ڣ% 檼A̻M,).GK.sIZ.'\ok:8 ifqIq uk|#cpv:=}Vi=UA~ ;ҒH紩E;ZnL߷{h#p9ȤĦ.df6`h2FH b>cdvt ݆[JKyYn5"OYS22`cIMGWU 1> Wц1(RUpcye՛?篤o 7|q(ͤ gH?{vQƂ]_yBV14HwY|,pߢQdD?(ƞN+/ֱPݎ}P1ǢI܅8Z6q!FG.g3d>iF d+ P=NJ%2 ٘Ǩ^8Cֿ m$_[xGºy!AIR0^VC4T}+GĘa\S3Bm9lě%DaM!gNhǼTIɓ[cS#BۑO#-GHw3dOSpCyf"0ۭ U},gz[.Q~.P!@4XoEe/TG2&Jf*WpeMw v":JNR DE:?K}  ">\ݣbH C,a9W%)䯫LaǬNoy3*L;?;--_uչ)dj]ukUYdY7j$NسG 0sqY*t[%,C~#?̶V%4\c\Uykx> P[ Y%eR?ꅱkQW-I~9vw'QuέHs&560)$[G@!~]AeڨVO_<:i`dwJ}21RM8kG(PS..~5/V9)TEK:#tP=c86W_i1US+ iOzLuMpՊiߐ > hA*uUCv&Z@bO_ۊ>9bBsYh{NLv"28roK&X 7Iʛtŀ]q^u'P~\V^8em{γS0;(s K$Ľ" f3%qI'8Ŕ endstream endobj 1512 0 obj /EHLIHW+CMTT9 endobj 1486 0 obj << /Type /FontDescriptor /FontName /EHLIHW+CMTT9 /Flags 4 /FontBBox [-6 -233 542 698] /Ascent 698 /CapHeight 698 /Descent -233 /ItalicAngle 0 /StemV 74 /CharSet (/A/B/D/E/G/M/N/R/S/V/Y/a/asciitilde/asterisk/b/bracketleft/bracketright/c/colon/comma/d/e/equal/five/four/g/h/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/quotedbl/r/s/semicolon/slash/t/three/two/u/v/y/zero) /FontFile 1917 0 R >> endobj 1918 0 obj << /Length1 1462 /Length2 1525 /Length3 0 /Length 2406 /Filter /FlateDecode >> stream xڍTiX(p  ]`o(M!-IwL`P\sЈ"">Y}"*↠<}:A}|}T{OݪN y8r~^`/ @-1)Tj(J\j8"8KicM`80] 0!6"PpI.`XF<Ĉ„;`y(B$MH:].b-.me(! &!|a12ΖBBT "4PȨDHy#l@}Ö1?Z40%0b@gK(c|5p2NQG4GIe<)*!d2TIW!+={b12|lT'o9Xwj1D = C&"v?4QmXlR(xBzd q2fRIZ)IC$D$-{Ǐ`>#@baDCd2~bV(ykoD'4 з2!%tV5F]V&c$eYwF8,X\x(4!oY8|(DHC~DL@D^ŋʼQD 4vcb<'&R)LvaX AQh:m1 C$H\JQ_ 0>lv^1KYX>9 G9jxR)9N!}Ú(sZr<]d92mIwOak Ÿ1K',G+u䎹ԡ9 R4yؤ7c2qSuSUIZzG2@U u-2rLҳ̦3ViKVv`c@}՝#^z]Ϋ՟1:voM+g4`\a0?[5n2-΅~|,2&I;.%q9ʔEn'nmNw*'Ym_TR*9,Usp~ފ× a{{umwM/]ta2f1LR::mʶ N;8JΩ~0j\ 1T;EMQ2sU.,{Ѹ <=_鑱&S]9F,-!>=b}3 X3ŽQhxCE]0Q2}ǴR^C~G\I/NN3,v^;[ݯCг%=4F{~J^C*@a',N a|~WL< hQ֋@:-NY;Hg>OZL#n?0Kc0wU&moU\;ir˝B[RO^5Pջ X^rlh_ZN'y6 }oG#a?5.^|r̔+/nt^IDmhkf1[ܢNT %e;FtwVYWuvڥ߀Vy:#Zsiw| fTjPj\eaaQU3F\}D JrQu7"2=:Ϳ9^yn0}5{hX--{~>)eή=c~܄+^{/ݥ9T i.LߪlG;2\zlgX4#\\yv3SO\(]&3NgdJ%_ZZ95tX3#F{7n 1T1TVFQ97 x@48Veg[f6bGrȪէWğkG1~ŝҷ/77&2ic3.NY٦kY2e!v{4eE5Yt"V*?ZwlЊY#reAeV'óx {܉fBC}yiOF} endstream endobj 1605 0 obj /JWQNLC+LCIRCLE10 endobj 1598 0 obj << /Type /FontDescriptor /FontName /JWQNLC+LCIRCLE10 /Flags 4 /FontBBox [-2000 -2000 2040 2040] /Ascent 2040 /CapHeight 2040 /Descent -2000 /ItalicAngle 0 /StemV 40 /CharSet (/a12/a13/a14/a15/a4/a5/a6/a7) /FontFile 1918 0 R >> endobj 1919 0 obj << /Length1 1348 /Length2 1058 /Length3 0 /Length 1899 /Filter /FlateDecode >> stream xڍS TW.(|dPi A(Had&NATTPꢫE ]DsE=*$잜2{XL$A{pو?E"Arvi9AJk 44Ȑs}x"HR@q AI@9TfQxSs\>ݘ HJ1JˠC pHgM+(i?F*6Its8-k Rj( U@56pD ҙ($TLJ!`nH8rL\6w)P'( %JdDrC#ٴv(!1QdQ5T`|: Bk04SaUl.7p0m^EHBHex =cn:Af9'$R I'ߜEBq^ xF q e)15%RRrTʀڜ- $8FTW7N)\f1 <8bNLlpDx `p09\4镦z0Aq^)"$oڴ&ḁ7DFCJ11m/ ͐ˍq oghLx',-[H:+b &ݴ߽8vΞcV%e6"K1'SZus)[}_2Ym3$c%},j?VvdYfa;.vKnac~lGcЯ K͖<:ωC>՚ǧN.iKܽOϫ4xu騄 {h^ŜdZ_Vx09J=h,|bLmwK\K]i-!cOGGʣv uB;nGùsz,Z* NK[WnE|}v)TC;yOvf% z"o7tt^~qG?v1Rm2o_P?rx .mpV}p@QTp!]F=)?{RxӋ k*9Z< _zko.CV-WRvVߞ{鯖qʤ> -\SճƨqrV`g-.4oWGYs9,;A@gqRS?u"o߆_G]]k{y|QҊ}ӋN?jm> endobj 1921 0 obj << /Length1 940 /Length2 1554 /Length3 0 /Length 2175 /Filter /FlateDecode >> stream x}S{@L߸ ssPF=F]ftI"Ch3u+ͭ?&])z9Š#! a]F?7}%~auIXx唍P ״>xj`ُk W=l;B iQUtsԔ@,Uz$s&H5qDOen,Hw:$+ѻ9r o,f]'4[[J8|n7La{^a&e/= w;⾱~WJ2_H9车oP:}|']1NozL/-y*HOoGoSx!mGAMx&!f?dc}އ5$CG= SPRzUġ%2]i x" VƠG]>QaDsxGt QJ)>$"jtj́*|'?tF萌M]U%l79MΡ~%n(~~zj&-^e|vxTďI Ҷ)Kp}߷Vxs׫G% +IxOZ%6~}曧 NMCɆvR(-u?L"N/}yhD_=8d[W_qE9.jPr𭼠#IS,:Bgt zGZ<]'+}HrD[ʽ#}=x1Ű*.Uuwz;yhb\v]_o4;PgI6ݕ?lR:R̊K5MjwX>OH(Go]{X]:+ PF.h`7[G<܁<-)-٫ҘJqU?TDډ7<\cV3G<}u) *{W`.`a9vj,񄢓TbZ .zZZxI5RCNoq[1v~:qJUVMUi ۵4ʟ ۟t[Uݡ}tvܰd7ʲ{$!q()%ڌ[,=.bD #?Y3;jwbH FN%[;̸nZ_n٣{4Jw6Lt@Rϋc3 O.RI%K }~:%h,YdөE*h<-f ))ύ&4YJg ]M12´_*_qzxƑUjY  x=ZSzaugtDP[ݜK* lvks&H o iJJ|CVǿ\o^Lv[xʥ]<=~"nqU si$R%ibliR?,a=CUQ3c]}ݕiciz}..eA>Z)cRCC&mp<,V&n6>ez endstream endobj 1922 0 obj << /Type /FontDescriptor /FontName /PRUIGJ+MathDesign-GM-Regular-OT1-10 /Flags 4 /FontBBox [-13 -491 945 789] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 0 /StemV 76 /XHeight 423 /CharSet (/bracketleft/bracketright/equal/parenleft/parenright/plus) /FontFile 1921 0 R >> endobj 1923 0 obj << /Length1 854 /Length2 1206 /Length3 0 /Length 1788 /Filter /FlateDecode >> stream xڍR}<^VE(XO"|6q+1$4H>zyge;5C,(˩%$:` ڭ꼜s羯v'E e(Fn ^p""BI>$.,RH 9[h""CI4*4V9 ax `7@ ЩTg@ein W" >"%R&mC2-߰0X0/Lp8@JT@ @a`owXH!/x (P,x (&/a+$@H3wUޭ ޯ+C/$E$ݸQK y0"cRx" RlD 8!$I]XJ0G, H,%Pǡpb"`2!,U۾כy*t3rHE1A %f ax W`@(. P(NJl"^BP,Dއ`L.yck_,/G`LҨT*XxPs(O)AHt&&Dg{Rr9b_Xৄa%''%5S. rj\8|݃Cz w~Lٽ?6F: L_I^}OW؏q?70f@Vq"riԼylޖzo{N-7VʽՇf,cu/?6>:ic4~^>L\$TtA"EE_uJU==ǰY糟:xiV;3զol#j|Ή=i?|m?a +lG؛F|SH:nʸ;t;|!iGwrtg0OŽHZ5`1fbUPv/ET}R4uzؾ\8$*;osŏO5FM>ɕ&9􏴌ݏ֝xV5^$ 1~zRYBGOE#jxN&ڵ{/.ZTOKC䶉K5k]"&-?d t5twLlSmq㕯HBmmJ9RsLdz?okK#Z~e R NmN{Mp\=*M"8$nLzٱgpו䭱6-nyzP.^sO9:XS1_RjQ{?ŵ +5{jܷLF"At j=wׄ֙f%?{E^Shd=l_x>4һnwtνߑA$08d|Q _Ӄɶ<v0a G5oht7 Q&ym-e_lpuيXWs_\ݗ;, W?fSZֵ/L4fַ'"μ~N#*&\h4:ٓ)˙KNǶ|E7\| ᔛ>LiG/j9Ԇ`T endstream endobj 1924 0 obj << /Type /FontDescriptor /FontName /GJIHER+MathDesign-GM-Regular-Extension-10 /Flags 4 /FontBBox [-27 -2935 3250 1002] /Ascent 64 /CapHeight 64 /Descent -597 /ItalicAngle 0 /StemV 76 /XHeight 423 /CharSet (/uniontext) /FontFile 1923 0 R >> endobj 1925 0 obj << /Length1 1122 /Length2 2595 /Length3 0 /Length 3320 /Filter /FlateDecode >> stream xڅSy|wy0Pq2M L4/D$+(@"*Y0\($%4 @+cмҺTO(xXɊ 0“J@aTZhu^, h Hȼom n.w{pA@[yJ!+Ƌ4 5Pt`t8ɮ ћl2T>D2{~ ?￈x/ Kk i܏ ixx62hW] pÓ|?qo+ 2hF񅾉 (a5 YCO2 `Ծ@믣âs,#(`n (ái)4H֓g̝^kv?#1P854huqe=o8YڰꥅoEzA.cxA/"N=xϪO;^IGӲXO^tf .}늋Iwv:*?,L.J|i.6OZsJrz:-Zrc2A ;5缣 oIXzl}8´s6wrw9>r|!){zm|Li7[ƴ&7[?߿"t趀̐գ݋"l JcMm*%N[IKͥ' B'i ճg6$&]^96ݭǡiMfLWX!BY݉INf=ys!ƕoV?d|PH=AZuqfz2ﻛ#Q){xb#ktVP֣![p"y-kQB8k[Rw[~IS#yT6#}bȏ?J{?(؆E cgR-K7y/1W* EzxϴcgȡrrǞpk?)>{Sr4<%hmR9avcb!OO)>M]׎e4e%j75 4X싽#c`g\zQhT?2y[:)`/O ɈH]X{QGV摏1iN]-7s[8>`Wiut\3IȱP[@NB k"2l1W]6p%jddOP 7/ZYUv-m<9T:![˒ Le*t^{ hpW| J鲗1VZ$>Z٫EmmٮX!H6R񿟚:erjYg7pg:j|HUƩ=a,RzS#AV&oZ(\H>$@9 LDM޸DiiwvW[Mc1g9m.Ci/b|dʕ{(9]uw5^/XC~ukXEΔ]cK= 8,vʙުg*6Y2(|`ʼPxKqvj喉 ?[2R?xt-{.4+ ~t dGe&rnuzUtU13˚S7QjWUZZi4 ?c&0-x7~:W)+F4IyJo1ڥʱ۴' *k<;=F# |f8ی6p7zt$$O'(:N*_dm-ru|հjgNf?#1kjTF8} {mLqzu/AkF0E%}I$K,4zONZɩ쨒f'<#~v[wwz=GbB'kClm endstream endobj 1926 0 obj << /Type /FontDescriptor /FontName /AHPLQY+MathDesign-GM-Regular-Symbol-10 /Flags 4 /FontBBox [-23 -1146 1249 947] /Ascent 755 /CapHeight 692 /Descent 0 /ItalicAngle 15 /StemV 76 /XHeight 423 /CharSet (/arrowright/asteriskmath/bar/braceleft/braceright/bullet/element/greaterequal/lessequal/logicaland/minus/multiply/similar/universal) /FontFile 1925 0 R >> endobj 1927 0 obj << /Length1 910 /Length2 1416 /Length3 0 /Length 2027 /Filter /FlateDecode >> stream x}R{ P;#pqwdAaP:LnD60m6 PP$C$}"(E">5q#FKƹILYBh)Sq?zBinpzWvtfi,qbYSSݔ@]~+߳ qCۈmSg*CeܰB9+uVGjH,#磿_V'?ȧL)\t3_f6t>8!>X@Y]jfvP;V[3-E~^='K ny\r,UP`[wUB-,"sFf'>f!KUx4~[MQ^rO/~D4Sw=JHSysD͎%ţrocv87'JSdxz`0H䖛,~כ1hĽsU)du#?gFޗ3 G=} ?J3ף9UkBsj=ΜZfӼ&}ÞY0zYAW}U^XmXBiXf-[lsȍq.q8kȃӲqPVm }-$K }P^h17CZK)эde=pbȕ:iJ%vK™`2*f:]C*԰ endstream endobj 1928 0 obj << /Type /FontDescriptor /FontName /DAUICR+MathDesign-GM-Regular-T1-10 /Flags 4 /FontBBox [-13 -491 945 752] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 0 /StemV 76 /XHeight 423 /CharSet (/bracketleft/bracketright/equal/plus/slash) /FontFile 1927 0 R >> endobj 1929 0 obj << /Length1 926 /Length2 1631 /Length3 0 /Length 2241 /Filter /FlateDecode >> stream xڕR{\O +Oi6+NJwUr]֦-"Sje.uRntҕ_"$謝~yl(X/q>{*%, X S90;$F@98,AT>E||D@$ *x;=<E 4#(ױ 4D8Cgn9KDZgp0 &5ˇptc* LgSJ  l9@#BG?J0eoW/я,XYl>pFck/Ł !ـI$@_1w(xlKCjGFOAG w v??Nй a;xTJs l"X#E F+5_@ \jl"pA|:k)ivWΘ&p q(T/C>Z3lK'xB x<=x{jۛ+7C$2û%. ?~3a @rw=/8ZoZvM/i%JfDїU ҊD<eMڐ~Yg.ʎ8=E -2w-?3JxP**ncb>y\[5-LQg5fe^O//H J^ٛT jN 'DSy&ge) }ugԌ["Nf]M7gl6|i׌x٦v9qv!p`@OGJ$#]No隢LqD-"\]pl{HQɍ]U'U|TTܬ9x: t\rl{e[<4N 97(41tskאµexYֽśUϥ<02Ӎ"Oibz",EbFߘ3ȯ vS_2-iooF kAB`ԝzXE._AOyyyEYB3χ-1${:&R>-,M܃OxeYGR 1 6^ͶVjoڅ2,g%&vqA~U)gfi+9$u1\8Wx6i+ɖXee\Ozi(JXuAu.;3 幹y.ggoښRM"?[a]/)2hcCȇR;0s03_ZhB[O`;w2Yn?N رΦٮ{nbeGSCK)*{(kYIi殮.oyJ,9tk/ tWF\-]n%\zJ<9:UrI12Yَي-`YIj\[ctDZ&Vf;'yvTdf&s╖>hIN)Ws> endobj 1931 0 obj << /Length1 849 /Length2 1150 /Length3 0 /Length 1735 /Filter /FlateDecode >> stream xڍRiXSg<,v(>0In ,,j $7ɕpCd)i`md"PA*X,V UCzvfJc}{\sA) b8A !aj"RH`5%(2 0HkeR,6W`"a xA/Xl/ H, @8!"# JP ټ@;!/b B=V|P(|wp`pPV O b2%`|6'L!G1ͨ A8S/JTsE-LBPs7AHۜ< U"@Kț<0T ,9Pc\| Z'>k?=/_dD|";%,($U> _1Of;0F̣KÞ:35fe?.R}v;܈eL֔[=gP\}i_i-Ʋi~F=b=چ81o0/0qS752ݚ3lRZt[ȧ6n[ (o%= pcѴjLk{U N1hbӳiN3Kk;Om&W%9F<ڪΩ~ yrv߽KSwV]lY}Vw=v]"eĚf70]4qjwqhdvMͥƙ;©+zrS~{Pzm`ɂ6%BKn.*, βq{ny a{ }-%cNPB|ƑCdN]Z F N"3q߂+?(ڙ!:vg>ڻUi+txM׵/vgݹUveg LN^|=VJzYy$bhkw!GuwnĕFˡpMkdyduyGi?e !Y]v*-jrrlJt؛K&5K֭vfCv>9 y㊜o6,G-Dq`Xv۔+.[W7nۖ?:0ɋmY}csmcrD{Gzf=+>^tՅ#Ο^ #n,òmV硨D'&wn̫91"E~RV].O;˧,Цv(lHkbYKۦKS]A[u6`cV8oodv.L^}'OR>N\;-E\Sl߳of~r*"Rj֠kJ=Yc[7?i8J1/VOɦzaeNK ů* WtYl[=\>>ґٗj DwR`qu *U4]/ cI endstream endobj 1932 0 obj << /Type /FontDescriptor /FontName /GVOUSU+MathDesign-GM-Regular-Italic-T1-10 /Flags 4 /FontBBox [-31 -491 1008 750] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 16 /StemV 72 /XHeight 427 /CharSet (/slash) /FontFile 1931 0 R >> endobj 1933 0 obj << /Length1 937 /Length2 7794 /Length3 0 /Length 8445 /Filter /FlateDecode >> stream xڍreT\-w;i Mc!4kpI\kݷ}?X?Qj͚5hhKY9YZ;Aٹ8Uʮʮem sh DqC wka6 PAB00 @/5\/AXAKk[/JP'p+s֮n/L@N 3ॷ`emΩ[5h` {`P+kW5R [s'L+!C^_F{+ 4u퀋!Uaץ[/ė=ST91÷p,G.xo0W2N=@jrOuZ} c*"K4Ǽ7ޫ%"F!6ܣfM*kXoAI+3Lsh>0 l乐|Q7ύ:ߣ`=qvl+ mD'[:xвGгy̒δ=fdq5'L x)Pa9kVl6ژMK{4*2-f@i7JdwO/i$8`tyuE9 8eHӖSU^9L?44Q.PWYbUh9u#Puo  |?̜YH%E dI1dPÜQLwhF3M$7 s/:bA3*"݁Ǣ#2_0Mx .}oZu^wu(azd}LJ*RUWTcO֫& R24=LTwf ^]؞>]^Pv❕5~"%^*x' *>os{8*~dU 0X(|~5CW%d3 @ l4y ɖt=iȍkޕ{'"+ЙVR%OM׺Lh!$u%R;u2r@Ϛ")aʎ1Y-g٤d!)=e;A9Jha0g6Ce׮IOu+]$ȥ1e< 5Y:džK@Jb}ÑEDg/A~!"XG~Ib5*΋}%ʽ2;E5|3I'CRg[>/» УHi:5AHK2H[:-M ws)үӧ[j!MwC(uΪ/GצEj{kMwWHV1|: =yQu TMC›-o.֕D; !j}#v_ZRZXR:xqBHmvM) 綼)dJLڇ}g&@=,cݏXtsD} ^ Ԃdp*朗.˶1n }G;lg,]ķĸ%oٲN2ՍCѕV:<A"$q[լꤛtifpߑJXM]!t$C&gFP]yB/vYakF*g^?sLdQP ޯrE`lݭa;ޗ ?kmnjuM\9c綸1%,&9CFbВc U,uh~kݷ:*}OXkm#x02bavI)Y+Q=F9)*c6\Nµf؀OZĐ1I`NɦK-{gZD,Ft9 ys`BPڑH!'.:J<:wv?(q$g>i.) g+9بM/q^@-mnhqh{_yzUn@Y(>\fWLђyuJIk:O>wKv举$rnk|Wgqs;̭bgo^!զIz)9V̵@Fbs] >kӴ'Tmj^q,gS\atl}%$еgFPm^ꝃK%QOC}pr>>9wRƆB c Vь~ڈ&JOs!jn{,(e:?c=^EN`^˷"_Wzb^W"fr:՘MU^A4-\*D58ю:2^~g<]u  Xæ4 @ta d|ɛ]J4% u|Ռ،n~ ϱ> BZ_hDGF 9 sE6u16iqHų3nxL?BI8.(JB0P4ߵ<^=9YR~-ZfYg3_}Yfzu:i(Wa.roy~~x{ńG >JnhglaZ?5ID)(۾%(K4!竲֠l~E׻Pn*F[PySM7v>Ѳa.L˜=Jv^42fk,Yea#'˻Ye:HJkr,Wѡock"m3IV$&zCN[=tE<T^q>ubMBrOĕU?' q6~֫}ł/?s1\Q9$S=(^0M$|uqVpn<˭&-.ɧi籔nK+r;ƾ50yܡ%Pt"xEK7Z ',<1&5c=/ Hp~? čf֖@tK)L(5nw$PVHqCj7ù@U cOj@*=2vo@Ej(UyR\ DPSPp Nhd~Ч5uI}į'gotETаG.hc܋GL&s6ʺHeZ^X]Fqf{j)N2tUܔ0ۢkAX Ge$Ѷhf=-P<ٲG0I!%P~6 l 7+H1۲]7h4wslF"]X[[xG5lJhEnqSҍbo~QO >Y3Dʥ(3y5 ?.cpyP'oGu9ACg1Z$~^ۇcoJe ~/[jIMnAC^N˰/Ґ늖Ҷ(c;C9w~1y9 aek7c̒\jWHku1=M5|M^GWjMrAMSna,kH z$njZ \SKj= 7::L2VjdnXt~ 6?/oq9^X ByTء5w9#:N֌Q3Xgw|;̆кT ǽa "}%`nwmԙEy\͎PmaE!mt7`31.M~ZVrkIwB-Y(&38c3f rQKu>zt$Cbs=iXD9hۺt{N?,RK=vDeG?.ovxEd"TraoDk4 YTUMP0eC\j)!y}.*)>aХ#v*"3[`7`=x]w?^֒P ~y=1f lGjt}q$Ma]Q{ěR)cs*4Rg?/@"|T B =nao2=C]x)/N+6D_ld! Q9/e"ֺY6;Rb͡&Xx1Yb'C֊=r%0/ZÚ$Qj&v: o4^! o`~?F3 %uAɮ-t08!{.q嬎 HL;,嚽&K mofq?4D| sf~VU:1A2aj MBv}s䙡7dg<]vƤ7&o*%VMǖ&rJWv(W;|0D s/ iе atoX[%O¹Up)*6^"}?jl|굛OW!-ﭢ^'b5FzPdj8}\1;bXL]s` k~jB6E#{Κ~/ {d&ufxnNXC;G1uLp2QXݺ0ۄpk-᫵J獛ׯ er_p3*.s@^50Tՙ %kW':}xn>S4w;8߅Ri[=FDv( q 6G!Ͽ|w}Ju`n(u2kaq7|N{i-SK͊d\[n(6_:>e~+/J)NpcB%zmP ǤlK.~G?ui UveE=/[%f Nbi32؟\g0ǻf;OZ9A[z: Q^XS%\H ŗMi UTxT=ç J6}- l("Pa쀦5C&՟몇C5ԅhm}T-NwgkrĆ߻’K]y#vY(l:ad=$thd 6pLR[+N=.69!~ڦB/`L endstream endobj 1934 0 obj << /Type /FontDescriptor /FontName /ZOBYHD+MathDesign-GM-Regular-MathDesignSymbolA-10 /Flags 4 /FontBBox [-82 -651 1289 1119] /Ascent 482 /CapHeight 675 /Descent 0 /ItalicAngle 0 /StemV 76 /XHeight 423 /CharSet (/Nbbb/Pbbb/Qbbb/Rbbb/Sbbb/Zbbb) /FontFile 1933 0 R >> endobj 1935 0 obj << /Length1 1370 /Length2 3024 /Length3 0 /Length 3921 /Filter /FlateDecode >> stream xڍS 8Tڊ2f03$勱̌ѐ%[v]![tBliĵDHfI%Z=`j~LH q CF槍P!($+9l $ Y-c}8&B=\"TVG# Pm%02H֢Ph$G': t+ti$ NF0H N Ug20F9L tv $c rp"ѿ) &l+2s=C HGoٛHd@q^$#@r!ɀ82qsSK8+l0f?:F20:u#| {:d $3I4㺐)LwˁD&:l zPg$wPOsB@w$87/[A䦛כJl/dAK y lAHH"0C$x {'~!(A))8 Ab?7eDsKF0)Ճ 8Ph'QQƛ-KV cXjneFcono2zHOp<~0kHs/ Z~6b܈ĥ1@-9;ݚO;G @eonzoPUecH&:~*>cΟόJ8RZ)׋HqUUEJʂŚOd賧^|L$=G) տɅrNN R S'O&(KطGjt?γdf%UxZpd|\76>!zRѽ(s\{ӵO-J01>潛NK0;xaJ0N~s`[㲃T cHr+.~RͶkԸ^3W3XS']|<#!̛wovRjg3_L?Cwobı y⨲g(}7Qg!dtE}_JÏO{'WVǓ/?kJP*w(upjh$_>zgb5Ew'JRSz)N4M>Zf^VE}=WD{,Vnw91>)0&{, P"5W4^^dR/+k=)$H9sc`'X%cQp=*aq Y\yLWCmOyyVm}V>8BH$AD*5T.3=tuKHy.lH<ڥlDfoWC/uvyBbPOgs<3N ]?˱t^CѸuCh#Hkڹu(5ijm< 1Y# $*&-1 (hV0SnoDwXA;w+7P. O*P}D];]v {;nd4 9#.x J~S \f~\L)fI9sH؂̯@lwx`Pj=kCc8 r\Ex7s7p3U,*"ͺ $+2Bu4>rTW-|s,Oi'-(3Rl-)tmB!]i U}/sZ.|t) uqhĿG{+ko؇Y V_yibb*/&9l{/Y+U{\*N֠:JEXN2 innY{XX,:ӬЍ/Tx"RJf2Z/jV"{x =Dt/-ZOtJ*>﷏s8GAapWo롊d0QӡFw o>\W]u7 3ljCɿWtk;͜T6"=qP>..8k`1w|Ce붋~T~\l!5y@YLdw[\PP!c/BM yE6M|8w"dZO҇ΑKCDM.jH` Bՠ&f`H=f sȗg+wF^R 95W[B%0w0|UEOQޞujw4 ωI}<̨)SjW;vHEWd@\d=Gˀw΢[k6]1Y2aE ~ڤA6\gt*d'ouzW׵ |Q0* ! \hr§-kiPqO ۤ lv{dU@sutd,֖W~lr`/&tK>v 7_ɼehll>vע5FO[w\ {üK5*>8\H0>X$usk 7fo+ endstream endobj 1565 0 obj /QZGPZF+MSBM10 endobj 1546 0 obj << /Type /FontDescriptor /FontName /QZGPZF+MSBM10 /Flags 4 /FontBBox [-55 -420 2343 920] /Ascent 920 /CapHeight 920 /Descent -420 /ItalicAngle 0 /StemV 40 /CharSet (/N/Q/R/Z) /FontFile 1935 0 R >> endobj 1936 0 obj << /Length1 893 /Length2 26242 /Length3 0 /Length 26757 /Filter /FlateDecode >> stream xڤyctݶelm'N*۶mTl6+mwoWžs5ɉU腌 Ml L< G;[cy;.z9c? ;9Vh8,LLlp;{wG 3s JMY\e8Y(YXۘI 00 M,lC?qcg8:#@(2v1-LTo4=Q{jqgkky* gw7 ?'X[ ٚYpp31VL LW56q5QsгM /3(#%Hs//E [?;LX Iff&v7pĿb{/gtphLp1[#;c [3 a6rvty"-Yeks'E{KT z|v+?jyܗ?iG{){RLxRnRtp0"kDy^/nChq0N*)|@Lw:\?Sa=#bv4S$r=ad45~^Q~Ep-9׍F5 Pweb-n)u7NiӬ[ćk{Y\ 9gdX $)[*MFƾ\ݤ @`+cڍom!\V(ύbJ,3A '5[/uȌ^ !?oTrF0{| h:K"mϦ3-SKa@ z`-(Z7yinQ!RlCYM@kN?X:dĠ6}x*VL:n(F&M XŤV,,-Z+#'9fcy^d5;$0NI@P9_]5XEޭx{/[EQ Bq>*q@, qJJE,vQ+n1Ky|V6ey8 Lxħ7pڔzj4#C5*sgKq/ c`knZa-xrhO2E g)FDm3Ck>EFosSЮ.@VYW;n2Gfui*I Z#r+^Ri6У~QVqn+u3ֲ͗g nw(Z~ sO 6?xʭN#Z F؏z44no:g*Z_Zc`zlIIn#7c ^8ґ"۱*'M(БX$t`tCpwB<ˊ^jA"I =!lVzUQ\>)bĤ; / q 6ܢd\Bg}Ұה%O"xw_;'|-Q AUcQ >;uQ2"7x'Z<1/k#즻@`"Z&77z4sRT0@:GG'3ys0M&BS% 7i%3û+,{^JW$r^Pqb#=z6"|Fe·Z8Ӄxcuz -cwl`c'F[ o칷fPS|ZI28G ~xubiM4*X݈Afس&LRn~L%]k2]]e lֽ.g-מ 3PB fd/}u˧Y &ZN.JbM!Gmԛ`i['tJkz&X-%E1R*a^mg@/PJӸ%LD4C#6P ~ؒ~Y4BeH:j]]4na(3MYnP,B$okl`C:Ӣɭ -ü$uCY [գx_ۗ5.ɷzup˶=\f<D2ha5vzQJ 7\ᗦ ߝ^ jC# |iir#u_NiU|y,GsQǠ._D Í|2rtblj Atn/9&j8X $PA"{ \U˘N1"C}{JRv[G}z>9IcAg$ BW+N4\DS^H$鼇To$O28orƆE; KFk[Vx8u|:B!30!i3D `tҭ':nEro3> =w(΀+z$ndWO0*J$+-|F9ȎFfAHgZE`q1\ӄ@M7|Lb ӵx)NЗkF,͍Dy3$ꈮж>-6d< eo^&6羬y6Іqhv%IӠrPr >Fc+ѓtț`d4WF,;q$US*}cͦ1ʑx e2˟0+ٚ$J:>klhsB%C,f*:vwnB5̧ -M($f\. x0p頪8B%vq,Kc kEoQ0|[h-IncARʹDq[X:U uXs膷 >`C%SQmz@ cMAB(MS9($N7.k~6^wT?M;skgcNљm)=2?^w᱗*LM AtNN[14N&}+J4ͻvpFqgfT͹lwLA9;>x16k}(ARșVuɅ7WkKVa;_ݣUT=w=$hAF~| C"PtD ]nR*F2Cb$SUCsp R sP*Wpo"NN$!C5>Al`ǹwʶWHHuVv.N\}G3Lab^d^;wd:GpUr*T,t i$]EPZAu3F!h&ap,sʐ wt(&'V Ƙrˉۥ5{!GsfuI"!lN utJnrH\jٗBg N/J^`{9WWn`jj>{AjQ\Abyqpo%?kX[Xjnw3R?Ⱥc=Zz6OEsh6&#P̮\ErtpQ$pAp1kvh# w^RoQ &~V)Ce!۠|Yg;tnAGKu;!L1o0Ht6~%n`x#,/boQĜff%ҕN/ dש>g&R2%~XHj)ɢ=}.ل8.W#MO8'ϹOպ4b5eE_Զdhjش\OH.# }tڂޠD飰4}'>bmg[3 ?HxtN%2&%\E? E'F0aG1f6WEVff6Be:oe[t-qڅ|p%@^@| f 犈[8kqܴosoԟ>Ttw)VcR*@,PP{څ^)§#gWZ WkP@bL8:#3p2l(; Ϗ8N `|yduح|./PFicc}hݰlJՠkaC]fF dtyT:Vg-Av `Aq ;REPX\GW{%mU=JZ9 X (sC E8EZ-ag./Zm1fg5S3Uz~>2UUD6A59rvoJ]"͜Ī~bp1ă8ɺԘ,erq/ݑ-xtn$XHȤkc8ImTn%mIOw@OISE%m%Łag >$͛MF9||ıycɹ:pf1~ 3;[Ӕ̟۾34^uW^ ]NO$IeUl1&fdi'{TLgn膙ɻYYíy_2/a4|NoIʁVw!{0-LM̧>Þ (g$:Éi#"hwGȓX7¦d%=CwWnt54_GD.Ezku+rD7{K^)}ri@$`KOJнf`yKOY );Z4L3{'\OQ5٬dVmYu\nU_N7MVG崅nIMSMYD#q`{؃^auJ*%рCW\`UDJ5t{j-1 F+i6G,+U5[Wuh؊7w:aA-O}Wɡ^Nm f d,s34/Z}5eEؔYl;訵g \Nr^%יجL7-dca-^(5qÜ }rk0g;(?o,*tѧV2%*n-njdBIOߩC!*Ds=^",T g‰7w ,-3懷WC ϞC]E{֧y%_^ N%;O1q%ÿk z3 ?7L__M;`Eh"G+ "׮d( i_qj1ԃIz-Euh/{?ڢ6.N>:ߔMfradz1ΙZuT}1֏}mgR;B3/n;?.?0F~$n%o'Kc ޫ"Ϯ]|Ouex h؅++'4s- X6h5Q7Fe_ֻ8 1r^w#=z|!aХ({;,xvW_\:jgŊ֞>Puxv+,wHK~+v0f1]f\ ėjoklv.)D8h$ˤ,!6vL$܋d&Ie8xQ9ړ)]-&2#r#k*:Aϖ i(5ZR)C5T#d QHy`cHϵK"ꏍJ~ NËif譅|&嶪'LIzRG>6*3e:o)z{pzǩ";+G־E ӑ LGhT:xZIʹ[+ nE xof))y FGSdpKZ'QC@m_@ ZapMZə 42s]&l?+΅U)r$ vGU9  p-Ou $ԇVER]fS~?D)#w6|Ҧ:KimmdNs$j Icu̢(1kFx2MZ[ru_;gŪS?9˾͎ݾ\9ع(o`DjÂM[*^|[U-hG+T oc:ܛE{4D1VFuXv^t>5kt9 KSciHZTReBו;\̴qD}֑;3fҗWhl!=1zndz]T7}:#emUIKw=ۂU*1#L! )S:M7I>,VQs|@g:\)2w޾a7 +ޝ=]%8b+Clr({GO/.ƓGpEK*m}jy%i3ďzH*UbLq}+[λ;tqAVEG9.[Owt:WfkE KR-4W` fK~D Va#t?$|{*G~fаh_cսjhS$۔D\uʓǽ2 rڴCgbL fmq:VN@s' Ӗ-K|/w˽]o,j޴D]6΢l6qlW߳TsnpzQ6@TaJ24j3_Ni"ËG :7[Ϻ$k\NqΗzNjI7 ׹O3?oAUұENyRkGAI@-(J)]ӳ!/<;v)ˢ*.E37r` oG9~g$sBA} KL[ !،v> 1ygAほ|FNXnjtUTŠc/Veμ $&k 3rYh|&RvHiFtb!<{Vg{AC8mC{|< {AS@>e|U?YQNɟiR!L?69yUbx㫚_0>"eb%i7zKe+%21hj $)qf`=qj'87M9l]t5ys6og0}m5WUɘ?-;/[k0.+ٿخf_ ^UZـRyVڹ`F^ 鰋mЂ- ]WFwKepX"#CFG\_徛ıApE&3Lq,riUqdBH,y-碑Ε1ike Ou.΂0#4Pͦȟ(XΙY1G@'4X3+BHARؙasdX)U{-v|3Z?#R&c<0-{kvQ Y3$ś405YPP域j! NksL&1)LВ<_mdGIr &TKXdn"2XIYkHz%1wdj/ox6E(QZ)y=ʩo%zr>R43s$ᷰ<x_OdTtlj!% &BTLY%UW`м s+$(<[_]W֌A\Gɷ mNU`kh>ծU%~DMڕiR{b%/_/BXL}T,qcGEcTWcVd;cPHDV͔CMCa6V&^a+Kļ]U+cR@ai%*Ł<k>V<#z\5ءfYT "'#AFBK78q5"^IiyFP5l\wh!+_9ƓV *Gaڄ0j{JR:5OoHᘁ6İ>@Y2U{S)3sP?3uNj=lxզhv&v{Z2|?K$~˽<5B 7D;# LQlF' e;,q=ɸ2X8[df*ŶEJ)^$Q`G.I9}x69G8h|ʜ]2W)|'="I|<9ǮӳJ8*8F~ϥoas}iB yWi,][q 1=/Yx։(C.hlr| I^N#(6p׋{7C>`'Ĝ c ȧȽjNj98t8햳(6ydڣS@ Sm+NO c(7#v-c֚ U &aQ&WǿwnA۩3VWձ2ub6)nؿ0&InYÞZҡ"VejC ) t7L9U9-(*-X wgQ,gV$-Kl9 # ;֯4)Nw('m5TȒ-eU:BeteI|g޾*V18zfRKiBlj+[[D8Z7-VC/Y,%У}yV|oߓ@@.U˃cXz|,_ɿTi.\F,(tnZqpRcZ( g$k:qF@A?_Ӕ2| k1g_?/a&tk8;?7mrxd+.[ J2ĕQ$ZoMʣ5yO}4O♈ߵjpnsE)K:PLvT̕L|Ku v@2QpLofE_(-0հ ;UYY/&ПeqJE0uɍԗ{JDiǀv S?'a%tk'Ive ^O>#Nz0f> tշ3& >]tPBckRYZL2Nxc#3.V3q/isQ,w'pgp,w#䜇j}HR@<>Cʙ\$kO+L1 +͵!+ाEBC"js*qP%z u4Iu/^_{6/͘F`O w`_jc,)H3A zx?3'`dꨍ.Yσ6TJ~C3#}T؟/z:`6ܦ[[:2.uKE2Wؘ̻䘡O .'cWcXBh^fm O. [ x=#Qzh>T%g{2V_0egݚez{[W46WWl!o~AD4y1vQ] ÈT[>LCXsICt-V#;zt ]CC8V{p/|g;"k}#mL`0 I,~@ Ut婈RD_}ɣg>󛺜lJb[Zo"zdWlm-:bDqUz֕}U#K1q@Ip+!ɐ'~ VZRnndmjq'iTZIsԓKCB1}Jk}*XH~k}bj'-Y}'remG=T"JZ}lH_bKgd1'R2i6Ì?( Vd(M& l>LihO7LNsx240e1a 閯*P,ʺ9鋵& xVdmPDW^$q`p3q:&S-v6@e@d$Kjk=\S?hX( KX"lCS5"l\ǭ&Ԛt<{Z_.r^vs@^Bs$5cmm%y9QH{َ/4c%1hTLm"j] GqL;Fb!mU4A( .2(ec5OBcVAs(&k c;JYFg.uum87KŖyCD~qn@S'q?H=MD`ⓙ]XLO Q<i#,k׽7.v9ݞ#L頀Ǽ-:="ݨ Fޤ@MP37NX/aMC2ؑOG~sX-w"i*AWU{`2۵@U1JIuDnKG7aͪ6< a0P,0q i c_O5':tU̴gC[ה+(8W4!$/)վUKx%ݺ=Lnh&{dRr -JRM˱|~Zs"μi,Evڴ6BJ PtY3Yc$e#̜)L 80m8WiUV;U ȓXˤ\:ԧC:NJDPewKP%'ԏ x䁡dkN1 b?8 CGA;n㏦0}o!F;W8e[2Zey061a "̜ tBB+I>!$^7)xk8B<`yG N9%| `8)5'Gx wlƖs'h( #x)x^ǎeFڛz-Q9CR@ .P6_BSSUg|:z[ZVGAt C~juH1/3{τG 3a55m JVݻ]d?g ﷹW ʭ|׉S]QuB08|s#GV8Hs{W|⬃лqLX\T_[P~8*o*I&ry_)&!b/خx6"Gx]QZHNvm[uv?EN17 7|tDOXG+f&hdiW=r|Z:8a^5jgģʃ e-*IL:5I6r_:e'Aڡ^+Dzj 8(ѱk͐0z,}Jp(c]Ps_nUB&r<:z:P,8!% ߣ˲NРڒ <ߩX|ã:k ӥp:7,d 14jbm՚B`|uxLYDŽ7~_6@|[VOe1~1j(7—ZcuFId2W;l l7N^1BI tS/X=-dbjy]mƧ4ر}NXb(Кp\ sJOD::wcC b:[O_FdUZY l$Ps5kB0PO2"fNq+Jh:{5Lױ O?L @BԘR9 ˜Dr,dyZ'Zp6~ҭhc8e˷|=ff;)C8XhDkN{iA'"CFv`pO4*׫X5Yaw°ە k`.AYQ`Reb)M|PBsDS~zdȖUYsPRe@ʏ3,F==$`ntFjH<@w)2x{4.u% XG ˪q-ޖo)YӒw]ӨrM覀o٦ gnUa,M**c&%˛mTXN܆7}du_FG(4M*cb5;'V |81ީG糢a/KQ'o;Jiͩ/z K3;]kټqU,ߤ}s)-,z1ts[YxЅ4 _Z?Mkq|\M1/-u ݶZ E؃{B p,1Owgȍ7&YHH+Q Do3'2n-_o w71DY%ˤ5GtZ$sRݛv&]F7~YrkUemNV5-79ˬAX;1UjVILi(FU1DArRIʜn9 U^/>ڠ&xtTQ R%rSvv(+Npps tNi?wk`ѝ{c}=Hjk0nLkc4*_jupB0n~dҹtr#Gh.[`հIl['AСwzEH쯠Wn˻I ܝoFH~Z^]%~a6QO\eSM"k Ǚ8ǦhVUXM]2 wA_ u.Qd ޖrōC8E]wPN)fhved^D")~ƨ.WfK+`AVG pH\90#uqJ0 M[0h?`PzŊM va>S*VI#Jz@KuƬ1ʇвO`.UK;+r~< |Y@bի8A?EV]^l_ot0&Vv$llAݪWT)kBu!;FusƝ@/M̘'Hl]$_'O,,rvҥl2(LP{QF@V44q0ԘLJ=f-*,c|oe@ Sx0\9V>~OqfHtu $K ;=]@1MԪ0:^ Ip%GC|J ډ Dߴ2wʥ/FgZLӪlvUp?*? *)X#gdx| IR~2Mg^blSiiv@&qEi0A/rHej;}JtaF:=Z}!{GC`8VT*޽~AôO}(}"͕Bx t=ՕP{-nj0S> i|u HڷP X](cVcO6MĦlv2-|enAw׼TFKSS 3 8nX-(Em6f <[{ע^mZw:aIr]MU{ag Th=4oZO}l3*e h 36mrvJ-‚cvS&9_iqcqR9~whb%!Fw^o)4ěs6X7}ԉSvxLzJf\9zELV fJsvrT`Rݩ7#2qB"}SX wbl?LPkCݑ2Ek 8)^T@'|_`}Qp K>4G R i <$\>[$SɖL̓gH㟡yȗFWֹыB)jGuu!27 ,^{kpY;KϠL#0xlOI:QټQz3@wnŏ9lƠ0dJ-?`4~ә )dku Lݴk郬%["eEvkl/]0I:hs)ɇ X 5aJX'upЊ?o},P` d,~ZTFfL9o}x@~~2oDCb\Q  8xzYRΜ[(i%ERh[ЇuPMD fY|52G E[4zר|b1؄R붋{$0$~=RJR !`$vpZkJ˩Vx7rL3!Y|ySڗ*vLMS>dJ?tRDFKkWc'pv=-9 J~G+'1| ]Jzfpi/ժMJzp*L:kRvf-+܂;@_oCuOkGu4OqYGьa7 rd֥+k/_6گ+O09ދ {AdBq| QJ G.?2r'`" =NoM=юqz25cf;D#β,nB=?5J 8yU3M7`D_܀s=8/a>Qڠ[v\z'6ڍnt/BP GQ?uBqZrʉ3-Q3kZH-6jnka)`ҋW%O%tM9:>KGx>|WZPzoILR +~U@H88Պ|RL允W~ϋ1#ŸqMql. lL6Nގj4WV ) \xð!$l Ğ4E+s8UK%6b6gmUCǚ߲*IoӲGL$(݄VzA?ͦ` U)L$@Z_lMYᘸcq&eil&bQ" FPq}WjTbQVcMgUN K7NjV+ c ў.RktZE ʽ]qZ>_BGSA?!iW@ٴ8{ _ًF& JO*\d-4O?x^n mӄ{6 Ͻ-oV>/7~?>7q5|5ڬadUU]Ezɏ^Y҇ЯȂkʫgx)"Q;[kQӻS+0mhdPŭi  E<82^^8m]2/NSsg w!BWJu F2fN4)>kJ¾Rߝj<6KEt@mãKZv}xz'n\4N*''.wG+6=SŜ{91PZ.L.frɯw\&H$ɼ VbY~Fz Y|d>LQl I!W``~.BKViNbPImIoK*q!!zHխR CN_"-OTp* PqHopzf%弔zJ8)\%1HM}|Fj xܼ BE bx<jC6R3b)5[zxzK}I1>ϘutyYc^ECQ5qX ZadBsv eq[ub,0飺25ceLaZkEEV=*m7i*sXG!mg<:D4 Hbmg"*i+]÷2#~'-RU8qSugZ:D払@bQz0?ݛ,]F+d(!)۫FNGa"z>|Tuò9~NU,D&p'Gvn#qڜTܣ: ف}M!SdjeL .DQh{a"Ã2vv_i='Ny}^Q+X56h;YGf"Qa+CK0bs1]ݕ䇱I(d?&lxǕ'ӭ{%}Auj o(໾5:d '>➬τQn)P}b̽ rK }.Cpk-c?R#V)byIZ؂qA(  6{{ {KDy.8ou Vv G0,:+_XzjK;&C rJ۳&ױ^Ҫ)}PM^<zѪ\ZC-0k zB'|?ǧ`!WXlP_p]_ '{H_8i ;至1U#pS%dnF¶=>l)1ܟwrCt@ݿ6o I3!qKztQBs"P?u?"}i+<2lڵ| +({xDyjP!BDH]#㴒9; ǭbn PfZBwOvB-~wA<v5#2L4s8\aTֱB2bBfBt]]oaKO(>)wr!B霑i3d5mM)*QEx2bgkMؗD [-rL?Mƞ2i;O7)rm7)iÝ:rO8i'du@fH șJFQφ/I0n%OU{\^GSMGhMBH6IlTgpdSE 0c&/R3{/5"Zݞ֒R63tzҙrE3FS=/glޮYtyyR &vNԶ3ؔKƲcG՗%֤49nB[>NF݁='-0,CCִ|3{h;ze W[+3Dca}˪f蒲P[w ^K6Tŗ>XVF*Zwns#NLƨM(}+mߪB]  ud*Y Ft7Hj䥏ˢkDxg fKܪKU 93BD'Bl/D @Ѽi$78IUaX\w,(cwVaAq20;#禪\aGTbP_ WS` PD734rJ29a0KT7*y(1tG@u&^e`M[cEi丽(OQڗq]7(4VC1ylt0qY9Ou?Ͳ{$i0$#-r_&[8Is;r אCJ2 ST56G"nk a=,H,|q>f8!\#umb bG$m *_u`> i|NYɐ`z!i濩  ˷DܜY}m \x5_4%Ůj7⡧9'뢐d8oUqW }u':<@0޴*;v*R{=؏v[,li(V:p2;|Hy*1ϒi#Hv8sS<ph[\d!EkxeC7Q6&CdmS>.Fg/dk[ Z{GCi1g屏h)MX:s4> endobj 1938 0 obj << /Length1 895 /Length2 31494 /Length3 0 /Length 32019 /Filter /FlateDecode >> stream xڤSt.̶-۶m۶m|m'3Nflۚm֌{>m{_}9*0LޕHEbfACN.lfj`/fjC$`OjHACN$leaJDIMKK??.LD&^XYQp7up3w'e 33ԕHۛ;137ps DTE{[/"9 oi3?TV*7[cpO7M&ET֌A+ +O3%3g[+{3%"zYZ؛3dfOt_E$is2dle q$glN&"ff."nvV#?{ycWg+O"t21#\`eoAjl0v/̦n_Cͭ)))ouzVk=fȔ@3HcYZqa`Co@zwg]ßv忎_G24c}fx~e1>7Kr`:LS*3P7/ԁhdώi]HP^P$Ug5'' )/4O/]"Y: Ҷ6]{z!; _if͐weOi6WǺnCj{h褪k+2ݠ6=C2O݅Is.; -X5S\= wKM"=uxAʅ-9+{ " k?9qaYCuzUic)_ %l"l-F&s \_FY\e6ؑu41a,& yɩ'jIV4o*4OYzc gmP]0o1Pث:UlT0 )yk0A-6eaZ}G|`nԚo_.4 '6-80IQ<>@eO{Bs4~B8?7Z4f&=43'yfX= h+xsx%gڲIFl +z|N2I~tӰ'ww*^ű퀷=/ۺE5 g߉ҥQ9dN8a'vEC/S@wHl}WCAwNV;#ԳA@dր(.gt} B(pe6^1zĿ߸cMuo]7BHpeiylpZ.vKn[e}!l5{GG#4c$ 9klXDrvJ`-b[ < _F'v4UpM/Nz83JN=IF՚ɾaʓI6󞇛wxC>rJ.Yu|N 3*SpR GS)Y1i@AwyG:(p:4\b1Hd%pg0n@%\䞝/fWQQhU""ǭ,$0"c77w[KoW0SY?_1<u'둤~nf[-7.lGzM ʊqt"CeV*c ,m,j1[TY#?7zQ/CzU"TshvJv>Z)t'Q;Z(90:ySokQM'u7_qIw%;kU XCs-sMb/8SɎ1|TڐzOL鶓WICz}0Ź:>\_K."þ5-t4B:G:ʵt 9lT-YHq~XZݵ7qT^wP#ϊk%I"ӄ%E2pMpԮg~#yS&zS`&O|qF ę,7C`&<Ym%,zdoq{^`9uDB449Od6jG mK9n:-g_V8KHa'/U4$)h5_Q٘w Yc9c6{xjtJ|jPōx@_cXEAN҄ʑpYא6g45# FDK'jϦVtزZdXl_ӂhV9Di*Q$VcAyeb(͹18X[ f%7.0c5)A>jΑJ񰢧;WG` ytd\Y cL$F}V@ BA+ ŊЩhDD TDϱԡΓ2=Sx#+!:jkf߀T1߬6}ƩWNCl[+3Fi`K1m=0TZEeDCa[lxj"-tWR6Nmi+u`\0Άud SD;x0S񊡠! ~ / /||ًi9Un".T~W6w,ZD){xl{oI{|%r^hp`jUWV86ĎI~\8#_44wZmlEŧL,y=.+YW!j/ߋipuG1,^ٿQ )?<}`}&s1'\4ҵꍍ# ,]/gL\h)s'#HJ d^H @]q%4 Zr~kf`PBp }7wނKM2f؃׷Vu `%>|Ԑev?RQJ]"Dt8O\<xD9>>ס@8Q`(ÁY8ٟק&$9([_ĚLo"Hڱϛ+)| -F%WX|ٸt4Z`aXb]=82G*2X2?!x)uE_A5)/="AQ׽~?yZMxl>jOdlZV)8nV;dd'6]m -G kǶͼ/]hhba sNYX\D>J1^eyS6W8` OPZ$k 𨀂B?ul-2Fp! ;|a]f{MI{q_Д84MxW9k#8v;5&t0X/TljIEPL8qj M!xYXm@ՅbiE0E&083cOѫoM4B@Y  O;M Q7 >@}ɖezr3<Qޠ:) $5pYC$.3NQ1ͷu{ ]9[[SKКV фX {yNRBZ:Y @PB2B,ڽzar*4eڛS<T*T j<*U.vD1YbPLUR0y^ 1}lKO8@tjjaQKSMYbhD=ƭö̷ioϾ9:_lLJuY4h(ܟa1ވ-Zt;gBߩRJ "2O2 ұ؎C iMꡳ5fſa!.' uG-dߛVw\@"ik*-)> ]hCX:- XHRw`s-$/\P`8@]̰BiYiTi&Y!ɁR/40|H5X䷼@*vH b6% TDx_H Q0b6O7F]0Ab)=%oyS*Wc"oh5dRI5"(h!#P ɤۻ%q~1IZ^p8ٻBbab(!o#변7fiH$0`'2{|˴ טq8έz%׼v1W.#jm&K]2.n6A3=C)[F)`nz6i#SD]\B\83G@Ą,cԷUN4g%e :A^9 Q ~R\swbt]UVdH*nz_Dm^au80ivEWoĦjI ] ?v0ŜL (䁀bϗ͜TSQ5g)[U@5?򾸿 Aen{hCeNܗx`;ׄ1[(֦}ېކzP6&$:+ʧ4赑(V·jdDT;~]*Ur<=G76磢sckQBR[^3Z"X[k6~!)|'ߪ^%k)‹Uo@pMҘa(K@d2,CX.k.C*I&'r";1LF 9~uV|ݯ:[#DYOcu-K\ϣS- \q ItNx0\$m0?V E1o9e n!FZINw8%yN}o*p l&HLB7XX|l]0 >y[_u6D,H8A]Z-s˂+[r2U-}YzƟ)ۣҠC<Zv #Tu$=n'[`Zxt@ wP~>ۃ2KK&0_wɞJ$0q {8.'KEgڃnfz؞iAӇ;Ñ,޾&?މw% ge-uǀcSZƝp/PT 5cOJZ 5{wL\lu&AN<"sOvlB t r*1ٓ P*+T׈l }~SXhfٌe7PEMIiHwdg3t,ÇEB|YmL#;8p֨Wzbx5FjM15q'Rf3* ohʶNx}UYoB77uxЬ#m#cޝ*v} ^BjG kXFR[>J)w`GR9VhE%="GKQYrq"by:Y[Y}Yl ΅__m/<<|a$_UMcC?=:ܘK8`9wb*~l5^rV3 ι%Yn\Elv|shVGu7HR0Ǜg]K"-Kr¸ ~.v"1 _0&#7mRڞxcِZdvWmGӞF;֛eKpl D[4W⶗m \'RUᯯy;&hFdb ҉L|-gsx϶dBYB3323\9C$. D*a1_Ndx3EO] ojARo [k#c=>ՎB Ͻ@\cym*Q?S|aV|QqIBֹ">.UJd5tJ\3Wiƛ%gx=XN 0~W0o)mG^7+PRi>V&!{H/8i}EsQNn(QId]|H:JY E$>Ά9T _PH:6cςV`s3/=i&4f<̼UNc[чx޹R#o$+㠼$o3߹+F-Z|5Bs ?KmwQڃʍ~%:44<ތ̧nClͶ+}2Pǽn賔Cڤ/{QL+3ʊr]@ 3hD̒x;kk䝧`E]]Kw\0c?뼵Ɂw$iW`Ο>%}`AQw)e^߁ˎ"P\{EPYQf`UujXbIVm9Co45;6^ΏZ,nWoxϱݧ2 55_X,6'a4@_Vg1iK 8NU+҂r Nļ.2޴V5`?*vm,"(2 WeV?wRP(wkkx"^)Ȏ#5 E)ٖ$Kv]>Ǚ2%@q3DZNTnK(FTZ?ur_O OpTz(^ vP80qp}}|0vnɅRC|B 7 3J[@_Yb"WoSHlϢ3K~n@!h5! إiRRYÌQyOzn%t3T'1e9a'BׁܿFfwohy*+k [7O3Eb%KXz;("w`V (*jrǴ3?lc 5GKIY> n?Mvp<6(Va_&{Gl1?pn98,;6M6d+]ߣfXN?Q Np8ԄY]L ㅳ\5[1δ26-# `P%7!p[%g8x!O.ȉO44MG<me{4Ce3b0`9y_Buy9Oy7m /Gz3gN%lPVlJB.ɸc5S_# [)>ѹcRO pw?] yG9BHx!x$s(7Y5E~{EhS WV) 1!t{n/rLOS\sjV`_ST1џ7ApĻK@>ν-g}x ؆7LzᶿX3Piԉwߘj`ؤ7?@ gnY3 ڔ*GJmTy5s'oJ3r B;-W99\/(}B[?&t"w:v(޺eUG)7n9Bk7\!"[?/>B{U˷ӜP@@@z`rh#%>nm= Z;T\Ru2>a̓`ڷ_`) f%s-L++Wq-`9H59"#] ҟZPyz~' o:N3'8A2f2;Z 1v!ݑeE.>bM縇dy'QJ̮R V=.Gta9cjS  uS sw\Tj0Ŧ׏gL%$V1~ V[:n2hWwT"~u+((V ~!0݉[~{X;HQ-HbgL <f%[ouc4I.F6AI20LXn^T{^B~YY0BWh}g}'fH5{ ́/H'AUZ~ډ|>"Z`HDd1#Bws3=ʫΐ^dri)? Z1,=Wix7#H ?iіPTWkᰚPJ|>}1:]TȤ"'g F?"4UP,-$5{'_HԗNM%Tl` s'BI!gS]rKWz'3hk-UýsYFDT J@sPt۪!ZI3 zXZk?.)6[ $x\זcQ=xvF.EdfDT1Vw ȉ CI,5](+kE[a,:=g;:5F[b퀽/G' Zq$5jlӱ b V~˴'K[-XVr\4EcL$ ~XZCCmoՃ',.>BN68d! C֍5W1 $bhHFEg,6t"k&^XdQ9!yrm 4Abˬ>lʗ]Rս]|mc$a/ ȸIRgx1h`aGq.ðx.gpђ)|\آP H<(vEQ4{b/%t|cqUg&+x,JeƆz\ ojl\ŅrJr| RkW>O:FHL% ƧE+ټ4Nּ-yE_{&\psQn`8V[(ZM&®u Ir@Vd`N-sd:/xk겑ϧgk7ÜoK4m[LKG jErٗ.(I=ؒn<'c!Sg/Fx%X_rK}? ew2NmC=a}+|!(?Q%B+(❌8?mTjuO>SP=ltqFi&\ɘQՐo7s\&K"M4+PjdgFS{K>c^A(nY)cdŒV|>7 ;'%DE6)痨݀"@UMɡmghQsYu/۟'}-YUQm˯Nj(sPQPU8 jҺb.Yoj;^ [UG ?&8g摒3иWu4_]9aomRIDA ;x PUz_Oܺ_\.6ʢS;yhn^l[ށ~iyG㢩X(5\]fI b|<+tql[(5ܙanqpJ)g+n3lY"' b#QǶ0(巬uk^K]{OnN0Sl0ٓc6=.>#rGP:aȒqMު_]Z4y!-l9;3nh=L4O{'y9O!A jƲæE]-)hBG' 强/B ~K^bNW[;!@$0Qwܲ+M}{T,uE%~ğ.1 ri&P]f^DjRtշ42%jE&~ގ2K/8 q7MP$D :]4,3aHa4lỴ[>drʱyvj(#=xh`&& 1.P >?0FpEv]. s# "0o[TMqBWU)T+簞dUE6ˀ#)Еo P-ۓҸM_Vqj:W:] lwz)3hH_mwHG?T9 +W/sCϳUk1wZRu;WA~Pׅ5ORIjfWt[ZҎxz-ʀo *P(=i~&@@hwퟶy"@M3Mmp0f(7֚gX$g>)l'6 {mVq{rs?:<شg@|)0DuD{ ;-Zkt/SW7\C#SӔ^ێ@{j73d9[hk0{2KkLY3HQJx0:M֓Vo%PBP}qls  sucPRi=A}qъk񙿆J4WWCщpSb{^F!/F 4*<XA&MgbMIct2%,e񾧢-Al竷W͎nJ}HS oR굉@w1 u864.O|<lgn(t',Q3x22ƣq@ψ쮜c( #ûLVqa߯ xSD$7:ƺQo5:8}kx|͡jݯ+lW&v]Jl;65"\ĸXۺpѯ>Y%(.?AgBG6oς]JwIZ em}:FΧ|,%X^zz D.26u}oGt>)T5^и=}/8Dm&QXvA+ԠEY ==|%tK,L)ptw!TpϏ?P QM6jLL)·/-Ң/Ao=$Χp K xG4(Q3Z?780˂󍐽T+{/" ѧÖQ' YR0|M' r𗕼F4 Bz}Ad{d>$r#ԢВ3jp2`]yX@2.;)Nnnie ,Mn%vJieQa w8J`47Ȉ&e#=2J@>DSi5G EbؤZ/XN}ςN(`YÔe8ےRx!1cS!c$+*!dzc U:D7bPrZ2>rږS5OfI3,U$ EQͫ6+(n#O,)ŕnNEtJ`)BSh&}Jl[qWYkT4:+p}oR4n3zbr)xccdB63LV5&H]7ea C,H *hA?ж'.>ĴEaB0)b;eZ?)널sɩ3'ZIEP0(: {Ds!ϙA d10چ+`#B6qk!d PU|?~sh^wL<1qB(>D"K2ɸ X7H_Rqbd8+PN* [W1. Ov㣙Ϥg~ D3.244pPw$OAft?8P 1NAZM-/͞v{C~FnfNbD.vgJa2_{yDR&`āEJ#c/:@g>?@cPvJP6_=_p^3?7d 7qxL"~i>ib_)l!F"!Vyv9D:Bc'9 YGt@{S'3őUuJ7fD"^Ľd]۷Ψ5Ə#ӧY}(;Yd5#3ō!iJ Ldmt|Sަ<95mȗTmq ;"E5*2<-'eRؤvh:61{m-)aew:M =DX\ʟzQ|ڄF6YÈ:n"?-# 6\[ל8 BbiW>Cf~{sQK0@@I_ZWw[I,)6[LSP]y$2:2Bv.kݨ|)4S"a'y;38n4 ):5:[}EȂSpzZM'W6wD=' }\B(Q_[wo(|6OQ[x*&a~+Hm[ d}1g3 (% UHsBP__K.B(`2C-Qf7/qH0ָ<֤?B8K=SSb) 1e@4\(%q\dY# +uOKtU9q;bFt 4mLч7Iha uMڧ33zgÈJ`%D^֓^q&࿖&KHMYJ71s򢌅vvo#dtZX!-zHMGQAܱ \,, ȝz6W[\bO n<$9O!V"p3 kgtIHʃIs /́t<|52V*La=̙l+N,mM6@: !a@%+/'\ْ`29J+E턶& Axkz`9|~ >,ԭn?-aU A f2 9 R#%† k-v`4eђ墕1e&[T`B&u\LV;Fʜ/\g;s_AH{5;lV,WovFb*ZށZ@"=r%ڙڦK`p5pNEq⍹*8G'=>wQUե;HM*LJbrc-$'H(/e: JA0^m4|+%jTŵ"Ɓ~*>`2#ağx Q> uߙ.h0&5ޢRM5W/ތ;8 !o80È]WVgp$xiG!Ո?iF} Ul z` do@)>6i UD;.sQHkwMPɞU>RHRs_] 4wq !3 ]{Ag9_`CyN-Wx%ENAzh'닶י;p"X{~9ACU_ˆ:_.)bW<W>!-?۳ '&H?87|tC"ܙ ^+eO\{ +c`$'%&o R<xcBr2ej}Nꕼ>۴ S$a }}ha)Rfku)Jn ŏ܉xJkXX8=pV'œ+;IF(m\_+0V"ZވHIp~Ypä툒㶞z|~ B)cn)5Ei^*\. 1'xoR6+B_$G25b"%c kV.zpZ ȵ,[VOHk|mau zζ'W .ٍ)Z1}̭)S]}^AiI.oLO;=G 0`fw E{f^HHkM#-?`h!"Βe(\jzQܦ;4>c7 땾ݥ;2K\ e&Om"c2|~Qj>~;+8FҮށLP"UYE WŢ摟 tO_ŷ R<3eP^eo]YdVoV"fMVII%'Ѣ%'d v[u߸/`HOH37I:\c (yNkGiH aܝd=$4.؍kҎ:E@DG@OMD dtTE$n1xڈu t**4,uRCHt1_SPG=3z˲*f@f9orBuh8dp&gZNnDϡ3F}6ޮ D6s Q*i3b߬??f-\5F,RiK cYc5X̦&i; ވP"~o ʡ{'wvHsgk<2*9V6OYLx [zN>AIHŇ_NG!)~ldޘQf@x;ҫ7L **Є"d>lWſL/b̧9_e7٬FNRh8R.@2D[co'R1țo4%9P߰c:Θt9 Sj[1ћc ]O$Z3F}i܀h/y7ov!{)wXĹSoSU͜ ֣jQQla"`QcvЀ{zoE#]Nscn1'.',5obL<Մ8#pT[j3>Rr+9ҩ&5E=ku y!_c؎5>y_T6曕2Rh/Dn2A ι43+NmtfʴNAu{CgW9WˏwkcCjX &<|fX.P4/mחOQd4)i1'k[Q>HV4Ɔ;ڦ 6V2g@ \7Sُ/5"*'I ]>25\ʫ [{4dF,%%q p-t\Q™/W ˳@K&Y?=BO ʒ+}c\gR Nd-XbM%R< sy):! }ɢ )'dvr]q{qTDMk/M$q j1MŘoS`uI?cG@q5mV[lA{$m V:M?kxUbuJ1edp$dg)! @ݼw9G*h`$A6 c@i7vˬK5$`!HE 7x[tۍ-P&Bi#Br Z LV[Gn^\U!E{^]"YNbhG*̏u'Cj«V 7>*ŋL={a]tn{R* g<{90Kz`;75|."͠*Ө͗U{C] JOӚ{f9~|lr3j 8!-]5L&1ک4O8l4^!2,єv "mð}%=OzwN %&s:z׮K3dXF'[yP*7ZXHv50VJBv$h.+AsL.'wz(&H݄d`2H[qCN{V!la";cet PT OI=Do)A:?p:ݬU_c˄6{-۬FU?qy VW`_,&m>fo-3X 7Mt,r$Ra=Ș{gTD(N˦n_979hDDVVVBot6ʴPrI!W8$fթ"svXI)֤<I>=€\נn¶ tzeڬѭ=R2|DG+cvZ|ܭGG#Dq<3{Սa(bu$ٜtD4#Lttip"+OpW -{hbl3`W꣕BH*$SYt}Rzە( z;U̮hإP4Ho#9pr_abd!}J <})[ئ o4,mRgsH##޴ UcZN#Lvcﮦis< z 27?'V>kIz~R \1N *L5ξRiJO"[M@#ߘ e~K:Jnb\dgQq?$w,='t{dbeh"-;];ܳXTb0i rF9.|g <Ҏn+6:gU1C3lB##u['l xϕr72YZBnҬ6IhI:4l_fsɧ+G |_ %oĔӖmhHWvq}$,:X9Y*xR×L6q4Κz곘{D t^MhzHs|rq†Wxd 1:V*lk<O `)ph}='c $eI5XJ ]8Rd!e!œbJAC]b/}[/ljkk7 Ϲ"QUO"2 <PSoG6Vdpa$}C߻JcijKG?fdsH-ozս ݗ08Rs,Q"[{|wIp-fX\8*_˷e,СЪ< ⮘-ITQ9*% ˩j\,w_؇%%N}|Ycm{*r _Pܦ6p𽮃:=]o }[PeA}]굈Gf) s<~v1?x4Z ,- yоÑ8y(5b:YPeoذ쟦RfT(Q?E#QgDSxr2Ը8tpܨ) JE>fi! :tWu3̰!rmWpe)BTwI5J%-du "ASHioIjh,a2v`m@N(._7g,[ZoH[,btƞS{f&49 ha@]n/;R>0oߖ50曆WGX(&b鹤X$֠kQw^*KS)TV>_t yN~5])H޿$o[$c%Ȇ=b!ѳQc -lrXO߮!twoĄ,4IB@-=̚isɒ$@|V@,*!Wݱ$Q4w䂡3 # qCw0C1Cv<@7BDp*˭!g%ܴ嗫D.k5E72,d ?C.U[io{oN6jKͥz__mKu#ǀk< ,-uP? u*(jJr(޶Pu~vuFBHw]:`C..H we*CL0U:c3`D˶gf렰äk79VӃ+{*@HJ2A`x,OV}^۪B76N e'BmZYba\Nt l1~uQ>ޛ(GRC-٦`6_i,,) +AJ|O2LCc_j3-<~z:y:1CL9olL+o=NԶW9tT 4SOasVh30DcCSQ:xzmZUXS MU>U6KE'mr6R[\aRpԔ8mGQi)ΪIlfA0iPiSPDG'Ï_}?xQyK'^B4f<1!GCmͶ=u?m# n5ZG[mke2k.-Bђ_MijF5r$6hk5Yʥ[胯kǬbE捾'樔,x2 QĖatb{ :ioy'0˚Gǃm Kq&:w &֧}UynOm/ LۙϠPS I y>cGХߖRmu ]IB0RȅN)u[Ѓqr1.+0 #taB Ha.D+p,m#%AOXesu [ Ct7Mi=Xc/G:vQjgD<)1߲ZR}QIC0q؏[;i^# 56/HR A(aV\TT1+`+J6a+vAר„wd},`ҚG(i:'|MW(♌A؃wCƨ>zif)*Pu>¿331>YG϶wd60 ĭ˾ pDWZmݦ͏>"WaX,j|i{5IFU%]_>9Ocuڻ,gG^aJiCh8lµih¢?H`nZ:RUgao}o90+b:1^`mo0[#) r? QV8V0ǰU>4O*j?&gEAFK7mXy 6:q)vtl0]j>+*ʼn(:MnH=xϸ/|쩣ϊPĞlyG#0p$ͻ^g#9r`u~4T{PB1MHl #EpzhOG]rMc8^: 7پ / >uȓ酴7ybR0CeDXis5e#{i4zֹUjYn֟O?+(coP;=) {=;wmd(8/\;ZTUq(G.q؛A|߿8O8^xd ]!r g7s|دVgoj ,s\])QZ&}bM/~As#X}/?@Eon[h ^|\-hl(W!+9Y&<:ߔTӛww7`٩>#Ѧ%M+J%nZJ(u8W7[-2US=qq1R(.Bv,/o ,$߂0%,t C6d֦6Ď`§tM"3=*ǧhYʜP B:{) gAf*;m/HeʯTqqqF>Mx-(`2I*Q20V/;Y nXI !&ȼmϗf^R'; #TK1eldei¨̛!؏oGҐ<={ڤ@L ϯƕ0Ʉ '\ǵ =4d&MJEmF4 |#<hvCXr$ÎFNFKx}zj޲՞Jlmnۋ0q[%r25ȇf"wF҃!͘ʽ?;РVV_"{_gZTs|Nyu|CRwʌGէB\ _>֫L7r#?Ƀ˜Y̵\PD|0M<4uNe7[+D.7'SM w> @}j7QUq[Hm[@J^nS~+Үi[|:ABNa*+n#ʌt!mR{\5CLuhU1B!v9DQ+޼빋(эE4<5 *ȋ>ʴF4Ы4BV Hj1H6=iz B(]^F:QvdsdM=os2gIC[6f <6UϢBms(ɯBhTd Z~  rbcMDo/? t;=+gA=RDF_U멒 pHo|6g7~;ԛ l*96i8(Ao>vK᐀-aT(hb%`}ݙ-*oRJ#q ؤVh7sr,9Ŀ.y ]";\f{tjdX45u=h}A*KCaz`db|&O\Jg xh:]Gw&8(T\an0%Snt68'W0{G6]t ɪbš^mʕNMaN1Y|]n!Ev_q"wz@&J{ o/HsdxiuJ}/|)P}J@r@"'X"ccѪ!b?.0e}N|MI:Gyܡ-[˚K _5x!ڵ?b)a4|ܡyy_:{6\L@LZE@B}CěyRCTC)J*]naVy3so5 XsSawlD ⟆Y\U!3n~eⲡ|5 wX2a]G7|OQ\0I ɮmǡO-j2>ifV9xzG8TԢ@i aVuY `MUǷNQ4'pVǏ!ydN]<Rӣlݸ dc&bHۃߩB~~V<2߼VXݖ-/(ly<.svAO?w]坠OYGv77xK3d,f6d#V w^3LHX溆 ( 711uA9~2CA{/V!T'e'*>|*x |jwѹ$QqWQ%xcR(4^H+,͹c0&9Ok:۟|||K,Rb1kdPk'9W%nRfaޠ&(mD@ ِwn0_~ǖ֭6H맑[4l_̺fPio\fC󉧼%I*ĬKKB+h&C-0e[`)#wv1?CR_͖fJ+ >udk:K*~]:Fr*ez)wL6~) ?W\b eO4ґw#j:YlBA>E6_.a ׋<9ecoF:It7H,,avRKS;~-k#LU.ĭ3wu/rOpaBtZC"4;  o N%VH)dٷ)mbGcގQ5gpaFg@@%؜"V :^!}z3UP] s%3 ܎7UNp `JPKsP5,@{° E}uÃ٩{vZ7H?2ʹuמu%gh|Yp{XޯlǠS-m];?G"bLw@<󵢥HYdXkLH^ks[KkqQT.D=VS$#*JcQ07-L 8TA$.Gܳ=׍fRfvU?5uO.pjωOabՊlo _{SN N>˷Z; U?)ڈ캑v"sVjԘ,>i ?Zh?۫9V&>^"D>s"t~s!č_$;YL2<7llBR!%Mnx;3@W;;`Hb$%~BFd*!q>H[m6_f`h{ 4;$Eͬ{ϿgN$dYU[Sm hТ&[4z&~} ݔ8J~ob`"lX& y= Id|;o'ۜ(KXaA\2w7-Cs$BC3ܓHhO}6J鿮EŰ~Ya~Ar>g%~~9zZ!T# 3HY. G :iÂeh|؛$b9R]eK0 #톂㓦50'}l@l|2u?rc)!Kӻ#Ƚ '\76|G'2=;x?.=P;/0=TKVɛ8I[5'߄gUZ.4 7̑C: 'gjysM'}V.%Y_3qV:Rύܼ F5xժsg&꽴ʸY/V/[Z n7 Gr,98g1hʏY#Q;)+9ewKX6tէ{i}ּ͞IWqOw'XK^Z~eqbbYVHrZ*#t$kKݐ@OMWp ګ9R:96X$A+q`!Uq[M$$6N͡e$&NQ+RTA,AKۤeೄLMM`$}T%I٥Ńj7Mhv >SU6|hHTQ$!rt4E`7ӱw-v`>߈g)_PD}A/+QhAڂ#8 kFRբX5vN ,YyT\2;]BTYfUR 87^=uR19]&|K⨚-ofR  -V4aZl{8 l!FppR }BMe~`|n:b$eM$G,hw~0if3A]fǜR%{ axFzbc=Ǎom9~1#VnQħ#\8 CaO?)0w`<.&}:ڰW"ە:Gx] H ]@du9b>+v(~MurRt~kGcmpaU8$O:BK.?oO)GntgkCwx}gT߬3IQłuI[ ^9Vw3v; 弽Nk sUsz^6" yк҂GEieUd& ճ;6޴ץ?5Px:C*xRxJfI=Jz}L@-_Ex||n5ߛ޻%Ye%Bj~TN\l;9$ |VjUJKm۳Σ55Ww~k_.kd¬rh$J`Wq9el-'`O gQ'44If'/Z5 {h7h9 MhEwO6_͌GMnujLEoC hGigUQna]acbNE\"tT78":X$#x9xǰ~|׃lx8,wSAns"mWޓ:YuyQEtND\3lw ' nO<:sPr{qbh~]!UMH) Kbf3L{}1RkNXh9e8vd!.t -.#Mj3n9o4Y3l> endstream endobj 1939 0 obj << /Type /FontDescriptor /FontName /QOBXFY+GaramondNo8-Reg /Flags 4 /FontBBox [-177 -270 1128 953] /Ascent 758 /CapHeight 711 /Descent -257 /ItalicAngle 0 /StemV 75 /XHeight 0 /CharSet (/A/B/C/D/E/Eacute/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/a/adieresis/ampersand/asterisk/b/c/colon/comma/d/e/eacute/eight/exclam/f/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/ocircumflex/one/p/parenleft/parenright/percent/period/q/quotedbl/quotedblright/quoteright/r/s/semicolon/seven/six/t/three/two/u/v/w/x/y/z/zero) /FontFile 1938 0 R >> endobj 1940 0 obj << /Length1 918 /Length2 21709 /Length3 0 /Length 22265 /Filter /FlateDecode >> stream xڤcͶ-Zmfm۶߲m|FwٮRmwټ+'ֹϹ'ǘ9r932#TYQBG"ejhèjaE GI)jaqr7X(89Y8ppQ99{XYHh4Th'q 7+G~<,읜,H_Nde%11ZX81+GK'VyX Ϳr%'#s'G{os K8fE' T4)-nohU$6q?3L?Td&6f"V$\L,fl$m,̕mf$&n5-\m-loH8S1sps#d/?rϬ$AۓQ`xeG :y2rs゛e?c  ?k]]ﱥ?0[[v24bN ;W;fE43}ux/;cSeX\nQuq0V f_h^/@rhM@t\?{aP<9#e6'bv5_P>?QOB$R`]Z̾ <z~*sj+$ʹk7*9&DXݿ\*EK`WeG :ڧBҐD%^B;_Pxp%cfa E_Jԝm|@>DK pLI}ۦ>_ۅ ܬȧ~̦0^23%aAeo azqo:ЦImXng $޽fţ@OݩE]c4NZJODn ,@ϜslI2(3(p'עhͬ,tsÇ JAҭLAvmZr0mTKqq"ͣo2' u4äYC$`t}C0ᴐz?/ܙRv%HWdJ얳L5*'裰vt#w%2~Cc60A#/-AvmiHJ/#qFYJʉ6So@kF!_䌉3J<ﲼ8nQ{,KЬx(V㗼M:=VyHq0.;Ƽeyfoo"Fy-ZHWYj|Hgso\[߼ρX!GY,ĉx 7_/Ijgqr*?%:E=U';ӸNha66n8$1jy]nȚ#2fJ _/xYXWq K&`qլoKVGX+:tiBp}w %I׎7ʷ]1&7͹Sl"X)&6+?$(WSE_'{z϶zh^7ֈRɦ5fMߠKN%`]@SʻU,ȩVwW`,^i:kf9vNܦ黝:5#h^ .lR4xJdv9K5WSx`ĿU,PM 53-G}`:b:AJ0yWqbe_huso}(еX Nxq{`3Te{/G 35#޵ ˋ򨵨P\{4R[lh6V A5rQͷ=knR,n=LƂo0,~ѕa#4! '^Ede 4 ʨ*^NFcbǿs-Kӳ62j0k8~8śλQOp83b]fcNRCTw~Ǵ@Vw }/]dy*HquFܚ`%MҎ@ wHADI9[ %ww㈁܍ׇ`v@dƒNK`r-gy"4 Cs4*q"3 o.LaNiIxl;,HMV+{l1Kg_[#Az'jYq&bj_Gt["$ԣd4j -# [;w 0ymA GR<{=")uc~oh ~ta)٫5nxe6eX4J1c{pxπF/LTY(s)Ǩr˛g6F tPC(!6| ?yB))[`nbZQHסs|Lbo2PV bac(2 I;콦 e>ԪG͗@밙l1j%s)U1rAbhn)O=˂L5?R ǸvV(ս}aQ,{|V8^B3u;c6/%(zFx?VSi l@㊄W+մkr*s7gbl"@E>A'լ GVnN30X9^IJ.WGkqr/XcRDD]lKEBW .1nCJ1ww{i?ώH1f)29|Ih5)\Ғ&q_ Oly:/%Db,#m듚|Lk<>ܱ UTnGo}rɶz-Q nr8ʼP{o5+ H9 z 2WK}OO5͟dpl pS3taQԙp@]ᢡ0 ٔoAX>%^z?@S$PfUo:%#;=wT[Թ[Uğz T(-WfHtJ)Uh+*ٓE//\be~CSk=54I*e 뎞[rOl/b g\ i1-%P\K!IarqڤihʲϖJd Ik,hЮeC怼:!U#/Xos%Ŝ)g:)M /XI_~ B^Fhv0 99}\ԗ[V)E/HOq¶ߗg+9sդ,̽Klڑ,jRYlcajJG(w)lP>(ܮ,g$C2ƏO4&l0TBwnhOΆe?AK0=wtp]r^M2sjo|%㙇QDT;s_za;1f굣 '>֚ *|>h/^EOHڂpmyiA_cL^jՑu-Ro9F;Y9`,vy&|WވJ9>{*k)«+x {P%{%=xrgM=]u0)&QFFfm)lޣ5;Zɇ6(C^j8vb c=|4:=,i? &޲\]x9aGz[z98-8KAo:oTGr QB46j <4u9n.6'_TNE*0$24N[*YouQ!Z!- V5(x΃ABv*`K38ʞS=n(k_4HjT4I{yntlM9F+ B1yIkpl[?7p߽Ƙ%UB"Y%_7Zsn.\_E`2ҵgc7 e-]p`EKcXlئ1F$N˨B hʏ8RV02rm`$KEG:=3%R4{i']ugDqOwOJ^.Jlv..%L 4'DN6c i!WԇCz/rIYmjY#-៮lforcw4wݧˎZKzd]. _4;N-4Hm pNEOiB%0e}ն E$[ Ywm $P41$GKRZ4XNT&TS^a󟈙[Fg>Ie煽R;pI+ڄ `7d:ҩ2«koRkr$jvWH~f{JN%]QeCz#A6Eq ^}㐁Ȇuw!wm*ӷ~F ՐI/" &j8: 38U8M^uxv?,T ~]]Kn5B-_:B,ł>g U6+ Q)$NzP҆X̌:xaP D~nIG:-i]߆c27qɎvP LQǃDC#OKFnh5+.d=P.5vUPVV阧he?ic _3fG*B}+;DŽDo@#REPo٢Á]ZGـ0EB|ng- jt*ebq]<3CLʧ WjUp度:~9D$5qeXz@҆2[7!cb ي#eS~jp|Žw^` dSw#»S a5J!sp^NSθ\dqN(u;OŐx6hRR,9e/&ǯHwYcALY)j(~#@4~"1Fa#c-F} " Pg}4jmcˌ`,pXJ_ld A\%E>zY7V|X&sլ ,3> iw/\uV.Em`3C~7;OcR [R1al~MVZPn|U|k[f! 0s{/ ij-pbABB@Dt>CKgVPH]|$B]2=G5A2&FJ 3 Q&5: +E"x`pd"7wLHNJ&H,)Wվ8߹2au::FK"q9aM6xp5Zz!,uK =y0ٜȒ}(Y1 V1l(.;Z_|Q{| 94p6BЊU"yiAZqXШnWp`I+|@c=Fu %,F#`c.LT|jĊ]{70_dj|i\0>}B&%kFTmiYt iº]KU;<+ gU(l_|ΕW8u#5ػrZȣlt5ƸR~KG߈UyQ;# cUGI55TS9"hںdb|͏gnw4K/Ës'? Ɋ-I]$1];?}эA?'6`ƙoSB.c z砺k_*zL -(4 Fة wKP.i<dmWL|agg̛JWikDt (^ⱂd7Ru>b .*ַ1H D|6MzU .(S{kTYD³`_-?تmF6yt4{\2,B3mڤ[2XKP&%k6nˤ\S]?} [alFE[E@wƇdI%GnL86Xeg~*`~G¹w2 KHn`aO ,b:ph#=v's:ރZMh=9Ӿ}av㇖>PtcY!ԋ?Q“|? ⽐kZw1}IU^\u+c5nR,ygɜV[@RB0SSz27!˷fq]jdFkc$^(W,?o~Z(c)@BDqUU t5fbYx$`jcB1WzRR)YNɏ@KT8S"_T$s]PLN+v۫ $x+$#Kgޡ:ian#* 9!V@eg7|NXBDkuù~Q<3#ֱ_hٜTu0qZŇNʏO8bOwѽK'){NQGPYS`W;Z^<"¯씔00_<]GPPMS5[1Eoҿb._P7mxmtS ~jALwm/B70@,/4:ۢ#BDaHG[=.44`Fiݷl <ܗj:UAw"֫-)=3#EU2\af5lRa}s<۩ط(L^6",Q`[L3YI*=8EK3 /q_+Yh"NOZP }ӌ}77ۘsˊ۸|ə:#ΤM$GR3~DUP+~fC-8 uc@O`uQ8UN QdݿC 1!QacvLѬ H@7c\Eq{yr4Z/=4JgCU'QPGU~لіk|\岼,UKDL&Dbovr.=iKc͠ߒ6H?CUV {YJ lz-Z;'>AKjP""zY35O0|+uJAbЦrh\뽸J A3մBmC.LD>AP4uEP^U>ACTa?$nRǧ| pV|飾2{SDE QP TRQ(v L'ȎT]3$Rk+Ĉ8y1㐥x0Sn~k,~8nLo;ǁ!E௮aR)!V[QXBG<|ŭ Řʣ8Sd筇 >pL:ph-#ǑT n! ;!1z'_ډN~Ei^HmP7)C 7B.D$3_@7=9-H;B׈$@>`Q{#aFW,J_-煔x*ԈRDTO$JYƗRa66xSx:]bq3H/ k!~?9c0W =Α)͹~ 5u>e$t|o БJNQ );bQ@qf̞6 O#{pO,HFÓ&'BPowz+Û}8QPEN3Τ wBo93jcvW\܉5jKρTߑA= d |HP&4s\[?nV3fbd\J+#yJf*̱ww&o̸*7߬]_,ӀB<;P F nQڛSwnL|#lo[J,ZUmnO 3yyp;^s5WUyAp^+I9aB}tIF|>ĿĄQx .C M ԫ,`}e&m塄EYnh٢NOH`9KafsCH=nob6]VnW/dopcA`?!kPVt8j\`JE8dҷ6ږ0 ԝ|*Z`UL(d1h2:=?-=SE,vwiթ0_#  0LKC "V6<ӑP *!0lOG,deW4_ &UU04.o#"k~7MD4faH@ݩ M1BⳞ/" ѹeUV 膎z1#NfM_U0d#+#.Bm%&AF؂hOA Pеdu.>CeУ"Hųݒ9Bv= C/SQZ&ᓤnz4{|fRn~}0SϏľ!?dPy;t⋑N{gj˽̇Y$;c'DrWd7>(<ݹ߹,&ܪ;}rXx:/ |^( 2xûTL؞ pzHRF՘TC.ck>w@)1!5:N KCb~Ln}̣{Ygr 2Pjb' Aw n7u#)x-Æ:;ݐι*ˌ(Ɇ@L<ҡ`F~;б}I`h'ts9x{'5ԟ[ `y0_nnkI _|a A<^X!ÿfUw{8"@:IJ8~H]C浤 ZtiyuJ"AKN-uu,|I5!mBA/ 47,Zj 1aSLA]Ԣ7E `~q(i\gd| ķa 僇Ŋ(mS,7T/]Lb U.(:MI{stϾyY -N15 ELgt6Pk׭ k1h À8<Y֣AYRdI9R G鞅Ҷ}}3땇F!ͩR6L?Dġy#F"C% FoѮEZK[]sMu)wm}ے \w7K $ϷL!JaHK:MjxBAʽ؋2: L!]rlhn \Ӗ1Kc4CR ONFªi|Q-`˧5a=nk`<+C*q &x1_GlHE5apn_9ELqً;ֳru/1/ cj!?^NR2}`PJsh`掀64 S/{ x$7cBᏛ4+u +/$ fb?"sȡmȐ 8?TN'568uR2| i[>YXXnPtϸf͙Ƽ>i(>d51sw?+皁yEw.-} 1ıJÊތx\kUsv@TY" 3ixyZz6T|S+yuDgv@N YMD5vMnNwf;CK@MVvLr?%=|;œt'GǠnFkh@;/:~Wyv=Ѩ ~҅bxlmAaV}Sr蓜KKy%L|tfn2LHZM(et &0J"~0+YŹ0x2070yQe\+#B=D9NN-7^Uטb5!jTA,KaHNS(:P3Tݧ1aeGu9O~N4@oUq_% 䛷T=lHajO~k%`eH3Nw,͛@T<ӀKb,-cpëYsj15 R*)#zhiN;uJ5NC|Y0yYg _ól@/Sn!B,1p_(bz of(ZMuz7tʓ-~!ɂ\>..<[~tgY' O3ږӜBs 3kx%-)ުpYXN-mW>JcY.:ۆC'P)\ ?"KG0ZpLdj; ԙV!H\ z,HŃO}{Gv| hCn2{)Q-:Z0؝}:K ߗVx~aI sJ릱zS1q/ ?9$㦀ESujS?5W+/־=:t /8u>$rh֣;7 NS4%yf`@=*mrjY4"*ن*j 2 n+){šc.A>*mtCrH _AGQg~\oQ<S1 1-MչRŠ$n\ AL=8;kkl罜 the&j[ Mi-XrX_l6ZSfh4{RQZ׹vJ#  =&6 Gj~;?! 'Pz u XFHFB0+j#{ܣNj fFzD܋˜P{lwrp}:gsP0j!jFuX;OvOptq0z.-hՊpݺ\ n)|o3f؄&@4M/QhY!-*OV,٨#Vޯq} =Z?4vWcFTv`rɘ2UG04hZ'@~g1ip %O\Rkpל5߭$ϵFh8J2F+B! +_ 8c2ؼ-5Z[A38)i?HcQ##bMG".a֖c`٧Di&-y'!)euB1CgVdiN&O2>%x, q F O3-= /}>:[凟l Hu~s+ԄR&m w'A<ٯHlp+ 37+H~,/,ۢddì e H#NWDAÁy' ] Qjy[O{,,,+ew'Q#ZΡ{{F Lws9*}S,rTvoTNSo93&(Nz)Ӛѕh$h+[mjP$b/e7~.igJzzoB#ԷhhӮ) K& MrEť^=Blsm1/\ X¹r`-p+eM=*5ݵ:'I/ߺ ~킓},صs'î4$t,A "ŬьJz|/~{8-uY` @ Sů@ͷLDowʋ3:F/E41=F}M@jQ3 lxEE@1:4u ysZHz70򔗏\(?/J-=5Z4ZC*w*hkA;ce /^=qG8ӯ`|[ikw9AhK7QiF@|$QX MnX3}1eԵ4VM0G:ay0b7p\N}ZTj cqy +%T[Ђ0^0h@VbD>d*(h003Bf p{ pJk<;wt*s)s+w I61w4ȗx fVl w-Sђ$hl,2מ,*C@hJ};&*ņ4rJ><[?:u; a +G;㡚֒_z*`D  %=+ Ecb[1_ |" @. @4_i>\Oxao/oi(!I5=9G!=[tvxJ"ؖ-P-V:+$mVSmw;AI4L#68p8 f>JYL(d{jH(DI=zKԲ=3ڷVvVIV}VpN01vs+_o L)DjE}c(Sӯ\ནytI9EU6t'۩G;c|73錎ߦ|Jo%nB ԨpXҔq!6):$ٹ*_LCۣ޼ԇE?5kb5"ʴG;0KBe.rr|YKgthw+4X2ׯ q2w\@^Jд߮ꕻ} Ƭkw"7x\({T~H~Tksg  XSB0ױ7=`k'zߘC-N&خkznX3 YO7 QP{rI` J3/)d=&hNon,Fx~氄.;ZcɻzZ3]?5eeTϥB4a)W ȈL2dceЖkkM!bF"C } ˿{rJ@1u+! " {ࢹé>RK  iƿ_r@.R'u5Ch yp$A ퟪ~] *^QCK0yF28.hEng ,j:Ѻq)ڋ = \礣D0Hq[ѯ#Y&n<6VQ,il)+%I{;rI*vŎ(phfmFd@,\;rQMdp`p{QD˯`DmR:@ve_2M(}~/M23Ub7CzGHw=~q+=;1pLB2Ƹ󿵸WH%Aҹ?2pH<lBl2hcy"ab 1r5ۇV>]oʭ_r,_ɓO4JȜͭ|'[a]/d#0!ttߩ$:}Tqѭ?3҅cƔUհ팖3:ny>v1h[O~IV& o& yKAGWϝr*& -%ī+2\4ooævHnXϟR6Bz&y:ZFhӵAZUG2H00c([[N$ ^54ԁbC0L?lg")>R jS-IcEt;4S]ݠސЕ[>]2p@h񈂝*VJZ}pʖ/&*8fz٩=oy W"b5ػ28߿gO8[9퍼U'qwbt',z(gB9 gq23-OX|nخ9vl6Fl8 6<1UvP::V6QQ6e(\2NmefA0e?}+y# -QZ]CB1J{ٗp`Tqr u^"<_^࿿iaùG &`䕔1j<# yr&C #T&UXXm*A@WELp\nL9_RCcc|QҾʳ1 0٢(Yt,SV%cs"d# 3)=4W*}7fA֥A6D`K:{;,SѧwvZ4([nb(JFSW lǹցAW:41Va/;tpoQ9( 9[a,jP>^ aNݭb Ni`ErrXAȜ7B5%BqM_b_Րy4q}%'\:?4UVUE9?&nb$Ӵs`[7=>) $nh>:+RUՄ7{ɫ'ikc@/f7]v<7i\m7uH%Ev*7 &̺|g hk#사1qx,ְ ujGb_@m 3;vjktlhZQFQOx 7ֲCKk,&-;)PA6@);&:n}eސ4dԯ6{&F[蘚dǟŸ6m:o4p#Y+/T tH1[Uf笋D3 cF6EOƍc^݁}~~r{TдaR?҉ jzcɖXl~!w`R|u?8nZ0ѫ@1]ji>m$\~pOutVNXL2f UEV}**eu\!c|? *hMٖ 8E x$)X)CZƵ8Fԓ.ʔˇeɫ{Vx[ @3KncTOV΅MGrru%}ay$F\ mCumx2) ۪M"=CG|%!6~9_-As_-PqO.F4r|[ͨ{Xء&5 CIbp81x\zA\3%M=.L0`6)O[Ƒ}M"a;;{(SV}Vz#Es}i'dVz 2uU"[GxeA.MARًgq~)d xmo{ьR(KiiqXQfҽZ]S03Q/ĄRI EY6{U&OPa h~p/oM~" ņg۷40 sm94 -֑A9c-<G#!jj>.06 V(2տ Yj@LkKʠR|1F˸y9IՃ\Ӗ3[MU1跕'q)t05N^cmZ4{֠ Ts+OKl?9Jπ̙$!9lm Ӂ/\NpY 2$vsSøw!ґ8Q,9$r(`I(Z|YTtT;`,bx!4~'`L -IZ) <Mނthb@Cwf*3o~/=m- x`b6L7 U۵P@}Ү8V`ZqTw`FAfxBj h´r_.| >/x`oxy PWV=2LSI1jE%y+7h RHͧ2xA{[H쐩sAP **RWIil %or7wUsa ;ǔ,ɪ7W]QY?%ȕ&,5R7ր; endstream endobj 1941 0 obj << /Type /FontDescriptor /FontName /OJSMXU+GaramondNo8-Reg-Slant_287 /Flags 4 /FontBBox [-177 -270 1128 953] /Ascent 758 /CapHeight 712 /Descent -258 /ItalicAngle -16 /StemV 75 /XHeight 0 /CharSet (/A/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/a/c/d/e/eight/five/four/g/i/n/o/one/p/period/seven/six/t/three/two/u/x) /FontFile 1940 0 R >> endobj 1942 0 obj << /Length1 897 /Length2 20633 /Length3 0 /Length 21176 /Filter /FlateDecode >> stream xڤSfݶ%mgضm¶3lێPm۶mgvz1m"VT276scg&0r23礓r1"dK`o'jbM$goGb@N H `aBDAECC??!Dƞ9,9;ؚٹ#Dd 0q!260W!RvDLM]s3sr"Ɉ蟒LlSikoSZFˬ 5xoaof6FNI[[ƌ0Yafp1$27q67fgjd3Sw13j 03sv&bcefg忬3(Khn+J``F?iDtL\6pqqW.\D:LI?LMvD*.FvFN?_?Sfmބ'*=+å3oxRT t8ġA0ƾ?=|gm}4wҹס4h/ EOu/)U_!yQ~|ƅF͢6;ޤ~'t U[aٳIZ}z'R#J]y3Px!.Mn/#LsdOCow7HGS'ogY?ii퍍 4Y]Wb>JU24!ZYidX`*DxDX?vT؂ұ1r`l'ъFGt HVQɑ>tܠ8EDj ==ˁ g>4iP}l!bkҸ-\` 8>uH7X5_xC~,&4;k .W0h5/FRǬLZ/K/"i84}vcsX{*ۂ TVsgT_#ˏ+ zpo'.;AC.>;L3.0xZ}h:Jh뱕@%~J˖u0!6^qrO0Lc{nH.ǵgs<wvUS)-I)LnoD4<0TI Y6W.ѸejA)#R\ g_ -+bIX-(9`&bJMoȬ q~ >=:VǷE”:HuW/Gx9jWۏwr1M൒)%}"O_ e`J&] b4!4҅#KƊT9mMQ"5;0$@wWoD98¨XY!]~Oz*-Bl-"d()SZ;AIlDeaNRd@5.|윊J3 { apU77$fD$R1v7z+3-E-B'v9כ| T{bT>9odNTOF#帖{N具4/u~/Ԙ'mH-"[OM %zP > M_؇Jiܳ9bœtP;g=8Y$g-i@)/E.;QW*W#42酰-&NG/\8a7 RC$ ųa\Or(7]%.!jPN:rm.O @cQ'QH[(Rüտ5D?y.KЂan7taҳIE'r$ =f&F~ϕ- Jnt4vUs$L]r皼~3Qqǎs^(̇ݗ 0X( x:O$&)fTr&m =fJޝZO x'dM2I!$`ږ](k{)E(p(5L<*>`fvU+}:+Tl~_I/W6^YKU"]W b/&"6!]I!+YG.f9~F+O "t];4(ZCK5x)v.ifPDb8ǍAER>Ӭ_{:e ha `*>pwq>svz$y]"Fߍl]yǸ_x`) z9V 0;͌ } _Ԙk 72zCLŪJ7 .؈;U%ŠurNӣp}md g[uo߾LG ] ;RuIHQ!QB=3~<ٔ\6u H3N @9KM~즕wIWWAG_XmRJS5};`ilu-P=98խ/?7A1 x|ɼZ){Km!ƾ7^RU$۶mf%lvz ӂ'dIM`N76/-d9T)Cr$/ض-n_z Fnpi`E /:m:X9J(NHR;ƣPޭF Nh2r8J #VXgSk*+!,>Ä񁈔eaT86k^91Q-CqDK'77-eh*8 *Xk/8Fk ^[»E%]Kp%ߦ5"UѭT]:\S4&:ف: ݅=,ܩD ɤc9~`iPj!L1#c a9KŘE }NG u^{þ!J|X%C<ս;jf4e&8)]moonCчڗf~qȅ?:"7LDq/)α^r̓E_m,NA,5 쮉 Wm ^"?]F皜;ޑ-')MdpM'('ʹceVA ,Ixҡz$ 1ݢ4s r#(%Ǿ* iv9QZ|uG7a|D@|=BfzS贈ݞzZ'%o>l ]#UU°:kXacȑyn".-"?ݻs|hMd gpdGT>yLveG$i]MM#d' XFd lZֻu38y+y2rώAlo;ifjo[:55^g /xj>`uDoDؼ!Dc{)4vFK(%Z9pEHR``0A&a_,-yCp_e߇]} ᤽RU՟Hpf(tkHNJO@RXHNq\^WYN3CA0'AZ[gϑ\UJ9{& ڈieu2^eEJxZc*((ٰx{Uu'<ك2ѷyUMӑw;e CgISSbeQG-h9qb[(<c:q̙|wӪ"px:V3Z`+oX0ǰT"=AJҞSr'܉3pUDFb HC'yi"OquRnd :6[?o*U5:YW9iy3GT4C]^z(XG3~ B[îN$ZNՓO=NtĝN3JdbMJ)W|ֺ֝ 'O}1cyz+9"xƲr6E(vYrဂ2Q&齌@e#bP0DW5Ǟ}! >h~hDe )gjVWthT0 O_xTt~cY\l2:!$̺Ġy/晕>oTeܱTNK M{_?lzcA FsaU+z7rުAH =AվI#8:y#Xyu7S`?eDr_R;QrjѥRlQ{C(;:_ww95]#ۋ(&5X:>=]0/s+&viP^)YMMVPP7+nH P;;'iGjoR)oXLUe2AS ;zX6  E>CJ=fX{)7=:#R7f]Jdy֞2VΓilM  Kܗb )T^aBE혨 'm1vyit1o@d@9Iixx3L9S"p!Tx'`AҩK8ʑ;}U[)ʓk-vqxǀFG_uڕֱ,6XR)fթ [t̖[% x>#\:4ŢsjF,qFfW5& O+M$)@^,hZțR. d>h ’YMf7d{ƍshjbGEg[r&'07m7-FkrP71KeT <2:7`Ŀ1kJ;۸|@A[XMPǓ&XbO?l~,!NdR˳#-cbo[Z%,"%+st$RYۏ0:gM_} ~V Nڲ}^ lsM$N<+Z_RNcN*bܼ~WYK _m "oUx N.ۈԡsQ|H eKP lchtX41+C 1afGoJ=B*Ϊ)[ :f۞}q}No fj`'zY71O*;&i`rzWO \LwI9H-=W8yf>uo4782ЕXf{iu8F!e4v InL敎>ş;QHw-~lQ}jyΨ[%vh- 꺳kr^X5 wl\{ ڃiE~Q9W"ׯB_d,0fawѧ%1FsDʅ>|e*cd-]@PLgb|`!t,YVI]XK6T1Xk9JF.鰙؝7A y}VA(>=K6JK`F,:Z7#9mk<\~, *J)""V݅txʔk2wg}6^2*{4n°)M& ܯxHV;MYE{I ;T .XfenQg☀屔˷A"_f?%X3x29 F°N+ۯ\0 3V^e[y(Oi@h or5Y-M`R'rΔ8JOƾl;n:1Vkw땢J/ȑk[ἄiL$" =dsc#o^;7GWfR=L@G֭[$7z tu7g5gRLgMy{gJIh7Z;_kLah+DYo| hC|\bFU5g6L/yzC\]TME8"R d5g{`0%ϗC>D;˚BP@CKb{A SBB*E3Q;y:Yסz* 9h N^W#a9t*5#cͿlXZSW*x%}>_b1 9sDs.DW@~jDJnZ+儞)B3M .|02LMOϬ=q"!ro^pQRSNnfkk8j!=p]z?&'+%}e[ %ꅇΖ&@uoL_azkR:fr2؍!+Fڐ OoFxA/ov' DVY~+ASj0~+!س%U]Dr%+"_iHy)"01y("PԵiugVf0Pf?`H-O`ó6wzѦҎv7ɇ4;2y'evwWR&F 5}laK1ML@!#3@6Ijn8hR5U|nu\.V@tkHJ Ob?G%U1WK=( Y\ՐAt[lQC^B>0zpLj M.(_A!2{/9>FöZ.\BuUpB-h?o/a2]d|e9o4ӳ+hƥSG%=}qPJk xcqZBKf`+yܣ| 8~rU\iJPgŒEӇ>|?Z$],";V ٢z|\pJ1 (ṫXYij"8Uk?pGUaصsbҬLw~c̅uV-؊,r**77YUeҀqU'EЀ̸T]! ǂj>MZ&ǐe=+^]r+>_xjB:ʙ'm)yG}lsDP)JA s\!E;$"4 r1 6egW9&lѨ~i:'Sy84zޟa-lfyf-95}®~$l0 S(R] A6ٓGUY_o'd)rՃ=lH30Y6ϩ5W/ 8^(R? \m5N(M+8k\3z}MbJ~R'j;ɕ+Ynb֑,29Ei |U.ye5~V}3/-E+Eq[˰)\7[)]3㲂|=_n#F>*P j:i"pv FgB"\GBE@e-я][5x(yg:|.HdD*Bge 4dTV6ZvA镔vsØY0ۧ~7)}\ޢEVll8C`cx)t\J!T |Z6}8&ܩ K97Zr`/xl=BTsU Ic'knTq1~fkJGDqy$?b쾣nLvhUa ]QffgEŸ 8I>b5jv }[@<ݒ!':ΟAs'tO K>H 3ThA!ghɻWLi%y<ʍ$RQ!ECY'@^Jc6'|k2bCW)$ij.03ϘJ.cݏq⑽``FQJ,Uޑ"82IEGH6w;*,oX͸#3wN`6FtqFkD?Bc/fB)ojBZ+߹e )%}i;҈bYvU!cR1$hly}b5-v砩?^td-`efnJ9kA<}8Hɠ*L2<v?;Iq7n1UMQ5lM nM ukrJmïF ]*' 9|䇠Lˬ= zZrKmQlKeALs_H>9O)lT0󎼥 }x#.e6`6 ?S2ű2vmU&WHF>*w>jO?++iέ_ #ͦ蚵xVQ؝K:g|" et;ӎPX:ޘlB&1Vvs*D/*p6nhD\4y(5zu= M  bEn Mm{nc=t7KdrJPluvO rt,qqz2(Aj{W茝|!Vu:A$Gn9;2]0e*u4X/@3'"Gp&%Bveb8fb+ә%CY&OoՇUۓrIK7֒YafwʝJn^)`(jΆU[_icJk!_@u,4oS:RyUQCCNUwA` ;DҢƦ}ɹ*:zB/Iii K 5>19sr|iJCY{1Y=wv%~pddK!4kOe3n̥ 7OOr ّvReidG}Nh7 xˉ[C~"ưYv%NtȸmRl#/5 IFI &f »EWb흵F# wSjwu@VT&3c<쑒{_z~3h}u-2mk<NC[WcvRd7gΫX`CO)= =3oF-FXJgޓé?{rBsUp/T{'d&֋^?* fZDeq%cof5]@zIYF^dn nR &ʙfJ9S8yjA $\Un_kqzDGIRR0gOurM/d jDLRLeZ4֬o05@X./wAX(CtTI{`R2lFVK wAHʱPϚ܆*ylz5 zew8z@im4ZN w%m,;0/O ąn#'@ymvk&:Of_*/.|T?x@DuI٫ AWxB2C=kQKT?HQpc 1MįW7Ў׀*6 N=6xqxn6ZxBԥ}tѠatW0څtƩ!CB?7!\ W~n1MBe-2,,1JLڐJE2%-7&ɘ'-ȟbd*knPv_p$Eck t u$&|r8_hudjhvXfV|~Z?IM "e> w+lȓc& RROa&{Ed iO7ZsSʉp8<WxXQ[yN}`3,'| i& N}r&_D^%'Ʈ^V8Ip㠵X 8zNS3M{]ќ)\2\Pл%(TcC;{RDC4$ |q577iY(q ̈B +:U!݊- T`5e<ϓMu҇ >&Ɗ~|q> Ux<륔d}xlI;~XXǶP34&ΣOsIYeZf1}/4WK\mDY6ә5zDW,p&@Xtlcș۷O{o7^8Q^ V2l.)N85KvZpT^Ҷ@σ{ۯ6}kѶ)eʌȓaJ] 5ah.58]ًd[>i#^"R u铽ʎUx¸_Rz DcX@tF|p.H ,rc!ukJr#hiJTu`@UK|<0 lEZllطހY"0ب)lJHGp"ȃ@YN㲥}Ѿ7p0`&I..Z;^kPe}%9hĆ]-^˴W~/G۲T7, n/@o)ok8\Eg6oB΄8вʚm,'htDz7 TݺN"0*Xڥ/oo5Ey ;6~ 辡%&sh'f\xay: rMһ&o3|JtOmu+[PoQr|U^{`'FsI1n2%ð !ztp@&DI%wfiglY/rCPTkv%qa@6ɤ;mmbS2ip՞}zS^I=7BWn -tMq1&=4j*l A3}dFCw1N &TK>$cǥTLm{ J2G8&o}( o:Zϱ@?0sZӳq ,e?⹓. !-IJ 8*J1^_= )HMcob.ֻHc.,'f|\Բuh[GUzWr\]liFhhSҸ]fLnYLS uFz90 G=!}:BMWˏS֮t"T/JzN `adԥ4HO*9 ;͌:;[MU-:hTTDK4#NTZladخig B%w0tꌓѦT 郎%Z ' (.S(js ~JJtpa͈ŃZ.BzOÒ"wPx©$A(XLܸfF!'"+.vaMQ,⌴hn"[7}F]}pYEOlyˉF!ؤ2Q s)IfFvs:.΃ 蓤 !U<ښ{lS]6|J`TWǜ?{FmA(*9g<`6g׸{wոk_6gLf4 @uK {i)OhCdV {84}GW(t_rXD@ތ~,J`h<EhsQ Dn_-]#A(HW]Ce|f SB: fn Fө2 $G1$zSC1(Nz>/]Ͼ0 ctX nΥ>8F-UZu6_4apAV x(HYp`9wG<,vθB>(d"x_ROce7>fvs`aKA2'vjyx}~y}GT9);~12*LQ @}o֏ a\+Mdpv#mj4+~nq,հl]lʜ (9* P)גpT/<:zq$UwAs+a܍u̞f;a +lIMB[U+,s<|f IUnd>Cy~Q4<,XǺ죮FUTX/#2]=c/tFk?/Lڜ.vGS٢m_^/|8qy,Tgy9ĕwTkUqY1Pz"Bmb2$Yuyھ"oL}4D2BM{jR)ߡ?ׇ />7rlܼR 9{]Gsf.ŘJ'CljTM;C-Vc5Z)߉w&'ܩ v^Dp;è˄muvL4 Wr#`uuC7HjkSnˀmCxr4z@?Rwkt(V>_"'HfwP9<zkd&D]kd=) " J2~xj]Q:b{z^=fX֥x h}+O2۬D]H?3^xLdEeƛߨ80_]h`z)B~FJHTr_VK+,Gz)>Y9bѹ~y)y&Srf;XxmBkit/m־_FwO'ϝHSO%iY K!RH3fEJ 0a>@Q ]9=CFptV;B=V:$KP~¥YO>t3wy D ;]I\үѝCqg̱ǜMrAHeCH||YJ\UfF[qzBXlFXmE?xҷ6Cޱ[@g:GہcZgSnEH[P E{d'3 1i#QW|h;#F R'r?Ւ*զ}[Xp_ɿϲ /mKu 8|ٻgМy4V2ǽ1 bF~-Yl L$+2 "~X9I0ozpCХ]!n}+R~@m(y/^&hGV;@Cm1~4p7B<htNLeyw4 ymF=31K{G 1ςsGXA V}t6v+In0ZЀ 梋xX罃uK9Mu~ ?Bni-CCc< n7󺩨y]wZ%%ֽxdc6l՛w>~MGDDȡ]AC?}“K..w:%d4c*2i~)zkjmI޿nW.͖Rs|Y,ԻΜ3}5*~HO8(/bq AkSfzNvwN2!MǙcWVTi ?E{QWrTG_ŘL% !>ۈq0֛7Es=kHdPe=kl53Sdq7t]*8|avvH;NeD П$be~Χ,;ܘa`X|Oi/-ZKP` Aml2~:SR.Q*]Iwi[$>+#QY=7 ~FBPo)<6g:N\8lK5Z3:Ֆ&44x뚏sPo<} -9u\H|(:-P򠢂0q)nEe/*G ʲt,A&] \6r%5ocSd^ՆRZl"d]_ʡҺÀI iٻlp`ۙ(Qì!er 2@O6tz#H Zd|ʂWg[pf)h< PB65$E7=64Duiʼn+UJ#y%ImhOh,/u"jҐzG<2c>Hqm"rVി#Qsoނ B"nKĖ |*vGU!튉2_l `;Mv(ХnKȢ4<%V$~o3HcҬNmcZjR+8NޓбZp/\!O?99S9{o_cV pq)ދ0ΥӂJ(o^N\qv@O.J,XGAx6 endstream endobj 1943 0 obj << /Type /FontDescriptor /FontName /QEDNGX+GaramondNo8-Ita /Flags 4 /FontBBox [-196 -280 1095 957] /Ascent 760 /CapHeight 715 /Descent -267 /ItalicAngle -16 /StemV 79 /XHeight 0 /CharSet (/A/B/F/I/L/M/O/P/R/S/T/U/W/X/Y/Z/a/b/c/d/e/f/fi/fl/g/h/hyphen/i/j/k/l/m/n/o/p/parenleft/parenright/period/q/r/s/t/u/v/w/x/y/z) /FontFile 1942 0 R >> endobj 1797 0 obj << /Type /Encoding /Differences [8/fl 12/fi 33/exclam/quotedbl 37/percent/ampersand/quoteright/parenleft/parenright/asterisk 44/comma/hyphen/period 48/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon 63/question 65/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 97/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z 148/quotedblright 150/endash 201/Eacute 228/adieresis 233/eacute 244/ocircumflex] >> endobj 440 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JWQNLC+LCIRCLE10 /FontDescriptor 1598 0 R /FirstChar 12 /LastChar 15 /Widths 1765 0 R >> endobj 439 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PSBJHW+LINE10 /FontDescriptor 1920 0 R /FirstChar 27 /LastChar 45 /Widths 1766 0 R >> endobj 385 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PRUIGJ+MathDesign-GM-Regular-OT1-10 /FontDescriptor 1922 0 R /FirstChar 40 /LastChar 93 /Widths 1793 0 R >> endobj 386 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GJIHER+MathDesign-GM-Regular-Extension-10 /FontDescriptor 1924 0 R /FirstChar 83 /LastChar 83 /Widths 1792 0 R >> endobj 377 0 obj << /Type /Font /Subtype /Type1 /BaseFont /AHPLQY+MathDesign-GM-Regular-Symbol-10 /FontDescriptor 1926 0 R /FirstChar 0 /LastChar 106 /Widths 1796 0 R >> endobj 378 0 obj << /Type /Font /Subtype /Type1 /BaseFont /DAUICR+MathDesign-GM-Regular-T1-10 /FontDescriptor 1928 0 R /FirstChar 43 /LastChar 93 /Widths 1795 0 R >> endobj 684 0 obj << /Type /Font /Subtype /Type1 /BaseFont /SQHRGY+MathDesign-GM-Regular-Italic-MathItalic-10 /FontDescriptor 1930 0 R /FirstChar 12 /LastChar 62 /Widths 1764 0 R >> endobj 1247 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GVOUSU+MathDesign-GM-Regular-Italic-T1-10 /FontDescriptor 1932 0 R /FirstChar 47 /LastChar 47 /Widths 1623 0 R >> endobj 384 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZOBYHD+MathDesign-GM-Regular-MathDesignSymbolA-10 /FontDescriptor 1934 0 R /FirstChar 78 /LastChar 90 /Widths 1794 0 R >> endobj 315 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KILUOP+GaramondNo8-Med /FontDescriptor 1937 0 R /FirstChar 12 /LastChar 150 /Widths 1895 0 R /Encoding 1797 0 R >> endobj 279 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QOBXFY+GaramondNo8-Reg /FontDescriptor 1939 0 R /FirstChar 8 /LastChar 244 /Widths 1896 0 R /Encoding 1797 0 R >> endobj 376 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QEDNGX+GaramondNo8-Ita /FontDescriptor 1943 0 R /FirstChar 8 /LastChar 122 /Widths 1798 0 R /Encoding 1797 0 R >> endobj 355 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OJSMXU+GaramondNo8-Reg-Slant_287 /FontDescriptor 1941 0 R /FirstChar 46 /LastChar 120 /Widths 1894 0 R /Encoding 1797 0 R >> endobj 280 0 obj << /Type /Pages /Count 6 /Parent 1944 0 R /Kids [274 0 R 282 0 R 312 0 R 352 0 R 365 0 R 369 0 R] >> endobj 379 0 obj << /Type /Pages /Count 6 /Parent 1944 0 R /Kids [373 0 R 381 0 R 389 0 R 399 0 R 422 0 R 436 0 R] >> endobj 460 0 obj << /Type /Pages /Count 6 /Parent 1944 0 R /Kids [451 0 R 462 0 R 466 0 R 472 0 R 488 0 R 502 0 R] >> endobj 524 0 obj << /Type /Pages /Count 6 /Parent 1944 0 R /Kids [514 0 R 539 0 R 560 0 R 574 0 R 585 0 R 591 0 R] >> endobj 617 0 obj << /Type /Pages /Count 6 /Parent 1944 0 R /Kids [601 0 R 619 0 R 639 0 R 650 0 R 661 0 R 668 0 R] >> endobj 696 0 obj << /Type /Pages /Count 6 /Parent 1944 0 R /Kids [689 0 R 698 0 R 702 0 R 713 0 R 719 0 R 741 0 R] >> endobj 773 0 obj << /Type /Pages /Count 6 /Parent 1945 0 R /Kids [755 0 R 775 0 R 803 0 R 807 0 R 811 0 R 820 0 R] >> endobj 828 0 obj << /Type /Pages /Count 6 /Parent 1945 0 R /Kids [825 0 R 830 0 R 835 0 R 849 0 R 856 0 R 863 0 R] >> endobj 915 0 obj << /Type /Pages /Count 6 /Parent 1945 0 R /Kids [911 0 R 917 0 R 924 0 R 930 0 R 936 0 R 942 0 R] >> endobj 956 0 obj << /Type /Pages /Count 6 /Parent 1945 0 R /Kids [946 0 R 958 0 R 1018 0 R 1047 0 R 1082 0 R 1104 0 R] >> endobj 1178 0 obj << /Type /Pages /Count 6 /Parent 1945 0 R /Kids [1150 0 R 1188 0 R 1232 0 R 1241 0 R 1292 0 R 1335 0 R] >> endobj 1356 0 obj << /Type /Pages /Count 6 /Parent 1945 0 R /Kids [1350 0 R 1360 0 R 1366 0 R 1375 0 R 1403 0 R 1458 0 R] >> endobj 1469 0 obj << /Type /Pages /Count 6 /Parent 1946 0 R /Kids [1466 0 R 1540 0 R 1595 0 R 1609 0 R 1616 0 R 1620 0 R] >> endobj 1944 0 obj << /Type /Pages /Count 36 /Parent 1947 0 R /Kids [280 0 R 379 0 R 460 0 R 524 0 R 617 0 R 696 0 R] >> endobj 1945 0 obj << /Type /Pages /Count 36 /Parent 1947 0 R /Kids [773 0 R 828 0 R 915 0 R 956 0 R 1178 0 R 1356 0 R] >> endobj 1946 0 obj << /Type /Pages /Count 6 /Parent 1947 0 R /Kids [1469 0 R] >> endobj 1947 0 obj << /Type /Pages /Count 78 /Kids [1944 0 R 1945 0 R 1946 0 R] >> endobj 1948 0 obj << /Type /Outlines /First 3 0 R /Last 271 0 R /Count 8 >> endobj 271 0 obj << /Title 272 0 R /A 269 0 R /Parent 1948 0 R /Prev 211 0 R >> endobj 267 0 obj << /Title 268 0 R /A 265 0 R /Parent 211 0 R /Prev 263 0 R >> endobj 263 0 obj << /Title 264 0 R /A 261 0 R /Parent 211 0 R /Prev 243 0 R /Next 267 0 R >> endobj 259 0 obj << /Title 260 0 R /A 257 0 R /Parent 243 0 R /Prev 255 0 R >> endobj 255 0 obj << /Title 256 0 R /A 253 0 R /Parent 243 0 R /Prev 251 0 R /Next 259 0 R >> endobj 251 0 obj << /Title 252 0 R /A 249 0 R /Parent 243 0 R /Prev 247 0 R /Next 255 0 R >> endobj 247 0 obj << /Title 248 0 R /A 245 0 R /Parent 243 0 R /Next 251 0 R >> endobj 243 0 obj << /Title 244 0 R /A 241 0 R /Parent 211 0 R /Prev 239 0 R /Next 263 0 R /First 247 0 R /Last 259 0 R /Count -4 >> endobj 239 0 obj << /Title 240 0 R /A 237 0 R /Parent 211 0 R /Prev 223 0 R /Next 243 0 R >> endobj 235 0 obj << /Title 236 0 R /A 233 0 R /Parent 223 0 R /Prev 231 0 R >> endobj 231 0 obj << /Title 232 0 R /A 229 0 R /Parent 223 0 R /Prev 227 0 R /Next 235 0 R >> endobj 227 0 obj << /Title 228 0 R /A 225 0 R /Parent 223 0 R /Next 231 0 R >> endobj 223 0 obj << /Title 224 0 R /A 221 0 R /Parent 211 0 R /Prev 219 0 R /Next 239 0 R /First 227 0 R /Last 235 0 R /Count -3 >> endobj 219 0 obj << /Title 220 0 R /A 217 0 R /Parent 211 0 R /Prev 215 0 R /Next 223 0 R >> endobj 215 0 obj << /Title 216 0 R /A 213 0 R /Parent 211 0 R /Next 219 0 R >> endobj 211 0 obj << /Title 212 0 R /A 209 0 R /Parent 1948 0 R /Prev 179 0 R /Next 271 0 R /First 215 0 R /Last 267 0 R /Count -7 >> endobj 207 0 obj << /Title 208 0 R /A 205 0 R /Parent 187 0 R /Prev 203 0 R >> endobj 203 0 obj << /Title 204 0 R /A 201 0 R /Parent 187 0 R /Prev 199 0 R /Next 207 0 R >> endobj 199 0 obj << /Title 200 0 R /A 197 0 R /Parent 187 0 R /Prev 195 0 R /Next 203 0 R >> endobj 195 0 obj << /Title 196 0 R /A 193 0 R /Parent 187 0 R /Prev 191 0 R /Next 199 0 R >> endobj 191 0 obj << /Title 192 0 R /A 189 0 R /Parent 187 0 R /Next 195 0 R >> endobj 187 0 obj << /Title 188 0 R /A 185 0 R /Parent 179 0 R /Prev 183 0 R /First 191 0 R /Last 207 0 R /Count -5 >> endobj 183 0 obj << /Title 184 0 R /A 181 0 R /Parent 179 0 R /Next 187 0 R >> endobj 179 0 obj << /Title 180 0 R /A 177 0 R /Parent 1948 0 R /Prev 135 0 R /Next 211 0 R /First 183 0 R /Last 187 0 R /Count -2 >> endobj 175 0 obj << /Title 176 0 R /A 173 0 R /Parent 163 0 R /Prev 171 0 R >> endobj 171 0 obj << /Title 172 0 R /A 169 0 R /Parent 163 0 R /Prev 167 0 R /Next 175 0 R >> endobj 167 0 obj << /Title 168 0 R /A 165 0 R /Parent 163 0 R /Next 171 0 R >> endobj 163 0 obj << /Title 164 0 R /A 161 0 R /Parent 135 0 R /Prev 143 0 R /First 167 0 R /Last 175 0 R /Count -3 >> endobj 159 0 obj << /Title 160 0 R /A 157 0 R /Parent 143 0 R /Prev 155 0 R >> endobj 155 0 obj << /Title 156 0 R /A 153 0 R /Parent 143 0 R /Prev 151 0 R /Next 159 0 R >> endobj 151 0 obj << /Title 152 0 R /A 149 0 R /Parent 143 0 R /Prev 147 0 R /Next 155 0 R >> endobj 147 0 obj << /Title 148 0 R /A 145 0 R /Parent 143 0 R /Next 151 0 R >> endobj 143 0 obj << /Title 144 0 R /A 141 0 R /Parent 135 0 R /Prev 139 0 R /Next 163 0 R /First 147 0 R /Last 159 0 R /Count -4 >> endobj 139 0 obj << /Title 140 0 R /A 137 0 R /Parent 135 0 R /Next 143 0 R >> endobj 135 0 obj << /Title 136 0 R /A 133 0 R /Parent 1948 0 R /Prev 127 0 R /Next 179 0 R /First 139 0 R /Last 163 0 R /Count -3 >> endobj 131 0 obj << /Title 132 0 R /A 129 0 R /Parent 127 0 R >> endobj 127 0 obj << /Title 128 0 R /A 125 0 R /Parent 1948 0 R /Prev 35 0 R /Next 135 0 R /First 131 0 R /Last 131 0 R /Count -1 >> endobj 123 0 obj << /Title 124 0 R /A 121 0 R /Parent 103 0 R /Prev 119 0 R >> endobj 119 0 obj << /Title 120 0 R /A 117 0 R /Parent 103 0 R /Prev 115 0 R /Next 123 0 R >> endobj 115 0 obj << /Title 116 0 R /A 113 0 R /Parent 103 0 R /Prev 111 0 R /Next 119 0 R >> endobj 111 0 obj << /Title 112 0 R /A 109 0 R /Parent 103 0 R /Prev 107 0 R /Next 115 0 R >> endobj 107 0 obj << /Title 108 0 R /A 105 0 R /Parent 103 0 R /Next 111 0 R >> endobj 103 0 obj << /Title 104 0 R /A 101 0 R /Parent 35 0 R /Prev 75 0 R /First 107 0 R /Last 123 0 R /Count -5 >> endobj 99 0 obj << /Title 100 0 R /A 97 0 R /Parent 75 0 R /Prev 95 0 R >> endobj 95 0 obj << /Title 96 0 R /A 93 0 R /Parent 75 0 R /Prev 91 0 R /Next 99 0 R >> endobj 91 0 obj << /Title 92 0 R /A 89 0 R /Parent 75 0 R /Prev 87 0 R /Next 95 0 R >> endobj 87 0 obj << /Title 88 0 R /A 85 0 R /Parent 75 0 R /Prev 83 0 R /Next 91 0 R >> endobj 83 0 obj << /Title 84 0 R /A 81 0 R /Parent 75 0 R /Prev 79 0 R /Next 87 0 R >> endobj 79 0 obj << /Title 80 0 R /A 77 0 R /Parent 75 0 R /Next 83 0 R >> endobj 75 0 obj << /Title 76 0 R /A 73 0 R /Parent 35 0 R /Prev 59 0 R /Next 103 0 R /First 79 0 R /Last 99 0 R /Count -6 >> endobj 71 0 obj << /Title 72 0 R /A 69 0 R /Parent 59 0 R /Prev 67 0 R >> endobj 67 0 obj << /Title 68 0 R /A 65 0 R /Parent 59 0 R /Prev 63 0 R /Next 71 0 R >> endobj 63 0 obj << /Title 64 0 R /A 61 0 R /Parent 59 0 R /Next 67 0 R >> endobj 59 0 obj << /Title 60 0 R /A 57 0 R /Parent 35 0 R /Prev 43 0 R /Next 75 0 R /First 63 0 R /Last 71 0 R /Count -3 >> endobj 55 0 obj << /Title 56 0 R /A 53 0 R /Parent 43 0 R /Prev 51 0 R >> endobj 51 0 obj << /Title 52 0 R /A 49 0 R /Parent 43 0 R /Prev 47 0 R /Next 55 0 R >> endobj 47 0 obj << /Title 48 0 R /A 45 0 R /Parent 43 0 R /Next 51 0 R >> endobj 43 0 obj << /Title 44 0 R /A 41 0 R /Parent 35 0 R /Prev 39 0 R /Next 59 0 R /First 47 0 R /Last 55 0 R /Count -3 >> endobj 39 0 obj << /Title 40 0 R /A 37 0 R /Parent 35 0 R /Next 43 0 R >> endobj 35 0 obj << /Title 36 0 R /A 33 0 R /Parent 1948 0 R /Prev 15 0 R /Next 127 0 R /First 39 0 R /Last 103 0 R /Count -5 >> endobj 31 0 obj << /Title 32 0 R /A 29 0 R /Parent 15 0 R /Prev 27 0 R >> endobj 27 0 obj << /Title 28 0 R /A 25 0 R /Parent 15 0 R /Prev 23 0 R /Next 31 0 R >> endobj 23 0 obj << /Title 24 0 R /A 21 0 R /Parent 15 0 R /Prev 19 0 R /Next 27 0 R >> endobj 19 0 obj << /Title 20 0 R /A 17 0 R /Parent 15 0 R /Next 23 0 R >> endobj 15 0 obj << /Title 16 0 R /A 13 0 R /Parent 1948 0 R /Prev 3 0 R /Next 35 0 R /First 19 0 R /Last 31 0 R /Count -4 >> endobj 11 0 obj << /Title 12 0 R /A 9 0 R /Parent 3 0 R /Prev 7 0 R >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R /Parent 3 0 R /Next 11 0 R >> endobj 3 0 obj << /Title 4 0 R /A 1 0 R /Parent 1948 0 R /Next 15 0 R /First 7 0 R /Last 11 0 R /Count -2 >> endobj 1949 0 obj << /Names [(Doc-Start) 278 0 R (Hfootnote.1) 939 0 R (Item.1) 795 0 R (Item.10) 1235 0 R (Item.11) 1236 0 R (Item.12) 1237 0 R] /Limits [(Doc-Start) (Item.12)] >> endobj 1950 0 obj << /Names [(Item.13) 1238 0 R (Item.14) 1239 0 R (Item.15) 1353 0 R (Item.16) 1354 0 R (Item.17) 1355 0 R (Item.18) 1369 0 R] /Limits [(Item.13) (Item.18)] >> endobj 1951 0 obj << /Names [(Item.19) 1370 0 R (Item.2) 796 0 R (Item.20) 1371 0 R (Item.21) 1372 0 R (Item.22) 1612 0 R (Item.23) 1613 0 R] /Limits [(Item.19) (Item.23)] >> endobj 1952 0 obj << /Names [(Item.24) 1614 0 R (Item.3) 797 0 R (Item.4) 798 0 R (Item.5) 799 0 R (Item.6) 800 0 R (Item.7) 1227 0 R] /Limits [(Item.24) (Item.7)] >> endobj 1953 0 obj << /Names [(Item.8) 1228 0 R (Item.9) 1229 0 R (chapter.1) 2 0 R (chapter.2) 14 0 R (chapter.3) 34 0 R (chapter.4) 126 0 R] /Limits [(Item.8) (chapter.4)] >> endobj 1954 0 obj << /Names [(chapter.5) 134 0 R (chapter.6) 178 0 R (chapter.7) 210 0 R (chapter.8) 270 0 R (equation.3.4.1) 518 0 R (equation.3.4.2) 519 0 R] /Limits [(chapter.5) (equation.3.4.2)] >> endobj 1955 0 obj << /Names [(equation.3.4.3) 522 0 R (equation.3.4.4) 523 0 R (equation.3.4.5) 543 0 R (equation.3.4.6) 544 0 R (equation.3.4.7) 563 0 R (equation.3.4.8) 564 0 R] /Limits [(equation.3.4.3) (equation.3.4.8)] >> endobj 1956 0 obj << /Names [(equation.3.4.9) 565 0 R (figure.3.1) 425 0 R (figure.3.2) 508 0 R (figure.3.3) 520 0 R (figure.3.4) 535 0 R (figure.3.5) 545 0 R] /Limits [(equation.3.4.9) (figure.3.5)] >> endobj 1957 0 obj << /Names [(figure.3.6) 557 0 R (figure.3.7) 716 0 R (figure.3.8) 717 0 R (figure.5.1) 861 0 R (figure.6.1) 1044 0 R (figure.6.2) 1045 0 R] /Limits [(figure.3.6) (figure.6.2)] >> endobj 1958 0 obj << /Names [(figure.6.3) 1079 0 R (figure.6.4) 1157 0 R (lstlisting.2.-1) 393 0 R (lstlisting.2.-2) 395 0 R (lstlisting.2.-3) 402 0 R (lstlisting.2.-4) 405 0 R] /Limits [(figure.6.3) (lstlisting.2.-4)] >> endobj 1959 0 obj << /Names [(lstlisting.2.-5) 408 0 R (lstlisting.2.-6) 411 0 R (lstlisting.2.-7) 414 0 R (lstlisting.3.-10) 469 0 R (lstlisting.3.-11) 475 0 R (lstlisting.3.-12) 477 0 R] /Limits [(lstlisting.2.-5) (lstlisting.3.-12)] >> endobj 1960 0 obj << /Names [(lstlisting.3.-13) 479 0 R (lstlisting.3.-14) 482 0 R (lstlisting.3.-15) 491 0 R (lstlisting.3.-16) 494 0 R (lstlisting.3.-17) 577 0 R (lstlisting.3.-18) 594 0 R] /Limits [(lstlisting.3.-13) (lstlisting.3.-18)] >> endobj 1961 0 obj << /Names [(lstlisting.3.-19) 597 0 R (lstlisting.3.-20) 610 0 R (lstlisting.3.-21) 623 0 R (lstlisting.3.-22) 629 0 R (lstlisting.3.-23) 636 0 R (lstlisting.3.-24) 643 0 R] /Limits [(lstlisting.3.-19) (lstlisting.3.-24)] >> endobj 1962 0 obj << /Names [(lstlisting.3.-25) 647 0 R (lstlisting.3.-26) 656 0 R (lstlisting.3.-27) 665 0 R (lstlisting.3.-28) 671 0 R (lstlisting.3.-29) 673 0 R (lstlisting.3.-30) 675 0 R] /Limits [(lstlisting.3.-25) (lstlisting.3.-30)] >> endobj 1963 0 obj << /Names [(lstlisting.3.-31) 677 0 R (lstlisting.3.-32) 680 0 R (lstlisting.3.-33) 682 0 R (lstlisting.3.-34) 685 0 R (lstlisting.3.-35) 692 0 R (lstlisting.3.-36) 694 0 R] /Limits [(lstlisting.3.-31) (lstlisting.3.-36)] >> endobj 1964 0 obj << /Names [(lstlisting.3.-37) 746 0 R (lstlisting.3.-38) 759 0 R (lstlisting.3.-39) 769 0 R (lstlisting.3.-40) 771 0 R (lstlisting.3.-41) 779 0 R (lstlisting.3.-42) 782 0 R] /Limits [(lstlisting.3.-37) (lstlisting.3.-42)] >> endobj 1965 0 obj << /Names [(lstlisting.3.-8) 441 0 R (lstlisting.3.-9) 454 0 R (lstlisting.4.-43) 814 0 R (lstlisting.5.-44) 838 0 R (lstlisting.5.-45) 866 0 R (lstlisting.6.-46) 949 0 R] /Limits [(lstlisting.3.-8) (lstlisting.6.-46)] >> endobj 1966 0 obj << /Names [(lstlisting.6.-47) 976 0 R (lstlisting.6.-48) 996 0 R (lstlisting.6.-49) 1050 0 R (lstlisting.6.-50) 1057 0 R (lstlisting.6.-51) 1092 0 R (lstlisting.6.-52) 1116 0 R] /Limits [(lstlisting.6.-47) (lstlisting.6.-52)] >> endobj 1967 0 obj << /Names [(lstlisting.6.-53) 1121 0 R (lstlisting.6.-54) 1154 0 R (lstlisting.6.-55) 1158 0 R (lstlisting.6.-56) 1244 0 R (lstlisting.6.-57) 1248 0 R (lstlisting.7.-58) 1363 0 R] /Limits [(lstlisting.6.-53) (lstlisting.7.-58)] >> endobj 1968 0 obj << /Names [(lstlisting.7.-59) 1378 0 R (lstlisting.7.-60) 1461 0 R (lstnumber.-1.1) 394 0 R (lstnumber.-10.1) 470 0 R (lstnumber.-11.1) 476 0 R (lstnumber.-12.1) 478 0 R] /Limits [(lstlisting.7.-59) (lstnumber.-12.1)] >> endobj 1969 0 obj << /Names [(lstnumber.-13.1) 480 0 R (lstnumber.-13.2) 481 0 R (lstnumber.-14.1) 483 0 R (lstnumber.-14.2) 484 0 R (lstnumber.-14.3) 485 0 R (lstnumber.-14.4) 486 0 R] /Limits [(lstnumber.-13.1) (lstnumber.-14.4)] >> endobj 1970 0 obj << /Names [(lstnumber.-15.1) 492 0 R (lstnumber.-15.2) 493 0 R (lstnumber.-16.1) 495 0 R (lstnumber.-16.2) 496 0 R (lstnumber.-17.1) 578 0 R (lstnumber.-17.2) 579 0 R] /Limits [(lstnumber.-15.1) (lstnumber.-17.2)] >> endobj 1971 0 obj << /Names [(lstnumber.-17.3) 580 0 R (lstnumber.-17.4) 581 0 R (lstnumber.-17.5) 582 0 R (lstnumber.-18.1) 595 0 R (lstnumber.-19.1) 598 0 R (lstnumber.-19.2) 599 0 R] /Limits [(lstnumber.-17.3) (lstnumber.-19.2)] >> endobj 1972 0 obj << /Names [(lstnumber.-19.3) 604 0 R (lstnumber.-19.4) 605 0 R (lstnumber.-19.5) 606 0 R (lstnumber.-19.6) 607 0 R (lstnumber.-19.7) 608 0 R (lstnumber.-2.1) 396 0 R] /Limits [(lstnumber.-19.3) (lstnumber.-2.1)] >> endobj 1973 0 obj << /Names [(lstnumber.-2.2) 397 0 R (lstnumber.-20.1) 611 0 R (lstnumber.-20.2) 612 0 R (lstnumber.-20.3) 613 0 R (lstnumber.-20.4) 614 0 R (lstnumber.-20.5) 615 0 R] /Limits [(lstnumber.-2.2) (lstnumber.-20.5)] >> endobj 1974 0 obj << /Names [(lstnumber.-21.1) 624 0 R (lstnumber.-21.2) 625 0 R (lstnumber.-21.3) 626 0 R (lstnumber.-21.4) 627 0 R (lstnumber.-21.5) 628 0 R (lstnumber.-22.1) 630 0 R] /Limits [(lstnumber.-21.1) (lstnumber.-22.1)] >> endobj 1975 0 obj << /Names [(lstnumber.-22.2) 631 0 R (lstnumber.-22.3) 632 0 R (lstnumber.-22.4) 633 0 R (lstnumber.-22.5) 634 0 R (lstnumber.-23.1) 637 0 R (lstnumber.-24.1) 644 0 R] /Limits [(lstnumber.-22.2) (lstnumber.-24.1)] >> endobj 1976 0 obj << /Names [(lstnumber.-24.2) 645 0 R (lstnumber.-25.1) 648 0 R (lstnumber.-26.1) 657 0 R (lstnumber.-26.2) 658 0 R (lstnumber.-27.1) 666 0 R (lstnumber.-28.1) 672 0 R] /Limits [(lstnumber.-24.2) (lstnumber.-28.1)] >> endobj 1977 0 obj << /Names [(lstnumber.-29.1) 674 0 R (lstnumber.-3.1) 403 0 R (lstnumber.-3.2) 404 0 R (lstnumber.-30.1) 676 0 R (lstnumber.-31.1) 678 0 R (lstnumber.-32.1) 681 0 R] /Limits [(lstnumber.-29.1) (lstnumber.-32.1)] >> endobj 1978 0 obj << /Names [(lstnumber.-33.1) 683 0 R (lstnumber.-34.1) 686 0 R (lstnumber.-35.1) 693 0 R (lstnumber.-36.1) 695 0 R (lstnumber.-37.1) 747 0 R (lstnumber.-37.2) 748 0 R] /Limits [(lstnumber.-33.1) (lstnumber.-37.2)] >> endobj 1979 0 obj << /Names [(lstnumber.-37.3) 749 0 R (lstnumber.-37.4) 750 0 R (lstnumber.-38.1) 760 0 R (lstnumber.-38.2) 761 0 R (lstnumber.-38.3) 762 0 R (lstnumber.-38.4) 763 0 R] /Limits [(lstnumber.-37.3) (lstnumber.-38.4)] >> endobj 1980 0 obj << /Names [(lstnumber.-38.5) 764 0 R (lstnumber.-38.6) 765 0 R (lstnumber.-38.7) 766 0 R (lstnumber.-38.8) 767 0 R (lstnumber.-38.9) 768 0 R (lstnumber.-39.1) 770 0 R] /Limits [(lstnumber.-38.5) (lstnumber.-39.1)] >> endobj 1981 0 obj << /Names [(lstnumber.-4.1) 406 0 R (lstnumber.-4.2) 407 0 R (lstnumber.-40.1) 772 0 R (lstnumber.-41.1) 780 0 R (lstnumber.-41.2) 781 0 R (lstnumber.-42.1) 783 0 R] /Limits [(lstnumber.-4.1) (lstnumber.-42.1)] >> endobj 1982 0 obj << /Names [(lstnumber.-42.10) 792 0 R (lstnumber.-42.11) 793 0 R (lstnumber.-42.12) 794 0 R (lstnumber.-42.2) 784 0 R (lstnumber.-42.3) 785 0 R (lstnumber.-42.4) 786 0 R] /Limits [(lstnumber.-42.10) (lstnumber.-42.4)] >> endobj 1983 0 obj << /Names [(lstnumber.-42.5) 787 0 R (lstnumber.-42.6) 788 0 R (lstnumber.-42.7) 789 0 R (lstnumber.-42.8) 790 0 R (lstnumber.-42.9) 791 0 R (lstnumber.-43.1) 815 0 R] /Limits [(lstnumber.-42.5) (lstnumber.-43.1)] >> endobj 1984 0 obj << /Names [(lstnumber.-43.2) 816 0 R (lstnumber.-43.3) 817 0 R (lstnumber.-43.4) 818 0 R (lstnumber.-44.1) 839 0 R (lstnumber.-44.2) 841 0 R (lstnumber.-44.3) 842 0 R] /Limits [(lstnumber.-43.2) (lstnumber.-44.3)] >> endobj 1985 0 obj << /Names [(lstnumber.-44.4) 843 0 R (lstnumber.-44.5) 844 0 R (lstnumber.-44.6) 845 0 R (lstnumber.-44.7) 846 0 R (lstnumber.-44.8) 859 0 R (lstnumber.-45.1) 867 0 R] /Limits [(lstnumber.-44.4) (lstnumber.-45.1)] >> endobj 1986 0 obj << /Names [(lstnumber.-45.10) 876 0 R (lstnumber.-45.11) 877 0 R (lstnumber.-45.12) 878 0 R (lstnumber.-45.13) 879 0 R (lstnumber.-45.14) 880 0 R (lstnumber.-45.15) 881 0 R] /Limits [(lstnumber.-45.10) (lstnumber.-45.15)] >> endobj 1987 0 obj << /Names [(lstnumber.-45.16) 882 0 R (lstnumber.-45.17) 883 0 R (lstnumber.-45.18) 884 0 R (lstnumber.-45.19) 885 0 R (lstnumber.-45.2) 868 0 R (lstnumber.-45.20) 886 0 R] /Limits [(lstnumber.-45.16) (lstnumber.-45.20)] >> endobj 1988 0 obj << /Names [(lstnumber.-45.21) 887 0 R (lstnumber.-45.22) 888 0 R (lstnumber.-45.23) 889 0 R (lstnumber.-45.24) 890 0 R (lstnumber.-45.25) 891 0 R (lstnumber.-45.26) 892 0 R] /Limits [(lstnumber.-45.21) (lstnumber.-45.26)] >> endobj 1989 0 obj << /Names [(lstnumber.-45.27) 893 0 R (lstnumber.-45.28) 894 0 R (lstnumber.-45.29) 895 0 R (lstnumber.-45.3) 869 0 R (lstnumber.-45.30) 896 0 R (lstnumber.-45.31) 897 0 R] /Limits [(lstnumber.-45.27) (lstnumber.-45.31)] >> endobj 1990 0 obj << /Names [(lstnumber.-45.32) 898 0 R (lstnumber.-45.33) 899 0 R (lstnumber.-45.34) 900 0 R (lstnumber.-45.35) 901 0 R (lstnumber.-45.36) 902 0 R (lstnumber.-45.37) 903 0 R] /Limits [(lstnumber.-45.32) (lstnumber.-45.37)] >> endobj 1991 0 obj << /Names [(lstnumber.-45.38) 904 0 R (lstnumber.-45.39) 905 0 R (lstnumber.-45.4) 870 0 R (lstnumber.-45.40) 906 0 R (lstnumber.-45.41) 907 0 R (lstnumber.-45.42) 908 0 R] /Limits [(lstnumber.-45.38) (lstnumber.-45.42)] >> endobj 1992 0 obj << /Names [(lstnumber.-45.5) 871 0 R (lstnumber.-45.6) 872 0 R (lstnumber.-45.7) 873 0 R (lstnumber.-45.8) 874 0 R (lstnumber.-45.9) 875 0 R (lstnumber.-46.1) 950 0 R] /Limits [(lstnumber.-45.5) (lstnumber.-46.1)] >> endobj 1993 0 obj << /Names [(lstnumber.-46.10) 964 0 R (lstnumber.-46.11) 965 0 R (lstnumber.-46.12) 966 0 R (lstnumber.-46.13) 967 0 R (lstnumber.-46.14) 968 0 R (lstnumber.-46.15) 969 0 R] /Limits [(lstnumber.-46.10) (lstnumber.-46.15)] >> endobj 1994 0 obj << /Names [(lstnumber.-46.16) 970 0 R (lstnumber.-46.17) 971 0 R (lstnumber.-46.18) 972 0 R (lstnumber.-46.19) 973 0 R (lstnumber.-46.2) 951 0 R (lstnumber.-46.20) 974 0 R] /Limits [(lstnumber.-46.16) (lstnumber.-46.20)] >> endobj 1995 0 obj << /Names [(lstnumber.-46.21) 975 0 R (lstnumber.-46.3) 952 0 R (lstnumber.-46.4) 953 0 R (lstnumber.-46.5) 954 0 R (lstnumber.-46.6) 955 0 R (lstnumber.-46.7) 961 0 R] /Limits [(lstnumber.-46.21) (lstnumber.-46.7)] >> endobj 1996 0 obj << /Names [(lstnumber.-46.8) 962 0 R (lstnumber.-46.9) 963 0 R (lstnumber.-47.1) 977 0 R (lstnumber.-47.10) 986 0 R (lstnumber.-47.11) 987 0 R (lstnumber.-47.12) 988 0 R] /Limits [(lstnumber.-46.8) (lstnumber.-47.12)] >> endobj 1997 0 obj << /Names [(lstnumber.-47.13) 989 0 R (lstnumber.-47.14) 990 0 R (lstnumber.-47.15) 991 0 R (lstnumber.-47.16) 992 0 R (lstnumber.-47.17) 993 0 R (lstnumber.-47.18) 994 0 R] /Limits [(lstnumber.-47.13) (lstnumber.-47.18)] >> endobj 1998 0 obj << /Names [(lstnumber.-47.19) 995 0 R (lstnumber.-47.2) 978 0 R (lstnumber.-47.3) 979 0 R (lstnumber.-47.4) 980 0 R (lstnumber.-47.5) 981 0 R (lstnumber.-47.6) 982 0 R] /Limits [(lstnumber.-47.19) (lstnumber.-47.6)] >> endobj 1999 0 obj << /Names [(lstnumber.-47.7) 983 0 R (lstnumber.-47.8) 984 0 R (lstnumber.-47.9) 985 0 R (lstnumber.-48.1) 997 0 R (lstnumber.-48.10) 1006 0 R (lstnumber.-48.11) 1007 0 R] /Limits [(lstnumber.-47.7) (lstnumber.-48.11)] >> endobj 2000 0 obj << /Names [(lstnumber.-48.12) 1021 0 R (lstnumber.-48.13) 1022 0 R (lstnumber.-48.14) 1023 0 R (lstnumber.-48.15) 1024 0 R (lstnumber.-48.16) 1025 0 R (lstnumber.-48.17) 1026 0 R] /Limits [(lstnumber.-48.12) (lstnumber.-48.17)] >> endobj 2001 0 obj << /Names [(lstnumber.-48.18) 1027 0 R (lstnumber.-48.19) 1028 0 R (lstnumber.-48.2) 998 0 R (lstnumber.-48.20) 1029 0 R (lstnumber.-48.21) 1030 0 R (lstnumber.-48.22) 1031 0 R] /Limits [(lstnumber.-48.18) (lstnumber.-48.22)] >> endobj 2002 0 obj << /Names [(lstnumber.-48.23) 1032 0 R (lstnumber.-48.24) 1033 0 R (lstnumber.-48.25) 1034 0 R (lstnumber.-48.26) 1035 0 R (lstnumber.-48.27) 1036 0 R (lstnumber.-48.28) 1037 0 R] /Limits [(lstnumber.-48.23) (lstnumber.-48.28)] >> endobj 2003 0 obj << /Names [(lstnumber.-48.29) 1038 0 R (lstnumber.-48.3) 999 0 R (lstnumber.-48.30) 1039 0 R (lstnumber.-48.31) 1040 0 R (lstnumber.-48.32) 1041 0 R (lstnumber.-48.33) 1042 0 R] /Limits [(lstnumber.-48.29) (lstnumber.-48.33)] >> endobj 2004 0 obj << /Names [(lstnumber.-48.34) 1043 0 R (lstnumber.-48.4) 1000 0 R (lstnumber.-48.5) 1001 0 R (lstnumber.-48.6) 1002 0 R (lstnumber.-48.7) 1003 0 R (lstnumber.-48.8) 1004 0 R] /Limits [(lstnumber.-48.34) (lstnumber.-48.8)] >> endobj 2005 0 obj << /Names [(lstnumber.-48.9) 1005 0 R (lstnumber.-49.1) 1051 0 R (lstnumber.-49.2) 1052 0 R (lstnumber.-49.3) 1053 0 R (lstnumber.-49.4) 1054 0 R (lstnumber.-49.5) 1055 0 R] /Limits [(lstnumber.-48.9) (lstnumber.-49.5)] >> endobj 2006 0 obj << /Names [(lstnumber.-49.6) 1056 0 R (lstnumber.-5.1) 409 0 R (lstnumber.-5.2) 410 0 R (lstnumber.-50.1) 1058 0 R (lstnumber.-50.10) 1067 0 R (lstnumber.-50.11) 1085 0 R] /Limits [(lstnumber.-49.6) (lstnumber.-50.11)] >> endobj 2007 0 obj << /Names [(lstnumber.-50.12) 1086 0 R (lstnumber.-50.13) 1087 0 R (lstnumber.-50.14) 1088 0 R (lstnumber.-50.15) 1089 0 R (lstnumber.-50.16) 1090 0 R (lstnumber.-50.17) 1091 0 R] /Limits [(lstnumber.-50.12) (lstnumber.-50.17)] >> endobj 2008 0 obj << /Names [(lstnumber.-50.2) 1059 0 R (lstnumber.-50.3) 1060 0 R (lstnumber.-50.4) 1061 0 R (lstnumber.-50.5) 1062 0 R (lstnumber.-50.6) 1063 0 R (lstnumber.-50.7) 1064 0 R] /Limits [(lstnumber.-50.2) (lstnumber.-50.7)] >> endobj 2009 0 obj << /Names [(lstnumber.-50.8) 1065 0 R (lstnumber.-50.9) 1066 0 R (lstnumber.-51.1) 1093 0 R (lstnumber.-51.10) 1113 0 R (lstnumber.-51.11) 1114 0 R (lstnumber.-51.12) 1115 0 R] /Limits [(lstnumber.-50.8) (lstnumber.-51.12)] >> endobj 2010 0 obj << /Names [(lstnumber.-51.2) 1094 0 R (lstnumber.-51.3) 1095 0 R (lstnumber.-51.4) 1107 0 R (lstnumber.-51.5) 1108 0 R (lstnumber.-51.6) 1109 0 R (lstnumber.-51.7) 1110 0 R] /Limits [(lstnumber.-51.2) (lstnumber.-51.7)] >> endobj 2011 0 obj << /Names [(lstnumber.-51.8) 1111 0 R (lstnumber.-51.9) 1112 0 R (lstnumber.-52.1) 1117 0 R (lstnumber.-52.2) 1118 0 R (lstnumber.-52.3) 1119 0 R (lstnumber.-52.4) 1120 0 R] /Limits [(lstnumber.-51.8) (lstnumber.-52.4)] >> endobj 2012 0 obj << /Names [(lstnumber.-53.1) 1122 0 R (lstnumber.-53.2) 1123 0 R (lstnumber.-53.3) 1124 0 R (lstnumber.-53.4) 1153 0 R (lstnumber.-54.1) 1155 0 R (lstnumber.-54.2) 1156 0 R] /Limits [(lstnumber.-53.1) (lstnumber.-54.2)] >> endobj 2013 0 obj << /Names [(lstnumber.-55.1) 1159 0 R (lstnumber.-55.10) 1168 0 R (lstnumber.-55.11) 1169 0 R (lstnumber.-55.12) 1170 0 R (lstnumber.-55.13) 1171 0 R (lstnumber.-55.14) 1172 0 R] /Limits [(lstnumber.-55.1) (lstnumber.-55.14)] >> endobj 2014 0 obj << /Names [(lstnumber.-55.15) 1173 0 R (lstnumber.-55.16) 1174 0 R (lstnumber.-55.17) 1175 0 R (lstnumber.-55.18) 1176 0 R (lstnumber.-55.19) 1177 0 R (lstnumber.-55.2) 1160 0 R] /Limits [(lstnumber.-55.15) (lstnumber.-55.2)] >> endobj 2015 0 obj << /Names [(lstnumber.-55.20) 1191 0 R (lstnumber.-55.21) 1192 0 R (lstnumber.-55.22) 1193 0 R (lstnumber.-55.23) 1194 0 R (lstnumber.-55.24) 1195 0 R (lstnumber.-55.25) 1196 0 R] /Limits [(lstnumber.-55.20) (lstnumber.-55.25)] >> endobj 2016 0 obj << /Names [(lstnumber.-55.26) 1197 0 R (lstnumber.-55.27) 1198 0 R (lstnumber.-55.28) 1199 0 R (lstnumber.-55.29) 1200 0 R (lstnumber.-55.3) 1161 0 R (lstnumber.-55.30) 1201 0 R] /Limits [(lstnumber.-55.26) (lstnumber.-55.30)] >> endobj 2017 0 obj << /Names [(lstnumber.-55.31) 1202 0 R (lstnumber.-55.32) 1203 0 R (lstnumber.-55.33) 1204 0 R (lstnumber.-55.34) 1205 0 R (lstnumber.-55.35) 1206 0 R (lstnumber.-55.36) 1207 0 R] /Limits [(lstnumber.-55.31) (lstnumber.-55.36)] >> endobj 2018 0 obj << /Names [(lstnumber.-55.37) 1208 0 R (lstnumber.-55.38) 1209 0 R (lstnumber.-55.39) 1210 0 R (lstnumber.-55.4) 1162 0 R (lstnumber.-55.40) 1211 0 R (lstnumber.-55.41) 1212 0 R] /Limits [(lstnumber.-55.37) (lstnumber.-55.41)] >> endobj 2019 0 obj << /Names [(lstnumber.-55.42) 1213 0 R (lstnumber.-55.43) 1214 0 R (lstnumber.-55.44) 1215 0 R (lstnumber.-55.45) 1216 0 R (lstnumber.-55.46) 1217 0 R (lstnumber.-55.47) 1218 0 R] /Limits [(lstnumber.-55.42) (lstnumber.-55.47)] >> endobj 2020 0 obj << /Names [(lstnumber.-55.48) 1219 0 R (lstnumber.-55.49) 1220 0 R (lstnumber.-55.5) 1163 0 R (lstnumber.-55.50) 1221 0 R (lstnumber.-55.51) 1222 0 R (lstnumber.-55.52) 1223 0 R] /Limits [(lstnumber.-55.48) (lstnumber.-55.52)] >> endobj 2021 0 obj << /Names [(lstnumber.-55.53) 1224 0 R (lstnumber.-55.54) 1225 0 R (lstnumber.-55.55) 1226 0 R (lstnumber.-55.6) 1164 0 R (lstnumber.-55.7) 1165 0 R (lstnumber.-55.8) 1166 0 R] /Limits [(lstnumber.-55.53) (lstnumber.-55.8)] >> endobj 2022 0 obj << /Names [(lstnumber.-55.9) 1167 0 R (lstnumber.-56.1) 1245 0 R (lstnumber.-56.2) 1246 0 R (lstnumber.-57.1) 1249 0 R (lstnumber.-57.10) 1258 0 R (lstnumber.-57.11) 1259 0 R] /Limits [(lstnumber.-55.9) (lstnumber.-57.11)] >> endobj 2023 0 obj << /Names [(lstnumber.-57.12) 1260 0 R (lstnumber.-57.13) 1261 0 R (lstnumber.-57.14) 1262 0 R (lstnumber.-57.15) 1263 0 R (lstnumber.-57.16) 1264 0 R (lstnumber.-57.17) 1265 0 R] /Limits [(lstnumber.-57.12) (lstnumber.-57.17)] >> endobj 2024 0 obj << /Names [(lstnumber.-57.18) 1266 0 R (lstnumber.-57.19) 1267 0 R (lstnumber.-57.2) 1250 0 R (lstnumber.-57.20) 1268 0 R (lstnumber.-57.21) 1269 0 R (lstnumber.-57.22) 1270 0 R] /Limits [(lstnumber.-57.18) (lstnumber.-57.22)] >> endobj 2025 0 obj << /Names [(lstnumber.-57.23) 1271 0 R (lstnumber.-57.24) 1272 0 R (lstnumber.-57.25) 1273 0 R (lstnumber.-57.26) 1274 0 R (lstnumber.-57.27) 1275 0 R (lstnumber.-57.28) 1276 0 R] /Limits [(lstnumber.-57.23) (lstnumber.-57.28)] >> endobj 2026 0 obj << /Names [(lstnumber.-57.29) 1277 0 R (lstnumber.-57.3) 1251 0 R (lstnumber.-57.30) 1278 0 R (lstnumber.-57.31) 1279 0 R (lstnumber.-57.32) 1280 0 R (lstnumber.-57.33) 1281 0 R] /Limits [(lstnumber.-57.29) (lstnumber.-57.33)] >> endobj 2027 0 obj << /Names [(lstnumber.-57.34) 1282 0 R (lstnumber.-57.35) 1283 0 R (lstnumber.-57.36) 1284 0 R (lstnumber.-57.37) 1285 0 R (lstnumber.-57.38) 1286 0 R (lstnumber.-57.39) 1287 0 R] /Limits [(lstnumber.-57.34) (lstnumber.-57.39)] >> endobj 2028 0 obj << /Names [(lstnumber.-57.4) 1252 0 R (lstnumber.-57.40) 1288 0 R (lstnumber.-57.41) 1289 0 R (lstnumber.-57.42) 1290 0 R (lstnumber.-57.43) 1295 0 R (lstnumber.-57.44) 1296 0 R] /Limits [(lstnumber.-57.4) (lstnumber.-57.44)] >> endobj 2029 0 obj << /Names [(lstnumber.-57.45) 1297 0 R (lstnumber.-57.46) 1298 0 R (lstnumber.-57.47) 1299 0 R (lstnumber.-57.48) 1300 0 R (lstnumber.-57.49) 1301 0 R (lstnumber.-57.5) 1253 0 R] /Limits [(lstnumber.-57.45) (lstnumber.-57.5)] >> endobj 2030 0 obj << /Names [(lstnumber.-57.50) 1302 0 R (lstnumber.-57.51) 1303 0 R (lstnumber.-57.52) 1304 0 R (lstnumber.-57.53) 1305 0 R (lstnumber.-57.54) 1306 0 R (lstnumber.-57.55) 1307 0 R] /Limits [(lstnumber.-57.50) (lstnumber.-57.55)] >> endobj 2031 0 obj << /Names [(lstnumber.-57.56) 1308 0 R (lstnumber.-57.57) 1309 0 R (lstnumber.-57.58) 1310 0 R (lstnumber.-57.59) 1311 0 R (lstnumber.-57.6) 1254 0 R (lstnumber.-57.60) 1312 0 R] /Limits [(lstnumber.-57.56) (lstnumber.-57.60)] >> endobj 2032 0 obj << /Names [(lstnumber.-57.61) 1313 0 R (lstnumber.-57.62) 1314 0 R (lstnumber.-57.63) 1315 0 R (lstnumber.-57.64) 1316 0 R (lstnumber.-57.65) 1317 0 R (lstnumber.-57.66) 1318 0 R] /Limits [(lstnumber.-57.61) (lstnumber.-57.66)] >> endobj 2033 0 obj << /Names [(lstnumber.-57.67) 1319 0 R (lstnumber.-57.68) 1320 0 R (lstnumber.-57.69) 1321 0 R (lstnumber.-57.7) 1255 0 R (lstnumber.-57.70) 1322 0 R (lstnumber.-57.71) 1323 0 R] /Limits [(lstnumber.-57.67) (lstnumber.-57.71)] >> endobj 2034 0 obj << /Names [(lstnumber.-57.72) 1324 0 R (lstnumber.-57.73) 1325 0 R (lstnumber.-57.74) 1326 0 R (lstnumber.-57.75) 1327 0 R (lstnumber.-57.76) 1328 0 R (lstnumber.-57.77) 1329 0 R] /Limits [(lstnumber.-57.72) (lstnumber.-57.77)] >> endobj 2035 0 obj << /Names [(lstnumber.-57.78) 1330 0 R (lstnumber.-57.79) 1331 0 R (lstnumber.-57.8) 1256 0 R (lstnumber.-57.80) 1332 0 R (lstnumber.-57.81) 1333 0 R (lstnumber.-57.82) 1338 0 R] /Limits [(lstnumber.-57.78) (lstnumber.-57.82)] >> endobj 2036 0 obj << /Names [(lstnumber.-57.83) 1339 0 R (lstnumber.-57.84) 1340 0 R (lstnumber.-57.85) 1341 0 R (lstnumber.-57.86) 1342 0 R (lstnumber.-57.87) 1343 0 R (lstnumber.-57.88) 1344 0 R] /Limits [(lstnumber.-57.83) (lstnumber.-57.88)] >> endobj 2037 0 obj << /Names [(lstnumber.-57.89) 1345 0 R (lstnumber.-57.9) 1257 0 R (lstnumber.-57.90) 1346 0 R (lstnumber.-57.91) 1347 0 R (lstnumber.-57.92) 1348 0 R (lstnumber.-58.1) 1364 0 R] /Limits [(lstnumber.-57.89) (lstnumber.-58.1)] >> endobj 2038 0 obj << /Names [(lstnumber.-59.1) 1379 0 R (lstnumber.-59.10) 1388 0 R (lstnumber.-59.11) 1389 0 R (lstnumber.-59.12) 1390 0 R (lstnumber.-59.13) 1391 0 R (lstnumber.-59.14) 1392 0 R] /Limits [(lstnumber.-59.1) (lstnumber.-59.14)] >> endobj 2039 0 obj << /Names [(lstnumber.-59.15) 1393 0 R (lstnumber.-59.16) 1394 0 R (lstnumber.-59.17) 1395 0 R (lstnumber.-59.18) 1396 0 R (lstnumber.-59.19) 1397 0 R (lstnumber.-59.2) 1380 0 R] /Limits [(lstnumber.-59.15) (lstnumber.-59.2)] >> endobj 2040 0 obj << /Names [(lstnumber.-59.20) 1398 0 R (lstnumber.-59.21) 1399 0 R (lstnumber.-59.22) 1400 0 R (lstnumber.-59.23) 1406 0 R (lstnumber.-59.24) 1407 0 R (lstnumber.-59.25) 1408 0 R] /Limits [(lstnumber.-59.20) (lstnumber.-59.25)] >> endobj 2041 0 obj << /Names [(lstnumber.-59.26) 1409 0 R (lstnumber.-59.27) 1410 0 R (lstnumber.-59.28) 1411 0 R (lstnumber.-59.29) 1412 0 R (lstnumber.-59.3) 1381 0 R (lstnumber.-59.30) 1413 0 R] /Limits [(lstnumber.-59.26) (lstnumber.-59.30)] >> endobj 2042 0 obj << /Names [(lstnumber.-59.31) 1414 0 R (lstnumber.-59.32) 1415 0 R (lstnumber.-59.33) 1416 0 R (lstnumber.-59.34) 1417 0 R (lstnumber.-59.35) 1418 0 R (lstnumber.-59.36) 1419 0 R] /Limits [(lstnumber.-59.31) (lstnumber.-59.36)] >> endobj 2043 0 obj << /Names [(lstnumber.-59.37) 1420 0 R (lstnumber.-59.38) 1421 0 R (lstnumber.-59.39) 1422 0 R (lstnumber.-59.4) 1382 0 R (lstnumber.-59.40) 1423 0 R (lstnumber.-59.41) 1424 0 R] /Limits [(lstnumber.-59.37) (lstnumber.-59.41)] >> endobj 2044 0 obj << /Names [(lstnumber.-59.42) 1425 0 R (lstnumber.-59.43) 1426 0 R (lstnumber.-59.44) 1427 0 R (lstnumber.-59.45) 1428 0 R (lstnumber.-59.46) 1429 0 R (lstnumber.-59.47) 1430 0 R] /Limits [(lstnumber.-59.42) (lstnumber.-59.47)] >> endobj 2045 0 obj << /Names [(lstnumber.-59.48) 1431 0 R (lstnumber.-59.49) 1432 0 R (lstnumber.-59.5) 1383 0 R (lstnumber.-59.50) 1433 0 R (lstnumber.-59.51) 1434 0 R (lstnumber.-59.52) 1435 0 R] /Limits [(lstnumber.-59.48) (lstnumber.-59.52)] >> endobj 2046 0 obj << /Names [(lstnumber.-59.53) 1436 0 R (lstnumber.-59.54) 1437 0 R (lstnumber.-59.55) 1438 0 R (lstnumber.-59.56) 1439 0 R (lstnumber.-59.57) 1440 0 R (lstnumber.-59.58) 1441 0 R] /Limits [(lstnumber.-59.53) (lstnumber.-59.58)] >> endobj 2047 0 obj << /Names [(lstnumber.-59.59) 1442 0 R (lstnumber.-59.6) 1384 0 R (lstnumber.-59.60) 1443 0 R (lstnumber.-59.61) 1444 0 R (lstnumber.-59.62) 1445 0 R (lstnumber.-59.63) 1446 0 R] /Limits [(lstnumber.-59.59) (lstnumber.-59.63)] >> endobj 2048 0 obj << /Names [(lstnumber.-59.64) 1447 0 R (lstnumber.-59.65) 1448 0 R (lstnumber.-59.66) 1449 0 R (lstnumber.-59.67) 1450 0 R (lstnumber.-59.68) 1451 0 R (lstnumber.-59.69) 1452 0 R] /Limits [(lstnumber.-59.64) (lstnumber.-59.69)] >> endobj 2049 0 obj << /Names [(lstnumber.-59.7) 1385 0 R (lstnumber.-59.70) 1453 0 R (lstnumber.-59.71) 1454 0 R (lstnumber.-59.8) 1386 0 R (lstnumber.-59.9) 1387 0 R (lstnumber.-6.1) 412 0 R] /Limits [(lstnumber.-59.7) (lstnumber.-6.1)] >> endobj 2050 0 obj << /Names [(lstnumber.-6.2) 413 0 R (lstnumber.-60.1) 1462 0 R (lstnumber.-7.1) 415 0 R (lstnumber.-7.2) 416 0 R (lstnumber.-7.3) 417 0 R (lstnumber.-8.1) 442 0 R] /Limits [(lstnumber.-6.2) (lstnumber.-8.1)] >> endobj 2051 0 obj << /Names [(lstnumber.-8.2) 443 0 R (lstnumber.-8.3) 444 0 R (lstnumber.-8.4) 445 0 R (lstnumber.-8.5) 446 0 R (lstnumber.-8.6) 447 0 R (lstnumber.-8.7) 448 0 R] /Limits [(lstnumber.-8.2) (lstnumber.-8.7)] >> endobj 2052 0 obj << /Names [(lstnumber.-9.1) 455 0 R (lstnumber.-9.2) 456 0 R (lstnumber.-9.3) 457 0 R (lstnumber.-9.4) 458 0 R (lstnumber.-9.5) 459 0 R (page.1) 277 0 R] /Limits [(lstnumber.-9.1) (page.1)] >> endobj 2053 0 obj << /Names [(page.10) 401 0 R (page.11) 424 0 R (page.12) 438 0 R (page.13) 453 0 R (page.14) 464 0 R (page.15) 468 0 R] /Limits [(page.10) (page.15)] >> endobj 2054 0 obj << /Names [(page.16) 474 0 R (page.17) 490 0 R (page.18) 504 0 R (page.19) 516 0 R (page.2) 284 0 R (page.20) 541 0 R] /Limits [(page.16) (page.20)] >> endobj 2055 0 obj << /Names [(page.21) 562 0 R (page.22) 576 0 R (page.23) 587 0 R (page.24) 593 0 R (page.25) 603 0 R (page.26) 621 0 R] /Limits [(page.21) (page.26)] >> endobj 2056 0 obj << /Names [(page.27) 641 0 R (page.28) 652 0 R (page.29) 663 0 R (page.3) 314 0 R (page.30) 670 0 R (page.31) 691 0 R] /Limits [(page.27) (page.31)] >> endobj 2057 0 obj << /Names [(page.32) 700 0 R (page.33) 704 0 R (page.34) 715 0 R (page.35) 721 0 R (page.36) 743 0 R (page.37) 757 0 R] /Limits [(page.32) (page.37)] >> endobj 2058 0 obj << /Names [(page.38) 777 0 R (page.39) 805 0 R (page.4) 354 0 R (page.40) 809 0 R (page.41) 813 0 R (page.42) 822 0 R] /Limits [(page.38) (page.42)] >> endobj 2059 0 obj << /Names [(page.43) 827 0 R (page.44) 832 0 R (page.45) 837 0 R (page.46) 851 0 R (page.47) 858 0 R (page.48) 865 0 R] /Limits [(page.43) (page.48)] >> endobj 2060 0 obj << /Names [(page.49) 913 0 R (page.5) 367 0 R (page.50) 919 0 R (page.51) 926 0 R (page.52) 932 0 R (page.53) 938 0 R] /Limits [(page.49) (page.53)] >> endobj 2061 0 obj << /Names [(page.54) 944 0 R (page.55) 948 0 R (page.56) 960 0 R (page.57) 1020 0 R (page.58) 1049 0 R (page.59) 1084 0 R] /Limits [(page.54) (page.59)] >> endobj 2062 0 obj << /Names [(page.6) 371 0 R (page.60) 1106 0 R (page.61) 1152 0 R (page.62) 1190 0 R (page.63) 1234 0 R (page.64) 1243 0 R] /Limits [(page.6) (page.64)] >> endobj 2063 0 obj << /Names [(page.65) 1294 0 R (page.66) 1337 0 R (page.67) 1352 0 R (page.68) 1362 0 R (page.69) 1368 0 R (page.7) 375 0 R] /Limits [(page.65) (page.7)] >> endobj 2064 0 obj << /Names [(page.70) 1377 0 R (page.71) 1405 0 R (page.72) 1460 0 R (page.73) 1468 0 R (page.74) 1542 0 R (page.75) 1597 0 R] /Limits [(page.70) (page.75)] >> endobj 2065 0 obj << /Names [(page.76) 1611 0 R (page.77) 1618 0 R (page.78) 1622 0 R (page.8) 383 0 R (page.9) 391 0 R (section*.1) 505 0 R] /Limits [(page.76) (section*.1)] >> endobj 2066 0 obj << /Names [(section*.10) 589 0 R (section*.11) 596 0 R (section*.12) 609 0 R (section*.13) 616 0 R (section*.14) 622 0 R (section*.15) 635 0 R] /Limits [(section*.10) (section*.15)] >> endobj 2067 0 obj << /Names [(section*.16) 642 0 R (section*.17) 646 0 R (section*.18) 653 0 R (section*.19) 654 0 R (section*.2) 507 0 R (section*.20) 655 0 R] /Limits [(section*.16) (section*.20)] >> endobj 2068 0 obj << /Names [(section*.21) 659 0 R (section*.22) 664 0 R (section*.23) 679 0 R (section*.24) 687 0 R (section*.25) 744 0 R (section*.26) 745 0 R] /Limits [(section*.21) (section*.26)] >> endobj 2069 0 obj << /Names [(section*.27) 758 0 R (section*.28) 778 0 R (section*.29) 801 0 R (section*.3) 517 0 R (section*.30) 920 0 R (section*.31) 927 0 R] /Limits [(section*.27) (section*.31)] >> endobj 2070 0 obj << /Names [(section*.4) 521 0 R (section*.5) 542 0 R (section*.6) 546 0 R (section*.7) 566 0 R (section*.8) 583 0 R (section*.9) 588 0 R] /Limits [(section*.4) (section*.9)] >> endobj 2071 0 obj << /Names [(section.1.1) 6 0 R (section.1.2) 10 0 R (section.2.1) 18 0 R (section.2.2) 22 0 R (section.2.3) 26 0 R (section.2.4) 30 0 R] /Limits [(section.1.1) (section.2.4)] >> endobj 2072 0 obj << /Names [(section.3.1) 38 0 R (section.3.2) 42 0 R (section.3.3) 58 0 R (section.3.4) 74 0 R (section.3.5) 102 0 R (section.4.1) 130 0 R] /Limits [(section.3.1) (section.4.1)] >> endobj 2073 0 obj << /Names [(section.5.1) 138 0 R (section.5.2) 142 0 R (section.5.3) 162 0 R (section.6.1) 182 0 R (section.6.2) 186 0 R (section.7.1) 214 0 R] /Limits [(section.5.1) (section.7.1)] >> endobj 2074 0 obj << /Names [(section.7.2) 218 0 R (section.7.3) 222 0 R (section.7.4) 238 0 R (section.7.5) 242 0 R (section.7.6) 262 0 R (section.7.7) 266 0 R] /Limits [(section.7.2) (section.7.7)] >> endobj 2075 0 obj << /Names [(subsection.3.2.1) 46 0 R (subsection.3.2.2) 50 0 R (subsection.3.2.3) 54 0 R (subsection.3.3.1) 62 0 R (subsection.3.3.2) 66 0 R (subsection.3.3.3) 70 0 R] /Limits [(subsection.3.2.1) (subsection.3.3.3)] >> endobj 2076 0 obj << /Names [(subsection.3.4.1) 78 0 R (subsection.3.4.2) 82 0 R (subsection.3.4.3) 86 0 R (subsection.3.4.4) 90 0 R (subsection.3.4.5) 94 0 R (subsection.3.4.6) 98 0 R] /Limits [(subsection.3.4.1) (subsection.3.4.6)] >> endobj 2077 0 obj << /Names [(subsection.3.5.1) 106 0 R (subsection.3.5.2) 110 0 R (subsection.3.5.3) 114 0 R (subsection.3.5.4) 118 0 R (subsection.3.5.5) 122 0 R (subsection.5.2.1) 146 0 R] /Limits [(subsection.3.5.1) (subsection.5.2.1)] >> endobj 2078 0 obj << /Names [(subsection.5.2.2) 150 0 R (subsection.5.2.3) 154 0 R (subsection.5.2.4) 158 0 R (subsection.5.3.1) 166 0 R (subsection.5.3.2) 170 0 R (subsection.5.3.3) 174 0 R] /Limits [(subsection.5.2.2) (subsection.5.3.3)] >> endobj 2079 0 obj << /Names [(subsection.6.2.1) 190 0 R (subsection.6.2.2) 194 0 R (subsection.6.2.3) 198 0 R (subsection.6.2.4) 202 0 R (subsection.6.2.5) 206 0 R (subsection.7.3.1) 226 0 R] /Limits [(subsection.6.2.1) (subsection.7.3.1)] >> endobj 2080 0 obj << /Names [(subsection.7.3.2) 230 0 R (subsection.7.3.3) 234 0 R (subsection.7.5.1) 246 0 R (subsection.7.5.2) 250 0 R (subsection.7.5.3) 254 0 R (subsection.7.5.4) 258 0 R] /Limits [(subsection.7.3.2) (subsection.7.5.4)] >> endobj 2081 0 obj << /Names [(table.3.1) 506 0 R (table.5.1) 847 0 R (table.5.2) 860 0 R (table.5.3) 914 0 R (table.5.4) 921 0 R (table.5.5) 928 0 R] /Limits [(table.3.1) (table.5.5)] >> endobj 2082 0 obj << /Kids [1949 0 R 1950 0 R 1951 0 R 1952 0 R 1953 0 R 1954 0 R] /Limits [(Doc-Start) (equation.3.4.2)] >> endobj 2083 0 obj << /Kids [1955 0 R 1956 0 R 1957 0 R 1958 0 R 1959 0 R 1960 0 R] /Limits [(equation.3.4.3) (lstlisting.3.-18)] >> endobj 2084 0 obj << /Kids [1961 0 R 1962 0 R 1963 0 R 1964 0 R 1965 0 R 1966 0 R] /Limits [(lstlisting.3.-19) (lstlisting.6.-52)] >> endobj 2085 0 obj << /Kids [1967 0 R 1968 0 R 1969 0 R 1970 0 R 1971 0 R 1972 0 R] /Limits [(lstlisting.6.-53) (lstnumber.-2.1)] >> endobj 2086 0 obj << /Kids [1973 0 R 1974 0 R 1975 0 R 1976 0 R 1977 0 R 1978 0 R] /Limits [(lstnumber.-2.2) (lstnumber.-37.2)] >> endobj 2087 0 obj << /Kids [1979 0 R 1980 0 R 1981 0 R 1982 0 R 1983 0 R 1984 0 R] /Limits [(lstnumber.-37.3) (lstnumber.-44.3)] >> endobj 2088 0 obj << /Kids [1985 0 R 1986 0 R 1987 0 R 1988 0 R 1989 0 R 1990 0 R] /Limits [(lstnumber.-44.4) (lstnumber.-45.37)] >> endobj 2089 0 obj << /Kids [1991 0 R 1992 0 R 1993 0 R 1994 0 R 1995 0 R 1996 0 R] /Limits [(lstnumber.-45.38) (lstnumber.-47.12)] >> endobj 2090 0 obj << /Kids [1997 0 R 1998 0 R 1999 0 R 2000 0 R 2001 0 R 2002 0 R] /Limits [(lstnumber.-47.13) (lstnumber.-48.28)] >> endobj 2091 0 obj << /Kids [2003 0 R 2004 0 R 2005 0 R 2006 0 R 2007 0 R 2008 0 R] /Limits [(lstnumber.-48.29) (lstnumber.-50.7)] >> endobj 2092 0 obj << /Kids [2009 0 R 2010 0 R 2011 0 R 2012 0 R 2013 0 R 2014 0 R] /Limits [(lstnumber.-50.8) (lstnumber.-55.2)] >> endobj 2093 0 obj << /Kids [2015 0 R 2016 0 R 2017 0 R 2018 0 R 2019 0 R 2020 0 R] /Limits [(lstnumber.-55.20) (lstnumber.-55.52)] >> endobj 2094 0 obj << /Kids [2021 0 R 2022 0 R 2023 0 R 2024 0 R 2025 0 R 2026 0 R] /Limits [(lstnumber.-55.53) (lstnumber.-57.33)] >> endobj 2095 0 obj << /Kids [2027 0 R 2028 0 R 2029 0 R 2030 0 R 2031 0 R 2032 0 R] /Limits [(lstnumber.-57.34) (lstnumber.-57.66)] >> endobj 2096 0 obj << /Kids [2033 0 R 2034 0 R 2035 0 R 2036 0 R 2037 0 R 2038 0 R] /Limits [(lstnumber.-57.67) (lstnumber.-59.14)] >> endobj 2097 0 obj << /Kids [2039 0 R 2040 0 R 2041 0 R 2042 0 R 2043 0 R 2044 0 R] /Limits [(lstnumber.-59.15) (lstnumber.-59.47)] >> endobj 2098 0 obj << /Kids [2045 0 R 2046 0 R 2047 0 R 2048 0 R 2049 0 R 2050 0 R] /Limits [(lstnumber.-59.48) (lstnumber.-8.1)] >> endobj 2099 0 obj << /Kids [2051 0 R 2052 0 R 2053 0 R 2054 0 R 2055 0 R 2056 0 R] /Limits [(lstnumber.-8.2) (page.31)] >> endobj 2100 0 obj << /Kids [2057 0 R 2058 0 R 2059 0 R 2060 0 R 2061 0 R 2062 0 R] /Limits [(page.32) (page.64)] >> endobj 2101 0 obj << /Kids [2063 0 R 2064 0 R 2065 0 R 2066 0 R 2067 0 R 2068 0 R] /Limits [(page.65) (section*.26)] >> endobj 2102 0 obj << /Kids [2069 0 R 2070 0 R 2071 0 R 2072 0 R 2073 0 R 2074 0 R] /Limits [(section*.27) (section.7.7)] >> endobj 2103 0 obj << /Kids [2075 0 R 2076 0 R 2077 0 R 2078 0 R 2079 0 R 2080 0 R] /Limits [(subsection.3.2.1) (subsection.7.5.4)] >> endobj 2104 0 obj << /Kids [2081 0 R] /Limits [(table.3.1) (table.5.5)] >> endobj 2105 0 obj << /Kids [2082 0 R 2083 0 R 2084 0 R 2085 0 R 2086 0 R 2087 0 R] /Limits [(Doc-Start) (lstnumber.-44.3)] >> endobj 2106 0 obj << /Kids [2088 0 R 2089 0 R 2090 0 R 2091 0 R 2092 0 R 2093 0 R] /Limits [(lstnumber.-44.4) (lstnumber.-55.52)] >> endobj 2107 0 obj << /Kids [2094 0 R 2095 0 R 2096 0 R 2097 0 R 2098 0 R 2099 0 R] /Limits [(lstnumber.-55.53) (page.31)] >> endobj 2108 0 obj << /Kids [2100 0 R 2101 0 R 2102 0 R 2103 0 R 2104 0 R] /Limits [(page.32) (table.5.5)] >> endobj 2109 0 obj << /Kids [2105 0 R 2106 0 R 2107 0 R 2108 0 R] /Limits [(Doc-Start) (table.5.5)] >> endobj 2110 0 obj << /Dests 2109 0 R >> endobj 2111 0 obj << /Type /Catalog /Pages 1947 0 R /Outlines 1948 0 R /Names 2110 0 R /PageMode/UseOutlines /OpenAction 273 0 R >> endobj 2112 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.10)/Keywords() /CreationDate (D:20120107212903+01'00') /ModDate (D:20120107212903+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.10-2.2 (TeX Live 2009/Debian) kpathsea version 5.0.0) >> endobj xref 0 2113 0000001455 65535 f 0000000015 00000 n 0000025476 00000 n 0001069118 00000 n 0000000060 00000 n 0000000090 00000 n 0000025535 00000 n 0001069048 00000 n 0000000137 00000 n 0000000172 00000 n 0000028713 00000 n 0001068977 00000 n 0000000219 00000 n 0000000263 00000 n 0000031126 00000 n 0001068852 00000 n 0000000309 00000 n 0000000358 00000 n 0000031186 00000 n 0001068778 00000 n 0000000406 00000 n 0000000457 00000 n 0000031366 00000 n 0001068691 00000 n 0000000505 00000 n 0000000535 00000 n 0000034748 00000 n 0001068604 00000 n 0000000583 00000 n 0000000614 00000 n 0000035241 00000 n 0001068530 00000 n 0000000662 00000 n 0000000708 00000 n 0000048984 00000 n 0001068402 00000 n 0000000754 00000 n 0000000785 00000 n 0000049106 00000 n 0001068328 00000 n 0000000833 00000 n 0000000865 00000 n 0000053025 00000 n 0001068204 00000 n 0000000913 00000 n 0000000942 00000 n 0000053086 00000 n 0001068130 00000 n 0000000995 00000 n 0000001026 00000 n 0000056495 00000 n 0001068043 00000 n 0000001079 00000 n 0000001105 00000 n 0000056554 00000 n 0001067969 00000 n 0000001158 00000 n 0000001190 00000 n 0000062853 00000 n 0001067845 00000 n 0000001238 00000 n 0000001268 00000 n 0000062912 00000 n 0001067771 00000 n 0000001321 00000 n 0000001358 00000 n 0000066221 00000 n 0001067684 00000 n 0000001411 00000 n 0000001450 00000 n 0000066530 00000 n 0001067610 00000 n 0000001503 00000 n 0000001555 00000 n 0000070481 00000 n 0001067485 00000 n 0000001603 00000 n 0000001633 00000 n 0000070541 00000 n 0001067411 00000 n 0000001686 00000 n 0000001724 00000 n 0000143136 00000 n 0001067324 00000 n 0000001777 00000 n 0000001817 00000 n 0000146064 00000 n 0001067237 00000 n 0000001870 00000 n 0000001905 00000 n 0000149996 00000 n 0001067150 00000 n 0000001958 00000 n 0000002000 00000 n 0000161852 00000 n 0001067063 00000 n 0000002053 00000 n 0000002091 00000 n 0000168403 00000 n 0001066988 00000 n 0000002144 00000 n 0000002193 00000 n 0000175860 00000 n 0001066872 00000 n 0000002242 00000 n 0000002272 00000 n 0000175921 00000 n 0001066793 00000 n 0000002326 00000 n 0000002353 00000 n 0000178974 00000 n 0001066700 00000 n 0000002407 00000 n 0000002450 00000 n 0000182046 00000 n 0001066607 00000 n 0000002504 00000 n 0000002552 00000 n 0000186631 00000 n 0001066514 00000 n 0000002606 00000 n 0000002659 00000 n 0000186693 00000 n 0001066435 00000 n 0000002713 00000 n 0000002756 00000 n 0000363559 00000 n 0001066303 00000 n 0000002803 00000 n 0000002850 00000 n 0000363922 00000 n 0001066238 00000 n 0000002899 00000 n 0000002938 00000 n 0000372846 00000 n 0001066105 00000 n 0000002985 00000 n 0000003023 00000 n 0000372907 00000 n 0001066026 00000 n 0000003072 00000 n 0000003118 00000 n 0000379293 00000 n 0001065894 00000 n 0000003167 00000 n 0000003210 00000 n 0000379354 00000 n 0001065815 00000 n 0000003264 00000 n 0000003298 00000 n 0000387567 00000 n 0001065722 00000 n 0000003352 00000 n 0000003387 00000 n 0000387628 00000 n 0001065629 00000 n 0000003441 00000 n 0000003475 00000 n 0000387689 00000 n 0001065550 00000 n 0000003529 00000 n 0000003557 00000 n 0000387812 00000 n 0001065432 00000 n 0000003606 00000 n 0000003650 00000 n 0000390891 00000 n 0001065353 00000 n 0000003704 00000 n 0000003751 00000 n 0000394352 00000 n 0001065260 00000 n 0000003805 00000 n 0000003844 00000 n 0000398757 00000 n 0001065181 00000 n 0000003898 00000 n 0000003940 00000 n 0000402059 00000 n 0001065048 00000 n 0000003987 00000 n 0000004038 00000 n 0000402120 00000 n 0001064969 00000 n 0000004087 00000 n 0000004129 00000 n 0000413845 00000 n 0001064851 00000 n 0000004178 00000 n 0000004222 00000 n 0000413907 00000 n 0001064772 00000 n 0000004276 00000 n 0000004321 00000 n 0000476086 00000 n 0001064679 00000 n 0000004375 00000 n 0000004419 00000 n 0000531975 00000 n 0001064586 00000 n 0000004473 00000 n 0000004524 00000 n 0000542434 00000 n 0001064493 00000 n 0000004578 00000 n 0000004626 00000 n 0000542496 00000 n 0001064414 00000 n 0000004680 00000 n 0000004734 00000 n 0000557540 00000 n 0001064281 00000 n 0000004781 00000 n 0000004827 00000 n 0000557602 00000 n 0001064202 00000 n 0000004876 00000 n 0000004916 00000 n 0000557853 00000 n 0001064109 00000 n 0000004965 00000 n 0000005010 00000 n 0000560100 00000 n 0001063977 00000 n 0000005059 00000 n 0000005101 00000 n 0000560291 00000 n 0001063898 00000 n 0000005155 00000 n 0000005200 00000 n 0000560354 00000 n 0001063805 00000 n 0000005254 00000 n 0000005296 00000 n 0000563647 00000 n 0001063726 00000 n 0000005350 00000 n 0000005385 00000 n 0000563709 00000 n 0001063633 00000 n 0000005434 00000 n 0000005477 00000 n 0000564022 00000 n 0001063501 00000 n 0000005526 00000 n 0000005566 00000 n 0000564084 00000 n 0001063422 00000 n 0000005620 00000 n 0000005648 00000 n 0000567997 00000 n 0001063329 00000 n 0000005702 00000 n 0000005745 00000 n 0000568060 00000 n 0001063236 00000 n 0000005799 00000 n 0000005847 00000 n 0000576956 00000 n 0001063157 00000 n 0000005901 00000 n 0000005942 00000 n 0000579242 00000 n 0001063064 00000 n 0000005991 00000 n 0000006040 00000 n 0000627711 00000 n 0001062985 00000 n 0000006089 00000 n 0000006148 00000 n 0000629325 00000 n 0001062905 00000 n 0000006195 00000 n 0000006230 00000 n 0000006665 00000 n 0000006906 00000 n 0000006282 00000 n 0000006784 00000 n 0000006845 00000 n 0001060336 00000 n 0001060866 00000 n 0000007308 00000 n 0000007127 00000 n 0000006978 00000 n 0000007246 00000 n 0000008766 00000 n 0000008917 00000 n 0000009071 00000 n 0000009225 00000 n 0000009376 00000 n 0000009530 00000 n 0000009684 00000 n 0000009837 00000 n 0000009991 00000 n 0000010141 00000 n 0000010295 00000 n 0000010449 00000 n 0000010608 00000 n 0000010767 00000 n 0000010926 00000 n 0000011080 00000 n 0000011239 00000 n 0000011398 00000 n 0000011557 00000 n 0000011711 00000 n 0000011870 00000 n 0000012029 00000 n 0000012188 00000 n 0000012346 00000 n 0000014449 00000 n 0000014608 00000 n 0000012566 00000 n 0000008443 00000 n 0000007380 00000 n 0000012505 00000 n 0001060162 00000 n 0000014762 00000 n 0000014920 00000 n 0000015079 00000 n 0000015238 00000 n 0000015397 00000 n 0000015554 00000 n 0000015705 00000 n 0000015859 00000 n 0000016011 00000 n 0000016165 00000 n 0000016319 00000 n 0000016477 00000 n 0000016636 00000 n 0000016794 00000 n 0000016953 00000 n 0000017106 00000 n 0000017265 00000 n 0000017424 00000 n 0000017583 00000 n 0000017735 00000 n 0000017889 00000 n 0000018042 00000 n 0000018200 00000 n 0000018359 00000 n 0000018516 00000 n 0000018674 00000 n 0000018833 00000 n 0000018985 00000 n 0000019139 00000 n 0000019293 00000 n 0000019446 00000 n 0000019605 00000 n 0000019764 00000 n 0000020891 00000 n 0000021045 00000 n 0000019985 00000 n 0000014038 00000 n 0000012651 00000 n 0000019923 00000 n 0001060682 00000 n 0000697166 00000 n 0000021198 00000 n 0000021357 00000 n 0000021516 00000 n 0000021675 00000 n 0000021833 00000 n 0000021987 00000 n 0000022141 00000 n 0000022353 00000 n 0000020688 00000 n 0000020096 00000 n 0000022292 00000 n 0000022813 00000 n 0000022632 00000 n 0000022451 00000 n 0000022751 00000 n 0000025594 00000 n 0000025296 00000 n 0000022898 00000 n 0000025415 00000 n 0001060509 00000 n 0001059290 00000 n 0001059460 00000 n 0001060984 00000 n 0000028774 00000 n 0000028532 00000 n 0000025733 00000 n 0000028651 00000 n 0001059981 00000 n 0001058950 00000 n 0001059117 00000 n 0000030872 00000 n 0000031608 00000 n 0000030733 00000 n 0000028968 00000 n 0000031065 00000 n 0000671546 00000 n 0000031246 00000 n 0000031306 00000 n 0000031426 00000 n 0000031487 00000 n 0000031548 00000 n 0000035302 00000 n 0000034015 00000 n 0000031719 00000 n 0000034134 00000 n 0000034196 00000 n 0000034257 00000 n 0000034318 00000 n 0000034380 00000 n 0000034442 00000 n 0000034504 00000 n 0000034565 00000 n 0000034625 00000 n 0000034686 00000 n 0000034809 00000 n 0000034871 00000 n 0000034932 00000 n 0000034994 00000 n 0000035056 00000 n 0000035118 00000 n 0000035179 00000 n 0000048771 00000 n 0000036327 00000 n 0000048704 00000 n 0000049166 00000 n 0000036173 00000 n 0000035441 00000 n 0000048923 00000 n 0000049044 00000 n 0000039919 00000 n 0000040049 00000 n 0000040198 00000 n 0000040558 00000 n 0000041036 00000 n 0000041275 00000 n 0000041296 00000 n 0000048682 00000 n 0000052312 00000 n 0000053147 00000 n 0000052173 00000 n 0000049293 00000 n 0000052469 00000 n 0001058805 00000 n 0001058657 00000 n 0000052531 00000 n 0000052593 00000 n 0000052655 00000 n 0000052717 00000 n 0000052779 00000 n 0000052840 00000 n 0000052902 00000 n 0000052963 00000 n 0000055916 00000 n 0000056614 00000 n 0000055777 00000 n 0000053309 00000 n 0000056068 00000 n 0000056129 00000 n 0000056190 00000 n 0000056251 00000 n 0000056312 00000 n 0000056373 00000 n 0000056434 00000 n 0001061102 00000 n 0000059732 00000 n 0000059551 00000 n 0000056776 00000 n 0000059670 00000 n 0000063094 00000 n 0000062673 00000 n 0000059868 00000 n 0000062792 00000 n 0000062972 00000 n 0000063033 00000 n 0000067085 00000 n 0000066040 00000 n 0000063243 00000 n 0000066159 00000 n 0000066282 00000 n 0000066344 00000 n 0000066406 00000 n 0000066468 00000 n 0000066591 00000 n 0000066653 00000 n 0000066715 00000 n 0000066777 00000 n 0000066839 00000 n 0000066901 00000 n 0000066962 00000 n 0000067024 00000 n 0000070601 00000 n 0000069935 00000 n 0000067234 00000 n 0000070054 00000 n 0000070115 00000 n 0000070176 00000 n 0000070237 00000 n 0000070298 00000 n 0000070359 00000 n 0000070420 00000 n 0000074218 00000 n 0000074370 00000 n 0000076664 00000 n 0000097498 00000 n 0000074770 00000 n 0000074071 00000 n 0000070750 00000 n 0000074523 00000 n 0000074585 00000 n 0000074647 00000 n 0000074708 00000 n 0000097864 00000 n 0000086587 00000 n 0000097650 00000 n 0000100036 00000 n 0000123536 00000 n 0000098355 00000 n 0000076517 00000 n 0000074947 00000 n 0000097803 00000 n 0000097926 00000 n 0000097987 00000 n 0000098049 00000 n 0000098111 00000 n 0000098172 00000 n 0000098233 00000 n 0000098295 00000 n 0001061220 00000 n 0000077682 00000 n 0000077838 00000 n 0000077885 00000 n 0000078236 00000 n 0000078481 00000 n 0000088177 00000 n 0000088333 00000 n 0000088380 00000 n 0000088735 00000 n 0000088979 00000 n 0000123903 00000 n 0000111760 00000 n 0000123688 00000 n 0000124275 00000 n 0000099889 00000 n 0000098549 00000 n 0000123841 00000 n 0000123965 00000 n 0000124027 00000 n 0000124089 00000 n 0000124151 00000 n 0000124213 00000 n 0000101875 00000 n 0000102031 00000 n 0000102078 00000 n 0000102439 00000 n 0000102683 00000 n 0000113319 00000 n 0000113475 00000 n 0000113522 00000 n 0000113883 00000 n 0000114127 00000 n 0000139892 00000 n 0000127256 00000 n 0000140015 00000 n 0000127137 00000 n 0000124469 00000 n 0000139645 00000 n 0000139706 00000 n 0000139768 00000 n 0000139830 00000 n 0000139954 00000 n 0000129076 00000 n 0000129232 00000 n 0000129279 00000 n 0000129644 00000 n 0000129888 00000 n 0000142548 00000 n 0000143258 00000 n 0000142409 00000 n 0000140220 00000 n 0000142702 00000 n 0000142764 00000 n 0000142826 00000 n 0000142888 00000 n 0000142950 00000 n 0000143012 00000 n 0000143074 00000 n 0000143197 00000 n 0000146124 00000 n 0000145762 00000 n 0000143421 00000 n 0000145881 00000 n 0000145942 00000 n 0000146003 00000 n 0000150303 00000 n 0000149691 00000 n 0000146287 00000 n 0000149810 00000 n 0000149872 00000 n 0000149934 00000 n 0000150056 00000 n 0000150118 00000 n 0000150180 00000 n 0000150242 00000 n 0000154040 00000 n 0000153067 00000 n 0000150452 00000 n 0000153186 00000 n 0000153247 00000 n 0000153308 00000 n 0000153369 00000 n 0000153430 00000 n 0000153491 00000 n 0000153552 00000 n 0000153613 00000 n 0000153674 00000 n 0000153735 00000 n 0000153796 00000 n 0000153857 00000 n 0000153918 00000 n 0000153979 00000 n 0001061338 00000 n 0000157960 00000 n 0000156787 00000 n 0000154189 00000 n 0000156906 00000 n 0000156968 00000 n 0000157030 00000 n 0000157092 00000 n 0000157154 00000 n 0000157216 00000 n 0000157278 00000 n 0000157340 00000 n 0000157402 00000 n 0000157464 00000 n 0000157526 00000 n 0000157588 00000 n 0000157650 00000 n 0000157712 00000 n 0000157774 00000 n 0000157836 00000 n 0000157898 00000 n 0000162095 00000 n 0000161428 00000 n 0000158109 00000 n 0000161547 00000 n 0000161608 00000 n 0000161669 00000 n 0000161730 00000 n 0000161791 00000 n 0000161912 00000 n 0000161973 00000 n 0000162034 00000 n 0000165319 00000 n 0000164704 00000 n 0000162244 00000 n 0000164823 00000 n 0000164885 00000 n 0000164947 00000 n 0000165009 00000 n 0000165071 00000 n 0000165133 00000 n 0000165195 00000 n 0000165257 00000 n 0000168646 00000 n 0000168223 00000 n 0000165468 00000 n 0000168342 00000 n 0000168463 00000 n 0000168524 00000 n 0000168585 00000 n 0000172540 00000 n 0000171371 00000 n 0000168795 00000 n 0000171490 00000 n 0000171552 00000 n 0000171614 00000 n 0000171676 00000 n 0000171738 00000 n 0000171800 00000 n 0000171862 00000 n 0000171920 00000 n 0000171982 00000 n 0000172044 00000 n 0000172106 00000 n 0000172168 00000 n 0000172230 00000 n 0000172292 00000 n 0001059626 00000 n 0000172354 00000 n 0000172416 00000 n 0000172478 00000 n 0000175982 00000 n 0000175437 00000 n 0000172703 00000 n 0000175556 00000 n 0000175617 00000 n 0000175678 00000 n 0000175738 00000 n 0000175799 00000 n 0001061456 00000 n 0000179036 00000 n 0000178793 00000 n 0000176131 00000 n 0000178912 00000 n 0000182107 00000 n 0000181866 00000 n 0000179227 00000 n 0000181985 00000 n 0000665364 00000 n 0000186265 00000 n 0000187426 00000 n 0000238202 00000 n 0000287645 00000 n 0000186417 00000 n 0000339306 00000 n 0000186755 00000 n 0000186118 00000 n 0000182302 00000 n 0000186569 00000 n 0000336392 00000 n 0000350289 00000 n 0000336454 00000 n 0000187307 00000 n 0000186936 00000 n 0000336331 00000 n 0000195989 00000 n 0000196181 00000 n 0000197157 00000 n 0000198112 00000 n 0000198314 00000 n 0000238179 00000 n 0000245432 00000 n 0000245624 00000 n 0000246600 00000 n 0000247555 00000 n 0000247757 00000 n 0000287622 00000 n 0000294118 00000 n 0000294310 00000 n 0000295286 00000 n 0000296241 00000 n 0000296443 00000 n 0000336308 00000 n 0000350785 00000 n 0000339187 00000 n 0000336593 00000 n 0000350227 00000 n 0000350351 00000 n 0000350413 00000 n 0000350475 00000 n 0000350537 00000 n 0000350599 00000 n 0000350661 00000 n 0000350723 00000 n 0000349480 00000 n 0000349536 00000 n 0000349616 00000 n 0000354536 00000 n 0000353441 00000 n 0000350939 00000 n 0000353560 00000 n 0000353621 00000 n 0000353682 00000 n 0000353743 00000 n 0000353804 00000 n 0000353865 00000 n 0000353926 00000 n 0000353987 00000 n 0000354048 00000 n 0000354109 00000 n 0000354170 00000 n 0000354231 00000 n 0000354292 00000 n 0000354353 00000 n 0000354414 00000 n 0000354475 00000 n 0001061574 00000 n 0000359439 00000 n 0000357775 00000 n 0000354685 00000 n 0000357894 00000 n 0000357956 00000 n 0000358018 00000 n 0000358080 00000 n 0000358142 00000 n 0000358204 00000 n 0000358266 00000 n 0000358328 00000 n 0000358390 00000 n 0000358452 00000 n 0000358514 00000 n 0000358576 00000 n 0000358638 00000 n 0000358700 00000 n 0000358761 00000 n 0000358823 00000 n 0000358883 00000 n 0000358945 00000 n 0000359006 00000 n 0000359068 00000 n 0000359130 00000 n 0000359192 00000 n 0000359253 00000 n 0000359315 00000 n 0000359377 00000 n 0000360758 00000 n 0000360578 00000 n 0000359563 00000 n 0000360697 00000 n 0000361264 00000 n 0000361083 00000 n 0000360856 00000 n 0000361202 00000 n 0000363982 00000 n 0000363379 00000 n 0000361349 00000 n 0000363498 00000 n 0000363620 00000 n 0000363680 00000 n 0000363740 00000 n 0000363801 00000 n 0000363861 00000 n 0000367244 00000 n 0000367063 00000 n 0000364131 00000 n 0000367182 00000 n 0000662696 00000 n 0000369267 00000 n 0000369087 00000 n 0000367383 00000 n 0000369206 00000 n 0001061692 00000 n 0000369833 00000 n 0000369652 00000 n 0000369406 00000 n 0000369771 00000 n 0000372634 00000 n 0000373456 00000 n 0000372495 00000 n 0000369918 00000 n 0000372785 00000 n 0000372968 00000 n 0000373029 00000 n 0000652468 00000 n 0000373090 00000 n 0000373151 00000 n 0000373212 00000 n 0000373273 00000 n 0000373334 00000 n 0000373395 00000 n 0000375450 00000 n 0000375512 00000 n 0000375269 00000 n 0000373595 00000 n 0000375388 00000 n 0000378646 00000 n 0000378798 00000 n 0000378957 00000 n 0000379415 00000 n 0000378491 00000 n 0000375636 00000 n 0000379109 00000 n 0000379170 00000 n 0000379231 00000 n 0000384533 00000 n 0000384595 00000 n 0000381690 00000 n 0000379567 00000 n 0000381809 00000 n 0000381871 00000 n 0000381933 00000 n 0000381995 00000 n 0000382057 00000 n 0000382119 00000 n 0000382181 00000 n 0000382243 00000 n 0000382305 00000 n 0000382366 00000 n 0000382428 00000 n 0000382490 00000 n 0000382552 00000 n 0000382614 00000 n 0000382676 00000 n 0000382738 00000 n 0000382800 00000 n 0000382862 00000 n 0000382923 00000 n 0000382985 00000 n 0000383047 00000 n 0000383109 00000 n 0000383171 00000 n 0000383233 00000 n 0000383295 00000 n 0000383357 00000 n 0000383419 00000 n 0000383481 00000 n 0000383543 00000 n 0000383604 00000 n 0000383666 00000 n 0000383728 00000 n 0000383790 00000 n 0000383852 00000 n 0000383914 00000 n 0000383976 00000 n 0000384038 00000 n 0000384100 00000 n 0000384161 00000 n 0000384223 00000 n 0000384285 00000 n 0000384347 00000 n 0000384409 00000 n 0000384471 00000 n 0000387347 00000 n 0000387873 00000 n 0000387208 00000 n 0000384694 00000 n 0000387506 00000 n 0000387750 00000 n 0001061810 00000 n 0000391077 00000 n 0000390710 00000 n 0000387997 00000 n 0000390829 00000 n 0000390953 00000 n 0000391015 00000 n 0000394078 00000 n 0000394413 00000 n 0000393939 00000 n 0000391229 00000 n 0000394230 00000 n 0000394291 00000 n 0000396371 00000 n 0000396433 00000 n 0000396190 00000 n 0000394566 00000 n 0000396309 00000 n 0000398375 00000 n 0000398528 00000 n 0000398880 00000 n 0000398228 00000 n 0000396586 00000 n 0000398696 00000 n 0000398818 00000 n 0000633649 00000 n 0000399423 00000 n 0000399242 00000 n 0000399032 00000 n 0000399361 00000 n 0000402606 00000 n 0000401879 00000 n 0000399508 00000 n 0000401998 00000 n 0000402181 00000 n 0000402242 00000 n 0000402303 00000 n 0000402364 00000 n 0000402425 00000 n 0000402485 00000 n 0000402546 00000 n 0001061928 00000 n 0000408753 00000 n 0000405655 00000 n 0000402745 00000 n 0000405774 00000 n 0000405836 00000 n 0000405898 00000 n 0000405960 00000 n 0000406022 00000 n 0000406084 00000 n 0000406146 00000 n 0000406208 00000 n 0000406270 00000 n 0000406332 00000 n 0000406394 00000 n 0000406456 00000 n 0000406518 00000 n 0000406580 00000 n 0000406642 00000 n 0000406704 00000 n 0000406766 00000 n 0000406828 00000 n 0000406890 00000 n 0000406952 00000 n 0000407014 00000 n 0000407076 00000 n 0000407138 00000 n 0000407200 00000 n 0000407262 00000 n 0000407324 00000 n 0000407386 00000 n 0000407448 00000 n 0000407510 00000 n 0000407572 00000 n 0000407634 00000 n 0000407695 00000 n 0000407757 00000 n 0000407818 00000 n 0000407880 00000 n 0000407941 00000 n 0000408003 00000 n 0000408065 00000 n 0000408127 00000 n 0000408189 00000 n 0000408251 00000 n 0000408314 00000 n 0000408377 00000 n 0000408440 00000 n 0000408503 00000 n 0000408566 00000 n 0000408628 00000 n 0000408691 00000 n 0000416115 00000 n 0000441653 00000 n 0000412030 00000 n 0000412183 00000 n 0000445067 00000 n 0000475298 00000 n 0000477965 00000 n 0000517212 00000 n 0000441716 00000 n 0000413969 00000 n 0000411878 00000 n 0000408854 00000 n 0000412336 00000 n 0000412399 00000 n 0000412462 00000 n 0000412525 00000 n 0000412588 00000 n 0000412651 00000 n 0000412714 00000 n 0000412777 00000 n 0000412840 00000 n 0000412903 00000 n 0000412966 00000 n 0000413029 00000 n 0000413092 00000 n 0000413155 00000 n 0000413218 00000 n 0000413281 00000 n 0000413344 00000 n 0000413407 00000 n 0000413469 00000 n 0000413532 00000 n 0000413594 00000 n 0000413657 00000 n 0000413719 00000 n 0000413782 00000 n 0000441934 00000 n 0000475581 00000 n 0000443148 00000 n 0000415956 00000 n 0000414094 00000 n 0000441870 00000 n 0000441998 00000 n 0000442062 00000 n 0000442126 00000 n 0000442190 00000 n 0000442254 00000 n 0000442318 00000 n 0000442382 00000 n 0000442446 00000 n 0000442510 00000 n 0000442574 00000 n 0000442638 00000 n 0000442702 00000 n 0000442766 00000 n 0000442830 00000 n 0000442894 00000 n 0000442958 00000 n 0000443021 00000 n 0000443085 00000 n 0000417071 00000 n 0000417256 00000 n 0000417474 00000 n 0000417728 00000 n 0000417943 00000 n 0000418285 00000 n 0000418496 00000 n 0000418886 00000 n 0000430270 00000 n 0000441605 00000 n 0000441629 00000 n 0000517339 00000 n 0000475366 00000 n 0000476397 00000 n 0000444908 00000 n 0000443291 00000 n 0000475518 00000 n 0000475645 00000 n 0000475708 00000 n 0000475771 00000 n 0000475834 00000 n 0000475897 00000 n 0000475960 00000 n 0000476023 00000 n 0000476148 00000 n 0000476210 00000 n 0000476272 00000 n 0000476335 00000 n 0000446650 00000 n 0000446779 00000 n 0000446985 00000 n 0000447196 00000 n 0000447543 00000 n 0000475252 00000 n 0000475274 00000 n 0000518551 00000 n 0000477827 00000 n 0000476553 00000 n 0000517275 00000 n 0000517403 00000 n 0000517466 00000 n 0000517530 00000 n 0000517594 00000 n 0000517658 00000 n 0000517722 00000 n 0000517786 00000 n 0000517850 00000 n 0000517914 00000 n 0000517978 00000 n 0000518042 00000 n 0000518106 00000 n 0000518170 00000 n 0000518234 00000 n 0000518298 00000 n 0000518361 00000 n 0000518424 00000 n 0000518488 00000 n 0000479086 00000 n 0000479271 00000 n 0000479472 00000 n 0000479677 00000 n 0000479884 00000 n 0000480083 00000 n 0000480298 00000 n 0000480622 00000 n 0000480833 00000 n 0000481167 00000 n 0000481373 00000 n 0000481712 00000 n 0000481918 00000 n 0000482247 00000 n 0000492774 00000 n 0000501400 00000 n 0000507103 00000 n 0000517119 00000 n 0000517143 00000 n 0000517166 00000 n 0000517189 00000 n 0000531695 00000 n 0000520823 00000 n 0000531627 00000 n 0000533548 00000 n 0000520663 00000 n 0000518681 00000 n 0000531849 00000 n 0000531912 00000 n 0000532037 00000 n 0000532100 00000 n 0000532163 00000 n 0000532226 00000 n 0000532290 00000 n 0000532353 00000 n 0000532416 00000 n 0000532479 00000 n 0000532542 00000 n 0000532605 00000 n 0000532668 00000 n 0000532731 00000 n 0000532794 00000 n 0000532857 00000 n 0000532920 00000 n 0000532983 00000 n 0000533046 00000 n 0000533109 00000 n 0000533172 00000 n 0000533235 00000 n 0000533298 00000 n 0000533361 00000 n 0000533423 00000 n 0000533486 00000 n 0001062050 00000 n 0000524941 00000 n 0000525070 00000 n 0000525219 00000 n 0000525494 00000 n 0000525881 00000 n 0000526090 00000 n 0000526112 00000 n 0000531604 00000 n 0000538708 00000 n 0000536028 00000 n 0000533690 00000 n 0000536151 00000 n 0000536215 00000 n 0000536279 00000 n 0000536343 00000 n 0000536407 00000 n 0000536471 00000 n 0000536535 00000 n 0000536599 00000 n 0000536663 00000 n 0000536727 00000 n 0000536791 00000 n 0000536855 00000 n 0000536919 00000 n 0000536983 00000 n 0000537047 00000 n 0000537111 00000 n 0000537175 00000 n 0000537239 00000 n 0000537302 00000 n 0000537366 00000 n 0000537429 00000 n 0000537493 00000 n 0000537556 00000 n 0000537620 00000 n 0000537684 00000 n 0000537748 00000 n 0000537812 00000 n 0000537876 00000 n 0000537940 00000 n 0000538004 00000 n 0000538068 00000 n 0000538132 00000 n 0000538196 00000 n 0000538260 00000 n 0000538324 00000 n 0000538388 00000 n 0000538452 00000 n 0000538516 00000 n 0000538580 00000 n 0000538644 00000 n 0000541903 00000 n 0000542558 00000 n 0000541759 00000 n 0000538807 00000 n 0000542057 00000 n 0000542120 00000 n 0000542183 00000 n 0000542246 00000 n 0000542309 00000 n 0000542371 00000 n 0000549112 00000 n 0000545986 00000 n 0000542683 00000 n 0000546109 00000 n 0000546173 00000 n 0000546237 00000 n 0000546301 00000 n 0001059807 00000 n 0000546365 00000 n 0000546429 00000 n 0000546493 00000 n 0000546557 00000 n 0000546621 00000 n 0000546685 00000 n 0000546749 00000 n 0000546813 00000 n 0000546877 00000 n 0000546941 00000 n 0000547005 00000 n 0000547068 00000 n 0000547132 00000 n 0000547195 00000 n 0000547259 00000 n 0000547322 00000 n 0000547386 00000 n 0000547450 00000 n 0000547514 00000 n 0000547578 00000 n 0000547642 00000 n 0000547706 00000 n 0000547770 00000 n 0000547834 00000 n 0000547898 00000 n 0000547962 00000 n 0000548026 00000 n 0000548090 00000 n 0000548154 00000 n 0000548218 00000 n 0000548282 00000 n 0000548346 00000 n 0000548410 00000 n 0000548474 00000 n 0000548538 00000 n 0000548602 00000 n 0000548666 00000 n 0000548730 00000 n 0000548794 00000 n 0000548858 00000 n 0000548922 00000 n 0000548985 00000 n 0000549049 00000 n 0000553941 00000 n 0000551302 00000 n 0000549240 00000 n 0000551425 00000 n 0000551488 00000 n 0000551551 00000 n 0000551614 00000 n 0000551677 00000 n 0000551740 00000 n 0000551803 00000 n 0000551866 00000 n 0000551929 00000 n 0000551992 00000 n 0000552055 00000 n 0000552118 00000 n 0000552181 00000 n 0000552244 00000 n 0000552307 00000 n 0000552370 00000 n 0000552432 00000 n 0000552495 00000 n 0000552557 00000 n 0000552620 00000 n 0000552683 00000 n 0000552746 00000 n 0000552809 00000 n 0000552872 00000 n 0000552935 00000 n 0000552998 00000 n 0000553061 00000 n 0000553124 00000 n 0000553187 00000 n 0000553250 00000 n 0000553313 00000 n 0000553376 00000 n 0000553439 00000 n 0000553502 00000 n 0000553565 00000 n 0000553628 00000 n 0000553691 00000 n 0000553754 00000 n 0000553816 00000 n 0000553879 00000 n 0000555719 00000 n 0000554828 00000 n 0000554040 00000 n 0000554951 00000 n 0000555015 00000 n 0000555079 00000 n 0000555143 00000 n 0000555207 00000 n 0000555271 00000 n 0000555335 00000 n 0000555399 00000 n 0000555463 00000 n 0000555527 00000 n 0000555591 00000 n 0000555655 00000 n 0000557915 00000 n 0000557354 00000 n 0000555818 00000 n 0000557477 00000 n 0000557664 00000 n 0000557727 00000 n 0000557790 00000 n 0001062175 00000 n 0000563214 00000 n 0000563400 00000 n 0000560417 00000 n 0000559913 00000 n 0000558028 00000 n 0000560036 00000 n 0000560163 00000 n 0000560227 00000 n 0000564146 00000 n 0000563061 00000 n 0000560556 00000 n 0000563584 00000 n 0000563771 00000 n 0000563834 00000 n 0000563897 00000 n 0000563959 00000 n 0000567774 00000 n 0000569592 00000 n 0000567630 00000 n 0000564299 00000 n 0000567933 00000 n 0000568123 00000 n 0000568187 00000 n 0000568251 00000 n 0000568315 00000 n 0000568379 00000 n 0000568442 00000 n 0000568506 00000 n 0000568570 00000 n 0000568634 00000 n 0000568698 00000 n 0000568762 00000 n 0000568826 00000 n 0000568890 00000 n 0000568954 00000 n 0000569016 00000 n 0000569080 00000 n 0000569144 00000 n 0000569208 00000 n 0000569272 00000 n 0000569336 00000 n 0000569400 00000 n 0000569464 00000 n 0000569528 00000 n 0000579024 00000 n 0000577018 00000 n 0000573690 00000 n 0000569732 00000 n 0000573813 00000 n 0000573876 00000 n 0000573939 00000 n 0000574002 00000 n 0000574065 00000 n 0000574128 00000 n 0000574191 00000 n 0000574252 00000 n 0000574315 00000 n 0000574378 00000 n 0000574441 00000 n 0000574504 00000 n 0000574567 00000 n 0000574630 00000 n 0000574693 00000 n 0000574756 00000 n 0000574819 00000 n 0000574881 00000 n 0000574944 00000 n 0000575007 00000 n 0000575070 00000 n 0000575133 00000 n 0000575196 00000 n 0000575258 00000 n 0000575321 00000 n 0000575384 00000 n 0000575447 00000 n 0000575510 00000 n 0000575573 00000 n 0000575636 00000 n 0000575699 00000 n 0000575762 00000 n 0000575825 00000 n 0000575888 00000 n 0000575949 00000 n 0000576012 00000 n 0000576075 00000 n 0000576138 00000 n 0000576201 00000 n 0000576264 00000 n 0000576327 00000 n 0000576390 00000 n 0000576452 00000 n 0000576515 00000 n 0000576578 00000 n 0000576641 00000 n 0000576704 00000 n 0000576767 00000 n 0000576830 00000 n 0000576893 00000 n 0000001456 00000 f 0000000000 00000 f 0000579433 00000 n 0000578880 00000 n 0000577131 00000 n 0000579178 00000 n 0000579305 00000 n 0000579369 00000 n 0000579959 00000 n 0000588805 00000 n 0000592887 00000 n 0000579836 00000 n 0000579545 00000 n 0000592824 00000 n 0001062300 00000 n 0000581743 00000 n 0000801064 00000 n 0000588721 00000 n 0000582006 00000 n 0000792943 00000 n 0000588582 00000 n 0000582166 00000 n 0000713571 00000 n 0000588456 00000 n 0000582326 00000 n 0000782655 00000 n 0000588125 00000 n 0000582486 00000 n 0000836265 00000 n 0000587995 00000 n 0000582646 00000 n 0000919510 00000 n 0000587658 00000 n 0000582806 00000 n 0000726760 00000 n 0000587447 00000 n 0000582966 00000 n 0000893678 00000 n 0000587311 00000 n 0000583126 00000 n 0000745183 00000 n 0000587169 00000 n 0000583286 00000 n 0000815778 00000 n 0000587102 00000 n 0000583446 00000 n 0000583605 00000 n 0000801032 00000 n 0000583854 00000 n 0000792911 00000 n 0000584246 00000 n 0000713538 00000 n 0000584421 00000 n 0000782623 00000 n 0000585040 00000 n 0000836230 00000 n 0000585353 00000 n 0000919478 00000 n 0000585746 00000 n 0000726727 00000 n 0000586267 00000 n 0000893645 00000 n 0000586592 00000 n 0000745150 00000 n 0000586983 00000 n 0000815747 00000 n 0000855519 00000 n 0000592592 00000 n 0000590520 00000 n 0000753420 00000 n 0000592518 00000 n 0000590679 00000 n 0000846404 00000 n 0000592339 00000 n 0000590839 00000 n 0000590999 00000 n 0000855486 00000 n 0000591619 00000 n 0000753388 00000 n 0000591840 00000 n 0000846371 00000 n 0000593406 00000 n 0000618789 00000 n 0000618857 00000 n 0000622884 00000 n 0000593267 00000 n 0000592975 00000 n 0000622820 00000 n 0000882055 00000 n 0000618673 00000 n 0000595287 00000 n 0000953635 00000 n 0000618601 00000 n 0000595447 00000 n 0000808312 00000 n 0000618539 00000 n 0000595606 00000 n 0000825728 00000 n 0000618387 00000 n 0000595765 00000 n 0000870321 00000 n 0000618308 00000 n 0000595925 00000 n 0000761383 00000 n 0000618226 00000 n 0000596084 00000 n 0000596244 00000 n 0000601563 00000 n 0000882022 00000 n 0000601886 00000 n 0000953602 00000 n 0000601984 00000 n 0000808281 00000 n 0000602011 00000 n 0000825697 00000 n 0000602511 00000 n 0000870289 00000 n 0000602566 00000 n 0000761351 00000 n 0000602933 00000 n 0000603062 00000 n 0000603131 00000 n 0000603271 00000 n 0000603605 00000 n 0000604062 00000 n 0000604264 00000 n 0000604286 00000 n 0000618202 00000 n 0000734522 00000 n 0000622687 00000 n 0000622034 00000 n 0000862889 00000 n 0000622624 00000 n 0000622193 00000 n 0000622350 00000 n 0000734489 00000 n 0000622597 00000 n 0000862857 00000 n 0000623355 00000 n 0000626852 00000 n 0000623232 00000 n 0000622971 00000 n 0000626789 00000 n 0000922494 00000 n 0000626720 00000 n 0000625437 00000 n 0000904286 00000 n 0000626370 00000 n 0000625594 00000 n 0000625754 00000 n 0000922458 00000 n 0000625791 00000 n 0000904254 00000 n 0000627966 00000 n 0000627524 00000 n 0000626924 00000 n 0000627647 00000 n 0000627774 00000 n 0000627838 00000 n 0000627902 00000 n 0000629387 00000 n 0000629139 00000 n 0000628078 00000 n 0000629262 00000 n 0000630559 00000 n 0000630372 00000 n 0000629473 00000 n 0000630495 00000 n 0000630658 00000 n 0000630684 00000 n 0000630848 00000 n 0000631074 00000 n 0000631248 00000 n 0000631484 00000 n 0000631742 00000 n 0000631947 00000 n 0000632149 00000 n 0000632324 00000 n 0000632519 00000 n 0000632766 00000 n 0000633003 00000 n 0000633201 00000 n 0000633446 00000 n 0000633903 00000 n 0000634122 00000 n 0000634338 00000 n 0000634568 00000 n 0000634775 00000 n 0000635032 00000 n 0000635286 00000 n 0000635535 00000 n 0000635781 00000 n 0000635974 00000 n 0000636168 00000 n 0000636389 00000 n 0000636627 00000 n 0000636866 00000 n 0000637051 00000 n 0000637283 00000 n 0000637480 00000 n 0000637679 00000 n 0000637856 00000 n 0000638081 00000 n 0000638265 00000 n 0000638474 00000 n 0000638664 00000 n 0000638844 00000 n 0000639033 00000 n 0000639326 00000 n 0000639561 00000 n 0000639810 00000 n 0000640076 00000 n 0000640321 00000 n 0000640535 00000 n 0000640752 00000 n 0000641020 00000 n 0000641214 00000 n 0000641401 00000 n 0000641617 00000 n 0000641813 00000 n 0000642040 00000 n 0000642282 00000 n 0000642518 00000 n 0000642775 00000 n 0000643056 00000 n 0000643261 00000 n 0000643480 00000 n 0000643716 00000 n 0000643952 00000 n 0000644198 00000 n 0000644449 00000 n 0000644690 00000 n 0000644942 00000 n 0000645190 00000 n 0000645420 00000 n 0000645709 00000 n 0000645935 00000 n 0000646130 00000 n 0000646386 00000 n 0000646570 00000 n 0000646784 00000 n 0000647000 00000 n 0000647233 00000 n 0000647497 00000 n 0000647766 00000 n 0000647981 00000 n 0000648227 00000 n 0000648453 00000 n 0000648659 00000 n 0000648876 00000 n 0000649114 00000 n 0000649357 00000 n 0000649621 00000 n 0000649868 00000 n 0000650126 00000 n 0000650335 00000 n 0000650601 00000 n 0000650873 00000 n 0000651122 00000 n 0000651382 00000 n 0000651664 00000 n 0000651911 00000 n 0000652182 00000 n 0000652722 00000 n 0000653162 00000 n 0000653711 00000 n 0000654838 00000 n 0000655022 00000 n 0000655206 00000 n 0000655431 00000 n 0000655686 00000 n 0000655935 00000 n 0000656229 00000 n 0000656438 00000 n 0000656698 00000 n 0000656969 00000 n 0000657219 00000 n 0000657490 00000 n 0000657748 00000 n 0000657978 00000 n 0000658290 00000 n 0000658527 00000 n 0000658742 00000 n 0000659012 00000 n 0000659210 00000 n 0000659443 00000 n 0000659669 00000 n 0000659916 00000 n 0000660196 00000 n 0000660468 00000 n 0000660706 00000 n 0000660963 00000 n 0000661188 00000 n 0000661405 00000 n 0000661656 00000 n 0000661908 00000 n 0000662171 00000 n 0000662452 00000 n 0000662951 00000 n 0000663304 00000 n 0000663612 00000 n 0000664106 00000 n 0000664287 00000 n 0000664591 00000 n 0000664854 00000 n 0000665112 00000 n 0000665615 00000 n 0000665798 00000 n 0000665940 00000 n 0000666037 00000 n 0000666307 00000 n 0000666347 00000 n 0000666452 00000 n 0000666616 00000 n 0000666840 00000 n 0000667015 00000 n 0000667281 00000 n 0000667538 00000 n 0000667797 00000 n 0000668069 00000 n 0000668283 00000 n 0000668594 00000 n 0000668817 00000 n 0000668993 00000 n 0000669204 00000 n 0000669475 00000 n 0000669645 00000 n 0000669894 00000 n 0000670112 00000 n 0000670384 00000 n 0000670644 00000 n 0000670859 00000 n 0000671126 00000 n 0000671337 00000 n 0000671800 00000 n 0000672053 00000 n 0000672274 00000 n 0000672623 00000 n 0000672649 00000 n 0000672805 00000 n 0000672902 00000 n 0000673056 00000 n 0001058215 00000 n 0000673702 00000 n 0000674146 00000 n 0000674361 00000 n 0000674623 00000 n 0000674885 00000 n 0000675108 00000 n 0000675285 00000 n 0000675506 00000 n 0000675701 00000 n 0000675897 00000 n 0000676133 00000 n 0000676386 00000 n 0000676637 00000 n 0000676822 00000 n 0000677064 00000 n 0000677304 00000 n 0000677495 00000 n 0000677713 00000 n 0000677962 00000 n 0000678160 00000 n 0000678372 00000 n 0000678550 00000 n 0000678790 00000 n 0000678978 00000 n 0000679205 00000 n 0000679395 00000 n 0000679612 00000 n 0000679797 00000 n 0000679982 00000 n 0000680180 00000 n 0000680431 00000 n 0000680760 00000 n 0000681076 00000 n 0000681409 00000 n 0000681668 00000 n 0000681938 00000 n 0000682237 00000 n 0000682499 00000 n 0000682725 00000 n 0000682950 00000 n 0000683241 00000 n 0000683443 00000 n 0000683633 00000 n 0000683923 00000 n 0000684128 00000 n 0000684393 00000 n 0000684657 00000 n 0000684905 00000 n 0000685158 00000 n 0000685446 00000 n 0000685717 00000 n 0000686029 00000 n 0000686236 00000 n 0000686484 00000 n 0000686746 00000 n 0000687024 00000 n 0000687327 00000 n 0000687603 00000 n 0000687874 00000 n 0000688148 00000 n 0000688404 00000 n 0000688684 00000 n 0000688958 00000 n 0000689195 00000 n 0000689521 00000 n 0000689767 00000 n 0000689983 00000 n 0000690224 00000 n 0000690504 00000 n 0000690697 00000 n 0000690929 00000 n 0000691168 00000 n 0000691433 00000 n 0000691712 00000 n 0000691993 00000 n 0000692232 00000 n 0000692496 00000 n 0000692729 00000 n 0000692959 00000 n 0000693220 00000 n 0000693482 00000 n 0000693763 00000 n 0000694061 00000 n 0000694314 00000 n 0000694596 00000 n 0000694818 00000 n 0000695112 00000 n 0000695418 00000 n 0000695681 00000 n 0000695967 00000 n 0000696280 00000 n 0000696546 00000 n 0000696844 00000 n 0000697420 00000 n 0000697933 00000 n 0000698470 00000 n 0000699809 00000 n 0000700127 00000 n 0000700667 00000 n 0000701590 00000 n 0000713820 00000 n 0000727076 00000 n 0000734797 00000 n 0000745450 00000 n 0000753635 00000 n 0000761608 00000 n 0000783088 00000 n 0000793192 00000 n 0000801279 00000 n 0000808521 00000 n 0000815989 00000 n 0000825992 00000 n 0000836523 00000 n 0000846687 00000 n 0000855882 00000 n 0000863103 00000 n 0000870547 00000 n 0000882298 00000 n 0000893935 00000 n 0000904723 00000 n 0000919931 00000 n 0000922739 00000 n 0000924759 00000 n 0000924984 00000 n 0000927279 00000 n 0000927570 00000 n 0000929478 00000 n 0000929736 00000 n 0000933177 00000 n 0000933552 00000 n 0000935699 00000 n 0000935974 00000 n 0000938335 00000 n 0000938608 00000 n 0000940463 00000 n 0000940711 00000 n 0000949276 00000 n 0000949560 00000 n 0000953850 00000 n 0000980728 00000 n 0000981135 00000 n 0001013275 00000 n 0001013822 00000 n 0001036208 00000 n 0001036563 00000 n 0001057860 00000 n 0001062425 00000 n 0001062545 00000 n 0001062667 00000 n 0001062747 00000 n 0001062829 00000 n 0001069227 00000 n 0001069408 00000 n 0001069585 00000 n 0001069760 00000 n 0001069927 00000 n 0001070103 00000 n 0001070305 00000 n 0001070532 00000 n 0001070735 00000 n 0001070932 00000 n 0001071154 00000 n 0001071393 00000 n 0001071636 00000 n 0001071879 00000 n 0001072122 00000 n 0001072365 00000 n 0001072608 00000 n 0001072848 00000 n 0001073095 00000 n 0001073344 00000 n 0001073583 00000 n 0001073818 00000 n 0001074053 00000 n 0001074288 00000 n 0001074521 00000 n 0001074754 00000 n 0001074989 00000 n 0001075224 00000 n 0001075459 00000 n 0001075692 00000 n 0001075927 00000 n 0001076162 00000 n 0001076397 00000 n 0001076629 00000 n 0001076868 00000 n 0001077103 00000 n 0001077338 00000 n 0001077573 00000 n 0001077816 00000 n 0001078058 00000 n 0001078301 00000 n 0001078543 00000 n 0001078786 00000 n 0001079028 00000 n 0001079263 00000 n 0001079506 00000 n 0001079748 00000 n 0001079985 00000 n 0001080224 00000 n 0001080467 00000 n 0001080704 00000 n 0001080944 00000 n 0001081193 00000 n 0001081440 00000 n 0001081689 00000 n 0001081936 00000 n 0001082179 00000 n 0001082420 00000 n 0001082660 00000 n 0001082909 00000 n 0001083150 00000 n 0001083395 00000 n 0001083636 00000 n 0001083877 00000 n 0001084118 00000 n 0001084365 00000 n 0001084612 00000 n 0001084861 00000 n 0001085109 00000 n 0001085358 00000 n 0001085606 00000 n 0001085855 00000 n 0001086103 00000 n 0001086348 00000 n 0001086592 00000 n 0001086841 00000 n 0001087089 00000 n 0001087338 00000 n 0001087586 00000 n 0001087835 00000 n 0001088082 00000 n 0001088329 00000 n 0001088578 00000 n 0001088826 00000 n 0001089075 00000 n 0001089323 00000 n 0001089572 00000 n 0001089820 00000 n 0001090069 00000 n 0001090315 00000 n 0001090562 00000 n 0001090809 00000 n 0001091058 00000 n 0001091306 00000 n 0001091555 00000 n 0001091803 00000 n 0001092052 00000 n 0001092300 00000 n 0001092549 00000 n 0001092797 00000 n 0001093046 00000 n 0001093286 00000 n 0001093515 00000 n 0001093742 00000 n 0001093953 00000 n 0001094124 00000 n 0001094294 00000 n 0001094465 00000 n 0001094635 00000 n 0001094806 00000 n 0001094976 00000 n 0001095147 00000 n 0001095317 00000 n 0001095491 00000 n 0001095665 00000 n 0001095839 00000 n 0001096016 00000 n 0001096194 00000 n 0001096397 00000 n 0001096599 00000 n 0001096802 00000 n 0001097004 00000 n 0001097199 00000 n 0001097395 00000 n 0001097594 00000 n 0001097797 00000 n 0001098000 00000 n 0001098237 00000 n 0001098474 00000 n 0001098717 00000 n 0001098960 00000 n 0001099203 00000 n 0001099446 00000 n 0001099633 00000 n 0001099758 00000 n 0001099890 00000 n 0001100024 00000 n 0001100156 00000 n 0001100287 00000 n 0001100419 00000 n 0001100552 00000 n 0001100686 00000 n 0001100820 00000 n 0001100953 00000 n 0001101085 00000 n 0001101219 00000 n 0001101353 00000 n 0001101487 00000 n 0001101621 00000 n 0001101755 00000 n 0001101887 00000 n 0001102010 00000 n 0001102126 00000 n 0001102246 00000 n 0001102370 00000 n 0001102504 00000 n 0001102579 00000 n 0001102705 00000 n 0001102838 00000 n 0001102963 00000 n 0001103072 00000 n 0001103174 00000 n 0001103214 00000 n 0001103346 00000 n trailer << /Size 2113 /Root 2111 0 R /Info 2112 0 R /ID [ ] >> startxref 1103673 %%EOF faust-0.9.46/documentation/Faust_tutorial2.pdf0000644000175000017500001124375611702130733021323 0ustar orlareyorlarey%PDF-1.4 % 3 0 obj << /Length 270 /Filter /FlateDecode >> stream xUOO0 >Қ9_&!.H!uҶƧ'i`~yoXou*Ġ!΁5Fy2, y͟%dr; ݱvyI>@N+̯I8Fqt0pObD`Ş|!1 EBS_Z\{#+\뮛˪=#~6xAbe+#B1(_ nj;5p3~h˖U,<"!$x[7ab endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 595.276 841.89] /Parent 8 0 R >> endobj 1 0 obj << /Font << /F17 4 0 R /F18 5 0 R /F8 6 0 R /F19 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 11 0 obj << /Length 150 /Filter /FlateDecode >> stream x]M07>v5nơ)E%_8ݽwwSOu"]i55 0\2Vh%B27WHD͜qѐnWF\K>Ř]6O`=6tQSnco!4 endstream endobj 10 0 obj << /Type /Page /Contents 11 0 R /Resources 9 0 R /MediaBox [0 0 595.276 841.89] /Parent 8 0 R >> endobj 9 0 obj << /Font << /F20 12 0 R >> /ProcSet [ /PDF /Text ] >> endobj 15 0 obj << /Length 1084 /Filter /FlateDecode >> stream xY]6}_#f E_MI:63v>Vac/l6M'ctν 25af!c , f/*CQG=aKΉK8ą # GvPu%FDz'L$I],# CJP^jm%).:4) "LL0?B c4[0i^]t WvE<0La8Gq$yJ8CTOEadjSW wMHMy3 gM!L).tm7aKH eSZ)v#5Tq"o4mT\^*z{3P-N SC:Ũv:GD< Ȇѐ@NIXoP@v4}Lkv@{*h19P'чϓ1xO:*yVu>=W)Ty6h(S)f2n!@?Lūg~iRy endstream endobj 14 0 obj << /Type /Page /Contents 15 0 R /Resources 13 0 R /MediaBox [0 0 595.276 841.89] /Parent 8 0 R >> endobj 13 0 obj << /Font << /F21 16 0 R /F24 17 0 R /F8 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 20 0 obj << /Length 1117 /Filter /FlateDecode >> stream xYr6+d&j&VxdAK THʎx,*Gr6&H=̈́HR;F<ʈḶ"WfLUҌ޿FD()A8B b~3/TRWO_PG(RFwn >st̚yI Rq(Mq* ƌ07jP,Ƴ~\h?Cz,ʢշc)?yθ6ʾIHSBc.,nS䃡Y0Z7-VTv[GշZݍ&u^-+!<y,ZًǤ< zosG*IqGun>>#̾ƒqN\@:qTIrl@fy˜1%5|IO?++W[ 8A|:=oڵ<MkrigQߑی~j|m=(;'-ۖL ,m`'T8;બGlZOhD,R*(A2D"$lmٌC}ygly=gE,.Ae1a䇰ujYAA5CY- y 07<<;X68uoC򲝣DTC[;|SAa75XYmG)ٱ V[D> endobj 18 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F24 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 23 0 obj << /Length 126 /Filter /FlateDecode >> stream x%ͻ 1@>_1eRdG&VXA+tbV.Zn!Y $ 50"-A߇s? «R0C4A26j췄9aR-" endstream endobj 22 0 obj << /Type /Page /Contents 23 0 R /Resources 21 0 R /MediaBox [0 0 595.276 841.89] /Parent 8 0 R >> endobj 21 0 obj << /Font << /F21 16 0 R /F8 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 26 0 obj << /Length 8 /Filter /FlateDecode >> stream x endstream endobj 25 0 obj << /Type /Page /Contents 26 0 R /Resources 24 0 R /MediaBox [0 0 595.276 841.89] /Parent 8 0 R >> endobj 24 0 obj << /ProcSet [ /PDF ] >> endobj 29 0 obj << /Length 1733 /Filter /FlateDecode >> stream xڵK4" 4؎*(ڽٌaf!ΰ{8Ie[$2~{uʅ$$FN%M>N~eڙT~ J'*O2 ^LcXe!tms!u~#4 @S3Cte"sQ VT%-Y!toBUTS=zS.}$~;rl`iNJ;S6 R䥚.U ?fkL畐@I-a?&vZ‡]S{HsB$jsA>">3a3H& Ybo9H֦t > 5^bD k҉~= ){NG=OK253oR7y򣲐 R_3@./tGTރ*B &0v>R,1t0ڭ4AqxYrq:'^q,Ʒm'_W'^]}K rS5 Ьv"v}cH.q1ƈ Ic췂246CDfTmbfg+GSf,W_mz#d^@?59d\li \ _N*{$Qڵv]K‚0TZx >xHB3,\}}=jy.-4nL %Cd;ox8ylt#I]L.XJxo㹍^74X F(W0SKme9N7 K?rqާ13pEg(28}_oyW‚QKڔk!U{}pkKB'9A=+$ێ 5bamSժ,k wi uTUh!;=|@ƉooSXڮ5eksojhPPN%Hzn⧋uP. 3B{Q ,t,閸AA_{8W6Tj9/*귘>#x'p ޝ|d1UFT^,,WQ!YjzؼaS"ρUmg)\ZZ N+-:X_TIr6PnɎ(+%씔 Fd>‹7)3Wo"ɧ|а}ڽ> endobj 27 0 obj << /Font << /F21 16 0 R /F8 6 0 R /F18 5 0 R /F26 30 0 R /F19 7 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 38 0 obj << /Length 1538 /Filter /FlateDecode >> stream xڵWK6WD"oQIsI rh-rHrڲV6zd3J6m3to&JXlktq^Em?_yEg("$"旫͗ x$fi)Λy?D,n=9f}߼ۼB 2fХ7yM]S}TOą=1UYD11׭qޖEGm"OQ8-K MLWm U_Gp6cIGXo2%B13b3ٗ䵲Uݩ*ׁ`pˆ3+9e_³_"߽JFLki'RPwhL> endobj 35 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/Simplest.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 43 0 R /BBox [0 0 624 351] /Resources << /XObject << /Im0 44 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 624 0 0 351 0 0 cm /Im0 Do Q endstream endobj 43 0 obj << /CreationDate (D:20080624141134+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080624141142+02'00') >> endobj 44 0 obj << /Subtype /Image /Length 21183 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 624 /Height 351 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;_p"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ӣ+7 2B+mvoĬY8uGQλ\^k̳W]YiNmv5S j%q}sD :=DzݎƂ6DL |RS2v>NcK&K1Z Ycj̍yi-nٻ6SEγ'3wܗ \#-Xm s]I)亦e5tgtdgzyKj-|hgy=9WsmNvHvN 7X[e`M4S~œvNC 궜[vosTUQ/%hp",]I$~pMFG}?;{Z;cQc|CJGI̜1~E ߜljm}\ioGI%!m#`l>kL)-oCq>LeM$edU]m v9~&SUOgg>0—TtS MCZX>DԻ!΂J@Otn]lщ+>[,?<>k$³qmk[fָ^ƟTx<ʎJCsǪ5/3?*5= JEC?hwӰ~;Ej5Ύ6:?ʎJGskAc=>!Ros'!c8Gı$_w69[S즑zw,,FI%0JKZ-KgvɏR8!$tc1>% ~q )sms4򣤒즑zw,,SJ\֋`lSI%!َqVƅ9~~Tֿ4<*_k~K*:I)\ֽ{^ȣKoM]h$XjFU۶;}*W;%}Y ؊JaY75_k\\/qc"O/ꩌYk~K?*:I) kǪ5/3?KZlaq v詤R~oa|wWZߜ,"juskߕ${[8c:G1*Mi9 c:5%)$IJI$RI$I%)$9cKCZ$IHr2eMYd`\=>בp:.~uFƝ jlm#RckWOKy I)tבp:.$kWOKy I)tבp:.$kWOKy I)tבp:.$kWOKy I)tבp:.$kWOKy I)tבp:.$kWOKy I)tّpo:.$kWOKy I)tבp:.$kWOKy I)tבp:.$kWOKy I)tבp:.$kWOKy I)tבp:.$kWOKy I)tבp:.$kWOKy I)tבp:.$l7OKy I)6CrjZ3$9w.U2?JRI$I$$I)3/vG0(y"1Hm,$sI$$I).&۹psG5&#ǺnFIJI$RI$I%)$IJTY-}3a +xwh V>RSa$IJI$RI$I%)$IJI$RI$I%)Eq+k@J"')% .z~mƮ:ڵ{!~b[? 3*6=ueabK-(oW9ji%'[mo:.nC _DI%)$IJI$RI+#:ѵqϙ<6~)R,֟ul쫈8}YvusevFIJI$RI$I%)$IJI$RI$I%)$IJU? ԔȮIsn+ƻ- s  |㵭ğ^@UTk+`I3ʂPW6u"({kvK^9re}%W_"dd.r*O]ȶU}.r*OK?"ddIUȫ?Y/K܊Si%W?"dd.r*OIM_K܊ȫ?Y%6U}.r*OK?"ddIUȫ?Y/K܊Si%W?"dd.r*OIM_K܊ȫ?Y%6T21mˬ5 Nd;<ԔI%)$IJI$RI$2?ҫ dUI%)$IJI$S S{/M!`m#Y*h#V6xRI$I%#PLX"*UU.mnu$+ )I$JRI$I$*lo0XZFv=ș>t?{:PA%ɭ(Dc+,'R|Or$I)I$JRI$I$$I)I$JRI$I$$I)JԕaW?xx>VI.aԒI$-奔 o}MVy/F?6Ŀܙ^$]ȩ$IJI$RI$I%)$IJI$RI$I%5s?`եW3FwxZIJI$RI$I%)$IM^c#?ڭ*7;GSWAnVǏNшl A niIc﫿/I;ܿ&?ݗ؎8]?r;?_i{s}Ifb}d -C[`˘ibc! ?x GP]\]JI$I%!żT[\;\!* "۹n.;{QRI$I%)$\:͘UHs6=Gh2{άV?'iWXֱh)$$I)I$JRI$I$$I)I$JRI$I$$I)J/clcxxRI%lHsm{A: v_5n\/s&?U[%b7B9pI{ /]ߝGjÎ&"q\idI)I$$I)I$JRI$I$$I)I$JRI$0ÿ麗RX+1ŵKAq'>g0z[mkkLh`:[#S7 ͵ᄄנrWM=.s^dGZ=zK?-NԱ:?p\-AW.'Yߔ(a8ؽ1F$U7;Gy'[鬻-Dh`ҟ:{=O.6pz[?s^.a -%mWRI$I%)Wϲʱ^β; >.6&DHIL)MDX]#aڲfhqf\5ummavFoFJR]cWeB>Z?$=mctHiʧԹOD֢{ͻM>?v}9TH:=DI%0_c?赡{h6tR]00c?Gn!6IHiډ6^1ǽ&1ud[fuFgsCI{5[H\I y{DR,rlsfv"Tcӹ?ȩ$ cWA ݯx ߺ̇"60($Qu^E-kGclsi:y9~ i$TUeS\#x`ƵDm2l >($wWe]IR?cfO84 hSI% <96Zm`kiOu6k5 #$lCwOm(SMlx`dR 1}ɲ@:;Q$쭤Yk$̼4kTxyɱ͙k\($Wmbg`aI{jA ݯx IH)ߺ̇"60(zpݳ;w~*h_q,xIII$Ϋ!uy-k6} ѓn!ղYka=wv"=x'ϒI%RHn0m7אּ'$D;.SEU=<§U3}Yp|GIU:ǣu?GTMWTչz]XExD8: NU~^uMei.hv 8+<`6 uc;'^2q^Y`H$/L:ǣ5_?.^_8g|9]G2AmM/ ^!:꽭ĦW<NcG|2_MBƖ4Ј*j3͆Za;tjl8 I$I$t]/Վ,wD,z=fY'Ǻ?"$I)Hwz_}\cS`;EN<ՊE: +xwh V>UIJI$RI$,>Iv-3\P3]cqil ):c%<(T;,F=So;[y~Mbl$SB]8|!Ax'ӓJ6(}[w z2  O-]K;??ZIMG3m1mv-q(eO[Kw s^Vdz=?5>CI$ZJI$Rwg~P~O. $Rn*fܽerQʷ!zuиǚd1e.`ȥ0GsUc1{3.`ȥ0GsR>y΅+c]RꋔpYˋ\ F]ZqflQ03}WX[Ē9;솀]UnxZ%BȤI%)$IM|/Wwwtno!c2+6,{TI%!57{mlsvO)bjEee?q;WHc\IJI$RI$I%)Q?C"ԲO )cNRS$)$IJI$Sj V[+}^ ;kmjk ع,Nk--!:~Zg[;(ʨ ?;{5q%5׺O`p$kkYq!B5{_^܋1C ?o{Xjg9p6 퍍tdq8cvfgynT2e6]V1vUI"., ݴ1 =Άy!^v^NR5ukCnpU[f54fTZlhcw6vL|5b+3 ʋMٓc2k`>Y(s/Ucv_;}ôp,ÿ ۛ-`ydVۚ[6=Q%T-^?o5oik,c em$a}6UVYW8ٵ'Iћuc:LzCdnbY"uq1}>{;Zh`0OlcF.pK(qx[Uhctns~wvjRQƖftFe6VVGyXZ8y;.YR漽.c| jL@Z86ךꡞkw X~pY#7s\mnl4G>]Nu e[sk]ymnmu~h<8^V-C>Xm ^hsZ#jimc8 +C^9pxKy0sv}Ucַ\~J(=I$$I)K6%]/Ԋ2˟Lɬ0ΖcgL?AYu"9ΞH,stɑs6 u9uߏ[so^Own_1JҦٴ[ukf*H<\IJTzJb}!kCX@; Li l(мLK`I${';8pi_85$v'0q?D:;{L?jI diuI$b$I)I$JRI$I$zBwlk*h9t[vX{nI$$?SRjkK%gaۗENcme{9)@q&|G볘W)m`K{n{7tF)E,ǥWX Nܞ$RI$I%)$IJ@ͩc:ĸ8':Uk@$?poII tǂI$9I$JRI$I$$I)JN{80m`&CD@Ĩ=\d@kGQI$I%)$IJI$RI$I%)$ILX+.%%.H{BI$$I)I$JR~MbS mKgL?P}JC4q-cqp23nI$RI$I%)$IJI$RI$I%)$IJI$RI$>)¾ڌ=<:3d` DIJI$RI$dTEקv>5TLmvJQR^ǀCDbIMOۏ?Y.ghk\*iƱkwcg{V^ǀCDbS$Oۏ?Y.ghk\*iƱkwcg{IMI%)$IJPϯ$N&D~*h9t"SH?pwIII$?E{fԦoEk$5/_[oȭd\#rE@[Kkt_ 5V{vOk)n"JupoE/7VIY9?[oȥ5/I+=;'kt_ 5E@[Z%gG`n"k+Y$W7RoEk$5/_[oȭd\#rE@[Kkt_ 5V{vOk)n"JupoE/7VIY9?[oȥ5/I+=;'kt_ 5E@[Z%gG`n"k+Y$W7U.q Ѝa^I *R1n۽ޤLF: 쪲$|!w$I$RI$I%)$IJI$RI$I%)$IJI$RI$"Qf; a3cm3bRI$I%!ƣ6Ydd|#*O֒\.uXIJI$RI$49 ؅$SSvfƏK7#?u;3 qqXtYü49 ؄%SvfƏK7#?u;3 qqXtYüSiE.ak\XHď1JCM_e`:S[u/fU?ϩGI%0ͬ`i?&}ϸ́mDI%  }OZ[3[c5+}Ϧg1$W:kGk:m>`ЩGI% m~dHY}o(9=@NSI%"*R/P0Gc]s2kf}0*֢$kCYk |HDŽ3k}gsA{"$Ws,vUm?- )Eb?R$ *GDzvB-ȲDmVl($c˙m@cDqQ-3c,uGO6~ i$TOG({_SVN*4tR+6\#L0cԫ̯cuUo঒JAV=sm~`ЩOuȶ>>QIL[W,s]z7vioE6U>_lEI% ~=ΰeZ`USZH3/1$S6fw<4 ݕmVmM?:I) iLr+ 3+z¯LP~Ji$4mN.~E#maMn=^f}E_]Yn}x׿mn5kjYQZ5Ņ|ZSЬ/Fϳ>q9̭;fE"73Cnk$J@\:?ioOsGޥ]$Kl`q-vR8ccB?S?*2I)*_k~K*%\ֺ=qk|i$T%_?֡;ՏFKtn]lщVIHvK@;a<>kJqnkYf8^E4R ^Tw,?q=kǪ5/3?$w-kM=6{ R~oa|wWZ2I)ߜ,"juskߕN{[8c:G1$^擐1Ӡc|K`SSk\\GM-$W;)}XY ؤw.kE}Ķ{ JCK2* ,s L~h|QUOgs)GI%0+Y-o1ߑFdVo/EI% ߝǣW7zݶyiR e]$&浏8XȇS喹4򣤒Ƹ z{cR?S*7zRl}>LeM$e8W]ca|wWZk,"ju}\)wGI%#N;Oq`c"T41^#XȈJaQ52v8G3U4 _cra`g*ʙ^iUT$K3b]џihx GU@Lmܜ1̋+L7!IaNۿ/??w#OOخ8wRX_ӠKzt{S+?Ԕk{mclaRL\I%)$IL.}uR.Ҷȑ tSBʣ8Uf"a%)$IJI$R:EMa'i=(1m<,)I$JRI$I$$I)I$JRI$I$$I){jZ/u$tՎ#cX()Ժ/!ƶ`;G$xJAU<"Gm,V>~du`;V걷Cݸ2eI  L ϥ΋7&迹ckϒN>?:/d_Gɯ>I/n*A2?oM/s#ן$}~΋7&迹ckϒKۊ?ȄK~t_15%_x?Gɥ?:/d⯼Os#2?oMyI{qW'迹ci΋7&$}~t_14Ȅ^|^U>?:/d_Gɯ>I/n*A2?oM/s#ן$}~΋7&迹ckϒKۊ?ȄK~t_15%_x?Gɥ?:/d⯼Os#2?oMyI{qW'迹ci΋7&$}ku ~idt%O_;>v.Dt%qF˛eT'uDODD6RLAttDA*Uk2?y q+ Ԯ~uVá9SWRϣ91೙w 0'SE/8ŴP=Ih}v_Z@52GRcc]m/{kZ$lZ3(} -|;,l$H}_U\TGOUŘwo$AJI$R kp 3 Yb.n5d8*ay%%)$IJI$R +_u.}mZ7j:6s 9:G,wRI$I%)$IJI$RI$I%)$IJI$R2̬Ǫ];_7eWls3颤'm^n#'m^nZӯ=>4@H:T785"@|ҙ,0`V[e13sFAu5nrN(}߱"K"Ps7Q//D%.%u6cf=m8a0Dc{ky kZ$tsF+3l[PAWtRZz;TqK[edCHlvٴ^ ģ ws.ʢ^ƏJCC]kmqiUpqnqKMO;GӧG}]8a>kc+u%eۅdI ]#Ň]cQh2tU[4e.1vYVܛwa3UXai q- lDP 5l>^*6vAvP= s21Ln᫉Tǰ5ihxD -HEDlػeYƶ[cIVSptG#%5m k1"c S:[FVC-ݓMtt;j ,̎V>=v>NG[>kw l;1զ0/Hl#`?l$+WbVPuSC߳ݿV|y>r\,688x@R,RI$NVu6M<o}Σ?,û}u?GK}έ$StNqI)p,ǣe,t^qleyuV^ۃuqti‒I)I$JgeZ-4ϏTI%)L]civ8?{6`xixyPI%)Lcn9?cx`qx`PI%)Nˬ[KK+4is<$I$"ݐMp m, .<'I)I$JRI$I$>غJt >m| څFGY'䦃U.$Eϵ I$Jx/?Yv.ezO\֯fU=iAsqe3`I+x0ލy┤Hxm0q?8pIy-f).`I%0q??^އU\@8̡$GTKiI$JRI$\lK5Vx%Q.m;q54I%)$IH{T:kK%%)$IJI$RI$I%)$IJI$RI$I%#4׳ 1"9Mqs-*JjGS~Lov2#,;IHح0 ؗ${pwغrn_b`~b_wP\RUCLwKb`~bK]ʽ~y;Lw]BIqKW/10?}/;I.)w*&%10?}u %.^?t<Ŀ&.$ܫۇؗ${pwغrn_b`~b_wP\RUCLwKb`~bK]ʽ~y;Lw]BIqKW/10?}/;I.)w*&%10?}u %.^?t<Ŀ&.$ܫۇIXfۘ>?^I$H)ȭFߛA( Yc@~"G঒I$$I)I$JRI$I$$I)I$JCIŻkOB2} 0V4G()I$JRI$aTis,Лnxr:%ȩxmO }cj:JRI$I$$I)I$JRI$I$$I)I$JGsrlax^ "5cK^ʦJAS3eNa8ȞW[cQeny$wvώPm'W`uկFI% i3_S7).s"^~TDR:[֑X5ޤsEN ޱ:I)v߳Y]|_>ITX>洆oi{⦒JAK3ȶ8ena+G3#<\j6{CMM;QRIH 3Im 蚜]`'srwN$¡sY|ƖnYS7?#ܷ{+F?8ҍc;gn)ܶ+F?ZY^M7TvksйXI%#\Ek<>R܆ӡ>DI% %Tk*ptxnnKW_;FτmEI%0`U9-l(t5SgmGI% |mLdp?k?"#ƨm=i-M$wl6l,egz۪58<7z~$w7!ө>JsY|Ɩ$VnYS7;'n#WXEͬFI%!T-ivѴKFs*2I$$I)I$JRI$I$$I)I$JRI$s1}N^D<[E$6֖9RI$I%5V=vz e;f2N^IQn燐L~յȉ$Z˙08!s (ufSslm ?4#ݕU {l$VX>m`ևmѱۣ|M$$0X#SUeMfm5Xksm$wm6)!$C7$캨~Ƕb}Xs[]^t09 ߂I)O,y+}|zlEmlm-rJGu<VV>dR 3i[i#)_1)s(f1c~5${K1F>X֕= wLIf$úcӭqФXf09߂I)9u^m겱 ]ULO>1$g09 ߂O,b}J_>[($6ۺvȦf;e xy[\JGM̽ǽa5BnxIHnʪD,}lrKևmѱۣ|M$%m?cnm52YŰ 5sCAw঒JEFEy1`VQvm--tM`Ϳ:I)ײ<> /XObject << /Im1 35 0 R >> /ProcSet [ /PDF /Text ] >> endobj 47 0 obj << /Length 2755 /Filter /FlateDecode >> stream x]oܸݿBK,-~bC= 6AUl!F\p83//E3f3˓ωL"1²:yNj_YbEpLhpάǙX,ܤ-DMSu2ݖuC|UzY],y F=`;sVH,}tK%56U? #\}=IbVd={1K0k1nmr a,$u&x*V1a\hEQF</7''h4RIAvKnb,HLwptKnY!t=Ͷj&Z龯:j<[646\0@|'G{$ ^.Σ~A! /{/Q(%A0ie"ȐRh~[h oSmb }| C%zjot-ǃM@8qЦ|ߑ8F#Nعv?P'mLրxAвYU y!jʏp nsCp%Mez;!80D`rnvF=_8;uv\)m׭N6Zv ? ("wsPRvZƶCTfsO1-܏oR Yh@kwJd8-9*-q4pUv=Mt6/B8l# (!osXbJcc+=/Ë̌"4=;1c-r6\"Yt?.] p^q4)̀<A<1QH8 K̽&/rpp;7*)(ĎBǐAT\G)1O.2 ނC!ȋ+< We*8Q?w0{Mbu>K@n\࢑U9\h(oucq*pI^Ĝ )[lǁVquGDxQӯcniON+L9AC 0дS[xj)jEf @¨Qj3PV@v{^i̫X|6mӣuMSdℿ5.ΝQCu>39go !TKȌ۲bx|Es fzD1Afrⷑ=sʊ@JOQ &z=Q-OC}5H壹F=s3^˃߼s>DFhҖwB0{P~u.!Þu77i !G BA#L`19>&yt}mԈ$5Ze jjY%oL QiY41DEڹĄfdQjOqy@P({\\]*fC,}QC 3xeLx @D\Stdp PVZטi>[tձo\%ݛd2@ܥH3 ک „,{K[w3K<]+wgV//(yx,xX<w tuXʓ^BIc? .i!uysR$/IIe O(? fCjĥ(0yIخ]b)T E*i՗+2p<dJp#tXNʼno eW ~REkƼ/dxà5dQd9*$󶪆> Z+?^s_)fZrK(}ݩISpӷ'E `L0[xXrWS#{]׮#QwzB 8Bxu5D)RQ|Ā#j0"uǢ\r`+.3fB{E_'+K_GӐwHf x{c$dyB ]=>$P_7uY~FT$꺞ԡg(l1B1uuYT J~C"xd_P̎nZ:A^>ן6嶊2NPk!+Vvs<\vvV8)}yYy,. Ya5\˥ e[tH CZڠJTXjre£U$e.Nb.߿#c,?6V@ ƽ^' ^OxT{ٖk?=}u_Q>XRÃߢPmH['p ,aE ̡b΂z`$'C3 '0ǀ '纫@YCAovee|U*>pV3a-*{v] hC,Ѿg⮼eLj󙙵 b@ (ꩾE,i \ űDS㘏IKebXY\7;X<!Z皩|y(!x# ? {ШY_&Hw&F? endstream endobj 46 0 obj << /Type /Page /Contents 47 0 R /Resources 45 0 R /MediaBox [0 0 595.276 841.89] /Parent 34 0 R >> endobj 45 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F21 16 0 R /F19 7 0 R /F25 48 0 R /F27 41 0 R /F30 40 0 R /F24 17 0 R /F28 49 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R /F18 5 0 R /F26 30 0 R /F55 50 0 R >> /ProcSet [ /PDF /Text ] >> endobj 55 0 obj << /Length 1972 /Filter /FlateDecode >> stream xڕXKo6WD8⛚l$;` d5mkG=p~}XZ(NrEb=*w7Wވ<)XaIn %V,/\rsLާ?LJCfM:]Wo\sVG6RK&rᖫ\}BZER%U{ca$g(ǰfa$~ ˤ,S(&KkïJP~&iw~юSO<~R\6״TOIwͷI; }iow,4ʤ5-!aiSҬvزp̂1`Kya V(A:NS*O8g ܓ!yI>8}M!VVLlڪh0z5rLuwOۦ?d );PtL,F>lqjyJ8Ca6-qX\NF«H~?K5۰݉zǙ52Qf6d w^~}Ȕ&G_1nO'mϤe9prBr6-Qp Sp;=[(qG a/Y[,n'T|݀Y͹}\' -"L ᭟?^e"#`s\fMuw`T>"&`$uY/}xg#MƾPœ.th@09 m[lTv7NuD~owWqy*٪*g4u~Yt=Ť2"v;A@8P9Sc FfRIO0ԉ4Pg<amy8lY(0 =T+8"ջT&KI-9 KP6Gj MCbpDisfImuH9rn.Bq7%Kp9ˍbɪr=Q髑F%~T:6 0,QS;͐1S< lX:/gNJ}o[lE:^DIx\e>A;sR S2O{ *Vzxv2~ `Ȏt31 1 ski6 ھ\F-aJZ-3iWm@H-  yZe!*&D :5NueD }ɮP̝|f(d̈'J[6" glݏT,EY"6 {y""-$l =AltǥGtZ 9xH<7!/Qr[ޢ+qjUT#|("J\RPWT hY !ph P&o^ƙw_HB?]h(=h Y|aO0n^{Sa#|%yU5chjECB6ܰc1;0sˋm@e찛AKȏFM|ᶞr~whz"1ܞGiiNxjY<'<>!TQASv< 6z`ʮ¬Q2D~1•HPpV:$]F:lc<vg ZjH1`c44[0y3z5wF endstream endobj 54 0 obj << /Type /Page /Contents 55 0 R /Resources 53 0 R /MediaBox [0 0 595.276 841.89] /Parent 34 0 R >> endobj 51 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/2Simplest.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 56 0 R /BBox [0 0 687 349] /Resources << /XObject << /Im0 57 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 687 0 0 349 0 0 cm /Im0 Do Q endstream endobj 56 0 obj << /CreationDate (D:20080624152101+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080624152113+02'00') >> endobj 57 0 obj << /Subtype /Image /Length 23569 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 687 /Height 349 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;]"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$~[j2Zjp$6;X]uN:K:X+s{qx.suclzIm,mm'67l[O)nWeaޕ{nc0tsJrrVeYM=C5ӛeCr woؿlwO}e?hKtz^m;쾷[?hi`"h=ƆB잕c/S~rNvL6Wrzsq[Ec =b,4 ,./PB}gSle ݹgj2:OJů+Z6XT̓cv1-zwO̶1ȷ춶:ZwVZe zs,fycKqiRV[\۞}[UӺ}1~e-^Ki;{~J@܋fËk[1Vߎ~ WeQeϦX#XTSUA>-ݧm[S}kDyǔdR r-Ym> `ӵD2;OѴvs[Sm_Dqzozȸ[M[c$tR;}@R:؞c7>Tqs⦒JAVE<1@2=Sf='uf,aFI%06?=7DRB{) ?ݏFI% "XX[lj ?Z)cfTDI%#H1O܋fËk[1Vߎ~$WeQe3bl{ nkLӶ-TIH)_"w֟$[72\f6TZK}$aa'oxDI% nEֶ͇c&㥥߂YVN/LDxb*I),{ ncMŻqn:o~55X#]mokn;k﵇D}m^ksm-ݯM$}J,"=B?MQ9 }1ilǨ [c[wG$_SAe/Y`#bz}I9SI% "[jj k3ˁ5_$/SvJ[|>S}e dnǣ$Yuo,n-5ϵS̭-?DR:m}%> E?ѽ"fËhlǨM[cKKtR+|}GI=zt鸷v-⦒JANE?kDyǟ+-Ym's `|=0$mn{Mpn.ޥQaTRd\,1msf=@j:)kh,cme?=$c7>Rf6yXbP?Q\tR1fcG^>t}-SI%!mqDz͆zkr.Ŷ?=$ٹ-?ZK}$ >{IHEL1VR*N/LG{RILcWk7suӑmki;k#GI%#u /sHY|e߂"MΤVY}a()I$JRI$=3H3Vq/V-9;vնͳ1DђRI$I%)$IJI$RIFMoӵ<]E?{FI~$ 6*X+D))G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+I$ܿaI~$$qrI%G/{Jj$ܿaJI)G/{_qrI+IO%1][-eiA9SUo_HVRRI$I%)$IL-uM b lSBȣ ea%)$IJI$R:S)GִWF=~4 .VZ })I$JRI$I$$I)Je3k];nf}q|ۍCx.G.q0ַQáSRus< %'I$RI$I%)$IJI$RI$I%)$IJAʫ̻WP@3/AT̲07'd, v-6v/=Ll:>?t\rovo30\Y3P}&$w16f'vƞyO޷<'[gWoO?~^Wǿ}3L8=X< 88m:}WU_N{.lфh3-$8[$ZI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R;蟂t'7N+*M+ JRI$I$$I)[kjM'Tt;m!kx"JRI$I$7?# "mL{A.h%*d#O"JRI$I$$I)I${kXEt^'r RR/y8g?w|Z!cPjKIv%Ǘ8qq2QRRI$I%)$IJI$RI$I%)$IJI$Rg_3Mf}e??ꚣOKf$ Ƽ㜽;o h5u{=s kA3n[|*t5_$ѕ~.7!\~mgeo}G> zD?_q *??Tۯ+y[I**??Tۯ))KSEG"I**??Tۯ))KSEG"I**??Tۯ))KSEG"I**??Tۯ))KSEG"I*e cdU[E]۫l[IJI$RI$I%)$IJI$RI$I%)3'L~ )_Bt;"$I)I$JRI$K. c-22+9ݽꎒI$$I)-fŧލmwi7M57}-F$$I)I$JRI$SӺ< ZmةPvݐv5Ö7tjMCk+hkZ; $IJI$RI$I%)$IJI$RI$I%)$IJYY<5Cj?Y?/ɛH~o$K{5$I)K/W*[~My{$Io }Sqt?O.si9yrJǹa>8ͧC$^CuY6[ĵҾz52xhl#&O]p4XgQ2}MXqeRI$I$OD>X`adђ8()I$JRI$c)Zv9ǀP0kn!iBJe3k];nf}qq%)$IJI$R|˭+$0 |ՐC=Aen/n3+nލ$7;ԖYPx5>>:I)w1K\#ԩ~9Z#\DR ۜ,*u}kpwlwOsrg}lF}^dS.}-lWtB>4369$E5s,oD\Y\>U4R*F@coM?zl}7nԉ#\2Hg{;iwݵR\+\Yi йߕM$Tx1i͎nawTơsEFI%0p҆[=TinP>߿sފJ@ ʅsun.~E;c:G9$tXs-.rmm":I) $}w]m{҂}lƂ9~&&eMg`IL-5{KʣHy鴷mgԫ}7n9sMeּ: i.:O"o/%He5Wc^=kP$x-#mZ4q8{7lsom hʘ!%\U2.{*kl,<~y*nYYem}5qxꀝh/I#S ͗}Vɹ&Ti<<9}ϓФ#u?]/+ΧKm׀);/ ^պ-u4P60ml][x6VO5\DMXC@p-t+=?IY E2{͏u\Kh |(Hv~s+ulmah?M,^?}kiY,4مx'W?êyUaӮ][@qZ7/ Ƕ2eRI$I$tzFE${{ҿd}҉#g\I{qW7+G(_2>E${{ҿd}҉#g\I{qW7+G(_2>E${{ҿd}҉#g\I{qW7+G(_2>E${{ҿd}҉#g\I{qW7+G(_2>E${{ҿd}҉#g\I{qW7+G(_2>E${{ҿd}҉#g\I{qW7+G(_2>E${{ҿd}҉#g\I{qW7+G(_2>E${{ҿd}ҋ_^KkٱŅ@v}vkw6pXdŖSC74d71Ohih"(n뽭, QdYGژ,}zmv!IPzǫ?E,?ai%4oTkFS'=RqGQf8kϩ!}2%2/pgbY/I+5$I)K|?y=_Uy`9_KzgQL7c`F72뙑uuqǽ{vk%n휜YS\nmF\\IudKPmz:Mo%XݩzO/^l'O*4/QH߻2Kb$j}SOkї%оXiD{+U3Nv ϊ&1/Wn?Fu쎅}€D{kn1(&E$I)I$JkYe8Zf)cb%h'@!s2("k0#$$I)e]a{!˼Rơ6K.q;dQSӺ< Zmث)I$JRI$I$(Yeu ?=}SBqŃ[WU.#gk"['I%aRI$I$ưWa6ó~^MX{[K4LOmcֺ`,m1'Ӏݙu׵ne/k=f[Sk.uCk][t;~i}4n@i F;A.ev Em婏{E7ה0\_VYgPջ$NN,5benknW?oԭB#ͫti繟Ƃd:PǷƎC:8Bb U4mav+ qOc{a-s\ 4 b躽fEyy5mAZ)_4ƞyJܪ{p!7̷ fƱ.'kuHB\^ qp:}FMk\6j@%8 nC0}Π'sŷg`o=U4[G1\# Okezon7X,M3{nee5}Z3>mS>˪v,jKOSQ!ikFU4DXӧmcz0ƭ,cw9 c<[nM ,yTKcH_<4Sjǥ )罶ʽ2 `:8JZُu TǶA4$rj[Ĺ /Rk37QvK: Ce'sK`IK(YٖzU^ٽݻg߻:*Kr55s s֚>^}zd6KwGύR% wsCkeVZYf7?qkbXC4EoI}VݥTo6L07lebx0r0Ϸ4}plUٟzԎ7k0]At0%xJP{(&A9dni |e ]ݧF;}FxHRI$I$.]ߒĮ3rUg ΐ1_qk2|>p9=0ȡ?GB.)<:Y>4#J\?aiS6efE9<ʜIcFtuʩ u n e$c#ct$(7O@DWJ.%'2~P +?Y_(Ovxoҋ}>ޙ[ h JI6yg1R61)qQ.ȑkg7c$'(|(nae?_ +?r2~C,Kae?RK?{ WJ.`Ypa%h$<LaI&.RI$I$$I)I$Jamu,7XUOT|d$I)I(/t'h.? IUhwIIn6=X$6 uv{ّ궦= ~(qrI$ҭc[AvAXϳ#8~$.Skt9<SrSP֎M$RI$I%)$IJ@wQto?FvGBI>cA3$[WU.#gk"['I%aRI$I$$I)I$JRYa΀ D%A$Ⱥ̋-q{Kd9* $^Yq,i. t@RIJI$S&k\Z6CTRI%2xa88΄@$yn*)$V\KKg@]<IJI$S7]ce.>ʧc@.:rOI$$I)I$JR1+\J1+L(KDM$"D6WŇn&I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$&R+-﵌3BTV ȟq>4I%)$IHoV-9;vնͳ1D⊇C*=& C`Roţ&=V˙;Z;^pdSSo_Ypchʣ'p}: ^sFA[.d{Ik<{aRRdOױeE*§{p-{gt8O%&I$RI$ *p{{jM&h,h{8+ɢ{icĵ$ h c?5ѤVp<>{i~&4=ʽ~sc?4?I]Iq^?t}91O_ɮ$rn>ǜ'wM/|F\GWc~&>{kI.#ܫۇ??IKc?5ѤUGɥ1OK*y|'wMti%{{p<>{i~&4=ʽ~sc?4?I]Iq^?t}91O_ɮ$rn>ǜ'wM/|F\GWc~&>{kI.#ܫۇ??IKc?5ѤUGɥ1OK*y|֗Ip> 'n\uh$PFZgj{`@p 3I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$"\0Nݖ6fP2cW"mc]N)I$JRI$`|,|{#}U1%܎s0,Ǻ84I$$I)H7ѓe̝i-{gl8|2I)7ܯ,Ա~heQTs>nl񹎇 # ߋFLz2v=v))2JrRѕFNSu:'(Z-,"5紼ʦJEKrZ,e}6Gu(gz.;}'nӶ|v҅-i?ha]ee$38MWT598\ȧp̌w^~TDR:[{ZFCN,/Pk35έ8:?#^ܧG٬wz/epp`Hl'I) ,k"ڞ20ȚfE1sE$ qS49*4%gl,,EI% ,d]W?Gvh8Sefu60G^DS {/CuOgv0nGI%!np8[cQenyqwc;gn)ܶ+vXAն&j]S$w ȡcG=*[{ZFCcC[ | ވJ@g %Tk*pt[#RNk+ޣ 6\"0\*>=K3ȶ8ena$fE1sE5isKiTIHnKgWgl,,Q,eT+jqtxn~H$w7!g{+3> {*ko}kicaŧGI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R;m!kxDC>ǵފJ@r.lzն}HfYv=5VbhPZtS l}lq鹃MMA7$d\m-5m-%+|}G$=ztѸvqn:r-_m"'sd|=$_mOkn;kﱇD}m^ksm-ݯostQu( χ"fk1V$_SAeOk,y ScfLז9DI% "[kj k묨{.jk5?Ja?=7nm7k~=&l5|GcђIH-Ⱥ3@?"[cfVOn`TIH_K XXIq8zն?{GI%"*N/}2QRe}~s[OTIL*{`{H1-ϸX_^ 0RI$I%)$IJI$R\?aiU(IM,ұnu9UUk#s#* ~qIgsi<%8:'ͧtàxNλѬ{kfe.sk@pN%.W$jTI$$I)=54]p4XgJ2JRI$I$tRzkSZΦ "*YF56}tk@<+ )I$JRI$I$$I)I$JRI$I$$I)X3麚s]qw VcGufPzh)԰em:K$&&=*?o,Wkqgin%O6s# 1Oο1 sk ̒Nϼ˰}7u_5__^d^We>:_o/2I/hx2MWcA/7$:_o/2I/hx2MWcA/7$wӦ>P)}ns[ӫx*kKCFCa o=xמVj=s>;R{[],{ kQ̠(gP@R7cq'S~DT,oP~DURI$I$vQfc :PiSIJI$RI$dђn8(tz^gKh(DIJI$RI$I%)$IJI$RI$I%)$IHj==Rև_GĹ6UuX\GIO/0?&c5>?*I$I$Lc{ky kZ$t_c Vb0nn6OkȭQ]v1ǻ?HYtcX9. @!|5p onz~nݼZ}Lck i5 X\p w >6X6VzM{u gp2uK<:>Ƕ^ֵI'@ Z,K=[xuf`cM[?D7nj4Ncc#zvU\\KF-vhteO+W[r_M51%tkPZ}=u<2WUpח3kKZL CU6c=z5211Ѭ _qh;:%jC)՛[be A׎^߼-,>Y.}O cc}6[cK}mh IY]~_JjIgܕڌkv>Ffߵmo2c7E0??mJ+ e%hOElƺ1-WZ.>ۃK@V}ړ*"?س>B߳ON#3mDWȱZ$( Ew1Z&Oו,`ڍ$9Y{~EoɎcp)Uu/Ȧlc1F@Wq2OWwz9,6ƐI='ǰAAWuWR& \t ;jqm SBVI$BI$I%>oGgCVnp4c&؟c{l+KUvLco:ZtGTiθ8c6ij]VUjmli y_Yvmmm;#V1-4 łhuh> hn>M<9RKN|oEm*lmm߰`s[[[]UcGI>OtU$IJI$RI$տ- Z/EXGa䎪YHpdq]`ֽq^Wg]]'f,W6p7&OvVKn+{aʋcNQR7k}VP- k:>bXt5̥pրB"RI$I$W( $Nmu,7XJRI$I$t\̊+ȮvZƽ xv[KX'uRI$I%)$IJI$RI$I%)$IJI$R&fLelolt=_;/F;wntyVS+z#1͆[Fs?v"$FdFxޗs]H˺=vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vxޗs]Iq˺vi7W> ĒMdCqXH>?aBJDn;M%8X~̶XU@.tWs]JAq Î$0_/N~I'+ڇg/N~?p$CǒQs0"VI(##gu()$A*I$RI$I%)$IJI$RI$** XiswqI$$I)kp1ts4Lʰڱi۷֭m:'OTI%)$IJI$RI$I%)$IJI$RI$e4]ad|6b7zRZl}[>LeM$f9dU]m v9~&QUOgb\ _QIL-7 斵׸ȣKa[㺺RIH7znޫmv11TvK@=lwmTS ƹmZ{~i|_ULg-sigGI%!ٍpTƥ9~U7)kZm.!nO4R*]~]u/Q{WMNtsptTRʎJGq{P?%I͜1^#XȈJ@\:?ioOsGޥ]$Kl`q-vc*1#"в<ʌJAkC⊪{;RʉaW4OkZ?pc"I).p?hc+=7uuocѫWnX{,Rkٯ.oM$Tw,?q=kǪ5/3?$w-kM=6{ R~oa|wWZ2I)ߜ,"juskߕN{[8c:G1${NCN/,gPcYMMusms4򣤒\즑z~wad|6bMޔ7lI) .sȪ64,353EU=/?p$RׇKuvfI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$SC}XȟtTв)7ce"$I)I$Jjet+žlheuƸGHD/uuj ILԚqcMQmwNf&K1$V($`]V^%۩6~h̩S e[?%Dg}WfݺclL:I)8YHw1ḅ*jk tQI)YWӣ"_=:y+UY>àc^@ݗ@Ⱥq b]WjP'wJCNfC1%{\c)¡*㖽iȔtS n[mlѯQ'$k- К}>Wfݺcnٙ+q9lpldžRIL+jWΡ+ёU:c㧐($7f3"q<`m^hB@lIH$c]ſKptOT_]2*ec>D}ȱ4{DIDZ.cHDRg`a0״G) d]]EDXُ #$ u^li @F(S{IkJ2I)T<~EUr׽:e_u=!׍JI)98 {Yhn%C>]6onbfeXI%"'k*? )Wu7Wcl_{HstPJAVvȪǝCX {0}u8 {0HFI%07ڽwXTzx;P/$uv![|vJ@5YS, I%NnSI4ODI%#2_c-h0\ * My>`1it QIH d]]%Gpldžu.m5Aw-šI) 9y,Ǿ\q; wUSƻ^J:I)SM~6xԨӓ ǵ#[|vJAWE^7v鍻ffTZʃq$]M!O0VvёU<5k@ݙ̋Hk֘BƊ;$m)ӗHǺKu"Gi)U2c>D}ߑc*i1 %*r(i~=s'D$3?,ȩ.%J\hWN86cq$ ƺ.9;P7!1%{\c($aPN;^J%SU~5qM$lN=7znJ"Sv͛ۻtؙtR+qvE;@lph'D)Uu7զay4R oxy{\LyLgd_]N"@i#RIMl1ݹ[_e$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S endstream endobj 53 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F51 33 0 R /F27 41 0 R /F30 40 0 R /F21 16 0 R /F19 7 0 R /F18 5 0 R /F24 17 0 R /F25 48 0 R /F26 30 0 R /F55 50 0 R >> /XObject << /Im2 51 0 R >> /ProcSet [ /PDF /Text ] >> endobj 61 0 obj << /Length 1843 /Filter /FlateDecode >> stream xڭXY6~_!rqy4 h,Ї$͵ʒWͿ :"I#VD7L<22nz}+#l&32c"!՚S$La%k׮T|W;ZJwaljLdi~Zo+e8snC,'a@."'&RfUhG k;OYyTE/93(՜ 9^p3`ظ|Wo px&d7DjXA4LW:2 JT;dN &eDL<|B|M @^2#Ō@|[秤b\絡&mv?49)  .Gׯ$N c&0,"4 L7Ip7D"iǀ1ƮVB@@K!Lʯm~'ķRBCc}'OFϏ{[B <:ڃF;ǝ_yyE~ m*W){!dwy .X| A#zGyh jOI`P+]2&Be~ E ypf4{~ԙ,[0)G@~[7{ߌx>Tl^p+>}s35ii$,9d1G8g8B3 b?M6O&];tdbX29榸bv+0&wu𫻐Pta%∩aŘ)EI/l*e=Ӆ=(+{j,w&_pRX+d1;wg>]HwKSL<5yпP Tzt* p"ﲸu&!GBpp'C7e3"1|sș͏1,0)&!1_p`,Ro?B'ψHo}4Ox4): endstream endobj 60 0 obj << /Type /Page /Contents 61 0 R /Resources 59 0 R /MediaBox [0 0 595.276 841.89] /Parent 34 0 R >> endobj 52 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/Sqrt.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 62 0 R /BBox [0 0 553 454] /Resources << /XObject << /Im0 63 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 553 0 0 454 0 0 cm /Im0 Do Q endstream endobj 62 0 obj << /CreationDate (D:20080624141148+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080624141151+02'00') >> endobj 63 0 obj << /Subtype /Image /Length 31674 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 553 /Height 454 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,)"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)%в:uL~}ybf6:; 6Zi\}O YzzC^mmshPm$~_'dq̳lNcTQe@Њ.K'r=Cqʗzs$:,ӿ*[,fssVt^?kAa?Ozs/ӿ*JuY?T/NC?)Id^7;yTG־]@fqkXח))Id^7;yR;PnwY%9zwKr=CqʒdOzsEZM9,kz~i,qk_bvINK'r=Cqʗzs%:,ӿ*_T$/NC?5}k74gX0?59,{db4撝Ozs/ӿ*JuY?T/NC?)Id^7;yTir*e3:ڭh}v3湮kpłINK'r=Cqʗzs%:,ӿ*_T$ih}έ`s~kAspKr=CqʒdOzs/ӿ*JuY?T/NC?)Ic_Iղg1;emwO s]N _T$/NC?^7;yRS;Pnw9zwINKk-g ^=ahs~0 ?9zwINK'r=Cqʗzs%:,ӿ*_T$[3]Ʒ\.k/ӿ*JuY?T/NC?)Id^7;yP3>tP=x̭0 1 vRu%SL_RznN:{lk\!= I$$I)I$JRI$Η_2rP9n.f@ 6UPzԸZؘT>æ*Y?Y%0?T/Q6Tg߿Oiq?[*gοNCv۸;|;$Ê7qKtFڇ?Dccqx `}jY'fX!5vݱ$vϒTIZOQeDG6H'klcW}Y8۟KA6ѽ\4IBGq;Cowg~_^3>}*`L]XlAq!6V-_\ΗXm'u{qw2YFSi]Sv[a:ysz9 D%rqЧI$TI$*VΩ K_eZCϿIII$I%)Uį#:e6Q i!jJHI$$I)JMį \Z쌋t@4ai$$JRI$JKK ึ5ZCȒ$I)I$Jj,JqMǸ;5MՉVj"JRI$I$f%y97<;!V\hvMiϧWKRI$I%5lĭS`aWf[gk! :>>S,2Jb?r`τ ۞=Ogfu,l1$ 9zX~fèL; DDU;?%L@+r, u[|dcPR|vxߚ}k{,3;hs!6O]x};y9őlo{~0ف'ĪY%71322k/#Ew: {}|QG"I)OK'"$D% ,vFN)ϧWKRG^?oI$',:g[n~s˚Z[Lj$*@\f'r҉GdK-80nHc1⏋?{H)Gv;uq'Ok_ӷ)^?oI/Q$JG?{H$~?oIBFwR:?@]NIJ{IzD$DR?Q$ODI%#{JMcqF#oIJ{IzD$DR?Q$ODI% Ѹ{??䒻)OK'"$D$G"I);up'_k?䒳sRD'%?IHG^?oIcu?%3έďa M ]&[3 쯭k[~Ƴ6n|`&m iʳN@ p@=" qvճ~ΗGr\~Am=$q*N̯KYᑛ:YTKtZ/׌1A/|8KIi#ç/_s)XC'sGG/n &7ّkϵ'[u?UdY䑜Y+d~?oI/Q$jWcY7wtJ~?oI*-DIHG^?oI$' dcVNF[uA^xI$gI}ԹAέKNnQ-v=< adZӇR쥬I$$I)I$JRI$~æ*Y?Y%:$JRI$gӫȈv}:\$I)I$JR}oz"}ozJHa*6u,>׉AnZ`5VHt:2ID}^eMW@~%tT@<}m$a`ij\>-C~r;ʩd˪|nƇ-tB1n\?:mxSzH8ʻ+SǴ4*5;?Z}VV,1s4N!,?cewKɱ P;ll9r^(>2'\9; >;)$IJI$R:-DCqRDI%)$INOկ:8u/Z'w:e-dI%)$IJI$R\Y僚szw:O^B7WחC<߬UUz0n}M5۶ַ}ffm #鬟u?p}NM?OG}wvb ë!}7jνޒCZFwO5,k] y{?$YY9ٺi4Ǥiq$!A)q$v}:\8,7nZߥ뿒7??g $7??g !FW7??nlo%%'Io MA%$Io MA%$@~=MuOx]ikrg Yu-}[H&$hAeG\È ~AuֹsHfSֳ .+VK᭵{ 2vWow-q(_HʩdU>7WaD#ux~ΟFFoO9Zq?>!-vWmm9ii#T.~eU;Y[p'N^LhA9b}Nx˶m#ɀ{JC-i1#uD0rr0,|z?zb^2,q !Lv .VOkov{:[#x!SFݶ'Q/Ժ߿~wQ1?뎑mFOe*N=,Ucdkk7??~:r a%)$IJI$RI$=+/*<{dYSc64CV56^k>5ŭ.{TIMLҺ^٘x~zgo;wlkf7U>æ*Y?Y%:$JRI$gӫȈv}:\$I)I$JR}oz"}ozJHI$$I)Hu;?Z_ӷ)"I$a*6u,>׉AnZ`5VHt:2ID}^eMW@~%tT@ҾaǦNSIk2psKm< '^v=|n^Jq˄F&=4>v%I$ڪCȈGQ%$I$RYcIkͺrmF% ّk1}ŻA0'IYFYkuWIkES381wr ȱ2d##S&U|25-ì`ӱ繻~iwn%Ve -9?I9k!B OwmzF>nl:bBzՊ2rGQ闿oma:Otkk3D`{\#O8!o\_X#'ڶh1Ρa$>Xt ѝoN63 +-l?tQ17-\ѐǧDߥsN[ !!W{>qԲ+ƥĐ rCL4jV :Ox-oHΥY}״m nĿFgRk!gk[6nB5΢$c|&?U\r<עwv?=/5cʹuٹYinb@ӎ굒IA,L$w2phTD;?Ꚉ$I)I$JGgӫȈv}:\I$$I)}wb"}wb"JRI$I$u;?Z_ӷ)I$JRI$_up_}Oկ:8u/Z)I$JRI$I$͹Y:_wӢ+U_kp;u]+r7eY=:-rG2I)fFwTc"cVǂ|GU#Y@ [gIelԹ=KNn(n< adeӇMTƬ쌷n\64Fs($~ҿoE/M_7"JG+T,۫#:{]t;>_?.IJs)zoJDR?M_7"DI%#s*zu(cQ)^ҿoE/M_7"JG+Rs($~ҿoEBݺ8CGCqRԔM_7"DI%#s)zoJDR?M_7"Un-?p;x%$zoJ7"zM蘇;^z78KZև98:IB&R">+fǦXW.>YXC#uM %AYIld B.6{>.ekK(ãw ~:_FtX ;xˏYps&׹'mw=_˾=83װAk\=LHN~t~W-8vԢnHg'^к:?3Dq1_m[؁ʸqu:=Jqzw:rONm(,d=64>H״M_7"u^1ϨݟMw/kX8G޼r%<3KzoJ7ҺOX'GY3`ODzNP ԣ!DGswT7W}v57^ҿoE$Wȥ+QIH,۫#:{]?M_7"N"$~ҿoE/M_7"JG+Rs($z*~ҿoE#?DWȥ+QIH7^ҿoE$ݺ8CSs)Wj"JG+Rs($~ҿoE/#&s1Kh."ZZI%8UK} u3rs5[ 'w:e-dI%)$IJI$RI$NN7oV'Sة)I$RI$;>_?.DCsR䔑$IJI$R++RDI%)$IJCqRD:-III$I%)*]gtޅUo{5ceI0<$:::wuUwZ잖1\ׇ5e=KG 8,bLŇ!ziB J|ϭ俥}N_*aԾƼ?5|ߪTScd;=kr2PۙRѶƺDq*cݵ'RQӧu1i~OF~-z_I$Ht1_b7$$JqzՊ2rGQ闿oma:W.OMsSӺ=gvHf&]bm^pG#QtxO4r}G%q[L}XSm qm ~9l\w+.m,;N1gC]_#n^L~"b]I=I%#sRD;>_?.DIJI$RI$>; >;%)$IJI$R:-DCqRDI%)$INOկ:8u/Z'w:e-dI%)$IJI$S;2UȻv]~ m.eSEuc{jckZ։s.s`7U׺mv^:G)SOFŖk.;lDY?tmm}Td[{osZ  3v$u7/E/=%S}g wo;i):H~<_{Iz,$!,%$!j^<_{J5v~|Rtx:g@u.kS4kC_cѮ%:IFj1JK|}[.މ0Uڷ_Ԝ. DM{UU6,k2rs8{m>L@rfNů C?:Zk>cc?אrCcNuUz^EO%S!g"V&;i$r^<_{JTӫ9߼|lgIJ`h:H~<_{Iz,&%"H~<_{Iz,$t1_YPk2Z8soJN^<_{I)"H~<_{Iz,$]TՙGIff7-" GyZѫ9߼<x䐔DHXdÛ'/>؝x$Lc<ųÃ8y~c Ó?=6zwJ]3c ͇Ԭ{+<_{IAZ1 0MJ2AUN" YSCڻSYEjDxYIICYKgwI%(>;Y]]oJH^<_{I)"H~<_{Iz,$Wj"u4]yߺ5?E/=$$?E/=$xRDxrn>mbևntF))kNNKoSi/ŵu4{nnP8+a%)$IJI$RI$I%)deӇMU~æ*JuI$I%)ϧWKu\Թ%$I$RI$1D1$IJI$Rv\Ե=EO綺i{ֵKN'u~tjʞ59ݼnrr ps,H# wC]i ET!69 d p*=#*gYwnkcMֵ%xՆ46DκIZt6emwZq!RO(\1yr}CxzI*O?SrJHI$$I)Ht1_b7$$JRI$TD;?ꚈI$Y"Ժ= [L6\\,5?~脺_GYzW]tޢk>4`6cqRcPx`ԬV0}F`bxzeo5 yg2re >_?.D\.btiW_e2IQѽEvWmm9ii#S1+Hoc9iᕌX|!zĀC$I9I$JFgXgXI$$I)N!j"JRI$I$'w:e-ekNNKoJRI$I$$I)I,LzbWnGXw{i)BZ#uHjRO_:8tK>ձqV>..^;2*5?Jv--jC_Y%:$JRI$gӫȈv}:\$I)I$JR}oz"}ozJHI$*=kt]J͕3Fj~uIqt:}UY$bQ+($b+,갘ӽPṧxysb 1h̺קc;YZOA䁝'}n~_:n^>eOAdH;|j6-cֵ` h2N3 !${ґԤ $PI$JR?@]NDC)"I$I$!oDCȒ$I)I$JGwgSQj"JRI$I$9heV=%c-sK ]CIK湭\Lj5'MN"&tvCpSBxLS CKuֱN}dRgcdeu`~k/of7SKmyMqwx-Ѻ}R˰)8]C~%pl^@#Q%zK/_s"=ZתhvuRI%#U}wb"}wb"JRI$I$u;?Z_ӷ)I$JRI$_up_}Oկ:8u/Z)I$JRI$I$=ޯwboײS7lX6ld>x[eFg{|ۼXI%8=[>0pzEB~纷6VP;黎MY%^U=V5ٸsNO_:8tIMN}f <|Z\@c@ޅhDI%#(FB^hDI%#(FB\V]AGCsR䔯Bl4%QDR?Bl4%QDR?Bl4( i=6kL@r:}ozJWG65׺w)&4}74G p^o_puyd5ގ;XaH"6 sw/Ezm{*fq<+,vi](rb99:×N֯ho.7mh6} N7ٽB59v]! QD\rgIH?phgBi.kn֣jbQ愽 ?ѳЈJGQ愽 ?ѳЈJGQ m>gt:~꜒Q愽 ?ѳЈJGQ愽 ?ѳЈJGQ iY5I x#oIJ(FB^hDI%#(FB^hDI% CDVhwpS(FBW}v5%#(FB^hDI%#(FB^hDI% C۫?u~hJϧWKR?Bl4,γkug˨~WinVHJ"B,sd1'ZuyΕVHXVe4+vtDiFG6~sp=].Z6e^/q>`Oq`ǤǤdjXa΃aN\l{ZGKoi=6k@jG6?ϳDR4g/Bl4"$g/Bl4"$WM%Mm4?Bl4%_ӷ)G6(FB"I)G6rWKsk]S,hpn"`I$5cCUUguW[kZY?VԿ)k$$I)I$JRI$I$,u?p}O_:8tINI$I$!r"N$$JRI([mTT{k!kZ$ z3\^nnW׌7CiQI=suOȣt߫£FNhkn 24'掟F='RNGԹцi9Ho`tJpjm7mu?)$IԔtT#"e"I&:ORI$ RN!jJHI$$I)Htw9$$JRI$GQ+"JHI$$I)@]MDC)I$JRI$r"N"$$I)H9xbe-ѵw;d")HIhACd}SͧkM*ٯ5;b`#G*٘8uiwK>;϶Υ532# KK;7h:q?_G7P9 eG]%mNcs \$G )Z$VI$JG_ӷu;?ZI$$I)']KYdZӇR쥬I$$I)I$Jy: خn/CV*{v˛}msm&nۮ{UU4CZִKc (.lMx-~|:NEW]m{nþGfU&w OoJhέs1m>=X\ZFk>JK[wUY}mUUe!k[\8 `U;հhqeXjs s@cn 08o~'Sة)z_P݁[]YcCi,qף#?$~pKף#?$~pPK?uv}:\z?3JGn-Vp-v׀mN09_Жvv_׌z'DtJ._7ǂN?^'MīяCv[xNIWGG k\?{e5ߟ/S(k0kZ 5h >`dx >7Q&+z?3JGz?3JG :ɱFZ_ӷ)^pKף#?$~pKף#?$~pPCLqwqGC)^pKף#?$~pKף#?$~pPE5cA G:WFD^8%DR?^8%DR nE>Gg?^8%wgSQR?^8%DR?^8%DR .:N\u\Թ%#H^pDI%#H^pDI% 7S4 ?Ux-{AkDA#?D jV9}Y>]s:[$Ko^8(cgYXFױW=O&լ6N QE"5Lw7Hǎ?\~~{z?^8%DHucutGOף#? Wj"JGz?3JG}b|ZZ\A;A{ I)uY%UA5ٹEkOկ:8u/Z)I$JRI$I$$I)K'/O:obeNN7oRSI$$I)Hv}:\gӫ)"UZtSCKMM$kq+VݸxfWdAڙ{~}~ŎK}KL{hult^OT\yVX%?N&?]1|z@[ Z}F|NV M$I:JdLI$'RIW) >7 >7$I$RI$:-DCqRԔ$IJI$Rr"?@]NIII$I%)+""WFD$IJI$R;?ꚈwgSQRI$I%#sRD;>_?.DIJI$RI$>; >;%)/?LŴ6GbD^1 `#y6z:YWF+\?9A<h=":^X~s7A9=2GtΣX>Ȥ{^I8`9r +,(xVM-DCqRE#MI$JRI$_up_}Oկ:8u/Z)I$JRI$I$$W^TfY@[V2Mޖ%6T}δ{}u]TCKHi{Z49|RS5NN7oU~δs2jnuϡmKrlQk=qzK.xqmy= kN09>@JJvUq:>mfYևm"{t޳<c))"H~<c)zȤO\=Uяkwu C7[3s1pq7o+g7[cYӨc\b711 hb3 Ō#Y!//gSγ πh>06fx?RP,ӖI h(RDfx?RLRD1fx?TaEy$!ȥ3;"$3;"JH_ӷzȨWkCڻ]IICKgwE%$IgwE/Y1%3;"U :;;]%'IgwE/Y1$?Y1fx?RRD:?zȨSkE5v5Ƿ%'IgwE/Y1$?Y1fx?RRj"hw%?Y1$?Y1fx?RRDfx?RIJsRD -iuz;G~uJ~<c))"H~<c)zȤ!ȥ3;"gXmo.xOgwE%$IgwE/Y1eugT;/P.NnD> ȥ3;"$;rG5ABЎ+˩tX pI 4\YnGK\?c qEdn JÎqnVfF}K}6XXF5H 'h"#O m߮_XN#:'A[S'8 8YP> lu\ԹW+t:^pw8K9x+}:\fIFa81uu?fQt$*I$R++RDI%)$IJCqRD:-III$I%)"!T䔑$IJI$Rb7"!oIII$I%#w}v5%)$IJI$R;>_?.DCsRDI%)$IH++RI$I%#qRՃY7mx@VNccunHMo"MvAcun|u2q&~h?ձ g(ɥh|EԖWn/Q#(8Yk[׷P`N!jFB@Ջ6)`,rlGB<x)$EckNNKo']KY%)$IJI$RI$I%)deӇMU~æ*JuI$+&,k2]zmv .{3NO,ۺՃ[˛`Hzn$XY ̶$԰~3Z(x_;sc]2veEABb?yn~jCsRD;>_?.UW$I$RI$1D1$IJI$Rv\ԵoKRRDI%)$IJCȈtw9%$I$RI$:?t1_RDI%)$IHj"@]MDIJI$RI$ϧWKu\Թ%)$IJI$R3?D3?DI%)$IHv\ԵoKQS]3чA27َ"O59!oWevjp{Z 9++Uck \  _YfO̗?دy%bXf.şAѠQ/ ~Y',tk"$JFkNNKo']KY%)$IJI$RI$g#_Sާr>{= ^^^6$\ۋv_cκEv .~lqk%zV^UyXxQȲ>l;۱ipf&-ޯMv}MV7oo>))3C|?Ez-;)uoeUTm0Y=moIa};5n.=/LӺ~.%icǦZH%h1 *Y%71,ꏬ|zl[Rf{BVWر e8_k aV3:g1:Õ6Ƈ<6d4?p;尌c  I 8) DA|q~uv{Ӷw@&u.o&sB8o1xF (R9q(Xn\KOq%ϧWKiT8q"I)8q"I)8w|]t1q%7??DR9q%7??DR9q(Vnd5K_q%oKRRg 8IHg 8IHg Qi;䣡T䔩q%7??DR9q%7??DR9q(Rnk%t1_Rg 8IHg 8IH-7m&q9q%wgSQR9q%7??DR9q%7??DR ۫i?A+>_?.DIHg 8IHg 8IH oߜ|[9q$gXA)q"$A)q"$Vnd5K_q%No Wj"JG7??8VccǬ[.4.[6W]ZǂױAAMxFǡF̼oc,fGuАG_mmMxckDfX8Y n6Ǹf1zIKǸz8ǹC-ġ.(1Ua2RzPQ U /7ucm'[ 'w:e-d%$I)I$JRI$I$,u?p}O_:8tIN~S}X1z~qClmG~UϮ=Jޙ{.m/!]ymv+^/Lin-M pΗ2CÊݑtjVN7Zp#7*YM]2%3eX[R5\kNN7oV,޳.۩}{}?11H$~wZCNwO/k]]a"{n/Չ\LzxИ.K3uY.V>MU:O56\{lp8./j9pb{%78O]+=Dg&_4Uu\Թ(iɨX.\KOi)%'I/iEOM%$I/iEOM%$CϿJ/j];>.RJN_4ҋ}JH_4ҋ}JH_ӷEOMBv!ZOI):HqJ/i)"HqJ/i)"?@]NJ/j s~4RJN_4ҋ}JH_4ҋ}JHGQ(iɨR.k4 %):HqJ/i)"HqJ/i)W}v5v.ooS}JH_4ҋ}JH_4ҋ}JUN" X.\KOi)N/i)?BӅc?Wз~гhsVU}O6ic5 \S9Re4<;,c2+s hIQVa)UwzfvV=sL4H 'Tk߾WԺ?P;ri!Ƚ5 cI K2K='h 1}t7swv;NSyw>QSݏa}s=ﬖ.]ᧅ~+p5V;hfZfֱD{LH _gھɾާz7}ԝڽ?Gvdo^ߥ>a9O{s2q ,5d[E,=gucf+ߕ~I}v_fSaPlP;T~bL?a_S'oG~x%7m4j.kǹ>67&F\\=KΈU}cdjs۝{j4w8Kbw6r67:??**"_Tykڑ+Ow~|~ߣ;=?5IM{5W9m{VL5l k ;3>Mn=[ѻ;#-Oؙ_~þSNOnW|{[n1vvA ʹK\v$o tz%3+/|u'RʏH·YEŮsa$mɻ!P5 Ou?p}?ԺZgwsx5ʱf:'bO;3i:0,"YKOSC[}>@2i.d?z|;cUd>կ:8u/Z꠵%5,{X;[Z\~+a=I%)$IJI$RI$NN7oVE7:^W%kAi v8{)tW?՟[/':k"lV9%t'USc26:C@sk;$e7=?s!9';DH#I$!r"N$$JRI$?^?^$I)I$JRN!jJHI$$I)Htw9$$JRI$GQ+"JHI$$I)@]MDC)I$JRI$r"N"$'= NzY=gQ_pls֥mnևpiARPi~_eoR[lmUg!cn&;RT`t/+ȩW:-V6ڰ1X=  ?r^Vgz}WlcߑO;lkemd<^Wʱ1q"^5Ș9f]7]6X51utB{Y׺fmǡMn~+mVAp-A*}c |eecj:Xک5!LObuҮf(!YezL>]: >w﬿zh v;h:ƟrJn0m8c}l{ed6ma2#@~F α EYU[;mtk+YoUym ~S7Q}ۃe^%ηt1nD_ѽ?L;fcO%6:>H7!k*ۼ[kss tOtۏCgѱ]7@.VڭZ UL>w﬿zh v;h:Ɵrt۰ֺݵ^̃amOn('B NCͷ^o mxXmm{A$ğyQxV΋u宷{KKqi $'/O:ob\CҩKf^>gǩ6n9}eӇMU?Usw4c`GtS2!֍ylr3HDjCX}ZӇR쥬Wەbݾ۲3,yql݆p8(LMxhII$RI$P}USK5kDqS5Dc k `h֮^N=sAcrj4n1"y f'[nhRiAc $*I$Ru\ԹWɦ*]qxHiTI$RI$1E]4>Fnm{`{Xf#SSSa$IJI$Rv\ԵWɦ۝pmy@kDI$RI$:~꜈ӕKۯ#UT9$I$I$!oDU~M9xMmn%hsL8IMI%)$IHj"N--lk`}S瀬$$I)I$JGgӫȊNM4]U웍U'sWZFOmn: )Ǘ2nsllg4K@L"Ϫs*(INO=?b҉Ϫs*(INO=?b҉Ϫs*(?&ӈEulY[khmjW.zSUU?Qk$W.zSUU?Qk$W.zSUU?Q^ɦ۝pmy@kEa%9?\J%;>OتI%<[3qpMur+gk^I%tW]ZǂױAARI%Z_۬.o]G7/nH>A/I*I$I$$I)K?-bԿ'" n}{S:_ū!bSk1Ƈf 5]"َ"mދ]3etl.}%{-lx-r:3[lzr,"oCֵ۷LѩĂ !Jx?nCo~X}Ogz=9ݳc_t6cw0'7Qޡm_^oxI)x?w̬([ ԝCk,0uZᯊ.VWUΙn>7ٱȲ̊_cZֳ#n߳2f{FNwNz_lǫ#ӝ=V5wCf7s )P/G/z x]C]ֳveTV58c=Y2h?xINOnCcu-dSP W2fkzP]tZc#1zQV|WcϫE=dzxf;e;׹[7kV]Ӌuش{pxݣw$G/z ~?{?K+GLvA{dϫ sY%9?^oxx?INOnC*~ec}X.;] 냧<lu]7cO~>_KlrW ӱ@/!hlKfBSP/G/z =[mɤmOfvKhs6Q@X>4?{?K7QޡmU:w쾕zcǷ#ӝ&9wCv )P VfnYel>>J..WUtΧn>OqȮz_c##v2";Ζ˲̉ݶ7=l ZR^oxx?t.Ƭֻ&걚4wm19B}CWK/q%[ o-8ݬ#T^oxx?INOnCcu-e 憵[ƹpki$DUұ_eRlp}ť7fFAqy&O]ߍXi"co-I%9b1Y[}lWcX:絳vdI$S`8eW26[*I)ɧu!쫳kG3QFzΩ_&_ARlfw,鹔דolHs=; t Fy$UtΟӨ.uX׏[AqmM iq $JR:}k[FNh0^]8Y[_S6\臍`$3{[~ٙVVMӶ+TXZMI/$\;_?eeEuՅ'վekhU[u-RI$zN=^=ɡ -־^F9iݺI8tIMV5/}'ucZ ;p~͙̱i#Z뮶VCC8NIJRI$3VQQ]X]b~[6]Wk?EPվ'QI%4skYy7yؿeֵ՗ mIslh mBC:Tʧ")Pvax# FΚi$$I)KVٿl蟴zh~_ٷ:LI)n%SM{2 kcefU2Dڪt/׺ّ\pwR>#y$q'ZdRI$ 5[.hs p·zK3rm[MۑhvnI)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$J endstream endobj 59 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F27 41 0 R /F30 40 0 R /F19 7 0 R /F51 33 0 R /F18 5 0 R /F54 39 0 R /F52 31 0 R /F53 32 0 R >> /XObject << /Im3 52 0 R >> /ProcSet [ /PDF /Text ] >> endobj 66 0 obj << /Length 1277 /Filter /FlateDecode >> stream xWK6 Whrg );ډ/$FRv (ܪz1AoH 7y's"uΥ*"5\29엋nRLy^il׹?߿/)FD)Pfqu')z)FeI>~ 'Kc &J<&EEZpL 3;LeYpߵYk*_fڷ3KCn,L D #\wtVrI̷/+0J7?O]5}fצv'ڌ}dR_?t!c=^0A*h{s讞Hbpцa/JimXݑNhxYc;F}6hAd- 9*v0m؎ADHI?)M }S"#+t;Ftv6Pj8̔0RI Ce A?t&B0A(SU9kuɌXIV; #[cSQSYz5}A  iޏĩljsPLV zFwÈFU. ؍і%hԄCFM FLÍ`Mh /4a@΍ĺ: B=ݲjl𐱌99lՐ{.KG *<0B`$qrBH@t[`3'> endobj 58 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/clickclicksmooth.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 68 0 R /BBox [0 0 600 400] /Resources << /XObject << /Im0 69 0 R >>/ColorSpace << /CS0 70 0 R >>/ProcSet [ /PDF /ImageC /ImageI ] >> /Length 31 >> stream q 600 0 0 400 0 0 cm /Im0 Do Q endstream endobj 68 0 obj << /CreationDate (D:20080721151153+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080721151226+02'00') >> endobj 69 0 obj << /Subtype /Image /Length 3784 /Filter /FlateDecode /Name /X /BitsPerComponent 8 /ColorSpace 70 0 R /Width 600 /Height 400 /Type /XObject >> stream H׋v:DQXs_Hu֝u&B2MJ)RJ)RJ)RJ)TfA\@1$1 i0L"ipLd Hr $$@LɕZkN%R=A$WvjXvo^~>29 jD+iʪml5"R b5${D|}s"MGr<+\ǧt=~Ja+UHAɕUj,re'qiWfU9'd=\yÂ1++VKrepCգ v(0oX1\9K<[-ɕ** spp"]]db]]bw6Kreq[hv ]9֣x瀉Ug%x]S%W[Į<uW!x]9\Y>/ɕ*LSvꙫgW\YuK,BWHbtk/\>\E|F 9Xʢsy5>WU蓪U^}T 6Ґr{-*WYvJrgX\%8 \YD,breho\%8x\eX׮2\5%B 28h\eخj`sOG*Ko\pN 0 pc-WYUTҬ;Wy3qBL!\%A|pHPL %Wʒ+d򬔿\缯U++*5(WZ]Y-Bpd]eYSrB JW9L\%Y0BqbvbNpRtw?L W Ma\eX4Br|]x=Ub@\ U+d@WU)*% 1xb/\! xr *y25!]ž*]]!URA]^@Bvw\+ b`]]DBwuǒ+dpWaQynG[.+ps% ;\!sqr-\Ero1\! x)W\E۱ pBW./P]NUE+db P*҅Uuq4bή+dޮ_:"uti^̻{\^xǷdz]}T;1,BjXw,B4;5]! WBB6%W"%WFZ\+/WȆ,+w#]q->b uEe`Ѯxrl+YPW40W$E-WH\-[BYr`XHW1{3B:*W+]g2:W(Zr4vs5)%RW>+Hcun(Wx]Mi2jWS-Bߞ%W]MWZ̕~bZs(zQ\ YW3-B%WȢZr|v-+8j mKu%WbZ+d]]k%WȲZj۸0|~WW&Wq\!FIP:W~+ YNWxԮn%WȾյ\!W]ߗ+dꮝ0+ jW[ \Y$I\Y$T,%W\!+ݍpuլJNA\)jI잨J+uHGr<+\)Jy$W#RɕHGr<+\)Jy$W#RɕHGr<+\)H\0$1 i0L"ipLd Hr $$Q•RJ)RJ)RJ}]m^_=mWvWzu5[&-\TP9+簾7$jL86B(6gP=Gڶi$f+vW?G9Ȭ3} CZT$+aiٯԎbM(;F} > stream HP[A 3B(PJ/׳0Ny% `w&[U 0 $ 5ϐa~&}$9:5-beTQ+"8윓8Rq̹^62C\u:u3271ާz3:G'w endstream endobj 64 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F24 17 0 R /F30 40 0 R /F27 41 0 R /F31 67 0 R /F25 48 0 R >> /XObject << /Im4 58 0 R >> /ProcSet [ /PDF /Text ] >> endobj 76 0 obj << /Length 1758 /Filter /FlateDecode >> stream xڝXK8WPXܘZ=.TqDxq`; RK-SVū"RRT}"UERȲnX_htZg¦Y(3 L,Z"?Guy<~L`5Xw-ʏ 2%?Tn7K޶(+h[ȓ2`'Son_*NG46Z?h kGRsQx=%: {#?, ;Ex[1?xxeU5 S{O[>N:eJaJyw(ۀDS18i`Y~5zk^m궭 ӂaOc3:a?cV"ώLKd9ᖍHmL0Yq fD5=W)AR<?0snHEqb(K<eknmkC AMZȍ,(v]=cP] Zh@4V7#-whWh [La<21OZyۡ d~Wy% SUixѥFU0zn.[^,sILnYRm=xg}̂<;F%s)#xF)K #x.r)4cZr&l*v~5#GgBGIۏL`uA!#/V)v~#"~= 0px̄Gw4_y5>}i,jm>w'h;#QPd~ '3TpYC=deƓJ4]Nmv} ]A2m@]o޿2Iޭ}0)ww]3l],Q{@jθ۵kǏ/gfaAT͸GLyyL\5FdaKWb8&B *|xq_j5,UsLk)lz9B?VuEWZ$pK+@%<fu 퍞#PM_^Bg/ViLDU e}QBb\~]7g} Qh5m}B:˶9v^vmj?m490pf >)cWxqꕁG9lkڅ @c rx+ʼn׊  sC|dQ 0x2OOƴ v~R!Pmy6T}C.3@26S!~[ֻ}N.,XwDV}gv&h"S NϹ}r Xz79 fQ/<3Qfxf*,"x=˥&1-.~l)ɭ.%DK @eț`oXdۭ' <>ѧ Y 1$pg@ۇfkl>> 2}Z4{ 3. ly*3c6Vimυ{E}PGa\N1zǁ}vaH J0b #*I?τg LgG FT-]v%c 2 endstream endobj 75 0 obj << /Type /Page /Contents 76 0 R /Resources 74 0 R /MediaBox [0 0 595.276 841.89] /Parent 77 0 R >> endobj 72 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/PannerI1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 78 0 R /BBox [0 0 410 266] /Resources << /XObject << /Im0 79 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 410 0 0 266 0 0 cm /Im0 Do Q endstream endobj 78 0 obj << /CreationDate (D:20080630122357+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080630122412+02'00') >> endobj 79 0 obj << /Subtype /Image /Length 11724 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 410 /Height 266 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,, "B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)%_Sv͞wnn؞eT]S7b F]MYw]c>t_M&cH%Jt\cv ].mm77%U˄⿯b3+fm?em/}k+јnq%;i,NUN|L>vPf$oy5nkv[SHUQؙԷu7e 0ñ^e ^]Wn`.!%=K}b +eg{,uY]4QHIJI,~EM,/htDʝc4?"T` RD龌z2ncHP?UdT k\c$1WQvXn!L]I4I`w$i ә{I xJkshy슫x{ZDmR[85)III@&DdUnٳ{wn+q986cq )*JMXׯΣD:FEV{\`yvn;d_UN"C^nj},}mP`wpFV.L7D%E5i~EM,/htD!ݑF;C,eM&>a*o!e 𐒒$^~ ȩ=x P,pl7$.jޠ#l s0\Y}v " II@;ȪZ_"Q-ckg<|Jf98 Z5:?%G>]6onvJN8YPw686cq UMXׯΡ%3I+ёU:c㧐)pfET$5kLx!%&IAڽwXTz<(ӗ#7D%%%I5i" 9 S"vXʚL=|$JH7ѐ2փpp :Os7*: :j{I$I$$I)/1&l`JX9Tv+1rrqYme,1̭I;}.{E3O {5%9`}# я@hwӝ@}^G=&ϲߍ]_XfaI)Dc]OʦךY:k ^vqS)Eݐױ;mZQ ~6BI%99Wqnů~F6 1ۅf%ov̵9=ݣcY$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)"ێCnc$rnz"]'4Ŧ#撛 $JRI$I$tU.=H5kG5lǺnEIJI$RI$I%) &P 4ro37sN!a>$jJZYfUK`\'kxo쾙q(V[,p9ĤHH>HeG_gģgE=ޗp{8S?ݗQieG'p{/z\q/?%?)~iAL $7ђpGW_LLȥ/J?UCW_LLȥ/J?USW_LLȥ/J?USW_LLȥ/J?USW_LLȥ/J?USW_LLȥ/J?USW_LLȥ/J?USW_LLȥ/J?USW_LLȥ/J?USW_LLȨ2C]m ko kDW^c#?ڒI$JRI$I$!e_\[vkuf'h.Ue6W|zOkdHI$$JRI$I$[vZ7s[f{mVnEfƂ}Ԣ$I)I$JRI$)}Qw&\~3Q\ru$K{u*'W;o?diĔ@c6g</d|+j9aXeк_N#Ip;$XoNI%3$dTG!1c%I^WG]z'j>\qayO2I$E$I)I$JRI$I$$I)I$JRI$I$*7;GZUzowጏjJm$I)I$JRI$K016x4?z:uȮ7SZGIII$I%)$IH驔 :9\Tis,M |[__)g`k^[076cBGx:($^zmrud\;t.q`(#3)Hu$q1 1ugÍ{JjG-/5ʽO5 S._80<r?-%GsCs7.;[$9*ҫ>ZqI*7yn-@'>^:~%-c| 7 ;,?;r_wo}/?x}Ky_Nmܗ/k'KWkzV;>eL*cax~- Α)%D1"@}]]6Y|zLkd@ie*o~E >Ջv6ntLnx$JRI$I$8"X^d:M%Ѝ;xݹ{QRI$A: 㵭RR(֪ mثם{vDtI%)y{#_CWO՜C@oFֵU?l"8dxڤ>._B'{E[?'E/K"?W?)_'~?qh~S_B+c^v\ ]Wq7A  f FOr&6E_3b|"W].GϵJuW]@m{lKA {^u wa௹._A?W6-6Sx{wX:X1˘~ "ocw{Wr]j n`*@I$$I)~1+]r~1+]rۘH>Y0e=Gg==n}sկ ]OSc[!&Dv%I$z$=sKC 8IlZBJ{o?Ѯwu~JZ9/6/>JXu.} p-.熳l8Ykzۣ95{a﷪mn8ZK T-gǿAi叐h>ei{CZ։$(9=:"A v0`n]ȸ>$q9 5(~ ҼQ+#S ҋQ, 䗑>azoGA.}AMyb<zǫl{rQmLu$4n>K5Ieffuʭ`ĮD;_cߜ*]kc`45ht6cS4I%)$IHqh8:flX#2eZe4k-{Da%)$IJTo08̯{nm4|M5*RS4I%)$IJI%i-/aXn;InF12ۦHG~WIy<.ʑ/x]#b?wgJKͿwT _GWJKα"OJ =.Drr},7nLOiM9c!V6Uc?ҎGL\s֯iuѮY컙X;o⸵wlxƷ1%"Ƈ9<^XFPS$IO_m[I}aͻ18'F樂>1+]rۘH>cَW]k\^Ϣ؂%e-Ϯ5aCW'/2ߍMM~ML-8; #gˣ=Vk JٷdvɓϢ!Ư{͂\M{EXcTI"+#S ?׊Iv3I/$ޱ?b}wu#t!CcdU2Jrؖ0cG>PՆR깎6p=T??g?Dl6`+RI.`I%0q?Oxk0q?8pI}s+؟ڿ;TՓк}l~B(u P`-cZy<6%-ƚ`ZvǺ|F"I$I$ܫ}#m?AZI%9xỲViZO??uqEfͻb+%5~Ǒs6 ʲz}K+X6ƴ9JJaM_X9SUÛF+ pFH*s&BZLwC䒛)$JRI$[d3/i^-2_ZSgލN.vledc!"hk d1<*I+X#P6mu*kif˜z-o;$Rl-s(f i6Wnec76)<4W`MgP_BbFT7lK$U[ I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJA̡8w4}`sK2- 0<ÚG))I$$I)I$JGK*c6= 9D@åT>$mxYcRI$ "Ua-A)`V8XуM_X9SUÛF+ pFH%6RƯ>S= i2ƿ| [d3/iY]GDꗜJ:Ɨ:IR`1HȋҘ9#@ֶ"K?կWȥ1*oEX?t]/qV_7"p1*0Ƴ/1?WP':A1[U J>QWv\8; I$,I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJCcfEL4IDBɡ88ۘ[RRTI%)$IJI$R ;}.{E3O {5c i渵DIJI$RI$I%0+5\AecՏ?X$Uip{Û5^ΟsͶScI!G_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙q(K_LLȤJ쾙pK_LLȤJ66>7Q2+$VN9I$$I)I$JRI$I$*`dM/vӶWU-}fii >TB&\WCaHG}Bjkx@kΙWs0{\ f'zoO^7^MXטexvGV(b>~ى}=ב$߶bz/Ӷ5y37i-?&ϕ9/$J3UظY:s= ]V]xY϶NXh&4i>+0z]`-Z8/./ X;15 9HRyݣyoXRI$OX:V9y֯,^Jjm2/'E$U I$R/eVew-L C)gR,z}=% ~T$IJI$RI$0@|k{?(tY_ywDI%)$IJI$RI$I%)$IJL~ ;蟂J~pI$ l/duut[N8Kml}Wh#nΚҴV,x}a1hkgB<vHX[╟NbM.m?X;5?IS37?%K?p.WSl轭r?[=SUU{ ߠ|>_&o$ab\\Z+{D mvkqq& 4,KO .u1-=xO4F/Mfm`~91gC [1u4-?~b[U-e=]xqc<&v`qC7rN/>o$ܿaK9jykp1Wff#ZZ) 9uy]c[$Uն EˊԪy8UUD_YvܷȱRcomZCp{^lKGR[>e^IhwK?_%i%Q=I/8SW?_$ޭUw[.]O{wc֒'ah!/Is#hE'iѱ|~RV6s7懵t:Ȅ~Cnb|RI$I%5𪲚\u}{+8"X[^J2JRI$I$$I)I$JRI$I$&w?O%?8$KUl #}wU]N=|Ju,q{\9KNT7URŷ)Y.Yu?wSy_<|f H\Z/1*|M$%Xa'sIk\Xޭi,vVx]%|wթtc5iu7TCw~7vى%gaKq߹ ƴAin諤gkR,,E?YgMܼbBI$"{`N?Ew+гdb2LR 4( @-ѷȥ4z6?sK=g_GoK^tԾTQ-\??WwѩMkH~jq eDI$fu$I)HYT}m}j^ f4EUfKcio;LG%6I$I%)$IHvB6|voDAŠA&le#$$I)I$JRI$I$$I)I$JRb$$ [; j?}`IG װ$^b?ki]%'^_z}?kkk~к3oidWd1 ђB\IE"AaK _E8Է9:uA[(#$7 !GbKe/DIKس؇cw2?}_ K9;^;O ~[=3& #o;{x.$%d1$QPGE$J&E$I)I$JRI$I$$I)I$JREǷ!X@䆂>D;fEc;-c $JRI$I$>NH&-.l3nQޙu dWDS 6yc?:_c= <ݐ\)5?sT̈́Uq1;4'榒JCMl;'MfS배c?9OJGunck"6Z\T"Oȉ$ {kDJLmfxsQRILau^c`vZjw<4$Tlw06?GY_=H i$TuO?@9D[&7ݿ0JGu&"s X'%M$Ïm`s`})u.Se&k $zv:b}=7|9S{$:*fr2I)Ok?{1kYJGM֗:"ȓkܧO19GI%"SmV[3#s tnHTIH)uh's@R%?h4 $U9ݯāsYTG&|6ȩ$%O19;491#5$« X C%<0X?s:I) ׺i5?sTCz1>IHiM@4kܗm~s`$jfYmdOBjm74վ1@'9$d&7ݿ0Mºj}ݛt%'s$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$ endstream endobj 73 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/PannerI2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 80 0 R /BBox [0 0 410 124] /Resources << /XObject << /Im0 81 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 410 0 0 124 0 0 cm /Im0 Do Q endstream endobj 80 0 obj << /CreationDate (D:20080630124841+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080630124858+02'00') >> endobj 81 0 obj << /Subtype /Image /Length 6921 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 410 /Height 124 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,|"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SZ3!sX<VY5~.6V2)sf[2'Fikr cY𧺚*}kK,9k9iЂS_ʙn=ٿo}l69m͗z! oO6^KZ\^@$4D!$<\L\MxW;*6Iq$FIHi\Z{)N d/܋yk1m~ `iIL-׽-?m}caa}W-wm&?K+ )}ȬG{RIL+{unUoVE?k~dеGI%!jpk1Da,aSuz9 wI4R*nweǨXg\ k oiiZ#chs*}ck A ScnLז9$>bƓj?͵uEO&R#$ j n}2[Gm~jm-~='sd/JAnEռ?}?"Yc^ƖsG⦒JEMZ }/8zoz.}?۷vRj)GI%"*<|}GJVu8?4R ._mCk#?{ˁ,aFI%06) ~EI% ~EͰ?u߂>eOmah?{IH>1Fd\kLoqh]#]u/}2R)6ǚC['%vſI) 7k_m Yv<"ߵ?}?#Yc^YoMZ }/8zoz*I).}?۷vRj)Re/yb*I)V>TqsVE<5?}$$s|-<+)I$JRI$m>5ۃ Vcmn}ȬAchacjHH^si_?c>R3wEyIV}}}ȥ::grO}?ttϹG@^`^UΎs;"1s+Kʾ>?c>R3wEyI{CWާ>::g_}ȯ0I/hw*G@KttϹ %_z`1s)Ύs;"$ܫSO3wE/?c>W$;}}}ȥ::grO}?ttϹG@^`^UΎs;"1s+Kʾ>?c>R3wEyI{CWާ>::g_}ȯ0I/hw*G@KttϹ %_z`1s)Ύs;"$ܫSbcckp> 90ւIS褞DIQulޖϿ_eW%>_ !FUlr; {<̆~/K,5/!_Wg>>_ UԒ; =10^|A)*^?W#i.&۹psG5&#ǺnFIJI$RI$6s#-h~t" 26܃lnj֓VS/jo0a]SCOp?%$IJI$S&1\CDh.q**F,6 |i#HGܬ6r_Ske>ya}3D ػZ9uV˛X vN c;kiq0\V.%.YXݟsK-exkPEuKu89wzs\V%k%Ğ WN2\@.!L48VK x.7nRz )u gT Eׇ˫}R%q+#_rm[Ia!Aj켜cs=z`{J.B ^8yX ō&ocͮ$x!+cS4έ³%k,wV>QoCCnѼoxHvfK,۵4msu}{ LJi{CZ։$)b'^T:>6]UvJ@?I$BI$I%>???">o;RVG,tCqK{D:Xkr*L ]긖?~WC6 (5oȴ]6c84ʽC5ڬۋѪeӰYuk`TNF4 4\bѣͤp~y=C~{oϷcYfJ9Y/:s'Uecu&t-UU.clum?NI c-fŕ1pkCA'k{`IQ]V-wFkX΍M׽u&n֓ˏhS`qn},.,cuC=G=E =DNU#cBi_rN7Xc{D}3q4[` >d]p + *ql|W,uzVK8m[ʷ32h6gb~mngAMI%)$IHsݛn9{#*7>Z;OqxnD_ 6/jP??OI$sI$ɏ}gun-$ \>`yY4*[[ HiO~$RQl=n2llg U*s)mt;c;pw42IV{vVKn+{aʋcNTx n"^\w'wOpeWI*U&c!1kUppcmx}͵^= $V~ħ+$Xmy{^ndX%;FI$ݗuٖgOun׹ȃV_g}f^v dt@I*Um7{~{>w} uQ!WMn v^uPIVSۛu,Ǻl[1Fѵ Y]coSS|{5 $e. X %<5q(evee[vn J_g}f^v dtKfow1Ψ %Jݛ, Եۍad8CFߑ` /2XѬ5@;$U$IJI$RI$D(I@e7O*_̋[kَ׸V 2vrvּmOulٱ]ZM;@CIjPsGSX}.n,kֵA ][My {+{mxiyAI gofd[S7kp"ְL}t7ec97eaĐ֒o~%E$iO=I_T:?"tXɂ_E_ *ʹC8N[cDa)$IJI$R&ѷ*̙rW6:~~*ow)w]|7lʚI) .q?hc]uU*3kE.$wɡ{G1*]{NC[A[|KJ@!+\-qtWRMW]Y%$T:_EU1,s L$5*_kg*DyW55OkZ?pc঒JEC]?hwy|wWZ~wsщtR;>XgQc|ZǧY7^>~E4R ^ws-s~T;-g,s OFI%0) oCq>LeBeW]b45^gU1$ }i4Rʧq׾x{|CIHvCNC[A[|Kzj2*YcgjgJEU=s O$7 @ŭFd~]uy|TRVMFFGD솴}Ө>!DI%0Mk<1>%u?8 ZM,$7;-gjl3mOS)V>|7lʚI) .q?hhkbkE4vssO~TtR;dֽX#ȕ.sO: ^#XDRRMBBGDJdo٫wz,]J`qlk[lk\\,i~cS<ʎJAs9~TGS[Z`{\pc঒Jkm/-=K`ZVI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$ endstream endobj 74 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F54 39 0 R /F18 5 0 R /F51 33 0 R /F30 40 0 R >> /XObject << /Im5 72 0 R /Im6 73 0 R >> /ProcSet [ /PDF /Text ] >> endobj 87 0 obj << /Length 1871 /Filter /FlateDecode >> stream xڍWK6ϯPrYve{wIV%l9hZnR[T ekvs ͛;g54S& ÅR<`ifbb5dndڞ*9ZK^j@H<W'i^+7g-,\uD**n.淛lPFeɕ3Sk."f+,ػx:O䆾ey$31g_Vn" Xg-/"f`5~BJ2owx_GQd?LD4$^(}ڀZ8 67K[ъ='#­*6Y/X_/dAȒiMpC`ۙwMO\o-dљϛ°;7 O A^}qtvKNS3?/rLSCciکq\:)e=(]/+x"(UDxsUtXL#96/mEk%"su! <[b.EYs-u 9s&"o<:''=I5%ru"$kLB1ɍ=50\LlDΚ5h T )_r@y@>tnAfWUQjq/ }!rU|"%/:7՞~cz `#0 bP=:L[b4ZӵAt1Lw v.LU .?ha8V][ݎϽ ) IM!uҐO;d0${ET| cE.du!$*?L tq=bi;@F&ivsJQ%`PBT\PLpGX.Cd6 \ڹ2䮨 ojXXtlhLp̌XB'-q*L ъ0lHU+S&A'J~-ѱAs$) %XOԼ(UR?k˂fs*nZLDL(ae>3i>32g@2"W4 +0'w\ ,dǍ4Gmt}i|$ڕWW++⬍vAj+湩"o%*\N;6GRB[g%Kʬ&BL r#&CIiFdBE;ZOx7{IBFP?!b V zn[ &M͇kSje=Dw(x&.Z9t Ʌdw߭=1qmԾS##/W xXʹ.6BOz WbQơ%ok)REs [o#.x2 .or5ކGi-GF׭6'h߷DYz8H) 0` JBTO]~%W)m/HjQe樮 X/;CqX+Qo<ғmNa<` J#C\yiX^Nٵ8K~ kpSGh.4 gy?tvX m8/w endstream endobj 86 0 obj << /Type /Page /Contents 87 0 R /Resources 85 0 R /MediaBox [0 0 595.276 841.89] /Parent 77 0 R >> endobj 82 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/Computational.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 88 0 R /BBox [0 0 1006 635] /Resources << /XObject << /Im0 89 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 32 >> stream q 1006 0 0 635 0 0 cm /Im0 Do Q endstream endobj 88 0 obj << /CreationDate (D:20080703212411+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080703212430+02'00') >> endobj 89 0 obj << /Subtype /Image /Length 38408 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 1006 /Height 635 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;{"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IH3sj>Og\/py ܧcWSxsaiuoUv;K{\ GNq1־nFQus']%:Vi߉e}tq]4I@ks!Y,eT_6ej%fe`[,þf?֑^Ul;*ZXJNߎXַ|hS^edQm*$:l.kb+r~%X͖N[]*JRKa_0ȳ;$: p?FƳ}$餳?cYs__}I%:i,$k?~W_INK35?+I%SgI~Ƴ}$餳?cYs__}I%:i,$k?~W_INK35?+I*]/ #1d/@%gI)If~Ƴ}$cYsJtY_}I/$4gk?~W_K5?+I$M%gI)If~Ƴ}$cYsJtY_}I/$4?vfU.WZL]gI)If~Ƴ}$cYsJtY_}I/$4gk?~W_K5?+I$M%gI)If~Ƴ}$cYsJtY_}I/$4gk?~W_T3ُ읦uw5h撞%gI)If~Ƴ}$cYsJtY_}I/$4gk?~W_K5?+I$M%gI)If~Ƴ}$cYsJtY_}I/$4f V옶5k?EЮ~Ƴe}$餳?cYs__}I%:i,$k?~W_INK35?+I%SgI~Ƴ}$餳?cYs__}I%:i,$k?~W_INK35?+I*S:Eɓm,Ŗ1$?cYs__}I%:i,$k?~W_INK35?+I%SgI~Ƴ}$餳?cYs__}I%:i,$k?~W_INK35?+I%S}:LL&%$FelqʒyINK35?+I%SgI~Ƴ}$餳?cYs__}I%:i,$k?~W_INK35?+I%SgI~Ƴ}$餳?cYs__}I%:i,e`Qe/yn1& I$$I)I$JRI$I$$I)I$JRI$I$3ȴgկ3%i$I)I$JRI$I$$I)I$JR=l?`{oތ>ddbݑFInT퓹Ѵ撝Vm]S7Qux9ѫXsqn԰VVX-\X, Ď'Jw\[S㏝v;K[l24Ĭnrṵ> X[O߻oJ{4I%)$IJI$RI$I%!67;n#ѕk-|hד[U^ևWSmMlÃ`8xSׇ^nQ:f;q.7qU[cr!7[苷^ٿM0G\YP猜hk_i#Q΀O ]%)$IJI$RI$I%)X>=?6Ge}Ir5$IJI$RI$I%)$IJI$RI$\5kn{i(0FG:4I%)$IJI$RI$I%)$IJBȭ0xݨp#EPG{i$JRI$I$$I)I$JRI$I$y m=I80L'$I$I%)$IJI$RI$I%)$IN_Տ7EcM+Q%)$IJI$RI$I%)$IJI$RI$I%)$INgկ3%iϫ_f'K?"IJI$RI$I%)$IJI$RI$}id? 1u'c^mv5ѺH:pt]J?g>eֶkDh)2 Q-G8z@=F߫?'*͍s]X=2oݟ_E5ٰ4{>JFvNVd9͸VDh(nݠWsܟyޗΥsrz_}Jeoc_UvQdY][~Qs]EAiDvPO rQˏ{\?v*=Gn)pnc ~5f}A AX0WMy6WEn-&b[PD|_O|IX߹'9c}1Nؿկ]M̧Wsf=84uGMWw.zN}9fkm`5 fߢ'!|#x8lGI^RI%3I%)$IJI$R 'iT 'i$IJI$RI$I%)$IJI$RI$ u}I4GuK\GuKZxH?ORI$I%)$IJI$S_Y*_cI m/k`DD'^u?)ΧN;̽j 8 ?\ᤞG rFS$ݺ,s AVh,m&L\j8kK5h:jsK~*(t21$ck>Kd6ևic@lk$%Eyթ+Ze7F~NWߡzJʟz9?rr2 JGn-u=*{I_y$I)I$JRI$>'?SP':G))I$I$$I)I$JRI$I$$I)xt*j0xt*i)I$JRI$I$$I)I$JRI$aj;Ou5 cQ{i$JRI$I$$I)I$JRI$I$6kƇ^a8&\f4:qJ]$IJI$RI$I%)$IJI$RI$XqYV?RI$I%)$IJI$RI$I%)$IJI$RI$}Z1?Y&bij-4I%)$IJI$RI$I%)$IJ^1U^μcs͏s-%_sI%JI$SI.rI.lc#8?ORI$I%)$IJI$S_Y*G0??.qes?~ $J'EuߡzJy+~w*'иT{IhZI$I%)$IJPx|ʚ>'?ILI$I%)$IJI$RI$I%)$IL`XsSPy7XsSIJI$RI$I%)$IJI$RI$ j;O⦡a9F=S4I%)$IJI$RI$I%)$IJI$S 5cC0jXa3ba8I$I$$I)I$JRI$I$$I)&Tɸ?Ej$$I)I$JRI$I$$I)I$JRJVmT c3=k%f{](}p;`״盧:\);7B;[zmKӰVXi{6mĎRS]hn5: s,i# M%9VO~E>ɘ,M%)$IJI$RI$I%)$IJI$R}cs*ǿ*c_Ig=I$GuK\GuK[H9FoԒI'0)$IJI$RI$Wlf˜Y\{߂0̩$Q:+V RW[3_IVy?~kݤKEԒI$$I)I$JRHT Ocy))I$I$$I)I$JRI$I$$I)xt*j0[I9Щ$I)I$JRI$I$$I)I$JRh5*jk%3I$RI$I%)$IJI$RI$I%1\f4: Ơ&kƇXN5%.I$$I)I$JRI$I$$I)I$Jrɸ?Ej,n?OQZ)I$JRI$I$$I)I$JRI$}uWC^7$or|0>=@d k̮ fnw$~_,으/LԵnG CIٹx!U^m 14f ȬW1,zJy?Բ]ek/ `{$mԎ5$Jy﫸ɨ3a 4v_\;ΜwYVO~E%üχt~túI)CKtúA\;ΜwSI%0Kyӟ%Ó:r;wSI%0K&tú@?IpΜIL~ɝ9z@?IpΜM$.ӑL۷u4SrgNG޼kΟ }csnsůdKrI$I$J};\ ~K{&t?]JG>q3sÔ{>9SI99P=ßCxsχrJaχs94S?_f3*v.utY*W3 >G*I$NfU:NJy+~w*'иT{|?7ß(|?7ßM%l!994S|?7ß(|?7ßM$ßJßSI%0|9Tx͑Q =e%*ßJßM$ß(|?7Õ4SsÔ~ΚvM$s9Hӷ*i$?_pF9Hӷ*i$?XpF9Hӷ*i$?XpF~ȍ;}i$Vo% "5*D?XpFIbO΅M%0!Ç"4w9u4S8r#N~aÑp;SI%0!ÇhӏaôiǏu4S8v8kѧ=IL~4ǺD<8v8J`Cѧ=!aôiǏu4Sf;FxQpKcI*1'JQ3N<{8#N<{aôiⓃÀ4SI%0!pq꓃pF~*i$3ӏTwCӏU4Sf8<8#N?4SN3M4SI%0!aÍ4IaiM$;CϝS 8jiԬ0q )3iHp~4Sp~ypM8?zI)8Nޑ3iǕ4S8qR!ÇiM$iǔ~ƚp|ySI%0!Çiǔ~ƚwM$iUL|rkct[SZGLƓ'ię+UeXqIJI$RI$I%)$IJI$RI$I%)$IJI$SkLgZk3ȴRI$I%)$IJI$RI$I%)x?W;={:w{6?)~aI$s)$IO$[T$[T䏐|tfi?I$sI$I%)$IOf˜]lŕ;'/OTI(y+~w+]ׯɘ,M%)$IJI$RI$I%)$IJI$R}cs*ǿ*c_Ig=I$GuK\GuK[H9FoԒI'0)$IJI$RI$Wlf˜Y\{߂0teI$]wg^5ߡzJ;./dp#^$Z/I%)$IJI$R Obb<5xؘ>e%3I$RI$I%)$IJI$RI$I%0{LI9Щ<Ú&$TRI$I%)$IJI$RI$I%)Bôsb{SPƣXOILI$I%)$IJI$RI$I%)$ILl;Z1'qu@IKI)I$JRI$I$$I)I$JRI$n?OQZ/STVJRI$I$$I)I$JR`eb}bƣoukED{vvCI0:=¯#c/YmBlfpqo}IOhMsnpDn=)$I)I$JRI$ϫ_f'K?"YVO~EI$$I)I$JRI$I$$I)K>ʹ ׌}csnsůdKrI$I$J}?\#:Ԯ[\#:ԭ$|7IjI$I$$I)I$J|`6U~\gU_,g=2ID讻[3_I\?o%Y2vI-RI$I$$I)JnL5xJfI$$I)I$JRI$I$$I)I$J`bO:5suɘ,M%)$IJI$RI$I%)$IJI$R}cs*ǿ*c_Ig=I$GuK\GuK[H9FoԒI'0)$IJI$RI$Wlf˜Y\{߂0teI$]wg^5ߡzJ;./dp#^$Z/I%)$IJI$R7{ؘM@y򒙤I)I$JRI$I$$I)I$JRI$Rt> U0qicek$H,yW~ef}Hm|~ItNNFVU]&̓pՍ )Qֽ95RIM|:exel['Ӑ/5.k0 ktn75﫷aq0)f>pa%;.ς1ِ56G,v];J qkÁc5ڂ|^Nvakm696Y鲷q s'ድd;.fk{[@ 'uM3t@% y+;-Pnn@ =6x]*Js>ɘ,MsWl6 =6A6;ls"~kt w~)JIF$$i($$ ;οth ;οth/@νF)JIF$L۷d%_ɝ{v/@ν%_ɝ{v/@νvIL׌}cs$L^5jgOw[lx;k/RÞI,RI$OHu+;d~׶ӂ4olc#8?OfM:J_rs4%h9߻ILP|7)~RS4%J_9߻ol}65TkܹՕ;'/OTI(y+~w+]ݳ6riVy?~/k$/oRϏܭfsw)K>?r/oRϏJfsw)K>?rn1R|7D͑IIRP|7)~RS4%J_9߻%_w)tS4%9^rD]"5$i(`t׷ܑ/F%_Κ%9nS4 ~"5$K9nR-xЩ%! ~"5߲Jf/FHr#^$i(`Dkۿd~"5߲Jf/F|/Jf/DXkΉ)JXkΉ`ѯ:$i(`ѯ:$K;F|蒙XvcQ~hns m <RT ~h%_tILP%_ˢN/%3I@vy蓋;FΉ)J/D_')J/@^~:$`)ʹ ׌}csnsůdKrI$I$J}?\#:Ԯ[\#:ԭ$|7IjI$I$$I)I$J|`6U~\gU_,g=2ID讻[3_I\?o%Y2vI-RI$I$$I)Jn*j7 $IJI$RI$I%)$IJI$RI$ D' 9' JRI$I$$I)I$JRI$I$(Xv@j~<|,;G j5>gi$JRI$I$$I)I$JRI$I$6qu=!5kf OdPI$RI$I%)$IJI$RI$I%9V?_Տ7DI%)$IJI$RI$d? э]6>2戝w.Cqǯ:~nу?s>BMmTj{ݸ{Bnr:OPUll I$RI$I%)$INgկ3%iϫ_f'K?"IJI$RI$I%)$IJI$RI$X\>ʹ 9w?_9$YdI%>.?oRW-.?oRV?>Asћ5$I I$RI$I%>U0??.qtY*W3 ??RI$tW]ׯ wg^ ??H׻I$ũ$IJI$RI$ 7 5x8&;JfI$$I)I$JRI$I$$I)I$J`' ;Pbfk,AoD J{I%)$IJI$RI$}Z1?Y&bij-4I%)$IJI$RI$I%)$IJ^1U^μcs͏s-%_sI%JI$SI.rI.lc#8?ORI$I%)$IJI$S_Y*G0??.qes?~ $J'EuߡzJy+~w*'иT{IhZI$I%)$IJPGw ;JfI$$I)I$JRI$I$$I)I$J`' j0[x𦒔I$$I)I$JRI$I$$I)J5j5JfI$$I)I$JRI$I$$I)I$Jca &cBJ]$IJI$RI$I%)$IJI$RI$XqYV?RI$I%)$IJI$SƷu,}uH5]OOtUlǶ̑f*[ǕֺHm=O*}tMmemr9Kq쒝ĒI%)$^hT$4\KCZZ 2JJm$uZr}>XcI]k/m. i:K?N粗;{.cߵ;k0|VJs>ɘ,Mf}Z1?YJRI$I$$I)I$JRI$I$/*ǿ/g^1UUݒe/9${%$I)q$Roq$R1s'$N`RI$I$$I),Ws͟Uߗ8dpaʒI%?o%pkC;ԕgw\_GI$^-I$JRI$I$({1߶j1ߞRS4I%)$IJI$RI$I%)$IJI$S-} j0[x=<)$I)I$JRI$I$$I)I$JRh G?5 ~))I$I$$I)I$JRI$I$$I)k\dSN5 ;X @:q )tI%)$IJI$RI$I%)$IJI$ScM+QeXqIJI$RI$I%)$IN'nիmnMi3elftΥMobknh4{t$-zXDW{0SgXѿGGumKX^qo}RSؤI)KMTV3-8YkwK.kuIVen5v?"ڷfnjh}Nkpk~kjJ~QfnEsK}q|x]&&pѯBaۏGQYh;꒜UG.ΫLU4g~#{~hӕatl.lzqKH]IO=w#<`b5ՖzloJKGy׏?ȴS%s:$ K@uòI)/Z;μxvH-^<;)?Ih: _rg^<;)%: -ׁ۲I)sL -ׁ۲I)/Z93H-ׁ)?Ihμݗ}b3;X\[o ůdKrI$I$J};\:K`OxO{G>=x\GuK[H9Fo?OhǷ n~ϏoN`a/ϏoǷ i$<%/ϏJa/Ϗ|xIO$dG:{:?,Ws+vO{_̩$Q:+WITm+]ׯ=xSI%0o%G:kDž4S 9^<$KDkDž4S_r#^<$KDkSI%0%G"5$KDkSI%"@oҀ B?"_4r#^Gܓ}yw:v>C$XhF%G"5wϨNϫyvǻss[go?/+KjsY[@NIOJKDk%G"5\~QG sP>6,kY JS_4r#^|{$\akϏe4S_4vy/ ^|{)?Xh" ^|{)>7= FkYOXaS(kq|IM[ĺJ2>RSۘl9{熹QIxh:i'\O"ZɭZZj-=eu*[ik즷8%a5p/ i'SI%0.~ƚ|8HGkM$4דDXhM{pJ`\a5E8^)a5©ǑN5on\XxOMߕ^I%9_Uiv%jn?OQZ)I$JRI$I$$I)\y׹84?:dk+si&Pk^u :ms򺎼_~= u:non@at܌V ]p!/t{$Id.2SI$I%)$IJI$SkLgZk3ȴRI$I%)$IJI$RI$I%)x?W;={:w{6?)~aI$s)$IO$[T$[T䏐|tfi?I$sI$I%)$IOf˜]lŕ;'/OTI(y+~w+]ׯ.WQv=y~?}]n2]z[ywgUo9genk0'Mrv6憐{I\r ?\nɃ\_y ]_kԝKzmAޛn~eӨ. ;XK?2 {inphwZu{Huv>k@pf9WL1/;}ONͻv [-+âX Lp9{5ۣ߆= ~n/wԺ'ծFclv&,2S\5.Skcfֲ݆[ik+k[h}^[Wa-5"  |[$0 ѮҏY2=<-Ο얳2SEr v74C>Pu[ XL7^[ 8>k{,7 l"9~+e(nɘ,Mf}Z1?YJRI$I$$I)I$JRI$I$/*ǿ/g^1UUݒe/9${%$I)q$Roq$R1s'$N`RI$I$$I),Ws͟Uߗ8dpaʒI%?o%pkC;ԕgw\_GI$^-I$JRI$I$(GNSP'ILI$I%)$IJI$RI$I%)$IO3^dxd$zo{y,xLLncUn^/}*Iwƺұu_CZR4W . )5mwlmΙݻƧDmVw鳱?kܥRi;@!"$iϸ/g:=ewe {%biܚ$yzOR峓-"}}$Zo I%)$IJI$R,09QMB5RS4I%)$IJI$RI$I%)$IJI$SKԕɩ@^JA;Fſ~Np~/E)4h4 _]Vm$Y~zv|*G;n$G >X̷Q }¥b8{rG#]77v> 'ep]w ;Ff%O<iߐa)H#ʽDߧjl?*"2QktI%)$IJI$RI$XqYV?RI$I%)$IJI$RI$I%)$IJI$RI$}Z1?Y&bij-4I%)$IJI$RI$I%)$IJ^1U^μcs͏s-%_sI%JI$SI.rI.lc#8?ORI$I%)$IJI$S_Y*G0??.qes?~ $J'EuߡzJy+~w*'иT{IhZI$I%)$IJPx8:~w #%3I$RI$I%)$IJI$RI$I%ɘ,M%)$IJI$RI$I%)$IJI$R}cs*ǿ*c_Ig=I$GuK\GuK[H9FoԒI'0)$IJI$RI$Wlf˜Y\{߂0teI$]wg^5ߡzJ;./dp#^$Z/I%)$IJI$R'5}HD$IJI$RI$I%)$IJI$RI$;7 wo0?݋w;ů$)$U-ϩ?>xԼh[ßĒIj~I%)$IJI$R,09QaMB5JfI$$I)I$JRI$I$$I)I$Jiu?/"N߀:oI^'_o~EK?W]$TJ6)_Ȍwk27/\?*"2QlhI%)$IJI$RI$XqYV?RI$I%)$IJI$RI$I%)ccZ$5y8Vc sm;6YwII0rMF6onx鄨YU>*{ [3:)Qmyp.`T.3-k){ٝ KhZl%)q3hϯǵ2csasWfk+Smv5!.v |t+INgկ3%i{T{01+A-cu #%3I@XL{H[0??.qt__ݻۡkάg=2ID讻[3_I\{7BfʆY1xtxK?y<-ftxK?y<$i(zO1焽CJftxK?y<$jGOr[c þ#4IIXnn0i9 k|Lweus VZ]hyBO~h)2cH ` Zfd[L9`|SѤ}FïxILPv#a<焔%'yF't vILP6>ӡ|^DN򒙤^DN~R/"}Bmg))wo0?݋N>FH+;pu_I*ԟoozz[_Rݷa'[4oRͣoגP/"}φi1φUi(i<5 R6>b<5 RS4 O gTO gT%a&#Y'XDI|5IL,09Q$l"}xk>ah:p[A8%%I@DI|5ILGT%XFi15ILG RS4axk'XFi1F RS4aq5Ik%3IALxF RuDŽk%3IALGTani15ILPuO_:t~[-+-Ƚ0m:Qg/?"mo??j$ PUߑMBW~DcYtO1Wl[b#]8i0'CU4 O_!F'L %3I@DN{kF't_.yILP6>ӠsF't_.yILP6>Ӡsʧߏa`ľ#ͦGR/n?OQZ+1-&#RRRI$I%)$IJI$RI$I%)QTrCZm{w7i+$$YòSiֹp-{dz蹎.0ϫx Ƴչ;s˜X^NI)zN?JkCL۞8w8tWI%9VO~E>ɘ,M%)$IJI$RI$I%)$IJI$R}cs*ǿ*c_Ig=I$GuK\GuK[H9FoԒI'0)$IJI$RI$Omf˜Y\{߂0teI$]wg^5ߡzJ;./dp#^$Z/I%)$IJI$RnsɇsW&58[??ZnIq2ޛ,y޴z?Y)mV@eZ#t~2Ol_k){^`͔6NIW4%W4*~~sKd?}3gW||mjMisAUvU=U>ʍ-NdžXF׋ }|y_7З_7З߇_[' kTיΧvցGzj~DyS.. mũ$Ok)$IJI$RI$;7 wo0?݋w;ů$)$U-ϩ?>xԼh[ßĒIj~I%)$IJI$R,vs? jS4I%)$IJI$RI$I%)$IJI$SKԕu^J:~*\7V??j$ PUߑMBW~DcYtO1WpeE$I)I$JRI$I$/STV&TI$$I)I$JRI$I$$I)I$JRI$I$3ȴgկ3%i$I)I$JRI$I$$I)I$JRw{uX\[lx;k/RÜI,RI$OHu+Hu+c 9I$$I)I$JRI$*͟Uߗ8?,Ws+vO{_̩$Q:+V RW[3_IVy?~kݤKEԒI$$I)I$JR' .ס<pC5/'G?x0D4&U&2z#pC;xPViesXL48(nA%hi?Q]Y}q@Q~C"eG~;,.8`8DOwFvzS@ϵN9&8^ُ/%+?ŧw?m^9rN0O|bEF< }"I)$I)I$JRI$;gA=ؼz?{y{/C$J'[ԟoozzv>mspI-WԒI$$I)I$JRnG_oFAb7#-I$$I)I$JRI$n?OQZ/STVJRI$I$$I)I$JRI$I$$I)I$JRI$ϫ_f'K?"YVO~EI$$I)I$JRI$I$$I)K>ʹ ׌}csnsůdKrI$I$J}?\#:Ԯ[\#:ԭ$|7IjI$I$$I)I$J|`6U~\gU_,g=2ID讻[3_I\?o%Y2vI-RI$I$$I)K?Ƈ/^hI1ԼxEI%I$SON.ڽ-y֧-^qI)$I)I$JRI$;gA=ؼz?{y{/C$J'[ԟoozzv>mspI-WԒI$$I)I$JRvs? jqۑ$i.c^N -^ z5/` 5ռtcmuk1{iP΃sHI`R]2m4Xq2G }HoSnE94$JRI$I$$I)I$Jiu?/"N߀:oI^'_o~EK?W]$TJ6)_Ȍwk27/\?*"2QlhI%)$IJI$RI$XqYV?RI$I%)$IJI$RI$I%)$IJI$RI$}Z1?Y&bij-4I%)$IJI$RI$I%)$IJ^1U^μcs͏s-%_sI%JI$SI.rI.lc#8?ORI$I%)$IJI$S_Y*G0??.qes?~ $J'EuߡzJy+~w*'иT{IhZI$I%)$IJ^y4?UZ5CN]Uy߃/I,RI$ZwsVk?ŧw?m^9owIL)$IJI$RI$;7 wo0?݋w;ů$)$U-ϩ?>xԼh[ßĒIj~I%)$IJI$R,#9XSP܎xa%<\Lޠ\K.e=}Mnʷ`,iݯẙKeF,G<5kϔul.y4Ӿv6bcq_/u]鰏ijayh5 J+77+FFeLsSݛX};wik{#ab\{i#eoi2d) m9sN湮G $I)I$JRI$I$[-+-ȽԕuTzo(~I%Io"Ϳq/rub7# 1WI$RI$I%)$IN_Տ7EcM+Q%)$IJI$RI$I%)$IJI$RI$M IKe:Js>ɘ,Mf}Z1?YJRI$I$$I)I$JRI$I$/*ǿ/g^1UUݒe/9'LI$%>.?oRW-.?oRV?>Asћ5$I I$RI$I%>U0??.qtY*W3 >G*I$NC;ԕV RUOߡqi$x$I)I$JRI$hIk?Ƈ/PK7^)$[ީ$IO[-?;jS KZQxOyRI$sI$$I)I$Jx b;7+;pu_I$guKsO==b-?//{Pq0mka`o(bt +f%LmmTYe6Y8=X=&\\̓krMikSź=S԰2hdPk_[3%5 lkFsV>;vzo l2=Mܫg]ac+Գx=۸j>. ->Ρmv;[մ /Gsi⒝if;]m k@kZѵkt jv6րֵkZRI$I%)$IJI$SKԕu^J:~*\^+otIRz(_Ȉo"1yK}Ȍ_oF[/)$IJI$RI$I%9V?_Տ7DI%)$IJI$RI$I%)$IJUz-ٔ/h῜<ZI%< :ͬ 1q-{trkN=b1vю%/l?u;gkWoJ"WYm.]-'gdeǶ^C0[w 蒚S3,4mn1;9"D9p?}ͿJr.ٷ 6I)f_lZ$/r~ \oAj$ˁm%9p?}ͿJr.ٷ 6I)f_lZ$/r~ eu k19"!1^Ȳ]oJ[Mvۻm`;cov!Or㈑11xGwgE7r=՟3ըS1%kױ{{~|;9_j_aVWܡܫS??Jz_MrEհ5Y0ifIYvp9g)#/f_lZ"f_lZ$/r~ \oAj$ˁm%9p?}տJ|R_Ua*%}wgE{F~M*:@ a1ˈ;tΨ]e7V1 2*9X䑑'Wc~S p1ݾ9wgE/{?+RM;OþÕqȮ_37,e6M? $\qK5NG/r~ \oAj$rˁm%9p?}ͿJr.ٷ 6I)f_lZ$/r~ :F+YmEVh\Y!BYCKpk@\`Jl2Dgyr @g~ÓqȥwgE{LlKLAhrr~g?wgE/{?+RKPU)xKOJ϶ܚM{L}\oAj$cs` Nh\oA/ˁm-Dˁm%9p?}ͿJr.ٷ 6I)f_m[Z$*ؔW-ͼ8f?Cą+mY^:?K6 g.?'g}i̶_]:zM4F //rG8B@ˋo+mYK9_jrr|;9?j0:-sfl5+N)HH39g Wn_6fIXqˁm%9p?}ͿJr.ٷ 6I)f_lZ$/r~ //lZ3ѷk4u $@ o޻p[l_޻p[l_맫=m4M=Zӳo;ݠ$D|?lϜ޻p[l_޻p[l_ђK_~\d|Yu6 ^(Z@q]wVI Me 1$̗/r~ \oAj$9p?}Ϳ.ٷ IN_6fI%9lKr~ Q$^[UcZ6jKH/+fPkG"afm" ^9h4.w‹.'F'gc.:/ÓqȥwgE{{ F;CS??{?*7`e9Zc/4R^f@o *5lZ+N 9p?}Ϳ.ٷ IN_6fI%9lKr~ Q$\oA/ˁ-DSigMI<VI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$gfMp .pcw=71}U]6I0Kd;itrpfMc'"dzMC5ۡuNE+e0a 3s@궛/{,~(擶=Eۉ&aӟQĵڃȟ\l쎥ci72MsvRS$ޙ~F7Ec>Z @m`omt+cuFiO`))I$RI$I%)$IJI$R-!e6+v:-Iu(yVhs \#:뮡#& mJ*05PW9z;~ ɾfgR</ ~5x]`pk )U87ۏ]T7I$$I)I$JRI$I$Oiv59pVw֏xNk-ni:6S+"W1y8uؔ54FK4ߤuIOKMD"uMpo*@MMXv3$q]MYtl1G!Ѥ蒓$I)I$JRI$I$$I)K8ɮ|/e\}@b9m$8ң}^1s\}5=𻞋v^F%vf02Is#f7Rf<{Ϭ]>ouLR]{1U7 ۝cGn7WCkڜ};qn)T190 9_[i$$I)I$JRI$I$$I)͍ӯlӵCCn%r]s dTVF-s]UiӸ2պH̻,K=%5~;01t}V]u/mu4;[̱m{2y%,'=jךּ=7w=_82K\m$|thRSI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$}]ͯ:Tn7=9hoN`x/pwYs}z:E>Nݡ-4))zw\ǣ c M3pĹtX9VSuV-7=4`ӲҹzeU;ĤI$RI$I%)$IJI$R^h괺niiGJxN쮏`Ʋ#CYs߼h|8ukʿ+$ @ܺ̌j۲Ú'W){(ihfae`))j.,ix$ C^8\'p,"!;ip8_פ$I)I$JRI$I$$I)>uVS[]s\1y;O5/ykkju]:ƶ;ACHj.-p=$tW++~`"Oc?t.sP܁mN!Dk/P"\frwKG;撞% X쩑`uI)I$JRI$I$$I)I$JRf=BQ{~iQIOZV\M8i?hخfF.nYf=Lyp879ܴ VGCe}-#ŏ#`?s`.FȬaub5S/@')EvT^K=wG\dv>VN[l4dCI[t]P2I$RI$I%)$IJI$SXܮct<*n+b?z跹u*.c^! )zUv67"ch2၌7.wcWzS[̳EYWe.ЗuUXAxQX{rZi3q>:\}w)RP^59A i)I$JRI$I$$I)IAINMUq sN;k>%t̼Guf̦199%=Mү^cy48DsY0*m"ܗF5f\Z?wDS̊뱧KА!yR}cVTdǮ >0,Te49):I$I$$I)I$JRI$9 vAfVx/캱A-T7]c\KID=Sp*UOc\[W[5v}'mZT33:uwY֗=0N?-T~tuqici#sK>+3?Pc`ɵgw`>ޒ$,|A,sI8;$I)I$JRI$I$$I)Wb6%-k-> UYa5ol y-eu΀i-˨ pL9YOdYUល۾k8-<]G 6dS,íʛGtK{1 U t?С'=]6']̠2*,w }!:9INI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JPuJ,nl K\  b "]MYf:_EZw{.24FM#} m_I­?;ltkXInDT)F¶tm/ww;IMI%)$IJI$RI$I%)$IL,4i zE-nݕ܋s0lw:ڠ]FK,e1ͳC⒞WuOn9ss};ˮ^ƾ5Cd\6A-ﶣS[@I}@[Jv_Nul:u6pk[ )RPi=Çy覒I$$I)I$JRI$ ANJy.̇ߎ +c]W{^8EYy-e$6  =dxrmعéP2S[ыM%=6m=Bua^Ffwk}^aivk 07긶UMoU^5IMI%)$IJI$RI$I%)r[q׊?F`mJ[ߘ]zԺF'X`fUM4șȈ!%<f y,f.3̋K FAmlnid+mm.s6y#߉[ p,c@UC+1sh~!W}'dnN@cNe%=HYak71n{h()I$JRI$I$$I)I$Jqz\ng_e{}v1FXϘrWYoN=M$eXVܝ>X8xF"D.}T0r-OnSuٽXl탣*zF7KceQZ֏κ$΍jqOȫ [SfP>⒝TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$Rְ@/NuC%^{ Ȁpemhp=uUmmIf 懻] G.6m.d;!ޯ>OZamǯu+ hu :H!%=J=C!cŠ 5 I$$I)I$JRI$I$V)}8[eY#mmsa!L5OLXX2lu6Zʴ[sv&1ȕ}f :@3sѾ76\'%=n?PXٵ4X@3:uNhkc7d+픇%h3WiWPLƇ4III$I%)$IJI$RI$ppfENX?I_򧅠J| CgKr2(eq~^>5v}'+ˬ薸}W%tz,=ך=WqNq6u*s UR>džb-y%>}RUsHs8Cc 9+i)I$JRI$I$$I)I$JrzJefޡ[[KS?%Ѻm-Y{/m ͺ5,}-[?o/3hEOJGҺUqXZaޛ{\gMJ\IvяC͟DRp|E>zUQ m?Ι>C))I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%-#;*\Q״2n.+I%9W>Qsa/lJٽI$$I)I$JRI$I$$I)I$Jy.߇^]8tnnMV{EKsCk BV0zFE0xI.~e`8e v}D0O I$$I)I$JRI$I$$I)KWݾN뱎 \$ti$x3i8Ւ^He{:A>hUz7[]KNa:Û+t^]1>+%i@.}??L۩fژݬsX\ֻtJ{Tf \lkO8Y0AZi)I$JRI$I$$I)I$JquP6ma}謙kW+k;ղl#\Xi,i2 bdȩƵ,kG~|;4%6_Y[e7T2k|[Z ǫ=%a`ncn,?y$K'Wrއpq͆ߏIMI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\Y,Fj{sF٭ DBJ|:kKYьhݥJ:g[Xdz5z%gxYXz\{(ܪ`kdR%t AV8VT_m`bbTZڨp;d Od@EITJOƹ9{!k JRI$I$$I)I$JR^%9>LjsOh$}Xuq,sk`5$2fYc-=XILmLllhܙ~X}ޣƜ~nU&Q{ ]]}c[њw -d8ˬ yZ)I$JRI$I$$I)I$JRI$nyTM{kuPIu[\OSϭleTUEōnE[Ip|zy4d߉Pofp0'ŲINKIsXmmxsqtW H G Uhdz }vom6F1ĭT1h4hJHI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ endstream endobj 85 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F21 16 0 R /F54 39 0 R /F19 7 0 R /F51 33 0 R /F26 30 0 R /F18 5 0 R >> /XObject << /Im7 82 0 R >> /ProcSet [ /PDF /Text ] >> endobj 92 0 obj << /Length 486 /Filter /FlateDecode >> stream xڝSMs0+4=II 4jdx+!:x}+nl6Q2TP04@Ae0syZs,XU$r 44US͉975>ڸsT~KB9EoW 6hn院:f-:€*[=+ 2ФT` /J^̌k<'/jW)Œzd1IxAJyif]Na[N`<,Gw~*j=džrQXI&>tc ֮x>'aW"wލ*;-ֹ:69>b%•S߷DKa3"VO&BRAGIYsLaogƒ[B\4#SW]㛮j,=/cctO]n~.0L]Dt}q/{ endstream endobj 91 0 obj << /Type /Page /Contents 92 0 R /Resources 90 0 R /MediaBox [0 0 595.276 841.89] /Parent 77 0 R >> endobj 83 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/Fausted/2SimplestFausted.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 93 0 R /BBox [0 0 652 295] /Resources << /XObject << /Im0 94 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 652 0 0 295 0 0 cm /Im0 Do Q endstream endobj 93 0 obj << /CreationDate (D:20080701215920+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080701215944+02'00') >> endobj 94 0 obj << /Subtype /Image /Length 31306 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 652 /Height 295 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;'"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)%_7?.s{l{.]U5qNt .U7'| Ik5p!"A꒓$[:98:̵{K^5 )J=[s\ٴ9 n1| )I$Hvnq2w`XZJRI QX%+'sMc/x )2I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)uOPΝd7VZ} my`/qi] l<{mv&CmIcI%<~'Kcįt2G֦2͗:ׇ鮶wY[@vպ2&-yԻ0f1'":̋&8i$ӁԲ~FelW> r1m1t=9]gdo/chu4@qnC-2ޓN'դ?tޯ_R:jȜQ{]uտ(KnhvkAlu>ӺNoOh^E85[K>߉Ux~UP̗>>Hd4^Jy|N}Wf 61nIȾM4<Ѻ-XG8{^ >]k~e~i:4SetL`[ӳ2í׻R_msj3ư7#k\17.gB?'svV [\׊i}mn;iiA-wFJq:OgFtr,ǣ3 iu699| m$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)%G ^5NٔO6:np3<䔤c][K*wj[`n]`-70y+)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$}a39ml00kw@ZV]c=]YgX lc}yt*zkƎN;mʾK zͧZv Y:yOQc2-ﳻfSٿh~cTUt7>^oΓKm}S.eXac> aCF6R-1vUfu̚m5ncʜenu\X=gz:Y5kl5kIvMBJo$ҫ*,ž暦 sH[6zk--5cݒ洒KN0c(SuY2j5ZhA Tn[YXݬkU5oǵd蒛i*=KN;-ݕutvU6t33-7"ʹnֵ5Jsf\˃}m%: ,3+.q1ʭմǮɟP'%zwNScǖWe,ͩyh롁;Jc[T&~C+Ds۸ RSzN[K,ukC AuOkϽ֒F]Z:-eqxeTv4T0{}JuY9_Yf.V6)kv]6cݕ[i]>:OKgY%)$?^Όqǻ'+)k{Z;$2F/N;\rnĦjvWN(kXGa`苛0p-]Yihy5=ZXZvIgum7eBZO҃3+.q1ʭմǮɟP'%$~uhYl qe$k>A4\#?ce~5gk Wl5$KeL=έKHls#Ȑu.OM8;vUk+mT{wqF%7Y{tܦ`]YMִֺUVl˚podcE9ʧ8׮[&MoZ!۪JtTOYޫieb:MvZ(ah.y]PWnmnU9Y}5M`TIFDRI%)%׾3:jpm-m9euֵ@l/b,&Jo}fethŏ{\)IQ8.<׍vKHkj,-;wD G^>̟Zϱv_,?eݭ|(1INK'+7L###x˦L{um5CgIlt*eYe5 q϶@ %ŭY%?ce~5gk Wl5KeL=έKHls#Ȑ EzZZkǻ%i$5n5V`#zwYcuΨ]Z }ls^}j4$Kϭ]*pkrn~)͢|[ikJ:O4?:%c;tΛ܋6S)Z֐׊*߽͙s[. T$ӽVkvuF쵶P]ScoQUWJ:ܫshj'ҩΓ#OΉl; *fıX˧Ulum۸#LهCYY1듵es8].ȶI$$I)I$JRI$I$$I)I$JRI$пlo>d7wN/nSo{r:oPFU8nח;ڲ* ۑD {IN>_KWu NUضc=bYc^Kx ̬M 1QWc^>V=v 5i{nC`Κ $3/]n&N6kƦWelϪKxk}664K+eX8yW럊zcq-n-mL4 Ɩ5ΏqkK@ۏM$ޅg'ٿÿoq~vz}ӕefW2Ixs9w6 0r^*r벾7Uh`8d{4yIH:Q8׏F١4oup5ݦ"Һۍ]ߏN6kRms_tVOGMfuspp3emc[\roƧXh]'Չ|:곩nM(kx;:PVKtR]#]krK1Ŭa9; 샴 ןoPǶkǽ4;!:X+-3{I3{ONFoԲXH̛<^ @>O[XՏh}aȲme`ikjي*ȈzpYuu<+}och}b@nxFvY}C?>8"\ֵ92L }$0pc1sigKvnΩ;_R>WX9]3 j:[^YOvir:3[lzr,"oCֵ۷LѭzzP_^Zkcmn~.Fdc[ ORSzL٘y8Y]ˬ5A7*nG=>oղ2~ӑ^7?Qǹݕ~z659>(ُeWcFU{A.+gU_01ʻ|v3uLnUNg.wo:$uXx}6bՄ31e Yp><;k}%0pc1sigKvnΩ;_R>I%5߃^>s+n1uOsKC@G Y8]<{ꝣsO!$:oPFU8nח;ڲ* ۑD {INM3Աz31l;\ÌehhCCd3]$nWH& {:wO ޣe u07}vۋp'Nޭ$cӫNwM==X@qAٵ9Ya_C 36tW`61CinK5#iSWX9]3 j:[^YOviI%9=_u\<,|f`oc.}˛GeG#u~z659>(ُeWcFU{A.k$gU_01ʻ|v3uLnUNg.wo4V+Ma5sH-c-\ŏl6FJpq~ .\~]۬s}y,pԏ5^>s+n1uOsKC@G I)N&.cyt{mhycHFI$eޡAGSm׏{rhvCKhuWZfngN#QcӫNwM==X@qAٵ9YaJpq~ .\~]۬s}y,pԏ#1z17VcQPʮ]k7UVN#jZݺ9$zu}3)鸧\q(#4[64k,=`tbΗf;Sw-cWf}-5Js2p-%U2myf_9 h##M$SG? sq[nļ8ZWm[ -lC}!y$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S:+V6PXޥ,j6_YsS]K2>)}ve3!CCGh}d]Kw]6ֵyU}"} noQX6+Nh1c xR[+쵹4u \F{c^ڋYcXCy5K?WqY7ǫ WޕN}:[~]CwKŧ")"dvYXa  FΙ_[lNnf-Y\Xs0qs?L4.mJmnl,\\m鴻vɩ3]զS)aqmm i{s\2earglL{qzO~{~sm8Q 36'bboC>Rmkq]ʁpnnTsւ:AIeV2QwEA"<]Zژ/s_hh=,k֗<=]CwKŧ")"dvYXa  FΉJ|MFxw}˫c~H9ket~e8=33[al}?/u~nmC tWiۘqZڬ d`YӰ]WTfFEXkD4d&=NՇN3n 'wٜ+ދ=!4p ua`eSoMشeuMNuD~WLUXWWr_K^-6.nv{q ,f_q_unaNJkj4ps|RmYX6kƲʍv/5 VI%{3'HF-8Xƭ'k+I;*uzIXtu3#",f52y';?_өͻL\|fX2M1ݠrfta%G/O7ܼZr,k bOLf>.ژ$mSf3{.%):AIeV2QwEA"z,T,~nmC tWiۘqZڬ d`YӰ]WTfFEXkD4d&=M~׍M6bіA58?&kw]2?4?r=]wX>F6zy.02AUXWWr_K^-6.nv{q ,f_q_unaNJkj4ps|R \̌ [izՇ /i9t66 T:K:כ@n6F#*mfq|JuzIXtu3#",f52v[beYSm?cqk~MԔrεԸ/*^Xt'A9jNmbbc6:dYoю63T=G)VzumͭXlm~/.iun7$@IOF23?zՑVw쏢5*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I) K9r( 0 ۻm` gt.h,:mnVEd9{{q$yYY,q NRYFVDe7-ѻOef:F}{=llΛY-f8Yus׹ruIM}2[iӕMc>ڮc1OK#tL>*醴ϣMT2ĘcnMJVWUΙn>7ٱȲ̊_cZֳ#n߳2f{FY?YF.._K1>] =zk;!7%;Jn6lkuy715hfۺ4nV=L6heuh:Ut].}peȁyFY+G_s&\.X]],uMm1Ҕ*9>}޵v1.s -kݍmEn1Vc\45?hs\cdfVWUΙn>7ٱȲ̊_cZֳ#n߳2f{FMꢋ*oUu[ED4 k-ufX`H!)XiXD/eݚnѺ{DRe}'~>/Q)guz5Ն!Gk|n,oQ/ͺ1s}Pp"2jt~FԦwձ԰rpp1n&/7bӵY G>[n^U]V3}:*![YhuN 2FR=VѮv.~M>ݾzW16[Kq$Tud=ޥ74WWnVܝD7-tJn)XiXD/eݚnѺ{DO#̏Nf7[iglVN~|n,oQ/ͺ1s}Pp"2jt~F۽~,?:9:cg\ccβSM5c(cjW[kZֈkZѠ):WZ2΍Pk*.ީx6`9>}޵v1.s -kݍmEn1V1{i~Svmlpw򲺮GUtq͏NEdRh~Cֵvɓ35Jld^U]V3}:*![YhuN 2F}]MWVMx&Z:&{-{wF"++;zGM/=۬թ7'Q ?K]+u?=Nމf&N.+zI~mٌꃆISh567sޥ˃f3q1}lgŞѻ&on9w'v]dQ CphY4 gQu\,Nvsm1_3ҹn@["e}'~>/Q)guz5Ն!GkSt}]MWVMx&Z:&{-{wF!ume8Nz5j .:mC,n,oQ/ͺ1s}Pp"2jt~F۽m翢WNEe;{ke̋q1꒛>}޵v1.s -kݍmEn1BfwM}SlFf-k˾۔/)8WceUl VK i?E͙#Dfrk:X`Laԇd`;ΜoG9y֞[E$v۝_}`Ǽyg|O}:=|ʩ,[niq`+A%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$}/=?.ִ1dS] 紘R}2(bf=v[SammsHh<[:u3Qw8v;56+ʦѺY1t_Y tcfSu;KINOC蹕QFgOȫ1붚ڛ kkCD4qӺ~e_NEߏeӺ8-x,N=A7;L?u .2߬VRlLhȲη"}Jhm]F˞=&njSҿ[0tW:LqmeA~PoC=i'7r,{O*[K›[uL4=sxk|T=+lOnѻn'huY0:Xn~c=3Si{.l걭7AAtn%_j]F+aEUQmF!-1%=nF&._kбU0?e63p0:[0tW:LqmeAWV:sOLs.wcbe ZvUVWޏZr12Xf)ֺP6̺cϲ#~-IMާou:K1+a]6}X/ym8qMw6F챟Fn'B1 ]^nm eU~.{M5uwkzY>ޗeg2ɱOeLn0Jzw>f}:Ο:]gSY;ͬh>ۺwI]Sg<<|J}?Tvnw;D}^WS_cG>ݻw2u_1#ѠVW]'m/8)ئe1USC+5kD5hq{1ifS^-tKH: opt3fQ £"pv'jm9oeWM=V5tb))ULҺxxhkv\WO}o{s+~]/kz6osvgWw[+,t̆9]So]75vSbbj u^Xϣc7 E gO~.^3[ye}i8;4:hܬK+uY5b?LǸոmS‡Xtߔkzx7anVE}Ae>^W줵>SԱRif%vV;-w<:~کBW3ÄBzu}#щԱz~zN!meS-}M~Fs^jZ]_Ptfu^ΚRsQų% X^/ a£[0tW:LqmeA,u1FMؖ]n˃vAs,ߚz:}ilv`Ϋ膾fXu^Y^=/S`ʣY` ~Vʃi{\ OJvOJ?izS[tn۽% ΍K0ruu©6NpM+xh$+qԵ8;SX`oi!O1r$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$z^~;1s죎lZ5ddI>}.IdGIJ7֯w$7֯w$I)w_Y_Q\o;+cdsIduU{ImYnc18DڝN\>rjΫҟ{:v,e&5{Gڬuj4Ve7V`'盿Gepu䤦پO $پO $u;j6:b18Z\r=f`ӳҁhۮԪu]=ʯ'4z66밞ʈpo==}vwZǧKZǧX^[gRf6iܧ;|=48l3i XKV$Ik9HIN>S /}a[$4KL!?7_Sv}>ǻݷo=O; ֪p)?Ѹa Rhc\?{A|}u6a:ֵc~ 5]N/}Dc^N>]at>hIMduU{ImYnc18DڝN\>r}WXK?]v?ޗey^Nl kndb{f\ֵi'XT]wQHt1i~ns-s90Cli@xrJnWXJ6%-t\?ւ1ԹsYYەmQۃv/G Ʒ{h9%hAK01>:.FgUų[ݟuOfF-٧׭ځ !%;_f=?`._f=?`.ӦS.`pmh{\#s"%c򙑋V6قH.;T8l'ψJKo_cI%o_cI- J_N=Ulc;@ߥ}Oq%q__,ߵkoL=AW\hů*=ۍyX0Ɔ6m)~,z]$,z]%}bwl*{ԨacXu*mc{HQݟ?T.maطt[9CX.c%a OUc7ӋwWuߓЩvF8P]2Q]'81dbYSK$49L VG^՜?hea`WE^&}]p;Ɖ@UcՕgY՛U-wQ49ƒn=bBG~/쾟qOnݺʝɏS↑tڪXZֵ\8(?S쾦Oco?6wwE$;w?hL}?Gw:m%1Y)h}S96=l˜G#m;X1n0K?ofpʧ3,̗q!aki7D [۪e k$nc\D3ZǧKZǧV3jVZNǫhfF5Le"#M5nkj`}X4t{Z\~))w_Y_Q\o;+cdsI'ZuގϷbzgx>!WNW>u'7!XMlkh1.'Zִulzo)co,{˻{C.- )쎴ʱZ--f5۝hSiËюU}jIgKp+[ml[oc~˚ֱ;DJSn#f-/Mcu#fm;=(IM߳}jIU/g>Yъw6ngSkoGnUGSn ؾ+9.—G?WMf,ee94.̐܇v@1ٺ 2ϬEk 87/lBEYkh=S^=w9-po)^GXVƬSƐ^k±5Swڴ:}/w_Og%+ZǧKZǧQTޕnPc0`5Ǫro=F6eĀ+a%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`.7Cgo#'wٲ.k+V']I)I$RI$I%)$IJI$RI$I%)$IJI$ROYz,zпg礧Y$IM|^P) c+c muT׽kI;A*LɽebksfRԲu ]mss>sFKAy^Z}5wCJ{uMZ쬑ahsy^5ǎut^7L^.^nrˋVU}M5tu]S k--1k'IHsz}B81ǸS^$@O{bh}+mi52b7Cxw}:tڣԚrm[[c_ʞ~mzjcOOn2}tR>.))=g7 z8AԳcNN%KI.ֿbGԳfٖ:3~%On?ݶڡ~z+=W[k]sܛX/V&:vkl=zwNScǖWe,ͩyh롌 﫝GoG}<kv]ʪIXjU]#UҝXvQUYY@8>}φ;9JzԒXo]f^S>},u~k5v5{} (<7J{<ޝBN]Mp{kȭ8^%KS^5ʩ`\a &W}p]7:>PkhqwR47s_ $OӺWp{۞Gڶ]"{N2@}3"ݙ]C-{\w g4COr:Y%WcNs1骻/ƗeT2ǐ֍L@\t_u ]ؙuӳ~5"dN>gՊۏSs#ېhc* 9EO65hS~ʻ38~wې۫w; ,yilN6+GMIVnwVkch$YqvQfUCGF&F>EmEU;F6tU>Nư"u&G7m2l1}?>z4}ř1_ݼ;LH,N8uR{]9;E;.& sr^-Liý_ﮜz@ OֿbGԳfٖ:3~%On?ݶڒ%u<un-,b\7&V ŕΝ5su-SspFuAv+w *&f`9NoXQwel{\֒C\Ui`qiۺ& pQ0j;.dYm03;:.teXo<;Z~3_s2mƑcd$FLўZRòƗrkϺcC OF777a;83(fSV)ƈdlWfI$ko,isasZs ju5e kK)I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$~éRY?VԿ)%:$JRI$I$$I)I$JRI$I$$I)I$JR;+8݅}x:t~9ki<^OZ $'ZǧY3ntٓӝ0cݣl@$+TV;q_Sd[nEֆ`?o%Ø ,mnꋏSwa1Ѩv@-t0< 4[㞋V>GԳ9v XWSYu_xoUm!u"YvE>\-qbуN+}:1e52IkD`)r.FHZf3_m?^jhs$J_SjQAZ6V3{1jtZY!ҼLLёs㓶`j{jj~S0rqȮ}:ӑuȺc+#xIH>,f[5:ޔ0vMoEϳW}Gi}V8߶.cP JU]s ?+ٕCz}k9Ǻǹ͆;\ڣ}S+65כaSw] N}՚U-oyPg_B;ջ"d]ΣYQ]'At4]S k--1k'XZߔ'ul2+gchk.R*~ |kpE#YҜxYntkK,n!>lC7L._ c赆js1roM@݉wP~&1ƭ8$YXhthJk8:VfC\$:@=2>,f[5:ޔ0vC=)a}ZY]?mgz?ut)2z/SS:CMms̟6sI!=n50Vu|oKx:?/Xof[N6UϳPr15Tled{yWuJٵ wF{tn{Rx=6;/K?%e=?V>5xՏ,Nmv]<|xO uť1+srj^LP:%tێܾޫN6.6#  }&WiQ᫶{ͬ~Ξ=)ޖ߶~I]k?#5z/Ͽtϵ܆>Q`?I5;u[ IJE_@fgGfc~Kz[Ůf7кNnwH$Wsnpo=,-{rt]"Նa?eQ]8u #C_uNVGe`bY:6&Kj,U{lk@5Ĺ *ucbMpc=m8uԺ&=9X~~ iwa=ouL*)ꙖG< ¼}ΜV`{N?]b?ձacNyc`߽#R}6e^pCOy d|lgPX.ȿ2n k,ȡ>uW.l=[i)s:Vmyu;_c)Ҭ}v8g4c`QVu|oKx:?wiYMc)ޫZ ?Ve|3C^8h4Wzd۝WJs CzMOվn9c=K:S]`5Ѥsmgt_oN~JYan>?49?ÞC~KI%w䷥ZlCqIO;wa1Ѩv@-t0< 4[㞋V>GԳ9v ]I)?ؿgOEfKwzo?$VA3KS]s974S}]Yo̷kݎhu)5awP;xg@淨gG~c#fK[ͭ"7$VkVtvf>w䷥ZlCq?ޥlFUҜ`:ޠ7|DJy~ |kpE#YҜx6:z/o7z[{~.$}Zƫ [q)ήOwe2ѯv8 @IO?g@淨gG~c#fK[ͭ"7ί12 -gL{m`n }{Tͳ58 nsrNڽ Zf=?`.䒳-?fk"SK.!/ =]I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RN53]+-YusW/Y ޗڲoM޿I)I$$I)I$JRI$dWcj{jc[wH5fp0eٍX5ks+sms"FZY>F-`r\r2,s, f-"k?:1MlnEku;+sql/5!vIMҺ^y~hosf7 K;tf>>-e[ٍU+q=AS[ţ"r,;5[M Zϣ{gQV6-8ᑑpŸn+} g}`}/)]K?k71!/ 'O1`tӰ3Ιe.TߥmGt[Sk DZsZ'INg[+MbWc=1;q/;qt̚r+ƱPqXvckֹۈ >ֲ3}:[jdYKSX[Eۧ;u^(7#"Ys[~uy.k,n;u[A,ϒJg8ze8duksc(6UE[k VQvɤc7kZ֖N,c<+t,̞[ǫ+l_{÷aSwÀNTr׃aLz!9 ɷ~#`;gY[)1ki!ϺCˤ9;Q(bgu4e@;OƱ=?t;EW۲W,ĽiwݡC?l:ϴZX*wFc:%;XTgbӛRuO72:/LQz.%h{kȺZIp1 }+o~ǏV?wLk7mDT3zF'P]}LsZ>^N;`uf=մyIMn"_CmV>CK\ !W]=Sul*E.asðZnۼ 56K khcK縆8+3/UƧUf܊2,vEϦ>}9 kC1i)պV ^nf>3\k+-T,!|tK+t|gXV[YpXC!lzg_Xy /~d ]>!unotޛ\oj+^ܔwuk&eoshi\!w OovN_Rť4ek_TۯX*}tHm75cvb@k7Q=?M:GZ]׋vgLN_c*s]oҶOw<ήq.F}쭷ZsK}6X^ˎM}9 kC1h]Bۮ YՐ윃UvEm8}&W24%:xڮ^W?Kh2y:qqnƮ㓑PiLc->0̀RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJU3k~N]1C!y*ڧuT1]kLzհxf줦I$I$$I)I$JRI$I$$I)I$JRI$I$$I)JGKW3ne|Od?+AnNU[d]P7|Sq$IJI$RI$I%4szk--5cݒ洒KN0c=;m,ֺWgTi[e ->9>ZKjoPǶkǽ4;!:X+-3{I3̧c➞,cmqx8oѬJUZUv\SET>NtTi~tKfw^7)9oVmSu!zU{2\#n/O:^+uuOޏ4%]Dz/]=s;|&NC`5~=648WއzrkCfE5I {I%%6鵷T˘cC18HdžȉUw rZeV\ک|=t'EbjǩPUM ֵֵ@T-}1o}SUR[V[~7R)f/Anh.Pgq23pvm؍ebS뵠Y]VX; EzZZkǻ%i$5n5V`RGtn^=fdriֻ֟vΐwL+f=YWcӏn}6ʩ^e)5{W}8\wfPhe,YMoai2w75PXeu "c~`ݬ3 U7!K1unmOƾV[%6y(ǣNC7m:~8YS~uhYl qe$k>A4\4 cKG Om⡓^]5kǽ8X4S:^*eԹuo\DcD׾3:jpm-m9euֵ@ll,:vfNf>30l7c> weʣ۲#dk|zm6Sspݓe_hmnuY{K!Xo^ձ[3Nl6]﮻ $6n淸OtޡԺuSNEwcYsscX YXuuND3M,{zhmn5ZMݩoSbϭ_Wݛ]nmu߽QMw64Vk$mq j}5: 5ke 19Ը Վm>ZiUxk+wMeW As6'pҶޤnß72en8S)һ_^F>nzrmyjuTdE&t?\$tS)6ScmWKںc`lWetG]tXxe''ux_3s:@ގw< `-.&waUS69#ݢSwuLo[}"<kgc=tNNڣGT7 d:mѷҥsZ./?K@JI$$I)I$JRI$I$$I)I$JRI$ q鯾M9Iaɬǹ%yQb_MVWN&=_d/K%7I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJU:e=hkDG} *ک+ͫvNFKfDuQhIMI%)$IJI$RI$uspp3emc[\roƧX`ν}WM wQűmazmlyFNQ_)wXpɢ6_cgHՇN3n 'wٜ+ދ=!4p%5?C WS=Bv9am$ wnmP +*_}gsc `2<]BxX8Tiv-moSQf7{y/>aݍeYT6bvˋܔg^Ǿ+Ħ`ƶ0=6VA^yU?C WS=Bv9am$ wnm:g݆N%G8VA{{Ch?VʦޛKho}l5ٻήsukpʬ}s\dQD[XCXy{cw uӟMVewY[kZ|Cm&f>]KܬZ[Ǥkuڝc{_P<ҡ0z-5_Ӳ=gG#hM۴`;:h-Dz(}kʽkokRhtrGc1zMpnv5zͣ'#{m@H=^9]⓽>.>DG`+I]>}6󏓍t6M)Xo^Bf&S7=AF:wo!I%!ff-9ue֍~S-qW9e{YXzMH;7tkʏY·t(-nC^F9_dR, lX%4Ӭ6_vmyKk.;m'gq#iPoNǮ?S3>Ͷި;:+V6PXޥ,j6_YsSWkL.m5_[-pa{M>.>AJEԺg[m]PuXܫiÎQ swiUc3l{+mֳM}5>6ƒ߫btl \Gүt>ɦ{Pu*wWkrhX>xP.cnƱXk~Yᲊ.ȫblk~uO{ﭭy{zR鸝c]T1['-n{)acwo;5mdZч_ޝX,c O~X1xKd}Vps:utᷧ^+;)o7M1mBJv'֞бië"ÑeMUcyS Mc qk h,=g1pf ݛg^DRˮs}'IYHvgTyXCebGzc -}|kIelLyN)3>cR:YgheUǴYk=F: ϭ^\u7uZYF-~<Nk=v [:}GN lX{_֎<4K3{m6RQEm66:ΐwv&Rl׺ufd7hs֚]u`d]]ϭ,ŴQKֺ\kHdXnUd]s WYpkmXn&}m]-ؖtba]{Y/Ͻokkpu%6TB~=4 " gHN0mX%uUZ.,[f3;|Scu}lW~OmmwemQrεԸ/*^Xt'AJRI$I$$I)I$JRI$I$$I)I$JR.ƫ/2Gݔc%1ʞvC6huNyn{$JRI$I$$I)I$JRI$I$$I)I$JRI$I$*}+˲r "C?*="j1,f-V[,&-g7䒛$JRI$I$$I)Z8uy=IƑed^sKYcc)u˭}UtGHZhr/o@laT:.u㱮 95 nuC;Zin; khsXi]IMzR/ mZhl!sv;-ܵ?TuNnSŦM-y;49ڔ®ԽxmGFT.i_֌ޟfEk0q3pݻhv 2=8eލmcOѳV~e[;A2cޕu2w212oh[6c[SaN)z\+Uu׶̷ a{援h=c*9=eUE&RVt[,ulM}N 1@MX2ڪִֵh )=Wcu\~^IǶ}Xh}-xz6عKwUnU9+pN}G 46`mlo;=SY:&}N4R[c@{KHir~h]O٨7ⶺcYmM݇IL.}T~Ƿ*zr2/z1=$L 7/_hcMSeMcg]!cxjHsWhha"g9ֽ^\v2=8eލmcOѳV~e[;A2c9ؖцޚfZ?h+`fn!< ~gcUv/Lʥ{2.Nf&sϸ<4~wm쎃2=8eލmcOѳV~e[;A2cޛkoyeoR̪/,:^AIהhɣle,}<zl?I:m.m._W3uY2K2U ͢lC۫LEmc׌щ~#EUٳڛ wS=3QF-첺1v5c]v3:n5a{BJCzR/ mZhl!sv;-܅W/1xBhN_2챏.籼{$[to)#v%oY "|K^}3>hOjfGr5nRp {`L:][zFS2d hkl7W'i><ʿN«tnAsĦz jhcKLa%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RL3YV̇7,н~ ک^kpWez aIMI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R/Y ޗڲoM޿J^~>KۉN }{sssIkF缓By];6vWpczGks,c-6F,<ֲU]]2bUFSo`"_7d;p칹ui8h l{zßhƩ5d><;"IQk]̆3[2l}o&9/[}q~ٺ=mɺ|?Jo$wZn5N~C62RoWkֵz܇X{ ŷ̵%7U,ֲ|wasGR1n2|vsrOqnISǷ9lj}VC/=ñj.Qk]̆3[2l}o&9%7T}n-ef~g&i]wZn5N~C62R*yvk\m}e[wSgUeX1d=c9 )]T湖 N˛Z|&֏pǷ9lj}VC/=ñj.IMĕnNƵo5&q[cط훣M[웧JuT|\W;ߓc+g,.Yvk\m}e[wRSq%R:k*v;!x#?J:s-n7!M'IM<{zßhƩ5d><;"nNƵo5&q[cSy%G_b\_nG6z[|}on/OuT|\W;ߓc+g,.)oWkֵz܇X{ ŷ̵=uQU3vChF3i*Nkn>;p칹ui8h l{zßhƩ5d><;"IQk]̆3[2l}o&9/[}q~ٺ=mɺ|?Jo$wZn5N~C62RoWkֵz܇X{ ŷ̵%7U,ֲ|wasGR1n2|vsrOqnISǷ9lj}VC/=ñj.Qk]̆3[2l}o&9%7T}n-ef~g&i]wZn5N~C62R*yvk\m}e[wSgUeX1d=c9 )]T湖 N˛Z|&֏pǷ9lj}VC/=ñj.IMĕnNƵo5&q[cط훣M[웧JuT|\W;ߓc+g,.Yvk\m}e[wRSq%R:k*v;!x#?J:s-n7!M'IMO;t[hc0Aɫ`Kް2kAMYūgȹC>LU897d51?:4I%)$IJI$RI$ 6^k粲F5 {gRI$I%)$INOYumZ^RjcAeMN4ƹyisCX4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$PUuُl{hd.]܋rKC=SC}49.$ [ $$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ endstream endobj 84 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/Fausted/PannerIFausted.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 95 0 R /BBox [0 0 652 312] /Resources << /XObject << /Im0 96 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 652 0 0 312 0 0 cm /Im0 Do Q endstream endobj 95 0 obj << /CreationDate (D:20080701215955+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080701220018+02'00') >> endobj 96 0 obj << /Subtype /Image /Length 36607 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 652 /Height 312 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;8"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IMnN#e۫U]{j<4Lpect \ԼfY9cەf^kthsѪTg+ޢdcbne,$6|h *Uq>L(̻;+iL}}0.4LJl3cMwN ym̩ռ>Ckk*xefR]7M}MȪǻx!&2xUokٕVedd]kn7?0D6>dtg2z >He⸟NkYF JK_l\_Y]3̀{]~O:J΅R.JYq{.4[X-*q,pw tE7fd;'u9H"(Os5ګXè̋{vAiq0!hѭ$Ի՟ߛ~Sʡcw<8Ց@i%ʖ?Z?cuUj+]~Ik!5IzAXvfF%We7SVZ68Ei19AwB0ꙗ!5n.acфYXl L[v0^2^Mgӻcz0ǒghU޿X]pd>aĵ6U. M=2ΙfVFClvcnWsP{=*kgxiDk;.Ţl7әXǾ,{k۷f6 MJ~t잍YŮ̆)Sm[{Z jYjv}̪N@ybVQ&֍вAu[3m}YeOIs[ RI%W#at[nFNFEsz5ihkƍwDzuy5S^oss*ocquon-9<[ۂ>Û`+zO퇶nƑPAv=uɮ :{_kJ[ydmkthn>ח;*cs__l74V\q샴@ٴ4h 3lb`F\:rmS7;c]}kw9[5I[zH߄U.}2ʝSZ|捭~}n#nvN-ss^EQk_AM=2ΙfVFClvcnWsP{=*kgxiD7t:Wk+mXlq-ea͹Kg||?;⋺}ve^luCSeՆ=e捭e%ޮѸ6wbAm\,cV͵۳h zwA٥[}>>c.v=?_]gF5/eTjZMϩi4ZXkŧ+Ӳ^Y\ݖ3xcu k~UWGgSU>_]dU[빕߳y%d[ )I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$'1춱YWKKS[]Y[kЭ:jm52Ɨq 7=q&U.8B}y m5fȧ *7]MmnI ϽkSn6Ɩ8cp-sO2>seYԵ=ֿeYy 9vִ Jвuae9@.82~0^9}Ym.61iȻ 4=̬D )I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)bu:%s+2zE3V}!s8Uy"HZ5۶IO%_ӾͲm d93JѤ;ke c0{z>.vE~,k1ks]WLJyne3dU2rz]:huVZ;wc=N˶c/ z?Q=߳}gӛskeV_,uL ls XHsVI),zV?KVu7ff:">yeew2]S/@9Kvu^.j_,APYIMu oI%!ΡXWWE^,csI̬)Y1nU䊟q!k X8;@nI%Elk uW]V=Oi}١}FtF_33k}uVh^ϳUp!@Jq:yĢ }KMYUF,tFCWuKfbd.j{mW^WcNL ]V=Oi}YS\o!-S*q]ߍuOvp gֱѾ_EMb⾜Z轷ztW2>y[yGʅG&Jّcjiq<0 ]:*z~5=8Ml,v+v5u]tO]bzU4\Y].wiԺM NYxn]t[e@eGl7GfJk¦.vMe܇nocCC6t!fu󋕉EC>3@UWXf[]V=Oi}!%8^ƫNOT܌*};hc" K:/sq³%6olcj쪒c}2'WZJyֱ~tyt]Set u> FfG,Lxί Y}V3n6U[, m>\ַkS3u.ҺGTn+fUu;+8 q,G@vO/uWVJ?@+kT^{Mn;LS~fcmm{2rH!ە6=m۸@Z}+>w^Rۇ}m%ﴷq;wS&Oy?5N܇V9UׇJZ5wD)ǫYE̵{k֐`99+I%[IO%և?{VV.F,Ĵ|[cPeTّ<^cOV{S:K+]˩b7{4:9t $}Lt'u@gqk.5c?eU-kvLKt,du;5ٕ]NN3C\K+nf$u.__ɲYAޕ~Vv-PPWEȱ綶=9$~kuMl -SSc]qN[}c[pͶd'n+|+kgM-5fU򫶯{l IO2ί^/Jyy2qxۊSqrm\ָAPoS76εV/Tʊ),ln9eᕻP7Wnv$=TэѲ02{) C!+cCwN׶La}'.Me7& oj-kZgKϿ'$XlݎYmG oS76εV/Tʊ),ln9eᕻP7Wnk;귥tsFv)g{0m *ݤ;s4hȲnn^Ye$uZᯊJL~}U?0MvT^a!c}ѵSVEO6ڭie5p5:BJfI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$N=ؘX2[2q{zKki,ݬ RVcfm5g\2rq벜e4Xۘß-ܬ0vNKVȓėֵh.sZW`j*i}6Ƶk ^Ƽjޫd:zSSmc2Cv yxvw&]feDZl/q3 $f>fJYj,]C&Wڪʪ5e>tn/] -nk=[}*ݵu}L;Eղǵ+k sN S7b7d׋Cgcqk.t4DҰn7Og :Clxk7@Y\w~~Nϱ=;=-cm'ΡXWWE^,csIdj7tG⻩QUVWyǫ*zcveat2oTxeylOO55z~Uu~i{u;vf'JȿΡN=ac}!Vod3+}׋굾S1}lvnGR;ۗzmBΩ2K(퍢 :ˠYSC/}w$^1zgUv>`ë+MWd aeuΗ>a]Mnc7efd2Y`;LUn=u[\@/pkvUN2M}*"P H )zFgU>ɗOK~rcv;wk6^bd]+ݺٴ8H&a qr͡8[ ZK\59kiTd}q+gڽ;>zh}ݷwxʿZTU~UqʤpíssGti$20MVLve2_f'?VɪI~⯳+}׋굾S1}lvnGR;ON~f59~=׺KNKLqղǵ+k sN )[n_M :ol9,϶64X.eMIm޵gAs+ 7'qحc9ϗ4Oݯ!o bbP\kɢU1CJJsz `;j=ِeaX5?ݶjue6rsYSƼ Y`;LeeaqipLU WS;{AȲ-}lg2sZ,a̷:ȩY>VC6V8V£0q*۽br[kǺ@i.4WShn-HR_׺euk̰SSMklsOqmdTQ";I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$\:sz6-c~ղlsW][{'*kal7.stޓ,~^>F5X5D[o;\Nr:^]RȮ)ckQI$5 ō7lsZ9Ͱא]4,Z$Uƻ? 77Ye.XSYe$ƆX}M|۷5}su=LQYĭٰ A -oq ))LZq}K/+e~c;Iq%eu}?U0b~AVUWٝ~ Z5PܚEcվKu1G7PӉS2,mM. &IN :Ff6/JLf3 ~x#*sʇ۪h~glҫY:%6Գ.8-=~>I,n1́a2V:OsܚKZ_cf :vU/{l+)sٍqݰL䀒/߫a}4t쥖zȬP(i&eai#3fտfd3Z\]x9eCm4?l3L6v*Se٘&]CksZq#==cri.i~#EևT'L%<_WΡ)qokNQcqlѐu_Vv6GNttzxع8`}!6⾟,k10H =YbՍRe9{16Ӱ_ \})fS#Vmk+vFl6PsCK[C|JJWBſdӲ܌\X2r.kZKw5$OPz>}~Ͽo1o{gf6D}͏9k*[t1Yk*߶7mnu='wWNeU}'9ُU5]٣Yeb_OUw2ߦjfUUmv6gpߠV.^.u º,cÚH0D(*q*sfE))gHYco陙9 a֯$eW^5N{PuA U}\{^ :Deg9E6ٰ:?FCAQv3IvkK,lִ<>gNʥYbՍRe9{16Ӱ_ Ssr[,9]A_e$,;a3fcb̜߱c0W2=zm{Iݝ[Rl3ds`W[}W]kY$p5SGnM%٭/h{Zi;$Y:%6Գ.8-=~>I,n1́a2[W1ɦM842Y9͆7k-o$ݿ7Z/X5f5zvËvv3.wVuٕZH,q]5lsAu] )P>u,vR8dk#:Lfftexybq]j,8ulo x}jҝճkYYakQ\]J]Kq͘]VE=:+`> EIM_T7;뫥z}cm2\3ҙaAYWEq۞+cdsIdI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SS*dznE;"fLt5ֺ ffm6XdYVYe{`$zJ4 EtMN{]-nz`I! PO,og6SeV]/m>Rg%1Oъs(#WdX*{~ RGهK5wޢ1_m̳2۩fMPC31uŵnݡօzL_riĩ m6Hhsdun^vVf=,{eD$I8tΡLhfC2>Yc/OO6+0뫫6,ee%}V6q!7Xvvf}`}=^|ovtƠrBMdT{mևcs\ k$`ӅNjMLv.$Ա: ^әM~3ȱ4!UZq۷YF={tK"K=}k=G0r$_Yhſ s[mcٌzt=Yad: 0Off&vGQ4eNv_ g ;m-z>9f`u,_eU^ܯ"kԑcF'Yuکbz8Ws=;T *q*sfE))z=[^n[:uMe!|d=FhzXOѳ3;#^2;/{ot3Κo*|}u}wwG}dmŖWe/s캪s4ݻ47EXXϲݙԲ }U{rRG }d[8k^ճٙۏf,s,l«\}Vm]CT0>2ʞ꭭K-{ d4БwV]/g<|?V}?Zʷw} vmuyaSWI:$!gtng;~ϓ~4{jƓ..^.u º,cÚH0D(*q*sfE)).5xt7cɃulyT'P:s)zou:;c*N8v<==cri.i~#EևT'LE5UxCm}6zns+wIN{z/P 6fbgduKTe}^}ý?vߢXcc>vfRϬ5UU_&]Il&?Ibu^^v^]"be`߻nHi{}Ӵ. j3[zsi-{K\9m@wIN?IB:rCk.89 cms!`7CDދ(}>D9kW+{l0Oݷt֧6uñ*u#"Sin 0TՆjʻ': +V_m,ukd Js/Z6}Xk쪫ەMv>L~"\*V06YnWkֺ쭺Ѻ'kxxu VR\ǀ*{m.l-HBFJrz9_dbt/8rf?sw?swak~!Wweف~vx*6{^(4 ۻ&US_e!kZ%s<\\sۛQUMk,{35tΛGQV}V),9?GǴ4o. j?Xp11i"%*vQlC~ INK=s ud1>A9û.l8uEtYMfc̚uuoKk=Ď)պV&-yYb߷Ȳ2۱pi-X,VSk=; a`;a`%:i,M?fn6u3+uWY>jlΓA03jʤ99TUmn\k[ RSa$0qnwF5o;YX.qL,K/5V[Fgs7Gm:H%&IgҺ ]%SS>K[9xHkyqU >t:]=_+",l1Ѵ-*'~INK?/ack1~%7WfVOXXLxHv^u!+| [7;ni*GʅG&Jّcjiq<0 OާczeNb3li^cNJtU,*Se٘&]CksZq#o_-=1mR's+eU\55n݋F>-~s0gw5 8 RԿ7דIZǯ'-,.mƱkexV210tb)Ƴ aMUs*7anwSML}!V\֠^}M"DwTI϶vUEVdXCcs*cpD !%8_V"Zr[̬ee[cmq4} s[_Z,V?h31.mޛ&w{~w^~ѱ͌ٶ鹻]?lmt3>Q_C7#:OXX͇﵊]ftAIMޏnyi˲2l $ɺܗ1!ݻLLf7Q3ӝgɿwD=nI[U37Nd?ԝgƿ&6=VI%%ƯRls0n?R]=<++l=Gu&߁"C{l-3>:5PܚEcվKu1,0qnwF5o;YX.qL%8W}^x}"T.|ʡ6u;}s\fE~_Q=;lƽ̸QMoYo־g >􎗏sr[[F-LMuv]U>&%ߘ+Ue7j)ɾȭK#UG\OHM4`׋mmʚ}GҬ27Gu_ٸ2|[Yc5V5> ν[>u_ڙ]ߌOٜT Ui>Ëkk{Ak\{o`$]Fzռ(cX62AպknhZZ]gP˷C}Qensk2@ifӶ cl쪊ȰzT2n.>.ɰ0ֻ&r\Ƹv108SGgNv&iջ'^}kfk]Uk[XvmdihZ:^Cbe[g5.^gfw ))ƯRls0n?R]=<*\·^Ө-mxcmncKğygޫgFgՉfsm59.{V&Ƿ>CIҒYWt'tjًey? mNc(mE^ʱqbhuw:/8xp}3ݱpP§5c[]- D8襗F-ٹNƭZ'k+0I;$7#>[1n̢{1e-*57 ӻUGtb^Tm8;!/ zjvTd'wΗ.Y}XJ%kZݤ8 +Y% O]V^E?g۪FݮsG1%9Y]K&#q̯&m{SrgO(9jundWF+33iƻ"J+. ߏI)Oъs(#WdX*{~ RGهK5ǣTnw?WV&VON̖;}{6m}Ez= YMk],li{ʘ,}5[nvqRv.NEeξUYa e]$x[2x4}=Q]U?h 5F^ܪq1)cs^^,ֳ1 q[T׺c~ߴlu8)c'}vmnnn]?DAg:iߴ[ ٌڂ!%6:6SK[ emƵuN[Z_f..Xɹ(͎Mւ=T+뻰s,c-vQ"e5h![`3ݑ^=Lz^m]@tIMN0:.ObѷԳk7ƹIòI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRoLclYtaõȱ6UOeu]hddְƫaֽINg[+oXޥec4]U_cwW!7Xۺ}Vr:OV.sg豝 s[u:z~ eQ^C7T{=3K"Wtn'SƺsjeU8{jh ęWPf?X}+]Ϊ3s}kj"#7pVKkc7!c˅ns֗4ʳg׮Η)ʻjUaήݖU&X6ȝ gb!b8u!;vHqAIO30f?D`o>e٘a)kekG/Xteu\\w7ԩIZh.&9$mںgO7:Jlȱ4TzSC*_*r־2%5~ebb[WY]VC/\{jȬTCcu^dx'Ϳ^ PGۀ}q۽qSܣ9j<:څ{kX`o}CMDnYS,}nhs~$$*]{:VGP/+{kk鵌sͯekvֻq쒜Wz[E]ZƷ''1>m9)sX{mۗf;wn+~f`tm3._sC~CmOG?2qlƊ:WV85gSs2e4K|"NM^۟0n8cI>B}Pown47zOFDUjV[n˷뱬e9T]0K7v%l$5Wz-X-Z7cPU pyeֲ:V~>Wջz>>gPdz:G08R^;{:VGP/+{kk鵌sͯekvֻq식z~vcbulKjcf7 j%%8.~X22}9"dѣ\8! ~U^7^kiT+9uml~ZۏU7Y-nmUslouwp:>eί.*}n]^!%93}S7Wm9y~۩fk2k5T㵠7^QzM]OտmD0rZkl9q{]tu !MUo&ffy ~(ÿ9dda2暟=ƇÁ-.sF)UtuzM Wu1.Uc:cN3_TQ}c׉OT3"W.?ڴUcm>P{lf#bkgO~O~E؏cKM[[8: BCM? *5s۲%- cInt:4))ſ{:WI'tf1ce4W9m'Sµ-a_g`K-~ZY2ttwSt]_V?k^oխv%1_ &b9k'WW^@˔Vd7'}k qkHsACݙu,n>=^꛻ӯv@yUүtukfMcֲX]7y$=[ceQWN)[[hnkkk~s: u<\\~n=9oLs70>&`++2Li0V]?=k$y_N]'l}e2#T|]oelf_lþw0mG]bȺj]~Ɩn{Zu)ͻ7:WTëbWuǶ2in8vtJx8΋pnso ۛM5dɰltS3SuYem7.ey5Hl0LgO8oe2ۈgܬ3&`C :$gO鸸=Ra^ܼƻ7/#hɤ8wSNI86Wps2ePW4֍Ct;I%WnSvw\fdu Z?Vˀw^I%4:G}UcPKm6,pJޱhoN7 }m.1Yv=Wv5*]+YMu?s]IMI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RN5Y}M[>즿! 1w^TzؾԾ˻S~׻WѷIM^nn-ec /}N$>ך k bX3?>3Jy>_H7+uNsi/mN8Dtcs9.vƱ| i$Q«ysj˦{micILS7u:wQv-󝃳kYul95ZC qkM$[_{}u nvC^F879}qhn0+|`Snp3mYVіCժOT qQ?KN $8ez^[%{KO  *cɻ}okɺ@;U~u|?Ku>m5u8um/i?:FEgKOʢ۲vufro7KM-F$XُCi2ٛ tuS4F_tmY5d݅C_[/˽;Kees!ΩvΚg}i<dzmf%65`{_ewT=&I&׳rïnn]wh}c1_]6}Z6[})-~73#douZm{ ~\i-ntX6e^["̗5"{/ ݡ[zWEuY#7}H`6WՉ>ȓ$Wtz}97bՐWs=ϭsY7Uhr>jn34uYa!qHkck:Y9Cӛu\rm&ص}J_PA. @ u7\X15ȬunuN!ƶ{ NވsNnUkF1Ω"6{n$U=7*f]\ 궸simnO]+&'];vx9S%3wA]u6\Xm}SgdFh"?jq~sx9gS[US{)}l]f۽];cC]V^E?g۪FݮsG1./fu=nI~蝼JiSnp3mYVіCժOT qQ?KNc7?*[kE fm5XA>CFT={|fa#2z/oVE:uѿ_j0s,zj~ ,/.axnNؑTzKgӟv-Y uw;1uVw 沲3ԙSokn;&I![CܴQʣ+z2+/XKe7vo5JewK]"vCri܇m*X ;Ogލp}?'^\ڲ0ZXAc}i~..mնr2q^=2{ yfߢOA'hs\Rea}qisq\l%3)V̪r2 $?n;XB$]{wwy%Ҳr,[@m]^a lƮs{JmL8g?{l_Vw7}cp#[Umk\XFE@FdW[ט/fu=nI~蝼JmzO^}n+%̵ރKծ{%ΰtoW :,ڟK2K˦~^>-EaӶ$n%)\FQR3]js-Mu}<2+u~; HvQ9Tec^FVEv+icn{`mFNK\\<1mdf8zd:kcͿDnNu^ֲq;h? y=>1#vV.:ǘ:7QIOLYWzUl 6E{@n6] 'uvt{k{Unu&6IݡxsCZ 餪t:n6Fn[l{}[]mh0}g8,I:}kug"q^JuvkJv\TtN-*|aVmi&Czp$hLH}i<dzmf%65`{_ewT=&I&%_^ʯ< uq1b}tw;kK7TniYz^ns2^+4[xcKK̊{vR9oQ6}]!dޝ6!l^V$"Npctyy=;)Ų_P{ cc^\INK'eYFJl̵85ώmJn$I)I$JRI$I$S=];-m9P75{\E-slxQwBӬu~VC:lž ַuVtf׊-Ƹ9c]@{t&ON)~Mȹ4}o`}Ր2oB6蒝 LIe8wv;ím }Vhs;FRth#}ޝ+!9-\ZHxR1z_N}4[M."^wcX+eqv#:f]k9fWhebXʭkZuJu=2)eCwe]Mߤ;}V2z?s{'U ۺSzoO{qMWQ]5 _^Vy{q|I&V=]w|.o9ٙ8d2B{},\qClw#@;\[=Zmw]R!emp=*U E-~-:\-ay Uz#\L|rncuZi{w,a~i*]s_["s0sl4Yck6CCp OPsԺ܌3|r_K(Gmstlhd~N.=[z~nvN=,`}Z]s?N6O3OVFv-YM(ɭ#s,{.~ηݕN ,e;_X _c} v[HtU30peU}Kۍ]5yټu@))t,,\nuV5mYޫƶÛV]W\˞F{ݓys6zN$m4 9Yss<|9Η8V$I*w#~ħݿ wDmPnwJMzfWM&X1=۫6ozƾ~w&JVt.m~Ӹed6w=% IZ_vgہUMQ3cks}hCTvn/@ߍu6ý1ߎ8Ə%6z]Uqf=N<{Klfw8:C'̮:Mb{W]Tl߻_]}&Lqrzm0[>םǷz&Y73Ik]WMEY}7#ewc H]陙ۼ}$WCq697X.˞{hŻ )5Y$neZAeֺEވnNvgN;mG;v:7i&}gu^~nNgPöcnf8c~k69)rhŻ )5Y$neZAeOR}?ݔ)v.e¶`[q(0.iX^uH d]dVufgU,Dm.ݸLW#԰qe[M -fz;o;O [w^qs.{c1vMcۑv;o/[˷X,[,w=k\Z̊mko')}e2nsJ+kv^5V6V఑%62zL飤'uuuFOUٿy/NdJ΅wzw qi KKA!u~Vx׳eIf9 󅠒/.*}okKqݽq%6opq;Ü!cgAQN>*;(n!f걖ww;:R\Z0n63vVɁ%ė9q.sKL$Rzkfw[Sr.nk‹kZ$t.o9=:]d9/s&[i-_$ʜl}6+sZ49k#vA$к}SNᕐy.-$ i|h<+:LqYPESw7_UޣIh$ۺSzoO{qMWQ]5 _^Vy{q|I&QszU=[]k\/=6ZXEWn*I)]bSp]g}YLko#s}.ݧ P٘-'e7tݷ>G;`JJju ~iȯ"}_F_SwH-pcsu^֪YUͽLWq`v\`qt$ Ey$I%)$IJI$RN^mnZ211&S:\wbZ(-ŷy1"m,fߚJn$I)I$JRI$I$$I)I$JRI$I$$I)I$JR뙙8=?dccִNE8c_Y;EY?Y%+ZǧUel3Upe.v XU//lu7Y|^k2sݔYb z4/ҵ%5>,z]$,z]%Jr~,z]$,z]%Jr~,z]$,z]%Jr~,z]$,z]%Jyzvt|J}?t۳tnۿ:'h[aWӬ=t}xN51wn_8X_?c[]ϳ:io4 ߕ]{evh`Q_2^=,/d[) a` Uq~ BJf}B*uo)Ʀ86yO#u\Zrѷdz`݌wP-SzNoM鹶uZzn.~TQIelcqc- چױ{wm"Yꦌn>ɇ\HeY[]@5úvRgt/}eXnȨ[a!Bh2|p~c(USC+>ֵhFQgW̯u 鬧cնNl},c u]S`Lz]ClnصZ7DAIM.3uSzm8ؗ7 W2s,˲CjDbG@xYţogK{fZ!.d~Gn[3g?>{)8?Y1egtڪΟkZִCZ֎o_cI+}.*Gm.qo>>|}aʿu%tf}Gf.;2^.&.A8tt.қ~[H9 !ugيϫva}\rbqf.e#Ԯ]GnWe}gۇKu4:v} quki4~ưJwmj!Ӯن gPk#c}36vE_gGuV*=-HqЇ:Z s jlf/ۜH/isZZm"#XYhv=3,m±sȢ+ϨFq Š5%:׃gG=-ﭛch>tU:q{j8Wu[mW~ 2CiޗoOƛb4S\o\mS'kQmkatn$GBصuLYV9}1n{FPO V:< O쟫vuK2hcgPkhkEy%mF5hvtn+|x8bWM;6@HqІ%=oپO $پO $n+3#eW}xyWb6o` ƪ}gYVg~?Bz_nݷhRR,z]$,z]%yXV[:1 h};,m4ȱ;vஃ/:a]^MNixZa$"So_cI%o_cI+yuZ~ș>{nlӬf]7]6X51utBJs,z]$,z]%j}OȢӺ~F;/2+ĸlx-fl_73e;nkӍkX{*gݪJz/}jI/}jIsu.v>U=1[.+-2ew+ 'xגz%>M׏O2(K[_\ô5WXI}WXK#"ޟ}2X6srrmoߎq2=*NK.JVSVGޭK):b;0P4MF#۲#DWXI}WXJ\GYf-]\6[q{]1o~wF?YO7X}ն=t,So_cI%o_cI%xyl~;~}xvNCۯ`xyl~;~}xvNCۯ`}WXI}WXI}b6[4aNߴ_^pwS#X)}fIygP}UN>HOu69yIJ7֯w$7֯w$I)7֯w$>׮c3U W6"zV5Qb%o}n}_|]䒚f=?`.'F~~7Qu6[1ŔV|v>ۈ#׏i,(8W8 )I$RI$I%)$IJI$RI$I%)$IJI$RO_:8tZ'/O:obYS}]FZ--} 1|5wGӍV_S})g;63?c]IMI%)$IJI$RI$'_O}owzh= `6ݞxvF/J9l5doe_[}&9ԺʦgKϿ'$XlݎYmG VۗzmBΩ2K(퍢 :ˠYSC/}wr :K?;"s,V-;=Fs,tS$~ѣus2}VֲÃ`f/Z>]z;roMUޙ3~fYe}AYt *h}eOnW]V=Oi}gݻwҩ8W_NgnVޫegM]'wk+ ;_C,4ۺWNf+2]f;/{mMq,2{rjm' l"t )=?o4:{kCd*a`L,vSu]>l}&h'lff݇/ȯ׍Mv_SfvU{m7cǹ\Ò3ߋ,6`n,^Fsk{Zi# S=?T/94T6̋SK$49 W%fMVbS 5_v576SUAoVm[2OՔ+1›/ݓfeq9G:=-7US/Z]!s\%kUS_e!kZ%sm=4Y,kk<塀4Xp@*}sb+y+{Zn>nA%S`3nOu56=Upoq.߯;u}%M>QNSqkX}l wJJz|j(v5Ʊ&K!YKb~Ӻ*SYeڻo'XN fgOέV;z#4ZZݕx-,;~>WV23rqlud4VͭsL˥)܌\OOWWGcixfkf%4,\uxW6Hh8$\־OCe]RvK1m{Xkt60iWV{z zضַ9U:曝lA`tIOoCr&'eXA-0 XN-ӱ[kmmwh`DG;7=OGMmv>Q*_ZitVeYHc) v_0=ڛ55IN_Klaу8nvC6=Ed2ǼOӦ*e=kC뱄9kpЂ5\O3}cvf6nQiւnC?D*Yx^<ulcv{\欦~Tnc7urXׂzya\CK,i8 6#8??3te%:o[,{X띲^?kAa?]:9=8:9{K^t*/~~?_WTޖ0[uxfSV+{+q{@)զS)aqmm i{s\2eWx}E?,XX۫km̱]X#p0݋FE]sw?u&H)'C |R(~-LRN_e$݋FE]sw?u&H)'C |TMV:ƽԻ}npŮf>M$I%)QcQ[re4S5%ySe^]V&_$Y=Qplp]ӅcdI%)$IJI$RI$I%)$IJI$RI$I%)R,QkhQ]aWH&>த}jIRw}KGS~׻~͍\z[>kTz}&QWṙcXcߒJkWXI}WXKY$WXI}WXKY$WXI}WXKY$WXI}WXKY$Ϭ>M_ekZ%sRA߬7TFEZ[z4}-tV6ۋCllAa l5@WqzHc͐vmv(,>v洵_S_}jŧ+tzJs,f00BOFY~e'"WoDzޙcSunwP%Z8[˗2͡V9׎Uvd1m-,sX{K4 KZǧKZǧYGd7?m%G?fEz꽮;f-2X9];#"Yskvfc/v?PݎvT̝vqa[eS;emv ~փԵ;XO(etCsr^MFXAu +5V+oH,T厛}CrH 66i٠`]/On,v3p[-"7J JsɏS(;UM tZִֵuֳ-NEߏe2ǺKNKLqtwL}fܫ_mcn9=A |Ήqz3/Vg73.Skĸdɳ"mLumq%)7֯w$7֯w$,FޞY[icEwleYƗ5IUFn6o<:~K/e~̋G5{\v2[%%:f=?`._f=?`.W.#tVl˽lmvzK5φ6JYzONC&}wt-n5SNLzE6heuֵֵ%uY?`t$c:L֎Ӻe.j7b6lmՈcmpB6o@xޒܫܟcneu1K@}1So_cI%o_cI*]k jvGHͫ*e6cC꺇2̓9s?4^``_v=W-={~ ֵhFl$}jI/}jIk$}jI/}jIk$Lv.nWKɢU:!ZA%N23mUTgOkZ!kGQ[ $'uh2n+oLӺ;-x#?%gt׺oOQyIN;~XfwM{vi,qkב*_f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`._f=?`.I%9?f=?`.䒯_hk0myCml!ەu:mcpё6xSSZǧF;+]}y7d ,lSF8kXn55 ǾwdyWn:WM4ldf 3/ou ]M=mۏoRSy{7G3"_c'-mչIsH1 .GVXefcы~K"X߼onǹZ$B%܌z/#%ZoV9y>U:?Q9}?_^]6bۗs~uYvckݺC㮚:}fU8o-Nw6_uiICc҇Ue7Z ;^0^\㴝tHUz ,waVb㱹VSy5Ia6oBX]hTgf>gR6ֱf LS#;gS2c鮳u!>`g򔺗T01uz{juWEfe|>\sz@u_qLM-,~B˳ +27vULm=μQXhw7L$yT+ϧYVn6cpmTGgNv&iջ'/:a]^MNixZa$"^׺WA_Բ+Jjskvs/I o. jbWCq697X.˞{S*dznE;"fLt4tT^:SKqIJP:j^Fמ [o^MgQȯ {*un}vR\m.kp H$j^պ^41(̾54Qu4Tn?CUr>g5~m秷#}uy}GxO>Ԕun^vVf=,{eD!eh}TSgQTWU;qگq}_ǵn' gjܻ˪}k^_tL=Cl[NN;sqܫ)m$ww褦ݽ{:)nn/-jۤBWW8fyVfc_,/uckL<+3;#YcuQs1EJZƱ+kd08Ws)Ϳ+ tO1}'oYߑR4-# a_on˃i1s{Ƅee۫ƢmCD$q85쬮Nc=V]{YZ`p4>nf0pqrMenoEU6luZl  4I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJT;YS-ۼVE6l3o\Tz8V̫} G6WKgַ撛$JRI$I$$I)I$JRI$I$$I)I$JRI$I$*U'=NU v WCH+^UOeu]hddְƫaֽIM_wm(_X%ⵖlվdt}9]e6l \LM5c(cjW[kZֈkZѠ$i$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$*=__d/bmϫ}|GݍF%oʫa`gd]O|Sy$IJI$RI$I%)$IJI$RI$I%5:w]ߴ=1%#'R TzGL-mV]Q.'EoYVȇC=746M䔤I%)$IJU[:ksۉ@x[@l6ʴJitnlơUKlRZѻOCZ?@w^I%4a_~=nOn%wCat[q Ho^I%4:7H}6e^pC5asN;'s[m~c#fKaX[G[I%5+=*u٘ߒژ-t6?zln0m8? c CZ7|ĒSFqcd=C)v_/ؿg~fk~lSFr13KFߒGFo̼kݎhu8 .ieq$Գs[m~c#fKaX[G*OJ5Fw䶦 ]<́ޭxa10q~@-Rԇn.>5x?le5?WIM}_gvz5[{۶~I].F5Xy?|i}5WIM<2Mx8׻ic`p\ӷ=*pߘْmlqVIMJOJ5Fw䶦 ]<́ޛt7f&5:X`:֍5q$ѧ\|kp~-XPkmv];>/߳~ǻٽ-߽?%y$ѻ\j:~-kuuQ7䥑ѺF[/cm,y v\I%5,=*pߘْmlqJҪwQ-O3`ni$7FoLj nuTu!j4>n?Oū#Mm4|SGEcݿލ~ퟒWt>VGOŷ_Mn0SO#tf^5:XX4{:OJ5F,w26d[E|USRҪwQ-O3`n# ىCmΪ0?4]ai )dtnlƽ6[Kk杼vWIMK:OJ5F,w26d[E|R]jfc~Kj`I)ѺF۝U,aHykF=[jzS[k 5y$~;~/o7_=gcUmf[-!%y$#-ٗ{m<;xΓҭoQ .anm$ԯ]jfc~Kj`鱺7H}b`P[s6-hWIMzEƷՍ gi~b?{ѯޞݳWIMEƫ#ۏ/W_ZC~JYe2qv8 ǚ0oĒSRΓҭoQ .an=*u٘ߒژ-t6?zJitnlơUKlRZѻ[ŭk*em.i4j#Em$I%)$IJI$RI$Vf5WuC$8m> /XObject << /Im8 83 0 R /Im9 84 0 R >> /ProcSet [ /PDF /Text ] >> endobj 102 0 obj << /Length 2878 /Filter /FlateDecode >> stream xڽZK6ϯPjca$dIkfS8ZH%R) fƵAuc~}#`E.B VnqY+}uZRXf.ʦN_n߸m|iqn> 1Yb}w_X<2xxwϛm#LbIk}{J&%NE_jҦ>H_q Ԧvfۦb˕;uX]݉bN1A'Zg]`8`I[ik˳+U[u5YIU0QExh|A 'G/Dۦܷ{$#b 8*{KtOաn6Wo{iz"f+>ę0Z tBVdpQIA"ဟ}}܇5=7VLKmiboSI̾=(h¬Om>bV`U˕f&h&Rh=4.F50=Ġ,ɶ ņmu5x8}%vCMe!+א)L'\_C2S~Džφ$ >SW"º"r]y_R1Lq;|pLʑnݬOpx]Ⱥ241`nsSShS[VG2j)%$ H38}7=fB֔BY8,~Kg=c ^ ;x aEg@q_Bڡه)aT K˂o>(ț()aLdB#EMڕX":E,]! W)Ik8@Z}hg !)K\ZK`ӂDJ̀~4?=p Y*H1!TTW]81$SrKCQ¥ 7wXهo7ļ $|Ԟ>"X.SaA`Ljϡe= ##9N49_ &4“ {:f@5mZ3LZ]DNUψcO kWdf7J!UB.k5é>cBQ1=ж}R1/D#~a,Q倪WfV?^6l\kZ0|գIY,#?爀AÓX /}hO~$/"co-~م'8T@,n}LfI3u)F=1`bRǵPV. jgE>xf nQ=Z%d@w$e0?fwmp#>kg+VQ]{M~f`XSчIq1N~C ` ӒgWXCƂ)0Ttt{HM/LʟâPcdl{G+ܲ=S{# 'Zr#6:쁱 χ#$^\{x)h&͋&qVA> Mଊ~G/# 'pHq9]4&k_K}2Y&Jk͗}DYe4NcJ9BaILPݦBj{ޣ_1ovESWGs&v^R +Ty+ij}qZPP\uLp=+ٻ].Sb` SnꅩHUW}6=w'vW+_*ƆĞsY091؅! OH3a GLhDRE|i$}~A\ױ·q:,;ZSJGj04{}\T4d=78ܗu) 6s,T"p'vnO;z(9!+(ͅ?D0׭ CQӢO5 6u )7WF)b3Fd74HEf,;?¶j"J.2[(%3%"RO2Ԗ#MU*+Ƀ"HG+)^ kZiKiӿO(<麉'=C59\8'&&3$?s݄oc>ǘdGױR@JH0:Vn nboϕ0JI2{.|ȣLC]rD]E~<II6> endobj 100 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F51 33 0 R /F19 7 0 R /F27 41 0 R /F21 16 0 R /F54 39 0 R /F26 30 0 R /F52 31 0 R /F53 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 105 0 obj << /Length 293 /Filter /FlateDecode >> stream xeN0D~6 *ȮbP*>T>Σ4539-(HQA>SH1@^†+'l "Lg]P+4ИA'dy|mWx+T|y:jBjOJ!sjv S@oa1 ۚm䭀P}fΥ^B4phNCFmɹ7oU0[֊F֓!y[?*4'af`M0_xZQI0Ah{ǶA}ko2rW endstream endobj 104 0 obj << /Type /Page /Contents 105 0 R /Resources 103 0 R /MediaBox [0 0 595.276 841.89] /Parent 77 0 R >> endobj 97 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/Panner.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 106 0 R /BBox [0 0 1212 244] /Resources << /XObject << /Im0 107 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 32 >> stream q 1212 0 0 244 0 0 cm /Im0 Do Q endstream endobj 106 0 obj << /CreationDate (D:20080702162106+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080702162128+02'00') >> endobj 107 0 obj << /Subtype /Image /Length 26100 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 1212 /Height 244 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;; ""2(!(2;2222;;;;;;;;;;;;;;;;;@@@@@;@@@@@@@@@@@@@@@@@@@@@"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$~g_{F;mN.o֐ӹ7"R}o=FťᅍѺ`la~}mύJ_ԍ= }GT$u]f-vj{vkkYauf5ڝlc {n] JtTm8 w<ǚ>ݍsC\N I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$3m4n.cϸYkY]Ku Z aQM_Q;uz=kSݮ.kJGM 矽Ĩ7 x6Lζ8tR {86l%ѧ-v4R*1ۏ;KTNn~f~wB:I)6~Kin֗ĕ4R #{V^Aqx{RJa7g.w3S -/3{QIH,®d 5)KonDR:hm9D *d8wB:I)ȍ?ugA L`.yq.D⦒JAN#(v旓9%v#/v5#> tiÈv1ۏ;KQRIH[&gKnSqp}s?JGM-Z\G^~T+®d9#݊./{?\&4RqYA%ySkp 5#[Snn .3sDI% U&g7t)_܈\#^J`ʛ[6ח;_?8ۚ^O{JAv#/vǶǰ}pf]!(TIHnPJEv;r#qp{PBu6lѯ..v&TIH*e.c>8e{l{J`Zl%hFf??TRaV&əǁht)Co\"$Khn֗3s~T+®d9#݌./s?\M 4RqYA%tX)e.q$ڛsv临 Ch4=%$aVl+ۑ~RIL+`.7I(uaniy?ʱsB:I) ،qx==kkDv4R*1;KT_[߼&gKЎJGu Cs~4iq}sJ"I)xUlc>݌̂ ~dSSC=9tD}#BVPIiy==s2I)lۜl6=kDݤt⦒JCN#(2{{nq$ڛkvqiAQ\gJA*&g+ېqp{RB*I)tѯ..?{)X魶pkC̸ uD:,;MUcs$JJLI$$I)6[>Z>@DU*umliVRI$I%)$IJTskwm滓Ou<׹ha!LkI`y1pIM[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_ri}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VIM_[rmi}o_VINvuWcrm1+堟kEU?*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRK2:}:  qHa9mIx8}{n_}ڒ/p?0u1}%3,Ǻ/ul.>.-E3TI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)bKc}omHxֶ|vIIRI$I%!¼UA{(tͣlq4DI%)$IJQ=Iʒw Gd>3~?.ILs_`!A>>dI$I$$I)I$JRI$I$$I)I$JRI$6mŮG:/<[zenuﲢ@>aw[~, Or9(v.Fxsv?!z_܇9%C/c8zޗ?!zI/{'}+^`xn\_oWXBNB"<INRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jj_yVԕiU?*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$쪛`熓 䒟n~]uU=̯$znZ^Zyh~MUXiuoͭm{#AS?i-/o^zOn۳s&u::=[Jlhc{vtK+.Uـܗ3ݍu2'dl~td1]qswVw4Y^L -[-3q@Hw?/*uOK]fvvRI$TI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$f10Eu 9:I$I$8tj*,c[>;D#*>]Keέ2*JRI$I$9YkyFSbcz\Ny?@B͟Q-g=#^JJRI$I$$I)I$JRI$I$$I)I$JRI$oeɖYT,_<<si8Om`hAw5[I|T@:y#NI$8['{|B>b{l6V?I?fry?"?t> ~A_gbrO!-Wc/ؿ+1ܒoK{|B_Kv/ o$;7)> ~A_gbrJO!-Wc/ؿ+1ܒoK{|B_Kv/ o$;7)>Ugbr1oƶjtgJo$I)I$JRI$I$$I)I$JRI$I$UgIV^#*$$I)I$JRI$7Փk*tOx(i%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo%/cZI%5ezo*}^tC?sh ?ڕJ|}F%Ei?6鲢9xkHs\ZӺv㤝֪6}5?Xc~Y{x>'QE\!\Eo]ӑe3ey;_ nu{K\F;EfٙmmU6#UdFD[b1+$IcI>-oxʗ?/*u-٫/c/xH%/c/xI)/c/xI)/c/xI)/c/xI)/c/xI)/c/xI)/c/xI)/c/xI)/c/xI)/c/xI)/c/xI)/c/xI)/c/xI)zVU{efD4hAA­-cA`AILíRƱ5kG"JRI$sr+e(xjSI! 4B"JRI$fYaG?#X$4LyvK6H%6)1CZ)JRI$I$$I)I$JRI$I$$I)I$JRI$oeѾQfOO4Ķtp\ܯ/4BR(tz/p# dٹ__iKnWUj}Vf/ٹ__iKڟb ~'}Jv,ii$"?uu+a@̎I$E$I)I$JRI$I$$I)I$JRI$c?TiUw?)I$$I)I$JRI$I$$I)I$JRI$WGU%ZUz%&Iܺh;l10cncY؝6ILB&k3hkܒ$m7XLK~iUuwսJf 3hk ?r{jǁel߸$.c؝P.cL5$~߸%R>N˙Sw&ޒ^߸&"5vȡ7Ycn3 )+kk5 ȫcqZppGޒ^e;k-cp'On]44p>i)*J5pFrjȑ]ts$ 6ݱְ;)ut =JfWx[1- !6cmaw Rtɫ=KsgR1lN`yi ՗Mmv1&L|2](>Tpk|I"G;Ht})"J  54U+Jn[$wSS}{vWe@Ay~Ud]~kKa uW0㉈%dJ|uj_oW>ڇe份>5ԿQ}$vW.gk7 WW՟U-Z>[ϙ?eg a@٧>:`=>eE_c٨rKώ_K|ujGڇe{oRGƿڹ^仾ҳv-V{֓ )Z|mWGU%.#*}-ȭǃ,>,.U foCwQƴcRKM3ksYpZOi>ӤIRJ]'nͮ?|?Wڟ(iU?Q mΪmo~5kOQWlJwlVSW_ooA/5~͟i$WlK_ogAZI%5h6WlVIM_5~͟h6SW_ogA/5~͟i$WlK_ogAZI%5h6WlVIM_5~͟h6SW_ogA/5~͟i$WlK_ogAZI%5h6WlVIM_5~͟h6SW_ooA/5~͟i$WlK_ogAZI%5h6WlVIM_5~͟h6SW_ogA/5~͟i$WlK_ogAZI%5h6WlVIM_5~͟h6SW_ogA/5~͟i$WlK_ogAZI%5h6WlVIM_5~͟h6SW_ooA/5~͟i$%!œ;H-, <8_=V$$I)I$JRI$I$$I)I$JRI$"B%'&KD"Ac.cI>dRRtI%)%=` U_u_ogM%&6`?*βZƴD=߳i)L?yjzzF݋j2\t-qȎ򒛩$JRI$I$M&@ c\5>=-? w%9t2dMb+퍀k˝4jM$RG0$h$A% IK-NJXyH8NJ[h BtRАh$A$DI%,%s IK) IKHBtRАpd$:I)b% IKHBtRJ@tR6cIkԔD&k.kZGhaq"*CWv AFA l[PP5LLv188ѣ\>? אAujֆS/TH:汮 5E|ԌhI$w՟U-ZB9ŁpDXW0kY[Ŷ[9YCxoۧB̖2SK$ԒN's%Ey.H%N8v-<;>.g_zpߣv{f7z'Nyӕ?{^ݛ7sX \@<{; =ٻkG sVȬὸla 5ɜR]A1Elql>ݸU՞}yYW]^=f VNKN[O[Rը`V*u[`DvZ_?k6[FͥKZ12\ mV`:?~5պ\l|6{ $ϜKMI%)tShmN.3Ϯ?|?Y1|)®qq.{?⎒K=ի]u~[VwlVRnͣ0Üc挀\܋-4x )PM]l>綦Kw8IxE·"*x0C_1Ð;kLk=ΡIZ&>dK\ux4K ᰵYs>7 kXhցߒIJNI5$ӛǞa?:I)ٸea>g7CQNLV5DN~3_雫۸ntR;*q S}y [Ĵ$k˫s81poFI%0onȝ6njSFI"X5!$P.8mukGSI%#"MOkЖȠ3L]YttD_N4z5|Tuv3k[[:Sa?WfmsL|IL}usH ׍Thʧ&}+k~$k^7OJcm{X q DI%#iy81Vx'$1U?Z#lxʚI) 9d*#RȚjYeյÐ~QIL-ǵ"MOkЖȈJ@31u{6%Jqձ786~TS]]yUpsOxSCvkL%$I$RI$I%)$IJI$SWܯV\?rGzZIJI$RI$I%)$IJI$RI$I%,tQ"T )d1!%$I$RI$dcc}mqQ)\[{HM%)Wְ̥:ùOXI%#0G*c;.:x6x\IJI$RI$09KxJ" z˾23߬V8`GpޱkE0{"j?^L ԸƍnbT[M㿽/&qު$[M㿽/&qު$q|wKoɻw%A\E_7n;rnIPWm7ێkܛzT[M㿽/&qު$q|wKoɻw%A\E_7n;rnIPWm7ێkܛzT[M㿽/&qު$q|wKoɻw%A\E_7n;rnIPWm7ێkܛzT[M㿽/&qު$q|wKoɻw%A\E_7n;rnIPW}feXyy:;+\O]:-۸Pc_ `xnwBͥC,hse #׾,cyx(y1^x+4([1liZ4]I%>ϥt1 \u%Nes#j` ͆_$HƤw՟U-Z+ U-z;>=owĨ|JRIAJ HRIAJ J}? Eo?oKV̖Ვ^#*&  h:wtWMc]R+_{w|%1фdb }vW_(]'nFP0<2sQ] <&I*ZWZUjw]_i%)9Wٵq,aH5o))I.Wb[uX 4~Xk,RI/Ɩk0ﻂ}8LK>wGR]qKWGg^A?H^Ҿ;>wGR}8?◴ϯw/}v}}%k#)}8+#/ ]qKw/i_y_IyH_k#){JK>wGR]qKWGg^A?H^Ҿ;>wGR}8?◴ϯw/}v}}%k#)}8+#/ ]qKw/i_y_IyHk¤D&,uRwD\gȈÛGY񛑝NUc6HsN8K>ubS8t=ؾK~wGRUqKK~wGW[&Ǜ S2r] FRI%+Wܯ^uL>ѱ 06mUp<>_^ORʞ״449 ~^7"Řj7ێkܛz[M㿽/&qު$UGNE A>Hy.]z7LUy B}rneOsHsIkS~f@O?$BZ6s=O%8zTVxCosr?=O* %];7;2ur B7/rk$z?_T~ES͂PpۏP| ncYF&5h"7 Uft$JRI$bjkgc!W/v5&tʰI$Y7&VC: ;s|xnǑGV+/v;Hcv+mu!m㤍ߤ:D{ΆP)6ә~Mu^ڞZDgI9s5 ;3 W[kw77{q:+c[X-v&lw35ㄵ]qtl.M0W^0 @=Z:Ycoee>sKMޜ1^Ln v UqOʫ.Z_C$VCFX\6X$|FBߴOwzXٻ>pSq½0Ʒ4 ` #H! }YW';{iMXa4mzo#po .X>/q/׾@Mu,5p񗆃PcYV s8h&v8ZA~[qk0 h$x/ysKO`sV(nu_ͼ^pi}$BhB׾ݕ^`k7n'Q8][lsdGt6 `OYǙ^m6dI-N'q~ҙ\ִYSs[` xGaC1mn VǺmI(cecmqۣsgi9Mǿu'3 [,kk6߀FR'I95MŤݵ=2QEv3%n4&Ki\0n;QGGS5c r#Ԗ5;}fAs}DU> nEZ]]A&] J_U^ q'ݢ>_+k;~D>|dRl:x2mMq7p1޳ƀ>xu?@l`=FHEnkDv7kƤˉ){utJ$riXkZK!mx袗{ki{-o*Y& q$N\u}4Sm5 5^[Y" sykYXk'ǔ>jhkd~Tg/= ]ë.S]6Ütk_FG,kwZO%O]cpH_Kewh4"57-g\DW颌v\pia]]. [Z)-al"wE.][ӂ{^.5XYSli;v`iα `]r+V;1)evUioޗ<_, 26ty?4^Ѳ:.8_~qih"gyUǪƖ5vZ!5&].寇귘'C3. n5ލ߰T vŀGI_V߳vJ3{uEv0 qۦri֏^/|hx!U:{+$;As:?pӎfzōHml*}M۟CDqVtΟ]lcȬ`c[˚,nKd7ܲ*6U@WYsk}LU'ݡBpxnzFsi5Ww i:DEƒS:wSa|}vX& `c;Od K]h~9 +n׉p~+#>?з\ķn[bڲskmlisC\sNZ5 ƧS5WG6m`dUv?sq4Urmw5sR@D}Av!\뾠;~_?;ڤJmZ^ƸdW}nr?Pkѳ/ʉc25~X-XbI+Пޗ,'o~{%٠ 7 ~B~z^{]vU3y7De@i:+T*́"qș/ ^ ҲC[ IxMҟOMI2KggugI/19%c܏v vq[?;cs?Iq%G%٣bWT83/TtXrXw7@ X3*ԁ" fL,;MUcs$J)Q챍s>4$IJI$S_QMoƑXAüUA{$$I)I$JRWꗚд3?? cكkuV$LVFZ#F) O>~?j }kC]-.;@qw%JAuOk1-!~I)"H { .7OTʧ=[sf>))*J 5-w `yӛǘk|Rt.v-cO0WS=Gn@ni)HTeS>|s(f7V1p>)):HwdU`:SuwuokH#IL@?Wunq5fQ@0@s*JL^S{vD;ky84)):J9 H ׍Thʧ&}+k~ )*H?ՇLm7OJcm{XT$:o!{\8(U{+8O JN ٔc-'PʧWݑ;mILA2EVjC\[C,rJJN׎=KhR"MOkЖȒ$3L]YttD_N4z5|RR{6##*;u~enA*JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$_ح*K.b ,#kOPV[yu4kxLⱴ48iw[" J"B09?AzzIb_09?AzzI{_wg? GH/OI/p|l9%}/͜_g? =$¯KlUxa6s ͜ ??A/^^WGH%6s K*_09?AzzI{_wg? GH/OI/p|l9%}/͜_g? =$¯KlUxa6s ͜ ??A/^^WGH.1+cRBR%|1l mOrE" qw5zUqYLXl\N ??%6!zzJ_Mg??%6!zzI}j"GN,67Dk<$<򘢘M$Q2)$IJI$RI$I%)$IJI$RI$I%,D;D" zqcwO3JNI$$I)=6zqhm!EU%kghdI%)$IJI$SN.a 1+ms%*SaOI$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$K.b.-JRWk mn~ƟtSkK=HtD؟B^aIV$2mp![Swiq SI%"!Z#&c;lG]p Tx6\SI% 1;kE*}h ekΓ{ZQILkZѤ؟FdN3$|y6X?sADI%#748k湇p ͮl:I) ,ǍuKJgCLO঒JCN[/;Z4uo`КR#YkjnM.?sA*47 3TS_Lo?*wd7??TS mͥp\#ݖ'[>z$_ i$4"v9M ]nE[? tR;msk~悕76X5?sDI% fmov,:ŰvK1pycRҊJ`ZoDN! IV$2mp!6_?:&~ʰJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$&(dV P356[xkCGILI$I%5-uԽ\I !sr+e()I$JRI$I$ ݉FIژ8ђIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIM_x~VIHƫUm`<"JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$:[ǩZƂ<L<[E5D IIRI$I%5cmټ8%Чv3/ GpFI%043ӗDG;ΙT)e#c>8$[˝c>Kjm?JEM ??X~f~wGIHnDn.s?HR̀<\uQ$U]*Ǽ}q esƑs\ILK\̈́"4q@N31iy{VJ*I){dc4:.ϵaB"I)4iq}sJxUlc>IHnfA?ugK">t⦒JCN+(2{{nq$ڛkvqiAQ\gJA*&g7tG)]܈\#^ԐJa]MtyJXlۚl'V=sGI%!/Gǰ}pSuMs6K#G4R*q;KVo&$wR g0!*imkKs~J@*vl;it'GpFI%0vʙT)eZ^tux⌒JAn.vMh,a.'4R*qێiq{TJث߾l#R+ېqp{RBu6JAV)v Up̸݈i5$3ӗDG!*gP=qFI% ~v;y6Oh4:.ϵaB"I)4Y9?{Pflvl;GЎJEv32#qx{RZzrĻ_L*i$42HX)e`?ɱs\:I)6%sH*4vD}əq Wc~RIL*7h.7Ĕ:K4O{JCv+/2{l{3SK=9tD}#M$fcZ^g8 ^M|,{G:I)Զqp}s T֗g<%$Ufu] Wc3"7׹"6tDj]BFPw49$6\/6=kD̈́=N[{v kJGM CKs~*3:?.tR+~KX̀ \KQ3ӈHX)ec>tS *mKNZ? ӎy\gՒJ@p/6LnB6~IL*kKSJXu c>8tRYy4~ pS54ӗDG;ΙTIHieN)®d 5#Kon9i*hmg<%$Ufu] W7"7׹"2tAkgC;sKΑsB:I)،ۜ^l{c6ӇO*i$Tcvd*͓3IH\#^ԐKv8$U].GX!=ج$nN]H:gPZ^g8$Y].&>=kSݮ..s "I)46CKsVəǖIHnDn/s?Re-c6חL*i$2niy<{{،ۜ^l{J`c6ӇO?ǝyY($ ?|3??oNx?ugI$t)q%*pp6HsBJCv+/ GpSӗDG;ΙTIHieN*6WkOhR;m?46CKQIHm~fyoJvF3TSTٰF(Pec>8tR {8==kD}-{6Ӈ? *i$Tcvd ?y6LΖ<7ЎJGu \~-!*im ?Jkׅ]NGpֈ I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I) endstream endobj 103 0 obj << /Font << /F8 6 0 R /F20 12 0 R >> /XObject << /Im10 97 0 R >> /ProcSet [ /PDF /Text ] >> endobj 110 0 obj << /Length 1967 /Filter /FlateDecode >> stream xڕXIϯ r X4{lFl$x~\8bK"B2ߧ&1Tjx򕎃"*R@%iLd"sy]cBۧi<,7/_偊".1621+P)rN3$Ao8RE<%0IItBg1EyU$cM"kNa|}Q*ֽW_#u26ұ l$4N&YX4_`\ğvI$/N#HLʦጯ¢JBa+%mU]V|m#īо>IG tjQgHT9U0e&dLd6r!L)i j.KLd&ʳr;2x(\;{bL`rRbǩ% u, Q=Rq]0HGA a ]9Ip`Tee~c-'L, ԧv<У[W-ҥUހKPk=Ƞ/} P6v0XQ:sAhTD}OķnH5@ ;6Ug]{@#T@ByP `=1w7:=:ެgfS㾸R5\Ws<6vF2]6ԴJ <=n*/B,C=rr\H9VY%1ަ*ʗGF[{hL%X!;] Cw cɊ"]edBLre7|}6G Z~R٩Q \eHh+ȳ+`1|p٨X Nnk{0SE*`[,@8t}?ZA5gP&\tJm[{~rl8Co0^К&2.\Sk%DtH~Gn8xHEkke'mMcbPon4N|pKAgN 6/,9L˥>G B = SO$ ̏JraP/$+?\D4n-<+QwyF}qee1D2ϕ3ĸH 5Uyڱ,,i!u啉9N6 ȬƔ[ s~'h @td81GZ06-Y=ݪi(dV"=1R|v.@nMZ?&c[}:Dʥ0@tS?"'7. 0n XT  Ƞg-M[V޼~~@ǚp)Vu7(xQdh=Krpdz[(&ǠPT97(la~v4^l90O^gWW G"FoЁag%|V/nƯޢCGz0z܋nG* endstream endobj 109 0 obj << /Type /Page /Contents 110 0 R /Resources 108 0 R /MediaBox [0 0 595.276 841.89] /Parent 77 0 R >> endobj 98 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/Fausted/PannerFausted.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 111 0 R /BBox [0 0 668 340] /Resources << /XObject << /Im0 112 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 668 0 0 340 0 0 cm /Im0 Do Q endstream endobj 111 0 obj << /CreationDate (D:20080703125257+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080703125315+02'00') >> endobj 112 0 obj << /Subtype /Image /Length 45270 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 668 /Height 340 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;T"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$*_KcC=; i$JRI$.^.u º,cÚH0D#$$I)I(UuW4Ƈ9!9,{dwkAP/ŦoS^ oh2Q<$JRI$I$$I)I$˪2,kH%-k׃))J]U/aspc|RI$I%)$IJI$RIW=?2ɧ"WlȮTpcZIi|Sa$\\uy4Y;-: i4`FIJI$RPi}/ms CsX4WUsK{lhs\ǶGv4$*_KcC=; i$JRI$I$$umaӑn+dWU{tm$O> Xx7+ hv[KŌti $I)I$U\^08ݮi%3IB49.aqc#\JRI$I$$US_e!kZ%sI)I(UuW4Ƈ9!9,{dwkASIJI$RI$I%)$IJI$RI$I%)$IJYw]mYFKI%k7p;q4IO?gagPī2]X6?!Mm {[ݲ置knqt猜~\jTt}$`۲u0>StzՎӝ/Dz_/ .f}9ƶch;ioЛԙiƻ*ܪm9; ٛc/hk{IO%߃WR\7R+c}]V]{ k-K^c'?+>әvqŶ\܀veYsSS$[I"32ǻYuEu8wo뺟M(o1]c$n!FI)z~g1>f=m2ڰ벖ݲ籶m5{,6^CO}c>?Zo۳IWa- Wk;]M1> x< ^799g==ecZIO9o@[FcC^S/8/{fCw6{ ŻEVem tuFӿSٵt]V=Oi}>jwwc9:.ĭP۷f a嗚^]hkz[{UU4CZִKTouNXŖz/-!g ` Dn5ጎqٛfKmleGOPs]*W}A6=;Ӻ+s98ٮ;l7U b.cŏ&kok̖AIO8qwMTt:fN.uXzg{bW rzţ6_؅z콟jc?TU'kӸV=L6heuhJyZO Kocdc2LWgg|3"6̼FY^F.n>{9w_cmlq.3uc{jckZ։s(eeQCr]D.$kAs$)2ΥSfڽ-h[3]f=vh`L>c}Wf=:vҽktAUSUnuc/pkYrvIO$2r-qPeϲW̓݃ǰZnzJYx=Ct,S2v3}>]`ZژNkmS߈j-pw>ӹp5ow 뤝>ُ'ԧg?_ڽ=ގt+Zۚ^{\,qaFi)YzMYbVs(m۳0kr/y.̴58ٙ7ctcCfU7}fkxnVuc{jckZ։s$깹Y-JlgO-1U"hc}7\Ad/'b΅zC2[.~So˰^l[SiP-` `L駫T'mSuF}?IVٿx `IIHzNOO! q(-M =zP5gt[]A[u:mղ?V+7 'ԮjcC21lĿ,X'c1w*Zsq]Q[.FXa IHپow}cgM;{sOR }BVS3N_d4m#+I%<NMWū2[.{8Bۭ489~C/>ԇH#^0mc2Zs[GvFEeGVJxJ1zM lȫ+:s/Yqc}LܛoV ,{Avm%zKz~N.F%fY,=Ld;6 7ihhٮwFI)U&F{r-Ʈ`55l5th~OW=SC1ˈcCz|oI)_[oS߿m>Mw9K2gKfI}c-d`}=%v $7OO]Խ&tѕxɥj \˜ʃ z$ݭ 97Q,em8v[c}ithm\>].V&.uͦ,\c8K\0DMX2ڪִֵh )亃rzţ6_؅z콟jc?TU'kӸtF.CQ[2:{zkA&5P*}kK,9k9iЂS_uun+˭V˶XOl~:> ~Gۻ~>ny۝%[I%<)]xl)kzA,,~ӋVe6]uq2:Zi+qsHBIO)>kz`{_NkhݨHϣ޽П̊x>]7ɾ`Ǵ'f\$\J(̳Xzwl_XoP&'۳]$t] # ǽqWHC :4?`IN?տW1EϽ{즆cƇQ4;k}+{_OSwOϩZz{=Z $8ٙ7ctcCfU7}fkxnкrzţ6_؅z콟jc?TU'kӸ $c}hT6[+ʳ.}fV[n@ O}@֨u26;r]v-4:46@H.+:b^MF`%"T馬zE mUT` kZ kZ4]A=wpbVKB~=v^ϵ1X*vIiiv:sQuOk\:sHMc}6kѰu5dT/cm֖Y[s\s\ӡ$~n><zz7۷s*TCKHi{Z49|TINgՓW鬥bIT[갆4Ѩ:I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$*Rnun=;ԇ4nC}ڞ*V^. ͺj+[$4K@L$ ~b2ZYX1Ctaocu\wOn~YFN=̷6_A,s_'lоt^q]ԥfUY\cX),`l|Μc]UN ƚ5Sn1dVu//L7^.Mxշ~ΪckDzr*{XQ\[XV3߅1u]O e})K5[.:~ҲlǿޮEv`kD4ɔ'}`mf,X#5{ɑ⒘t:kǪڱCz6> sD=GYX'YIzOJcpyuvc!0znf-95Nw5hZ;t5BomȬScw(5ʎkf@2%6(S[ñ--gqrf//ضTx8گ}2;LGau]V=Oi}mX^LFa\ū%,ɋ羋2R/%xi;o`Uv^e5u!kˁ戗vIsمgQbl%Vjckw ̻֭ cM6^_%vHlainkG;-:U77VV&[q}Ǿa}@Oun/~f;hŰӑiXin\ η0*˻/2ຐ5ceDK$L2ղqle̦V&XۙMө;*蹯̊?zJvEyԲP#ns+hscG&IU.m[vM e#./mvQṁ::j8B=;w6n-CtCǟ 2>VxiAkKY@K+/ef^5nx% &zJffczQ}[tݱΉa%<陶K -=l3.ḟ11U%x]#o=}c.s׺>ڇdGOkuc{jckZ։s*+:}Cte-Sv]`v}tWX^LFa\ū%,ɋ羋2R/%xi++uz.mgXSMAk)u<Z[η0*˻/2ຐ5ceDK$ιl³1_KY۫51om;IH5mX!psi"^# 'uo)2ï{I߆\h[f@t)_vыa"k*] t>*o`Uv^e5u!kˁ戗vIM,kX:q_R 6dΪk qk[8{#RfWeKdzҥ~핷Iqiu7rkf=Z\D 7r:3:r(KY.Aluh@%3ޙ1pޚ;l"cao ^čV̫>3~Ss1]q]]{c^2M0Mo&Nͫn@sj˦mh{C$LI/:a]^MNixZa$"RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJAvS(sl L:%+&:pdHHnǼ$7cuiٔb8c㺬۝U{&V-Ln֝o̯[G}kav5Eawmm]u+kmshs]cS\;K֛wJwR n)쮷:ᾋY/{= HJJi_PYmɯQUp&~hX9\h*c}WNS몎?jβ Ypli,_^QvF*}Jn!^-wZw;: Qs:qp~m0ۡJm໪{xp+{}ts &LWNx&kvn;fsKחfV-9Uǹv7-s0 }_맯QmdXX)ɬ<;Z80xYt^*Ǩ8vLmm`ʋK^1$K]62¡9.["L\CZֵs hNUHbMϱWVE Z:bCƎa)ϳoV\zMn~-uah-dO>OXYnv=b˰{cX;w9+%}zj]=*dd]6l$c~;K){8Pzf7Nw?ԍhɿ&6mEX+&:pdHHnǼ!`Ma䆹U98<շtϳWV=G÷`5vKkkTZ\$nZ鱕Fv`ֵs@k@tGJnN},mײ1Pfݶ4v N}u+zպkpwksSDﮡh#$}`%>zV:s]m>[h_ .>WPYT#&鰻e厮Zv:\ 6 mZV.4η"%ޓm;W>%9t\zkzMF8{MLnNǖN#ZO`YzR~.=][g}04N2KFZGY=Cqh綫\}'N\ >WPYT#&鰻e厮Zv:\ 6 ׏G}NG2n"d7]~eX5n.qyms۽p[Y 65,#"q 2+kBoRu{[)nMzs[lcKb8RJEܼ<λmN|oz٤6 qɂ^:gYi yYKba.=S7gb6u\q1Y>:Ouc~X}Ogz=9ݳc_t6cw0t\;p:^>%kMVikK*a$Ğ{a^U:_TXu>o~Nͮdsk}&JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)H9M}ny]YQ2I:(# ]f=,{b)=@eLӝ\SѺgU])2{͏^>}{}&lki~,|oA6M_oDzwU;?vMZv3~պ)CdUǨ̼OZފ˫ʿ1X-vaR2|u $t 2+2).]3칕Kkkh70ӓS c1iTqc&F5E\gxyݮj4F]V˭Ƿs;K]ʃKp%`[߮9#< ]oJ׷czPtۀGVJv0iUoRʯ%O[@v\gS4 Jklc[Sth1h(dݕQKZ+59@;e]f=,{b)=@eLӝ\R.G Om_Spcnn$w_m˫ۭxq/ܓr_M }sFم6zMvڮ22/v*s{otnMy͡lFF/6Yf6X ap%3JC7sr/0/ez>i59nC?yݬKu\kloQųZlc=%6ZOmW~c0[c2¥e?i@Jﬕagee`SoMW;uŭ,uD~oVS z%Va XҤ Mc%@L?nUEW=pF좏G 7:`mt;=9?Zuظ2ZSe,~n@ w9Z,nA7zn_Pzhm;"[N9;k<).6?WeWn{vk5YYIw@"}7tn7*u 4 ]mnȾF}@V:Q[2۸o{-}BLJ7on>-OtCȏ:C+:b^MF`%"PzOJ{fa}Ulݱa.z>G5ih&@=ַͭsIUfe`QvU mc?"1|*'nqe)?p0U>7f=͖n"Gqʥܺ-ާ0-~-G-;%4ʳ6 Cv^Nniuy kwg*KAHZؽ,dcF+ue79֋mcZcVV\_U=L4m!@zW57bٍF-M`61~ ͒lkfwOUgj2kF`Z f^A|]]_.zrpkifUg٩nͱ{JiS/Z[ W6 ] n9/o-a7sr/0/ez>i59nC?yݬS~Ω {E]=\vnf-$Ŏ?heto2[~=nȬ0o2ӎN5Jl`Ԫ^KB:}Χ|h IrOռL ݁^(GkKꩌǽۙ柂YWEq۞+cdsI,Һٙzg;wlsvIM.:@Y]8{7desOs`*]'`U­q}TKZe]%1zVF.fk1ʲƢ͡ZZd~v)¦ܗf1nK͎䝕5hX\Kկ'u}}[YX'5edjaC z]wuq 1/k^m7jw@d=Y+ʦޛKrw}oZY߻ƭ,Vї}dRpe^ڮƸK )IsE#l,+oL [Y|nxvtÕ;0~Eזk|mc_hsZmLFY%r _MFKoǭ4!mZqݻYFi)I,PRFe&@C[I>oOV]Me=X hniή )2KX"F#'e`G3.m sN۽ 7_-61&.#!dH )IftܮfVS~M7eYLZqomָ4T>{cu;]?hQ/îm׸ ݿi^SQZa`Sk*ֿ)R}{(xsl<85mtOKG-X&lƹ⣸&xoN5l=K+7̊.̰cI@gX[hf}k-ſ?kvQAvAɮ[_{Ǘ8;PxSNmOۗ21hu\+$đi%NmOۗ21hu\+$đi$JNͫn@sj˦mh{C$L?j`Ul?WwW3k{%;dy$I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$M:oAuv^5iFAvS(sl L:%%4_EJVYF>k,`&#qc}[-ɮ[SVKOwÛDHA[ass&2ƽ浍sh,?VV.{r~nef}P[Zw0N)>R^VFVFGݞlg^oi,30n5Ys-0ƛ6)LhHPbW^~%lĮ[Uk{reQTtlqک;nsGXȫ Q+ pi#~t;R0̌,dkfQ]5\d{SfE{.0A]]׍ZTp,M8!ǹ״A6Բ*+Se4IINn'G=G:f6MWZElkvLpB7mvfEyU`XW] \,<"j.ꖽ>|fWeoIshc1b,sI2:WK̫17X9ݡ]Jgn0o;+&SoMZ,z>n!j̯>뺃#"̂9`WC@w"V.{r~nef}P[Zw0Ne}`8]MXT=אTqsߧG]L%&OKfKswm~[,h c%!Oc rmɻ7&ߑzuhC]kun_Me$~e>?hهfUUUm{ SWD<IJV974=ۛs2KD fOc rmɻ7&ߑzuhC]kuVwS߶YGO*S3]vmUU^׹}Kp,ml$ٞUg0*s70Jzd3m}7d3ʽfEUUWfw4Vع2iF>.M.s($Y[1qd2b!)Y/+3 .eVc_F\hUϭe{O?;USo;uϦZc7ᣬ+ɯd,s)?Rt< )NM~VFv#+kim͚ߍMIp AS-ŷ37+-:MmuN]]uU]2Xwp+=O;2c_;6qpPaW]׈]u/mwJJsn^Nv.VvU*[~[7|Tv_tl+>̋jg2ơϬ㴏?ccr9" ֬kevV6;1F-7:$#?+/ߐ_UtlʱsnZ u}ՙ^}uu F.Es*f=gw%WONKv[uYyh-u Ka $jJz]}EUX=ZԱ2u]Cmʍ\}_SfXͳ-nKyC7 1 N=o͢vHi{~6àmjSoJſ\r=l?{+uQ2tb}"\ܦw,uM},;1Rs0>Z:%︴YԬ©s߽ⶸiH#Z]eYvgLgQc*s]:O~w\nӰ꾬j_[e@etN9Iĕ:>Hmmq{vE׍s4_mK]V-k#:pqi~5/!}' Vy,p`c}O{CHxk{r-k[7\< %:i*R-3}6lm.hw>>| #ۧ۳ tPϞJu^j1G|aun^kmc˭sߺA@XnSsplͬ6IAs]cwWo4[xV:-sAjS:>Hmmq{vE׍s4_mK]TqzI-xzx5ʷv\^w5ӨU:P9YYxeemu 6onyyW,ݡ^C-WsmyYnKZ*ɪ5RSb+}Z26_u]3cos6mwuJ+}Z26_u]3cos6mwuYW6*N̳,==uݖ]cv힧AhwV/WU}.UC鋳.;^[S-\%=}WE,dm,뮻gu{oMmps`}WE,dm,뮻gu{oMmps`_ct>^=+۫`eQ WQݱWW}WMnHĬc?6SFX Lk=2.e#oe]uߣ;}>n3k{T]>.acoqu0cFK7L4>5>&Ce׻dfUgTn +l oh`7@4ef݇}^lt=I09IL_Gzj6r.m`m$JRV5y;cXM,xFI%95}W`;l ޏߑXeZ%Cct|JX2.EZZÄHԕy$c}]X˝NCGܛunך;~AtZV뛔NeN/Ş{f5:jUS_@5Qv;(m^XK8Z`p32ILbW-{ߗcgvM9c\;u>%h$hgJ1hn?ju/"ʘc*}?t*zO]l{I:u'R$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)/NζkÎhkX۝k'#"$%Q.n`zX?oIk$'Q.n`zVu;7fMF81C"Vک- l[vS}9s@d2ۨ⒜|fca}Tǫ)2+9Ʒ4q,fca}Tǫ)2+9Ʒ4qUGE=NNNEظQRM{,&K9CʇHT}XgC ռbu[Ʋ:Ɨ $ԔcL[0q~Q~Wә[憙h)b/ϮKHՖ\m5 /;USK0K5+,!R[YcXL;{ Yuzo^UfU^V.eXX{Ck&kFd;ThV2*s^?\@Ŭ`ikZrg#"ZIR\fca}Tǫ)2+9Ʒ4q !2GNS^g.-fp,ޑp·/c3x671eu.`I oZgDvuO# :ß= .U~ݛJm.qlcӍnnӵ XY:wՌJW>qk3PJΡoVʺE4[`ԸV묳Ye4s;=;IwWgSf3r6F[]cXhJl~?E?KQ.n`z+Ϸc<~{ߏgȩбm=WtFttYYP\߫y4YXAg`U+ietdm}42LfvӨL,Σ~uN&eMv^K^k=>S][M,kaHIMw׉f/\1o:s+~-eCu_F+n̊gNcml8my\7ϬcvNN hmɪgU]嵸X` Y:m8lZӯS^kuy)vc {_ 6=31꾌?WcՔݙΜpc[8LƥR]ZtC^`f9Ė+7Χg~gK 4bULՒ)s ukuKv GTƧ[׬:{6ZPͷWle7Ϣ4jS^> 4]O+'oSk顖zgs7fCD1lF-\zNeo6;{e _Qjӓv.++bRL}&K.:xLl̷vGP]g:mNRS1)FufcGq9zS(uUTcִֵg(tCgRͳjyulv6Q% VgMۍ>fn۽wY{uqsJm~?E?KQ.n`zvS(sl L:% Ϋfx~Fwnߍ4RSSQ.n`z_zQus{վm4[fFw۷vf˚!W>Gt#J̯m̧DU9 ݵdׅK/[k8 Q.n`z_zQus{owtKz`ٍ]4>459uUfl~ $HT}XgC ռbu[Ʋ:Ɨ $Ԕ~?E?KQ.n`z=G_z:'S} YԷ眯aP)t Vzwu:6=4R*yUuȺV8"ͮxeѐ=G(~?E?U~nqľ)q%>Us6{v<9/s 'h˟Upj~OzonۏgP0/=G(W37)ޥ8xZs쭎q]Sypm,qckZ0e%9zQus{ۘ?ޅ[dL[mzml`dOe@7iy.:Ӂm߳+nٛo.hY_uRSSQ.n`z_zQus{1YЏ+2i##2u]TX2,svՓ^,m,{ls\$JoQ1ٟ&!ΠVr2*խ>ܥ:_zQus{ۘ?ޱzGU£K:N8n7P8έ#_h594m$/i>ˆ܌,[sW~0(Uvna)ۘ?ޗ힣]CѺG#]qTb}UCXMi}xn,"_U]Ѻ@4WAϪyY[ ?IYd))ۘ?ޗ힣]C>wվzߵ6֎O_V'b]ZCk\;!F؏tQ.n`z_zQus{ֲI)ۘ?ޗ힣]CJrlgP0k$=G(~?E?Z$'Q.n`z_zQus{ֲI)ۘ?ޗ힣]CJrlgP0k$=G(~?E?Z$?c~y7Uί eZ4syܕqU߁IJI$RI$I%)$IJI$RI$I%)$INN7*?RZ']GM-dU:پow}cgM;{sxG[}y4[c^.lkI-2ς.^.u º,cÚH0D.`_Pl<Uӵn=Y HJNMWū2[.{8Bۭ489~C%=ZKs}Htb5 Oڽvlf=/5zgmdnV[a$gыo^OfEY]gݽ*>HkkfUBVuy}sfä́ITwg[wnfѷkk54U:H^ۮQ۷tLw!)U®▛m?/kh N5iՅGQ7~W}Iw쟧cbJuYպUj1 fX} zdl?K~SSw3- /59wh wXT}YU8 7$Y^K_fѹ}wEЏR-ȾWM>eV-Vj]a?FuqSCr&'eXA-0 ˔ɷ]8fSkz\~=#[uRg84t$q3:oZǨ6&̪opCײ)ﳟ大U*k2p\rn/vjkq܀Z( w2Eu,ީNQ+qُyɹV[k}..ok{gM {FV[UUvVEbګzdhߣSN-_u-'s+Nʚ4Si}/ms CsX4ՑS轍ZYeos\!sN\m5z.}ce434?w6h[%; ,gߕVC1 wV'P[.?\1Y[%piةLnUdTI..wBUS_e!kZ%s꛳u՞q1quuN}[j佌~5/Z]+/I̩u,[u9κ2 ŭǸ{^.;J{ n"_CmV>CK\ !W+oG{Ynӷv:'iƌzwL8Xd7nvkH}OIGQf6Sqk3ɫU挶6singKN d޹lc,32Ṟ]Y[#BoYŹٙ8g̺ŢUYck3gή oqj̦ ;{&GPM>u8qiIOVuc{jckZ։s.\fft޵яPmoMT;eeSg?Bve_/ 3&ǫeZd[{M)XYs]MIOQWQaNM6a%5wl7iQnz}mUT,y kZ.st_oNN~~;k5[Kkp%\K+w+[~JuY=')?Upzˬ>_pqZ덀{[LV<Z\X0t꒝4I%)/[Q[鵒FX \% FI%0*}kK,9k9iЂI%)$IJI$RI$I%)$IJI$RI$I%98?oIk,oUu7RI$I%)$IJI$RI$I%)$IJI$Ssdm}f9#"툔_=G(Y$]ڱ*YhsCu-o S #ַ#\3c)elg<,W6pݏZ D}3,AfUMǯ d9ιX+kۋa[}kv5M3!Xq_[XL-z?UuqYmwhh(j;_j~}h}[g>{nINGTq:]5zڱ,/= z[>aVu_5d7 F]^#>1p h_S)U9yw s,ǫ.-f˪d]istvI.O@rOMZ ][Zl=64!6Zge:ܚ{)+fDZc=fl8 gz:ڽOSjoow}ۦՔ2r-qPeϲW̓݃ǰZnzJJn>t˟le8׬|Կj}kٗ}tގ/|O1zB=C!]-c?)e/6u4{ wmx5 ZS}sk>Z;mI;)ϻ}kv5M3!Xq_[XL-ɬ_Y2}+:wNVY~.Y`ck 4+{/-޷o6O&gUuN+3/ί6NUcbеKdi3_Xh廦GNmK cGƽw^o~^pq`n/؞v!fHFui!e`dgskʪ['k qk::>v:܊-ӊۮ\!xAIH֖ӗﵮUYa^]m MOTk[.~CⲶ^֞]{VպODcq%U~\=x A_[oS߿m>Mw)?Y>O̡crV#XzC4N{$̠>e9V;~]Σ̵`pcznk#}^3#]2ȿҷc?/ɹO]C >&zfSYWP6c}e~koW[X̶6RduO.}GSZ-ܰճgUsZVCpo:֏l,e&άK+srv6كd5e旼jmfZlΛֱ1 mɳ*>l57J{i)_U3\zVC쥵67l(O-}/k\*ؼۿnVK~[/kavUnȬ}Gy9Y.3sb̮˱2nwT X=hݧ}kn5?!qY[?YO.=~-.f_Kokt%of.XΫ Ⱥ2kK niuְ_l_u:ǜK\{& RSwTj.fC⾷R֘[{Y־dVth]3iV_[oS߿m>Mw"LgQFES)~M΢~gc$IIJf9}]+!b7iXkGT־_n^gM:奘uhwXs F t ?d2̜ZV09? {I-h1]ctSn1OWX,g ~Ji|~EVCaeO{A3t˟le8׬|է{_:g۽O}vʻpWV: ~orj5նZ5X+}V{斻5AIO7nF0:Ez?/}8uγT{XwΫtKu.a]I)YkoJvF<&m~kUbVX{uwWDJyzֶZ܎s͌ڗOb2n[z?O]I)rdt 3(F%-d\,Lm}fUY\-GY5i9t$f9}]+!b7iXkGRf}+!fvRhXsO@Jy~kUbVX{uwSS>t˟le8׬|Ѥsֿlw7O[|=[%wTj.fC⾷R֘[{FJy܎Ϩtk@ŵbX^{|ÔYk_WJnGZ|bm$~faKkmn=a?QZZN_Kָ@UV%eywY5tI$}kn5?!qY[?YO.=~-.f_Kokt%Ѥr7\̆=c}oc0'Z\'K\[V%aoYg9tI$f9}]+!b7iXkGRf}+!fvRhXsO@Jy~kUbVX{uwSS>t˟le8׬|Ѥsֿlw7O[|=[%wTj.fC⾷R֘[{FJy܎Ϩtk@ŵbX^{|ÔYk_WJnGZ|bm$~faKkmn=a?B[+ٛ.kƦ9`.wV3Nt枫kmǽ2y4klSK쎵Բp\Lzې\:3>u"VI$$I)I$JRI$I$$I)I$JRI$I$$I)eyFqm̞ms&<>mSbՍQuyWRI$I%0e5V[\9G'k4IJI%SUMבNm݇z}uOS%+a- Wk;]M1> x< ^799g==ecZXTcVSb̂mUn;[ ~ t }sW>2q~e c%;dP}USK5kDq/%}I?ɯ0YcmxY]eOk;kv6sK{F8N a7iuƿspsZ%BS$:5mX!psi"^# &T-#nۻmN!#ېvJk.[swquLF5*U`QإӾt\7]}nꭤ pATtN+G켪ʶ1l\C㟊:wU{:Nu}1lYu$mN꒞%;h]A`^zn7(Ժ[Xje`W6`t^f~?>Q7TڙkkdCv:`rSeeQCr]D.$kAs$X=SƾUY`eo`˲/阎ĵ7*gSߐLߑU}սױ.-!_WU8a2|lfS{uCsAm~NN%)IT:oO;kn㲫~Ȫέ @hٻ} ~Oje m/`pga8 HFE 2>VxiAkKY@\陶K -=l3.ḟ11IO`u5dT/cm֖Y[s\s\ӡ.+W>6.Ic;99ϋ{szKϤ}ۯ:X5׋VKY}e5G^K$RǩUM/ǐֵ9@Pʣ del0\Iq kZւ9 5I: W1սytᳬtکKX䵎 --h{EgJfn0=oӑl32Y[@`L>c}Wf=:vҽktARS7eVSs+.iESWU8a2|lfS{uCsAm~NN&l,x,WYWO#Wf綆ox{kT]M8{n55Z k3V'lGT2ŧ7ޥ5ne9uz^u}S..6E1c^NMƚo k_d2;/:^=-cPlK@ )If}[oL蘸LoM k6\Qΰx]iFM%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJT{6X5cdh^l~+GGFqֱrn܆b䲺~وlK?$JRI$I$$I)I$JRI$I$$I)I$JRI$7Sv3%CcXyQ_wgr}>ON>jJRI$I$$I)H9Yx4;+67sll.qI0PaW]׈]u/mwJJqqp'V/f3ŏmZfla- q}6^٩#n"rk=|N-nMcA>qY;{Vʞ꛺D; ػ ro2۱2s7;^~ICѝ_t NO6qƻ &ёzvCSn5M|o4tfuQM٪6][hcGZѽ͏΁M2Qe4[Mͣ^wdXl}Tq#n#:ftkޝ[,+ en<݂q5Vu[w1 )ӫ>3~Ss1]q]]{c^2M0Mo&Nͫn@sj˦mh{C$Lܼ<λmN|oz٤6 qɂ^:_ۏo{U`2 \65: Jne۫ƢmCD$V]S|J=Ovn9;L"cWC654_^ǎ;,ӷ#w2oɍ~my9IM_6d C\q̈́ sZ[2;p,΃M\5ge<<crm~cY1AôtՕ}»d沗8n,l?~.qr31RYCs_Pֲ¸bx9P2i}b:mnMkhCY>HUN}[OOmm{fU6ڲ q %:]?:h +lݽqh2g^C dWц7촽qkHv}Cd" d{0dQ]O2*-D6.=C6̶L1 _i큃g`;BSͶkqɡdzeޝ-TMGԺSzٲ1}mX,k^5 ߥq: YMSF3hDZ״7U\r۷HΕ[w,fV&8.qMU,VָxJJmugt12ʛ\M"ʃua0 vdtVu)ڭƇ^溿Uk"yT@=䞱Mm`ȿ!auُw-n+@: } Ϫ=q:m&f0˪mf%:VELڭh}v05pB]n&-89U[X@1#XƯ2c\lkiBv))XTfVnv6)&`B2}eϵdd]_vEW;,߰sΦI; ):OmYY7ll+fMk)sf {3[gr=G#3:ڨu,e=;% k+Ϭ?L+!nΡE &/sƹt5O鴏5_Gպُ׽eSmm IX;[АS0졬sKMY[ n`l|Μc]UN ƚ5Sn1dVut~>}8x>lm=;1JRns5[]gֺ*05w7HN7WUjZ}GҰ0;)N:E Σ_P~.fKnXxE{;}xyd2Z1qns,1Ѯt4$zT0[Ӛw%*-.}xĒro-t];u;3zSnfKkmu,`k/ͥpf鄧Ou[+1dzѾYhe5|d+Zj}- k$cm2mk%c7euu]:96c}ݠGOnLn65S1H;fs1RŻ*[(bk=6 kk}DT*uY,rpi/"/}nzfBXRFHʺ6nv5> _N&fM׻2ُ }/dND^Cޡ N-usrn{塛{sNٵ3Si9 ]sCwRVELڭh}v05pBоQ{oMW TKNoNV[r00k1m9$$.^.u º,cÚH0D*}.l.OG1=i.nKľZmcI 8s{L$~`L%uXvCr_]߹[,3E?IMI%)$IJI$RI$I%)$IJI$RI$I%)$IMoZu[f /aʼېlAPsmɴVT쫉)I$JRI$I$ eQCr]D.$kAs$ʧTq'ʯ 1enlsw7 ;RS\bMϱWVE Z:bCƎau=;,{U,ɮl.`yc (_m˫ۭxq/ܓr_M n[_s}}W`^(}0xks܇H~Yڒ>VdU>ȭ w[ahρP?X8>E=Z:vƶ$XX@$T=nWr1lǣ0ÿO}fq6D;OD?9jl6a\+zTt7i,z]IJlu=;,{U,ɮl.`yc )])oNv~=78b^EV[}^S^pi`!TV\_U=L4m!@e=G6.(E5V][  e)7N9Wdt^>V=u^E5nc=驪nCmΐW#tZn;q}-ʮw)ޓm(ֵDFVGPedWUQ]v׺N k_]Fx3QN֗S{3wm?WuseUa[\]zp 2OGiǹ~X}Ogz=9ݳc_t6cw0tNroT.̊Ĥcٻ&/NFc@u{~qV>b߃:fS};鵒[-$#JmedׇCn9 ҺX{,w w1Ɲ~U[8EΡعדE,c k,Һ^٘x~zgo;wlkf7IIrká7 Dk}Ԇ],{=dt7`alI0 _^QvF*}Jn!^-wZw;:,P8t=^がKkiߥoClq8s]XU <`:~3~=L[zEwi-uBSbϭ9pɡջY?6߳㋅O[6:wQʿ+# z(Ys}4;v#ot +fOQͮ˽J.GMoƱV{=Cvq7NTedu^FVEuPM+n{=n{FML^o:N%u?7eGcg"~;z5tچKZezGҺnfOL.M?+F/B>(՛*nkV~WV)f]4zXUufn` O)MSa=1vU~ٍ]/`u Lſwf2v9wkOeS,xU7O5k@L8kROUǵ6ۙ<Ly5}JRI$I$$I)H9WYC2؊i,t47YS4Wdlȡ}tEԆ: JJy?X/W glug=7E_5Q+^10=k sGدYf%ap,cߤi.>uV.8]m6_FS+G5 )ˤdP_Xeٍ}͖{}ˡU^~gifF6N=mpf`}F;wΖ~} c1lƩ 8:*gd]sv }-ՀӮYH 5:@%1Y]GWUʡ줗0}"9W ,NO|N{2!]O*nMI7wVGWm#3#- R6>u7ISt|:k:KMQSzVZ鬉 )>OZ~FgISE857V{6;>}ި\ioS?riȱ4:I>(Ut쮞܌{ͮS5sk.}WLLxV΋u宷{KKqi NOId ӷpU_I`[McWwpNdn߳|[CuZ$*=/6ޠܫYv>8w6jDl~n*=/ ޞܪZ_vF9w,hl~nbL\c;%e[EsC5>vgKX35^/L_]kq9[mSۧs0f[nF5lum6Y\X#B1zXY]^鲪HCnIIJ=K;>ܚKCjٶ;^m.l0K\gZzխ{lf-c,M 'R7mvfEyU`XW] \,<"n0o;+&SoMZ,z>n!%*ﬕagee`SoMW;uŭ,uD~oV|D\LK}dgk?7 a{MXF sVey])d1Π }OKfKswm~[,h c%!)/M2_Q}7ۏM-P܇dVk}i'vg\mmO4545Ώhs^@OT,a[nM7fV=0NWXmRkyOo7ݓV=AEg}EͶh&gP-WYC2؊i,t47YS4Wdlȡ}tEԆ: JJy?X/W glug=7E_5Q+^10=k sGدYf%ap,cߤi.>uV.8]m6_FS+G5 )ˤdP_Xeٍ}͖{}ˡU^~gifF6N=mpf`}F;wΖ~} c1lƩ 8:*gd]sv }-ՀӮYH 5:@%1Y]GWUʡ줗0}"9W  Ϋ1Qǻ+3UW[_[}Z9.WnHFfF[-F@l}K} )o3=a ~kǿ[JmbP"v|RRfgU!>&pɣ"}&8Cne>:ռn@x5Vׇ  ~aCft\;كgQs*}t>u7:Z@S]C}[]^=nyqUA. <&Sof~7Q9e^Emx=&V^. ͺj+[$4K@L(*gO:Jkǭ 4VS>Lw]U̵7>ݵx pk*8Ut]E%k Nlx 1$3edbf,*|j(ۜ1/pGh:_\ѭazb ]̾*ݻnʜ%<^̗c2ܫr1ckoxɴ?ֲ֪='G=G:f6MWZElkvLpBJWAYט\VʹdaiuceaZ?Ճ֭oEvSe_,̻0kelph>:^qk2/ʭ"2Pe^Z aY|ouу~Y5wژ}oc xst )W}d ;++*zm-ʿރ-ifC#O~oCwfYEq[}~;.s,t:mqYwPwPbYX:,jh~nsOL^[nDzZDu;F5[}:r45Jj}Z߶Pc04`i{پiBظڞhk_hi5,k=VvPɺ.eڀӪFq?GIOo7ݓV=AEg}EͶh&gP-WYC2؊i,t47YS4Wdlȡ}tEԆ: JJp7Sֺ[M8nn=_iU}hͱ}dƂNbuޫYủfN3>=jrO+aiš$đѺA踬nfF]]43 S&T64E$xAM=2ΙfVFClvcnWsP{=*kgxiDҧI̪EwQST~ɑ{\ ݬ.`g^.NOq)*ָ1/qv #F^)Z96 NUt]nNU=B[ToUC {76dA*teWt|ZqE&m~\AF[RȺܖ2 .د7*«\ߜvoS]Wl VKv5^x+:I mx# [^²LI7Nͫn@sj˦mh{C$Lp;LQKKeFX$ G*zk+:GN;bd,Ӯ6%3}CYfw~_s6]GVWz=ta?cɭSMT2۲-dy?RIx@wceC[V6MF<zDi%7I$I%)$IJI$RI$I%)$IJI$RI$I%4{6X5cdh^l~+GGFqֱrn܆b䲺~وlK?$$I)I$JRI$uLg$3{;A"QVC}q[Aţ6cd}oZAik湮:RS`u7aSΗS^CSwcW~}u0^uKX5-v`5Ìv7Fص_H7)*2c!s_k=jtԡc}\}tʧFm׮]uZ!ۢJaMyW/­z^>ߥv+t@{kfau;k2zn+z~2;l<̃f}\Αp-u6N=YN1anvI1=7OɬWe֭t0Jh0*c[ҰkϡZ6kj5omceu9$IԝJJl$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$N3.Cې\WO1 cF~߻ec^'>{8I$I$$I)I$JRI$I$$I)I$JRI$I$bw>˓LOZ|zqWoZu[f /aʼI$$I)I$JR^U8f;ӣk8A&쌃Febcl$}/e՟i=?VOVS[kv%bF+s[7>×cU-;OS^k'9-]I^˫>8{FIN ̮_fC/al--k>ؙӝxYLc:id? xs\f!^պnOL(.Scۿcx,o8jѺfO=2jF=-ۋ[]U^$翪u|S{r31ƺZÏ[]Pʽ;r,}hypl*u.7pq^FA/sQ!ԐAȍ}+:u}?w;}ͦS6Xn}dl.eFN%Nq{ǭ4 X%0vSwu |Ech[[vcӬy!}`?xd0\I־ 9ׅc tQcSS^mM. &P=[mu6>?G2#)]k >ΛΥYk,uAO9e#" l~+l|zs1Ǻٸ0t~lct|nzH~+4TZ%W[+.%\~ұ1lǣޮ=u1xkCLA_:r_=+V?h? uޛbv~YWtl<%Xe~eԶn\f.=q멌ocZe zV&-8xb߻Ǯ2hi2~}~IJJ]bgevs7Ϥ~ yǯ.ݍM>ښ\S9[}f8mvZ_Mb0'oSq ;Q<)3ZVac6OpuaIݒSs]}Kɦc,ge1.@-kt$Cu9mZR:h!lcf.=q멌ocZe W{SEش:z,ohd;iO )Ͽ\7ebe37VK!mcÜon.7 uw\9aΟCf=u.uz[YWLn[w@/aّquTU+ V湭kD5A(t^X絵s)6:ŦK]-ifʽ?3Ӭ;Ky;uc{jckZ։s$ VgMۍ>fn۽wY{uqs_UznԼ*.ߗmgz>t _30OuvM9u5Ŏ-.a"`S:%]M7Pl U18v 0zfma61Zr1r)˳kĩ{7Vckn=?o4:{kC̼|g\oS֜lks1}:ovt~ϙ6]e产=qC}nz}mUT,y kZ.st,.FN]MqcDZ8KKH!%<&.'g)v>v_Hw]Ekbt ޣ)cMX7d2ol whtG_O=2zv,Nɮ[-m͍kNzK$NvV>_8ӑE-2p;_V.Iϲǐֵsnrz&.Eٮnx~96qcmV11ziTbqe52}ZF։qvx̫i)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JfS8nuώ-k"|>mTqc O6ƓMmzJmI)I$JRI$I$$I)I$JRI$I$$I)I$JjY^iц{s'\cI&Ͻ[T{6X5cdh^l~+GGm5>5q vqRS4~0=C܌lpG:VRI$I%)TfkG?_Mc7<Β ٘tQԎi-ƻ"]:+ilo0}!to*i㙛N'*xu{/krmmzԒS೩W3[F^fK}LR݋c)K:ҷK`mݩld]T:uv3)74d%'vkXNݭIN?KUW3\Lf;"1l,[6{!xP~_Ax[ 3s}&?4+mW?ThTzSK S=ۅN=؍+-kqZ*+"}1mU=24o ?Jo7ֆV&.uͦ,\c8K\0DMX2ڪִֵh )0fݶͣn5=jkht.ҽٷ\n:FI)> ~Gۻ~>ny۝%rXTOâsOIn5g<Q^CKcy s.$YUN~VpY8TϱUnè6{[l<=o u*fkho_[se>cPQ:Vl {IO)f0 "zUӭ6㱘LɿЯ)%.q;{ZvnKUW3\Lf;"1l,[6{6IO/M}C視:M='%`.wf%$%htoZuUs1c)l̲+oglcC tQcSS^mM. &RΡعדE,c k}^ʣ_LwF7KǺ;Y] s4`պODcq%U~\=x ABjǩPUM ֵֵ@SIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJT{6X5cdh^l~+GGFqֱrn܆b䲺~وlK?$JRI$I$$I)I$JRI$JZj}- k$ci(SuY2j5ZhA i)I$JRI$7Sv3%CcXnǩUM/ǐֵ9@Um{k̦hlԽk.ֆpPzض}훧5G{$ZSm_SkH_^961o^<.Qj̆=c}oc-7K"q2qk@Ÿϰ,-ʫg9%7U,־vK{>1pkGR3\r1݆ge-{mqsOSm%OrqkXϬ/.ʷ5FzqnFV+͌Ʊ|ԔIQzض}훧5G{%u=i7+ zXJ[ ~orJo$U&N5Mh兹Ul'sZ1ۆ#}.%IMJ5Ϸ#fvRw74a6=]aZ Ya^]njJn$OZn5~C2^ڗ־ųXl>٬z?k>~%7Tn;b!Xk[XaoRȫ9Lj=qn3/= rIMĕK+5#b7O\2Zm>܌waKqGr\mISǫ5kZ}V3,=˲ Qk[3c1elg-'%7T}-jfg^>I]OZv5MfC>Rߛܒ*yu>SZ-}anU[>a쯪־vK{>1pkGRSm%RsvxM%?MWXk9y8ֵgX{e[*4֛kr2_lf5׬弻lV/7Ok=-OIMNƩXo?V2[{*}G'\[ rܪ|ÒSq%Rkn e*5Ϸ#fvRw74a%6T }/'ָ@UbwTi7eb!k[?YywIMG}gڱ~ٺ}oYm~׺|OWS֝SqY~5Ԭe$JE]aϨdTցqayX[VϘr{+5#b7O\2ZmIT3\r1݆ge-{mqsOcN^N5p>VJ4Z܌W;c+g9o.=z=k[>Ջ}Ko|Sy%Fzӱn>V+2Ʊ,ßQƩ>ܰ*0ITsZ1ۆ#}.%JsvxM%?IMؼ* iMƵXw63Vr]{RSy%G_b_n[z[|=?ScT|Vd7c+l-)WXs885zg^{Ukn e%6U+>܌waKqGr\muӗk\*}eyvUA)M=iַ#+fcXz[˾Oj^Zϵbtft$IQj̆=c}oc-7K"q2qk@Ÿϰ,-ʫg9%7U,־vK{>1pkGR3\r1݆ge-{mqsOSmQ_wgr}>ON>jXuӗk\*}eyvUA8xyeuKqr+kzF,u!Sy$IJI$RIB纺c+ucK[6d4SzGq[rqqmf]nx ~CZ ^nKľZmcI 8s{L$~`L+$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$J endstream endobj 108 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F26 30 0 R /F30 40 0 R /F24 17 0 R /F19 7 0 R /F27 41 0 R /F21 16 0 R >> /XObject << /Im11 98 0 R >> /ProcSet [ /PDF /Text ] >> endobj 115 0 obj << /Length 1292 /Filter /FlateDecode >> stream xڍWKo8W )ނna=4=ckWHPUXy|ClW׷i 83܈`hÔHMlk(6a&TdܫdIz# \Giյz4uz^ q>(fFZ}ƃdwg˜ӬR(2_ڂoJ,N|FϸR(܀ɳэy+J2Y$ mq;Dpq 0P45Gfy2n3'ªA;|  GЎ )ڮEvi6' ؐϐyKyECgT۶Hʢ*Yô/vDUfh=]x{CQyOEnw+'y>vM+rb }q<$/[=O,zۏr\ɸ&S7u_% oq3:kA: 8ӎ~zuN 5%1vhGɓk! L2TODst.)2"l5FdѭʄQTJ"@,FxQ*f ] ."_]~4kiWӨδPSzWeK1_N;z9)o`@-6 7X<-Y8;4hڅ]b%%JX( @]Vsyy>P6IX8Sȡ:qQ8~5c3XnZ> hÿHU 1?̥wshߌ>/:)P_4z(#IP4`^(-'pX/I&9O"2@-*a*yUNH̛SfFs S- ڳc6>َit˘{#ލ霧7W8R0CpĩZ R?)`A%{J/ɋ.$z" ,k> endobj 99 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/ControllerVsAmp.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 117 0 R /BBox [0 0 600 400] /Resources << /XObject << /Im0 118 0 R >>/ColorSpace << /CS0 119 0 R >>/ProcSet [ /PDF /ImageC /ImageI ] >> /Length 31 >> stream q 600 0 0 400 0 0 cm /Im0 Do Q endstream endobj 117 0 obj << /CreationDate (D:20080721194633+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080721194726+02'00') >> endobj 118 0 obj << /Subtype /Image /Length 6060 /Filter /FlateDecode /Name /X /BitsPerComponent 8 /ColorSpace 119 0 R /Width 600 /Height 400 /Type /XObject >> stream HۚF)Ek]W <$H" Z$-RT`4Rh/ؑJÇ2-6eX*ȅ*5cK 4wORǗ&R͞pWHc]{6Z^\Bƫsrڝ\ϋK!8*ĎT5|SE{E$ L "p$~7f2jD)IW/O9Vڑ 'B&\9b/5:2'\qꨳo04{y؛IUi6FVApP?t!djC㱇WS D)]FXd2u= {lk{zjSWjn' D)]-"cYɫxᩫU8S E܋AW#x}mjrG/>nl<0u5^}10;=h<,79MGܮȩ)`vn׏Gկkkq(0WE$ L "pr8SD)5 wƋeݝ D)5ݎ ,W`O8WaH5;"|qġ:rg]{ 0f*;tN.(FTpKS",8qu ~ pG32|%«'= D)5- Xͽ^!p( :-M=B}pU}0Wňv=xNsP8BSd̨,!V˘QYC'WYM^8-q^#+Px:Fݶx%)<)}D)< ^+Pxj@ 5W ^+Pxj@ 5ꕦTȱRܔ@224u㌲~,QixuΘDz&|j7A19g'9i(+mYٹX:+*]䔴3E:oyX*OV:%%F`<ԫ)5]p䦒"..[8K1@ 5W ^+Pxj@ %)ՃIҷQL$'Q`J5W ^+Pxj@ 5W ^+Pxj@ 8-IgȎpeu xU$M3&.J^CWR ieE r%U1.yEFy{MN ^CzW3î^BWs{8_y竿TE;"˩H۞Hep6ȅBeU[dzUk tzUjڏΫ9}W?j>[ԪW?30"DNҽahB\[ɜU^G ^eU|qB]EjثrH%*l^v*7^ET9O^bs(1ҫbsn|[ x5CWGZ{z }WFZ3v+zi`Gn*%rJ_MyVϫ9镡7gciRޥR*~+z-|j7ABRn׎ =>|"=Ҋ *EHb"{U[] |O diͮKxQEʛD^Iz8ˠUȷiWrW?v䦒"Ax{gd͡HzJij2H"d%Fz%95U6sW[+6^ ^maWME4d Œ}ډtk(ٯ*gqثj(ޞjFWDUU!AEV*+IZh(D};xN$xuxjPū?q# ^ūUґx5Kn H^q㻀Wdzufyec9-ݫ0,E;^1cM-v٫z +Ryu]N%2^9"ݫ"겜Jx]~閤ouD|N=R*m *M`N#=WuV=̽  Z"ϫS(kEC>z%'.{RPO^5+6N^U^qvihx߮ĹV$zZ}t(ێh~W:lHVwb挲~,zR۫VtWa ڍx-l% _:dq Gnk*U #2~m󽰋,4^sn&WX>Hc9W٫WH_U$+mqPr땼znnbW. x$)=ۍ;_\ؑIp0+}nW#mWMxҩW="pr9]b:\ªm^R"xr9][LG]&U=UH۽2ξ$WYzUxU'v79ӿ%W?U0+ydWw|W$lƫ~KWvuDd2"ҺWO\N#yIᝰQ^"˩~A{xTDr9ՏUXEW-(h'tTak>ea\MEę;ىF[AZD764}߃Wd^/?)^;{0փ\Q)K3*=\ָWPpWƨfAp%'_a) zoۯ \њ`WM*@8WgW*qnW'N7+ްjh:ا\m;˩qD.+9}ʄS]t \uP5yrU'wsOr5{hU gpOr5:_(Y+2_O|{F¸R9$pEtקbz#|JU 'pR8 *Z'&Xm퍼}MNCN֧քΒzk V=WPw ϩ6~2ƕ|ΡD$jjƕ|}j_񇫾W \*XGS]WhM_ qElNll8_h Wjއqk~]/p%V[G@)^vI`8L׼[>=U|^//k`GB\hs(I"W;\?LE2A=&گe\ ޯvpU\;Xm߿Jө&.劦'ruItrEWxJBIL,B4 ) 9em *SN4<+('p^~h \ tʟPйu\{pNg\%ɼ4 ,SzQh}699չ\=2\߃+p"\A4Suz"W$H U()zW \{҃WP\'4iΕx9) L^ќnILNu_vW\8+ә&T2W|Ѹ:3 抒/p \Er*p;=_g1|t;eU|JJtʇ$WU$"h࿴7_2w*zq/e;ՙ|DNTsxNEsg JYdϡD'ps8IJtz&WfNr(_D:32V[imK!N\]ŕmU7]To]2)^NONW+wی49T]"p(e+S>QM\D3ݚ?lQR1X\U2S \sboӋ׭6Z"r9^ 'e݌6h;+yNgJ(S}FO'tFu`=z\S\D|p%pd'W2ABYr5䷢q%z%: ߯c/t \Iqboq5|o}5?!aQNlt%>W})Pw:œZy^sThgLwA\ |Nes%9y8jotaNSV\펒|V\*06QS!\M%TW\8FS\EA\ |&N1̸%zzW{su4_pzo7Q W(WiN;•ѥwX%W Nyr[|tf>S}Sn\EQ;INqqױDiVӬfE8ϕo+ͩ>T[Mƕ r5:Z9śÛ6-QrS&:=:& q[l\`Z+SV|Tᯖ$SVTW[ˊG5NA>=: 1-p ;Cj&W*";O^AHzL9eN6 8eN9rş`NY-S\@NY-SI\m YI4W+)Euʑ+)E(>Ȓ+i)^ lzWWP +(B J!p=sNjjVϻ i[L2].jmsˆeE 0FE֒+fWWPY~.*Z7U2Vrl    imt~وZ!=k>T[- |$@?d11;Ե. zlk~ҍj4+efJ~otS-7 Hr>1mOnހuaLM2zٿy+uXq[+WoF9qrRRܡ^j|..!ķc$㫮8)܀g$h|<0^2\FߺAWjۇ Hr>1Kqn$ }?sxۑ:EO\ |$@B cc<'AAAAAAAA])]ҷMo"*@K:p ܉$]uSuVFչ^kkT3}bܝ+>jo*Q_+^gzxi3nIm;S9}?>w` 1zszܰלîcܯS7_B>>5JMQ hɕ2+33iU3(o#s{)7WW_?k?\M¾@Aˑ endstream endobj 119 0 obj [/Indexed/DeviceRGB 255 120 0 R] endobj 120 0 obj << /Length 237 /Filter /FlateDecode >> stream HOm@ T0GHBGf!m6Z H@zpr 'ywO̪'%aMpVlƤ! HDZZc~FfXR?2"to4dB{(5p5okBt%Y.uiY>D9HAFX@1_XY :'{9S]3^Lg'K/Hx\mێXe<}qu\. endstream endobj 113 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F27 41 0 R /F25 48 0 R /F30 40 0 R >> /XObject << /Im12 99 0 R >> /ProcSet [ /PDF /Text ] >> endobj 124 0 obj << /Length 1917 /Filter /FlateDecode >> stream xڽYKoFWB\ de#2c[|3؃f_?^YB' 5&F89nؕj-LjI6-loonl32QTpӤ*<]g~-w.yO-y}W?͙m`I,l̙J G8$O s& In-1e+ f\g\_'}(ŌH/*bj-j͵Nl.Y>iGpo4#3&B0å`1CC, .n}U?7]u9% 9j'rЩRH9lzh+EOc8R-Hvi[,ZS*k_8m;w_S)drnБ?4 T<@UȲvj-V2` ϸzDm`Jmվ@S8i J XFY>^*Y.<|v›_L~>Pzɍlt`.ˇZ7KC-\ .T! R IZz,yMh!_8H+"d:zS$xk eDcӾ iqLE*E|a 0",z`Uz@6s0>,;Ebg@NhE7SCPw}7\;'HuD]SqOݰ#]z8;`".fwרA9۾Pm}JmnVVaq(a(sEAdy]@瘵/\80i0|숯!p> endobj 121 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/StereoGraph.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 125 0 R /BBox [0 0 553 453] /Resources << /XObject << /Im0 126 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 553 0 0 453 0 0 cm /Im0 Do Q endstream endobj 125 0 obj << /CreationDate (D:20080705181702+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080705181721+02'00') >> endobj 126 0 obj << /Subtype /Image /Length 34879 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 553 /Height 453 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,)"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)%S^ՙm3&}{7e=8>\Wff9ͩc=}.k*k Jl$/NC?^7;yRS;Pnw9zwINK'r=Cqʢ}&V\핵?45qu;XO$a%9zwKr=CqʒdOzs/ӿ*JuY?UPmcZ:~n-,,t| JvY?T/NC?)Id^7;yR;PnwY%9zwQg־cel{vޟKZpRS;Pnw9zwINK'r=Cqʗzs%:,ӿ*_ZM/49.gOpc a%9zwKr=CqʒdOzs/ӿ*JuY?U~} ζZ]k-s\1`S;Pnw9zwINK'r=Cqʗzs%:,{~Zs3isX\1qysR;PnwY%9zwKr=CqʒdOzs/ӿ*JuXkulu[]A{\Szs%:,ӿ*_T$/NC?^7;yRS?ZKmm׵egsXZ߲)^7;yRS;Pnw9zwINK'r=Cqʗzs%:,v}k6:V纗lŭ~~Kr=CqʒdOzs/ӿ*JuY?T/NC?)IWxsS{SSZ=aa%)$IJI$RI$I%8?WYԺT2rK1r(kn._UmmIRf_Av-W;unV̅~æ*[mS[SG^gߣ#6*;XKmodo[=S`usPxd >=N/V=ںo15cY@X.n'O߫7)03"$HZɬ˓{f#7sc_#7scS9cz32??7Q]C:ӝ]՗eZ]hv]ZN ydc_O#7sc_#7scG!pG̏ȉkI/5slU32??7Q7c.ˇ\BW[\7Z})\cWV?^_Q鏗vy/t#͏8#Go4Go5$C96?gЩ[,i r.pw;Z.oKP<2kj=1;2??7Q2??7Q$G{<\F\FdHs_?\?#7sc/:ꬶ֫iܰ9U˜I>kC}5|xGgL?kޣ=gdoKdo])!\`xvA0Kj{A\qɚ&(Y# `TC/kzKH{nxO'*7gVE_ӶRVSoa.5e6ڵ5*u.psmen0A) ?o!q;0"bJGO_oC?,9rC_^uGջ+6}K ; }nv'Rī;ߏ{wWcx#AM> {ge?}^>{(d'Mf^%%Yr*J?7:_˸ݡzuym m z?#ZkK^ t^%%Yr*H_|9wEYr^%"?7:_v_N## n[upƛOݴ^%'sRDO!^Ty\rK?EI+ot.K?KTGK\rгVFiR/pΝ'BYrs?DO!^Ty\rK?EI+ot.K?KTGK\rfmݕ{n\ 8SE:ik;?Z9c>M?y\rK?EI+ot.K?\<2*?WoU{=2Zwp,gM,z9]Tǧ[b\1vƞ!_t~q6A}R'cIdr?̙$6y@'̎v=uim{QHEmD( f}O-vmgan#0L k>CO辌~5N+psL0)Y[-cx-s\$8 \V.G\:K;YG>Z\?& y}GmPu\Թ .2-TIn 9EsR ;$E*I$R++RDI%)$IJCqRD:-III$I%)"!T䔑EmmY`Iԝ*-p\8h*Cҟs:5sZ!($9V;,;tD kAL 1˞<6Nўf4>DW}v5?*I$$I)N"!r"JRI$I$gQߕgQߕ)I$JRI$j"NNu̢>瘒v֎\`p5H5:&1ȌAdYeuVmpc ց$xsM;덖0v[y!'fM}[VjUp5]U1@Qk6}Y9,(`=@K(uƯU5 cxܣ$ 4#"e"I&:ORZӇR쥬~éRI I$RI$I%8+ Į.?n^S 5F.iںgO7:Jlȱ4XG[q[^>ZYcՆ픶fռMۧ[܋o)ہm-`s{ 6GJjbu.A;bӏmّCvCKhuL<ُZfg^#X}eӇMU_zL_U7'=luv=ͤjh kGKm7ֺj,6ڭ첷湮kt $t4ao,VCF(FBJHG6(FBJpL陏v#F4j^8~?zNU~< +p1F^(FBÑ_We]FiaW  DF2L.'YCë ,Dr|gFXgWHN̜g\ iW ?ѳФMFqv)C(FB^hE)+(FBYl$!g/Bl4$!g/Bl4$u;?ZG6+&jJNG6(FBJHG6(FBJH-ͭkJkHpeOEl;w8jhH*sd)`p1'\;c6Uy>~hKУ? |8q1BIwuRPI;IУ? zgHt1_(FB4iIh$<Rt ?ѳЗG6REuo=kd:+1]K\d#(FB^hR`ϓ3GcHuID(  ~~e;73 oj;z7U8ؖ~Xoj`q .2h BAw}[MxkdžVeBbL0=!m1焳p,5Q_^(H!g/Bl4*k$Q愽 ?ѳВgӫȈSHuq[utOУ? )"H~hKУ? )"H~hKУ? )GQߕ}fMZ_?.INWXVu{jUقZ 0LLx:'[aW^N1ϕ,3Da^6Hvs,3`Lh6@x{ꤲ'[aW^N1ϕ,3 ( $Dl >7 >7I$I%)oKQv\Ե%$I$RϥV?sGLFVIT'6e8OlezY8NZbIMO?Sr08FZI&DI=JI$Rb7"!oIII$I%#7O8;+ޮeZ[EsH ā"u wgSQe&9& "/7w[o#[ֱ,xҬʄԘ`{Cޑfu﫝'&0M%V pA kt^_o6otΦtf[ H~0_jxq^\peˁ4kzo6mvդJv}:\gӫȉ)I$JRI$G~V"!G~V"$$wg_^K5?) ;2a<tRNwg_^K5?ñKsy%5ӣZ$R] gg^YG:? tv?3 <-+L/GQ@_ӷu;?Zj)$IJI$SkNNKo']KY%)$IJI$RI$33jJ( wRiģ3ʟo֖o"od߇ҳ2Ef1s+90ԗJmu?p}|[ܼ,ǶR1opEvl7VϺֻ[OIe-;sCsqI9 INJ'RͬK2]}ѷ[^agwE%$IgwE/Y1ϧWKP֗Ww]䒓3;"JsDa^6Hvs,3'[aW^N1ϕ,33;"JgR0^6Hc=Xgu9DҏS#~x~m]1zz~&mNXdm'Xgt'@ZY[w|d&8N9"%`/:H~<c)zȢ"H~<c)zȤu;?Zv:uߺ$sU;6_V;iTnևT9s21Û4t2#|x98u; ݭIgwE/Y1n8b*1oR%3;"U :;;]9ICKgwE%$IgwE/Y1+"^<c*MbG qIICKgwE%$IgwE/Y1?Ꚉm-;7]OgwE%$TzEz{~p}+v?!ZKgwE:9Fpn2B t^:/P֛7:gS:3-A]\$ N/oZ}3:oR[pt:/^}Φ7-H/8Gah,c?æMnlu\ԹZ]^ߺw"H~<c)zȤ!ȥ3;"gXmo.xf-x5;+鍊G0G JB̘p<Q ] ~3sl_T+(G^#=L׿/e땔X/? oY1яC /˛{6)QnzDfx?RR5_ӷ4v~|fx?RRDfx?RIICAXUnfC] qA:ti$կ:8u/ZꥭٝٹDnc\DI%)$IJI$Sz2Zȧ?v%~,m)}SñD;Uo'љe:h㗑^, <[  I)(ffdgMOe4cQ@;LƑ/O:obeNN7oRSI$$I)Hv}:\gӫ)"I$I$+O^feXdg2?0}dnͯGnF1'ep,~ORxv}b5vs,w9DҏS#~x~m]WDL<Աt?eBuS!1q(}I$\_seפK֏E;,3UR;8ԵS9sy%⑎8ieB_|MΎg~c$Va"-&*I$:~꜈O?SRDI%)$IJCȈGQ%$I$RI$?!TDI%)Q]gMUGlÄy$NXF2hA "/%:QJZZٽL̶Za$p/V__\zM>Gb Ng]Ŗ}[v421u&tXoQ yQv@|]ѣhǤI$5I%zO L1qGj!>yRvdÆy1# I$"zm`7yK5%кS76ϵLru!>p} ˝o[\쬓dW_`6##=F?3 0<.n'tF vI$E$I)N!j"JRI$I$'w:e-ekNNKoJRI$I$$I)I$JR'SثYdeӇMT$I)I$JRN"!rJHI$$I)HcQcQ)76z;}Cָ `iC?F8gVM8Ѿ}[uoz1?[[1= ]1geYjvPmY3cÍ~`i-O?1 yq˛ =8tֱsqDJFG7Em4ݑqˬ: ]OkVgXҪhe 2tnHġtm׻Wchdi(%*`өuӼ9h|&iÖl'rӘ?JpW5?EH++5$I)I$JG_ӷu;?ZI$$I)']KYdZӇR쥬I$$I)I$JxMvS9O`uOƽnm/Hy]UepnX}0P:OJʯ;+6YT͇{v=."MM׆4ZaqkK^tҙs:Mæ;2ZޛXLL ==0cY%kcX;C~ Vj-` q{O'Sة)gT}df ?3g JG7??g JG7?? ۫i?䣡rJT8q"I)8q"I)8w|]t1q(k2`I"V=?[1(A|[P9%r?J^DaQٽuLfY qg٩3z vhǵ3j?mze % at .hb'qr2u ͘} A{-jޯqR[~n@}7&`j>:e/8\4@kni4'(^) g?͟I$I$Rr"?@]NIII$I%)+""WFD$IJI$R;?ꚈwgSQRI$I%#sRK~u >XX~Ȭ͒fi: \o}K(WA .Yl.QKuxv:]/|6`elԓ{(>Q'<ą&;!@tuUm15hhIH&*\n@ofuWzrEY$< wㆴHYXf]VdOge(8rvN?^ۍ?ϳD\EȷYV7b\74Z]4i{ mus |pǐzl(I$)RI$j"N$$I)I$Jr~éRY?VԿ)k$$I)I$JRI$0v=jZSu ;[Ci:Z ͹Y:_wӢ+U_kp;uZ}>-::}]eXY7}Ky6=ZꬮNSmk-iG!T'SتGUh}?G?^ϧ5XYY[,u.~wOklfl0BJvUq01,;#-ۅ6 {GEM<7JHKWȤv}:\Pn2wRRt7^ҿoE%$IWȨ l.6NSbnL dae)  y{F sGf2O>Cn=G}wU~[LYc9P;{ߝ\踚􏯉NKWȫKR$+Rs))"]%gOhS ƿ۶]MDt+T+۬#;:[L$Le!ILMk /Wu>a;vWW71.OQh#UY"W7su%[Ŭm^^ǀ湻p:oc7|t?UMoJ$?M_7"IIi}o)ǢK2o쪖: 0 0Oatl[o7K:]m*sv"lێm)1aϘ~org=#gzmt.oNeX{ne#G?mm %3ti +vH.N%OWȧF"Dlf|?] b4HKWȢƑ$?M_7"IN_uOcX.uv0>!T׭m=:ōkǴ O[fQE|[u\uN[U?M f}`'pN9\DHb"4Oj]=Ci,qM`a!ֵZmi U c0c(DЅۤIWȥ+ST-D@noT7JHKWȤ!oJ<)pve->kc_']KYcTc/:3;5?hs6Ol$$I)I$JRI$I$,u?p}O_:8tINI$I$!r"N$$JR &i跾wD4S?0J3Gh[*W|KFW!FWR$I)I$JRN!jJeelևpt s6]-9N`e,-%t̟.Yp_-=Xùo4$ԣo?V<&;x>u%:92)˭峼E7_<$j!0$6+!8 r"?@]NErDI%)$IJCȈGQ%$I$RI$?!TDYXzUSӿ.GX^ok kBRp>Hvjd=]GFegV B]k[2H$="V7E`c d ;WjcNDio}9љ,_dO͐>PϧWKu\Թ=I%)$IH++SeV{Ft^iA2sryǒCu8K~=en:5sUNY16NN(>\2G>LCA?c_գЕ)zIS\oKQv\Ե%)$IJI$SkNNKo']KY%)$IJI$RI$&_=B1+ ۬}ƻהBEKh5[i)K'/O:obzUظC+/_u {Z;k!/u?p}dI%)$IJCsRD;>_?.II,Ox??A0W"8q=>*S_usq*i$Ŋ1F"';Ԩ6T?^?^$JRI$_ӷu;?Z$I)Lς5v9,5&-/&hvclDsL<ExSI4&wxLsљ_UC!}[y?@]NDCFT$JRI$GQ+"JHI$$I)@]MDC)^^65yv n{Ğc\ſ2~l`n=BՉ s.#q<7[&wt6~Ár;!tJ1_.n_0{{frw#x+Erާ?, `ڱ2\keyFbg:k$ RX8f? ZOGz:-DCqRE]*I$RI$ZӇR쥬~éRIJI$RI$I%<QV|VO}cae-ٵoc&vPuK*4c=sƇ0G8 I)*=չ[(n Mw7ֺj,6ڭ첷湮kt ~æ*Jnbt4ao,VCF(FB"I)G6(FB"I)G6,:r: 5q!))I:0Ƈ;htOBm6{v(C.jbj#Rki(FB^hDIZZУ? }gM<\?^Q愽 ?ѳЈJGQ愽 ?ѳЈJGQ 餺ɭ:Z_ӷ)^hKУ?$~hT:GoRSK~5mf[wQ?BQ'bDN&'b)TuN^Sew"]qnuVꦒ58V6_{3(꿠:5nk>+r& _4t>=,"Axi/?zg/Bl4"$ȏУ? zg$У? Iki%@GCȒQ愽 ?ѳЈJGQ愽 ?ѳЈJAm4tf=ݕ}ĩ0O`5:HZ7}v5a7v6 v'M oK\NָBd1~W laRׄjŴ6"6Zu.-i:zg$@`Ó$Y&nS&G̣(FB^hDI,:rG6sRDУ? zg$У? zg$O \bT ?ѳБ}wb"JGQ愽 ?ѳЈJi0/U7ɭոsdhksNƅc}Ts˺Io~9Qyc>JW7zu[pYݳ5]v .l6 g n\.R_#~i]4Y5G@~T ?ѳЇFm#3 p*4 GQ愽 ?ѳЈ GQb<|T{H*I)MX%PUYAֵAkFOկ:8u/Z)I$JRI$I$$I)K'/O:obeNN7oRSI$$I)H"D "[ d Yqh?TkY3ctIpq}NI+KTI$!FW!FW$JRI$_ӷu;?Z$I)I$JAGPû $MW'7p"AyYvۄNoO2I. }qnI[:FeYjhk[cWQkɚD8 <2v_VŗFQV)$I$JRWFDD:?)"I$J6Y]U\I$I@^{ƣnGWH_d 7Hukbbc`cWX1IVC)mmxypzca w$w&CNC_/v4}ǔlet_?.P1Y3rCA a^?oI/Q$~?oI/Q$JG?}7}w+RG^?oI$'%?IHGv;uq'Ok_ӷ)^?oI/Q$JG?{H$~?oInN5Rw]%.ui% s*N u.ixkD%yؿXۥuF&wk;0ɟǥ c?1<7 `~S_?.DIHG^?oI$'%?IH }7}ioGGQߕ)OK'"$D$G"I)v;uq'Okވtqy(Ygk4i$oKV',;]la;mbnv+ZaY%)r5 Bv];~?oI/Q$WPϤ9T4<A"`1"4GJ?Q$X}89n.k}{li$u%>Ru:.a9D$-kNNKoJRI$I$$I)I$JR'SثYdeӇMT$I)HO%o"tAaU[<\L/,uc)Fljtto2ϧWKu\ԹZZ$IJI$R++RDI%)$IJCqRD:-III$I%)"!T;vHac$OnDT~_~t"f]}qnIXicu}Y {,rTs3œ(O%$JFU!oDCȒ$I)}QGCvܞ@t7dYf ǢZ+ơ*0 d/L+uޭft继bV5탑nӸCCGBd=FS?5b_5xw}v5=I%)$IHu\ԹϧWKRI$I%#?ϳDC?ϳDIJI$RI$oKQv\Ե%<Տ'R*sguEi"^Ξ!t˙M{bjλݱM[\2ekhu d f|dVKmI*_up_}Oկ:8u/Z)I$JRI$I$GVXUfcѕ~KXn9\ B_uufS8xmOơdu,A9].NNj-nnXƱz/D-BJVV]S|J=Ovn9;L*YRu?^U8Mێ--!ß`}A]X(sYiⷽkۋ$Om⒝\J+#?#7Hu4>е??4*c9D@-{Ab{/j+ #vC3}cºZ>RϧWK}˛w򕥩C}QIIC}QII+ҋ}z6vO??4g&$??4g&!jQP]s~RJN_4ҋ}JH_4ҋ}JHO?S}Bߤ?QwQP?h`q\_׻>\}QBQ'b)LNS[:^6x A<{l;X+ p:S%IsIsۏ^[qM#(zOtV⑔.2"WFDg&HѮ6'NQwLWQ?hxqZ_g;3]}bޡt96;->83!":n}#bK,x\?W9+b4VI-6uy%]C}QND6rNYg,7)G?Ꚉhh77O)OMC}QIIC}QIJsRD ۫7i?)OM%$I/iEOM%$I/iEOM%(>;f;]ſS}JH_4ҋ}JH_4ҋ}JUN V.d9K_i)N/i)lj3qnr+uVHǂ id:Iai=uQţt݋}Ž6[agr斱8͜gư:kn,ܿR= Zt >zg&_T}``dcf.:"3UU?_up_}?AkzKk@X4wr VJRI$I$$I)I$JR'SثYdeӇMT(.=!],οPyeqY _?.DCsR$I$RI$1D1$IJI$Rv\ԵoKRRDI%)$IJCȈtw9%$I$S~_[[F[[ ;kv:U:F nGLjӨU>濨ttpihݧvMWH$ Z2\^Eeh mq ^%uY[*at` tL>~࿬?kj?/2{b)JI$ڨj"@]MDIJI$RI$ϧWKu\Թ%)$IJI$R3?D3?DI%)$IHv\ԵoKQR׌;r>_Z̾[01]p$2q$%]|X# ʺ>}!ͯ*^ : s?R?P}X~oeM:d~=9nw]2w5`W7Ǭ`ֆ֩uHN,o5es+ SDWW.zSUU?Qk$C;>OتZWc?SZI%9?\J%;>OتI%9?\J%;>OتI%9Xzuxy7;*"ג` W+oYz,?^$I)I$JRN!jJHI$$I)Htw9$$JRuΩҝoxX.\e״_XzWR=L 9ݼoǯn6 zmfOf/^CȈGQHO^εaN@PZ$zsuCc.f;{>5N^o&c׊_#H\k//3)$Ojw}v5%)$IJI$R;>_?.DCsRDI%)$IH++RI$I%#qRD:-DIJI$SMoѫ`ُ7db[ոh Tvڞ.s?~GX_s.=] =ߛ镮g9lxe_ApEBGr~éRY?VԿ)k*I$$I)I$JyW^ax뻽>M>%Z}ct[y9}~-+Y}Y#c=OwVIN'Dnk13QQ[KKǯ&1kTۺK)ypm=,sװ>`Y?Y%6*tgW߹=|&_m8W^_ZѷWno5dg&0WbUkڲVYahw&<?r>]2KF@U1|*JWqkՋC׵u G5_:n+;.[#/Vҳ:fKg3vl%fuN+L;1rݓMc+sY6[scX|T2< :YgƂ[u_E;-bdYp`qZU\FAa%X2v.n.ƯT;uM 9Sda|77dQNF;i'm~͘ƃydխ~L2rsk)cP ɶk;{m$INO[hwP@ ?_7p}s]uGZCQ)^<_{Iz,"$,%$JG$]M.WhwoKRRxYDI%#YKgwI$gwIBZuww;:?@]NIJYKgwI$gwId}k{-8# ˥ÝmEY4Y{wUs]%\$AYg%-ui-/}lv0:dos_Zٗr: D#~~ຎ]~P9V:^뉰9Iv+_gwIJ몶SC4ִ I D{e9dt')n#uG$"H]$@]MDIHxYDI%#YKgwI$ʚ^߼wV}:\,%$JG$"I)D5?E/=$+R?E/=$xIHxYDI% Yw;[$N$~<_{Iz,"$]Oܾ:Qes,ݷp7:zC*E7RI.ǝYQl}˦\:>fWԝ\ߡ汶T0wv VzLX-q3!cTzKaqmyA/s缹>dY?VԿ)k*I$$I)I$JRI$~æ*Y?Y%:#\G&Vw?Jo7֍ZlUg}SįF~/yUu<3e>t2YzK8B, {AUՏ[Jr2ޒ1'0NtV:Ksnmu-y4tng/zSw~6E>{awE?:VgL}R7lXn-ĬΩt^~F.[pr)|wenk&s.lkxt/Sִ,l8= 2|r=ލkvcY#>*GtVC3{imfͫv2NЫyaݸU鸇\Yu`FNS-2[{X4Q{{\֗w.I$(/8Y9H>7fGZCQ)"I$I$!j"N$JRI$O?SrJHI$$I)S}7zyc/~u;yPzON~> v#SyUf_OfEÝWgk3Mhc}kSi>a}c['_zNYr<,J0?c$Jv%$I)@]MDC)I$JRI$r"N"$$I)I$JFgXgXI$$I)N!j"JRI$ Y+Ȧ}%.gGX~uk5K[Lڽ:Y*#ɓ9c3 -!']KYdZӇR쥬RI$I$$I)X7b}Z,#ǫ1.mͷ`_2PIu5д_[Y*n:keYsCѴ i;Ú#4CfUjp;YZݧMeEn?<<ȾV?IeUVwO}LD e^Ј'Yr[{hȠ sk9csbZۍU5c^QvѲ~CI$' }gQZ2<\uGZCQ)^pKף#?$~pKף#?$~pPCj?uu;?Zz?3JGz?3JG 4͍Gwt:~꜒z?3JGz?3Jp:7B):ʀcK+YY{}$ i'ecO,nkYS5;$B}*!e<&$C8JP;Ę1wRI$$I)I$JRI$,;oqV$tQs?eg?%#q1Z>OM浬~W<֤D"#B >v|9M?{?܊p l1DD3OccC :C]SioWU-ߎf-/1ɟWson絾Sft1#vUfٍJ/F鷶ΐhtZk ׆3heǼ}&aLjDqeC B (q3>c3[~g[uNZn[N&LKc%~WHA/ zzy#(èաtބzA?az?=!v.Si_#ӶnN(ocU6fUf6&%~~m}T=vh톴I$GZCQ7= NzϿIII$I%)oKQv\Ե%$I$RI$:~꜈O?SRDI%)$INoLfֿj?Q-]֣}n~O ͵3DT~sR.牺9 IБ1Hw_ۛPelu O@y)$Q%I$JRI$K?U=ӿ"}u0A;AckYwcmuXyWŽeYNM'緣W[x嵳hsƆ{>dxa,HAH;KpzLߍMv n1_[˾1͢~>>Q9b:KI޶#K\zs/ӿ*cO;;OE/Z){?'zfVzs#vw>U|?Xzkn5ReGsWZA/v=$Q/]ӿ*_U_֟wv_>RcO?p?ҭӿ*_U_֟wv_>RcO_p?Ҭrz=StvbQ .a3왕ɲ+oұp>7bUo@&ꩦ׷@e3{/'zWI`K֟wv^{OIާUI`K֟wv^{OIޫUCqRՋcO;;OEWꫠ?UT6MnRc_Oq?үL"폭??O3~y"폭??W3~yO?S/폭??_<]n?@.cnNeCUU`սc_Oq?үL"폭??O3~y"폭??W3~y]K _ܗ@o=du 98_}?e;I4bġ.i89u0vi$vLNk# ,@as!V}>$k}g"oCSh{ z$k}g"oCRO^;d޻}v5sy%-#QP#.}x oCRO^;d޻,?Yg*ȥ[?P_W?Kʿ)~?9WE/z=$UöO/'gӫȋX(zɸHuxH>=UKޏi?{ z$k}g"oCRO^;d޻,?Yg*ȥ[?P_W?}wb"7SEuoʝC^gockUYg*ȥGğvwXUKʿ){?'z~y?]ĖoCR(r^{OIޫ߇l^OboKQ7_v]Ut"_prU6=,iV?k}g"'Ia?9WE/Yg*ȥGğvwXUPi߫mfm}B#,OI?Ԍ&^Ar_ۛP{v<\<[v]V4-s2.ĮOByrJ:NDyl*JrNM?%IͮK;zI)];7Pܖw(Iվ=Ի}nwP%-s74ב)dN6 1qKc,cM7hvə-t3w9.-iwڦ{UW^TfY@[V2Mޖ%6T}δ{}u]_ھw}?zo?>gݷw0ӿugR_kޤ.vO[1i6ulZv(_%bCw ;apݶӿugR_kޥJrNM?%J,kuuc3A{Z#+S|~ej};)?ٻl9m*c]{[++FfQf=z0ı5~ˆ^,va}MӿugR_kޥJrNM?%IͮK;z~_loO}e?g7t^>mԔgN[}ocvޡ nqZNM?%H{*.RYte}Z=*ˁhp"UVΡ1ǹA=%WP1];7Pܖw%6wn,Z$'mtCrYԗ麇䳿k(\-uO9isCHۇ%"阭kS\\]kky:af}]ΡcnfVe/EWݬ@ `Ii$I)I$JRI$I$,ΐrrn.fFﭴqKFV^ÆM:FI)&-8bӣSS$K&I)I$Js:A9k.Y{4^klsa0-Xװ[KäCI=ϊJs(诧Pʱ556awω+M$RI$^2ֲ̟)_KC_kwTư{x[iW9}c~;zC/[I%93]v4WX{]l6ش@KA$RI$}iVGϰ~_o=H>[orrm{lKژN5n-p-$p =?+mɷ&ܛ~G^ Y u3uI%)/[Q[鵒FX \% FI%9} e ܬ̌[lj(qx5XdŧԲBW?` cQIM~WL:UMxƗ I$*Uu Wb\\*{mlPFI)̯՘-ʻ':kVg**,us]dL.oN*v>~V *xUbݗ}eٷ N<6m#$I$,߫YE8ӱ+/G~տ?H"t>լJkG4elȹvZ@lz-{\A=0z{0lɺ=l +cZց?I&I)I$JRu>X\m.a"l0BI) fdetd F.Т 3>PI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IO endstream endobj 122 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R /F31 67 0 R /F33 42 0 R /F24 17 0 R /F30 40 0 R /F28 49 0 R >> /XObject << /Im13 121 0 R >> /ProcSet [ /PDF /Text ] >> endobj 129 0 obj << /Length 2262 /Filter /FlateDecode >> stream xZKoFW{u 6`w3,fhDj)*#~/'z|U]U͟&GKob61lrJ>͘9Mqk$FI/6uVe|!k,-WWhº$qB&է/4Y/ %̹Sn,JuW?M1$ܨ]VDM["j^j(8_pcg4H*MP{1嬾: y}(1^D 쵆|U#1P 9nvJwa9#E.Z}a@,#] LbرR,#\;- tD?ꂁ [|!4 TZ˔U $wJ(Tw֢ll7ER麗uU{9:%B۳T'^TuT(ӼӭGU:",?(a^> gr,1!kpoE?錗@e8PP+0na~0N'F)n'0!ƼBթ'n41UNt 1H2>dEd2:<.v5K9 b$0)J-N \8>\!CmyI)yߛ.AI'D%9X(?KM4ܽ/ i5EA}[ۻfMci6DX3!9(܈Ej$P|'l" "ڲ+F 0#@..jam0>+ғVad󪓱I8PGqpF(9 uXhNWpN!zaM(ѵ"M6<]} 1LE~e$*D,)HMH/u| 5"W(셑p(wt13wW '#V~ $4DA  o6)ܑ~M$> hTv{?:|,%)X1~2!|hQK0 gDʷV:깠4ŗH+a@1LF6ɳSгȦ.Gy8 8 1F8 *%#9%i`).ȳ#!fTO,;8j/+8prsАȣS~~q~- cԹ|'~y$DXͲSr5+o$8+q&߅aLGZ&v PptZqF#Vmւ\h6 GDw_HfvV`]cC%]UZi"zw*j,K|TU\Gp}/rS.K*)U^0}]"]Zf]̪@l8 ]/ HL!ہpiGc ,05zE+Uf3*&)4( _F U|3e.o#l(. ?Q۫rus'; U~ؗW,@y*۴΃os^FQ0/%G\ I6UB g 7XǏ9^#q `:-?s+B3،r*UCxƞSbrxAE#8V `ݑ1L4a l:l8S/.um_AR ӶvMl\7lpu6oF`x7mnڅL'[`]PjlJt{eǡ{DÀLC VU^DžV><F:d/#MeL|h0UkTGh],]?IrveѴs/p0w =i]m4w`%p ŸtΗiЅ,?3> XwTUA(D ~]F2ƭelk=L_q{ F8x!{(:O׻? zíP K>V_fJۻ]PϦ@wx%A.Ƣ#J?h6Y7/F8*b&ʇZ(ǀ/yf-y`5>]l zul6k T6Wa;qy^sY ,m|<SP{/> endobj 127 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F27 41 0 R /F28 49 0 R /F30 40 0 R /F31 67 0 R /F33 42 0 R /F24 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 135 0 obj << /Length 1937 /Filter /FlateDecode >> stream xY[s~ϯP 2DV:[uXv<[ITؖHlVH΁}XGݓonn2XbS]R&jMrJ~Lڢ^dR:}`&ͷۢn?~w$@.4B%4`ԝoW4'A,rs4YJwtpiWxz&D)N c@!jj&H*!:me NDe<8+s"C 6?)!m)`DL 4Q\ͯ&r$Eyx;v]&,Z'Lw]eTvcuapSnF-vjBi#ȋ:#?Q:ay@f E2 A4c/?0$LILAgh\Qh5xds:[v0|:A%ym>*9vٖն ?H#x`@{yx1dN8aD,+Uq,J*vb gG:(n9I% '&\UwቻA;3,moLu}mzV-!riҏ }Ee=P&>X1aqէc; 蘓DcLomA6\݉+DBL DLD-,8q#g]K lXGﻢ,yS )` BUhsyXyCOS`YK盿2!|-,śfE™ 4f:M4 7wc(nnP6Ew]=Ņ};8(FUuL\d]*N,]?_^bajN_C.WEY> 8#`rSkJw ^Sxf5$]"0h6U>r?2kwIB)Ûa}.c-xE ^} ~88[kgKdgz-b0{dp {/\X`K'3#ߜ~dvݿpf>8`!ղhNK;'#.Ɔ%⶯fp+f|L[iߊ)н }Mʺ סzZ?ط~ZM&BC >NC 뼮sGυ)YdU{=Sٸ:yeZ-³<Bq N Hops۩i!㡽Qe|U4'ԗ<(-r++s 70]D]݄SpsS:eu_uw}PkvS'l8?o'KưUG) MJꔳ ܥM4yS4}nK xfL endstream endobj 134 0 obj << /Type /Page /Contents 135 0 R /Resources 133 0 R /MediaBox [0 0 595.276 841.89] /Parent 116 0 R >> endobj 133 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R /F31 67 0 R /F28 49 0 R /F33 42 0 R /F30 40 0 R /F18 5 0 R /F19 7 0 R /F21 16 0 R /F54 39 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 139 0 obj << /Length 1305 /Filter /FlateDecode >> stream xڵWK6W94rj$%ꑢm& 䠕1[Zt&3J+ެoW",.YɃ /cɋ e"B^m_ q EL#(gfmկWO+Z,wӸLҠ>}`^,e:C"ΤoW^ PRJ1Ci,r9b82cC֬=#z1[XUרU5j))<y iB~jЊHMeW{ExU)G&lP@iԭYZ{}?4No uCn^"ܟ|n#+ h;XϸJ(Qfh(H "cZ~Ut4pX<\pV#'݃<.S۟aF+㄃ml?#2b: £Lg=^(Pl KYP4B΢$IªPt< -TsX!O-%&ݑTW=1br@UBN6zܟ7Iv'N9^ev <]V7T6̡wk|0gb|;| l). U;b7fӒxpFDYj̐'؆/#pOAQ+ > endobj 137 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F21 16 0 R /F19 7 0 R /F51 33 0 R /F52 31 0 R /F53 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 142 0 obj << /Length 469 /Filter /FlateDecode >> stream xuSKo0 WL&Fn`iC}zp6XؿGn4A,͖SiQE;΢bn<ωhm[\vl-bu,iHLyɾsb"v$ EXFsuj#,hbܢ瑂Khn&猂ʩ<+rIlL!rXITc!"kJ+v+)~VKٍg[j^{?J"8LL[}'!@ 3dT/ωR 3`sNuƿ]zrե]8$-G71 8]ć !UfĮ)/TѱO",.T0;fgw p?)㜛4$~ԡO&~Q0!^O<֋@T4J:Sw^̽Z7-'3wHc2 endstream endobj 141 0 obj << /Type /Page /Contents 142 0 R /Resources 140 0 R /MediaBox [0 0 595.276 841.89] /Parent 116 0 R >> endobj 130 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/PannerSI1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 143 0 R /BBox [0 0 265 306] /Resources << /XObject << /Im0 144 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 265 0 0 306 0 0 cm /Im0 Do Q endstream endobj 143 0 obj << /CreationDate (D:20080713142052+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080713142120+02'00') >> endobj 144 0 obj << /Subtype /Image /Length 9708 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 265 /Height 306 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,2 "B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IHȫuĆZ\e h `'RSQ^DbRχl>Xvŕ1?ͽGj2JymʡL}C3ASun.n:SM݇0wV_[+b7'twWG^ew1~V^Hs/Yg*0nڬ?ᵖU^ bwQuk}?Zai l` )}W1:d}CmcҝAG,pqucec>bdZ^/n=[r$&#O#tL>*醴ϣMT2ĘcnMJ]3ͱX*{덖Y@xnsH> M,n_NXeE\=^a.=45ɖ]u̧]6͇v=ղKkK׵M!.Ѻu9>-e>etnv5Γ27N֛+s],0Mt2ǹ3=  4ܱHnh.?&PɮC5>vWzj2I)aʹݴ;e &=uc\QIH齗:X֕= wi7$oM&L8;O)ӗU4&2_eV<8#Ykkpqn5sKAwNEy重|=FQRIHm"Kml6Of;e9c?umr"I)Vz{kJY[h'鵃O=$7eUC^ "GU8)X*ctlvn(SI%!* m5>VV?F55aʹݴtRBƿ#l>D{?=)I$JRI$!Au%XC=^~.DIJI$RI$I%)$IH23p6|^LsBv7׹1koyyV1r$A,_Ó?"lo3$힏si'~}_?lo3$힏si%1Wޏ'; -Ÿ^"=&/sz@i :^凷3ls㈕RI$I$RI$I%)$IL)mLdSw8g\KJ%/[M?O)I$JRI$K/`cƵZA aZY# $R݃o~F/rf;}]Q k#`{~!A' 25sƷ#%tN{F,cg%ug q+iP"Enְi+F2HSj/[^C,-zcF /TxAUk|c̶U~?_m:2{k^6Ɩ~ӯJ:I$I$$I)I$JAs綠"Y,{u Uw9G-w TRI$I%!ʼ6U\K\#!),۹nnnϞDI%)$IJI$RI${VR[-KΖ/~igr_Oɻz].,U쪦[l\ew8=Ansj5U꺶9c Z[`n8 JN,ܺ_o{ٯml{HɕG'"̫}sEUhѕ5vi$I;Z)Kגj/[TyOnr͏2VS# W*ʙ^ +W}e=c $C_=zK?.KfzTǂlXhkCG@+Xx <҉ Vנr_נrY>=zK?%=zK?/:I/U>5iu:??Ji=?g;|$T #iӻԷs~I$$I)].ȩEYv25W͵`iac9XIJI$RI$I%)$IO!wcfQ`sl',Gλ)ap"dȃg/k:jRƳEzH'q#/k:jRƳEzI}'q+}LWzrDzƆ p I%fx$b (lR~V+yVAkt;. M$Ծm뺕o3AcI'_]׿i]O\|y~yyLcinA{ƺF`apxxPW: T<%\x;mGaߔumhKM$I5|*u_U0NCsuUlQpcA=9Ez>8n-[G<_K˞ަ;? pzt|({}i_JlI)I$JGup\c"!dP2+5E%#ȷТˣw>8WO΢pkK;}89?O+ə]Ȯ4{Ty$c_,uDjNc?lMA/go IGK[9{? %?lMAri%Kh{(w4I#腼/ S@-^r1)6\ct {zFLVŤp6>+=7Ǧk'p ,ۆ;<ȳv߳,euG󒂬]tf1u!up*0z?Y$APWޮ oBTWChy ~U.~U,^_C_Tkk`u{Z\o.>爖OE!b2pikmXdu-hcOi$hmHDAѾRA&]#qh֛lI$7[žN?\-̋)Y3y]58{/P0 ǧ[<Et<Ŀݙ[)$ug!o4W7h.?uY3Mu'"Zq1'0q?8pkI{'{p3M/&Ē~Wq)8|QIF^acnN7n;J-'Y3/??I$$I)km!p=psK塞m/3X~ GIM|9?O+תgAI^V͸iȩ$Q5I$oBW7T?!w|_+4<˅Cc?*Cc?*?/[/!i/*I$MI$J{?m#Rom#R.Kϋ>%INRI$I$$I)I$JAe_azѶ=:72odsX$$I)I$JAsk&ګYsk6`'\PsZ<5}!.'X l+Q$=# oE/?зVHPc6zG_goȭT+?>Ɔ/Dvø 4+$ EF]Fk\;GB[Z&$nQ> ˒9Dv+l-5GB[Z!g1.W[k)͞"RK+cZ]7nZ x+i$dlITI"$I)I$JRI$I$tRki$=yD@mgwiט6?e?nMNeycoReflÏ?z/JKK|!5I/di)1$VOk??ޗڲYq4yYd94OyV^I*TmP>A6<ʒI% *I$I%)$IJI$R,kYn{?AdRʘʹ:D$I)Hw_V;C0 ~@$WuX83F;|5Բ>`=i[`Z^SE1̩a-ż7n99R\[[e?{@syr6"g{f=~F#_~ÕYK.{n=i`QI$ \PWީ|+/Wo.cS!U@yǢv pG+?tj^}v%v׶` \55Út#Bk5e7:M|C_Cr)~=cuP&-,=am&ֽq0Lb3! A4X6Ʒȕ/P l^鸹VtD.ɤ;61u Zk Ԭno.WGUffWtm}k5SK%q"'_T3r˷6mil矦$s4Dc +?ŅQ/u ? Ox_EywoRKt/-_XE|Ő\ 0@(ʭG!BIS3NfC)0`'B}:QC 9:ͫK~qG]$o_6/пm_z\+=$D tԠĥRk|I9I{EOX)I$JRI$e-mB\.4 9Wz`ʫ\#$ԕkuT\H /=w՞ ($)Ě.ŭ}ZKSmo_Kmo_K]/7T?!ws:^ָmBջD;i8_տԼzպm鵶 E7Uq?oZ2B8 :b "$:xvԿڗ{s:Z)Kל@'TPc,`kHpveʗ0D 6EnVS# W,ʫ+k%]w *&G6g:c[7:4!cmhi$<.ޥ][Aӻnmqb D ~ <ؕ$c1Ĵ:4%HpR,bI$ֺi'L?*LWR, U.stk]H4,z>YwKos%)$IJI$R;N`F#q8|D" e슚5X$I)I$JRI$I$$^OI9cHi B£alzLnf$v,,F1~L,f@4oRMA_gM3ܷ,wĿ.k}ɥ>o -v?ќ~RT:GX:v\XZ3>(d3!29y6<?IO Fqv-lF2;6RU}NqfBא-3 [_[-λ1Bc]zlI؟ ~+hn>M<<Ԯu#OT=Al%+=!MI}u8%sNSQ,RI$N5FCé>7?kWOKA)V[}=KQ} X!efց]ۆk_#{ n:|`so@{5cRI$$I)k饯6G;ru8.c{.DIJI$RI$I%)$INV8Hs8qqqI$#~U,oJC?'6:%>[G$j,FRI+V`mW}W:muHd, w{\|Q&룩)'sAI&E[-wbw_Eusby3|I%;U??ꞹ?X?e280VYq.+'ad?>8 P;LȐ4'yDW0Q/҉y߁[Iu '?Y?(q~UjU *F+*~h PmRp\hU> ,M9= :JRI$I$Y dd7}۽jglUgXIJI$RI$I%)$IN/ ]/ Xt̽7܇(h݊7)֋y۹1À.tv@KT!tԊƈ ۨI$jcqt}nygqkKN>HFM>k;Vo]ߑ]%vgRI$j$IJI$RI$I%!Źlp,f {?Q*F6tv$I)I$JExǬXF}uc\"]v6ߢǍc)I$JRI$I$$I)!1p 319n$GD2_y^8]|S'qz@";<K}/wM/oNs/x4y2__/ɥޫ?_c~1u+?z:Hsqϵڑ&;y|g(c\EG?1,lFr$^I$ I$RI$I%)$IHqi8ɒ_c- I}]ZF)I$JRI$fRk+[K2=߃Q-9TǞF>R(fK7}1k6G%&IW}Y̽~LxnScڝ:7xԔ$:s?I#u՜Y`i;?%6A{P3|jmގm>;w$ +cȹ4 d&3nmƝxdOswIIAL[lݬܢM{\TȒ !1mN\ k5|79%$IWe}rePE+ygomIIC S#~wP8kc@rJNuYy4^ٮqFZ۝^^+~7p7s*JU72odsX q9ݹs$y^FIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%? endstream endobj 131 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/PannerSI2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 145 0 R /BBox [0 0 557 665] /Resources << /XObject << /Im0 146 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 557 0 0 665 0 0 cm /Im0 Do Q endstream endobj 145 0 obj << /CreationDate (D:20080713142054+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080713142106+02'00') >> endobj 146 0 obj << /Subtype /Image /Length 26815 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 557 /Height 665 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;-"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$OGr?gsO_f=o[ӟrJuIQb^ULsDێ܇Ziq$NZI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRnEnǯk]cK,gx(vC#qq]|JU-#!ӡ>\ۿ>G7zzjq[MI%;wiB崟Y]:IH,fqT;s"2({/gDI%#d=:t5G fp_uF"Gb?tR+۔5Ql.Clpi SI% |[S20ȕsjc#YIL.5Enkl7ܖ,YXJ@YȺ\Sn~Jw7!}Φ5DI%0\X>T: Twk*sODtR]mE~")ޔnoOi>;wiM$崟Y]4XgV56M1p$s=|Kr2:X#^DR;ԗ]Q~#R.k+ޣ 6\"0\*[֐/qPfc_9 36#\>h28}NyTV4Pܖl6l,eYnW?D?$tR;揳u60G=5{,i`{*I)L{;9s"{>euY[gXJazQ}=l1 [~evW[g^Jki3_SG ȡc痴G=$5e l,/zfw.\SwGJE{r]f0|#m“¨u}ikgSI% |mOdpʜ?k"W31Ϛ-[g-gGI%0x%ܖMM;QRIHR[uB&GXN9cu60G=$tȽ{4GBgu=ʜqߑ$帏]b5V^g6N.s}X{N۾cJi$4-?h s MMk3ɦ}Nq8\ȎJah(sXG=5-kO ka`DRV]uF"GZ'{r]f0|#m*I)B.s^cKAs*-4ݻ֦vկ̫ )I$JR mǰ,65\FUlbeůh4$I$I$$I)I$JRI$.zv]~k^?e_]p13>\ŎպgC|ns1.Thv=ۿ3P J8~7?)Eq,1C͟^~7?)Eq%?hW#6Ɨ{Z>uti&'讙hsL$8ҩg ԱA!&xZSnW+,cxxIҤJ똤I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IH/6W\q\"]v6ߢ c5"JRI$e̩17<aDC^ArX=%$I$RI$I%)$IJI$Rkїk튇?]o'ҋM6_`ΞI0I'0z3uLn5V a-11uWΩenc-s\ A 3H%n2eJ1/RW^Y ɨ{`8g}?-_|<ÅdIU3PI/C;h䖓IU3PI/C;hSi%WC$ ?IM_C;h3PI%6U} ?KC$IU3PI>ݎ]q{l ]׳RSe$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IH3)}>ǻj:]Ϣm|,)I$JR]v)vlha +(lb!Y?RTI%)$IJI$RI$I%)yֿ+ؽyֿ+ب|S|~E()$z5$I).'B,oP~E帟ҩg ԱA¾\aϋJI-'I$JRI$I$$I)JM1V^c#?ڒI$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JGsc6`'\D" s,ɉm>{QRI$;SY71&=\4(q؊m6:| vק%'I$RI$I%)$IJI$RfwyɺNI6PH kxRi=#%4zG?[i&PcOˉ4zG?Kh$Kn};rJcsH +;@RI:0>X Y<2*jI$)$IJI$RI$I%)U2?ҫ dRSi$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IM|Zj$8KL~뭭J}`{ cX\I$ d\cb.+*cmJפ/kJJHI$$I)I$Jy԰h9mk\Z;Kf\Vvb̋͗Z|m\zqo4zoa|s:!BcgRwۏ%Oܻd>9]j6i/_˿IVI.9UCcd[iu/plnq$+Uc}T*-nݏΙ~_I%#I$I%)$IJI$RI$I%)U2?ҫ dRSi$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IH1~5Ũmv[K[P q=;*JRI$uY1XlchI]+,6V/-В $JRI$I$Ǯx_#~!?zHsC `cw"vko:Qu`X-1S[#ph*Lpk4< k v;H?qVssK5TK6pE^&uwm$:TI1u z]uۓKu|Z:g̣gIP$U[+?9?]?I~.u%i%# WLt۬%S?䕤SWLt۬)W0-{k&5V\O⒛I$JRI$I$$I)JM1V^c#?ڒI*.31ZA lto3$ Qcq%OH?I~;gI.تvJ펑s䔪2U9tXh28=wm$эY"T} nn%OH?I~;gIآvJ펑s?v7\'Uĕ?#c)Um ˢǻF1? Uci$A*I$RI$I%)$IJI$RI$I%)$IJI$R=m eUe~[-tm7h7Ϟ4I%) S鬂M5Cf"K,}ow43<$JRI$I$ǮOΫصE FrB?bO'=$DiMc 9LqHD- ?1i$%?7${R/wi$%?7$*/w{oE_>e1Z68x}]t8Ay`!5$IJI$R\O*=%6I$I%)$IJI$R^c#?ڭ,Guv]Esnoݻ\!Ç$>f[r tWoPw#)heֹ˞X.&ATZPJFʒI$W#ޫ~hx*ѿLo?^Et~a~~ An7_ _<|n)|bP/9/.2`xIVIhBL6I$)^nsz3H!*Dq nO^Et~axG:n$IJI$RI$I%)$IJI$RI$I%)$IHrvEM-|+ʾmK}kJRI$.{/5Z {k3 ORd@˫̻ӨK<ǒN14t:ϯ} ³k֘>=7`ɨ~4v?\߻w&߻w&ڟs_g=Kn0ևJx]\Xq7LCN1!O`')LQCI)XI$$I)I$JRI$iU))?J9[`L3>tĵ#Oӣ KP-QIsx_`ɥ>'>O(!=K]M/ZJD U;4\2*ef2M _Vٍ|zKzkKvlIW2."\^@&JѿLoCd7O\N++n1r|} _R珘meҹӱr=O\sv֯AnoəU4l|w K_ck 5͑& wZѦ7orNc{=3T۵wK1zmm 20nsw1o2Z"XI]xzwW̪,s/m֘k/nUK걎CUakcikAQؿ@YԨsZ^CkbNBtOW䗑D~aJ?Q+ΧK-#fZse6Iv h*ʫ3.ְ%,7vǒX $ K}%3BӨpkH?Ϯ&OJr=$J(bI$W)$IJI$RI$I%#`}1pc"!dP2+5E%)$IJC_JyݵGl A{Qak,ϬgSV!P5Gܗ??7ʰ:^/Nu7sWIsxl{B8##)%c~Wmlm߳{=Mw|mN5W@č  e.7!\꾣;k4~-AI%I$RI$I%)$IJUs?{?fu_]KA ING׆_`?Wi4c-sq&],76ۍl/Nd!+[9 N?1?gA\ȢF=F J躅y$W~0$A0['j~lRi/>howI\Y/!V;1h.2u2*2I-(PjjIYC ]m,-.g: 쪥/C#WbRv|Ps_ .=I$6TI$$I)I$JRI$GvZ3f;mV/6W\=r*JRI$ewb?NZ*XCT雞X s03/ATզ>yMQk'%3ridIsOfcgbb{]`DGHݚIҐ *md"A&D|+N]/ϴ}8P.iu_Q D?q hGSI-k_u NY0e:]XUpg-`V=6Xs[[tkIdf?K_'vV{.#_K;~*\f?ܛ*{ZHq ]VVCىHS'X닪OfJN7ÿz5uxޤgoUkG^j}QP;+Wy_} y>`{~hBINĤI%=ԏ߳w0J.ek}2RqsP[w~F.gr^m RI$^I%)$IJI$RI$I%)$IJI$RUsbƾE{ix:vKܜo$ _RVsSȡӣ({\t}~kOZڹi[xsߚY/,I-[rna 4I~ODU[k5MJѯIMCj@ī;KӴCz]H"Yf963!AzSuk"vMٺ熵&+k[+şnbI"Prof8pax[^'MDpفv\܆Qc?D9l$k*@شI;#LO|b?t3/N+s{[$}v__^vc:#wlq28X_#+8sGh9qr]HLإ??b~&GKb`ľ^}BoѺ-}1ĝu2cBR$u-TI&RI$I$$I)I$JRI$I$$I)?,VLQb_8ԕ,ѱ $zgs Lk?& `$]HLح_؟$/W?^+Gg_b`ŵzc:V?٫vt龎ٸV0w4pGt@t@κK\m.{6]ZhX۫I-) ~,GksO`IIׯIu/Vռ~Kc嗑|5$Zm$.̊*uuc -{g=ո4[4T⏜3=yoGo??FLʙ^iUT+JuK>/^tg} uߵ)0M^$8xP?;?gE/?;?gEO/P#R#RүK1Az7z?">tFA5h15>JFR(U2czI$LI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IMLQbg{k {_Pf=8`HJ&ԽTdϴS]\W/F|Y.cdF.646x$I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$xa+j [IJI$RI$I%)$IJI$SWx^JJ_ VRI$I%)$IM|첖KԸƞ[Da*[ltUq2nFIJI$R|hW;MYm:nXBk {m1kbJJ>vO~F=nk'sxkd ("ߞbl"nprWgDB_gDBù~?O___@}? }? }W݇re?&w1i9"cT$ I$ I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SS?XO 7m%)$IJI$RI$I%)$IM^%z*+K5ZIJI$RI$I%#Ttm7YK*k@"ڬ»aI$!K,}Ot./gĵ(MVYv+$Uq{j%6I$I%)$IJI$RI$I%)$IJI$RI$Ć3gOINw_-s)nr;"u;zz~J> #l"~?7BmKst/߹!{h9o>XBN Nx0[_Tq_BH 2HВI%+mI$JRI$I$$I)I$JRI$I$$I)?,VLQbI$$I)I$JRI$I$J_ V^%z$$I)I$JRI$fikЛia>1߃Xg`}pcI$ {k3 OFҞwmw))"I$I$$I)I$JRI$I$$I)I$JRI$w6TE5 $2I$ ǼcKѹ/KWxSI5m}RX_껭oTimn t>`}%WKV6J?3?F?3?FI*P^PJm$C3izC3i)uwQuwQJ?3?F?3?FI*P^PJm$C3izC3i)uwQuwQ'oEڣcs-K+eVSq $$I)I$JRI$I$$I)ҿ?/WCUWx^I)I$JRI$I$Y dd7}۽jglUgXIJI$Ron=(A vWFUmXۋU )I$$I)I$JRI$I$$I)I$JRI$I$(]͟?MBl(LI*C&=;Al8mp )$,UKW:0d|BI$MI$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$+K5s.]1G w5ٽ _^mLz|81cjb3 YsRYsW|}z}OgKOg\BI}o^~\ᶇ\ svt 5|^瀄=H6{ȼc,#t1~[PXocƱcDȤI%)˙Scnycc5ˆm Ic$IJI$RI$I%)$IJI$RI$I%)$IJQ{wp#RI%<y-HGc?1bo{1}wc%1 I.W~g?~3, s]HB0㉱BI$E$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JpSN]-2m84msL `yՓ:u2fXUk/1?V*Lc{ky kZ$tt||<-ɩcnXk~`D$j5-r-WK1 #?Hu5|^еZK }ۚ_"deK'՞mOHe{u^s*Dm= Ѯ^ecq=fEUv=k` {o[ŕp^U*~PK=_i7,|r27q3 c!`%I$%I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jhc3')_`kT]c~N<76i ti%9'ې-D/]/IgS^¼zcUSXJ]I$Ju5|^W銗3X>O;SX ѷs$n.hgtB"U"X;bʬGj2I$JRϭF81%"n3M]𒓤I)I$JRI$I$$I)K~_~_C.dEV0}uxck/_OWV0說}Wmyn{sCK?!c¯_;^(Enmycs Y?WV3/ETnuxm{k/KCG%WJuzx}Uuwz~ q?ScG/,54h`;8;QwjW˓8_vM_]REUi8_]REU%6UgcwKv?TIUEU/]RSi%Wv?TgcwIM_]St)is ^aX֍$JmI)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$M1V^c#?ڭ$,;~t[,/m[A%DHbBqn}Ir~pG.ɥ2??5^xa8؟Uv>n+e$$Rm _5WK]Q!Zc_kJ}̡Wmcr" RI$sO`GC56"}\<=$JRI$I$$I)I$JRWo=z2Wo=P1?DQrRI%jI$R\OT3Xq?ScG-|<Ád$ZN*I$I%)$IJI$R^c#?ڭ*7;G%6I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SWGJM1VRI$I%)$IJI$R;e y r@#BGڸBr"OѴOܺ?]?Hqڟj/Ʀ jGB]?I~.q$WegO?2 *p{sL!I9n?/I"߳'ՆhcD:I)I$JRI$I$$I)I$JR dUWGI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JjiU2?JRI$I$$I)I$JCyǬX鲪,es܌sjs6a ,I$!sj}5oy؆>~LDCZ^^-s5<$JRI$I$d_N-,?\Wы]Y6zֵ\N|&ԣ9褒IRtTI$>I@ac}T*-j܏KRI$aRI$I$$I)I$JRI$I$*7;GZUzowጏjJm$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$M1V^c#?ڭ$$I)I$JRI$I$t"-|+>Z6>wtI%)Wɪ.{/~4k?+}q}|?)2I$I$$I)71qǬg?<*WXmm`c4~@yQS}X- h>?yU*nJj}WRCeT,vm{emU))I$$I)I$JRI$iU2?)0{075C|t?j3%o{IsgR?ڗ?*#=K?ڋ׋I>ӵ|̥L~WOPz?K9y[6ӴI h.&I.u^scHJ_gS[Gz?>:/n3{Sүr=$n3[FvMx0́e#cJzi$L\I%)$IJI$RI$2?ҫ dUI%)$IJI$RI$+0i>1DBȠdV+'l>'->{QRRI$;=-q]|" :qE==%&I$RI$I%<6F.=znXAiG;.{e/oVG9˞R t?|?_R/ԿyqK<O?|XW``'i-@DO.I A$IjI$R\O*=%6I$I%)$IJI$R^c#?ڭ,k\wMWYmeI,`iGw%>qcdfΰԣ" 4DPVW,ֲ}ckXH-("+ )IRI$JF1 oS嗑]yϠ߀X_]~֞+uA6WTbsO?Qiu8Ůqy/2dKD$TJLc;kiq0\RC{ʸQW'oSr|+7G:fN[I$RI$I%)$IM^c#?ڭ*7;GZIJI$RI$I%)$IM|WowL+Yzńn\GI$*6]جamŏ_Z;.eoŌ%$I%WfvkZinbu)#WB&r 2Ip:Z\f<8s1|g"KR |/c zď\oK~pyȡi]?pI.7~pyȭXZE ]YCIt|Gfw3 I+ E$I)I$JRI$I$*=ZUs?{?Jm$zV=<0Y`S gظsZ/p|YrߚLGwIq_&ۇ"89 ȧ'oojLE/pr??K;~*RY?WxϹ^ǖpdY~FC)E[L]H࢐1$Xn}OQl?zL~:<ԚDm_?w ^uέpōu CTkYikK-is2- .#4_^UB+cC\nv@6hl3^li5ki9ᄋ {`$Uqx:=b*uc ޠ/89v7nF?v7h8>+T(T*S՛=`]ml:ݸz lG,Ė) xvM5F>C{ z6ia;MӬ}bm9Os&el okb?&/&# 4_*+#*=0 hJtOW䗑D~aJk4Q{ߢ> ku܌dUNEu۸1$mUk? }Zfk0I"@24M .Kg2c1վ`#パpnr~+=ڤpr??KpQNߊw{TGg+Sye; sFL)\䌍GJM1V)$IJI$RI$I%#`e1X1B"SIFZǻjI$![Cm}6AcU_$Zn5q6G}+Gt$!P5iϬgSTy~LܯC|Ɯl|rEmw?hOT\$^@RVŹ^d igms}Bj"bE__#1"@W}Fv+]Woo~B?&ſy<H=I$UI$JRI$I$$I)JwgVr[Y8=fٖ]Jqkl#?*zh`I.'Moβʋlh3Ϫ5 'ԵE$Jv$I)>D]0B羡D]0BۘAI$k*w+3eٔ,Ǎ8cJv<] ;<2KX_w`J~]7]gJLoXط"_Y&GJl1 Awgo,? -ֈhU6<a-v*= <ď]JW+y'.aa_ +?{xe{ʸu +1b^̊q}fF#6\ HP ҷ菂t@:jLs c2ZCD O+9l,}ov݅-KxT2XNʞCO6wR`r+2ꪺ+R7@ i$jI^¢K.c,il薞4&@IRv|^xWϟ]ke'[GJM1V&ʒI$I%)$IJI$R S^ 6^Xt;M`7Fp=)I$JRVQ^5 }AT#s]\ms~~f}e??ꚴg_3<d&nW_!lI.if-8{˨dXwA I۵A$.* IzҗK2-LDat?.7!V~_KVsH7Q$y.KoHgM¡7GEG^~Ve $KAI%)wS5ʶgQߩ\?_;>v(9y|lvU5.|I/sv]JeI$JRI$I$$I)U"ز'.Y=ʾmWK]Q!Zc_kJI$ dRn{b)k|2.}V1ZXf6f}e??ꚴ-5\h<7$x(HW៷:K/$ \ϠKm 1wӸK#m 1H@K?ߏد?RC/Vc? Jy~3 44Ц `W;hsX%BQ2ImI-}eY\} 4l/{3\[(afa}b9ftK㫉#p)!.g(KӿG1G1gQsͮqc? ͮqc? }?UsRv|VG1wfa@Q2D+UI@ʤI%)$IJI$RI$C0^ͬ~.DC^ǒ{,Ʒ6%)$IJC5 #s[\msuY= 2+i)*I,/$}H"rhI|MY''o*l_y`<9%o)z?#?__8R]i՗^rrL#U}cL93 j}xT.6GUS-# ;Zrؘ̽Mߝhpѿ5_Zm/mwZѳ]zUcW 3 ȟ^{^F-lm4Ml&cXI$ƪI$eRA CKۋ@sC\+l5h] 1ANox[*I$3$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%53'oEک?,VRI$I%)$IJI$RI$I%)$IJI$RI$eu.1;*MgX鲺%)$IJU]kn\EJӯV> 7Cf&$$PjX?^%Կ[S gȾI-6WNīUSǬU>ʡk\ #"Nj"Qf~G9^*r+zs#cƹE6~?Wk2?y ҥ`?"5ᆚX9Z{[ப /9ىc)vͮ $C є_]vGֺ8 Ol^p'س?[c/frcg/cgK_w&g w%,^lL4%lL4%^&Xʤ,XIcGk>5{/qI/rHNϼoWzO֌NqYSpn^DZV/\Wc9\IN I$n$IJI$RI$I%)$IJI$RI$I%53'oEک?,VRI$I%)$IJI$RI$I%)$IJI$RI$"XA}uHwU] r( z}OQl?zSi%W"aЗE%6U}>r( z}OQl?zSi%W"aЗE%6U}>r( z}OQl?zSi%W"aЗE%6U}>r( z}OQl?zSi%W"aЗE%-?,V3m"_meNi$4{q%)$IJI$RI$I%)$IJI$RI$I%)$IM|ڟu-ebH2=߃USlhj_ ,egr2JRI$MئEm^[XBJ+5τ1O$IJI$RI$I%)$IJI$RI$I%)$IJP?"SQ|$U\$I)Kk?b[_Tq_L?G$IXtԒI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)ƐoFDAʠTUd;d|$$I)HvWS[Ucݵ\Q2)}b^5𒓤I)I$JRI$I$$I)I$JRI$I$$I)Ii$?Hse{Zxl4;~WMo${p_UKgtɭ~~gtɣ}[L5qZ%CH#RI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JkeTqkk蒬!s(`{ k)VC6mlFַ_]NCߺM~%$c?O|iִ8C>m؍n:#]NCߺM~%lc?O|IHִ15DӒm2d͍yGI%#*AԆOef_; I)Td9nƉU}@ @k]?#$lٿ@8P$q-kcdR )}xfƘ;cٶ='O;($tEI:%Ӓ-r d͍yGI%"jhtXڶ>?I)5d1%n$!U k=:~?Fwib%j*I)62gf1šI) 5_[h#@Z%. v4̣Z͵Y:~߁MK-[a- DI% wY3cxT#Ѵ09$l{tӐkc5GI% j!v4GU_M$wib%j6onAk&vliyGI%#*3$#Tefl]?H"$WNKl 64O' q@htJCf?KjŮc˄Mnmj2I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$ endstream endobj 132 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/PannerSI3.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 147 0 R /BBox [0 0 411 130] /Resources << /XObject << /Im0 148 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 411 0 0 130 0 0 cm /Im0 Do Q endstream endobj 147 0 obj << /CreationDate (D:20080713142053+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080713142112+02'00') >> endobj 148 0 obj << /Subtype /Image /Length 6976 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 411 /Height 130 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RU3vZ= 'hǽvG3Gumaӑn+dWU{tm$O> 0='6aǺz;=-~ã}]i)I }WUwn⭱?GR-2 }F=%%IB:X} ݯZuc[?&GV $3"DF 7VW,s]z7tILB*|zuE:ZhhT]![hk-}$O5}xh?cXRDs,vUh jiSMY}"?R( *͎.=BO}~JmN.~E#k`?’$n=<6?q?[[cluGO{KILB*><|=61Gzڭۻwm?n!]UsMa~>]oe{c:AJfXVɶB=[km Y(:1cwե4Q%t, bJJuʵ&v4Uy{.Tk-}&gsI{$Mo 60(3^gc[O%'I l9IUA ' S4iڜ\nF׊5ɶN%'IB6V= .Ftl Ĕ$jnޜU'5>ruVZeϦ95zJJU:Z}kGV=ռ9V?q4)):H7QmfE#kd?Vky8:@nջg䒙M6TI}]< |=:ؙ>ZƟhh:%'I$RI$I%#Vmqc>!iDBmI%_Ӻm=Էpk:|/vyKwfy""ed7D Pޝg1?c$_p:ƧwP+\/8CSj~z^ܕ}I.q?5?{/nJ>{ Pޗ%}s=Kj~z_uOKے%?5?{/p:Ƨw_xtޗ8CS䯼c~ǺIpuOKq{rW1?c$_p:ƧwP+\/8CSj~z^ܕ}I.q?5?{/nJ>{ Pޗ%}s=Kj~z_uOKے%?5?{/p:Ƨw_xtޗ8CS䯼c~ǺIe}^/8_h-l9ZQ@D#b}f th1v2uy_$/9mGagg^WXX{I?7?u}>}Q%$;cc}%\گc~XT>[;"n5d`}"JQJ&$dH6-vTu{MLic. /s- mִdI%)$IM|iݴ\}Hoo ׊^X>?RS@j骢Ss$^@j.-WRI$`RI$>?3(ݳ׵n DxkiihITwD0.h ubT][CX#KeO]V6/eZ5ll=y%a<'I$V侇e644t@A |SHiֿI !$Is|RQjk}Ca=6vdo'W9Z~.7ٝseomv klsvlI,,ol9It0N;~Ss ϬݤopfJGI$cC;=1l}?st IZŦ]vM s\9ksDP.1צ=:k-x%V%n\o7+2V-$nmQ{c&[/żZbc+U$0lLk[v {tDPjy:TURKCm1_z_iS>9ӍPqqi2rluTVMl<7"+2e+ -TzV싪AapƆu=:Mgc+2.5Տ:9D0 J¸H@I$$I)I$J{ߨs*1N]:?||/Z~u@$Z ,5}o\z8XׇRX 0V 8915s9H n GGo~M9$g`i~=)~; kl0V"\xTfu/~%lޛ_uI]ԆOQ}e8Wp-l :NKtu_u9ydk\BGz}CV{5OTWf9?/>A4 Wkw~Ј rɝ,]?"2b$I)I$JGeuJW{.(˱^)U) fP5ygSW)ql|ڼ}XL{{lŏak`5 ?lbe@okw7x.}61.pBzOR[c]t?~\;IRIG2)\u eNcsN{F/.c nkªR%v;ۍ^Q#e}`wn3nOSgf>Yn}>kaPV uXPWHcX[ہ $n1=Oퟱ_7gzqW;.!Mc-g;t׉/tٍEp݌p@4nç'?A/||slO=[dUmFڟH^Zpm 5Vxuo8s:Q8l!ϊׯV/Pń$?*jJDJ^gwpz8fe7oSxs~݋N;-IDI:'Lbf}So]=/I2  *ځkǬ0ĵ47;|Kul|u\쾧U+4 mBwU,pю}#W_ro8W-+=\Q][H1vەrn,+-!s]m=E.O֜mݾ,]Ot\^q;ƼC(I$$I)EϪf4[Wm|uM}bTmq $+GAT جXkw-p~ 'tk>L9pOI5ܗqk;},Izqk/'r^쯺c/S;?o%vKS|%:Og`t[{x}$OI5ܗqk/tvWOė?;?o%>X?'r_:Og_u?>^vKI5ܗ;+bK`t[~?Ge},Izqk/'r^쯺c/S;?o%vKS|%:Og`t[{x}$OI5ܗqk/tvWOė?;?o%>X?'r_:Og_u?>^vKI5ܗ;+DcWNa1 h?aFM[ D{>ⷩƏ,%WCq)}O5%͎pVc͈v rĒxI{_ mBTlȧ}?~}|%c*R Sm"#WOV{5[t+0k@+*#.1m~@'uedvˆg4:߁ jTI$$I) zQdǡa#e4d;e&}ugcRPL9%$ITT:-4R lǧcse%%IAz l%.d~(tUC֓$ [UZ G?c,W87A-{?i!S^Q΅InCgǔ$!C//YsSS)g9?^5KZps` GV(zM5z2wt^wOS]::R,#ܒ$f6lsmֱ%NY{6< c))"HtZ =87 [f ֖_IIBm}|nl22Dn%ߊJf8Pu{= ]UZ G?cRtS,qpnZ5-;Qy͇tOcs%%IRmK;]hlP?lyB2go}gIIPR͌."g<V4XZHx/y ):H7b{?GmOo˶y>rN-t:H[eMf6Z ˭`Oǀu,\ϱa9iJCKX^A3G$R=PwN7Z[?/)_^FP6zv>|}76RRTSW"\9-ĻC}<}{JNؕ^u{-cK,qpl-{?i!Q^>LwD><=G:N..tuP(IIC^ח SK(f3{yqIK6VcmnaGE%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IO endstream endobj 140 0 obj << /Font << /F20 12 0 R /F8 6 0 R >> /XObject << /Im14 130 0 R /Im15 131 0 R /Im16 132 0 R >> /ProcSet [ /PDF /Text ] >> endobj 151 0 obj << /Length 433 /Filter /FlateDecode >> stream xuKo0 kOF ^?ƽ5mWJTpKr ,m}m91yfmmw9bh*Hi) 9*s?H- ׌H'R*ɚ֚P})׈y"vDU}L#J<=YNdCя74GB(3%Rju<_Kb{3>[XU\yoۍwq8~tF'hɝ&ܙ)N|`{|TiL=lKg*jߖǡ'RuvGJ ~{s+sZU׿+9çaך#@V״έk.e]C}yjTc@l.4Ǯ~wz۱ ܎G64a' Z endstream endobj 150 0 obj << /Type /Page /Contents 151 0 R /Resources 149 0 R /MediaBox [0 0 595.276 841.89] /Parent 152 0 R >> endobj 136 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Panners/Images/PannerS.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 153 0 R /BBox [0 0 347 307] /Resources << /XObject << /Im0 154 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 347 0 0 307 0 0 cm /Im0 Do Q endstream endobj 153 0 obj << /CreationDate (D:20080713135450+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080713135513+02'00') >> endobj 154 0 obj << /Subtype /Image /Length 12386 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 347 /Height 307 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,3["B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$S _}mu4 IIC.߱}VV>>]iŻvպ1|ђSYf?p&y϶7nݸ5p u5eٝK+bL bяl:-ǧ'7}k:@;}k:LqYPESw7_UޣI,r}062@K>6S+a5))պdbWF)ssl ͬjv6s$oi u+Yeue1ŬuvWKc7Mi2enѺu٣>meen9:ӟ]nuiSdﲺ L{;sNIJn]55fUs1ƄtR IUecsWC0w঒JEFMy؟Rχʋiem[pao⎒JGu졡 1M̽ǽkJ"I)y`0dA:N,69$ZWcG#tB9U^6@Uecﱍ$SKom׍8"[k)g<<4R*oeX֨Mwn>fcrJEvExzu<}6W87]5%;SI% 2}sО캨vǶHeVX>1$1z;l.niɯ"}1`ϩ[ke$QmĊmsk ;e xyDZյ${7< {Y֕ iS[hq]MnsQIHnɯaǧ[6LZW,ptF4RrŬm?c[M/5;?cIK uN+6F}2~{QRRI$I%5fKciNV.n6=: }ȉ)I$JRI$I$$I)FV6#C򮮆80.!G?K(iӵy5-T "F z?KG?K純s~şz?>O=c%goy%I}~~=,|ny2@i*Ox3=Ol~ԸA-VIFI$JRI$I$$I)I$JRI$I$$I)I$JaKjc"۹C>]JT1)}lx>Ǽ~GIJI$RI$YENX:91*B-ɪ6>4I%)$IJI$RI$sBc=ڼz?v(W_懙i Q6Wn>z;}9Ѯ;Ytk>ǹgeOٛ?5 }4,޿䤺la0FRzFycKgM~eu !5t9c.!u_Z$8^_⚏?/m^!O/CD<*7[U~?_m*kF+yi{E-8( $JRI$I$$I)I$JRI$I$$I)I$JAs綠"Y,{u Uw9G-w TRI$I%!̼b_MokKFCRidGZf=)I$JRI$I$$I){yB!b^P2?>Ag}=/Wҫfϴz~ݞ}GDP8= ,U2Cc+4vpRIK;;=}wWgSva>^SQaks\[D5U-Ͱ[sjkvM5[C+lJ I"^_⚏?/m^%/MG\oVS W*ʘ^u2zwEhqi $CbgTGnD^AAX_C1m.k^$CPZ+Ǭ 0\gM71 V?נr_נr󤔟uE%ے%ۗ$q^ɫ/h{OQVOYSGb> I$JI$I%)$IJI$R,z~YwKϏHFIwoo&!%)$IJI$R]~; 4_Wϵ`YSέi!XIJI$RI$I%)$IO9_^N&.>l \/5w5?+RRC<Lr 7oYSO"5w5?+RNNG?k_uȥg]MO?ԒNW?kV>u~}ocZӸ IG9!o@@TTu&e8]Il6]5_I5s[}D+w;vI$M#QVԵk.ݝHtE4Pm]{H@wZWY[Gq%qbSC䆉2%I$$I)I$JRI$pcA=9E e,,;W%M%)$IJI$R;e}BDD,N5;Eud@p-%)qz_ٚrw@ϧ ],\c,5sE=2HƾCF{V7zgo ?\J/r]ڿy߀Y?lMA/go I/r]߽+9ijR׃. h]"o??Ƚ%K =|ٲ?&Q87f4l\~/Σ5׍׺yu^QD+sEm֝-?槂b004#WnG5$#!+3\<2}? %?MAr*?kWO %?MAr%͏W#2?Ɵ]Z(u{vӺ4x-ocks|Yu[)Ş ;I ]sZ Go%)$R$IOWZOYfO旙oGMn'eYRT. njuf'kKQ_vWE%C9Z$7i;9 m.o#?IO KC^<%xroLI?*o$<[?~Q>V|$*o$$'~2K.gN'_UAS餲kt}ssX<0ԣ$$I)I$kc Yc'ٴ{\??8"ޯOdݴXT2쓙Mn)GHdOIM?-)^m ^^Gmlf|IqpuHQfjsCbWnbnv mtv{}Ϧ4iݩ{[Y$AZ^O/ISb~O;W/K"f/W_sirՉs *N+059TWZpQPȱC>k0 6٨HhpLjh$IQM]VW?緮Ce6[v6ϦgG1fnMzD$T[r SЋi$V.W\Ncͤkud_85$2"iI/'0q?8pkI{'{p3M/&Ē~W N;2O:m${ku/;+"?䜿-oCmCm,tsVUgoP6MFk'Aؾ*1{]SY8>6zH Km{*ޛZeli\920OJ ɹ]EAe6wT[6{5[0(ϱz-_txu]Z<"rhK'&l-p.'̪;vv3ʮ۝I6 Nf oTuV#kNUj5Ӣ@Jiϼt>p)ķtUdͧH,z"Νnwҕ5gFv0n_`ynnʚG^ƻS~Mo}KCAFƷO4I$RI$뺛*Zikiu" gR+v6tRHz|]ߔt9ݡI%MI$Jt"W?j~zJo͟9XLz_3(4Yv/OIg:I$S}F#hozܸ'7?"IZh$IJI$RI$I%)TVgکտ/oC4I$$I)I$J~}?%[U:_OVS -.-ol{[t:neɀ3_8-DIJI$RI$6caߐ 4%.#M=&F=>)K6߫&כ;] k@ZI%V͞"[k+U$(v=# oE/?зVIPcO`=9 ZI$ 0\D5l k(-9r@T'(?'+l-5GB[Z!g1.W[k)͞"RK+cZX}# f+6~0I,ȒOSRI$I$$I)I$JRI$2:s \Ө ARI%8ne.-`VS̟_mwxa8_'gA/km RK_~pǰ/km pi[%/?jc}襔TY;[$tRki$=y\IRӯ0lyoI$$I)]iŻntLn*AWe$Ma )Kr^?'wvs/'oJ)ypn^84-;=zw/^8udޯIqS<5;">/??xoe cC_v/)+;z?v(Z}WETjMgVOk??ކA'ڲYqՓ=OY\Y`Gk׉SQGE7[$P3)$IJI$RI$I%)UꤎFcVN%f{y_}go}'5CIiV7Y?8z_jMgF}'5KY?8zIPS?OSc̸SYU:_OVSVl۶D{?=3m1s}Ļ*i)I$JR,0ɂyJI)X/s[[\$4N,???"K2h 8A%9?XzvݐleF?Mun| ^S}o}MtxnHES_؍ ePc c6O@Eǽ60K,_  b p0m$v$RI$:W?j~zJo??Ƚ%M?nXlWJVdUK 86ǵAzg?v*)RWencK\4sHV-֞,ylLnF>=T& ko ZQ{OH3gV/^^6.kÜ[q%iZ2uӠռcckK-ȠX׽cC]k`MI o떿Wcml'j:ǫh(`Jߵem5שWEN ƆWc&7Y'c}aSM72󫨳2[Xm4 ?DdϻrY;4C!w6V.o{a l3[ ]L PYv!  *RPݿvt ~Oo%쿴|}j?ȽT|V,???"Nn5| Z`@':gP36Us:O,dbcʫNsjD ܇I%9:ͫKrt/WޏtqI,пm_z_ھ'W{UTpmG!V}L`k J_ MJi~1~t갲RSZqn=Relmcٽ9DJ#q棱|Fte]z\X*k{[s$lc:Z3Miu l{u?U~61z=mRܭCc=Z atgWɳ~F+>=HZ5;Kh\koͲo7%īMB]ʝNumowQj?a-ηc V5ǹW76k>5:/nV=4v:=Fv%_gɪ߸2g8S6s*Cirl-/kiӎez]vt0oJ6t[yd"39돰01x1uuzԹh\;w:Gfcjv&>F#luyBerdeٓV5/ ĨYliڝwZ~I nQ tΣ AyѿkMJ[U}KvԿڥq~O.`}g=/w __⚏?/m^WC\=r*k\C@/TT LEtmr1FUl1xvߋuyU6cs^ A/{yx +WS]=CȃY ƥ m /w&;~}c}wa b;>h\ˁ?O/)$Xl %!Ѡ.>{JI$MIfEJ_ TU-W:Wj̟/2ޏvգO.`}g=/w yԗE0>vԿڗ{s>Jֹ51*oX꾎7A渵SBǣt>>[RRI$I%#TlnDzEY>KpaTO~tI%)$IJI$RI$3rكn]q )0-{ie:᥄z&|XNB:_]f/ =%Ͼ4MAܷ,wĿ.k}ɥ>o -v?ќ~RYu`,wOOm.+mŠ=ŀ>d1঄"p7k<38DQm_Sz?:MZSC\"uǒ?շֹppSf;, ,~$=+Qe.W2AíݕocT&{I<=\d@kGRubI$~dΑK[ska5AiZ>(Ʀѵ[9րFYfO旙oGJI$JI$I%)$IJI$R #igwhsXa}fƂ{ٯDI%)$IM|_FE}U=']ZB}M[msߤZ$舒I$$I)I$JRI$?&gQ^Uӱ0_m'ljU"f#Ґ P;ԎAFXg#ekIZf^_S 6kZlwg΋8DoĦ!װjH%>I?F#U+1\ғ|_ݛm$JE?շֹY>){-@p ˛ ad?>8cdh{bHIu '?Y?(/ g'o 'IW=hhI$I%)$IJI$RI$ªK s^)aTh,A6ZG7()I$JRI$d2qq.c$v gEU_d_Eݻi۶;ʰI$$I)I$JRI$?&gQ^h/W,;~_ϗRѫ؇*)u=S]nikf4#A "Mjv.H_v;nI&z?vMg/eȺ\]Na$Z}F#h)<ٿ$JEI$JRI$I$$I)I$JRI$I$$I)I$JCsX<0ԣ(Ul>m)SIJI$RI$*nI,uAt~w]McK{\ ꈒI$$I)I$JRI$?&gQ^h_'{wW`$H~t0rY9P1FD=u,<) 2@ux4y2__/ɪ{?_c~i.e?4_KKW̿&Ge΃ҭ6c.>+Qjr 1ʉm%Úrf"3-/I%3YI$JRI$I$$I)I$JRI$I$$I)I$JCIǨL#osVK2R6ǵGIJI$RI$>`Q^i3HiFr.eIIU5/elj%mi-$C/cHȱt-n<#sVpsc*CSa$ْgDRcnm{ì =II@>o>kgw5=E쭑]^?IMmΫmo Oyn?* fZf6f䔙%\՚m/`tdžS)̇ {SRoԔ$:[sYXMn Cu챚[VIM/-T#Pj۽ǫ7|v))"HWNEʹm{ ՜ fUz)͹̊+|'7x榡dX]:d$*8[װ3U<7zJdomQ;3|~{RRdۅ[lxu}'qWm{ w%'IWǾh>g㽨6Vdyn=IJ^s5cDZ5";{9tD:k)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$J endstream endobj 149 0 obj << /Font << /F8 6 0 R /F20 12 0 R >> /XObject << /Im17 136 0 R >> /ProcSet [ /PDF /Text ] >> endobj 157 0 obj << /Length 152 /Filter /FlateDecode >> stream xM=@D[r}oJuB_n2fզ2L|&F$A)vf]Zk e8hn\oL($j] [x) ɡXQ5-A5' /'uT( endstream endobj 156 0 obj << /Type /Page /Contents 157 0 R /Resources 155 0 R /MediaBox [0 0 595.276 841.89] /Parent 152 0 R >> endobj 155 0 obj << /Font << /F20 12 0 R /F8 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 160 0 obj << /Length 1701 /Filter /FlateDecode >> stream xڭWKs6W9$TěLtI:=cgzHr)BC*AC{w %tT}`.\ #trNl4-`a|HڔۡKiu*.~!"ln9eR &.\ㆅ=uu5+&dLѿkv;jW k.OxƊbaR,r@gi[׫8Z[|軪?f\n$%l]ְkJ>2۔n].,U} ܹfJMdZE+\w}i]o'&R%f*Դ@TbIőrr KmG<0)5xco_aS$rV;b$ fT/4O3.ЌFy^mD4-g*ew~/LS9Ovr&dU,pt[Z^ѺkI}PoXu]T1o(jkwsVfV k/CjYiFNn،b-j0pt`{bR"wl`!%$#tE-F2E'4.8U %%9eԪk,+ı]DʠsԾhJ(]hOI< >ĥ/Xq/~pm4Z`iӵ62&s2$hmcC! 9м5HXCæ"Yz<}Ɩ%UϦ=+Z`OXۺc f_!\cÄǀa09[pD,jȧ,((Vk:Qshd5$șNOeYa!ΐrҚIG =V|=Jr.UO)t2EdY#T XBw(8'~xZfHʎ*KKsGI<ĘbFwN~8Tp@kô17J&ɇOYM0+$ GhDB$'PQ,KXRa( jZ^hL1Q?蝶}#Gw;95Ug8=)K&k Y80yz>º_`蚏t)#6MKE9 UlC{d-4TLǴ*ۣfFLp- x]yل璱5ɚ 78 c۰Oǻ"i[E+ N3Q9q@i톏!;Os#͌=5I}"<4qZ:?-,n^X]/`Ni endstream endobj 159 0 obj << /Type /Page /Contents 160 0 R /Resources 158 0 R /MediaBox [0 0 595.276 841.89] /Parent 152 0 R >> endobj 158 0 obj << /Font << /F21 16 0 R /F8 6 0 R /F19 7 0 R /F18 5 0 R /F52 31 0 R /F53 32 0 R /F51 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 164 0 obj << /Length 3337 /Filter /FlateDecode >> stream xZ[~_%rfīyh.(Z "Ƀ9VV잃n^I(r8~<7ȜrۍNHn8K77͏џ/Nkι$/ߪ4zvg]K7,Xdq&q`miHϓ?WWL$86lTt9ƒ6##(7a-YVZ]"d pVlYfF}JBx.z=>Nt:A+R kljGk?f!"߃N&cukjfnR~t?G@,ǒ?PZjs.,pfi˾/MY_Ө 'ʚ!pދ@M>ǡmQr.(/?bauw%;ju T/#GJTr@~Y\lRQW^>$ ]+#0 "잫Ƴ NGTzޟá4Б9ڙp)>RjL{sD,U#2Kc'|c2Z㺰(A3ZV~EbSs>#FMWr}oM_)~/xI*?|DAeV]Ýg8y_P|ۦ liKYJ3no|(E U=6RH{!h|Wpݏm'(|yqT mStyKI_7UNN߱PuHmcHo~/2HT]CĜV MfZ‰{kA¡SOzk{U)hur϶Rz¥"<v䄙6q:)O Eǜ[REQ7")  *&U'jDTJa&j䟉&e @$0ۭo^ ?,>t<#V", $SELǩţ*94]'?u}$cdFmywd@Q?qfL=%{qTb2AYO AZo:V(B&;S㡨V;eԟ7mWBjl^(yO05pCV&&U/(VF &ghav>9}UЊMMPJ3̈́A3vzrZ>Q @xqۂ"Y`VO .)vEwLNvPx l8=3 ga_z^ ,b*DǽO*-0\#8mB:t潥K/'B% 횠J2Nph!J9|?pmK=ɢ Ձ]Ulbt#$`|߽5M=D} XvρۚdF e-Z83_:Xw˝rf{"c$ΒT?ODL" ͘T2 Ie*Y| |}G= *]88eo- V.6*p(?Zh#?ZmfBfB8CaJ8~,3,7jRl:@.>@BM)IJ@j3!0=9yU"q%>?Ld @ȇƳ5aƭLf 쇶qcBE*0s:S%U0㝇&8N~8 iAb@bh+ڐdW0Ln sw ]J E| 2`,Ai!vٙΈ9A7ocS>ibqBzO M+cX29ˀVㅿ7]PL˪)-Q,y2/ZTngnHȸżd@`}tfLCGOӶ(8y\Qat*djԳ~pf5>?Cf,Xo0K8ocwF?7e|%i69өsHQ_UT3Rѡ#2&-X 3S? os4.fH}3"e.mzx >C5HAzt5>@VZcNP8JX;?PM]"0Qp\#Qj:J)|1؜`Lfɽ*O%Sz獁tNj85s.(}W'+$,6f" endstream endobj 163 0 obj << /Type /Page /Contents 164 0 R /Resources 162 0 R /MediaBox [0 0 595.276 841.89] /Parent 152 0 R >> endobj 162 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F51 33 0 R /F27 41 0 R /F28 49 0 R /F33 42 0 R /F31 67 0 R /F25 48 0 R /F30 40 0 R /F18 5 0 R /F54 39 0 R /F21 16 0 R /F19 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 168 0 obj << /Length 1712 /Filter /FlateDecode >> stream xڥˎ6_!@̈(J@MQ -EI\%G΃^ԋ5͛wE$Q&6ȔB"2i)6u1N7$*E9e%DufViWkT< n@>7mnHxD,/ʢpspGYQ" k p=sih9r( ]w3u`^p}YQLKaLƮxNcS!ZLǛG}*Oߵj M뺱[Ѻ, *4,} uv N=ñu!Arr `U|3@vMګtdsJ= 8W ll/5q\y١B}Uuq1!< V< <- AG74c䴒ﷶ^E6֚ "*NcԶ 8aPqd{]'>2p;5P$lqt+9%:;g6yLf]u>r!!.Q5Ps:vCXfjf_㳞pC""$jVopABvxiEZG򫚚\ LJf_pt̏WѧDf0$ 3$;wY$s2"/}'1[$zTT'X"I0}6 m(9zΡ>*cy[ i& ,RA;"9ހeT焯;Z쀨(21cCu睻]F4Wi(1uӪP1O,~K.8\Q=@oߟB2zU=y_4m?~{նk\t3,*"-ǑR N).W L +Yby㿲]I_xhΔ9OLZQ 6T㛠)4gD&Wqy Aeq7"{QF׺jE"M94񞁾aȋZf.3yy> nh]?ym{~~z٩ו6hx͖qkW^Έ}4ewa+نd4҈a|H&_ʀoɧW;c;1~74s"92Sc)?/+kD@'i6}z%KJ_G "7mQB]a5z){^| L endstream endobj 167 0 obj << /Type /Page /Contents 168 0 R /Resources 166 0 R /MediaBox [0 0 595.276 841.89] /Parent 152 0 R >> endobj 161 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/SH.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 169 0 R /BBox [0 0 550 408] /Resources << /XObject << /Im0 170 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 550 0 0 408 0 0 cm /Im0 Do Q endstream endobj 169 0 obj << /CreationDate (D:20080731195029+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080731195045+02'00') >> endobj 170 0 obj << /Subtype /Image /Length 19336 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 550 /Height 408 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,&"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$zO SMy5 c/vfcKOJsӎ25[X\ .^zOö32iǷ)1ƱֺZ6\eÏIWQӬɥ7}xα״n6w=$ΣͳWK)n1cMiu`;wIM|n-cKNu{@$[ÇVP> Wo䔵T|zur*xnkP戳ں R<4=ts>i)gK]ڰkzmy8m׿Y߸$u!at*6p]c5!zk'}<>IO/zo ;/;< Qf>l;bOKeXc*/"cیpG5)=:Ɖ@Jy12USz[{}!5Um mm~x0cKZ͉ RI%!*$.N&^ܫk*?ΩGI%#ͬ 'k5I y~$ ǹo9V>miPw}6[Q>aǢ6L:n{B-۟m#k`|}$[m̛jX+#O?%m~\M$}K|zlbǸ}ٟN*S2AOǧͯ֟xh?)Uuo~U̩OuYe XJQIL o?Q7tP*$"˧`mdR 1}ʶ1uN?վme`i?{^?DR:k}M-}; y~ ǹo9V>miPw⎒JE}6[Ӿ"g 3>>ڽ3c#!C4R h~MV•ɶ?>>M9 ݧQ*R/=@MEI% 8}AhlϦ[cZGNk@eϤ3Xa'z"I)Um}A{x{xeM?:I) [kfE"+|I[7^7tSI%!*$"ˁ `n&^ܫk* S⎒JGuoYk3;O׏*j}M!L060"$7fk3VҠJlo}DϦf|}F=$znt87v Mɶ>>tR m"#kd|}<(mc~Ku)QMO}G#鱊'fhlϦ[cZtR;} a/1S[f熃A"I)XV[hPʚQmdYH"Yܭ$/OvV|~(SE_e`n#$[u/fU?ϩSͬԙ '^?DR:j}M!Ĺ/ѱ.^첷XV XGKoumVc$$JRI$@ȬV@5U_4ZiowLo^;mIMI%)$IJI$RI$I%421Ul^[Rȣ%_VSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSW"aЗEZI%5}>r( z}OQl?zSMf՗U7U> vƦ+ob`dn&:᧞T/ی6=%'I$RI$,=b7M8?-ȨwW] 1X5s$I)I$JRI$I$$I)n-ckp`^o6i I)Lɑso6 $dOK6i I)Lɑso6 $dOK6i I)Lɑso6 $dOK6i I)Lɑso6 $dOK6i I)Lɑso6 $dOK6i I)Lɑso6 $dOK6i I)Lɑso6 $dOK6i I)LǑs6 $dOPkr(ͪds,eXզ#el=VC.RJm$I)I$JRI$I$$I)I$JRI$I$ob?F+I)HX-Uv[]o3O s#JJHI$$I)HZ> wt EM{$UzYc+?RtI%)$IJI$RI$I%)$IJI$RI$I%<=OQ ͇&rq\ֿ9uSc.Ĵ?Go\9QbRp *}^<9زN1CPܗ-t'\?/?cY*oCG:_ܗ1,ԒG>.ޙMuFIZKW~E$XԘGyd(*$IJI$RI$I%)$IJI$RI$I%)UPԭ*w~ZSi$IJI$RI$I%)$IJI$RI$I%5o[#Vշ1ZIJBmLz6,}qMW}l_OvXf6V/-IMI%)$IJC5w0 .hg"rhEbWd6=)2I$I$$I)I$JRI$I$$I)I$JRI$K Go\'?bp qkf#Cm nqA!AljTE#֫~YfwM[>_B*@y @O8OI$j>|[ zu..Ţǐ%ϭ'O~pqWK܏/7I-ĕ?#Lȥoi#q%O?H8?)~gE%7Tcm3"~pqRSq%O?H8?)~gE%7TSV!15hq%)$IJI$RI$VC.R(cjIMI%)$IJI$RI$I%)$IJI$RI$տ~/mV[Vi%) VSY1OT;**^cZԸ$JRI$RQ!Zc]mmwU;n; O䔑$IJI$RI$I%)$IJI$RI$I%)$IO%mk]׌\S 6o,ivar5;1\B#"=;>y,BS#B@95V?gkw%??[cU~??[c/{Y?r_aW?yWH?"YV]lh#E,:bGxd)I*I$JI$RI$I%5zowጏji%)$IJI$RI$VC.R(cjIMvYfmlcK::msW92zn;2Lnk 䤆O|VK$cUA?&1Ӿ퓰Qù%M/cɥlگ~,zuyV2Nˀ$Z*"$`I$JI$I%)$IM[ViU~/mVR2*}bSi{Y^/[ƀE֚=4%'I$RI$;e |{nmj"]R%\cOkmcDI$RI$I%)$IJI$RIBjkx@)K7gY{ @"ڬn׆2  }bŇdPY] {λmk2CZ4Y%ʺ/NŲp2>0p;i)I(YmUm{XSnJ]kAu hI8;ev<R* [cN9~TBl4%Q/R't2]HƼC\IJ(FB^hI8cc\9ip>n%5`44 J]j{^FN9~k 6 (YuUGx@m\ 9 ߅_Qaɮu$O]S/ӏڍO$;cHv'B\e} V^f1?> DoU*w~ZW; l5!!{@ v+\kƆ0h꾶0ٷeo+dl\6>W?~I%{?7 /,ryZ{p ݎ)$H}g_s#r|۰cI&RI$I$$I)_*OJR>dnsD\t " lǰ,65\III$I%)*[ltUqc+e EE]w0 !%3I$RI$I%)$IJI$Rk\msZwAThUՎevݶ[1P@۾E&Y kWӪI%84_ fm$u!l,s+s~=5%f5o$Jb2hp"Rk4x I$ cZGp)>25xTILv7nb6ƑLʫV1`J`iy5 c״8x*I$,c+Ɔ!0`LQtqc݁7 ILUL25uU<SI%1,k=EwUv1fp"5f–6O}6$INN_lFe\=ֹ/v h%;UU@XqI^m0Z-+fܬ4yI%:m} X\ـ6#V9VR{͏u\Kh |(B.rE=c$kO<9_'b?y^Ve kD0*oج*CC-k㓐`=`8?F?\B>\NqsmmOܐ|W.33褒IJƤI%=:L{kI^ٮmϧ%53G9yfa5g~~ӱl=8Ih$*J_ M\I$RI$I%5o[#Vշ1ZIJU_c.k }ŶGvV_4+v\ʟS [c5kaIII$I%).dT@"ڬ»aik0M $JRI$I$$I)I$JR5zWkO;eSA}%UNGY$mt,if1ŮWVc5>Iyͺg_}OwPȥ4 <:TSH̓{7?luo?$펯s4R[:KW?JIP)w-_d%cy%M$vW펯svOT;+]sW?I~;'ISI*.cy$luo?$r߫uU}CkC[KltK:g^Qea=?*JsrzM\HR 5fIͺUrmcָ'o'Kɇ>mDI[k)$IM+c]RwK*|?KgI%]T_ؽ7~^pKWݿ9S?z󞷐qhie pH䟵"^%z*+K5I$I%)$IM[ViU~/mVR쥖ljk]Zˋn!%6I$I%)kp\\@ȬVLCGdIIRI$I%)$IJI$RI$`ͦ}8yշ6PgusDŽ0b}rGjX\=jڌ~a'/"I$4ޑEVڱm i5mfٰWݴ0hx:~-mpenKmq1g"۾MucXSPqkK^Eh^ RoW,5 hoTh`9EA ߏ?` k/sڧ\\Z=C'mD1ﴖ 5Z.奍{vtq$v :Vՙe3+8K` Ym{lHmmC,m9ڼNGT\{*L6aQqQ]%͈LuӸnlk:zg5ªpw9p.kKGYvf%W&"Y0;}*˿ U}5[@#! >uUkzuewdۖoj2H^yPtՏk]moURee;V]EuTִZ eV1F [keu>۸0XsxI\{tNŢcȲ{_\AcZNGƭ,z5tSgY8; pIbcfUe{t[ a|Tm)Ŕ[Hnx@oi2e<7o-}['cf5@E~^MV{cxϊ+ե'^:`Ůr?ҳuzZEg/aSܺ?)"YM9t hk _do1Ѩl"sG0T4!\I$q1v$~BJk~GK~?zJk~GK~?zJk~GVRI%)$IJI$RI$I%)$IJUzWj/ PԔI$RI$I%5o[#Vշ1ZIJAUWkeOd;Q}fT;iRRDI%)$IJU}_E޵3gov3!d^1l{k䔕 &Sm͂xQU|9?O)v/3rsO%ıϞU͆084;8 Lx깜c'Iw=[7ҩϞU$VCk/.6MÁq oBt'# _6Id2$$7R^̂NXOB"aͥ}1]M[!II'/OdZ#7ߏe,!$O(krk WbJ>qKUpRWa_z_w?.!+~I^;~xp E%{Uw}¸'-}Wޗ>qKw RWa_z_w?.!+~I^;~xp RYaWaEWWz<~+p*<c`Nsp,je%ގC}5֚@GFΑ$IJI$RI$I%)$IJI$RI$I%)$IJI$R^%z*+K5%6^`?WX=M051V]jrӕюc97_DIy뿽WK{ޫ\j=xz?ڴ}j}C73csNn:FKA)"^շ1ZUo[# "/ی6="v+֖?*%'I$RI$;C{湿J{C^^37O/mMmnmO3w w6x*krvbiQEUfhH :X9@HPv>OJ{fZ];[ď=tAClVvex/ukqƸmkwnAhU^Y.`'ipHH$ [SC_*?2rRI%aR-ʯ4|l5*bPddʈ} $j@ВM3Ԣɍ!~!B*"xc JM(Wfbc܋먑 Xj}/_oIcw@J9$ I dUV^ׂRRh @Qq_cjd?|cZ [?)ILx%gE'n+򱱣7WN86cBJI( ,*뱯 `sӲ9YȪcRRh @A7ET蝯{Zc D}WemP`wp@JX;uwmޛx(?z.ȨX݅IIx'C#O7ӐRk&71~!%$Aģ츴nDN1M^~ ȪǞǵƼc>6:˹Z&~i)I$$I)I$JRI$I$$I)I$JRI$I$$I)JIsOL[ER<=VEV.42U5}Ccv%$%%RHɫ{kiwBIJ[?Tc-_Z/ Vifєӓsu"[{`ѡYsn#:˜$$;,V8O5iDBmLz6,}qM%%IAUisk{^k;^A->8*i)I$JR]ǩ`j_ ,egr:Ω۹n743$ԕaWؠ|+I$W%I$JR*PW0eޤJäI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$YX7eccݑ.{b$$I 8ٍDx/J?Uk|NF5oB*ְFDHRZMY=3%ǖ  t| edYkxCqyℒT.T٪襭^իcˀsyZVJ,?<|/oh`d\5q)3VY` kFE4~\Ig7~JdtEnm"Ⱦ6V/q'yc ) ٌͺ̋l\dGq 4IJI$Rrh9Wdd|*Z7Rkk蒒 A$f \$M+VIT%+VIT)U)x\8"URI$I%)$IJI$RI$I%)$IJ^]ϬnoLpFz!+|/Q^s_=3)<9p&u.o2?ҿ2?ҿ→gOd/d $go ' fP}Wk9q6ǻ4/-Gc?oP~E6-sgJFҒI$I%)$IJI$RI$I%)$IJI$RI$WGJM1IMI%>k&<5c&88dDztIWfRWc{\∫T.{FZ^~WI$RI$;e x$ ^%pnU.vXOOc6;?t3/QWRط9/~a<?ܗ<?ܭ$m5iqiqi$}}SWaKaVIM_x<́WnJRI$I$$I)I$JRI$iU2?)I$$I)I$JRI$I$ _s5{]ib:őkk{e%$I$RI$_5YK[P%\cOkmcDa*[ltUq2nIII$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ^s_=z2⾱ծ˦-wcZt̠X9p ȼKSnuoC έ}E.ŧ}ZKSnuoC έ}. v*r~Ǝ?TG.T"Wkewz?" !( q,ҤJFʒI$I%)$IM^'Ż+JS?I%)$IJI$RI$I%)U2?ҫ dRSi$IJI$RI$I%)$IJAm{2vEMc[UWc,?RRtI%)$IJI$RI$I%)$IJI$RI$gc>YVX :%p1g:HpsC:h )Idu߶b=7^ifZ[}:RI϶gTf^t;>qڔ $neTci#_e6<8$(Yk*pqn5{KAwNEyke%%Iwn>fcs Wd2 =:g)*JZk? Y[h'鵃籡%'I쪨pca$O,}lpS6U.7O$i ӓ^A!Rzjk3iSip[MnkRRt3{Ș1qJ{K1c?uiII@fm/Thq1&ZM2k5JHI$S?qek N'Ż*}{+ޑC,iusc:4|%"7Wm2En'|Gesruo޳RZ@Б.6߽/mzI.~/?k9:ͷ]'ί3ȫ2^=Kc ]W/ybn!~1d$T[JI$R^c#?ڭ*7;G%6I$I%)$IJI$RI$;.eOLjkˆe,=/66즼k5pUNqVS~R&VF.F?~ڞ/۩Z n}3jiޛ \RU÷Q5h?m-?%'z? dTgtOG`15$IJI$RI$I%)$IJUYcsˋn!XAJ+5 $I)I$JRE"Y;a# >{QU|WowL׿f|Sa$IJI$RI$I%)$IJI$RI$I%#ZXٚ^-k<"!Kj}i$c ez|i32⻋sg\;nm! R'\}r?)$NcRI$I$$I)I$JRI$~=U%"_fB)]珘}12KY_"^gs詯`j_ ,egre~B/ZY_nw)bE-$#3d ;=$!TzV_饥>I>'C揘DS_*IZ=+)~_ .j~_ _Ʒ—x}c5WU ^G?%Կ5I˻>vL 'N)Aۯd&,$JiI$JRI$I$$I)I$JRI$I$!ڜ͑&1ID@[n3@lt+$IJI$R//{kT;C{潿III$I%)$IJI$RI$I%)$IJI$S_du?T4*7_^,,'aI+W"'\(igr_ˣ{ k>VѸ{KgSfU[Ê2kcZ~R81ɻ}ׇׂ!Dz/[l}nFu U>>LJx{Z@N7d:ez pw=# ߝ5wQ˽64OxЍѷkts3 {!և[ڝbu>%*?(y 7ηfְl4Zw Gֻfwsi}4U`qc><3R!aKq˚v58|IRrF9l <ΣǗk5-X*hcZ JqtlelixǪ'vޜw4z?zg'j :NXI-{Cuvwn K#;#([f]l nSƁ g\qd-_3zσ?5Z}?ד{Act;C_lc18pRQ!Zc]mmwU;n; O q"I$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$u(,6,}qMW}l_OvXf6V/-IMI%)$IJC5w0 F|D" Pr+m`*ynY=)2I$I$$I)I$JRI$I$$I)I$JAs)C5TېZ)][ r>[msKILBx$1-KҷmݰςJN @%|\ShOOܒVXផahݒ)piș%&I@^ql{N@+II@,Waҵa-N}o-s`~䔑$:n41* !_(7Om.RmvhN!y$i Ӓ.vUe-zk/Z&XwR?OZ+qhk^Uv1ͺXD$I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RUe5&!"S,}o5838$JRI$k$8KLkuIV﹔0=^ͬ~.III$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJUj}bEVgpVo[[@"MnWe|ؒ$I)I$JRՑY懰KO>IHţ}n_=WV ɝ>h$wQVCC.n vl[3$ZXk^ 2I)W8۷ȨSXHDJAn-6[Xs$o%s=;[4R*q0L([zc~۵fyGI%"u*鮪*۵SI% V$J{sgdSSSٮiţ}n'XEI% ~#6^LμU˛$*f[0> /XObject << /Im18 161 0 R >> /ProcSet [ /PDF /Text ] >> endobj 175 0 obj << /Length 2047 /Filter /FlateDecode >> stream xXKܶ˩@x,T\ÙA4;i>fG'FLJn|{{YA uv҄͘ ^Zvy_]9_6\6nV:G]4HQɭoW 4c%)̪&(aE=L(KR0>d?^u$LZE4"~DJ͑e:ie$<yϊdRIz"[o7D" mZ9_l 8w0"yޤq*ڻa:Pj#NOyUJXl޹G '`1yݺ6囕'L% <%bӶlskǑߪqm`=.Gk0婫77OݾK[dAHXg:; ٠qW cח=07Sȱ)(-Y,ĕD I| ,ɒK#) p2AVJg&7>Ll~B̎` AayZ!dp "[[A.nt :N$؄K;Z&멙$e %m4#2Jr(Q>0ѩ ø|:0.R<>tud;*2٫wϕB.D%QF@2vq#]^No C@VDX@l>qV=(hXEOE\J719̕w<'G pgD%Um݇?o{w]o,h8npotx6sc]^y"+cKU 1e^?UAru$ ;Yyqi<ՉNCrWޟ+3zw4Kzgh.^PP7e;x{602@}($#bX5fJ4SDӹ^q}9dEU#h۴5j KJT@O}1@ F58 JpϢͱ\>FwXUyl˪h%¤")_h_npZUAblӂ? `P?ںҦ[r0K:Ξ:J  ϋc9@_,@$1c]U4dPTY @Ndj/Qr7 k:2}1anfL̨%k1$dL}K "zA^A U+^@;k$m@Nm؟aR. =4SVPk&/jZ1eY0Vc ͞ p\t Ub8kG0,V_԰vn$kq'%.ǦQX 'AC^e &( Bo^}7 R!Crnq1ù焙alqqI%b2Abb)ZBمF4j("ͯږZn]H]L]ﴧbC{C)!$[x%aז=Evi$Z Q6s`h6pi;ċÛƕ(_L-lka 7&McKsST|͒5K,qJ!1 H'~^uL k#pt}x4AZVE-y1'=5ɻv\6~@j;WktDfޭUk5>;77mO1 _ 8;;?G~| pEBQq[ׅpcC_ Y\X'VEj¥29_ endstream endobj 174 0 obj << /Type /Page /Contents 175 0 R /Resources 173 0 R /MediaBox [0 0 595.276 841.89] /Parent 152 0 R >> endobj 165 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/SinusoidWritten.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 176 0 R /BBox [0 0 521 492] /Resources << /XObject << /Im0 177 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 521 0 0 492 0 0 cm /Im0 Do Q endstream endobj 176 0 obj << /CreationDate (D:20080801141837+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080801141904+02'00') >> endobj 177 0 obj << /Subtype /Image /Length 24901 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 521 /Height 492 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,, "B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$.ZZEo{KG$Om֙ޡſ?:j,ƸeCɽ́%=J:O6Ν^M/̥m6oՃxOiYs^wz@75YH0 Sy$>jo;=Mn%g9cVdb6,,n6FEx7u&)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$纺c+ucK[6t\t;3_Ì[e5ί:Nb]jVgW]`6^[:xyؽ/Wsggz;wz_ T+z'ןpuFg]k+l [,Y]_ѤzM%դI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$K$']uT\\{CKXֿ{Ix-RYXMȫk!Q?ZL7b>4;.cb.ezW=n{e^@8 )_W?8煬JrW<%:?k$s,q ίcxZ$'u}\_XI)_W?|)k?uMqZ$'f_t<_%C̶_%r4L9VKE2L굒INONXjpOk)Ξ?EvP~sINO8焿W<-dS:?/s,q Y$ίcxKu}\I%9?X_W?INO8焿_ա+kI%5zOΟeS664aR#6V9EiciT_} _fOMkm-8O<Ҕ$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$3U_Ycoev.cI?u/3"ʱ5p0gR;61;hVv;2z6kvhiSԿ3?_:RfGINKRL~_IuY%;),XX٬A4h.(:RfGINKRL~_IuY%;),o۝K)3?ΣK%s&gd줲1сpߒj}k?Gc ]%)$IJI$Rng_Qz,50<7^+I$XeZ}YS7h7=~5VXyk^ǫlѳЌ[9Q;)I$RI$bk3ZddW[cY. ]; naߛ{GO}&x5*V'nǃ] SOP4٩n+(PlY3 pU:vuVJn)_)-0o"2ez;5^M9KxSZZ-ɱn?:Ox vaYPwE4)$IJI$SZZ*ɭnGOcvO 7"JRI$I$Oţ lf쩓LI.:2SU4I%)edS_ck=@Gvudm+Qe}d)un,'; -vM-pӱSI$$I)K#7 Vu B[Z{kcy kAstIY]!ɺγsH~a-;c xK$Uga>H= <:pii.{eq=Rǧ.c0>sJ*J39q⻾7]NE'5T Xu6PN֗Bg\UWTwOq?z"k~KBk_Q$)2!WB(bV^NMmr=?U}yeA?IfI$$I)JOţ lf쩓LI.:2ST$IJI$S[bћf6Kw$L88j<²wgTRI$I%8O=BVڶRI$I%)$IM^.Ƈmk]Ic>Z*SxNk׏oK̫-w۬:ռ FI%)7)Xwe@ѳtGY=s0O#.փ=5 L0/yv>~d+ؽ,:/$m&Hsv͟SMIJgySRI$&:m>:b޽CqF ԑg 6P/ߍBEwYA?_Bi$JRI$OcT)l|*JfI$$I)͟SPi)I$JRI$~_ac?Po m[ )I$JRI$I$ZܮCwv5cѯT>akulu qe=>SIO%ϏINI$p\Yܳ¨-;ahe\Kw[1;At~ AXey:| hz1dYV1K:͟SPj$IJY=zzKk2JV%k,?UKf~;s`)xcB|"g)RI%)$IL_MA?RI$I%0j6>M%)$IJYX[K ;hk2i{ g p}bT#VYUo$M$IJPv5ISYX^^Xs{yhya?=̑OaQ/z n--8ϟN60h3?rrD:I$)Sg;dc6Kɬ Uē# Fcx!5SWf 3]3~PA}xƷᬭ68N O?ݗ?PٚI$RI$ ?ʦOcRS4I%)$IL.l*͟SIJI$RI$?Po m[ ⇣W{jIJI$RI$I%5zc_UXʏkXy*S?V|=_yR9 T>&a\zJvRI$}a_W[~{߆+UdJY01fk$-e6_L1CggE ?/ʦwgT)RI$~ѯز*?:lkU/XbZW&7Sc uu >Mft+lVk osڴr$4ԒI&I$J`j q/ȦI$$I)?͏SPi)I$JRvbՇ[65vڝ/ ]LsXYy.n %: $JRɳt`ok.;6BY=FA}W@7㬩c}<ăPwE58ϟPI$I$'#xr31ǎ}"-3 M?oOך5EYGCmMi3"/)g ufI(RI%)BST$IJI$S ?/ʦwgTRI$I%8O=BVڶRI$I%)$IMкuĽkDMnO}Z_u̫/P;nź@0V4 ?W0,ϏINI*C'x9@:hc""7&M{Q? >lcVqұh4Ür{ȹ^O$%u<1=1.l*͟SQI$JRI$~=pّ' ߴ[ #%\;V=Lwy ]Mja?߄eΉ@I(RI%0o~E58SIJI$RI$ŸSU4I%)d}e:x Z;[K鉷+n1ưRSI$PFP-9.>e}bi99rcr+}![NpD~̏ $uRg);|",I$I%!V%س֭OhXY핤:3~:ې2hz|QI$)RI$OcT)l|*JfI$$I)͟SPi)I$JRI$~_ac?Po m[ )I$JRI,v[p:f- 6I7xsutINK/edQVU2'^3;3)Xn/;/:Zhv.uOݧ!%;}`7g;=~ Ƹ5Hձޠn]}PEn=\X| #ƺn6NIXSz3^7N լYƛ~1fݧIOJ~~>ۑV>v˷AiweeX "ǜ7-A?`ԃR[J*h6YOo))J|iKo))J|iKo))?3$攽V;ҡS4=V;җRR_M~c攔%U4攔%U4IJh5ZXOo))J|iKo))C kFV9o{E]wflơ4^^5Αʭcu )ICo)zw%9}cī̉w}-Q?J.뙎Cٵ#:-_U4 !H3PwDV;Ҡ[3C*ICo)zw%3ICo)zw%3X~~َ}mMfVG^S]]DHEVwϱo7/Nߌ"?Go'i%U^|iPJ|iKo))?͏Ko?ܡURRd=V;җRS4=V;җRRl* t?qS[JJfR[JJfR[JJr(z7維qnM en6uh?%$$I)JRmYuƛ۹k=n^I%9j+ݸd}Cu~w B ͹fAĵ[;sK4Z$71-\`GS>swegg1\?<yT|E)Y]7_}muxռ[J7Nh˭Ȱvsa^6?N,ÏcpuRI% X]~U5 ?/ʦI$$I)g,΃t&C*Mi|"̧Yrjoe'w|zp2A$J$IL_MA?RI$I%0)l|*JRI$~exƷgb4%;SqqsmަV=@;MCfBJt.*}> hTwGF{%P2B!ҎڬPnsu.689Ķ=-ǫy~D9JJq?ȦfI$$I)JSnf0n>cf%W_HBCxGM~ޛ]ϭ/[Y?W?G~yWQY%3I$RI$]~U4I%)$IN?SFЯհ(z7維I%)$IJI$SOWwHΫ6N3mK+,p{*_T#nag|z]G_Ul7=Ps )on?G˱V#crCTGրaQj~re]SeJSKӂ)}D~fo>_@uϐ۪wEMدk.&忝~$ǶƇ5j<JI$?_M%)$IJI$S ?ʦOcTRI$֨#p3+ƓesDBYXiLv[&˘;IN_mmj~>a◶?2]w,)}')~%/ Gq.I$J>MA3S4I%)$IJPo~E58INn'>RNU428 N9Z+;~[k^x"7{pT3(|ԒI(R ?ʦOcRS4I%)$IL.l*͟SIJI$RI$?Po m[ ⇣W{jIJI$RI$I%9Xnu<k;[`ͭ}O[ȧg2)mc[ >b+?S,dī܉wE;|%k,~ǽuxռ[J7ϡ?sG޳$P͟SPi)I$JRI$;|"]jĻvZ׻ gSwE4A1 ƪsiؖFجW79Z +~.URs ӭRlID q/Ȧi)I$JRI$SU5 ?ʦI$,ν~531|F{_͘ӎr6eRڣl.?IN꙼o<>ݛR*}> hVڬPnsq>%Y~?nj4IB(;|"g$i$JRI$j q/ȒϬ7dS6o^rvN;Z*xcLj;9RG]/a549ǒ捯P*c1L?$un$JBST$IJI$S ?/ʦwgTRI$I%8O=BVڶRI$I%)$IM0ź\X4ڍ2R'Ow՞UMuY19Ƨzu:`mb %:vi 圆FOe$J4j6~_M%)$IJI$S8ϟSPwE457ջ[Vߡ}+1A?۵!Uͨ?ހI% X7")$I)I$JaOcT)l|*JRI$) sYSyV y>qLgi)7GF{%wcՎKicki%3I$RI$8SPo~Dd\%Ca]EdZy]ʦG*l^y8ʿ)êI(R ?ʦOcRS4I%)$IL.l*͟SIJI$RI$?Po m[ ⇣W{jIJI$RI$I%9X2=K;oľ@ >:BW8ּky\Gз㰛z\1qk>VP7QXW?Oqiɽm>ǜ7-N/܌I $*I$S ?/ʦwgTRI$I%0wE58ϟSINW_ј_uW;U:ddc2sH;ۑ1,dkZ>?2>%[$,_MA?RI$I%0j6>M%)$IJYk2:11lhv>VYnc25mnуRR+?M߫qmc^n?6UMԺc~f87kDQB#GdPI(R8ϟSPwD$IJI$R_MA?S5X6SMk[rV<\|09-i )mr>u ꤒJBST$IJI$S ?/ʦwgTRI$I%8O=BVڶRI$I%)$7muFI~3Mms\-g[]z'P-žn+s']$/ – z8}V:eߵ4d1ԚH}k-<eaΡޖ{KoRL;cݼkK$ ^Y3-6˫nì<'h Qb}UxWoc)Z$j2 ӖHL|Ep,Ybc8OB%VoޗWMXA3jQ߿JLWKիi(z~~Z}zJfz~~_v䒓*=n]3`/x`Ū߫WKիBF~R.kƾӹS[x9XYVe]7op0:5/rjq ? C5 ?ʗWPb\>5$j)J_߽/VoޒwgTmY÷5?Voޒj)J_߽/Voޒ_as^ӅUSQ8mǚRI$I%)`}]ʵ81?6}FnK^7~jI%4zFx9&XGF=*ȶ=k`@]JO|zixA;]3Û1aq|\?:VRпد"t}~OZ:VRпد"t}?Ǘsm= VH؃_T`t/+ȫ6~_M.r/пد"}$#Ws}?ܟ?`t/+ȥn'_E_I.r/пد"~>YN;~]mx&X9]*>_©Z.mPB((Dr ZDi_z"Alآ'/⚯}Sz~3D *:VU\(\$ ?חh~_[lWKBOb\+9_šn'_EA5Ui(;|"\+9_ŧn'_E/ +q?*IpGGد;y`t/+ȫ%bOZ:VTz;H_V%bOZ:VRпد"t}?Ǘyޟz9O8ήRX7> oۅn'_E}eǵG/0έީ.ڵT!RDs9Z:VT*= ؇_V?͏PGG؟;y`t/+ȫ%bOZ:VRпد"t}?Ǘsm= VH؃_T`t/+ȫ6~_M.r/пد"}$#WsᮋSf@/τb+$$*I$jRI$I$,_ǭK؟$I)I$JawgT.l*JRI$I$q?Ȧi)JX=/*a59h佣s"?t$a(o)rWOseL/p]wj>38.kok'g\ ? 8SPo~E5TI$$I)?͏SPi)I$JRcu,{ 3NI-l۶{6?N,#c@vRI% TI$(;|"g$i$JRI$j q/ȒI)럡72xeV7vUfb-C|+p WnN=Y 66ƃ8n"?͏SPI$RI$]~U4I%)Emlu!h.s*K?goۻuf+p'ҐiE:.vu=mu "ӻѯ"NX9dґ#P)$LRI$I%)cR's>=l,_Ǥa$IJI$S ?/ʦwgTRI$I%0wE58ϟSIJI$S?A 1ί&\lo^;-ULK~ǎ6D]f>q?X?_MB$I)I$JaOcT)l|*JRI$O 윆1σ4.1z>5!*asO!·>gD}d& x\}"}.ߺ;wgTӂ#e~&H$PI$JRg);|"JfI$$I)J q/Ȧ)I$]Uw-cKM%)$IJY_VG~_uqwܵVWLWx:yqxFŖ=rxw)7"*I$RI$ŸSU4UzA9 pc=o>h&Rȁwui;@wi]~U[^Ha\s(f琖Y!6 I%I$(;|"g$i$JRI$j q/ȒI)K7/1 $Va.}̱-pO 섾j:srq`!14ap=?͏YW-ΏCn?u/oxЧep C4I1JI$S ?/ʦwgTRI$뷷S1XXςen#k@0`5xx?IYU.%jҔ?$u.?SFЯհ(z7維 TI$$籃sL7I .2d)a܄G^Ƞ~#⇣W{jXB9#R?FմJI$/ >K/K,͑3:+Ш֑O[vk]GI%9;aP\ >^cKY]M@Bz&~~{f>#4KrjkLn$DNIJ\ұqjVz .cR's>=%:_>*t}i$_>*t}i$6X۷W+?/ʦzU~)zU~)F YUI3SJr^_>4SJryUz[ɩcZ5/hȏ J2Ă>h/U[JߥWe}[>VYVO%;w8yt=*t}zU~QW/JrI) UVk)U~i)WeC09ĥFȕVCZ\Vo< lͶ̛xoŖ]q"t}*t}X۷2͟P^_>*t}i$_>*t}i$_>U_k=>%+ҫGܗWM$ҫGܗWM$ҫGܠګ6ݼ_%+ҫGܗWM$ҫGܗWM$uEhi)}jٻ5Z5UYKG~ʷ]. f5~-F鷿+d}2 qM/Vge(} H~&HSzU~)KJr^_>4RjVHhOҫGܕ͟SIL=*t}}}58 J2{7ePwq%?=̐Hcmu{dZy_6=-ǫy~D9Jt&,jzߣiM%)$IJI$SC.n??jǫ&xN9k~}ӳyّr' ۸[ lޡG:$PI$JaOcT)l|*Js~zMYx1Ha UzV3 - D7~:n-m˳oo?FOK-e48qOڎJ6~_MBR$IJI$R>MA3S4I%)$IJPo~E58ILI$I%)d}Yvޟf?bȻwmq;Z*~׏^DN9MՏ,<A_dPz; $*I$S ?/ʦwgTROTgtZfߤD~Z'q7-)Mg?܄^]dIB⇣W{jXO=BVJRI$I$$I)K'?acR's>=%; $JRI$]~U5 ?/ʦI$$I)g);|"JRI$I$3[X_Wq/V-91֭m:?68YWCgM$8;E0`#9}&(1ڎGU$PI$JaOcT)l|*w<:$/q7-)k,wX3m&ƞ{7+QK8b6'6P6R͟SP$I$RI$8ϟSPwD$IJI$R_MA?S4I%)$IJXK}+;t'jY_"~ Iޠh/.@K/p$Jr\`g莣1&'B I 6~_MB򩤦/{kcy kAstIYWjffM<~oTzMYx1Ha UzV3 - DoY:cCG_$$.?SFЯհ(z7維I%)$IJI$R?/Ob?O|zJvI$I%0j6~_M%)$IJI$S8ϟSPwE4I%)$IL_f7?OFu:CNۏk|Zmq/ȳ1jفkn'2v2~ n_Ygl0c<IEmak-px!IB$I)?͏YX{:[nn5C ul ?ʳ2?]ՃYȳMVh/.?X&vy:47NEL14@ i$&=R ?/ʦwgRS4I%)$IJPwE58ϟILI$I%)A?_%3I$RI$ ?ʦOcRSjzI9JV$Z'#.Y{;4X}nqhZnc!D_@I$,.l*͟SINOPk/w\#hKe?[VgGNwڭe6I?qz^}u$JO=BVڶRI$I%)$IJXT=\Ϗ[ '?)I$RI$]~U4I%)$IL>MA3RI$I%0o~D}̱-po~E4 Ҕ}^e @Mfl-5}Vmoaֲ>1A>)$Q%ZT>fz}s }*G[\%4>PzeUB2qU{dՓ\y d/~ο`nٱ{S*aG\RuKG_7Y$P͟Ua-$=CaVnl*7VYGLR`\GfLa;lqOVI2R32$2$H)ڶ?SFЯհI$$I)I$Yqjg6^v+ >A%7?/Ob?O|zJvI$I%0jTͫ[s\WC5>5}JRI$I$q?ȦdfF~WaDzm;I%)$IL_MTͪ65x>w Jh;30ϡM +sj+ufW[9"k,VVfAɭzhSCH,~7GFں(챂 A ?_sntz׷N|!\;WNIJ?hgĞ ?tv[ DE5h s=¼YM" GG;$IR͟SU:m]?˚29IMI%)$IJPwE5S#63z#hqܒi$JRI$j6mWamIMI%)$IJPjKͫ`UK\YwnrJm]m2^twൔ^XW`ki{S bCN}O$PI$Jq(z7維Cѿ+=l$$I)I$Js.&fX̵ `W}DZ {]ȣ.c 3C{{跒IJXkivULkFE5FY8cSg̪M6n:w ̫ݔ0EX,> vDjKj[)$jKjR7e7bQn/`w7YE>FMYVzʷZ@{ks{$SEv]%ʼs?.(T^[ޟqKױ[NK/? zY-?,35ױ[NINs?.(s?.(u;6auyُ>Xie4$jKjUzGR33ΓS,-.֟S{\yli P 7'6wGRSISCev[}7廄;i4?]Qg [e~K SW鵆$Ƴ..nv>2h8\ثӨ]/M=YIM]Q/]Qg􏭕u.qf?뷲RS5zo\J%5zo\J,Lif̷FZ+'jql_V)\ٺ\'N%5?2e#xʼm5zo\J,s-to \f彬ܖ9:42F=:Uk{#\-e{~liJtMKwDMKwDN멷!+nXhnf{ :m?de@@~[SN1ʥ*<%Gދ^1ʥŬʽO9SO9oͭأ(Yp`{]z{G$:zN>]UFC gxDF{뺘?QXe[~xL=E?]Qg`gNLS"qef繷:>^":w@=s?.v+-95 u{n()7.g7.gұM4A@:wo]QBߩ"W.^ADSQꆞlsPn3 Y豮uCClqƧEUb@m"tR/]Q/]QGn҆Wnd077y0@±k/+;bf[QZ6CG$?Wػ_Wػ\QWuCFcYje[XEպok-!%6MKwE}OnrUӟw/pWhۮޟ Y?#t_-L>+h5F?Wػ_WػMUuޙņR98ɔwPgVf(=HmwC6c< cksKA )5zo\J%5zo\J-gCON6eeX:K!6wrJtMKwEO m2D7q;++'jql_V)\ٺ\'Nn҆Wnd077y0@Je5zo\J%5zo\J*_X_keQt KfNJNẒ/"#hFͣgjKjV:m?de@@~[n>݊2ާzm`IK^3bҊ}OV*uߢe^:QK;;37م[q~l06z{O׈%G'u>Q񮮛GM{[{}4RSjKj@GWI-kX!}_eӟNV;np=p񐒜˾|NC^Z~#Mgލm'ӔHkvU奣z_ǣ[=eUm1n3tӸPe7?e^졄j,a^CN"$EQ">B~au0r-;B's?.(~gT4f?&Y]uZ][>3zU&e6U9*sf!.|Ro]Q/]QguΩOQʨe_jfcT-cZ\~M5]&]EmY[-Z |%%9Wػ_WػI%9xW:n]y캠믶c5 Q$RI$I%)$IMNӪT6>m7Wc~Ă4Ctu̜uk1n^I%)$IM 61r1ˍ7շsC׈{\G7Eenku@kI)ǿ]iMȳ׿ };,%%ժ/g~vv>CKĖIN?߹fԲjES}etVI$+;33"܊M ʮ5`1+>oqx;Iu$[ݙ]U*hmUMoRVEWe fbnZᴆcIVI):^+z6-۷vq$SGժ(goA 0\yr>OE&r]6lOp#k{I)Vu n.wX,ִ3>,dn]2;hYP-hg[ $Mm]u9۹cZ6vG,Mv  $n3/ɺ2ZY鱃f~2\i!}a9aj$w}[Q;&(յuezxFxIV~Ȼ+4zmsYqޣ^>I)GNį UB&N%XI$j.cYco[$CC\jɡM?7Jsq1ƣ$7.eǩ힧md43g%?Dq>ܫzeHorRIJYYUv(hfUul-v8i!j_>oqx;I_3&r+K1YnZᴆcIVI)f>f^a9V֖=,-}']ҋ:[KE66~kU$Gժ(goA 0\yrI%9=Ky9t\ }=Mю5!w;/.=Ll=k!=+I$tnޑ[P2I mc{7zn}ωEm$£Y Ct ]$e^nM]^]ickm{"cۧ4׏Mx7ܦJRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$J endstream endobj 173 0 obj << /Font << /F20 12 0 R /F8 6 0 R /F27 41 0 R /F28 49 0 R /F33 42 0 R /F31 67 0 R /F25 48 0 R /F30 40 0 R /F19 7 0 R /F18 5 0 R /F51 33 0 R /F54 39 0 R /F24 17 0 R >> /XObject << /Im19 165 0 R >> /ProcSet [ /PDF /Text ] >> endobj 180 0 obj << /Length 589 /Filter /FlateDecode >> stream xڭTMs0+t} Lisj)p ]!ۉ zzاyt3`edD2bj32/}m8qJ,X͵$_HxT|\H>ΣMJ1+$)f-ُȆV k-:10a@ C 8w!Q#t>n VC#kzMOxo%y)fr,]*a "=,-&U.*XCG.dڣ ( 1_Ӯ-k݊yԭ?V(O=]e@a.wMպv`: 2~ (i}~r!IDB.9)dWEk˄Ž?Z?}Q}XM=[w82%/OebuRcU#a5JSUNKG4mu~`pt[s['݂~S{px&4W 4*k=ί5oMOxߚ L}1q+f_z?/Ĺ.o-Be/y3i؎Mo endstream endobj 179 0 obj << /Type /Page /Contents 180 0 R /Resources 178 0 R /MediaBox [0 0 595.276 841.89] /Parent 181 0 R >> endobj 171 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/U.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 182 0 R /BBox [0 0 820 670] /Resources << /XObject << /Im0 183 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 820 0 0 670 0 0 cm /Im0 Do Q endstream endobj 182 0 obj << /CreationDate (D:20080801181720+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080801181735+02'00') >> endobj 183 0 obj << /Subtype /Image /Length 49846 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 820 /Height 670 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;4"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?T\?S3u$9 0tnK_WLi.s_WLtnIOF>tnK_WLi.s_WLtnIOF>tnQ}__WL2@n%=*K??/]3۷SѤϳ]3۷??%=K??/]3۷SѤϳ]3۷??%=K??/]3۷SѤϳ]3۷E__>4ϧoJzT9+vz_grgoIsgrgo+vzJz49+vz_grgoIsgrgo+vzJz49+vz_grgoIsOںgom?_t"S$ϳ]3۷??%=K??/]3۷SѤϳ]3۷??%=K??/]3۷SѤϳ]3۷??%=Ku__Z>=?ԾtnIOF>tnK_WLi.s_WLtnIOF>tnK_WLi.s_WLtnIOF>tnK_WLi.hUWLnR??%=K??/]3۷SѤϳ]3۷??%=K??/]3۷SѤϳ]3۷??%=K??3֗}ݿޒ%͊>?jtnIOF>tnK_WLi.s_WLtnIOF>tnK_WLi.s_WLtnIOF>tnC?Y;ͪc5sM@$JR:-z'F_KWFΩ^RԔi$JRI$I$mρtkmρti)I$JRI$I$$I)I$JETT,g򢤥$I)I$JRI$I$!d}Y #7)*I$I$$I)I$JRI$(M⒒I)I$JRI$I$$I)g}*2ς ?g%$I$RI$I%)$IJI$R+_W}:RRI$I%)$IJI$RI$-ȊWGEIJI$RI$I%)$IJP ?RR %}JRI$I$$I)I$JR:-'j9?m?_KRSѤI)K-]:-z'F_KRSѤI)I$JRI$s'm>Ѯs'm>Ѥ$I)I$JRI$I$$I)?3QPʊI$$I)I$JRI$fTT,7򤤩$JRI$I$$I)I$JR?7C?JJI$$I)I$JRI$I$OQ> n'T(e$IJI$RI$I%)$IHu["]EIJI$RI$I%)$IJI$R*?"*_[%)$IJI$RI$I%)B*j4IK7Y I)I$JRI$I$$I)K_/\TŷD-IOFI$.sעeԵtkķD-Z$/VG z?xIIS78$?xB˦k0͔6` xyJ݆v ~uI z&5uF%ouLS~. ,RǵɗiJr}]2~]~v7Pڷ2ǻԲC-]׫g#7d $G &%I ճ^cJg#,~NPKHQJI,*>]v56} }+cճ~LS@߱}@T[?%F!z?xKճJV?3QUj,Wu=NJ'g#$/VG z?xIIRBlD~g#$/VG z?xIIRBlD~g# #7z?xX?X>Ѳ»u[egk2fN3}JGճa"/VG)*? Y8fv$$H^lD~𒒤/VG )*H^lD~𒒤/VG )*H^lD~;蟁P|GUnF3*NvV6S*pm2 ‐21Fsd˹RBlD~g#X/VG )*K#?ٍxó;(7}捌\#tޣ[ꯨoñjC 7UNH^lD~RT[?%%*W*mW5P%%I ճ^RT[?%%%I ճ^RT[?%%%I ճg]cZ]U/WGE\ϭUuYF35p<g##!1a> C,xf*ǚT[?%$!z?xU:VgN>]A}<4zta)%[: ,nFGpUvoke~6>(j$/VG z?xLRU ?xP n4:II H,ͣG'lD~𒒤/VG )*H^lD~𒒤/VG )*H^lD~𒒮sۢ|VG .stM-_/%=*I$Ω^RѮsעeԵ%=I$̫qm ѐV][$]_9u:)̹5  hTIO?Qzї?Qzєod’I%;V;4۝S͵ca-̋EژDȱgP~йU8Mkcxe\V^=״>ZH+'EUwEskX}W2CwX-w֌VX?Y=A$JTI$XEBo**JRI$I$$I)I$JR.ķ>9z".ķ>9A6|ít?DIN$IN֛}xK]VQw-iQCu6 ӗh 2w%oNjxRR_6b0Uk}et uQԄ.fc41A1%,Ǐ/S藜?7!"I$HM⊄))*I$I$$I)I$JRI$/g@wJ>=; P_]'Z]ncr~eI$J>?et̞=f͓\XXszM71AHxܼLG_ݎ@Y{ku{_§h ͸ٸ |@3ûs7@%vNH1YnF ,ft58?y2^(;73 aE9@IԒI&)NT+_)I$JRI$I$$I)J66J66$n?^XKzj?_!I$b:ǐִ9@䕇Иi { J߮+wjvEk \}78|^m,q{qmAǒ"Ue<_L xaۡ%\< 35$A䬐+tfԽ=]kx [Q,^t!c裸JTwO5  J, $I%)$IJI$RI$uO[tO/RѮsۢ|I$R9?k?2Z5uOZOI$RI$I%>s0G϶F^s0G϶FPaw/u#? I$K"7gz_Yrz\H?Nt 3~?RI$NT+_)I$JRI$I$$I)J66J66$n?^XKzj?_!I$p:Y^=`3Yc6VtEm9Vsյ珤t[v%}5>&=8X5P1&; U7TvAʧ;rMWXD4FPbH"*P ?PR %}JRI$I$$I)I$JR:-'j9?m?_KRSѤI)K-]:-z'F_KRSѤI)I$JRI$9W/9W(0;:qr$<)ܗ ?ӥXmcBG`Il Wr]g1CkyXcn1_I$ߪc2n3[VPg-ltg[qsdAKAweoרojI$to**?3QRRI$I%)$IJI$R_w%_w%koO$Jw%KtY=@X9. o 1Cfm{]ҫf=!9q#Ec1O~%I$tsg?='/nc݉{KA7,`U}~ܜK+~=9kGŦO\яˇQ-7VWJ! QRRTI%)$IJI$RI$I%<_}^zw0RON´5AغˠI)ܗ^[:5kCy˾R01F\^zPq䆍>gffZ^csXu\0Zطj#iy(]O~ͯ!-Vͷt@fJ<8j#.iwOWgo)(7RI$I%)$IJI$R9?m?_KWFΩnZ$IJ\TůDj9?k?2Z$IJI$RI$>ڽy>ڽAܾaO)PWd옙!_X[,?ۥN4=tڮ͎$\xzAٝ;'q/-:k֘2L䜤MHHI$b??if3 ջ24Y?ZiއsĿ& WzedtLms V'e(}>aQԶRI%](ʊTTI%)$IJI$RI$]o|rE]o|rl[r$R~Q@f+ig\^ևt |6j63gXK!?GP$JTu:3NM40f{y,9ۄ'c k~J-?h'-F6kD<[Nf"(qd ! QT)JI$$I)I$JRI$I$0RON´5s;sWI{AV![<\tI%;Ni=3cF[u{,=IIWJI$[ uJ\p{|>}`}ba=37\0#ے`|[oǪg >1'RU(]MB*Wgo)(7RI$I%)$IJI$R9?m?_KWFΩnZ$IJ\TůDj9?k?2Z$IJI$RI$>ڽy>ڽAܾaO)`}akt=Քdz?J\G-o| )/9\=I$I$Jk0"V@p<3:-N~;ciw|asT?Ui{sF +Ub_ ߆p?:I$to**?3QRRI$I%)$IJI$R_w%_w%koO$Jw%}TLvdVzYh-c~eZ4ۍ1lk@!e}q&&5c}̡쭺!ylc9}ԩ$UҤI%8WzTn9;2o}}q̍^4k.YBcqㄯ?! QUtI$RI$I%)$IJI$S_]'Z 9+ +OCT~݋ڞWO̺ Z)ˈ[KSUz_k8nq$@J ;乿T.OY[;D5z-œRiU5@s O+YKϓd!Dv I$ R'Zpzfz{9kw( }`}ji;٦7Nd;k w)^ߌcA[;&8:W}:Pu["$I)I$JRI$I$(۾)(۾$|XKza/?.JS7S/?, CGfVe~~c]a7{\g+5X>kUc.)$zIWJI$}n2Fޟ}yow6%̭lkN=Y-6 8G5V]UK >I1XRƒ:!XܒBGV?T.iv}>~I%)$IJI$RI$I%)sS Եtk_/)I$uOZOsS#/)I$I%)$IO?Qzї?Qzєod–E'.=ΪYv5k|+}`}Rnεg,`#.~ jywa2rI$t$IJX'obFM<3k t[ɏ:}-//؃I%](ʊTTI%)$IJI$RI$]o|rE]o|rl[r$p:*NWCVgSr?H0q~0?l gA?&H|ԒI*RI${FV }s]48f:XÂ],rHM⊄*RI)I$JRI$I$$I)w /Ԯӿ? \}^zw???O+']g2x|bXZ 'Y*ڽy>ڽAܾaO!ʧ̂ET0։:,8btJx/dZc?G YRQ?j=!i~?7C?$JRI$I$$I)I$Jx 9+ +OCW73a;tWijuSA`u1C7OgIӎ̭W\ȣc}ixa۪rKqΏI*RI$mmD)p=f&?-{V ίwfِ+?H| -czGK#+_W}:Ut$IJI$RI$I%)F?IF?$^]ЗyuW/BPrG|D8[n(mfoZyx,__wM§ߐsiT>Q> V)ܑRI$I$JR}}71~O m[/\q2nSnMc5V9m}-;֡wO5 ]AϠ߀RIJI$RI$I%)$IJ\TŷD-]:-'jJz4I%)sS#/\TůDjJz4I%)$IJI$S?x_^je?x_^jer[?.C?0}r'bt9,gΈ%ŇJW;&\RI$I$JRPCi6r1- +{8H=Ԙ&13 /|OųeB>a[{͖9;Ra e,8^J?aP"o**?3QTiRI$I$$I)I$JR.ķ>9z".ķ>9A6|ít?E[HQl*יvBɾv"5ɖQ\W!c}﫠X V8v~ GqGu|ԒI*RI$P,/ tڬ^܌y;3;rɟ~ypP U8<~a+%v}>~I%)$IJI$RI$I%)sS Եtk_/)I$g5]z!qe-]":eԵ%;?#[:\qM&Iv;[+_o@-u eƆݎIMA-13.ŤWzU{+g^-s*Ւ=͘xPStjgd~m8?ESψfY)ɧ c.TxP~My=':܌Z 3zN+:H! uWM{X}` :kvXƽÀ#IOr;\{rjeUdpc^|/:MTam,mm4VH` #k||í!̟ymgoF!VTikbV){AդN|mHt:{QQsr_6h_hž*a|%|)oKk|Ja|(mO@] moKe8T2*cO,v=}K姸-ϴSaY5ooV9z|삋mp\Q>Op=>'oUKSKSKSKS^}0#o|rM ?(`(9揘u'>|,/wUwEvNɲPO-{߀ >gh?ʿ? ~el O= moUKSKSX8wU6 ~9n6~9:.k|{tMV9m})>n)۪ B>&AGUKSKSKSKSKS?.?0Z_.ŧ (ROzv-? PCv.1jy_?2DzmuV^p8WH9 /l Cp1+/+K|%|)oKk|h_hž$h_hž$uX/q}v@zG4tzVc.0H}(Qud8h(hoA.],>OO= moIL>OO= moIL>OO= moIL>OO= moIL>O2)ȋFƷvH>,eo15\^p\:+oPrdU5 {fh :-SaL~^'ooW3=!PQKS],>OO= moIL>Orь=[Ɩ{\!e[TgeB<,LJn[6N58H+/c[6:~TsG?aP6YѸp nDh_hž$h_hž$h_hž$h_hž$h纋ik|zDRԔi$JR:-z'F_KWFΩ^RԔi$JRI$I$(( ?\2~aUl{^7|+rXS8HtDyDPr#I%]*I$RI$c~V=>ʭm1ZlۼƋ}`d}n.k8c7R,cS˾(޴(|c7? TI$$I)I$JRI$b˸?-ώ^b˸?-ώPs_͟0|O}`dnÿ oӷCޑ崭\YUWOp_zy$$I)I$JROgUAHۙ>Yn7Q?tܪuz>v*-&HGRS.gѱy QoTRRH)I$JRI$I$$I)w /Ԯӿ? \}^zw???O+'Z_[q2ĿӲwmmSSh0am9o4w3?[$JTI$$I)Uv\Qޝ6X4`t+ls~=n{%ISYwIͦf=cG$@mvt<6ΦS`c0Uo,e~뾝_W}:Ut$IJI$RI$I%)F?IF?$^]˹7ًje%..XKv]~نzOwh$(w-`w=tJ.dkx.~IWJI$I%)$IJI$R9?m?_KWFΩnZ$IJ\TůDj9?k?2Z$IJI$RI$>ڻΪHyh} ur(0>UM>GG.f@ &pu%??ޞ{v|ItK:6H)k꯫<͐`U`ID$I)I$Jy?3o{]>i}&=v -c/vx7(ʊTU]*I$RI$I%)$IJ^w1/D^w1(9Ϙu'>zNjFlu lno IX?UZnwQa$vե_æ_wI$I$JRI$gğʫXϥs _t*L3?B,?3)7C?vAȍi۠9V?IHH%I$jRI$I$$I)I$Jx 9+ +OCW73a;tWijuS?;_}5VNJ?XGdR) }ojgA=c72@椒IWJI$I%)sR̟=V|}unOlw}se|'c3Dn8'ڻowӫWJI$I%)$IJI$RlmlmH>,?\/ 8]֯ǰ߼[gGK(~_(I$I%)$IJI$S3M·ni[qU=3L۸ܻ HlqB"=|go)(7t$IJI$RI$I%)sS Եtk_/)I$uOZOsS#/)I$I%)$IO?Qz?Ϭ\>ں?[Ӻ+EIoĄ~'g(#WCO;$RI$I%)$IN'*.So;XעrifF;ŕXAzoC?}[qG2Q7? TI$$I)I$JRI$b˸?-ώ^b˸?-ώPs_͟0|O}S7ԟL|,ϏW>g:6^}-kEek:ޟӺF.%..cYs;R4e5MG_}$UҤI%)$IJQx% I)E}+={/*^V?O_^ãmQUsީj#TIWJI$I%)$IJI$S_]'Z 9+ +OCT~݋ڞWO̴:G*z=cWe[]\\YXW@f1?I*RI$I$,\_?>MؙѤlJj2KeOwӫ W*$I)I$JRI$I$(۾)(۾$|XKt}s]3#=yuW.}s{0v3O7Ǹ|B? ]#/ctaD;$ZI$I%)$IN]@.ii7 2(D ܻ Ճ q@ܮϠ߀RQgo)*RI$I$$I)I$JR:-'j9?m?_KRSѤI)K-]:-z'F_KRSѤI)I$JRI$9WO].kWN}v{V[]k\?LĿr?lLk?wI$$I)I$JRI$e[Vsl++ۺ@zu.L em,+UzA(GPc7? TI$$I)I$JRI$b˸?-ώ^b˸?-ώPs_͟0|Oz??'򅥃 )!d}k$Ov{Nkp@_?zsu+JTI$$I)I$Jp:XCƁE^|m7C?wG}[MsZ,P'GTIWJI$I%)$IJI$S_]A{+y kq).q+ns;sV ??ʋ xGGs?k1gIya:nkK\7~V9=re(KgjW*NU]*I$RI$I%)$IJQ|RQ|I#p_rI:շC,'x.sXKtU_r1y\t!I$rԒI$$I)I$Jq~bݗ,mScS~jʧ;uW,a"%:r?3k rC)Qgo)(7t$IJI$RI$I%)sS Եtk_/)I$uOZOsS#/)I$I%)$IO?Qzk~ne(n%s_ҹ9z".ķ>9A6|ít?~:F e-!?l#w[W@Si ʒI%]*I$RI$I%<[Wt|eV_Pixa֫mQV'?cV?9/r@ܥI$d$IJI$RI$I%<_zbGk]J1[{mq?;sQ:"G#.|G-/zncݏS*sHVIHșɳrI $I)I$JRSc;]5ͩk[K#vVz?Mg[V#kZ*8p? b@RI5JI$RI$I%)F?IF?$UF$28\WOI<C*g1ڹ_yz\[7?+y-9$b|G:?i$ARI$I$$I)V;ry!VG <7Ռ[,p6[Y{yϪ^V1従G= >~IEAI$JRI$I$$I)K_/\TŷD-IOFI$.sעeԵtk-IOFI$$I)I$J|bņ}QgoX&nvSYAW+1C϶^V0#Vm1DuɆ?Ju~%<]I')I$JRI$I$,މ^WCV_}`Jf-^/,cp`Q-o**8"=**$I)I$JRI$I$/;K㗢/;Kg:wG~ەўSqѯ2\|"xqH_XĹ$JTI$$I)I$Jp~Wj}fa60E_Vgkӌ;o1s{&Ʒ/7VVז'kn|i$$I)I$JRI$I$0RjҮb-gef|3a;G~IWJI$I%)$IJI$R9?m?_KWFΩnZ$IJ\TůDj9?k?2Z$IJI$RI$$ub4#к}M 7kZ exU踿io ,'\!̟JI)\$I)I$JRI$>oxep\?x/~*~POKbOTNszv>k0Z[obH;I)$IJI$RI$]o|r5g:wGlͷߑvMͶ+{OFo/OF+ =K{˘A[8o[q<I%]*I$RI$I%5gIYT???+EB,9;n>Z~wN:]k <*u䄏H#I$t$IJI$RI$I%<__?^0Xr3a;|>OLs`"7 rfOQuyU^$IRI$I$$I)I$Jy΃,;_{]:w?YsowEWWÔܽ}y7Լ[s: &Y56)b 'L9|@)$IRI$I$$I)K[+5t+~:oX;7Wz,y"+H8G eƅCEpKgW˱H(H_h#? ZeؤIg/Q\2R$?3(HVv)CEpKg+W 0R-?K˿+Ue1tZ?}Ef/MM6U)idi3e~a[JܯRO߁ri=ލW?ݗIW~ɧz_o4Ju{s}ܚoOwW?ݗIW~ɧz_o4Ju{s}ܚoOwW?ݗ7?>.s=c'JXVoq¸Y: [o4V926 s/O߁ri=ޫn/Ә7?*cGQn?\CHŐ }_u$kn$[i*OYKI?Iq^Oܗgnȫ~?7gIFίҋ?+?IqCK%)|[gV5yv5Vk) ^qm^_u%/88ōS?Ȋ_u$kn$×[i*OYKI?Iq^Oܗ_u$kn$[i*t68A_YbqR\? Nߔ? ,?KgQ(:0fXγғrUS$#2Q\/R._[c\X떒'ir?o/(84$}osT?o/%'_I8j- ,?I~_eoK=گ7?K}%CB,O~_YbqRIPп߯$X$}os9?m?_KVX%ӣ; "K hvOP,A&u1/TI"ƥhѫdōC@&cv -D6{w<&7Ko}nkI?ޗhy{I7wc5(쭥85\2R?G*oo}niMt4cd(*^GHS_[GMmnK+2&Q:.'m>Ѩ3byqHkUMW)!v8y[uOγ %1v?k?;γ 7]{Su%L]گ;>w^gA/nΧ? K_w |s:_uO 7 z-dH1v?jxs:_uO!ݑTxJ_tO]#gVk˪zke-'u׿u?Y[T)z>2k{]s]30]Z*^cÏ! JWu׿u?YKs: r(} ?zUdQ Z(鋱S{@6Q3i.<6=GSk$1v?j?/ce?/lz̧/DI/bPs#$OKs)5ǁ}w1%/bPs#$ce?QQs:N=y`~KXj \wҺ=2-9Y8c|R܎ @OKSYAOKs)5˾/lpCcQ\汻CZ9$Q}o?9#<Ǩr_O^_tWGH?2\6=GSk$1vU(9?lz̧$c>@ q%L]asI/l2}.ܼJ;^2piuwKw(OC?l2}*4Ecfèt _c*a5 }yYxoc{~c}Ҧ`es6t1_~?TasI/l2}.kcq LI={[KpkG.q>eC\_!teK _K3t]?ǵ/ī?HϿg$6_>l䗠q~U$eK _KRKw*OC?l2}%Wϯ?%etk\2NE,eGܗq~U$\iYϏLO!t~1}?HlQvZ3 /. wꔺ8;3%ư:Ϊo`8}RN $׽2?YgR{?wvU s[x>齥X  (~̇^K*Kw*O|G޼5!lTYgR$̇^K*^CDJ=2 {?/kCԫn^?pU|˩}DwN9onp 5!lU7+#Fpi<Ҝ(ȵ jiX=se8Q׆d#g!z׿,Rƽd?J ){la !&#{f~pSxkCԩ^]H%?CYgR{?w%l?>!x?׿,Rƽd?JJӟ<ŇxkCԩ^]y?Ӫ'O QO }%_ψ?>g??7a3ޑ;7|Ǩ!_ƽd?J>ecf~mfVe:,piƘ$p4]#lc,ka 73ǖP+u?4EK@H|׿,Rƽd?J/v.DcÌ|FP%?ψ?<5!lTYgR$?a*_׿,W|_vWs}d?Rƺҫs֗8 $ueb.>E/b鿈?<75UzL=C͞n+>n5YTmedžH)|q2cGk-lŧ'o[lt;ud?WC?6Qh; 1kulSHZ[GSxe8GDuT>7? ud?Rƺҫ/lw]eNi ?b_鯈?<5K?J$5!|ud?RƺҫI/b_鯈?d]gY`T,[=&_SR/,]gY`TWշ}[)v@d<͛K].ȷkch{gfn?5&>Sb8~w,92 ǷI$*\TůDj9?k?2Z$IJ\0IϮ6yh%dr09=:S245INNgL7&]my"m{| W5N_S ;F:cmCTJs'm>Ѯs'm>Ѥ$I)I$JRI$߬wݍ:F;v׍c!sOt/ǯbc2Z .|:Nyd&5wM՟V658.e +-;xIOS?˝[I' .ioQ7/[ks÷8[YZb!<,ְzgUN[󫮫jSKHfRSY?gI'wZָ/JW:^31sqrkl{*)I6zm>ѵNձV^K7di}TZOY8w(Q@x_z=[ ې.muasY>g@{ ;Q䟪;6>OFe6= zE.ܣ:fn6FwVA'V(e~Mmw.I$I$.OיִjKsv6EM}{+\N^}[3:iH뛑g32Fj81},j6lkJ/{:6ռ״VE]CeXd6kC8hgRG,߬9OrKqOwwt2FGEf hH/۷0O1:o~ӑ_Gk>c^QNk f5Zms\T}an'm s5x|^D|}*Χn(wVlztݽI$$I):'F~Χֱٛu]B+%3n!*{;{ocZƏ / 66>n>^Ef59%@:YO}\6/c[k))tNo3)~ . wԱzoźuN54~enu3kS{W5 p:[3C;@c4#14KgOoNzGSVAԱ1G:+_)U['ӚX^oZ:f+zn.+jeZ纰ei?Xd㶚]NՉor?ccNmN{ouKw|>)hez@Ѥ$I)I$Jy3t^=\,owаpqz' XľF- s302ܮl;`FѪOg7UbYS誚ꇋ`q"R_o[X "v+ԎYSk !]uuK6S{`i:Z;Tq֬~>ӋIحuY<@w |s9 b޳WQY Z{"O@ů}_`3ӴWVeowI E묣t]9u_EWX\Z ūK;np1kg-v.I$I$._o5ޞomjo|xu WWtjɿcv=_o:BJktZ*[sN} &asq٣q|xZ_[2/r15]]s,n tNԿjdr*f7w53›_T 7rke Cjq1Jy߬_W/FJ+m;8oG'rz_[h=*>ݠYW}h!?/6\+ jv}?쮙_zummx6llIXoex#F̾oNi<ƍEcOg;u}Y(t׳zRǖkB:¾h閵w4Y[:+/Rţ.KKxUB Gs)$$I)KEV3ƱZְB7=?[?}##z-pxIO7ҩyv,{Z: 'U_L길X}6@ϭb_~-K}]=2ㇹ8#Ӻ:a~;eXF)eN۲l>:P~]+bUԙM=Mⶂ3̭ѺN̶GQvk}l{jӶ%;b]ú-v^v-g "RMs2m heu*%)$IJI$S}uaR^N~=p\yGt:E'eg6:oıR.oVéLkLǰ3X~k*u*EX v@))к7Kعk,ɥ%º gޭbf*`n|6*~ttl|['վSî;ݠJEW_캬c=֍;.Λ^M-cq"kmDN}3&߮XVBE; ZW>Uxc\I$RI$}goC#kDZ{t-p:WOz3(LƦE{>'q]oVWd<2uEIn }i];neQ3le'o )]Sd4H\#mS.k02z{0^Yp02r}\X\sϬG#Y>-1faPw$JsS#/\TůDjJz4I%)$IJI$SdM5dM4I%)$IJI$RI$I%>:V3k !@ܩ$UҤI%)$IJI$R9[|fHq>+\ՏHcK $UҤI%)$IJI$RI$=6װGՖ {< ueu+K?cGbfn%9_[mhw <k*D5_M#a"I&)I$JRI$I$뿭uΏG[U[4߂w-}[2ςi1$uHI*RI$I$$I)I$Jk0_460ع,6t٧[:eõߚR{NSγ+#UzAa/IWJI$I%)$IJX[l`9X-gmA:o+$٪%u:kV-UX6c m -ȊO}RI)$IJI$RI$ ]%8]We#ls.sŦ/BkS_|ԒI*RI$I$$I)MƷ%X@䆂>z\ο2 ?2ݬ5kĮëY^.SʟT{b9i~u=I$K-]:-z'F_KRSѤI)I$JRI$s'm>Ѯs'm>Ѥ$I)I$JRI$I$$I)3#8<6ƻh$wKsƸH9U:h.%~ZEà=65bZ=L}*%SJTI$$I)I$Jau/vF$58ts S[wc_ԕk3*br?>TJ?H;i$$I)I$JRI$I$*U21oMkZBoTA )vGGǺzDWK0}mV*2 iЉą)1(I$$I)I$JRI$yy5h}RW崭?ga}^~簷hec HGoDIWJI$I%)$IJI$R+_ t=T7Z7wӫbb?TcOjQA $$I)I$JRI$:_Siި7 n[şJ?cpǒCDlPr߈TI$$I)I$JRI$wO5 ~WRN,:g?(Ю{'΁PЫŀ$irIWJI$I%)$INO֌Ӂo3& \}--$^ly5X*׏!O[tO/RbZrN̠n|$UҥuOZOsS#/)I$I%)$IO9?69?6RI$I%)$IJI$RI$o[>+3_&0+iv;9v>r~UҏIc#$=9X@:d/H_wwRI%]*I$RI$I%9ZnYqYݨc[+XTޟ&Ls#-oKNZYr_~e&I$t$IJI$RI$I%) QQP!%8w㍧l~:T6ݏdcq=,U$UҤI%)$IJL 'Ju| ANm]:>s GnYXR3>=mQ> 9;NQQ$I$t$IJI$RI$I%"ozYE~^y3s[W}:/^\蹖1i-6058G|ywQ-IWJI$I%)$IJX}mfJMKo[rn_[ -ȊI$JRI$I$$I)J4SP Jq>ϫf3~(eX>ooI.&Ih$Gֺ.N; :cu&o',^AkC,ǖڎ:I$I$JRI$I$zE³ݏ}Gc7pv}S ԵF?{[fֽD?m?_KUb?#_7/FI*R:-z'F_KWFΩ^RԔi$JRI$I$mρtkmρti)I$JRI$I$$I)I$JEUgP|5m7?bY>jʤg]W;1 qSŐ(;}$UҤI%)$IJI$Scu~YՎʳsOg>ʱ:}b8pmNi;巑fUc>g$ TIWJI$I%)$IJI$R! QRS^j.Һ:ۂCq%xV\xd6~GuRI$I$JRI$>\ZKp/z@>1q[›pX`YPŭUUʚu > 9OD$jI$$I)I$JRI$]X]XnWՆs:5ϳ9Fu(>oj1[a%_?9,ө°LIphI$ RI$I$.o.j -̑~[^( YTn?1ExgXSӀKGPUPr߈TI$$I)I$JRI$wO5 wC)+/fUYrs=Ls\BKYH%*:+ז$$|CԒIWJI$I%)$IN?>>nZ^Ժ}gRV}OR|>nZsZJq>EI%]*\TůDj9?k?2Z$IJI$RI$?m.s?m.%)$IJI$RI$I%)$IHʱkmo}[XX: .ȱ#B@>J+1/؉~נI$t$IJI$RI$3鵿md}Ybt]O~Ʒ0EϜfUcPX?e?*I$I$JRI$I$$I)HM⊄))G-eE=ZX$ru&j|ge8GNI*RI$I$,t9cߖ{t=[0UOL]"%#"Q-}*2ς ?gWJDI%)$IJI$RI$I%"ou? ]PfW!AЃ:e؃(W? E`}K$̀I1Ԝxs($J$IJI$SKZ!}[NԅWEƗmmxclcӉEx 1Z `yh_!#Z-ȊWGEUҤI%)$IJI$RI$ ]%.Ϡ߀X_Uu8RպϠ߀XX}m£E{{cG_ IWJI$I%)$qe=0)3O[tO/RtNFqu6w}Ż uO[tO/Rc?FI*R:-z'F_KWFΩ^RԔi$JRI$I$mρtkmρti)I$JRI$I$$I)I$JEU}`gM{Պ=tg_2ctc%./I %wL8NI$JRI$4ȐS`gu.lhk#7#O&0_#79?t*I$I$JRI$I$$I)HM⊄))#?f>-cI:#t\3V6F3k #V{n+O&?rXq7D#I$t$IJI$R?O&pin vxOe,_U[A_ȇO7yD ̳~BYUґ$IJI$RI$I%)$IHu["]EIO?OVtTdu_Y0ҿWPVk 9HhI$t$IJI$SugYXcKy,NӇ{ @ܢ~#"UUt$IJI$RI$I%)B*j4IK7_=V]{-on7^rpS8Q/裸JTI$$I)JUˣdee;eUtLnīk&3)yx )'Pt7|LݶùKGۢ|oQ,nZg&I)H=I$.sעeԵtk[Wmn6ae@;[ION~/C)ZF~k|>Oǩr+p`W/)WAk|RSbcP̜W*5ø*9;4RX:ٸzZ4]ww/A%%I Ի w/A%%I Ի w/A%%I Ի w/A%%I Ի w/A%%I Ի w/A%+\ţ/UX>^ΧQdS]^*{7\~38D!~gCwuHh?=0omGk* TK z)Jw/A/R_JJ|gMϹ{)asOm>R_?Q\K!KO68iN J~Ӻ&%{\KxJGoPptEs&~pЧs-\{qY䜎'T6B.EH%]Q*H^K )*H^K )*H^K )*H^K )*?]Ck}=`i!%6AUqY.jt[,݃}׳6b`54|1|-Ф۞K\=R_􂮔!z.EH$!z.EH$kؽ 3ǏƟ~Vϩw/Aa}d}gZ^ rc?/A!+``4˞_/{Է 矮sv5^$IJ\TůDj9?k?2ZsW9yfXoȭ֝ q.$Q}'>=K-n;k/ߑӱj˲@VHlcv84S?::~(mM1\[$s'm>Ѯs'm>Ѥ$I)I$JRI$I$$I)?3QPʊu/9dV~^G2XKt>pc13R(I$t$IJX?Z'RLwPYaw y`u׺JU{m }:IkcXD|*%4@>ʊfU])RI$I%)$IJI$RI$&HGEBoT`\rXPӳ<5n9 +z/ }$UҤI%)$IN_סur_W.j-kCb:5M`:0K[jk$0m+NZ7YI4u&w?G,)蟁P|tI$RI$I%)$IJI$R+_W}:RS?e\/gI^Ϋĸb{mmy\V2k#GR$UҤI%)$E%s)f}U{վ0YT:Y-ve96ڷpc>qQUPr߈TI$$I)I$JRI$wO5  X3V XŻ䵷[#NIAQhX{q MbRu'aVғ9JI$*I$Ru-Pӝg1ì7;U[A])_^n:-'j9?m?_KUtI$Ω^RѮsעeԵ%=I$I$$I)2}]2}]JRI$I$$I)I$JRI$c7? )?9.[q{4lD?[?ՎgQ]e&_5$JTI$.+#V,_iAjXW.k|*-?/ڃB **GoUtI$RI$I%)$IJI$R! QRRU/}R1p2}L^M;Urc|?%wA#u}$I)I$Jy~E,X X5q x. yW@:*:_-c7OQ> n'T(e])I$I%)$IJI$RI$W*NT}jc+u kD|Ҟ:n+H2$4 W+/e^8u;$$I)J{^ \Q ߃?=u8(:,Oe,xVAv[ 4Ȧ~IΫRy*?"*_[1JI$RI$I%)$IJP ?RR %}Jp>1sã\k[⿬ԹoL~0I$$I)K[Ӯ.mޓMoo?ϯV1isBLB\TŷD-]:-'jI$R9?k?2Z5uOZOI$RI$I%kYZ뻢svuG{))WvC~6UMv8%1r`hl$JTI$,mךX-6>#N=YU-/{IY?T1ZoYq{cv#5$~pd}Y #7RI)I$JRI$I$$I)HM⊄))*Ԛ='"xiVT._;liaaxdbRso9.q'+0r0?t0=u=V◛'P6 I$ RI$}Sgt=j<|!t Su*=ͭe~KRc?,$~՝OQ> n'T(e])I$I%)$IJI$RI$W*NT`rMۋc>n2M-p1v9X<ݐþI*RI$>m/?\lVMg[뿭ΑZ" ebrDQ-@h tUҊ-ȊWGEIJI$RI$I%)$IJP ?RR %}Jp2?T1(/h͕:=[{[9''> s RI$$I)7\ܬglBAƣb56*}zۄvaZ|àьNMlw?{!>b uLΩnZ5uO[tO/R]/FI$.sעeԵtk-IOFI$$I)I$Jy̟_aF̟_aFI$$I)I$JRI$I$XEBo**Ji[sV^_Kf%]9}?`|=7ǔ:tW4ᓑ D}\2@^$UҤI%9X(E5g}sq3@vn3] ȭ@k@hb^ZHGoQP>ʫ*I$I$$I)I$JRI$(M⒒I)~:JA~h[^F|}}sz}t3J6x.t 7A/߄$|B#I%]*L5/qI' ~'&E;9?TK3}no[&:t76o>O #YD ̳~BYP%"I$I$$I)I$JRI$]EBo/:/U&7lq\oG8I=ܫ zI/@I*RI$zkۨeVzvUd;.i@I*EWGEB~#"$I)I$JRI$I$(]MB))v}>~I%8_[h{mwfVw=Am9p+3W':{?"?/WCUzh8umJTI$l_Oħ{T\YY%[ m;X|Ӌ)"?P7*\TŷD-]:-'jI$R9?k?2Z5uOZOI$RI$I%ʊfU])RI$I%)$IJI$RI$&HGEBoT$INWOBHʘV~&eˡh懼|+V3za8./ ʒI%]*X\/U5 XZΛldY Z=S'hˈGl]Lz1q`FL:I'Vw?G,)蟁P|RDI%)$IJI$RI$I%"owӫ%)avap|?HŸu:3^N.H&V\@0eKLc͎gh$ iMf}[̿t,,ܢ V 8Zi qP;F'葪I$,x+<OtVm?Wc(qk`UutVƚXh.h$VdO:$U9o~DT*?"*JRI$I$$I)I$JR?T.igo)(7R;*0YUwd}M쎃Sy{ki=ǹo>~zEZbCNz_'\X;}$UҤI%86:8w }`}Q-96{vuXcgi#ΩnZ5uO[tO/R]/FI$.sעeԵtk-IOFI$$I)I$Jy̟_aF̟_aFI$$I)I$JRI$I$XEBo**JRS{2-fd'}_.{;` Uc?>HXss̹i$$UHJI2c_{ ĵwSe Gn9w-J^oNp,Whټhz:";) #7YAoP%*I$I$$I)I$JRI$(M⒒I)E7tL8"T HܞyeVs *W}OcKiЂ~m.yk< rW>uwRI%]*X֬, =9ƭ }O:,# f-yV9oH?~zjGI$t~BYSw?G,$$JRI$I$$I)I$JEwӫ W*JR%xI)6&6lf~mCg淗?ϡvPj]X>$+_ahI$t_[xYd7C[UVke5 ׺_HJn1`{]Ӈ {O4?$ ʒI%](r߈U9o~DTI%)$IJI$RI$ ]%.Ϡ߀RQgo)$,}r8qNC~/V7~958rSsc#i1?WDvRٙ~AȻ㲳"}9w尹9}wSEʨp*-,k8r4I\ϔ5ʖ?,PE4010<ՄPșIM!d}Y #7)*I$I$$I)I$JRI$(M⒒I)K[ƯMns*5{ @<,5َ8ky[2I%]+8G ,/_լ,}h V vezM#)3ZaϵE+CC V`OG,O\ Ib:I%]+;蟁P|OQ> )"I$I$$I)I$JRI$]EBoI$7Eu^^rqnk]o]doh67trH Շ Su nWI% mu ǀ։%W p]ݚOLcF2<-B[Ӯȹrrn}Nt闀m1_@I$U9o~DT*?"*JRI$I$$I)I$JR?T.igo)(7R;?t׷#@~G}Ps״<;D!c>":_S\Oą59լc+!یw;[Ifp߆RT ,߬nh-2op[yU'm:9_L%!MwI%]*\TŷD-]:-'jJz4I%)sS#/\TůDjJz4I%)$IJI$SdM5dM4I%)$IJI$RI$I%"o**?3QRRI$tIcFa7(]ՇvWHܜr۫00XZ|KAZu:s5^c >!XX~X韯gI:sysǖWg0/$WC IRn.n{FQivXrLc/GRtIWJ>ʊfT$IJI$RI$I%)$IJBoTT&HGIIRI$:O^k3+qkȥ\ǂ Ó_."¨_MwƵۄ,?W:{fSf_NKi q,c:u׺K =F |N徹gdu{ƜL\#LE)9@Nj8-OPTI*YD ̳~BYIII$I%)$IJI$RI$W*NTI%514S"@.ih?)YU2ѪvLu񅰰0߬XOUX۱*gv$c05?M% ~f3 ^(!k,i}cقdT6|pC9D/(죳n6 zQp VIC)MTI U9o~DT*?"*JRI$I$$I)I$JR?T.igo)(7RI$uN׻\>Yi+t ??VceM#y[3hz~C"v+=l< e}i=ϵfCW^lW =݆V-W[h$?W˞e_[$$.sۢ|sS Ե%=I$Ω^RѮo5C,jJz9)HP=?=?REneis?Uı7Ҳ}2 oO gWu`qÂ'W@ut8ea  IINճTgYuf\ROcCZvO=쮱5cz7{]J^ֺ]@ய;tޥqsmԒXpBJqn~ׁmF.G'J^qe:= :߳%3┏/%3┏/%3┏/%3┏/%3┏/%1#OGROOp B 0Բ:fk,L}|;s>[H]vEn[c Hp*\Y0L&5A7Pp]kRwa9Y6tV*؝/P1mUHk|J7\|1@PrT9)HP=?=?Ig# _?}55>IIx#CKILx#CKILx#CKILx#CKILx#CKILx??j7DGROOGROOJumf4I3aOuzzmx%ɻE 38"BzV%cc2oq+1όq'&=J]]bUNF[Kq7:;OO^R2$Iԥx} })uA5쓱}h4HIIx#CKILx#CKILx#CKILx#CKILx#CKIKZF$x[MAFILx#CKILx1Nhv^5s:S!j} } Ra؃Q3/HrEHs_0(}[ĺK3Zk;"ݩ6vV&mŭ#4VIФ\b\Z!ݜx} } ┏/%-QGtT_`-r'JGJGJGJGPI)} P4H%%a`G1,i8 _gJg#)*g_gJku| O ᤸnw[t*;=5 pVNCl0kk`Fv[gGLa&Y5jǒ<>@LopAC:YF2spں (c 1xOzp&HP@F@r )"I$I$$I)I$JRI$]EBoI$$I)I$JRI$I$U9o~DT*?"*JRI$I$$I)I$JR?T.igo)(7RI$I%)$IJI$R9?m?_KWFΩnZ$IJ\TůDj9?k?2Z$IJI$RI$?m.s?m.%)$IJI$RI$I%)$IHʊTTI%)$IJI$RI$,7d}Y%%I$RI$I%)$IJI$R! QRRTI%)$IJI$RI$I%,~BYSw?G,$$JRI$I$$I)I$JEwӫ W*JRI$I$$I)I$JRI$UPr߈)I$JRI$I$$I)J4SP J]AϠ߀RIJI$RI$I%)$IJ\TŷD-]:-'jJz4I%)sX߉u|lǯ"[sMNJyٟSKvgFJyٟSKvgFJyٟSKvgFJx{zV5htSg7cwn{@Z?m$4Sw_?m$4Sw_?m$4Sw_?m$4Sw_?m$4Sw_;m&4S=7$;3KI%<m%;3KI%<m%;3KI%<m%;3KI%<m%;3KI%<m(Y=o=?A.$;m&m.$?m$m.$?m$m.$?m$m.$?m$m.$?m$>Ե}RIO9;3IwIO9;3IwIO9;3IwIO9;3IwIO9;3IwIO6~gGI՞5h#7$TSw_?m$4Sw_?m$4Sw_?m$4Sw_?m$4Sw_?m$4S̿N{O^?A%?ٟS]I)?f;OoI/ٟS]I)?f;OoI/ٟS]I)?f;OoI/ٟS]I)?f;OoI/ٟS]I)?f;OoI/ٝS]I)Y=yOg7$;3KI%<m%;3KI%<m%;3KI%<m%;3KI%<m%;3KI%<m(V{RIO6>zoI?m.$?m$m.$?m$m.$?m$m.$?m$m.$?m$ѓz־NCl%hC@|ZJRI$ endstream endobj 172 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/Ublock.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 184 0 R /BBox [0 0 324 294] /Resources << /XObject << /Im0 185 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 31 >> stream q 324 0 0 294 0 0 cm /Im0 Do Q endstream endobj 184 0 obj << /CreationDate (D:20080802115820+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080802115835+02'00') >> endobj 185 0 obj << /Subtype /Image /Length 10092 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 324 /Height 294 /Type /XObject >> stream Adobed     $''''$25552;;;;;;;;;;  ####''',,,&D"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)Eelu81sT3~NF=pmOĹ R~{N=1}&lL{ic+k!8xOxOĭ5ّ{'# ׏3`չvѷ}e{[)Ջopqe%sS I%]7S׽1:iQCUU42ZִCZ֍M%0uԲ]5@wH 9x21KptOQRIH]2*mc=;(h~Es'L"$} ߏc-h0\ * UY>àc^G($7e2. Ժ]4ޠ#lN!M$<c]KXnjS[CwU[-{ӯ($M5X!_2NN>H'Z5:>;IEI% ~}Wv͛ۻtݳ3*Wdcr-eA? "Wu7Wcl_{H-ӝBYWӣ"uǵO QIHnpfET$5kLx!MڽwXTz<)SHǺ~? VdT=|GI%#1c*i0 S} ߏc-h0\ ($ Uy>`1it T d]]%GpldžRILu.m5Aw-…9y,Ǿ\q$[C;*R׽:e_u=!׍JI)98 {Yhn%G>]6onṿ]ȵh i3_{st i$]M(!O0U͵Kn䱖iz"JRI$s2+Tu֒ﲪۿc\ȟht$$JRKrzk_OIݯk_qQj˜Ӥ#+)}#+({XIy?2?ҿ>d7GI#Qd t99UDI%K2k赻 ޯXSBӑK9_q~}/ NGWzԻ8atQke{wI% *I$I%)$IJI$RI$I%)$IJI$RI$YS{fnx{5`DU񫱗e9eoSUI%) *]NZW gEU`d7z {~lGyIMI%>O"4L]ߔIܩ$l\Xikk;!Ɂ6ELNjC.#G2 *_DKOO,ţmS;Z&O:?0_x~ocC㺦 Z\,@$4r|\0šdUp}Z6r%\| $E%g {f=^ߧdtW$ahm5K~#]!t5mͿW.i{~Mx>Kẓ:eEёUF{K??O^~t͖x3Qs͏Ȳr9z_x/x?RlP<5ÂM%)$IJI$RI$I%)$IJI$RI$I%!m|fhuCqp6;yDI%) &cے\)c rCAwECdSe} Z:4 JHI$[w~R"5U;^rV?6;jF>)d^ߑ`#wI$5]"ZW?j~:?0_x~o9{KAPAW-ꪩkh \/ ?䗓UkFCo@e|Ϲg@:2Ki*KBRxkNMy[{.nCcN~瘓2}v7ٶ5엜^}-AVIVT??O^~??OP͏Ȳ9z4IRlzgȀ=-ve@~'ŷ/3[K~i—!ҶY|6]rtK}Gqt?O.si9yrI}Uvcup<ƙ&5*$I4wI^1KtlS35RI$^I%)$IJI$RI$]U8/Xuׯ͈ʾ5<ȪyUO*JRI$rhKhK@Vsov6,`Z~䔙$IO}["Ѝ\H27:/II3ڏ_xͿVCVC)%G_s_o>m7:+NUյ2!wi$1DǕ +,/7/h{p$hkIIHHn A??KlNIMw>c6zC=g!ӒKy;G}Uxx/?g?v_T20ynǴ9+q$ܙpʷC`lZI% S763m.Ӱĕ?d~OХNs]14k 47m I%)$IJI$RI$Ycc9 V]`2ox*JRI$ySaȏKkMGl{s(9847V<⒓$I)I$JRnS0qm˰2HȹNL#sD b'%"iƫa[RlugkK i0O_3&`u'?icyD?#܁g"7zgM/_3&I?B'%/Z=ukhc5mv ^nүOg9bnKW? nW&\qxjNjI-WI$Ji+2΢5ZOVL ݾ*^QH dUگ êUA+ͲKEotd'אJ1ߔ\~ghQ$J]I$Ju>kO^akX_%zz8??kk>Ul1xҫgP2I$I%)$IJI$S_[ezcoW*7l#аVOO4TI%)Wϲp2nŕ0ÚFXCcfE9aOIII$I%)g`s?✴3)<d&^[?!H>fI.ittڿK[,bog `sܪ-|2YJ^_uk.1[cÕāOK)R&?U.7,\辦%6Wga|6?ÿX&?9IUȣ%?G[(IUȣ%?GIJ2?;xX5DYKtDk];8DXխ#?]<7O@DWJ.$e{8w/ 0Q/ҋI/e{8w/!>t_SdvȎwפd)1)UTJ?5-I%)$IJI$RI$cs>Y-.=UL()I$JRE-ǷV9nz"_d^C|Sa$IJI$R3)Ag`s?✣OKe忟i$I$JRJ?.7,V4~18I$QI$JRI$I$$I)I$JRI$*c{եVS WOZFUuYx{Kk cu-x??ҫ{p4@k@h+x1FPld@$5Q/(? ~x7qKu8J.e$=KӖ6H]XU?j? [*HܶA=ζܖ8[c]ގ[s GkN!$IJBʿ츷d6N]*le9m`m#'$I)I$JRN=Yt?F "A @ )Ă l_K&e?_5ФP3Č~i̾K&/j}Č~jL*n1> ˏI:80G"GQ \HO6IDHkRI$aRI$I$$I)I$JRI$I$*}Cւok\KZw1 ⍖WS cys|Jx/:Ξ1f]FWimh3⹵"qoj?_̵39/stYEcӳ۩ 5;)56jG̻*_vV6R4o|7n3;_"A]=܄I9k_U?j? [+M&@7ZZ߳~J-$EWTFY_KEmk6u':U=-e6`|iu{Z}{ԷRI$ _\Sl.i~t 럏\oĵ$IJI$RmtqcY-st ?lIy:֟7d.eO^xǞ9 ޳sn< *D9"l<,nw/۽gyTK(nwt_Sv]՗s/$>.?,NI՛X"w^$SԒI$$I)I$JRI$I$*}Au=};{$ nt4H~"*gL-e $F}>FWIOäbtMet;=6yj?_̵39/䤒IJƤI%>SFT~@Vliy~Qs-}h3KnYuʟk3sŎWɁ5*I$R}USe.|@iDBʣ8cNZW&7ُJJI$$I)K?堳ȹNB[%%'I%Yl`ݔRݭqm6[j6㤝8k+Xƭu5- n5v3 1֪:$ ߪI*ʻ{Y;cq+]/Ԛ* 'c/+~{bz_lO_/g/gNe7Tq- )*x-k/khCt+ǭ,p9%$I혟=ޗ1?{=a2H?lO_ىQ AxOpd)JI$R\?aiU/IMI%"lq?WRJʚ_~+%g ~BV{QV36R6fRI%5񫱗e9eoSU/6ّYX+kI$*@ Q>ͿKvӶ#Y7ܗ[Ka JJI$$I)K?堨SKK}d5RJc,)+gu`#7쾣q~عJ쾣q=r\'Wtүa~?Ϲt_Sqr1EnvݻLNћX7^$Sڸ3 ?F.ͧiٻ#.Ηnescr>eӝ-齵VtcGѱ*~X\PŜA.RI$TI$Č=/ZsEnqZ +qUvU8ѫU9[&I$fu*0ÿҫ# ;<^I$JRI$I$$I)I$JGX>\n.:ѯD@UnKA,lvtI%)YMY-kÄE_>/ɦ/.iI$RI$BȫvPA@HD,@~>_ }pc ANmް<#_/No??m"?m"ް0WyG$AC@>Ac*NWo鏤tsHH@9Q3Rԕks /8ekze,gkWOR0]os^a-'y/PdV7ebn .0Yaqfv_X![^~ h5T \<ܵRa^G=ZwC0Fsd4It \JA;kN8os ?qkG> %$_IA'ƽרbq_?=Iy~?􊿮ʽg5 9|?-hwK?_%i%YG/{+'TGkW7}$I%)$IJI$RI$I%5}e1J gS+ʰ]jpcֿ8"$$I)H9]Mo-iwFClDz[]n;c>P$I)I$JR"9h,.gSy~LC|SȺ%ۜd Iu$99!⑲k_-8b E)beq> 2㜶# TOZdΎZ;737~/?-_piZ;Fs=2|KR*KWg?WG2LkyO9I{Ć~)sI)"H4OYSGnscTmwPK)5pwSa$;៫|a-k\Z~5Ӡ?֤*wPaU<>,m+kw;G#k\$6 `Kg ;8TG53sS4r%Tm $ r6qww5%CՆKw%ݷSa$+Hh3XNDeOIƾx%$IW@쥵%qwkj{hp3*sc_Qi):Hs0[oѓwlBIK*h=79|1):J(e.H/{K៫|a-k\$A-?ikqp5 wPaU<>O%6A卿emnw߄mkolIlԴ%$Igʚ淹~cS\S4rJI[/W-v֝B"= +)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$ endstream endobj 178 0 obj << /Font << /F8 6 0 R /F20 12 0 R /F27 41 0 R /F28 49 0 R >> /XObject << /Im20 171 0 R /Im21 172 0 R >> /ProcSet [ /PDF /Text ] >> endobj 190 0 obj << /Length 1839 /Filter /FlateDecode >> stream xXK6ϯ8e"Mh0,z( Oɸ8qcX^]93 =XXd݇S~:;P(e6:L$r2et̗ɺC0%ZChlp)1K聽wݧsz-=3e8MҜ3nUddBwŴ;.#Pq4O MƯyCg0DG:Iz}s™L3M?:=ZKRvc~`㨬] pR*EZh[vH4.ggKS4z["HkCToLė9DӁY :BSI>YK*3n:3dxWZ A ƫ:7Yif:rΛE4:eڰ4 |?y].OCL=gV6Avcle sU/gh,߄/BWl>:5_|6@uo;Ad9%^u@*ocBq*ez_ǎfB<:.:tdA7x!WWmeOpȒ4LY >hE2I?:܉t >q_elN0ӟx``C)0X&GI0 !00c #GisYw 2n(@ *b!*!Xv{@"@ɡ@ +׬ ^!Tc]`S!로}U]Kzy=9u:^Bv^cS?QyT:nT <;P%<o:b0xpp}?{||GJ1l0PLy$/i^8M j@1)Hwt6)'x?=jYzڬyM-5tt:3< d}+. =.Z2od'WU\.20n|$^QN`.E3;oz~7X ,qj/e[l e8J f]>-3Z$jU\ L|7վf\a:*|]OnKP'|@ O>=G~xI,z";4гH(|+;5Є^f:{/r9 u bg\ǩwJZۛ$;8JH]ޓ׀?DxbP-5Ŋ8*ԋwΰ֣;W"+ pQ暒 Yr8N@T91{ / endstream endobj 189 0 obj << /Type /Page /Contents 190 0 R /Resources 188 0 R /MediaBox [0 0 595.276 841.89] /Parent 181 0 R >> endobj 186 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (Utilities/N.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 191 0 R /BBox [0 0 1105 463] /Resources << /XObject << /Im0 192 0 R >>/ProcSet [ /PDF /ImageC ] >> /Length 32 >> stream q 1105 0 0 463 0 0 cm /Im0 Do Q endstream endobj 191 0 obj << /CreationDate (D:20080801201744+02'00') /Creator (Adobe Acrobat 7.1) /Producer (Adobe Acrobat 7.1 Image Conversion Plug-in) /ModDate (D:20080801201803+02'00') >> endobj 192 0 obj << /Subtype /Image /Length 28356 /Filter /DCTDecode /Name /X /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 1105 /Height 463 /Type /XObject >> stream Adobed   ""  "'''''",////,7;;;7;;;;;;;;;;  %%#(((((#,0000,7;;;7;;;;;;;;;;Q"B   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw;!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$PPYcZ\hԒ[blwՎmzN5{~%jV_nV[ 87-ooy.RҺ ,k3yX+]ԱƘ}EwՕg=S$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$,Ϭg  KH2|VI)~oyV25-i$a%=`mpUO`w?q _~&9ILzF%tQ}޵5Ft$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$fe]/]3I>Ayi^zQ]'J7 m撟GI$Se.&II\7V_/nJm:IjX5ԅoG쾥Vn6ۨߠ]GvSM5y!%7I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I% Èc\d};W[~wxg#%/2ڷ> ?S}z~I;Z'~?)]5ݱkX6v;dIJI$SP.?r߁|i ;???"$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$Jp=C!C?* v]C ]pώ=GRS}$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IN'o{?Ufo{?Uf)I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$-4r\@P=Lk[I$RI$}snGִ%ӷtI?'Q·_GO´綤M$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$SK;bG7Uѥo ۺū];ctE~eck}3J:А~ntV5VCq*}=ksq֓>P/#vǿcK0n{=IO)?Mտ3K曫/fS}eΗO쮧^,n1#sݿ@;[u/?unRJԔꤒI)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)Kӑm7V4v$w]*徶?W?BG+" k1ATvrPo?/Y=޶ӑMv[_q?Ucgrϟr %W+_3XW'~OoAWfr'~Ooiezfr_q?Uc/W1М$xY=ޗ,]OKn' o%?WğOK/=֯ռepts 1 ;ZW՟Ǘ1cC+1;Y>)3DkR)$^I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)JPqf5i AXUKRS27?ɏ6~OK/={Cik A ˞\e(15/-r|?J9xMjd_{/Y=޻_ٸ*1ܗOV\M'5?+_{wK/=k7_7'~Ooiezfr_q?Uc/W1М$xY=ޗ,]O\WR`fUh %U9\ܜc)e25->9RekC'q~=.$ki$LuWD-Z]#x?'oxGRI$ȤI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$X1k6W,hw#u5qDzXs<\pcFGsZ.~UxNbg]/%mҫQȭ-,?~_܏䤒IHʤI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$Z?ag?,oOZBr?o7udIm= I$I%)a}m_[ icri|WśKE!uK?OaG Q'Ka?ޗ椒I_tԒI$$I)I$JRI$I$$I)I$JRI$I$$I)$[ېȝ; PwK8UwCT>怒I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)r[u+_*ܲ|o?GmRfȷ/myI./#+Ň*I$I$I%9?Y5b}X?V'ՏXS^$[OBI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$WD-ߑZUzKye1s'o]_?Wz~ OI-gqI$JRI$>.~U.K1ߕdk?=KG["ŷ+KKp'_g#)$R2$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%<[_V?9bgյc/)ls $KiTI$$I)Ko_-Or~֏Y?0+\/]J_Xb'ޗ椒I_tԒI$$I)I$JRI$I$$I)I$Jiu;Ո0ߤA1 @W'sM oYPl-qH]> gFay̲?cߙҒ=Y5em=(5ښ0CZvfMo-{K\$kF)"KƷ҉[oDa3U>}; RuxpSc}[L9$l[R>INI$I$$I)I$JRI$I$$I)I$JRI,\#?G ÎY^LYwQ%i#)}8p2В^{;mH_?b?̟$8;n?دG'} %i#)}87+QB\Xi#*j2#c15٫f<b1 ^3o[ W>wvTI+m$I)I$Jr~B?j4Uo?#fOG\ycmHI$I$JRI$I$$I)I$JRI$I$$I)I.']Z8 8zɟa J>4H߳0cjG|C /?vGW/dMԾտ@Iy۲?ҿ}#+?ޗnQc3/ /?vGW/dMԾ,e0}U/w\O۲?ҿ静{אy6(gPF Gڗ$|êN.Uޮˣ1wo')$ZI$I%)p]S]\Rkx' 15{NEiV(gHVVNr?I$E$I)I$JRI$I$$I)I$JRI${fč> vGWg_+02 w+9<d@KݑK_qn?2>dvGW/?KWf_^8z_nJ}X`KݑK_qp5/_OZBrlqq&J뾬60Tsq rɔ ]Y$[LI%)$IJX?[o,U|G˗~+/]J復?o?T r_?P5$JI%)$IJI$RI$I%)$IJI$Szc]k)֟;o|D0 6::?Wsw= &IM| Ǯ9k I)I$JhuكƋGFv!_~_EgDzCRSI$$I)I$JRI$I$$I)I$JRI$Co+aci?Un{͗/ofY=W6-[a(]rj&j٪FB_f-cb/U愾W6RK=خ}m4%jѷЊ\>pGG؋o/UTa+?>,h!I$[)$IJI$RI$}ho~C3 X{?zIm= I$I%)$IJI$RI$I%)$IJI$Su7?azI$xu7?ųg`?7$c.gaDG%L4r:Kgۇw ?&?/gKۇW#aDG%L4r:I{p~8hÏGI/n^?܏[SЌH];?o?W-KWRW>rؾ $W5$I)I$JRI$I$$I)I$JRI$I$$I)I$Jh?/"=?!KvPDϨNzyINI$I$$I)I$JRI$I$$I)I$JR ]!U6_Ŀy\B#[a(]r7rj|I-YI$JRI$I$$I)I$JRI$I$#G??>C3 X{?zIm= I$I%)$IJI$RI$I%)$IJI$Su7?ųu7?ų.=?O3HI%*I$RI$I%)$IJI$RI$I%)p=K]+\Rkx' 15{^ԅeV(gHVV/;8?#)$OdRI$I$$I)I$JRI$I$$I)_?VY_?Vby?OPI-RI$I$$I)I$JRI$I$$I)Ko_-Or~֏Y?0+\/]J_Xb'ޗ椒I_tԒI$$I)I$JRI$I$$I)I$JRI$I$$I)dRVWVWgIY_P??)IO@I$$I)I$JRI$I$$I)I$JRI$Co+aci?Un{͗/o'G~PV\#q%$KERI$I$$I)I$JRI$I$$I)m+;-Lÿ/?7^$[OBI%)$IJI$RI$I%)$IJI$RI$r.w+O[ \6wWs7.=/G1$z$I)I$JRI$I$$I)I$JRI$..K5Ed|o?=MGS?Bt3++SpCI')$IJI$RI$I%)$IJI$RI$[?%wtYߐ }Qr?j>{'=:I$I$JRI$I$$I)I$JRI$I$,s_?T/G,C __[AWR?QWPW>rؾ ⇜5$JI%)$IJI$RI$I%)$IJI$RI7zok;k80AIII$I%5zwbd?蕏/]Wq[]G-o+],9%=I$I$$I)I$JRI$I$$I)I$JR ]!U6_Ŀy\B#[a(]r7rj|I-YI$JRI$I$$I)I$JRI$I$#G??>C3 X{?zIm= I$I%)$IJI$RI$I%)$IJI$S-)]z "Gb#˩y9ԧI$Щ$IJI$RI$I%)$IJI$RI$-rQ]:Jx' 15{n-l ʯSt~NJI$I$$I)I$JRI$I$$I)I$Jyg~@G˿Q7O.)XA۸?ӤKiTI$$I)I$JRI$I$$I)I$JR_?oUcOr4~-?m\mQ+9~l_qC_I+I$I%)$IJI$RI$I%)$IH30Ϭsw4$5O6RSE =Ԓ@UEv[쩻tvk{a$4[a4ikI%tLmcx.:kW1ƹ6bzK/=ώBX8N)M)-\ulF$O?P_UgtmsAVӏڢ2 :| !,qoDKw;_AKh?87q|W/i{?ؗgwӏڗqoRo ow;? h?87.//nz=L|L5' ,&5;Z `IeGf7'r248x fI-WmI$JRI$I$$I)I$JRI$I$.I1pCMd|o/z_{"ֻcZ<W?q/bSr!T'1`vV#œ%dxnK_KiI)/_Vw ?_%/_Xm/ZI/6䰏_}aϹܗ۾g^_u?$?>K??$;# D̗+f;ΙrHˎUS1姂#}֜^2mzfL;suW'}pSzsckHO?捿[Ó". _y8ہ0߫gwUxKwUxU捿[捿[=ϊ~5?N_N­4mJ߸4mJ߸|Wl; ; ѷ+~ѷ+~◹_"w_Aֺ:Xְi'S}Q?$~TF-<;p Csp͚o+s#:$z5$I)I$JRI$I$$I)I$JRI$>5W[wUXES?\C yAG?*/G?* r_?P%$JI%)$IJI$RI$I%)$IJI$S[>k[k󫬬6᭲|T2qۙ]Ժch,qhoZWRJRI$I$9YG~EQկlb;/'3V涇ó9rI$I$JRI$I$+'4,{+7-l}d?ȰOV_,K߾I-$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$O1vBXi?W~#폔\[*^G/PzgQ]~Z%t;vsII$I%)$ING֏o^corǯ>G04?ot7 P}Pn؇<'1ORI$ĤI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R?W~&R>7cpx/:Og| ؗn8+_5%I%uRI$I$/;O3oz">6ߖW>\_r'%0i)[WZR j'ԽgbwAI$$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$"X[*rh[ś o?QWP?QWPWrؾ ⇜)$W5$I)I$JRI$I$$I)I$JRI$I$$I)I$JGռ#^!OOgZ xo?9j5?9O>I+2I$I%)$IO VOhXVo["+'4,{+7-arY}I$[*I$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IN?֟cpw8+ ]G`G(|TL_~Z%AEtKkpw%?OI%#QI$JRI$ǯ>Z?my_}va?{*hVn??/WCUyNcߗ椒I9I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$.I1pCMd|o/z_tn8/?q/bVkK-$J늤I%)$IJ^wgE}|m,|OK.aR k?ŧow]kOz?܂I%aRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)KwUXE>5WU>#?07TrTG,<|9RI$jI$RI$I%)$IJI$RI$I%)W~~5w7V-pYx#ɳ*.f 9]YWz[3ʤ[cu x@.o_u>j/ۭa5gRw>eWHI$}| :s?׹9QLt_a|c-r~q}$Vu$I)I$JRI$'бEVOhXVo["?Y̳//?~I$XTI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$? :qaW!\]??>QroykAEtK#k?K%$JFI$I%9Z?my_}ӾC?+/;TY??/WCUCɸ^b( ?/I$sI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJ\yJןHd|o/z_`txOo| UC?G|[ I$I$JRI$,z*6}\Gŧow]kךOJ.ץܟ_R$JÎI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$R?Ⱥnn;O_\C yGAG˿ʺu}QrӦ+9~egXH$W%$I)I$JRI$I$$I)I$JRI${`` $a I#R掅ٸkE@p+ VE ׈ Xןs+w$v!%8}t^-. :M- c֎*JRI$/'x_O?=WX|;w\_tI$I$JRI$I$+'4,{+7-l}d?ȰOV_,K߾I-$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$O1vBXi?W~#폔\[*^G/PzgQ]~Z%t;vsII$I%)$ING֏o^corǯ>G04?ot7 P}Pn؇<'1ORI$ĤI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RHz]ߔ\Kyr8)Íρ{ |oxAI$$IJI$RuߥE^u~_~1ˈazZOi)[WZ{k^1 IXqԒI$$I)I$JRI$I$$I)I$JRI$I$$I)I$JR7O??2y4>/A.)]:>9w[J~䇜2,~sTI+ΒI$I%)$2/mV15Ŏ#$$I)I$JRI*Uu*,ǸZqi))?%DGwgI%=ZKˢ߳$6]$i.S.~_tOwSդOl';?Ie?oIOV5} ȇtOw)#\tӨ}%v֐ǹ15GpOWk.,K_{wk??I]oYY蜿/<7%?w,K_{wk??I]oYK%\|~Ooiezƻ޳$5 $9"_aW7%?w,K_{wk??I]oYK%\|?[.ny{I$GH !Ŭ p ?I-MN!L~+3r._OžZMu]?Gè7_I00阍ʶ*h{K;wZ_t޳¹/\/k܋l| x_e]NѡG~?K!oȸ#ާJMwu4~V_I_ݻYt?/g:Wkܕf4+I:ݻK~?K/Ε%JMq|7ܿ$gOT i>'VK6Ε,>-p0zKe:H$zLT̾ sxpϊP11YU6\H?ӿK^^Do/5 %DJ _1fPl"8~MٟqKgwUk??I]oYMEfę}sGgwR{z_t6Efę}_L?4kf/ٟqW?l%wACggI/VoIsv~FCvk9d.]yӲ5t6??Iuk׷hʓ qTLug/ˀ_